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 |
|
Chris Stewart
|
4b7eb99836
|
Adding functionality inside of OP_CHECKSIG to see if the DERSIG flag is set
|
2016-03-24 19:35:16 -05:00 |
|
Chris Stewart
|
215cdddf20
|
Adding function to detect if a signature is strictly der encoded according to BIP66
|
2016-03-24 17:43:18 -05:00 |
|
Chris Stewart
|
7d8699e822
|
Adding ScriptVerifyFlag to indicate if CLTV is enforced or not
|
2016-03-24 11:23:19 -05:00 |
|
Chris Stewart
|
91feb92709
|
Creating ScriptFlagFactory to parse script flags and create them from strings
|
2016-03-23 15:25:57 -05:00 |
|
Chris Stewart
|
be8ae500c7
|
Adding ScriptVerify flags for script evaluation
|
2016-03-23 13:40:54 -05:00 |
|
Chris Stewart
|
07c2ed3669
|
Decoding (r,s) from DER signatures
|
2016-03-23 11:25:48 -05:00 |
|
Chris Stewart
|
72657b898f
|
Adding functionality to check if a signature isDEREncoded'
|
2016-03-22 20:05:45 -05:00 |
|
Chris Stewart
|
b9197a8613
|
Adding spongycastle as a dependency, cleaning up more usages of ScalacoinUtil
|
2016-03-22 08:15:16 -05:00 |
|
Chris Stewart
|
82d5713549
|
Fixing bug where single OP_0 was being classified as a MultiSignatureScriptSig
|
2016-03-21 15:41:15 -05:00 |
|
Chris Stewart
|
df085162a4
|
Switching to explicitly parsing redeemScripts now instead of parsing them while they are running through ScriptParser - this is how bitcoin core treats redeemScripts. This will make it easier for evaluating scriptSigs with redeemScripts in them
|
2016-03-21 14:02:04 -05:00 |
|
Chris Stewart
|
26ba8d956e
|
Slightly modifying line in script_valid.json to separate an OP_PUSHDATA op from the size of the data being pushed
|
2016-03-21 09:39:24 -05:00 |
|
Chris Stewart
|
55ae249f52
|
Adding new hash types to the available hashtypes inside of HashTypeFactory
|
2016-03-20 13:04:12 -05:00 |
|
Chris Stewart
|
e3f96968b2
|
Successfully building crediting tx and spending tx for bitcoin core tests inside of script_valid.json
|
2016-03-19 21:12:40 -05:00 |
|
Chris Stewart
|
cbac956ba7
|
adding requirement to buildSpendingTransaction to make sure it is the same as bitcoin core's buildSpendingTransaction
|
2016-03-19 15:12:32 -05:00 |
|
Chris Stewart
|
a9c52728f3
|
Adding code to mimic how transactions are built for script_valid.json inside of bitcoin core
|
2016-03-18 13:12:42 -05:00 |
|
Chris Stewart
|
86c7841cac
|
Fixing bug in how p2pk are evaluated in opCheckSig
|
2016-03-17 11:26:59 -05:00 |
|
Chris Stewart
|
f90b5d15d5
|
Fixing bug where p2pk scriptPubKeys were not being assigned the correct case class
|
2016-03-16 13:14:56 -05:00 |
|
Chris Stewart
|
f2f849f23b
|
Adding functionality to parse a p2pk scriptSig into the correct case class
|
2016-03-16 13:01:33 -05:00 |
|
Chris Stewart
|
82eac5ea15
|
Refactoring codebase back to use explicit ScriptPubKeyFactory & ScriptSignatureFactory - I think this will be better for long term maintainability
|
2016-03-16 09:46:34 -05:00 |
|
Chris Stewart
|
207674c6f9
|
Fixing bug in finding requiredSigs for MultiSignatureScriptPubKey - the number of sigs always follows the OP_0 that has to be placed in the scriptPubKey
|
2016-03-15 13:05:29 -05:00 |
|
Chris Stewart
|
c8ed1662d7
|
Addign case object to represent the empty script sig
|
2016-03-15 12:07:23 -05:00 |
|
Chris Stewart
|
0efe9d970b
|
Adding case inside of ECDigitalSignature for empty digital signatures - these are used inside of Bitcoin Core's script_valid.json test cases
|
2016-03-15 10:09:12 -05:00 |
|
Chris Stewart
|
00fde6fe56
|
Refactoring interface for script interpreter - now clients are responsible for building ScriptPrograms. Also adding another parameter for scriptSigs/scriptPubKeys to pass in the parsed asm representation along with the hexadecimal representation
|
2016-03-14 15:56:28 -05:00 |
|
Chris Stewart
|
4843ee5c5e
|
Adding a wrapper scriptSig/scriptPubKey from core test cases
|
2016-03-14 12:52:23 -05:00 |
|
Chris Stewart
|
26d827cde9
|
Merge pull request #2 from Christewart/checksig_implementation
Checksig implementation
|
2016-03-14 10:13:14 -05:00 |
|
Chris Stewart
|
a4a4b0bea4
|
Cleaning up some compiler warnings
|
2016-03-14 10:08:48 -05:00 |
|
Chris Stewart
|
2e9d362a83
|
Validating 2/3 p2sh scriptSig and making sure it fails to validate a 2/3 scriptSig that doesn't have enough sigs
|
2016-03-14 09:46:52 -05:00 |
|
Chris Stewart
|
aa25c4d199
|
Adding scaladocs for traits
|
2016-03-13 19:37:00 -05:00 |
|
Chris Stewart
|
df73627ae5
|
Removing ScriptSignatureFactory companion object - creating dependency inside of ScriptSignatureFactory to be injected with a ScriptSignature
|
2016-03-12 07:02:32 -06:00 |
|
Chris Stewart
|
57920765dc
|
Fixing compiler warnings about matching exhaustiveness inside of TransactionSignatureChecker - adding BitcoinSLogger trait for common logging across the implementation
|
2016-03-11 10:24:58 -06:00 |
|
Chris Stewart
|
588737eec8
|
Removing ScriptPubKeyFactory companion objecting - creating dependency of ScriptPubKeyFactory to be injected with a ScriptPubKey
|
2016-03-11 09:44:39 -06:00 |
|
Chris Stewart
|
23dfba3788
|
Adding case to handle p2pk scriptSignature type inside of TransactionSignatureChecker
|
2016-03-10 07:08:10 -06:00 |
|
Chris Stewart
|
db0355a453
|
Successfully verifying a 2 of 2 p2sh scriptSig against its scriptPubKey - next is validating m/n where m != n
|
2016-03-09 19:12:40 -06:00 |
|
Chris Stewart
|
c800777981
|
Fixing bug in SIGHASH_SINGLE implementation - now added a regression test in the translated bitcoinj hashForSignature & my home grown translated version to make sure the hashes are identical
|
2016-03-09 18:19:12 -06:00 |
|
Chris Stewart
|
22fa7af6dc
|
Changing type of redeemScript inside of P2SHScriptSignature from Seq[ScriptToken] to ScriptPubKey
|
2016-03-08 19:51:06 -06:00 |
|
Chris Stewart
|
629c65cd7b
|
Refactoring test cases from scriptPubkeys/scriptSigs into their own files
|
2016-03-08 09:53:24 -06:00 |
|
Chris Stewart
|
dbfb367fac
|
Successfully validating a multisignature script signature is spending a multi signature scriptPubKey correctly
|
2016-03-07 15:59:17 -06:00 |
|
Chris Stewart
|
f5063bc8c2
|
Implementing function to find public keys, required sigs, and maximum signatures inside a multisignature scriptPubKey output
|
2016-03-07 15:28:58 -06:00 |
|