gitextract_0qumgsk9/ ├── .gitattributes ├── .github/ │ └── workflows/ │ └── CI.yml ├── .gitignore ├── .mocharc.json ├── LICENSE ├── README.md ├── contracts/ │ ├── .gitattributes │ ├── contract/ │ │ ├── RocketBase.sol │ │ ├── RocketStorage.sol │ │ ├── RocketVault.sol │ │ ├── auction/ │ │ │ └── RocketAuctionManager.sol │ │ ├── casper/ │ │ │ └── compiled/ │ │ │ └── Deposit.abi │ │ ├── dao/ │ │ │ ├── RocketDAOProposal.sol │ │ │ ├── node/ │ │ │ │ ├── RocketDAONodeTrusted.sol │ │ │ │ ├── RocketDAONodeTrustedActions.sol │ │ │ │ ├── RocketDAONodeTrustedProposals.sol │ │ │ │ ├── RocketDAONodeTrustedUpgrade.sol │ │ │ │ └── settings/ │ │ │ │ ├── RocketDAONodeTrustedSettings.sol │ │ │ │ ├── RocketDAONodeTrustedSettingsMembers.sol │ │ │ │ ├── RocketDAONodeTrustedSettingsMinipool.sol │ │ │ │ ├── RocketDAONodeTrustedSettingsProposals.sol │ │ │ │ └── RocketDAONodeTrustedSettingsRewards.sol │ │ │ ├── protocol/ │ │ │ │ ├── RocketDAOProtocol.sol │ │ │ │ ├── RocketDAOProtocolActions.sol │ │ │ │ ├── RocketDAOProtocolProposal.sol │ │ │ │ ├── RocketDAOProtocolProposals.sol │ │ │ │ ├── RocketDAOProtocolVerifier.sol │ │ │ │ └── settings/ │ │ │ │ ├── RocketDAOProtocolSettings.sol │ │ │ │ ├── RocketDAOProtocolSettingsAuction.sol │ │ │ │ ├── RocketDAOProtocolSettingsDeposit.sol │ │ │ │ ├── RocketDAOProtocolSettingsInflation.sol │ │ │ │ ├── RocketDAOProtocolSettingsMegapool.sol │ │ │ │ ├── RocketDAOProtocolSettingsMinipool.sol │ │ │ │ ├── RocketDAOProtocolSettingsNetwork.sol │ │ │ │ ├── RocketDAOProtocolSettingsNode.sol │ │ │ │ ├── RocketDAOProtocolSettingsProposals.sol │ │ │ │ ├── RocketDAOProtocolSettingsRewards.sol │ │ │ │ └── RocketDAOProtocolSettingsSecurity.sol │ │ │ └── security/ │ │ │ ├── RocketDAOSecurity.sol │ │ │ ├── RocketDAOSecurityActions.sol │ │ │ ├── RocketDAOSecurityProposals.sol │ │ │ └── RocketDAOSecurityUpgrade.sol │ │ ├── deposit/ │ │ │ └── RocketDepositPool.sol │ │ ├── helper/ │ │ │ ├── BeaconStateVerifierMock.sol │ │ │ ├── MegapoolUpgradeHelper.sol │ │ │ ├── PenaltyTest.sol │ │ │ ├── RevertOnTransfer.sol │ │ │ ├── SnapshotTest.sol │ │ │ ├── SnapshotTimeTest.sol │ │ │ ├── StakeHelper.sol │ │ │ └── StorageHelper.sol │ │ ├── megapool/ │ │ │ ├── RocketMegapoolDelegate.sol │ │ │ ├── RocketMegapoolDelegateBase.sol │ │ │ ├── RocketMegapoolFactory.sol │ │ │ ├── RocketMegapoolManager.sol │ │ │ ├── RocketMegapoolPenalties.sol │ │ │ ├── RocketMegapoolProxy.sol │ │ │ └── RocketMegapoolStorageLayout.sol │ │ ├── minipool/ │ │ │ ├── RocketMinipoolBase.sol │ │ │ ├── RocketMinipoolBondReducer.sol │ │ │ ├── RocketMinipoolDelegate.sol │ │ │ ├── RocketMinipoolFactory.sol │ │ │ ├── RocketMinipoolManager.sol │ │ │ ├── RocketMinipoolPenalty.sol │ │ │ ├── RocketMinipoolQueue.sol │ │ │ └── RocketMinipoolStorageLayout.sol │ │ ├── network/ │ │ │ ├── RocketNetworkBalances.sol │ │ │ ├── RocketNetworkFees.sol │ │ │ ├── RocketNetworkPenalties.sol │ │ │ ├── RocketNetworkPrices.sol │ │ │ ├── RocketNetworkRevenues.sol │ │ │ ├── RocketNetworkSnapshots.sol │ │ │ ├── RocketNetworkSnapshotsTime.sol │ │ │ └── RocketNetworkVoting.sol │ │ ├── node/ │ │ │ ├── RocketNodeDeposit.sol │ │ │ ├── RocketNodeDistributor.sol │ │ │ ├── RocketNodeDistributorDelegate.sol │ │ │ ├── RocketNodeDistributorFactory.sol │ │ │ ├── RocketNodeDistributorStorageLayout.sol │ │ │ ├── RocketNodeManager.sol │ │ │ └── RocketNodeStaking.sol │ │ ├── rewards/ │ │ │ ├── RocketClaimDAO.sol │ │ │ ├── RocketMerkleDistributorMainnet.sol │ │ │ ├── RocketRewardsPool.sol │ │ │ └── RocketSmoothingPool.sol │ │ ├── token/ │ │ │ ├── RocketTokenRETH.sol │ │ │ ├── RocketTokenRPL.sol │ │ │ └── temp/ │ │ │ └── RocketTokenDummyRPL.sol │ │ └── util/ │ │ ├── AddressQueueStorage.sol │ │ ├── AddressSetStorage.sol │ │ ├── BeaconStateVerifier.sol │ │ ├── Context.sol │ │ ├── ERC20.sol │ │ ├── ERC20Burnable.sol │ │ ├── LinkedListStorage.sol │ │ ├── LinkedListStorageHelper.sol │ │ ├── SSZ.sol │ │ ├── SafeERC20.sol │ │ └── SafeMath.sol │ ├── interface/ │ │ ├── RocketStorageInterface.sol │ │ ├── RocketVaultInterface.sol │ │ ├── RocketVaultWithdrawerInterface.sol │ │ ├── auction/ │ │ │ └── RocketAuctionManagerInterface.sol │ │ ├── casper/ │ │ │ └── DepositInterface.sol │ │ ├── dao/ │ │ │ ├── RocketDAOProposalInterface.sol │ │ │ ├── node/ │ │ │ │ ├── RocketDAONodeTrustedActionsInterface.sol │ │ │ │ ├── RocketDAONodeTrustedInterface.sol │ │ │ │ ├── RocketDAONodeTrustedProposalsInterface.sol │ │ │ │ ├── RocketDAONodeTrustedUpgradeInterface.sol │ │ │ │ └── settings/ │ │ │ │ ├── RocketDAONodeTrustedSettingsInterface.sol │ │ │ │ ├── RocketDAONodeTrustedSettingsMembersInterface.sol │ │ │ │ ├── RocketDAONodeTrustedSettingsMinipoolInterface.sol │ │ │ │ ├── RocketDAONodeTrustedSettingsProposalsInterface.sol │ │ │ │ └── RocketDAONodeTrustedSettingsRewardsInterface.sol │ │ │ ├── protocol/ │ │ │ │ ├── RocketDAOProtocolActionsInterface.sol │ │ │ │ ├── RocketDAOProtocolInterface.sol │ │ │ │ ├── RocketDAOProtocolProposalInterface.sol │ │ │ │ ├── RocketDAOProtocolProposalsInterface.sol │ │ │ │ ├── RocketDAOProtocolVerifierInterface.sol │ │ │ │ └── settings/ │ │ │ │ ├── RocketDAOProtocolSettingsAuctionInterface.sol │ │ │ │ ├── RocketDAOProtocolSettingsDepositInterface.sol │ │ │ │ ├── RocketDAOProtocolSettingsInflationInterface.sol │ │ │ │ ├── RocketDAOProtocolSettingsInterface.sol │ │ │ │ ├── RocketDAOProtocolSettingsMegapoolInterface.sol │ │ │ │ ├── RocketDAOProtocolSettingsMinipoolInterface.sol │ │ │ │ ├── RocketDAOProtocolSettingsNetworkInterface.sol │ │ │ │ ├── RocketDAOProtocolSettingsNodeInterface.sol │ │ │ │ ├── RocketDAOProtocolSettingsProposalsInterface.sol │ │ │ │ ├── RocketDAOProtocolSettingsRewardsInterface.sol │ │ │ │ └── RocketDAOProtocolSettingsSecurityInterface.sol │ │ │ └── security/ │ │ │ ├── RocketDAOSecurityActionsInterface.sol │ │ │ ├── RocketDAOSecurityInterface.sol │ │ │ ├── RocketDAOSecurityProposalsInterface.sol │ │ │ └── RocketDAOSecurityUpgradeInterface.sol │ │ ├── deposit/ │ │ │ └── RocketDepositPoolInterface.sol │ │ ├── megapool/ │ │ │ ├── RocketMegapoolDelegateBaseInterface.sol │ │ │ ├── RocketMegapoolDelegateInterface.sol │ │ │ ├── RocketMegapoolFactoryInterface.sol │ │ │ ├── RocketMegapoolInterface.sol │ │ │ ├── RocketMegapoolManagerInterface.sol │ │ │ ├── RocketMegapoolPenaltiesInterface.sol │ │ │ └── RocketMegapoolProxyInterface.sol │ │ ├── minipool/ │ │ │ ├── RocketMinipoolBaseInterface.sol │ │ │ ├── RocketMinipoolBondReducerInterface.sol │ │ │ ├── RocketMinipoolFactoryInterface.sol │ │ │ ├── RocketMinipoolInterface.sol │ │ │ ├── RocketMinipoolManagerInterface.sol │ │ │ ├── RocketMinipoolPenaltyInterface.sol │ │ │ └── RocketMinipoolQueueInterface.sol │ │ ├── network/ │ │ │ ├── RocketNetworkBalancesInterface.sol │ │ │ ├── RocketNetworkFeesInterface.sol │ │ │ ├── RocketNetworkPenaltiesInterface.sol │ │ │ ├── RocketNetworkPricesInterface.sol │ │ │ ├── RocketNetworkRevenuesInterface.sol │ │ │ ├── RocketNetworkSnapshotsInterface.sol │ │ │ ├── RocketNetworkSnapshotsTimeInterface.sol │ │ │ └── RocketNetworkVotingInterface.sol │ │ ├── node/ │ │ │ ├── RocketNodeDepositInterface.sol │ │ │ ├── RocketNodeDistributorFactoryInterface.sol │ │ │ ├── RocketNodeDistributorInterface.sol │ │ │ ├── RocketNodeManagerInterface.sol │ │ │ └── RocketNodeStakingInterface.sol │ │ ├── rewards/ │ │ │ ├── RocketMerkleDistributorMainnetInterface.sol │ │ │ ├── RocketRewardsPoolInterface.sol │ │ │ ├── RocketRewardsRelayInterface.sol │ │ │ ├── RocketSmoothingPoolInterface.sol │ │ │ └── claims/ │ │ │ ├── RocketClaimDAOInterface.sol │ │ │ ├── RocketClaimNodeInterface.sol │ │ │ └── RocketClaimTrustedNodeInterface.sol │ │ ├── token/ │ │ │ ├── RocketTokenRETHInterface.sol │ │ │ └── RocketTokenRPLInterface.sol │ │ └── util/ │ │ ├── AddressQueueStorageInterface.sol │ │ ├── AddressSetStorageInterface.sol │ │ ├── BeaconStateVerifierInterface.sol │ │ ├── IERC20.sol │ │ ├── IERC20Burnable.sol │ │ └── LinkedListStorageInterface.sol │ ├── thirdparty/ │ │ ├── EthBalanceChecker/ │ │ │ └── EthBalanceChecker.sol │ │ ├── Multicall2/ │ │ │ └── Multicall2.sol │ │ ├── RocketSignerRegistry/ │ │ │ ├── RocketSignerRegistry.sol │ │ │ └── interface/ │ │ │ └── RocketSignerRegistryInterface.sol │ │ └── UniswapOracleMock/ │ │ └── UniswapOracleMock.sol │ └── types/ │ ├── MinipoolDeposit.sol │ ├── MinipoolDetails.sol │ ├── MinipoolStatus.sol │ ├── NodeDetails.sol │ ├── RewardSubmission.sol │ └── SettingType.sol ├── hardhat-common.config.js ├── hardhat-deploy.config.js ├── hardhat.config.js ├── package.json ├── remapping.json ├── scripts/ │ ├── console.js │ ├── deploy-upgrade.v1.4.js │ ├── deploy.js │ ├── etherscan-verify.js │ ├── preamble.sol │ └── upgrade-test.sh └── test/ ├── _helpers/ │ ├── auction.js │ ├── beaconchain.js │ ├── bigmath.js │ ├── bn.js │ ├── console.js │ ├── dao.js │ ├── defaults.js │ ├── deployer.js │ ├── deployment.js │ ├── deposit.js │ ├── invariants.js │ ├── megapool.js │ ├── minipool.js │ ├── network.js │ ├── node.js │ ├── settings.js │ ├── tokens.js │ └── verify.js ├── _utils/ │ ├── artifacts.js │ ├── beacon.js │ ├── contract.js │ ├── evm.js │ ├── formatting.js │ ├── merkle-tree.js │ ├── snapshotting.js │ ├── testing.js │ └── upgrade.js ├── auction/ │ ├── auction-tests.js │ ├── scenario-claim-bid.js │ ├── scenario-create-lot.js │ ├── scenario-place-bid.js │ └── scenario-recover-rpl.js ├── dao/ │ ├── dao-node-trusted-tests.js │ ├── dao-protocol-tests.js │ ├── dao-protocol-treasury-tests.js │ ├── dao-security-tests.js │ ├── scenario-dao-node-trusted-bootstrap.js │ ├── scenario-dao-node-trusted.js │ ├── scenario-dao-proposal.js │ ├── scenario-dao-protocol-bootstrap.js │ ├── scenario-dao-protocol-treasury.js │ ├── scenario-dao-protocol.js │ ├── scenario-dao-security-upgrade.js │ └── scenario-dao-security.js ├── deposit/ │ ├── deposit-pool-tests.js │ ├── scenario-assign-deposits.js │ └── scenario-deposit.js ├── megapool/ │ ├── megapool-tests.js │ ├── scenario-apply-penalty.js │ ├── scenario-challenge.js │ ├── scenario-dissolve.js │ ├── scenario-distribute.js │ ├── scenario-exit-queue.js │ ├── scenario-exit.js │ ├── scenario-reduce-bond.js │ ├── scenario-repay-debt.js │ ├── scenario-stake.js │ └── scenario-withdraw-credit.js ├── minipool/ │ ├── minipool-scrub-tests.js │ ├── minipool-status-tests.js │ ├── minipool-tests.js │ ├── minipool-vacant-tests.js │ ├── minipool-withdrawal-tests.js │ ├── scenario-close.js │ ├── scenario-dissolve.js │ ├── scenario-reduce-bond.js │ ├── scenario-refund.js │ ├── scenario-scrub.js │ ├── scenario-skim-rewards.js │ ├── scenario-stake.js │ └── scenario-withdraw-validator-balance.js ├── network/ │ ├── network-balances-tests.js │ ├── network-fees-tests.js │ ├── network-prices-tests.js │ ├── network-revenues-tests.js │ ├── network-snapshots-tests.js │ ├── network-voting-tests.js │ ├── scenario-submit-balances.js │ ├── scenario-submit-penalties.js │ └── scenario-submit-prices.js ├── node/ │ ├── node-distributor-tests.js │ ├── node-manager-tests.js │ ├── node-staking-tests.js │ ├── scenario-deposit-v2.js │ ├── scenario-distribute-rewards.js │ ├── scenario-register-smoothing-pool.js │ ├── scenario-register.js │ ├── scenario-set-timezone.js │ ├── scenario-set-withdrawal-address.js │ ├── scenario-stake-rpl.js │ ├── scenario-unstake-legacy-rpl.js │ ├── scenario-unstake-rpl.js │ └── scenario-withdraw-rpl.js ├── rewards/ │ ├── rewards-tests.js │ ├── scenario-claim-and-stake-rewards.js │ ├── scenario-claim-rewards.js │ ├── scenario-rewards-claim.js │ └── scenario-submit-rewards.js ├── rocket-pool-tests.js ├── token/ │ ├── reth-tests.js │ ├── rpl-tests.js │ ├── scenario-reth-burn.js │ ├── scenario-reth-transfer.js │ ├── scenario-rpl-allow-fixed.js │ ├── scenario-rpl-burn-fixed.js │ ├── scenario-rpl-inflation.js │ └── scenario-rpl-mint-fixed.js └── util/ ├── util-tests.js └── verifier-tests.js