From 7eb0a83cf1f8ee896ebcf1e3ecedc7000d04a80a Mon Sep 17 00:00:00 2001 From: Kyle Drake Date: Tue, 1 Jul 2014 12:30:14 -0500 Subject: [PATCH 1/3] updates to README for 1.0.0 release --- README.md | 53 ++++++++++++++++++++++++++--------------------------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 3b9b29a..41c9ec7 100644 --- a/README.md +++ b/README.md @@ -1,40 +1,39 @@ -# bitcoinjs-lib +# BitcoinJS (bitcoinjs-lib) [![Build Status](https://travis-ci.org/bitcoinjs/bitcoinjs-lib.png?branch=master)](https://travis-ci.org/bitcoinjs/bitcoinjs-lib) [![Coverage Status](https://coveralls.io/repos/bitcoinjs/bitcoinjs-lib/badge.png)](https://coveralls.io/r/bitcoinjs/bitcoinjs-lib) [![Browser Support](https://ci.testling.com/bitcoinjs/bitcoinjs-lib.png)](https://ci.testling.com/bitcoinjs/bitcoinjs-lib) -A pure JavaScript Bitcoin library for node.js and browsers. -A continued implementation of the original `0.1.3` version used by over a million wallet users; and the backbone for almost all Bitcoin web wallets in production today. +The pure JavaScript Bitcoin library for node.js and browsers. +A continued implementation of the original `0.1.3` version used by over a million wallet users; the backbone for almost all Bitcoin web wallets in production today. + + +## Features + +- Clean: Pure JavaScript, concise code, easy to read. +- Tested: Coverage > 90%, third-party integration tests. +- Careful: Two person approval process for small, focused pull requests. +- Compatible: Works on Node.js and all modern browsers. +- Powerful: Support for advanced features, such as multi-sig, HD Wallets. +- Secure: Strong random number generation, PGP signed releases, trusted developers. +- Principled: No support for browsers with crap RNG (IE < 11) +- Standardized: Node community coding style, Browserify, Node's stdlib and Buffers. +- Fast: Optimized code, uses typed arrays instead of byte arrays for performance. +- Experiment-friendly: Bitcoin Mainnet and Testnet support. +- Altcoin-ready: Capable of working with bitcoin-derived cryptocurrencies (such as Dogecoin). ## Should I use this in production? If you are thinking of using the master branch of this library in production, stop. Master is not stable; it is our development branch, and only tagged releases may be classified as stable. -Master is currently being heavily refactored to clean things up, add new functionality and merge improvements from the community. -If you are looking for the original, it is tagged as `0.1.3`. -We are releasing quasi-stable releases tagged under `0.2.x`, with the expectation that this is still beta software and is `PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED`. - -This is not the original bitcoinjs-lib that was not updated for a long time. - - -## Features - -- Default's to the Bitcoin network, however testnet, Dogecoin and Litecoin are all supported natively. -- [HD Wallets](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki). -- Random private key generation that uses [window.crypto.getRandomValues](https://developer.mozilla.org/en-US/docs/Web/API/Window.crypto) in the underlying implementation. -- ECDSA signing and verification. -- Standard transaction creation, with support for PubKeyHash, ScriptHash, MultiSig and PubKey scripts, and -- A (somewhat incomplete) wallet implementation, with improvements ongoing. +If you are looking for the original, it is tagged as `0.1.3`. Unless you need it for dependency reasons, it is highly recommended that you use the newest version, which adds major functionality, fixes many bugs, and is well tested. ## Installation `npm install bitcoinjs-lib` -Note: The npm version is currently out of date, are working to resolve this. The best way to use the latest code is to clone the repository. - ## Setup @@ -103,13 +102,15 @@ console.log(tx.toHex()) ## Projects utilizing bitcoinjs-lib -- [Blockchain.info Wallet](http://blockchain.info/wallet) +- [Blockchain.info Wallet](https://blockchain.info/wallet) - [Bitaddress.org](https://www.bitaddress.org) - [Coinpunk](https://coinpunk.com) - [DarkWallet](https://darkwallet.unsystem.net) - [GreenAddress](https://greenaddress.it) - [Dogechain Wallet](https://dogechain.info) - [Justcoin Exchange](https://justcoin.com) +- [Brainwallet](https://brainwallet.github.io) +- [Skyhook ATM](http://projectskyhook.com) Feel free to send pull requests to have your project/startup listed here. @@ -126,10 +127,13 @@ Feel free to send pull requests to have your project/startup listed here. ### Running the test suite $ npm test + $ npm run-script coverage -## Alternatives +## Alternatives / Complementing Libraries + +- [BCoin](https://github.com/indutny/bcoin) - [Bitcore](https://github.com/bitpay/bitcore) - [Cryptocoin](https://github.com/cryptocoinjs/cryptocoin) @@ -143,8 +147,3 @@ This library is free and open-source software released under the MIT license. BitcoinJS (c) 2011-2012 Stefan Thomas Released under MIT license -http://bitcoinjs.org/ - -CryptoJS (c) 2009–2012 by Jeff Mott -Released under New BSD license -http://code.google.com/p/crypto-js/ From a240768d6e00eaef6352f60c2c265ce53a033d34 Mon Sep 17 00:00:00 2001 From: Kyle Drake Date: Tue, 1 Jul 2014 18:02:52 -0500 Subject: [PATCH 2/3] More cleanups to README --- README.md | 53 +++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 37 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 41c9ec7..99178aa 100644 --- a/README.md +++ b/README.md @@ -24,10 +24,10 @@ A continued implementation of the original `0.1.3` version used by over a millio ## Should I use this in production? -If you are thinking of using the master branch of this library in production, stop. +If you are thinking of using the master branch of this library in production, *stop*. Master is not stable; it is our development branch, and only tagged releases may be classified as stable. -If you are looking for the original, it is tagged as `0.1.3`. Unless you need it for dependency reasons, it is highly recommended that you use the newest version, which adds major functionality, fixes many bugs, and is well tested. +If you are looking for the original, it is tagged as `0.1.3`. Unless you need it for dependency reasons, it is strongly recommended that you use (or upgrade to) the newest version, which adds major functionality, cleans up the interface, fixes many bugs, and adds over 1,300 more tests. ## Installation @@ -48,10 +48,15 @@ From the repo: ### Browser -Compile `bitcoinjs-min.js` with the following command: +From the repository: Compile `bitcoinjs-min.js` with the following command: $ npm run-script compile +From NPM: + + $ npm -g install bitcoinjs-lib browserify uglify-js + $ browserify -r bitcoinjs-lib -s Bitcoin | uglifyjs > bitcoinjs.min.js + After loading this file in your browser, you will be able to use the global `bitcoin` object. @@ -100,20 +105,31 @@ console.log(tx.toHex()) ``` -## Projects utilizing bitcoinjs-lib +## Projects utilizing BitcoinJS -- [Blockchain.info Wallet](https://blockchain.info/wallet) -- [Bitaddress.org](https://www.bitaddress.org) -- [Coinpunk](https://coinpunk.com) -- [DarkWallet](https://darkwallet.unsystem.net) -- [GreenAddress](https://greenaddress.it) -- [Dogechain Wallet](https://dogechain.info) -- [Justcoin Exchange](https://justcoin.com) +- [Coinpunk](https://coinpunk.com) * +- [Hive Wallet](https://www.hivewallet.com) * +- [Justchain Exchange](https://justcoin.com) * +- [Skyhook ATM](http://projectskyhook.com) * + +- [BitAddress](https://www.bitaddress.org) +- [Blockchain.info](https://blockchain.info/wallet) - [Brainwallet](https://brainwallet.github.io) -- [Skyhook ATM](http://projectskyhook.com) +- [Dark Wallet](https://darkwallet.unsystem.net) +- [Dogechain Wallet](https://dogechain.info) +- [GreenAddress](https://greenaddress.it) -Feel free to send pull requests to have your project/startup listed here. +* directly contributed code or funding to the project. They're helping improve the Bitcoin ecosystem for everyone. Thank them. +Feel free to send pull requests to have your project/startup listed here (alphabetically, please). Or better yet, contribute code or funding! + +## Contributors + +Stefan Thomas is the inventor and creator of this project. His pioneering work made Bitcoin web wallets possible. + +Since then, many people have contributed. [Click here](https://github.com/bitcoinjs/bitcoinjs-lib/graphs/contributors) to see the comprehensive list. + +Daniel Cousens, Wei Lu, JP Richardson and Kyle Drake lead the major refactor of the library from 0.1.3 to 1.0.0. ## Contributing @@ -130,14 +146,19 @@ Feel free to send pull requests to have your project/startup listed here. $ npm run-script coverage -## Alternatives / Complementing Libraries +## Complementing Libraries + +- [bip39](https://github.com/weilu/bip39) - Wei Lu's Mnemonic code generator +- [BCoin](https://github.com/indutny/bcoin) - BIP37 / Bloom Filters / SPV client +- [scryptsy](https://github.com/cryptocoinjs/scryptsy) - Private key encryption (BIP38) +- [insight](https://github.com/bitpay/insight) - A bitcoin blockchain API for web wallets. -- [BCoin](https://github.com/indutny/bcoin) +## Alternatives + - [Bitcore](https://github.com/bitpay/bitcore) - [Cryptocoin](https://github.com/cryptocoinjs/cryptocoin) - ## License This library is free and open-source software released under the MIT license. From ceb4227140d1e0aaeb50b293c7996453913834b2 Mon Sep 17 00:00:00 2001 From: Kyle Drake Date: Tue, 1 Jul 2014 18:03:13 -0500 Subject: [PATCH 3/3] 1.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e73c055..fcb7941 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitcoinjs-lib", - "version": "0.2.0", + "version": "1.0.0", "description": "Client-side Bitcoin JavaScript library", "main": "./src/index.js", "keywords": [