bitcointx 0.0.11

Bitcoin TX utility crate
Documentation
#![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;

// This is set up with the names provided by the bitcoin-sv original repo
// https://github.com/bitcoin-sv/bitcoin-sv/blob/7fd177c7c443ff7723d88c5465fbf39285388e30/src/script/script.cpp
// It's main purpose is for tests
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);
}