No funded issue found.
Check out the Issue Explorer
Be the OSS Funding you wish to see in the world.
Looking to fund some work? You can submit a new Funded Issue here .
Time left
Opened
Issue Type
Workers Auto Approve
Project Type
Time Commitment
Experience Level
Permissions
Accepted
Reserved For
AdEx: Grow Ethereum: generate identity proxy bytecode without solc
adexnetwork
JavaScript, Solidity, evm
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:
* shipping full emscripten/solc binaries imposes runtime overhead and more load time
* we ran into crashes/other issues while using solc.js in a web browser environment
* https://github.com/ethereum/solc-js/issues/34 ; it's definitely not fixed, they just fixed it in the binary
* it is an engineering overkill to ship the full solc for compiling a few bits of assembly
* this will be ran server-side and on the front-end, so performance matters
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:
* Tests in `test/TestIdentity` pass without modification
* the functionality of `js/IdentityProxyDeploy.js` is preserved
* dependency graph is reduced and/or heavyweight solc.js is removed
### Submission deadline:
* August 19
### Judging criteria:
* Best submission
* Correctness and elegance of the solution
* Performance of the solution
* contributions to other open-source packages will be appreciated
### Judging date:
* August 19
### Bounty
* 2000 DAI
Setup your profile
Tell us a little about you:
Skills
No results found for [[search]] .
Type to search skills..
Bio Required
[[totalcharacter]] / 240
Are you currently looking for work?
[[ option.string ]]
Next
Setup your profile
Our tools are based on the principles of earn (💰), learn (📖), and meet (💬).
Select the ones you are interested in. You can change it later in your settings.
I'm also an organization manager looking for a great community.
Back
Next
Save
Enable your organization profile
Gitcoin products can help grow community around your brand. Create your tribe, events, and incentivize your community with bounties. Announce new and upcoming events using townsquare. Find top-quality hackers and fund them to work with you on a grant.
These are the organizations you own. If you don't see your organization here please be sure that information is public on your GitHub profile. Gitcoin will sync this information for you.
Select the products you are interested in:
Out of the box you will receive Tribes Lite for your organization. Please provide us with a contact email:
Email
Back
Save