Call for Proposals - Solidity to Ink! Converter
dfishb opened this issue · 1 comments
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.