module
neo3.vm
NEO Virtual Machine classes.
Classes
ScriptBuilder
— A utility class to create scripts (sequence of opcodes) that can be executed by theNEO Virtual Machine.Syscalls
— Container holding all NEO blockchain interop syscalls.
enum
neo3.vm.
OpCode
(
)
Bases
enum.IntEnum
int
enum.Enum
NEO Virtual Machine instructions.
Can be concatenated into a hex-escaped bytes sequence.
Example
In [1]: from neo3.contracts import vm
In [2]: script = vm.OpCode.PUSHDATA1 + b'' + vm.OpCode.RET
In [3]: script Out[3]: b' @'
Members
ABORT
(int) — 0x38ABS
(int) — 0x9aADD
(int) — 0x9eAND
(int) — 0x91APPEND
(int) — 0xcfASSERT
(int) — 0x39BOOLAND
(int) — 0xabBOOLOR
(int) — 0xacCALL
(int) — 0x34CALLA
(int) — 0x36CALLT
(int) — 0x37CALL_L
(int) — 0x35CAT
(int) — 0x8bCLEAR
(int) — 0x49CLEARITEMS
(int) — 0xd3CONVERT
(int) — 0xdbDEC
(int) — 0x9dDEPTH
(int) — 0x43DIV
(int) — 0xa1DROP
(int) — 0x45DUP
(int) — 0x4aENDFINALLY
(int) — 0x3fENDTRY
(int) — 0x3dENDTRY_L
(int) — 0x3eEQUAL
(int) — 0x97GE
(int) — 0xb8GT
(int) — 0xb7HASKEY
(int) — 0xcbINC
(int) — 0x9cINITSLOT
(int) — 0x57INITSSLOT
(int) — 0x56INVERT
(int) — 0x90ISNULL
(int) — 0xd8ISTYPE
(int) — 0xd9JMP
(int) — 0x22JMPEQ
(int) — 0x28JMPEQ_L
(int) — 0x29JMPGE
(int) — 0x2eJMPGE_L
(int) — 0x2fJMPGT
(int) — 0x2cJMPGT_L
(int) — 0x2dJMPIF
(int) — 0x24JMPIFNOT
(int) — 0x26JMPIFNOT_L
(int) — 0x27JMPIF_L
(int) — 0x25JMPLE
(int) — 0x32JMPLE_L
(int) — 0x33JMPLT
(int) — 0x30JMPLT_L
(int) — 0x31JMPNE
(int) — 0x2aJMPNE_L
(int) — 0x2bJMP_L
(int) — 0x23KEYS
(int) — 0xccLDARG
(int) — 0x7fLDARG0
(int) — 0x78LDARG1
(int) — 0x79LDARG2
(int) — 0x7aLDARG3
(int) — 0x7bLDARG4
(int) — 0x7cLDARG5
(int) — 0x7dLDARG6
(int) — 0x7eLDLOC
(int) — 0x6fLDLOC0
(int) — 0x68LDLOC1
(int) — 0x69LDLOC2
(int) — 0x6aLDLOC3
(int) — 0x6bLDLOC4
(int) — 0x6cLDLOC5
(int) — 0x6dLDLOC6
(int) — 0x6eLDSFLD
(int) — 0x5fLDSFLD0
(int) — 0x58LDSFLD1
(int) — 0x59LDSFLD2
(int) — 0x5aLDSFLD3
(int) — 0x5bLDSFLD4
(int) — 0x5cLDSFLD5
(int) — 0x5dLDSFLD6
(int) — 0x5eLE
(int) — 0xb6LEFT
(int) — 0x8dLT
(int) — 0xb5MAX
(int) — 0xbaMEMCPY
(int) — 0x89MIN
(int) — 0xb9MOD
(int) — 0xa2MODMUL
(int) — 0xa5MODPOW
(int) — 0xa6MUL
(int) — 0xa0NEGATE
(int) — 0x9bNEWARRAY
(int) — 0xc3NEWARRAY0
(int) — 0xc2NEWARRAY_T
(int) — 0xc4NEWBUFFER
(int) — 0x88NEWMAP
(int) — 0xc8NEWSTRUCT
(int) — 0xc6NEWSTRUCT0
(int) — 0xc5NIP
(int) — 0x46NOP
(int) — 0x21NOT
(int) — 0xaaNOTEQUAL
(int) — 0x98NUMEQUAL
(int) — 0xb3NUMNOTEQUAL
(int) — 0xb4NZ
(int) — 0xb1OR
(int) — 0x92OVER
(int) — 0x4bPACK
(int) — 0xc0PACKMAP
(int) — 0xbePACKSTRUCT
(int) — 0xbfPICK
(int) — 0x4dPICKITEM
(int) — 0xcePOPITEM
(int) — 0xd4POW
(int) — 0xa3PUSH0
(int) — 0x10PUSH1
(int) — 0x11PUSH10
(int) — 0x1aPUSH11
(int) — 0x1bPUSH12
(int) — 0x1cPUSH13
(int) — 0x1dPUSH14
(int) — 0x1ePUSH15
(int) — 0x1fPUSH16
(int) — 0x20PUSH2
(int) — 0x12PUSH3
(int) — 0x13PUSH4
(int) — 0x14PUSH5
(int) — 0x15PUSH6
(int) — 0x16PUSH7
(int) — 0x17PUSH8
(int) — 0x18PUSH9
(int) — 0x19PUSHA
(int) — 0xaPUSHDATA1
(int) — 0xcPUSHDATA2
(int) — 0xdPUSHDATA4
(int) — 0xePUSHF
(int) — 0x9PUSHINT128
(int) — 0x4PUSHINT16
(int) — 0x1PUSHINT256
(int) — 0x5PUSHINT32
(int) — 0x2PUSHINT64
(int) — 0x3PUSHINT8
(int) — 0x0PUSHM1
(int) — 0xfPUSHNULL
(int) — 0xbPUSHT
(int) — 0x8REMOVE
(int) — 0xd2RET
(int) — 0x40REVERSE3
(int) — 0x53REVERSE4
(int) — 0x54REVERSEITEMS
(int) — 0xd1REVERSEN
(int) — 0x55RIGHT
(int) — 0x8eROLL
(int) — 0x52ROT
(int) — 0x51SETITEM
(int) — 0xd0SHL
(int) — 0xa8SHR
(int) — 0xa9SIGN
(int) — 0x99SIZE
(int) — 0xcaSQRT
(int) — 0xa4STARG
(int) — 0x87STARG0
(int) — 0x80STARG1
(int) — 0x81STARG2
(int) — 0x82STARG3
(int) — 0x83STARG4
(int) — 0x84STARG5
(int) — 0x85STARG6
(int) — 0x86STLOC
(int) — 0x77STLOC0
(int) — 0x70STLOC1
(int) — 0x71STLOC2
(int) — 0x72STLOC3
(int) — 0x73STLOC4
(int) — 0x74STLOC5
(int) — 0x75STLOC6
(int) — 0x76STSFLD
(int) — 0x67STSFLD0
(int) — 0x60STSFLD1
(int) — 0x61STSFLD2
(int) — 0x62STSFLD3
(int) — 0x63STSFLD4
(int) — 0x64STSFLD5
(int) — 0x65STSFLD6
(int) — 0x66SUB
(int) — 0x9fSUBSTR
(int) — 0x8cSWAP
(int) — 0x50SYSCALL
(int) — 0x41THROW
(int) — 0x3aTRY
(int) — 0x3bTRY_L
(int) — 0x3cTUCK
(int) — 0x4eUNPACK
(int) — 0xc1VALUES
(int) — 0xcdWITHIN
(int) — 0xbbXDROP
(int) — 0x48XOR
(int) — 0x93
class
neo3.vm.
ScriptBuilder
(
)
A utility class to create scripts (sequence of opcodes) that can be executed by theNEO Virtual Machine.
Methods
emit_contract_call
(
script_hash
,operation
,call_flags
)
(ScriptBuilder) — Emit opcode sequence to call a smart contrat operation.emit_contract_call_with_args
(
script_hash
,operation
,args
,call_flags
)
(ScriptBuilder) — Emit opcode sequence to call a smart contrat operation with arguments.
method
emit_contract_call
(
script_hash
, operation
, call_flags=None
)
→ ScriptBuilder
Emit opcode sequence to call a smart contrat operation.
Parameters
script_hash
(UInt160) — contract script hash.operation
(str) — method to call on contract.call_flags
(Optional, optional) — call flags for the operation.
method
emit_contract_call_with_args
(
script_hash
, operation
, args
, call_flags=None
)
→ ScriptBuilder
Emit opcode sequence to call a smart contrat operation with arguments.
Parameters
script_hash
(UInt160) — contract script hash.operation
(str) — method to call on contract.args
(Union) — parameters to pass to theoperation
.call_flags
(Optional, optional) — call flags for the operation.
enum
neo3.vm.
StackItemType
(
)
Bases
enum.IntEnum
int
enum.Enum
StackItemType as defined inside the virtual machine
Members
ANY
(int) — 0x0ARRAY
(int) — 0x40BOOLEAN
(int) — 0x20BUFFER
(int) — 0x30BYTESTRING
(int) — 0x28INTEGER
(int) — 0x21MAP
(int) — 0x48POINTER
(int) — 0x10STRUCT
(int) — 0x41
class
neo3.vm.
Syscalls
(
)
Container holding all NEO blockchain interop syscalls.
enum
neo3.vm.
VMState
(
)
Bases
enum.IntEnum
int
enum.Enum
An enumeration.
Members
BREAK
(int) — 0x4FAULT
(int) — 0x2HALT
(int) — 0x1NONE
(int) — 0x0