> ## 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.

# BrandedOpcode

> Auto-generated API documentation

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

***

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

# BrandedOpcode

## 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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#brandedopcode)

Opcode to query

#### Returns

[`Info`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#brandedopcode)

Opcode to query

#### Returns

[`Info`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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`](../../primitives/Opcode.mdx#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

### ADD

Re-exports [ADD](../../primitives/Opcode.mdx#add)

***

### ADDMOD

Re-exports [ADDMOD](../../primitives/Opcode.mdx#addmod)

***

### ADDRESS

Re-exports [ADDRESS](../../primitives/Opcode.mdx#address)

***

### AND

Re-exports [AND](../../primitives/Opcode.mdx#and)

***

### AUTH

Re-exports [AUTH](../../primitives/Opcode.mdx#auth)

***

### AUTHCALL

Re-exports [AUTHCALL](../../primitives/Opcode.mdx#authcall)

***

### BALANCE

Re-exports [BALANCE](../../primitives/Opcode.mdx#balance)

***

### BASEFEE

Re-exports [BASEFEE](../../primitives/Opcode.mdx#basefee)

***

### BLOBBASEFEE

Re-exports [BLOBBASEFEE](../../primitives/Opcode.mdx#blobbasefee)

***

### BLOBHASH

Re-exports [BLOBHASH](../../primitives/Opcode.mdx#blobhash)

***

### BLOCKHASH

Re-exports [BLOCKHASH](../../primitives/Opcode.mdx#blockhash)

***

### BrandedOpcode

Re-exports [BrandedOpcode](../../primitives/Opcode.mdx#brandedopcode-1)

***

### BYTE

Re-exports [BYTE](../../primitives/Opcode.mdx#byte-1)

***

### CALL

Re-exports [CALL](../../primitives/Opcode.mdx#call-1)

***

### CALLCODE

Re-exports [CALLCODE](../../primitives/Opcode.mdx#callcode-1)

***

### CALLDATACOPY

Re-exports [CALLDATACOPY](../../primitives/Opcode.mdx#calldatacopy-1)

***

### CALLDATALOAD

Re-exports [CALLDATALOAD](../../primitives/Opcode.mdx#calldataload-1)

***

### CALLDATASIZE

Re-exports [CALLDATASIZE](../../primitives/Opcode.mdx#calldatasize-1)

***

### CALLER

Re-exports [CALLER](../../primitives/Opcode.mdx#caller-1)

***

### CALLVALUE

Re-exports [CALLVALUE](../../primitives/Opcode.mdx#callvalue-1)

***

### CHAINID

Re-exports [CHAINID](../../primitives/Opcode.mdx#chainid-1)

***

### CODECOPY

Re-exports [CODECOPY](../../primitives/Opcode.mdx#codecopy-1)

***

### CODESIZE

Re-exports [CODESIZE](../../primitives/Opcode.mdx#codesize-1)

***

### COINBASE

Re-exports [COINBASE](../../primitives/Opcode.mdx#coinbase-1)

***

### CREATE

Re-exports [CREATE](../../primitives/Opcode.mdx#create-1)

***

### CREATE2

Re-exports [CREATE2](../../primitives/Opcode.mdx#create2-1)

***

### DELEGATECALL

Re-exports [DELEGATECALL](../../primitives/Opcode.mdx#delegatecall-1)

***

### DIFFICULTY

Re-exports [DIFFICULTY](../../primitives/Opcode.mdx#difficulty-1)

***

### DIV

Re-exports [DIV](../../primitives/Opcode.mdx#div-1)

***

### DUP1

Re-exports [DUP1](../../primitives/Opcode.mdx#dup1-1)

***

### DUP10

Re-exports [DUP10](../../primitives/Opcode.mdx#dup10-1)

***

### DUP11

Re-exports [DUP11](../../primitives/Opcode.mdx#dup11-1)

***

### DUP12

Re-exports [DUP12](../../primitives/Opcode.mdx#dup12-1)

***

### DUP13

Re-exports [DUP13](../../primitives/Opcode.mdx#dup13-1)

***

### DUP14

Re-exports [DUP14](../../primitives/Opcode.mdx#dup14-1)

***

### DUP15

Re-exports [DUP15](../../primitives/Opcode.mdx#dup15-1)

***

### DUP16

Re-exports [DUP16](../../primitives/Opcode.mdx#dup16-1)

***

### DUP2

Re-exports [DUP2](../../primitives/Opcode.mdx#dup2-1)

***

### DUP3

Re-exports [DUP3](../../primitives/Opcode.mdx#dup3-1)

***

### DUP4

Re-exports [DUP4](../../primitives/Opcode.mdx#dup4-1)

***

### DUP5

Re-exports [DUP5](../../primitives/Opcode.mdx#dup5-1)

***

### DUP6

Re-exports [DUP6](../../primitives/Opcode.mdx#dup6-1)

***

### DUP7

Re-exports [DUP7](../../primitives/Opcode.mdx#dup7-1)

***

### DUP8

Re-exports [DUP8](../../primitives/Opcode.mdx#dup8-1)

***

### DUP9

Re-exports [DUP9](../../primitives/Opcode.mdx#dup9-1)

***

### EQ

Re-exports [EQ](../../primitives/Opcode.mdx#eq-1)

***

### EXP

Re-exports [EXP](../../primitives/Opcode.mdx#exp-1)

***

### EXTCODECOPY

Re-exports [EXTCODECOPY](../../primitives/Opcode.mdx#extcodecopy-1)

***

### EXTCODEHASH

Re-exports [EXTCODEHASH](../../primitives/Opcode.mdx#extcodehash-1)

***

### EXTCODESIZE

Re-exports [EXTCODESIZE](../../primitives/Opcode.mdx#extcodesize-1)

***

### GAS

Re-exports [GAS](../../primitives/Opcode.mdx#gas-1)

***

### GASLIMIT

Re-exports [GASLIMIT](../../primitives/Opcode.mdx#gaslimit-1)

***

### GASPRICE

Re-exports [GASPRICE](../../primitives/Opcode.mdx#gasprice-1)

***

### GT

Re-exports [GT](../../primitives/Opcode.mdx#gt-1)

***

### Info

Re-exports [Info](../../primitives/Opcode.mdx#info)

***

### Instruction

Re-exports [Instruction](../../primitives/Opcode.mdx#instruction)

***

### INVALID

Re-exports [INVALID](../../primitives/Opcode.mdx#invalid-1)

***

### ISZERO

Re-exports [ISZERO](../../primitives/Opcode.mdx#iszero-1)

***

### JUMP

Re-exports [JUMP](../../primitives/Opcode.mdx#jump-1)

***

### JUMPDEST

Re-exports [JUMPDEST](../../primitives/Opcode.mdx#jumpdest-1)

***

### JUMPI

Re-exports [JUMPI](../../primitives/Opcode.mdx#jumpi-1)

***

### KECCAK256

Re-exports [KECCAK256](../../primitives/Opcode.mdx#keccak256-1)

***

### LOG0

Re-exports [LOG0](../../primitives/Opcode.mdx#log0-1)

***

### LOG1

Re-exports [LOG1](../../primitives/Opcode.mdx#log1-1)

***

### LOG2

Re-exports [LOG2](../../primitives/Opcode.mdx#log2-1)

***

### LOG3

Re-exports [LOG3](../../primitives/Opcode.mdx#log3-1)

***

### LOG4

Re-exports [LOG4](../../primitives/Opcode.mdx#log4-1)

***

### LT

Re-exports [LT](../../primitives/Opcode.mdx#lt-1)

***

### MCOPY

Re-exports [MCOPY](../../primitives/Opcode.mdx#mcopy-1)

***

### MLOAD

Re-exports [MLOAD](../../primitives/Opcode.mdx#mload-1)

***

### MOD

Re-exports [MOD](../../primitives/Opcode.mdx#mod-1)

***

### MSIZE

Re-exports [MSIZE](../../primitives/Opcode.mdx#msize-1)

***

### MSTORE

Re-exports [MSTORE](../../primitives/Opcode.mdx#mstore-1)

***

### MSTORE8

Re-exports [MSTORE8](../../primitives/Opcode.mdx#mstore8-1)

***

### MUL

Re-exports [MUL](../../primitives/Opcode.mdx#mul-1)

***

### MULMOD

Re-exports [MULMOD](../../primitives/Opcode.mdx#mulmod-1)

***

### NOT

Re-exports [NOT](../../primitives/Opcode.mdx#not-1)

***

### NUMBER

Re-exports [NUMBER](../../primitives/Opcode.mdx#number-1)

***

### Opcode

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

***

### OR

Re-exports [OR](../../primitives/Opcode.mdx#or-1)

***

### ORIGIN

Re-exports [ORIGIN](../../primitives/Opcode.mdx#origin-1)

***

### PC

Re-exports [PC](../../primitives/Opcode.mdx#pc-1)

***

### POP

Re-exports [POP](../../primitives/Opcode.mdx#pop-1)

***

### PUSH0

Re-exports [PUSH0](../../primitives/Opcode.mdx#push0-1)

***

### PUSH1

Re-exports [PUSH1](../../primitives/Opcode.mdx#push1-1)

***

### PUSH10

Re-exports [PUSH10](../../primitives/Opcode.mdx#push10-1)

***

### PUSH11

Re-exports [PUSH11](../../primitives/Opcode.mdx#push11-1)

***

### PUSH12

Re-exports [PUSH12](../../primitives/Opcode.mdx#push12-1)

***

### PUSH13

Re-exports [PUSH13](../../primitives/Opcode.mdx#push13-1)

***

### PUSH14

Re-exports [PUSH14](../../primitives/Opcode.mdx#push14-1)

***

### PUSH15

Re-exports [PUSH15](../../primitives/Opcode.mdx#push15-1)

***

### PUSH16

Re-exports [PUSH16](../../primitives/Opcode.mdx#push16-1)

***

### PUSH17

Re-exports [PUSH17](../../primitives/Opcode.mdx#push17-1)

***

### PUSH18

Re-exports [PUSH18](../../primitives/Opcode.mdx#push18-1)

***

### PUSH19

Re-exports [PUSH19](../../primitives/Opcode.mdx#push19-1)

***

### PUSH2

Re-exports [PUSH2](../../primitives/Opcode.mdx#push2-1)

***

### PUSH20

Re-exports [PUSH20](../../primitives/Opcode.mdx#push20-1)

***

### PUSH21

Re-exports [PUSH21](../../primitives/Opcode.mdx#push21-1)

***

### PUSH22

Re-exports [PUSH22](../../primitives/Opcode.mdx#push22-1)

***

### PUSH23

Re-exports [PUSH23](../../primitives/Opcode.mdx#push23-1)

***

### PUSH24

Re-exports [PUSH24](../../primitives/Opcode.mdx#push24-1)

***

### PUSH25

Re-exports [PUSH25](../../primitives/Opcode.mdx#push25-1)

***

### PUSH26

Re-exports [PUSH26](../../primitives/Opcode.mdx#push26-1)

***

### PUSH27

Re-exports [PUSH27](../../primitives/Opcode.mdx#push27-1)

***

### PUSH28

Re-exports [PUSH28](../../primitives/Opcode.mdx#push28-1)

***

### PUSH29

Re-exports [PUSH29](../../primitives/Opcode.mdx#push29-1)

***

### PUSH3

Re-exports [PUSH3](../../primitives/Opcode.mdx#push3-1)

***

### PUSH30

Re-exports [PUSH30](../../primitives/Opcode.mdx#push30-1)

***

### PUSH31

Re-exports [PUSH31](../../primitives/Opcode.mdx#push31-1)

***

### PUSH32

Re-exports [PUSH32](../../primitives/Opcode.mdx#push32-1)

***

### PUSH4

Re-exports [PUSH4](../../primitives/Opcode.mdx#push4-1)

***

### PUSH5

Re-exports [PUSH5](../../primitives/Opcode.mdx#push5-1)

***

### PUSH6

Re-exports [PUSH6](../../primitives/Opcode.mdx#push6-1)

***

### PUSH7

Re-exports [PUSH7](../../primitives/Opcode.mdx#push7-1)

***

### PUSH8

Re-exports [PUSH8](../../primitives/Opcode.mdx#push8-1)

***

### PUSH9

Re-exports [PUSH9](../../primitives/Opcode.mdx#push9-1)

***

### RETURN

Re-exports [RETURN](../../primitives/Opcode.mdx#return-1)

***

### RETURNDATACOPY

Re-exports [RETURNDATACOPY](../../primitives/Opcode.mdx#returndatacopy-1)

***

### RETURNDATASIZE

Re-exports [RETURNDATASIZE](../../primitives/Opcode.mdx#returndatasize-1)

***

### REVERT

Re-exports [REVERT](../../primitives/Opcode.mdx#revert-1)

***

### SAR

Re-exports [SAR](../../primitives/Opcode.mdx#sar-1)

***

### SDIV

Re-exports [SDIV](../../primitives/Opcode.mdx#sdiv-1)

***

### SELFBALANCE

Re-exports [SELFBALANCE](../../primitives/Opcode.mdx#selfbalance-1)

***

### SELFDESTRUCT

Re-exports [SELFDESTRUCT](../../primitives/Opcode.mdx#selfdestruct-1)

***

### SGT

Re-exports [SGT](../../primitives/Opcode.mdx#sgt-1)

***

### SHL

Re-exports [SHL](../../primitives/Opcode.mdx#shl-1)

***

### SHR

Re-exports [SHR](../../primitives/Opcode.mdx#shr-1)

***

### SIGNEXTEND

Re-exports [SIGNEXTEND](../../primitives/Opcode.mdx#signextend-1)

***

### SLOAD

Re-exports [SLOAD](../../primitives/Opcode.mdx#sload-1)

***

### SLT

Re-exports [SLT](../../primitives/Opcode.mdx#slt-1)

***

### SMOD

Re-exports [SMOD](../../primitives/Opcode.mdx#smod-1)

***

### SSTORE

Re-exports [SSTORE](../../primitives/Opcode.mdx#sstore-1)

***

### STATICCALL

Re-exports [STATICCALL](../../primitives/Opcode.mdx#staticcall-1)

***

### STOP

Re-exports [STOP](../../primitives/Opcode.mdx#stop-1)

***

### SUB

Re-exports [SUB](../../primitives/Opcode.mdx#sub-1)

***

### SWAP1

Re-exports [SWAP1](../../primitives/Opcode.mdx#swap1-1)

***

### SWAP10

Re-exports [SWAP10](../../primitives/Opcode.mdx#swap10-1)

***

### SWAP11

Re-exports [SWAP11](../../primitives/Opcode.mdx#swap11-1)

***

### SWAP12

Re-exports [SWAP12](../../primitives/Opcode.mdx#swap12-1)

***

### SWAP13

Re-exports [SWAP13](../../primitives/Opcode.mdx#swap13-1)

***

### SWAP14

Re-exports [SWAP14](../../primitives/Opcode.mdx#swap14-1)

***

### SWAP15

Re-exports [SWAP15](../../primitives/Opcode.mdx#swap15-1)

***

### SWAP16

Re-exports [SWAP16](../../primitives/Opcode.mdx#swap16-1)

***

### SWAP2

Re-exports [SWAP2](../../primitives/Opcode.mdx#swap2-1)

***

### SWAP3

Re-exports [SWAP3](../../primitives/Opcode.mdx#swap3-1)

***

### SWAP4

Re-exports [SWAP4](../../primitives/Opcode.mdx#swap4-1)

***

### SWAP5

Re-exports [SWAP5](../../primitives/Opcode.mdx#swap5-1)

***

### SWAP6

Re-exports [SWAP6](../../primitives/Opcode.mdx#swap6-1)

***

### SWAP7

Re-exports [SWAP7](../../primitives/Opcode.mdx#swap7-1)

***

### SWAP8

Re-exports [SWAP8](../../primitives/Opcode.mdx#swap8-1)

***

### SWAP9

Re-exports [SWAP9](../../primitives/Opcode.mdx#swap9-1)

***

### TIMESTAMP

Re-exports [TIMESTAMP](../../primitives/Opcode.mdx#timestamp-1)

***

### TLOAD

Re-exports [TLOAD](../../primitives/Opcode.mdx#tload-1)

***

### TSTORE

Re-exports [TSTORE](../../primitives/Opcode.mdx#tstore-1)

***

### XOR

Re-exports [XOR](../../primitives/Opcode.mdx#xor-1)
