素晴らしいコミュニティモジュール

BitcoinJS(bitcoinjs-lib)

ビルドステータス NPM 次のコミットのヒント

js-標準スタイル

node.jsとブラウザ用の純粋なJavaScriptビットコインライブラリ。1500万人以上のウォレットユーザーが使用していると推定されており、現在生産されているほぼすべてのビットコインウェブウォレットのバックボーンです。

特徴

  • Clean:純粋なJavaScript、簡潔なコード、読みやすい。
  • Tested:カバレッジ> 90%、サードパーティの統合テスト。
  • Careful:小規模で焦点を絞ったプルリクエストに対する2人の承認プロセス。
  • Compatible:Node.jsおよびすべての最新のブラウザーで動作します。
  • Powerful:マルチシグ、HDウォレットなどの高度な機能のサポート。
  • Secure:強力な乱数生成、PGP署名付きリリース、信頼できる開発者。
  • Principled:がらくたRNG(IE <11)を使用するブラウザーはサポートされていません
  • Standardized:ノードコミュニティのコーディングスタイル、Browserify、ノードのstdlib、およびバッファ。
  • Fast:最適化されたコード。パフォーマンスのために、バイト配列の代わりに型付き配列を使用します。
  • 実験に適した:ビットコインメインネットとテストネットのサポート。
  • Altcoin対応:ビットコインから派生した暗号通貨(Dogecoinなど)を処理できます。

これを本番環境で使用する必要がありますか?

このライブラリのマスターブランチを本番環境で使用することを検討している場合はstop .Masterは安定していません。これは開発ブランチであり、タグ付きリリースのみが安定として分類される場合があります

インストール

1
npm install bitcoinjs-lib

設定

Node.js

1
var bitcoin = require('bitcoinjs-lib')

Browser

browserifyの使用方法に精通している場合は、これを無視して通常どおりに続行してください。これらの手順は助言のみであり、アプリケーションに適していない可能性があります。

これらの手順では、Browserifyがインストールされていることを前提としています。

プロジェクト用に、index.jsファイルを作成します

1 2 3 4 5 6 7 8 9 10
let bitcoin = require('bitcoinjs-lib') // your code here function myFunction () { return bitcoin.ECPair.makeRandom().toWIF() } module.exports = { myFunction }

さて、ブラウザ用にコンパイルするには:

1
browserify index.js --standalone foo > app.js

これで<script src="app.js" />、を使用foo.myFunctionして新しいビットコイン秘密鍵を作成して、Webページに配置できます。

:JavaScriptを使用する場合は、以下の変数名は、マングルされたビーイングを除外しなければならないuglify: 、そのためダックタイピングで使用されている関数名のこの。TypeforceBigIntegerECPairPoint

例:

1
uglifyjs ... --mangle reserved=['BigInteger','ECPair','Point']

:このライブラリはノードLTS機能を追跡します。厳密なES5が必要な場合--transform babelifyは、browserifyステップと組み合わせて使用しますes2015プリセットを使用)。

:このライブラリがiOS 10デバイスで実行されることが予想される場合は、buffer @ 5.0.5以降を使用していることを確認してください

Typescript or VSCode users

Typescriptの型宣言^3.0.0は、ライブラリのバージョン使用できます

1
npm install @types/bitcoinjs-lib

これでbitcoinjs-lib、typescript準拠のライブラリとして使用できます。

1
import { HDNode, Transaction } from 'bitcoinjs-lib'

VSCode(およびその他のエディター)の場合、Intellisenseはその情報を使用してコーディング(オートコンプリート、静的分析)を行うため、型宣言をインストールすることをお勧めします。

@dlebrecht DefinitelyTypedフォークでタイプスクリプト関連のバグを報告し、PRをDefinitelyTypedに送信します

Flow

フロータイプチェッカーの定義は、フロータイプのリポジトリで利用できます。

リポジトリから直接ダウンロードするか、フロータイプのCLIを使用してダウンロードできます。

1 2
# npm install -g flow-typed $ flow-typed install -f 0.27 bitcoinjs-lib@2.2.0 # 0.27 for flow version, 2.2.0 for bitcoinjs-lib version

定義は完全で、バージョン2.2.0で最新です。定義は@ runn1ngによって維持されます。

以下の例は統合テストとして実装されているため、非常に理解しやすいはずです。それ以外の場合は、プルリクエストを歓迎します。一部の例は、サードパーティのブロックチェーンプロバイダー(3PBP)と(HTTPS経由で)対話します。

ここにリストされていると思われるユースケースがある場合は、それ要求してください

BitcoinJSを利用したプロジェクト

貢献

プルリクエストは常に受け付けていますが、コーディングスタイル、テスト駆動開発、コミットメッセージに関しては特定の基準に準拠しています。

些細な修正を節約するために貢献するときは、これらを遵守するために最善を尽くしてください。

Running the test suite

1 2
npm test npm run-script coverage

ライブラリを補完する

  • BIP21 -ABIP21互換のURLエンコードライブラリ
  • BIP38-パスフレーズで保護された秘密鍵
  • BIP39-決定論的キーのニーモニック生成
  • BIP32-Utils-BIP32を操作するためのユーティリティのセット
  • BIP66-厳密なDER署名のデコード
  • BIP68-相対ロック時エンコーディングライブラリ
  • BIP69-トランザクションの入力と出力の辞書式索引付け
  • Base58- Base58エンコーディング/デコーディング
  • Base58チェック-Base58チェックエンコーディング/デコーディング
  • Bech32 -BIP173準拠のBech32エンコーディングライブラリ
  • coinselect -bitcoinjs-lib用の料金最適化トランザクション入力選択モジュール。
  • merkle- lib-マークルルートとツリーの計算のためのパフォーマンスを意識したライブラリ。
  • minimumdata-ビットコインポリシーをチェックするモジュール:SCRIPT_VERIFY_MINIMALDATA

代替案

ライセンスMIT