Geweldige gemeenschapsmodule

BitcoinJS (bitcoinjs-lib)

Bouwstatus NPM tip voor volgende opdracht

js-standaard-stijl

De pure JavaScript-Bitcoin-bibliotheek voor node.js en browsers. Wordt naar schatting door meer dan 15 miljoen portemonneegebruikers gebruikt en vormt de ruggengraat voor bijna alle Bitcoin-webportefeuilles die momenteel in productie zijn.

Functies

  • Clean: Puur JavaScript, beknopte code, gemakkelijk te lezen.
  • Tested: Dekking > 90%, integratietests van derden.
  • Careful: Goedkeuringsproces voor twee personen voor kleine, gerichte pull-aanvragen.
  • Compatible: Werkt op Node.js en alle moderne browsers.
  • Powerful: Ondersteuning voor geavanceerde functies, zoals multi-sig, HD Wallets.
  • Secure: Sterke generatie van willekeurige getallen, PGP-ondertekende releases, vertrouwde ontwikkelaars.
  • Principled: Geen ondersteuning voor browsers met onzin RNG (IE < 11)
  • Standardized: Node-communitycoderingsstijl, Browserify, Node's stdlib en Buffers.
  • Fast: Geoptimaliseerde code, gebruikt getypte arrays in plaats van byte-arrays voor prestaties.
  • Experimentvriendelijk: Bitcoin Mainnet- en Testnet-ondersteuning.
  • Klaar voor Altcoin: Kan werken met van bitcoin afgeleide cryptocurrencies (zoals Dogecoin).

Moet ik dit in de productie gebruiken?

Als je erover denkt om de master branch van deze bibliotheek in productie te gebruiken, stop dan . Master is niet stabiel; het is onze ontwikkelingsbranch, en alleen getagde releases kunnen als stable worden geclassificeerd .

Installatie

1
npm install bitcoinjs-lib

Opgericht

Node.js

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

Browser

Als u bekend bent met het gebruik van browserify, negeert u dit en gaat u normaal verder. Deze stappen zijn uitsluitend bedoeld als advies en zijn mogelijk niet geschikt voor uw toepassing.

Er wordt aangenomen dat Browserify voor deze stappen is geïnstalleerd.

Maak een index.jsbestand voor uw project

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 }

Nu, om te compileren voor de browser:

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

U kunt nu <script src="app.js" />uw webpagina invoeren en foo.myFunctioneen nieuwe Bitcoin-privésleutel maken.

OPMERKING : Als u het javascript lelijk maakt, moet u uitsluiten dat de volgende namen van variabelen worden verminkt: BigInteger, ECPair, PointDit komt door de functienaam-duck-typing die wordt gebruikt in typeforce .

Voorbeeld:

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

OPMERKING : deze bibliotheek houdt de Node LTS-functies bij. Als je strikte ES5 nodig hebt, gebruik deze dan --transform babelifyin combinatie met je browserifystap (met behulp van een es2015preset).

OPMERKING : Als u verwacht dat deze bibliotheek op een iOS 10-apparaat draait, zorg er dan voor dat u buffer@5.0.5 of hoger gebruikt.

Typescript or VSCode users

Typedeclaraties voor Typescript zijn beschikbaar voor de versie ^3.0.0van de bibliotheek.

1
npm install @types/bitcoinjs-lib

U kunt de bibliotheek nu gebruiken bitcoinjs-libals een typescript-compatibele bibliotheek.

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

Voor VSCode (en andere editors) wordt gebruikers geadviseerd om de typedeclaraties te installeren, omdat Intellisense die informatie gebruikt om u te helpen coderen (automatisch aanvullen, statische analyse).

Rapporteer eventuele typoscriptgerelateerde bugs op de fork @dlebrecht AbsoluutTyped , dien PR's in bij AbsoluutTyped

Flow

Definities voor Flow typechecker zijn beschikbaar in de flow-getypeerde repository.

U kunt ze rechtstreeks downloaden vanuit de repository, of met de flow-getypeerde 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

De definities zijn compleet en up-to-date met versie 2.2.0. De definities worden onderhouden door @runn1ng .

Voorbeelden

De onderstaande voorbeelden zijn geïmplementeerd als integratietests en moeten heel gemakkelijk te begrijpen zijn. Anders worden pull-verzoeken op prijs gesteld. Sommige voorbeelden communiceren (via HTTPS) met een externe Blockchain-provider (3PBP).

Als u een gebruiksscenario heeft waarvan u denkt dat het hier vermeld zou kunnen worden, vraag er dan naar !

Projecten die BitcoinJS gebruiken

Bijdragende

We accepteren altijd pull-verzoeken, maar we houden ons wel aan specifieke normen met betrekking tot codeerstijl, testgestuurde ontwikkeling en commit-berichten.

Doe uw best om u hieraan te houden wanneer u bijdraagt, om te besparen op triviale correcties.

Running the test suite

1 2
npm test npm run-script coverage

Als aanvulling op bibliotheken

  • BIP21 - Een BIP21-compatibele URL-coderingsbibliotheek
  • BIP38 - Met een wachtwoord beveiligde privésleutels
  • BIP39 - Mnemonische generatie voor deterministische sleutels
  • BIP32-Utils - Een reeks hulpprogramma's voor het werken met BIP32
  • BIP66 - Strenge DER-handtekeningdecodering
  • BIP68 - Relatieve coderingsbibliotheek met vergrendeling
  • BIP69 - Lexicografische indexering van transactie-invoer en -uitvoer
  • Base58 - Base58-codering/decodering
  • Base58 Check - Base58 controleert codering/decodering
  • Bech32 - Een BIP173-compatibele Bech32-coderingsbibliotheek
  • Coinselect - Een vergoedingsoptimaliserende transactie-invoerselectiemodule voor bitcoinjs-lib.
  • merkle-lib - Een prestatiebewuste bibliotheek voor merkle-wortel- en boomberekeningen.
  • minimaldata - Een module om het bitcoinbeleid te controleren: SCRIPT_VERIFY_MINIMALDATA

Alternatieven

LICENTIE _