Daniel Cousens
ec66ca9b1a
bufferutils/script: allow for invalid pushDatInts, fixes #367
2015-03-04 20:48:28 +11:00
Daniel Cousens
bcf8d0177d
TxBuilder: fix OP_0 in buildComplete
2015-03-03 10:04:24 +11:00
Daniel Cousens
af3491822e
scripts: multisigInput only uses scriptPubKey for validation, OP_0 validation not necessary
2015-03-03 09:53:57 +11:00
Daniel Cousens
4668cb1f95
TxBuilder: simplify addInput
2015-03-02 18:10:05 +11:00
Daniel Cousens
7f3b4c93ba
TxBuilder: move param coercion from Transaction to TxBuilder
2015-03-02 17:51:14 +11:00
Daniel Cousens
5beee20038
bufferutils: add equal
2015-03-02 17:32:20 +11:00
Daniel Cousens
8d3686d046
remove deprecated functionality
2015-03-02 17:27:16 +11:00
Daniel Cousens
08cc8f8621
crypto: remove Hmac* exposure in API
2015-03-02 15:33:39 +11:00
Daniel Cousens
bdb372da7d
rename Message to message
2015-03-02 14:09:19 +11:00
Daniel Cousens
5f8484645d
remove base58check
...
Use bs58check package solely from here on.
2015-03-02 14:02:47 +11:00
Daniel Cousens
0bba21546f
various: more standard-format artifact fixes
2015-03-02 13:50:49 +11:00
Daniel Cousens
8aa4f9ecc9
ecdsa/ecpubkey: rectify #364 artifacts
2015-03-02 13:25:09 +11:00
Daniel Cousens
399803affa
use standardjs formatting
2015-02-24 12:45:38 +11:00
Daniel Cousens
9daf937e93
tests: add API consistency and tests for #366
2015-02-24 12:23:31 +11:00
Daniel Cousens
49050f9d26
Merge pull request #366 from Sjors/hdnode
...
Allow constructing HDNode from an ECPubKey.
2015-02-24 12:15:47 +11:00
Daniel Cousens
1da8297f3c
Merge pull request #363 from bitcoinjs/coinbase
...
Coinbase Transaction parsing
2015-02-23 09:10:48 +11:00
Sjors Provoost
8a38a24b9f
Allow constructing HDNode from an ECPubKey.
2015-02-20 17:25:44 -05:00
Daniel Cousens
50dab3b6bf
block: use Transaction.fromBuffer
2015-02-19 18:59:56 +11:00
Daniel Cousens
23bae5748e
Transaction: fix coinbase script handling
2015-02-19 12:51:25 +11:00
Daniel Cousens
dc253bb77c
Transaction: extract Script size calculations
2015-02-19 12:32:05 +11:00
Daniel Cousens
49345748bb
Transaction: add isCoinbaseHash static method
2015-02-19 12:15:27 +11:00
Daniel Cousens
f13650544b
Transaction: add internal flag to disable size assertion
2015-02-19 12:03:43 +11:00
Daniel Cousens
c9826221fb
scripts: catch error in Script.fromBuffer
2015-02-16 02:39:57 +11:00
Daniel Cousens
73bf8a42ea
TxBuilder: hashtype only relevant to things we can sign
2015-02-13 13:18:29 +11:00
Daniel Cousens
4ef2c19d71
TxBuilder: defer mutation further, but still catch non-standards
2015-02-13 13:18:29 +11:00
Daniel Cousens
a788214921
TxBuilder: fix undefined scriptSig
...
Fixed and typeForce used to enforce this wont happen again in future.
2015-02-13 13:18:28 +11:00
Daniel Cousens
3a371fccec
TxBuilder: remove initialized field from signature inputs
2015-02-13 13:18:28 +11:00
Daniel Cousens
fd2311bda4
TxBuilder: remove impossible/untestable assertions
2015-02-13 13:18:28 +11:00
Daniel Cousens
986e9d4710
TxBuilder: vout is actually vin for addInput
2015-02-13 13:18:28 +11:00
Daniel Cousens
c7c58307f0
TxBuilder: avoid unnecessary assertion, already done in classification
2015-02-13 13:18:28 +11:00
Daniel Cousens
e33a6409d3
TxBuilder: add explanation for prevOutScript branch
2015-02-13 13:18:28 +11:00
Daniel Cousens
b55e3a0245
TxBuilder: missing redeemScript not an issue if already added
...
If the input is initialized, we already have the redeemScript, no need
to pass it in again
2015-02-13 13:18:28 +11:00
Daniel Cousens
8a8f40e903
TxBuilder: defer mutation as long as possible
2015-02-13 13:18:28 +11:00
Daniel Cousens
085b813958
TxBuilder: replace switch lookup with object lookup
2015-02-13 13:18:28 +11:00
Daniel Cousens
5f761113cc
tests: if description undefined, use exception
2015-02-13 13:18:28 +11:00
Daniel Cousens
23a37fb771
TxBuilder: fix out-of-order multisignature signing
2015-02-13 13:18:28 +11:00
Daniel Cousens
4c9fd6010e
TxBuilder: fix failing test for non-standard/multisig inputs
...
Instead of failing in `fromTransaction`, TxBuilder will now only fail in
`sign` if you attempt to sign a non-standard input.
Transactions with non-standard inputs can only be built with
buildIncomplete() (for now).
2015-02-13 13:18:26 +11:00
Daniel Cousens
b048627a59
tests: move TxBuilder.sign tests to fixtures
2015-02-13 13:18:00 +11:00
Daniel Cousens
b629a03c98
TxBuilder: rename prevOutMap to prevTxMap
2015-02-13 13:18:00 +11:00
Daniel Cousens
dfe74fa0d2
TxBuilder: sign now signs inputs in known publicKey order
2015-02-13 13:17:57 +11:00
Daniel Cousens
c29b233744
TxBuilder: build convenience functions don't need extra line breaks
2015-02-13 13:01:30 +11:00
Daniel Cousens
ba97b5ee34
TxBuilder: re-order to avoid mutation in case of failure
2015-02-13 13:01:01 +11:00
Daniel Cousens
ebe34db8df
TxBuilder: avoid var redeclaration due to hoisting
2015-02-13 13:01:01 +11:00
Daniel Cousens
46db11e04a
TxBuilder: extract isCoinbaseHash function
2015-02-13 13:01:01 +11:00
Daniel Cousens
906accdc0f
TxBuilder: extract extractSignatures to free function
2015-02-13 13:00:57 +11:00
Daniel Cousens
f8b9a5f2c3
Merge pull request #356 from bitcoinjs/htenforce
...
ECSignature: enforce valid hashType in toScriptSignature
2015-02-13 12:00:21 +11:00
Daniel Cousens
18fb33d433
Merge pull request #354 from bitcoinjs/wipscript
...
scripts: add allowIncomplete for multisig scripts
2015-02-13 11:48:56 +11:00
Daniel Cousens
c35d4b46c5
scripts: add allowIncomplete for multisig scripts
2015-02-12 19:50:00 +11:00
Daniel Cousens
c9db90dc4d
ECSignature: enforce valid hashType in toScriptSignature
2015-02-05 16:30:00 +11:00
Daniel Cousens
c13f1df9bf
doc: no section headers
2015-02-05 16:29:37 +11:00
Daniel Cousens
a529b3fa0b
TxBuilder: copy version/locktime in fromTransaction
2015-01-23 16:35:09 +11:00
Daniel Cousens
59143a9c85
ecdsa: clarify why typeForce call is disabled until 2.0.0
2015-01-09 09:10:18 +11:00
Daniel Cousens
6938c8f8cc
ecdsa: add default checkSig, to be removed in 2.0.0
2015-01-06 15:12:34 +11:00
Daniel Cousens
e9778ae358
ecdsa: fixes edge case presented in #336
2015-01-04 12:46:37 +11:00
Daniel Cousens
4c61380fa5
ecdsa: add comment for Step A
2015-01-04 12:29:01 +11:00
Daniel Cousens
0524ced984
scripts: enforce pubKeys as type ECPubKey
2014-12-23 15:30:16 +11:00
Daniel Cousens
e42c497a3c
package: use typeforce
2014-12-23 15:08:20 +11:00
Bez Reyhan
044c53bcad
transaction.addInput checks if sequence is NULL
2014-12-15 18:58:08 -08:00
Daniel Cousens
a66773b5f5
tests/integration: add HDNode private key recovery example
2014-12-08 12:02:58 +11:00
Daniel Cousens
7ef134436e
ecdsa/HDNode: use node crypto for Hmacs
2014-12-08 11:24:16 +11:00
Daniel Cousens
f3ddc508f1
crypto: add deprecation warnings
2014-12-08 11:13:42 +11:00
Daniel Cousens
083e8fa630
index: expose Block
2014-12-02 15:15:58 +11:00
Daniel Cousens
6ed8e15b63
transaction/builder: s/txin/txIn/g
2014-12-02 14:21:13 +11:00
Daniel Cousens
b6017b0fae
HDNode: move isPrivate logic
2014-12-01 10:46:49 +11:00
Daniel Cousens
311df7e406
HDNode: add optional network flag to import functions
2014-12-01 10:46:48 +11:00
Wei Lu
b1cb56ce00
Merge pull request #322 from bitcoinjs/scriptexp
...
Script Is* functions
2014-11-30 13:38:15 +08:00
Daniel Cousens
a8459818e3
HDNode: avoid walking bip32 object
2014-11-29 11:31:34 +11:00
Daniel Cousens
4fe0b34f27
Address: no need to check other script types
2014-11-28 13:54:42 +11:00
Daniel Cousens
f8f459dda8
scripts: add dataOutput deprecation
2014-11-28 13:51:46 +11:00
Daniel Cousens
e4eb743cf9
scripts: expose is* classifiers
2014-11-28 13:51:45 +11:00
Daniel Cousens
62e86e0dc1
scripts: s/dataOutput/nullDataOutput/
2014-11-28 13:39:00 +11:00
Daniel Cousens
b6b5b568c3
block: re-order functions to project standard
2014-11-28 10:36:04 +11:00
Daniel Cousens
9897fa2876
block: adds getUTCDate function
2014-11-28 10:35:59 +11:00
Daniel Cousens
2214ccfdd8
bufferutils: add varIntBuffer
2014-11-28 10:35:53 +11:00
Daniel Cousens
c0c47f076a
add block.js and tests
2014-11-28 10:35:53 +11:00
Daniel Cousens
c00be27192
networks: prioritize bitcoin/testnet
2014-11-27 16:30:51 +11:00
Daniel Cousens
78d26c2e26
Wallet: add 2.0.0 deprecation message
2014-11-25 14:57:51 +11:00
Julian Yap
5ee3203473
Add Jumbucks support
2014-11-16 02:29:55 -10:00
Daniel Cousens
5b6249e6f9
Merge pull request #310 from johngame/master
...
Added Gamerscoin Support
2014-11-10 18:54:30 +11:00
Wei Lu
787215e5da
Merge pull request #309 from bitcoinjs/txstring
...
Transaction function re-order
2014-11-09 10:03:06 +08:00
Jonygame
4283fc26f8
Added Gamerscoin Support
2014-10-24 19:30:38 +02:00
Daniel Cousens
a3a4d2a0d9
Transaction: re-order functions for consistency
2014-10-24 13:58:32 +11:00
Daniel Cousens
ea66edeb5c
scripts: add dataOutput convenience function
2014-10-19 12:30:21 +11:00
Daniel Cousens
2234e496d1
Transaction: simplify fromBuffer verbosity
2014-10-17 14:16:07 +11:00
Daniel Cousens
062540e3d9
Transaction: optional script for addInput
2014-10-17 14:16:07 +11:00
Daniel Cousens
9510af10e3
EC*Key: add .curve static property for public API
2014-10-16 01:25:39 +11:00
Daniel Cousens
27a3230662
base58check: fix wrapper and tests
2014-10-15 22:36:10 +11:00
Daniel Cousens
7f5b4b791b
index: fix base58check path
2014-10-15 22:10:46 +11:00
Daniel Cousens
395ef6ed85
base58check: add deprecation warnings
2014-10-15 19:42:05 +11:00
Daniel Cousens
307ceb9026
HDNode: use === over ==
2014-10-15 19:08:39 +11:00
Daniel Cousens
ef1eb04905
HDNode: move var declaration out of branches
2014-10-15 19:07:22 +11:00
Daniel Cousens
561f52b207
index: re-expose base58check until 2.0.0
2014-10-15 18:04:57 +11:00
Daniel Cousens
ddb24ee615
scripts: check chunks length properly
2014-10-14 16:59:26 +11:00
Daniel Cousens
b65e70b29c
scripts: remove explict else branch
2014-10-14 16:59:26 +11:00
Daniel Cousens
1a20c0db39
scripts: avoid unnecessary this context
2014-10-14 16:59:26 +11:00
Daniel Cousens
b7febc1bd8
scripts: re-order classify functions
2014-10-14 16:59:26 +11:00
Daniel Cousens
407d15869a
scripts: s/opcodes/ops
2014-10-14 16:59:26 +11:00
Daniel Cousens
bc2048dfca
scripts: remove out-of-date comments
2014-10-14 16:59:26 +11:00
Daniel Cousens
7e897a5105
Merge pull request #289 from weilu/loose-instanceof
...
loose instanceof: check constructor function name instead
2014-10-13 12:07:31 +11:00
Daniel Cousens
10630873eb
tests: add tests for ecdsa.verify
2014-10-11 13:47:32 +11:00
Daniel Cousens
98bc1685b3
message: remove unnecessary verbosity
2014-10-10 19:24:16 +11:00
Daniel Cousens
1b57f0871d
message: remove duplicate require
2014-10-10 19:23:42 +11:00
Wei Lu
b55b10c6b6
types: replace Function.name with an IE compatible alternative
2014-10-08 09:26:45 -07:00
Wei Lu
eb4e8884d9
loose instanceof: check constructor function name instead
2014-10-07 00:23:53 -07:00
Daniel Cousens
967e724b47
types: remove JSPerf references
2014-10-07 16:57:49 +11:00
Daniel Cousens
01a96e887c
types: use the idiomatic equivalents
2014-10-07 16:50:37 +11:00
Daniel Cousens
deaf06b350
Wallet: use enforceType where applicable
2014-10-05 15:43:14 +11:00
Daniel Cousens
35542e115d
types: enforce consistent type checking
2014-10-05 15:36:25 +11:00
wmcbain
de1755307a
Added Zetacoin support
...
Added support for zetacoin
2014-09-25 07:45:54 -04:00
Wei Lu
6cd8fc3fe0
Merge pull request #282 from dcousens/nobuff
...
Deprecate Buffer interop in preparation for 2.0.0
2014-09-22 20:50:49 +08:00
Daniel Cousens
a58088795f
HDNode: indicate 2.x.y removal of Buffer interop
2014-09-20 11:38:18 +10:00
Daniel Cousens
c96b862530
crypto: remove cryptojs
2014-09-20 11:00:34 +10:00
Daniel Cousens
f028dfffa9
Wallet: fix missing variable utxo
2014-09-08 23:15:53 +10:00
Daniel Cousens
4e04a7e883
Transaction: use isFinite over Number.isFinite
2014-09-08 23:15:53 +10:00
Daniel Cousens
6c5a68207a
Transaction: use isFinite instead over typeof number
2014-09-08 18:42:47 +10:00
BtcDrak
c41c3bb62d
Add viacoin support
2014-09-06 17:59:13 +01:00
Wei Lu
cc98600154
Merge pull request #262 from dcousens/wallref
...
processTx considered harmful followup
2014-09-06 22:25:43 +08:00
Daniel Cousens
1d0fd3e9a4
TxBuilder: add more failing cases and error handling
2014-08-31 14:43:35 +10:00
Daniel Cousens
e1479b6fa5
scripts: add error for >n signatures with multisig
2014-08-30 13:13:12 +10:00
Daniel Cousens
8d5ef2dd06
TxBuilder: limit signatures depending on scriptType
2014-08-30 13:13:12 +10:00
Daniel Cousens
b3438c5ef2
Transaction: throw if sequence is not a number
2014-08-30 12:51:29 +10:00
Daniel Cousens
aa80bde815
TxBuilder: avoid unnecessary recalculation of prevOutScript data
2014-08-30 12:47:00 +10:00
Daniel Cousens
e2357c09ce
TxBuilder: fix invalid txin.index usage for non-zero vin inputs
2014-08-30 12:10:02 +10:00
Daniel Cousens
b727a65ea0
Wallet: refactor to use Array unspents solely, deprecating unspentsMap
2014-08-27 12:37:13 +10:00
Daniel Cousens
06f13db8d7
Wallet: rename outputs to unspentsMap
2014-08-27 12:37:13 +10:00
Daniel Cousens
d24fdef585
Wallet: consistent variable naming
2014-08-27 12:37:13 +10:00
Daniel Cousens
02e71e430c
Wallet: revert 2f00c9a
2014-08-27 12:37:13 +10:00
Daniel Cousens
71d4c78b88
bufferutils: add Buffer reverse
2014-08-27 12:37:11 +10:00
Daniel Cousens
33955a7fb5
Wallet: store txHash, vout separately instead of "from: txid:vout"
2014-08-26 18:37:44 +10:00
Daniel Cousens
735feab7ba
Wallet: remove txId:index storage for spent outputs
2014-08-26 18:37:43 +10:00
Wei Lu
43d135c4b3
Merge pull request #266 from dcousens/mesb64
...
Message: allow base64 strings as input
2014-08-21 19:35:09 +08:00
Daniel Cousens
b66e53d1e7
Transaction: add comment to explain -1 on add*
2014-08-20 10:41:23 +10:00
Daniel Cousens
4b52c42c91
Message: allow base64 strings as input
2014-08-20 09:14:04 +10:00
Daniel Cousens
22f8c8aa4a
TxBuilder: re-order functions to project standard
2014-08-18 08:59:26 +10:00
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
7f62069d82
TxBuilder: add sequence number passthrough
2014-08-18 08:54:46 +10:00
Daniel Cousens
418a56cbdc
index: add TransactionBuilder
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
14211b5f3e
TxBuilder: sign after error checking
2014-08-18 08:54:46 +10:00
Daniel Cousens
26b028adcf
Wallet: use TxBuilder instead
2014-08-18 08:54:45 +10:00
Daniel Cousens
4e3a6c9557
TxBuilder: use build/buildIncomplete over boolean
2014-08-18 08:54:45 +10:00
Daniel Cousens
377b815417
TxBuilder: transform all signatures once
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
897bbf4eb4
Wallet: assign indexOf in the same step
2014-08-16 17:26:27 +10:00
Daniel Cousens
9620b68fe2
Wallet: use __processTx over a free function
...
The use of bind in this case wasn't idiomatic.
2014-08-16 17:26:27 +10:00
Daniel Cousens
300facf7aa
Wallet: use === when comparing with undefined
2014-08-16 17:26:27 +10:00
Daniel Cousens
4bb7f5b56d
Wallet: use indexOf explicitly over include*
2014-08-16 17:26:27 +10:00
Wei Lu
e55676cf8e
Wallet: remove unncessary comments
2014-08-16 14:27:12 +08:00
Wei Lu
00d58604a4
Wallet: move getPrivateKeyForAddress to prototype
...
also, move the assert to the end to simplify the logic
2014-08-16 14:24:24 +08:00
Wei Lu
2b4d94cd92
Wallet: move processPendingTx & processConfirmedTx to prototype
...
also, move processTx out of Wallet scope
2014-08-16 14:19:19 +08:00
Daniel Cousens
c13177bb29
Wallet: rename masterkey to masterKey
2014-08-14 17:29:14 +10:00
Daniel Cousens
6df785bb65
Wallet: move createTx to prototype
2014-08-14 11:17:12 +10:00
Daniel Cousens
7fd41fae4a
Wallet: move most instance methods to prototype
2014-08-14 11:17:12 +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
abc3e6c715
Wallet: move estimatePaddedTxFee out of Wallet scope
2014-08-14 11:00:29 +10:00
Daniel Cousens
8b3470e8ca
Wallet: move all free functions out of Wallet scope
2014-08-14 11:00:29 +10:00
Daniel Cousens
d618aa9822
Wallet: deprecates newMasterKey
2014-08-14 11:00:18 +10:00
Daniel Cousens
6b429493f8
hdnode: add deprecation message for isPrivate
2014-07-30 18:04:25 +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
8297e1b0fc
ecdsa: add further (missing) annotations from 1.4.x
2014-07-30 15:10:38 +10:00
Daniel Cousens
804c542c40
ecdsa: add SEC annotations for verify
2014-07-30 15:04:45 +10:00
Daniel Cousens
be3ce88a3a
ecdsa: enforce positive integers
2014-07-29 23:45:25 +10:00
Daniel Cousens
04bcbadc77
transaction/ecdsa: remove unused imports
2014-07-29 02:06:17 +10:00
Daniel Cousens
8e0c835919
package: use crypto-browserify 3.0.0
2014-07-28 13:51:30 +10:00
Daniel Cousens
c2e7840c4f
Transaction: adds assert for invalid value type
2014-07-16 17:53:38 +10:00
Daniel Cousens
d168bbda43
HDNode: missing space in assertion message
2014-07-15 17:42:04 +10:00
Daniel Cousens
a90a8e061e
Transaction: add assertion that scriptPubKey exists
2014-07-11 19:18:27 +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
656de37fc0
ECSignature: avoid multiple push/unshift operations
2014-07-10 14:22:33 +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
Daniel Cousens
886bdee947
scripts: remove unused 2nd argument in function call
2014-06-30 01:06:43 +10: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
f0370ef46f
crypto: use latest crypto-browserify
2014-06-26 19:26:54 +10:00
Daniel Cousens
9d2784a441
crypto: add RIPEMD160 tests
2014-06-26 19:26:21 +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
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
Daniel Cousens
15cc03a57f
HDNode: removed unused variable
2014-06-04 13:57:44 +10:00
Daniel Cousens
9f798ef2c3
HDWallet: adds missing hd declaration
...
Only a problem if "use strict" is enforced
2014-06-03 21:02:18 +10:00
Daniel Cousens
6a73bc02f5
HDNode: rename priv/pub to privKey/pubKey
2014-06-03 19:54:58 +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
48503f252c
HDWallet: move toBase58
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
91b8833e52
HDWallet: rename local priv to isPrivate
2014-06-03 16:10:13 +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
4cec42a8d8
HDWallet: add to/fromHex tests
2014-06-01 16:42:54 +10:00
Daniel Cousens
3f24e87c54
HDWallet: more explicit branch for parentFingerprint
2014-06-01 16:07:22 +10:00
Daniel Cousens
e8e862f632
HDWallet: adds PubKey validation
2014-05-31 20:40:57 +10:00
Daniel Cousens
708e27aa2d
HDWallet: extract BIP32 params search function
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
ac9e259fcd
HDWallet: remove getKeyVersion
2014-05-31 18:53:39 +10:00
Daniel Cousens
02f5fceda7
HDWallet: remove unused imports
2014-05-31 18:53:11 +10:00
Daniel Cousens
77d4325d4b
base58: cleanup variable names
...
The encode/decode functions are also now similar syntactically.
2014-05-31 15:05:34 +10:00
Daniel Cousens
61c57adbf8
Address: Expected T, got PARAM for Buffer assertion
2014-05-31 15:05:33 +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
baec325e6f
base58: use signum over compareTo
2014-05-31 15:05:33 +10:00
Daniel Cousens
5f88cb8931
ECKey: use signum over compareTo
2014-05-31 15:05:33 +10:00
Daniel Cousens
3bce535e36
Wallet: use assert for consistency
2014-05-31 14:28:16 +10:00
Daniel Cousens
b9bdf21cbe
bufferutils: use verifuint for 64 bit integers
...
Taken from browserify-buffer.
Also adds a few more tests to assert this is working correctly from both
read and write perspectives.
The assertion in for writePushDataInt in the 32 bit case was
unnecessary as that is handled by buffer.writeUInt32LE anyway.
2014-05-31 14:24:43 +10:00
Daniel Cousens
80da2ed2d5
HDWallet: add fromBase58 exception checks
2014-05-30 19:01:03 +10:00
Daniel Cousens
cde285ccfc
Wallet: enforce operator new
2014-05-30 19:01:03 +10:00
Daniel Cousens
4952c5f4e7
HD/Wallet: use network objects, not strings
2014-05-30 19:01:02 +10:00
Daniel Cousens
2df790e2ab
Wallet: remove use of hashLittleEndian
2014-05-30 18:17:32 +10:00
Daniel Cousens
4afdbc9f68
Wallet: use dustThreshold directly
...
The definition of a dust amount is pretty clear, and I feel it is less
readable when represented as isDust(amount) or !isDust(amount), by
comparison to amount <= dustThreshold or amount > dustThreshold.
Also means I don't have to stray my eyes to understand the
implemention by looking up isDust does.
2014-05-30 18:17:32 +10:00
Daniel Cousens
bd3690bdc0
Wallet: remove async interface
2014-05-30 18:17:32 +10:00
Daniel Cousens
50e9a09a8c
Wallet: cleanup createTx control flow
...
Unknowingly this also revealed a subtle bug in the previous
implementation which allowed the creation of transactions even
when no UTXOs existed.
2014-05-30 18:17:18 +10:00
Daniel Cousens
b10e96cbff
ecdsa: serializeSig should return a Buffer
2014-05-30 17:54:33 +10:00
Daniel Cousens
7e9b5d8584
bufferutils: return opcode for use
2014-05-30 17:54:33 +10:00
Daniel Cousens
6f3d829be0
all: Expected T, got PARAM
2014-05-29 16:09:47 +10:00
Daniel Cousens
2f44628604
Transaction: refactor hashForSignature
...
Adds asserts to ensure only valid hashes are created (until the
implementation is complete).
Also uses `Script.without` to remove OP_CODESEPARATOR from the Scripts
as required by the protocol.
2014-05-29 16:06:19 +10:00
Daniel Cousens
7d94d1b068
Script: add fromChunks and without
2014-05-29 16:06:19 +10:00
Daniel Cousens
d18f2dba00
bufferutils: add PUSHDATA implementation
2014-05-29 16:06:19 +10:00
Daniel Cousens
54950c9abb
Transaction: fix SIGHASH_* constant values
2014-05-29 16:06:19 +10:00
Daniel Cousens
db814439a3
Transaction: extract DEFAULT_SEQUENCE constant
...
Also fixes the bug when the sequence number is 0 and
`TransactionIn.defaultSequence` is used; resulting in an undefined
sequence number as it is undefined.
2014-05-29 16:06:19 +10:00
Daniel Cousens
7494a146a6
ECKey: fix exception tests
...
These weren't broken as such, but they weren't distinctly checking that
the right exception was thrown either.
2014-05-29 16:01:04 +10:00
Daniel Cousens
6cfa729dae
ecdsa: fix missing exceptions
2014-05-29 15:42:52 +10:00
Daniel Cousens
2fc69b0834
address/base58check: fix missing exceptions/tests
...
All the `invalid2` tests have been removed as they were not invalid
base58check. They were actually valid in some cases.
They will be re-integrated in more specific bitcoin core tests in
relation to Address/ECKey respectively.
2014-05-29 14:43:44 +10:00
Daniel Cousens
47ae862ae9
base58: fix missing exceptions
2014-05-29 14:43:29 +10:00
John Russell
343289229e
ensures that pubKey length is greater than m
...
ensure that pubKey length is greater than m
use Array.isArray over instanceof
error message
2014-05-28 01:48:17 -07:00
Daniel Cousens
8514bbfabd
Address: remove Address.Error
...
By removing Address.Error, we remove a code smell.
This part of the code base was also not under any form of test.
Test data and tests have therefore been added verifying its behaviour in
both Wallet and Address tests.
2014-05-28 13:17:07 +10:00
Kyle Drake
33e5883be1
sec: remove untested alt curves not used by bitcoin
2014-05-25 14:30:34 +10:00
Kyle Drake
600209b1a6
hdwallet: remove fromHex, add better tests for edge cases
2014-05-25 12:26:29 +10:00
Kyle Drake
dd3e171212
Merge pull request #188 from dcousens/ecsig
...
ecdsa: always use signature object
2014-05-25 11:57:09 +10:00
Daniel Cousens
08951be66f
Script: add createPubKeyScriptPubKey
2014-05-25 10:21:06 +10:00
Kyle Drake
f545ed1279
remove crypto hash transition code
2014-05-25 09:46:06 +10:00
Daniel Cousens
c17c6f9291
Merge pull request #192 from coinpunk/eccleanup
...
Cleanup some unused ec.js code
2014-05-24 20:09:48 +10:00
Daniel Cousens
58fd12e66d
ecdsa: always use signature object
2014-05-24 16:25:38 +10:00
Daniel Cousens
bd1a08bfa1
ecdsa: use signum() over compareTo
2014-05-24 14:33:25 +10:00
Kyle Drake
bc062fbdce
cleanup some unused ec.js code
2014-05-24 13:33:23 +10:00
Daniel Cousens
aca565239a
ECKey: remove unnecessary slice
2014-05-24 00:51:56 +10:00
Daniel Cousens
cd326921bc
bigi: upgrade to 1.1.0
2014-05-24 00:51:56 +10:00
Daniel Cousens
1087ac07de
sec: fix formatting
2014-05-24 00:51:56 +10:00
Daniel Cousens
b8858c0bc9
sec: use BigInteger.fromHex directly
2014-05-24 00:51:56 +10:00
Daniel Cousens
da48c988f6
sec: use a hashtable for lookup
2014-05-24 00:51:56 +10:00
Daniel Cousens
087ca551f5
ecdsa: fix indentation
2014-05-24 00:48:31 +10:00
Daniel Cousens
d05d661aea
ecdsa: use standard declarative notation for functions
2014-05-24 00:48:31 +10:00
Daniel Cousens
bcfd62fdb5
ecdsa: remove implicit ecparams
2014-05-24 00:48:31 +10:00
Daniel Cousens
2dec1375a1
ecdsa: use (r, s) values directly
2014-05-24 00:48:31 +10:00
Daniel Cousens
8d7408202f
ecdsa: consistent parameter ordering
2014-05-24 00:48:31 +10:00
Daniel Cousens
abe65b8d4a
ecdsa: use shamirs trick
2014-05-24 00:48:20 +10:00
Daniel Cousens
a17a5b23d9
ec: fix point decoding for other curves
2014-05-22 12:33:47 +10:00
Daniel Cousens
5ec9504ed6
ecdsa: opt for shiftRight, pow and square
...
In the given situations, these offer better readability, or in the case
of shiftRight, a substantial performance increase.
2014-05-22 12:33:47 +10:00
Daniel Cousens
7d89ff427c
ecdsa: comment cleanup
2014-05-22 12:33:47 +10:00
Daniel Cousens
0865f09d20
ec/dsa: extract P_OVER_FOUR as a curve specific constant
...
This actually resolves a possible bug if multiple ecparams were used
(aka different values for P_OVER_FOUR, but only the cached was used).
2014-05-22 12:33:47 +10:00
Daniel Cousens
1e54c521d5
ec: extract BigInteger constants
2014-05-22 12:33:47 +10:00
Daniel Cousens
d9ce4bee6b
ec: use signum() not equals(BigInteger.ZERO)
2014-05-22 12:33:47 +10:00
Daniel Cousens
d14b08efd1
ec/dsa: recovery param now used consistently
...
Also added an assertion rather than massaging the input.
2014-05-22 12:32:28 +10:00
Daniel Cousens
24371425f9
ec: decodeFrom now uses Buffers and handles errors
2014-05-18 17:52:49 +10:00
Daniel Cousens
a3f691bf7c
ecdsa: parseSigCompact use Buffer API
...
parseSigCompact also now returns the correct recovert parameter without
the need to subtract the compression bit.
This makes it easier to use.
2014-05-18 17:52:49 +10:00
Daniel Cousens
f7c7265d64
ecdsa: parseSig now uses buffer API
2014-05-18 17:52:49 +10:00
Daniel Cousens
ccca6989b5
ec: getEncoded now uses Buffer API
2014-05-18 17:52:49 +10:00
Daniel Cousens
db3ffe58d1
message: use serializeSigCompact
2014-05-18 17:52:49 +10:00
Daniel Cousens
4c7108d561
ecdsa: add serializeSigCompact and tests
...
This also adds tests for all other ECDSA serialize/parsing functions.
The k, r, s and D values were sourced from test vectors on
https://bitcointalk.org/index.php?topic=285142.40 .
The compact signatures (aka, i values) were generated from bitcoinjslib, but they
are straight forward anyway.
2014-05-18 17:52:49 +10:00
Daniel Cousens
b208a6ab78
crypto/ecdsa: moves HmacSHA256 to crypto
2014-05-18 17:52:49 +10:00
Daniel Cousens
99a1b7274c
Transaction: use the type embedded in the signature
2014-05-18 17:52:48 +10:00
Daniel Cousens
6b5990c6e2
message: support alternate networks
2014-05-18 17:51:36 +10:00
Daniel Cousens
10fe4474d1
ECKey: remove *Buffer/*Hex functions
...
An ECKey is a composition of a private key (D), a public key (Q) and its
compression flag.
These functions gave the impression of serialization of this
composition, when really they only serialized `D`.
They have therefore been removed in favour of always using a sane
serialization format (WIF) that matches the needed behaviour.
If a user needs the previous functionality, simply use `privKey.D.*`
instead of `privKey.*`, as BigInteger supports `*Buffer/*Hex` functions
as expected.
2014-05-18 17:50:10 +10:00
Daniel Cousens
0468c4710c
Transaction: rename (de)serialize to [to/from]Buffer
2014-05-17 00:09:13 +10:00
Daniel Cousens
e033a872c9
Transaction: rename hashTransactionForSignature to hashForSignature
2014-05-17 00:09:13 +10:00
Daniel Cousens
55681e7e5d
Script: use PubKey objects not prebuilt Buffers
2014-05-17 00:09:13 +10:00
Daniel Cousens
54cc123d31
Address/Script: consistent function ordering
2014-05-17 00:09:13 +10:00
Daniel Cousens
b99ed46796
opcodes: rename to opcodes
2014-05-13 23:14:07 +10:00
Daniel Cousens
f9782b7c17
opcodes: remove unused reverseMap
2014-05-13 23:12:30 +10:00
Daniel Cousens
554ba250b9
opcode: less redundant indentation
2014-05-13 18:53:30 +10:00
Daniel Cousens
1fe8282eda
Script: remove redundant opcode.map access
2014-05-13 18:53:30 +10:00
Daniel Cousens
e27c97a791
ECPubKey/ECKey: separate to two files
2014-05-13 16:51:06 +10:00
Daniel Cousens
05e0d08098
BufferExt: rename to bufferutils
2014-05-13 16:46:12 +10:00
Daniel Cousens
276a339d60
crypto: HMACSHA512 into crypto and add tests
2014-05-12 10:18:39 +10:00
Daniel Cousens
f70ccc9215
convert: remove hex functions
2014-05-12 10:17:38 +10:00
Daniel Cousens
614a213d44
Transaction: remove untested hash array support
2014-05-12 10:17:38 +10:00
Daniel Cousens
063643b4a1
HDWallet: show clearer BIP32 adherence for Master key
2014-05-12 09:56:00 +10:00
Daniel Cousens
3ed7d78e59
HDWallet: adhere to BIP32 for CKD
2014-05-10 09:57:16 +10:00
Daniel Cousens
25514d6ac1
HDWallet: remove HmacBytesToBytes
2014-05-10 09:57:16 +10:00
Daniel Cousens
da36003d09
Script: remove sort requirement for multisig
2014-05-09 18:03:41 +10:00
Daniel Cousens
de343b2093
Script: remove Address requirement
2014-05-09 18:03:22 +10:00
Daniel Cousens
f18c5e4c1e
Script: removes Script.createP2SHMultiSigScriptSig
...
It is favoured to compose the scriptSig manually using
Script.createP2SHScriptSig and Script.createMultisigScriptSig.
Added a test to verify that createMultisigScriptSig throws when not
enough signatures a provided and the redeemScript is given.
2014-05-09 16:26:35 +10:00
Daniel Cousens
f8e662e495
Script: rename toScriptHash to getHash and add tests
2014-05-09 13:07:06 +10:00
Daniel Cousens
342c55c864
Address: remove circular dependency fix
...
This is no longer a problem.
2014-05-09 12:26:38 +10:00
Daniel Cousens
48e15b587a
Address: remove redundant comments
2014-05-09 12:25:24 +10:00
Daniel Cousens
708aa03390
Transaction/Script: bitcoin network no longer implied
...
A Transaction (and its subsequent scripts) do not carry any network
specific information in the Bitcoin protocol.
Therefore they can not (without further context) produce the network
specific constants for the generation of the base58 Addresses.
As TransactionOut.address is used heavily throughout Wallet and other
areas of the library, this could not be entirely removed without a large
number of changes.
For now, TransactionOut.address is only defined in the case of
Tx.addOutput being used directly:
Transaction.addOutput(address, value)
2014-05-08 10:59:58 +10:00
Daniel Cousens
4207a0df99
Address: use Address.Error instead
...
This change is necessary for instanceof comparison when attempting to
rethrow. Callbacks may be a better solution to introduce later.
2014-05-08 10:59:58 +10:00
Daniel Cousens
5e0d38ba54
Address: add Address.*ScriptPubKey and tests
...
The introduction of these two functions allow for the all the network
related code to be eventually removed from Transaction and Script.
Previously the result for non-standard transactions was undefined
behaviour. This change mandates that an exception is thrown if a
non-standard transaction is input.
2014-05-08 10:59:58 +10:00
Daniel Cousens
0822def7e0
Script: add standard Script.create*ScriptPubKey
...
Extracts the two Script types out of Script.createOutputScript, and puts
them both under test.
Also renames Script.createMultiSigOutputScript to adhere to the same
convention.
2014-05-08 10:59:58 +10:00
Daniel Cousens
d0f684844c
Script: add toHex, fromHex
...
Script.fromHex previously existed, but was not under any kind of test.
This commit adds tests (despite being a little circular in nature) to
check that the output is as expected.
2014-05-08 10:59:58 +10:00
Daniel Cousens
57b8afbdab
Network: rename Network to Networks
...
This change removes the most common ambiguities.
As the network module is not representative of a class, the lower case
has been used.
2014-05-08 10:59:58 +10:00
Daniel Cousens
929b8d2b62
Script: more consistent input handling
2014-05-08 10:59:58 +10:00
Daniel Cousens
7ad695e427
Script: fix assertion message grammar
2014-05-08 10:59:58 +10:00
Daniel Cousens
74e53b49a5
Script/Transaction: remove untested functions
...
These functions are not under test, and are unnecessary bloat due to a
confusing API.
Script.from*(asmStr) were two functions that attempted to parse ASM
codes and produce a script from this.
While useful, an parser can be introduced later under a single function
and under test... removed.
Although Script.extractPublicKeys implementation is likely to be correct,
it is not absolute in that what it returns is even strictly a set of
public keys.
It is a useful function, but can be done in a better way later,
probably checking against the Script templates instead.
Transaction.signWithKeys has some inherent undocumented behaviour, and it is not
clear when you would use it over just Transaction.addOutput and
Transaction.sign individually. Nor does it mimic anything in the
bitcoind API... removed.
2014-05-08 10:59:58 +10:00
Daniel Cousens
76323a07d0
Transaction: restrict TxIn/TxOut constructor params
...
To keep this change minimal, both TxIn/TxOut still use the parameter
object for initialization. TxOut accepts only the types it uses
internally, and not hex or byte arrays for scripts.
The clone is unnecessary as a TransactionOut is never mutated after its
creation.
This resulted in TransactionOut.scriptPubKey no longer being needed,
and was removed. To access the scriptPubKey as a byte buffer, a user
can simply use:
TransactionOut.script.toBuffer()
Unfortunately, this leaves TransactionOut in a sorry state of test.
Something that needs to be fixed.
2014-05-08 10:59:58 +10:00
Daniel Cousens
9a7e291d70
Transaction: fix incorrect outIndex type
2014-05-08 08:52:07 +10:00
Daniel Cousens
a77846701f
Fixes network support for TxOut
2014-05-06 15:40:40 +10:00
Daniel Cousens
4012b82bec
Fixes Transaction.addOutput(Address, Number)
2014-05-06 15:40:40 +10:00
Daniel Cousens
695eb64a3a
Clarifies Transaction.addOutput param documentation
2014-05-06 15:40:40 +10:00
Daniel Cousens
d65a3c36e2
Merge pull request #159 from williamcotton/master
...
fixed issues with testnet and createTx
2014-05-06 08:04:02 +10:00
Daniel Cousens
baa568697b
Transaction.deserialize no longer mutates input
2014-05-05 09:11:37 +10:00
Daniel Cousens
02013beda9
Renames variables to be more verbose
2014-05-05 09:11:37 +10:00
Daniel Cousens
b860daf70b
Corrects endianness comments
2014-05-04 17:31:47 +10:00
Daniel Cousens
87048d3b4e
Adds performance notes
2014-05-04 17:31:47 +10:00
Daniel Cousens
4716eb29bf
Removes redundant convert functions
2014-05-04 17:31:47 +10:00
Daniel Cousens
a8cf2fdd9e
Changes internal serialization to use Buffers instead
2014-05-04 17:31:22 +10:00
Daniel Cousens
c8bda6dde6
Adds Buffer extensions
2014-05-04 17:30:59 +10:00
Daniel Cousens
10ee5532c3
Serialize now returns a buffer
2014-05-04 15:37:25 +10:00
Daniel Cousens
09c6a787d9
Changes sequence number to an actual Number
2014-05-04 15:37:25 +10:00
Wei Lu
a830e2cded
Merge pull request #168 from dcousens/167fix
...
Fixes #167
2014-05-04 10:11:19 +08:00
Daniel Cousens
ff08c2eec3
Fixes #167 and adds temporary test
2014-05-04 12:07:05 +10:00
Daniel Cousens
e6a9186af3
Removes unnecessary new Buffer
2014-05-04 11:58:06 +10:00
Daniel Cousens
e2e190c766
Variables names made consistent with constructor
2014-05-04 11:57:49 +10:00
Daniel Cousens
bb80eda218
Merge pull request #165 from bitcoinjs/bigi-monkey-patching-no-more
...
Upgrade bigi & remove monkey patching
2014-05-04 07:39:19 +10:00
Wei Lu
1e6b283f9a
Remove Number.isFinite check on tx input index
2014-05-03 10:19:38 +08:00
Wei Lu
af1f121fd4
upgrade bigi & remove monkey patching
2014-05-03 10:04:54 +08:00
Wei Lu
39516d5532
Merge pull request #163 from dcousens/wordass
...
Enforces convert.wordsToBytes to only allow for byte input
2014-04-30 08:49:05 +08:00
Kyle Drake
5fd9fe62dc
Fix address prefixes, add dogecoin/litecoin BIP32 versions
2014-04-29 15:07:15 -07:00
Daniel Cousens
b09dd73cbe
Enforces bytesToWordArray only operates on byte arrays
2014-04-30 05:07:41 +10:00
Wei Lu
45c1c8350e
Merge pull request #154 from dcousens/convrem
...
Remove dead code from Convert module
2014-04-26 12:27:08 +08:00
Wei Lu
6833acaf3a
Merge pull request #152 from dcousens/p2shsign
...
Preliminary test for P2shsign
2014-04-26 12:26:50 +08:00
William Cotton
590bb8e1c3
custom changeAddress for wallet.createTx()
2014-04-25 12:49:51 -07:00
William Cotton
a9bc42019a
fixed issues with testnet and createTx
2014-04-25 12:39:30 -07:00
Daniel Cousens
e40377a471
Removes unused functions from convert
2014-04-26 05:11:45 +10:00
Daniel Cousens
69c0497038
Renames createInputScript to createPubKeyHashScriptSig
2014-04-26 04:04:19 +10:00
Daniel Cousens
a4e68d142d
Adds assertions for types in signScriptSig
2014-04-26 04:04:16 +10:00
Daniel Cousens
8ad8f6f169
Renames p2shsign to signScriptSig
2014-04-26 03:51:13 +10:00
Daniel Cousens
5546cae928
Removes type coercion for a stricter TX API
2014-04-26 03:51:13 +10:00
Daniel Cousens
9af8d95daf
Removes applyMultisigs and adds setScriptSig
2014-04-26 03:51:13 +10:00
Daniel Cousens
89cf731ac7
Adds assertion messages
2014-04-26 02:37:48 +10:00
Daniel Cousens
c3e9d568c5
Adds RFC6979 test vectors and fixes ecdsa.sign/detGenK
2014-04-26 02:17:28 +10:00
ethers
1c8f135d9c
assertion message
2014-04-24 23:29:12 -07:00
Wei Lu
102f2bd0c9
make sure createInputScript convert pubKey to buffer before writing out bytes
...
[fixes #156 ]
2014-04-25 10:01:50 +08:00
Daniel Cousens
df6ea8aea2
Removes toPaddedBuffer and extends toBuffer
2014-04-25 00:18:13 +10:00
Daniel Cousens
d8883e8d32
Adds BI.toPaddedBuffer and toBuffer
2014-04-24 07:22:23 +10:00
Daniel Cousens
bc37e65014
Enforces Array input for deterministicGenerateK
2014-04-23 06:28:00 +10:00
Kyle Drake
1b66976d92
Merge pull request #146 from dcousens/magictests
...
MagicHash Tests
2014-04-21 09:39:50 -07:00
Kyle Drake
21aa517cd2
Merge pull request #143 from dcousens/multisigfix
...
Multi-sig ScriptSig Support
2014-04-21 09:39:03 -07:00
Daniel Cousens
ae60e6eb95
Replacse JSBN with bigi
2014-04-22 02:19:30 +10:00
Daniel Cousens
96ebb65099
Removes ecdsa.getBigRandom
2014-04-22 02:04:56 +10:00
Daniel Cousens
f5ce83beca
Adds working implementation of Script.createP2SHMultisigScriptSig
2014-04-22 00:28:13 +10:00
Daniel Cousens
fb6c76a976
Merges Buffer refactorings from base58-native by Stephen Pair
2014-04-22 00:24:20 +10:00
Daniel Cousens
1b46a10d2a
magicHash now uses Buffers internally
2014-04-22 00:23:12 +10:00
Daniel Cousens
c44af2109e
Uses typeof address === 'string' instead
2014-04-20 04:54:50 +10:00