@0xcert/wanchain-utils

General Wanchain utility module with helper functions for the Wanchain blockchain.
5,084 343
Install
npm install @0xcert/wanchain-utils
Latest Version:2.1.1
License:MIT
Last Updated:Mar 28, 2023
Links: GitHub  ·  npm
Maintainer: xpepermint

General Wanchain utility module with helper functions for the Wanchain blockchain.

The 0xcert Framework is a free and open-source JavaScript library that provides tools for building powerful decentralized applications. Please refer to the official documentation for more details.

This module is one of the bricks of the 0xcert Framework. It's written with TypeScript and it's actively maintained. The source code is available on GitHub where you can also find our issue tracker.

Wanchain Utilities

This module wraps several useful Wanchain functions which will be useful through the 0xcert Framework. Currently supported are these functions and classes from ethers.js:

ABI coder

This converts the value to and from the packed Ethereum ABI encoding.

  • encodeParameters(types: any, values: Array<any>): string
  • decodeParameters(types: any, data: any): any

Encoding example:

import { decodeParameters, encodeParameters } from '0xcert/ethereum-utils/abi';

const types = ['tuple(uint256, uint256[])'];
const values = [[ 42, [ 45 ] ]];
const encodedValues = encodeParameters(types, values);

Decoding example:

import { decodeParameters, encodeParameters } from '0xcert/ethereum-utils/abi';

const types = ['tuple(uint256, uint256[])'];
const encoded = '0x' +
  '0000000000000000000000000000000000000000000000000000000000000020' +
  '000000000000000000000000000000000000000000000000000000000000002a' +
  '0000000000000000000000000000000000000000000000000000000000000040' +
  '0000000000000000000000000000000000000000000000000000000000000001' +
  '000000000000000000000000000000000000000000000000000000000000002d';
const values = decodeParameters(types, values);

Big numbers

Here is a basic example adapted from the ethers.js documentation.

import { bigNumberify } from '0xcert/ethereum-utils/big-number';

let gasPriceWei = bigNumberify("20902747399");
let gasLimit = bigNumberify(3000000);

let maxCostWei = gasPriceWei.mul(gasLimit)
console.log("Max Cost: " + maxCostWei.toString());
// "Max Cost: 62708242197000000"

console.log("Number: " + maxCostWei.toNumber());
// throws an Error, the value is too large for JavaScript to handle safely

Address normalization

The ethers.js address normalization function implements EIP-55 Mixed-case checksum address encoding.

import { getAddress } from '0xcert/ethereum-utils/normalize-address';

let zxcTokenAddress = '0x83e2be8d114f9661221384b3a50d24b96a5653f5';
let zxcTokenAddressNormalized = normalizeAddress(zxcToenAddress);
// 0x83e2BE8d114F9661221384B3a50d24B96a5653F5

Related Packages

@0xcert/wanchain-gateway

Order gateway module for executing atomic operations on the Wanchain blockchain.

4,965 343
@0xcert/wanchain-asset-ledger

Asset ledger module for asset management on the Wanchain blockchain.

4,963 343
@0xcert/wanchain-http-provider

Implementation of HTTP communication provider for the Wanchain blockchain.

4,688 343
@0xcert/wanchain-value-ledger

Value ledger module for currency management on the Wanchain blockchain.

4,260 343
@0xcert/wanchain-order-gateway

Order gateway module for executing atomic operations on the Wanchain blockchain.

1,613 343

Version History

Version Released License
2.1.1 MIT
2.1.0 MIT
2.0.3 MIT
2.0.2 MIT
2.0.1 MIT
Pre-releases (28)
Version Released License
2.0.1-beta0 MIT
2.0.0-beta5 MIT
2.0.0-beta4 MIT
2.0.0-beta3 MIT
2.0.0-beta2 MIT