node

package
v1.3.5 Latest Latest
Warning

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

Go to latest
Published: Oct 25, 2022 License: GPL-3.0 Imports: 18 Imported by: 14

Documentation

Index

Constants

View Source
const (
	NodeAddressBatchSize               = 50
	NodeDetailsBatchSize               = 20
	SmoothingPoolCountBatchSize uint64 = 2000
)

Settings

Variables

This section is empty.

Functions

func CalculateTotalEffectiveRPLStake

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

Calculate total effective RPL stake

func Deposit

func Deposit(rp *rocketpool.RocketPool, minimumNodeFee float64, validatorPubkey rptypes.ValidatorPubkey, validatorSignature rptypes.ValidatorSignature, depositDataRoot common.Hash, salt *big.Int, expectedMinipoolAddress common.Address, opts *bind.TransactOpts) (*types.Transaction, error)

Make a node deposit

func EstimateDepositGas

func EstimateDepositGas(rp *rocketpool.RocketPool, minimumNodeFee float64, validatorPubkey rptypes.ValidatorPubkey, validatorSignature rptypes.ValidatorSignature, depositDataRoot common.Hash, salt *big.Int, expectedMinipoolAddress common.Address, opts *bind.TransactOpts) (rocketpool.GasInfo, error)

Estimate the gas of Deposit

func EstimateInitializeFeeDistributorGas added in v1.3.0

func EstimateInitializeFeeDistributorGas(rp *rocketpool.RocketPool, opts *bind.TransactOpts) (rocketpool.GasInfo, error)

Estimate the gas for creating the fee distributor contract for a node

func EstimateRegisterNodeGas

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

Estimate the gas of RegisterNode

func EstimateSetSmoothingPoolRegistrationStateGas added in v1.3.0

func EstimateSetSmoothingPoolRegistrationStateGas(rp *rocketpool.RocketPool, optIn bool, opts *bind.TransactOpts) (rocketpool.GasInfo, error)

Estimate the gas for opting into / out of the smoothing pool

func EstimateSetTimezoneLocationGas

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

Estimate the gas of SetTimezoneLocation

func EstimateStakeGas

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

Estimate the gas of Stake

func EstimateWithdrawRPLGas

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

Estimate the gas of WithdrawRPL

func GetBalancesSubmissions

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 GetDepositType

func GetDepositType(rp *rocketpool.RocketPool, amount *big.Int, opts *bind.CallOpts) (rptypes.MinipoolDeposit, error)

Get the type of a deposit based on the amount

func GetDistributorAddress added in v1.3.0

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

Gets the deterministic address for a node's reward distributor contract

func GetFeeDistributorInitialized added in v1.3.0

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

Check if a node's fee distributor has been initialized yet

func GetLatestBalancesSubmissions

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

Returns an array of members who submitted a balance since fromBlock

func GetLatestPricesSubmissions

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

Returns an array of members who submitted prices since fromBlock

func GetNodeAddresses

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

Get all node addresses

func GetNodeAt

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

Get a node address by index

func GetNodeAverageFee added in v1.3.0

func GetNodeAverageFee(rp *rocketpool.RocketPool, nodeAddress common.Address, opts *bind.CallOpts) (float64, error)

Get a node's average minipool fee

func GetNodeAverageFeeRaw added in v1.3.4

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

Get a node's average minipool fee

func GetNodeCount

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

Get the number of nodes in the network

func GetNodeEffectiveRPLStake

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

Get a node's effective RPL stake

func GetNodeExists

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

Check whether a node exists

func GetNodeManagerVersion added in v1.2.0

func GetNodeManagerVersion(rp *rocketpool.RocketPool, opts *bind.CallOpts) (uint8, error)

Get the version of the Node Manager contract

func GetNodeMaximumRPLStake

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

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

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

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

Get a node's RPL stake

func GetNodeRPLStakedTime

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

Get the time a node last staked RPL

func GetNodeRegistrationTime added in v1.3.0

func GetNodeRegistrationTime(rp *rocketpool.RocketPool, address common.Address, opts *bind.CallOpts) (time.Time, error)

Get the time that the user registered as a claimer

func GetNodeTimezoneLocation

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

Get a node's timezone location

func GetPricesSubmissions

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 GetRewardNetwork added in v1.3.0

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

Get the network ID for a node's rewards

func GetSmoothingPoolRegisteredNodeCount added in v1.3.0

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

Get the number of nodes in the Smoothing Pool

func GetSmoothingPoolRegistrationChanged added in v1.3.0

func GetSmoothingPoolRegistrationChanged(rp *rocketpool.RocketPool, nodeAddress common.Address, opts *bind.CallOpts) (time.Time, error)

Get the time of the previous smoothing pool opt-in / opt-out

func GetSmoothingPoolRegistrationState added in v1.3.0

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

Get the smoothing pool opt-in status of a node

func GetTotalEffectiveRPLStake

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

Get the effective RPL staked in the network

func GetTotalRPLStake

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

Get the total RPL staked in the network

func GetTrustedNodeLatestBalancesParticipation

func GetTrustedNodeLatestBalancesParticipation(rp *rocketpool.RocketPool, intervalSize *big.Int, opts *bind.CallOpts) (map[common.Address]bool, error)

Returns a mapping of members and whether they have submitted balances this interval or not

func GetTrustedNodeLatestPricesParticipation

func GetTrustedNodeLatestPricesParticipation(rp *rocketpool.RocketPool, intervalSize *big.Int, opts *bind.CallOpts) (map[common.Address]bool, error)

Returns a mapping of members and whether they have submitted prices this interval or not

func InitializeFeeDistributor added in v1.3.0

func InitializeFeeDistributor(rp *rocketpool.RocketPool, opts *bind.TransactOpts) (common.Hash, error)

Create the fee distributor contract for a node

func RegisterNode

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

Register a node

func SetSmoothingPoolRegistrationState added in v1.3.0

func SetSmoothingPoolRegistrationState(rp *rocketpool.RocketPool, optIn bool, opts *bind.TransactOpts) (common.Hash, error)

Opt into / out of the smoothing pool

func SetTimezoneLocation

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

Set a node's timezone location

func StakeRPL

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

Stake RPL

func WithdrawRPL

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

Withdraw staked RPL

Types

type Distributor added in v1.3.0

type Distributor struct {
	Address    common.Address
	Contract   *rocketpool.Contract
	RocketPool *rocketpool.RocketPool
}

Distributor contract

func NewDistributor added in v1.3.0

func NewDistributor(rp *rocketpool.RocketPool, address common.Address) (*Distributor, error)

Create new distributor contract

func (*Distributor) Distribute added in v1.3.0

func (d *Distributor) Distribute(opts *bind.TransactOpts) (common.Hash, error)

Distribute the contract's balance to the rETH contract and the user

func (*Distributor) EstimateDistributeGas added in v1.3.0

func (d *Distributor) EstimateDistributeGas(opts *bind.TransactOpts) (rocketpool.GasInfo, error)

Estimate the gas of a distribute

type NodeDetails

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"`
}

Node details

func GetNodeDetails

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

Get a node's details

func GetNodes

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

Get all node details

type TimezoneCount

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

Count of nodes belonging to a timezone

func GetNodeCountPerTimezone

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

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

The results of the trusted node participation calculation

func CalculateTrustedNodeBalancesParticipation

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

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

Jump to

Keyboard shortcuts

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