orbs-client-sdk

orbs-client-sdk

Usage no npm install needed!

<script type="module">
  import orbsClientSdk from 'https://cdn.skypack.dev/orbs-client-sdk';
</script>

README

Orbs Client SDK JavaScript

Client SDK for the Orbs blockchain in JavaScript and TypeScript for Node.js and browsers

This page describes SDK API v2.0.0, for upgrade from v1.x please follow the instructions.

Installation

Node.js

  1. Install the NPM package:

    npm install orbs-client-sdk
    
  2. Import the client in your project

    const Orbs = require("orbs-client-sdk");
    

Browser

  1. Install via NPM package:

    npm install orbs-client-sdk
    
  2. Import the client in your project

    import { createAccount, Client } from 'orbs-client-sdk'
    

Usage

  1. Create a few end user accounts:

    const Orbs = require("orbs-client-sdk");
    const sender = Orbs.createAccount();
    const receiver = Orbs.createAccount();
    
  2. Create a client instance:

    const virtualChainId = 42;
    const client = new Orbs.Client("http://node-endpoint.com", virtualChainId, "TEST_NET", new Orbs.LocalSigner(sender));
    
  3. Send a transaction:

    const [tx, txId] = await client.createTransaction( "BenchmarkToken", "transfer", [Orbs.argUint64(10), Orbs.argAddress(receiver.address)]);
    const response = await client.sendTransaction(tx);
    
  4. Check the transaction status:

    const response = await client.getTransactionStatus(txId);
    
  5. Deploy a smart contract:

    // Load the content of the contract file(s) that we want to deploy
    // NOTE : These two file are part of the same contract. 
    const sources = [
          readFileSync(`${__dirname}/../contract/increment_base.go`),
          readFileSync(`${__dirname}/../contract/increment_functions.go`)
    ];
    
    // Build The deployment query
    // Notice that in this case the contract's name will be "Inc"
    const [deploymentTx, deploymentTxId] = await client.createDeployTransaction("Inc", Orbs.PROCESSOR_TYPE_NATIVE, ...sources);
    
    // Execute the deployment query
    const deploymentResponse = await client.sendTransaction(deploymentTx);
    
  6. Call a smart contract method:

    const query = await client.createQuery("BenchmarkToken", "getBalance", [Orbs.argAddress(receiver.address)]);
    const response = await client.sendQuery(query);
    

Test

  1. After running npm install locally, make sure folder ./contract is created. It's needed for the contract test and cloned from the reference implementation. The codec contract test encodes and signs all message types and compares to a JSON file containing the official result required to be compatible to the Orbs protocol specifications.

  2. Build the library with npm run build

  3. To run the end-to-end test, install gamma-cli

  4. Run all tests (unit and e2e) with npm run test