From 57c2fd3f47ed902a23827bddf0e734d20a50794e Mon Sep 17 00:00:00 2001 From: William Poulin Date: Wed, 19 Apr 2023 23:06:51 -0400 Subject: [PATCH] fix(rocket-pool): Fix minipool balances --- .../abis/rocket-minipool-manager.json | 225 ++++ .../contracts/abis/rocket-minipool.json | 954 ++++++++++++++ .../contracts/ethers/RocketMinipool.ts | 1157 +++++++++++++++++ .../contracts/ethers/RocketMinipoolManager.ts | 668 +++++++++- .../RocketMinipoolManager__factory.ts | 533 ++++++++ .../factories/RocketMinipool__factory.ts | 972 ++++++++++++++ .../contracts/ethers/factories/index.ts | 1 + .../rocket-pool/contracts/ethers/index.ts | 2 + src/apps/rocket-pool/contracts/index.ts | 15 +- ...pool.minipool.contract-position-fetcher.ts | 52 +- 10 files changed, 4561 insertions(+), 18 deletions(-) create mode 100644 src/apps/rocket-pool/contracts/abis/rocket-minipool.json create mode 100644 src/apps/rocket-pool/contracts/ethers/RocketMinipool.ts create mode 100644 src/apps/rocket-pool/contracts/ethers/factories/RocketMinipool__factory.ts diff --git a/src/apps/rocket-pool/contracts/abis/rocket-minipool-manager.json b/src/apps/rocket-pool/contracts/abis/rocket-minipool-manager.json index 77d308169..1d26708f1 100644 --- a/src/apps/rocket-pool/contracts/abis/rocket-minipool-manager.json +++ b/src/apps/rocket-pool/contracts/abis/rocket-minipool-manager.json @@ -1,9 +1,234 @@ [ + { + "inputs": [ + { "internalType": "contract RocketStorageInterface", "name": "_rocketStorageAddress", "type": "address" } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": true, "internalType": "address", "name": "minipool", "type": "address" }, + { "indexed": true, "internalType": "address", "name": "node", "type": "address" }, + { "indexed": false, "internalType": "uint256", "name": "time", "type": "uint256" } + ], + "name": "MinipoolCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": true, "internalType": "address", "name": "minipool", "type": "address" }, + { "indexed": true, "internalType": "address", "name": "node", "type": "address" }, + { "indexed": false, "internalType": "uint256", "name": "time", "type": "uint256" } + ], + "name": "MinipoolDestroyed", + "type": "event" + }, + { + "inputs": [ + { "internalType": "address", "name": "_nodeAddress", "type": "address" }, + { "internalType": "enum MinipoolDeposit", "name": "_depositType", "type": "uint8" }, + { "internalType": "uint256", "name": "_salt", "type": "uint256" } + ], + "name": "createMinipool", + "outputs": [{ "internalType": "contract RocketMinipoolInterface", "name": "", "type": "address" }], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "_nodeAddress", "type": "address" }], + "name": "decrementNodeStakingMinipoolCount", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { "inputs": [], "name": "destroyMinipool", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "getActiveMinipoolCount", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFinalisedMinipoolCount", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ "internalType": "uint256", "name": "_index", "type": "uint256" }], + "name": "getMinipoolAt", + "outputs": [{ "internalType": "address", "name": "", "type": "address" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ "internalType": "bytes", "name": "_pubkey", "type": "bytes" }], + "name": "getMinipoolByPubkey", + "outputs": [{ "internalType": "address", "name": "", "type": "address" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getMinipoolBytecode", + "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "getMinipoolCount", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "uint256", "name": "offset", "type": "uint256" }, + { "internalType": "uint256", "name": "limit", "type": "uint256" } + ], + "name": "getMinipoolCountPerStatus", + "outputs": [ + { "internalType": "uint256", "name": "initialisedCount", "type": "uint256" }, + { "internalType": "uint256", "name": "prelaunchCount", "type": "uint256" }, + { "internalType": "uint256", "name": "stakingCount", "type": "uint256" }, + { "internalType": "uint256", "name": "withdrawableCount", "type": "uint256" }, + { "internalType": "uint256", "name": "dissolvedCount", "type": "uint256" } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "_minipoolAddress", "type": "address" }], + "name": "getMinipoolDestroyed", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "_minipoolAddress", "type": "address" }], + "name": "getMinipoolExists", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "_minipoolAddress", "type": "address" }], + "name": "getMinipoolPubkey", + "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "_minipoolAddress", "type": "address" }], + "name": "getMinipoolWithdrawalCredentials", + "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [{ "internalType": "address", "name": "_nodeAddress", "type": "address" }], "name": "getNodeActiveMinipoolCount", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "_nodeAddress", "type": "address" }], + "name": "getNodeFinalisedMinipoolCount", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "address", "name": "_nodeAddress", "type": "address" }, + { "internalType": "uint256", "name": "_index", "type": "uint256" } + ], + "name": "getNodeMinipoolAt", + "outputs": [{ "internalType": "address", "name": "", "type": "address" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "_nodeAddress", "type": "address" }], + "name": "getNodeMinipoolCount", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "_nodeAddress", "type": "address" }], + "name": "getNodeStakingMinipoolCount", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "address", "name": "_nodeAddress", "type": "address" }, + { "internalType": "uint256", "name": "_index", "type": "uint256" } + ], + "name": "getNodeValidatingMinipoolAt", + "outputs": [{ "internalType": "address", "name": "", "type": "address" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "_nodeAddress", "type": "address" }], + "name": "getNodeValidatingMinipoolCount", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "uint256", "name": "offset", "type": "uint256" }, + { "internalType": "uint256", "name": "limit", "type": "uint256" } + ], + "name": "getPrelaunchMinipools", + "outputs": [{ "internalType": "address[]", "name": "", "type": "address[]" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getStakingMinipoolCount", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "_nodeAddress", "type": "address" }], + "name": "incrementNodeFinalisedMinipoolCount", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "_nodeAddress", "type": "address" }], + "name": "incrementNodeStakingMinipoolCount", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [{ "internalType": "bytes", "name": "_pubkey", "type": "bytes" }], + "name": "setMinipoolPubkey", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "version", + "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }], + "stateMutability": "view", + "type": "function" } ] diff --git a/src/apps/rocket-pool/contracts/abis/rocket-minipool.json b/src/apps/rocket-pool/contracts/abis/rocket-minipool.json new file mode 100644 index 000000000..c91b4b532 --- /dev/null +++ b/src/apps/rocket-pool/contracts/abis/rocket-minipool.json @@ -0,0 +1,954 @@ +[ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "previousBondAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newBondAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "time", + "type": "uint256" + } + ], + "name": "BondReduced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "time", + "type": "uint256" + } + ], + "name": "EtherDeposited", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "executed", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "nodeAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "userAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "totalBalance", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "time", + "type": "uint256" + } + ], + "name": "EtherWithdrawalProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "time", + "type": "uint256" + } + ], + "name": "EtherWithdrawn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes", + "name": "validatorPubkey", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "validatorSignature", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "depositDataRoot", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "withdrawalCredentials", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "time", + "type": "uint256" + } + ], + "name": "MinipoolPrestaked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "time", + "type": "uint256" + } + ], + "name": "MinipoolPromoted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "time", + "type": "uint256" + } + ], + "name": "MinipoolScrubbed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bondAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "currentBalance", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "time", + "type": "uint256" + } + ], + "name": "MinipoolVacancyPrepared", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "member", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "time", + "type": "uint256" + } + ], + "name": "ScrubVoted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint8", + "name": "status", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "time", + "type": "uint256" + } + ], + "name": "StatusUpdated", + "type": "event" + }, + { + "inputs": [], + "name": "beginUserDistribute", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_balance", + "type": "uint256" + } + ], + "name": "calculateNodeShare", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_balance", + "type": "uint256" + } + ], + "name": "calculateUserShare", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "canPromote", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "canStake", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "close", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "deposit", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "dissolve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "_rewardsOnly", + "type": "bool" + } + ], + "name": "distributeBalance", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "finalise", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getDepositType", + "outputs": [ + { + "internalType": "enum MinipoolDeposit", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFinalised", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getNodeAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getNodeDepositAssigned", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getNodeDepositBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getNodeFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getNodeRefundBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getNodeTopUpValue", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPreLaunchValue", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPreMigrationBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_member", + "type": "address" + } + ], + "name": "getScrubVoted", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getStatus", + "outputs": [ + { + "internalType": "enum MinipoolStatus", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getStatusBlock", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getStatusTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalScrubVotes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getUserDepositAssigned", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getUserDepositAssignedTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getUserDepositBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getUserDistributed", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getVacant", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_nodeAddress", + "type": "address" + } + ], + "name": "initialise", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_bondValue", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "_validatorPubkey", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "_validatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "_depositDataRoot", + "type": "bytes32" + } + ], + "name": "preDeposit", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_bondAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_currentBalance", + "type": "uint256" + } + ], + "name": "prepareVacancy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "promote", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "reduceBondAmount", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "refund", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "slash", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "_validatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "_depositDataRoot", + "type": "bytes32" + } + ], + "name": "stake", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "userDeposit", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "userDistributeAllowed", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "version", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "voteScrub", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oldDelegate", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newDelegate", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "time", + "type": "uint256" + } + ], + "name": "DelegateRolledBack", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oldDelegate", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newDelegate", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "time", + "type": "uint256" + } + ], + "name": "DelegateUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "time", + "type": "uint256" + } + ], + "name": "EtherReceived", + "type": "event" + }, + { + "inputs": [], + "name": "delegateRollback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "delegateUpgrade", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getDelegate", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getEffectiveDelegate", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPreviousDelegate", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getUseLatestDelegate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_rocketStorage", + "type": "address" + }, + { + "internalType": "address", + "name": "_nodeAddress", + "type": "address" + } + ], + "name": "initialise", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "_setting", + "type": "bool" + } + ], + "name": "setUseLatestDelegate", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "fallback" + }, + { + "stateMutability": "payable", + "type": "receive" + } +] diff --git a/src/apps/rocket-pool/contracts/ethers/RocketMinipool.ts b/src/apps/rocket-pool/contracts/ethers/RocketMinipool.ts new file mode 100644 index 000000000..c707805e5 --- /dev/null +++ b/src/apps/rocket-pool/contracts/ethers/RocketMinipool.ts @@ -0,0 +1,1157 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PayableOverrides, + PopulatedTransaction, + Signer, + utils, +} from 'ethers'; +import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi'; +import type { Listener, Provider } from '@ethersproject/providers'; +import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; + +export interface RocketMinipoolInterface extends utils.Interface { + functions: { + 'beginUserDistribute()': FunctionFragment; + 'calculateNodeShare(uint256)': FunctionFragment; + 'calculateUserShare(uint256)': FunctionFragment; + 'canPromote()': FunctionFragment; + 'canStake()': FunctionFragment; + 'close()': FunctionFragment; + 'deposit()': FunctionFragment; + 'dissolve()': FunctionFragment; + 'distributeBalance(bool)': FunctionFragment; + 'finalise()': FunctionFragment; + 'getDepositType()': FunctionFragment; + 'getFinalised()': FunctionFragment; + 'getNodeAddress()': FunctionFragment; + 'getNodeDepositAssigned()': FunctionFragment; + 'getNodeDepositBalance()': FunctionFragment; + 'getNodeFee()': FunctionFragment; + 'getNodeRefundBalance()': FunctionFragment; + 'getNodeTopUpValue()': FunctionFragment; + 'getPreLaunchValue()': FunctionFragment; + 'getPreMigrationBalance()': FunctionFragment; + 'getScrubVoted(address)': FunctionFragment; + 'getStatus()': FunctionFragment; + 'getStatusBlock()': FunctionFragment; + 'getStatusTime()': FunctionFragment; + 'getTotalScrubVotes()': FunctionFragment; + 'getUserDepositAssigned()': FunctionFragment; + 'getUserDepositAssignedTime()': FunctionFragment; + 'getUserDepositBalance()': FunctionFragment; + 'getUserDistributed()': FunctionFragment; + 'getVacant()': FunctionFragment; + 'initialise(address)': FunctionFragment; + 'initialise(address,address)': FunctionFragment; + 'preDeposit(uint256,bytes,bytes,bytes32)': FunctionFragment; + 'prepareVacancy(uint256,uint256)': FunctionFragment; + 'promote()': FunctionFragment; + 'reduceBondAmount()': FunctionFragment; + 'refund()': FunctionFragment; + 'slash()': FunctionFragment; + 'stake(bytes,bytes32)': FunctionFragment; + 'userDeposit()': FunctionFragment; + 'userDistributeAllowed()': FunctionFragment; + 'version()': FunctionFragment; + 'voteScrub()': FunctionFragment; + 'delegateRollback()': FunctionFragment; + 'delegateUpgrade()': FunctionFragment; + 'getDelegate()': FunctionFragment; + 'getEffectiveDelegate()': FunctionFragment; + 'getPreviousDelegate()': FunctionFragment; + 'getUseLatestDelegate()': FunctionFragment; + 'setUseLatestDelegate(bool)': FunctionFragment; + }; + + getFunction( + nameOrSignatureOrTopic: + | 'beginUserDistribute' + | 'calculateNodeShare' + | 'calculateUserShare' + | 'canPromote' + | 'canStake' + | 'close' + | 'deposit' + | 'dissolve' + | 'distributeBalance' + | 'finalise' + | 'getDepositType' + | 'getFinalised' + | 'getNodeAddress' + | 'getNodeDepositAssigned' + | 'getNodeDepositBalance' + | 'getNodeFee' + | 'getNodeRefundBalance' + | 'getNodeTopUpValue' + | 'getPreLaunchValue' + | 'getPreMigrationBalance' + | 'getScrubVoted' + | 'getStatus' + | 'getStatusBlock' + | 'getStatusTime' + | 'getTotalScrubVotes' + | 'getUserDepositAssigned' + | 'getUserDepositAssignedTime' + | 'getUserDepositBalance' + | 'getUserDistributed' + | 'getVacant' + | 'initialise(address)' + | 'initialise(address,address)' + | 'preDeposit' + | 'prepareVacancy' + | 'promote' + | 'reduceBondAmount' + | 'refund' + | 'slash' + | 'stake' + | 'userDeposit' + | 'userDistributeAllowed' + | 'version' + | 'voteScrub' + | 'delegateRollback' + | 'delegateUpgrade' + | 'getDelegate' + | 'getEffectiveDelegate' + | 'getPreviousDelegate' + | 'getUseLatestDelegate' + | 'setUseLatestDelegate', + ): FunctionFragment; + + encodeFunctionData(functionFragment: 'beginUserDistribute', values?: undefined): string; + encodeFunctionData(functionFragment: 'calculateNodeShare', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'calculateUserShare', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'canPromote', values?: undefined): string; + encodeFunctionData(functionFragment: 'canStake', values?: undefined): string; + encodeFunctionData(functionFragment: 'close', values?: undefined): string; + encodeFunctionData(functionFragment: 'deposit', values?: undefined): string; + encodeFunctionData(functionFragment: 'dissolve', values?: undefined): string; + encodeFunctionData(functionFragment: 'distributeBalance', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'finalise', values?: undefined): string; + encodeFunctionData(functionFragment: 'getDepositType', values?: undefined): string; + encodeFunctionData(functionFragment: 'getFinalised', values?: undefined): string; + encodeFunctionData(functionFragment: 'getNodeAddress', values?: undefined): string; + encodeFunctionData(functionFragment: 'getNodeDepositAssigned', values?: undefined): string; + encodeFunctionData(functionFragment: 'getNodeDepositBalance', values?: undefined): string; + encodeFunctionData(functionFragment: 'getNodeFee', values?: undefined): string; + encodeFunctionData(functionFragment: 'getNodeRefundBalance', values?: undefined): string; + encodeFunctionData(functionFragment: 'getNodeTopUpValue', values?: undefined): string; + encodeFunctionData(functionFragment: 'getPreLaunchValue', values?: undefined): string; + encodeFunctionData(functionFragment: 'getPreMigrationBalance', values?: undefined): string; + encodeFunctionData(functionFragment: 'getScrubVoted', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'getStatus', values?: undefined): string; + encodeFunctionData(functionFragment: 'getStatusBlock', values?: undefined): string; + encodeFunctionData(functionFragment: 'getStatusTime', values?: undefined): string; + encodeFunctionData(functionFragment: 'getTotalScrubVotes', values?: undefined): string; + encodeFunctionData(functionFragment: 'getUserDepositAssigned', values?: undefined): string; + encodeFunctionData(functionFragment: 'getUserDepositAssignedTime', values?: undefined): string; + encodeFunctionData(functionFragment: 'getUserDepositBalance', values?: undefined): string; + encodeFunctionData(functionFragment: 'getUserDistributed', values?: undefined): string; + encodeFunctionData(functionFragment: 'getVacant', values?: undefined): string; + encodeFunctionData(functionFragment: 'initialise(address)', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'initialise(address,address)', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'preDeposit', + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData( + functionFragment: 'prepareVacancy', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'promote', values?: undefined): string; + encodeFunctionData(functionFragment: 'reduceBondAmount', values?: undefined): string; + encodeFunctionData(functionFragment: 'refund', values?: undefined): string; + encodeFunctionData(functionFragment: 'slash', values?: undefined): string; + encodeFunctionData(functionFragment: 'stake', values: [PromiseOrValue, PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'userDeposit', values?: undefined): string; + encodeFunctionData(functionFragment: 'userDistributeAllowed', values?: undefined): string; + encodeFunctionData(functionFragment: 'version', values?: undefined): string; + encodeFunctionData(functionFragment: 'voteScrub', values?: undefined): string; + encodeFunctionData(functionFragment: 'delegateRollback', values?: undefined): string; + encodeFunctionData(functionFragment: 'delegateUpgrade', values?: undefined): string; + encodeFunctionData(functionFragment: 'getDelegate', values?: undefined): string; + encodeFunctionData(functionFragment: 'getEffectiveDelegate', values?: undefined): string; + encodeFunctionData(functionFragment: 'getPreviousDelegate', values?: undefined): string; + encodeFunctionData(functionFragment: 'getUseLatestDelegate', values?: undefined): string; + encodeFunctionData(functionFragment: 'setUseLatestDelegate', values: [PromiseOrValue]): string; + + decodeFunctionResult(functionFragment: 'beginUserDistribute', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'calculateNodeShare', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'calculateUserShare', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'canPromote', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'canStake', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'close', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'deposit', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'dissolve', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'distributeBalance', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'finalise', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getDepositType', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getFinalised', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getNodeAddress', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getNodeDepositAssigned', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getNodeDepositBalance', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getNodeFee', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getNodeRefundBalance', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getNodeTopUpValue', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getPreLaunchValue', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getPreMigrationBalance', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getScrubVoted', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getStatus', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getStatusBlock', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getStatusTime', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getTotalScrubVotes', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getUserDepositAssigned', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getUserDepositAssignedTime', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getUserDepositBalance', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getUserDistributed', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getVacant', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'initialise(address)', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'initialise(address,address)', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'preDeposit', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'prepareVacancy', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'promote', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'reduceBondAmount', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'refund', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'slash', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'stake', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'userDeposit', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'userDistributeAllowed', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'version', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'voteScrub', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'delegateRollback', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'delegateUpgrade', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getDelegate', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getEffectiveDelegate', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getPreviousDelegate', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getUseLatestDelegate', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'setUseLatestDelegate', data: BytesLike): Result; + + events: { + 'BondReduced(uint256,uint256,uint256)': EventFragment; + 'EtherDeposited(address,uint256,uint256)': EventFragment; + 'EtherWithdrawalProcessed(address,uint256,uint256,uint256,uint256)': EventFragment; + 'EtherWithdrawn(address,uint256,uint256)': EventFragment; + 'MinipoolPrestaked(bytes,bytes,bytes32,uint256,bytes,uint256)': EventFragment; + 'MinipoolPromoted(uint256)': EventFragment; + 'MinipoolScrubbed(uint256)': EventFragment; + 'MinipoolVacancyPrepared(uint256,uint256,uint256)': EventFragment; + 'ScrubVoted(address,uint256)': EventFragment; + 'StatusUpdated(uint8,uint256)': EventFragment; + 'DelegateRolledBack(address,address,uint256)': EventFragment; + 'DelegateUpgraded(address,address,uint256)': EventFragment; + 'EtherReceived(address,uint256,uint256)': EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: 'BondReduced'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'EtherDeposited'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'EtherWithdrawalProcessed'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'EtherWithdrawn'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'MinipoolPrestaked'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'MinipoolPromoted'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'MinipoolScrubbed'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'MinipoolVacancyPrepared'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'ScrubVoted'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'StatusUpdated'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'DelegateRolledBack'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'DelegateUpgraded'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'EtherReceived'): EventFragment; +} + +export interface BondReducedEventObject { + previousBondAmount: BigNumber; + newBondAmount: BigNumber; + time: BigNumber; +} +export type BondReducedEvent = TypedEvent<[BigNumber, BigNumber, BigNumber], BondReducedEventObject>; + +export type BondReducedEventFilter = TypedEventFilter; + +export interface EtherDepositedEventObject { + from: string; + amount: BigNumber; + time: BigNumber; +} +export type EtherDepositedEvent = TypedEvent<[string, BigNumber, BigNumber], EtherDepositedEventObject>; + +export type EtherDepositedEventFilter = TypedEventFilter; + +export interface EtherWithdrawalProcessedEventObject { + executed: string; + nodeAmount: BigNumber; + userAmount: BigNumber; + totalBalance: BigNumber; + time: BigNumber; +} +export type EtherWithdrawalProcessedEvent = TypedEvent< + [string, BigNumber, BigNumber, BigNumber, BigNumber], + EtherWithdrawalProcessedEventObject +>; + +export type EtherWithdrawalProcessedEventFilter = TypedEventFilter; + +export interface EtherWithdrawnEventObject { + to: string; + amount: BigNumber; + time: BigNumber; +} +export type EtherWithdrawnEvent = TypedEvent<[string, BigNumber, BigNumber], EtherWithdrawnEventObject>; + +export type EtherWithdrawnEventFilter = TypedEventFilter; + +export interface MinipoolPrestakedEventObject { + validatorPubkey: string; + validatorSignature: string; + depositDataRoot: string; + amount: BigNumber; + withdrawalCredentials: string; + time: BigNumber; +} +export type MinipoolPrestakedEvent = TypedEvent< + [string, string, string, BigNumber, string, BigNumber], + MinipoolPrestakedEventObject +>; + +export type MinipoolPrestakedEventFilter = TypedEventFilter; + +export interface MinipoolPromotedEventObject { + time: BigNumber; +} +export type MinipoolPromotedEvent = TypedEvent<[BigNumber], MinipoolPromotedEventObject>; + +export type MinipoolPromotedEventFilter = TypedEventFilter; + +export interface MinipoolScrubbedEventObject { + time: BigNumber; +} +export type MinipoolScrubbedEvent = TypedEvent<[BigNumber], MinipoolScrubbedEventObject>; + +export type MinipoolScrubbedEventFilter = TypedEventFilter; + +export interface MinipoolVacancyPreparedEventObject { + bondAmount: BigNumber; + currentBalance: BigNumber; + time: BigNumber; +} +export type MinipoolVacancyPreparedEvent = TypedEvent< + [BigNumber, BigNumber, BigNumber], + MinipoolVacancyPreparedEventObject +>; + +export type MinipoolVacancyPreparedEventFilter = TypedEventFilter; + +export interface ScrubVotedEventObject { + member: string; + time: BigNumber; +} +export type ScrubVotedEvent = TypedEvent<[string, BigNumber], ScrubVotedEventObject>; + +export type ScrubVotedEventFilter = TypedEventFilter; + +export interface StatusUpdatedEventObject { + status: number; + time: BigNumber; +} +export type StatusUpdatedEvent = TypedEvent<[number, BigNumber], StatusUpdatedEventObject>; + +export type StatusUpdatedEventFilter = TypedEventFilter; + +export interface DelegateRolledBackEventObject { + oldDelegate: string; + newDelegate: string; + time: BigNumber; +} +export type DelegateRolledBackEvent = TypedEvent<[string, string, BigNumber], DelegateRolledBackEventObject>; + +export type DelegateRolledBackEventFilter = TypedEventFilter; + +export interface DelegateUpgradedEventObject { + oldDelegate: string; + newDelegate: string; + time: BigNumber; +} +export type DelegateUpgradedEvent = TypedEvent<[string, string, BigNumber], DelegateUpgradedEventObject>; + +export type DelegateUpgradedEventFilter = TypedEventFilter; + +export interface EtherReceivedEventObject { + from: string; + amount: BigNumber; + time: BigNumber; +} +export type EtherReceivedEvent = TypedEvent<[string, BigNumber, BigNumber], EtherReceivedEventObject>; + +export type EtherReceivedEventFilter = TypedEventFilter; + +export interface RocketMinipool extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: RocketMinipoolInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined, + ): Promise>; + + listeners(eventFilter?: TypedEventFilter): Array>; + listeners(eventName?: string): Array; + removeAllListeners(eventFilter: TypedEventFilter): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + beginUserDistribute(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + calculateNodeShare(_balance: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + calculateUserShare(_balance: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + canPromote(overrides?: CallOverrides): Promise<[boolean]>; + + canStake(overrides?: CallOverrides): Promise<[boolean]>; + + close(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + deposit(overrides?: PayableOverrides & { from?: PromiseOrValue }): Promise; + + dissolve(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + distributeBalance( + _rewardsOnly: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + finalise(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + getDepositType(overrides?: CallOverrides): Promise<[number]>; + + getFinalised(overrides?: CallOverrides): Promise<[boolean]>; + + getNodeAddress(overrides?: CallOverrides): Promise<[string]>; + + getNodeDepositAssigned(overrides?: CallOverrides): Promise<[boolean]>; + + getNodeDepositBalance(overrides?: CallOverrides): Promise<[BigNumber]>; + + getNodeFee(overrides?: CallOverrides): Promise<[BigNumber]>; + + getNodeRefundBalance(overrides?: CallOverrides): Promise<[BigNumber]>; + + getNodeTopUpValue(overrides?: CallOverrides): Promise<[BigNumber]>; + + getPreLaunchValue(overrides?: CallOverrides): Promise<[BigNumber]>; + + getPreMigrationBalance(overrides?: CallOverrides): Promise<[BigNumber]>; + + getScrubVoted(_member: PromiseOrValue, overrides?: CallOverrides): Promise<[boolean]>; + + getStatus(overrides?: CallOverrides): Promise<[number]>; + + getStatusBlock(overrides?: CallOverrides): Promise<[BigNumber]>; + + getStatusTime(overrides?: CallOverrides): Promise<[BigNumber]>; + + getTotalScrubVotes(overrides?: CallOverrides): Promise<[BigNumber]>; + + getUserDepositAssigned(overrides?: CallOverrides): Promise<[boolean]>; + + getUserDepositAssignedTime(overrides?: CallOverrides): Promise<[BigNumber]>; + + getUserDepositBalance(overrides?: CallOverrides): Promise<[BigNumber]>; + + getUserDistributed(overrides?: CallOverrides): Promise<[boolean]>; + + getVacant(overrides?: CallOverrides): Promise<[boolean]>; + + 'initialise(address)'( + _nodeAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + 'initialise(address,address)'( + _rocketStorage: PromiseOrValue, + _nodeAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + preDeposit( + _bondValue: PromiseOrValue, + _validatorPubkey: PromiseOrValue, + _validatorSignature: PromiseOrValue, + _depositDataRoot: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + prepareVacancy( + _bondAmount: PromiseOrValue, + _currentBalance: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + promote(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + reduceBondAmount(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + refund(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + slash(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + stake( + _validatorSignature: PromiseOrValue, + _depositDataRoot: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + userDeposit(overrides?: PayableOverrides & { from?: PromiseOrValue }): Promise; + + userDistributeAllowed(overrides?: CallOverrides): Promise<[boolean]>; + + version(overrides?: CallOverrides): Promise<[number]>; + + voteScrub(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + delegateRollback(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + delegateUpgrade(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + getDelegate(overrides?: CallOverrides): Promise<[string]>; + + getEffectiveDelegate(overrides?: CallOverrides): Promise<[string]>; + + getPreviousDelegate(overrides?: CallOverrides): Promise<[string]>; + + getUseLatestDelegate(overrides?: CallOverrides): Promise<[boolean]>; + + setUseLatestDelegate( + _setting: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; + + beginUserDistribute(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + calculateNodeShare(_balance: PromiseOrValue, overrides?: CallOverrides): Promise; + + calculateUserShare(_balance: PromiseOrValue, overrides?: CallOverrides): Promise; + + canPromote(overrides?: CallOverrides): Promise; + + canStake(overrides?: CallOverrides): Promise; + + close(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + deposit(overrides?: PayableOverrides & { from?: PromiseOrValue }): Promise; + + dissolve(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + distributeBalance( + _rewardsOnly: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + finalise(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + getDepositType(overrides?: CallOverrides): Promise; + + getFinalised(overrides?: CallOverrides): Promise; + + getNodeAddress(overrides?: CallOverrides): Promise; + + getNodeDepositAssigned(overrides?: CallOverrides): Promise; + + getNodeDepositBalance(overrides?: CallOverrides): Promise; + + getNodeFee(overrides?: CallOverrides): Promise; + + getNodeRefundBalance(overrides?: CallOverrides): Promise; + + getNodeTopUpValue(overrides?: CallOverrides): Promise; + + getPreLaunchValue(overrides?: CallOverrides): Promise; + + getPreMigrationBalance(overrides?: CallOverrides): Promise; + + getScrubVoted(_member: PromiseOrValue, overrides?: CallOverrides): Promise; + + getStatus(overrides?: CallOverrides): Promise; + + getStatusBlock(overrides?: CallOverrides): Promise; + + getStatusTime(overrides?: CallOverrides): Promise; + + getTotalScrubVotes(overrides?: CallOverrides): Promise; + + getUserDepositAssigned(overrides?: CallOverrides): Promise; + + getUserDepositAssignedTime(overrides?: CallOverrides): Promise; + + getUserDepositBalance(overrides?: CallOverrides): Promise; + + getUserDistributed(overrides?: CallOverrides): Promise; + + getVacant(overrides?: CallOverrides): Promise; + + 'initialise(address)'( + _nodeAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + 'initialise(address,address)'( + _rocketStorage: PromiseOrValue, + _nodeAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + preDeposit( + _bondValue: PromiseOrValue, + _validatorPubkey: PromiseOrValue, + _validatorSignature: PromiseOrValue, + _depositDataRoot: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + prepareVacancy( + _bondAmount: PromiseOrValue, + _currentBalance: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + promote(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + reduceBondAmount(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + refund(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + slash(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + stake( + _validatorSignature: PromiseOrValue, + _depositDataRoot: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + userDeposit(overrides?: PayableOverrides & { from?: PromiseOrValue }): Promise; + + userDistributeAllowed(overrides?: CallOverrides): Promise; + + version(overrides?: CallOverrides): Promise; + + voteScrub(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + delegateRollback(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + delegateUpgrade(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + getDelegate(overrides?: CallOverrides): Promise; + + getEffectiveDelegate(overrides?: CallOverrides): Promise; + + getPreviousDelegate(overrides?: CallOverrides): Promise; + + getUseLatestDelegate(overrides?: CallOverrides): Promise; + + setUseLatestDelegate( + _setting: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + callStatic: { + beginUserDistribute(overrides?: CallOverrides): Promise; + + calculateNodeShare(_balance: PromiseOrValue, overrides?: CallOverrides): Promise; + + calculateUserShare(_balance: PromiseOrValue, overrides?: CallOverrides): Promise; + + canPromote(overrides?: CallOverrides): Promise; + + canStake(overrides?: CallOverrides): Promise; + + close(overrides?: CallOverrides): Promise; + + deposit(overrides?: CallOverrides): Promise; + + dissolve(overrides?: CallOverrides): Promise; + + distributeBalance(_rewardsOnly: PromiseOrValue, overrides?: CallOverrides): Promise; + + finalise(overrides?: CallOverrides): Promise; + + getDepositType(overrides?: CallOverrides): Promise; + + getFinalised(overrides?: CallOverrides): Promise; + + getNodeAddress(overrides?: CallOverrides): Promise; + + getNodeDepositAssigned(overrides?: CallOverrides): Promise; + + getNodeDepositBalance(overrides?: CallOverrides): Promise; + + getNodeFee(overrides?: CallOverrides): Promise; + + getNodeRefundBalance(overrides?: CallOverrides): Promise; + + getNodeTopUpValue(overrides?: CallOverrides): Promise; + + getPreLaunchValue(overrides?: CallOverrides): Promise; + + getPreMigrationBalance(overrides?: CallOverrides): Promise; + + getScrubVoted(_member: PromiseOrValue, overrides?: CallOverrides): Promise; + + getStatus(overrides?: CallOverrides): Promise; + + getStatusBlock(overrides?: CallOverrides): Promise; + + getStatusTime(overrides?: CallOverrides): Promise; + + getTotalScrubVotes(overrides?: CallOverrides): Promise; + + getUserDepositAssigned(overrides?: CallOverrides): Promise; + + getUserDepositAssignedTime(overrides?: CallOverrides): Promise; + + getUserDepositBalance(overrides?: CallOverrides): Promise; + + getUserDistributed(overrides?: CallOverrides): Promise; + + getVacant(overrides?: CallOverrides): Promise; + + 'initialise(address)'(_nodeAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + 'initialise(address,address)'( + _rocketStorage: PromiseOrValue, + _nodeAddress: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + preDeposit( + _bondValue: PromiseOrValue, + _validatorPubkey: PromiseOrValue, + _validatorSignature: PromiseOrValue, + _depositDataRoot: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + prepareVacancy( + _bondAmount: PromiseOrValue, + _currentBalance: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + promote(overrides?: CallOverrides): Promise; + + reduceBondAmount(overrides?: CallOverrides): Promise; + + refund(overrides?: CallOverrides): Promise; + + slash(overrides?: CallOverrides): Promise; + + stake( + _validatorSignature: PromiseOrValue, + _depositDataRoot: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + userDeposit(overrides?: CallOverrides): Promise; + + userDistributeAllowed(overrides?: CallOverrides): Promise; + + version(overrides?: CallOverrides): Promise; + + voteScrub(overrides?: CallOverrides): Promise; + + delegateRollback(overrides?: CallOverrides): Promise; + + delegateUpgrade(overrides?: CallOverrides): Promise; + + getDelegate(overrides?: CallOverrides): Promise; + + getEffectiveDelegate(overrides?: CallOverrides): Promise; + + getPreviousDelegate(overrides?: CallOverrides): Promise; + + getUseLatestDelegate(overrides?: CallOverrides): Promise; + + setUseLatestDelegate(_setting: PromiseOrValue, overrides?: CallOverrides): Promise; + }; + + filters: { + 'BondReduced(uint256,uint256,uint256)'( + previousBondAmount?: null, + newBondAmount?: null, + time?: null, + ): BondReducedEventFilter; + BondReduced(previousBondAmount?: null, newBondAmount?: null, time?: null): BondReducedEventFilter; + + 'EtherDeposited(address,uint256,uint256)'( + from?: PromiseOrValue | null, + amount?: null, + time?: null, + ): EtherDepositedEventFilter; + EtherDeposited(from?: PromiseOrValue | null, amount?: null, time?: null): EtherDepositedEventFilter; + + 'EtherWithdrawalProcessed(address,uint256,uint256,uint256,uint256)'( + executed?: PromiseOrValue | null, + nodeAmount?: null, + userAmount?: null, + totalBalance?: null, + time?: null, + ): EtherWithdrawalProcessedEventFilter; + EtherWithdrawalProcessed( + executed?: PromiseOrValue | null, + nodeAmount?: null, + userAmount?: null, + totalBalance?: null, + time?: null, + ): EtherWithdrawalProcessedEventFilter; + + 'EtherWithdrawn(address,uint256,uint256)'( + to?: PromiseOrValue | null, + amount?: null, + time?: null, + ): EtherWithdrawnEventFilter; + EtherWithdrawn(to?: PromiseOrValue | null, amount?: null, time?: null): EtherWithdrawnEventFilter; + + 'MinipoolPrestaked(bytes,bytes,bytes32,uint256,bytes,uint256)'( + validatorPubkey?: null, + validatorSignature?: null, + depositDataRoot?: null, + amount?: null, + withdrawalCredentials?: null, + time?: null, + ): MinipoolPrestakedEventFilter; + MinipoolPrestaked( + validatorPubkey?: null, + validatorSignature?: null, + depositDataRoot?: null, + amount?: null, + withdrawalCredentials?: null, + time?: null, + ): MinipoolPrestakedEventFilter; + + 'MinipoolPromoted(uint256)'(time?: null): MinipoolPromotedEventFilter; + MinipoolPromoted(time?: null): MinipoolPromotedEventFilter; + + 'MinipoolScrubbed(uint256)'(time?: null): MinipoolScrubbedEventFilter; + MinipoolScrubbed(time?: null): MinipoolScrubbedEventFilter; + + 'MinipoolVacancyPrepared(uint256,uint256,uint256)'( + bondAmount?: null, + currentBalance?: null, + time?: null, + ): MinipoolVacancyPreparedEventFilter; + MinipoolVacancyPrepared(bondAmount?: null, currentBalance?: null, time?: null): MinipoolVacancyPreparedEventFilter; + + 'ScrubVoted(address,uint256)'(member?: PromiseOrValue | null, time?: null): ScrubVotedEventFilter; + ScrubVoted(member?: PromiseOrValue | null, time?: null): ScrubVotedEventFilter; + + 'StatusUpdated(uint8,uint256)'(status?: PromiseOrValue | null, time?: null): StatusUpdatedEventFilter; + StatusUpdated(status?: PromiseOrValue | null, time?: null): StatusUpdatedEventFilter; + + 'DelegateRolledBack(address,address,uint256)'( + oldDelegate?: null, + newDelegate?: null, + time?: null, + ): DelegateRolledBackEventFilter; + DelegateRolledBack(oldDelegate?: null, newDelegate?: null, time?: null): DelegateRolledBackEventFilter; + + 'DelegateUpgraded(address,address,uint256)'( + oldDelegate?: null, + newDelegate?: null, + time?: null, + ): DelegateUpgradedEventFilter; + DelegateUpgraded(oldDelegate?: null, newDelegate?: null, time?: null): DelegateUpgradedEventFilter; + + 'EtherReceived(address,uint256,uint256)'( + from?: PromiseOrValue | null, + amount?: null, + time?: null, + ): EtherReceivedEventFilter; + EtherReceived(from?: PromiseOrValue | null, amount?: null, time?: null): EtherReceivedEventFilter; + }; + + estimateGas: { + beginUserDistribute(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + calculateNodeShare(_balance: PromiseOrValue, overrides?: CallOverrides): Promise; + + calculateUserShare(_balance: PromiseOrValue, overrides?: CallOverrides): Promise; + + canPromote(overrides?: CallOverrides): Promise; + + canStake(overrides?: CallOverrides): Promise; + + close(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + deposit(overrides?: PayableOverrides & { from?: PromiseOrValue }): Promise; + + dissolve(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + distributeBalance( + _rewardsOnly: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + finalise(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + getDepositType(overrides?: CallOverrides): Promise; + + getFinalised(overrides?: CallOverrides): Promise; + + getNodeAddress(overrides?: CallOverrides): Promise; + + getNodeDepositAssigned(overrides?: CallOverrides): Promise; + + getNodeDepositBalance(overrides?: CallOverrides): Promise; + + getNodeFee(overrides?: CallOverrides): Promise; + + getNodeRefundBalance(overrides?: CallOverrides): Promise; + + getNodeTopUpValue(overrides?: CallOverrides): Promise; + + getPreLaunchValue(overrides?: CallOverrides): Promise; + + getPreMigrationBalance(overrides?: CallOverrides): Promise; + + getScrubVoted(_member: PromiseOrValue, overrides?: CallOverrides): Promise; + + getStatus(overrides?: CallOverrides): Promise; + + getStatusBlock(overrides?: CallOverrides): Promise; + + getStatusTime(overrides?: CallOverrides): Promise; + + getTotalScrubVotes(overrides?: CallOverrides): Promise; + + getUserDepositAssigned(overrides?: CallOverrides): Promise; + + getUserDepositAssignedTime(overrides?: CallOverrides): Promise; + + getUserDepositBalance(overrides?: CallOverrides): Promise; + + getUserDistributed(overrides?: CallOverrides): Promise; + + getVacant(overrides?: CallOverrides): Promise; + + 'initialise(address)'( + _nodeAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + 'initialise(address,address)'( + _rocketStorage: PromiseOrValue, + _nodeAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + preDeposit( + _bondValue: PromiseOrValue, + _validatorPubkey: PromiseOrValue, + _validatorSignature: PromiseOrValue, + _depositDataRoot: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + prepareVacancy( + _bondAmount: PromiseOrValue, + _currentBalance: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + promote(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + reduceBondAmount(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + refund(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + slash(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + stake( + _validatorSignature: PromiseOrValue, + _depositDataRoot: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + userDeposit(overrides?: PayableOverrides & { from?: PromiseOrValue }): Promise; + + userDistributeAllowed(overrides?: CallOverrides): Promise; + + version(overrides?: CallOverrides): Promise; + + voteScrub(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + delegateRollback(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + delegateUpgrade(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + getDelegate(overrides?: CallOverrides): Promise; + + getEffectiveDelegate(overrides?: CallOverrides): Promise; + + getPreviousDelegate(overrides?: CallOverrides): Promise; + + getUseLatestDelegate(overrides?: CallOverrides): Promise; + + setUseLatestDelegate( + _setting: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; + + populateTransaction: { + beginUserDistribute(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + calculateNodeShare( + _balance: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + calculateUserShare( + _balance: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + canPromote(overrides?: CallOverrides): Promise; + + canStake(overrides?: CallOverrides): Promise; + + close(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + deposit(overrides?: PayableOverrides & { from?: PromiseOrValue }): Promise; + + dissolve(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + distributeBalance( + _rewardsOnly: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + finalise(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + getDepositType(overrides?: CallOverrides): Promise; + + getFinalised(overrides?: CallOverrides): Promise; + + getNodeAddress(overrides?: CallOverrides): Promise; + + getNodeDepositAssigned(overrides?: CallOverrides): Promise; + + getNodeDepositBalance(overrides?: CallOverrides): Promise; + + getNodeFee(overrides?: CallOverrides): Promise; + + getNodeRefundBalance(overrides?: CallOverrides): Promise; + + getNodeTopUpValue(overrides?: CallOverrides): Promise; + + getPreLaunchValue(overrides?: CallOverrides): Promise; + + getPreMigrationBalance(overrides?: CallOverrides): Promise; + + getScrubVoted(_member: PromiseOrValue, overrides?: CallOverrides): Promise; + + getStatus(overrides?: CallOverrides): Promise; + + getStatusBlock(overrides?: CallOverrides): Promise; + + getStatusTime(overrides?: CallOverrides): Promise; + + getTotalScrubVotes(overrides?: CallOverrides): Promise; + + getUserDepositAssigned(overrides?: CallOverrides): Promise; + + getUserDepositAssignedTime(overrides?: CallOverrides): Promise; + + getUserDepositBalance(overrides?: CallOverrides): Promise; + + getUserDistributed(overrides?: CallOverrides): Promise; + + getVacant(overrides?: CallOverrides): Promise; + + 'initialise(address)'( + _nodeAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + 'initialise(address,address)'( + _rocketStorage: PromiseOrValue, + _nodeAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + preDeposit( + _bondValue: PromiseOrValue, + _validatorPubkey: PromiseOrValue, + _validatorSignature: PromiseOrValue, + _depositDataRoot: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + prepareVacancy( + _bondAmount: PromiseOrValue, + _currentBalance: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + promote(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + reduceBondAmount(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + refund(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + slash(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + stake( + _validatorSignature: PromiseOrValue, + _depositDataRoot: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + userDeposit(overrides?: PayableOverrides & { from?: PromiseOrValue }): Promise; + + userDistributeAllowed(overrides?: CallOverrides): Promise; + + version(overrides?: CallOverrides): Promise; + + voteScrub(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + delegateRollback(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + delegateUpgrade(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + getDelegate(overrides?: CallOverrides): Promise; + + getEffectiveDelegate(overrides?: CallOverrides): Promise; + + getPreviousDelegate(overrides?: CallOverrides): Promise; + + getUseLatestDelegate(overrides?: CallOverrides): Promise; + + setUseLatestDelegate( + _setting: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; +} diff --git a/src/apps/rocket-pool/contracts/ethers/RocketMinipoolManager.ts b/src/apps/rocket-pool/contracts/ethers/RocketMinipoolManager.ts index 5ff54c8d3..7098f3d35 100644 --- a/src/apps/rocket-pool/contracts/ethers/RocketMinipoolManager.ts +++ b/src/apps/rocket-pool/contracts/ethers/RocketMinipoolManager.ts @@ -1,24 +1,181 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ -import type { BaseContract, BigNumber, BytesLike, CallOverrides, PopulatedTransaction, Signer, utils } from 'ethers'; -import type { FunctionFragment, Result } from '@ethersproject/abi'; +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PopulatedTransaction, + Signer, + utils, +} from 'ethers'; +import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi'; import type { Listener, Provider } from '@ethersproject/providers'; import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; export interface RocketMinipoolManagerInterface extends utils.Interface { functions: { + 'createMinipool(address,uint8,uint256)': FunctionFragment; + 'decrementNodeStakingMinipoolCount(address)': FunctionFragment; + 'destroyMinipool()': FunctionFragment; + 'getActiveMinipoolCount()': FunctionFragment; + 'getFinalisedMinipoolCount()': FunctionFragment; + 'getMinipoolAt(uint256)': FunctionFragment; + 'getMinipoolByPubkey(bytes)': FunctionFragment; + 'getMinipoolBytecode()': FunctionFragment; + 'getMinipoolCount()': FunctionFragment; + 'getMinipoolCountPerStatus(uint256,uint256)': FunctionFragment; + 'getMinipoolDestroyed(address)': FunctionFragment; + 'getMinipoolExists(address)': FunctionFragment; + 'getMinipoolPubkey(address)': FunctionFragment; + 'getMinipoolWithdrawalCredentials(address)': FunctionFragment; 'getNodeActiveMinipoolCount(address)': FunctionFragment; + 'getNodeFinalisedMinipoolCount(address)': FunctionFragment; + 'getNodeMinipoolAt(address,uint256)': FunctionFragment; + 'getNodeMinipoolCount(address)': FunctionFragment; + 'getNodeStakingMinipoolCount(address)': FunctionFragment; + 'getNodeValidatingMinipoolAt(address,uint256)': FunctionFragment; + 'getNodeValidatingMinipoolCount(address)': FunctionFragment; + 'getPrelaunchMinipools(uint256,uint256)': FunctionFragment; + 'getStakingMinipoolCount()': FunctionFragment; + 'incrementNodeFinalisedMinipoolCount(address)': FunctionFragment; + 'incrementNodeStakingMinipoolCount(address)': FunctionFragment; + 'setMinipoolPubkey(bytes)': FunctionFragment; + 'version()': FunctionFragment; }; - getFunction(nameOrSignatureOrTopic: 'getNodeActiveMinipoolCount'): FunctionFragment; + getFunction( + nameOrSignatureOrTopic: + | 'createMinipool' + | 'decrementNodeStakingMinipoolCount' + | 'destroyMinipool' + | 'getActiveMinipoolCount' + | 'getFinalisedMinipoolCount' + | 'getMinipoolAt' + | 'getMinipoolByPubkey' + | 'getMinipoolBytecode' + | 'getMinipoolCount' + | 'getMinipoolCountPerStatus' + | 'getMinipoolDestroyed' + | 'getMinipoolExists' + | 'getMinipoolPubkey' + | 'getMinipoolWithdrawalCredentials' + | 'getNodeActiveMinipoolCount' + | 'getNodeFinalisedMinipoolCount' + | 'getNodeMinipoolAt' + | 'getNodeMinipoolCount' + | 'getNodeStakingMinipoolCount' + | 'getNodeValidatingMinipoolAt' + | 'getNodeValidatingMinipoolCount' + | 'getPrelaunchMinipools' + | 'getStakingMinipoolCount' + | 'incrementNodeFinalisedMinipoolCount' + | 'incrementNodeStakingMinipoolCount' + | 'setMinipoolPubkey' + | 'version', + ): FunctionFragment; + encodeFunctionData( + functionFragment: 'createMinipool', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'decrementNodeStakingMinipoolCount', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'destroyMinipool', values?: undefined): string; + encodeFunctionData(functionFragment: 'getActiveMinipoolCount', values?: undefined): string; + encodeFunctionData(functionFragment: 'getFinalisedMinipoolCount', values?: undefined): string; + encodeFunctionData(functionFragment: 'getMinipoolAt', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'getMinipoolByPubkey', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'getMinipoolBytecode', values?: undefined): string; + encodeFunctionData(functionFragment: 'getMinipoolCount', values?: undefined): string; + encodeFunctionData( + functionFragment: 'getMinipoolCountPerStatus', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'getMinipoolDestroyed', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'getMinipoolExists', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'getMinipoolPubkey', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'getMinipoolWithdrawalCredentials', values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: 'getNodeActiveMinipoolCount', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'getNodeFinalisedMinipoolCount', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'getNodeMinipoolAt', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'getNodeMinipoolCount', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'getNodeStakingMinipoolCount', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'getNodeValidatingMinipoolAt', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'getNodeValidatingMinipoolCount', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'getPrelaunchMinipools', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'getStakingMinipoolCount', values?: undefined): string; + encodeFunctionData(functionFragment: 'incrementNodeFinalisedMinipoolCount', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'incrementNodeStakingMinipoolCount', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'setMinipoolPubkey', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'version', values?: undefined): string; + decodeFunctionResult(functionFragment: 'createMinipool', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'decrementNodeStakingMinipoolCount', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'destroyMinipool', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getActiveMinipoolCount', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getFinalisedMinipoolCount', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getMinipoolAt', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getMinipoolByPubkey', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getMinipoolBytecode', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getMinipoolCount', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getMinipoolCountPerStatus', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getMinipoolDestroyed', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getMinipoolExists', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getMinipoolPubkey', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getMinipoolWithdrawalCredentials', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'getNodeActiveMinipoolCount', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getNodeFinalisedMinipoolCount', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getNodeMinipoolAt', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getNodeMinipoolCount', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getNodeStakingMinipoolCount', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getNodeValidatingMinipoolAt', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getNodeValidatingMinipoolCount', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getPrelaunchMinipools', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getStakingMinipoolCount', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'incrementNodeFinalisedMinipoolCount', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'incrementNodeStakingMinipoolCount', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'setMinipoolPubkey', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'version', data: BytesLike): Result; - events: {}; + events: { + 'MinipoolCreated(address,address,uint256)': EventFragment; + 'MinipoolDestroyed(address,address,uint256)': EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: 'MinipoolCreated'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'MinipoolDestroyed'): EventFragment; +} + +export interface MinipoolCreatedEventObject { + minipool: string; + node: string; + time: BigNumber; +} +export type MinipoolCreatedEvent = TypedEvent<[string, string, BigNumber], MinipoolCreatedEventObject>; + +export type MinipoolCreatedEventFilter = TypedEventFilter; + +export interface MinipoolDestroyedEventObject { + minipool: string; + node: string; + time: BigNumber; } +export type MinipoolDestroyedEvent = TypedEvent<[string, string, BigNumber], MinipoolDestroyedEventObject>; + +export type MinipoolDestroyedEventFilter = TypedEventFilter; export interface RocketMinipoolManager extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; @@ -43,25 +200,526 @@ export interface RocketMinipoolManager extends BaseContract { removeListener: OnEvent; functions: { + createMinipool( + _nodeAddress: PromiseOrValue, + _depositType: PromiseOrValue, + _salt: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + decrementNodeStakingMinipoolCount( + _nodeAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + destroyMinipool(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + getActiveMinipoolCount(overrides?: CallOverrides): Promise<[BigNumber]>; + + getFinalisedMinipoolCount(overrides?: CallOverrides): Promise<[BigNumber]>; + + getMinipoolAt(_index: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; + + getMinipoolByPubkey(_pubkey: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; + + getMinipoolBytecode(overrides?: CallOverrides): Promise<[string]>; + + getMinipoolCount(overrides?: CallOverrides): Promise<[BigNumber]>; + + getMinipoolCountPerStatus( + offset: PromiseOrValue, + limit: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & { + initialisedCount: BigNumber; + prelaunchCount: BigNumber; + stakingCount: BigNumber; + withdrawableCount: BigNumber; + dissolvedCount: BigNumber; + } + >; + + getMinipoolDestroyed(_minipoolAddress: PromiseOrValue, overrides?: CallOverrides): Promise<[boolean]>; + + getMinipoolExists(_minipoolAddress: PromiseOrValue, overrides?: CallOverrides): Promise<[boolean]>; + + getMinipoolPubkey(_minipoolAddress: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; + + getMinipoolWithdrawalCredentials( + _minipoolAddress: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string]>; + getNodeActiveMinipoolCount(_nodeAddress: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + getNodeFinalisedMinipoolCount( + _nodeAddress: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber]>; + + getNodeMinipoolAt( + _nodeAddress: PromiseOrValue, + _index: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string]>; + + getNodeMinipoolCount(_nodeAddress: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + getNodeStakingMinipoolCount(_nodeAddress: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + getNodeValidatingMinipoolAt( + _nodeAddress: PromiseOrValue, + _index: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string]>; + + getNodeValidatingMinipoolCount( + _nodeAddress: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber]>; + + getPrelaunchMinipools( + offset: PromiseOrValue, + limit: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string[]]>; + + getStakingMinipoolCount(overrides?: CallOverrides): Promise<[BigNumber]>; + + incrementNodeFinalisedMinipoolCount( + _nodeAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + incrementNodeStakingMinipoolCount( + _nodeAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setMinipoolPubkey( + _pubkey: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + version(overrides?: CallOverrides): Promise<[number]>; }; + createMinipool( + _nodeAddress: PromiseOrValue, + _depositType: PromiseOrValue, + _salt: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + decrementNodeStakingMinipoolCount( + _nodeAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + destroyMinipool(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + getActiveMinipoolCount(overrides?: CallOverrides): Promise; + + getFinalisedMinipoolCount(overrides?: CallOverrides): Promise; + + getMinipoolAt(_index: PromiseOrValue, overrides?: CallOverrides): Promise; + + getMinipoolByPubkey(_pubkey: PromiseOrValue, overrides?: CallOverrides): Promise; + + getMinipoolBytecode(overrides?: CallOverrides): Promise; + + getMinipoolCount(overrides?: CallOverrides): Promise; + + getMinipoolCountPerStatus( + offset: PromiseOrValue, + limit: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & { + initialisedCount: BigNumber; + prelaunchCount: BigNumber; + stakingCount: BigNumber; + withdrawableCount: BigNumber; + dissolvedCount: BigNumber; + } + >; + + getMinipoolDestroyed(_minipoolAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + getMinipoolExists(_minipoolAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + getMinipoolPubkey(_minipoolAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + getMinipoolWithdrawalCredentials( + _minipoolAddress: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + getNodeActiveMinipoolCount(_nodeAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + getNodeFinalisedMinipoolCount(_nodeAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + getNodeMinipoolAt( + _nodeAddress: PromiseOrValue, + _index: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getNodeMinipoolCount(_nodeAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + getNodeStakingMinipoolCount(_nodeAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + getNodeValidatingMinipoolAt( + _nodeAddress: PromiseOrValue, + _index: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getNodeValidatingMinipoolCount(_nodeAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + getPrelaunchMinipools( + offset: PromiseOrValue, + limit: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getStakingMinipoolCount(overrides?: CallOverrides): Promise; + + incrementNodeFinalisedMinipoolCount( + _nodeAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + incrementNodeStakingMinipoolCount( + _nodeAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setMinipoolPubkey( + _pubkey: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + version(overrides?: CallOverrides): Promise; + callStatic: { + createMinipool( + _nodeAddress: PromiseOrValue, + _depositType: PromiseOrValue, + _salt: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + decrementNodeStakingMinipoolCount(_nodeAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + destroyMinipool(overrides?: CallOverrides): Promise; + + getActiveMinipoolCount(overrides?: CallOverrides): Promise; + + getFinalisedMinipoolCount(overrides?: CallOverrides): Promise; + + getMinipoolAt(_index: PromiseOrValue, overrides?: CallOverrides): Promise; + + getMinipoolByPubkey(_pubkey: PromiseOrValue, overrides?: CallOverrides): Promise; + + getMinipoolBytecode(overrides?: CallOverrides): Promise; + + getMinipoolCount(overrides?: CallOverrides): Promise; + + getMinipoolCountPerStatus( + offset: PromiseOrValue, + limit: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & { + initialisedCount: BigNumber; + prelaunchCount: BigNumber; + stakingCount: BigNumber; + withdrawableCount: BigNumber; + dissolvedCount: BigNumber; + } + >; + + getMinipoolDestroyed(_minipoolAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + getMinipoolExists(_minipoolAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + getMinipoolPubkey(_minipoolAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + getMinipoolWithdrawalCredentials( + _minipoolAddress: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + getNodeActiveMinipoolCount(_nodeAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + getNodeFinalisedMinipoolCount(_nodeAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + getNodeMinipoolAt( + _nodeAddress: PromiseOrValue, + _index: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getNodeMinipoolCount(_nodeAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + getNodeStakingMinipoolCount(_nodeAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + getNodeValidatingMinipoolAt( + _nodeAddress: PromiseOrValue, + _index: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getNodeValidatingMinipoolCount(_nodeAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + getPrelaunchMinipools( + offset: PromiseOrValue, + limit: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getStakingMinipoolCount(overrides?: CallOverrides): Promise; + + incrementNodeFinalisedMinipoolCount(_nodeAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + incrementNodeStakingMinipoolCount(_nodeAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + setMinipoolPubkey(_pubkey: PromiseOrValue, overrides?: CallOverrides): Promise; + + version(overrides?: CallOverrides): Promise; }; - filters: {}; + filters: { + 'MinipoolCreated(address,address,uint256)'( + minipool?: PromiseOrValue | null, + node?: PromiseOrValue | null, + time?: null, + ): MinipoolCreatedEventFilter; + MinipoolCreated( + minipool?: PromiseOrValue | null, + node?: PromiseOrValue | null, + time?: null, + ): MinipoolCreatedEventFilter; + + 'MinipoolDestroyed(address,address,uint256)'( + minipool?: PromiseOrValue | null, + node?: PromiseOrValue | null, + time?: null, + ): MinipoolDestroyedEventFilter; + MinipoolDestroyed( + minipool?: PromiseOrValue | null, + node?: PromiseOrValue | null, + time?: null, + ): MinipoolDestroyedEventFilter; + }; estimateGas: { + createMinipool( + _nodeAddress: PromiseOrValue, + _depositType: PromiseOrValue, + _salt: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + decrementNodeStakingMinipoolCount( + _nodeAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + destroyMinipool(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + getActiveMinipoolCount(overrides?: CallOverrides): Promise; + + getFinalisedMinipoolCount(overrides?: CallOverrides): Promise; + + getMinipoolAt(_index: PromiseOrValue, overrides?: CallOverrides): Promise; + + getMinipoolByPubkey(_pubkey: PromiseOrValue, overrides?: CallOverrides): Promise; + + getMinipoolBytecode(overrides?: CallOverrides): Promise; + + getMinipoolCount(overrides?: CallOverrides): Promise; + + getMinipoolCountPerStatus( + offset: PromiseOrValue, + limit: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getMinipoolDestroyed(_minipoolAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + getMinipoolExists(_minipoolAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + getMinipoolPubkey(_minipoolAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + getMinipoolWithdrawalCredentials( + _minipoolAddress: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + getNodeActiveMinipoolCount(_nodeAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + getNodeFinalisedMinipoolCount(_nodeAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + getNodeMinipoolAt( + _nodeAddress: PromiseOrValue, + _index: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getNodeMinipoolCount(_nodeAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + getNodeStakingMinipoolCount(_nodeAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + getNodeValidatingMinipoolAt( + _nodeAddress: PromiseOrValue, + _index: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getNodeValidatingMinipoolCount(_nodeAddress: PromiseOrValue, overrides?: CallOverrides): Promise; + + getPrelaunchMinipools( + offset: PromiseOrValue, + limit: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getStakingMinipoolCount(overrides?: CallOverrides): Promise; + + incrementNodeFinalisedMinipoolCount( + _nodeAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + incrementNodeStakingMinipoolCount( + _nodeAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setMinipoolPubkey( + _pubkey: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + version(overrides?: CallOverrides): Promise; }; populateTransaction: { + createMinipool( + _nodeAddress: PromiseOrValue, + _depositType: PromiseOrValue, + _salt: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + decrementNodeStakingMinipoolCount( + _nodeAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + destroyMinipool(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + getActiveMinipoolCount(overrides?: CallOverrides): Promise; + + getFinalisedMinipoolCount(overrides?: CallOverrides): Promise; + + getMinipoolAt(_index: PromiseOrValue, overrides?: CallOverrides): Promise; + + getMinipoolByPubkey(_pubkey: PromiseOrValue, overrides?: CallOverrides): Promise; + + getMinipoolBytecode(overrides?: CallOverrides): Promise; + + getMinipoolCount(overrides?: CallOverrides): Promise; + + getMinipoolCountPerStatus( + offset: PromiseOrValue, + limit: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getMinipoolDestroyed( + _minipoolAddress: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getMinipoolExists( + _minipoolAddress: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getMinipoolPubkey( + _minipoolAddress: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getMinipoolWithdrawalCredentials( + _minipoolAddress: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + getNodeActiveMinipoolCount( _nodeAddress: PromiseOrValue, overrides?: CallOverrides, ): Promise; + + getNodeFinalisedMinipoolCount( + _nodeAddress: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getNodeMinipoolAt( + _nodeAddress: PromiseOrValue, + _index: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getNodeMinipoolCount( + _nodeAddress: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getNodeStakingMinipoolCount( + _nodeAddress: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getNodeValidatingMinipoolAt( + _nodeAddress: PromiseOrValue, + _index: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getNodeValidatingMinipoolCount( + _nodeAddress: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getPrelaunchMinipools( + offset: PromiseOrValue, + limit: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getStakingMinipoolCount(overrides?: CallOverrides): Promise; + + incrementNodeFinalisedMinipoolCount( + _nodeAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + incrementNodeStakingMinipoolCount( + _nodeAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setMinipoolPubkey( + _pubkey: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + version(overrides?: CallOverrides): Promise; }; } diff --git a/src/apps/rocket-pool/contracts/ethers/factories/RocketMinipoolManager__factory.ts b/src/apps/rocket-pool/contracts/ethers/factories/RocketMinipoolManager__factory.ts index b07764b49..212810ca2 100644 --- a/src/apps/rocket-pool/contracts/ethers/factories/RocketMinipoolManager__factory.ts +++ b/src/apps/rocket-pool/contracts/ethers/factories/RocketMinipoolManager__factory.ts @@ -7,6 +7,326 @@ import type { Provider } from '@ethersproject/providers'; import type { RocketMinipoolManager, RocketMinipoolManagerInterface } from '../RocketMinipoolManager'; const _abi = [ + { + inputs: [ + { + internalType: 'contract RocketStorageInterface', + name: '_rocketStorageAddress', + type: 'address', + }, + ], + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'minipool', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'node', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'time', + type: 'uint256', + }, + ], + name: 'MinipoolCreated', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'minipool', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'node', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'time', + type: 'uint256', + }, + ], + name: 'MinipoolDestroyed', + type: 'event', + }, + { + inputs: [ + { + internalType: 'address', + name: '_nodeAddress', + type: 'address', + }, + { + internalType: 'enum MinipoolDeposit', + name: '_depositType', + type: 'uint8', + }, + { + internalType: 'uint256', + name: '_salt', + type: 'uint256', + }, + ], + name: 'createMinipool', + outputs: [ + { + internalType: 'contract RocketMinipoolInterface', + name: '', + type: 'address', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '_nodeAddress', + type: 'address', + }, + ], + name: 'decrementNodeStakingMinipoolCount', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'destroyMinipool', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'getActiveMinipoolCount', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getFinalisedMinipoolCount', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: '_index', + type: 'uint256', + }, + ], + name: 'getMinipoolAt', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'bytes', + name: '_pubkey', + type: 'bytes', + }, + ], + name: 'getMinipoolByPubkey', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getMinipoolBytecode', + outputs: [ + { + internalType: 'bytes', + name: '', + type: 'bytes', + }, + ], + stateMutability: 'pure', + type: 'function', + }, + { + inputs: [], + name: 'getMinipoolCount', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'offset', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'limit', + type: 'uint256', + }, + ], + name: 'getMinipoolCountPerStatus', + outputs: [ + { + internalType: 'uint256', + name: 'initialisedCount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'prelaunchCount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'stakingCount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'withdrawableCount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'dissolvedCount', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '_minipoolAddress', + type: 'address', + }, + ], + name: 'getMinipoolDestroyed', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '_minipoolAddress', + type: 'address', + }, + ], + name: 'getMinipoolExists', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '_minipoolAddress', + type: 'address', + }, + ], + name: 'getMinipoolPubkey', + outputs: [ + { + internalType: 'bytes', + name: '', + type: 'bytes', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '_minipoolAddress', + type: 'address', + }, + ], + name: 'getMinipoolWithdrawalCredentials', + outputs: [ + { + internalType: 'bytes', + name: '', + type: 'bytes', + }, + ], + stateMutability: 'pure', + type: 'function', + }, { inputs: [ { @@ -26,6 +346,219 @@ const _abi = [ stateMutability: 'view', type: 'function', }, + { + inputs: [ + { + internalType: 'address', + name: '_nodeAddress', + type: 'address', + }, + ], + name: 'getNodeFinalisedMinipoolCount', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '_nodeAddress', + type: 'address', + }, + { + internalType: 'uint256', + name: '_index', + type: 'uint256', + }, + ], + name: 'getNodeMinipoolAt', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '_nodeAddress', + type: 'address', + }, + ], + name: 'getNodeMinipoolCount', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '_nodeAddress', + type: 'address', + }, + ], + name: 'getNodeStakingMinipoolCount', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '_nodeAddress', + type: 'address', + }, + { + internalType: 'uint256', + name: '_index', + type: 'uint256', + }, + ], + name: 'getNodeValidatingMinipoolAt', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '_nodeAddress', + type: 'address', + }, + ], + name: 'getNodeValidatingMinipoolCount', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'offset', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'limit', + type: 'uint256', + }, + ], + name: 'getPrelaunchMinipools', + outputs: [ + { + internalType: 'address[]', + name: '', + type: 'address[]', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getStakingMinipoolCount', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '_nodeAddress', + type: 'address', + }, + ], + name: 'incrementNodeFinalisedMinipoolCount', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '_nodeAddress', + type: 'address', + }, + ], + name: 'incrementNodeStakingMinipoolCount', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'bytes', + name: '_pubkey', + type: 'bytes', + }, + ], + name: 'setMinipoolPubkey', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'version', + outputs: [ + { + internalType: 'uint8', + name: '', + type: 'uint8', + }, + ], + stateMutability: 'view', + type: 'function', + }, ]; export class RocketMinipoolManager__factory { diff --git a/src/apps/rocket-pool/contracts/ethers/factories/RocketMinipool__factory.ts b/src/apps/rocket-pool/contracts/ethers/factories/RocketMinipool__factory.ts new file mode 100644 index 000000000..93063a352 --- /dev/null +++ b/src/apps/rocket-pool/contracts/ethers/factories/RocketMinipool__factory.ts @@ -0,0 +1,972 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from 'ethers'; +import type { Provider } from '@ethersproject/providers'; +import type { RocketMinipool, RocketMinipoolInterface } from '../RocketMinipool'; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint256', + name: 'previousBondAmount', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'newBondAmount', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'time', + type: 'uint256', + }, + ], + name: 'BondReduced', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'from', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'time', + type: 'uint256', + }, + ], + name: 'EtherDeposited', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'executed', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'nodeAmount', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'userAmount', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'totalBalance', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'time', + type: 'uint256', + }, + ], + name: 'EtherWithdrawalProcessed', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'to', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'time', + type: 'uint256', + }, + ], + name: 'EtherWithdrawn', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'bytes', + name: 'validatorPubkey', + type: 'bytes', + }, + { + indexed: false, + internalType: 'bytes', + name: 'validatorSignature', + type: 'bytes', + }, + { + indexed: false, + internalType: 'bytes32', + name: 'depositDataRoot', + type: 'bytes32', + }, + { + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + indexed: false, + internalType: 'bytes', + name: 'withdrawalCredentials', + type: 'bytes', + }, + { + indexed: false, + internalType: 'uint256', + name: 'time', + type: 'uint256', + }, + ], + name: 'MinipoolPrestaked', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint256', + name: 'time', + type: 'uint256', + }, + ], + name: 'MinipoolPromoted', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint256', + name: 'time', + type: 'uint256', + }, + ], + name: 'MinipoolScrubbed', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint256', + name: 'bondAmount', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'currentBalance', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'time', + type: 'uint256', + }, + ], + name: 'MinipoolVacancyPrepared', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'member', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'time', + type: 'uint256', + }, + ], + name: 'ScrubVoted', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'uint8', + name: 'status', + type: 'uint8', + }, + { + indexed: false, + internalType: 'uint256', + name: 'time', + type: 'uint256', + }, + ], + name: 'StatusUpdated', + type: 'event', + }, + { + inputs: [], + name: 'beginUserDistribute', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: '_balance', + type: 'uint256', + }, + ], + name: 'calculateNodeShare', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: '_balance', + type: 'uint256', + }, + ], + name: 'calculateUserShare', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'canPromote', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'canStake', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'close', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'deposit', + outputs: [], + stateMutability: 'payable', + type: 'function', + }, + { + inputs: [], + name: 'dissolve', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'bool', + name: '_rewardsOnly', + type: 'bool', + }, + ], + name: 'distributeBalance', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'finalise', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'getDepositType', + outputs: [ + { + internalType: 'enum MinipoolDeposit', + name: '', + type: 'uint8', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getFinalised', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getNodeAddress', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getNodeDepositAssigned', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getNodeDepositBalance', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getNodeFee', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getNodeRefundBalance', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getNodeTopUpValue', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getPreLaunchValue', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getPreMigrationBalance', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '_member', + type: 'address', + }, + ], + name: 'getScrubVoted', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getStatus', + outputs: [ + { + internalType: 'enum MinipoolStatus', + name: '', + type: 'uint8', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getStatusBlock', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getStatusTime', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getTotalScrubVotes', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getUserDepositAssigned', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getUserDepositAssignedTime', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getUserDepositBalance', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getUserDistributed', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getVacant', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '_nodeAddress', + type: 'address', + }, + ], + name: 'initialise', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: '_bondValue', + type: 'uint256', + }, + { + internalType: 'bytes', + name: '_validatorPubkey', + type: 'bytes', + }, + { + internalType: 'bytes', + name: '_validatorSignature', + type: 'bytes', + }, + { + internalType: 'bytes32', + name: '_depositDataRoot', + type: 'bytes32', + }, + ], + name: 'preDeposit', + outputs: [], + stateMutability: 'payable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: '_bondAmount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: '_currentBalance', + type: 'uint256', + }, + ], + name: 'prepareVacancy', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'promote', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'reduceBondAmount', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'refund', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'slash', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'bytes', + name: '_validatorSignature', + type: 'bytes', + }, + { + internalType: 'bytes32', + name: '_depositDataRoot', + type: 'bytes32', + }, + ], + name: 'stake', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'userDeposit', + outputs: [], + stateMutability: 'payable', + type: 'function', + }, + { + inputs: [], + name: 'userDistributeAllowed', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'version', + outputs: [ + { + internalType: 'uint8', + name: '', + type: 'uint8', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'voteScrub', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'oldDelegate', + type: 'address', + }, + { + indexed: false, + internalType: 'address', + name: 'newDelegate', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'time', + type: 'uint256', + }, + ], + name: 'DelegateRolledBack', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'oldDelegate', + type: 'address', + }, + { + indexed: false, + internalType: 'address', + name: 'newDelegate', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'time', + type: 'uint256', + }, + ], + name: 'DelegateUpgraded', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'from', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'time', + type: 'uint256', + }, + ], + name: 'EtherReceived', + type: 'event', + }, + { + inputs: [], + name: 'delegateRollback', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'delegateUpgrade', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'getDelegate', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getEffectiveDelegate', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getPreviousDelegate', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getUseLatestDelegate', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '_rocketStorage', + type: 'address', + }, + { + internalType: 'address', + name: '_nodeAddress', + type: 'address', + }, + ], + name: 'initialise', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'bool', + name: '_setting', + type: 'bool', + }, + ], + name: 'setUseLatestDelegate', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + stateMutability: 'payable', + type: 'fallback', + }, + { + stateMutability: 'payable', + type: 'receive', + }, +]; + +export class RocketMinipool__factory { + static readonly abi = _abi; + static createInterface(): RocketMinipoolInterface { + return new utils.Interface(_abi) as RocketMinipoolInterface; + } + static connect(address: string, signerOrProvider: Signer | Provider): RocketMinipool { + return new Contract(address, _abi, signerOrProvider) as RocketMinipool; + } +} diff --git a/src/apps/rocket-pool/contracts/ethers/factories/index.ts b/src/apps/rocket-pool/contracts/ethers/factories/index.ts index 81367460c..76c7e042f 100644 --- a/src/apps/rocket-pool/contracts/ethers/factories/index.ts +++ b/src/apps/rocket-pool/contracts/ethers/factories/index.ts @@ -2,6 +2,7 @@ /* tslint:disable */ /* eslint-disable */ export { RocketDaoNodeTrusted__factory } from './RocketDaoNodeTrusted__factory'; +export { RocketMinipool__factory } from './RocketMinipool__factory'; export { RocketMinipoolManager__factory } from './RocketMinipoolManager__factory'; export { RocketNodeDeposit__factory } from './RocketNodeDeposit__factory'; export { RocketNodeStaking__factory } from './RocketNodeStaking__factory'; diff --git a/src/apps/rocket-pool/contracts/ethers/index.ts b/src/apps/rocket-pool/contracts/ethers/index.ts index a48c3e065..5d4e84e6a 100644 --- a/src/apps/rocket-pool/contracts/ethers/index.ts +++ b/src/apps/rocket-pool/contracts/ethers/index.ts @@ -2,11 +2,13 @@ /* tslint:disable */ /* eslint-disable */ export type { RocketDaoNodeTrusted } from './RocketDaoNodeTrusted'; +export type { RocketMinipool } from './RocketMinipool'; export type { RocketMinipoolManager } from './RocketMinipoolManager'; export type { RocketNodeDeposit } from './RocketNodeDeposit'; export type { RocketNodeStaking } from './RocketNodeStaking'; export * as factories from './factories'; export { RocketDaoNodeTrusted__factory } from './factories/RocketDaoNodeTrusted__factory'; export { RocketMinipoolManager__factory } from './factories/RocketMinipoolManager__factory'; +export { RocketMinipool__factory } from './factories/RocketMinipool__factory'; export { RocketNodeDeposit__factory } from './factories/RocketNodeDeposit__factory'; export { RocketNodeStaking__factory } from './factories/RocketNodeStaking__factory'; diff --git a/src/apps/rocket-pool/contracts/index.ts b/src/apps/rocket-pool/contracts/index.ts index 0d99aaa2f..9d8f69115 100644 --- a/src/apps/rocket-pool/contracts/index.ts +++ b/src/apps/rocket-pool/contracts/index.ts @@ -4,10 +4,13 @@ import { IAppToolkit, APP_TOOLKIT } from '~app-toolkit/app-toolkit.interface'; import { ContractFactory } from '~contract/contracts'; import { Network } from '~types/network.interface'; -import { RocketDaoNodeTrusted__factory } from './ethers'; -import { RocketMinipoolManager__factory } from './ethers'; -import { RocketNodeDeposit__factory } from './ethers'; -import { RocketNodeStaking__factory } from './ethers'; +import { + RocketDaoNodeTrusted__factory, + RocketMinipool__factory, + RocketMinipoolManager__factory, + RocketNodeDeposit__factory, + RocketNodeStaking__factory, +} from './ethers'; // eslint-disable-next-line type ContractOpts = { address: string; network: Network }; @@ -21,6 +24,9 @@ export class RocketPoolContractFactory extends ContractFactory { rocketDaoNodeTrusted({ address, network }: ContractOpts) { return RocketDaoNodeTrusted__factory.connect(address, this.appToolkit.getNetworkProvider(network)); } + rocketMinipool({ address, network }: ContractOpts) { + return RocketMinipool__factory.connect(address, this.appToolkit.getNetworkProvider(network)); + } rocketMinipoolManager({ address, network }: ContractOpts) { return RocketMinipoolManager__factory.connect(address, this.appToolkit.getNetworkProvider(network)); } @@ -33,6 +39,7 @@ export class RocketPoolContractFactory extends ContractFactory { } export type { RocketDaoNodeTrusted } from './ethers'; +export type { RocketMinipool } from './ethers'; export type { RocketMinipoolManager } from './ethers'; export type { RocketNodeDeposit } from './ethers'; export type { RocketNodeStaking } from './ethers'; diff --git a/src/apps/rocket-pool/ethereum/rocket-pool.minipool.contract-position-fetcher.ts b/src/apps/rocket-pool/ethereum/rocket-pool.minipool.contract-position-fetcher.ts index 2d3725344..ad1601b9f 100644 --- a/src/apps/rocket-pool/ethereum/rocket-pool.minipool.contract-position-fetcher.ts +++ b/src/apps/rocket-pool/ethereum/rocket-pool.minipool.contract-position-fetcher.ts @@ -1,12 +1,16 @@ -import { Inject } from '@nestjs/common'; +import { Inject, NotImplementedException } from '@nestjs/common'; +import _, { range } from 'lodash'; import { IAppToolkit, APP_TOOLKIT } from '~app-toolkit/app-toolkit.interface'; import { ZERO_ADDRESS } from '~app-toolkit/constants/address'; import { PositionTemplate } from '~app-toolkit/decorators/position-template.decorator'; +import { drillBalance } from '~app-toolkit/helpers/drill-balance.helper'; import { getLabelFromToken } from '~app-toolkit/helpers/presentation/image.present'; +import { DefaultDataProps } from '~position/display.interface'; +import { ContractPositionBalance } from '~position/position-balance.interface'; import { MetaType } from '~position/position.interface'; import { ContractPositionTemplatePositionFetcher } from '~position/template/contract-position.template.position-fetcher'; -import { GetDisplayPropsParams, GetTokenBalancesParams } from '~position/template/contract-position.template.types'; +import { GetDisplayPropsParams } from '~position/template/contract-position.template.types'; import { RocketNodeDeposit, RocketPoolContractFactory } from '../contracts'; @@ -43,16 +47,46 @@ export class EthereumRocketPoolMinipoolContractPositionFetcher extends ContractP return `Staked ${getLabelFromToken(contractPosition.tokens[0])}`; } - async getTokenBalancesPerPosition({ address, multicall }: GetTokenBalancesParams) { - const miniPoolManagerAddress = '0x6293b8abc1f36afb22406be5f96d893072a8cf3a'; + getTokenBalancesPerPosition(): never { + throw new NotImplementedException(); + } + + async getBalances(address: string): Promise[]> { + const multicall = this.appToolkit.getMulticall(this.network); const miniPoolManager = this.contractFactory.rocketMinipoolManager({ - address: miniPoolManagerAddress, + address: '0x6293b8abc1f36afb22406be5f96d893072a8cf3a', + network: this.network, + }); + + const contractPositions = await this.appToolkit.getAppContractPositions({ + appId: this.appId, network: this.network, + groupIds: [this.groupId], }); - const minipoolCountRaw = await multicall.wrap(miniPoolManager).getNodeActiveMinipoolCount(address); - const minipoolDepositSize = 16 * 10 ** 18; // 16 ETH - const balanceRaw = Number(minipoolCountRaw) * minipoolDepositSize; - return [balanceRaw.toString()]; + const numPositionsRaw = await multicall.wrap(miniPoolManager).getNodeMinipoolCount(address); + + const balances = await Promise.all( + range(0, numPositionsRaw.toNumber()).map(async index => { + const miniPoolAddress = await multicall.wrap(miniPoolManager).getNodeMinipoolAt(address, index); + + const miniPoolContract = this.contractFactory.rocketMinipool({ + address: miniPoolAddress, + network: this.network, + }); + + const depositAmountRaw = await multicall.wrap(miniPoolContract).getNodeDepositBalance(); + + const depositAmount = drillBalance(contractPositions[0].tokens[0], depositAmountRaw.toString()); + + return { + ...contractPositions[0], + tokens: [depositAmount], + balanceUSD: depositAmount.balanceUSD, + }; + }), + ); + + return _.compact(balances); } }