Commit Graph

333 Commits

Author SHA1 Message Date
Christopher Jeffrey
016c85f8b5 fill refactor. accurate fee calculation. 2016-02-12 03:54:02 -08:00
Christopher Jeffrey
c4818c4bc8 add subtract fee option. 2016-02-12 02:44:11 -08:00
Christopher Jeffrey
686dcbcdd9 minor fixes. 2016-02-12 01:20:05 -08:00
Christopher Jeffrey
158a35881c add address.getType. 2016-02-11 02:00:54 -08:00
Christopher Jeffrey
4a6c73fc8e refactor signing. 2016-02-11 01:29:35 -08:00
Christopher Jeffrey
25767d9273 minor fixes. 2016-02-10 21:22:28 -08:00
Christopher Jeffrey
6cc4c866dc wallet refactor. fixes. 2016-02-10 16:42:02 -08:00
Christopher Jeffrey
17e25804de better preload. misc fixes. 2016-02-09 00:07:38 -08:00
Christopher Jeffrey
7d17dd855f utils.cmp. tx-pool improvements. 2016-02-07 06:39:58 -08:00
Christopher Jeffrey
bad5250983 serialization formats. 2016-02-07 03:36:07 -08:00
Christopher Jeffrey
2ec7989b6a no more dynamic heights. 2016-02-06 21:51:38 -08:00
Christopher Jeffrey
1761266ba9 improve tx-pool. 2016-02-06 19:10:40 -08:00
Christopher Jeffrey
7bb20437bc refactor tx instantiation. 2016-02-06 17:12:16 -08:00
Christopher Jeffrey
769b50c999 rename output.prev to coin. 2016-02-06 16:16:02 -08:00
Christopher Jeffrey
274c6e6864 use utxo object instead of tx refs. 2016-02-06 04:54:38 -08:00
Christopher Jeffrey
26f1e44eb3 saner _addInput. 2016-02-06 01:07:26 -08:00
Christopher Jeffrey
18f0a55779 refactor tx. 2016-02-05 22:46:04 -08:00
Christopher Jeffrey
84551e17e2 paths. scanning. unspents. 2016-02-05 03:44:42 -08:00
Christopher Jeffrey
e0ab0ab88d minor changes/fixes. 2016-02-03 02:09:03 -08:00
Christopher Jeffrey
3158f57e0f fix tx.render() and avoidFeeSnipping(). 2016-02-02 20:28:35 -08:00
Christopher Jeffrey
13d14b0130 tx: add bip69 sorting. 2016-02-02 17:57:38 -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
42e17bc0f2 rewrite wallet. allow multiple addresses. utilize hd. 2016-02-01 21:37:06 -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
b0ee614432 misc sync fixes. 2016-01-31 00:50:13 -08:00
Christopher Jeffrey
ef3f8f37db no priority on inspection. 2016-01-29 12:45:05 -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
e7d0ea81f9 block and tx methods. 2016-01-24 16:01:29 -08:00
Christopher Jeffrey
704c95c90d add tx.getPriority and tx.isFree. 2016-01-20 12:31:47 -08:00
Christopher Jeffrey
5e00e42903 better nonstandard signing. 2016-01-19 16:12:30 -08:00
Christopher Jeffrey
1258cbbbd4 fix input/output calls. 2016-01-19 15:58:12 -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
c8da41aa9d toJSON fixes. 2016-01-18 17:12:20 -08:00
Christopher Jeffrey
f5a63563e3 rename unspent. 2016-01-18 12:48:43 -08:00
Christopher Jeffrey
220b09bc67 fix unspent property. 2016-01-18 12:47:32 -08:00
Christopher Jeffrey
1d5e3ca27e add tx.setLockTime and tx.increaseFee (rbf). 2016-01-18 12:40:41 -08:00
Christopher Jeffrey
9011fcc25e stricter script standards. work on tx. 2016-01-18 01:52:18 -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
6154b1f7a1 improve tx verification. 2016-01-14 01:18:31 -08:00
Christopher Jeffrey
ef59dae1b5 simplify tbsHash. 2016-01-14 01:04:11 -08:00
Christopher Jeffrey
8f037ea430 tx: add tbsHash method. 2016-01-14 00:57:55 -08:00
Christopher Jeffrey
018d534c47 fix anyonecanpay. 2016-01-13 20:05:25 -08:00
Christopher Jeffrey
8ade973b31 sighash work 2016-01-13 19:41:03 -08:00
Christopher Jeffrey
a71da261ad handle low S values in signatures. 2016-01-12 20:26:11 -08:00
Christopher Jeffrey
de455fa3e9 improve int functions and usage in parser and framer. 2016-01-12 18:13:32 -08:00
Christopher Jeffrey
c94457cf1f more tx refactoring. 2016-01-12 05:15:22 -08:00
Christopher Jeffrey
b147951a83 rename some variables. 2016-01-12 04:23:53 -08:00
Christopher Jeffrey
7b27f5dc9b hard fee calculation. 2016-01-12 04:08:25 -08:00
Christopher Jeffrey
3c8442b1bb improve fee calculation. 2016-01-12 03:47:12 -08:00
Christopher Jeffrey
ca03911d80 do not check for uncompressed keys for now. 2016-01-12 03:27:50 -08:00
Christopher Jeffrey
abc1f2b610 signInput should test against keys. 2016-01-12 02:55:35 -08:00
Christopher Jeffrey
fdc72b2062 let isMultisig handle m and n validation. 2016-01-12 01:13:22 -08:00
Christopher Jeffrey
24f8bc69c5 refactor pool and tx. 2016-01-11 22:15:06 -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
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
871e36c426 tx.scriptOutput 2016-01-10 20:28:28 -08:00
Christopher Jeffrey
bf3906b4d4 more fee estimation. 2016-01-10 20:15:14 -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
314c14f422 input/output consistency. misc. 2016-01-09 13:22:08 -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
680bf01e98 add tx.isFinal. refactor chain usage. 2016-01-05 21:32:31 -08:00
Christopher Jeffrey
0f8819c78e minor fixes. refactor timestamps. 2016-01-04 04:12:26 -08:00
Christopher Jeffrey
3e5995f741 fix tx pool addition and tx verification. 2016-01-03 01:34:50 -08:00
Christopher Jeffrey
a4084d8252 more chain methods. 2016-01-01 18:32:15 -08:00
Christopher Jeffrey
3625a4f4c9 minor fixes. 2015-12-30 14:34:16 -08:00
Christopher Jeffrey
22427fe78f stop saving block height on blocks. 2015-12-29 18:35:30 -08:00
Christopher Jeffrey
43b0533a18 minor improvements and fixes. 2015-12-27 23:54:53 -08:00
Christopher Jeffrey
afcb89f76f block and tx getters. coinbase height. multisig input test. 2015-12-24 13:19:29 -08:00
Christopher Jeffrey
b14c4daee0 refactor tx.utxos(). 2015-12-23 18:31:31 -08:00
Christopher Jeffrey
389ee296b0 improve tx building. minor style fixes. utils.uniq. 2015-12-23 16:24:29 -08:00
Christopher Jeffrey
f68750991d add block.reward. add coinbase data to into. failsafe for getFee. 2015-12-23 05:33:48 -08:00
Christopher Jeffrey
2f6f3e11b1 Revert "use big numbers when calculating fee."
This reverts commit a057dc4064.
2015-12-23 02:42:57 -08:00
Christopher Jeffrey
a057dc4064 use big numbers when calculating fee. 2015-12-23 02:42:36 -08:00
Christopher Jeffrey
07a1322749 inspect methods. better data parsing. expose modules. 2015-12-22 19:27:36 -08:00
Christopher Jeffrey
b522aa2b06 handle merkleblock vs block better. 2015-12-22 15:03:17 -08:00
Christopher Jeffrey
1c8604477f improve script type tests. improve input/output data. 2015-12-22 14:50:07 -08:00
Christopher Jeffrey
d3e4dfaf5c fix some getters. move getInputData and getOutputData. wallet.toAddress. 2015-12-22 06:21:01 -08:00
Christopher Jeffrey
a17fe6fe5f use dynamic input and output objects. 2015-12-22 05:00:55 -08:00
Christopher Jeffrey
a91f245e86 add types to data. aliases for utils. 2015-12-22 04:03:15 -08:00
Christopher Jeffrey
eb6a9fc20d make data easier to extract from inputs and outputs. 2015-12-22 03:22:49 -08:00
Christopher Jeffrey
68c16b214a add rblock and rhash helpers. 2015-12-22 02:15:33 -08:00
Christopher Jeffrey
52b653083c add features potentially useful for blockchain explorers. 2015-12-21 20:00: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
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
6ae273f84d tx.verify: compare top stack item against zero instead of one. 2015-12-18 15:43:17 -08:00
Christopher Jeffrey
5942209f41 pass size into block and tx for maxsize checks. 2015-12-18 15:41:34 -08:00
Christopher Jeffrey
5791672c07 pass _network to tx. script debugging. tx filled total. 2015-12-18 13:01:23 -08:00
Christopher Jeffrey
d109eaba6c handle reject packet. 2015-12-17 19:47:20 -08:00
Christopher Jeffrey
135208910d always set nSequence to zero when nLockTime is present. 2015-12-17 18:33:27 -08:00
Christopher Jeffrey
1e0a153b59 do not overwrite lockTime input by user. 2015-12-17 17:58:09 -08:00
Christopher Jeffrey
7f70b573c1 enforce checklocktimeverify for nLockTime when adding input. tx.prevOut method. 2015-12-17 17:56:46 -08:00
Christopher Jeffrey
5b68ec0b3e add option for colored coin output creation. 2015-12-17 17:31:37 -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
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
c44ea0090f implement sighash_single bug. 2015-12-15 01:41:44 -08:00
Christopher Jeffrey
1b07d6e906 minor cleanup. 2015-12-15 01:23:49 -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
5c1606985a outputScript() consistency. 2015-12-10 18:02:47 -08:00
Christopher Jeffrey
1caa0804d9 add getKey functions to TX. 2015-12-10 17:54:34 -08:00
Christopher Jeffrey
d7eea0941e add less-than-dust to fee. recalculate fee after input scripts are templated. 2015-12-10 13:52:34 -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
f9186d785a ensure p2sh inputs have only push ops (do the same for raw multisig?). 2015-12-09 14:35:47 -08:00
Christopher Jeffrey
690fe7163a better handling of [] when it is OP_0. 2015-12-09 12:42:45 -08:00
Christopher Jeffrey
2412c0999b potential tx.verify fix. 2015-12-09 11:56:08 -08:00
Christopher Jeffrey
22e092d6b8 fix and test hd keys. 2015-12-08 16:36:47 -08:00
Christopher Jeffrey
5f8ad78e4d have tx.verify handle p2sh correctly. 2015-12-08 14:54:21 -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
77623bb8d6 remove useless code. 2015-12-07 16:34:44 -08:00
Christopher Jeffrey
a1fea2bd65 scriptOutput: move "p2shify". 2015-12-07 15:55:31 -08:00
Christopher Jeffrey
37e1c8a2ef formatting changes. 2015-12-07 15:51:15 -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
Christopher Jeffrey
1804acc77c tests passing. 2015-12-07 14:02:25 -08:00
Christopher Jeffrey
3d9d6be23c use this.m for nsigs. 2015-12-07 11:04:23 -08:00
Christopher Jeffrey
d7bc48fc2e move wallet.fill to tx object. 2015-12-07 11:00:58 -08:00
Christopher Jeffrey
ae394fad11 improve tx.maxSize for p2sh and multisig. 2015-12-05 20:54:18 -08:00
Christopher Jeffrey
6295642f20 remove useless if statement. 2015-12-05 20:23:33 -08:00
Christopher Jeffrey
4f76b9f18c fix scriptInput/signInput for multisig/p2sh. 2015-12-05 19:02:44 -08:00
Christopher Jeffrey
a2f13d94c3 fix address problems. update elliptic to 3.0.3. 2015-12-05 03:40:11 -08:00
Christopher Jeffrey
505aad8729 improve/fix p2sh. move input signing functionality to tx object. 2015-12-05 03:01:37 -08:00
Christopher Jeffrey
acbe4d0c2e remove wallet.signEmpty and tx.signature for now. 2015-12-05 00:01:59 -08:00
Christopher Jeffrey
87eea1e398 fixes and minor style changes 2015-12-04 22:50:13 -08:00
Christopher Jeffrey
ea9af49f4b hd and p2sh 2015-12-04 18:01:31 -08:00
Christopher Jeffrey
3bfd10d0d0 work 2015-12-01 22:59:26 -08:00
Christopher Jeffrey
296f95b27b tx: fix global variable assignment.
Signed-off-by: Fedor Indutny <fedor@indutny.com>
2014-05-18 21:00:55 +04:00
Fedor Indutny
dfdc69aa3a lib: remove heavy modules 2014-05-11 14:27:05 +04:00
Fedor Indutny
2c36c8692a wallet: .fill() 2014-05-11 01:43:20 +04:00
Fedor Indutny
ee9037e19a lib: jshint 2014-05-10 22:43:15 +04:00
Fedor Indutny
169be71d79 tx: store as JSON 2014-05-10 20:22:35 +04:00
Fedor Indutny
4b6eeeea66 tx-pool: ignore and remove stale transactions 2014-05-10 19:47:30 +04:00
Fedor Indutny
d49b04158f block: validate partial merkle tree 2014-05-10 19:45:03 +04:00
Fedor Indutny
50ed590c30 tx: .inputAddrs() 2014-05-10 13:04:22 +04:00
Fedor Indutny
2e3fb9a7a3 tx-pool: verify all signatures 2014-05-10 12:28:49 +04:00
Fedor Indutny
86088f8ae9 tx-pool: ignore invalid orphans 2014-05-10 11:41:27 +04:00
Fedor Indutny
0efe2e2021 script: fix verification of multisig 2014-05-10 10:39:20 +04:00
Fedor Indutny
2ee4c7cd3a tx-pool: save spending TXs 2014-05-09 21:30:55 +04:00
Fedor Indutny
cf2e0042ff tx: .maxSize() method 2014-05-09 15:51:58 +04:00
Fedor Indutny
d4f11676c7 tx: encode as hex 2014-05-09 15:00:50 +04:00
Fedor Indutny
26516085f2 lib: update bn.js and elliptic 2014-05-09 03:53:57 +04:00
Fedor Indutny
048bca0b8a wallet: store timestamp of transactions 2014-05-08 20:25:12 +04:00
Fedor Indutny
a6be7bf5f7 lib: JSON serialization for everyone 2014-05-06 21:33:05 +04:00
Fedor Indutny
69f3e85e37 tx-pool: initial 2014-05-06 16:25:46 +04:00
Fedor Indutny
f139ce2d91 wallet: multisig signing 2014-05-06 14:58:51 +04:00
Fedor Indutny
fa48b02d96 tx: remove .inputTx() method 2014-05-06 14:06:17 +04:00
Fedor Indutny
fb651d703e wallet: use compressed public key 2014-05-05 17:39:22 +04:00
Fedor Indutny
4328d7c3ec wip 2014-05-05 13:46:29 +04:00
Fedor Indutny
c5d7d7f5f2 tx: test verification 2014-05-05 04:42:12 +04:00
Fedor Indutny
113e7dcdc3 tx: fix verification 2014-05-05 04:30:39 +04:00
Fedor Indutny
9fd54758a2 tx: wip sign/verify 2014-05-05 03:14:31 +04:00
Fedor Indutny
471a78b0fa wallet: wip sign 2014-05-05 01:58:48 +04:00
Fedor Indutny
458e606359 wip 2014-05-04 23:24:32 +04:00
Fedor Indutny
f185574442 lib: save progress 2014-05-03 23:55:38 +04:00
Fedor Indutny
40ea4d1fb1 tx: parse 2014-05-03 17:46:15 +04:00
Fedor Indutny
6cb1594424 lib: save progress 2014-04-30 21:45:55 +04:00
Fedor Indutny
a20cb1688f wip 2014-04-30 12:44:59 +04:00