Skip to content

EvmRevertError

Represents an execution error that occurs when a transaction is reverted during EVM execution. This error is typically encountered when a smart contract execution is reverted due to unmet conditions or failed assertions.

EvmRevert errors can occur due to:

  • Failed assertions in the smart contract code.
  • Conditions in the code that trigger a revert.
  • Insufficient gas to complete the transaction.
  • Contract logic that intentionally reverts under certain conditions.

To debug a revert error:

  1. Review Revert Conditions: Ensure that the conditions in the contract code that trigger reverts are properly handled and expected.
  2. Check Assertions: Verify that all assertions in the code are valid and necessary.
  3. Use TEVM Tracing: Utilize TEVM tracing to step through the contract execution and identify where the revert occurs.
  4. Inspect Contract Logic: Manually inspect the contract code to understand why the revert is being triggered and ensure it is intentional.

Example

import { EvmRevertError } from '@tevm/errors'
try {
// Some operation that can throw a EvmRevertError
} catch (error) {
if (error instanceof EvmRevertError) {
console.error(error.message);
// Handle the revert error
}
}

Param

A human-readable error message.

Param

Additional parameters for the BaseError.

Extends

Constructors

new EvmRevertError()

new EvmRevertError(message?, args?, tag?): EvmRevertError

Constructs a EvmRevertError. Represents an execution error that occurs when a transaction is reverted during EVM execution. This error is typically encountered when a smart contract execution is reverted due to unmet conditions or failed assertions.

EvmRevert errors can occur due to:

  • Failed assertions in the smart contract code.
  • Conditions in the code that trigger a revert.
  • Insufficient gas to complete the transaction.
  • Contract logic that intentionally reverts under certain conditions.

To debug a revert error:

  1. Review Revert Conditions: Ensure that the conditions in the contract code that trigger reverts are properly handled and expected.
  2. Check Assertions: Verify that all assertions in the code are valid and necessary.
  3. Use TEVM Tracing: Utilize TEVM tracing to step through the contract execution and identify where the revert occurs.
  4. Inspect Contract Logic: Manually inspect the contract code to understand why the revert is being triggered and ensure it is intentional.

Parameters

message?: string = 'Revert error occurred.'

Human-readable error message.

args?: EvmRevertErrorParameters = {}

Additional parameters for the BaseError.

tag?: string = 'EvmRevertError'

The tag for the error.

Returns

EvmRevertError

Overrides

RevertError.constructor

Defined in

packages/errors/src/ethereum/ethereumjs/EvmRevertError.js:78

Properties

_tag

_tag: string

Same as name, used internally.

Inherited from

RevertError._tag

Defined in

packages/errors/src/ethereum/BaseError.js:81


cause

cause: any

Inherited from

RevertError.cause

Defined in

packages/errors/src/ethereum/BaseError.js:113


code

code: number

Error code, analogous to the code in JSON RPC error.

Inherited from

RevertError.code

Defined in

packages/errors/src/ethereum/BaseError.js:111


details

details: string

Inherited from

RevertError.details

Defined in

packages/errors/src/ethereum/BaseError.js:90


docsPath

docsPath: undefined | string

Path to the documentation for this error.

Inherited from

RevertError.docsPath

Defined in

packages/errors/src/ethereum/BaseError.js:95


message

message: string

Human-readable error message.

Inherited from

RevertError.message

Defined in

node_modules/.pnpm/typescript@5.5.2/node_modules/typescript/lib/lib.es5.d.ts:1077


metaMessages

metaMessages: undefined | string[]

Additional meta messages for more context.

Inherited from

RevertError.metaMessages

Defined in

packages/errors/src/ethereum/BaseError.js:99


name

name: string

The name of the error, used to discriminate errors.

Inherited from

RevertError.name

Defined in

node_modules/.pnpm/typescript@5.5.2/node_modules/typescript/lib/lib.es5.d.ts:1076


shortMessage

shortMessage: string

Inherited from

RevertError.shortMessage

Defined in

packages/errors/src/ethereum/BaseError.js:103


stack?

optional stack: string

Inherited from

RevertError.stack

Defined in

node_modules/.pnpm/typescript@5.5.2/node_modules/typescript/lib/lib.es5.d.ts:1078


version

version: string

Inherited from

RevertError.version

Defined in

packages/errors/src/ethereum/BaseError.js:107


EVMErrorMessage

static EVMErrorMessage: EvmErrorMessage = EVMErrorMessage.REVERT

Defined in

packages/errors/src/ethereum/ethereumjs/EvmRevertError.js:56


prepareStackTrace()?

static optional prepareStackTrace: (err, stackTraces) => any

Optional override for formatting stack traces

See

https://v8.dev/docs/stack-trace-api#customizing-stack-traces

Parameters

err: Error

stackTraces: CallSite[]

Returns

any

Inherited from

RevertError.prepareStackTrace

Defined in

node_modules/.pnpm/@types+node@20.14.8/node_modules/@types/node/globals.d.ts:28


stackTraceLimit

static stackTraceLimit: number

Inherited from

RevertError.stackTraceLimit

Defined in

node_modules/.pnpm/@types+node@20.14.8/node_modules/@types/node/globals.d.ts:30

Methods

walk()

walk(fn?): unknown

Walks through the error chain.

Parameters

fn?: Function

A function to execute on each error in the chain.

Returns

unknown

The first error that matches the function, or the original error.

Inherited from

RevertError.walk

Defined in

packages/errors/src/ethereum/BaseError.js:136


captureStackTrace()

captureStackTrace(targetObject, constructorOpt)

static captureStackTrace(targetObject, constructorOpt?): void

Create .stack property on a target object

Parameters

targetObject: object

constructorOpt?: Function

Returns

void

Inherited from

RevertError.captureStackTrace

Defined in

node_modules/.pnpm/@types+node@20.14.8/node_modules/@types/node/globals.d.ts:21

captureStackTrace(targetObject, constructorOpt)

static captureStackTrace(targetObject, constructorOpt?): void

Create .stack property on a target object

Parameters

targetObject: object

constructorOpt?: Function

Returns

void

Inherited from

RevertError.captureStackTrace

Defined in

node_modules/.pnpm/@types+node@22.1.0/node_modules/@types/node/globals.d.ts:22

captureStackTrace(targetObject, constructorOpt)

static captureStackTrace(targetObject, constructorOpt?): void

Create .stack property on a target object

Parameters

targetObject: object

constructorOpt?: Function

Returns

void

Inherited from

RevertError.captureStackTrace

Defined in

node_modules/.pnpm/bun-types@1.1.18/node_modules/bun-types/globals.d.ts:1613

captureStackTrace(targetObject, constructorOpt)

static captureStackTrace(targetObject, constructorOpt?): void

Create .stack property on a target object

Parameters

targetObject: object

constructorOpt?: Function

Returns

void

Inherited from

RevertError.captureStackTrace

Defined in

node_modules/.pnpm/@types+node@20.12.14/node_modules/@types/node/globals.d.ts:21