Skip to content

Commit

Permalink
upgrade to latest iavl v1.1.x
Browse files Browse the repository at this point in the history
previous iavl v1 versions were retracted.
this commit upgrades to post-retracted version.
minor version from 1.0.x -> 1.1.x includes a new iavl db type so wrapping
of existing instances is required.
  • Loading branch information
pirtleshell committed May 13, 2024
1 parent c319d50 commit 6307579
Show file tree
Hide file tree
Showing 8 changed files with 27 additions and 20 deletions.
1 change: 1 addition & 0 deletions .tool-versions
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
golang 1.21.9
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ require (
github.com/cosmos/go-bip39 v1.0.0
github.com/cosmos/gogogateway v1.2.0
github.com/cosmos/gogoproto v1.4.10
github.com/cosmos/iavl v1.0.0
github.com/cosmos/iavl v1.1.3-0.20240508141442-4ad064ece06e
github.com/cosmos/ics23/go v0.10.0
github.com/cosmos/ledger-cosmos-go v0.13.1
github.com/golang/mock v1.6.0
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -348,8 +348,8 @@ github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ
github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU=
github.com/cosmos/gogoproto v1.4.10 h1:QH/yT8X+c0F4ZDacDv3z+xE3WU1P1Z3wQoLMBRJoKuI=
github.com/cosmos/gogoproto v1.4.10/go.mod h1:3aAZzeRWpAwr+SS/LLkICX2/kDFyaYVzckBDzygIxek=
github.com/cosmos/iavl v1.0.0 h1:bw6t0Mv/mVCJvlMTOPHWLs5uUE3BRBfVWCRelOzl+so=
github.com/cosmos/iavl v1.0.0/go.mod h1:CmTGqMnRnucjxbjduneZXT+0vPgNElYvdefjX2q9tYc=
github.com/cosmos/iavl v1.1.3-0.20240508141442-4ad064ece06e h1:XsqaeADjXcUTxNVIH2lUCukHnBwRLNE0INyNDtwDCQw=
github.com/cosmos/iavl v1.1.3-0.20240508141442-4ad064ece06e/go.mod h1:vCYmRQUJU1wwj0oRD3wMEtOM9sJNDP+GFMaXmIxZ/rU=
github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM=
github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0=
github.com/cosmos/keyring v1.2.0 h1:8C1lBP9xhImmIabyXW4c3vFjjLiBdGCmfLUfeZlV1Yo=
Expand Down
11 changes: 6 additions & 5 deletions store/cache/cache_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"cosmossdk.io/log"
dbm "github.com/cometbft/cometbft-db"
"github.com/cosmos/iavl"
iavldb "github.com/cosmos/iavl/db"
"github.com/stretchr/testify/require"

"github.com/cosmos/cosmos-sdk/store/cache"
Expand All @@ -21,7 +22,7 @@ func TestGetOrSetStoreCache(t *testing.T) {
mngr := cache.NewCommitKVStoreCacheManager(cache.DefaultCommitKVStoreCacheSize)

sKey := types.NewKVStoreKey("test")
tree := iavl.NewMutableTree(db, 100, false, log.NewNopLogger())
tree := iavl.NewMutableTree(iavldb.NewWrapper(db), 100, false, log.NewNopLogger())
store := iavlstore.UnsafeNewStore(tree)
store2 := mngr.GetStoreCache(sKey, store)

Expand All @@ -34,7 +35,7 @@ func TestUnwrap(t *testing.T) {
mngr := cache.NewCommitKVStoreCacheManager(cache.DefaultCommitKVStoreCacheSize)

sKey := types.NewKVStoreKey("test")
tree := iavl.NewMutableTree(db, 100, false, log.NewNopLogger())
tree := iavl.NewMutableTree(iavldb.NewWrapper(db), 100, false, log.NewNopLogger())
store := iavlstore.UnsafeNewStore(tree)
_ = mngr.GetStoreCache(sKey, store)

Expand All @@ -47,7 +48,7 @@ func TestStoreCache(t *testing.T) {
mngr := cache.NewCommitKVStoreCacheManager(cache.DefaultCommitKVStoreCacheSize)

sKey := types.NewKVStoreKey("test")
tree := iavl.NewMutableTree(db, 100, false, log.NewNopLogger())
tree := iavl.NewMutableTree(iavldb.NewWrapper(db), 100, false, log.NewNopLogger())
store := iavlstore.UnsafeNewStore(tree)
kvStore := mngr.GetStoreCache(sKey, store)

Expand All @@ -73,7 +74,7 @@ func TestReset(t *testing.T) {
mngr := cache.NewCommitKVStoreCacheManager(cache.DefaultCommitKVStoreCacheSize)

sKey := types.NewKVStoreKey("test")
tree := iavl.NewMutableTree(db, 100, false, log.NewNopLogger())
tree := iavl.NewMutableTree(iavldb.NewWrapper(db), 100, false, log.NewNopLogger())
store := iavlstore.UnsafeNewStore(tree)
store2 := mngr.GetStoreCache(sKey, store)

Expand All @@ -93,7 +94,7 @@ func TestCacheWrap(t *testing.T) {
mngr := cache.NewCommitKVStoreCacheManager(cache.DefaultCommitKVStoreCacheSize)

sKey := types.NewKVStoreKey("test")
tree := iavl.NewMutableTree(db, 100, false, log.NewNopLogger())
tree := iavl.NewMutableTree(iavldb.NewWrapper(db), 100, false, log.NewNopLogger())
store := iavlstore.UnsafeNewStore(tree)

cacheWrapper := mngr.GetStoreCache(sKey, store).CacheWrap()
Expand Down
4 changes: 3 additions & 1 deletion store/iavl/store.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
tmcrypto "github.com/cometbft/cometbft/proto/tendermint/crypto"
ics23 "github.com/confio/ics23/go"
"github.com/cosmos/iavl"
iavldb "github.com/cosmos/iavl/db"

"github.com/cosmos/cosmos-sdk/store/cachekv"
pruningtypes "github.com/cosmos/cosmos-sdk/store/pruning/types"
Expand Down Expand Up @@ -54,7 +55,8 @@ func LoadStore(db dbm.DB, logger log.Logger, key types.StoreKey, id types.Commit
// provided DB. An error is returned if the version fails to load, or if called with a positive
// version on an empty tree.
func LoadStoreWithInitialVersion(db dbm.DB, logger log.Logger, key types.StoreKey, id types.CommitID, lazyLoading bool, initialVersion uint64, cacheSize int, disableFastNode bool) (types.CommitKVStore, error) {
tree := iavl.NewMutableTree(wrapper.NewCosmosDB(db), cacheSize, disableFastNode, clog.NewNopLogger(), iavl.InitialVersionOption(initialVersion))
cosmosdb := wrapper.NewCosmosDB(db)
tree := iavl.NewMutableTree(iavldb.NewWrapper(cosmosdb), cacheSize, disableFastNode, clog.NewNopLogger(), iavl.InitialVersionOption(initialVersion))

isUpgradeable, err := tree.IsUpgradeable()
if err != nil {
Expand Down
19 changes: 10 additions & 9 deletions store/iavl/store_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
abci "github.com/cometbft/cometbft/abci/types"
cmlog "github.com/cometbft/cometbft/libs/log"
"github.com/cosmos/iavl"
iavldb "github.com/cosmos/iavl/db"
"github.com/stretchr/testify/require"

"github.com/cosmos/cosmos-sdk/store/types"
Expand All @@ -37,7 +38,7 @@ func randBytes(numBytes int) []byte {
// make a tree with data from above and save it
func newAlohaTree(t *testing.T, db dbm.DB) (*iavl.MutableTree, types.CommitID) {
dbt := wrapper.NewCosmosDB(db)
tree := iavl.NewMutableTree(dbt, cacheSize, false, log.NewNopLogger())
tree := iavl.NewMutableTree(iavldb.NewWrapper(dbt), cacheSize, false, log.NewNopLogger())

for k, v := range treeData {
tree.Set([]byte(k), []byte(v))
Expand Down Expand Up @@ -283,7 +284,7 @@ func TestIAVLIterator(t *testing.T) {

func TestIAVLReverseIterator(t *testing.T) {
db := wrapper.NewCosmosDB(dbm.NewMemDB())
tree := iavl.NewMutableTree(db, cacheSize, false, log.NewNopLogger())
tree := iavl.NewMutableTree(iavldb.NewWrapper(db), cacheSize, false, log.NewNopLogger())

iavlStore := UnsafeNewStore(tree)

Expand Down Expand Up @@ -315,7 +316,7 @@ func TestIAVLReverseIterator(t *testing.T) {

func TestIAVLPrefixIterator(t *testing.T) {
db := wrapper.NewCosmosDB(dbm.NewMemDB())
tree := iavl.NewMutableTree(db, cacheSize, false, log.NewNopLogger())
tree := iavl.NewMutableTree(iavldb.NewWrapper(db), cacheSize, false, log.NewNopLogger())

iavlStore := UnsafeNewStore(tree)

Expand Down Expand Up @@ -378,7 +379,7 @@ func TestIAVLPrefixIterator(t *testing.T) {

func TestIAVLReversePrefixIterator(t *testing.T) {
db := wrapper.NewCosmosDB(dbm.NewMemDB())
tree := iavl.NewMutableTree(db, cacheSize, false, log.NewNopLogger())
tree := iavl.NewMutableTree(iavldb.NewWrapper(db), cacheSize, false, log.NewNopLogger())

iavlStore := UnsafeNewStore(tree)

Expand Down Expand Up @@ -445,7 +446,7 @@ func nextVersion(iavl *Store) {

func TestIAVLNoPrune(t *testing.T) {
db := wrapper.NewCosmosDB(dbm.NewMemDB())
tree := iavl.NewMutableTree(db, cacheSize, false, log.NewNopLogger())
tree := iavl.NewMutableTree(iavldb.NewWrapper(db), cacheSize, false, log.NewNopLogger())

iavlStore := UnsafeNewStore(tree)
nextVersion(iavlStore)
Expand All @@ -463,7 +464,7 @@ func TestIAVLNoPrune(t *testing.T) {

func TestIAVLStoreQuery(t *testing.T) {
db := wrapper.NewCosmosDB(dbm.NewMemDB())
tree := iavl.NewMutableTree(db, cacheSize, false, log.NewNopLogger())
tree := iavl.NewMutableTree(iavldb.NewWrapper(db), cacheSize, false, log.NewNopLogger())

iavlStore := UnsafeNewStore(tree)

Expand Down Expand Up @@ -566,7 +567,7 @@ func BenchmarkIAVLIteratorNext(b *testing.B) {
b.ReportAllocs()
db := wrapper.NewCosmosDB(dbm.NewMemDB())
treeSize := 1000
tree := iavl.NewMutableTree(db, cacheSize, false, log.NewNopLogger())
tree := iavl.NewMutableTree(iavldb.NewWrapper(db), cacheSize, false, log.NewNopLogger())

for i := 0; i < treeSize; i++ {
key := randBytes(4)
Expand Down Expand Up @@ -600,7 +601,7 @@ func TestSetInitialVersion(t *testing.T) {
"works with a mutable tree",
func(db *dbm.MemDB) *Store {
dbt := wrapper.NewCosmosDB(db)
tree := iavl.NewMutableTree(dbt, cacheSize, false, log.NewNopLogger())
tree := iavl.NewMutableTree(iavldb.NewWrapper(dbt), cacheSize, false, log.NewNopLogger())
store := UnsafeNewStore(tree)

return store
Expand All @@ -610,7 +611,7 @@ func TestSetInitialVersion(t *testing.T) {
"throws error on immutable tree",
func(db *dbm.MemDB) *Store {
dbt := wrapper.NewCosmosDB(db)
tree := iavl.NewMutableTree(dbt, cacheSize, false, log.NewNopLogger())
tree := iavl.NewMutableTree(iavldb.NewWrapper(dbt), cacheSize, false, log.NewNopLogger())
store := UnsafeNewStore(tree)
_, version, err := store.tree.SaveVersion()
require.NoError(t, err)
Expand Down
3 changes: 2 additions & 1 deletion store/iavl/tree_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,14 @@ import (
dbm "github.com/cometbft/cometbft-db"
"github.com/cosmos/cosmos-sdk/store/wrapper"
"github.com/cosmos/iavl"
iavldb "github.com/cosmos/iavl/db"
"github.com/stretchr/testify/require"
)

func TestImmutableTreePanics(t *testing.T) {
t.Parallel()
db := wrapper.NewCosmosDB(dbm.NewMemDB())
immTree := iavl.NewImmutableTree(db, 100, false, log.NewNopLogger())
immTree := iavl.NewImmutableTree(iavldb.NewWrapper(db), 100, false, log.NewNopLogger())
it := &immutableTree{immTree}
require.Panics(t, func() { it.Set([]byte{}, []byte{}) })
require.Panics(t, func() { it.Remove([]byte{}) })
Expand Down
3 changes: 2 additions & 1 deletion store/prefix/store_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (
"github.com/stretchr/testify/require"

tiavl "github.com/cosmos/iavl"
iavldb "github.com/cosmos/iavl/db"

"github.com/cosmos/cosmos-sdk/store/dbadapter"
"github.com/cosmos/cosmos-sdk/store/gaskv"
Expand Down Expand Up @@ -92,7 +93,7 @@ func testPrefixStore(t *testing.T, baseStore types.KVStore, prefix []byte) {

func TestIAVLStorePrefix(t *testing.T) {
db := wrapper.NewCosmosDB(dbm.NewMemDB())
tree := tiavl.NewMutableTree(db, cacheSize, false, log.NewNopLogger())
tree := tiavl.NewMutableTree(iavldb.NewWrapper(db), cacheSize, false, log.NewNopLogger())
iavlStore := iavl.UnsafeNewStore(tree)

testPrefixStore(t, iavlStore, []byte("test"))
Expand Down

0 comments on commit 6307579

Please sign in to comment.