rocketpool

package
v2.0.0-b1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 29, 2024 License: GPL-3.0 Imports: 15 Imported by: 51

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ContractNames = []ContractName{
	ContractName_CasperDeposit,

	ContractName_RocketAuctionManager,

	ContractName_RocketClaimDAO,

	ContractName_RocketDAOProposal,

	ContractName_RocketDAOProtocol,
	ContractName_RocketDAOProtocolProposal,
	ContractName_RocketDAOProtocolProposals,
	ContractName_RocketDAOProtocolSettingsAuction,
	ContractName_RocketDAOProtocolSettingsDeposit,
	ContractName_RocketDAOProtocolSettingsInflation,
	ContractName_RocketDAOProtocolSettingsMinipool,
	ContractName_RocketDAOProtocolSettingsNetwork,
	ContractName_RocketDAOProtocolSettingsNode,
	ContractName_RocketDAOProtocolSettingsProposals,
	ContractName_RocketDAOProtocolSettingsRewards,
	ContractName_RocketDAOProtocolSettingsSecurity,
	ContractName_RocketDAOProtocolVerifier,

	ContractName_RocketDAONodeTrustedActions,
	ContractName_RocketDAONodeTrusted,
	ContractName_RocketDAONodeTrustedProposals,
	ContractName_RocketDAONodeTrustedSettingsMembers,
	ContractName_RocketDAONodeTrustedSettingsMinipool,
	ContractName_RocketDAONodeTrustedSettingsProposals,
	ContractName_RocketDAONodeTrustedSettingsRewards,

	ContractName_RocketDepositPool,

	ContractName_RocketMinipoolBase,
	ContractName_RocketMinipoolBondReducer,
	ContractName_RocketMinipoolDelegate,
	ContractName_RocketMinipoolManager,
	ContractName_RocketMinipoolFactory,
	ContractName_RocketMinipoolQueue,

	ContractName_RocketNetworkBalances,
	ContractName_RocketNetworkFees,
	ContractName_RocketNetworkPenalties,
	ContractName_RocketNetworkPrices,
	ContractName_RocketNetworkVoting,

	ContractName_RocketNodeDeposit,
	ContractName_RocketNodeDistributorFactory,
	ContractName_RocketNodeManager,
	ContractName_RocketNodeStaking,

	ContractName_RocketMerkleDistributorMainnet,
	ContractName_RocketRewardsPool,

	ContractName_RocketDAOSecurity,
	ContractName_RocketDAOSecurityActions,
	ContractName_RocketDAOSecurityProposals,

	ContractName_RocketSmoothingPool,

	ContractName_RocketTokenRETH,
	ContractName_RocketTokenRPLFixedSupply,
	ContractName_RocketTokenRPL,

	ContractName_RocketVault,
}

List of all singleton contract names

List of all instanceable contract names

Functions

func GetContractVersion

func GetContractVersion(mc *batch.MultiCaller, version_Out *uint8, address common.Address) error

Get the version of the given contract

func GetRocketVersionContractForAddress

func GetRocketVersionContractForAddress(rp *RocketPool, address common.Address) (*core.Contract, error)

Get the rocketVersion contract binding at the given address

Types

type ContractName

type ContractName string
const (
	// Beacon Deposit Contract
	ContractName_CasperDeposit ContractName = "casperDeposit"

	// Auctions
	ContractName_RocketAuctionManager ContractName = "rocketAuctionManager"

	// Claims
	ContractName_RocketClaimDAO ContractName = "rocketClaimDAO"

	// DAO Proposals
	ContractName_RocketDAOProposal ContractName = "rocketDAOProposal"

	// Protocol DAO
	ContractName_RocketDAOProtocol                  ContractName = "rocketDAOProtocol"
	ContractName_RocketDAOProtocolProposal          ContractName = "rocketDAOProtocolProposal"
	ContractName_RocketDAOProtocolProposals         ContractName = "rocketDAOProtocolProposals"
	ContractName_RocketDAOProtocolSettingsAuction   ContractName = "rocketDAOProtocolSettingsAuction"
	ContractName_RocketDAOProtocolSettingsDeposit   ContractName = "rocketDAOProtocolSettingsDeposit"
	ContractName_RocketDAOProtocolSettingsInflation ContractName = "rocketDAOProtocolSettingsInflation"
	ContractName_RocketDAOProtocolSettingsMinipool  ContractName = "rocketDAOProtocolSettingsMinipool"
	ContractName_RocketDAOProtocolSettingsNetwork   ContractName = "rocketDAOProtocolSettingsNetwork"
	ContractName_RocketDAOProtocolSettingsNode      ContractName = "rocketDAOProtocolSettingsNode"
	ContractName_RocketDAOProtocolSettingsProposals ContractName = "rocketDAOProtocolSettingsProposals"
	ContractName_RocketDAOProtocolSettingsRewards   ContractName = "rocketDAOProtocolSettingsRewards"
	ContractName_RocketDAOProtocolSettingsSecurity  ContractName = "rocketDAOProtocolSettingsSecurity"
	ContractName_RocketDAOProtocolVerifier          ContractName = "rocketDAOProtocolVerifier"

	// Oracle DAO
	ContractName_RocketDAONodeTrustedActions           ContractName = "rocketDAONodeTrustedActions"
	ContractName_RocketDAONodeTrusted                  ContractName = "rocketDAONodeTrusted"
	ContractName_RocketDAONodeTrustedProposals         ContractName = "rocketDAONodeTrustedProposals"
	ContractName_RocketDAONodeTrustedSettingsMembers   ContractName = "rocketDAONodeTrustedSettingsMembers"
	ContractName_RocketDAONodeTrustedSettingsMinipool  ContractName = "rocketDAONodeTrustedSettingsMinipool"
	ContractName_RocketDAONodeTrustedSettingsProposals ContractName = "rocketDAONodeTrustedSettingsProposals"
	ContractName_RocketDAONodeTrustedSettingsRewards   ContractName = "rocketDAONodeTrustedSettingsRewards"

	// Deposit Pool
	ContractName_RocketDepositPool ContractName = "rocketDepositPool"

	// Minipools
	ContractName_RocketMinipool            ContractName = "rocketMinipool"
	ContractName_RocketMinipoolBase        ContractName = "rocketMinipoolBase"
	ContractName_RocketMinipoolBondReducer ContractName = "rocketMinipoolBondReducer"
	ContractName_RocketMinipoolDelegate    ContractName = "rocketMinipoolDelegate"
	ContractName_RocketMinipoolManager     ContractName = "rocketMinipoolManager"
	ContractName_RocketMinipoolFactory     ContractName = "rocketMinipoolFactory"
	ContractName_RocketMinipoolQueue       ContractName = "rocketMinipoolQueue"

	// Network
	ContractName_RocketNetworkBalances  ContractName = "rocketNetworkBalances"
	ContractName_RocketNetworkFees      ContractName = "rocketNetworkFees"
	ContractName_RocketNetworkPenalties ContractName = "rocketNetworkPenalties"
	ContractName_RocketNetworkPrices    ContractName = "rocketNetworkPrices"
	ContractName_RocketNetworkVoting    ContractName = "rocketNetworkVoting"

	// Nodes
	ContractName_RocketNodeDeposit             ContractName = "rocketNodeDeposit"
	ContractName_RocketNodeDistributorFactory  ContractName = "rocketNodeDistributorFactory"
	ContractName_RocketNodeDistributorDelegate ContractName = "rocketNodeDistributorDelegate"
	ContractName_RocketNodeManager             ContractName = "rocketNodeManager"
	ContractName_RocketNodeStaking             ContractName = "rocketNodeStaking"

	// Rewards
	ContractName_RocketMerkleDistributorMainnet ContractName = "rocketMerkleDistributorMainnet"
	ContractName_RocketRewardsPool              ContractName = "rocketRewardsPool"

	// Security
	ContractName_RocketDAOSecurity          ContractName = "rocketDAOSecurity"
	ContractName_RocketDAOSecurityActions   ContractName = "rocketDAOSecurityActions"
	ContractName_RocketDAOSecurityProposals ContractName = "rocketDAOSecurityProposals"

	// Smoothing Pool
	ContractName_RocketSmoothingPool ContractName = "rocketSmoothingPool"

	// Tokens
	ContractName_RocketTokenRETH           ContractName = "rocketTokenRETH"
	ContractName_RocketTokenRPLFixedSupply ContractName = "rocketTokenRPLFixedSupply"
	ContractName_RocketTokenRPL            ContractName = "rocketTokenRPL"

	// Vault
	ContractName_RocketVault ContractName = "rocketVault"
)

type LegacyVersionWrapper

type LegacyVersionWrapper interface {
	GetVersion() *version.Version
	GetVersionedContractName(contractName string) (string, bool)
	GetEncodedABI(contractName string) string
	GetContractWithAddress(contractName string, address common.Address) (*core.Contract, error)
}

Wrapper for legacy contract versions

type LegacyVersionWrapper_v1_0_0

type LegacyVersionWrapper_v1_0_0 struct {
	// contains filtered or unexported fields
}

A wrapper that holds the updated contract information for this version

func (*LegacyVersionWrapper_v1_0_0) GetContractWithAddress

func (m *LegacyVersionWrapper_v1_0_0) GetContractWithAddress(contractName string, address common.Address) (*core.Contract, error)

func (*LegacyVersionWrapper_v1_0_0) GetEncodedABI

func (m *LegacyVersionWrapper_v1_0_0) GetEncodedABI(contractName string) string

Get the ABI for the provided contract

func (*LegacyVersionWrapper_v1_0_0) GetVersion

func (m *LegacyVersionWrapper_v1_0_0) GetVersion() *version.Version

Get the version for this manager

func (*LegacyVersionWrapper_v1_0_0) GetVersionedContractName

func (m *LegacyVersionWrapper_v1_0_0) GetVersionedContractName(contractName string) (string, bool)

Get the versioned name of the contract if it was upgraded as part of this deployment

type LegacyVersionWrapper_v1_1_0

type LegacyVersionWrapper_v1_1_0 struct {
	// contains filtered or unexported fields
}

A wrapper that holds the updated contract information for this version

func (*LegacyVersionWrapper_v1_1_0) GetContractWithAddress

func (m *LegacyVersionWrapper_v1_1_0) GetContractWithAddress(contractName string, address common.Address) (*core.Contract, error)

func (*LegacyVersionWrapper_v1_1_0) GetEncodedABI

func (m *LegacyVersionWrapper_v1_1_0) GetEncodedABI(contractName string) string

Get the ABI for the provided contract

func (*LegacyVersionWrapper_v1_1_0) GetVersion

func (m *LegacyVersionWrapper_v1_1_0) GetVersion() *version.Version

Get the version for this manager

func (*LegacyVersionWrapper_v1_1_0) GetVersionedContractName

func (m *LegacyVersionWrapper_v1_1_0) GetVersionedContractName(contractName string) (string, bool)

Get the versioned name of the contract if it was upgraded as part of this deployment

type LegacyVersionWrapper_v1_1_0_rc1

type LegacyVersionWrapper_v1_1_0_rc1 struct {
	// contains filtered or unexported fields
}

A wrapper that holds the updated contract information for this version

func (*LegacyVersionWrapper_v1_1_0_rc1) GetContractWithAddress

func (m *LegacyVersionWrapper_v1_1_0_rc1) GetContractWithAddress(contractName string, address common.Address) (*core.Contract, error)

Get the contract with the provided name for this version of Rocket Pool

func (*LegacyVersionWrapper_v1_1_0_rc1) GetEncodedABI

func (m *LegacyVersionWrapper_v1_1_0_rc1) GetEncodedABI(contractName string) string

Get the ABI for the provided contract

func (*LegacyVersionWrapper_v1_1_0_rc1) GetVersion

func (m *LegacyVersionWrapper_v1_1_0_rc1) GetVersion() *version.Version

Get the version for this manager

func (*LegacyVersionWrapper_v1_1_0_rc1) GetVersionedContractName

func (m *LegacyVersionWrapper_v1_1_0_rc1) GetVersionedContractName(contractName string) (string, bool)

Get the versioned name of the contract if it was upgraded as part of this deployment

type LegacyVersionWrapper_v1_2_0

type LegacyVersionWrapper_v1_2_0 struct {
	// contains filtered or unexported fields
}

A wrapper that holds the updated contract information for this version

func (*LegacyVersionWrapper_v1_2_0) GetContractWithAddress

func (m *LegacyVersionWrapper_v1_2_0) GetContractWithAddress(contractName string, address common.Address) (*core.Contract, error)

func (*LegacyVersionWrapper_v1_2_0) GetEncodedABI

func (m *LegacyVersionWrapper_v1_2_0) GetEncodedABI(contractName string) string

Get the ABI for the provided contract

func (*LegacyVersionWrapper_v1_2_0) GetVersion

func (m *LegacyVersionWrapper_v1_2_0) GetVersion() *version.Version

Get the version for this manager

func (*LegacyVersionWrapper_v1_2_0) GetVersionedContractName

func (m *LegacyVersionWrapper_v1_2_0) GetVersionedContractName(contractName string) (string, bool)

Get the versioned name of the contract if it was upgraded as part of this deployment

type RocketPool

type RocketPool struct {
	Client                   eth.IExecutionClient
	Storage                  *storage.Storage
	MulticallAddress         *common.Address
	BalanceBatcher           *batch.BalanceBatcher
	VersionManager           *VersionManager
	ConcurrentCallLimit      int
	AddressBatchSize         int
	ContractVersionBatchSize int
	// contains filtered or unexported fields
}

Rocket Pool contract manager

func NewRocketPool

func NewRocketPool(client eth.IExecutionClient, rocketStorageAddress common.Address, multicallAddress common.Address, balanceBatcherAddress common.Address) (*RocketPool, error)

Create new contract manager

func (*RocketPool) BatchCreateAndExecuteTransactions

func (rp *RocketPool) BatchCreateAndExecuteTransactions(creators []func() (*eth.TransactionSubmission, error), failOnSimErrors bool, opts *bind.TransactOpts) ([]*types.Transaction, error)

Creates, signs, and submits a collection of transactions to the network that are all sent from the same address. The values for each TX will be in each TX info; the value specified in the opts argument is not used. The GasFeeCap and GasTipCap from opts will be used for all transactions. Use this if you don't care about the estimated gas costs and just want to run them as quickly as possible. If failOnSimErrors is true, it will treat simualtion / gas estimation errors as failures and stop before any of transactions are submitted to the network. NOTE: this assumes the bundle is meant to be submitted sequentially, so the nonce of each one will be incremented. Assign the Nonce in the opts tto the nonce you want to use for the first transaction.

func (*RocketPool) BatchCreateAndWaitForTransactions

func (rp *RocketPool) BatchCreateAndWaitForTransactions(creators []func() (*eth.TransactionSubmission, error), failOnSimErrors bool, opts *bind.TransactOpts) error

Creates, signs, and submits a collection of transactions to the network that are all sent from the same address, then waits for them all to complete. The values for each TX will be in each TX info; the value specified in the opts argument is not used. The GasFeeCap and GasTipCap from opts will be used for all transactions. Use this if you don't care about the estimated gas costs and just want to run them as quickly as possible. If failOnSimErrors is true, it will treat simualtion / gas estimation errors as failures and stop before any of transactions are submitted to the network. NOTE: this assumes the bundle is meant to be submitted sequentially, so the nonce of each one will be incremented. Assign the Nonce in the opts tto the nonce you want to use for the first transaction.

func (*RocketPool) BatchExecuteTransactions

func (rp *RocketPool) BatchExecuteTransactions(txSubmissions []*eth.TransactionSubmission, opts *bind.TransactOpts) ([]*types.Transaction, error)

Signs and submits a bundle of transactions to the network that are all sent from the same address. The values for each TX will be in each TX info; the value specified in the opts argument is not used. The GasFeeCap and GasTipCap from opts will be used for all transactions. NOTE: this assumes the bundle is meant to be submitted sequentially, so the nonce of each one will be incremented. Assign the Nonce in the opts tto the nonce you want to use for the first transaction.

func (*RocketPool) BatchQuery

func (rp *RocketPool) BatchQuery(count int, batchSize int, query func(*batch.MultiCaller, int) error, opts *bind.CallOpts) error

Create and execute a multicall query that is too big for one call and must be run in batches

func (*RocketPool) CreateAndExecuteTransaction

func (rp *RocketPool) CreateAndExecuteTransaction(creator func() (*eth.TransactionInfo, error), failOnSimError bool, opts *bind.TransactOpts) (*types.Transaction, error)

Creates, signs, and submits a transaction to the network using the nonce and value from the original TX info. Use this if you don't care about the estimated gas cost and just want to run it as quickly as possible. If failOnSimErrors is true, it will treat a simualtion / gas estimation error as a failure and stop before the transaction is submitted to the network.

func (*RocketPool) CreateAndWaitForTransaction

func (rp *RocketPool) CreateAndWaitForTransaction(creator func() (*eth.TransactionInfo, error), failOnSimError bool, opts *bind.TransactOpts) error

Creates, signs, submits, and waits for the transaction to be included in a block. The nonce and gas fee info in the provided opts will be used. The value will come from the provided txInfo. It will *not* use the value in the provided opts. Use this if you don't care about the estimated gas cost and just want to run it as quickly as possible. If failOnSimErrors is true, it will treat a simualtion / gas estimation error as a failure and stop before the transaction is submitted to the network.

func (*RocketPool) CreateMinipoolContractFromAbi

func (rp *RocketPool) CreateMinipoolContractFromAbi(address common.Address, abi *abi.ABI) (*core.Contract, error)

Create a contract directly from its ABI

func (*RocketPool) CreateMinipoolContractFromEncodedAbi

func (rp *RocketPool) CreateMinipoolContractFromEncodedAbi(address common.Address, encodedAbi string) (*core.Contract, error)

Create a contract directly from its ABI, encoded in string form

func (*RocketPool) ExecuteTransaction

func (rp *RocketPool) ExecuteTransaction(txInfo *eth.TransactionInfo, opts *bind.TransactOpts) (*types.Transaction, error)

Signs and submits a transaction to the network. The nonce and gas fee info in the provided opts will be used. The value will come from the provided txInfo. It will *not* use the value in the provided opts.

func (*RocketPool) FlexBatchQuery

func (rp *RocketPool) FlexBatchQuery(count int, batchSize int, query func(*batch.MultiCaller, int) error, handleResult func(bool, int) error, opts *bind.CallOpts) error

Create and execute a multicall query that is too big for one call and must be run in batches. Use this if one of the calls is allowed to fail without interrupting the others; the returned result array provides information about the success of each call.

func (*RocketPool) FlexQuery

func (rp *RocketPool) FlexQuery(query func(*batch.MultiCaller) error, opts *bind.CallOpts, queryables ...eth.IQueryable) ([]bool, error)

Run a multicall query that doesn't perform any return type allocation Use this if one of the calls is allowed to fail without interrupting the others; the returned result array provides information about the success of each call. The 'query' function is an optional general-purpose function you can use to add whatever you want to the multicall before running it. The 'queryables' can be used to simply list a collection of IQueryable objects, each of which will run 'AddToQuery()' on the multicall for convenience.

func (*RocketPool) GetAbi

func (rp *RocketPool) GetAbi(contractName ContractName) (*abi.ABI, error)

Get the ABI for a network contract (typically used for instances like minipools or fee distributors)

func (*RocketPool) GetContract

func (rp *RocketPool) GetContract(contractName ContractName) (*core.Contract, error)

Get a network contract

func (*RocketPool) GetContracts

func (rp *RocketPool) GetContracts(contractNames ...ContractName) ([]*core.Contract, error)

Get several network contracts

func (*RocketPool) GetProtocolVersion

func (rp *RocketPool) GetProtocolVersion(opts *bind.CallOpts) (*version.Version, error)

func (*RocketPool) GetQueryManager

func (rp *RocketPool) GetQueryManager() *eth.QueryManager

func (*RocketPool) GetTransactionManager

func (rp *RocketPool) GetTransactionManager() *eth.TransactionManager

func (*RocketPool) LoadAllContracts

func (rp *RocketPool) LoadAllContracts(opts *bind.CallOpts) error

Load all network contracts

func (*RocketPool) LoadContracts

func (rp *RocketPool) LoadContracts(opts *bind.CallOpts, contractNames ...ContractName) error

Load only the provided specific contracts by their name

func (*RocketPool) LoadInstanceABIs

func (rp *RocketPool) LoadInstanceABIs(opts *bind.CallOpts, contractNames ...ContractName) error

Load the ABIs for instances contracts (like minipools or fee distributors)

func (*RocketPool) MakeContract

func (rp *RocketPool) MakeContract(contractName ContractName, address common.Address) (*core.Contract, error)

Create a binding for a network contract instance

func (*RocketPool) Query

func (rp *RocketPool) Query(query func(*batch.MultiCaller) error, opts *bind.CallOpts, queryables ...eth.IQueryable) error

Run a multicall query that doesn't perform any return type allocation. The 'query' function is an optional general-purpose function you can use to add whatever you want to the multicall before running it. The 'queryables' can be used to simply list a collection of IQueryable objects, each of which will run 'AddToQuery()' on the multicall for convenience.

func (*RocketPool) SignTransaction

func (rp *RocketPool) SignTransaction(txInfo *eth.TransactionInfo, opts *bind.TransactOpts) (*types.Transaction, error)

Signs a transaction but does not submit it to the network. Use this if you want to sign something offline and submit it later, or submit it as part of a bundle.

func (*RocketPool) WaitForTransaction

func (rp *RocketPool) WaitForTransaction(tx *types.Transaction) error

Wait for a transaction to get included in blocks

func (*RocketPool) WaitForTransactionByHash

func (rp *RocketPool) WaitForTransactionByHash(hash common.Hash) error

Wait for a transaction to get included in blocks

func (*RocketPool) WaitForTransactions

func (rp *RocketPool) WaitForTransactions(txs []*types.Transaction) error

Wait for a set of transactions to get included in blocks

func (*RocketPool) WaitForTransactionsByHash

func (rp *RocketPool) WaitForTransactionsByHash(hashes []common.Hash) error

Wait for a set of transactions to get included in blocks

type VersionManager

type VersionManager struct {
	V1_0_0     LegacyVersionWrapper
	V1_1_0_RC1 LegacyVersionWrapper
	V1_1_0     LegacyVersionWrapper
	V1_2_0     LegacyVersionWrapper
	// contains filtered or unexported fields
}

func NewVersionManager

func NewVersionManager(rp *RocketPool) *VersionManager

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL