@onechain/bch
v0.0.2
Published
Plugin BCH of One Chain.
Downloads
4
Readme
@onechain/bch
约定
- 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 推导的是压缩的