Skip to content

Commit ff30f6e

Browse files
dependabot[bot]github-actions[bot]cool-developetac0turtlejulienrbrt
authored
build(deps): Bump github.com/cosmos/iavl from 1.0.1 to 1.1.1 in store (cosmos#19770)
Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Cool Developer <[email protected]> Co-authored-by: marbar3778 <[email protected]> Co-authored-by: Julien Robert <[email protected]>
1 parent 1ad7fad commit ff30f6e

File tree

10 files changed

+89
-47
lines changed

10 files changed

+89
-47
lines changed

store/CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ Ref: https://keepachangelog.com/en/1.0.0/
2525

2626
## Unreleased
2727

28+
### Improvements
29+
30+
* [#19770](https://github.com/cosmos/cosmos-sdk/pull/19770) Upgrade IAVL to IAVL v1.1.1.
31+
2832
## v1.0.2 (January 10, 2024)
2933

3034
### Bug Fixes

store/cache/cache_test.go

+6-5
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,11 @@ import (
1313
"cosmossdk.io/store/cachekv"
1414
iavlstore "cosmossdk.io/store/iavl"
1515
"cosmossdk.io/store/types"
16+
"cosmossdk.io/store/wrapper"
1617
)
1718

1819
func TestGetOrSetStoreCache(t *testing.T) {
19-
db := dbm.NewMemDB()
20+
db := wrapper.NewDBWrapper(dbm.NewMemDB())
2021
mngr := cache.NewCommitKVStoreCacheManager(cache.DefaultCommitKVStoreCacheSize)
2122

2223
sKey := types.NewKVStoreKey("test")
@@ -29,7 +30,7 @@ func TestGetOrSetStoreCache(t *testing.T) {
2930
}
3031

3132
func TestUnwrap(t *testing.T) {
32-
db := dbm.NewMemDB()
33+
db := wrapper.NewDBWrapper(dbm.NewMemDB())
3334
mngr := cache.NewCommitKVStoreCacheManager(cache.DefaultCommitKVStoreCacheSize)
3435

3536
sKey := types.NewKVStoreKey("test")
@@ -42,7 +43,7 @@ func TestUnwrap(t *testing.T) {
4243
}
4344

4445
func TestStoreCache(t *testing.T) {
45-
db := dbm.NewMemDB()
46+
db := wrapper.NewDBWrapper(dbm.NewMemDB())
4647
mngr := cache.NewCommitKVStoreCacheManager(cache.DefaultCommitKVStoreCacheSize)
4748

4849
sKey := types.NewKVStoreKey("test")
@@ -68,7 +69,7 @@ func TestStoreCache(t *testing.T) {
6869
}
6970

7071
func TestReset(t *testing.T) {
71-
db := dbm.NewMemDB()
72+
db := wrapper.NewDBWrapper(dbm.NewMemDB())
7273
mngr := cache.NewCommitKVStoreCacheManager(cache.DefaultCommitKVStoreCacheSize)
7374

7475
sKey := types.NewKVStoreKey("test")
@@ -88,7 +89,7 @@ func TestReset(t *testing.T) {
8889
}
8990

9091
func TestCacheWrap(t *testing.T) {
91-
db := dbm.NewMemDB()
92+
db := wrapper.NewDBWrapper(dbm.NewMemDB())
9293
mngr := cache.NewCommitKVStoreCacheManager(cache.DefaultCommitKVStoreCacheSize)
9394

9495
sKey := types.NewKVStoreKey("test")

store/go.mod

+8-8
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ require (
99
github.com/cometbft/cometbft v0.38.6
1010
github.com/cosmos/cosmos-db v1.0.2
1111
github.com/cosmos/gogoproto v1.4.11
12-
github.com/cosmos/iavl v1.0.1
12+
github.com/cosmos/iavl v1.1.1
1313
github.com/cosmos/ics23/go v0.10.0
1414
github.com/golang/mock v1.6.0
1515
github.com/golang/protobuf v1.5.4 // indirect
@@ -20,7 +20,7 @@ require (
2020
github.com/spf13/cast v1.6.0 // indirect
2121
github.com/stretchr/testify v1.8.4
2222
github.com/tidwall/btree v1.7.0
23-
golang.org/x/exp v0.0.0-20240222234643-814bf88cf225
23+
golang.org/x/exp v0.0.0-20240314144324-c7f7c6466f7f
2424
google.golang.org/grpc v1.60.0
2525
google.golang.org/protobuf v1.33.0
2626
gotest.tools/v3 v3.5.1
@@ -61,17 +61,17 @@ require (
6161
github.com/petermattis/goid v0.0.0-20221215004737-a150e88a970d // indirect
6262
github.com/pkg/errors v0.9.1 // indirect
6363
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
64-
github.com/prometheus/client_golang v1.18.0 // indirect
64+
github.com/prometheus/client_golang v1.19.0 // indirect
6565
github.com/prometheus/client_model v0.6.0 // indirect
66-
github.com/prometheus/common v0.47.0 // indirect
67-
github.com/prometheus/procfs v0.12.0 // indirect
66+
github.com/prometheus/common v0.50.0 // indirect
67+
github.com/prometheus/procfs v0.13.0 // indirect
6868
github.com/rogpeppe/go-internal v1.12.0 // indirect
6969
github.com/rs/zerolog v1.32.0 // indirect
7070
github.com/sasha-s/go-deadlock v0.3.1 // indirect
7171
github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect
72-
golang.org/x/crypto v0.19.0 // indirect
73-
golang.org/x/net v0.20.0 // indirect
74-
golang.org/x/sys v0.17.0 // indirect
72+
golang.org/x/crypto v0.21.0 // indirect
73+
golang.org/x/net v0.22.0 // indirect
74+
golang.org/x/sys v0.18.0 // indirect
7575
golang.org/x/text v0.14.0 // indirect
7676
google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f // indirect
7777
gopkg.in/yaml.v3 v3.0.1 // indirect

store/go.sum

+18-18
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ github.com/cosmos/cosmos-db v1.0.2 h1:hwMjozuY1OlJs/uh6vddqnk9j7VamLv+0DBlbEXbAK
5050
github.com/cosmos/cosmos-db v1.0.2/go.mod h1:Z8IXcFJ9PqKK6BIsVOB3QXtkKoqUOp1vRvPT39kOXEA=
5151
github.com/cosmos/gogoproto v1.4.11 h1:LZcMHrx4FjUgrqQSWeaGC1v/TeuVFqSLa43CC6aWR2g=
5252
github.com/cosmos/gogoproto v1.4.11/go.mod h1:/g39Mh8m17X8Q/GDEs5zYTSNaNnInBSohtaxzQnYq1Y=
53-
github.com/cosmos/iavl v1.0.1 h1:D+mYbcRO2wptYzOM1Hxl9cpmmHU1ZEt9T2Wv5nZTeUw=
54-
github.com/cosmos/iavl v1.0.1/go.mod h1:8xIUkgVvwvVrBu81scdPty+/Dx9GqwHnAvXz4cwF7RY=
53+
github.com/cosmos/iavl v1.1.1 h1:64nTi8s3gEoGqhA8TyAWFWfz7/pg0anKzHNSc1ETc7Q=
54+
github.com/cosmos/iavl v1.1.1/go.mod h1:jLeUvm6bGT1YutCaL2fIar/8vGUE8cPZvh/gXEWDaDM=
5555
github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM=
5656
github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0=
5757
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
@@ -211,22 +211,22 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH
211211
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
212212
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
213213
github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
214-
github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk=
215-
github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA=
214+
github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU=
215+
github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k=
216216
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
217217
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
218218
github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
219219
github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos=
220220
github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8=
221221
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
222222
github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
223-
github.com/prometheus/common v0.47.0 h1:p5Cz0FNHo7SnWOmWmoRozVcjEp0bIVU8cV7OShpjL1k=
224-
github.com/prometheus/common v0.47.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc=
223+
github.com/prometheus/common v0.50.0 h1:YSZE6aa9+luNa2da6/Tik0q0A5AbR+U003TItK57CPQ=
224+
github.com/prometheus/common v0.50.0/go.mod h1:wHFBCEVWVmHMUpg7pYcOm2QUR/ocQdYSJVQJKnHc3xQ=
225225
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
226226
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
227227
github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
228-
github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo=
229-
github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo=
228+
github.com/prometheus/procfs v0.13.0 h1:GqzLlQyfsPbaEHaQkO7tbDlriv/4o5Hudv6OXHGKX7o=
229+
github.com/prometheus/procfs v0.13.0/go.mod h1:cd4PFCR54QLnGKPaKGA6l+cfuNXtht43ZKY6tow0Y1g=
230230
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
231231
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
232232
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
@@ -260,10 +260,10 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf
260260
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
261261
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
262262
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
263-
golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo=
264-
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
265-
golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ=
266-
golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc=
263+
golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
264+
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
265+
golang.org/x/exp v0.0.0-20240314144324-c7f7c6466f7f h1:3CW0unweImhOzd5FmYuRsD4Y4oQFKZIjAnKbjV4WIrw=
266+
golang.org/x/exp v0.0.0-20240314144324-c7f7c6466f7f/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc=
267267
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
268268
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
269269
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
@@ -279,17 +279,17 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b
279279
golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
280280
golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
281281
golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
282-
golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo=
283-
golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY=
282+
golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc=
283+
golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
284284
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
285285
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
286286
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
287287
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
288288
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
289289
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
290290
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
291-
golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE=
292-
golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
291+
golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
292+
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
293293
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
294294
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
295295
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -320,8 +320,8 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc
320320
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
321321
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
322322
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
323-
golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y=
324-
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
323+
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
324+
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
325325
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
326326
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
327327
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=

store/iavl/store.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818
pruningtypes "cosmossdk.io/store/pruning/types"
1919
"cosmossdk.io/store/tracekv"
2020
"cosmossdk.io/store/types"
21+
"cosmossdk.io/store/wrapper"
2122
)
2223

2324
const (
@@ -51,7 +52,7 @@ func LoadStore(db dbm.DB, logger log.Logger, key types.StoreKey, id types.Commit
5152
// provided DB. An error is returned if the version fails to load, or if called with a positive
5253
// version on an empty tree.
5354
func LoadStoreWithInitialVersion(db dbm.DB, logger log.Logger, key types.StoreKey, id types.CommitID, initialVersion uint64, cacheSize int, disableFastNode bool, metrics metrics.StoreMetrics) (types.CommitKVStore, error) {
54-
tree := iavl.NewMutableTree(db, cacheSize, disableFastNode, logger, iavl.InitialVersionOption(initialVersion))
55+
tree := iavl.NewMutableTree(wrapper.NewDBWrapper(db), cacheSize, disableFastNode, logger, iavl.InitialVersionOption(initialVersion))
5556

5657
isUpgradeable, err := tree.IsUpgradeable()
5758
if err != nil {

store/iavl/store_test.go

+11-10
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
"cosmossdk.io/store/internal/kv"
1818
"cosmossdk.io/store/metrics"
1919
"cosmossdk.io/store/types"
20+
"cosmossdk.io/store/wrapper"
2021
)
2122

2223
var (
@@ -37,7 +38,7 @@ func randBytes(numBytes int) []byte {
3738
// make a tree with data from above and save it
3839
func newAlohaTree(t *testing.T, db dbm.DB) (*iavl.MutableTree, types.CommitID) {
3940
t.Helper()
40-
tree := iavl.NewMutableTree(db, cacheSize, false, log.NewNopLogger())
41+
tree := iavl.NewMutableTree(wrapper.NewDBWrapper(db), cacheSize, false, log.NewNopLogger())
4142

4243
for k, v := range treeData {
4344
_, err := tree.Set([]byte(k), []byte(v))
@@ -285,7 +286,7 @@ func TestIAVLIterator(t *testing.T) {
285286
}
286287

287288
func TestIAVLReverseIterator(t *testing.T) {
288-
db := dbm.NewMemDB()
289+
db := wrapper.NewDBWrapper(dbm.NewMemDB())
289290

290291
tree := iavl.NewMutableTree(db, cacheSize, false, log.NewNopLogger())
291292

@@ -319,7 +320,7 @@ func TestIAVLReverseIterator(t *testing.T) {
319320
}
320321

321322
func TestIAVLPrefixIterator(t *testing.T) {
322-
db := dbm.NewMemDB()
323+
db := wrapper.NewDBWrapper(dbm.NewMemDB())
323324
tree := iavl.NewMutableTree(db, cacheSize, false, log.NewNopLogger())
324325

325326
iavlStore := UnsafeNewStore(tree)
@@ -382,7 +383,7 @@ func TestIAVLPrefixIterator(t *testing.T) {
382383
}
383384

384385
func TestIAVLReversePrefixIterator(t *testing.T) {
385-
db := dbm.NewMemDB()
386+
db := wrapper.NewDBWrapper(dbm.NewMemDB())
386387
tree := iavl.NewMutableTree(db, cacheSize, false, log.NewNopLogger())
387388

388389
iavlStore := UnsafeNewStore(tree)
@@ -449,7 +450,7 @@ func nextVersion(iavl *Store) {
449450
}
450451

451452
func TestIAVLNoPrune(t *testing.T) {
452-
db := dbm.NewMemDB()
453+
db := wrapper.NewDBWrapper(dbm.NewMemDB())
453454
tree := iavl.NewMutableTree(db, cacheSize, false, log.NewNopLogger())
454455

455456
iavlStore := UnsafeNewStore(tree)
@@ -467,7 +468,7 @@ func TestIAVLNoPrune(t *testing.T) {
467468
}
468469

469470
func TestIAVLStoreQuery(t *testing.T) {
470-
db := dbm.NewMemDB()
471+
db := wrapper.NewDBWrapper(dbm.NewMemDB())
471472
tree := iavl.NewMutableTree(db, cacheSize, false, log.NewNopLogger())
472473

473474
iavlStore := UnsafeNewStore(tree)
@@ -579,7 +580,7 @@ func TestIAVLStoreQuery(t *testing.T) {
579580

580581
func BenchmarkIAVLIteratorNext(b *testing.B) {
581582
b.ReportAllocs()
582-
db := dbm.NewMemDB()
583+
db := wrapper.NewDBWrapper(dbm.NewMemDB())
583584
treeSize := 1000
584585
tree := iavl.NewMutableTree(db, cacheSize, false, log.NewNopLogger())
585586

@@ -615,7 +616,7 @@ func TestSetInitialVersion(t *testing.T) {
615616
{
616617
"works with a mutable tree",
617618
func(db *dbm.MemDB) *Store {
618-
tree := iavl.NewMutableTree(db, cacheSize, false, log.NewNopLogger())
619+
tree := iavl.NewMutableTree(wrapper.NewDBWrapper(db), cacheSize, false, log.NewNopLogger())
619620
store := UnsafeNewStore(tree)
620621

621622
return store
@@ -624,7 +625,7 @@ func TestSetInitialVersion(t *testing.T) {
624625
{
625626
"throws error on immutable tree",
626627
func(db *dbm.MemDB) *Store {
627-
tree := iavl.NewMutableTree(db, cacheSize, false, log.NewNopLogger())
628+
tree := iavl.NewMutableTree(wrapper.NewDBWrapper(db), cacheSize, false, log.NewNopLogger())
628629
store := UnsafeNewStore(tree)
629630
_, version, err := store.tree.SaveVersion()
630631
require.NoError(t, err)
@@ -672,7 +673,7 @@ func TestChangeSets(t *testing.T) {
672673
treeSize := 1000
673674
treeVersion := int64(10)
674675
targetVersion := int64(6)
675-
tree := iavl.NewMutableTree(db, cacheSize, false, log.NewNopLogger(), iavl.FlushThresholdOption(math.MaxInt))
676+
tree := iavl.NewMutableTree(wrapper.NewDBWrapper(db), cacheSize, false, log.NewNopLogger(), iavl.FlushThresholdOption(math.MaxInt))
676677

677678
for j := int64(0); j < treeVersion; j++ {
678679
keys := [][]byte{}

store/iavl/tree.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ import (
44
"fmt"
55

66
"github.com/cosmos/iavl"
7-
8-
"cosmossdk.io/store/types"
7+
idb "github.com/cosmos/iavl/db"
98
)
109

1110
var (
@@ -32,7 +31,7 @@ type (
3231
GetVersioned(key []byte, version int64) ([]byte, error)
3332
GetImmutable(version int64) (*iavl.ImmutableTree, error)
3433
SetInitialVersion(version uint64)
35-
Iterator(start, end []byte, ascending bool) (types.Iterator, error)
34+
Iterator(start, end []byte, ascending bool) (idb.Iterator, error)
3635
AvailableVersions() []int
3736
LoadVersionForOverwriting(targetVersion int64) error
3837
TraverseStateChanges(startVersion, endVersion int64, fn func(version int64, changeSet *iavl.ChangeSet) error) error

store/iavl/tree_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,12 @@ import (
88
"github.com/stretchr/testify/require"
99

1010
"cosmossdk.io/log"
11+
"cosmossdk.io/store/wrapper"
1112
)
1213

1314
func TestImmutableTreePanics(t *testing.T) {
1415
t.Parallel()
15-
immTree := iavl.NewImmutableTree(dbm.NewMemDB(), 100, false, log.NewNopLogger())
16+
immTree := iavl.NewImmutableTree(wrapper.NewDBWrapper(dbm.NewMemDB()), 100, false, log.NewNopLogger())
1617
it := &immutableTree{immTree}
1718
require.Panics(t, func() {
1819
_, err := it.Set([]byte{}, []byte{})

store/prefix/store_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"cosmossdk.io/store/gaskv"
1515
"cosmossdk.io/store/iavl"
1616
"cosmossdk.io/store/types"
17+
"cosmossdk.io/store/wrapper"
1718
)
1819

1920
// copied from iavl/store_test.go
@@ -90,7 +91,7 @@ func testPrefixStore(t *testing.T, baseStore types.KVStore, prefix []byte) {
9091
}
9192

9293
func TestIAVLStorePrefix(t *testing.T) {
93-
db := dbm.NewMemDB()
94+
db := wrapper.NewDBWrapper(dbm.NewMemDB())
9495
tree := tiavl.NewMutableTree(db, cacheSize, false, log.NewNopLogger())
9596
iavlStore := iavl.UnsafeNewStore(tree)
9697

store/wrapper/wrapper.go

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package wrapper
2+
3+
import (
4+
dbm "github.com/cosmos/cosmos-db"
5+
idb "github.com/cosmos/iavl/db"
6+
)
7+
8+
var _ idb.DB = &DBWrapper{}
9+
10+
// DBwrapper is a simple wrapper of dbm.DB that implements the iavl.DB interface.
11+
type DBWrapper struct {
12+
dbm.DB
13+
}
14+
15+
// NewDBWrapper creates a new DBWrapper instance.
16+
func NewDBWrapper(db dbm.DB) *DBWrapper {
17+
return &DBWrapper{db}
18+
}
19+
20+
func (dbw *DBWrapper) NewBatch() idb.Batch {
21+
return dbw.DB.NewBatch()
22+
}
23+
24+
func (dbw *DBWrapper) NewBatchWithSize(size int) idb.Batch {
25+
return dbw.DB.NewBatchWithSize(size)
26+
}
27+
28+
func (dbw *DBWrapper) Iterator(start, end []byte) (idb.Iterator, error) {
29+
return dbw.DB.Iterator(start, end)
30+
}
31+
32+
func (dbw *DBWrapper) ReverseIterator(start, end []byte) (idb.Iterator, error) {
33+
return dbw.DB.ReverseIterator(start, end)
34+
}

0 commit comments

Comments
 (0)