@ethereumjs/statemanager / StorageCache
Cache
↳ StorageCache
• new StorageCache(opts)
| Name | Type |
|---|---|
opts |
CacheOpts |
Cache.constructor
• _checkpoints: number = 0
Cache._checkpoints
• _debug: Debugger
Cache._debug
• _diffCache: Map<string, DiffStorageCacheMap>[] = []
Diff cache collecting the state of the cache at the beginning of checkpoint height (respectively: before a first modification)
If the whole cache element is undefined (in contrast to the account), the element didn’t exist in the cache before.
• _lruCache: undefined | LRUCache<string, StorageCacheMap, unknown>
• _orderedMapCache: undefined | OrderedMap<string, StorageCacheMap>
• _stats: Object
| Name | Type |
|---|---|
dels |
number |
hits |
number |
reads |
number |
size |
number |
writes |
number |
Cache._stats
▸ _saveCachePreState(addressHex, keyHex): void
| Name | Type |
|---|---|
addressHex |
string |
keyHex |
string |
void
▸ checkpoint(): void
Marks current state of cache as checkpoint, which can later on be reverted or committed.
void
▸ clear(): void
Clears cache.
void
▸ clearContractStorage(address): void
Deletes all storage slots for address from the cache
| Name | Type |
|---|---|
address |
Address |
void
▸ commit(): void
Commits to current state of cache (no effect on trie).
void
▸ del(address, key): void
Marks storage key for address as deleted in cache.
| Name | Type | Description |
|---|---|---|
address |
Address |
Address |
key |
Uint8Array |
Storage key |
void
▸ dump(address): undefined | StorageCacheMap
Dumps the RLP-encoded storage values for an account specified by address.
| Name | Type | Description |
|---|---|---|
address |
Address |
The address of the account to return storage for |
undefined | StorageCacheMap
account or undefined if the account is not in the cache▸ flush(): [string, string, undefined | Uint8Array][]
Flushes cache by returning storage slots that have been modified or deleted and resetting the diff cache (at checkpoint height).
[string, string, undefined | Uint8Array][]
▸ get(address, key): undefined | Uint8Array
Returns the queried slot as the RLP encoded storage value hexToBytes(‘0x80’): slot is known to be empty undefined: slot is not in cache
| Name | Type | Description |
|---|---|---|
address |
Address |
Address of account |
key |
Uint8Array |
Storage key |
undefined | Uint8Array
Storage value or undefined
▸ put(address, key, value): void
Puts storage value to cache under address_key cache key.
| Name | Type | Description |
|---|---|---|
address |
Address |
Account address |
key |
Uint8Array |
Storage key |
value |
Uint8Array |
- |
void
▸ revert(): void
Revert changes to cache last checkpoint (no effect on trie).
void
▸ size(): number
Returns the size of the cache
number
▸ stats(reset?): Object
Returns a dict with cache stats
| Name | Type | Default value |
|---|---|---|
reset |
boolean |
true |
Object
| Name | Type |
|---|---|
dels |
number |
hits |
number |
reads |
number |
size |
number |
writes |
number |