Explores the Legendre computation used in eth2.0 phase 1 proof-of-custody game as a smart contract.
The contract provides an interface to redeem a bounty that was set for Legendre key recovery (redeem_bounty method). In order to redeem a bounty, it first has to be locked by providing a sha256 hash of the key (this is to prevent front running once someone has found a valid solution).
This project uses pipenv
, https://docs.pipenv.org/en/latest/.
pipenv shell
pipenv install
vyper contract/legendre_bounty.vy
make test_install
make test
To enable debug printing, run pytest with extra flags:
pipenv run pytest -s -v -k test_legendre_bit_multi