Commit graph

974 commits

Author SHA1 Message Date
Ruben de Vries
7aaae4c001 Refactoring extractInput and __build to enable nested scripts (P2SH[ P2PKH / multsig ]).
This is preperation for the segwit support which will have `P2SH[ P2WSH[ P2PKH / multsig ] ]` scripts
2016-02-15 14:12:04 +01:00
Karel Bilek
3c56e80fc6 Simplifying path regex 2016-02-14 16:25:55 +01:00
Karel Bilek
6a74eb6993 Renaming Path to Bip32Path, invalid to fixtures
Only thing I haven't been able to do is to add "undefined" to fixtures. So I could not properly test
that node.derivePath() properly fails as it should. However, I added "null" there, and "null" and "undefined"
behave in similar way in JavaScript, so that should catch that.
2016-02-14 16:12:16 +01:00
Karel Bilek
d2b43f1dfe Validating path
Again through typeforce
2016-02-13 23:25:30 +01:00
Karel Bilek
182698f53d Using parseInt instead of + in path parsing
+ can cause issues - +"" is 0. parseInt("", 10) is NaN, which is better (since it causes typeforce to throw).
2016-02-13 15:51:42 +01:00
Karel Bilek
7defe6fe4c Adding path derivation
The argument is path of either numbers or strings.

String with "'" at the end signifies hardened path.
2016-02-12 12:37:29 +01:00
Karel Bilek
4a72001335 Typechecking indexes
As a consequence, it will not allow accidentally double-hardened indexes.

It also won't allow strings or forgotten parameters.
2016-02-06 17:57:11 +01:00
Karel Bílek
fbcb478560 Adding function to decide if HDNode is public
Public === neutered. Private === not neutered
2016-02-05 20:26:23 +01:00
Ruben de Vries
7c7537fc57 use typeforce >= 1.6.2 which allows us to use typeforce.TfTypeError with a custom error message. 2016-02-02 14:04:37 +01:00
JP Richardson
682ba7e549 Merge pull request #530 from bitcoinjs/lesscomp
address: fix compiled assumption for fromOutputScript
2016-01-27 22:50:05 -06:00
Daniel Cousens
67da1b30e3 address: fix compiled assumption for fromOutputScript 2016-01-28 15:35:57 +11:00
JP Richardson
4ee194e840 Merge pull request #507 from bitcoinjs/locktime
txbuilder: add setLockTime
2016-01-27 08:29:00 -06:00
Daniel Cousens
f3913516ca Merge pull request #509 from bitcoinjs/pow
Add Block proof-of-work validation function
2016-01-28 01:00:17 +11:00
Daniel Cousens
6c0745adce TxBuilder: add setLockTime 2016-01-28 00:55:44 +11:00
Daniel Cousens
d7da292063 script_number: initialize result to 0 2016-01-05 13:11:49 +11:00
Daniel Cousens
302bbe81ba script_number: refactor to mimic bitcoin/bitcoin 2016-01-05 02:38:04 +11:00
Daniel Cousens
945bdfa747 script_number: refactor 2016-01-05 02:30:21 +11:00
Daniel Cousens
29a1a839ec script: exposes scriptNumber through script.number 2016-01-05 02:11:48 +11:00
Daniel Cousens
059f48b0c4 script_number: add impl/tests 2016-01-05 01:59:58 +11:00
Daniel Cousens
e4ba88e54f block: rename verifyPow to checkProofOfWork 2016-01-04 12:49:33 +11:00
Daniel Cousens
92b446f6a5 block: variable extraction 2016-01-04 12:49:33 +11:00
Daniel Cousens
bac700f52c block: use buffer, faster, verified 2016-01-04 12:49:33 +11:00
Daniel Cousens
86b51b2d62 add Block.calculateTarget, use Buffer comparison rather than bigi 2016-01-04 12:49:33 +11:00
Daniel Cousens
26ccb43047 block: add Block.prototype.verifyPow 2016-01-04 12:49:33 +11:00
Daniel Cousens
cab3022719 add OP_CHECKLOCKTIMEVERIFY and integration tests 2015-12-22 14:13:45 +11:00
Daniel Cousens
540a6643ac txbuilder: clarify SIGHASH invalidation logic in addInput/addOutput 2015-11-26 12:46:55 +11:00
Daniel Cousens
881a23f9d5 txbuilder: rename tx.outs.length to nOutputs 2015-11-26 12:07:32 +11:00
Daniel Cousens
693e39c061 script: use Buffer.isBuffer consistently 2015-11-26 12:07:04 +11:00
Daniel Cousens
d48a7ab682 address: avoid unnecessary unchunking 2015-11-25 19:19:21 +11:00
Daniel Cousens
f60cb2e491 scripts: ensure isPubKeyHashOutput/isScriptHashOutput adhere to BIP62 2015-11-25 19:19:21 +11:00
Kirill Fomichev
5de6818fcb Fix TransactionBuilder.addOutput 2015-11-24 08:18:16 +03:00
Alex Seville
a1da3065c4 Remove const and replace with var
To keep the project consistenly ES5.

Source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const
2015-11-18 22:04:21 -08:00
Daniel Cousens
173994c6e0 script: avoid slice if n !== pubKeys.length 2015-10-02 13:03:33 +10:00
Daniel Cousens
0ca1e40a6d script: refactor isMultisigOutput for clarity 2015-10-02 13:03:33 +10:00
Daniel Cousens
5be9b04741 script: isolate initialization of REVERSE_OPS 2015-10-02 12:59:30 +10:00
Daniel Cousens
74c2f1d957 script: n/m must be numbers, not data 2015-10-02 12:51:34 +10:00
Kirill Fomichev
eae8bcf676 fix isMultisigOutput 2015-10-01 23:12:38 +03:00
Daniel Cousens
0b4c67406f use [].reverse over prototype 2015-09-27 23:49:29 +10:00
Daniel Cousens
5c1c4589c0 remove use of buffer-reverse 2015-09-27 23:30:06 +10:00
Daniel Cousens
731a31ecba use buffer-reverse 2015-09-25 17:49:05 +10:00
Daniel Cousens
28372f0cd7 use buffer-equals 2015-09-25 17:49:05 +10:00
Daniel Cousens
daafb9794e ECPair/HDNode: adds getNetwork 2015-09-21 17:37:21 +10:00
Daniel Cousens
57d0ea84a2 HDNode: adds getPublicKeyBuffer 2015-09-21 17:37:09 +10:00
Daniel Cousens
923266672b HDNode: add sign/verify 2015-09-21 16:42:22 +10:00
Daniel Cousens
888393fa8f tests: add HDNode fromSeed throwing tests 2015-09-14 17:50:38 +10:00
Daniel Cousens
05cfdf6a6a docs: remove inline endian-ness notes, no endianness 2015-09-14 15:03:36 +10:00
Daniel Cousens
322ade58e4 revert 4b825bf 2015-09-09 12:32:12 +10:00
Daniel Cousens
a5196dedcb ECPair: enforce <= 0, not just === 2015-09-09 00:48:06 +10:00
Daniel Cousens
a72e608898 ECPair: loop until within interval 2015-09-09 00:48:06 +10:00
Daniel Cousens
1ea5252511 TxBuilder: only allow OP_0's when building 2015-09-08 21:22:54 +10:00
Daniel Cousens
b252924517 types: remove ECCurve 2015-09-05 15:42:25 +10:00
Daniel Cousens
e8cb7c16da Transaction: coinBaseHash no longer relevant 2015-09-05 14:28:28 +10:00
Daniel Cousens
4b825bf2a8 HDNode: stop exposing constants 2015-09-05 14:27:53 +10:00
Daniel Cousens
ccfaaf0b6f ecdsa: remove curve parameter 2015-09-05 14:27:53 +10:00
Daniel Cousens
146bc8e11a address: re-use fromBase58Check internally 2015-09-05 14:27:53 +10:00
Daniel Cousens
48dc0a9054 script: no need to use readUInt8 2015-09-05 14:27:53 +10:00
Daniel Cousens
2d75b7e7ff standard: remove padded Blocks 2015-09-05 14:10:32 +10:00
Daniel Cousens
ec1195bcee Merge pull request #448 from bitcoinjs/bip66
Extract BIP66 module
2015-08-25 14:17:44 +10:00
Daniel Cousens
e94ec00919 types: restore quacking behaviour 2015-08-25 13:47:11 +10:00
Wei Lu
79db118417 Merge pull request #446 from bitcoinjs/wifex
ECPair: extract WIF to 3rd party module
2015-08-23 23:24:07 +08:00
Daniel Cousens
96c04d0787 ECPair: makeRandom, fix comparison 2015-08-24 01:04:36 +10:00
Daniel Cousens
d46035a35f ECPair: rm duplicate throw 2015-08-24 01:00:51 +10:00
Daniel Cousens
b12f559b85 HDNode: consistent capitalization in comments 2015-08-22 12:53:47 +10:00
Daniel Cousens
92937a8ded script: rm unused ecurve 2015-08-22 12:37:17 +10:00
Daniel Cousens
3106fc13ca script: refactor isCanonicalPubKey to bitcoin-core equivalent 2015-08-22 12:32:03 +10:00
Daniel Cousens
0ff5bd5698 script: add isDefinedHashType to check hashType 2015-08-22 12:32:03 +10:00
Daniel Cousens
abac254d0d script: use bip66 for signature checking 2015-08-22 11:54:00 +10:00
Daniel Cousens
1e23085ad7 use bip66 module 2015-08-21 20:35:22 +10:00
Daniel Cousens
252336ab8c ECPair: fix modulo bias in makeRandom 2015-08-21 16:46:18 +10:00
Daniel Cousens
efacd387be ECPair: extract WIF to 3rd party module 2015-08-20 20:16:57 +10:00
Daniel Cousens
e3f21ebeb2 HDNode: avoid creating multiple buffers 2015-08-20 14:23:27 +10:00
Daniel Cousens
8934de591c use baddress/bcrypto/bscript for ambuigities 2015-08-20 13:55:13 +10:00
Daniel Cousens
6ec687deba rename scripts to script 2015-08-20 13:55:13 +10:00
Daniel Cousens
18e9cdcc02 rename Address to address 2015-08-20 13:55:13 +10:00
Daniel Cousens
8f9d59fb18 ECPair: stop exposing ECDSA curve 2015-08-20 13:55:13 +10:00
Daniel Cousens
ca4debd92e types: Expected Buffer, length to follow 2015-08-19 15:27:06 +10:00
Daniel Cousens
c06df2df8a TxBuilder: fix equals is undefined in Node 0.10 2015-08-18 14:55:23 +10:00
Daniel Cousens
97a0008445 types: rm Script type 2015-08-18 14:45:00 +10:00
Daniel Cousens
706f5d7a9c scripts: adds tests for *HashOutput 2015-08-18 14:44:30 +10:00
Daniel Cousens
ab1215adc1 scripts: refactor to/from ASM 2015-08-18 14:44:30 +10:00
Daniel Cousens
b933c6da44 scripts: re-add constrained hash types to *HashOutput 2015-08-18 14:44:30 +10:00
Daniel Cousens
20fd3cee8c rename EMPTY to EMPTY_SCRIPT, extract VALUE_UINT64_MAX constant 2015-08-18 14:44:30 +10:00
Daniel Cousens
e2abe2b3af merge Script/scripts 2015-08-18 14:44:30 +10:00
Daniel Cousens
151386c46d scripts: remove coercion, fromASM returns Buffer 2015-08-18 14:44:30 +10:00
Daniel Cousens
812d74aa0a coerce wherever necessary for now 2015-08-18 14:44:29 +10:00
Daniel Cousens
e05f8a542d remove Script object 2015-08-18 14:44:29 +10:00
Daniel Cousens
e743c58ed6 remove usage of instanced Scripts 2015-08-18 14:44:29 +10:00
Daniel Cousens
5d2abb523e HDNode: use typeforce.tuple for arguments 2015-08-18 14:21:38 +10:00
Daniel Cousens
fd7f0b0ef8 address: use input first errors, easier detection 2015-08-18 09:27:55 +10:00
Daniel Cousens
6002d9abd4 ecdsa: fix up tuple indentation 2015-08-14 10:56:31 +10:00
Daniel Cousens
94e16fbe37 rename __disableExcess to __noStrict 2015-08-14 10:56:31 +10:00
Daniel Cousens
92d16142d1 ECSignature: use types.tuple for arguments 2015-08-14 10:56:31 +10:00
Daniel Cousens
33a9dc4cce dustThreshold is a UInt53 2015-08-14 10:56:31 +10:00
Daniel Cousens
70c874e3cc bufferutils: remove use of assert 2015-08-14 10:56:31 +10:00
Daniel Cousens
d85df4a6d6 TransactionBuilder: remove use of assert 2015-08-14 10:56:31 +10:00
Daniel Cousens
c1a965d096 ECSignature: remove use of assert 2015-08-14 10:56:31 +10:00
Daniel Cousens
f2f0747187 Transaction: remove use of assert 2015-08-14 10:56:31 +10:00
Daniel Cousens
e4b697a261 scripts: remove use of assert 2015-08-14 10:56:31 +10:00
Daniel Cousens
1d4a71852f Script: remove use of assert 2015-08-14 10:56:31 +10:00
Daniel Cousens
395c43ad74 block: remove use of assert 2015-08-14 10:56:31 +10:00