feat(store/v2): add SetInitialVersion in SC (#18665)
This commit is contained in:
parent
3ba1c5bf26
commit
cc9d8526d0
@ -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))
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user