Commit Graph

269 Commits

Author SHA1 Message Date
Christopher Jeffrey
6136434959 refactor. 2016-03-20 09:19:43 -07:00
Christopher Jeffrey
b356790136 move reader and writer. 2016-03-15 13:48:36 -07:00
Christopher Jeffrey
5fb16d29e6 refactor. 2016-03-15 13:31:54 -07:00
Christopher Jeffrey
5da21fd6e8 new script.js. 2016-03-15 05:00:15 -07:00
Christopher Jeffrey
f0edd2c944 remove old script.js. 2016-03-15 04:59:52 -07:00
Christopher Jeffrey
c445fcd1bd more linting. 2016-03-15 04:59:39 -07:00
Christopher Jeffrey
bf8475afe1 buffer writer. buffer reader. 2016-03-14 16:04:28 -07:00
Christopher Jeffrey
adeee1eb67 checksequenceverify. scripting improvements. 2016-03-07 23:08:47 -08:00
Christopher Jeffrey
3dc0f4d412 checksequenceverify. 2016-03-07 21:55:26 -08:00
Christopher Jeffrey
6b54897b57 refactor. 2016-02-28 20:26:10 -08:00
Christopher Jeffrey
8a8b664061 more fixes. cleanup debugging. 2016-02-28 06:07:04 -08:00
Christopher Jeffrey
0e3aa32677 correct segwit signing. 2016-02-28 05:44:41 -08:00
Christopher Jeffrey
3fcc7d5b07 segwit wallet support. segwit chain improvements. 2016-02-28 04:12:51 -08:00
Christopher Jeffrey
bd868cda7a segwit things 2016-02-27 05:51:48 -08:00
Christopher Jeffrey
77c9348824 get segnet working. 2016-02-26 21:53:39 -08:00
Christopher Jeffrey
8467f339c1 segwit. misc. 2016-02-26 18:06:08 -08:00
Christopher Jeffrey
5d1f6089ed blockdb, segwit, and input fixes. 2016-02-26 04:32:31 -08:00
Christopher Jeffrey
4c653683b7 segregated - goddamn - witness... and docs update. 2016-02-26 03:54:26 -08:00
Christopher Jeffrey
a84f087e2e script optimization. 2016-02-23 04:58:19 -08:00
Christopher Jeffrey
b473ca7d18 coin method for framer and parser. 2016-02-23 00:14:09 -08:00
Christopher Jeffrey
1ced7af7b4 handle minimal data better. 2016-02-22 23:13:46 -08:00
Christopher Jeffrey
4cc5d73959 use zero for op_0. fix signed ints. 2016-02-22 21:59:52 -08:00
Christopher Jeffrey
9e36ecd62e isScript 2016-02-22 21:33:33 -08:00
Christopher Jeffrey
73d3291ee9 more buffer work. 2016-02-22 21:25:01 -08:00
Christopher Jeffrey
78e9be11c3 switch to buffers. 2016-02-22 20:37:15 -08:00
Christopher Jeffrey
10804959d5 add wrapper for elliptic vs secp256k1. see #52. 2016-02-21 04:37:50 -08:00
Christopher Jeffrey
9ff7e93c71 move sigop counting to checkInputs. 2016-02-19 04:16:29 -08:00
Christopher Jeffrey
29576c7bcc fix checkmultisig for nonstandard scripts. 2016-02-18 22:53:13 -08:00
Christopher Jeffrey
050d801849 standardness. chain. pool. 2016-02-18 15:26:03 -08:00
Christopher Jeffrey
83c5a6f906 minor. 2016-02-18 02:25:37 -08:00
Christopher Jeffrey
a6b1e8bdb0 recover keys. 2016-02-18 02:22:54 -08:00
Christopher Jeffrey
e68bab4ab3 make scripthash input test less insane. 2016-02-18 01:53:37 -08:00
Christopher Jeffrey
4b672d6337 fix sigops counting. 2016-02-18 01:45:47 -08:00
Christopher Jeffrey
ff467afaff minor. 2016-02-18 01:12:39 -08:00
Christopher Jeffrey
1f2e1fb6d5 add an extra failsafe check to checksig before normalizing DER sig length. 2016-02-17 21:32:29 -08:00
Christopher Jeffrey
86cebb7e3b normalize DER signature length. 2016-02-17 21:10:46 -08:00
Christopher Jeffrey
d22dc02e8f wait for flush. 2016-02-17 19:40:56 -08:00
Christopher Jeffrey
7b14c3b72b debugging. 2016-02-17 00:14:25 -08:00
Christopher Jeffrey
997f0acbb0 more refactoring. 2016-02-16 16:13:34 -08:00
Christopher Jeffrey
9d727cebae wallet tests. fixes. 2016-02-12 22:32:54 -08:00
Christopher Jeffrey
a3fc9159a0 add more extractor functions. 2016-02-12 16:10:36 -08:00
Christopher Jeffrey
6cc4c866dc wallet refactor. fixes. 2016-02-10 16:42:02 -08:00
Christopher Jeffrey
2ec7989b6a no more dynamic heights. 2016-02-06 21:51:38 -08:00
Christopher Jeffrey
274c6e6864 use utxo object instead of tx refs. 2016-02-06 04:54:38 -08:00
Christopher Jeffrey
18f0a55779 refactor tx. 2016-02-05 22:46:04 -08:00
Christopher Jeffrey
a367674584 more keypair stuff. 2016-02-04 03:33:15 -08:00
Christopher Jeffrey
fa22c79dbe hd and wallet work. 2016-02-04 02:44:16 -08:00
Christopher Jeffrey
2deccde29e wallet work. consistency. 2016-02-02 16:09:48 -08:00
Christopher Jeffrey
156601e40a createTX. hd fixes. 2016-02-02 02:50:36 -08:00
Christopher Jeffrey
f9d960ca23 api: more method renames. legacy support. docs. 2016-02-01 11:57:40 -08:00
Christopher Jeffrey
6ad621cace api: rename methods, properties. add legacy support. 2016-02-01 11:50:09 -08:00
Christopher Jeffrey
30ad543c31 more docs. rename some functions. 2016-01-29 11:33:00 -08:00
Christopher Jeffrey
07ddae9d33 misc fixes and improvements. 2016-01-27 19:43:24 -08:00
Christopher Jeffrey
f6dc42924b global debugging. script.isEncoded. 2016-01-20 12:25:19 -08:00
Christopher Jeffrey
a2c08d9692 drop extra coinbase functions. 2016-01-20 00:21:41 -08:00
Christopher Jeffrey
8abaef49a9 check for nulldata in script extraction. 2016-01-19 17:15:27 -08:00
Christopher Jeffrey
ebbb417283 more script data extraction improvements. 2016-01-19 15:53:00 -08:00
Christopher Jeffrey
b389dd1b5f better key and sig parsing for scripts. 2016-01-19 14:18:46 -08:00
Christopher Jeffrey
9011fcc25e stricter script standards. work on tx. 2016-01-18 01:52:18 -08:00
Christopher Jeffrey
6b36bad41d fix calls to isLowDER. 2016-01-17 21:23:19 -08:00
Christopher Jeffrey
575843acef work on chain. check for low der sigs. 2016-01-17 19:57:34 -08:00
Christopher Jeffrey
3745577837 standard opcodes. remove tx methods. 2016-01-17 15:52:09 -08:00
Christopher Jeffrey
6f4609792f regtest support. tx methods. 2016-01-16 23:48:18 -08:00
Christopher Jeffrey
b9041a0157 sign unknown txs. 2016-01-16 04:50:33 -08:00
Christopher Jeffrey
b1d46206a8 script fixes. 2016-01-15 19:28:17 -08:00
Christopher Jeffrey
e5a82c7195 sighash. tx signing. testnet. 2016-01-15 15:53:57 -08:00
Christopher Jeffrey
46295b3c08 cleanup. misc. 2016-01-15 02:23:22 -08:00
Christopher Jeffrey
7854ec07d8 fix lockTime and changeIndex. 2016-01-14 18:16:49 -08:00
Christopher Jeffrey
0ba31eeb59 better script conformance. 2016-01-14 15:58:22 -08:00
Christopher Jeffrey
282639b5b1 script standardness. 2016-01-14 11:45:33 -08:00
Christopher Jeffrey
077588e90a fix script.args. 2016-01-14 01:34:40 -08:00
Christopher Jeffrey
f8ec64d46f do not throw on empty stack. 2016-01-13 20:20:18 -08:00
Christopher Jeffrey
a71da261ad handle low S values in signatures. 2016-01-12 20:26:11 -08:00
Christopher Jeffrey
645a3a59b2 minor. recover keys for isMultisig? 2016-01-12 02:08:07 -08:00
Christopher Jeffrey
fdc72b2062 let isMultisig handle m and n validation. 2016-01-12 01:13:22 -08:00
Christopher Jeffrey
f420b41907 improve script.isMultisig. 2016-01-11 23:58:43 -08:00
Christopher Jeffrey
b77314dd0f signature work. script function renames. add wallet.fillTX/tx.fill. 2016-01-11 15:20:44 -08:00
Christopher Jeffrey
6f86ca2d02 add utils.isBytes. 2016-01-11 01:07:05 -08:00
Christopher Jeffrey
9c2b0015d1 checkmultisig fixes. misc. 2016-01-11 00:40:16 -08:00
Christopher Jeffrey
cf5a117a3e fixes and improvements. allow arbitrary redeem scripts for wallet. 2016-01-11 00:10:31 -08:00
Christopher Jeffrey
442c984c12 improve p2sh building. change wallet key/redeem methods. 2016-01-10 21:43:52 -08:00
Christopher Jeffrey
eb1a3ea6d2 transaction improvements. 2016-01-10 04:58:03 -08:00
Christopher Jeffrey
0b7ca266ee tx/script refactor and improvements. 2016-01-09 19:02:19 -08:00
Christopher Jeffrey
6b10fabc5f tx refactor. etc. 2016-01-08 19:27:00 -08:00
Christopher Jeffrey
d56f7a3733 even more bufffer work. 2016-01-08 04:11:46 -08:00
Christopher Jeffrey
465b23013d temporarily use buffers. coinbase fixes. script/tx fixes. 2016-01-08 03:34:55 -08:00
Christopher Jeffrey
df420a4a8b refactor. work. 2016-01-08 02:22:35 -08:00
Christopher Jeffrey
8d120a4fd6 more block verification. 2016-01-06 19:15:41 -08:00
Christopher Jeffrey
e1ec89fe7d sigops 2016-01-06 01:41:06 -08:00
Christopher Jeffrey
3625a4f4c9 minor fixes. 2015-12-30 14:34:16 -08:00
Christopher Jeffrey
67d1405c15 handle compact mantissa numbers. 2015-12-29 13:13:51 -08:00
Christopher Jeffrey
afcb89f76f block and tx getters. coinbase height. multisig input test. 2015-12-24 13:19:29 -08:00
Christopher Jeffrey
389ee296b0 improve tx building. minor style fixes. utils.uniq. 2015-12-23 16:24:29 -08:00
Christopher Jeffrey
d32a951f37 fix isMultisig: compare to n value. 2015-12-23 11:45:43 -08:00
Christopher Jeffrey
2299ee757e minor refactor. 2015-12-23 11:35:57 -08:00
Christopher Jeffrey
fdc11b76b2 start checking for height coinbases earlier. 2015-12-23 04:44:21 -08:00
Christopher Jeffrey
58d8e3ce53 fix coinbase parsing. 2015-12-23 04:14:51 -08:00
Christopher Jeffrey
b3f457ee31 improve locktime checks and coinbase parsing. 2015-12-23 02:34:51 -08:00
Christopher Jeffrey
3d417f48df improve coinbase height check. 2015-12-22 20:07:20 -08:00
Christopher Jeffrey
618177b6a6 grab block height from the coinbase script. 2015-12-22 19:30:32 -08:00
Christopher Jeffrey
07a1322749 inspect methods. better data parsing. expose modules. 2015-12-22 19:27:36 -08:00
Christopher Jeffrey
1c8604477f improve script type tests. improve input/output data. 2015-12-22 14:50:07 -08:00
Christopher Jeffrey
500f079632 fix script arithmetic, op_verify, and wallet.fillUnspent. 2015-12-21 11:26:13 -08:00
Christopher Jeffrey
87d4d4b0ad refactor script and wallet. better redeem script error. 2015-12-20 16:08:00 -08:00
Christopher Jeffrey
1db84a0528 wallet json and prefix. style. cleanup. 2015-12-20 01:43:09 -08:00
Christopher Jeffrey
61699cca3a style: function names. 2015-12-19 15:43:28 -08:00
Christopher Jeffrey
0aff6d7cfe improve script.isValidSig. 2015-12-19 15:26:26 -08:00
Christopher Jeffrey
2e7892c798 use keyPair() in script.verify. whitespace. 2015-12-19 15:24:19 -08:00
Christopher Jeffrey
6411ec8914 fix p2sh multisig verification. 2015-12-19 01:43:34 -08:00
Christopher Jeffrey
1e802c152f comments. more style consistency. 2015-12-18 22:53:31 -08:00
Christopher Jeffrey
5ece45091b style consistency. 2015-12-18 22:37:02 -08:00
Christopher Jeffrey
283157dd71 add allowEval option. 2015-12-18 17:56:06 -08:00
Christopher Jeffrey
6ae273f84d tx.verify: compare top stack item against zero instead of one. 2015-12-18 15:43:17 -08:00
Christopher Jeffrey
5791672c07 pass _network to tx. script debugging. tx filled total. 2015-12-18 13:01:23 -08:00
Christopher Jeffrey
aac4911b4e remove comments for pushdata issue. 2015-12-17 17:39:08 -08:00
Christopher Jeffrey
f89908bb65 script formatting 2015-12-17 17:37:13 -08:00
Christopher Jeffrey
3e747f0df4 comment 2015-12-17 17:33:02 -08:00
Christopher Jeffrey
efe1181bc1 move key sorting to utils. 2015-12-17 17:23:33 -08:00
Christopher Jeffrey
b74e8de067 input tests. function names. getInputKey/getOutputKey. 2015-12-17 17:14:41 -08:00
Christopher Jeffrey
6abfc10a28 improve input checks with keys/hashes/redeemscript. 2015-12-17 16:53:35 -08:00
Christopher Jeffrey
6caa6b91dd add spendable checking for checklocktimeverify. 2015-12-17 16:06:08 -08:00
Christopher Jeffrey
5e89aedf0b improve input testing. 2015-12-17 16:06:08 -08:00
Christopher Jeffrey
0c8168c697 rename colored coin check. all input script tests. 2015-12-17 16:06:08 -08:00
Christopher Jeffrey
3e608c2cc6 script and standard transaction types. prefixes. 2015-12-17 16:06:08 -08:00
Christopher Jeffrey
07a6788831 optimize block and tx rendering. script maxes. sync. 2015-12-17 16:06:08 -08:00
Christopher Jeffrey
88ddb3620c get blockchain sync working. fix pushdata ops. 2015-12-17 16:05:48 -08:00
Christopher Jeffrey
5e5507f668 optimize checkmultisig. 2015-12-15 01:48:21 -08:00
Christopher Jeffrey
c68ab4ee7d implement all sighash types. add hasUnspent(). 2015-12-15 01:22:24 -08:00
Christopher Jeffrey
b0a3a0e853 utils. minor fixes. wallet functions. 2015-12-14 14:00:06 -08:00
Christopher Jeffrey
243d3fd69f fill checkmultisig scripts with 0s if not enough keys are available. add format function. 2015-12-10 17:53:42 -08:00
Christopher Jeffrey
3f44538b46 remove commented code. error consistency. 2015-12-10 02:28:57 -08:00
Christopher Jeffrey
3dec18c2c7 wallet/tx/script: n limit. refactor multisig options. 2015-12-10 02:25:44 -08:00
Christopher Jeffrey
26035c3b41 minor fix for disabled op_eval. 2015-12-09 14:40:40 -08:00
Christopher Jeffrey
72d9a93773 fix and test if statements. fix comparisons. 2015-12-09 14:35:23 -08:00
Christopher Jeffrey
690fe7163a better handling of [] when it is OP_0. 2015-12-09 12:42:45 -08:00
Christopher Jeffrey
2fd1d171f2 handle op_1negate. 2015-12-09 12:15:02 -08:00
Christopher Jeffrey
79a594716a reorder opcode handlers. move op_eval (disabled). 2015-12-09 12:02:39 -08:00
Christopher Jeffrey
d45350ede9 refactor script.execute order of opcodes. 2015-12-09 12:00:35 -08:00
Christopher Jeffrey
e605fe5388 whitespace. 2015-12-09 11:57:54 -08:00
Christopher Jeffrey
a0a391e89e add if/notif/else/endif opcodes. 2015-12-09 11:55:05 -08:00
Christopher Jeffrey
d1ac6e914d refactor script.execute. 2015-12-09 10:57:18 -08:00
Christopher Jeffrey
c869578009 script: cleanup. 2015-12-09 10:44:44 -08:00
Christopher Jeffrey
8a33f2efa1 add getFullPublicKey/getOwnPublicKey and use appropriately. 2015-12-08 19:42:12 -08:00
Christopher Jeffrey
a9a9cf0879 add more opcodes to script.execute. handle codesep properly. 2015-12-08 14:06:10 -08:00
Christopher Jeffrey
fd7d20be9c enforce strict ordering with checkmultisig. 2015-12-08 11:46:14 -08:00
Christopher Jeffrey
3c0bf360e2 add bip66 strict der sig checking. 2015-12-08 11:35:42 -08:00
Christopher Jeffrey
adbb0099a1 add checklocktimeverify. pass in tx and input to execute() instead of using hasher callback. 2015-12-08 11:24:22 -08:00
Christopher Jeffrey
7016991366 order keys and signatures for multisig correctly. 2015-12-07 19:18:37 -08:00
Christopher Jeffrey
b1e7cde3dd improve script functionality and usage. 2015-12-07 15:39:18 -08:00
Christopher Jeffrey
cf20326e98 verify sighash types other than all. 2015-12-07 14:22:25 -08:00