1.2.1 • Published 4 years ago

@cennznet/crml-generic-asset v1.2.1

Weekly downloads
23
License
Apache-2.0
Repository
github
Last release
4 years ago

cennznet-js/crml-generic-asset

A sdk providing additional features for generic asset runtime module

Install

It is installed along with @cennznet/api

$> npm i --save @cennznet/api

USAGE

@cennznet/api will create a instance of genericAsset after it finishes initialization.

// node --experimental-repl-await
// initialize Api and connect to dev network
const {Api} = require('@cennznet/api')
const api = await Api.create({provider: 'wss://rimu.unfrastructure.io/public/ws'});

const ga = api.genericAsset;

// for Rxjs
const {ApiRx} = require('@cennznet/api')
const apiRx = await ApiRx.create({provider: 'wss://rimu.unfrastructure.io/public/ws'});

const gaRx = apiRx.genericAsset;

Derives for Generic Asset

All derives related to generic asset crml are defined in this library, which can be access from both GenericAsset instance and api.derives.genericAsset.*

  • freeBalance / freeBalanceAt
  • reservedBalance / reservedBalanceAt
  • totalBalance / totalBalanceAt

check API Docs for more information

Asset Registry

In CENNZNet we have different type of assets, check here. Only AssetId is stored on chain, though for providing a similar UX as Ethereum, we defined an interface IAsset to describe an asset, and this AssetRegistry to help querying it. p.s: Unlike ERC20 in Ethereum, all assets have a fixed decimals = 18.

enum AssetType {
    STAKING = 'staking',
    SPENDING = 'spending',
    RESERVE = 'reserve',
    USER = 'user',
}

interface IAsset {
    id: number;
    symbol: string;
    decimals: number;
    type: AssetType;
}
const {assetRegistry} = require('@cennznet/crml-generic-asset');
// query all reserve assets
const assets = assetRegistry.reserveAssets();

const asset = assetRegistry.findAssetById(16000);
const asset = assetRegistry.findAssetBySymbol('CENNZ-T');
/* {
    id: 16000,
    symbol: 'CENNZ-T',
    decimals: 18,
    type: AssetType.STAKING,
  }
*/

EnhancedAssetId

With this lib installed, for all places ask for AssetId user can also pass the symbol of asset.

to query

ga.getFreeBalance(16000, someAddress);
// is equal to 
ga.getFreeBalance('CENNZ-T', someAddress);

to transfer

ga.transfer('CENNZ-T', receiver.address, transferAmount);

if the symbol passed in is not a valid reserved/staking/spending asset, an error will be thrown

1.2.1

4 years ago

1.2.0

4 years ago

1.1.2

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

1.0.0-beta.1

4 years ago

1.0.0-alpha.0

4 years ago

0.20.7

5 years ago

0.20.6

5 years ago

0.20.5

5 years ago

0.20.4

5 years ago

0.20.3

5 years ago

0.20.2

5 years ago

0.20.1

5 years ago

0.9.1

5 years ago

0.9.0

5 years ago

0.8.1

5 years ago