diff --git a/triedb/database.go b/triedb/database.go index e2f4334d6e..d2637bd909 100644 --- a/triedb/database.go +++ b/triedb/database.go @@ -375,3 +375,12 @@ func (db *Database) IsVerkle() bool { func (db *Database) Disk() ethdb.Database { return db.disk } + +// SnapshotCompleted returns the indicator if the snapshot is completed. +func (db *Database) SnapshotCompleted() bool { + pdb, ok := db.backend.(*pathdb.Database) + if !ok { + return false + } + return pdb.SnapshotCompleted() +} diff --git a/triedb/pathdb/database.go b/triedb/pathdb/database.go index 423b921d47..ae607413f2 100644 --- a/triedb/pathdb/database.go +++ b/triedb/pathdb/database.go @@ -681,3 +681,8 @@ func (db *Database) StorageIterator(root common.Hash, account common.Hash, seek } return newFastStorageIterator(db, root, account, seek) } + +// SnapshotCompleted returns the indicator if the snapshot generation is completed. +func (db *Database) SnapshotCompleted() bool { + return !db.waitSync && db.tree.bottom().genComplete() +}