Skip to content
Cosmopediaby Unity Nodes
ReleasesSDKstore/v2.0.0GitHub ↗

store/v2.0.0

cosmos/cosmos-sdkstore/v2.0.014-04-2026

API Breaking

• #25470 Refactor store interfaces to support generic value types (object stores): • Replace `BasicKVStore`, `KVStore`, and `Iterator` interfaces/types with generic `GBasicKVStore[V]`, `GKVStore[V]`, and `GIterator[V]`. The old names are retained as type aliases (e.g. `KVStore = GKVStore[[]byte]`).

• Remove `Iterator` as a direct alias to `dbm.Iterator`. It is now `GIterator[[]byte]`, a distinct interface defined in the store package. Code that type-asserts to `dbm.Iterator` will break.

• Remove `CacheWrap()` and `CacheWrapWithTrace()` method declarations from the `CacheWrap` interface. `CacheWrap` now embeds `CacheWrapper` to obtain `CacheWrap()`.

• Add `GetObjKVStore(StoreKey) ObjKVStore` to the `MultiStore` interface.

• Add generic store variants across `cachekv`, `gaskv`, `prefix`, `transient`, and `mem` packages (`GStore[V]`, `NewGStore`, `NewObjStore`).

• #26037 Remove `GetCommitStore` and `GetCommitKVStore` from the `CommitMultiStore` interface. Remove top-level `store.CommitStore` and `store.CommitKVStore` type aliases from `store/reexport.go`.

• #26060 Remove non-functional `StoreMetrics`. This metric interface never worked, so this simply removes dead code.

• #26061 Remove tracing from store interfaces and implementations: • Remove `SetTracer`, `SetTracingContext`, and `TracingEnabled` from `MultiStore` interface.

• Remove `CacheWrapWithTrace` from `CacheWrapper` interface.

• Remove `traceWriter` and `traceContext` parameters from `cachemulti.NewStore`, `cachemulti.NewFromKVStore`, and `cachemulti.NewFromParent`.

• Remove `store/tracekv` package entirely.

• Remove `TraceContext` type `store/types`.

Features

• #25470 Add object KV stores and refactor the base store to be generic across the value parameter: • Add object store types: `ObjKVStore`, `ObjBasicKVStore`, `ObjIterator`, `ObjectStoreKey`, `StoreTypeObject`.

• Add generic store types: `GBasicKVStore[V]`, `GKVStore[V]`, `GIterator[V]`.

• Add `cachemulti.NewFromParent` constructor for lazy cache multistore construction from a parent store function.

• #25647 Add `EarliestVersion() int64` to the `CommitMultiStore` interface and `GetEarliestVersion(db)` helper.

Bug Fixes

• #20425 Fix nil pointer panic when querying historical state where a new store does not exist.

• #24583 Fix pruning height calculation to correctly handle in-flight snapshots. Adds `SnapshotAnnouncer` interface and `AnnounceSnapshotHeight` to track snapshots in progress and prevent premature pruning of their heights.

← Back to Releases