@bitgo/statics
BitGo 平台的静态配置
目标
- 提供所有相干常数的"百科全书",在 BitGo 堆栈中喷出.
- 分开 静态 配置数据从 动态 配置数据
- 强打静态配置属性, 配置项目的完整类型信息
- 将静态配置导出为JSON供非划线项目消费的能力
实例
获得比特币中小数位数
Java 脚本
const { coins } = require('@bitgo/statics');
const btc = coins.get('btc');
console.log(btc.decimalPlaces);
类型脚本
import { coins } from '@bitgo/statics';
const btc = coins.get('btc');
console.log(btc.decimalPlaces);
获取 OmiseGo ERC20 Token 的合同地址
Java 脚本
const { coins } = require('@bitgo/statics');
const omg = coins.get('omg');
console.log(omg.contractAddress);
类型脚本
import { coins, Erc20Coin } from '@bitgo/statics';
const omg = coins.get('omg');
if (omg instanceof Erc20Coin) {
console.log(omg.contractAddress);
}
列出所有已定义硬币的全名
Java 脚本
const { coins } = require('@bitgo/statics');
coins.forEach((coin) => {
console.log(coin.fullName);
});
类型脚本
import { coins } from '@bitgo/statics';
coins.forEach((coin) => {
console.log(coin.fullName);
});
Repo 状态
- 定义了UTXO和账户基础类型
- 文档大多是源代码注释和 README 示例
- 这个库是可以依赖的,但预计未来会有一些变化
项目结构
src/base.ts: 硬币执行类所使用的界面和enum.src/coins.ts: 硬币定义.src/networks.ts: 网络接口和实施类.src/utxo.ts: 基于硬币类别的未用交易输出(UTXO)和工厂功能.src/account.ts:基于账户的硬币类和工厂方法. 包括ERC20工厂功能.src/errors.ts: 自定义错误类.
安装+建筑物
要在当地安装项目,请执行以下步骤:
$ # clone the project locally
$ git clone [email protected]: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
要构建工程( 从 TypeScript 到 JavaScript) :
$ npm run build
此构建 JavaScript 并添加到 dist/src/。如果语法无效,则会收到编译错误.
测试
进行测试:
$ npm run test