×
Grow Open Source Bounties Hackathons Grants Quests Kudos
Back to Grants

Smart Contracts for non-blockchain developers

CATEGORIES

Eth2.0 Community Scalability

TEAM

MATCH ROUND 6

0 DAI

MATCH ESTIMATE

ROUND

5 DAI
1 contributors

Description

{"ops":[{"insert":"To further blockchain's expansion I will create a series of smart contracts that will enable developers with limited blockchain experience to create fully functioning Ethereum based dapps without having to learn a new language."},{"attributes":{"header":1},"insert":"\n"},{"insert":"\nThe result of this proposal will allow developers that have had success building apps in other languages to extend that success creating dapps without being hindered by having to learn a new language. In essence, solidity could be treated as an API that can be easily customized by the developer in the language of their choice."},{"attributes":{"header":2},"insert":"\n"},{"insert":"\nComing from a background of app development I want to make a series of \"helper/utility contracts\" built on the Ethereum blockchain that compensate for the main pain points I had when learning dapp development.\n\nThe contracts would allow developers coming from other languages to define a set of parameters that would be returned when the contract successfully saved to the blockchain.\n\nTaking CryptoZombies (what I hope many people are familiar with) as an example, when javascript requests `"},{"attributes":{"italic":true,"bold":true},"insert":"result.dna"},{"insert":"` the expectation is for a number up to 16 digits in length that is influenced by a submitted string.\n\nCurrently, the developer would have to code the request in javascript, then code the logic that returns the digits in solidity, then handle the result in javascript. With the proposed contracts the developer will be able to code solely in javascript and still receive dynamic information from solidity.\n\nWith the proposed contracts in place a request to return an integer between 3 and 16 digits in length would look something along the lines of:\n```\n"},{"attributes":{"italic":true},"insert":"const customValues = {"},{"insert":"\n"},{"attributes":{"italic":true},"insert":" zombieDNA:{int,3,16}"},{"insert":"\n"},{"attributes":{"italic":true},"insert":"}"},{"insert":"\n"},{"attributes":{"italic":true},"insert":"SolidityUtil.create(customValues)"},{"insert":"\n"},{"attributes":{"italic":true},"insert":"// ... more javascript code"},{"insert":"\n\n"},{"attributes":{"italic":true},"insert":"console.log(zombieDNA) // 1374693525379"},{"insert":"\n"},{"attributes":{"italic":true},"insert":"//rerun the code"},{"insert":"\n"},{"attributes":{"italic":true},"insert":"console.log(zombieDNA) // 64836957467"},{"insert":"\n```\n\nTo add seeded information to the request is a simple extension of the base code:\n```\n"},{"attributes":{"italic":true},"insert":"const seedValues = {"},{"insert":"\n"},{"attributes":{"italic":true},"insert":" zombieDNA: [\"Custom Zombie Name\"]"},{"insert":"\n"},{"attributes":{"italic":true},"insert":"}"},{"insert":"\n"},{"attributes":{"italic":true},"insert":"const customValues = {"},{"insert":"\n"},{"attributes":{"italic":true},"insert":" zombieDNA:{int,3,16}"},{"insert":"\n"},{"attributes":{"italic":true},"insert":"}"},{"insert":"\n"},{"attributes":{"italic":true},"insert":"SolidityUtil.create(customValues,seedValues)"},{"insert":"\n"},{"attributes":{"italic":true},"insert":"// ... more javascript code"},{"insert":"\n\n"},{"attributes":{"italic":true},"insert":"console.log(zombieDNA) // 53749254903"},{"insert":"\n"},{"attributes":{"italic":true},"insert":"//rerun the code"},{"insert":"\n"},{"attributes":{"italic":true},"insert":"console.log(zombieDNA) // 53749254903"},{"insert":"\n```\n\nBehind the scenes of the above method the contract would have access to everything solidity consists of. Allowing for integrations with all transaction hashes as they are created and needed. "},{"attributes":{"italic":true,"bold":true},"insert":"The hashes and results of these transactions will then be able to be applied to the next step in a chain function"},{"insert":".\n\nI have started in on the basic implementation and hope to have this grant funded to fully incorporate the basic features (expanded below) and introduce complex features that would allow chaining of the basics and allow developers of all backgrounds to create dapps within the blockchain ecosystem and grow the culture profusely.\n\nAny additional time and/or funding would be used to create IDE autofills and error checks, as well as a GUI (most likely in the form of a chrome extension) to allow basic definitions and complex chain variables to be visualized and tested before being exported into the finalized code to be integrated (javascript/ios/java/etc).\n\n---\nPlease note that this is only the beginning of the mapping and will likely change to become easier to use.\n\nIf funded I will be tracking progress here:\n"},{"attributes":{"link":"https://trello.com/b/w7WU1fwd/utility-smart-contracts"},"insert":"Trello | https://trello.com/b/w7WU1fwd/utility-smart-contracts"},{"insert":"\n\nThank you so much for your time and consideration.\n"}]}

Activity Feed