* [database]
- Add Prefix method to interface
- Convert leveldb error to `database error`
- Be explicit with prefixedKey in `Table` as slices can be pointers
* [protocol]
- Add stringer method to protocol
* [Chaindb]
- Added saveBlock() which will allow us to save a block into the
database. The block is broken up into transactions and Headers. The
headers are saved as is. The transactions are saved as is, then the
utxos in the transactions are collected to make the utxo db.
- Verification for blocks and transactions will reside in the same
package. Note that the save methods are all unexported, while the Get
methods are exported. Making it so that any can call a get method, but
only code in this package may save to the database. The other code which
will reside in this package will be code verification logic.
* [chaindb]
- Added saveHeader function which saveHeaders uses
- Update the latest header, each time we save a header instead of after a batch. This is so that we can call saveHeader without saveHeaders. This functionality can be rolled back if the performance of updating the header after a batch is significant
- small refactor in test code
* VM:Add abstract stack item
* VM: Add stackItems; Array, Boolean, Int and ByteArray
* VM: Add tests for stack item
* VM: first pass at Random Access Stack object
* VM: Add Sub, Mul, Mod LSH, RSH
* VM: moved test helper functions into separate file
* VM: removed helper functions from stack_test.go
* Add conversions for bytearray and Int stack items
* Add instructions file for vm
* - Add guide to stack readme
- Add testReadInt64
* Add Builder
* Refactor Int, Boolean, ByteArray conversion
* Add Context stack Item
* Add Invocation stack - convenience RAS
* rename testhelper to test_helper
* Move opcode file
* - Add `Add` OpCode
- Add Opcode Function map
* - Add test for math `Add` opcode
- basic opcode execution
* Add popTwoIntegers convenience func
* Add `SUB` Opcode
* Export Context Read methods
- Return errors where failable
* - Add `Op` to handleOP func signature
- Add PushNBytes OPcode
* remove error on NewBoolean
- Expose underlying with Getter on Boolean StackItem
- Add Equals method for ByteArray
* Make Next() method on Context failable, refactor peekContext and Peek
* Add ExecuteOp, Step and Run methods on the VM
* Add Equal Opcode
* Add THROWIFNOT Opcode
* Add RET Opcode
* Refactor PushNBytes Opcode
* refactor Add, Sub to return VMSTATE
add popTwoByteArrays helper function
* Add basic tests for vm
* clarify vm states
* Add astack
* [VM]
Pass ResultStack to the opcode handlers
* [VM]
refactor handlers to have rstack as argument
* [Stack]
- Change RemoveCurrentContext for PopCurrentContext
- Add CopTo method to stack
* [VM]
Add Result stack Len check in simple run test
* [VM] fix typo
* [Peer/Stall]
Change seconds to milliseconds in test