open-index/open-npm huggingface dataset:
npm package: @onechain/bch
Description: Plugin BCH of One Chain.
Author: Link
Latest version: 0.0.2

# @onechain/bch


## 约定

1. BTC 尚未明确 chainID ，所以在本项目中我们统一使用 `mainnet, testnet, regtest` 作为几个主要测试链的 chainID 。


## Dependencies

- bitcore-lib-cash 由 bitpay 维护，3000+ star ，目前来看是唯一好用的 BCH 库。
- bip39 由 bitcoinjs 维护，被 bitcoinjs-lib, web3 依赖。
- coinselect 由 bitcoinjs 维护，是一个内置了多种 unspents 挑选算法的库。
- lodash-es 知名库，38000+ star。
- node-fetch fetch 在 node 环境的兼容实现，3000+ star，800w+ 周下载量，被 eosjs 依赖。
- util node 的 util 模块在各种环境下的实现，web3 兼容浏览器时必须依赖，1000w+ 周下载量。
- buffer buffer 在 browser 环境的兼容实现，star 较少，800w+ 周下载量，被很多库间接依赖。


## 坑

### 推送交易的 fee 填错了怎么办？

这个失误主要会造成的问题是交易卡住，一直阻塞在 **unconfirmed** 状态。解决的方法是使用同样的 inputs 再创建一笔交易覆盖即可，也就是双花，最终 fee 更高的交易会优先被确认。对于 api 服务不支持双花的情况，可以换个 api 服务商，或使用 Electrum 钱包创建双花交易。

### 相同私钥生成的 BCH 地址和其他钱包不一致？

这是因为 bitcore-lib-cash 中 `PrivateKey` 类创建实例的流程有关，它支持从多种数据结构创建 `PrivateKey` 实例，但是每种创建方法对 publicKey 是否是压缩格式却认知不统一，最终压缩过的 publicKey 和没压缩过的产生的地址就完全不同了。

- 从 Buffer 推导的是非压缩的，不能直接转地址
- 从 Hex 推导的是压缩的
- 从 WIF 推导的是压缩的
npm package: @onechain/btc
Description: Plugin BTC of One Chain.
Author: Link
Latest version: 0.0.2

# @onechain/btc


## 约定

1. BTC 尚未明确 chainID ，所以在本项目中我们统一使用 `mainnet, testnet, regtest` 作为几个主要测试链的 chainID 。


## Dependencies

- bitcoinjs-lib 由 bitcoinjs 维护，代码结构优秀，3000+ star 。
- bip39 由 bitcoinjs 维护，被 bitcoinjs-lib, web3 依赖。
- coinselect 由 bitcoinjs 维护，是一个内置了多种 unspents 挑选算法的库。
- lodash-es 知名库，38000+ star。
- node-fetch fetch 在 node 环境的兼容实现，3000+ star，800w+ 周下载量，被 eosjs 依赖。
- util node 的 util 模块在各种环境下的实现，web3 兼容浏览器时必须依赖，1000w+ 周下载量。
- buffer buffer 在 browser 环境的兼容实现，star 较少，800w+ 周下载量，被很多库间接依赖。


## 坑

### 推送交易的 fee 填错了怎么办？

这个失误主要会造成的问题是交易卡住，一直阻塞在 **unconfirmed** 状态。解决的方法是使用同样的 inputs 再创建一笔交易覆盖即可，也就是双花，最终 fee 更高的交易会优先被确认。对于 api 服务不支持双花的情况，可以换个 api 服务商，或使用 Electrum 钱包创建双花交易。
npm package: @onechain/eos
Description: Plugin EOS of One Chain.
Author: Link
Latest version: 0.0.2

# @onechain/eos


## Dependencies

- eosjs 由 eosio 维护，最主要的 EOS 库。
- eosjs-ecc 由 eosio 维护，封装了 EOS 所需的一些加解密函数。
- lodash-es 知名库，38000+ star。
- node-fetch fetch 在 node 环境的兼容实现，3000+ star，800w+ 周下载量，被 eosjs 依赖。
- util node 的 util 模块在各种环境下的实现，web3 兼容浏览器时必须依赖，1000w+ 周下载量。
- buffer buffer 在 browser 环境的兼容实现，star 较少，800w+ 周下载量，被很多库间接依赖。
npm package: @onechain/eth
Description: Plugin ETH of One Chain.
Author: Link
Latest version: 0.0.2

# @onechain/eth


## 约定



## Dependencies

- web3 最佳的 ETH 开发库，metamask 也内置了它。
- lodash-es 知名库，38000+ star。
- node-fetch fetch 在 node 环境的兼容实现，3000+ star，800w+ 周下载量，被 eosjs 依赖。
- util node 的 util 模块在各种环境下的实现，web3 兼容浏览器时必须依赖，1000w+ 周下载量。
- randombytes 被 bitcoinjs-lib 等诸多区块链库依赖，本身只是实现了在 node 和 web 环境分别使用原生的密码学安全的随机数生成器。
- ethereumjs-util 被 ethereumjs-tx 依赖，而 ethereumjs-tx 又被 web3 依赖，同时这个库也提供了很多实用的工具函数，依赖的也都是使用量较大的库。

> WARNING web3 引用了一个 npm 包的不知名的 fork https://github.com/frozeman/WebSocket-Node ，注意不要使用 websocket provider 以免调用到了这个包。

## 坑