Commit Graph

791 Commits

Author SHA1 Message Date
Chris Stewart
465f42d5f5 All tx_invalid.json tests are passing 2016-12-19 09:02:28 -06:00
Chris Stewart
622c59e50e Implementing max push size of 520 bytes for a segwit script 2016-12-18 18:33:49 -06:00
Chris Stewart
9ae3d12c5b All tx_valid.json test cases passing 2016-12-17 13:51:56 -06:00
Chris Stewart
27d23b1ca9 Refactoring WitnessTransactionSignatureComponent to take in a 'Transaction' type instead of a 'WitnessTransaction' type -- this is needed for the case of trying to spend a witness scriptPubKey with a base transaction. This won't succeed, but should be possible to try and run through the interpreter 2016-12-16 15:21:18 -06:00
Chris Stewart
df18ddec51 Fixing bug inside of hasUnexpectedWitness wrt to BaseTransactionSignatureComponent having a witness tx with non segwit input with a unused witness 2016-12-16 09:46:10 -06:00
Chris Stewart
96a736bf4d Merge branch 'segwit' into segwit_tx_tests 2016-12-16 08:31:02 -06:00
Chris Stewart
8183d3764c Merge pull request #8 from TomMcCabe/segwit
[Minor] Revise/improve doc notes to reduce unnecessary white spaces and add references
2016-12-15 20:06:54 -06:00
Tom McCabe
6c54f53628 add program stack size check to OP_PICK and OP_ROLL 2016-12-15 19:04:37 -06:00
Chris Stewart
a16cb40836 Adding SigVersion parameter to serializeForSignature -- this is needed for witness txs with inputs using old scriptPubKey/scriptSig types 2016-12-15 18:01:22 -06:00
Tom McCabe
eb948328a5 missed some opCode require statements w/ multiple clauses 2016-12-15 17:56:34 -06:00
Chris Stewart
12caa94cd2 Fixing bug with how to handle UnassignedWitness versions when ScriptErrorDiscourageUpgradableNOPs flag is NOT set 2016-12-15 11:05:17 -06:00
Chris Stewart
ab54cdab67 Fixing bug in transaction serialization for SIGHASH_SINGLE|SIGHASH_ALL of segwit txs 2016-12-15 09:02:09 -06:00
Tom McCabe
c1ae07b5a1 change true/false match to if/else in SpliceInterpreter, combine multiple opCode require clauses into a single clause 2016-12-15 08:47:52 -06:00
Tom McCabe
c939fe3d3e throughout script directory: optimize doc notes, add references, remove unneccessary white spaces, refactor 'case true/false' pattern matching to 'if/else' statements 2016-12-14 19:31:58 -06:00
Chris Stewart
9a5864c3bf fixing bug in 'hasUnexpectedWitness' inside of ScriptInterpreter 2016-12-14 14:19:32 -06:00
Tom McCabe
8b1f4db05f Merge branch 'segwit' of https://github.com/Christewart/bitcoin-s-core into segwit 2016-12-14 13:25:56 -06:00
Chris Stewart
2aab5071fe Removing 'TransactionInputWitness' data structure as it is redundant, now a TransactionWitness just contains a sequence of ScriptWitness 2016-12-14 10:20:41 -06:00
Chris Stewart
306c9727fc Removing 'CurrencyUnit' return type from generators were it is irrelevant 2016-12-14 09:30:11 -06:00
Chris Stewart
52103c1d44 Fixing nits/random code redundancies in src 2016-12-13 19:50:45 -06:00
Chris Stewart
b542961ed9 Implementing generator for p2sh(p2wsh) transactions 2016-12-13 13:31:15 -06:00
Chris Stewart
202c5df832 Implementing spec for P2SH(P2WPKH) signature generation 2016-12-13 10:24:13 -06:00
Chris Stewart
3b03138be0 Implementing WitnessScriptPubKey as a redeem script inside of P2SHScriptSignature 2016-12-12 12:55:28 -06:00
Chris Stewart
2be925542a Implementing P2WSH(MultiSig) and fixing bugs in maxSigs/requiredSigs inside of MultiSignatureScriptPubKey 2016-12-11 14:34:49 -06:00
Chris Stewart
899c0e029e Refactoring code for WitnessGenerators 2016-12-10 19:26:55 -06:00
Chris Stewart
e99a9f1602 Adding generator and spec for P2WSH(P2PKH) witness txs 2016-12-10 18:46:03 -06:00
Chris Stewart
05f3b5fefc Implementing ScriptFactory inside of ScriptSignature 2016-12-09 20:01:40 -06:00
Chris Stewart
725dce2da0 Creating ScriptFactory, implementing it inside of ScriptPubKey 2016-12-09 19:42:50 -06:00
Chris Stewart
10892612e2 Wrote property to check all P2WSH(P2PK) txs can be created and verified 2016-12-09 15:50:53 -06:00
Chris Stewart
a106d23610 Implementing a generator to created a signed witness transaction taht spends a P2WPKH output, create a spec that verifies we can spend all of those outputs 2016-12-08 17:12:21 -06:00
Chris Stewart
86d8a92657 Refactoring WitnessTransactionSignatureComponentV0 to remove explicit paramter of 'ScriptWitness' -- this can be derived from the inputIndex 2016-12-07 11:17:44 -06:00
Chris Stewart
ac2c583905 Adding generators for witnessScriptPubKey types 2016-12-07 09:50:37 -06:00
Chris Stewart
ece7c57abb Fixing bug in OP_CHECKMULTISIG that would loop infinitely 2016-12-07 08:27:43 -06:00
Chris Stewart
2a2c551f7d Implementing NULLFAIL flag inside of script_tests.json 2016-12-06 10:09:09 -06:00
Chris Stewart
2b3010b808 Implementing ScriptErrorWitnessUnexpected for the case of having a witness without a WitnessScriptPubKey 2016-12-05 15:52:04 -06:00
Chris Stewart
5d29512fe2 Implementing invariant for p2wsh scriptSigs being one push followed by the redeemScript 2016-12-05 14:28:53 -06:00
Chris Stewart
17654062c8 Implementing script_tests for the case when we have a witness scriptpubkey but no witness 2016-12-05 12:16:00 -06:00
Chris Stewart
31add907be Implementing 'UnassignedWitnessScriptPubKey' type for all witness types that are not defined yet in bitcoin protocol 2016-12-05 09:41:15 -06:00
Chris Stewart
2a48a15e53 Implementing P2SH(P2WPKH) 2016-12-04 16:51:15 -06:00
Chris Stewart
030f75b408 Fixing bug in serialization of tx for signature with P2SH(P2WSH) txs 2016-12-04 16:07:18 -06:00
Chris Stewart
ec2bef7a27 Implementing P2SH(P2WSH) 2016-12-04 11:58:49 -06:00
Chris Stewart
62e63afe39 First P2WPKH script_test.json passing 2016-12-03 12:01:17 -06:00
Chris Stewart
564003abfc Fixing bug in 'buildCreditingTransaction' for script_tests.json 2016-12-02 22:00:39 -06:00
Chris Stewart
f8b15175f8 Fixed all test cases that needed to be change due to moving CompactSizeUInts into ScriptSignature/ScriptPubKey -- now need to implement rest of segwit 2016-12-02 19:04:14 -06:00
Chris Stewart
ed0a1b37e7 Adding 'asmBytes' val to ScriptSignature -- this is the raw byte array from the scriptSig WITHOUT the a CompactSizeUInt bytes at the beginning 2016-12-02 16:32:20 -06:00
Chris Stewart
974829cc2d Successfully passing all ScriptSignature tests with new serialization algorithm 2016-12-02 14:23:14 -06:00
Chris Stewart
50705b3117 Successfully passing all ScriptPubKey tests with new serialization algorithm 2016-12-01 14:44:44 -06:00
Chris Stewart
df47efa634 Refactoring ScriptPubKey to incloude the CompactSizeUInt indicating how long it is, removing it from TransactionOutput 2016-11-30 15:46:07 -06:00
Chris Stewart
f4beb545cc Making WitnessV0TransactionSignatureComponent contain a WitnessTransaction 2016-11-29 14:33:29 -06:00
Chris Stewart
3c1cbf7ac1 Successfully serializing first transaction for a segwit signature 2016-11-28 19:18:40 -06:00
Chris Stewart
2a42c9b3f9 Adding WitnessTransaction serialization symmetry spec 2016-11-28 14:08:50 -06:00