Chris Stewart
|
61ede1f214
|
implementing function in BitcoinScriptUtil to count the number of script operations - ScriptInterpreter now fails script if there are > 201 script operations
|
2016-04-12 20:05:08 -05:00 |
|
Chris Stewart
|
631be78b82
|
Refactoring CryptoInterpreter hash functions to use a higher order helper function
|
2016-04-12 09:17:16 -05:00 |
|
Chris Stewart
|
245e7ab741
|
Adding new factory function for script signatures which allows you to pass in the scriptPubKey
|
2016-04-12 08:30:17 -05:00 |
|
Chris Stewart
|
471e31a7a0
|
Refactoring Arithmetic interpretations to go through one of three higher order helper functions
|
2016-04-11 12:03:41 -05:00 |
|
Chris Stewart
|
8e48598785
|
Implementing operations that are currently illegal to Script - they just mark the script program as invalid right away
|
2016-04-10 10:02:25 -05:00 |
|
Chris Stewart
|
25ae09b5b1
|
Finishing modifying stack operations to mark script as invalid instad of throwing exception
|
2016-04-09 10:29:53 -05:00 |
|
Chris Stewart
|
27226ae0e7
|
Modifying stack interpreter operations to mark the script program as false instead of throwing exceptions
|
2016-04-09 09:29:04 -05:00 |
|
Chris Stewart
|
737d7369b8
|
Fixing bug in OP_TUCK implementation, adding comments to indicate that the boolean returned by 'loop' inside of interpreter indicates if any invalid things were done inside the evaluation of the script - NOT if the stack ended up as true or false
|
2016-04-08 18:43:50 -05:00 |
|
Chris Stewart
|
5c9fedb0be
|
Fixing bug in checking for that OP_IF/OP_NOTIFs have matching OP_ENDIFs
|
2016-04-08 16:14:48 -05:00 |
|
Chris Stewart
|
960e0fd009
|
Trying to fix build issues with travis-ci - hopefully scala 2.10.x works now
|
2016-04-08 14:17:37 -05:00 |
|
Chris Stewart
|
45fb82d2b7
|
Matching OP_RESERVED operations in interpreter, making OP_VERIF && OP_VERNOTIF operations illegal in the script
|
2016-04-08 13:05:56 -05:00 |
|
Chris Stewart
|
bc3c27d782
|
fixing bug in parsing byte array strings - now failing if there isn't enough data for an OP_PUSHDATA op, also not evaluating serialized script inside of p2sh scriptSig if the p2sh script flag is not set
|
2016-04-08 12:45:31 -05:00 |
|
Chris Stewart
|
f2430cf8d7
|
Refactoring all OP_PUSHDATA operations to use pushNumberBytesToStack - also fixing bug in opNumEqual
|
2016-04-08 10:39:59 -05:00 |
|
Chris Stewart
|
3abb542189
|
bumping scala version trying to get continous integration working
|
2016-04-08 08:37:42 -05:00 |
|
Chris Stewart
|
9c18a8dbf4
|
All tests passing in script_valid.json again - we now have broken up scriptSig & scriptPubKey execution into two parts with the stack state copied from scriptSig exection to scriptPubKey execution
|
2016-04-07 22:03:40 -05:00 |
|
Chris Stewart
|
be45a5c3ec
|
Implementing alternative for opCodeSeparator
|
2016-04-07 09:27:41 -05:00 |
|
Chris Stewart
|
6b34cc43c7
|
Major refactor on how scripts are run through the interpreter. Now first the scriptSignature is run through the intrpreter then the stack state from the scriptSig execution is copied into a new script program and run with the scriptPubKey as the script instructions
|
2016-04-06 16:26:14 -05:00 |
|
Chris Stewart
|
7d8024a67d
|
Major refactor in ScriptNumbers - creating ScriptNumberFactory which should be gone through to create ScriptNumbers. We now keep the byte representation of the number underneath the hood. This is needed for checking byte equality of numbers
|
2016-04-05 09:38:16 -05:00 |
|
Chris Stewart
|
8dadfad1aa
|
Fixing various bugs in Arithmetic interpreter - also fixing bug in ScriptInterpreter for detecting if the return value is false
|
2016-04-04 15:26:20 -05:00 |
|
Chris Stewart
|
fc71293256
|
Adding disabled bitwise operations
|
2016-04-04 13:14:36 -05:00 |
|
Chris Stewart
|
e382607837
|
Implementing code to check the p2sh serialized script after verifying the hash is the same as the hash in the scriptPubKey
|
2016-04-04 12:14:54 -05:00 |
|
Chris Stewart
|
d3c8cf2fd2
|
90% test coverage reached
|
2016-04-03 11:16:35 -05:00 |
|
Chris Stewart
|
27cad4c583
|
test coverage now at 88%
|
2016-04-02 16:08:45 -05:00 |
|
Chris Stewart
|
cb21705228
|
Refactoring stack interpreter to remove redudancy on error throwing
|
2016-04-01 14:48:07 -05:00 |
|
Chris Stewart
|
4d43762cdf
|
Removing unused functions, increasing test coverage
|
2016-04-01 14:07:41 -05:00 |
|
Chris Stewart
|
eb69e1e65b
|
Refactoring how test transactions are built to make them more scalable - fixing bug in OP_CHECKSIG implementation to pass an explicit signature & pubkey for all OP_CHECKSIG evaluations. This shouldn't be done for standard scripsigs/scriptPubkeys but it makes the implementation smaller & easier to read for now
|
2016-04-01 10:43:43 -05:00 |
|
Chris Stewart
|
966c8d1c83
|
Increasing more test coverage - 85% now
|
2016-03-31 18:59:36 -05:00 |
|
Chris Stewart
|
ae573b0658
|
Fixing bug in how OP_RETURN is evaluated by the ControlOperationsInterpreter
|
2016-03-31 11:28:23 -05:00 |
|
Chris Stewart
|
a71b62808f
|
fixing various bugs, increasing test coverage
|
2016-03-31 10:09:03 -05:00 |
|
Chris Stewart
|
d7f236d2db
|
Deleting some uneeded complexity inside of Transaction
|
2016-03-30 14:37:43 -05:00 |
|
Chris Stewart
|
3279e5c45f
|
Adding test cases to LockTimeInterpreter
|
2016-03-30 12:45:31 -05:00 |
|
Chris Stewart
|
716758cd64
|
Removing script types from ScriptPubKey's - this was redundant
|
2016-03-30 12:06:22 -05:00 |
|
Chris Stewart
|
816205e5f5
|
Removing the 'n' field from our TransactionOutput definition. This should not have been here - it is not in the bitcoin developer reference
|
2016-03-30 10:07:48 -05:00 |
|
Chris Stewart
|
6fa21f4d85
|
Refactoring factories for Transaction components to explicitly use their factories instead of implictly using them through Transaction companion objects
|
2016-03-30 09:52:27 -05:00 |
|
Chris Stewart
|
122f119f6c
|
All tests pass in script_valid.json as of this point - starting script_invalid.json
|
2016-03-30 08:51:12 -05:00 |
|
Chris Stewart
|
aa622b2009
|
Adding more error handling inside of decodeSignature to handle improperly encoded DER Signatures found in script_valid.json
|
2016-03-30 08:47:13 -05:00 |
|
Chris Stewart
|
2b5379ba14
|
Fixing a couple bugs with signature checking non standard txs, adding a object to hold our crypto params
|
2016-03-29 09:59:27 -05:00 |
|
Chris Stewart
|
4e63ce2079
|
Adding StackPushOperationFactory - this contains all of the push operations inside of the Script language
|
2016-03-28 20:12:30 -05:00 |
|
Chris Stewart
|
ff0b117c0e
|
Adding code to implement the script flag NULLDUMMy, changing how mulsignature script sigs are assigned in the factory. Now it can be ANY script number operation. When the script is evaluated it checks the NULLDUMMY flag and if the scriptsig starts with an OP_0
|
2016-03-28 09:22:52 -05:00 |
|
Chris Stewart
|
2a1f8742ce
|
Changing SIGHASH_ALL to be a case class so it can hold the byte of whatever the last byte in a signature is. This is needed because if the last byte does not match any other hash types it is classified as a SIGHASH_ALL
|
2016-03-27 12:05:41 -05:00 |
|
Chris Stewart
|
89b9c7f29f
|
Factoring out TransactionSignatureCheckerResult into it's own file
|
2016-03-27 10:48:42 -05:00 |
|
Chris Stewart
|
0af48b52f6
|
Changing hash type factory to default to SIGHASH_ALL if the input does not match any other SIGHASH types
|
2016-03-27 10:35:45 -05:00 |
|
Chris Stewart
|
2b1395ce1d
|
Adding three result types for transaction signature checker - can succeeed, can fail because of der encoding, and can fail because of incorrect signatures. This takes care of issues of BIP66 examples
|
2016-03-26 15:01:18 -05:00 |
|
Chris Stewart
|
46eb3eb7ea
|
Fixing bug of finding hash type of the empty digital signature
|
2016-03-26 14:34:02 -05:00 |
|
Chris Stewart
|
932705595b
|
Fixing more bugs with calculating maxSigs & requiredSigs inside of multisignatureScriptPubKey
|
2016-03-25 17:58:19 -05:00 |
|
Chris Stewart
|
e075a239a4
|
Adding restrictions inside of ScriptPubKeyFactory for MultiSignaturePubKeys, now need to have atleast 2 ScriptNumberOperations
|
2016-03-25 14:22:23 -05:00 |
|
Chris Stewart
|
c891d220ac
|
Refactoring functionality inside of TranasctionSignatureChecker to reuse the same code for both p2sh multisig redeem scripts & regular multisig scripts. Also redoing how maxSigs is calculated for MultiSignatureScriptPubKeys
|
2016-03-25 13:48:03 -05:00 |
|
Chris Stewart
|
c495261f3a
|
Adding empty signature to ECDigitalSignature, adding unit tests for empty signature. Factoring DER signature encoding out of TransactionSignatureChecker
|
2016-03-25 12:03:47 -05:00 |
|
Chris Stewart
|
c141bbda7d
|
Putting band aid on bip66 example 6 right now using a Try type if public key verification fails inside of bitcoinj
|
2016-03-24 21:02:14 -05:00 |
|
Chris Stewart
|
b2332596e2
|
Fixing bug where isStrictDerEncoding was not working for the empty signature
|
2016-03-24 20:20:55 -05:00 |
|