Commit graph

245 commits

Author SHA1 Message Date
Daniel Cousens
ed137a3b9d Various stylistic changes 2014-03-24 06:22:26 +11:00
Daniel Cousens
f580516c06 Removes unused variables 2014-03-24 06:22:26 +11:00
Wei Lu
9358a40500 tabs -> spaces 2014-03-24 03:19:39 +08:00
Daniel Cousens
e9fdfecfea Changes default EC*Key.toString behaviour to Hex 2014-03-23 18:42:52 +11:00
Daniel Cousens
b40374e332 Changes to new version-less ECKey API 2014-03-22 19:12:26 +11:00
Daniel Cousens
a1be488d1b Fixes #78 2014-03-22 16:27:10 +11:00
Wei Lu
35747fb1fb Merge pull request #76 from coinpunk/transactioncleanups
Many cleanups to Transaction, see detailed.
2014-03-21 15:54:59 +08:00
Kyle Drake
40881a7dd8
add back SIGHASH code to transaction 2014-03-20 19:15:15 -07:00
Kyle Drake
28e146431c
Many cleanups to Transaction, see detailed.
Default-ize the sequence rather than use a number, and default to bytes
for input. I doubt anybody ever uses this anyways.

Remove weird convenience code, and remove wallet logic. Checking a TX's
affects on a wallet should be managed by the wallet object.

Remove parsing for the weirder SIGHASH types. People use this library
for creating SIGHASH_ALL transactions, and I don't see the need to
support these other types at the moment since this library's more used
for wallets than for hardcore bitcoin tx analysis/creation. They weren't
tested anyways.

Add note about potentially improving performance by providing
pubkey/address. Deriving from the private key is slower, that
information should probably be cached by the end user.
2014-03-20 15:40:07 -07:00
Wei Lu
b7861e4336 replace jsbn's rng with module secure-random
This uses window.crypto.getRandomValues on browser
and crypto.randomBytes on node
2014-03-20 17:19:06 +08:00
Kyle Drake
28517bed13 Merge pull request #71 from bitcoinjs/transaction-tests
Transaction tests & fix addInput hash allowed formats
2014-03-17 18:40:49 -07:00
Kyle Drake
ace3fd122c Merge pull request #60 from bitcoinjs/hd-keychain-structure
HD wallet keychain structure
2014-03-17 17:00:18 -07:00
Wei Lu
2e6ef6cb85 fix and add tests for addInput 2014-03-17 18:01:09 +08:00
Wei Lu
a5ee07f7f6 Add tests to transaction deserialization
lock_time -> locktime
2014-03-17 16:31:35 +08:00
Wei Lu
9f2da415ea fix script constructor array check 2014-03-17 16:13:49 +08:00
Wei Lu
31cfb11178 new master key resets accounts and addresses 2014-03-16 13:36:57 +08:00
Pablo Martin
2e26a137d5 require crypto-js/sha256 instead of ./crypto-js/sha256. 2014-03-16 03:02:04 +01:00
Pablo Martin
8f383be325 fix transaction hashing (was using Message.getHash incorrectly). 2014-03-16 02:42:49 +01:00
Wei Lu
a7a7999e3f fix Wallet default constructor 2014-03-15 10:18:59 +08:00
Wei Lu
b2f010428f store accounts in closure instead of on object 2014-03-14 10:35:01 +08:00
Wei Lu
d4f3398d91 remove keys array and usage 2014-03-14 10:35:01 +08:00
Wei Lu
207163704b return private key rather than HD wallet node 2014-03-14 10:35:01 +08:00
Wei Lu
9200479159 getPrivateKey derives key on the fly
also added getPrivateKeyFromAddress
2014-03-14 10:35:01 +08:00
Wei Lu
ab9e782d14 private a method to generate change addresses 2014-03-14 10:35:00 +08:00
Wei Lu
1212099bfc Wallet address derivation follows bip32/bitcoinj keychain structure
Also wallet accepts bytes in constructor

[#60]
2014-03-14 10:34:37 +08:00
Wei Lu
44012b47b5 change hd wallet constructor to take bytes
original constructor -> fromSeedString, fromMasterHex -> fromSeedHex

[#60]
2014-03-14 10:03:56 +08:00
Wei Lu
142b847968 HD wallet fromMaterHex allows specifying network
[#60]
2014-03-14 10:03:56 +08:00
Kyle Drake
eb4da5f5c5
remove endian code in index.js nothing is using 2014-03-11 12:26:59 -07:00
Kyle Drake
7219c27413 Merge pull request #62 from bitcoinjs/compressed-sign
Fix sign/verify for with compressed keys
2014-03-11 12:12:52 -07:00
Andreas Brekken
08e75a82c9 Add whether pubkey recovered from sig is compressed. close #61 2014-03-11 18:28:04 +01:00
Andreas Brekken
f09890fed1 Determine whether key is compressed from the key itself. ref #61 2014-03-11 18:26:40 +01:00
Wei Lu
3d6b66e811 move convert methods from util to convert 2014-03-11 09:52:48 +08:00
Wei Lu
227fa97500 remove old crypto-js 2014-03-11 09:32:06 +08:00
Wei Lu
9c15fa0cbf Merge pull request #57 from bitcoinjs/upgrade-crypto-js
Use crypto-js as a module from npm
2014-03-11 09:14:49 +08:00
Wei Lu
45e55a07b0 fix transaction serialization/deserialization
[closes #58]
2014-03-09 13:46:20 +08:00
Wei Lu
d2b790fef9 throw error when input to script constructor is not an array
[#58]
2014-03-09 13:43:36 +08:00
Wei Lu
a281a5ab53 migrate crypto-js to 3.1.2 2014-03-09 09:49:24 +08:00
Wei Lu
78c257ff9b Merge pull request #55 from coinpunk/opcodecleanups
new Opcode() is not used
2014-03-07 15:26:37 +08:00
Wei Lu
ef1a4017f8 Merge pull request #54 from coinpunk/moreaddresstesting
More address testing
2014-03-07 15:17:03 +08:00
Kyle Drake
6f04743081
new Opcode() is not used 2014-03-06 18:14:28 -06:00
Kyle Drake
8471df7317
remove unused hex helpers 2014-03-06 17:54:36 -06:00
Kyle Drake
fdc78dad2e
merge weilu's changes 2014-03-06 17:21:42 -06:00
xnova
786198f130 * Fixes address.js to be able to deal with testnet P2SH addresses
* Enhanced address.js testsuite...now also verifies address versions
* Enhances README to show how to run test suite
2014-03-05 16:53:29 -05:00
Wei Lu
bde9b13b15 remove isArray shim
[closes #40]
2014-03-03 11:27:19 +08:00
xnova
f50c1a91f7 include 'network' in the library exports 2014-03-01 21:10:02 -05:00
Kyle Drake
e7de3540d1 Merge pull request #44 from justcoin/tidy-scripts
Tidy up script.js
2014-03-01 15:26:24 -08:00
Kyle Drake
f4b819e1af Merge pull request #43 from justcoin/remove-event-emitter
Remove event emitter
2014-03-01 15:21:51 -08:00
Kyle Drake
9f74a13864 Merge pull request #42 from justcoin/remove-txdb
Remove txdb.js
2014-03-01 15:21:41 -08:00
Kyle Drake
b9de999434 Merge pull request #28 from bitcoinjs/hd-testnet-support
HD testnet support (#27) + unify network names
2014-03-01 15:21:08 -08:00
Wei Lu
3bed73da65 Remove pailier.js #33, @abrkn 2014-03-02 02:24:28 +08:00
Wei Lu
3dfc3cd0e8 Remove exit node class #32, @abrkn 2014-03-02 02:24:28 +08:00
Andreas Brekken
4a4e75d007 Simplify Script constructor. close #41 2014-03-01 19:19:27 +01:00
Andreas Brekken
354d31a297 Clean up script.js formatting. ref #41 2014-03-01 19:12:50 +01:00
Andreas Brekken
23ccb97439 Remove EventEmitter.js. close #37 2014-03-01 19:06:30 +01:00
Andreas Brekken
51ad071446 Remove txdb. close #39 2014-03-01 19:04:43 +01:00
Andreas Brekken
80f46d32b4 Remove String.lpad and cleanup 2014-03-01 18:08:47 +01:00
Wei Lu
65a13cbf41 pull out hdwallet network specific values 2014-02-28 18:07:31 +08:00
Wei Lu
2e97828379 throws exception if specified network is unknown
also move network type tests to hdwallet
2014-02-28 17:59:01 +08:00
Wei Lu
02b3a2b564 HDWallet prod -> mainnet 2014-02-28 17:28:03 +08:00
Wei Lu
eaf84c4283 move address versions into network
Also change address type name:
address_types -> addressVersion
p2sh_types -> p2shVersion
prod -> mainnet
2014-02-28 16:58:14 +08:00
Wei Lu
293c864f4f HD wallet versions: Bitcoin -> prod, BitcoinTest -> testnet 2014-02-28 14:27:31 +08:00
Wei Lu
c352868080 key version check always always relies on the network property
[#27]
2014-02-28 14:08:34 +08:00
Wei Lu
cc0a042f2f squashed commits from #27 2014-02-28 12:05:48 +08:00
Wei Lu
09ee406106 Revert "Merge pull request #27 from xnova/master"
due to broken tests, moved the changes to branch hd-testnet-support

This reverts commit a4ba59e9ba, reversing
changes made to 36d3d6ebaa.
2014-02-28 11:52:19 +08:00
xnova
0310a890ba didn't mean to remove getPub() 2014-02-27 03:48:20 -05:00
xnova
d447e69279 more ECKey version specification in HDWallet 2014-02-27 03:46:28 -05:00
xnova
ff70f661f7 HDWallet passes along network type when it creates the master private key 2014-02-27 01:18:56 -05:00
Wei Lu
36d3d6ebaa use options in wallet contructor & add tests
[#26]
2014-02-27 11:55:35 +08:00
xnova
933474a973 added ability to specify child key derivation method to the Wallet constructor 2014-02-26 20:13:51 -05:00
xnova
49c2fc06b5 allow Wallet to work with testnet 2014-02-26 19:56:37 -05:00
Wei Lu
102e2b3d48 Wallet.generateAddress uses the new HD wallet method 2014-02-27 02:12:55 +08:00
Michael Gooden
b8215dea60
Add testnet support to Address and ECKey, more tests.
Signed-off-by: Michael Gooden <me@michaelgooden.net>
2014-02-24 18:31:18 +02:00
Michael Gooden
b3e3f806cb
Fix parsing of base58 compressed private keys. Add base64 parse support.
Signed-off-by: Michael Gooden <me@michaelgooden.net>
2014-02-20 18:01:21 +02:00
Kyle Drake
cb3653105a Merge vbuterin/master 2014-02-02 11:33:46 -08:00
Vitalik Buterin
c8732e5d38 Fixed ECKey constructor 2014-01-22 08:46:46 -05:00
Andreas Brekken
a68b0910af Fix wrong bitcoin address from priv key. 2014-01-22 16:29:09 +07:00
Andreas Brekken
4edbaee96a Fix wallet.js so it does not crash with HDWallet. 2014-01-16 16:06:58 +07:00
Andreas Brekken
e3cf19343d Replace BIP32key with HDWallet in index.js 2014-01-16 16:05:11 +07:00
Andreas Brekken
966d2ee90d Remove obsolete bip32.js 2014-01-16 14:03:34 +07:00
Andreas Brekken
5f9e2624f8 Rewrite HD Wallet (BIP0032) with all test vectors 2014-01-16 14:03:09 +07:00
Andreas Brekken
8ccb8ad70a Add toBase58, toWif to ECPubKey 2014-01-16 14:02:21 +07:00
Andreas Brekken
ecbb6f81ee Allow specifying whether to compress key in ECKey.toBytes 2014-01-16 14:01:57 +07:00
Andreas Brekken
1cb41fdaba Add BIP32_PRIME constant, 0x80000000 2014-01-11 16:31:09 +07:00
Andreas Brekken
56bb0a0c6d Improve naming of ECKey/ECPubKey formatters. close vbuterin/bitcoinjs-lib#13 2014-01-11 15:52:29 +07:00
Andreas Brekken
e08533ff7a Document serialization of BIP32key 2014-01-11 15:50:25 +07:00
Andreas Brekken
29ebd4edc5 Fix ECKey.verify 2014-01-11 14:26:12 +07:00
Andreas Brekken
61992462e3 Rewrite util.js for readability 2014-01-11 13:57:05 +07:00
Andreas Brekken
3ef468ec8b Remove call to non-existant method ECPubKey.setCompressed 2014-01-11 13:56:48 +07:00
Andreas Brekken
bc3136802c Minor formatting 2014-01-11 13:56:23 +07:00
Andreas Brekken
20aa4a0e8a Fix compressed check to avoid setting it to undefined 2014-01-11 13:55:53 +07:00
Andreas Brekken
bf6254d3e2 Trailing whitespace 2014-01-11 13:55:21 +07:00
Vitalik Buterin
36ce412bcb Merge branch 'master' of github.com:vbuterin/bitcoinjs-lib 2014-01-10 15:18:09 -05:00
Vitalik Buterin
7919c8cfc5 Added auto-instantiators to classes 2014-01-10 15:17:53 -05:00
Andreas Brekken
4ffabf05af Fix bitcoinAddress to use getPub().key.export('bytes') 2014-01-10 17:16:08 +07:00
Andreas Brekken
c3fbd63c84 Fix bad Bitcoin.Crypto reference in ecdsa.js 2014-01-10 16:47:35 +07:00
Andreas Brekken
be7406d9a9 Add bitcoinAddress convenience func to BIP32key 2014-01-10 16:47:14 +07:00
Andreas Brekken
3e6796a660 Fix references to Bitcoin.BigInteger 2014-01-10 16:16:24 +07:00
Andreas Brekken
26ac76d42c Fix bad references to Bitcoin.Crypto 2014-01-10 16:10:39 +07:00
Andreas Brekken
d39567c589 Clean up formatting of BIP32key (jshint) 2014-01-10 16:09:59 +07:00
Andreas Brekken
49513684a2 Remove unused imports from BIP32key 2014-01-10 16:08:27 +07:00