Tom McCabe
19f552dd15
deprecate/improve some factories: arithmetic, scriptConstant, locktimeOperation, StackOperation
2016-04-25 15:21:48 -05:00
Chris Stewart
5de5573938
Refactoring return type of 'loop' inside of ScriptInterpreter
2016-04-25 14:08:34 -05:00
Tom McCabe
148675c546
deprecated BytesToPushOntoStackFactory
2016-04-25 14:02:38 -05:00
Chris Stewart
63716bf838
Removing 'ScriptFalse' & 'ScriptTrue' operations from bitcoin-s
2016-04-25 12:57:03 -05:00
Tom McCabe
1f95b6aa21
deprecated ScriptNumberFactory, fixed test cases
2016-04-25 12:38:50 -05:00
Chris Stewart
3f13879343
Fixing bug where digital signatures were not keeping their underlying byte representation
2016-04-25 10:39:34 -05:00
Chris Stewart
756d7740b3
Adding functionality to test pubkey encoding, fails the script with appropriate error if the pubkey is not encoded correctly
2016-04-25 09:56:03 -05:00
Chris Stewart
f5c7ed0345
Fixing some broken unit tests inside of CryptoInterpreterTest & ArithmeticInterpreterTest
2016-04-24 13:23:26 -05:00
Chris Stewart
915bade46d
Fixing more MINIMALDATA bugs - now the failing script_invalid.json test cases are realted to pubkey encoding in OP_CHECKMULTISIG
2016-04-24 12:16:02 -05:00
Chris Stewart
9d264c2e62
Merge pull request #6 from TomMcCabe/rpc-merge
...
This pull request implements an RPC client for bitcoin. This gives us the functionality to make calls to a running instance of bitcoin-cli and marshal the returned string into a native Scala objects.
2016-04-23 21:12:29 -05:00
Chris Stewart
9c8458a45c
Finishing implementation for MINIMALDATA - making sure that all scripts pass that should, and scripts that fail should fail with the MINIMALDATA flag
2016-04-23 20:21:34 -05:00
Tom McCabe
bf4a0915ae
add .idea to .gitignore and rm uiDesigner.xml
2016-04-23 12:10:04 -05:00
Chris Stewart
84d9cf505f
Enforcing p2sh scriptSigs can only contain push operations
2016-04-22 09:11:30 -05:00
Chris Stewart
f45823df76
Adding functionality to error if we have more than the maximum amount of public keys around or if we have more sigs than public keys in OP_CHECKMULTISIG
2016-04-22 08:08:38 -05:00
Chris Stewart
2c68f90236
Adding script op check for every script operation run during an OP_CHECKMULTISIG or OP_CHECKMULTISIGVERIFY op
2016-04-21 17:23:23 -05:00
Chris Stewart
ee39a2f815
Merge pull request #5 from Christewart/script_program_refactoring
...
Script program refactoring
2016-04-20 14:32:47 -05:00
Chris Stewart
5b3096b76a
ScriptProgram is now working to where the script branch in script_valid.json
2016-04-20 14:24:35 -05:00
Chris Stewart
2c86075961
All script_valid.json scripts pass again after ScriptProgram refactoring
2016-04-20 14:03:48 -05:00
Chris Stewart
2c3a734376
fixing compilation errors in test cases for ScriptProgram
2016-04-20 11:15:22 -05:00
Chris Stewart
8a45232d22
Src files now compile on using ScriptProgram's new factory functions
2016-04-19 19:30:06 -05:00
Chris Stewart
87beb9ec8d
Refactoring ArithmeticInterpreter, BitwiseInterpreter, ConstantInterpreter, ControlOperationsInterpreter, and CryptoInterpreter to set ScriptErrors
2016-04-19 10:27:54 -05:00
Chris Stewart
481173dd3a
Refactoring SpliceInterpreter and LocktimeInterpreter to set script errors on the ScriptProgram
2016-04-19 10:05:45 -05:00
Chris Stewart
6286300c70
Fixing StackInterpreter to set script errors inside a script program now
2016-04-19 09:57:47 -05:00
Chris Stewart
8f11393f68
Refactoring ScriptProgram into sum types - PreExecutionScriptProgram, ExecutionInProgressScriptProggram and ExecutedScriptProgram to represent the three states of a script program
2016-04-19 09:19:25 -05:00
Chris Stewart
00f792c6e6
Adding ScriptError types and a ScriptError companion object to be a factory
2016-04-18 19:32:50 -05:00
Chris Stewart
3099051e78
Fixing merge conflict in CryptoInterpreter
2016-04-18 19:30:36 -05:00
Chris Stewart
fe9225ba97
Merge pull request #4 from TomMcCabe/factory_refactoring
...
Factory refactoring
2016-04-18 19:11:38 -05:00
Tom McCabe
2d621f9c83
refactored ScriptProgramFactory with ScriptProgram companion object
2016-04-18 18:23:35 -05:00
Tom McCabe
17e9061215
refactored TransactionOutputFactory with TransactionOutput companion object
2016-04-18 14:38:32 -05:00
Tom McCabe
455f980e38
refactored TransactionInputFactory with TransactionInput companion object
2016-04-18 14:29:49 -05:00
Tom McCabe
28c97a6772
refactored AddressFactory with Address companion object
2016-04-18 14:12:23 -05:00
Tom McCabe
e857ad2085
refactored TransactionFactory to use Transaction companion object
2016-04-18 13:43:04 -05:00
Tom McCabe
d8b6211334
refactored TransactionOutPointFactory to use TransactionOutPoint companion object
2016-04-18 13:43:04 -05:00
Tom McCabe
fdde131d29
refactored ScriptSignatureFactory to use ScriptSignature companion object
2016-04-18 13:43:02 -05:00
Tom McCabe
46617658b9
refactored ScriptPubKeyFactory to use ScriptPubKey companion object
2016-04-18 13:42:43 -05:00
Tom McCabe
79d8277e2c
refactored ScriptPubKeyFactory to use ScriptPubKey companion object
2016-04-18 11:44:14 -05:00
Chris Stewart
3a9736aa21
Adding new TransactionSignatureInvalid type to represent when we don't have enough sigs to meet the required signature threshold - fixing bug in ECPublicKey
2016-04-18 08:48:02 -05:00
Chris Stewart
994c73062a
Refactoring old requirements on stack sizes to log errors and return script programs that are marked invalid
2016-04-17 21:02:24 -05:00
Chris Stewart
a25ed9aaef
Implementing functionality to mark script as invalid if we see a script op code that is not defined by the Script documentation
2016-04-17 19:57:17 -05:00
Chris Stewart
48b0e4ad80
Fixing bug in OP_TOALTSTACK implementation, adding restriction to allow a max of 10,000 byte script to be run through the interpreter
2016-04-17 19:14:44 -05:00
Chris Stewart
89010e0e6d
Merge pull request #3 from Christewart/script_parsing_refactor
...
Script parsing refactor
2016-04-17 15:39:59 -05:00
Chris Stewart
2046146e0b
Cleaning up the codebase
2016-04-17 15:04:47 -05:00
Chris Stewart
42ec9e90b1
Fixing a few more bugs to force constants to be interpreted as numbers
2016-04-17 14:58:33 -05:00
Chris Stewart
df939d7693
fixing bug with what op codes are counted towards bitcoin core's op code limit
2016-04-17 10:52:26 -05:00
Chris Stewart
e3fce380c1
Fixing bug in how we kept tract of op counts in a script
2016-04-16 08:54:49 -05:00
Chris Stewart
6eece17379
fixing bug in script parser for dealing with OP_PUSHDATA operations from string constants in script_valid.json
2016-04-15 19:23:39 -05:00
Chris Stewart
2a3e4928dd
Fixing bugs in OP_ROLL, OP_PICK. Fixing bug in .toLong for ScriptTokens
2016-04-14 19:21:54 -05:00
Chris Stewart
9bb5f60bf4
Adding more documentation to types in the Script language class hierarchy
2016-04-14 15:04:32 -05:00
Chris Stewart
5b06e2e066
Refactoring ScriptProgram.stackTopIsFalse to check the underlying hex representation to see if the stacktop is true/false
2016-04-14 13:31:24 -05:00
Chris Stewart
2312459c73
Refactoring script interpreter to push OP_0s onto the stack instead of empty byte vectors - changing ArithmeticInterpreter to try and interpretet numbers from a script constant if it is passed on
2016-04-14 12:52:26 -05:00