InvalidOpcodeError
Represents an invalid bytecode/contract error that occurs when an invalid opcode is encountered during EVM execution. This error is typically encountered when the bytecode contains an opcode that is not recognized by the EVM.
Invalid opcode errors can occur due to:
- Typographical errors in the bytecode.
- Using opcodes that are not supported by the selected EVM version or hardfork.
To debug an invalid opcode error:
- Review Bytecode: Ensure that the bytecode provided is correct and does not contain any invalid opcodes.
- Verify Common Configuration: Ensure you are using a
common
with the correct hardfork and EIPs that support the opcodes used by your contract. - Use TEVM Tracing: Utilize TEVM tracing to step through the bytecode execution and identify where the invalid opcode is encountered.
- Inspect Contract Code: Manually inspect the contract code to ensure it compiles correctly and does not include any invalid opcodes.
Example
Param
A human-readable error message.
Param
Additional parameters for the BaseError.
Extends
Constructors
new InvalidOpcodeError()
new InvalidOpcodeError(
message
?,args
?):InvalidOpcodeError
Constructs an InvalidOpcodeError. Represents an invalid bytecode/contract error that occurs when an invalid opcode is encountered during EVM execution. This error is typically encountered when the bytecode contains an opcode that is not recognized by the EVM.
Invalid opcode errors can occur due to:
- Typographical errors in the bytecode.
- Using opcodes that are not supported by the selected EVM version or hardfork.
To debug an invalid opcode error:
- Review Bytecode: Ensure that the bytecode provided is correct and does not contain any invalid opcodes.
- Verify Common Configuration: Ensure you are using a
common
with the correct hardfork and EIPs that support the opcodes used by your contract. - Use TEVM Tracing: Utilize TEVM tracing to step through the bytecode execution and identify where the invalid opcode is encountered.
- Inspect Contract Code: Manually inspect the contract code to ensure it compiles correctly and does not include any invalid opcodes.
Parameters
• message?: string
= 'Invalid opcode error occurred.'
Human-readable error message.
• args?: InvalidOpcodeErrorParameters
= {}
Additional parameters for the BaseError.
Returns
Overrides
Source
packages/errors/src/ethereum/ethereumjs/InvalidOpcodeError.js:73
Properties
_tag
_tag:
string
='ExecutionError'
Same as name, used internally.
Inherited from
Source
packages/errors/src/ethereum/ExecutionErrorError.js:76
cause
cause:
any
Inherited from
Source
packages/errors/src/ethereum/BaseError.js:114
code
code:
number
Error code, analogous to the code in JSON RPC error.
Inherited from
Source
packages/errors/src/ethereum/BaseError.js:112
details
details:
string
Inherited from
Source
packages/errors/src/ethereum/BaseError.js:91
docsPath
docsPath:
undefined
|string
Path to the documentation for this error.
Inherited from
Source
packages/errors/src/ethereum/BaseError.js:96
message
message:
string
Human-readable error message.
Inherited from
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
Source
packages/errors/src/ethereum/ExecutionErrorError.js:69
metaMessages
metaMessages:
undefined
|string
[]
Additional meta messages for more context.
Inherited from
Source
packages/errors/src/ethereum/BaseError.js:100
name
name:
"ExecutionError"
='ExecutionError'
The name of the error, used to discriminate errors.
Inherited from
Source
packages/errors/src/ethereum/ExecutionErrorError.js:82
shortMessage
shortMessage:
string
Inherited from
Source
packages/errors/src/ethereum/BaseError.js:104
stack?
optional
stack:string
Inherited from
Source
node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es5.d.ts:1078
version
version:
string
Inherited from
Source
packages/errors/src/ethereum/BaseError.js:108
EVMErrorMessage
static
EVMErrorMessage:EvmErrorMessage
=EVMErrorMessage.INVALID_OPCODE
Source
packages/errors/src/ethereum/ethereumjs/InvalidOpcodeError.js:54
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
ExecutionError
.prepareStackTrace
Source
node_modules/.pnpm/@types+node@20.14.2/node_modules/@types/node/globals.d.ts:28
stackTraceLimit
static
stackTraceLimit:number
Inherited from
ExecutionError
.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
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
ExecutionError
.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
ExecutionError
.captureStackTrace
Source
node_modules/.pnpm/bun-types@1.1.12/node_modules/bun-types/globals.d.ts:1613