$ git clone https://github.com/RockX-SG/stake
Visit access.rockx.com, and create an Ethereum API KEY
Visit brownie, install brownie environment.
3. Follow: brownie-integration to setup brownie network
$brownie networks modify mainnet host=https://eth.w3node.com/\$ROCKX_API_KEY/api provider=rockx
Brownie v1.18.1 - Python development framework for Ethereum
SUCCESS: Network 'Mainnet' has been modified
└─Mainnet
├─id: mainnet
├─chainid: 1
├─explorer: https://api.etherscan.io/api
├─host: https://eth.w3node.com/$ROCKX_API_KEY/api
├─multicall2: 0x5BA1e12693Dc8F9c48aAD8770482f4739bEeD696
$ export ROCKX_API_KEY=<YOUR API KEY>
$cd src
$brownie run scripts/ganache_deploy.py --network mainnet-fork -I
mainnet
UNIVERSAL_ETH_ADDRESS: '0xF1376bceF0f78459C0Ed0ba5ddce976F1ddF51F4'
STAKING_ADDRESS: '0x4beFa2aA9c305238AA3E0b5D17eB20C045269E9d'
REDEEM_ADDRESS: '0x98169228cB99Ed26c1043eD8Ca53A5Cb371D3B8D'
PROXY_ADMIN: '0xa5F2B6AB5B38b88Ba221741b3A189999b4c889C6'
goerli
UNIVERSAL_ETH_ADDRESS: '0xB4f4231fC4Be7A34f0a1BE046538793Dc8D99c0E'
STAKING_ADDRESS: '0xa6E1a466626Db4927C197468026fa0A54c092492'
REDEEM_ADDRESS: '0xc6928Af206b0ABe57354D901dfB6Ca3EC4ecC5E3'
- SYS001: PHASE_MISMATCH
- SYS002: PHASE_ROLLBACK
- SYS003: INCONSISTENT_SIG_LEN
- SYS004: INCONSISTENT_PUBKEY_LEN
- SYS005: DUPLICATED_PUBKEY
- SYS006: PUBKEY_NOT_EXSITS
- SYS007: LENGTH_NOT_EQUAL
- SYS008: SHARE_OUT_OF_RANGE
- SYS009: REGISTRY_DEPLETED
- SYS010: WITHDRAW_EXCEEDED_MANAGER_REVENUE
- SYS011: INSUFFICIENT_ETHERS
- SYS012: CASUALITY_VIOLATION
- SYS013: VALIDATOR_COUNT_MISMATCH
- SYS014: ALIVE_BALANCE_DECREASED
- SYS015: NOT_ENOUGH_REVENUE
- SYS016: MALICIOUS_PUSH
- SYS017: EMPTY_CALLDATA
- SYS018: REPORTED_MORE_STOPPED_VALIDATORS
- SYS019: INSUFFICIENT_ETHERS_ARRIVED
- SYS020: ID_ALREADY_STOPPED
- SYS021: MALICIOUS_UNSTAKED_VALUE
- SYS022: EMPTY_QUEUE
- SYS023: DEBT_CONTRACT_NOT_SET
- SYS024: WITHDRAWAL_CREDENTIALS_NOT_SET
- USR001: TRANSACTION_EXPIRED
- USR002: MINT_ZERO
- USR003: NEED_KYC_FOR_MORE
- USR004: EXCHANGE_RATIO_MISMATCH
- USR005: REDEEM_NOT_IN_32ETHERS