zetrix-sdk-nodejs
v1.0.1
Published
zetrix sdk
Downloads
87
Readme
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