#![allow(dead_code)]
pub const FALSE: u8 = 0;
pub const PUSH0: u8 = 0;
pub const PUSH75: u8 = 75;
pub const PUSHDATA1: u8 = 76;
pub const PUSHDATA2: u8 = 77;
pub const PUSHDATA4: u8 = 78;
pub const NEGATIVE1: u8 = 79;
pub const NUM0: u8 = 80;
pub const NUM1: u8 = 81;
pub const TRUE: u8 = 81;
pub const NUM2: u8 = 82;
pub const NUM3: u8 = 83;
pub const NUM4: u8 = 84;
pub const NUM5: u8 = 85;
pub const NUM6: u8 = 86;
pub const NUM7: u8 = 87;
pub const NUM8: u8 = 88;
pub const NUM9: u8 = 89;
pub const NUM10: u8 = 90;
pub const NUM11: u8 = 91;
pub const NUM12: u8 = 92;
pub const NUM13: u8 = 93;
pub const NUM14: u8 = 94;
pub const NUM15: u8 = 95;
pub const NUM16: u8 = 96;
pub const NOP: u8 = 97;
pub const IF: u8 = 99;
pub const NOTIF: u8 = 100;
pub const ELSE: u8 = 103;
pub const ENDIF: u8 = 104;
pub const VERIFY: u8 = 105;
pub const RETURN: u8 = 106;
pub const TOALTSTACK: u8 = 107;
pub const FROMALTSTACK: u8 = 108;
pub const IFDUP: u8 = 115;
pub const DEPTH: u8 = 116;
pub const DROP: u8 = 117;
pub const DUP: u8 = 118;
pub const NIP: u8 = 119;
pub const OVER: u8 = 120;
pub const PICK: u8 = 121;
pub const ROLL: u8 = 122;
pub const ROT: u8 = 123;
pub const SWAP: u8 = 124;
pub const TUCK: u8 = 125;
pub const DROP2: u8 = 109;
pub const DUP2: u8 = 110;
pub const DUP3: u8 = 111;
pub const OVER2: u8 = 112;
pub const ROT2: u8 = 113;
pub const SWAP2: u8 = 114;
pub const SIZE: u8 = 130;
pub const INVERT: u8 = 131;
pub const AND: u8 = 132;
pub const OR: u8 = 133;
pub const XOR: u8 = 134;
pub const EQUAL: u8 = 135;
pub const EQUALVERIFY: u8 = 136;
pub const ADD1: u8 = 139;
pub const SUB1: u8 = 140;
pub const NEGATE: u8 = 143;
pub const ABS: u8 = 144;
pub const NOT: u8 = 145;
pub const NOTEQUAL0: u8 = 146;
pub const ADD: u8 = 147;
pub const SUB: u8 = 148;
pub const MUL: u8 = 149;
pub const DIV: u8 = 150;
pub const MOD: u8 = 151;
pub const LSHIFT: u8 = 152;
pub const RSHIFT: u8 = 153;
pub const BOOLAND: u8 = 154;
pub const BOOLOR: u8 = 155;
pub const NUMEQUAL: u8 = 156;
pub const NUMEQUALVERIFY: u8 = 157;
pub const NUMNOTEQUAL: u8 = 158;
pub const LESSTHAN: u8 = 159;
pub const GREATERTHAN: u8 = 160;
pub const LESSTHANOREQUAL: u8 = 161;
pub const GREATERTHANOREQUAL: u8 = 162;
pub const MIN: u8 = 163;
pub const MAX: u8 = 164;
pub const WITHIN: u8 = 165;
pub const CAT: u8 = 126;
pub const SPLIT: u8 = 127;
pub const NUM2BIN: u8 = 128;
pub const BIN2NUM: u8 = 129;
pub const RIPEMD160: u8 = 166;
pub const SHA1: u8 = 167;
pub const SHA256: u8 = 168;
pub const HASH160: u8 = 169;
pub const HASH256: u8 = 170;
pub const CODESEPARATOR: u8 = 171;
pub const CHECKSIG: u8 = 172;
pub const CHECKSIGVERIFY: u8 = 173;
pub const CHECKMULTISIG: u8 = 174;
pub const CHECKMULTISIGVERIFY: u8 = 175;
pub const CHECKLOCKTIMEVERIFY: u8 = 177;
pub const CHECKSEQUENCEVERIFY: u8 = 178;
pub const PUBKEYHASH: u8 = 253;
pub const PUBKEY: u8 = 254;
pub const INVALIDOPCODE: u8 = 255;
pub const RESERVED: u8 = 80;
pub const VER: u8 = 98;
pub const VERIF: u8 = 101;
pub const VERNOTIF: u8 = 102;
pub const RESERVED1: u8 = 137;
pub const RESERVED2: u8 = 138;
pub const NOP1: u8 = 176;
pub const NOP4: u8 = 179;
pub const NOP5: u8 = 180;
pub const NOP6: u8 = 181;
pub const NOP7: u8 = 182;
pub const NOP8: u8 = 183;
pub const NOP9: u8 = 184;
pub const NOP10: u8 = 185;
pub const INVALID_ABOVE: u8 = 186;
pub const MUL2: u8 = 141;
pub const DIV2: u8 = 142;
pub fn opcode_to_str(opcode: u8) -> String {
let value = match opcode {
FALSE => "0",
PUSHDATA1 => "OP_PUSHDATA1",
PUSHDATA2 => "OP_PUSHDATA2",
PUSHDATA4 => "OP_PUSHDATA4",
NEGATIVE1 => "-1",
RESERVED => "OP_RESERVED",
NUM1 => "1",
NUM2 => "2",
NUM3 => "3",
NUM4 => "4",
NUM5 => "5",
NUM6 => "6",
NUM7 => "7",
NUM8 => "8",
NUM9 => "9",
NUM10 => "10",
NUM11 => "11",
NUM12 => "12",
NUM13 => "13",
NUM14 => "14",
NUM15 => "15",
NUM16 => "16",
NOP => "OP_NOP",
VER => "OP_VER",
IF => "OP_IF",
NOTIF => "OP_NOTIF",
VERIF => "OP_VERIF",
VERNOTIF => "OP_VERNOTIF",
ELSE => "OP_ELSE",
ENDIF => "OP_ENDIF",
VERIFY => "OP_VERIFY",
RETURN => "OP_RETURN",
TOALTSTACK => "OP_TOALTSTACK",
FROMALTSTACK => "OP_FROMALTSTACK",
DROP2 => "OP_2DROP",
DUP2 => "OP_2DUP",
DUP3 => "OP_3DUP",
OVER2 => "OP_2OVER",
ROT2 => "OP_2ROT",
SWAP2 => "OP_2SWAP",
IFDUP => "OP_IFDUP",
DEPTH => "OP_DEPTH",
DROP => "OP_DROP",
DUP => "OP_DUP",
NIP => "OP_NIP",
OVER => "OP_OVER",
PICK => "OP_PICK",
ROLL => "OP_ROLL",
ROT => "OP_ROT",
SWAP => "OP_SWAP",
TUCK => "OP_TUCK",
CAT => "OP_CAT",
SPLIT => "OP_SPLIT",
NUM2BIN => "OP_NUM2BIN",
BIN2NUM => "OP_BIN2NUM",
SIZE => "OP_SIZE",
INVERT => "OP_INVERT",
AND => "OP_AND",
OR => "OP_OR",
XOR => "OP_XOR",
EQUAL => "OP_EQUAL",
EQUALVERIFY => "OP_EQUALVERIFY",
RESERVED1 => "OP_RESERVED1",
RESERVED2 => "OP_RESERVED2",
ADD1 => "OP_1ADD",
SUB1 => "OP_1SUB",
MUL2 => "OP_2MUL",
DIV2 => "OP_2DIV",
NEGATE => "OP_NEGATE",
ABS => "OP_ABS",
NOT => "OP_NOT",
NOTEQUAL0 => "OP_0NOTEQUAL",
ADD => "OP_ADD",
SUB => "OP_SUB",
MUL => "OP_MUL",
DIV => "OP_DIV",
MOD => "OP_MOD",
LSHIFT => "OP_LSHIFT",
RSHIFT => "OP_RSHIFT",
BOOLAND => "OP_BOOLAND",
BOOLOR => "OP_BOOLOR",
NUMEQUAL => "OP_NUMEQUAL",
NUMEQUALVERIFY => "OP_NUMEQUALVERIFY",
NUMNOTEQUAL => "OP_NUMNOTEQUAL",
LESSTHAN => "OP_LESSTHAN",
GREATERTHAN => "OP_GREATERTHAN",
LESSTHANOREQUAL => "OP_LESSTHANOREQUAL",
GREATERTHANOREQUAL => "OP_GREATERTHANOREQUAL",
MIN => "OP_MIN",
MAX => "OP_MAX",
WITHIN => "OP_WITHIN",
RIPEMD160 => "OP_RIPEMD160",
SHA1 => "OP_SHA1",
SHA256 => "OP_SHA256",
HASH160 => "OP_HASH160",
HASH256 => "OP_HASH256",
CODESEPARATOR => "OP_CODESEPARATOR",
CHECKSIG => "OP_CHECKSIG",
CHECKSIGVERIFY => "OP_CHECKSIGVERIFY",
CHECKMULTISIG => "OP_CHECKMULTISIG",
CHECKMULTISIGVERIFY => "OP_CHECKMULTISIGVERIFY",
NOP1 => "OP_NOP1",
CHECKLOCKTIMEVERIFY => "OP_CHECKLOCKTIMEVERIFY",
CHECKSEQUENCEVERIFY => "OP_CHECKSEQUENCEVERIFY",
NOP4 => "OP_NOP4",
NOP5 => "OP_NOP5",
NOP6 => "OP_NOP6",
NOP7 => "OP_NOP7",
NOP8 => "OP_NOP8",
NOP9 => "OP_NOP9",
NOP10 => "OP_NOP10",
INVALIDOPCODE => "OP_INVALIDOPCODE",
_ => "OP_UNKNOWN",
};
return String::from(value);
}