TransactionBuilder
This package houses the TransactionBuilder, which lets you build a transaction to then send into the network.
Installation
Install through your package manager of choice:
pnpm install @pokt-foundation/pocketjs-transaction-builder
Usage
import { TransactionBuilder } from '@pokt-foundation/pocketjs-transaction-builder'
// Initializing the TransactionBuilder is simple:
// 1. Instanciate a provider
export const provider = new JsonRpcProvider({
rpcUrl: MAINNET_RPC_URL,
})
// 2. Instanciate a signer
export const signer = await KeyManager.fromPrivateKey(process.env.PRIVATE_KEY)
// 3. Instanciate the TransactionBuilder
export const builder = new TransactionBuilder({
signer,
provider,
});
// Create a new `Send` Message which is used to send funds over the network.
const sendMsg = transactionBuilder.send(
signer.getAddress(),
"07a6fca4dea9f01e4c19f301df0d0afac128561b",
// Amount in uPOKT (1 POKT = 1*10^6 uPOKT)
"1000000"
)
// Send it over the network!
const txresponse = await transactionBuilder.submit({
memo: "POKT Payment",
txMsg: sendMsg,
})
TransactionBuilder API
Constructor
signer
- type:
KeyManager
The KeyManager instance that holds the staked app in the blockchain.
provider
- type:
JsonRpcProvider
|IsomorphicProvider
The provider instance with available dispatchers to talk to the network.
chainID (optional)
- type:
mainnet
|localnet
|testnet
ChainID to send the transactions to. The provider endpoint must be connected to that chain ID.
Methods
getChainID(): ChainID
Gets the current chain ID this transaction builder has been initialized for.
Returns ChainID
: 'mainnet', 'localnet', or 'testnet'.
setChainID(id): void
Sets the chainID to one of the supported networks.
Param | Type | Description |
---|---|---|
id | string |
The chain to send transactions to. The provider must be connected to that chain |
createTransaction({ fee, memo, txMsg }): Promise
Signs and creates a transaction object that can be submitted to the network given the parameters and called upon Msgs.
Returns Promise<RawTxRequest>
: The raw transaction request which can be sent over the network.
Param | Type | Description |
---|---|---|
fee | string |
The amount to pay as a fee for executing this transaction, in uPOKT (1 POKT = 1*10^6 uPOKT) |
memo | string |
Memo field for this transaction. |
txMsg | TxMsg |
Transaction message generated with one of the available methods. |
submit({ fee, memo, txMsg }): Promise
Submit receives a valid transaction message, creates a Raw Transaction Request and sends it over the network.
Returns Promise<TransactionResponse
: The transaction response from the network, containing the transaction hash.
Param | Type | Description |
---|---|---|
fee | string |
The amount to pay as a fee for executing this transaction, in uPOKT (1 POKT = 1*10^6 uPOKT) |
memo | string |
Memo field for this transaction. |
txMsg | TxMsg |
Transaction message generated with one of the available methods. |
submitRawTransaction(tx): Promise
Submit receives an already made Raw Transaction Request and sends it over the network.
Returns Promise<TransactionResponse
: The transaction response from the network, containing the transaction hash.
Param | Type | Description |
---|---|---|
tx | RawTxRequest |
The raw transaction request, created with createTransaction . |
send({ fromAddress, toAddress, amount }): MsgProtoSend
Adds a MsgSend TxMsg for this transaction.
Returns a MsgProtoSend
: An unsigned Send transaction message.
Param | Type | Description |
---|---|---|
fromAddress | string |
Origin address, which is the address that the signer holds. |
toAddress | string |
Destination address |
amount | string |
Amount of uPOKT to send. |
appStake({ appPubKey, chains, amount }): MsgProtoAppStake
Adds a MsgAppStake TxMsg for this transaction.
Returns a MsgProtoAppStake
: The unsigned App Stake message.
Param | Type | Description |
---|---|---|
appPubKey | string |
Application Public Key |
chains | string[] |
Chains that the apps wants access to by staking POKT. Throughput will be equally divided through all chains. |
amount | string |
Amount of uPOKT to stake. |
appUnstake(address): MsgProtoAppUnstake
Adds a MsgProtoAppUnstake TxMsg for this transaction.
Returns MsgProtoAppUnstake
: The unsigned app unstake message.
Param | Type | Description |
---|---|---|
address | string |
Address of the account. |
nodeStake({ nodePubKey, chains, amount, serviceURL }): MsgProtoNodeStakeTx
Adds a NodeStake TxMsg for this transaction.
Returns a MsgProtoNodeStakeTx
: The unsigned node stake message.
Param | Type | Description |
---|---|---|
nodePubKey | string |
Node Public Key |
chains | string[] |
Chains that the node wants to service to by staking POKT. |
amount | string |
Amount of uPOKT to stake. |
serviceURL | URL |
Node service URL that will be used to send requests through. |
nodeUnstake(address): MsgProtoNodeUnstake
Adds a MsgProtoNodeUnstake for this transaction.
Returns MsgProtoNodeUnstake
: The unsigned node unstake message.
Param | Type | Description |
---|---|---|
address | string |
Address of the account. |
nodeUnjail(address): MsgAProtoNodeUnjail
Adds a MsgUnjail for this transaction.
Returns a MsgProtoNodeUnstake
: The unsigned node unjail message.
Param | Type | Description |
---|---|---|
address | string |
Address of the account. |