Skip to content

CodeStoreOutOfGasError

Represents an error that occurs when a transaction runs out of gas during code storage. This error is typically encountered when the gas provided for storing code is insufficient to complete its execution.

Code store out of gas errors can occur due to:

  • Insufficient gas provided for storing large contracts.
  • Incorrect estimation of gas required for storing code.
  • Contracts with high gas consumption during the deployment phase.
  • Non-deterministic gas usage during code storage.
  • If TEVM submitted the transaction using createTransaction: true and the account being used runs out of gas.

To debug a code store out of gas error:

  1. Review Gas Estimates: Ensure that the gas estimate for your transaction is accurate and sufficient, especially for large contracts. If you provided explicit gas-related parameters, double-check their values.
  2. Optimize Contract Code: Refactor your smart contract code to reduce gas consumption during deployment. Consider simplifying complex initialization code.
  3. Use TEVM Tracing: Utilize TEVM tracing to step through the deployment process and inspect gas usage.
  4. Estimate Gas Multiple Times: If using TEVM gas estimations, it might make sense to estimate gas many times and take the worst case to set gasPrice. Most nodes execute eth_estimateGas 10 times, while TEVM runs it only once.
  5. Use Other Tools: Use other tools such as Foundry. If it works in Foundry, consider opening a bug report.

Example

import { CodeStoreOutOfGasError } from '@tevm/errors'
try {
// Some operation that can throw a CodeStoreOutOfGasError
} catch (error) {
if (error instanceof CodeStoreOutOfGasError) {
console.error(error.message);
// Handle the code store out of gas error
}
}

Param

A human-readable error message.

Param

Additional parameters for the BaseError.

Extends

Constructors

new CodeStoreOutOfGasError()

new CodeStoreOutOfGasError(message?, args?): CodeStoreOutOfGasError

Constructs a CodeStoreOutOfGasError.

Parameters

message?: string= 'Code store out of gas error occurred.'

Human-readable error message.

args?: CodeStoreOutOfGasErrorParameters= {}

Additional parameters for the BaseError.

Returns

CodeStoreOutOfGasError

Overrides

GasLimitExceededError.constructor

Source

packages/errors/src/ethereum/ethereumjs/CodeStoreOutOfGasError.js:65

Properties

_tag

_tag: string = 'GasLimitExceeded'

Same as name, used internally.

Inherited from

GasLimitExceededError._tag

Source

packages/errors/src/ethereum/GasLimitExceededError.js:76


cause

cause: any

Inherited from

GasLimitExceededError.cause

Source

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


code

code: number

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

Inherited from

GasLimitExceededError.code

Source

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


details

details: string

Inherited from

GasLimitExceededError.details

Source

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


docsPath

docsPath: undefined | string

Path to the documentation for this error.

Inherited from

GasLimitExceededError.docsPath

Source

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


message

message: string

Human-readable error message.

Inherited from

GasLimitExceededError.message

Source

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


meta

meta: undefined | object

Optional object containing additional information about the error.

Inherited from

GasLimitExceededError.meta

Source

packages/errors/src/ethereum/GasLimitExceededError.js:68


metaMessages

metaMessages: undefined | string[]

Additional meta messages for more context.

Inherited from

GasLimitExceededError.metaMessages

Source

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


name

name: string = 'GasLimitExceeded'

The name of the error, used to discriminate errors.

Inherited from

GasLimitExceededError.name

Source

packages/errors/src/ethereum/GasLimitExceededError.js:83


shortMessage

shortMessage: string

Inherited from

GasLimitExceededError.shortMessage

Source

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


stack?

optional stack: string

Inherited from

GasLimitExceededError.stack

Source

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


version

version: string

Inherited from

GasLimitExceededError.version

Source

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


EVMErrorMessage

static EVMErrorMessage: EvmErrorMessage = EVMErrorMessage.CODESTORE_OUT_OF_GAS

Source

packages/errors/src/ethereum/ethereumjs/CodeStoreOutOfGasError.js:58


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

Source

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


stackTraceLimit

static stackTraceLimit: number

Inherited from

GasLimitExceededError.stackTraceLimit

Source

node_modules/.pnpm/@types+node@20.14.2/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

Source

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


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

Source

node_modules/.pnpm/@types+node@20.14.2/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

Source

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