> ## Documentation Index
> Fetch the complete documentation index at: https://voltaire.tevm.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# primitives/Opcode

> Auto-generated API documentation

[**@tevm/voltaire**](../index.mdx)

***

[@tevm/voltaire](../index.mdx) / primitives/Opcode

# primitives/Opcode

## Type Aliases

### BrandedOpcode

> **BrandedOpcode** = `number` & `object`

Defined in: [src/primitives/Opcode/OpcodeType.ts:6](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/OpcodeType.ts#L6)

Branded type for EVM opcodes (number 0x00-0xFF)

#### Type Declaration

##### \[brand]

> `readonly` **\[brand]**: `"Opcode"`

***

### Info

> **Info** = `object`

Defined in: [src/primitives/Opcode/OpcodeType.ts:23](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/OpcodeType.ts#L23)

Opcode metadata structure

#### Properties

##### gasCost

> **gasCost**: `number`

Defined in: [src/primitives/Opcode/OpcodeType.ts:25](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/OpcodeType.ts#L25)

Base gas cost (may be dynamic at runtime)

##### name

> **name**: `string`

Defined in: [src/primitives/Opcode/OpcodeType.ts:31](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/OpcodeType.ts#L31)

Opcode name

##### stackInputs

> **stackInputs**: `number`

Defined in: [src/primitives/Opcode/OpcodeType.ts:27](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/OpcodeType.ts#L27)

Number of stack items consumed

##### stackOutputs

> **stackOutputs**: `number`

Defined in: [src/primitives/Opcode/OpcodeType.ts:29](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/OpcodeType.ts#L29)

Number of stack items produced

***

### Instruction

> **Instruction** = `object`

Defined in: [src/primitives/Opcode/OpcodeType.ts:11](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/OpcodeType.ts#L11)

Instruction with opcode and optional immediate data

#### Properties

##### immediate?

> `optional` **immediate**: `Uint8Array`

Defined in: [src/primitives/Opcode/OpcodeType.ts:17](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/OpcodeType.ts#L17)

Immediate data for PUSH operations

##### offset

> **offset**: `number`

Defined in: [src/primitives/Opcode/OpcodeType.ts:13](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/OpcodeType.ts#L13)

Program counter offset

##### opcode

> **opcode**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/OpcodeType.ts:15](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/OpcodeType.ts#L15)

The opcode

## Variables

### ADD

> `const` **ADD**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:10](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L10)

***

### ADDMOD

> `const` **ADDMOD**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:17](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L17)

***

### ADDRESS

> `const` **ADDRESS**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:52](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L52)

***

### AND

> `const` **AND**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:37](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L37)

***

### AUTH

> `const` **AUTH**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:312](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L312)

***

### AUTHCALL

> `const` **AUTHCALL**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:313](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L313)

***

### BALANCE

> `const` **BALANCE**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:55](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L55)

***

### BASEFEE

> `const` **BASEFEE**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:121](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L121)

***

### BLOBBASEFEE

> `const` **BLOBBASEFEE**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:127](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L127)

***

### BLOBHASH

> `const` **BLOBHASH**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:124](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L124)

***

### BLOCKHASH

> `const` **BLOCKHASH**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:97](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L97)

***

### BrandedOpcode

> `const` **BrandedOpcode**: `object`

Defined in: [src/primitives/Opcode/Opcode.js:164](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/Opcode.js#L164)

#### Type Declaration

##### ADD

> **ADD**: [`BrandedOpcode`](#brandedopcode)

##### ADDMOD

> **ADDMOD**: [`BrandedOpcode`](#brandedopcode)

##### ADDRESS

> **ADDRESS**: [`BrandedOpcode`](#brandedopcode)

##### AND

> **AND**: [`BrandedOpcode`](#brandedopcode)

##### AUTH

> **AUTH**: [`BrandedOpcode`](#brandedopcode)

##### AUTHCALL

> **AUTHCALL**: [`BrandedOpcode`](#brandedopcode)

##### BALANCE

> **BALANCE**: [`BrandedOpcode`](#brandedopcode)

##### BASEFEE

> **BASEFEE**: [`BrandedOpcode`](#brandedopcode)

##### BLOBBASEFEE

> **BLOBBASEFEE**: [`BrandedOpcode`](#brandedopcode)

##### BLOBHASH

> **BLOBHASH**: [`BrandedOpcode`](#brandedopcode)

##### BLOCKHASH

> **BLOCKHASH**: [`BrandedOpcode`](#brandedopcode)

##### BYTE

> **BYTE**: [`BrandedOpcode`](#brandedopcode)

##### CALL

> **CALL**: [`BrandedOpcode`](#brandedopcode)

##### CALLCODE

> **CALLCODE**: [`BrandedOpcode`](#brandedopcode)

##### CALLDATACOPY

> **CALLDATACOPY**: [`BrandedOpcode`](#brandedopcode)

##### CALLDATALOAD

> **CALLDATALOAD**: [`BrandedOpcode`](#brandedopcode)

##### CALLDATASIZE

> **CALLDATASIZE**: [`BrandedOpcode`](#brandedopcode)

##### CALLER

> **CALLER**: [`BrandedOpcode`](#brandedopcode)

##### CALLVALUE

> **CALLVALUE**: [`BrandedOpcode`](#brandedopcode)

##### CHAINID

> **CHAINID**: [`BrandedOpcode`](#brandedopcode)

##### CODECOPY

> **CODECOPY**: [`BrandedOpcode`](#brandedopcode)

##### CODESIZE

> **CODESIZE**: [`BrandedOpcode`](#brandedopcode)

##### COINBASE

> **COINBASE**: [`BrandedOpcode`](#brandedopcode)

##### CREATE

> **CREATE**: [`BrandedOpcode`](#brandedopcode)

##### CREATE2

> **CREATE2**: [`BrandedOpcode`](#brandedopcode)

##### DELEGATECALL

> **DELEGATECALL**: [`BrandedOpcode`](#brandedopcode)

##### DIFFICULTY

> **DIFFICULTY**: [`BrandedOpcode`](#brandedopcode)

##### disassemble()

> **disassemble**: (`bytecode`) => `string`\[]

Disassemble bytecode to human-readable strings

###### Parameters

###### bytecode

`Uint8Array`\<`ArrayBufferLike`>

Raw bytecode bytes

###### Returns

`string`\[]

Array of formatted instruction strings

###### Example

```typescript theme={null}
const bytecode = new Uint8Array([0x60, 0x01, 0x60, 0x02, 0x01]);
const asm = Opcode.disassemble(bytecode);
// [
//   "0x0000: PUSH1 0x01",
//   "0x0002: PUSH1 0x02",
//   "0x0004: ADD"
// ]
```

##### DIV

> **DIV**: [`BrandedOpcode`](#brandedopcode)

##### DUP1

> **DUP1**: [`BrandedOpcode`](#brandedopcode)

##### DUP10

> **DUP10**: [`BrandedOpcode`](#brandedopcode)

##### DUP11

> **DUP11**: [`BrandedOpcode`](#brandedopcode)

##### DUP12

> **DUP12**: [`BrandedOpcode`](#brandedopcode)

##### DUP13

> **DUP13**: [`BrandedOpcode`](#brandedopcode)

##### DUP14

> **DUP14**: [`BrandedOpcode`](#brandedopcode)

##### DUP15

> **DUP15**: [`BrandedOpcode`](#brandedopcode)

##### DUP16

> **DUP16**: [`BrandedOpcode`](#brandedopcode)

##### DUP2

> **DUP2**: [`BrandedOpcode`](#brandedopcode)

##### DUP3

> **DUP3**: [`BrandedOpcode`](#brandedopcode)

##### DUP4

> **DUP4**: [`BrandedOpcode`](#brandedopcode)

##### DUP5

> **DUP5**: [`BrandedOpcode`](#brandedopcode)

##### DUP6

> **DUP6**: [`BrandedOpcode`](#brandedopcode)

##### DUP7

> **DUP7**: [`BrandedOpcode`](#brandedopcode)

##### DUP8

> **DUP8**: [`BrandedOpcode`](#brandedopcode)

##### DUP9

> **DUP9**: [`BrandedOpcode`](#brandedopcode)

##### dupPosition()

> **dupPosition**: (`opcode`) => `number` | `undefined`

Get position for DUP instruction

###### Parameters

###### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

###### Returns

`number` | `undefined`

Stack position (1-16), or undefined if not a DUP

###### Example

```typescript theme={null}
Opcode.dupPosition(Opcode.DUP1); // 1
Opcode.dupPosition(Opcode.DUP16); // 16
Opcode.dupPosition(Opcode.ADD); // undefined
```

##### EQ

> **EQ**: [`BrandedOpcode`](#brandedopcode)

##### EXP

> **EXP**: [`BrandedOpcode`](#brandedopcode)

##### EXTCODECOPY

> **EXTCODECOPY**: [`BrandedOpcode`](#brandedopcode)

##### EXTCODEHASH

> **EXTCODEHASH**: [`BrandedOpcode`](#brandedopcode)

##### EXTCODESIZE

> **EXTCODESIZE**: [`BrandedOpcode`](#brandedopcode)

##### format()

> **format**: (`instruction`) => `string`

Format instruction to human-readable string

###### Parameters

###### instruction

[`Instruction`](#instruction)

Instruction to format

###### Returns

`string`

Human-readable string

###### Example

```typescript theme={null}
const inst = {
  offset: 0,
  opcode: Opcode.PUSH1,
  immediate: new Uint8Array([0x42])
};
Opcode.format(inst); // "0x0000: PUSH1 0x42"
```

##### GAS

> **GAS**: [`BrandedOpcode`](#brandedopcode)

##### GASLIMIT

> **GASLIMIT**: [`BrandedOpcode`](#brandedopcode)

##### GASPRICE

> **GASPRICE**: [`BrandedOpcode`](#brandedopcode)

##### getCategory()

> **getCategory**: (`opcode`) => `string`

Get opcode category

###### Parameters

###### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

###### Returns

`string`

Category name

###### Example

```typescript theme={null}
Opcode.getCategory(Opcode.ADD); // "arithmetic"
Opcode.getCategory(Opcode.SSTORE); // "storage"
Opcode.getCategory(Opcode.CALL); // "system"
```

##### getDescription()

> **getDescription**: (`opcode`) => `string`

Get human-readable description of an opcode

###### Parameters

###### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

###### Returns

`string`

Description or generated description for PUSH/DUP/SWAP

###### Example

```typescript theme={null}
const desc = Opcode.getDescription(Opcode.ADD);
// "Addition operation"

const desc2 = Opcode.getDescription(Opcode.PUSH1);
// "Place 1-byte item on stack"
```

##### getGasCost()

> **getGasCost**: (`opcode`) => `number` | `undefined`

Get static gas cost for an opcode

###### Parameters

###### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

###### Returns

`number` | `undefined`

Static gas cost or undefined if invalid

###### Example

```typescript theme={null}
const gas = Opcode.getGasCost(Opcode.ADD); // 3
const gas2 = Opcode.getGasCost(Opcode.SSTORE); // 100 (base cost, may be higher at runtime)
```

##### getName()

> **getName**: (`opcode`) => `string`

Get mnemonic name of an opcode (alias for name)

###### Parameters

###### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

###### Returns

`string`

Opcode name or "UNKNOWN" if invalid

###### Example

```typescript theme={null}
const name = Opcode.getName(Opcode.ADD); // "ADD"
const name2 = Opcode.getName(0xFF); // "SELFDESTRUCT"
```

##### getPushSize()

> **getPushSize**: (`opcode`) => `number`

Get PUSH data size in bytes

###### Parameters

###### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

###### Returns

`number`

Push size (0 for PUSH0, 1-32 for PUSH1-PUSH32, 0 for non-PUSH)

###### Example

```typescript theme={null}
Opcode.getPushSize(Opcode.PUSH0); // 0
Opcode.getPushSize(Opcode.PUSH1); // 1
Opcode.getPushSize(Opcode.PUSH32); // 32
Opcode.getPushSize(Opcode.ADD); // 0
```

##### getStackEffect()

> **getStackEffect**: (`opcode`) => \{ `pop`: `number`; `push`: `number`; } | `undefined`

Get stack effect for an opcode

###### Parameters

###### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

###### Returns

\{ `pop`: `number`; `push`: `number`; } | `undefined`

Stack items consumed and produced

###### Example

```typescript theme={null}
const effect = Opcode.getStackEffect(Opcode.ADD);
// { pop: 2, push: 1 }

const effect2 = Opcode.getStackEffect(Opcode.DUP1);
// { pop: 1, push: 2 }
```

##### getStackInput()

> **getStackInput**: (`opcode`) => `number` | `undefined`

Get number of stack items consumed by an opcode

###### Parameters

###### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

###### Returns

`number` | `undefined`

Number of stack items consumed

###### Example

```typescript theme={null}
const inputs = Opcode.getStackInput(Opcode.ADD); // 2
const inputs2 = Opcode.getStackInput(Opcode.PUSH1); // 0
```

##### getStackOutput()

> **getStackOutput**: (`opcode`) => `number` | `undefined`

Get number of stack items produced by an opcode

###### Parameters

###### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

###### Returns

`number` | `undefined`

Number of stack items produced

###### Example

```typescript theme={null}
const outputs = Opcode.getStackOutput(Opcode.ADD); // 1
const outputs2 = Opcode.getStackOutput(Opcode.PUSH1); // 1
```

##### GT

> **GT**: [`BrandedOpcode`](#brandedopcode)

##### info()

> **info**: (`opcode`) => [`Info`](#info) | `undefined`

Get metadata for an opcode

###### Parameters

###### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

###### Returns

[`Info`](#info) | `undefined`

Metadata with gas cost and stack requirements

###### Example

```typescript theme={null}
const info = Opcode.info(Opcode.ADD);
console.log(info?.name); // "ADD"
console.log(info?.gasCost); // 3
```

##### INVALID

> **INVALID**: [`BrandedOpcode`](#brandedopcode)

##### isDup()

> **isDup**: (`opcode`) => `boolean`

Check if opcode is a DUP instruction

###### Parameters

###### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to check

###### Returns

`boolean`

True if DUP1-DUP16

###### Example

```typescript theme={null}
Opcode.isDup(Opcode.DUP1); // true
Opcode.isDup(Opcode.ADD); // false
```

##### isJump()

> **isJump**: (`opcode`) => `boolean`

Check if opcode is a jump

###### Parameters

###### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to check

###### Returns

`boolean`

True if JUMP or JUMPI

###### Example

```typescript theme={null}
Opcode.isJump(Opcode.JUMP); // true
Opcode.isJump(Opcode.JUMPI); // true
Opcode.isJump(Opcode.ADD); // false
```

##### isJumpDestination()

> **isJumpDestination**: (`opcode`) => `boolean`

Check if opcode is JUMPDEST

###### Parameters

###### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to check

###### Returns

`boolean`

True if JUMPDEST

###### Example

```typescript theme={null}
Opcode.isJumpDestination(Opcode.JUMPDEST); // true
Opcode.isJumpDestination(Opcode.JUMP); // false
```

##### isLog()

> **isLog**: (`opcode`) => `boolean`

Check if opcode is a LOG instruction

###### Parameters

###### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to check

###### Returns

`boolean`

True if LOG0-LOG4

###### Example

```typescript theme={null}
Opcode.isLog(Opcode.LOG1); // true
Opcode.isLog(Opcode.ADD); // false
```

##### isPush()

> **isPush**: (`opcode`) => `boolean`

Check if opcode is a PUSH instruction

###### Parameters

###### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to check

###### Returns

`boolean`

True if PUSH0-PUSH32

###### Example

```typescript theme={null}
Opcode.isPush(Opcode.PUSH1); // true
Opcode.isPush(Opcode.ADD); // false
```

##### isSwap()

> **isSwap**: (`opcode`) => `boolean`

Check if opcode is a SWAP instruction

###### Parameters

###### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to check

###### Returns

`boolean`

True if SWAP1-SWAP16

###### Example

```typescript theme={null}
Opcode.isSwap(Opcode.SWAP1); // true
Opcode.isSwap(Opcode.ADD); // false
```

##### isTerminating()

> **isTerminating**: (`opcode`) => `boolean`

Check if opcode terminates execution

###### Parameters

###### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to check

###### Returns

`boolean`

True if STOP, RETURN, REVERT, INVALID, or SELFDESTRUCT

###### Example

```typescript theme={null}
Opcode.isTerminating(Opcode.RETURN); // true
Opcode.isTerminating(Opcode.ADD); // false
```

##### isTerminator()

> **isTerminator**: (`opcode`) => `boolean`

Check if opcode terminates execution (alias for isTerminating)

###### Parameters

###### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to check

###### Returns

`boolean`

True if STOP, RETURN, REVERT, INVALID, or SELFDESTRUCT

###### Example

```typescript theme={null}
Opcode.isTerminator(Opcode.RETURN); // true
Opcode.isTerminator(Opcode.ADD); // false
```

##### isValid()

> **isValid**: (`opcode`) => `opcode is BrandedOpcode`

Check if opcode is valid

###### Parameters

###### opcode

`number`

Byte value to check

###### Returns

`opcode is BrandedOpcode`

True if opcode is defined in the EVM

###### Example

```typescript theme={null}
Opcode.isValid(0x01); // true (ADD)
Opcode.isValid(0x0c); // false (undefined)
```

##### isValidJumpDest()

> **isValidJumpDest**: (`bytecode`, `offset`) => `boolean`

Check if offset is a valid jump destination

###### Parameters

###### bytecode

`Uint8Array`\<`ArrayBufferLike`>

Raw bytecode bytes

###### offset

`number`

Byte offset to check

###### Returns

`boolean`

True if offset is a JUMPDEST and not inside immediate data

###### Example

```typescript theme={null}
const bytecode = new Uint8Array([0x5b, 0x60, 0x01]);
Opcode.isValidJumpDest(bytecode, 0); // true (JUMPDEST)
Opcode.isValidJumpDest(bytecode, 2); // false (immediate data)
```

##### isValidOpcode()

> **isValidOpcode**: (`value`) => `boolean`

Check if value is a valid opcode (alias for isValid)

###### Parameters

###### value

`number`

Value to check

###### Returns

`boolean`

True if valid opcode

###### Example

```typescript theme={null}
Opcode.isValidOpcode(0x01); // true (ADD)
Opcode.isValidOpcode(0xFF); // true (SELFDESTRUCT)
Opcode.isValidOpcode(0x0C); // false
```

##### ISZERO

> **ISZERO**: [`BrandedOpcode`](#brandedopcode)

##### JUMP

> **JUMP**: [`BrandedOpcode`](#brandedopcode)

##### JUMPDEST

> **JUMPDEST**: [`BrandedOpcode`](#brandedopcode)

##### jumpDests()

> **jumpDests**: (`bytecode`) => `Set`\<`number`>

Find all valid JUMPDEST locations

###### Parameters

###### bytecode

`Uint8Array`\<`ArrayBufferLike`>

Raw bytecode bytes

###### Returns

`Set`\<`number`>

Set of valid jump destinations (byte offsets)

###### Example

```typescript theme={null}
const bytecode = new Uint8Array([0x5b, 0x60, 0x01, 0x5b]);
const dests = Opcode.jumpDests(bytecode); // Set { 0, 3 }
```

##### JUMPI

> **JUMPI**: [`BrandedOpcode`](#brandedopcode)

##### KECCAK256

> **KECCAK256**: [`BrandedOpcode`](#brandedopcode)

##### LOG0

> **LOG0**: [`BrandedOpcode`](#brandedopcode)

##### LOG1

> **LOG1**: [`BrandedOpcode`](#brandedopcode)

##### LOG2

> **LOG2**: [`BrandedOpcode`](#brandedopcode)

##### LOG3

> **LOG3**: [`BrandedOpcode`](#brandedopcode)

##### LOG4

> **LOG4**: [`BrandedOpcode`](#brandedopcode)

##### logTopics()

> **logTopics**: (`opcode`) => `number` | `undefined`

Get number of topics for LOG instruction

###### Parameters

###### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

###### Returns

`number` | `undefined`

Number of topics (0-4), or undefined if not a LOG

###### Example

```typescript theme={null}
Opcode.logTopics(Opcode.LOG0); // 0
Opcode.logTopics(Opcode.LOG4); // 4
Opcode.logTopics(Opcode.ADD); // undefined
```

##### LT

> **LT**: [`BrandedOpcode`](#brandedopcode)

##### MCOPY

> **MCOPY**: [`BrandedOpcode`](#brandedopcode)

##### MLOAD

> **MLOAD**: [`BrandedOpcode`](#brandedopcode)

##### MOD

> **MOD**: [`BrandedOpcode`](#brandedopcode)

##### MSIZE

> **MSIZE**: [`BrandedOpcode`](#brandedopcode)

##### MSTORE

> **MSTORE**: [`BrandedOpcode`](#brandedopcode)

##### MSTORE8

> **MSTORE8**: [`BrandedOpcode`](#brandedopcode)

##### MUL

> **MUL**: [`BrandedOpcode`](#brandedopcode)

##### MULMOD

> **MULMOD**: [`BrandedOpcode`](#brandedopcode)

##### name()

> **name**: (`opcode`) => `string`

Get name of an opcode

###### Parameters

###### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

###### Returns

`string`

Opcode name or "UNKNOWN" if invalid

###### Example

```typescript theme={null}
const name = Opcode.name(Opcode.ADD); // "ADD"
```

##### NOT

> **NOT**: [`BrandedOpcode`](#brandedopcode)

##### NUMBER

> **NUMBER**: [`BrandedOpcode`](#brandedopcode)

##### OR

> **OR**: [`BrandedOpcode`](#brandedopcode)

##### ORIGIN

> **ORIGIN**: [`BrandedOpcode`](#brandedopcode)

##### parse()

> **parse**: (`bytecode`) => [`Instruction`](#instruction)\[]

Parse bytecode into instructions

###### Parameters

###### bytecode

`Uint8Array`\<`ArrayBufferLike`>

Raw bytecode bytes

###### Returns

[`Instruction`](#instruction)\[]

Array of parsed instructions

###### Example

```typescript theme={null}
const bytecode = new Uint8Array([0x60, 0x01, 0x60, 0x02, 0x01]);
const instructions = Opcode.parse(bytecode);
// [
//   { offset: 0, opcode: PUSH1, immediate: [0x01] },
//   { offset: 2, opcode: PUSH1, immediate: [0x02] },
//   { offset: 4, opcode: ADD }
// ]
```

##### PC

> **PC**: [`BrandedOpcode`](#brandedopcode)

##### POP

> **POP**: [`BrandedOpcode`](#brandedopcode)

##### PUSH0

> **PUSH0**: [`BrandedOpcode`](#brandedopcode)

##### PUSH1

> **PUSH1**: [`BrandedOpcode`](#brandedopcode)

##### PUSH10

> **PUSH10**: [`BrandedOpcode`](#brandedopcode)

##### PUSH11

> **PUSH11**: [`BrandedOpcode`](#brandedopcode)

##### PUSH12

> **PUSH12**: [`BrandedOpcode`](#brandedopcode)

##### PUSH13

> **PUSH13**: [`BrandedOpcode`](#brandedopcode)

##### PUSH14

> **PUSH14**: [`BrandedOpcode`](#brandedopcode)

##### PUSH15

> **PUSH15**: [`BrandedOpcode`](#brandedopcode)

##### PUSH16

> **PUSH16**: [`BrandedOpcode`](#brandedopcode)

##### PUSH17

> **PUSH17**: [`BrandedOpcode`](#brandedopcode)

##### PUSH18

> **PUSH18**: [`BrandedOpcode`](#brandedopcode)

##### PUSH19

> **PUSH19**: [`BrandedOpcode`](#brandedopcode)

##### PUSH2

> **PUSH2**: [`BrandedOpcode`](#brandedopcode)

##### PUSH20

> **PUSH20**: [`BrandedOpcode`](#brandedopcode)

##### PUSH21

> **PUSH21**: [`BrandedOpcode`](#brandedopcode)

##### PUSH22

> **PUSH22**: [`BrandedOpcode`](#brandedopcode)

##### PUSH23

> **PUSH23**: [`BrandedOpcode`](#brandedopcode)

##### PUSH24

> **PUSH24**: [`BrandedOpcode`](#brandedopcode)

##### PUSH25

> **PUSH25**: [`BrandedOpcode`](#brandedopcode)

##### PUSH26

> **PUSH26**: [`BrandedOpcode`](#brandedopcode)

##### PUSH27

> **PUSH27**: [`BrandedOpcode`](#brandedopcode)

##### PUSH28

> **PUSH28**: [`BrandedOpcode`](#brandedopcode)

##### PUSH29

> **PUSH29**: [`BrandedOpcode`](#brandedopcode)

##### PUSH3

> **PUSH3**: [`BrandedOpcode`](#brandedopcode)

##### PUSH30

> **PUSH30**: [`BrandedOpcode`](#brandedopcode)

##### PUSH31

> **PUSH31**: [`BrandedOpcode`](#brandedopcode)

##### PUSH32

> **PUSH32**: [`BrandedOpcode`](#brandedopcode)

##### PUSH4

> **PUSH4**: [`BrandedOpcode`](#brandedopcode)

##### PUSH5

> **PUSH5**: [`BrandedOpcode`](#brandedopcode)

##### PUSH6

> **PUSH6**: [`BrandedOpcode`](#brandedopcode)

##### PUSH7

> **PUSH7**: [`BrandedOpcode`](#brandedopcode)

##### PUSH8

> **PUSH8**: [`BrandedOpcode`](#brandedopcode)

##### PUSH9

> **PUSH9**: [`BrandedOpcode`](#brandedopcode)

##### pushBytes()

> **pushBytes**: (`opcode`) => `number` | `undefined`

Get number of bytes pushed by PUSH instruction

###### Parameters

###### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

###### Returns

`number` | `undefined`

Number of bytes (0-32), or undefined if not a PUSH

###### Example

```typescript theme={null}
Opcode.pushBytes(Opcode.PUSH1); // 1
Opcode.pushBytes(Opcode.PUSH32); // 32
Opcode.pushBytes(Opcode.PUSH0); // 0
Opcode.pushBytes(Opcode.ADD); // undefined
```

##### pushOpcode()

> **pushOpcode**: (`bytes`) => [`BrandedOpcode`](#brandedopcode)

Get PUSH opcode for given byte count

###### Parameters

###### bytes

`number`

Number of bytes (0-32)

###### Returns

[`BrandedOpcode`](#brandedopcode)

PUSH opcode for that size

###### Throws

If bytes is not 0-32

###### Example

```typescript theme={null}
Opcode.pushOpcode(1); // Opcode.PUSH1
Opcode.pushOpcode(32); // Opcode.PUSH32
Opcode.pushOpcode(0); // Opcode.PUSH0
```

##### RETURN

> **RETURN**: [`BrandedOpcode`](#brandedopcode)

##### RETURNDATACOPY

> **RETURNDATACOPY**: [`BrandedOpcode`](#brandedopcode)

##### RETURNDATASIZE

> **RETURNDATASIZE**: [`BrandedOpcode`](#brandedopcode)

##### REVERT

> **REVERT**: [`BrandedOpcode`](#brandedopcode)

##### SAR

> **SAR**: [`BrandedOpcode`](#brandedopcode)

##### SDIV

> **SDIV**: [`BrandedOpcode`](#brandedopcode)

##### SELFBALANCE

> **SELFBALANCE**: [`BrandedOpcode`](#brandedopcode)

##### SELFDESTRUCT

> **SELFDESTRUCT**: [`BrandedOpcode`](#brandedopcode)

##### SGT

> **SGT**: [`BrandedOpcode`](#brandedopcode)

##### SHL

> **SHL**: [`BrandedOpcode`](#brandedopcode)

##### SHR

> **SHR**: [`BrandedOpcode`](#brandedopcode)

##### SIGNEXTEND

> **SIGNEXTEND**: [`BrandedOpcode`](#brandedopcode)

##### SLOAD

> **SLOAD**: [`BrandedOpcode`](#brandedopcode)

##### SLT

> **SLT**: [`BrandedOpcode`](#brandedopcode)

##### SMOD

> **SMOD**: [`BrandedOpcode`](#brandedopcode)

##### SSTORE

> **SSTORE**: [`BrandedOpcode`](#brandedopcode)

##### STATICCALL

> **STATICCALL**: [`BrandedOpcode`](#brandedopcode)

##### STOP

> **STOP**: [`BrandedOpcode`](#brandedopcode)

##### SUB

> **SUB**: [`BrandedOpcode`](#brandedopcode)

##### SWAP1

> **SWAP1**: [`BrandedOpcode`](#brandedopcode)

##### SWAP10

> **SWAP10**: [`BrandedOpcode`](#brandedopcode)

##### SWAP11

> **SWAP11**: [`BrandedOpcode`](#brandedopcode)

##### SWAP12

> **SWAP12**: [`BrandedOpcode`](#brandedopcode)

##### SWAP13

> **SWAP13**: [`BrandedOpcode`](#brandedopcode)

##### SWAP14

> **SWAP14**: [`BrandedOpcode`](#brandedopcode)

##### SWAP15

> **SWAP15**: [`BrandedOpcode`](#brandedopcode)

##### SWAP16

> **SWAP16**: [`BrandedOpcode`](#brandedopcode)

##### SWAP2

> **SWAP2**: [`BrandedOpcode`](#brandedopcode)

##### SWAP3

> **SWAP3**: [`BrandedOpcode`](#brandedopcode)

##### SWAP4

> **SWAP4**: [`BrandedOpcode`](#brandedopcode)

##### SWAP5

> **SWAP5**: [`BrandedOpcode`](#brandedopcode)

##### SWAP6

> **SWAP6**: [`BrandedOpcode`](#brandedopcode)

##### SWAP7

> **SWAP7**: [`BrandedOpcode`](#brandedopcode)

##### SWAP8

> **SWAP8**: [`BrandedOpcode`](#brandedopcode)

##### SWAP9

> **SWAP9**: [`BrandedOpcode`](#brandedopcode)

##### swapPosition()

> **swapPosition**: (`opcode`) => `number` | `undefined`

Get position for SWAP instruction

###### Parameters

###### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

###### Returns

`number` | `undefined`

Stack position (1-16), or undefined if not a SWAP

###### Example

```typescript theme={null}
Opcode.swapPosition(Opcode.SWAP1); // 1
Opcode.swapPosition(Opcode.SWAP16); // 16
Opcode.swapPosition(Opcode.ADD); // undefined
```

##### TIMESTAMP

> **TIMESTAMP**: [`BrandedOpcode`](#brandedopcode)

##### TLOAD

> **TLOAD**: [`BrandedOpcode`](#brandedopcode)

##### TSTORE

> **TSTORE**: [`BrandedOpcode`](#brandedopcode)

##### XOR

> **XOR**: [`BrandedOpcode`](#brandedopcode)

***

### BYTE

> `const` **BYTE**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:41](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L41)

***

### CALL

> `const` **CALL**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:300](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L300)

***

### CALLCODE

> `const` **CALLCODE**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:301](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L301)

***

### CALLDATACOPY

> `const` **CALLDATACOPY**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:71](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L71)

***

### CALLDATALOAD

> `const` **CALLDATALOAD**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:67](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L67)

***

### CALLDATASIZE

> `const` **CALLDATASIZE**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:69](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L69)

***

### CALLER

> `const` **CALLER**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:61](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L61)

***

### CALLVALUE

> `const` **CALLVALUE**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:64](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L64)

***

### CHAINID

> `const` **CHAINID**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:115](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L115)

***

### CODECOPY

> `const` **CODECOPY**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:76](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L76)

***

### CODESIZE

> `const` **CODESIZE**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:73](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L73)

***

### COINBASE

> `const` **COINBASE**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:100](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L100)

***

### CREATE

> `const` **CREATE**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:297](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L297)

***

### CREATE2

> `const` **CREATE2**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:309](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L309)

***

### DELEGATECALL

> `const` **DELEGATECALL**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:307](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L307)

***

### DIFFICULTY

> `const` **DIFFICULTY**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:109](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L109)

***

### DIV

> `const` **DIV**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:13](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L13)

***

### DUP1

> `const` **DUP1**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:240](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L240)

***

### DUP10

> `const` **DUP10**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:249](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L249)

***

### DUP11

> `const` **DUP11**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:250](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L250)

***

### DUP12

> `const` **DUP12**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:251](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L251)

***

### DUP13

> `const` **DUP13**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:252](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L252)

***

### DUP14

> `const` **DUP14**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:253](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L253)

***

### DUP15

> `const` **DUP15**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:254](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L254)

***

### DUP16

> `const` **DUP16**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:255](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L255)

***

### DUP2

> `const` **DUP2**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:241](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L241)

***

### DUP3

> `const` **DUP3**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:242](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L242)

***

### DUP4

> `const` **DUP4**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:243](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L243)

***

### DUP5

> `const` **DUP5**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:244](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L244)

***

### DUP6

> `const` **DUP6**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:245](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L245)

***

### DUP7

> `const` **DUP7**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:246](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L246)

***

### DUP8

> `const` **DUP8**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:247](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L247)

***

### DUP9

> `const` **DUP9**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:248](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L248)

***

### EQ

> `const` **EQ**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:33](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L33)

***

### EXP

> `const` **EXP**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:23](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L23)

***

### EXTCODECOPY

> `const` **EXTCODECOPY**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:85](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L85)

***

### EXTCODEHASH

> `const` **EXTCODEHASH**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:92](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L92)

***

### EXTCODESIZE

> `const` **EXTCODESIZE**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:82](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L82)

***

### GAS

> `const` **GAS**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:148](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L148)

***

### GASLIMIT

> `const` **GASLIMIT**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:112](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L112)

***

### GASPRICE

> `const` **GASPRICE**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:79](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L79)

***

### GT

> `const` **GT**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:30](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L30)

***

### INVALID

> `const` **INVALID**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:322](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L322)

***

### ISZERO

> `const` **ISZERO**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:34](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L34)

***

### JUMP

> `const` **JUMP**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:144](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L144)

***

### JUMPDEST

> `const` **JUMPDEST**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:149](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L149)

***

### JUMPI

> `const` **JUMPI**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:145](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L145)

***

### KECCAK256

> `const` **KECCAK256**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:47](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L47)

***

### LOG0

> `const` **LOG0**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:290](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L290)

***

### LOG1

> `const` **LOG1**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:291](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L291)

***

### LOG2

> `const` **LOG2**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:292](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L292)

***

### LOG3

> `const` **LOG3**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:293](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L293)

***

### LOG4

> `const` **LOG4**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:294](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L294)

***

### LT

> `const` **LT**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:29](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L29)

***

### MCOPY

> `const` **MCOPY**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:156](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L156)

***

### MLOAD

> `const` **MLOAD**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:133](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L133)

***

### MOD

> `const` **MOD**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:15](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L15)

***

### MSIZE

> `const` **MSIZE**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:147](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L147)

***

### MSTORE

> `const` **MSTORE**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:134](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L134)

***

### MSTORE8

> `const` **MSTORE8**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:137](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L137)

***

### MUL

> `const` **MUL**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:11](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L11)

***

### MULMOD

> `const` **MULMOD**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:20](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L20)

***

### NOT

> `const` **NOT**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:40](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L40)

***

### NUMBER

> `const` **NUMBER**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:106](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L106)

***

### OR

> `const` **OR**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:38](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L38)

***

### ORIGIN

> `const` **ORIGIN**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:58](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L58)

***

### PC

> `const` **PC**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:146](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L146)

***

### POP

> `const` **POP**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:132](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L132)

***

### PUSH0

> `const` **PUSH0**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:157](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L157)

***

### PUSH1

> `const` **PUSH1**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:160](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L160)

***

### PUSH10

> `const` **PUSH10**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:169](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L169)

***

### PUSH11

> `const` **PUSH11**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:172](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L172)

***

### PUSH12

> `const` **PUSH12**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:175](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L175)

***

### PUSH13

> `const` **PUSH13**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:178](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L178)

***

### PUSH14

> `const` **PUSH14**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:181](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L181)

***

### PUSH15

> `const` **PUSH15**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:184](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L184)

***

### PUSH16

> `const` **PUSH16**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:187](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L187)

***

### PUSH17

> `const` **PUSH17**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:190](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L190)

***

### PUSH18

> `const` **PUSH18**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:193](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L193)

***

### PUSH19

> `const` **PUSH19**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:196](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L196)

***

### PUSH2

> `const` **PUSH2**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:161](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L161)

***

### PUSH20

> `const` **PUSH20**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:199](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L199)

***

### PUSH21

> `const` **PUSH21**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:202](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L202)

***

### PUSH22

> `const` **PUSH22**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:205](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L205)

***

### PUSH23

> `const` **PUSH23**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:208](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L208)

***

### PUSH24

> `const` **PUSH24**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:211](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L211)

***

### PUSH25

> `const` **PUSH25**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:214](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L214)

***

### PUSH26

> `const` **PUSH26**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:217](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L217)

***

### PUSH27

> `const` **PUSH27**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:220](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L220)

***

### PUSH28

> `const` **PUSH28**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:223](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L223)

***

### PUSH29

> `const` **PUSH29**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:226](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L226)

***

### PUSH3

> `const` **PUSH3**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:162](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L162)

***

### PUSH30

> `const` **PUSH30**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:229](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L229)

***

### PUSH31

> `const` **PUSH31**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:232](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L232)

***

### PUSH32

> `const` **PUSH32**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:235](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L235)

***

### PUSH4

> `const` **PUSH4**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:163](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L163)

***

### PUSH5

> `const` **PUSH5**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:164](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L164)

***

### PUSH6

> `const` **PUSH6**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:165](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L165)

***

### PUSH7

> `const` **PUSH7**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:166](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L166)

***

### PUSH8

> `const` **PUSH8**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:167](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L167)

***

### PUSH9

> `const` **PUSH9**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:168](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L168)

***

### RETURN

> `const` **RETURN**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:304](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L304)

***

### RETURNDATACOPY

> `const` **RETURNDATACOPY**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:90](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L90)

***

### RETURNDATASIZE

> `const` **RETURNDATASIZE**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:88](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L88)

***

### REVERT

> `const` **REVERT**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:319](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L319)

***

### SAR

> `const` **SAR**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:44](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L44)

***

### SDIV

> `const` **SDIV**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:14](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L14)

***

### SELFBALANCE

> `const` **SELFBALANCE**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:118](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L118)

***

### SELFDESTRUCT

> `const` **SELFDESTRUCT**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:325](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L325)

***

### SGT

> `const` **SGT**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:32](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L32)

***

### SHL

> `const` **SHL**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:42](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L42)

***

### SHR

> `const` **SHR**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:43](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L43)

***

### SIGNEXTEND

> `const` **SIGNEXTEND**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:24](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L24)

***

### SLOAD

> `const` **SLOAD**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:140](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L140)

***

### SLT

> `const` **SLT**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:31](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L31)

***

### SMOD

> `const` **SMOD**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L16)

***

### SSTORE

> `const` **SSTORE**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:141](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L141)

***

### STATICCALL

> `const` **STATICCALL**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:316](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L316)

***

### STOP

> `const` **STOP**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:9](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L9)

***

### SUB

> `const` **SUB**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:12](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L12)

***

### SWAP1

> `const` **SWAP1**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:258](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L258)

***

### SWAP10

> `const` **SWAP10**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:267](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L267)

***

### SWAP11

> `const` **SWAP11**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:270](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L270)

***

### SWAP12

> `const` **SWAP12**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:273](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L273)

***

### SWAP13

> `const` **SWAP13**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:276](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L276)

***

### SWAP14

> `const` **SWAP14**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:279](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L279)

***

### SWAP15

> `const` **SWAP15**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:282](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L282)

***

### SWAP16

> `const` **SWAP16**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:285](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L285)

***

### SWAP2

> `const` **SWAP2**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:259](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L259)

***

### SWAP3

> `const` **SWAP3**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:260](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L260)

***

### SWAP4

> `const` **SWAP4**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:261](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L261)

***

### SWAP5

> `const` **SWAP5**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:262](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L262)

***

### SWAP6

> `const` **SWAP6**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:263](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L263)

***

### SWAP7

> `const` **SWAP7**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:264](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L264)

***

### SWAP8

> `const` **SWAP8**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:265](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L265)

***

### SWAP9

> `const` **SWAP9**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:266](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L266)

***

### TIMESTAMP

> `const` **TIMESTAMP**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:103](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L103)

***

### TLOAD

> `const` **TLOAD**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:152](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L152)

***

### TSTORE

> `const` **TSTORE**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:153](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L153)

***

### XOR

> `const` **XOR**: [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/constants.js:39](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/constants.js#L39)

## Functions

### \_disassemble()

> **\_disassemble**(`bytecode`): `string`\[]

Defined in: [src/primitives/Opcode/disassemble.js:22](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/disassemble.js#L22)

Disassemble bytecode to human-readable strings

#### Parameters

##### bytecode

`Uint8Array`\<`ArrayBufferLike`>

Raw bytecode bytes

#### Returns

`string`\[]

Array of formatted instruction strings

#### Example

```typescript theme={null}
const bytecode = new Uint8Array([0x60, 0x01, 0x60, 0x02, 0x01]);
const asm = Opcode.disassemble(bytecode);
// [
//   "0x0000: PUSH1 0x01",
//   "0x0002: PUSH1 0x02",
//   "0x0004: ADD"
// ]
```

***

### \_dupPosition()

> **\_dupPosition**(`opcode`): `number` | `undefined`

Defined in: [src/primitives/Opcode/dupPosition.js:17](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/dupPosition.js#L17)

Get position for DUP instruction

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

`number` | `undefined`

Stack position (1-16), or undefined if not a DUP

#### Example

```typescript theme={null}
Opcode.dupPosition(Opcode.DUP1); // 1
Opcode.dupPosition(Opcode.DUP16); // 16
Opcode.dupPosition(Opcode.ADD); // undefined
```

***

### \_format()

> **\_format**(`instruction`): `string`

Defined in: [src/primitives/Opcode/format.js:20](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/format.js#L20)

Format instruction to human-readable string

#### Parameters

##### instruction

[`Instruction`](#instruction)

Instruction to format

#### Returns

`string`

Human-readable string

#### Example

```typescript theme={null}
const inst = {
  offset: 0,
  opcode: Opcode.PUSH1,
  immediate: new Uint8Array([0x42])
};
Opcode.format(inst); // "0x0000: PUSH1 0x42"
```

***

### \_getCategory()

> **\_getCategory**(`opcode`): `string`

Defined in: [src/primitives/Opcode/getCategory.js:18](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/getCategory.js#L18)

Get opcode category

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

`string`

Category name

#### Example

```typescript theme={null}
Opcode.getCategory(Opcode.ADD); // "arithmetic"
Opcode.getCategory(Opcode.SSTORE); // "storage"
Opcode.getCategory(Opcode.CALL); // "system"
```

***

### \_getDescription()

> **\_getDescription**(`opcode`): `string`

Defined in: [src/primitives/Opcode/getDescription.js:140](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/getDescription.js#L140)

Get human-readable description of an opcode

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

`string`

Description or generated description for PUSH/DUP/SWAP

#### Example

```typescript theme={null}
const desc = Opcode.getDescription(Opcode.ADD);
// "Addition operation"

const desc2 = Opcode.getDescription(Opcode.PUSH1);
// "Place 1-byte item on stack"
```

***

### \_getGasCost()

> **\_getGasCost**(`opcode`): `number` | `undefined`

Defined in: [src/primitives/Opcode/getGasCost.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/getGasCost.js#L16)

Get static gas cost for an opcode

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

`number` | `undefined`

Static gas cost or undefined if invalid

#### Example

```typescript theme={null}
const gas = Opcode.getGasCost(Opcode.ADD); // 3
const gas2 = Opcode.getGasCost(Opcode.SSTORE); // 100 (base cost, may be higher at runtime)
```

***

### \_getName()

> **\_getName**(`opcode`): `string`

Defined in: [src/primitives/Opcode/getName.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/getName.js#L16)

Get mnemonic name of an opcode (alias for name)

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

`string`

Opcode name or "UNKNOWN" if invalid

#### Example

```typescript theme={null}
const name = Opcode.getName(Opcode.ADD); // "ADD"
const name2 = Opcode.getName(0xFF); // "SELFDESTRUCT"
```

***

### \_getPushSize()

> **\_getPushSize**(`opcode`): `number`

Defined in: [src/primitives/Opcode/getPushSize.js:18](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/getPushSize.js#L18)

Get PUSH data size in bytes

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

`number`

Push size (0 for PUSH0, 1-32 for PUSH1-PUSH32, 0 for non-PUSH)

#### Example

```typescript theme={null}
Opcode.getPushSize(Opcode.PUSH0); // 0
Opcode.getPushSize(Opcode.PUSH1); // 1
Opcode.getPushSize(Opcode.PUSH32); // 32
Opcode.getPushSize(Opcode.ADD); // 0
```

***

### \_getStackEffect()

> **\_getStackEffect**(`opcode`): \{ `pop`: `number`; `push`: `number`; } | `undefined`

Defined in: [src/primitives/Opcode/getStackEffect.js:19](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/getStackEffect.js#L19)

Get stack effect for an opcode

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

\{ `pop`: `number`; `push`: `number`; } | `undefined`

Stack items consumed and produced

#### Example

```typescript theme={null}
const effect = Opcode.getStackEffect(Opcode.ADD);
// { pop: 2, push: 1 }

const effect2 = Opcode.getStackEffect(Opcode.DUP1);
// { pop: 1, push: 2 }
```

***

### \_getStackInput()

> **\_getStackInput**(`opcode`): `number` | `undefined`

Defined in: [src/primitives/Opcode/getStackInput.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/getStackInput.js#L16)

Get number of stack items consumed by an opcode

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

`number` | `undefined`

Number of stack items consumed

#### Example

```typescript theme={null}
const inputs = Opcode.getStackInput(Opcode.ADD); // 2
const inputs2 = Opcode.getStackInput(Opcode.PUSH1); // 0
```

***

### \_getStackOutput()

> **\_getStackOutput**(`opcode`): `number` | `undefined`

Defined in: [src/primitives/Opcode/getStackOutput.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/getStackOutput.js#L16)

Get number of stack items produced by an opcode

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

`number` | `undefined`

Number of stack items produced

#### Example

```typescript theme={null}
const outputs = Opcode.getStackOutput(Opcode.ADD); // 1
const outputs2 = Opcode.getStackOutput(Opcode.PUSH1); // 1
```

***

### \_info()

> **\_info**(`opcode`): [`Info`](#info) | `undefined`

Defined in: [src/primitives/Opcode/info.js:17](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/info.js#L17)

Get metadata for an opcode

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

[`Info`](#info) | `undefined`

Metadata with gas cost and stack requirements

#### Example

```typescript theme={null}
const info = Opcode.info(Opcode.ADD);
console.log(info?.name); // "ADD"
console.log(info?.gasCost); // 3
```

***

### \_isDup()

> **\_isDup**(`opcode`): `boolean`

Defined in: [src/primitives/Opcode/isDup.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/isDup.js#L16)

Check if opcode is a DUP instruction

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to check

#### Returns

`boolean`

True if DUP1-DUP16

#### Example

```typescript theme={null}
Opcode.isDup(Opcode.DUP1); // true
Opcode.isDup(Opcode.ADD); // false
```

***

### \_isJump()

> **\_isJump**(`opcode`): `boolean`

Defined in: [src/primitives/Opcode/isJump.js:17](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/isJump.js#L17)

Check if opcode is a jump

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to check

#### Returns

`boolean`

True if JUMP or JUMPI

#### Example

```typescript theme={null}
Opcode.isJump(Opcode.JUMP); // true
Opcode.isJump(Opcode.JUMPI); // true
Opcode.isJump(Opcode.ADD); // false
```

***

### \_isJumpDestination()

> **\_isJumpDestination**(`opcode`): `boolean`

Defined in: [src/primitives/Opcode/isJumpDestination.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/isJumpDestination.js#L16)

Check if opcode is JUMPDEST

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to check

#### Returns

`boolean`

True if JUMPDEST

#### Example

```typescript theme={null}
Opcode.isJumpDestination(Opcode.JUMPDEST); // true
Opcode.isJumpDestination(Opcode.JUMP); // false
```

***

### \_isLog()

> **\_isLog**(`opcode`): `boolean`

Defined in: [src/primitives/Opcode/isLog.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/isLog.js#L16)

Check if opcode is a LOG instruction

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to check

#### Returns

`boolean`

True if LOG0-LOG4

#### Example

```typescript theme={null}
Opcode.isLog(Opcode.LOG1); // true
Opcode.isLog(Opcode.ADD); // false
```

***

### \_isPush()

> **\_isPush**(`opcode`): `boolean`

Defined in: [src/primitives/Opcode/isPush.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/isPush.js#L16)

Check if opcode is a PUSH instruction

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to check

#### Returns

`boolean`

True if PUSH0-PUSH32

#### Example

```typescript theme={null}
Opcode.isPush(Opcode.PUSH1); // true
Opcode.isPush(Opcode.ADD); // false
```

***

### \_isSwap()

> **\_isSwap**(`opcode`): `boolean`

Defined in: [src/primitives/Opcode/isSwap.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/isSwap.js#L16)

Check if opcode is a SWAP instruction

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to check

#### Returns

`boolean`

True if SWAP1-SWAP16

#### Example

```typescript theme={null}
Opcode.isSwap(Opcode.SWAP1); // true
Opcode.isSwap(Opcode.ADD); // false
```

***

### \_isTerminating()

> **\_isTerminating**(`opcode`): `boolean`

Defined in: [src/primitives/Opcode/isTerminating.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/isTerminating.js#L16)

Check if opcode terminates execution

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to check

#### Returns

`boolean`

True if STOP, RETURN, REVERT, INVALID, or SELFDESTRUCT

#### Example

```typescript theme={null}
Opcode.isTerminating(Opcode.RETURN); // true
Opcode.isTerminating(Opcode.ADD); // false
```

***

### \_isTerminator()

> **\_isTerminator**(`opcode`): `boolean`

Defined in: [src/primitives/Opcode/isTerminator.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/isTerminator.js#L16)

Check if opcode terminates execution (alias for isTerminating)

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to check

#### Returns

`boolean`

True if STOP, RETURN, REVERT, INVALID, or SELFDESTRUCT

#### Example

```typescript theme={null}
Opcode.isTerminator(Opcode.RETURN); // true
Opcode.isTerminator(Opcode.ADD); // false
```

***

### \_isValid()

> **\_isValid**(`opcode`): `opcode is BrandedOpcode`

Defined in: [src/primitives/Opcode/isValid.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/isValid.js#L16)

Check if opcode is valid

#### Parameters

##### opcode

`number`

Byte value to check

#### Returns

`opcode is BrandedOpcode`

True if opcode is defined in the EVM

#### Example

```typescript theme={null}
Opcode.isValid(0x01); // true (ADD)
Opcode.isValid(0x0c); // false (undefined)
```

***

### \_isValidJumpDest()

> **\_isValidJumpDest**(`bytecode`, `offset`): `boolean`

Defined in: [src/primitives/Opcode/isValidJumpDest.js:18](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/isValidJumpDest.js#L18)

Check if offset is a valid jump destination

#### Parameters

##### bytecode

`Uint8Array`\<`ArrayBufferLike`>

Raw bytecode bytes

##### offset

`number`

Byte offset to check

#### Returns

`boolean`

True if offset is a JUMPDEST and not inside immediate data

#### Example

```typescript theme={null}
const bytecode = new Uint8Array([0x5b, 0x60, 0x01]);
Opcode.isValidJumpDest(bytecode, 0); // true (JUMPDEST)
Opcode.isValidJumpDest(bytecode, 2); // false (immediate data)
```

***

### \_isValidOpcode()

> **\_isValidOpcode**(`value`): `boolean`

Defined in: [src/primitives/Opcode/isValidOpcode.js:17](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/isValidOpcode.js#L17)

Check if value is a valid opcode (alias for isValid)

#### Parameters

##### value

`number`

Value to check

#### Returns

`boolean`

True if valid opcode

#### Example

```typescript theme={null}
Opcode.isValidOpcode(0x01); // true (ADD)
Opcode.isValidOpcode(0xFF); // true (SELFDESTRUCT)
Opcode.isValidOpcode(0x0C); // false
```

***

### \_jumpDests()

> **\_jumpDests**(`bytecode`): `Set`\<`number`>

Defined in: [src/primitives/Opcode/jumpDests.js:17](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/jumpDests.js#L17)

Find all valid JUMPDEST locations

#### Parameters

##### bytecode

`Uint8Array`\<`ArrayBufferLike`>

Raw bytecode bytes

#### Returns

`Set`\<`number`>

Set of valid jump destinations (byte offsets)

#### Example

```typescript theme={null}
const bytecode = new Uint8Array([0x5b, 0x60, 0x01, 0x5b]);
const dests = Opcode.jumpDests(bytecode); // Set { 0, 3 }
```

***

### \_logTopics()

> **\_logTopics**(`opcode`): `number` | `undefined`

Defined in: [src/primitives/Opcode/logTopics.js:17](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/logTopics.js#L17)

Get number of topics for LOG instruction

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

`number` | `undefined`

Number of topics (0-4), or undefined if not a LOG

#### Example

```typescript theme={null}
Opcode.logTopics(Opcode.LOG0); // 0
Opcode.logTopics(Opcode.LOG4); // 4
Opcode.logTopics(Opcode.ADD); // undefined
```

***

### \_name()

> **\_name**(`opcode`): `string`

Defined in: [src/primitives/Opcode/name.js:15](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/name.js#L15)

Get name of an opcode

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

`string`

Opcode name or "UNKNOWN" if invalid

#### Example

```typescript theme={null}
const name = Opcode.name(Opcode.ADD); // "ADD"
```

***

### \_parse()

> **\_parse**(`bytecode`): [`Instruction`](#instruction)\[]

Defined in: [src/primitives/Opcode/parse.js:21](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/parse.js#L21)

Parse bytecode into instructions

#### Parameters

##### bytecode

`Uint8Array`\<`ArrayBufferLike`>

Raw bytecode bytes

#### Returns

[`Instruction`](#instruction)\[]

Array of parsed instructions

#### Example

```typescript theme={null}
const bytecode = new Uint8Array([0x60, 0x01, 0x60, 0x02, 0x01]);
const instructions = Opcode.parse(bytecode);
// [
//   { offset: 0, opcode: PUSH1, immediate: [0x01] },
//   { offset: 2, opcode: PUSH1, immediate: [0x02] },
//   { offset: 4, opcode: ADD }
// ]
```

***

### \_pushBytes()

> **\_pushBytes**(`opcode`): `number` | `undefined`

Defined in: [src/primitives/Opcode/pushBytes.js:18](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/pushBytes.js#L18)

Get number of bytes pushed by PUSH instruction

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

`number` | `undefined`

Number of bytes (0-32), or undefined if not a PUSH

#### Example

```typescript theme={null}
Opcode.pushBytes(Opcode.PUSH1); // 1
Opcode.pushBytes(Opcode.PUSH32); // 32
Opcode.pushBytes(Opcode.PUSH0); // 0
Opcode.pushBytes(Opcode.ADD); // undefined
```

***

### \_pushOpcode()

> **\_pushOpcode**(`bytes`): [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/pushOpcode.js:19](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/pushOpcode.js#L19)

Get PUSH opcode for given byte count

#### Parameters

##### bytes

`number`

Number of bytes (0-32)

#### Returns

[`BrandedOpcode`](#brandedopcode)

PUSH opcode for that size

#### Throws

If bytes is not 0-32

#### Example

```typescript theme={null}
Opcode.pushOpcode(1); // Opcode.PUSH1
Opcode.pushOpcode(32); // Opcode.PUSH32
Opcode.pushOpcode(0); // Opcode.PUSH0
```

***

### \_swapPosition()

> **\_swapPosition**(`opcode`): `number` | `undefined`

Defined in: [src/primitives/Opcode/swapPosition.js:17](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/swapPosition.js#L17)

Get position for SWAP instruction

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

`number` | `undefined`

Stack position (1-16), or undefined if not a SWAP

#### Example

```typescript theme={null}
Opcode.swapPosition(Opcode.SWAP1); // 1
Opcode.swapPosition(Opcode.SWAP16); // 16
Opcode.swapPosition(Opcode.ADD); // undefined
```

***

### disassemble()

> **disassemble**(`bytecode`): `string`\[]

Defined in: [src/primitives/Opcode/disassemble.js:22](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/disassemble.js#L22)

Disassemble bytecode to human-readable strings

#### Parameters

##### bytecode

`Uint8Array`\<`ArrayBufferLike`>

Raw bytecode bytes

#### Returns

`string`\[]

Array of formatted instruction strings

#### Example

```typescript theme={null}
const bytecode = new Uint8Array([0x60, 0x01, 0x60, 0x02, 0x01]);
const asm = Opcode.disassemble(bytecode);
// [
//   "0x0000: PUSH1 0x01",
//   "0x0002: PUSH1 0x02",
//   "0x0004: ADD"
// ]
```

***

### dupPosition()

> **dupPosition**(`opcode`): `number` | `undefined`

Defined in: [src/primitives/Opcode/dupPosition.js:17](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/dupPosition.js#L17)

Get position for DUP instruction

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

`number` | `undefined`

Stack position (1-16), or undefined if not a DUP

#### Example

```typescript theme={null}
Opcode.dupPosition(Opcode.DUP1); // 1
Opcode.dupPosition(Opcode.DUP16); // 16
Opcode.dupPosition(Opcode.ADD); // undefined
```

***

### format()

> **format**(`instruction`): `string`

Defined in: [src/primitives/Opcode/format.js:20](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/format.js#L20)

Format instruction to human-readable string

#### Parameters

##### instruction

[`Instruction`](#instruction)

Instruction to format

#### Returns

`string`

Human-readable string

#### Example

```typescript theme={null}
const inst = {
  offset: 0,
  opcode: Opcode.PUSH1,
  immediate: new Uint8Array([0x42])
};
Opcode.format(inst); // "0x0000: PUSH1 0x42"
```

***

### getCategory()

> **getCategory**(`opcode`): `string`

Defined in: [src/primitives/Opcode/getCategory.js:18](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/getCategory.js#L18)

Get opcode category

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

`string`

Category name

#### Example

```typescript theme={null}
Opcode.getCategory(Opcode.ADD); // "arithmetic"
Opcode.getCategory(Opcode.SSTORE); // "storage"
Opcode.getCategory(Opcode.CALL); // "system"
```

***

### getDescription()

> **getDescription**(`opcode`): `string`

Defined in: [src/primitives/Opcode/getDescription.js:140](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/getDescription.js#L140)

Get human-readable description of an opcode

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

`string`

Description or generated description for PUSH/DUP/SWAP

#### Example

```typescript theme={null}
const desc = Opcode.getDescription(Opcode.ADD);
// "Addition operation"

const desc2 = Opcode.getDescription(Opcode.PUSH1);
// "Place 1-byte item on stack"
```

***

### getGasCost()

> **getGasCost**(`opcode`): `number` | `undefined`

Defined in: [src/primitives/Opcode/getGasCost.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/getGasCost.js#L16)

Get static gas cost for an opcode

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

`number` | `undefined`

Static gas cost or undefined if invalid

#### Example

```typescript theme={null}
const gas = Opcode.getGasCost(Opcode.ADD); // 3
const gas2 = Opcode.getGasCost(Opcode.SSTORE); // 100 (base cost, may be higher at runtime)
```

***

### getName()

> **getName**(`opcode`): `string`

Defined in: [src/primitives/Opcode/getName.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/getName.js#L16)

Get mnemonic name of an opcode (alias for name)

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

`string`

Opcode name or "UNKNOWN" if invalid

#### Example

```typescript theme={null}
const name = Opcode.getName(Opcode.ADD); // "ADD"
const name2 = Opcode.getName(0xFF); // "SELFDESTRUCT"
```

***

### getPushSize()

> **getPushSize**(`opcode`): `number`

Defined in: [src/primitives/Opcode/getPushSize.js:18](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/getPushSize.js#L18)

Get PUSH data size in bytes

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

`number`

Push size (0 for PUSH0, 1-32 for PUSH1-PUSH32, 0 for non-PUSH)

#### Example

```typescript theme={null}
Opcode.getPushSize(Opcode.PUSH0); // 0
Opcode.getPushSize(Opcode.PUSH1); // 1
Opcode.getPushSize(Opcode.PUSH32); // 32
Opcode.getPushSize(Opcode.ADD); // 0
```

***

### getStackEffect()

> **getStackEffect**(`opcode`): \{ `pop`: `number`; `push`: `number`; } | `undefined`

Defined in: [src/primitives/Opcode/getStackEffect.js:19](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/getStackEffect.js#L19)

Get stack effect for an opcode

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

\{ `pop`: `number`; `push`: `number`; } | `undefined`

Stack items consumed and produced

#### Example

```typescript theme={null}
const effect = Opcode.getStackEffect(Opcode.ADD);
// { pop: 2, push: 1 }

const effect2 = Opcode.getStackEffect(Opcode.DUP1);
// { pop: 1, push: 2 }
```

***

### getStackInput()

> **getStackInput**(`opcode`): `number` | `undefined`

Defined in: [src/primitives/Opcode/getStackInput.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/getStackInput.js#L16)

Get number of stack items consumed by an opcode

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

`number` | `undefined`

Number of stack items consumed

#### Example

```typescript theme={null}
const inputs = Opcode.getStackInput(Opcode.ADD); // 2
const inputs2 = Opcode.getStackInput(Opcode.PUSH1); // 0
```

***

### getStackOutput()

> **getStackOutput**(`opcode`): `number` | `undefined`

Defined in: [src/primitives/Opcode/getStackOutput.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/getStackOutput.js#L16)

Get number of stack items produced by an opcode

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

`number` | `undefined`

Number of stack items produced

#### Example

```typescript theme={null}
const outputs = Opcode.getStackOutput(Opcode.ADD); // 1
const outputs2 = Opcode.getStackOutput(Opcode.PUSH1); // 1
```

***

### info()

> **info**(`opcode`): [`Info`](#info) | `undefined`

Defined in: [src/primitives/Opcode/info.js:17](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/info.js#L17)

Get metadata for an opcode

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

[`Info`](#info) | `undefined`

Metadata with gas cost and stack requirements

#### Example

```typescript theme={null}
const info = Opcode.info(Opcode.ADD);
console.log(info?.name); // "ADD"
console.log(info?.gasCost); // 3
```

***

### isDup()

> **isDup**(`opcode`): `boolean`

Defined in: [src/primitives/Opcode/isDup.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/isDup.js#L16)

Check if opcode is a DUP instruction

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to check

#### Returns

`boolean`

True if DUP1-DUP16

#### Example

```typescript theme={null}
Opcode.isDup(Opcode.DUP1); // true
Opcode.isDup(Opcode.ADD); // false
```

***

### isJump()

> **isJump**(`opcode`): `boolean`

Defined in: [src/primitives/Opcode/isJump.js:17](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/isJump.js#L17)

Check if opcode is a jump

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to check

#### Returns

`boolean`

True if JUMP or JUMPI

#### Example

```typescript theme={null}
Opcode.isJump(Opcode.JUMP); // true
Opcode.isJump(Opcode.JUMPI); // true
Opcode.isJump(Opcode.ADD); // false
```

***

### isJumpDestination()

> **isJumpDestination**(`opcode`): `boolean`

Defined in: [src/primitives/Opcode/isJumpDestination.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/isJumpDestination.js#L16)

Check if opcode is JUMPDEST

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to check

#### Returns

`boolean`

True if JUMPDEST

#### Example

```typescript theme={null}
Opcode.isJumpDestination(Opcode.JUMPDEST); // true
Opcode.isJumpDestination(Opcode.JUMP); // false
```

***

### isLog()

> **isLog**(`opcode`): `boolean`

Defined in: [src/primitives/Opcode/isLog.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/isLog.js#L16)

Check if opcode is a LOG instruction

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to check

#### Returns

`boolean`

True if LOG0-LOG4

#### Example

```typescript theme={null}
Opcode.isLog(Opcode.LOG1); // true
Opcode.isLog(Opcode.ADD); // false
```

***

### isPush()

> **isPush**(`opcode`): `boolean`

Defined in: [src/primitives/Opcode/isPush.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/isPush.js#L16)

Check if opcode is a PUSH instruction

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to check

#### Returns

`boolean`

True if PUSH0-PUSH32

#### Example

```typescript theme={null}
Opcode.isPush(Opcode.PUSH1); // true
Opcode.isPush(Opcode.ADD); // false
```

***

### isSwap()

> **isSwap**(`opcode`): `boolean`

Defined in: [src/primitives/Opcode/isSwap.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/isSwap.js#L16)

Check if opcode is a SWAP instruction

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to check

#### Returns

`boolean`

True if SWAP1-SWAP16

#### Example

```typescript theme={null}
Opcode.isSwap(Opcode.SWAP1); // true
Opcode.isSwap(Opcode.ADD); // false
```

***

### isTerminating()

> **isTerminating**(`opcode`): `boolean`

Defined in: [src/primitives/Opcode/isTerminating.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/isTerminating.js#L16)

Check if opcode terminates execution

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to check

#### Returns

`boolean`

True if STOP, RETURN, REVERT, INVALID, or SELFDESTRUCT

#### Example

```typescript theme={null}
Opcode.isTerminating(Opcode.RETURN); // true
Opcode.isTerminating(Opcode.ADD); // false
```

***

### isTerminator()

> **isTerminator**(`opcode`): `boolean`

Defined in: [src/primitives/Opcode/isTerminator.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/isTerminator.js#L16)

Check if opcode terminates execution (alias for isTerminating)

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to check

#### Returns

`boolean`

True if STOP, RETURN, REVERT, INVALID, or SELFDESTRUCT

#### Example

```typescript theme={null}
Opcode.isTerminator(Opcode.RETURN); // true
Opcode.isTerminator(Opcode.ADD); // false
```

***

### isValid()

> **isValid**(`opcode`): `opcode is BrandedOpcode`

Defined in: [src/primitives/Opcode/isValid.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/isValid.js#L16)

Check if opcode is valid

#### Parameters

##### opcode

`number`

Byte value to check

#### Returns

`opcode is BrandedOpcode`

True if opcode is defined in the EVM

#### Example

```typescript theme={null}
Opcode.isValid(0x01); // true (ADD)
Opcode.isValid(0x0c); // false (undefined)
```

***

### isValidJumpDest()

> **isValidJumpDest**(`bytecode`, `offset`): `boolean`

Defined in: [src/primitives/Opcode/isValidJumpDest.js:18](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/isValidJumpDest.js#L18)

Check if offset is a valid jump destination

#### Parameters

##### bytecode

`Uint8Array`\<`ArrayBufferLike`>

Raw bytecode bytes

##### offset

`number`

Byte offset to check

#### Returns

`boolean`

True if offset is a JUMPDEST and not inside immediate data

#### Example

```typescript theme={null}
const bytecode = new Uint8Array([0x5b, 0x60, 0x01]);
Opcode.isValidJumpDest(bytecode, 0); // true (JUMPDEST)
Opcode.isValidJumpDest(bytecode, 2); // false (immediate data)
```

***

### isValidOpcode()

> **isValidOpcode**(`value`): `boolean`

Defined in: [src/primitives/Opcode/isValidOpcode.js:17](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/isValidOpcode.js#L17)

Check if value is a valid opcode (alias for isValid)

#### Parameters

##### value

`number`

Value to check

#### Returns

`boolean`

True if valid opcode

#### Example

```typescript theme={null}
Opcode.isValidOpcode(0x01); // true (ADD)
Opcode.isValidOpcode(0xFF); // true (SELFDESTRUCT)
Opcode.isValidOpcode(0x0C); // false
```

***

### jumpDests()

> **jumpDests**(`bytecode`): `Set`\<`number`>

Defined in: [src/primitives/Opcode/jumpDests.js:17](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/jumpDests.js#L17)

Find all valid JUMPDEST locations

#### Parameters

##### bytecode

`Uint8Array`\<`ArrayBufferLike`>

Raw bytecode bytes

#### Returns

`Set`\<`number`>

Set of valid jump destinations (byte offsets)

#### Example

```typescript theme={null}
const bytecode = new Uint8Array([0x5b, 0x60, 0x01, 0x5b]);
const dests = Opcode.jumpDests(bytecode); // Set { 0, 3 }
```

***

### logTopics()

> **logTopics**(`opcode`): `number` | `undefined`

Defined in: [src/primitives/Opcode/logTopics.js:17](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/logTopics.js#L17)

Get number of topics for LOG instruction

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

`number` | `undefined`

Number of topics (0-4), or undefined if not a LOG

#### Example

```typescript theme={null}
Opcode.logTopics(Opcode.LOG0); // 0
Opcode.logTopics(Opcode.LOG4); // 4
Opcode.logTopics(Opcode.ADD); // undefined
```

***

### name()

> **name**(`opcode`): `string`

Defined in: [src/primitives/Opcode/name.js:15](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/name.js#L15)

Get name of an opcode

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

`string`

Opcode name or "UNKNOWN" if invalid

#### Example

```typescript theme={null}
const name = Opcode.name(Opcode.ADD); // "ADD"
```

***

### parse()

> **parse**(`bytecode`): [`Instruction`](#instruction)\[]

Defined in: [src/primitives/Opcode/parse.js:21](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/parse.js#L21)

Parse bytecode into instructions

#### Parameters

##### bytecode

`Uint8Array`\<`ArrayBufferLike`>

Raw bytecode bytes

#### Returns

[`Instruction`](#instruction)\[]

Array of parsed instructions

#### Example

```typescript theme={null}
const bytecode = new Uint8Array([0x60, 0x01, 0x60, 0x02, 0x01]);
const instructions = Opcode.parse(bytecode);
// [
//   { offset: 0, opcode: PUSH1, immediate: [0x01] },
//   { offset: 2, opcode: PUSH1, immediate: [0x02] },
//   { offset: 4, opcode: ADD }
// ]
```

***

### pushBytes()

> **pushBytes**(`opcode`): `number` | `undefined`

Defined in: [src/primitives/Opcode/pushBytes.js:18](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/pushBytes.js#L18)

Get number of bytes pushed by PUSH instruction

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

`number` | `undefined`

Number of bytes (0-32), or undefined if not a PUSH

#### Example

```typescript theme={null}
Opcode.pushBytes(Opcode.PUSH1); // 1
Opcode.pushBytes(Opcode.PUSH32); // 32
Opcode.pushBytes(Opcode.PUSH0); // 0
Opcode.pushBytes(Opcode.ADD); // undefined
```

***

### pushOpcode()

> **pushOpcode**(`bytes`): [`BrandedOpcode`](#brandedopcode)

Defined in: [src/primitives/Opcode/pushOpcode.js:19](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/pushOpcode.js#L19)

Get PUSH opcode for given byte count

#### Parameters

##### bytes

`number`

Number of bytes (0-32)

#### Returns

[`BrandedOpcode`](#brandedopcode)

PUSH opcode for that size

#### Throws

If bytes is not 0-32

#### Example

```typescript theme={null}
Opcode.pushOpcode(1); // Opcode.PUSH1
Opcode.pushOpcode(32); // Opcode.PUSH32
Opcode.pushOpcode(0); // Opcode.PUSH0
```

***

### swapPosition()

> **swapPosition**(`opcode`): `number` | `undefined`

Defined in: [src/primitives/Opcode/swapPosition.js:17](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/Opcode/swapPosition.js#L17)

Get position for SWAP instruction

#### Parameters

##### opcode

[`BrandedOpcode`](#brandedopcode)

Opcode to query

#### Returns

`number` | `undefined`

Stack position (1-16), or undefined if not a SWAP

#### Example

```typescript theme={null}
Opcode.swapPosition(Opcode.SWAP1); // 1
Opcode.swapPosition(Opcode.SWAP16); // 16
Opcode.swapPosition(Opcode.ADD); // undefined
```

## References

### Opcode

Re-exports [Opcode](../index/index.mdx#opcode)
