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

BitcoinJS (bitcoinjs-lib)

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

js-標準スタイル

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

特徴

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

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

このライブラリの 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" />に使用foo.myFunctionして、Web ページに配置できます。

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

例:

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

: このライブラリは Node 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-libtypescript 準拠のライブラリとして使用できるようになりました。

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

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

で任意の写し(typescript)関連のバグを報告DefinitelyTypedフォーク@dlebrechtへのPRを提出し、DefinitelyTyped

Flow

Flow typechecker の定義は、flow-typed リポジトリで利用できます。

リポジトリから直接ダウンロードするか、フロー タイプの 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 - 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

代替案

ライセンスMIT