操作各种比特币钱包:BitcoinJS

jopen 10年前

logo.png
BitcoinJS 是一个纯 JavaScript 库,支持 Node.js 和浏览器,用于操作各种比特币钱包。超过150万钱包用户在生产中使用它。

NPM

特性

  • Clean - 纯JavaScript,代码简洁,易于阅读。

  • Tested - 覆盖率>95%,第三方集成测试。

  • Careful - Two person approval process for small, focused pull requests.

  • 兼容 - 可工作在Node.js和所有现代浏览器。

  • 强大 - 支持高级特性,比如 multi-sig, HD Wallets.

  • 安全 - 强随机数生成, PGP签名的版本,值得信赖的开发者。

  • Principled - No support for browsers with crap RNG (IE < 11)

  • Standardized - Node community coding style, Browserify, Node's stdlib and Buffers.

  • Fast - Optimized code, uses typed arrays instead of byte arrays for performance.

  • Experiment-friendly - Bitcoin Mainnet and Testnet support.

  • Altcoin-ready - Capable of working with bitcoin-derived currencies (such as Dogecoin).

示例代码:

//生成比特币地址  key = Bitcoin.ECKey.makeRandom()     // Print your private key (in WIF format)  console.log(key.toWIF())  // => 8c112cf628362ecf4d482f68af2dbb50c8a2cb90d226215de925417aa9336a48     // Print your public key (toString defaults to a Bitcoin address)  console.log(key.pub.getAddress().toString())  // => 14bZ7YWde4KdRb5YN7GYkToz3EHVCvRxkF     //开始交易  tx = new Bitcoin.Transaction()     // Add the input (who is paying) of the form [previous transaction hash, index of the output to use]  tx.addInput("aa94ab02c182214f090e99a0d57021caffd0f195a81c24602b1028b130b63e31", 0)     // Add the output (who to pay to) of the form [payee's address, amount in satoshis]  tx.addOutput("1Gokm82v6DmtwKEB8AiVhm82hyFSsEvBDK", 15000)     // Initialize a private key using WIF  key = Bitcoin.ECKey.fromWIF("L1uyy5qTuGrVXrmrsvHWHgVzW9kKdrp27wBC7Vs6nZDTF2BRUVwy")     // Sign the first input with the new key  tx.sign(0, key)     // Print transaction serialized as hex  console.log(tx.serializeHex())  // => 0100000001313eb630b128102b60241ca895f1d0ffca21 ...     // You could now push the transaction onto the Bitcoin network manually (see https://blockchain.info/pushtx)

项目主页:http://www.open-open.com/lib/view/home/1406706664296