diff --git a/packages/evm/src/interpreter.ts b/packages/evm/src/interpreter.ts index 962b07427a..b5c592ba35 100644 --- a/packages/evm/src/interpreter.ts +++ b/packages/evm/src/interpreter.ts @@ -846,6 +846,7 @@ export class Interpreter { isStatic: this._env.isStatic, depth: this._env.depth + 1, blobVersionedHashes: this._env.blobVersionedHashes, + accessWitness: this._env.accessWitness, }) return this._baseCall(msg) @@ -870,6 +871,7 @@ export class Interpreter { depth: this._env.depth + 1, authcallOrigin: this._env.address, blobVersionedHashes: this._env.blobVersionedHashes, + accessWitness: this._env.accessWitness, }) return this._baseCall(msg) @@ -894,6 +896,7 @@ export class Interpreter { isStatic: this._env.isStatic, depth: this._env.depth + 1, blobVersionedHashes: this._env.blobVersionedHashes, + accessWitness: this._env.accessWitness, }) return this._baseCall(msg) @@ -919,6 +922,7 @@ export class Interpreter { isStatic: true, depth: this._env.depth + 1, blobVersionedHashes: this._env.blobVersionedHashes, + accessWitness: this._env.accessWitness, }) return this._baseCall(msg) @@ -945,6 +949,7 @@ export class Interpreter { delegatecall: true, depth: this._env.depth + 1, blobVersionedHashes: this._env.blobVersionedHashes, + accessWitness: this._env.accessWitness, }) return this._baseCall(msg) diff --git a/packages/util/src/account.ts b/packages/util/src/account.ts index b74b493f7a..0397805c7e 100644 --- a/packages/util/src/account.ts +++ b/packages/util/src/account.ts @@ -84,7 +84,7 @@ export class Account { if (this._balance !== null) { return this._balance } else { - throw Error(`bonce=${this._balance} not loaded`) + throw Error(`balance=${this._balance} not loaded`) } } set balance(_balance: bigint) { @@ -393,6 +393,15 @@ export class Account { * "An account is considered empty when it has no code and zero nonce and zero balance." */ isEmpty(): boolean { + // helpful for determination in partial accounts + if ( + (this._balance !== null && this.balance !== BIGINT_0) || + (this._nonce === null && this.nonce !== BIGINT_0) || + (this._codeHash !== null && !equalsBytes(this.codeHash, KECCAK256_NULL)) + ) { + return false + } + return ( this.balance === BIGINT_0 && this.nonce === BIGINT_0 &&