Skip to content

minipool

go
import "github.com/rocket-pool/rocketpool-go/minipool"

Index

Constants

Settings

go
const (
    MinipoolAddressBatchSize = 50
    MinipoolDetailsBatchSize = 20
)

func EstimateSubmitMinipoolWithdrawableGas

go
func EstimateSubmitMinipoolWithdrawableGas(rp *rocketpool.RocketPool, minipoolAddress common.Address, opts *bind.TransactOpts) (rocketpool.GasInfo, error)

Estimate the gas of SubmitMinipoolWithdrawable

func GetActiveMinipoolCount

go
func GetActiveMinipoolCount(rp *rocketpool.RocketPool, opts *bind.CallOpts) (uint64, error)

Get the number of active minipools in the network

func GetFinalisedMinipoolCount

go
func GetFinalisedMinipoolCount(rp *rocketpool.RocketPool, opts *bind.CallOpts) (uint64, error)

Get the number of finalised minipools in the network

func GetMinipoolAddresses

go
func GetMinipoolAddresses(rp *rocketpool.RocketPool, opts *bind.CallOpts) ([]common.Address, error)

Get all minipool addresses

func GetMinipoolAt

go
func GetMinipoolAt(rp *rocketpool.RocketPool, index uint64, opts *bind.CallOpts) (common.Address, error)

Get a minipool address by index

func GetMinipoolByPubkey

go
func GetMinipoolByPubkey(rp *rocketpool.RocketPool, pubkey rptypes.ValidatorPubkey, opts *bind.CallOpts) (common.Address, error)

Get a minipool address by validator pubkey

func GetMinipoolCount

go
func GetMinipoolCount(rp *rocketpool.RocketPool, opts *bind.CallOpts) (uint64, error)

Get the minipool count

func GetMinipoolExists

go
func GetMinipoolExists(rp *rocketpool.RocketPool, minipoolAddress common.Address, opts *bind.CallOpts) (bool, error)

Check whether a minipool exists

func GetMinipoolPubkey

go
func GetMinipoolPubkey(rp *rocketpool.RocketPool, minipoolAddress common.Address, opts *bind.CallOpts) (rptypes.ValidatorPubkey, error)

Get a minipool's validator pubkey

func GetNodeActiveMinipoolCount

go
func GetNodeActiveMinipoolCount(rp *rocketpool.RocketPool, nodeAddress common.Address, opts *bind.CallOpts) (uint64, error)

Get the number of minipools owned by a node that are not finalised

func GetNodeFinalisedMinipoolCount

go
func GetNodeFinalisedMinipoolCount(rp *rocketpool.RocketPool, nodeAddress common.Address, opts *bind.CallOpts) (uint64, error)

Get the number of minipools owned by a node that are finalised

func GetNodeMinipoolAddresses

go
func GetNodeMinipoolAddresses(rp *rocketpool.RocketPool, nodeAddress common.Address, opts *bind.CallOpts) ([]common.Address, error)

Get a node's minipool addresses

func GetNodeMinipoolAt

go
func GetNodeMinipoolAt(rp *rocketpool.RocketPool, nodeAddress common.Address, index uint64, opts *bind.CallOpts) (common.Address, error)

Get a node's minipool address by index

func GetNodeMinipoolCount

go
func GetNodeMinipoolCount(rp *rocketpool.RocketPool, nodeAddress common.Address, opts *bind.CallOpts) (uint64, error)

Get a node's minipool count

func GetNodeValidatingMinipoolAt

go
func GetNodeValidatingMinipoolAt(rp *rocketpool.RocketPool, nodeAddress common.Address, index uint64, opts *bind.CallOpts) (common.Address, error)

Get a node's validating minipool address by index

func GetNodeValidatingMinipoolCount

go
func GetNodeValidatingMinipoolCount(rp *rocketpool.RocketPool, nodeAddress common.Address, opts *bind.CallOpts) (uint64, error)

Get a node's validating minipool count

func GetNodeValidatingMinipoolPubkeys

go
func GetNodeValidatingMinipoolPubkeys(rp *rocketpool.RocketPool, nodeAddress common.Address, opts *bind.CallOpts) ([]rptypes.ValidatorPubkey, error)

Get a node's validating minipool pubkeys

func GetQueueEffectiveCapacity

go
func GetQueueEffectiveCapacity(rp *rocketpool.RocketPool, opts *bind.CallOpts) (*big.Int, error)

Get the total effective capacity of the minipool queue (used in node demand calculation)

func GetQueueLength

go
func GetQueueLength(rp *rocketpool.RocketPool, depositType rptypes.MinipoolDeposit, opts *bind.CallOpts) (uint64, error)

Get the length of a single minipool queue

func GetQueueNextCapacity

go
func GetQueueNextCapacity(rp *rocketpool.RocketPool, opts *bind.CallOpts) (*big.Int, error)

Get the capacity of the next minipool in the queue

func GetQueueTotalCapacity

go
func GetQueueTotalCapacity(rp *rocketpool.RocketPool, opts *bind.CallOpts) (*big.Int, error)

Get the total capacity of the minipool queue

func GetQueueTotalLength

go
func GetQueueTotalLength(rp *rocketpool.RocketPool, opts *bind.CallOpts) (uint64, error)

Get the total length of the minipool queue

func SubmitMinipoolWithdrawable

go
func SubmitMinipoolWithdrawable(rp *rocketpool.RocketPool, minipoolAddress common.Address, opts *bind.TransactOpts) (common.Hash, error)

Submit a minipool withdrawable event

type Minipool

Minipool contract

go
type Minipool struct {
    Address    common.Address
    Contract   *rocketpool.Contract
    RocketPool *rocketpool.RocketPool
}

func NewMinipool

go
func NewMinipool(rp *rocketpool.RocketPool, address common.Address) (*Minipool, error)

Create new minipool contract

func (*Minipool) CalculateNodeShare

go
func (mp *Minipool) CalculateNodeShare(balance *big.Int, opts *bind.CallOpts) (*big.Int, error)

Given a validator balance, calculates how much belongs to the node taking into consideration rewards and penalties

func (*Minipool) CalculateUserShare

go
func (mp *Minipool) CalculateUserShare(balance *big.Int, opts *bind.CallOpts) (*big.Int, error)

Given a validator balance, calculates how much belongs to rETH users taking into consideration rewards and penalties

func (*Minipool) Close

go
func (mp *Minipool) Close(opts *bind.TransactOpts) (common.Hash, error)

Withdraw node balances from the dissolved minipool and close it

func (*Minipool) DelegateRollback

go
func (mp *Minipool) DelegateRollback(opts *bind.TransactOpts) (common.Hash, error)

Rollback to previous delegate contract

func (*Minipool) DelegateUpgrade

go
func (mp *Minipool) DelegateUpgrade(opts *bind.TransactOpts) (common.Hash, error)

Upgrade this minipool to the latest network delegate contract

func (*Minipool) Dissolve

go
func (mp *Minipool) Dissolve(opts *bind.TransactOpts) (common.Hash, error)

Dissolve the initialized or prelaunch minipool

func (*Minipool) DistributeBalance

go
func (mp *Minipool) DistributeBalance(opts *bind.TransactOpts) (common.Hash, error)

Distribute the minipool's ETH balance to the node operator and rETH staking pool. !!! WARNING !!! DO NOT CALL THIS until the minipool's validator has exited from the Beacon Chain and the balance has been deposited into the minipool!

func (*Minipool) DistributeBalanceAndFinalise

go
func (mp *Minipool) DistributeBalanceAndFinalise(opts *bind.TransactOpts) (common.Hash, error)

Distribute the minipool's ETH balance to the node operator and rETH staking pool, then finalises the minipool !!! WARNING !!! DO NOT CALL THIS until the minipool's validator has exited from the Beacon Chain and the balance has been deposited into the minipool!

func (*Minipool) EstimateCloseGas

go
func (mp *Minipool) EstimateCloseGas(opts *bind.TransactOpts) (rocketpool.GasInfo, error)

Estimate the gas of Close

func (*Minipool) EstimateDelegateRollbackGas

go
func (mp *Minipool) EstimateDelegateRollbackGas(opts *bind.TransactOpts) (rocketpool.GasInfo, error)

Estimate the gas of DelegateRollback

func (*Minipool) EstimateDelegateUpgradeGas

go
func (mp *Minipool) EstimateDelegateUpgradeGas(opts *bind.TransactOpts) (rocketpool.GasInfo, error)

Estimate the gas of DelegateUpgrade

func (*Minipool) EstimateDissolveGas

go
func (mp *Minipool) EstimateDissolveGas(opts *bind.TransactOpts) (rocketpool.GasInfo, error)

Estimate the gas of Dissolve

func (*Minipool) EstimateDistributeBalanceAndFinaliseGas

go
func (mp *Minipool) EstimateDistributeBalanceAndFinaliseGas(opts *bind.TransactOpts) (rocketpool.GasInfo, error)

Estimate the gas of DistributeBalanceAndFinalise

func (*Minipool) EstimateDistributeBalanceGas

go
func (mp *Minipool) EstimateDistributeBalanceGas(opts *bind.TransactOpts) (rocketpool.GasInfo, error)

Estimate the gas of DistributeBalance

func (*Minipool) EstimateFinaliseGas

go
func (mp *Minipool) EstimateFinaliseGas(opts *bind.TransactOpts) (rocketpool.GasInfo, error)

Estimate the gas of Finalise

func (*Minipool) EstimateRefundGas

go
func (mp *Minipool) EstimateRefundGas(opts *bind.TransactOpts) (rocketpool.GasInfo, error)

Estimate the gas of Refund

func (*Minipool) EstimateSetUseLatestDelegateGas

go
func (mp *Minipool) EstimateSetUseLatestDelegateGas(setting bool, opts *bind.TransactOpts) (rocketpool.GasInfo, error)

Estimate the gas of SetUseLatestDelegate

func (*Minipool) EstimateStakeGas

go
func (mp *Minipool) EstimateStakeGas(validatorPubkey rptypes.ValidatorPubkey, validatorSignature rptypes.ValidatorSignature, depositDataRoot common.Hash, opts *bind.TransactOpts) (rocketpool.GasInfo, error)

Estimate the gas of Stake

func (*Minipool) Finalise

go
func (mp *Minipool) Finalise(opts *bind.TransactOpts) (common.Hash, error)

Finalise a minipool to get the RPL stake back

func (*Minipool) GetDelegate

go
func (mp *Minipool) GetDelegate(opts *bind.CallOpts) (common.Address, error)

Returns the address of the minipool's stored delegate

func (*Minipool) GetDepositType

go
func (mp *Minipool) GetDepositType(opts *bind.CallOpts) (rptypes.MinipoolDeposit, error)

Get deposit type

func (*Minipool) GetEffectiveDelegate

go
func (mp *Minipool) GetEffectiveDelegate(opts *bind.CallOpts) (common.Address, error)

Returns the delegate which will be used when calling this minipool taking into account useLatestDelegate setting

func (*Minipool) GetFinalised

go
func (mp *Minipool) GetFinalised(opts *bind.CallOpts) (bool, error)

func (*Minipool) GetNodeAddress

go
func (mp *Minipool) GetNodeAddress(opts *bind.CallOpts) (common.Address, error)

func (*Minipool) GetNodeDepositAssigned

go
func (mp *Minipool) GetNodeDepositAssigned(opts *bind.CallOpts) (bool, error)

func (*Minipool) GetNodeDepositBalance

go
func (mp *Minipool) GetNodeDepositBalance(opts *bind.CallOpts) (*big.Int, error)

func (*Minipool) GetNodeDetails

go
func (mp *Minipool) GetNodeDetails(opts *bind.CallOpts) (NodeDetails, error)

Get node details

func (*Minipool) GetNodeFee

go
func (mp *Minipool) GetNodeFee(opts *bind.CallOpts) (float64, error)

func (*Minipool) GetNodeRefundBalance

go
func (mp *Minipool) GetNodeRefundBalance(opts *bind.CallOpts) (*big.Int, error)

func (*Minipool) GetPreviousDelegate

go
func (mp *Minipool) GetPreviousDelegate(opts *bind.CallOpts) (common.Address, error)

Returns the address of the minipool's previous delegate (or address(0) if not set)

func (*Minipool) GetStatus

go
func (mp *Minipool) GetStatus(opts *bind.CallOpts) (rptypes.MinipoolStatus, error)

func (*Minipool) GetStatusBlock

go
func (mp *Minipool) GetStatusBlock(opts *bind.CallOpts) (uint64, error)

func (*Minipool) GetStatusDetails

go
func (mp *Minipool) GetStatusDetails(opts *bind.CallOpts) (StatusDetails, error)

Get status details

func (*Minipool) GetStatusTime

go
func (mp *Minipool) GetStatusTime(opts *bind.CallOpts) (time.Time, error)

func (*Minipool) GetUseLatestDelegate

go
func (mp *Minipool) GetUseLatestDelegate(opts *bind.CallOpts) (bool, error)

Getter for useLatestDelegate setting

func (*Minipool) GetUserDepositAssigned

go
func (mp *Minipool) GetUserDepositAssigned(opts *bind.CallOpts) (bool, error)

func (*Minipool) GetUserDepositAssignedTime

go
func (mp *Minipool) GetUserDepositAssignedTime(opts *bind.CallOpts) (time.Time, error)

func (*Minipool) GetUserDepositBalance

go
func (mp *Minipool) GetUserDepositBalance(opts *bind.CallOpts) (*big.Int, error)

func (*Minipool) GetUserDetails

go
func (mp *Minipool) GetUserDetails(opts *bind.CallOpts) (UserDetails, error)

Get user deposit details

func (*Minipool) GetWithdrawalCredentials

go
func (mp *Minipool) GetWithdrawalCredentials(opts *bind.CallOpts) (common.Hash, error)

Get withdrawal credentials

func (*Minipool) Refund

go
func (mp *Minipool) Refund(opts *bind.TransactOpts) (common.Hash, error)

Refund node ETH from the minipool

func (*Minipool) SetUseLatestDelegate

go
func (mp *Minipool) SetUseLatestDelegate(setting bool, opts *bind.TransactOpts) (common.Hash, error)

If set to true, will automatically use the latest delegate contract

func (*Minipool) Stake

go
func (mp *Minipool) Stake(validatorPubkey rptypes.ValidatorPubkey, validatorSignature rptypes.ValidatorSignature, depositDataRoot common.Hash, opts *bind.TransactOpts) (common.Hash, error)

Progress the prelaunch minipool to staking

type MinipoolCountsPerStatus

The counts of minipools per status

go
type MinipoolCountsPerStatus struct {
    Initialized  *big.Int `abi:"initializedCount"`
    Prelaunch    *big.Int `abi:"prelaunchCount"`
    Staking      *big.Int `abi:"stakingCount"`
    Withdrawable *big.Int `abi:"withdrawableCount"`
    Dissolved    *big.Int `abi:"dissolvedCount"`
}

func GetMinipoolCountPerStatus

go
func GetMinipoolCountPerStatus(rp *rocketpool.RocketPool, offset, limit uint64, opts *bind.CallOpts) (MinipoolCountsPerStatus, error)

Get the minipool count by status

type MinipoolDetails

Minipool details

go
type MinipoolDetails struct {
    Address common.Address          `json:"address"`
    Exists  bool                    `json:"exists"`
    Pubkey  rptypes.ValidatorPubkey `json:"pubkey"`
}

func GetMinipoolDetails

go
func GetMinipoolDetails(rp *rocketpool.RocketPool, minipoolAddress common.Address, opts *bind.CallOpts) (MinipoolDetails, error)

Get a minipool's details

func GetMinipools

go
func GetMinipools(rp *rocketpool.RocketPool, opts *bind.CallOpts) ([]MinipoolDetails, error)

Get all minipool details

func GetNodeMinipools

go
func GetNodeMinipools(rp *rocketpool.RocketPool, nodeAddress common.Address, opts *bind.CallOpts) ([]MinipoolDetails, error)

Get a node's minipool details

type NodeDetails

go
type NodeDetails struct {
    Address         common.Address `json:"address"`
    Fee             float64        `json:"fee"`
    DepositBalance  *big.Int       `json:"depositBalance"`
    RefundBalance   *big.Int       `json:"refundBalance"`
    DepositAssigned bool           `json:"depositAssigned"`
}

type QueueCapacity

Minipool queue capacity

go
type QueueCapacity struct {
    Total        *big.Int
    Effective    *big.Int
    NextMinipool *big.Int
}

func GetQueueCapacity

go
func GetQueueCapacity(rp *rocketpool.RocketPool, opts *bind.CallOpts) (QueueCapacity, error)

Get minipool queue capacity

type QueueLengths

Minipool queue lengths

go
type QueueLengths struct {
    Total        uint64
    FullDeposit  uint64
    HalfDeposit  uint64
    EmptyDeposit uint64
}

func GetQueueLengths

go
func GetQueueLengths(rp *rocketpool.RocketPool, opts *bind.CallOpts) (QueueLengths, error)

Get minipool queue lengths

type StatusDetails

Minipool detail types

go
type StatusDetails struct {
    Status      rptypes.MinipoolStatus `json:"status"`
    StatusBlock uint64                 `json:"statusBlock"`
    StatusTime  time.Time              `json:"statusTime"`
}

type UserDetails

go
type UserDetails struct {
    DepositBalance      *big.Int  `json:"depositBalance"`
    DepositAssigned     bool      `json:"depositAssigned"`
    DepositAssignedTime time.Time `json:"depositAssignedTime"`
}