feat(store/v2): add SetInitialVersion in SC (#18665)

This commit is contained in:
cool-developer 2023-12-09 17:31:21 -05:00 committed by GitHub
parent 3ba1c5bf26
commit cc9d8526d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 19 additions and 5 deletions

View File

@ -75,6 +75,12 @@ func (t *IavlTree) GetLatestVersion() uint64 {
return uint64(t.tree.Version())
}
// SetInitialVersion sets the initial version of the database.
func (t *IavlTree) SetInitialVersion(version uint64) error {
t.tree.SetInitialVersion(version)
return nil
}
// Prune prunes all versions up to and including the provided version.
func (t *IavlTree) Prune(version uint64) error {
return t.tree.DeleteVersionsTo(int64(version))

View File

@ -116,6 +116,16 @@ func (c *CommitStore) Commit() ([]store.StoreInfo, error) {
return storeInfos, nil
}
func (c *CommitStore) SetInitialVersion(version uint64) error {
for _, tree := range c.multiTrees {
if err := tree.SetInitialVersion(version); err != nil {
return err
}
}
return nil
}
func (c *CommitStore) GetProof(storeKey string, version uint64, key []byte) (*ics23.CommitmentProof, error) {
tree, ok := c.multiTrees[storeKey]
if !ok {

View File

@ -20,6 +20,7 @@ type Tree interface {
WorkingHash() []byte
LoadVersion(version uint64) error
Commit() ([]byte, error)
SetInitialVersion(version uint64) error
GetProof(version uint64, key []byte) (*ics23.CommitmentProof, error)
Prune(version uint64) error
Export(version uint64) (Exporter, error)

View File

@ -72,6 +72,7 @@ type Committer interface {
GetLatestVersion() (uint64, error)
LoadVersion(targetVersion uint64) error
Commit() ([]StoreInfo, error)
SetInitialVersion(version uint64) error
GetProof(storeKey string, version uint64, key []byte) (*ics23.CommitmentProof, error)
// Prune attempts to prune all versions up to and including the provided

View File

@ -116,11 +116,7 @@ func (s *Store) SetMetrics(m metrics.Metrics) {
func (s *Store) SetInitialVersion(v uint64) error {
s.initialVersion = v
// TODO(bez): Call SetInitialVersion on s.stateCommitment.
//
// Ref: https://github.com/cosmos/cosmos-sdk/issues/18597
return nil
return s.stateCommitment.SetInitialVersion(v)
}
// GetSCStore returns the store's state commitment (SC) backend.