2.1.1 • Published 2 years ago

@0xbigboss/pocketjs-transaction-builder v2.1.1

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

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.

ParamTypeDescription
idstringThe 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.

ParamTypeDescription
feestringThe amount to pay as a fee for executing this transaction, in uPOKT (1 POKT = 1*10^6 uPOKT)
memostringMemo field for this transaction.
txMsgTxMsgTransaction 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.

ParamTypeDescription
feestringThe amount to pay as a fee for executing this transaction, in uPOKT (1 POKT = 1*10^6 uPOKT)
memostringMemo field for this transaction.
txMsgTxMsgTransaction 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.

ParamTypeDescription
txRawTxRequestThe 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.

ParamTypeDescription
fromAddressstringOrigin address, which is the address that the signer holds.
toAddressstringDestination address
amountstringAmount of uPOKT to send.

appStake({ appPubKey, chains, amount }): MsgProtoAppStake

Adds a MsgAppStake TxMsg for this transaction.

Returns a MsgProtoAppStake: The unsigned App Stake message.

ParamTypeDescription
appPubKeystringApplication Public Key
chainsstring[]Chains that the apps wants access to by staking POKT. Throughput will be equally divided through all chains.
amountstringAmount of uPOKT to stake.

appUnstake(address): MsgProtoAppUnstake

Adds a MsgProtoAppUnstake TxMsg for this transaction.

Returns MsgProtoAppUnstake: The unsigned app unstake message.

ParamTypeDescription
addressstringAddress of the account.

nodeStake({ nodePubKey, chains, amount, serviceURL }): MsgProtoNodeStakeTx

Adds a NodeStake TxMsg for this transaction.

Returns a MsgProtoNodeStakeTx: The unsigned node stake message.

ParamTypeDescription
nodePubKeystringNode Public Key
chainsstring[]Chains that the node wants to service to by staking POKT.
amountstringAmount of uPOKT to stake.
serviceURLURLNode 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.

ParamTypeDescription
addressstringAddress of the account.

nodeUnjail(address): MsgAProtoNodeUnjail

Adds a MsgUnjail for this transaction.

Returns a MsgProtoNodeUnstake: The unsigned node unjail message.

ParamTypeDescription
addressstringAddress of the account.