JSPM

@bitgo-beta/statics

15.1.1-beta.1170
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 133317
  • Score
    100M100P100Q173219F
  • License Apache-2.0

dependency-free static configuration for the bitgo platform

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@bitgo-beta/statics) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    @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