StaticStateChangeError
Represents an error that occurs when a state-changing operation is attempted in a static context. This error is typically encountered when a contract attempts to modify the state during a static call.
Static state change errors can occur due to:
- Attempting to modify the state in a static call.
- Executing state-changing operations in a read-only context.
- Bugs in the smart contract code leading to unintended state changes.
To debug a static state change error:
- Review Contract Logic: Ensure that state-changing operations are not executed in static calls or read-only contexts.
- Check Function Modifiers: Verify that the function modifiers and visibility settings are correctly applied to prevent state changes in static contexts.
- Use TEVM Tracing: Utilize TEVM tracing to step through the contract execution and identify where the state change is attempted in a static context.
- Inspect Contract Code: Manually inspect the contract code to ensure that state changes are correctly controlled and executed only in appropriate contexts.
Example
Param
A human-readable error message.
Param
Additional parameters for the BaseError.
Extends
Constructors
new StaticStateChangeError()
new StaticStateChangeError(
message
?,args
?):StaticStateChangeError
Constructs a StaticStateChangeError.
Parameters
• message?: string
= 'Static state change error occurred.'
Human-readable error message.
• args?: StaticStateChangeErrorParameters
= {}
Additional parameters for the BaseError.
Returns
Overrides
Source
packages/errors/src/ethereum/ethereumjs/StaticStateChangeError.js:62
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:110
code
code:
number
Error code, analogous to the code in JSON RPC error.
Inherited from
Source
packages/errors/src/ethereum/BaseError.js:108
details
details:
string
Inherited from
Source
packages/errors/src/ethereum/BaseError.js:87
docsPath
docsPath:
undefined
|string
Path to the documentation for this error.
Inherited from
Source
packages/errors/src/ethereum/BaseError.js:92
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:96
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:100
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:104
EVMErrorMessage
static
EVMErrorMessage:EvmErrorMessage
=EVMErrorMessage.STATIC_STATE_CHANGE
Source
packages/errors/src/ethereum/ethereumjs/StaticStateChangeError.js:55
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:133
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