@pokt-foundation/pocketjs-isomorphic-provider
TypeScript icon, indicating that this package has built-in type declarations

2.2.1 • Public • Published

IsomorphicProvider

The IsomorphicProvider is the NodeJS and browser compatble provider for making queries to the Pocket network chain, sending relays or dispatching sessions.

Installation

Install from NPM, using your favorite package manager:

pnpm i @pokt-foundation/pocketjs-isomorphic-provider

Usage

Initialization

import { IsomorphicProvider } from '@pokt-foundation/pocketjs-isomorphic-provider'

// If you wanna just send queries to the chain, this is the simplest way to Initialize it:
const simpleProvider = new IsomorphicProvider({ 
  // RPC_URL = any URL that connects to a Pocket node, or a Pocket mainnet portal endpoint
  rpcUrl: process.env.RPC_URL 
})

// If you wanna also send relays, you'll need to initialize dispatchers as well.
// Dispatchers are Pocket nodes that only perform dispatch calls (to the route /client/dispatch) to generate sessions.
const providerWithDispatchers = new IsomorphicProvider({
    // RPC_URL = needs to be a pocket node to send relays.
    rpcUrl: process.env.RPC_URL
    // DISPATCHER_1, DISPATCHER_2 = pocket node URLs for dispatching. You can include as many as you can for redundancy.
    dispatchers: [process.env.DISPATCHER_1, process.env.DISPATCHER_2]
})

Usage examples

import { IsomorphicProvider } from '@pokt-foundation/pocketjs-isomorphic-provider'

const simpleProvider = new IsomorphicProvider({ 
  rpcUrl: process.env.RPC_URL 
})

// Getting an account's balance
const balance = await simpleProvider.getBalance('0992d9acddf86ad7dcae1c96cb37a88d0b716243')

// Getting the type of an account (node, app, or normal account);
const accountType = await simpleProvider.getType('4a6dd4559ff723ea1937ec379be0998e15c61c04');

// Getting existing apps, involving pagination
const apps = await simpleProvider.getApps({
  page: 1,
  perPage: 500,
  // customizable timeout
  timeout: 5000
})

API

Constructor

rpcUrl

  • type: String The URL of the RPC to connect to. Can be a Pocket Portal endpoint, or a Pocket node.

Dispatchers (optional)

  • type: String[] An array of URLs of Pocket nodes that will perform dispatch calls to generate new sessions.

Methods

getBalance(address): Promise

Fetches the provided address's balance.

Returns a Promise<bigint>: the address's balance.

Param Type Description
address string or Promise<string> The address to fetch the balance of.

getTransactionCount(address): Promise

Fetches the provided address's transaction count.

Returns a Promise<number>: the address's transaction count.

Param Type Description
address string or Promise<string> The address to fetch the transaction count of of.

getType(address): Promise<'node' | 'app' | 'account'>

Fetches the address's account type (node, app, or account).

Returns a Promise<'node' | 'app' | 'account'>: If the account is a node, an app, or a normal account.

Param Type Description
address string or Promise<string> The address to fetch the account type of.

sendTransaction(transaction): Promise

Sends a signed transaction from this provider.

Returns a Promise<TransactionResponse>: The network's response to the transaction.

Param Type Description
transaction RawTxRequest The transaction to send, formatted as a TransactionRequest.

getBlock(blockNumber): Promise

Get an specific block by its block number.

Returns a Promise<Block>: The block requested.

Param Type Description
blockNumber number The number (height) of the block to query.

getTransaction(transactionHash): Promise

Gets an specific transaction specified by its hash.

Returns a Promise<Transaction>: The transaction requested;

Param Type Description
transactionHash string The hash of the transaction to get.

getBlockNumber(): Promise

Fetches the latest block number.

Returns Promise<number>: The latest height as observed by the node the provider is connected to.

getBlockTransactions(GetBlockTransactionsOptions): Promise

Fetches the requested block's transactions.

Returns a Promise<PaginableBlockTransactions>: The block's transactions.

  • GetBlockTransactionOptions object params:
Param Type Description
blockHeight number The block's height.
page number The page to query for, pagination-wise.
perPage number The number of transactions to include per page.
includeProofs boolean Include the transactions's proofs.
timeout number Time to wait before cancelling the request.

getNodes(GetNodesOptions): Promise<Paginable>

Fetches nodes acrtibve from the network with the options provided.

Returns Promise<Paginable<Node>>: An array with the nodes requested and their information.

  • GetNodesOptions params:
Param Type Description
blockHeight number The block's height.
page number The page to query for, pagination-wise.
perPage number The number of transactions to include per page.
timeout number Time to wait before cancelling the request.

getNode({ address, blockHeight }): Promise

Fetches a node from the network with the options provided.

Returns Promise<Node>: The node requested and its information.

Param Type Description
address string The address of the node to get the claims from.
blockHeight number The block height to use to determine the result of the call.

getApps(GetAppsOptions): Promise<Paginable>

Fetches apps from the network with the options provided.

Returns Promise<Paginable<App>>: An array with the apps requested and their information.

  • GetAppsOptions params:
Param Type Description
blockHeight number The block's height.
page number The page to query for, pagination-wise.
perPage number The number of transactions to include per page.
timeout number Time to wait before cancelling the request.

getApp({ address, blockHeight }): Promise

Fetches an app from the network with the options provided.

Returns Promise<App>: The app requested and its information.

Param Type Description
address string The address of the node to get the claims from.
blockHeight number The block height to use to determine the result of the call.

getAccount(address): Promise

Fetches an account from the network.

Returns Promise<Account>: The account requested and its information.

Param Type Description
address string or Promise<string> The address to fetch the balance of.

getAccountWithTransactions(address, options): Promise

Fetches an account from the network, along with its transactions.

Returns Promise<AccountWithTransactions>: The account requested and its information, along with its transactions.

Param Type Description
address string or Promise<string> The address of the account to query.
options GetAccountWithTransactionsOptions The options object for the method.
options.page number The page to get (pagination-wise) for transactions.
options.perPage number The number of transactions to include per page.
timeout number Time to wait before cancelling the request.

dispatch(request, options): Promise

Performs a dispatch request to a random dispatcher from the ones provided. Fails if no dispatcher is found. Best used through a Relayer, as this is a very low level method.

Returns Promise<DispatchResponse>: The dispatch response from the dispatcher node.

Param Type Description
request DispatchRequest The dispatch request.
options object The options object for the method.
options.retryAttempts number Number of retries if the first request fails.
options.rejectSelfSignedCertificates boolean Option to reject self signed certificates or not.
options.timeout number Time to wait before cancelling the request.

relay(request, rpcUrl, options): Promise

Sends a relay to the network through the main RPC URL provided. Best used through a Relayer, as this is a very low level method.

Returns Promise<unknown>: The relay response (in unknown format, depends on the chain used).

Param Type Description
request DispatchRequest The dispatch request.
rpcUrl string The rpcUrl to use
options object The options object for the method.
options.retryAttempts number Number of retries if the first request fails.
options.rejectSelfSignedCertificates boolean Option to reject self signed certificates or not.
options.timeout number Time to wait before cancelling the request.

getAllParams(height, options): Promise

Gets all the parameters used to configure the Pocket Network.

Returns Promise<any>: The raw data structure with the parameters.

Param Type Description
height number The height to use for querying the params.
options object The options object for the method.
options.timeout number Time to wait before cancelling the request.

getNodeClaims(address, options): Promise<Paginable>

Gets the corresponding node's claims.

Returns Promise<Paginable<any>>: The raw data structure containing the node claims.

Param Type Description
address string The address of the node to get the claims from.
options object The options object for the method.
options.height number The block height to use to determine the result of the call.
options.page number The page to get the node claims from.
options.perPage number How many claims per page to retrieve.
options.timeout number Time to wait before cancelling the request.

getSupply(height, options): Promise

Gets the requested supply information.

Returns Promise<any>: The raw data structure with the supply info.

Param Type Description
height number The height to use for querying the info.
options object The options object for the method.
options.timeout number Time to wait before cancelling the request.

getSupportedCHains(height, options): Promise

Gets the supported chains in the protocol.

Returns Promise<any: The currently supported chains in a raw manner.

Param Type Description
height number The height to use for querying the info.
options object The options object for the method.
options.timeout number Time to wait before cancelling the request.

getPocketParams(height, options): Promise

Gets the current Pocket Network Params.

Returns Promise<any>: The current raw pocket params.

Param Type Description
height number The height to use for querying the info.
options object The options object for the method.
options.timeout number Time to wait before cancelling the request.

getAppParams(height, options): Promise

Gets the current Application Params.

Returns Promise<any>: The raw application params.

Param Type Description
height number The height to use for querying the info.
options object The options object for the method.
options.timeout number Time to wait before cancelling the request.

Readme

Keywords

none

Package Sidebar

Install

npm i @pokt-foundation/pocketjs-isomorphic-provider

Weekly Downloads

7

Version

2.2.1

License

MIT

Unpacked Size

218 kB

Total Files

18

Last publish

Collaborators

  • tokikuch
  • kutoft
  • artsabintsev
  • pascalvl