Versions in this module Expand all Collapse all v1 v1.1.2 Sep 16, 2021 Changes in this version + var ErrAltStackUnderflow = errors.New("alt stack underflow") + var ErrBadValue = errors.New("bad value") + var ErrContext = errors.New("wrong context") + var ErrDataStackUnderflow = errors.New("data stack underflow") + var ErrDisallowedOpcode = errors.New("disallowed opcode") + var ErrDivZero = errors.New("division by zero") + var ErrFalseVMResult = errors.New("false VM result") + var ErrLongProgram = errors.New("program size exceeds maxint32") + var ErrRange = errors.New("range error") + var ErrReturn = errors.New("RETURN executed") + var ErrRunLimitExceeded = errors.New("run limit exceeded") + var ErrShortProgram = errors.New("unexpected end of program") + var ErrToken = errors.New("unrecognized token") + var ErrUnexpected = errors.New("unexpected error") + var ErrUnsupportedVM = errors.New("unsupported VM") + var ErrVerifyFailed = errors.New("VERIFY failed") + var TraceOut io.Writer + func AsBool(bytes []byte) bool + func AsInt64(b []byte) (int64, error) + func Assemble(s string) (res []byte, err error) + func BoolBytes(b bool) (result []byte) + func Disassemble(prog []byte) (string, error) + func Int64Bytes(n int64) []byte + func PushdataBytes(in []byte) []byte + func PushdataInt64(n int64) []byte + func Verify(context *Context, gasLimit int64) (gasLeft int64, err error) + type Context struct + Amount *uint64 + Arguments [][]byte + AssetID *[]byte + BlockHeight *uint64 + CheckOutput func(index uint64, amount uint64, assetID []byte, vmVersion uint64, code []byte, ...) (bool, error) + Code []byte + DestPos *uint64 + EntryID []byte + NumResults *uint64 + SpentOutputID *[]byte + TxSigHash func() []byte + TxVersion *uint64 + VMVersion uint64 + type Instruction struct + Data []byte + Len uint32 + Op Op + func ParseOp(prog []byte, pc uint32) (inst Instruction, err error) + func ParseProgram(prog []byte) ([]Instruction, error) + func (inst *Instruction) IsPushdata() bool + type Op uint8 + const OP_0 + const OP_0NOTEQUAL + const OP_1 + const OP_10 + const OP_11 + const OP_12 + const OP_13 + const OP_14 + const OP_15 + const OP_16 + const OP_1ADD + const OP_1NEGATE + const OP_1SUB + const OP_2 + const OP_2DIV + const OP_2DROP + const OP_2DUP + const OP_2MUL + const OP_2OVER + const OP_2ROT + const OP_2SWAP + const OP_3 + const OP_3DUP + const OP_4 + const OP_5 + const OP_6 + const OP_7 + const OP_8 + const OP_9 + const OP_ABS + const OP_ADD + const OP_AMOUNT + const OP_AND + const OP_ASSET + const OP_BLOCKHEIGHT + const OP_BOOLAND + const OP_BOOLOR + const OP_CAT + const OP_CATPUSHDATA + const OP_CHECKMULTISIG + const OP_CHECKOUTPUT + const OP_CHECKPREDICATE + const OP_CHECKSIG + const OP_DATA_1 + const OP_DATA_10 + const OP_DATA_11 + const OP_DATA_12 + const OP_DATA_13 + const OP_DATA_14 + const OP_DATA_15 + const OP_DATA_16 + const OP_DATA_17 + const OP_DATA_18 + const OP_DATA_19 + const OP_DATA_2 + const OP_DATA_20 + const OP_DATA_21 + const OP_DATA_22 + const OP_DATA_23 + const OP_DATA_24 + const OP_DATA_25 + const OP_DATA_26 + const OP_DATA_27 + const OP_DATA_28 + const OP_DATA_29 + const OP_DATA_3 + const OP_DATA_30 + const OP_DATA_31 + const OP_DATA_32 + const OP_DATA_33 + const OP_DATA_34 + const OP_DATA_35 + const OP_DATA_36 + const OP_DATA_37 + const OP_DATA_38 + const OP_DATA_39 + const OP_DATA_4 + const OP_DATA_40 + const OP_DATA_41 + const OP_DATA_42 + const OP_DATA_43 + const OP_DATA_44 + const OP_DATA_45 + const OP_DATA_46 + const OP_DATA_47 + const OP_DATA_48 + const OP_DATA_49 + const OP_DATA_5 + const OP_DATA_50 + const OP_DATA_51 + const OP_DATA_52 + const OP_DATA_53 + const OP_DATA_54 + const OP_DATA_55 + const OP_DATA_56 + const OP_DATA_57 + const OP_DATA_58 + const OP_DATA_59 + const OP_DATA_6 + const OP_DATA_60 + const OP_DATA_61 + const OP_DATA_62 + const OP_DATA_63 + const OP_DATA_64 + const OP_DATA_65 + const OP_DATA_66 + const OP_DATA_67 + const OP_DATA_68 + const OP_DATA_69 + const OP_DATA_7 + const OP_DATA_70 + const OP_DATA_71 + const OP_DATA_72 + const OP_DATA_73 + const OP_DATA_74 + const OP_DATA_75 + const OP_DATA_8 + const OP_DATA_9 + const OP_DEPTH + const OP_DIV + const OP_DROP + const OP_DUP + const OP_ENTRYID + const OP_EQUAL + const OP_EQUALVERIFY + const OP_FAIL + const OP_FALSE + const OP_FROMALTSTACK + const OP_GREATERTHAN + const OP_GREATERTHANOREQUAL + const OP_HASH160 + const OP_IFDUP + const OP_INDEX + const OP_INVERT + const OP_JUMP + const OP_JUMPIF + const OP_LEFT + const OP_LESSTHAN + const OP_LESSTHANOREQUAL + const OP_LSHIFT + const OP_MAX + const OP_MIN + const OP_MOD + const OP_MUL + const OP_NEGATE + const OP_NIP + const OP_NOP + const OP_NOT + const OP_NUMEQUAL + const OP_NUMEQUALVERIFY + const OP_NUMNOTEQUAL + const OP_OR + const OP_OUTPUTID + const OP_OVER + const OP_PICK + const OP_PROGRAM + const OP_PUSHDATA1 + const OP_PUSHDATA2 + const OP_PUSHDATA4 + const OP_RIGHT + const OP_ROLL + const OP_ROT + const OP_RSHIFT + const OP_SHA256 + const OP_SHA3 + const OP_SIZE + const OP_SUB + const OP_SUBSTR + const OP_SWAP + const OP_TOALTSTACK + const OP_TRUE + const OP_TUCK + const OP_TXSIGHASH + const OP_VERIFY + const OP_WITHIN + const OP_XOR + func (op Op) String() string