Skip to main content
Single-byte EVM instruction (STOP, ADD, PUSH, CALL, etc.).
import * as Opcode from 'voltaire-effect/primitives/Opcode'
import * as Schema from 'effect/Schema'
import { Effect } from 'effect'

// Schema
const stop = Schema.decodeSync(Opcode.Number)(0x00)  // STOP
const add = Schema.decodeSync(Opcode.Number)(0x01)   // ADD
const push1 = Schema.decodeSync(Opcode.Number)(0x60) // PUSH1

// Effect
const program = Opcode.from(0x01) // ADD
// Effect.Effect<OpcodeType, OpcodeError>

Common Opcodes

OpcodeValue
STOP0x00
ADD0x01
MUL0x02
PUSH10x60
CALL0xf1
RETURN0xf3
REVERT0xfd
Fails on values outside 0x00-0xFF.