Ethereum 2.0 Specifications
Go to file
Hsiao-Wei Wang ed8e1cc9aa
Relicense from Apache2.0 to CC0-1.0 (#38)
Also update binary output due to metadata change.

Agreed by all authors, including @chriseth, @MrChico, and @axic.
2020-08-13 21:31:56 +01:00
lib Add unit test and fuzzing against Vyper (#20) 2020-05-14 20:58:48 +01:00
tests Remove some warnings in tests (#32) 2020-05-15 19:25:45 +01:00
.gitattributes Add .gitattributes with Solidity 2020-04-15 14:37:41 +01:00
.gitignore Introduce build directory for artifacts (#31) 2020-05-15 18:23:58 +01:00
.gitmodules Add unit test and fuzzing against Vyper (#20) 2020-05-14 20:58:48 +01:00
AUTHORS Add authors file (#33) 2020-05-15 19:26:29 +01:00
LICENSE Relicense from Apache2.0 to CC0-1.0 (#38) 2020-08-13 21:31:56 +01:00
Makefile Introduce build directory for artifacts (#31) 2020-05-15 18:23:58 +01:00
README.md Update README to reflect the current status (#37) 2020-06-23 22:41:20 +01:00
circle.yml Upgrade to Solidity 0.6.11 (#39) 2020-08-13 21:02:56 +01:00
deposit_contract.json Relicense from Apache2.0 to CC0-1.0 (#38) 2020-08-13 21:31:56 +01:00
deposit_contract.sol Relicense from Apache2.0 to CC0-1.0 (#38) 2020-08-13 21:31:56 +01:00
shell.nix Add unit test and fuzzing against Vyper (#20) 2020-05-14 20:58:48 +01:00

README.md

eth2-deposit-contract

This is a port of the Vyper Eth 2.0 deposit contract to Solidity.

The original motivation was to run the SMTChecker and the new Yul IR generator option (--ir) in the compiler.

As of June 2020, this contract (the version tagged as r1) has been verified and is considered for adoption. See this blog post for more information.

Using this with the tests

  1. Create the deposit_contract.json by running make (this requires solc to be in the path)
  2. Download eth2.0-specs
  3. Replace eth2.0-specs/deposit_contract/contracts/validator_registration.json with deposit_contract.json
  4. In the eth2.0-specs directory run make install_deposit_contract_tester to install the tools needed (make sure to have Python 3.7 and pip installed)
  5. Finally in the eth2.0-specs directory run make test_deposit_contract to execute the tests

The Makefile currently compiles the code without optimisations. To enable optimisations add --optimize to the solc line.

Running randomized dapp tests:

Install the latest version of dapp by following the instructions at dapp.tools. Then run

make test