AmbireTech / adex-protocol-eth

Ethereum implementation of the Ambire Protocol: Ambire Wallet contracts and AdEx payment channels
https://www.ambire.com
MIT License
49 stars 24 forks source link

AdEx: Grow Ethereum: generate identity proxy bytecode without solc #77

Closed Ivshti closed 5 years ago

Ivshti commented 5 years ago

IdentityDeployProxy.js: look into ways of generating bytecode w/o solc

Challenge description:

(for the previous challenge, and previous discussion, see #62)

We use an Identity contract that reprensets each user (similar to multisig contracts, e.g. Gnosis safe); to save gas when deploying an identity for each user, we use delegatecall-based proxies.

The proxy contract bytecode is generated by the following JS: https://github.com/AdExNetwork/adex-protocol-eth/blob/master/js/IdentityProxyDeploy.js, for each user

There are comprehensive tests in test/TestIdentity that show how that API is supposed to be used.

However, this JS library uses the full solc, which has some issues:

So, the challenge is to rewrite that JS to generate bytecode that does the same, but without having to ship solc

The best solution would be use a simple EVM assembler, and to our knowledge, there's no such solution that's lightweight, embeddable in a web-based front-end, and well maintained

Such an assembler could be implemented in a web-friendly language (JS, TypeScript) or a language that compiles to WASM (Rust). Any solutions in languages other than JS/TypeScript/Rust will not be accepted.

Submission requirements:

Submission deadline:

Judging criteria:

Judging date:

Bounty

gitcoinbot commented 5 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 2000.0 DAI (2000.0 USD @ $1.0/DAI) attached to it.

gitcoinbot commented 5 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work has been started.

These users each claimed they can complete the work by 1 week, 4 days from now. Please review their action plans below:

1) balajipachai has started work.

Understand the problem from the GitHub page. Get pointers from the maintainers and ask for clarification in case if required. Proceed with the task development and inform the maintainers about the progress. 2) robhaj has started work.

Taking a stab at it...might be able to just leverage the wrapper instead of needing the full binary. 3) bakaoh has started work.

I will use a simple generator to gen contract bytecode 4) drdgvhbh has started work.

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Learn more on the Gitcoin Issue Details page.

balajipachai commented 5 years ago

@Ivshti I found this link, just going through it to find something relevant for our task https://github.com/ethereum/wiki/wiki/Ethereum-Virtual-Machine-(EVM)-Awesome-List

gitcoinbot commented 5 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work for 2000.0 DAI (2000.0 USD @ $1.0/DAI) has been submitted by:

  1. @robhaj
  2. @bakaoh

@Ivshti please take a look at the submitted work:


gitcoinbot commented 5 years ago
Logical Spock ⚡️ A *Logical Spock* Kudos has been sent to @bakaoh for this issue from @Ivshti. ⚡️ Nice work @bakaoh! Your Kudos has automatically been sent in the ETH address we have on file.
gitcoinbot commented 5 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


The funding of 2000.0 DAI (2000.0 USD @ $1.0/DAI) attached to this issue has been approved & issued to @bakaoh.