ethereumjs-monorepo

@ethereumjs/util


@ethereumjs/util / BlockLevelAccessList

Class: BlockLevelAccessList

Defined in: packages/util/src/bal/index.ts:117

In-memory EIP-7928 block access list with canonical RLP/JSON encoding, checkpointing, and mutation helpers used by the VM during execution.

Remarks

Experimental (Amsterdam): public API and behaviour may change on patch releases. See @ethereumjs/vm README section Amsterdam hardfork (experimental) for release ↔ spec tracking.

Constructors

Constructor

new BlockLevelAccessList(accesses): BlockLevelAccessList

Defined in: packages/util/src/bal/index.ts:128

Parameters

accesses

Accesses = {}

Returns

BlockLevelAccessList

Properties

accesses

accesses: Accesses

Defined in: packages/util/src/bal/index.ts:119

Account-level access entries keyed by address.


blockAccessIndex

blockAccessIndex: number

Defined in: packages/util/src/bal/index.ts:121

Current block access index (transaction or system phase) for new change records.

Methods

addAddress()

addAddress(address): void

Defined in: packages/util/src/bal/index.ts:287

Parameters

address

`0x${string}`

Returns

void


addBalanceChange()

addBalanceChange(address, balance, blockAccessIndex, originalBalance?): void

Defined in: packages/util/src/bal/index.ts:378

Parameters

address

`0x${string}`

balance

bigint

blockAccessIndex

number

originalBalance?

bigint

Returns

void


addCodeChange()

addCodeChange(address, code, blockAccessIndex, originalCode?): void

Defined in: packages/util/src/bal/index.ts:435

Parameters

address

`0x${string}`

code

BALByteCodeBytes

blockAccessIndex

number

originalCode?

BALByteCodeBytes

Returns

void


addNonceChange()

addNonceChange(address, nonce, blockAccessIndex): void

Defined in: packages/util/src/bal/index.ts:424

Parameters

address

`0x${string}`

nonce

bigint

blockAccessIndex

number

Returns

void


addStorageRead()

addStorageRead(address, storageKey): void

Defined in: packages/util/src/bal/index.ts:366

Parameters

address

`0x${string}`

storageKey

BALStorageKeyBytes

Returns

void


addStorageWrite()

addStorageWrite(address, storageKey, value, blockAccessIndex, originalValue?): void

Defined in: packages/util/src/bal/index.ts:300

Parameters

address

`0x${string}`

storageKey

BALStorageKeyBytes

value

BALStorageValueBytes

blockAccessIndex

number

originalValue?

BALStorageValueBytes

Returns

void


checkpoint()

checkpoint(): void

Defined in: packages/util/src/bal/index.ts:151

Returns

void


cleanupNetZeroBalanceChanges()

cleanupNetZeroBalanceChanges(): void

Defined in: packages/util/src/bal/index.ts:402

EIP-7928: Remove balance changes for addresses where final balance equals first balance. Call this at the end of each transaction to clean up net-zero balance changes.

Returns

void


cleanupSelfdestructed()

cleanupSelfdestructed(addresses): void

Defined in: packages/util/src/bal/index.ts:551

For selfdestructed accounts, drop state changes while preserving read footprints. Any storageChanges are converted to storageReads. Per EIP-7928, a positive pre-transaction balance reduced to zero via SELFDESTRUCT keeps the balance change.

Parameters

addresses

`0x${string}`[]

Returns

void

Remarks

Experimental (Amsterdam): may change on patch releases.


commit()

commit(): void

Defined in: packages/util/src/bal/index.ts:158

Returns

void


hash()

hash(): Uint8Array

Defined in: packages/util/src/bal/index.ts:147

Header commitment keccak256(serialize()) used as blockAccessListHash.

Returns

Uint8Array

Remarks

Experimental (Amsterdam): may change on patch releases.


raw()

raw(): BALRawBlockAccessList

Defined in: packages/util/src/bal/index.ts:234

Canonical sorted tuple view used for RLP and validation.

Returns

BALRawBlockAccessList

Remarks

Experimental (Amsterdam): may change on patch releases.


revert()

revert(): void

Defined in: packages/util/src/bal/index.ts:164

Returns

void


serialize()

serialize(): Uint8Array

Defined in: packages/util/src/bal/index.ts:138

Canonical RLP encoding of the access list (RLP.encode(raw())).

Returns

Uint8Array

Remarks

Experimental (Amsterdam): may change on patch releases.


toJSON()

toJSON(): BALJSONBlockAccessList

Defined in: packages/util/src/bal/index.ts:485

Converts the internal representation to JSON fixture / Engine API form. Inverse of createBlockLevelAccessListFromJSON.

Returns

BALJSONBlockAccessList

Remarks

Experimental (Amsterdam): may change on patch releases.