#ver | const uint16 | - | operand1을 취해서 vm version을 검사. |
#txa1 | data type | - | TxProvideScript와 TxAcceptScript의 Args[0]의 데이터 타입을 지정. |
#txa2 | data type | - | TxProvideScript와 TxAcceptScript의 Args[1]의 데이터 타입을 지정. |
#txa3 | data type | - | TxProvideScript와 TxAcceptScript의 Args[2]의 데이터 타입을 지정. |
#txa4 | data type | - | TxProvideScript와 TxAcceptScript의 Args[3]의 데이터 타입을 지정. |
op0, push_false | - | - | 스택에 0을 push 한다. (1 byte) |
op1, push_true | - | - | 스택에 1을 push 한다. (1 byte), 1만이 유일한 TRUE 값. |
op2 ~ op16 | - | - | 스택에 2 ~ 16을 push 한다. (1 byte) |
ver | - | - | 스택에서 1 byte를 pop하여, verify 한다.값이 1이면 mark를 true로 세트하고 스크립트를 종료. 다른 값이면 mark는 false가 됨. |
ret | - | - | mark를 false로 세트하고 스크립트를 종료. |
if | - | - | 스택에서 1 byte를 pop하여, 값이 1이면 IF절을 수행한다. 값이 1이 아니고, else 절이 존재하면 else 절을 수행. if 구문은 중첩가능. |
ifn | - | - | 스택에서 1 byte를 pop하여, 값이 1이 아니 면 if 절을 수행한다.값이 1이고, else 절이 존재하면 else 절을 수행. |
else | - | - | if 절의 끝, else 절의 시작. |
eif | - | - | if 절 혹은 else 절의 끝. |
push_txr1 | - | - | TxProvideScript의 Round 값을 스택에 push. |
push_txr2 | - | - | TXAcceptScript의 Round 값을 스택에 push. |
push_txh1 | - | - | TxProvideScript의 Height 값을 스택에 push. |
push_txh2 | - | - | TXAcceptScript의 Height 값을 스택에 push. |
push_txa1 | - | - | Tx의 Arg[0]의 값을 스택에 push. 이 opcode를 수행하기 전에 #txa1으로 data type이 지정되어 있어야 함. |
push_txa2 | - | - | Tx의 Arg[1]의 값을 스택에 push. 이 opcode를 수행하기 전에 #txa2으로 data type이 지정되어 있어야 함. |
push_txa3 | - | - | Tx의 Arg[2]의 값을 스택에 push. 이 opcode를 수행하기 전에 #txa3으로 data type이 지정되어 있어야 함. |
push_txa4 | - | - | Tx의 Arg[3]의 값을 스택에 push. 이 opcode를 수행하기 전에 #txa4으로 data type이 지정되어 있어야 함. |
hash_sha | - | - | 스택에서 data를 pop 해서, sha256으로 해시값을 계산하여 스택에 push. |
hash_blake | - | - | 스택에서 data를 pop 해서, blake2b256으로 해시값을 계산하여 스택에 push. |
root_summary | - | - | 스택에서 summary를 pop 해서, summary의 root를 계산하여 스택에 push. |
equ | - | - | 스택에서 data를 두번 pop 해서 비교한 결과가 같으면 push_true를, 다르면 push_false 함. |
neq | - | - | 스택에서 data를 두번 pop 해서 비교한 결과가 다르면 push_true를, 같으면 push_false 함. |
lt | - | - | 스택에서 data를 두번 pop 해서 1st pop < 2nd pop 이면 push_true를, 아니면 push_false 함. |
lte | - | - | 스택에서 data를 두번 pop 해서 1st pop <= 2nd pop 이면 push_true를, 아니면 push_false 함. |
gt | - | - | 스택에서 data를 두번 pop 해서 1st pop > 2nd pop 이면 push_true를, 아니면 push_false 함. |
gte | - | - | 스택에서 data를 두번 pop 해서 1st pop >= 2nd pop 이면 push_true를, 아니면 push_false 함. |
dup | - | - | 스택의 최상위의 data와 같은 data를 스택에 push 함. (복사한다) (stack : x, ... → x, x, ...) |
drop | - | - | 스택에서 data를 pop 해서, 버림. (stack : x, y, ... → y, ...) |
swap | - | - | 스택에서 data를 두번 pop 해서, 교차해서 push 함. (stack : x, y, ... → y, x, ...) |
rot | - | - | 스택에서 최상위 data 3개를 rotate 시킴. (stack : x, y, z, ... → z, x, y, ...) |
over | - | - | 스택 최상위에서 두번째 data를 최상위에 복사함. (stack : x, y, ... → y, x, y, ...) |
add | - | - | 스택에서 data를 두번 pop 해서 더한 결과를 push 함. (type이 다르면 에러를 돌림) |