$ 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'
RESTAKING_ADDRESS: '0x3F4eaCeb930b0Edfa78a1DFCbaE5c5494E6e9850'
EIGENPOD_ADDRESS: '0x926720Ae39114D0e2043b79570A1e08f00D01cCE'
MULTISIG: 'eth:0xAeE017052DF6Ac002647229D58B786E380B9721A'
STAKING_PECTRA: '0xE0240d05Ae9eF703E2b71F3f4Eb326ea1888DEa3'
RESTAKING_PECTRA: '0xB290BEDD4302dc7160467C59692387073B69EC47'
hoodi
UNIVERSAL_ETH_ADDRESS: 0x50fA1411201e2Ac0361FB893E903b80F141b8190
STAKING_ADDRESS: 0xd8B81B8950981EFbA4c00Eed567f903580A6649c
REDEEM_ADDRESS: 0xE1061F0D0A2AaF273Dc9E2077E8545417B838a8c
PROXY_ADMIN: '0x17C3B688BaDD6dd11244096A9FBc4ae0ADd551ab'
RESTAKING_ADDRESS: '0xdF1925B7A0f56a3ED7f74bE2a813Ae8bbA756e59'
STAKING_PECTRA: 0x83ED17AAe050335E3d459EF7867672f166d25995
RESTAKING_PECTRA: 0x4940eE4f0Ff6dAb57Db44Cd71683Aab0ae9cf2c4
- 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: STOPPED_VALIDATOR_NOT_MATCH
- SYS020: ID_ALREADY_STOPPED
- SYS021: MALICIOUS_UNSTAKED_VALUE
- SYS022: EMPTY_QUEUE
- SYS023: DEBT_CONTRACT_NOT_SET
- SYS024: WITHDRAWAL_CREDENTIALS_NOT_SET
- SYS025: RESTAKING_ADDRESS_EMPTY
- SYS026: EIGENPODMANAGER_NULL
- SYS027: DELEGATIONMANAGER_NULL
- SYS028: STRATEGYMANAGER_NULL
- SYS029: DELAYED_WITHDRAWAL_ROUTER_NULL
- SYS030: STOPPED_VALIDATOR_DONOT_MATCH
- SYS031: ILLEGAL_EIGENPOD_TO_REGISTER
- SYS032: REWARDSCOORDINATOR_NULL
- USR001: TRANSACTION_EXPIRED
- USR002: MINT_ZERO
- USR003: NEED_KYC_FOR_MORE
- USR004: EXCHANGE_RATIO_MISMATCH
- USR005: REDEEM_NOT_IN_32ETHERS
- USR006: SWAP_ZERO
- USR007: TOO_SMALL
- USR008: ERC20_TOKEN_NULL
- USR009: RECIPIENT_NULL