Commit graph

459 commits

Author SHA1 Message Date
decentralisedkev
c1b6738bdb
VM: Add basic vm (#166)
* 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
2019-03-18 21:40:21 +00:00
BlockChainDev
9951f04099 [Stall]
Change seconds to milliseconds in test
2019-03-18 21:33:07 +00:00
BlockChainDev
a2bdc076d2 [VM] fix typo 2019-03-18 21:17:43 +00:00
BlockChainDev
8809be183e [VM]
Add Result stack len check in simple run test
2019-03-18 21:15:40 +00:00
BlockChainDev
da27c2b3f0 [Stack]
- Change RemoveCurrentContext for PopCurrentContext
- Add CopTo method to stack
2019-03-18 21:15:09 +00:00
BlockChainDev
c177e5577e [VM]
refactor handlers to have rstack as argument
2019-03-18 21:14:03 +00:00
BlockChainDev
38ad4572c4 [VM]
Pass ResultStack to the opcode handlers
2019-03-18 21:13:08 +00:00
BlockChainDev
de3137197a remove extra base58 2019-03-17 23:02:34 +00:00
BlockChainDev
351f0acdfe Add astack 2019-03-17 22:57:36 +00:00
BlockChainDev
9e16bac7d8 clarify vm states 2019-03-17 20:21:48 +00:00
BlockChainDev
231aa29e5a Fix test 2019-03-17 18:38:52 +00:00
BlockChainDev
98096f6c20 golint 2019-03-17 18:31:58 +00:00
BlockChainDev
5e26b40b5e Merge branch 'dev' into vm 2019-03-17 18:30:48 +00:00
BlockChainDev
a7db1ceaa5 minor comment 2019-03-17 18:30:12 +00:00
decentralisedkev
f8979fe7af
Fix lint errors (#182)
* golint and minor changes to make code readable
2019-03-17 18:26:35 +00:00
BlockChainDev
ef364900bb Add basic tests for vm 2019-03-16 22:15:08 +00:00
BlockChainDev
17c53d1081 refactor Add, Sub to return VMSTATE
add popTwoByteArrays helper function
2019-03-16 22:09:34 +00:00
BlockChainDev
c7e32e7eb3 Refactor PushNBytes Opcode 2019-03-16 22:09:23 +00:00
BlockChainDev
7b519eba0d Add RET Opcode 2019-03-16 22:09:04 +00:00
BlockChainDev
79e92d5e14 Add THROWIFNOT Opcode 2019-03-16 22:08:35 +00:00
BlockChainDev
31511e55d0 Add Equal Opcode 2019-03-16 22:06:32 +00:00
BlockChainDev
329f8f388c Add ExecuteOp, Step and Run methods on the VM 2019-03-16 22:05:00 +00:00
BlockChainDev
a7e973030c Remove context_test
rename invocation to invocationstack
export vmstate
2019-03-16 21:52:05 +00:00
BlockChainDev
9eb11d2822 Make Next() method on Context failable
refactor peekContext and Peek
2019-03-16 21:45:48 +00:00
BlockChainDev
48413900ca remove error on NewBoolean
Expose underlying with Getter on Boolean StackItem
Add Equals method for ByteArray
2019-03-16 21:44:03 +00:00
BlockChainDev
80fd427517 - Add Op to handleOP func signature
- Add PushNBytes OPcode
2019-03-15 23:37:54 +00:00
BlockChainDev
9a59755745 Export Context Read methods
- Return errors where failable
2019-03-15 23:21:30 +00:00
BlockChainDev
280d526f41 Add SUB Opcode 2019-03-15 22:55:08 +00:00
BlockChainDev
abc3b46f1c Add popTwoIntegers convenience func 2019-03-15 22:54:52 +00:00
BlockChainDev
baf9d2b768 - Add test for math Add opcode
- basic opcode execution
2019-03-15 22:42:35 +00:00
BlockChainDev
c7fb4c3bdf - Add Add OpCode
- Add Opcode Function map
2019-03-15 22:36:16 +00:00
BlockChainDev
101d48cd27 Move opcode file 2019-03-15 22:35:12 +00:00
BlockChainDev
ce2cad0817 rename testhelper to test_helper 2019-03-15 22:34:04 +00:00
BlockChainDev
f954e6f2ca Add Invocation stack - convenience RAS 2019-03-15 22:33:32 +00:00
BlockChainDev
1ff0caf40e Add Context stack Item 2019-03-15 22:32:08 +00:00
BlockChainDev
04c56b514c Refactor Int, Boolean, ByteArray conversion 2019-03-15 22:30:25 +00:00
BlockChainDev
e2ef6bd2f4 Add Builder 2019-03-15 22:27:34 +00:00
BlockChainDev
f60d65f1a4 - Add guide to stack readme
- Add testReadInt64
2019-02-28 13:51:02 +00:00
BlockChainDev
5789aba4b2 Add instructions file for vm 2019-02-27 22:52:58 +00:00
BlockChainDev
ce614cfbec Merge branch 'dev' into vm 2019-02-27 22:45:56 +00:00
BlockChainDev
da0a56f922 Add conversions for bytearray and Int stack items 2019-02-27 22:41:46 +00:00
BlockChainDev
8d55ea12f0 VM: removed helper functions from stack_test.go 2019-02-27 21:40:31 +00:00
BlockChainDev
263bc4c1b1 VM: moved test helper functions into separate file 2019-02-27 21:38:39 +00:00
BlockChainDev
64491a4d83 VM: Add Sub, Mul, Mod LSH, RSH 2019-02-27 21:38:11 +00:00
BlockChainDev
c163ae2019 VM: first pass at Random Access Stack object 2019-02-27 20:58:17 +00:00
BlockChainDev
b79602cc5d VM: Add tests for stack item 2019-02-27 20:56:19 +00:00
BlockChainDev
d8d27761ae VM: Add stackItems; Array, Boolean, Int and ByteArray 2019-02-27 20:55:48 +00:00
BlockChainDev
e29b85d0d7 VM:Add abstract stack item 2019-02-27 20:50:00 +00:00
Evgeniy Kulikov
94eb16c9ca Add CircleCI to dev-branch (#165) 2019-02-27 13:49:16 +00:00
Evgeniy Kulikov
bf16bcfc35 Setup TravisCI for dev branch (#161)
fix #157

before merge, needs #160 to be merged

Just need enable TravisCI, who has write access for this repo
2019-02-26 20:30:05 +00:00