@0xbigboss/pocketjs-transaction-builder
TypeScript icon, indicating that this package has built-in type declarations

2.1.1 • Public • Published

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.

Readme

Keywords

none

Package Sidebar

Install

npm i @0xbigboss/pocketjs-transaction-builder

Weekly Downloads

2

Version

2.1.1

License

MIT

Unpacked Size

499 kB

Total Files

101

Last publish

Collaborators

  • 0xbigboss