Push Network Core
This package provides access to the Push Network. Visit the Developer Docs or Push.org to learn more.
Index
How to use in your app?
Installation
yarn add @pushprotocol/node-core@latest
or
npm install @pushprotocol/node-core@latest
Import SDK
import { PushNetwork } from '@pushprotocol/node-core';
Initialize SDK
const userAlice = await PushNetwork.initialize('staging');
Parameters
env * | ENV | staging | API env - 'prod', 'staging' |
* - Optional
About blockchain agnostic address format
In any of the below methods (unless explicitly stated otherwise) we accept -
SDK Features
For PushNetwork Blocks
Initializing PushNetwork class is the first step before proceeding to Block APIs. Please refer Initialize SDK Section
Fetch Blocks
const blockRes = await PushNetwork.block.get(
Math.floor(Date.now() / 1000),
'DESC',
true,
10,
2
);
Parameters:
startTime * | number | Current Local Time | A number represting current time epoch |
direction * | ASC DESC | ASC | A string represting direction in which blocks are fetched |
showDetails * | boolean | false | A boolean represting whether tx Data shoudl be fetched or not |
page * | number | 1 | A number representing the page of results to retrieve. |
pageSize * | number | 30 | A number representing the maximum number of blocks to retrieve per page. |
* - Optional
Search Block By Hash
const blockRes = await PushNetwork.block.search('block-hash');
Parameters:
blockHash | string | - | An string represting block hash |
* - Optional
Serialize Block
import { Block } from '@pushprotocol/node-core';
const serializedBlock = Block.serialize(blockData);
ts: number;
txObj: TransactionObj[];
signers: Signer[];
attestToken: Uint8Array;
Parameters:
ts | number | - | Block timestamp |
txObj | object[] | - | Block Transactions |
signers | object[] | - | Block Signers |
attestToken | Uint8Array | - | Block Attestation Token |
* - Optional
Deserialize Block
import { Block } from '@pushprotocol/node-core';
const deserializedBlock = Block.deserialize(blockDataBytes);
Parameters:
block | Uint8Array | - | Block encoded in bytes format |
* - Optional
For PushNetwork Transactions
Initializing PushNetwork class is the first step before proceeding to Transaction APIs. Please refer Initialize SDK Section
Fetch Transactions
const txRes = await PushNetwork.tx.get(
Math.floor(Date.now() / 1000),
'DESC',
10,
2
);
Parameters:
startTime * | number | Current Local Time | A number represting current time epoch |
direction * | ASC DESC | ASC | A string represting direction in which transactions are fetched |
page * | number | 1 | A number representing the page of results to retrieve. |
pageSize * | number | 30 | A number representing the maximum number of transactions to retrieve per page. |
category * | string | - | A string representing the transaction category to be fetched |
* - Optional
Search Transaction By Hash
const txRes = await PushNetwork.tx.search('tx-hash');
Parameters:
txHash | string | - | An string represting transaction hash |
* - Optional
Create Unsigned Transaction
const unsignedTx = PushNetwork.tx.createUnsigned(
'CATEGORY',
['RECIPIENT1', 'RECIPIENT2'],
serializedData
);
Parameters:
category | string | - | Transaction category |
recipients | string[] | - | Array of recipient addresses |
data | Uint8Array | - | Serialized transaction payload data |
* - Optional
Send Transaction
const txHash = await PushNetwork.tx.send(unsignedTx, {
sender: 'SENDER_ADDRESS',
privKey: 'PRIVATE_KEY',
});
Parameters:
unsignedTx | Transaction | - | Unsigned transaction object |
session * | Object | - | Optional session object for signing |
* - Optional
Serialize Transaction
import { Tx } from '@pushprotocol/node-core';
const serializedTx = Tx.serialize(txObject);
Parameters:
tx | Transaction | - | Transaction object |
* - Optional
Deserialize Transaction
import { Tx } from '@pushprotocol/node-core';
const deserializedTx = Tx.deserialize(txDataBytes);
Parameters:
tx | Uint8Array | - | Tx encoded in bytes format |
* - Optional
Serialize Transaction Payload Data
import { Tx, TxCategory } from '@pushprotocol/node-core';
const serializedData = Tx.serializeData(txData, TxCategory.INIT_DID);
Parameters:
txData | InitDid | InitSessionKey Tx | - | Transaction payload data object |
category | TxCategory | - | Transaction category |
* - Optional
Deserialize Transaction Payload Data
import { Tx, TxCategory } from '@pushprotocol/node-core';
const deserializedData = Tx.deserializeData(
serializedData,
TxCategory.INIT_DID
);
Parameters:
txData | Uint8Array | - | Serialized transaction payload |
category | TxCategory | - | Transaction category supported for Deserialization |
* - Optional