TonPoolStaker
Hierarchy
TonBaseStakerβ³
TonPoolStaker
Table of contents
Constructors
Methods
Constructors
constructor
β’ new TonPoolStaker(params): TonPoolStaker
This creates a new TonStaker instance.
Parameters
params
Object
Initialization parameters
params.rpcUrl
string
RPC URL (e.g. https://toncenter.com/api/v2/jsonRPC)
params.allowSeamlessWalletDeployment?
boolean
(Optional) If enabled, the wallet contract is deployed automatically when needed
params.allowTransferToInactiveAccount?
boolean
(Optional) Allow token transfers to inactive accounts
params.minimumExistentialBalance?
string
(Optional) The amount of TON to keep in the wallet
params.addressDerivationConfig?
(Optional) TON address derivation configuration
Returns
An instance of TonStaker.
Inherited from
TonBaseStaker.constructor
Methods
calculateUnstakePoolAmount
βΈ calculateUnstakePoolAmount(amount, minElectionStake, Β«destructuredΒ», Β«destructuredΒ», Β«destructuredΒ», Β«destructuredΒ»): [bigint, bigint]
Calculates optimal unstake amounts from two pools. Tries strategies in order: keep both active β keep one active β deactivate both
TODO: Add transaction simulation to catch false negatives thrown by SDK in case of bugs in calculation logic. Consider adding anonymous telemetry/logging.
TODO: Add getValidUnstakeRanges() method to help integrators validate amounts upfront by knowing the valid amounts to unstake.
Parameters
amount
bigint
minElectionStake
bigint
Β«destructuredΒ»
[bigint, bigint]
Β«destructuredΒ»
[bigint, bigint]
Β«destructuredΒ»
[bigint, bigint]
Β«destructuredΒ»
[bigint, bigint]
Returns
[bigint, bigint]
getAddressDerivationFn
βΈ getAddressDerivationFn(params?): (publicKey: Uint8Array, _derivationPath: string) => Promise<string[]>
This static method is used to derive an address from a public key.
It can be used for signer initialization, e.g. FireblocksSigner or LocalSigner.
Parameters
params?
Object
Parameters for the address derivation
Returns
fn
Returns a single address derived from the public key
βΈ (publicKey, _derivationPath): Promise<string[]>
Parameters
publicKey
Uint8Array
_derivationPath
string
Returns
Promise<string[]>
Inherited from
TonBaseStaker.getAddressDerivationFn
getMnemonicToSeedFn
βΈ getMnemonicToSeedFn(params?): (mnemonic: string, password?: string) => Promise<Uint8Array>
This static method is used to convert BIP39 mnemonic to seed. In TON network the seed is used as a private key.
It can be used for signer initialization, e.g. FireblocksSigner or LocalSigner.
Parameters
params?
Object
-
Returns
fn
Returns a seed derived from the mnemonic
βΈ (mnemonic, password?): Promise<Uint8Array>
Parameters
mnemonic
string
password?
string
Returns
Promise<Uint8Array>
Inherited from
TonBaseStaker.getMnemonicToSeedFn
getSeedToKeypairFn
βΈ getSeedToKeypairFn(params?): (seed: Uint8Array, hdPath?: string) => Promise<{ publicKey: Uint8Array ; privateKey: Uint8Array }>
This static method is used to convert a seed to a keypair. Note that TON network doesn't use BIP44 HD Path for address derivation.
It can be used for signer initialization, e.g. FireblocksSigner or LocalSigner.
Parameters
params?
Object
-
Returns
fn
Returns a public and private keypair derived from the seed
βΈ (seed, hdPath?): Promise<{ publicKey: Uint8Array ; privateKey: Uint8Array }>
Parameters
seed
Uint8Array
hdPath?
string
Returns
Promise<{ publicKey: Uint8Array ; privateKey: Uint8Array }>
Inherited from
TonBaseStaker.getSeedToKeypairFn
buildStakeTx
βΈ buildStakeTx(params): Promise<{ tx: UnsignedTx }>
Builds a staking transaction for TON Pool contract. It uses 2 pool solution, and picks the best pool to stake to automatically.
Parameters
params
Object
Parameters for building the transaction
params.delegatorAddress
string
The delegator address
params.validatorAddressPair
[string, string]
The validator address pair to stake to
params.amount
string
The amount to stake, specified in TON
params.preferredStrategy?
"split" | "single" | "balanced"
(Optional) The stake allocation strategy. Default is balanced. * balanced - automatically balances the stake between the two pools based on the current pool balances and user stakes * split - splits the stake evenly between the two pools * single - stakes to a single pool
params.referrer?
string
(Optional) The address of the referrer. This is used to track the origin of transactions, providing insights into which sources or campaigns are driving activity. This can be useful for analytics and optimizing user acquisition strategies
params.validUntil?
number
(Optional) The Unix timestamp when the transaction expires
Returns
Promise<{ tx: UnsignedTx }>
Returns a promise that resolves to a TON nominator pool staking transaction.
buildUnstakeTx
βΈ buildUnstakeTx<T>(params): Promise<{ tx: UnsignedTx }>
Builds an unstaking transaction for TON Pool contract.
Type parameters
T
extends boolean = false
Parameters
params
Object
Parameters for building the transaction
params.delegatorAddress
string
The delegator address
params.validatorAddressPair
[string, string]
The validator address pair to unstake from
params.amount
T extends true ? [string, string] : string
The amount to unstake, specified in TON. When disableStatefulCalculation is true, must be a tuple [string, string]
params.disableStatefulCalculation?
T
(Optional) Disables stateful calculation where validator and user stake is taken into account
params.validUntil?
number
(Optional) The Unix timestamp when the transaction expires
Returns
Promise<{ tx: UnsignedTx }>
Returns a promise that resolves to a TON nominator pool unstaking transaction.
getStake
βΈ getStake(params): Promise<{ balance: string ; pendingDeposit: string ; pendingWithdraw: string ; withdraw: string }>
Retrieves the staking information for a specified delegator.
Parameters
params
Object
Parameters for the request
params.delegatorAddress
string
The delegator (wallet) address
params.validatorAddress
string
(Optional) The validator address to gather staking information from
Returns
Promise<{ balance: string ; pendingDeposit: string ; pendingWithdraw: string ; withdraw: string }>
Returns a promise that resolves to the staking information for the specified delegator.
getPoolParams
βΈ getPoolParams(params): Promise<{ minStake: string ; depositFee: string ; withdrawFee: string ; poolFee: string ; receiptPrice: string }>
Retrieves the staking information for a specified pool, including minStake and fees information.
Parameters
params
Object
Parameters for the request
params.validatorAddress
string
The validator (vault) address
Returns
Promise<{ minStake: string ; depositFee: string ; withdrawFee: string ; poolFee: string ; receiptPrice: string }>
Returns a promise that resolves to the staking information for the specified pool.
getTxStatus
βΈ getTxStatus(params): Promise<TonTxStatus>
Retrieves the status of a transaction using the transaction hash.
This method is intended to check for transactions made recently (within limit) and not for historical transactions.
Parameters
params
Object
Parameters for the transaction status request
params.address
string
The account address to query
params.txHash
string
The transaction hash to query
params.limit?
number
(Optional) The maximum number of transactions to fetch
Returns
Promise<TonTxStatus>
A promise that resolves to an object containing the transaction status.
Overrides
TonBaseStaker.getTxStatus
getElectionMinStake
βΈ getElectionMinStake(): Promise<bigint>
Returns
Promise<bigint>
getPoolStatus
βΈ getPoolStatus(validatorAddress): Promise<PoolStatus>
Parameters
validatorAddress
string
Returns
Promise<PoolStatus>
getPastElections
βΈ getPastElections(electorContractAddress): Promise<Election[]>
Parameters
electorContractAddress
string
Returns
Promise<Election[]>
init
βΈ init(): Promise<void>
Initializes the TonStaker instance and connects to the blockchain.
Returns
Promise<void>
A promise which resolves once the TonStaker instance has been initialized.
Inherited from
TonBaseStaker.init
buildDeployWalletTx
βΈ buildDeployWalletTx(params): Promise<{ tx: UnsignedTx }>
Builds a wallet deployment transaction
Parameters
params
Object
Parameters for building the transaction
params.address
string
The address to deploy the wallet contract to
params.validUntil?
number
(Optional) The Unix timestamp when the transaction expires
Returns
Promise<{ tx: UnsignedTx }>
Returns a promise that resolves to a TON wallet deployment transaction.
Inherited from
TonBaseStaker.buildDeployWalletTx
sign
βΈ sign(params): Promise<SignedTx>
Signs a transaction using the provided signer.
Parameters
params
Object
Parameters for the signing process
params.signer
Signer
Signer instance
params.signerAddress
string
The address of the signer
Returns
Promise<SignedTx>
A promise that resolves to an object containing the signed transaction.
Inherited from
TonBaseStaker.sign
broadcast
βΈ broadcast(params): Promise<string>
This method is used to broadcast a signed transaction to the TON network.
Parameters
params
Object
Parameters for the broadcast
Returns
Promise<string>
Returns a promise that resolves to the response of the transaction that was broadcast to the network.
Inherited from
TonBaseStaker.broadcast
Last updated
Was this helpful?