Closed dfishb closed 5 years ago
How come you closed this already?
JBP
On Sep 20, 2019, at 8:39 AM, Dieter Fishbein notifications@github.com wrote:
Closed #179.
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.
Proposal
Web3 Grants is looking to fund the development of a Solidity to Ink! conversion tool and is issuing a call for grant proposals for this work. Please apply through the normal process outlined here.
Motivation
If a blockchain solution built on Ethereum needs to be migrated or rebuilt on Substrate it requires a lot of effort to redesign and rewrite the business logic from Solidity smart contracts to either Substrate runtime modules or smart contracts written in Ink!, a Rust-based eDSL for smart contracts on Substrate.
In cases where a direct rewrite of a Solidity smart contract into an Ink! smart contract makes sense, it would be good to have some tooling to reduce this effort.
For example, if a smart contract developer takes x amount of effort to rewrite a Solidity smart contract in Ink!, can we try to reduce this effort by providing a tool? This could help with fast-paced Substrate adoption in use-cases where primary logic should stay in smart contracts when ported to Substrate.
Solidity to Ink! Converter
While it is fairly complex to create a language conversion tool which emits fully compilable and functional code, we can start with a simpler tool that “translates” Solidity to Ink! by doing keyword and grammar replacement. This will not produce compilable code but should significantly reduce migration efforts for a developer. Instead of spending x amount of effort to rewrite the contract in Ink! the developer would now spend only x - y effort to make the converted code compile and run. The reduction of effort y will increase with the maturity of the conversion tool.
References
Java to C# converter
Java to Typescript