BSV.Contract.OpCodeHelpers (BSV v2.1.0) View Source
Helper module for using Op Codes in BSV.Contract
modules.
All known Op Codes are available as a function which simply pushes the Op Code
word onto the Contract Script. Refer to BSV.VM
for descriptions of each
Op Code.
In addition, op_if/2
and op_if/3
provide a more syntactically pleasing way
of handling the flow controw operations by passing handle_if
and handle_else
callback functions.
op_if(contract, &op_1add/1, &op_1sub/1)
# Equivalent to...
contract
|> op_if()
|> op_1add()
|> op_else()
|> op_1sub()
|> op_endif()
The same applies to op_notif/2
and op_notif/3
.
Link to this section Summary
Functions
Pushes the OP_0
word onto the script.
Pushes the OP_0NOTEQUAL
word onto the script.
Pushes the OP_1
word onto the script.
Pushes the OP_10
word onto the script.
Pushes the OP_11
word onto the script.
Pushes the OP_12
word onto the script.
Pushes the OP_13
word onto the script.
Pushes the OP_14
word onto the script.
Pushes the OP_15
word onto the script.
Pushes the OP_16
word onto the script.
Pushes the OP_1ADD
word onto the script.
Pushes the OP_1NEGATE
word onto the script.
Pushes the OP_1SUB
word onto the script.
Pushes the OP_2
word onto the script.
Pushes the OP_2DIV
word onto the script.
Pushes the OP_2DROP
word onto the script.
Pushes the OP_2DUP
word onto the script.
Pushes the OP_2MUL
word onto the script.
Pushes the OP_2OVER
word onto the script.
Pushes the OP_2ROT
word onto the script.
Pushes the OP_2SWAP
word onto the script.
Pushes the OP_3
word onto the script.
Pushes the OP_3DUP
word onto the script.
Pushes the OP_4
word onto the script.
Pushes the OP_5
word onto the script.
Pushes the OP_6
word onto the script.
Pushes the OP_7
word onto the script.
Pushes the OP_8
word onto the script.
Pushes the OP_9
word onto the script.
Pushes the OP_ABS
word onto the script.
Pushes the OP_ADD
word onto the script.
Pushes the OP_AND
word onto the script.
Pushes the OP_BIN2NUM
word onto the script.
Pushes the OP_BOOLAND
word onto the script.
Pushes the OP_BOOLOR
word onto the script.
Pushes the OP_CAT
word onto the script.
Pushes the OP_CHECKLOCKTIMEVERIFY
word onto the script.
Pushes the OP_CHECKMULTISIG
word onto the script.
Pushes the OP_CHECKMULTISIGVERIFY
word onto the script.
Pushes the OP_CHECKSEQUENCEVERIFY
word onto the script.
Pushes the OP_CHECKSIG
word onto the script.
Pushes the OP_CHECKSIGVERIFY
word onto the script.
Pushes the OP_CODESEPARATOR
word onto the script.
Pushes the OP_DEPTH
word onto the script.
Pushes the OP_DIV
word onto the script.
Pushes the OP_DROP
word onto the script.
Pushes the OP_DUP
word onto the script.
Pushes the OP_ELSE
word onto the script.
Pushes the OP_ENDIF
word onto the script.
Pushes the OP_EQUAL
word onto the script.
Pushes the OP_EQUALVERIFY
word onto the script.
Pushes the OP_FALSE
word onto the script.
Pushes the OP_FROMALTSTACK
word onto the script.
Pushes the OP_GREATERTHAN
word onto the script.
Pushes the OP_GREATERTHANOREQUAL
word onto the script.
Pushes the OP_HASH160
word onto the script.
Pushes the OP_HASH256
word onto the script.
Pushes the OP_IF
word onto the script.
Wraps the given handle_if
function with OP_IF
and OP_ENDIF
script words.
Wraps the given handle_if
and handle_else
functions with OP_IF
,
OP_ELSE
and OP_ENDIF
script words.
Pushes the OP_IFDUP
word onto the script.
Pushes the OP_INVALIDOPCODE
word onto the script.
Pushes the OP_INVERT
word onto the script.
Pushes the OP_LESSTHAN
word onto the script.
Pushes the OP_LESSTHANOREQUAL
word onto the script.
Pushes the OP_LSHIFT
word onto the script.
Pushes the OP_MAX
word onto the script.
Pushes the OP_MIN
word onto the script.
Pushes the OP_MOD
word onto the script.
Pushes the OP_MUL
word onto the script.
Pushes the OP_NEGATE
word onto the script.
Pushes the OP_NIP
word onto the script.
Pushes the OP_NOP
word onto the script.
Pushes the OP_NOP1
word onto the script.
Pushes the OP_NOP10
word onto the script.
Pushes the OP_NOP2
word onto the script.
Pushes the OP_NOP3
word onto the script.
Pushes the OP_NOP4
word onto the script.
Pushes the OP_NOP5
word onto the script.
Pushes the OP_NOP6
word onto the script.
Pushes the OP_NOP7
word onto the script.
Pushes the OP_NOP8
word onto the script.
Pushes the OP_NOP9
word onto the script.
Pushes the OP_NOT
word onto the script.
Pushes the OP_NOTIF
word onto the script.
Wraps the given handle_if
function with OP_NOTIF
and OP_ENDIF
script
words.
Wraps the given handle_if
and handle_else
functions with OP_NOTIF
,
OP_ELSE
and OP_ENDIF
script words.
Pushes the OP_NUM2BIN
word onto the script.
Pushes the OP_NUMEQUAL
word onto the script.
Pushes the OP_NUMEQUALVERIFY
word onto the script.
Pushes the OP_NUMNOTEQUAL
word onto the script.
Pushes the OP_OR
word onto the script.
Pushes the OP_OVER
word onto the script.
Pushes the OP_PICK
word onto the script.
Pushes the OP_PUBKEY
word onto the script.
Pushes the OP_PUBKEYHASH
word onto the script.
Pushes the OP_PUBKEYS
word onto the script.
Pushes the OP_PUSHDATA1
word onto the script.
Pushes the OP_PUSHDATA2
word onto the script.
Pushes the OP_PUSHDATA4
word onto the script.
Pushes the OP_RESERVED
word onto the script.
Pushes the OP_RESERVED1
word onto the script.
Pushes the OP_RESERVED2
word onto the script.
Pushes the OP_RETURN
word onto the script.
Pushes the OP_RIPEMD160
word onto the script.
Pushes the OP_ROLL
word onto the script.
Pushes the OP_ROT
word onto the script.
Pushes the OP_RSHIFT
word onto the script.
Pushes the OP_SHA1
word onto the script.
Pushes the OP_SHA256
word onto the script.
Pushes the OP_SIZE
word onto the script.
Pushes the OP_SMALLDATA
word onto the script.
Pushes the OP_SMALLINTEGER
word onto the script.
Pushes the OP_SPLIT
word onto the script.
Pushes the OP_SUB
word onto the script.
Pushes the OP_SWAP
word onto the script.
Pushes the OP_TOALTSTACK
word onto the script.
Pushes the OP_TRUE
word onto the script.
Pushes the OP_TUCK
word onto the script.
Pushes the OP_VER
word onto the script.
Pushes the OP_VERIF
word onto the script.
Pushes the OP_VERIFY
word onto the script.
Pushes the OP_VERNOTIF
word onto the script.
Pushes the OP_WITHIN
word onto the script.
Pushes the OP_XOR
word onto the script.
Link to this section Functions
Specs
op_0(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_0
word onto the script.
Specs
op_0notequal(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_0NOTEQUAL
word onto the script.
Specs
op_1(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_1
word onto the script.
Specs
op_10(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_10
word onto the script.
Specs
op_11(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_11
word onto the script.
Specs
op_12(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_12
word onto the script.
Specs
op_13(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_13
word onto the script.
Specs
op_14(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_14
word onto the script.
Specs
op_15(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_15
word onto the script.
Specs
op_16(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_16
word onto the script.
Specs
op_1add(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_1ADD
word onto the script.
Specs
op_1negate(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_1NEGATE
word onto the script.
Specs
op_1sub(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_1SUB
word onto the script.
Specs
op_2(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_2
word onto the script.
Specs
op_2div(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_2DIV
word onto the script.
Specs
op_2drop(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_2DROP
word onto the script.
Specs
op_2dup(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_2DUP
word onto the script.
Specs
op_2mul(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_2MUL
word onto the script.
Specs
op_2over(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_2OVER
word onto the script.
Specs
op_2rot(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_2ROT
word onto the script.
Specs
op_2swap(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_2SWAP
word onto the script.
Specs
op_3(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_3
word onto the script.
Specs
op_3dup(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_3DUP
word onto the script.
Specs
op_4(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_4
word onto the script.
Specs
op_5(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_5
word onto the script.
Specs
op_6(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_6
word onto the script.
Specs
op_7(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_7
word onto the script.
Specs
op_8(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_8
word onto the script.
Specs
op_9(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_9
word onto the script.
Specs
op_abs(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_ABS
word onto the script.
Specs
op_add(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_ADD
word onto the script.
Specs
op_and(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_AND
word onto the script.
Specs
op_bin2num(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_BIN2NUM
word onto the script.
Specs
op_booland(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_BOOLAND
word onto the script.
Specs
op_boolor(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_BOOLOR
word onto the script.
Specs
op_cat(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_CAT
word onto the script.
Specs
op_checklocktimeverify(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_CHECKLOCKTIMEVERIFY
word onto the script.
Specs
op_checkmultisig(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_CHECKMULTISIG
word onto the script.
Specs
op_checkmultisigverify(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_CHECKMULTISIGVERIFY
word onto the script.
Specs
op_checksequenceverify(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_CHECKSEQUENCEVERIFY
word onto the script.
Specs
op_checksig(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_CHECKSIG
word onto the script.
Specs
op_checksigverify(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_CHECKSIGVERIFY
word onto the script.
Specs
op_codeseparator(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_CODESEPARATOR
word onto the script.
Specs
op_depth(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_DEPTH
word onto the script.
Specs
op_div(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_DIV
word onto the script.
Specs
op_drop(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_DROP
word onto the script.
Specs
op_dup(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_DUP
word onto the script.
Specs
op_else(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_ELSE
word onto the script.
Specs
op_endif(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_ENDIF
word onto the script.
Specs
op_equal(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_EQUAL
word onto the script.
Specs
op_equalverify(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_EQUALVERIFY
word onto the script.
Specs
op_false(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_FALSE
word onto the script.
Specs
op_fromaltstack(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_FROMALTSTACK
word onto the script.
Specs
op_greaterthan(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_GREATERTHAN
word onto the script.
Specs
op_greaterthanorequal(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_GREATERTHANOREQUAL
word onto the script.
Specs
op_hash160(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_HASH160
word onto the script.
Specs
op_hash256(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_HASH256
word onto the script.
Specs
op_if(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_IF
word onto the script.
Specs
op_if(BSV.Contract.t(), (BSV.Contract.t() -> BSV.Contract.t())) :: BSV.Contract.t()
Wraps the given handle_if
function with OP_IF
and OP_ENDIF
script words.
Specs
op_if( BSV.Contract.t(), (BSV.Contract.t() -> BSV.Contract.t()), (BSV.Contract.t() -> BSV.Contract.t()) ) :: BSV.Contract.t()
Wraps the given handle_if
and handle_else
functions with OP_IF
,
OP_ELSE
and OP_ENDIF
script words.
Specs
op_ifdup(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_IFDUP
word onto the script.
Specs
op_invalidopcode(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_INVALIDOPCODE
word onto the script.
Specs
op_invert(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_INVERT
word onto the script.
Specs
op_lessthan(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_LESSTHAN
word onto the script.
Specs
op_lessthanorequal(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_LESSTHANOREQUAL
word onto the script.
Specs
op_lshift(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_LSHIFT
word onto the script.
Specs
op_max(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_MAX
word onto the script.
Specs
op_min(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_MIN
word onto the script.
Specs
op_mod(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_MOD
word onto the script.
Specs
op_mul(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_MUL
word onto the script.
Specs
op_negate(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_NEGATE
word onto the script.
Specs
op_nip(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_NIP
word onto the script.
Specs
op_nop(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_NOP
word onto the script.
Specs
op_nop1(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_NOP1
word onto the script.
Specs
op_nop10(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_NOP10
word onto the script.
Specs
op_nop2(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_NOP2
word onto the script.
Specs
op_nop3(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_NOP3
word onto the script.
Specs
op_nop4(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_NOP4
word onto the script.
Specs
op_nop5(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_NOP5
word onto the script.
Specs
op_nop6(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_NOP6
word onto the script.
Specs
op_nop7(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_NOP7
word onto the script.
Specs
op_nop8(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_NOP8
word onto the script.
Specs
op_nop9(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_NOP9
word onto the script.
Specs
op_not(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_NOT
word onto the script.
Specs
op_notif(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_NOTIF
word onto the script.
Specs
op_notif(BSV.Contract.t(), (BSV.Contract.t() -> BSV.Contract.t())) :: BSV.Contract.t()
Wraps the given handle_if
function with OP_NOTIF
and OP_ENDIF
script
words.
Specs
op_notif( BSV.Contract.t(), (BSV.Contract.t() -> BSV.Contract.t()), (BSV.Contract.t() -> BSV.Contract.t()) ) :: BSV.Contract.t()
Wraps the given handle_if
and handle_else
functions with OP_NOTIF
,
OP_ELSE
and OP_ENDIF
script words.
Specs
op_num2bin(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_NUM2BIN
word onto the script.
Specs
op_numequal(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_NUMEQUAL
word onto the script.
Specs
op_numequalverify(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_NUMEQUALVERIFY
word onto the script.
Specs
op_numnotequal(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_NUMNOTEQUAL
word onto the script.
Specs
op_or(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_OR
word onto the script.
Specs
op_over(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_OVER
word onto the script.
Specs
op_pick(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_PICK
word onto the script.
Specs
op_pubkey(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_PUBKEY
word onto the script.
Specs
op_pubkeyhash(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_PUBKEYHASH
word onto the script.
Specs
op_pubkeys(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_PUBKEYS
word onto the script.
Specs
op_pushdata1(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_PUSHDATA1
word onto the script.
Specs
op_pushdata2(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_PUSHDATA2
word onto the script.
Specs
op_pushdata4(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_PUSHDATA4
word onto the script.
Specs
op_reserved(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_RESERVED
word onto the script.
Specs
op_reserved1(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_RESERVED1
word onto the script.
Specs
op_reserved2(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_RESERVED2
word onto the script.
Specs
op_return(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_RETURN
word onto the script.
Specs
op_ripemd160(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_RIPEMD160
word onto the script.
Specs
op_roll(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_ROLL
word onto the script.
Specs
op_rot(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_ROT
word onto the script.
Specs
op_rshift(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_RSHIFT
word onto the script.
Specs
op_sha1(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_SHA1
word onto the script.
Specs
op_sha256(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_SHA256
word onto the script.
Specs
op_size(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_SIZE
word onto the script.
Specs
op_smalldata(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_SMALLDATA
word onto the script.
Specs
op_smallinteger(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_SMALLINTEGER
word onto the script.
Specs
op_split(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_SPLIT
word onto the script.
Specs
op_sub(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_SUB
word onto the script.
Specs
op_swap(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_SWAP
word onto the script.
Specs
op_toaltstack(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_TOALTSTACK
word onto the script.
Specs
op_true(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_TRUE
word onto the script.
Specs
op_tuck(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_TUCK
word onto the script.
Specs
op_ver(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_VER
word onto the script.
Specs
op_verif(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_VERIF
word onto the script.
Specs
op_verify(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_VERIFY
word onto the script.
Specs
op_vernotif(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_VERNOTIF
word onto the script.
Specs
op_within(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_WITHIN
word onto the script.
Specs
op_xor(BSV.Contract.t()) :: BSV.Contract.t()
Pushes the OP_XOR
word onto the script.