Ethereum 2.0 Specifications
Go to file
Alex Beregszaszi 6894e55f07
Update README to reflect the current status (#37)
2020-06-23 22:41:20 +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 Genesis 2020-04-15 00:32:40 +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 Lock in the generated deposit_contract.json and compare it on CircleCI (#29) 2020-05-15 22:23:27 +01:00
deposit_contract.json Lock in the generated deposit_contract.json and compare it on CircleCI (#29) 2020-05-15 22:23:27 +01:00
deposit_contract.sol Fix typo in Natspec (#35) 2020-05-15 21:07:17 +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