zetrix-sdk-nodejs v1.0.1
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-nodejsWe also recommend using the dotenv package to conveniently manage environment variables
$ npm install dotenvConfiguration
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.comZetrix Mainnet:
NODE_URL=node.zetrix.comQuick 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