@pushprotocol/node-core
TypeScript icon, indicating that this package has built-in type declarations

0.0.9 • Public • Published

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

// Initialize PushNetwork class instance
const userAlice = await PushNetwork.initialize('staging');

Parameters

Param Type Default Remarks
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

// get block data
const blockRes = await PushNetwork.block.get(
  Math.floor(Date.now() / 1000),
  'DESC',
  true,
  10,
  2
);

Parameters:

Parameter Type Default Description
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

// search block with a given block hash
const blockRes = await PushNetwork.block.search('block-hash');

Parameters:

Parameter Type Default Description
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:

Parameter Type Default Description
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:

Parameter Type Default Description
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

// fetch transactions
const txRes = await PushNetwork.tx.get(
  Math.floor(Date.now() / 1000),
  'DESC',
  10,
  2
);

Parameters:

Parameter Type Default Description
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

// search transaction with a given tx hash
const txRes = await PushNetwork.tx.search('tx-hash');

Parameters:

Parameter Type Default Description
txHash string - An string represting transaction hash

* - Optional


Create Unsigned Transaction

// create an unsigned transaction
const unsignedTx = PushNetwork.tx.createUnsigned(
  'CATEGORY',
  ['RECIPIENT1', 'RECIPIENT2'],
  serializedData
);

Parameters:

Parameter Type Default Description
category string - Transaction category
recipients string[] - Array of recipient addresses
data Uint8Array - Serialized transaction payload data

* - Optional


Send Transaction

// send a transaction
const txHash = await PushNetwork.tx.send(unsignedTx, {
  sender: 'SENDER_ADDRESS',
  privKey: 'PRIVATE_KEY',
});

Parameters:

Parameter Type Default Description
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:

Parameter Type Default Description
tx Transaction - Transaction object

* - Optional


Deserialize Transaction

import { Tx } from '@pushprotocol/node-core';
const deserializedTx = Tx.deserialize(txDataBytes);

Parameters:

Parameter Type Default Description
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:

Parameter Type Default Description
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:

Parameter Type Default Description
txData Uint8Array - Serialized transaction payload
category TxCategory - Transaction category supported for Deserialization

* - Optional


Readme

Keywords

none

Package Sidebar

Install

npm i @pushprotocol/node-core

Weekly Downloads

149

Version

0.0.9

License

none

Unpacked Size

118 kB

Total Files

39

Last publish

Collaborators

  • rohit.push.org
  • aman0035
  • shadowprodigy