1.0.1 • Published 4 months ago

zetrix-sdk-nodejs v1.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
4 months ago

zetrix-sdk-nodejs

A complete and simple library for developers to connect and use the Zetrix layer 1 blockchain.

Docs & Useful Links

Installation & Prerequisite

This is a Node.js module available through the npm registry.

Before installing, download and install Node.js. Node.js 6.0.0 or higher is required.

Installation is done using the npm install command:

$ npm install zetrix-sdk-nodejs

We also recommend using the dotenv package to conveniently manage environment variables

$ npm install dotenv

Configuration

Create a .env file in the root of your project and insert your key/value pairs in the following format of KEY=VALUE:

Zetrix Testnet:

NODE_URL=test-node.zetrix.com

Zetrix Mainnet:

NODE_URL=node.zetrix.com

Quick Start & Basic Usages

Here's a simple guide to connect your dApp to the Zetrix wallet if you're using the Chrome extension wallet on the browser only. Mobile wallet connection requires a separate SDK:

window.zetrix.authorize(
  { method: "changeAccounts" }, 
  (resp) => {
    if (resp.code === 0) {
      window.zetrix.authorize(
        { method: "sendRandom", param: { random: "blob" } }, 
        (resAuth) => {
          if (resAuth.code === 0) {
            // retrieve the necessary info from resp.data and resAuth.data to retrieve the address, signData & publicKey
            sessionStorage.setItem("zetrixAccount", resp.data.address);
            sessionStorage.setItem("isLogin", "true");
          }
        }
      );
    } 
  }
);

Create the zetrix-sdk-nodejs instance to begin using the SDK:

'use strict';

const ZtxChainSDK = require('zetrix-sdk-nodejs');

const sdk = new ZtxChainSDK({
  host: process.env.NODE_URL,
});

Retrieving account balance using the SDK:

// Retrieve account balance by passing the address
sdk.account.getBalance(address).then(resp => {
  if (resp.errorCode === 0) {
    console.log(resp.result.balance);
  }
}).catch(err => {
  console.log(err.message);
});

Creating a new account using the SDK:

// Create a new account onchain
sdk.account.create().then(data => {
  console.log(data);
}).catch(err => {
  console.log(err.message);
});

Sample contract call using the SDK:

// Querying a contract
const data = yield sdk.contract.call({
    optType: 2,
    // Insert contract address
    contractAddress: contractAddress, 
    // Pass input parameters as a JSON string
    input: JSON.stringify({
      // Calling the 'getCertificateBySerialNumber' query function from the smart contract
      method: 'getCertificateBySerialNumber',
      // Passing the paramets for querying
      params: {
        serialNumber: "1237"
      }
    }),
  });

Another sample contract invocation:

// Invoke a contract by sending tokens
const operationInfo = await sdk.operation.contractInvokeByGasOperation({
  sourceAddress: newAddress,
  contractAddress: contractAddress,
  // 0 ZETA will be sent
  amount: 0,
  // Input destination address under "to" and number of tokens under "value"
  input: '{\"method\":\"transfer\",\"params\":{\"to\":\"ZTX3Ta7d4GyAXD41H2kFCTd2eXhDesM83rvC3\",\"value\":\"10000000\"}}',
  metadata: 'invoking contract by sending tokens. 0 ZETRIX (gas) amount is sent'
});

More examples can be found in the examples and test folder in the repo.

Tests

To run the test suite, first install the dependencies, then run npm test:

$ npm install
$ npm test

License

MIT