Skip to content

node

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

Index

Constants

Settings

go
const (
    NodeAddressBatchSize = 50
    NodeDetailsBatchSize = 20
)

func CalculateTotalEffectiveRPLStake

go
func CalculateTotalEffectiveRPLStake(rp *rocketpool.RocketPool, offset, limit, rplPrice *big.Int, opts *bind.CallOpts) (*big.Int, error)

Calculate total effective RPL stake

func Deposit

go
func Deposit(rp *rocketpool.RocketPool, minimumNodeFee float64, opts *bind.TransactOpts) (common.Hash, error)

Make a node deposit

func EstimateDepositGas

go
func EstimateDepositGas(rp *rocketpool.RocketPool, minimumNodeFee float64, opts *bind.TransactOpts) (rocketpool.GasInfo, error)

Estimate the gas of Deposit

func EstimateRegisterNodeGas

go
func EstimateRegisterNodeGas(rp *rocketpool.RocketPool, timezoneLocation string, opts *bind.TransactOpts) (rocketpool.GasInfo, error)

Estimate the gas of RegisterNode

func EstimateSetTimezoneLocationGas

go
func EstimateSetTimezoneLocationGas(rp *rocketpool.RocketPool, timezoneLocation string, opts *bind.TransactOpts) (rocketpool.GasInfo, error)

Estimate the gas of SetTimezoneLocation

func EstimateStakeGas

go
func EstimateStakeGas(rp *rocketpool.RocketPool, rplAmount *big.Int, opts *bind.TransactOpts) (rocketpool.GasInfo, error)

Estimate the gas of Stake

func EstimateWithdrawRPLGas

go
func EstimateWithdrawRPLGas(rp *rocketpool.RocketPool, rplAmount *big.Int, opts *bind.TransactOpts) (rocketpool.GasInfo, error)

Estimate the gas of WithdrawRPL

func GetBalancesSubmissions

go
func GetBalancesSubmissions(rp *rocketpool.RocketPool, nodeAddress common.Address, fromBlock uint64, intervalSize *big.Int) (*[]uint64, error)

Returns an array of block numbers for balances submissions the given trusted node has submitted since fromBlock

func GetNodeAddresses

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

Get all node addresses

func GetNodeAt

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

Get a node address by index

func GetNodeCount

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

Get the number of nodes in the network

func GetNodeEffectiveRPLStake

go
func GetNodeEffectiveRPLStake(rp *rocketpool.RocketPool, nodeAddress common.Address, opts *bind.CallOpts) (*big.Int, error)

Get a node's effective RPL stake

func GetNodeExists

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

Check whether a node exists

func GetNodeMaximumRPLStake

go
func GetNodeMaximumRPLStake(rp *rocketpool.RocketPool, nodeAddress common.Address, opts *bind.CallOpts) (*big.Int, error)

Get a node's maximum RPL stake to collateralize their minipools

func GetNodeMinimumRPLStake

go
func GetNodeMinimumRPLStake(rp *rocketpool.RocketPool, nodeAddress common.Address, opts *bind.CallOpts) (*big.Int, error)

Get a node's minimum RPL stake to collateralize their minipools

func GetNodeMinipoolLimit

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

Get a node's minipool limit based on RPL stake

func GetNodeRPLStake

go
func GetNodeRPLStake(rp *rocketpool.RocketPool, nodeAddress common.Address, opts *bind.CallOpts) (*big.Int, error)

Get a node's RPL stake

func GetNodeRPLStakedTime

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

Get the time a node last staked RPL

func GetNodeTimezoneLocation

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

Get a node's timezone location

func GetPricesSubmissions

go
func GetPricesSubmissions(rp *rocketpool.RocketPool, nodeAddress common.Address, fromBlock uint64, intervalSize *big.Int) (*[]uint64, error)

Returns an array of block numbers for prices submissions the given trusted node has submitted since fromBlock

func GetTotalEffectiveRPLStake

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

Get the effective RPL staked in the network

func GetTotalRPLStake

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

Get the total RPL staked in the network

func RegisterNode

go
func RegisterNode(rp *rocketpool.RocketPool, timezoneLocation string, opts *bind.TransactOpts) (common.Hash, error)

Register a node

func SetTimezoneLocation

go
func SetTimezoneLocation(rp *rocketpool.RocketPool, timezoneLocation string, opts *bind.TransactOpts) (common.Hash, error)

Set a node's timezone location

func StakeRPL

go
func StakeRPL(rp *rocketpool.RocketPool, rplAmount *big.Int, opts *bind.TransactOpts) (common.Hash, error)

Stake RPL

func WithdrawRPL

go
func WithdrawRPL(rp *rocketpool.RocketPool, rplAmount *big.Int, opts *bind.TransactOpts) (common.Hash, error)

Withdraw staked RPL

type NodeDetails

Node details

go
type NodeDetails struct {
    Address                  common.Address `json:"address"`
    Exists                   bool           `json:"exists"`
    WithdrawalAddress        common.Address `json:"withdrawalAddress"`
    PendingWithdrawalAddress common.Address `json:"pendingWithdrawalAddress"`
    TimezoneLocation         string         `json:"timezoneLocation"`
}

func GetNodeDetails

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

Get a node's details

func GetNodes

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

Get all node details

type TimezoneCount

Count of nodes belonging to a timezone

go
type TimezoneCount struct {
    Timezone string   `abi:"timezone"`
    Count    *big.Int `abi:"count"`
}

func GetNodeCountPerTimezone

go
func GetNodeCountPerTimezone(rp *rocketpool.RocketPool, offset, limit *big.Int, opts *bind.CallOpts) ([]TimezoneCount, error)

Get a breakdown of the number of nodes per timezone

type TrustedNodeParticipation

The results of the trusted node participation calculation

go
type TrustedNodeParticipation struct {
    StartBlock          uint64
    UpdateFrequency     uint64
    UpdateCount         uint64
    Probability         float64
    ExpectedSubmissions float64
    ActualSubmissions   map[common.Address]float64
    Participation       map[common.Address][]bool
}

func CalculateTrustedNodeBalancesParticipation

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

Calculates the participation rate of every trusted node on balance submission since the last block that member count changed

func CalculateTrustedNodePricesParticipation

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

Calculates the participation rate of every trusted node on price submission since the last block that member count changed