w3f / General-Grants-Program

Web3 Foundation General Grants Program
Apache License 2.0
603 stars 503 forks source link

Call for Proposals - Solidity to Ink! Converter #179

Closed dfishb closed 5 years ago

dfishb commented 5 years ago

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

jplatts12 commented 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.