package com.yoghurt.crypto.transactions.shared.domain;
import java.io.Serializable;
public enum Operation implements Serializable {
// Constants
OP_FALSE(0x00),
OP_PUSHDATA,
OP_PUSHDATA1(0x4c),
OP_PUSHDATA2(0x4d),
OP_PUSHDATA4(0x4e),
OP_1NEGATE(0x4f),
OP_TRUE(0x51),
OP_2(0x52),
OP_3(0x53),
OP_4(0x54),
OP_5(0x55),
OP_6(0x56),
OP_7(0x57),
OP_8(0x58),
OP_9(0x59),
OP_10(0x5a),
OP_11(0x5b),
OP_12(0x5c),
OP_13(0x5d),
OP_14(0x5e),
OP_15(0x5f),
OP_16(0x60),
// Flow control
OP_NOP(0x61),
OP_IF(0x63),
OP_NOTIF(0x64),
OP_ELSE(0x67),
OP_ENDIF(0x68),
OP_VERIFY(0x69),
OP_RETURN(0x6a),
// Stack
OP_TOALTSTACK(0x6b),
OP_FROMALTSTACK(0x6c),
OP_2DROP(0x6d),
OP_2DUP(0x6e),
OP_3DUP(0x6f),
OP_2OVER(0x70),
OP_2ROT(0x71),
OP_2SWAP(0x72),
OP_IFDUP(0x73),
OP_DEPTH(0x74),
OP_DROP(0x75),
OP_DUP(0x76),
OP_NIP(0x77),
OP_OVER(0x78),
OP_PICK(0x79),
OP_ROLL(0x7a),
OP_ROT(0x7b),
OP_SWAP(0x7c),
OP_TUCK(0x7d),
// Splice
OP_CAT(0x7e),
OP_SUBSTR(0x7f),
OP_LEFT(0x80),
OP_RIGHT(0x81),
OP_SIZE(0x82),
// Bitwise logic
OP_INVERT(0x83),
OP_AND(0x84),
OP_OR(0x85),
OP_XOR(0x86),
OP_EQUAL(0x87),
OP_EQUALVERIFY(0x88),
// Arithmetic
OP_1ADD(0x8b),
OP_1SUB(0x8c),
OP_2MUL(0x8d),
OP_2DIV(0x8e),
OP_NEGATE(0x8f),
OP_ABS(0x90),
OP_NOT(0x91),
OP_0NOTEQUAL(0x92),
OP_ADD(0x93),
OP_SUB(0x94),
OP_MUL(0x95),
OP_DIV(0x96),
OP_MOD(0x97),
OP_LSHIFT(0x98),
OP_RSHIFT(0x99),
OP_BOOLAND(0x9a),
OP_BOOLOR(0x9b),
OP_NUMEQUAL(0x9c),
OP_NUMEQUALVERIFY(0x9d),
OP_NUMNOTEQUAL(0x9e),
OP_LESSTHAN(0x9f),
OP_GREATERTHAN(0xa0),
OP_LESSTHANOREQUAL(0xa1),
OP_GREATERTHANOREQUAL(0xa2),
OP_MIN(0xa3),
OP_MAX(0xa4),
OP_WITHIN(0xa5),
// Crypto
OP_RIPEMD160(0xa6),
OP_SHA1(0xa7),
OP_SHA256(0xa8),
OP_HASH160(0xa9),
OP_HASH256(0xaa),
OP_CODESEPARATOR(0xab),
OP_CHECKSIG(0xac),
OP_CHECKSIGVERIFY(0xad),
OP_CHECKMULTISIG(0xae),
OP_CHECKMULTISIGVERIFY(0xaf),
// Pseudo words
OP_PUBKEYHASH(0xfd),
OP_PUBKEY(0xfe),
OP_INVALIDOPCODE(0xff),
// Reserved words
OP_RESERVED(0x50),
OP_VER(0x62),
OP_VERIF(0x65),
OP_VERNOTIF(0x66),
OP_RESERVED1(0x89),
OP_RESERVED2(0x8a),
OP_NOP1(0xb0),
OP_NOP2(0xb1),
OP_NOP3(0xb2),
OP_NOP4(0xb3),
OP_NOP5(0xb4),
OP_NOP6(0xb5),
OP_NOP7(0xb6),
OP_NOP8(0xb7),
OP_NOP9(0xb8),
OP_NOP10(0xb9);
private final int opcode;
private Operation() {
this(-1);
}
private Operation(final int opcode) {
this.opcode = opcode;
}
public int getOpcode() {
return opcode;
}
}