Skip to content

Commit

Permalink
add SetInitialVersion
Browse files Browse the repository at this point in the history
  • Loading branch information
cool-develope committed Dec 8, 2023
1 parent 8fb6205 commit 8481c2d
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 5 deletions.
6 changes: 6 additions & 0 deletions store/commitment/iavl/tree.go
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down
10 changes: 10 additions & 0 deletions store/commitment/store.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
1 change: 1 addition & 0 deletions store/commitment/tree.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
1 change: 1 addition & 0 deletions store/database.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 1 addition & 5 deletions store/root/store.go
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down

0 comments on commit 8481c2d

Please sign in to comment.