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
Aion API web3.js 1.0 Migration
aionnetwork
web3, web3.js, Aion, JavaScript, Other
# **Introduction**
We currently are in need to migrate our web3 offering from an outdated (and soon to be obsolete version) over to a web3.js 1.0 offering. Web3.js 1.0 is considered to be not-yet released (in beta), but in the community, it has quickly become the standard web3 to use.
# **Current Situation**
Current code base is located at: [https://github.com/aionnetwork/aion_web3](https://github.com/aionnetwork/aion_web3)
Code base for web3.js 1.0 is located at: [https://github.com/ethereum/web3.js/tree/1.0](https://github.com/ethereum/web3.js/tree/1.0)
Currently, Aion has access to an offering of web3.js based on version 0.20.x, we have made the following modifications to web3.js for compatibility with Aion:
- Address derivation changes
- Contract account address derivation scheme:
[https://github.com/aionnetwork/aion/blob/1bbeec193eda2a915233faa51aa69680d5bcfd43/modCrypto/src/org/aion/crypto/HashUtil.java#L305-L314](https://github.com/aionnetwork/aion/blob/1bbeec193eda2a915233faa51aa69680d5bcfd43/modCrypto/src/org/aion/crypto/HashUtil.java#L305-L314)
- User account address derivation scheme:
[https://github.com/aionnetwork/aion/blob/1bbeec193eda2a915233faa51aa69680d5bcfd43/modCrypto/src/org/aion/crypto/AddressSpecs.java#L21-L27](https://github.com/aionnetwork/aion/blob/1bbeec193eda2a915233faa51aa69680d5bcfd43/modCrypto/src/org/aion/crypto/AddressSpecs.java#L21-L27)
- ECDSA (Ethereum) to EDDSA/ED25519 (Aion) Signature changes
- See: [https://github.com/aionnetwork/aion/blob/65b2aee2447f166327ca54f3fa19c105f474c2a3/modCrypto/src/org/aion/crypto/ed25519/Ed25519Signature.java](https://github.com/aionnetwork/aion/blob/65b2aee2447f166327ca54f3fa19c105f474c2a3/modCrypto/src/org/aion/crypto/ed25519/Ed25519Signature.java) for implementation details in the reference implementation.
- ABI encoding changes, read about changes here:
- Migration guide is available here, use as starting point for encoding changes: [https://github.com/aionnetwork/aion_fastvm/wiki/Migration-Guide](https://github.com/aionnetwork/aion_fastvm/wiki/Migration-Guide)
- Test harness contract available here: [https://github.com/aionnetwork/aion_web3/blob/master/test/types.js](https://github.com/aionnetwork/aion_web3/blob/master/test/types.js)
- JSON-RPC currently has no documentation. Code reading and testing is necessary to understand outputs from kernel. Easiest way to derive outputs is to setup a private local node.
- [https://github.com/aionnetwork/aion/blob/master/modApiServer/src/org/aion/api/server/http/ApiWeb3Aion.java](https://github.com/aionnetwork/aion/blob/master/modApiServer/src/org/aion/api/server/http/ApiWeb3Aion.java)
The latest web3.js is compatible with the following Aion version:
- [https://github.com/aionnetwork/aion/commit/1bbeec193eda2a915233faa51aa69680d5bcfd43](https://github.com/aionnetwork/aion/commit/1bbeec193eda2a915233faa51aa69680d5bcfd43)
# **Task Description**
We require someone to migrate our current web3 offering (based off of 0.20.x) to web3.js 1.0. Modifications to the code should be organized properly and respect original intent of author. Deviation should upstream should be kept at a minimum, Aion respects a superset of the JSON-RPC calls available by default in web3, ignore those JSON-RPC calls.
# **Acceptance Criteria**
- Code hits all required targets mentioned previously
- Code is well documented
- Code is accompanied by unit tests that are easily runnable by us, these unit tests should ensure that the changes are working correctly.
- Code adheres to the guidelines we set out (respecting the original design, is modular), and allows for easy extensibility.
# **Required Skill**
- Experienced (3 years minimum) in Javascript and node.js environment
- Prior experience withweb3.js (0.20.0 or 1.0) (1 year minimum), show your work on GitHub
- Comfortable with Ubuntu 16.04/Linux environment
- Comfortable with git
# **Guidance**
Technical support is available through [Gitter](https://gitter.im/aionnetwork/Lobby?source=orgpage).
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