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

ビットコインJS (bitcoinjs-lib)

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

js-標準スタイル

Node.js およびブラウザ用の純粋な JavaScript ビットコイン ライブラリ。推定 1,500 万人以上のウォレット ユーザーによって使用されており、現在運用されているほぼすべてのビットコイン Web ウォレットのバックボーンです。

特徴

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

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

このライブラリの master ブランチを運用環境で使用することを考えている場合は、 を停止してください。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" />使用する Web ページを配置できるようになりました。foo.myFunction

: JavaScript を醜悪にする場合は、変数名BigIntegerECPair、を除外する必要があります。これは、 typeforcePointで使用される function-name-duck-typing が原因です

例:

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

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

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

Typescript or VSCode users

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

1
npm install @types/bitcoinjs-lib

bitcoinjs-libTypescript 準拠のライブラリとして使用できるようになりました。

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

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

typescript 関連のバグは@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によって維持されます。

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

ここに掲載できると思われるユースケースがございましたら、お問い合わせください

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

貢献する

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

些細な修正を省くために、貢献する際にはこれらを遵守するよう最善の努力を払ってください。

Running the test suite

1 2
npm test npm run-script coverage

補完ライブラリ

  • BIP21 - BIP21 互換の 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

代替案

ライセンス供与_