@@ -55,6 +55,7 @@ type Database interface {
5555 ActivatedAsm (moduleHash common.Hash ) (asm []byte , err error )
5656 ActivatedModule (moduleHash common.Hash ) (module []byte , err error )
5757 WasmStore () ethdb.KeyValueStore
58+ WasmCacheTag () uint32
5859
5960 // OpenTrie opens the main account trie.
6061 OpenTrie (root common.Hash ) (Trie , error )
@@ -159,13 +160,15 @@ func NewDatabase(db ethdb.Database) Database {
159160// is safe for concurrent use and retains a lot of collapsed RLP trie nodes in a
160161// large memory cache.
161162func NewDatabaseWithConfig (db ethdb.Database , config * trie.Config ) Database {
163+ wasmdb , wasmTag := db .WasmDataBase ()
162164 cdb := & cachingDB {
163165 // Arbitrum only
164166 activatedAsmCache : lru.NewSizeConstrainedCache [common.Hash , []byte ](activatedWasmCacheSize ),
165167 activatedModuleCache : lru.NewSizeConstrainedCache [common.Hash , []byte ](activatedWasmCacheSize ),
168+ wasmTag : wasmTag ,
166169
167170 disk : db ,
168- wasmdb : db . WasmDataBase () ,
171+ wasmdb : wasmdb ,
169172 codeSizeCache : lru.NewCache [common.Hash , int ](codeSizeCacheSize ),
170173 codeCache : lru.NewSizeConstrainedCache [common.Hash , []byte ](codeCacheSize ),
171174 triedb : trie .NewDatabase (db , config ),
@@ -175,13 +178,15 @@ func NewDatabaseWithConfig(db ethdb.Database, config *trie.Config) Database {
175178
176179// NewDatabaseWithNodeDB creates a state database with an already initialized node database.
177180func NewDatabaseWithNodeDB (db ethdb.Database , triedb * trie.Database ) Database {
181+ wasmdb , wasmTag := db .WasmDataBase ()
178182 cdb := & cachingDB {
179183 // Arbitrum only
180184 activatedAsmCache : lru.NewSizeConstrainedCache [common.Hash , []byte ](activatedWasmCacheSize ),
181185 activatedModuleCache : lru.NewSizeConstrainedCache [common.Hash , []byte ](activatedWasmCacheSize ),
186+ wasmTag : wasmTag ,
182187
183188 disk : db ,
184- wasmdb : db . WasmDataBase () ,
189+ wasmdb : wasmdb ,
185190 codeSizeCache : lru.NewCache [common.Hash , int ](codeSizeCacheSize ),
186191 codeCache : lru.NewSizeConstrainedCache [common.Hash , []byte ](codeCacheSize ),
187192 triedb : triedb ,
@@ -193,6 +198,7 @@ type cachingDB struct {
193198 // Arbitrum
194199 activatedAsmCache * lru.SizeConstrainedCache [common.Hash , []byte ]
195200 activatedModuleCache * lru.SizeConstrainedCache [common.Hash , []byte ]
201+ wasmTag uint32
196202
197203 disk ethdb.KeyValueStore
198204 wasmdb ethdb.KeyValueStore
@@ -205,6 +211,10 @@ func (db *cachingDB) WasmStore() ethdb.KeyValueStore {
205211 return db .wasmdb
206212}
207213
214+ func (db * cachingDB ) WasmCacheTag () uint32 {
215+ return db .wasmTag
216+ }
217+
208218// OpenTrie opens the main account trie at a specific root hash.
209219func (db * cachingDB ) OpenTrie (root common.Hash ) (Trie , error ) {
210220 if db .triedb .IsVerkle () {
0 commit comments