From 48c6e62e3a6ee6a6805fa4e81af2e790dacbf77a Mon Sep 17 00:00:00 2001 From: Guillaume Ballet <3272758+gballet@users.noreply.github.com> Date: Tue, 5 Dec 2023 16:53:46 +0100 Subject: [PATCH] fix OpenStorageTrie: return an error instead of panicking if the account tree not a verkle tree (#321) --- core/state/database.go | 2 +- core/state/trie_prefetcher.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/state/database.go b/core/state/database.go index 2ff85a4c4724..c7e6456af369 100644 --- a/core/state/database.go +++ b/core/state/database.go @@ -413,7 +413,7 @@ func (db *cachingDB) OpenStorageTrie(stateRoot common.Hash, address common.Addre case *trie.TransitionTrie: return trie.NewTransitionTree(mpt.(*trie.SecureTrie), self.Overlay(), true), nil default: - panic("unexpected trie type") + return nil, errors.New("expected a verkle account tree, and found another type") } } mpt, err := db.openStorageMPTrie(stateRoot, address, root, nil) diff --git a/core/state/trie_prefetcher.go b/core/state/trie_prefetcher.go index 6c5c158cc239..4521736c7beb 100644 --- a/core/state/trie_prefetcher.go +++ b/core/state/trie_prefetcher.go @@ -302,7 +302,7 @@ func (sf *subfetcher) loop() { } sf.trie = trie } else { - trie, err := sf.db.OpenStorageTrie(sf.state, sf.addr, sf.root, nil /* safe to set to nil for now, as there is no prefetcher for verkle */) + trie, err := sf.db.OpenStorageTrie(sf.state, sf.addr, sf.root, sf.trie) if err != nil { log.Warn("Trie prefetcher failed opening trie", "root", sf.root, "err", err) return