Commit Graph

615 Commits

Author SHA1 Message Date
Daniel Cousens
ab55417d6d ecdsa: fix interval comment
Actual range as per the RFC is [1, q - 1], the code adheres to this.
2014-06-26 01:50:52 +10:00
Daniel Cousens
08876fc065 ecdsa: ecurve 0.10.0 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
13d41f67e9 Script: adds toASM/fromASM 2014-06-25 15:44:15 +10:00
Daniel Cousens
7e85515e37 opcodes: prefer OP_0 2014-06-25 15:42:16 +10:00
Daniel Cousens
8b1e2c5e1e scripts: recursive scriptHash no longer problematic 2014-06-24 17:47:56 +10:00
Daniel Cousens
daa2cb7daa scripts: fix classification logic 2014-06-24 17:32:23 +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
a5a9a96ba2 ECSignature: compress assertion statement 2014-06-22 01:11:49 +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
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
Daniel Cousens
77b68a52a6 network: testnet should use testnet 2014-06-18 01:39:08 +10:00
Wei Lu
c4285d9da2 Network specific constants reference the latest tags 2014-06-17 22:48:35 +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
45a72416c9 wallet: Move dust and fee per kb into networks.js 2014-06-17 22:38:03 +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
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
eb3d9a25f7 ecdsa: moved all signature encoding to ECSignature 2014-06-16 15:47:41 +10:00
Daniel Cousens
c5252fc509 Transaction: amend confusing exception message 2014-06-16 15:44:27 +10:00
Daniel Cousens
c0e5393595 Transaction: remove .outpoint object 2014-06-16 14:21:40 +10:00
Daniel Cousens
2a267b62e6 jshint: remove unused variables 2014-06-16 14:21:40 +10:00
Daniel Cousens
d8fdd50950 Transaction: remove TxIn/TxOut 2014-06-16 14:21:40 +10:00
Daniel Cousens
b5268465db Transaction: remove TxIn/TxOut clone 2014-06-16 14:21:39 +10:00
Daniel Cousens
a17208a549 Transaction: rename key to privKey and standardize type check 2014-06-16 14:21:39 +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
8e5fdb78a8 Transaction: rename type to hashType 2014-06-16 14:21:39 +10:00
Daniel Cousens
a2d581dec5 Transaction: rename script -> prevOutScript 2014-06-16 14:21:39 +10:00
Daniel Cousens
7f9711ef9b Transaction: restrict Transaction constructor 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
2f56e63491 Wallet: avoid transaction inspection when signing 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
1f2becbb45 Transaction: move all constants to top 2014-06-16 14:21:38 +10:00
Daniel Cousens
40f0c91162 Transaction: use TxIn/TxOut consistently 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
e49e1796d5 Transaction: remove untested TransactionIn constructor params 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
402fa0d85d ecdsa: amend recoverPubKey SEC comments 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
8c5c0a13a6 Transaction: remove untested (and broken) functionality 2014-06-15 00:40:21 +10:00
Daniel Cousens
55ff383c7b Wallet: remove superfluous false parameter
This parameter is unnecessary.
The use of `false` causes the default parameter to be used instead; even though the absence of such would also cause said behaviour to occur.
2014-06-15 00:38:21 +10:00
Wei Lu
8e00eb6855 Merge branch 'scriptclean'
Conflicts:
	test/wallet.js
2014-06-14 10:31:19 +08: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
9d5d18b2d8 Scripts: adds assertion for enforcing a Script input 2014-06-13 16:40:03 +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
5a96df1ec1 Script: stop jshint complaining about missing-assignment 2014-06-13 11:09:21 +10:00
Daniel Cousens
8929c51d98 Script: remove clone 2014-06-13 10:52:07 +10:00
Daniel Cousens
41c3b68293 templates: rename to scripts 2014-06-13 10:52:07 +10:00
Daniel Cousens
de1571647a Script: early exit in chunk.reduce 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
91bb25c00c Script: re-order functions to project order
Removes Script.parseChunks and merges it into Script.fromBuffer
2014-06-13 10:52:04 +10:00
Daniel Cousens
3521584b3a Script: parseChunks now uses bufferutils 2014-06-13 10:49:54 +10:00
Daniel Cousens
005ca31fb3 Transaction: remove unnecessary clone 2014-06-13 10:49:54 +10:00
Daniel Cousens
323f0612d0 Transaction: remove unnecessary Buffer copy 2014-06-13 10:49:53 +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
4ce9015f3b use ecurve instead of custom ec 2014-06-10 17:58:13 +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
Wei Lu
4d35d0cf08 Merge pull request #205 from dcousens/jshint
JSHint and fixes
2014-06-04 16:10:03 +08:00
Daniel Cousens
42e7197c46 ec: define on use 2014-06-04 16:20:51 +10:00
Daniel Cousens
dc3d9aec65 ec: compare strictly against null 2014-06-04 16:20:51 +10:00
Daniel Cousens
525b053e39 ec: remove semi-colons 2014-06-04 16:17:45 +10:00
Daniel Cousens
79c7b68d35 ec: white space fixes
It is advised to use ?w=0 in comparing this commit.
2014-06-04 16:04:34 +10:00
Daniel Cousens
27f9e7dc1e convert: remove reverseEndian 2014-06-04 15:46:40 +10:00
Daniel Cousens
3b988a0872 convert: use Buffer internally and remove unused functions 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
f5005299d1 JSHint: remove defined but never used 2014-06-04 15:46:24 +10:00
Daniel Cousens
e735a9182b ec: use x1/x2, y1/y2 variables
No logic change, just using the variables that are defined instead of
repeating code.
2014-06-04 15:46:24 +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
ee04826464 HDNode: clearer branch comments 2014-06-04 14:47:39 +10:00
Daniel Cousens
56a88b8a70 HDNode: shorten comment for Q validation 2014-06-04 14:36:19 +10:00
Daniel Cousens
22f1dee65b HDNode: remove unnecessary slice operation 2014-06-04 14:36:06 +10:00