@ethereumjs/statemanager / CodeCache
Cache
↳ CodeCache
• new CodeCache(opts)
| Name | Type |
|---|---|
opts |
CacheOpts |
Cache.constructor
• _checkpoints: number = 0
Cache._checkpoints
• _debug: Debugger
Cache._debug
• _diffCache: Map<string, undefined | CodeCacheElement>[] = []
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 code), the element didn’t exist in the cache before.
• _lruCache: undefined | LRUCache<string, CodeCacheElement, unknown>
• _orderedMapCache: undefined | OrderedMap<string, CodeCacheElement>
• _stats: Object
| Name | Type |
|---|---|
dels |
number |
hits |
number |
reads |
number |
size |
number |
writes |
number |
Cache._stats
▸ _saveCachePreState(cacheKeyHex): void
Saves the state of the code cache before making changes to it.
| Name | Type | Description |
|---|---|---|
cacheKeyHex |
string |
Account key for which code is being modified. |
void
▸ checkpoint(): void
Marks the current state of the cache as a checkpoint, which can later be reverted or committed.
void
▸ clear(): void
Clears the cache.
void
▸ commit(): void
Commits the current state of the cache (no effect on trie).
void
▸ del(address): void
Marks code as deleted in the cache.
| Name | Type | Description |
|---|---|---|
address |
Address |
Account address for which code is being fetched. |
void
▸ flush(): [string, CodeCacheElement][]
Flushes the cache by returning codes that have been modified or deleted and resetting the diff cache (at checkpoint height).
[string, CodeCacheElement][]
▸ get(address): undefined | CodeCacheElement
Returns the queried code or undefined if it doesn’t exist.
| Name | Type | Description |
|---|---|---|
address |
Address |
Account address for which code is being fetched. |
undefined | CodeCacheElement
▸ put(address, code): void
Puts code into the cache under its hash.
| Name | Type | Description |
|---|---|---|
address |
Address |
Address of account code is being modified for. |
code |
undefined | Uint8Array |
Bytecode or undefined if code doesn’t exist. |
void
▸ revert(): void
Revert changes to the cache to the last checkpoint (no effect on trie).
void
▸ size(): number
Returns the size of the cache
number
▸ stats(reset?): any
Returns a dictionary with cache statistics.
| Name | Type | Default value | Description |
|---|---|---|---|
reset |
boolean |
true |
Whether to reset statistics after retrieval. |
any
A dictionary with cache statistics.