Commit graph

942 commits

Author SHA1 Message Date
Chris Stewart
f5bfacad4a Adding functionality to derive the base58 representation of an address instead of have it hard coded 2016-08-31 11:08:01 -05:00
Chris Stewart
ea6866c3ac Refactoring Address type to have a networkParameters, hash and address value, removing AssetAddress - we can support these later if needed 2016-08-31 10:31:09 -05:00
Tom McCabe
ad943821d9 remove apply functions inside CLTV/CSVScriptPubKeys that would produce a P2PKH-formatted ScriptPubKey 2016-08-26 09:27:17 -05:00
Tom McCabe
ac0bc69c69 create CLTVScriptPubKey and CSVScriptPubKey traits and respective companion objects
begin CLTVScriptPubKey implementation, improve hashType function in ScriptSignature trait, add functions to return a scriptPubKey's address

Add RelativeLockTimeScriptPubKey trait and companion object, add generators/specs for CLTV/CSV ScriptPubKeys, add p2shAddress function for each ScriptPubKey type

rename RelativeLockTimeScriptPubKey to CSVScriptPubKey, implement cltv/csv scriptPubKeys inside ScriptGenerators, add apply functions to each scriptPubKey's fromAsm function, add nestedScriptPubKey function for cltv/csv ScriptPubKeys

remove hashType functions from ScriptSignature traits, remove encodeHashToAddress function in Base58, remove p2shAddress in ScriptPubKey trait
2016-08-26 09:21:41 -05:00
Chris Stewart
54e8eb52b3 Merge pull request #30 from TomMcCabe/build_readme
add build readme file
2016-08-25 12:08:37 -05:00
Tom McCabe
65e5aaebc8 add build readme file 2016-08-25 10:22:01 -05:00
Thomas McCabe
00acabba14 Merge pull request #29 from Christewart/der_encoding_bug
Der encoding bug
2016-08-22 09:14:17 -05:00
Chris Stewart
2a2780bfd4 Refactoring lowS functionality to DERSignatureUtil 2016-08-17 20:01:35 -05:00
Chris Stewart
278a24f4ea Adding BitcoinSLogger to RawBitcoinSerializer 2016-08-17 13:04:37 -05:00
Chris Stewart
56c4108513 Adding lowS, der encoding invariant to any signature created using the 'sign' function in BaseECKey, renaming a couple functions 2016-08-16 15:41:59 -05:00
Chris Stewart
59fbf04919 Remaining 'isStrictDEREncoding' to 'isValidSignatureEncoding' because valid bitcoin signatures contain extra data (hash type) along with a DER encoded signature 2016-08-16 14:26:31 -05:00
Thomas McCabe
7cee065214 Merge pull request #27 from Christewart/master
Adding utility function to convert a byte to a bit vector and vice versa
2016-08-15 13:51:18 -05:00
Chris Stewart
e90e38de0e Adding utility function to convert a byte to a bit vector and vice versa 2016-08-15 13:11:10 -05:00
Chris Stewart
37eb7f2d03 Merge pull request #26 from Christewart/merkle_tree_type
Adding function inside of Merkle to actually build and return the Mer…
2016-08-12 13:31:42 -05:00
Chris Stewart
fb33977e92 Adding helper function to build a merkle tree, removing some logging 2016-08-08 19:54:10 -05:00
Chris Stewart
ed37b610d2 Adding function inside of Merkle to actually build and return the MerkleTree, changing how endianess is stored inside of the Merkle root from big endian to little endian 2016-08-08 15:59:16 -05:00
Chris Stewart
438a40eff8 Update README.md 2016-08-07 16:45:14 -05:00
Chris Stewart
99170c700b Merge pull request #25 from TomMcCabe/merge_sighash
Merge sighash_json
2016-08-07 16:41:48 -05:00
Tom McCabe
8c013e7ad8 fix nits and add fromByte function to HashType 2016-08-07 14:08:14 -05:00
Chris Stewart
162c7d7d89 Merge pull request #24 from Christewart/ec_priv_key_compressed
Ec priv key compressed
2016-08-05 17:55:04 -05:00
Tom McCabe
d4f0de19dc add byte function to determine default byte value of each HashType 2016-08-05 15:31:25 -05:00
Chris Stewart
8003ea1d18 more nits.. 2016-08-05 14:33:53 -05:00
Chris Stewart
6319b1aeef fixing a few nits 2016-08-05 14:31:34 -05:00
Tom McCabe
0856ba45d8 remove unnecessary comment 2016-08-05 13:13:20 -05:00
Tom McCabe
907d36a2aa add apply functions to HashType, all tests for HashType 2016-08-05 12:56:15 -05:00
Chris Stewart
9755ed4461 Adding support for compressed vs uncompressed public keys, adding invariant to private keys requiring them to be 32 bytes 2016-08-05 12:03:03 -05:00
Tom McCabe
3608a7660a revise HashType to use individual factories for each HashType, optimize imports in various files 2016-08-05 11:04:24 -05:00
Tom McCabe
78c86c5fd7 merge sighash_json branch into master 2016-08-04 15:53:31 -05:00
Tom McCabe
4a7a595dc7 uncommented tests in TransactionSignatureSerializerTest, remove print statements 2016-08-04 10:37:23 -05:00
Tom McCabe
8a67bce61c refactor SerializeForSignature to take HashType as parameter instead of Int32, remove HashTypeFactory file 2016-08-04 10:23:11 -05:00
Thomas McCabe
68a2658395 Merge pull request #21 from Christewart/transaction_signature_creator
Transaction signature creator
2016-08-02 16:07:06 -05:00
Chris Stewart
55f0476083 Simplifying tests in ECPrivateKeyTest 2016-08-02 15:49:32 -05:00
Chris Stewart
d5d4151b33 removing unused CryptoTestUtil functions 2016-08-02 15:42:05 -05:00
Chris Stewart
d81e7305b0 Fixing a few nits 2016-08-02 12:15:01 -05:00
Chris Stewart
3d4e6ce7b0 Removing mutability from ScriptInterpreter, this should fix concurrency issues with running tests 2016-08-02 11:14:19 -05:00
Tom McCabe
128adb01e8 remove test case 2016-07-29 13:29:46 -05:00
Tom McCabe
39f4e30a83 tests for sighash.json, added '&' for number types with property tests, fix bug with HashType, improve HashTypeFactory 2016-07-29 13:15:38 -05:00
Chris Stewart
c27548cc20 Fixing a few nits 2016-07-29 09:02:06 -05:00
Chris Stewart
cd874c92d2 Fixing an anti-pattern inside of ScriptPubKey companion object, now ScriptPubKey case classes reside in the companion object of the subtype - i.e. P2PKHScriptPubKey instead of the generic ScriptPubKey companion object 2016-07-28 20:40:48 -05:00
Chris Stewart
962833c350 Fixing an anti-pattern inside of ScriptSignature companion object, now ScriptSignature case classes reside in the companion object of the subtype - i.e. P2PKHScriptSig instead of the generic ScriptSignature companion object 2016-07-28 20:09:45 -05:00
Chris Stewart
087c80ef4b Allowing for MultiSignatureScriptSignatures to have 0 requiredSigs, cleaning up comments 2016-07-28 15:26:22 -05:00
Chris Stewart
e14e037542 Fixing issues in generators where we were not generating the max/min amount of public keys for a MultiSignatureScriptPubKey 2016-07-28 13:21:22 -05:00
Chris Stewart
58efa9c8c7 Adding generator for p2sh transactions of standard scriptSig/scriptPubKey types, writing property that says they should evaluate to true in the interpreter 2016-07-28 09:04:52 -05:00
Chris Stewart
d3bc0e4bb9 Update README.md 2016-07-27 11:41:08 -05:00
Chris Stewart
c53c97e9c0 Refactoring generators, now generating signed scriptSigs inside of ScriptGenerators. Creating generators for single input transactions inside of TransactionGenerators 2016-07-27 09:41:26 -05:00
Chris Stewart
ec49753e53 Adding test to create signed p2shScriptSig, then make sure that scriptSig evaluates to true through the ScriptInterpreter 2016-07-25 14:42:58 -05:00
Chris Stewart
8f37e950eb Fixing issue with 33 byte representation of private keys 2016-07-25 13:35:25 -05:00
Chris Stewart
31a419445d Successfully replicating the creation of a digital signature that bitcoin core produced 2016-07-25 11:24:13 -05:00
Chris Stewart
71a50be511 Successfully creating p2pk and multisignature scriptSig digital signatures - they evaluate to true when run through the ScriptInterpreter 2016-07-22 20:58:23 -05:00
Tom McCabe
7c2ac02b81 first test in sighash.json working, but need to fix TransactionSignatureChecker 2016-07-21 09:28:47 -05:00