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

> Auto-generated API documentation

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

***

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

# primitives/ContractResult

## Classes

### ContractRevertError

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

Error thrown when unwrapping a failed contract result

#### Extends

* [`PrimitiveError`](../index/index.mdx#primitiveerror)

#### Constructors

##### Constructor

> **new ContractRevertError**(`message`, `revertReason`): [`ContractRevertError`](#contractreverterror)

Defined in: [src/primitives/ContractResult/errors.ts:10](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ContractResult/errors.ts#L10)

###### Parameters

###### message

`string`

###### revertReason

[`RevertReasonType`](RevertReason.mdx#revertreasontype)

###### Returns

[`ContractRevertError`](#contractreverterror)

###### Overrides

[`PrimitiveError`](../index/index.mdx#primitiveerror).[`constructor`](../index/index.mdx#constructor-16)

#### Properties

##### cause?

> `optional` **cause**: `Error`

Defined in: [src/primitives/errors/AbstractError.ts:56](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L56)

Root cause of this error (for error chaining)

###### Inherited from

[`PrimitiveError`](../index/index.mdx#primitiveerror).[`cause`](../index/index.mdx#cause-16)

##### code

> **code**: `string`

Defined in: [src/primitives/errors/AbstractError.ts:39](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L39)

Machine-readable error code for programmatic handling

###### Example

```ts theme={null}
'INVALID_FORMAT', 'INVALID_LENGTH'
```

###### Inherited from

[`PrimitiveError`](../index/index.mdx#primitiveerror).[`code`](../index/index.mdx#code-16)

##### context?

> `optional` **context**: `Record`\<`string`, `unknown`>

Defined in: [src/primitives/errors/AbstractError.ts:45](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L45)

Additional context metadata for debugging

###### Example

```ts theme={null}
{ value: '0x123', expected: '20 bytes' }
```

###### Inherited from

[`PrimitiveError`](../index/index.mdx#primitiveerror).[`context`](../index/index.mdx#context-16)

##### docsPath?

> `optional` **docsPath**: `string`

Defined in: [src/primitives/errors/AbstractError.ts:51](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L51)

Path to documentation for this error

###### Example

```ts theme={null}
'/primitives/address/from-hex#error-handling'
```

###### Inherited from

[`PrimitiveError`](../index/index.mdx#primitiveerror).[`docsPath`](../index/index.mdx#docspath-16)

##### revertReason

> `readonly` **revertReason**: [`RevertReasonType`](RevertReason.mdx#revertreasontype)

Defined in: [src/primitives/ContractResult/errors.ts:8](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ContractResult/errors.ts#L8)

#### Methods

##### getErrorChain()

> **getErrorChain**(): `string`

Defined in: [src/primitives/errors/AbstractError.ts:94](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L94)

Get full error chain as string for logging

###### Returns

`string`

###### Inherited from

[`PrimitiveError`](../index/index.mdx#primitiveerror).[`getErrorChain`](../index/index.mdx#geterrorchain-32)

##### toJSON()

> **toJSON**(): `Record`\<`string`, `unknown`>

Defined in: [src/primitives/errors/AbstractError.ts:110](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L110)

Serialize error to JSON for logging/telemetry

###### Returns

`Record`\<`string`, `unknown`>

###### Inherited from

[`PrimitiveError`](../index/index.mdx#primitiveerror).[`toJSON`](../index/index.mdx#tojson-32)

## Type Aliases

### ContractResultType

> **ContractResultType** = [`SuccessResult`](#successresult) | [`FailureResult`](#failureresult)

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

ContractResult union type

***

### FailureResult

> **FailureResult** = `object`

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

Failed contract call

#### Properties

##### revertReason

> `readonly` **revertReason**: [`RevertReasonType`](RevertReason.mdx#revertreasontype)

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

##### success

> `readonly` **success**: `false`

Defined in: [src/primitives/ContractResult/ContractResultType.ts:24](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ContractResult/ContractResultType.ts#L24)

***

### SuccessResult

> **SuccessResult** = `object`

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

Successful contract call

#### Properties

##### data

> `readonly` **data**: [`ReturnDataType`](ReturnData.mdx#returndatatype)

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

##### success

> `readonly` **success**: `true`

Defined in: [src/primitives/ContractResult/ContractResultType.ts:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ContractResult/ContractResultType.ts#L16)

## Functions

### \_failure()

> **\_failure**(`revertReason`): [`FailureResult`](#failureresult)

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

Create failed ContractResult

#### Parameters

##### revertReason

[`RevertReasonType`](RevertReason.mdx#revertreasontype)

Revert reason

#### Returns

[`FailureResult`](#failureresult)

Failure result

#### Example

```typescript theme={null}
const result = ContractResult.failure(revertReason);
```

***

### \_from()

> **\_from**(`isSuccess`, `data`): [`ContractResultType`](#contractresulttype)

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

Create ContractResult from return data and success flag

#### Parameters

##### isSuccess

`boolean`

Whether call succeeded

##### data

Return data

`string` | `Uint8Array`\<`ArrayBufferLike`> | [`ReturnDataType`](ReturnData.mdx#returndatatype)

#### Returns

[`ContractResultType`](#contractresulttype)

Contract result

#### Example

```typescript theme={null}
const result = ContractResult.from(true, "0x0000...");
const failResult = ContractResult.from(false, "0x08c379a0...");
```

***

### \_isFailure()

> **\_isFailure**(`result`): `result is FailureResult`

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

Check if result is failure

#### Parameters

##### result

[`ContractResultType`](#contractresulttype)

Contract result

#### Returns

`result is FailureResult`

True if failure

#### Example

```typescript theme={null}
if (ContractResult.isFailure(result)) {
  console.log(result.revertReason);
}
```

***

### \_isSuccess()

> **\_isSuccess**(`result`): `result is SuccessResult`

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

Check if result is successful

#### Parameters

##### result

[`ContractResultType`](#contractresulttype)

Contract result

#### Returns

`result is SuccessResult`

True if success

#### Example

```typescript theme={null}
if (ContractResult.isSuccess(result)) {
  console.log(result.data);
}
```

***

### \_success()

> **\_success**(`data`): [`SuccessResult`](#successresult)

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

Create successful ContractResult

#### Parameters

##### data

[`ReturnDataType`](ReturnData.mdx#returndatatype)

Return data

#### Returns

[`SuccessResult`](#successresult)

Success result

#### Example

```typescript theme={null}
const result = ContractResult.success(returnData);
```

***

### \_unwrap()

> **\_unwrap**(`result`): [`ReturnDataType`](ReturnData.mdx#returndatatype)

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

Unwrap successful result or throw on failure

#### Parameters

##### result

[`ContractResultType`](#contractresulttype)

Contract result

#### Returns

[`ReturnDataType`](ReturnData.mdx#returndatatype)

Return data

#### Throws

If result is failure

#### Example

```typescript theme={null}
try {
  const data = ContractResult.unwrap(result);
} catch (error) {
  console.log(error.revertReason);
}
```

***

### \_unwrapOr()

> **\_unwrapOr**(`result`, `defaultValue`): [`ReturnDataType`](ReturnData.mdx#returndatatype)

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

Unwrap result or return default value on failure

#### Parameters

##### result

[`ContractResultType`](#contractresulttype)

Contract result

##### defaultValue

[`ReturnDataType`](ReturnData.mdx#returndatatype)

Default value

#### Returns

[`ReturnDataType`](ReturnData.mdx#returndatatype)

Return data or default

#### Example

```typescript theme={null}
const data = ContractResult.unwrapOr(result, ReturnData.fromHex("0x"));
```

***

### failure()

> **failure**(`revertReason`): [`FailureResult`](#failureresult)

Defined in: [src/primitives/ContractResult/index.ts:43](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ContractResult/index.ts#L43)

Create failed ContractResult

#### Parameters

##### revertReason

[`RevertReasonType`](RevertReason.mdx#revertreasontype)

#### Returns

[`FailureResult`](#failureresult)

***

### from()

> **from**(`isSuccess`, `data`): [`ContractResultType`](#contractresulttype)

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

Create ContractResult from return data and success flag

#### Parameters

##### isSuccess

`boolean`

##### data

`string` | `Uint8Array`\<`ArrayBufferLike`> | [`ReturnDataType`](ReturnData.mdx#returndatatype)

#### Returns

[`ContractResultType`](#contractresulttype)

***

### isFailure()

> **isFailure**(`result`): `result is FailureResult`

Defined in: [src/primitives/ContractResult/index.ts:57](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ContractResult/index.ts#L57)

Check if result is failure (type guard)

#### Parameters

##### result

[`ContractResultType`](#contractresulttype)

#### Returns

`result is FailureResult`

***

### isSuccess()

> **isSuccess**(`result`): `result is SuccessResult`

Defined in: [src/primitives/ContractResult/index.ts:50](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ContractResult/index.ts#L50)

Check if result is successful (type guard)

#### Parameters

##### result

[`ContractResultType`](#contractresulttype)

#### Returns

`result is SuccessResult`

***

### success()

> **success**(`data`): [`SuccessResult`](#successresult)

Defined in: [src/primitives/ContractResult/index.ts:36](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ContractResult/index.ts#L36)

Create successful ContractResult

#### Parameters

##### data

[`ReturnDataType`](ReturnData.mdx#returndatatype)

#### Returns

[`SuccessResult`](#successresult)

***

### unwrap()

> **unwrap**(`result`): [`ReturnDataType`](ReturnData.mdx#returndatatype)

Defined in: [src/primitives/ContractResult/index.ts:64](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ContractResult/index.ts#L64)

Unwrap successful result or throw on failure

#### Parameters

##### result

[`ContractResultType`](#contractresulttype)

#### Returns

[`ReturnDataType`](ReturnData.mdx#returndatatype)

***

### unwrapOr()

> **unwrapOr**(`result`, `defaultValue`): [`ReturnDataType`](ReturnData.mdx#returndatatype)

Defined in: [src/primitives/ContractResult/index.ts:71](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/ContractResult/index.ts#L71)

Unwrap result or return default value on failure

#### Parameters

##### result

[`ContractResultType`](#contractresulttype)

##### defaultValue

[`ReturnDataType`](ReturnData.mdx#returndatatype)

#### Returns

[`ReturnDataType`](ReturnData.mdx#returndatatype)
