Commit graph

1360 commits

Author SHA1 Message Date
Karel Bilek
c96bb93841 Add weight / vsize
Weight / virtual size according to BIP141
2017-06-21 01:38:05 +10:00
Daniel Cousens
fe0ad81472 package: use safe-buffer 2017-05-23 18:39:53 +10:00
Daniel Cousens
f1ab151c31 tests: use safe-buffers throughout 2017-05-23 18:39:53 +10:00
Daniel Cousens
aeb0312d63 use safe-buffers throughout impl 2017-05-23 18:39:53 +10:00
Daniel Cousens
78b2d34af6 networks: changed P2SH to 0x32 2017-05-10 10:25:29 +10:00
Loshan T
2228d285a4 Update Litecoin P2SH 2017-05-10 10:25:29 +10:00
Daniel Cousens
ab1fc4c9a4 reduce bufferutils usage 2017-04-19 17:42:05 +10:00
Daniel Cousens
cdb518686f txbuilder: remove unused y var 2017-04-18 14:34:54 +10:00
Daniel Cousens
6c220c4b58 templates: add missing allowComplete pass through 2017-04-18 14:34:54 +10:00
Daniel Cousens
91ff39d95a ecpair/hdnode: fix network variable shadowing 2017-04-18 14:34:54 +10:00
Daniel Cousens
f3d0dddc5a block: add byteLength 2017-04-18 13:46:30 +10:00
Daniel Cousens
b552c63fb0 nulldata: no blank lines at EOF 2017-03-29 21:02:59 +11:00
Daniel Cousens
846da39346 script: adhere to latest standard precedence rules 2017-03-29 21:02:59 +11:00
Daniel Cousens
1ce81a92cc block: rm i temporary var 2017-03-29 09:36:07 +11:00
Daniel Cousens
35bbe11055 block: change exponent offset to avoid subtraction 2017-03-29 09:36:07 +11:00
Daniel Cousens
29316a2fbc block: use writeUInt32BE for target calculation 2017-03-29 09:36:07 +11:00
Thomas Kerin
4b4f32ffac buildStack: allow empty stack if allowIncomplete is set 2017-02-07 12:40:49 +11:00
Thomas Kerin
793939dc8c scriptHash return true for chunks.length=1 so long as its witness 2017-02-07 12:40:49 +11:00
Thomas Kerin
c2dfc03869 Add test vectors, and transaction_builder input stores signScript 2017-02-07 12:40:49 +11:00
Thomas Kerin
e4db4a07b0 Make sure case with only one value in scriptSig as P2SH ONLY applies if the script is P2WPKH or P2WSH 2017-02-07 12:40:49 +11:00
Thomas Kerin
fff9319fa4 scriptHash.input.check - should tolerate 1 field in scriptSig if it's P2WSH or P2WPKH 2017-02-07 12:40:49 +11:00
Thomas Kerin
c5541c8f96 transaction_builder: expandInput - check p2sh early, can avoid redundant assignments 2017-02-07 12:40:49 +11:00
Thomas Kerin
a32cc5b3be remove debugging code 2017-02-07 12:40:49 +11:00
Thomas Kerin
52745d1d0c fromTransaction.build tests pass - look for segwit transaction vectors 2017-02-07 12:40:49 +11:00
Thomas Kerin
f8a94f3496 messy commits, clean later, just one test left 2017-02-07 12:40:49 +11:00
Thomas Kerin
a213435135 Commit work to date 2017-02-07 12:40:49 +11:00
Thomas Kerin
b24dc44770 P2WSH working, now for tests 2017-02-07 12:40:49 +11:00
Thomas Kerin
3ad31571b6 P2WSH initial commit, tests pass with new logic 2017-02-07 12:40:49 +11:00
Thomas Kerin
b6ae10b2f1 buildStack, and make tests pass 2017-02-07 12:40:49 +11:00
Daniel Cousens
a793166eb8 wip 2017-02-07 12:40:49 +11:00
Daniel Cousens
80762543e7 templates: add encode/decode* stack functions 2017-02-07 12:40:49 +11:00
Daniel Cousens
33c3ed4e03 templates: avoid hex conversions internally 2017-01-03 23:55:03 +11:00
Thomas Kerin
9d9d101b5f Script templates: add witness commitment template 2017-01-03 22:37:11 +11:00
Daniel Cousens
3635a9f078 s/scriptPubKey/outputScript 2016-12-23 13:55:15 +11:00
Daniel Cousens
14f9218389 package: bump bs58check, drop node 0.12 2016-12-22 08:21:18 +11:00
Daniel Cousens
33c72e49c4 package/*: use bitcoin-ops, pushdata-bitcoin packages 2016-12-18 10:38:43 +00:00
Daniel Cousens
a86e905611 script: add fromASM failing test case and fix 2016-12-17 14:30:37 +11:00
Thomas Kerin
8552867695 bscript.compie - minimal encoding of -1 stack element 2016-12-17 14:17:27 +11:00
Daniel Cousens
2bb021ab64 rm *PushOnly, add isPushOnly and toStack 2016-12-17 14:17:27 +11:00
Daniel Cousens
d853806d0d templates: fix bad comment 2016-12-15 11:45:59 +11:00
Daniel Cousens
5824a84fd5 transaction_builder: keep a mapping from prevTxOut to vin 2016-12-15 11:45:59 +11:00
Daniel Cousens
c81f561f3e transaction: no i variable shadow 2016-12-14 09:05:58 +11:00
Thomas Kerin
bec7f690ce Rename __hasWitnesses -> hasWitnesses, and add tests 2016-12-08 09:11:13 +11:00
Daniel Cousens
7227017b40 scripts: multisig naming consistency 2016-11-21 11:04:01 +11:00
Daniel Cousens
433d9f1b18 templates: push only for scriptHash inputs, fixes #705 2016-11-15 10:06:18 +11:00
Daniel Cousens
b1daff1108 script: use isPushOnly internally 2016-11-15 10:06:18 +11:00
Daniel Cousens
8df1b45699 script: use typeforce to enforce push-only chunks 2016-11-15 10:06:18 +11:00
Thomas Kerin
0696ca95b6 Script: add {compile,decompile}PushOnly 2016-11-14 15:13:12 +11:00
Daniel Cousens
72fbd00762 Transaction: Witness serialization support default only for some functions (fixed) 2016-11-14 15:05:30 +11:00
Daniel Cousens
29422b584d Transaction: fix setWitness to accept array of Buffers (fixed) 2016-11-14 15:05:30 +11:00
Thomas Kerin
a9f124423f Test that parsing a transaction with superfluous witness data leads to an error 2016-11-14 11:22:22 +11:00
Daniel Cousens
905f5ba1a5 transaction: hashForWitnessV0 s/amount/value 2016-11-14 11:22:22 +11:00
Daniel Cousens
768f7e314c Transaction: initialize to ZERO earlier 2016-11-14 11:22:22 +11:00
Thomas Kerin
3f731d090a Test that parsing a transaction with superfluous witness data leads to an error 2016-11-14 11:22:22 +11:00
Daniel Cousens
5c2fdb6043 Transaction: add Witness serialization and hashForWitnessV0 2016-11-14 11:22:22 +11:00
Daniel Cousens
aeeee4f3ec TransactionBuilder: move ABSURD_FEE to a constructor parameter 2016-11-12 12:53:53 +01:00
Daniel Cousens
61be897429 TransactionBuilder: move ABSURD_FEERATE to static constant 2016-11-12 12:53:53 +01:00
Daniel Cousens
62389ed247 TransactionBuilder: change to ABSURD_FEERATE, not ABSURD_FEE 2016-11-12 12:53:53 +01:00
Daniel Cousens
e835f1fe95 TransactionBuilder: add fee safety 2016-11-12 12:53:53 +01:00
Thomas Kerin
b5e46c2931 Replace script type strings with constants 2016-11-04 12:21:26 +11:00
Daniel Cousens
9db9763221 tests: add script.*.*.decode tests 2016-11-04 07:23:02 +11:00
Daniel Cousens
0c67f5e585 templates: add toJSON for clearer error message 2016-11-04 07:23:02 +11:00
Daniel Cousens
ce5babde83 templates: fix nullData return value 2016-11-04 07:23:02 +11:00
Daniel Cousens
69d8e9ed9e move templates to templates/index.js 2016-11-04 07:23:02 +11:00
Daniel Cousens
d9fa39a2cc scripts: extract all scripts to encode/decode/check style 2016-11-04 07:23:02 +11:00
Thomas Kerin
27b48e8aa2 Add methods to decode information from output scripts 2016-11-02 10:58:45 +11:00
Thomas Kerin
53f08a7569 Script: add function for parsing multisig type scripts 2016-11-02 10:58:45 +11:00
Daniel Cousens
a956b8859f networks: drop dogecoin and dustThreshold 2016-10-20 23:40:46 -05:00
Daniel Cousens
1f66b9e3d8 HDNode: add comment about Q.compressed assumption 2016-10-18 17:45:37 +11:00
Thomas Kerin
6067220cba Remove redundant check for uncompressed public key 2016-10-18 15:59:47 +11:00
Daniel Cousens
b14abac4a1 HDNode: remove HDNode.toString for safety 2016-10-18 15:42:44 +11:00
Thomas Kerin
7b1167708a Transaction and block versions are signed integers 2016-10-13 09:29:03 +11:00
Daniel Cousens
3de754a9a2 TransactionBuilder: remove hashTypes inconsistency issues, resolves #642 2016-10-13 00:55:19 +11:00
Daniel Cousens
9dcf4d4b8b TransactionBuilder: add note why fixMultisigOrder is separate 2016-10-13 00:55:19 +11:00
Daniel Cousens
7059b177eb TransactionBuilder: re-order in order of usage 2016-10-13 00:55:19 +11:00
Daniel Cousens
6056e7913e TransactionBuilder: fixMultisigOrder only works if a redeemScript exists 2016-10-13 00:55:19 +11:00
Daniel Cousens
1ff64d207e TransactionBuilder: flatten prepareInput P2SH detection 2016-10-13 00:55:19 +11:00
Daniel Cousens
a58c959099 TransactionBuilder: localize fixMultisigOrder assumptions 2016-10-13 00:55:19 +11:00
Daniel Cousens
0e2480523a TransactionBuilder: expandInput, consistent variable names 2016-10-13 00:55:19 +11:00
Daniel Cousens
f3cc71a75f TransactionBuilder: simplify buildInput logic 2016-10-13 00:55:19 +11:00
Daniel Cousens
090b8177d1 TransactionBuilder: flatten inconsistency checks 2016-10-13 00:55:19 +11:00
Daniel Cousens
5dcf38c0c5 HDNode: clearer error for bad path type 2016-10-12 13:15:54 +11:00
Daniel Cousens
9f1ebf72a6 types: remove unused UInt2, BIP32 is capitals 2016-10-12 13:15:54 +11:00
Daniel Cousens
4ee298c414 block: add type checking 2016-10-10 11:20:20 +11:00
Daniel Cousens
dd4596a44a block: use merkle-lib instead of inline calculation 2016-10-10 11:20:20 +11:00
Daniel Cousens
3bff2c63af transaction: simplify toBuffer offset management 2016-10-10 07:56:18 +11:00
Daniel Cousens
f7b2fdfe60 TransactionBuilder: avoid input mutation until after exception possibility 2016-10-09 22:04:32 +11:00
Daniel Cousens
17377381c4 TransactionBuilder: if prevOutScript is defined, but not signable, try 1 last time 2016-10-09 22:04:32 +11:00
Daniel Cousens
45b0e35264 transaction/types: use Satoshi over UInt53 2016-10-07 14:25:44 +11:00
Daniel Cousens
ecc6d45a7e types: add Satoshi 2016-10-07 14:25:44 +11:00
Daniel Cousens
29a865788d use varuint-bitcoin 2016-10-07 10:55:34 +11:00
Daniel Cousens
7cdabef954 ecdsa: remove unused functions 2016-10-06 21:40:42 +11:00
Daniel Cousens
87cb018466 rm message module 2016-10-06 21:40:42 +11:00
Daniel Cousens
fd40232147 package: remove buffer-compare/buffer-equals 2016-10-06 21:31:10 +11:00
Daniel Cousens
0e08a9b0ce Revert "HDNode: remove unnecessary this context" 2016-10-06 21:16:56 +11:00
Daniel Cousens
7a066b68ed HDNode: remove unnecessary this context 2016-10-06 14:08:27 +11:00
Daniel Cousens
b91cfcf196 package: update to typeforce 1.8.7 2016-10-06 12:34:11 +11:00
Daniel Cousens
4ae06003c4 Merge pull request #638 from bitcoinjs/minpush
script: always compile in a minimaldata compliant way
2016-10-05 19:31:52 +11:00
Daniel Cousens
c1570f8056 script: always compile in a minimaldata compliant way 2016-09-29 13:51:17 +10:00
Daniel Cousens
1aab317dad TransactionBuilder: extract internal signature invalidation functions for individual testing 2016-09-28 16:47:58 +10:00
Daniel Cousens
ccde09fdc3 TransactionBuilder: move fixMultisigOrder back to free function 2016-09-28 15:27:14 +10:00
Daniel Cousens
402e871d40 TransactionBuilder: move sign bulk to prepareInput 2016-09-28 15:23:52 +10:00
Daniel Cousens
a1d3e33c84 address/crypto/script/types: adhere to no-use-before-define 2016-09-28 15:23:52 +10:00
Daniel Cousens
d3ccbb6277 TransactionBuilder: rename index to vout internally 2016-09-28 01:23:37 +10:00
Daniel Cousens
9e5aac8bac TransactionBuilder: fix duplicate txOut detection 2016-09-28 01:23:37 +10:00
Daniel Cousens
b3fd50ffd6 TransactionBuilder: refactor extractInput/extractFromOutput 2016-09-28 00:50:46 +10:00
Daniel Cousens
6826aa312d TransactionBuilder: less exits 2016-09-27 22:39:38 +10:00
Daniel Cousens
83b2bb5d6a TransactionBuilder: avoid extra getPublicKeyBuffer calls 2016-09-27 22:39:38 +10:00
Daniel Cousens
302b4f0796 TransactionBuilder: signatureScript is only defined once 2016-09-27 16:31:09 +10:00
Daniel Cousens
fbcc23fa14 TransactionBuilder: avoid unnecessary cache object 2016-09-27 15:42:14 +10:00
Daniel Cousens
49c6ebe3a0 TransactionBuilder: reword error for correctness 2016-09-27 15:42:11 +10:00
Daniel Cousens
61718cdbaa txb: remove unused variables 2016-09-26 15:34:43 +10:00
Daniel Cousens
17c6ff62a0 bufferutils: fix pushDataInt output 2016-08-31 16:01:36 +10:00
Daniel Cousens
cc1af7d6a3 Transaction: return a slice, not the original Buffer 2016-08-10 11:44:09 +10:00
Daniel Cousens
6eae0241aa Transaction: allow parameterizable buffer 2016-08-10 11:44:09 +10:00
Daniel Cousens
9f1d41fc44 script: enforce PUSH_DATA codes for witness outputs 2016-07-12 12:32:29 +10:00
Daniel Cousens
20a026aefe scripts/tests: add witness* scripts 2016-07-12 12:32:29 +10:00
Daniel Cousens
148e9fc7a8 Merge branch 'master' into codesep 2016-06-30 16:13:08 +10:00
Daniel Cousens
6faeae397f TxBuilder: add setVersion 2016-06-22 14:57:33 +10:00
Daniel Cousens
697f2da1bc Transaction: re-work hashForSignature for readability 2016-06-22 14:46:05 +10:00
JP Richardson
ac8ae8f0ed opcodes: add json extension to fix Webpack JSON loader 2016-06-08 17:00:37 -05:00
Daniel Cousens
79ac51dbbd Merge branch 'master' into fix/isCoinbaseHash 2016-05-06 14:18:06 +10:00
Daniel Cousens
d58e09a3a7 Block: add checkMerkleRoot 2016-05-05 16:51:33 +10:00
Kirill Fomichev
8ddcf737f9 Update Transaction.isCoinbaseHash
- add argument type-checking
- replace Array.every on for-loop
2016-05-03 15:47:15 +03:00
Karel Bilek
f958dd1e86 Adding Transaction.prototype.isCoinbase 2016-05-03 21:46:35 +10:00
Daniel Cousens
ea4ce4e2a6 ECPair: no elseif needed, move default for clarity 2016-04-27 18:04:35 +10:00
Daniel Cousens
00cee340dd ECPair: don't depend on WIF error message, avoid unnecessary import 2016-04-27 17:05:33 +10:00
Daniel Cousens
e52c0d5b67 ECPair: use toBase58Check 2016-04-27 16:42:25 +10:00
Daniel Cousens
9db67bb3b1 Cleanup for #540 (#551)
* Txbuilder: early exit as soon as possible

* Txbuilder: prefer function declaration over variable

* TxBuilder: extract extractFromOutputScript

* TxBuilder: extract buildFromInputData
2016-04-08 12:23:32 +10:00
Kirill Fomichev
bc9a95e0ae Use buffer-reverse instead [].reverse.call 2016-03-10 07:57:30 +03:00
Daniel Cousens
7d2b2dee45 Merge pull request #550 from bitcoinjs/testnet
Add network list tests for ECPair/HDNode
2016-02-25 18:20:53 +11:00
Daniel Cousens
285bbd6478 Merge pull request #540 from blocktrail/segwit-prep
Refactoring `extractInput` and `__build` to enable nested scripts
2016-02-25 13:59:47 +11:00
Daniel Cousens
aae5db6a59 ECPair/HDNode: missing version from list is Unknown, not Invalid 2016-02-25 13:48:29 +11:00
Daniel Cousens
bdb0dd4a17 HDNode/tests: add testing for invalid network version from networks list 2016-02-25 13:41:35 +11:00
Daniel Cousens
9e32c892ef ECPair/tests: always use WIF for error throwing 2016-02-25 13:26:05 +11:00
Kirill Fomichev
48866992d4 Update wif to 2.0.1 2016-02-24 13:08:40 +03:00
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
Daniel Cousens
8f821f4768 ECPair: remove use of assert 2015-08-14 10:56:31 +10:00
Daniel Cousens
254b670427 add types 2015-08-14 10:56:30 +10:00
Daniel Cousens
5ae66d46e4 mv opcodes.js -> opcodes.json 2015-08-14 10:53:44 +10:00
Daniel Cousens
a8db7b2cbf block: use Tx.byteLength to avoid double serialization 2015-08-14 08:23:50 +10:00
Daniel Cousens
ae0001ce37 TxBuilder: more explicit comment for address type parameter 2015-08-13 19:07:09 +10:00
Daniel Cousens
56160622ca adhere to standard 5.0.0 2015-08-13 14:25:32 +10:00
Daniel Cousens
47364293a9 message: remove old TODO 2015-08-11 16:45:32 +10:00
Daniel Cousens
64657eb81f ECSignature: further avoidance of assert 2015-08-11 16:42:45 +10:00
Daniel Cousens
9d1c610c08 Transaction: capitalize Buffer constants 2015-08-11 16:42:45 +10:00
Daniel Cousens
6fbdecc39d networks: remove pchMessageStart chain parameter 2015-08-11 16:41:34 +10:00
Daniel Cousens
a4eb58f103 TxBuilder: pass network through fromTransaction, fixes failing tests 2015-08-07 16:56:27 +10:00
Daniel Cousens
1e90e1620a TxBuilder: throw on keyPair network inconsistency 2015-08-07 16:54:22 +10:00
Daniel Cousens
2971816588 TxBuilder: pass network through to fromTransaction 2015-08-07 16:41:24 +10:00
Daniel Cousens
f47decaa2f HDNode: adopt new strict network list parameters 2015-08-07 16:36:10 +10:00
Daniel Cousens
d3579289bd ECPair: use 1 line for throw 2015-08-07 16:36:10 +10:00
Daniel Cousens
6443e4c2b6 ECPair: support strict network syntax 2015-08-07 16:36:10 +10:00
Daniel Cousens
f5d99d8f8a address: remove network detection 2015-08-07 16:36:10 +10:00
Daniel Cousens
b67a3dcf9e TxBuilder: specify missing network information for TxBuilder 2015-08-07 16:36:10 +10:00
Daniel Cousens
37d094c179 TxBuilder: avoid use of network dependent functions where possible 2015-08-07 16:36:10 +10:00
Daniel Cousens
bdf92f73b4 HDNode: use throw over assert 2015-07-28 17:42:10 +10:00
Daniel Cousens
1a4000cc98 address: throw Invalid address instead of hash/version for fromBase58Check 2015-07-24 12:18:00 +10:00
Daniel Cousens
13f414c122 remove Address constructor 2015-07-24 12:18:00 +10:00
Daniel Cousens
abd27dd2be TxBuilder: disable Address object as valid input 2015-07-24 12:18:00 +10:00
Daniel Cousens
e9193df290 message: cease accepting an Address object 2015-07-24 12:18:00 +10:00
Daniel Cousens
588b346f5d ECPair: cease using Address for address encoding 2015-07-24 12:18:00 +10:00
Daniel Cousens
5ce093739e TxBuilder: clarify comment about coin base script support 2015-07-20 16:30:55 +10:00
Daniel Cousens
5021714a85 ECSignature: verbose comments are overly verbose, see BIP if necessary 2015-07-07 18:04:52 +10:00
Daniel Cousens
e8fd3887da ECSignature: account for SIGHASH being ignored 2015-07-07 17:47:29 +10:00
Daniel Cousens
92f9342c69 adhere more closely to BIP66 2015-07-07 17:42:01 +10:00
Daniel Cousens
5ba0c3d578 Merge pull request #420 from bitcoinjs/ecdsabreak
index: stop exposing ecdsa
2015-07-07 10:35:07 +10:00
Wei Lu
db3523d2c9 Merge pull request #418 from bitcoinjs/ecdsatypes
Stricter typing in ECDSA
2015-07-05 16:42:44 +08:00
Daniel Cousens
97c4de9da6 *: throw new Error over assert(false, ... 2015-06-23 16:44:05 +10:00
Daniel Cousens
7bd63fd9b9 index: stop exposing ecdsa 2015-06-23 16:17:45 +10:00
Daniel Cousens
73d8128f0f ecdsa: always enforce types in ecdsa 2015-06-23 16:11:34 +10:00
Daniel Cousens
eb5508565a Merge pull request #411 from blocktrail/sign-incorrect-op0s-master
fix txb.sign having issues when an incomplete TX contains OP_0s, but not enough
2015-06-01 12:01:36 +10:00
Daniel Cousens
04f448cc8d tx-builder: remove unnecessary this context 2015-05-30 14:32:14 +10:00
Wei Lu
88cc90481f add missing bufferutils require 2015-05-30 12:12:19 +08:00
Wei Lu
d7019e7492 Revert "bufferutils: remove equal, use Buffer.compare"
This reverts commit 75540b6116.
See discussion in https://github.com/bitcoinjs/bitcoinjs-lib/pull/410
2015-05-30 11:50:38 +08:00
Ruben de Vries
d2bee4d67f fix txb.sign having issues when an incomplete TX contains OP_0s, but not enough 2015-05-28 22:47:01 +02:00
Daniel Cousens
f64df79555 *: adhere to standard 3 2015-05-21 00:46:36 +10:00
Daniel Cousens
7b0060d4a5 Merge pull request #400 from bitcoinjs/hashfor
Add non SIGHASH_ALL flag support
2015-05-03 19:24:46 +10:00
Daniel Cousens
4c030be343 ecdsa: remove unused verifyRaw 2015-04-28 16:51:20 +10:00
Daniel Cousens
a221bd142c ecdsa: split steps up further as per sec1-v2.pdf 2015-04-28 16:51:20 +10:00
Daniel Cousens
4f8c7f4348 ecdsa: 1.6.1 moved to relevant section 2015-04-28 16:51:20 +10:00
Daniel Cousens
e073ee3d46 ecdsa: avoid 2-line if statements 2015-04-28 16:51:20 +10:00
Daniel Cousens
5d36135c91 transaction: s/txout/txOut/ 2015-04-28 11:08:23 +10:00
Daniel Cousens
833bf9fa86 transaction: add SIGHASH_* implementations 2015-04-28 11:04:06 +10:00
Daniel Cousens
f9b99fc0df txbuilder: remove unused bufferutils import 2015-04-27 12:06:01 +10:00
Daniel Cousens
75540b6116 bufferutils: remove equal, use Buffer.compare 2015-04-22 10:17:16 +10:00
Daniel Cousens
5fee511ff5 rm ECKey/ECPubKey 2015-04-09 15:29:05 +10:00
Daniel Cousens
e106d02731 standard formatting fixes 2015-03-19 14:06:36 +11:00
Daniel Cousens
4c8b0f38ea replace ECKey/ECPubKey with ECPair 2015-03-19 13:33:28 +11:00
Daniel Cousens
31832293dd ECPair: lazily calculate Q 2015-03-19 13:33:28 +11:00
Daniel Cousens
7559ee880d add ECPair module 2015-03-19 13:33:28 +11:00
Daniel Cousens
b5c42303ff crypto: use packages directly 2015-03-17 12:31:53 +11:00
Daniel Cousens
bd464d7cb5 networks: remove estimateFee entirely 2015-03-17 08:23:14 +11:00
Daniel Cousens
7d2e1cd3ba networks: remove exhaustive non-top 5 networks 2015-03-17 08:23:13 +11:00
Daniel Cousens
01036ee294 Merge pull request #380 from bitcoinjs/magic
Magic constants
2015-03-17 08:01:49 +11:00
Daniel Cousens
0e0a12da27 txbuilder: fix #374 null inputs 2015-03-16 13:53:28 +11:00
Daniel Cousens
063b036988 networks: remove magicPrefix double up 2015-03-16 11:34:51 +11:00
Daniel Cousens
fc8dd65c0e networks: name e variable in loop 2015-03-16 11:34:51 +11:00
Daniel Cousens
1079bf95c1 message: use messagePrefix naming over magicPrefix 2015-03-16 11:34:51 +11:00
Daniel Cousens
607b3b7983 networks: use byteLength over toBuffer 2015-03-16 11:34:51 +11:00
Daniel Cousens
9cda36fc76 Transaction: extract byteLength calculation to prototype method 2015-03-16 11:34:51 +11:00
Daniel Cousens
c3a39444e3 networks: extract estimateFee as a bind 2015-03-16 11:34:51 +11:00
Daniel Cousens
6a551d9e1e networks: s/magicPrefix/messagePrefix, adds magic constant 2015-03-16 11:34:51 +11:00
Daniel Cousens
6c02e1692a txbuilder: re-add verification optimizations 2015-03-13 15:42:13 +11:00
Daniel Cousens
4660b84c2d txbuilder: refactor for clarity 2015-03-13 15:28:26 +11:00
Ruben de Vries
000625c191 prefill signatures with OP_0s and place signatures in correct order in txb.sign when it's not already prefilled with OP_0s 2015-03-05 10:21:40 +01:00
Daniel Cousens
7a469f6620 Merge pull request #372 from bitcoinjs/op0fix
TransactionBuilder multisig OP_0 fix
2015-03-05 18:46:16 +11:00
Daniel Cousens
b6622b4cff script: return malformed script if returned pushDataOut out of range 2015-03-04 21:28:48 +11:00
Daniel Cousens
d00ec9af29 scripts: fix isScriptHashInput classification 2015-03-04 21:00:07 +11:00
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