Commit Graph

4049 Commits

Author SHA1 Message Date
Chris Stewart
ad7383bac5 Optimizing toSeq inside of BinaryTree to a tail recursive function 2016-02-20 12:03:43 -06:00
Chris Stewart
bf813287d4 Adding functionality to parse a VarInt from a scriptSig, adding TransactionInputFactory 2016-02-19 15:55:14 -06:00
Chris Stewart
50e6aa0d9d SIGHASH_ALL is now matched in HashTypeFactory due to bug in the bitcoin mainnet blockchain 2016-02-19 13:26:01 -06:00
Chris Stewart
9fe50e670d Applying stash 2016-02-19 12:21:56 -06:00
Chris Stewart
578e18f53d Merge branch 'script' into checksig_implementation 2016-02-19 12:18:12 -06:00
Chris Stewart
86588c9c46 Adding functions inside of RawTransactionInputParser & RawTransactionOutputParser to serialize a single input/output instead of Seq's of inputs/outputs 2016-02-19 12:15:23 -06:00
Chris Stewart
b4b47b6ecf Implementing serializeScriptCode inside of TransactionSignatureSerializer 2016-02-19 10:43:01 -06:00
Chris Stewart
db473a5473 Adding scaladocs to ScriptSignature functions 2016-02-18 10:02:22 -06:00
Chris Stewart
788ad2d8dd Merge branch 'script' into checksig_implementation 2016-02-18 08:56:25 -06:00
Chris Stewart
06dfd96438 Adding another unit test for finding sigs of p2sh addresses 2016-02-18 08:56:16 -06:00
Chris Stewart
de8b7e15ca Fixing parsing issue with OP_PUSHDATA operations, implementing finding digital signatures contained in ScriptSignatures 2016-02-17 21:26:07 -06:00
Chris Stewart
6bbcfa8cff Finding script signatures and their hash types working for p2sh script sigs 2016-02-17 15:34:14 -06:00
Chris Stewart
d173ee20d2 Finding a script signature and it's hash type is working for p2pkh scripts 2016-02-17 15:17:55 -06:00
Chris Stewart
6aa9e195bb Changing BytesToPushOntoStack to being implicitly there on scripts to being explicitly part of the script 2016-02-17 13:01:44 -06:00
Chris Stewart
c15273a722 Adding ECKeys and interface for checking transaction signatures 2016-02-16 18:04:18 -06:00
Chris Stewart
4e93ff3e37 Adding comments as to why TransactionInput's parsed from JSON cannot be reserialized into bitcoin hex format as of now 2016-02-15 09:51:06 -06:00
Chris Stewart
06e7decf56 Fixing major serialization/parsing issues with TransactionInputs - TransactionInput now contains a scriptSigVarInt field that indicates how large the scriptSig of a tx is - this is needed for correct serialization of inputs 2016-02-14 16:35:26 -06:00
Chris Stewart
327e6fa72b Fixing bug for parsing VarInts 2016-02-14 08:57:48 -06:00
Chris Stewart
dc0c8775fd Implementing VarInt class for parsing bitcoin scriptSignatures and scriptPubKey's correctly 2016-02-13 19:30:06 -06:00
Chris Stewart
5c8d915755 Adding transaction test utilility functions to build transactions for tests 2016-02-12 10:50:28 -06:00
Chris Stewart
0c486b303b Fixing issues inside of OP_PUSHDATA, now the script items for OP_PUSHDATA are pushed onto the stack by the ScriptInterpreter 2016-02-12 09:02:22 -06:00
Chris Stewart
ee932cd55a Fixing bug with OP_PUSHDATA operations where it couldn't push zero bytes onto stack as well as fixing parsing algorithm to recognize the bytes after an OP_PUSHDATA operation as BytesToPushOntoStack types instead of ScriptNumbers 2016-02-11 18:33:27 -06:00
Chris Stewart
2e9965c5ba Fixing bug in OP_CHECKMULTISIG where the correct number of pubkeys weren't being pushed onto the stack 2016-02-11 09:36:27 -06:00
Chris Stewart
0ff2022c6d Implementing OP_CHECKMULTISIG for base case of 0 signatures required 2016-02-10 20:06:05 -06:00
Chris Stewart
fb995616e6 Implementing OP_CODESEPARATOR script operation, adding more flexibility to ScriptProgramFactory 2016-02-10 17:17:49 -06:00
Chris Stewart
aa4195c13b Refactoring code base from using constructor for ScriptProgramImpl to utilize ScriptProgramFactory function 2016-02-10 15:40:28 -06:00
Chris Stewart
c2d669d1db Fixing negative zero parsing for hex numbers, using context sensitive grammar for parsing the type of a byte after a ByteToPushOntoStack op, fixing various bugs inside of parsing algorithm 2016-02-10 12:39:33 -06:00
Chris Stewart
b5037751bf Fixing bug dealing with storing long script constants. Now if a constant is under 64 bits it is stored as a script number 2016-02-10 10:16:04 -06:00
Chris Stewart
66d25df3ae Implementing negative numbers for script numbers 2016-02-09 17:24:27 -06:00
Chris Stewart
4f9f829d03 Adding functionality to NumberUtil to serialize negative numbers to hex correctly 2016-02-09 11:34:07 -06:00
Chris Stewart
62f0202bb0 Implementing a Number utility to handle endianess and signing of numbers in bitcoin 2016-02-08 19:56:45 -06:00
Chris Stewart
c0f709db37 implementing OP_CHECKLOCKTIMEVERIFY script operation 2016-02-08 09:01:58 -06:00
Chris Stewart
d02f259bc0 Fixing bug where OP_NOP wasn't parent of ReservedOperationsFactory 2016-02-07 14:49:12 -06:00
Chris Stewart
d2cf8df898 Implementing OP_RIPEMD160, OP_SHA256, OP_HASH256 script operations, fixing bug inside of CryptoUtil with serializing to and from hex 2016-02-07 14:04:51 -06:00
Chris Stewart
a9926e6cba Forgot to implement aritmetic operation OP_WITHIN 2016-02-07 11:44:05 -06:00
Chris Stewart
a3594967ea Implementing OP_MIN, OP_MAX script operations. Arithmetic operations done 2016-02-06 18:15:27 -06:00
Chris Stewart
e6f5368e5b Implementing OP_LESSTHAN, OP_GREATERTHAN, OP_LESSTHANOREQUAL, OP_GREATERTHANOREQUAL script operations 2016-02-06 17:39:42 -06:00
Chris Stewart
6d95a38a03 Implementing OP_BOOLOR, OP_BOOLAND, OP_0NOTEQUAL, OP_NOT, OP_NEGATE script operations 2016-02-06 16:41:22 -06:00
Chris Stewart
53d4ff5e8b implementing OP_1ADD, OP_1SUB, OP_SUB and OP_ABS script operations 2016-02-06 14:45:36 -06:00
Chris Stewart
24b79f88b7 Finished implementing OP_SIZE script operation 2016-02-06 14:17:46 -06:00
Chris Stewart
530668b80d Fixing OP_EQUAL issues, changing hexToInt to hexToLong 2016-02-06 13:14:04 -06:00
Chris Stewart
6b04e97196 Fixing merge conflicts 2016-02-06 10:45:15 -06:00
Chris Stewart
0a8b7eaca1 Uncommenting SpliceInterpreter test 2016-02-06 10:12:30 -06:00
Chris Stewart
8a63425f9d Major refactor to differentiate ScriptNumbers and Script numbers that represent a specific amount of bytes that need to be pushed onto the stack 2016-02-06 10:06:22 -06:00
Chris Stewart
a03d40f8d8 Optimizing toSeq inside of BinaryTree 2016-02-05 14:16:09 -06:00
Chris Stewart
372ec28a16 Implementing OP_TUCK, OP_2DROP, OP_2DUP, OP_3DUP, OP_2OVER, OP_2ROT, OP_2SWAP script operations 2016-02-04 09:48:35 -06:00
Chris Stewart
b16b92f057 Implementing OP_SWAP script operation 2016-02-04 08:26:15 -06:00
Chris Stewart
aae9e6c1be Implementing OP_2DROP script operation 2016-02-04 08:10:05 -06:00
Chris Stewart
7c17ae7568 Implementing OP_2ROT for script operations 2016-02-03 21:44:13 -06:00
Chris Stewart
d41da910b7 Implementing OP_ROT 2016-02-03 19:58:11 -06:00