@ethereumjs/statemanager
Version:
An Ethereum statemanager implementation
36 lines • 1.24 kB
TypeScript
export type CacheType = (typeof CacheType)[keyof typeof CacheType];
export declare const CacheType: {
readonly LRU: "lru";
readonly ORDERED_MAP: "ordered_map";
};
export interface CacheOpts {
/**
* Size of the cache (only for LRU cache)
*
* Default: 100000 (account cache) / 20000 (storage cache) / 20000 (code cache)
*
* Note: the cache/trie interplay mechanism is designed in a way that
* the theoretical number of max modified accounts between two flush operations
* should be smaller than the cache size, otherwise the cache will "forget" the
* old modifications resulting in an incomplete set of trie-flushed accounts.
*/
size: number;
/**
* Cache type to use.
*
* Available options:
*
* ORDERED_MAP: Cache with no fixed upper bound and dynamic allocation,
* use for dynamic setups like testing or similar.
*
* LRU: LRU cache with pre-allocation of memory and a fixed size.
* Use for larger and more persistent caches.
*/
type: CacheType;
}
export interface CachesStateManagerOpts {
account?: Partial<CacheOpts>;
code?: Partial<CacheOpts>;
storage?: Partial<CacheOpts>;
}
//# sourceMappingURL=types.d.ts.map