@@ -32,12 +32,13 @@ var (
32
32
type RecordingKV struct {
33
33
inner * trie.Database
34
34
diskDb ethdb.KeyValueStore
35
+ wasmDb ethdb.KeyValueStore
35
36
readDbEntries map [common.Hash ][]byte
36
37
enableBypass bool
37
38
}
38
39
39
- func newRecordingKV (inner * trie.Database , diskDb ethdb.KeyValueStore ) * RecordingKV {
40
- return & RecordingKV {inner , diskDb , make (map [common.Hash ][]byte ), false }
40
+ func newRecordingKV (inner * trie.Database , diskDb ethdb.KeyValueStore , wasmDb ethdb. KeyValueStore ) * RecordingKV {
41
+ return & RecordingKV {inner , diskDb , wasmDb , make (map [common.Hash ][]byte ), false }
41
42
}
42
43
43
44
func (db * RecordingKV ) Has (key []byte ) (bool , error ) {
@@ -57,10 +58,10 @@ func (db *RecordingKV) Get(key []byte) ([]byte, error) {
57
58
res , err = db .diskDb .Get (key )
58
59
} else if ok , _ := rawdb .IsActivatedAsmKey (key ); ok {
59
60
// Arbitrum: the asm is non-consensus
60
- return db .diskDb .Get (key )
61
+ return db .wasmDb .Get (key )
61
62
} else if ok , _ := rawdb .IsActivatedModuleKey (key ); ok {
62
63
// Arbitrum: the module is non-consensus (only its hash is)
63
- return db .diskDb .Get (key )
64
+ return db .wasmDb .Get (key )
64
65
} else {
65
66
err = fmt .Errorf ("recording KV attempted to access non-hash key %v" , hex .EncodeToString (key ))
66
67
}
@@ -273,7 +274,7 @@ func (r *RecordingDatabase) PrepareRecording(ctx context.Context, lastBlockHeade
273
274
}
274
275
finalDereference := lastBlockHeader // dereference in case of error
275
276
defer func () { r .Dereference (finalDereference ) }()
276
- recordingKeyValue := newRecordingKV (r .db .TrieDB (), r .db .DiskDB ())
277
+ recordingKeyValue := newRecordingKV (r .db .TrieDB (), r .db .DiskDB (), r . db . WasmStore () )
277
278
278
279
recordingStateDatabase := state .NewDatabase (rawdb .NewDatabase (recordingKeyValue ))
279
280
var prevRoot common.Hash
0 commit comments