Skip to content

CodeSizeExceedsMaximumError

Represents an calldata/creation error that occurs when the code size exceeds the maximum limit. This error is typically encountered when the contract size to be deployed exceeds the maximum allowed size.

Code size exceeds maximum errors can occur due to:

  • Deployment of contracts with large bytecode.
  • Contracts with a significant amount of embedded data or logic.
  • Incorrect settings for contract size limits in TEVM configuration.

To debug a code size exceeds maximum error:

  1. Review Contract Size: Ensure that the contract bytecode size is within the allowed limits. Consider refactoring the contract to reduce its size.
  2. Optimize Contract Code: Break down large contracts into smaller, modular contracts and use libraries or inheritance to share code.
  3. Configure TEVM Memory Client: When creating a TEVM MemoryClient instance, set allowUnlimitedContractSize to true if necessary. Note that even with this setting, you may still encounter block limits.
    import { createMemoryClient } from 'tevm'
    const client = createMemoryClient({ allowUnlimitedContractSize: true })
  4. Use TEVM Tracing: Utilize TEVM tracing to step through the contract deployment process and inspect the bytecode size.
  5. Use Other Tools: Use other tools to analyze and optimize contract bytecode.

Example

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

Param

A human-readable error message.

Param

Additional parameters for the BaseError.

Extends

Constructors

new CodeSizeExceedsMaximumError()

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

Constructs a CodeSizeExceedsMaximumError. Represents an calldata/creation error that occurs when the code size exceeds the maximum limit. This error is typically encountered when the contract size to be deployed exceeds the maximum allowed size.

Code size exceeds maximum errors can occur due to:

  • Deployment of contracts with large bytecode.
  • Contracts with a significant amount of embedded data or logic.
  • Incorrect settings for contract size limits in TEVM configuration.

To debug a code size exceeds maximum error:

  1. Review Contract Size: Ensure that the contract bytecode size is within the allowed limits. Consider refactoring the contract to reduce its size.
  2. Optimize Contract Code: Break down large contracts into smaller, modular contracts and use libraries or inheritance to share code.
  3. Configure TEVM Memory Client: When creating a TEVM MemoryClient instance, set allowUnlimitedContractSize to true if necessary. Note that even with this setting, you may still encounter block limits.
    import { createMemoryClient } from 'tevm'
    const client = createMemoryClient({ allowUnlimitedContractSize: true })
  4. Use TEVM Tracing: Utilize TEVM tracing to step through the contract deployment process and inspect the bytecode size.
  5. Use Other Tools: Use other tools to analyze and optimize contract bytecode.

Parameters

message?: string = 'Code size exceeds maximum error occurred.'

Human-readable error message.

args?: CodeSizeExceedsMaximumErrorParameters = {}

Additional parameters for the BaseError.

tag?: string = 'CodeSizeExceedsMaximumError'

The tag for the error.

Returns

CodeSizeExceedsMaximumError

Overrides

GasLimitExceededError.constructor

Defined in

packages/errors/src/ethereum/ethereumjs/CodeSizeExceedsMaximumError.js:89

Properties

_tag

_tag: string

Same as name, used internally.

Inherited from

GasLimitExceededError._tag

Defined in

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


cause

cause: any

Inherited from

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

GasLimitExceededError.code

Defined in

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


details

details: string

Inherited from

GasLimitExceededError.details

Defined in

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


docsPath

docsPath: undefined | string

Path to the documentation for this error.

Inherited from

GasLimitExceededError.docsPath

Defined in

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


message

message: string

Human-readable error message.

Inherited from

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

GasLimitExceededError.metaMessages

Defined in

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


name

name: string

The name of the error, used to discriminate errors.

Inherited from

GasLimitExceededError.name

Defined in

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


shortMessage

shortMessage: string

Inherited from

GasLimitExceededError.shortMessage

Defined in

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


stack?

optional stack: string

Inherited from

GasLimitExceededError.stack

Defined in

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


version

version: string

Inherited from

GasLimitExceededError.version

Defined in

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


EVMErrorMessage

static EVMErrorMessage: EvmErrorMessage = EVMErrorMessage.CODESIZE_EXCEEDS_MAXIMUM

Defined in

packages/errors/src/ethereum/ethereumjs/CodeSizeExceedsMaximumError.js:61


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

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

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

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

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

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

GasLimitExceededError.captureStackTrace

Defined in

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