This allows easier reuse of opcodes and in some cases allows to eliminate
dependencies on the whole vm package, like in compiler that only needs opcodes
and doesn't care about VM for any other purpose.
And yes, they're opcodes because an instruction is a whole thing with
operands, that's what context.Next() returns.
* deleted transfer_output added asset type and transaction result to core
* removed writing 0x00 when buffer length is 0
* Refactored emit into VM package + moved tx to own package.
* implemented transaction along with claimTransaction.
* refactored naming of transaction + added decode address for uint160 types
* removed unnecessary folder and files.
* transaction/smartcontract logic
* bumped version 0.24.0
* Initial draft of the neo-go wallet
* Cleanup + more test for util package
* integrated wallet into neo-cli partially
* base wallet implementation + smartcontract code.
* implemented add, mul, div, sub assign for identifiers.
* Implemented struct field initialization.
* Implemented imports
* Implemented storage VM API (interop layer) + additional bug fixes when encountered.
* Bumped version 0.12.0
* fixed double point extension on compiled output file.
* Fixed bug where callExpr in returns where added to voidCall
* fixed binExpr compare equal
* Check the env for the gopath first
* removed travis.yml
* custom types + implemented general declarations.
* commented out the storage test to make the build pass
* refactor to use ast.Walk for recursive converting
* added lots of test cases
* added a new way to handle jump labels
* function calls with multiple arguments
* binary expression (LOR LAND)
* struct types + method receives
* cleaner opcode dumps, side by side diff for debugging test cases