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. EVM transaction execution metadata level error
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:
- 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.
- Optimize Contract Code: Refactor your smart contract code to reduce gas consumption during deployment. Consider simplifying complex initialization code.
- Use TEVM Tracing: Utilize TEVM tracing to step through the deployment process and inspect gas usage.
- 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 executeeth_estimateGas
10 times, while TEVM runs it only once. - Use Other Tools: Use other tools such as Foundry. If it works in Foundry, consider opening a bug report.
Example
Param
A human-readable error message.
Param
Additional parameters for the BaseError.
Extends
Constructors
new CodeStoreOutOfGasError()
new CodeStoreOutOfGasError(
message
?,args
?,tag
?):CodeStoreOutOfGasError
Constructs a 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. EVM transaction execution metadata level error
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.
Parameters
• message?: string
= 'Code store out of gas error occurred.'
Human-readable error message.
• args?: CodeStoreOutOfGasErrorParameters
= {}
Additional parameters for the BaseError.
• tag?: string
= 'CodeStoreOutOfGasError'
The tag for the error.
Returns
Overrides
GasLimitExceededError
.constructor
Defined in
packages/errors/src/ethereum/ethereumjs/CodeStoreOutOfGasError.js:77
Properties
_tag
_tag:
string
Same as name, used internally.
Inherited from
Defined in
packages/errors/src/ethereum/BaseError.js:81
cause
cause:
any
Inherited from
Defined in
packages/errors/src/ethereum/BaseError.js:113
code
code:
number
Error code, analogous to the code in JSON RPC error.
Inherited from
Defined in
packages/errors/src/ethereum/BaseError.js:111
details
details:
string
Inherited from
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
Defined in
node_modules/.pnpm/typescript@5.5.4/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
Defined in
node_modules/.pnpm/typescript@5.5.4/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
Defined in
node_modules/.pnpm/typescript@5.5.4/node_modules/typescript/lib/lib.es5.d.ts:1078
version
version:
string
Inherited from
Defined in
packages/errors/src/ethereum/BaseError.js:107
EVMErrorMessage
static
EVMErrorMessage:EvmErrorMessage
=EVMErrorMessage.CODESTORE_OUT_OF_GAS
Defined in
packages/errors/src/ethereum/ethereumjs/CodeStoreOutOfGasError.js:59
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
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/@types+node@22.5.1/node_modules/@types/node/globals.d.ts:67
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.15/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.22/node_modules/bun-types/globals.d.ts:1629
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