# Class: Node

Rocket Pool Node Manager

# Constructors

# constructor

new Node(web3, contracts)

Create a new Node instance.

# Parameters

Name Type Description
web3 default A valid Web3 instance
contracts Contracts A Rocket Pool contract manager instance

# Defined in

rocketpool/node/node.ts:25

# Accessors

# rocketNodeDeposit

Private get rocketNodeDeposit(): Promise<Contract>

Private accessor use to retrieve the related contract

# Returns

Promise<Contract>

a Promise<Contract> with a web3.eth.contract instance of the rocketNodeDeposit contract

# Defined in

rocketpool/node/node.ts:31


# rocketNodeManager

Private get rocketNodeManager(): Promise<Contract>

Private accessor use to retrieve the related contract

# Returns

Promise<Contract>

a Promise<Contract> with a web3.eth.contract instance of the rocketNodeManager contract

# Defined in

rocketpool/node/node.ts:39


# rocketNodeStaking

Private get rocketNodeStaking(): Promise<Contract>

Private accessor use to retrieve the related contract

# Returns

Promise<Contract>

a Promise<Contract> with a web3.eth.contract instance of the rocketNodeStaking contract

# Defined in

rocketpool/node/node.ts:47


# rocketStorage

Private get rocketStorage(): Promise<Contract>

Private accessor use to retrieve the related contract

# Returns

Promise<Contract>

a Promise<Contract> with a web3.eth.contract instance of the rocketStorage contract

# Defined in

rocketpool/node/node.ts:55

# Methods

# getNodes

getNodes(): Promise<NodeDetails[]>

Get an array of Node Details

example using Typescript

const nodes = rp.node.getNodes().then((val: string) => { val };

# Returns

Promise<NodeDetails[]>

a Promise<NodeDetails[]> that resolves to an array of NodeDetails

# Defined in

rocketpool/node/node.ts:68


# getNodeAddresses

getNodeAddresses(): Promise<string[]>

Get an array of node addresses

example using Typescript

const addresses = rp.node.getNodesAddresses().then((val: string[]) => { val };

# Returns

Promise<string[]>

a Promise<string[]> that resolves to an array of node addresses

# Defined in

rocketpool/node/node.ts:87


# getNodeDetails

getNodeDetails(address): Promise<NodeDetails>

Get a node's details

example using Typescript

const nodeDetail = rp.node.getNodeDetails("0x24fBeD7Ecd625D3f0FD19a6c9113DEd436172294").then((val: NodeDetails) => { val }

# Parameters

Name Type Description
address string A string representing a node address

# Returns

Promise<NodeDetails>

a Promise<NodeDetails> that resolves to a NodeDetails object

# Defined in

rocketpool/node/node.ts:107


# getNodeCount

getNodeCount(): Promise<number>

Get the total node count

example using Typescript

const nodeCount = rp.node.getNodeCount().then((val: number) => { val };

# Returns

Promise<number>

a Promise<number> that resolves to a number representing the quantity of total nodes

# Defined in

rocketpool/node/node.ts:126


# getNodeAt

getNodeAt(index): Promise<string>

Get a node address by index

example using Typescript

const nodeAddress = rp.node.getNodeAt(5).then((val: string) => { val };

# Parameters

Name Type Description
index number A number representing the index of the node

# Returns

Promise<string>

a Promise<string> that resolves to a string representing a node address

# Defined in

rocketpool/node/node.ts:144


# getNodeExists

getNodeExists(address): Promise<boolean>

Check whether a node exists

example using Typescript

const exists = rp.node.getNodeExists("0x24fBeD7Ecd625D3f0FD19a6c9113DEd436172294").then((val: boolean) => { val };

# Parameters

Name Type Description
address string A string representing a node address

# Returns

Promise<boolean>

a Promise<boolean> that resolves to a boolean representing whether the node exists or not

# Defined in

rocketpool/node/node.ts:160


# getNodeTimezoneLocation

getNodeTimezoneLocation(address): Promise<string>

Get a node's timezone location

example using Typescript

const tz = rp.node.getNodeTimezoneLocation("0x24fBeD7Ecd625D3f0FD19a6c9113DEd436172294").then((val: string) => { val };

# Parameters

Name Type Description
address string A string representing a node address

# Returns

Promise<string>

a Promise<string> that resolves to a string representing the node's timezone

# Defined in

rocketpool/node/node.ts:176


# getNodeWithdrawalAddress

getNodeWithdrawalAddress(address): Promise<string>

Get a node's withdrawal address

example using Typescript

const withdrawalAddress = rp.node.getNodeWithdrawalAddress("0x24fBeD7Ecd625D3f0FD19a6c9113DEd436172294").then((val: string) => { val };

# Parameters

Name Type Description
address string A string representing a node address

# Returns

Promise<string>

a Promise<string> that resolves to a string representing the node's withdrawal address

# Defined in

rocketpool/node/node.ts:192


# getNodeRPLStake

getNodeRPLStake(address): Promise<string>

Get a node's RPL stake

example using Typescript

const nodeRPLStake = rp.node.getNodeRPLStake("0x24fBeD7Ecd625D3f0FD19a6c9113DEd436172294").then((val: string) => { val };

# Parameters

Name Type Description
address string A string representing a node address

# Returns

Promise<string>

a Promise<string> that resolves to a string representing the node's RPL stake

# Defined in

rocketpool/node/node.ts:208


# getNodeEffectiveRPLStake

getNodeEffectiveRPLStake(address): Promise<string>

Get a node's effective RPL stake

example using Typescript

const nodeEffectiveRPLStake = rp.node.getNodeEffectiveRPLStake("0x24fBeD7Ecd625D3f0FD19a6c9113DEd436172294").then((val: string) => { val };

# Parameters

Name Type Description
address string A string representing a node address

# Returns

Promise<string>

a Promise<string> that resolves to a string representing the node's effective RPL stake

# Defined in

rocketpool/node/node.ts:224


# getNodeMinipoolLimit

getNodeMinipoolLimit(address): Promise<string>

Get the node minipool limit

example using Typescript

const nodeMinipoolLimit = rp.node.getNodeMinipoolLimit("0x24fBeD7Ecd625D3f0FD19a6c9113DEd436172294").then((val: string) => { val };

# Parameters

Name Type Description
address string A string representing a node address

# Returns

Promise<string>

a Promise<string> that resolves to a string representing the node minipool limit

# Defined in

rocketpool/node/node.ts:240


# getNodeTotalEffectiveRPLStake

getNodeTotalEffectiveRPLStake(): Promise<string>

Get a node's total effective RPL stake

example using Typescript

const nodeTotalEffectiveRPLStake = rp.node.getNodeTotalEffectiveRPLStake("0x24fBeD7Ecd625D3f0FD19a6c9113DEd436172294").then((val: string) => { val };

# Returns

Promise<string>

a Promise<string> that resolves to a string representing the node's RPL stake

# Defined in

rocketpool/node/node.ts:256


# getNodeMinimumRPLStake

getNodeMinimumRPLStake(address): Promise<string>

Get a node's minimum RPL stake

example using Typescript

const nodeRPLStake = rp.node.getNodeRPLStake("0x24fBeD7Ecd625D3f0FD19a6c9113DEd436172294").then((val: string) => { val };

# Parameters

Name Type Description
address string A string representing a node address

# Returns

Promise<string>

a Promise<string> that resolves to a string representing the node's minimum RPL stake

# Defined in

rocketpool/node/node.ts:272


# getNodePendingWithdrawalAddress

getNodePendingWithdrawalAddress(address): Promise<string>

Get a node's pending withdrawal address

example using Typescript

const pendingWithdrawalAddress = rp.node.getNodePendingWithdrawalAddress("0x24fBeD7Ecd625D3f0FD19a6c9113DEd436172294").then((val: string) => { val };

# Parameters

Name Type Description
address string A string representing a node address

# Returns

Promise<string>

a Promise<string> that resolves to a string representing the node's pending withdrawal address

# Defined in

rocketpool/node/node.ts:288


# getTotalEffectiveRPLStake

getTotalEffectiveRPLStake(): Promise<string>

Get the total effective RPL stake

example using Typescript

const totalEffectiveRPLStake = rp.node.getTotalEffectiveRPLStake().then((val: string) => { val };

# Returns

Promise<string>

a Promise<string> that resolves to a string representing the total effective rpl stake

# Defined in

rocketpool/node/node.ts:303


# getTotalRPLStake

getTotalRPLStake(): Promise<string>

Get the total RPL stake

example using Typescript

const totalRPLStake = rp.node.getTotalRPLStake().then((val: string) => { val };

# Returns

Promise<string>

a Promise<string> that resolves to a string representing the total rpl stake

# Defined in

rocketpool/node/node.ts:318


# calculateTotalEffectiveRPLStake

calculateTotalEffectiveRPLStake(offset, limit, rplPrice): Promise<string>

Calculate the total effective RPL stake provided inputs

params offset a number representing the offset

params limit a number representing the limit

params rplPrice a string representing the rplPrice

example using Typescript

const calculatedTotalEffectiveRPLStake = rp.node.calculateTotalEffectiveRPLStake(offset, limit, rplPrice).then((val: string) => { val };

# Parameters

Name Type
offset number
limit number
rplPrice string

# Returns

Promise<string>

a Promise<string> that resolves to a string representing the calculated RPL stake given inputs

# Defined in

rocketpool/node/node.ts:336


# getNodeCountPerTimezone

getNodeCountPerTimezone(offset, limit): Promise<object>

Get a breakdown of the number of nodes per timezone

params offset a number representing the offset

params limit a number representing the limit

example using Typescript

const nodeCountPerTimezone = rp.node.getNodeCountPerTimezone(offset, limit).then((val: object) => { val };

# Parameters

Name Type
offset number
limit number

# Returns

Promise<object>

a Promise<object> that resolves to an object node counts per timezone

# Defined in

rocketpool/node/node.ts:353


# getDepositType

getDepositType(amount): Promise<number>

Get the deposit type

params amount a number representing the deposit amount

example using Typescript

const nodeCountPerTimezone = rp.node.getNodeCountPerTimezone(offset, limit).then((val: object) => { val };

# Parameters

Name Type
amount string

# Returns

Promise<number>

a Promise<number> that resolves to a number representing the minipool deposit enum value type

# Defined in

rocketpool/node/node.ts:369


# registerNode

registerNode(timezoneLocation, options?, onConfirmation?): Promise<TransactionReceipt>

Register a node

example using Typescript

const timezoneLocation = "Australia/Brisbane";
const nodeAddress = "0x24fBeD7Ecd625D3f0FD19a6c9113DEd436172294";
const options = {
		from: nodeAddress,
		gas: 1000000
}
const txReceipt = rp.node.registerNode(timezoneLocation, options).then((txReceipt: TransactionReceipt) => { txReceipt };

# Parameters

Name Type Description
timezoneLocation string A string representing the timezone location
options? SendOptions An optional object of web3.eth.Contract SendOptions
onConfirmation? ConfirmationHandler An optional confirmation handler object

# Returns

Promise<TransactionReceipt>

a Promise<TransactionReceipt> that resolves to a TransactionReceipt object representing the receipt of the transaction

# Defined in

rocketpool/node/node.ts:393


# setWithdrawalAddress

setWithdrawalAddress(nodeAddress, withdrawalAddress, confirm, options?, onConfirmation?): Promise<TransactionReceipt>

Set a node's withdrawal address

example using Typescript

const nodeAddress = "0x24fBeD7Ecd625D3f0FD19a6c9113DEd436172294";
const withdrawalAddress = "0x89205A3A3b2A69De6Dbf7f01ED13B2108B2c43e7";
const confirm = false; // will set the withdrawalAddress to pending
const options = {
		from: nodeAddress,
		gas: 1000000
}
const txReceipt = rp.node.setWithdrawalAddress(nodeAddress, withdrawalAddress, confirm, options).then((txReceipt: TransactionReceipt) => { txReceipt };

# Parameters

Name Type Description
nodeAddress string A string representing the node's address
withdrawalAddress string A string representing the withdrawalAddress
confirm boolean A boolean representing as to whether you which to auto confirm, true will auto confirm (negating the need to prove your ownership of the withdrawal address), false will set the withdrawal address to pending and will require an additional transaction (see confirmWithdrawalAddress) signed by the withdrawalAddress to prove ownership.
options? SendOptions An optional object of web3.eth.Contract SendOptions
onConfirmation? ConfirmationHandler An optional confirmation handler object

# Returns

Promise<TransactionReceipt>

a Promise<TransactionReceipt> that resolves to a TransactionReceipt object representing the receipt of the transaction

# Defined in

rocketpool/node/node.ts:422


# stakeRPL

stakeRPL(amount, options?, onConfirmation?): Promise<TransactionReceipt>

Stake RPL for a node address

example using Typescript

const amount = web3.utils.toWei("5000", "ether");
const nodeAddress = "0x24fBeD7Ecd625D3f0FD19a6c9113DEd436172294";
const options = {
		from: nodeAddress,
		gas: 1000000
}
const txReceipt = rp.node.stakeRPL(nodeAddress, options).then((txReceipt: TransactionReceipt) => { txReceipt };

# Parameters

Name Type Description
amount string A string representing the amount in Wei
options? SendOptions An optional object of web3.eth.Contract SendOptions
onConfirmation? ConfirmationHandler An optional confirmation handler object

# Returns

Promise<TransactionReceipt>

a Promise<TransactionReceipt> that resolves to a TransactionReceipt object representing the receipt of the transaction

# Defined in

rocketpool/node/node.ts:452


# confirmWithdrawalAddress

confirmWithdrawalAddress(nodeAddress, options?, onConfirmation?): Promise<TransactionReceipt>

Confirm a node's withdrawal address

example using Typescript

const nodeAddress = "0x24fBeD7Ecd625D3f0FD19a6c9113DEd436172294";
const withdrawalAddress = "0x89205A3A3b2A69De6Dbf7f01ED13B2108B2c43e7";
const options = {
		from: withdrawalAddress,
		gas: 1000000
}
const txReceipt = rp.node.confirmWithdrawalAddress(nodeAddress, options).then((txReceipt: TransactionReceipt) => { txReceipt };

# Parameters

Name Type Description
nodeAddress string A string representing the node's address
options? SendOptions An optional object of web3.eth.Contract SendOptions
onConfirmation? ConfirmationHandler An optional confirmation handler object

# Returns

Promise<TransactionReceipt>

a Promise<TransactionReceipt> that resolves to a TransactionReceipt object representing the receipt of the transaction

# Defined in

rocketpool/node/node.ts:476


# withdrawRPL

withdrawRPL(amount, options?, onConfirmation?): Promise<TransactionReceipt>

Withdraw RPL for a node address

example using Typescript

const amount = web3.utils.toWei("5000", "ether");
const nodeAddress = "0x24fBeD7Ecd625D3f0FD19a6c9113DEd436172294";
const options = {
		from: nodeAddress,
		gas: 1000000
}
const txReceipt = rp.node.withdrawRPL(nodeAddress, options).then((txReceipt: TransactionReceipt) => { txReceipt };

# Parameters

Name Type Description
amount string A string representing the amount in Wei
options? SendOptions An optional object of web3.eth.Contract SendOptions
onConfirmation? ConfirmationHandler An optional confirmation handler object

# Returns

Promise<TransactionReceipt>

a Promise<TransactionReceipt> that resolves to a TransactionReceipt object representing the receipt of the transaction

# Defined in

rocketpool/node/node.ts:500


# setTimezoneLocation

setTimezoneLocation(timezoneLocation, options?, onConfirmation?): Promise<TransactionReceipt>

Set the node's timezone location

example using Typescript

const timezoneLocation = "Brisbane/Australia";
const nodeAddress = "0x24fBeD7Ecd625D3f0FD19a6c9113DEd436172294";
const options = {
		from: nodeAddress,
		gas: 1000000
}
const txReceipt = rp.node.setTimezoneLocation(nodeAddress, options).then((txReceipt: TransactionReceipt) => { txReceipt };

# Parameters

Name Type Description
timezoneLocation string A string representing the timezone location
options? SendOptions An optional object of web3.eth.Contract SendOptions
onConfirmation? ConfirmationHandler An optional confirmation handler object

# Returns

Promise<TransactionReceipt>

a Promise<TransactionReceipt> that resolves to a TransactionReceipt object representing the receipt of the transaction

# Defined in

rocketpool/node/node.ts:524


# deposit

deposit(minimumNodeFee, validatorPubKey, validatorSignature, depositDataRoot, salt, expectedMinipoolAddress, options?, onConfirmation?): Promise<TransactionReceipt>

Make a node deposit

example using Typescript

const minimumNodeFee = web3.utils.toWei("0", "ether");
const nodeAddress = "0x24fBeD7Ecd625D3f0FD19a6c9113DEd436172294";
const options = {
		from: nodeAddress,
		gas: 1000000
}
const txReceipt = rp.node.deposit(minimumNodeFee, depositData.pubkey, depositData.signature, depositDataRoot, salt, minipoolAddress, options).then((txReceipt: TransactionReceipt) => { txReceipt };

# Parameters

Name Type Description
minimumNodeFee string A string representing the minimumNodeFee in Wei
validatorPubKey Buffer A buffer representing the validator pub key
validatorSignature Buffer A buffer representing the validator signature
depositDataRoot Buffer A buffer representing the deposit data root
salt number A number representing the salt
expectedMinipoolAddress string A string representing the expected minipool address
options? SendOptions An optional object of web3.eth.Contract SendOptions
onConfirmation? ConfirmationHandler An optional confirmation handler object

# Returns

Promise<TransactionReceipt>

a Promise<TransactionReceipt> that resolves to a TransactionReceipt object representing the receipt of the transaction

# Defined in

rocketpool/node/node.ts:553