Mòdul de comunitat impressionant

BitcoinJS (bitcoinjs-lib)

Estat de la compilació NPM consell per al proper compromís

js-standard-style

La biblioteca pura Bitcoin de JavaScript per a node.js i navegadors. Es calcula que la fan servir més de 15 milions d'usuaris de carteres i és la columna vertebral de gairebé totes les carteres web de Bitcoin en producció actualment.

Característiques

  • Clean: JavaScript pur, codi concís, fàcil de llegir.
  • Tested: Cobertura> 90%, proves d’integració de tercers.
  • Careful: Procés d'aprovació de dues persones per a peticions de tiratge petites i enfocades.
  • Compatible: Funciona a Node.js i a tots els navegadors moderns.
  • Powerful: Compatibilitat amb funcions avançades, com ara multi-sig, HD Wallets.
  • Secure: Forta generació de números aleatoris, llançaments signats amb PGP, desenvolupadors de confiança.
  • Principled: No s'admeten navegadors amb RNG de merda (IE <11)
  • Standardized: Estil de codificació de la comunitat de nodes, Browserify, stdlib i buffers del node.
  • Fast: Codi optimitzat, utilitza matrius tipificades en lloc de matrius de bytes per al rendiment.
  • Fàcil d’experimentar: suport de Bitcoin Mainnet i Testnet.
  • Preparat per a Altcoin: capaç de treballar amb criptomonedes derivades de bitcoins (com Dogecoin).

Hauria d'utilitzar-ho a la producció?

Si esteu pensant a utilitzar la branca mestra d'aquesta biblioteca en producció, atureu. El mestre no és estable; és la nostra branca de desenvolupament, i només les versions etiquetades es poden classificar com a estables .

Instal·lació

1
npm install bitcoinjs-lib

Configuració

Node.js

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

Browser

Si esteu familiaritzat amb l'ús de browserify, ignoreu-lo i continueu amb normalitat. Aquests passos són només recomanatius i poden no ser adequats per a la vostra aplicació.

Es suposa que Browserify està instal·lat per a aquests passos.

Per al vostre projecte, creeu un index.jsfitxer

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 }

Ara, per compilar per al navegador:

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

Ara podeu introduir-la <script src="app.js" />a la vostra pàgina web mitjançant la foo.myFunctioncreació d’una nova clau privada de Bitcoin.

NOTA : La JavaScript enlletgir el Si, ha Els següents noms de les variables de la excloure l'ésser destrossat: BigInteger, ECPair, Pointaixò a causa de la IS-nom-funció usada en Duck-Typing. Typeforce .

Exemple:

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

NOTA : Aquesta biblioteca fa un seguiment de les funcions Node LTS, si necessiteu ES5 estricte, utilitzeu --transform babelify-les juntament amb el vostre browserifypas (mitjançant un es2015preajustat).

NOTA : Si espereu que aquesta biblioteca s'executi en un dispositiu iOS 10, assegureu-vos que utilitzeu buffer@5.0.5 o superior.

Typescript or VSCode users

Les declaracions de tipus per a Typescript estan disponibles per a la versió ^3.0.0de la biblioteca.

1
npm install @types/bitcoinjs-lib

Ara podeu utilitzar-lo bitcoinjs-libcom a biblioteca que compleix els mecanoscrits.

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

Per a VSCode (i altres editors), es recomana als usuaris instal·lar les declaracions de tipus, ja que Intellisense utilitza aquesta informació per ajudar-vos a codificar (autocompleció, anàlisi estàtica).

Informeu de qualsevol error relacionat amb el mecanografiat a la forquilla DefinitelyTyped @dlebrecht , envieu els PR a DefinitelyTyped

Flow

Les definicions per a la comprovació de tipus de flux estan disponibles al dipòsit tipus de flux.

Podeu descarregar-los directament des de la reposició o bé mitjançant la CLI de tipus flux

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

Les definicions són completes i actualitzades amb la versió 2.2.0. Les definicions les manté @ runn1ng .

Exemples

Els exemples següents s’implementen com a proves d’integració, haurien de ser molt fàcils d’entendre. En cas contrari, s’aprecien les sol·licituds d’extracció. Alguns exemples interactuen (mitjançant HTTPS) amb un proveïdor de blockchain de tercers (3PBP).

Si teniu algun cas d’ús que creieu que podria figurar aquí, demaneu-lo !

Projectes que utilitzen BitcoinJS

Contribuint

Sempre acceptem les sol·licituds d'extracció, però complim els estàndards específics pel que fa a l'estil de codificació, el desenvolupament basat en proves i els missatges de confirmació.

Si us plau, feu el possible per complir-los quan contribueixi a estalviar en correccions trivials.

Running the test suite

1 2
npm test npm run-script coverage

Biblioteques complementàries

  • BIP21 -Una biblioteca de codificació d’URL compatible amb BIP21
  • BIP38 : claus privades protegides per contrasenya
  • BIP39 -Generació de dades de claus deterministes
  • BIP32-Utils : un conjunt d’utilitats per treballar amb BIP32
  • BIP66 : descodificació de signatures DER estrictes
  • BIP68 -Libreria de codificació de temps de bloqueig relativa
  • BIP69 : indexació lexicogràfica d’entrades i sortides de transaccions
  • Codificació / descodificació Base58 -Base58
  • Base58 Check -Base58 comprova la codificació / descodificació
  • Biblioteca de codificació Bech32 compatible amb Bech32 -A BIP173
  • coinselect -Un mòdul de selecció d’entrada de transaccions d’optimització de tarifes per bitcoinjs-lib.
  • merkle-lib : una biblioteca conscient del rendiment per a càlculs d'arrels i arbres de merkle.
  • minimaldata -Un mòdul per comprovar la política de bitcoins: SCRIPT_VERIFY_MINIMALDATA

Alternatives

LLICÈNCIA MIT