Commit graph

532 commits

Author SHA1 Message Date
Daniel Cousens 4f88980dfb tests: add P2SH multisig example case 2014-08-18 08:54:46 +10:00
Daniel Cousens f9fed3c815 TxBuilder: adds fromTransaction impl. and basic tests 2014-08-18 08:54:46 +10:00
Daniel Cousens f3199b6fce tests: integration test to use TxBuilder 2014-08-18 08:54:46 +10:00
Daniel Cousens 1e3e003120 TxBuilder: remove unnecessary assert 2014-08-18 08:54:46 +10:00
Daniel Cousens 31ea956e8e TxBuilder: add invalid nulldata case 2014-08-18 08:54:45 +10:00
Daniel Cousens d0ac9b405a tests: add TxBuilder pubKey test fixture 2014-08-18 08:54:45 +10:00
Daniel Cousens 26b028adcf Wallet: use TxBuilder instead 2014-08-18 08:54:45 +10:00
Daniel Cousens 36b225a3df TxBuilder: use data fixtures for invalid tests 2014-08-18 08:54:45 +10:00
Daniel Cousens bcbcd58964 TxBuilder: Initial commit and tests 2014-08-18 08:54:45 +10:00
Daniel Cousens 884fd542fe Transaction: deprecate Tx signing methods 2014-08-16 17:36:06 +10:00
Daniel Cousens 2f00c9ab35 Wallet: rework unspents to primarily work on initialization
The RegExp for the UTXO validation was removed as the errors are now
more verbose and specific to each case.
2014-08-14 11:17:10 +10:00
Daniel Cousens 7c22067f69 Wallet: clarify getPrivateKeyForAddress method structure
This does repeat the O(n) lookup several times, but that can be fixed by
using an O(1) lookup instead (and will be later).

Clarity first.
2014-08-14 11:00:29 +10:00
Daniel Cousens 6b429493f8 hdnode: add deprecation message for isPrivate 2014-07-30 18:04:25 +10:00
Daniel Cousens 2fbd9449f5 tests: use neutered rather than import/export 2014-07-30 17:57:09 +10:00
Daniel Cousens 9d92b6a1a8 HDNode: add neuter functionality 2014-07-30 17:57:09 +10:00
Daniel Cousens e69ba7ce76 HDNode: assert chain code length 2014-07-30 17:57:09 +10:00
Daniel Cousens 52689fc98b tests: adds r = s = -n ecdsa verify test case 2014-07-30 14:47:21 +10:00
Daniel Cousens 5657dcf2aa ecdsa: add improved test coverage for recoverPubKey 2014-07-29 23:45:50 +10:00
Daniel Cousens be3ce88a3a ecdsa: enforce positive integers 2014-07-29 23:45:25 +10:00
Daniel Cousens a8c6f5284d tests: avoid unnecessary sha256 for hash 2014-07-29 01:01:11 +10:00
Wei Lu 6e1bbe8ebe Merge pull request #247 from dcousens/ecurve
Removal of secure-random in favour of crypto-browserify
2014-07-28 22:44:29 +08:00
Daniel Cousens eaf8cf85af test: rephrase fail -> throw 2014-07-28 18:13:00 +10:00
Daniel Cousens 2920bb2ee1 tests: remove outdated FIXME in wallet 2014-07-28 18:11:31 +10:00
Daniel Cousens 8e0c835919 package: use crypto-browserify 3.0.0 2014-07-28 13:51:30 +10:00
Daniel Cousens 56d9ea6618 HDNode: fix error spelling 2014-07-11 19:15:56 +10:00
Daniel Cousens ddcde038d0 HDNode: enforces sane seed lengths 2014-07-11 16:34:03 +10:00
Daniel Cousens 13c2d377e7 package: use bs58check 2014-07-02 14:37:32 +10:00
Daniel Cousens ab20febbdc Merge pull request #233 from weilu/pending-spending-utxo
wallet: reintroduce output.to to track pending spent utxo
2014-07-02 03:27:33 +10:00
Wei Lu d9e240bbb1 Merge pull request #224 from dcousens/classify
Script classification fixes
2014-06-29 12:05:39 -07:00
Wei Lu f7af487597 wallet: reintroduce output.to to track pending spent utxo 2014-06-28 18:29:47 -07:00
Kyle Drake df743e55d0 Merge pull request #223 from dcousens/rand
ECKey: adds tests for makeRandom
2014-06-26 19:48:15 -04:00
Kyle Drake 6596ca1ec8 Merge pull request #228 from dcousens/b58
BS58 module
2014-06-26 18:26:54 -04:00
Daniel Cousens 9d2784a441 crypto: add RIPEMD160 tests 2014-06-26 19:26:21 +10:00
Daniel Cousens 002c428019 tests: remove h2b 2014-06-26 18:47:17 +10:00
Daniel Cousens ea9c8251a0 use cryptocoinjs/bs58 2014-06-26 18:47:13 +10:00
Daniel Cousens 759bba5c21 scripts: add falsy classifications and fix multisig 2014-06-26 16:22:29 +10:00
Daniel Cousens 89f0324cd7 ECKey: adds tests for makeRandom 2014-06-26 13:35:52 +10:00
Daniel Cousens bdb0fe8020 ecdsa: adds test for detGenK loop 2014-06-26 02:45:02 +10:00
Daniel Cousens 27f58b539e ECKey: remove extraneous toString 2014-06-26 00:52:33 +10:00
Daniel Cousens 776656df8b ecdsa: adhere strictly to RFC6979
The previous impl. was in breach of the following section:

> Please note that when k is generated from T, the result of bits2int is
> compared to q, not reduced modulo q. If the value is not between 1 and
> q-1, the process loops.
> Performing a simple modular reduction would induce biases that would be
> detrimental to signature security.
2014-06-26 00:35:45 +10:00
Daniel Cousens 5c53178c3c tests: avoid pointless toASM in description 2014-06-25 15:47:46 +10:00
Daniel Cousens 13d41f67e9 Script: adds toASM/fromASM 2014-06-25 15:44:15 +10:00
Daniel Cousens 924ecfb998 scripts: add missing test data 2014-06-25 15:20:28 +10:00
Daniel Cousens c637cb4be7 tests: remove unused import 2014-06-24 17:41:08 +10:00
Daniel Cousens 576fbbfff5 scripts: switch to failing to classification tests 2014-06-24 17:31:55 +10:00
Daniel Cousens 62b6a407a6 scripts: break tests down from type structure 2014-06-24 17:30:37 +10:00
Kyle Drake d93623e2b1 Merge pull request #220 from dcousens/canonical
ECSignature: fixes for canonical signatures
2014-06-21 22:49:44 -04:00
Daniel Cousens 63ce1fdfb2 ECSignature: add missing tests for R,S length 2014-06-22 01:19:19 +10:00
Daniel Cousens f4940ccd48 Merge pull request #219 from weilu/utxo
Wallet fee & utxo fixups
2014-06-21 23:50:27 +10:00
Wei Lu 82b1d8fbdc wallet: do not delete pending incoming tx from outputs 2014-06-21 19:21:26 +08:00
Daniel Cousens 53595784e1 ECSignature: fixes for canonical signatures 2014-06-20 15:52:04 +10:00
Wei Lu 79a17d67ec wallet: do not overestimate fees when network has dustSoftThreshold 2014-06-18 21:16:17 +08:00
Daniel Cousens ebe670475e network: moves tests to fixtures 2014-06-18 17:28:28 +10:00
Wei Lu 7e31668b69 wallet: rename utxo.receive to utxo.from 2014-06-18 14:34:53 +08:00
Wei Lu 7e98123ccd wallet.getUnspentOutputs includes the pending field 2014-06-18 14:29:02 +08:00
Wei Lu 5dcefc5329 Network estimateFee tests no longer relies on fixtures 2014-06-17 23:35:40 +08:00
Wei Lu bc3e0770f9 Add fee estimation functions for dogecoin and litecoin 2014-06-17 22:46:18 +08:00
Wei Lu 122b613eaf Move fee estimation into networks.js 2014-06-17 22:43:32 +08:00
Wei Lu 79ec61d085 Fix bitcoin dustThreshold and feePerKb values 2014-06-17 22:41:14 +08:00
Wei Lu 562a492079 Merge pull request #214 from dcousens/txtests
Transaction tests
2014-06-17 22:22:49 +08:00
Daniel Cousens 92da7975e4 Network: use capitalization 2014-06-17 21:08:28 +10:00
Daniel Cousens 8eaf44881a Transaction: improve hash length checking + tests 2014-06-17 20:18:39 +10:00
Daniel Cousens d07cfccbc1 Transaction: move constants to Transaction 2014-06-17 12:26:14 +10:00
Daniel Cousens 4850570955 Transaction: remove untestable assert
Also changes the fromBuffer sanity test to use a clearer message that is
taken from the fixtures.
2014-06-17 12:24:35 +10:00
Daniel Cousens 1b1b550bd6 Transaction: add hash as addInput parameter 2014-06-17 12:23:27 +10:00
Daniel Cousens 0b17c2bc3d Transaction: re-adds getHash as a pure hash 2014-06-17 12:22:13 +10:00
Daniel Cousens 6c9f95c253 Transaction: add sequence parameter to addInput 2014-06-17 12:21:09 +10:00
Daniel Cousens 6ea89eeaae Transaction: data driven tests 2014-06-17 11:55:43 +10:00
Daniel Cousens 1f0a54fb41 ECSignature: rename parsing functions to parse* 2014-06-17 00:26:16 +10:00
Daniel Cousens f42993297c ecurve: upgrade to 0.9.0 2014-06-16 15:47:41 +10:00
Daniel Cousens cfe5436394 ECSignature: use for(it( style for tests 2014-06-16 15:47:41 +10:00
Daniel Cousens 626f8fb220 ECSignature: add tests for scriptSignature 2014-06-16 15:47:41 +10:00
Daniel Cousens eb3d9a25f7 ecdsa: moved all signature encoding to ECSignature 2014-06-16 15:47:41 +10:00
Daniel Cousens c0e5393595 Transaction: remove .outpoint object 2014-06-16 14:21:40 +10:00
Daniel Cousens 569e0d4ff1 Wallet: fix processConfirmedTx tests
These tests were still passing despite being incorrect.
2014-06-16 14:21:40 +10:00
Daniel Cousens 203d6c7116 Transaction: add test for clone 2014-06-16 14:21:40 +10:00
Daniel Cousens d567463588 Transaction: remove estimateFee
This is a wallet abstraction.
2014-06-16 14:21:39 +10:00
Daniel Cousens 009fcb9b82 Transaction: now returns index of added input/output 2014-06-16 14:21:39 +10:00
Daniel Cousens 4f995fcae1 Transaction: tests should show unboxing of parameters 2014-06-16 14:21:39 +10:00
Daniel Cousens 3b3d19974c tests: avoid b2h where toHex exists 2014-06-16 14:21:39 +10:00
Daniel Cousens 66636f56bb Transaction: test hex formatting 2014-06-16 14:21:39 +10:00
Daniel Cousens 6ac3803483 Transaction: move test to proper section 2014-06-16 14:21:39 +10:00
Daniel Cousens 3b6f0bb9b3 Transaction: fix test name 2014-06-16 14:21:39 +10:00
Daniel Cousens f85792ba22 Transaction: remove address from txOut 2014-06-16 14:21:39 +10:00
Daniel Cousens 5551c38812 Transaction: use hash Buffer instead of hex string 2014-06-16 14:21:39 +10:00
Daniel Cousens bdc7131d0e Transaction: renames getHash to getId
In turn also removes the inherent calculation of tx.hash after deserialization.
2014-06-16 14:21:39 +10:00
Daniel Cousens 867465a03f Transaction: support non-addressable output scripts 2014-06-16 14:21:38 +10:00
Daniel Cousens 5bd636cab7 Transaction: remove TxIn/TxOut from API 2014-06-16 14:21:38 +10:00
Daniel Cousens a6b9dd9473 Transaction: remove hash:index notation 2014-06-16 14:21:38 +10:00
Daniel Cousens 8b5647b0b9 Transaction: remove TxIn/TxOut exports 2014-06-16 14:21:38 +10:00
Daniel Cousens b0317be4d5 tests: formatting 2014-06-16 14:21:38 +10:00
Daniel Cousens 9b89a267ca scripts: remove unused imports 2014-06-15 00:40:28 +10:00
Daniel Cousens 576d5dfa3f Scripts: move test data to fixtures 2014-06-15 00:40:28 +10:00
Daniel Cousens 1a41ea8801 ecdsa: add more extensive tests for recoverPubKey 2014-06-15 00:40:21 +10:00
Daniel Cousens 4f8040f8d4 ecdsa: add invalid test fixtures for recoverPubKey 2014-06-15 00:40:21 +10:00
Daniel Cousens ee66c41dd4 message: add missing test for Address 2014-06-15 00:40:20 +10:00
Wei Lu 8e00eb6855 Merge branch 'scriptclean'
Conflicts:
	test/wallet.js
2014-06-14 10:31:19 +08:00
Daniel Cousens 07a0beee90 tests: remove unnecessary linebreaks 2014-06-14 10:08:51 +10:00
Daniel Cousens 38a2475bf5 scripts: adds example multisig inputScript 2014-06-14 01:01:11 +10:00
Daniel Cousens 553ade1208 network: always use lowercase 2014-06-14 00:39:25 +10:00
Daniel Cousens b68b1d5da4 Script: fixes pubKeyInput and adds a test 2014-06-14 00:39:25 +10:00
Daniel Cousens 7e5af52cd1 Transaction: mass rename from SPK/SS to Input/Output
I think it is important we maintain some reasoning that an Input script
is actually a script signature, but in the end, these names are more
coherent and understandable when reasoning with our code.  So I think
its OK we break tradition with bitcoind.
2014-06-13 11:36:31 +10:00
Daniel Cousens 41c3b68293 templates: rename to scripts 2014-06-13 10:52:07 +10:00
Daniel Cousens be29f50457 Address: fix consistent casing 2014-06-13 10:52:07 +10:00
Daniel Cousens 00cec9ce64 Script: move all templates to templates.js 2014-06-13 10:52:07 +10:00
Daniel Cousens aded938ab6 Script: check hex not template result 2014-06-13 10:52:07 +10:00
Daniel Cousens 4e04eea436 Script: use fromChunks internally for all Script templates 2014-06-13 10:49:52 +10:00
Daniel Cousens 9a72c7437b Script: adds Script.EMPTY constant 2014-06-13 10:49:08 +10:00
Wei Lu f53e35ed28 wallet: delete utxo instead of marking it as spend 2014-06-12 16:48:01 +08:00
Wei Lu d265b53b03 wallet: processTx -> processConfirmedTx, processPendingTx 2014-06-12 16:47:46 +08:00
Wei Lu e064e9d29d wallet.createTx ignores pending utxo 2014-06-12 13:11:28 +08:00
Wei Lu 660c95483d wallet.processTx accepts isPending flag and passes it on to output 2014-06-12 12:56:50 +08:00
Daniel Cousens e21939bad5 ecpubkey: removed unnecessary alias 2014-06-10 18:36:00 +10:00
Daniel Cousens 4ce9015f3b use ecurve instead of custom ec 2014-06-10 17:58:13 +10:00
Daniel Cousens f20ffec8b3 tests: always use for, it testing style 2014-06-07 19:46:06 +10:00
Daniel Cousens 61b4216afb script: fix capitalization in test fixture 2014-06-07 19:34:09 +10:00
Daniel Cousens eb3a6bcb31 all: rename D to d as per SEC convention 2014-06-07 18:24:16 +10:00
Kyle Drake 6b55ab4d04 Merge pull request #189 from coinpunk/remove-untested-curves
Remove untested EC curves
2014-06-06 14:58:12 -07:00
Kyle Drake 9b5dfbd865 Merge pull request #206 from dcousens/base58rework
Base58 Check rework
2014-06-04 16:54:18 -07:00
Daniel Cousens 4c6385e0d2 integration: use ScriptPubKey for Address 2014-06-05 00:06:28 +10:00
Daniel Cousens 2b563ec55a integration: fix invalid use of network object 2014-06-05 00:06:07 +10:00
Daniel Cousens 943621f466 Address/HDNode: fix test descriptions 2014-06-04 15:46:40 +10:00
Daniel Cousens 27f9e7dc1e convert: remove reverseEndian 2014-06-04 15:46:40 +10:00
Daniel Cousens 8433d73d06 convert: use Buffers and add more tests 2014-06-04 15:46:40 +10:00
Daniel Cousens 28dc390377 EC/Key: use network object consistently 2014-06-04 15:23:40 +10:00
Daniel Cousens d39662e375 Base58check: no longer encodes version separately 2014-06-04 15:23:37 +10:00
Wei Lu 63e6cf987f Merge pull request #203 from dcousens/hdwallettests
HDWallet tests and strict constructor
2014-06-04 13:05:15 +08:00
Daniel Cousens 6a73bc02f5 HDNode: rename priv/pub to privKey/pubKey 2014-06-03 19:54:58 +10:00
Daniel Cousens dca193be4e HDNode: adds neutered test examples 2014-06-03 19:54:15 +10:00
Daniel Cousens 64e307b13f HDWallet: rename to HDNode 2014-06-03 17:08:42 +10:00
Daniel Cousens c340f5cf83 HDWallet: now export all information by default 2014-06-03 17:04:05 +10:00
Daniel Cousens dca284a131 HDWallet: rename derivePrivate to deriveHardened 2014-06-03 17:04:05 +10:00
Daniel Cousens 29fbbaa58d HDWallet: adds Public -> public tests 2014-06-03 16:21:20 +10:00
Daniel Cousens 99bb69bf20 HDWallet: moves hardened info to test data more explicitly 2014-06-03 16:12:36 +10:00
Wei Lu c76d3cef37 Merge pull request #202 from dcousens/ecneg
ECKey -D test and light cleanup
2014-06-03 13:38:25 +08:00
Daniel Cousens 938c43649d HDWallet: remove unnecessary Base58 context on fromBuffer tests 2014-06-01 16:48:41 +10:00
Daniel Cousens 4cec42a8d8 HDWallet: add to/fromHex tests 2014-06-01 16:42:54 +10:00
Daniel Cousens 260705a24a HDWallet: consistent test data ordering
Also adds network parameter for later moving the network specific tests
to be data driven.
2014-06-01 16:42:01 +10:00
Daniel Cousens 0e61f41a52 HDWallet: fix test data descriptions 2014-06-01 16:41:44 +10:00
Daniel Cousens 533d61380a HDWallet: improve testing coverage 2014-06-01 16:41:42 +10:00
Daniel Cousens e8e862f632 HDWallet: adds PubKey validation 2014-05-31 20:40:57 +10:00
Daniel Cousens 759aeb9abc HDWallet: remove repeated assertion 2014-05-31 20:40:57 +10:00
Daniel Cousens c0006c299f HDWallet: use new constructor 2014-05-31 20:40:57 +10:00
Daniel Cousens 58dd86bda1 HDWallet: moves fromBuffer tests to data driven style 2014-05-31 15:44:06 +10:00
Daniel Cousens 799b69eb1e HDWallet: use assert.throws 2014-05-31 15:44:06 +10:00
Daniel Cousens 749943cb4e HDWallet: clarify test intention 2014-05-31 15:21:18 +10:00
Daniel Cousens 2b2081bed9 base58check: buffers only, remove explicit 0
Undefined is treated as zero if it ever gets to this point anyway, so no
value is added by having this default param here.

A test fixture to verify this behaviour is added.
2014-05-31 15:05:33 +10:00
Daniel Cousens 77ed66b24d ECKey: ensure throw is from ECKey 2014-05-31 15:05:33 +10:00
Daniel Cousens 978f0c5406 ECKey: adds test to ensure throws on negative D 2014-05-31 15:05:33 +10:00
Daniel Cousens 3bce535e36 Wallet: use assert for consistency 2014-05-31 14:28:16 +10:00