# 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