Skip to content

Commit

Permalink
vm: add new opcodes PUSHT & PUSHF (#247)
Browse files Browse the repository at this point in the history
  • Loading branch information
ixje committed Mar 6, 2023
1 parent 12a3ec0 commit 8465d1b
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 3 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/validate-pr-commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ jobs:
- uses: actions/checkout@v3
- uses: psf/black@stable
with:
options: '--target-version py310'
version: '22.8.0'
src: "neo3/ examples/ tests/"
type-checking:
needs: setup
Expand Down
6 changes: 4 additions & 2 deletions neo3/vm.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ class OpCode(IntEnum):
PUSHINT64 = 0x03
PUSHINT128 = 0x04
PUSHINT256 = 0x05
PUSHT = 0x08
PUSHF = 0x09
PUSHA = 0x0A
PUSHNULL = 0x0B
PUSHDATA1 = 0x0C
Expand Down Expand Up @@ -268,9 +270,9 @@ def emit_push(self, value) -> ScriptBuilder:
return self.emit(OpCode.PUSHNULL)
elif isinstance(value, bool):
if value is True:
return self.emit(OpCode.PUSH1)
return self.emit(OpCode.PUSHT)
else:
return self.emit(OpCode.PUSH0)
return self.emit(OpCode.PUSHF)
elif isinstance(value, str):
self.emit_push(value.encode("utf-8"))
return self
Expand Down
2 changes: 1 addition & 1 deletion tests/test_vm.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ def test_emit_push_simple(self):
sb.emit_push(None)
sb.emit_push(True)
sb.emit_push(False)
expected = vm.OpCode.PUSHNULL + vm.OpCode.PUSH1 + vm.OpCode.PUSH0
expected = vm.OpCode.PUSHNULL + vm.OpCode.PUSHT + vm.OpCode.PUSHF
self.assertEqual(expected, sb.to_array())

def test_emit_push_strings(self):
Expand Down

0 comments on commit 8465d1b

Please sign in to comment.