import { BufferCursor } from './buffer_cursor.js'; /** * All AVM opcodes. (Keep in sync with cpp counterpart code avm_opcode.hpp and rs in opcodes.rs). * Source: https://yp-aztec.netlify.app/docs/public-vm/instruction-set */ export declare enum Opcode { ADD_8 = 0, ADD_16 = 1, SUB_8 = 2, SUB_16 = 3, MUL_8 = 4, MUL_16 = 5, DIV_8 = 6, DIV_16 = 7, FDIV_8 = 8, FDIV_16 = 9, EQ_8 = 10, EQ_16 = 11, LT_8 = 12, LT_16 = 13, LTE_8 = 14, LTE_16 = 15, AND_8 = 16, AND_16 = 17, OR_8 = 18, OR_16 = 19, XOR_8 = 20, XOR_16 = 21, NOT_8 = 22, NOT_16 = 23, SHL_8 = 24, SHL_16 = 25, SHR_8 = 26, SHR_16 = 27, CAST_8 = 28, CAST_16 = 29, GETENVVAR_16 = 30, CALLDATACOPY = 31, SUCCESSCOPY = 32, RETURNDATASIZE = 33, RETURNDATACOPY = 34, JUMP_32 = 35, JUMPI_32 = 36, INTERNALCALL = 37, INTERNALRETURN = 38, SET_8 = 39, SET_16 = 40, SET_32 = 41, SET_64 = 42, SET_128 = 43, SET_FF = 44, MOV_8 = 45, MOV_16 = 46, SLOAD = 47, SSTORE = 48, NOTEHASHEXISTS = 49, EMITNOTEHASH = 50, NULLIFIEREXISTS = 51, EMITNULLIFIER = 52, L1TOL2MSGEXISTS = 53, GETCONTRACTINSTANCE = 54, EMITPUBLICLOG = 55, SENDL2TOL1MSG = 56, CALL = 57, STATICCALL = 58, RETURN = 59, REVERT_8 = 60, REVERT_16 = 61, DEBUGLOG = 62, POSEIDON2 = 63, SHA256COMPRESSION = 64, KECCAKF1600 = 65, ECADD = 66, TORADIXBE = 67 } export declare const MAX_OPCODE_VALUE: number; export declare enum OperandType { UINT8 = 0, UINT16 = 1, UINT32 = 2, UINT64 = 3, UINT128 = 4, FF = 5, TAG = 6 } type DeserializedValue = number | bigint; /** * Returns the size of an operand in bytes. * Should not be called with unknown operand types. * @param operandType * @returns number size in bytes * @throws AssertionError if the operand type is unknown */ export declare function getOperandSize(operandType: OperandType): number; /** * Reads an array of operands from a buffer. * @param cursor Buffer to read from. Might be longer than needed. * @param operands Specification of the operand types. * @returns An array as big as {@code operands}, with the converted TS values. */ export declare function deserialize(cursor: BufferCursor | Buffer, operands: OperandType[]): DeserializedValue[]; /** * Serializes a class using the specified operand types. * More specifically, this serializes {@code [cls.constructor.opcode, ...Object.values(cls)]}. * Observe in particular that: * (1) the first operand type specified must correspond to the opcode; * (2) the rest of the operand types must be specified in the order returned by {@code Object.values()}. * @param operands Type specification for the values to be serialized. * @param cls The class to be serialized. * @returns */ export declare function serializeAs(operands: OperandType[], opcode: Opcode, cls: any): Buffer; export {}; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb25fc2VyaWFsaXphdGlvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3B1YmxpYy9hdm0vc2VyaWFsaXphdGlvbi9pbnN0cnVjdGlvbl9zZXJpYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRDs7O0dBR0c7QUFDSCxvQkFBWSxNQUFNO0lBRWhCLEtBQUssSUFBQTtJQUNMLE1BQU0sSUFBQTtJQUNOLEtBQUssSUFBQTtJQUNMLE1BQU0sSUFBQTtJQUNOLEtBQUssSUFBQTtJQUNMLE1BQU0sSUFBQTtJQUNOLEtBQUssSUFBQTtJQUNMLE1BQU0sSUFBQTtJQUNOLE1BQU0sSUFBQTtJQUNOLE9BQU8sSUFBQTtJQUNQLElBQUksS0FBQTtJQUNKLEtBQUssS0FBQTtJQUNMLElBQUksS0FBQTtJQUNKLEtBQUssS0FBQTtJQUNMLEtBQUssS0FBQTtJQUNMLE1BQU0sS0FBQTtJQUNOLEtBQUssS0FBQTtJQUNMLE1BQU0sS0FBQTtJQUNOLElBQUksS0FBQTtJQUNKLEtBQUssS0FBQTtJQUNMLEtBQUssS0FBQTtJQUNMLE1BQU0sS0FBQTtJQUNOLEtBQUssS0FBQTtJQUNMLE1BQU0sS0FBQTtJQUNOLEtBQUssS0FBQTtJQUNMLE1BQU0sS0FBQTtJQUNOLEtBQUssS0FBQTtJQUNMLE1BQU0sS0FBQTtJQUNOLE1BQU0sS0FBQTtJQUNOLE9BQU8sS0FBQTtJQUVQLFlBQVksS0FBQTtJQUNaLFlBQVksS0FBQTtJQUNaLFdBQVcsS0FBQTtJQUNYLGNBQWMsS0FBQTtJQUNkLGNBQWMsS0FBQTtJQUVkLE9BQU8sS0FBQTtJQUNQLFFBQVEsS0FBQTtJQUNSLFlBQVksS0FBQTtJQUNaLGNBQWMsS0FBQTtJQUVkLEtBQUssS0FBQTtJQUNMLE1BQU0sS0FBQTtJQUNOLE1BQU0sS0FBQTtJQUNOLE1BQU0sS0FBQTtJQUNOLE9BQU8sS0FBQTtJQUNQLE1BQU0sS0FBQTtJQUNOLEtBQUssS0FBQTtJQUNMLE1BQU0sS0FBQTtJQUVOLEtBQUssS0FBQTtJQUNMLE1BQU0sS0FBQTtJQUNOLGNBQWMsS0FBQTtJQUNkLFlBQVksS0FBQTtJQUNaLGVBQWUsS0FBQTtJQUNmLGFBQWEsS0FBQTtJQUNiLGVBQWUsS0FBQTtJQUNmLG1CQUFtQixLQUFBO0lBQ25CLGFBQWEsS0FBQTtJQUNiLGFBQWEsS0FBQTtJQUViLElBQUksS0FBQTtJQUNKLFVBQVUsS0FBQTtJQUNWLE1BQU0sS0FBQTtJQUNOLFFBQVEsS0FBQTtJQUNSLFNBQVMsS0FBQTtJQUVULFFBQVEsS0FBQTtJQUVSLFNBQVMsS0FBQTtJQUNULGlCQUFpQixLQUFBO0lBQ2pCLFdBQVcsS0FBQTtJQUNYLEtBQUssS0FBQTtJQUVMLFNBQVMsS0FBQTtDQUNWO0FBRUQsZUFBTyxNQUFNLGdCQUFnQixRQUk1QixDQUFDO0FBSUYsb0JBQVksV0FBVztJQUNyQixLQUFLLElBQUE7SUFDTCxNQUFNLElBQUE7SUFDTixNQUFNLElBQUE7SUFDTixNQUFNLElBQUE7SUFDTixPQUFPLElBQUE7SUFDUCxFQUFFLElBQUE7SUFDRixHQUFHLElBQUE7Q0FDSjtBQUdELEtBQUssaUJBQWlCLEdBQUcsTUFBTSxHQUFHLE1BQU0sQ0FBQztBQWdCekM7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLGNBQWMsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLE1BQU0sQ0FHL0Q7QUFrREQ7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IsV0FBVyxDQUFDLE1BQU0sRUFBRSxZQUFZLEdBQUcsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsR0FBRyxpQkFBaUIsRUFBRSxDQXlCdkc7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCx3QkFBZ0IsV0FBVyxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsTUFBTSxDQW1CckYifQ==