Commit Graph

594 Commits

Author SHA1 Message Date
Chris Stewart
fe352c8a59 Fixing bug in creating CompactSizeUInt from num, also extending Factory from CompactSizeUInt factory object 2016-06-30 09:20:42 -05:00
Chris Stewart
9b57cdef0b Adding CompactSizeUIntSpec, adding function to create CompactSizeUInt from a number 2016-06-29 15:38:39 -05:00
Chris Stewart
a0991e1751 Fixing bug in serialization of UInt64s 2016-06-28 08:41:13 -05:00
Chris Stewart
d30f53f901 Refactoring generators into src/, this allows us to reuse them in other projects 2016-06-27 11:53:08 -05:00
Chris Stewart
deeea0c304 Fixing bug with serialization of UInt64s, wasn't being padded correctly perviously 2016-06-27 10:50:50 -05:00
Chris Stewart
45bbacd857 Serializatoin symmetry now passing in TransactionSpec, fixing bugs in Transaction serializer 2016-06-24 18:56:06 -05:00
Chris Stewart
8a4f8c1a57 Refactoring RawTransactionInputParser to be more coherent, fixing bugs reading/writing tx inputs and in calculating compact size uints 2016-06-24 18:37:20 -05:00
Chris Stewart
72a85f1370 Adding TransactionSpec, fixing a few bugs to do with casting/creating transactions 2016-06-24 16:25:58 -05:00
Chris Stewart
16a416ff38 Adding TransactionInputSpec and TransactionInput generators 2016-06-24 15:26:11 -05:00
Chris Stewart
70d3417db2 Adding TransactionOutputSpec with serialization symmetry, adding generators for EmptyScriptPubKeys & EmptyScriptSignatures inside of ScriptGenerators 2016-06-24 14:04:25 -05:00
Chris Stewart
b4b93bf49b Creating P2SHScriptPubKeySpec & P2SHScriptSignatureSpec, adding companion object to create P2SHScriptSigs & P2SHScriptPubKeys, adding functionality to calculate push operators for constants in scripts 2016-06-24 13:07:52 -05:00
Chris Stewart
44d01ef65e Merge pull request #5 from Christewart/refactor_currency_units
Refactor currency units
2016-06-23 15:50:51 -05:00
Chris Stewart
8bdbf9fd5b Cleaning up the code base, removing a few methods from CurrencyUnits 2016-06-23 15:47:38 -05:00
Chris Stewart
015e7966e8 Refactoring CurrencyUnits to just use Satoshis, Satoshis now has underlying number type of Int64 which is what is used in Bitcoin Core 2016-06-23 15:33:34 -05:00
Chris Stewart
de56ae3632 Changing the functionality of math operations inside of Numbers - now you get the direct type back. For instance if you add two Int32s you will receive a Int32 back instead of a SignedNumber. You can no longer perform math operations between Int32s & Int64s and UInt64s & UInt32s 2016-06-23 12:27:24 -05:00
Chris Stewart
fecfe43d54 Adding MultiSignatureScriptPubKeySpec and serialization symmetry specificiation 2016-06-23 08:26:35 -05:00
Chris Stewart
024029e999 Adding companion objects for both P2PKScriptPubKey & P2PKHScriptPubKey, and their corresponding Specs 2016-06-22 14:24:18 -05:00
Chris Stewart
f2e73126f0 Adding MultiSignatureScriptSignature companion object, MultiSignatureScriptSignatureSpec & test for serialization symmetry 2016-06-22 13:43:51 -05:00
Chris Stewart
092d1abacf Fixing bug in isMultiSignature function, adding companion objects for P2PKHScriptSig & P2PKScriptSig, adding generators and specs for P2PKScriptSig 2016-06-22 10:07:27 -05:00
Chris Stewart
ff18fd7aac Adding TransactionOutPointSpec, testing serialization symmetry 2016-06-21 20:38:40 -05:00
Chris Stewart
13b76eb0d6 Refactoring mathematical operations inside of UInt32 and UInt64 2016-06-21 12:58:12 -05:00
Chris Stewart
ebe84a5f9b Finished implementing Int64Spec 2016-06-21 11:33:19 -05:00
Chris Stewart
c39f7ccd73 Finished spec for Int32 2016-06-21 10:37:24 -05:00
Chris Stewart
cbbf70b837 Refactoring encodeHex for numbers to encode numbers to ALWAYS have the maximum bytes in the number type. For instance a long will ALWAYS have 16 characters when encoded to hex 2016-06-21 09:53:03 -05:00
Chris Stewart
aa79650e9a Refactoring file/class names from 'Specification' to 'Spec' 2016-06-21 07:52:46 -05:00
Chris Stewart
bf38e0fa5b Adding comparison operator specifications for UInt64 2016-06-20 19:33:26 -05:00
Chris Stewart
17e7bb67c3 Adding multiplicative properties for UInt64 2016-06-20 18:58:12 -05:00
Chris Stewart
43dacf7354 Adding serialization symmetry & subtraction specification for UInt64 2016-06-20 17:04:00 -05:00
Chris Stewart
938e795d5a Merging in master, refactoring functions to CompactSizeUInt, adding BitcoinSUtilSpec, adding UInt64Spec 2016-06-20 14:28:38 -05:00
Chris Stewart
3cbf266a3f Adding symmetrical serialization specification for UInt32 2016-06-17 12:18:03 -05:00
Chris Stewart
9af5077701 Adding specification for boolean comparison functions in UInt32 2016-06-17 11:01:29 -05:00
Chris Stewart
c0ecfbfb6d Adding specification for multiplying two arbitrary UInt32s 2016-06-17 10:08:38 -05:00
Chris Stewart
34027e3ebc Adding property to check multiplying by 0 and multiplying by 1 in UInt32Specification 2016-06-16 20:57:29 -05:00
Chris Stewart
1541472f64 Redesigning the numbering system, adding support for parametizing our NumberOperations trait so it returns either a SignedNumber or an UnsignedNumber 2016-06-16 19:58:26 -05:00
Chris Stewart
92420a8c19 Merge pull request #15 from Christewart/blockchain_package_and_base_traits
Blockchain package and base traits
2016-06-16 15:22:49 -05:00
Chris Stewart
91419b5145 Adding scalacheck properties for creating UInt32s and adding UInt32s 2016-06-16 13:42:33 -05:00
Chris Stewart
31257996da Fixing minor styling issues & typos 2016-06-16 08:59:32 -05:00
Chris Stewart
50a59aef2c Adding BaseNumbers trait, start to implement addition 2016-06-15 21:28:47 -05:00
Chris Stewart
c7dc6dca77 Adding BaseNumbers to each Number factory 2016-06-15 15:55:54 -05:00
Chris Stewart
5afa3f3392 Creating Int64s, add test cases for the boundaries of Int64 2016-06-15 13:09:38 -05:00
Chris Stewart
4039b45f8a Can create the min and max for UInt64 & Int32 types 2016-06-15 08:56:20 -05:00
Chris Stewart
dc43676c59 Successfully computing UInt32 numbers all the way up to 4294967295 (max value for UInt32) 2016-06-14 19:45:23 -05:00
Chris Stewart
baea87d4c1 Cleaning up some issues in the codebase 2016-06-13 15:24:37 -05:00
Chris Stewart
e07a8de685 Fixing bug in block header serialization - nonce & nbits was not being padded correctly 2016-06-13 14:46:13 -05:00
Chris Stewart
82d7c937c8 Merge pull request #4 from TomMcCabe/block_serialization
Block serialization
2016-06-13 08:17:39 -05:00
Tom McCabe
f0a8eed77f fix bug involving endianess of txIds, fix all corresponding tests 2016-06-10 15:01:59 -05:00
Chris Stewart
225d828d01 Adding magicBytes field to NetworkParameters 2016-06-10 09:53:29 -05:00
Tom McCabe
9d0d0c3394 minor code alignment and rewording 2016-06-10 09:49:23 -05:00
Chris Stewart
7559ee02fd Adding function to calculate the compact size uint for a Seq[Byte] or hex string, fixing issue with serializing CompactSizeUInt's with size > 1 2016-06-09 13:42:40 -05:00
Tom McCabe
45afb86beb fix blockheader serializer so all values are big-endian 2016-06-09 10:19:55 -05:00