@0xbigboss/pocketjs-transaction-builder
v2.1.1
Published
Transaction manager and utilties for the Pocket Network protocol
Downloads
4
Readme
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. |