Skip to main content
@tevm/voltaire
@tevm/voltaire / primitives/StorageDiff

primitives/StorageDiff

Type Aliases

StorageChange

StorageChange = object
Defined in: src/primitives/StorageDiff/StorageDiffType.ts:11 Storage slot change for a single account Tracks before/after values for storage slots. null indicates slot didn’t exist (before) or was deleted (after).

Properties

from
readonly from: StorageValueType | null
Defined in: src/primitives/StorageDiff/StorageDiffType.ts:12
to
readonly to: StorageValueType | null
Defined in: src/primitives/StorageDiff/StorageDiffType.ts:13

StorageDiffType

StorageDiffType = object
Defined in: src/primitives/StorageDiff/StorageDiffType.ts:32 Storage changes for an account during transaction execution Maps storage slots to their before/after values. Used for state diff analysis, particularly with debug_traceTransaction.

Example

const diff: StorageDiffType = {
  address: myAddress,
  changes: new Map([
    [{ address: myAddress, slot: 0n }, { from: oldValue, to: newValue }],
  ]),
};

Properties

address
readonly address: AddressType
Defined in: src/primitives/StorageDiff/StorageDiffType.ts:36 Contract address for these storage changes
changes
readonly changes: ReadonlyMap<StorageKeyType, StorageChange>
Defined in: src/primitives/StorageDiff/StorageDiffType.ts:43 Map of storage slot changes Key: StorageKey (address + slot) Value: Before/after storage values

Variables

StorageDiff

const StorageDiff: object
Defined in: src/primitives/StorageDiff/index.ts:65

Type Declaration

from()
from: (address, changes) => StorageDiffType = _from
Create StorageDiff from address and changes
Parameters
address
AddressType Contract address
changes
Storage changes Map<StorageKeyType, StorageChange> | [StorageKeyType, StorageChange][]
Returns
StorageDiffType StorageDiff
Example
const diff = StorageDiff.from(address, new Map([[key, { from: null, to: value }]]));
const diff2 = StorageDiff.from(address, [[key, { from: oldVal, to: newVal }]]);
getChange()
getChange: (diff, key) => StorageChange | undefined
Parameters
diff
StorageDiffType | [AddressType, Map<StorageKeyType, StorageChange>]
key
StorageKeyType
Returns
StorageChange | undefined
getKeys()
getKeys: (diff) => StorageKeyType[]
Parameters
diff
StorageDiffType | [AddressType, Map<StorageKeyType, StorageChange>]
Returns
StorageKeyType[]
size()
size: (diff) => number
Parameters
diff
StorageDiffType | [AddressType, Map<StorageKeyType, StorageChange>]
Returns
number

Functions

_getChange()

_getChange(diff, key): StorageChange | undefined
Defined in: src/primitives/StorageDiff/getChange.js:16 Get change for a specific storage slot

Parameters

diff
StorageDiffType Storage diff
key
StorageKeyType Storage key to look up

Returns

StorageChange | undefined Storage change or undefined

Example

const change = StorageDiff.getChange(diff, storageKey);
if (change) {
  console.log(`${change.from} -> ${change.to}`);
}

_getKeys()

_getKeys(diff): StorageKeyType[]
Defined in: src/primitives/StorageDiff/getKeys.js:15 Get all storage keys that changed

Parameters

diff
StorageDiffType Storage diff

Returns

StorageKeyType[] Array of storage keys

Example

const keys = StorageDiff.getKeys(diff);
for (const key of keys) {
  console.log(`Slot ${key.slot} changed`);
}

_size()

_size(diff): number
Defined in: src/primitives/StorageDiff/size.js:13 Get number of storage slots that changed

Parameters

diff
StorageDiffType Storage diff

Returns

number Number of changed slots

Example

const count = StorageDiff.size(diff);
console.log(`${count} storage slots changed`);

from()

from(address, changes): StorageDiffType
Defined in: src/primitives/StorageDiff/from.js:14 Create StorageDiff from address and changes

Parameters

address
AddressType Contract address
changes
Storage changes Map<StorageKeyType, StorageChange> | [StorageKeyType, StorageChange][]

Returns

StorageDiffType StorageDiff

Example

const diff = StorageDiff.from(address, new Map([[key, { from: null, to: value }]]));
const diff2 = StorageDiff.from(address, [[key, { from: oldVal, to: newVal }]]);

getChange()

getChange(diff, key): StorageChange | undefined
Defined in: src/primitives/StorageDiff/index.ts:15

Parameters

diff
StorageDiffType | [AddressType, Map<StorageKeyType, StorageChange>]
key
StorageKeyType

Returns

StorageChange | undefined

getKeys()

getKeys(diff): StorageKeyType[]
Defined in: src/primitives/StorageDiff/index.ts:31

Parameters

diff
StorageDiffType | [AddressType, Map<StorageKeyType, StorageChange>]

Returns

StorageKeyType[]

size()

size(diff): number
Defined in: src/primitives/StorageDiff/index.ts:46

Parameters

diff
StorageDiffType | [AddressType, Map<StorageKeyType, StorageChange>]

Returns

number