> ## 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/ContractCode

> Auto-generated API documentation

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

***

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

# primitives/ContractCode

## Type Aliases

### ContractCodeType

> **ContractCodeType** = `Uint8Array` & `object`

Defined in: [src/primitives/ContractCode/ContractCodeType.ts:7](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ContractCode/ContractCodeType.ts#L7)

Branded ContractCode type
Full deployed contract bytecode including metadata

#### Type Declaration

##### \[brand]

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

## Functions

### \_equals()

> **\_equals**(`a`, `b`): `boolean`

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

Check if two ContractCode instances are equal

#### Parameters

##### a

[`ContractCodeType`](#contractcodetype)

First ContractCode

##### b

[`ContractCodeType`](#contractcodetype)

Second ContractCode

#### Returns

`boolean`

true if equal

#### Example

```javascript theme={null}
import * as ContractCode from './primitives/ContractCode/index.js';
const code1 = ContractCode.from("0x6001");
const code2 = ContractCode.from("0x6001");
ContractCode._equals(code1, code2); // true
```

***

### \_extractRuntime()

> **\_extractRuntime**(`code`): [`RuntimeCodeType`](RuntimeCode.mdx#runtimecodetype)

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

Extract runtime code from contract code

Strips metadata to return pure runtime bytecode.
Alias for stripMetadata for semantic clarity.

#### Parameters

##### code

[`ContractCodeType`](#contractcodetype)

ContractCode

#### Returns

[`RuntimeCodeType`](RuntimeCode.mdx#runtimecodetype)

RuntimeCode

#### Example

```javascript theme={null}
import * as ContractCode from './primitives/ContractCode/index.js';
const contract = ContractCode.from("0x6001600155a264...0033");
const runtime = ContractCode._extractRuntime(contract);
```

***

### \_hasMetadata()

> **\_hasMetadata**(`code`): `boolean`

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

Check if contract code contains CBOR metadata

Solidity compiler includes CBOR-encoded metadata at the end of deployed bytecode.
The metadata section starts with 0xa2 (CBOR map) and ends with 0x00 0x33 (length).

#### Parameters

##### code

[`ContractCodeType`](#contractcodetype)

ContractCode to check

#### Returns

`boolean`

true if metadata is present

#### Example

```javascript theme={null}
import * as ContractCode from './primitives/ContractCode/index.js';
const code = ContractCode.from("0x6001600155a264...0033");
ContractCode._hasMetadata(code); // true
```

***

### \_stripMetadata()

> **\_stripMetadata**(`code`): [`RuntimeCodeType`](RuntimeCode.mdx#runtimecodetype)

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

Strip CBOR metadata from contract code

Returns runtime code without the Solidity compiler metadata.

#### Parameters

##### code

[`ContractCodeType`](#contractcodetype)

ContractCode with metadata

#### Returns

[`RuntimeCodeType`](RuntimeCode.mdx#runtimecodetype)

RuntimeCode without metadata

#### Example

```javascript theme={null}
import * as ContractCode from './primitives/ContractCode/index.js';
const withMeta = ContractCode.from("0x6001600155a264...0033");
const runtime = ContractCode._stripMetadata(withMeta);
```

***

### \_toHex()

> **\_toHex**(`data`): [`HexType`](Hex.mdx#hextype)

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

Convert ContractCode to hex string

#### Parameters

##### data

[`ContractCodeType`](#contractcodetype)

ContractCode

#### Returns

[`HexType`](Hex.mdx#hextype)

Hex string

#### Example

```javascript theme={null}
import * as ContractCode from './primitives/ContractCode/index.js';
const code = ContractCode.from("0x6001600155");
const hex = ContractCode._toHex(code); // "0x6001600155"
```

***

### equals()

> **equals**(`a`, `b`): `boolean`

Defined in: [src/primitives/ContractCode/index.ts:19](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ContractCode/index.ts#L19)

#### Parameters

##### a

`string` | `Uint8Array`\<`ArrayBufferLike`> | [`ContractCodeType`](#contractcodetype)

##### b

`string` | `Uint8Array`\<`ArrayBufferLike`> | [`ContractCodeType`](#contractcodetype)

#### Returns

`boolean`

***

### extractRuntime()

> **extractRuntime**(`value`): [`RuntimeCodeType`](RuntimeCode.mdx#runtimecodetype)

Defined in: [src/primitives/ContractCode/index.ts:44](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ContractCode/index.ts#L44)

#### Parameters

##### value

`string` | `Uint8Array`\<`ArrayBufferLike`> | [`ContractCodeType`](#contractcodetype)

#### Returns

[`RuntimeCodeType`](RuntimeCode.mdx#runtimecodetype)

***

### from()

> **from**(`value`): [`ContractCodeType`](#contractcodetype)

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

Create ContractCode from various input types

#### Parameters

##### value

Hex string or Uint8Array

`string` | `Uint8Array`\<`ArrayBufferLike`>

#### Returns

[`ContractCodeType`](#contractcodetype)

ContractCode

#### See

[https://voltaire.tevm.sh/primitives/contract-code](https://voltaire.tevm.sh/primitives/contract-code) for ContractCode documentation

#### Since

0.0.0

#### Throws

#### Example

```javascript theme={null}
import * as ContractCode from './primitives/ContractCode/index.js';
const code1 = ContractCode.from("0x6001600155");
const code2 = ContractCode.from(new Uint8Array([0x60, 0x01, 0x60, 0x01, 0x55]));
```

***

### fromHex()

> **fromHex**(`hex`): [`ContractCodeType`](#contractcodetype)

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

Create ContractCode from hex string

#### Parameters

##### hex

`string`

Hex string

#### Returns

[`ContractCodeType`](#contractcodetype)

ContractCode

#### Throws

If hex string is invalid

#### Example

```javascript theme={null}
import * as ContractCode from './primitives/ContractCode/index.js';
const code = ContractCode.fromHex("0x6001600155");
```

***

### hasMetadata()

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

Defined in: [src/primitives/ContractCode/index.ts:32](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ContractCode/index.ts#L32)

#### Parameters

##### value

`string` | `Uint8Array`\<`ArrayBufferLike`> | [`ContractCodeType`](#contractcodetype)

#### Returns

`boolean`

***

### stripMetadata()

> **stripMetadata**(`value`): [`RuntimeCodeType`](RuntimeCode.mdx#runtimecodetype)

Defined in: [src/primitives/ContractCode/index.ts:38](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ContractCode/index.ts#L38)

#### Parameters

##### value

`string` | `Uint8Array`\<`ArrayBufferLike`> | [`ContractCodeType`](#contractcodetype)

#### Returns

[`RuntimeCodeType`](RuntimeCode.mdx#runtimecodetype)

***

### toHex()

> **toHex**(`value`): [`HexType`](Hex.mdx#hextype)

Defined in: [src/primitives/ContractCode/index.ts:26](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ContractCode/index.ts#L26)

#### Parameters

##### value

`string` | `Uint8Array`\<`ArrayBufferLike`> | [`ContractCodeType`](#contractcodetype)

#### Returns

[`HexType`](Hex.mdx#hextype)
