@jachaval/statics
TypeScript icon, indicating that this package has built-in type declarations

6.16.0-tokens-7 • Public • Published

@bitgo/statics

Static config for the BitGo platform

Goals

  • Provide an "encyclopedia" of all relevant constants which are sprinkled throughout the BitGo stack.
  • Separate static config data from dynamic config data
  • Strong typing for static config properties, with full type information for configuration items
  • Ability to export static configuration as JSON for consumption by non-javascript projects

Examples

Get the number of decimal places in a Bitcoin

JavaScript

const { coins } = require('@bitgo/statics');

const btc = coins.get('btc');
console.log(btc.decimalPlaces);

TypeScript

import { coins } from '@bitgo/statics';

const btc = coins.get('btc');
console.log(btc.decimalPlaces);

Get the contract address for the OmiseGo ERC20 Token

JavaScript

const { coins } = require('@bitgo/statics');

const omg = coins.get('omg');
console.log(omg.contractAddress);

TypeScript

import { coins, Erc20Coin } from '@bitgo/statics';

const omg = coins.get('omg');
if (omg instanceof Erc20Coin) {
  console.log(omg.contractAddress);
}

List full names of all defined coins

JavaScript

const { coins } = require('@bitgo/statics');

coins.forEach((coin) => {
  console.log(coin.fullName);
});

TypeScript

import { coins } from '@bitgo/statics';

coins.forEach((coin) => {
  console.log(coin.fullName);
});

Repo Status

  • UTXO and account base types are defined
  • Documentation is mostly source code comments and README examples
  • This library can be depended on, but expect some changes going forward

Project Structure

  • src/base.ts: Interfaces and enums used by coin implementation classes.
  • src/coins.ts: Coin definitions.
  • src/networks.ts: Network interfaces and implementation classes.
  • src/utxo.ts: Unspent Transaction Output (UTXO) based coin classes and factory function.
  • src/account.ts: Account-based coin classes and factory methods. Includes ERC20 factory functions.
  • src/errors.ts: Custom Error classes.

Installation + Building

To install the project locally, run the following steps:

$ # clone the project locally
$ git clone git@github.com:BitGo/statics.git

$ # npm install dependencies (optionally use node >8.6.0)
$ # (optionally) nvm install 8.6.0 -- required to run the linter which is executed pre-commit
$ # (optionally) nvm use 8.6.0
$ npm install

To build the project (from TypeScript to JavaScript):

$ npm run build

This builds the JavaScript and adds it to dist/src/. You will receive compilation errors if you have invalid syntax.

Tests

To run tests:

$ npm run test

Readme

Keywords

none

Package Sidebar

Install

npm i @jachaval/statics

Weekly Downloads

0

Version

6.16.0-tokens-7

License

Apache-2.0

Unpacked Size

5.22 MB

Total Files

43

Last publish

Collaborators

  • jachaval