diff --git a/client/v2/go.mod b/client/v2/go.mod index 153fdcb932..b18d80a15c 100644 --- a/client/v2/go.mod +++ b/client/v2/go.mod @@ -4,7 +4,7 @@ go 1.19 require ( cosmossdk.io/api v0.2.6 - cosmossdk.io/core v0.4.1 + cosmossdk.io/core v0.5.0 cosmossdk.io/depinject v1.0.0-alpha.3 github.com/cockroachdb/errors v1.9.0 github.com/cosmos/cosmos-proto v1.0.0-beta.1 diff --git a/client/v2/go.sum b/client/v2/go.sum index 733db882c4..2c6fe6598c 100644 --- a/client/v2/go.sum +++ b/client/v2/go.sum @@ -39,6 +39,8 @@ cosmossdk.io/api v0.2.6 h1:AoNwaLLapcLsphhMK6+o0kZl+D6MMUaHVqSdwinASGU= cosmossdk.io/api v0.2.6/go.mod h1:u/d+GAxil0nWpl1XnQL8nkziQDIWuBDhv8VnDm/s6dI= cosmossdk.io/core v0.4.1 h1:5icpjPmw8J4uFp6w8OoLJPxsw6X3kRi9nAtTr3qp2Ok= cosmossdk.io/core v0.4.1/go.mod h1:Zqd1GB+krTF3bzhTnPNwzy3NTtXu+MKLX/9sPQXTIDE= +cosmossdk.io/core v0.5.0 h1:37BkURamssr1FQkE6ZNSjgesLYMflREiykK/Z3k4l7Q= +cosmossdk.io/core v0.5.0/go.mod h1:QVJT+YsJWs0pD/HuczGY5y/WEc9JCn1ycLsuCDUvFlc= cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z+zfw= cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU= cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w= diff --git a/collections/collections_test.go b/collections/collections_test.go index 03b946a24f..685cb56382 100644 --- a/collections/collections_test.go +++ b/collections/collections_test.go @@ -19,50 +19,30 @@ func (t testStore) OpenKVStore(ctx context.Context) store.KVStore { return t } -func (t testStore) Get(key []byte) []byte { - res, err := t.db.Get(key) - if err != nil { - panic(err) - } - return res +func (t testStore) Get(key []byte) ([]byte, error) { + + return t.db.Get(key) } -func (t testStore) Has(key []byte) bool { - res, err := t.db.Has(key) - if err != nil { - panic(err) - } - return res +func (t testStore) Has(key []byte) (bool, error) { + return t.db.Has(key) } -func (t testStore) Set(key, value []byte) { - err := t.db.Set(key, value) - if err != nil { - panic(err) - } +func (t testStore) Set(key, value []byte) error { + return t.db.Set(key, value) + } -func (t testStore) Delete(key []byte) { - err := t.db.Delete(key) - if err != nil { - panic(err) - } +func (t testStore) Delete(key []byte) error { + return t.db.Delete(key) } -func (t testStore) Iterator(start, end []byte) store.Iterator { - res, err := t.db.Iterator(start, end) - if err != nil { - panic(err) - } - return res +func (t testStore) Iterator(start, end []byte) (store.Iterator, error) { + return t.db.Iterator(start, end) } -func (t testStore) ReverseIterator(start, end []byte) store.Iterator { - res, err := t.db.ReverseIterator(start, end) - if err != nil { - panic(err) - } - return res +func (t testStore) ReverseIterator(start, end []byte) (store.Iterator, error) { + return t.db.ReverseIterator(start, end) } var _ store.KVStore = testStore{} diff --git a/collections/go.mod b/collections/go.mod index 697f9d34da..3324a12b6a 100644 --- a/collections/go.mod +++ b/collections/go.mod @@ -3,7 +3,7 @@ module cosmossdk.io/collections go 1.19 require ( - cosmossdk.io/core v0.4.1 + cosmossdk.io/core v0.5.0 github.com/cosmos/cosmos-db v0.0.0-20221226095112-f3c38ecb5e32 github.com/hashicorp/go-multierror v1.1.1 // TODO: remove with go 1.20 release github.com/stretchr/testify v1.8.1 @@ -40,11 +40,11 @@ require ( github.com/spf13/cast v1.5.0 // indirect github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect golang.org/x/exp v0.0.0-20221019170559-20944726eadf // indirect - golang.org/x/net v0.3.0 // indirect + golang.org/x/net v0.5.0 // indirect golang.org/x/sys v0.4.0 // indirect golang.org/x/text v0.6.0 // indirect - google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6 // indirect - google.golang.org/grpc v1.51.0 // indirect + google.golang.org/genproto v0.0.0-20230112194545-e10362b5ecf9 // indirect + google.golang.org/grpc v1.52.0 // indirect google.golang.org/protobuf v1.28.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/collections/go.sum b/collections/go.sum index f86d7d4601..a29cfd9435 100644 --- a/collections/go.sum +++ b/collections/go.sum @@ -1,8 +1,8 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cosmossdk.io/api v0.2.6 h1:AoNwaLLapcLsphhMK6+o0kZl+D6MMUaHVqSdwinASGU= cosmossdk.io/api v0.2.6/go.mod h1:u/d+GAxil0nWpl1XnQL8nkziQDIWuBDhv8VnDm/s6dI= -cosmossdk.io/core v0.4.1 h1:5icpjPmw8J4uFp6w8OoLJPxsw6X3kRi9nAtTr3qp2Ok= -cosmossdk.io/core v0.4.1/go.mod h1:Zqd1GB+krTF3bzhTnPNwzy3NTtXu+MKLX/9sPQXTIDE= +cosmossdk.io/core v0.5.0 h1:37BkURamssr1FQkE6ZNSjgesLYMflREiykK/Z3k4l7Q= +cosmossdk.io/core v0.5.0/go.mod h1:QVJT+YsJWs0pD/HuczGY5y/WEc9JCn1ycLsuCDUvFlc= cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z+zfw= cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= @@ -368,8 +368,8 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.3.0 h1:VWL6FNY2bEEmsGVKabSlHu5Irp34xmMRoqb/9lF9lxk= -golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.5.0 h1:GyT4nK/YDHSqa1c4753ouYCDajOYKTja9Xb/OHtgvSw= +golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -458,8 +458,8 @@ google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoA google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= -google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6 h1:a2S6M0+660BgMNl++4JPlcAO/CjkqYItDEZwkoDQK7c= -google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20230112194545-e10362b5ecf9 h1:ru6tJGasqJpgjM4q3Qq2fS3FKQ6CPPSRqgolUVBc994= +google.golang.org/genproto v0.0.0-20230112194545-e10362b5ecf9/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= @@ -467,8 +467,8 @@ google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQ google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.51.0 h1:E1eGv1FTqoLIdnBCZufiSHgKjlqG6fKFf6pPWtMTh8U= -google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww= +google.golang.org/grpc v1.52.0 h1:kd48UiU7EHsV4rnLyOJRuP/Il/UHE7gdDAQ+SZI7nZk= +google.golang.org/grpc v1.52.0/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/collections/iter.go b/collections/iter.go index bfde140864..4d3b1ef10a 100644 --- a/collections/iter.go +++ b/collections/iter.go @@ -161,26 +161,34 @@ func iteratorFromRanger[K, V any](ctx context.Context, m Map[K, V], r Ranger[K]) } else { endBytes = nextBytesPrefixKey(m.prefix) } - - kv := m.sa(ctx) - switch order { - case OrderAscending: - return newIterator(kv.Iterator(startBytes, endBytes), m) - case OrderDescending: - return newIterator(kv.ReverseIterator(startBytes, endBytes), m) - default: - return iter, errOrder - } + return newIterator(ctx, startBytes, endBytes, order, m) } -func newIterator[K, V any](iterator store.Iterator, m Map[K, V]) (Iterator[K, V], error) { - if iterator.Valid() == false { +func newIterator[K, V any](ctx context.Context, start, end []byte, order Order, m Map[K, V]) (Iterator[K, V], error) { + kv := m.sa(ctx) + var ( + iter store.Iterator + err error + ) + switch order { + case OrderAscending: + iter, err = kv.Iterator(start, end) + case OrderDescending: + iter, err = kv.ReverseIterator(start, end) + default: + return Iterator[K, V]{}, errOrder + } + if err != nil { + return Iterator[K, V]{}, err + } + if !iter.Valid() { return Iterator[K, V]{}, ErrInvalidIterator } + return Iterator[K, V]{ kc: m.kc, vc: m.vc, - iter: iterator, + iter: iter, prefixLength: len(m.prefix), }, nil } diff --git a/collections/map.go b/collections/map.go index 6d53e2d2a7..29eb3c4936 100644 --- a/collections/map.go +++ b/collections/map.go @@ -71,20 +71,24 @@ func (m Map[K, V]) Set(ctx context.Context, key K, value V) error { // errors with ErrNotFound if the key does not exist, or // with ErrEncoding if the key or value decoding fails. func (m Map[K, V]) Get(ctx context.Context, key K) (V, error) { + var v V + bytesKey, err := encodeKeyWithPrefix(m.prefix, m.kc, key) if err != nil { - var v V return v, err } kvStore := m.sa(ctx) - valueBytes := kvStore.Get(bytesKey) + valueBytes, err := kvStore.Get(bytesKey) if valueBytes == nil { - var v V return v, fmt.Errorf("%w: key '%s' of type %s", ErrNotFound, m.kc.Stringify(key), m.vc.ValueType()) } - v, err := m.vc.Decode(valueBytes) + if err != nil { + return v, err + } + + v, err = m.vc.Decode(valueBytes) if err != nil { return v, fmt.Errorf("%w: value decode: %s", ErrEncoding, err) // TODO: use multi err wrapping in go1.20: https://github.com/golang/go/issues/53435 } @@ -99,7 +103,7 @@ func (m Map[K, V]) Has(ctx context.Context, key K) (bool, error) { return false, err } kvStore := m.sa(ctx) - return kvStore.Has(bytesKey), nil + return kvStore.Has(bytesKey) } // Remove removes the key from the storage. @@ -137,15 +141,21 @@ func (m Map[K, V]) IterateRaw(ctx context.Context, start, end []byte, order Orde } s := m.sa(ctx) - var storeIter store.Iterator + var ( + storeIter store.Iterator + err error + ) switch order { case OrderAscending: - storeIter = s.Iterator(prefixedStart, prefixedEnd) + storeIter, err = s.Iterator(prefixedStart, prefixedEnd) case OrderDescending: - storeIter = s.ReverseIterator(prefixedStart, prefixedEnd) + storeIter, err = s.ReverseIterator(prefixedStart, prefixedEnd) default: return Iterator[K, V]{}, errOrder } + if err != nil { + return Iterator[K, V]{}, err + } if !storeIter.Valid() { return Iterator[K, V]{}, ErrInvalidIterator diff --git a/contrib/images/simd-env/Dockerfile b/contrib/images/simd-env/Dockerfile index b8a7a70af6..7a170396c6 100644 --- a/contrib/images/simd-env/Dockerfile +++ b/contrib/images/simd-env/Dockerfile @@ -10,6 +10,7 @@ COPY api/go.mod api/go.sum /work/api/ COPY core/go.mod core/go.sum /work/core/ COPY depinject/go.mod depinject/go.sum /work/depinject/ COPY tools/rosetta/go.mod tools/rosetta/go.sum /work/tools/rosetta/ +COPY collections/go.mod collections/go.sum /work/collections/ RUN go mod download COPY ./ /work diff --git a/go.mod b/go.mod index 0ec3dec7bc..c3ee7caa8e 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ module github.com/cosmos/cosmos-sdk require ( cosmossdk.io/api v0.2.6 cosmossdk.io/collections v0.0.0-20230106101515-aeac21494476 - cosmossdk.io/core v0.4.1 + cosmossdk.io/core v0.5.0 cosmossdk.io/depinject v1.0.0-alpha.3 cosmossdk.io/errors v1.0.0-beta.7 cosmossdk.io/math v1.0.0-beta.4 @@ -176,6 +176,7 @@ require ( ) replace ( + cosmossdk.io/collections => ./collections github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0 // dgrijalva/jwt-go is deprecated and doesn't receive security updates. // TODO: remove it: https://github.com/cosmos/cosmos-sdk/issues/13134 diff --git a/go.sum b/go.sum index 838c6542d6..9fab685d61 100644 --- a/go.sum +++ b/go.sum @@ -48,10 +48,8 @@ cloud.google.com/go/storage v1.27.0 h1:YOO045NZI9RKfCj1c5A/ZtuuENUc8OAW+gHdGnDgy cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= cosmossdk.io/api v0.2.6 h1:AoNwaLLapcLsphhMK6+o0kZl+D6MMUaHVqSdwinASGU= cosmossdk.io/api v0.2.6/go.mod h1:u/d+GAxil0nWpl1XnQL8nkziQDIWuBDhv8VnDm/s6dI= -cosmossdk.io/collections v0.0.0-20230106101515-aeac21494476 h1:dszme7EMNp/qxjgZKjhY4lm5SN+g1Tz95UlX/qZUK64= -cosmossdk.io/collections v0.0.0-20230106101515-aeac21494476/go.mod h1:q4avveOJ2Cbgab/Hm/yXDHFPM7NW9InEVysd8TzNPCE= -cosmossdk.io/core v0.4.1 h1:5icpjPmw8J4uFp6w8OoLJPxsw6X3kRi9nAtTr3qp2Ok= -cosmossdk.io/core v0.4.1/go.mod h1:Zqd1GB+krTF3bzhTnPNwzy3NTtXu+MKLX/9sPQXTIDE= +cosmossdk.io/core v0.5.0 h1:37BkURamssr1FQkE6ZNSjgesLYMflREiykK/Z3k4l7Q= +cosmossdk.io/core v0.5.0/go.mod h1:QVJT+YsJWs0pD/HuczGY5y/WEc9JCn1ycLsuCDUvFlc= cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z+zfw= cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU= cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w= diff --git a/runtime/store.go b/runtime/store.go index ee4dfd8370..409052be2b 100644 --- a/runtime/store.go +++ b/runtime/store.go @@ -14,7 +14,7 @@ type kvStoreService struct { } func (k kvStoreService) OpenKVStore(ctx context.Context) store.KVStore { - return sdk.UnwrapSDKContext(ctx).KVStore(k.key) + return newKVStore(sdk.UnwrapSDKContext(ctx).KVStore(k.key)) } type memStoreService struct { @@ -22,7 +22,7 @@ type memStoreService struct { } func (m memStoreService) OpenMemoryStore(ctx context.Context) store.KVStore { - return sdk.UnwrapSDKContext(ctx).KVStore(m.key) + return newKVStore(sdk.UnwrapSDKContext(ctx).KVStore(m.key)) } type transientStoreService struct { @@ -30,5 +30,58 @@ type transientStoreService struct { } func (t transientStoreService) OpenTransientStore(ctx context.Context) store.KVStore { - return sdk.UnwrapSDKContext(ctx).KVStore(t.key) + return newKVStore(sdk.UnwrapSDKContext(ctx).KVStore(t.key)) +} + +// CoreKVStore is a wrapper of Core/Store kvstore interface +// Remove after https://github.com/cosmos/cosmos-sdk/issues/14714 is closed +type coreKVStore struct { + kvStore storetypes.KVStore +} + +// NewKVStore returns a wrapper of Core/Store kvstore interface +// Remove once store migrates to core/store kvstore interface +func newKVStore(store storetypes.KVStore) store.KVStore { + return coreKVStore{kvStore: store} +} + +// Get returns nil iff key doesn't exist. Errors on nil key. +func (store coreKVStore) Get(key []byte) ([]byte, error) { + return store.kvStore.Get(key), nil +} + +// Has checks if a key exists. Errors on nil key. +func (store coreKVStore) Has(key []byte) (bool, error) { + return store.kvStore.Has(key), nil +} + +// Set sets the key. Errors on nil key or value. +func (store coreKVStore) Set(key, value []byte) error { + store.kvStore.Set(key, value) + return nil +} + +// Delete deletes the key. Errors on nil key. +func (store coreKVStore) Delete(key []byte) error { + store.kvStore.Delete(key) + return nil +} + +// Iterator iterates over a domain of keys in ascending order. End is exclusive. +// Start must be less than end, or the Iterator is invalid. +// Iterator must be closed by caller. +// To iterate over entire domain, use store.Iterator(nil, nil) +// CONTRACT: No writes may happen within a domain while an iterator exists over it. +// Exceptionally allowed for cachekv.Store, safe to write in the modules. +func (store coreKVStore) Iterator(start, end []byte) (store.Iterator, error) { + return store.kvStore.Iterator(start, end), nil +} + +// ReverseIterator iterates over a domain of keys in descending order. End is exclusive. +// Start must be less than end, or the Iterator is invalid. +// Iterator must be closed by caller. +// CONTRACT: No writes may happen within a domain while an iterator exists over it. +// Exceptionally allowed for cachekv.Store, safe to write in the modules. +func (store coreKVStore) ReverseIterator(start, end []byte) (store.Iterator, error) { + return store.kvStore.ReverseIterator(start, end), nil } diff --git a/simapp/go.mod b/simapp/go.mod index 83b5ca3885..09caced04b 100644 --- a/simapp/go.mod +++ b/simapp/go.mod @@ -5,7 +5,7 @@ go 1.19 require ( cosmossdk.io/api v0.2.6 cosmossdk.io/client/v2 v2.0.0-20230104083136-11f46a0bae58 - cosmossdk.io/core v0.4.1 + cosmossdk.io/core v0.5.0 cosmossdk.io/depinject v1.0.0-alpha.3 cosmossdk.io/math v1.0.0-beta.4 cosmossdk.io/tools/confix v0.0.0-20230120150717-4f6f6c00021f @@ -189,6 +189,7 @@ replace ( github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0 // Simapp always use the latest version of the cosmos-sdk github.com/cosmos/cosmos-sdk => ../. + cosmossdk.io/collections => ../collections // Fix upstream GHSA-h395-qcrw-5vmq vulnerability. // TODO Remove it: https://github.com/cosmos/cosmos-sdk/issues/10409 github.com/gin-gonic/gin => github.com/gin-gonic/gin v1.8.1 diff --git a/simapp/go.sum b/simapp/go.sum index e01839fa42..5abece7009 100644 --- a/simapp/go.sum +++ b/simapp/go.sum @@ -52,8 +52,8 @@ cosmossdk.io/client/v2 v2.0.0-20230104083136-11f46a0bae58 h1:q0AkHBZnYhsnnS3AmTU cosmossdk.io/client/v2 v2.0.0-20230104083136-11f46a0bae58/go.mod h1:ztqtfnFSD3edvhNOAShzKod13nfKLM1sZj0uu0fo56w= cosmossdk.io/collections v0.0.0-20230106101515-aeac21494476 h1:dszme7EMNp/qxjgZKjhY4lm5SN+g1Tz95UlX/qZUK64= cosmossdk.io/collections v0.0.0-20230106101515-aeac21494476/go.mod h1:q4avveOJ2Cbgab/Hm/yXDHFPM7NW9InEVysd8TzNPCE= -cosmossdk.io/core v0.4.1 h1:5icpjPmw8J4uFp6w8OoLJPxsw6X3kRi9nAtTr3qp2Ok= -cosmossdk.io/core v0.4.1/go.mod h1:Zqd1GB+krTF3bzhTnPNwzy3NTtXu+MKLX/9sPQXTIDE= +cosmossdk.io/core v0.5.0 h1:37BkURamssr1FQkE6ZNSjgesLYMflREiykK/Z3k4l7Q= +cosmossdk.io/core v0.5.0/go.mod h1:QVJT+YsJWs0pD/HuczGY5y/WEc9JCn1ycLsuCDUvFlc= cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z+zfw= cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU= cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w= diff --git a/tests/go.mod b/tests/go.mod index 88bddd971d..5588269d68 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -30,7 +30,7 @@ require ( cloud.google.com/go/storage v1.27.0 // indirect cosmossdk.io/client/v2 v2.0.0-20230104083136-11f46a0bae58 // indirect cosmossdk.io/collections v0.0.0-20230106101515-aeac21494476 // indirect - cosmossdk.io/core v0.4.1 // indirect + cosmossdk.io/core v0.5.0 // indirect cosmossdk.io/errors v1.0.0-beta.7 // indirect cosmossdk.io/x/tx v0.1.0 // indirect filippo.io/edwards25519 v1.0.0-rc.1 // indirect @@ -182,6 +182,7 @@ replace ( // TODO tag all extracted modules after SDK refactor cosmossdk.io/x/nft => ../x/nft github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0 + cosmossdk.io/collections => ../collections // We always want to test against the latest version of the SDK. github.com/cosmos/cosmos-sdk => ../. // Fix upstream GHSA-h395-qcrw-5vmq vulnerability. diff --git a/tests/go.sum b/tests/go.sum index 081e12356f..4abde27c54 100644 --- a/tests/go.sum +++ b/tests/go.sum @@ -52,8 +52,8 @@ cosmossdk.io/client/v2 v2.0.0-20230104083136-11f46a0bae58 h1:q0AkHBZnYhsnnS3AmTU cosmossdk.io/client/v2 v2.0.0-20230104083136-11f46a0bae58/go.mod h1:ztqtfnFSD3edvhNOAShzKod13nfKLM1sZj0uu0fo56w= cosmossdk.io/collections v0.0.0-20230106101515-aeac21494476 h1:dszme7EMNp/qxjgZKjhY4lm5SN+g1Tz95UlX/qZUK64= cosmossdk.io/collections v0.0.0-20230106101515-aeac21494476/go.mod h1:q4avveOJ2Cbgab/Hm/yXDHFPM7NW9InEVysd8TzNPCE= -cosmossdk.io/core v0.4.1 h1:5icpjPmw8J4uFp6w8OoLJPxsw6X3kRi9nAtTr3qp2Ok= -cosmossdk.io/core v0.4.1/go.mod h1:Zqd1GB+krTF3bzhTnPNwzy3NTtXu+MKLX/9sPQXTIDE= +cosmossdk.io/core v0.5.0 h1:37BkURamssr1FQkE6ZNSjgesLYMflREiykK/Z3k4l7Q= +cosmossdk.io/core v0.5.0/go.mod h1:QVJT+YsJWs0pD/HuczGY5y/WEc9JCn1ycLsuCDUvFlc= cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z+zfw= cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU= cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w= diff --git a/tools/confix/go.mod b/tools/confix/go.mod index 0a9aaa63ce..4af0c3d32b 100644 --- a/tools/confix/go.mod +++ b/tools/confix/go.mod @@ -14,7 +14,7 @@ require ( require ( cosmossdk.io/api v0.2.6 // indirect - cosmossdk.io/core v0.4.1 // indirect + cosmossdk.io/core v0.5.0 // indirect cosmossdk.io/depinject v1.0.0-alpha.3 // indirect cosmossdk.io/errors v1.0.0-beta.7 // indirect cosmossdk.io/math v1.0.0-beta.4 // indirect diff --git a/tools/confix/go.sum b/tools/confix/go.sum index 0f67f5701d..6e7a76f3f1 100644 --- a/tools/confix/go.sum +++ b/tools/confix/go.sum @@ -39,6 +39,8 @@ cosmossdk.io/api v0.2.6 h1:AoNwaLLapcLsphhMK6+o0kZl+D6MMUaHVqSdwinASGU= cosmossdk.io/api v0.2.6/go.mod h1:u/d+GAxil0nWpl1XnQL8nkziQDIWuBDhv8VnDm/s6dI= cosmossdk.io/core v0.4.1 h1:5icpjPmw8J4uFp6w8OoLJPxsw6X3kRi9nAtTr3qp2Ok= cosmossdk.io/core v0.4.1/go.mod h1:Zqd1GB+krTF3bzhTnPNwzy3NTtXu+MKLX/9sPQXTIDE= +cosmossdk.io/core v0.5.0 h1:37BkURamssr1FQkE6ZNSjgesLYMflREiykK/Z3k4l7Q= +cosmossdk.io/core v0.5.0/go.mod h1:QVJT+YsJWs0pD/HuczGY5y/WEc9JCn1ycLsuCDUvFlc= cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z+zfw= cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU= cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w= diff --git a/tools/cosmovisor/go.mod b/tools/cosmovisor/go.mod index 54495dcdfd..9cefb86bb5 100644 --- a/tools/cosmovisor/go.mod +++ b/tools/cosmovisor/go.mod @@ -18,7 +18,7 @@ require ( cloud.google.com/go/iam v0.8.0 // indirect cloud.google.com/go/storage v1.27.0 // indirect cosmossdk.io/api v0.2.6 // indirect - cosmossdk.io/core v0.4.1 // indirect + cosmossdk.io/core v0.5.0 // indirect cosmossdk.io/depinject v1.0.0-alpha.3 // indirect cosmossdk.io/errors v1.0.0-beta.7 // indirect cosmossdk.io/math v1.0.0-beta.4 // indirect diff --git a/tools/cosmovisor/go.sum b/tools/cosmovisor/go.sum index e6d964f25a..a21296455d 100644 --- a/tools/cosmovisor/go.sum +++ b/tools/cosmovisor/go.sum @@ -50,6 +50,8 @@ cosmossdk.io/api v0.2.6 h1:AoNwaLLapcLsphhMK6+o0kZl+D6MMUaHVqSdwinASGU= cosmossdk.io/api v0.2.6/go.mod h1:u/d+GAxil0nWpl1XnQL8nkziQDIWuBDhv8VnDm/s6dI= cosmossdk.io/core v0.4.1 h1:5icpjPmw8J4uFp6w8OoLJPxsw6X3kRi9nAtTr3qp2Ok= cosmossdk.io/core v0.4.1/go.mod h1:Zqd1GB+krTF3bzhTnPNwzy3NTtXu+MKLX/9sPQXTIDE= +cosmossdk.io/core v0.5.0 h1:37BkURamssr1FQkE6ZNSjgesLYMflREiykK/Z3k4l7Q= +cosmossdk.io/core v0.5.0/go.mod h1:QVJT+YsJWs0pD/HuczGY5y/WEc9JCn1ycLsuCDUvFlc= cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z+zfw= cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU= cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w= diff --git a/tools/rosetta/go.mod b/tools/rosetta/go.mod index 35b44a369e..34654d1f65 100644 --- a/tools/rosetta/go.mod +++ b/tools/rosetta/go.mod @@ -18,7 +18,7 @@ require ( require ( cosmossdk.io/api v0.2.6 // indirect - cosmossdk.io/core v0.4.1 // indirect + cosmossdk.io/core v0.5.0 // indirect cosmossdk.io/depinject v1.0.0-alpha.3 // indirect cosmossdk.io/errors v1.0.0-beta.7 // indirect filippo.io/edwards25519 v1.0.0-rc.1 // indirect diff --git a/tools/rosetta/go.sum b/tools/rosetta/go.sum index eab3d6269f..0dad089bc8 100644 --- a/tools/rosetta/go.sum +++ b/tools/rosetta/go.sum @@ -39,6 +39,8 @@ cosmossdk.io/api v0.2.6 h1:AoNwaLLapcLsphhMK6+o0kZl+D6MMUaHVqSdwinASGU= cosmossdk.io/api v0.2.6/go.mod h1:u/d+GAxil0nWpl1XnQL8nkziQDIWuBDhv8VnDm/s6dI= cosmossdk.io/core v0.4.1 h1:5icpjPmw8J4uFp6w8OoLJPxsw6X3kRi9nAtTr3qp2Ok= cosmossdk.io/core v0.4.1/go.mod h1:Zqd1GB+krTF3bzhTnPNwzy3NTtXu+MKLX/9sPQXTIDE= +cosmossdk.io/core v0.5.0 h1:37BkURamssr1FQkE6ZNSjgesLYMflREiykK/Z3k4l7Q= +cosmossdk.io/core v0.5.0/go.mod h1:QVJT+YsJWs0pD/HuczGY5y/WEc9JCn1ycLsuCDUvFlc= cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z+zfw= cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU= cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w= diff --git a/types/query/collections_pagination_test.go b/types/query/collections_pagination_test.go index ab0661f57b..24d571b094 100644 --- a/types/query/collections_pagination_test.go +++ b/types/query/collections_pagination_test.go @@ -156,50 +156,28 @@ func (t testStore) OpenKVStore(ctx context.Context) store.KVStore { return t } -func (t testStore) Get(key []byte) []byte { - res, err := t.db.Get(key) - if err != nil { - panic(err) - } - return res +func (t testStore) Get(key []byte) ([]byte, error) { + return t.db.Get(key) } -func (t testStore) Has(key []byte) bool { - res, err := t.db.Has(key) - if err != nil { - panic(err) - } - return res +func (t testStore) Has(key []byte) (bool, error) { + return t.db.Has(key) } -func (t testStore) Set(key, value []byte) { - err := t.db.Set(key, value) - if err != nil { - panic(err) - } +func (t testStore) Set(key, value []byte) error { + return t.db.Set(key, value) } -func (t testStore) Delete(key []byte) { - err := t.db.Delete(key) - if err != nil { - panic(err) - } +func (t testStore) Delete(key []byte) error { + return t.db.Delete(key) } -func (t testStore) Iterator(start, end []byte) store.Iterator { - res, err := t.db.Iterator(start, end) - if err != nil { - panic(err) - } - return res +func (t testStore) Iterator(start, end []byte) (store.Iterator, error) { + return t.db.Iterator(start, end) } -func (t testStore) ReverseIterator(start, end []byte) store.Iterator { - res, err := t.db.ReverseIterator(start, end) - if err != nil { - panic(err) - } - return res +func (t testStore) ReverseIterator(start, end []byte) (store.Iterator, error) { + return t.db.ReverseIterator(start, end) } var _ store.KVStore = testStore{} diff --git a/x/nft/go.mod b/x/nft/go.mod index 797079565e..2923dee63f 100644 --- a/x/nft/go.mod +++ b/x/nft/go.mod @@ -4,7 +4,7 @@ go 1.19 require ( cosmossdk.io/api v0.2.6 - cosmossdk.io/core v0.4.1 + cosmossdk.io/core v0.5.0 cosmossdk.io/depinject v1.0.0-alpha.3 cosmossdk.io/errors v1.0.0-beta.7 cosmossdk.io/math v1.0.0-beta.4 @@ -149,4 +149,7 @@ require ( // TODO Remove it: https://github.com/cosmos/cosmos-sdk/issues/10409 replace github.com/gin-gonic/gin => github.com/gin-gonic/gin v1.8.1 -replace github.com/cosmos/cosmos-sdk => ../.. +replace ( + github.com/cosmos/cosmos-sdk => ../.. + cosmossdk.io/collections => ../../collections +) diff --git a/x/nft/go.sum b/x/nft/go.sum index 20214dedb4..29cf70d929 100644 --- a/x/nft/go.sum +++ b/x/nft/go.sum @@ -39,8 +39,8 @@ cosmossdk.io/api v0.2.6 h1:AoNwaLLapcLsphhMK6+o0kZl+D6MMUaHVqSdwinASGU= cosmossdk.io/api v0.2.6/go.mod h1:u/d+GAxil0nWpl1XnQL8nkziQDIWuBDhv8VnDm/s6dI= cosmossdk.io/collections v0.0.0-20230106101515-aeac21494476 h1:dszme7EMNp/qxjgZKjhY4lm5SN+g1Tz95UlX/qZUK64= cosmossdk.io/collections v0.0.0-20230106101515-aeac21494476/go.mod h1:q4avveOJ2Cbgab/Hm/yXDHFPM7NW9InEVysd8TzNPCE= -cosmossdk.io/core v0.4.1 h1:5icpjPmw8J4uFp6w8OoLJPxsw6X3kRi9nAtTr3qp2Ok= -cosmossdk.io/core v0.4.1/go.mod h1:Zqd1GB+krTF3bzhTnPNwzy3NTtXu+MKLX/9sPQXTIDE= +cosmossdk.io/core v0.5.0 h1:37BkURamssr1FQkE6ZNSjgesLYMflREiykK/Z3k4l7Q= +cosmossdk.io/core v0.5.0/go.mod h1:QVJT+YsJWs0pD/HuczGY5y/WEc9JCn1ycLsuCDUvFlc= cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z+zfw= cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU= cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w= diff --git a/x/tx/go.mod b/x/tx/go.mod index ed98d02212..694f60329e 100644 --- a/x/tx/go.mod +++ b/x/tx/go.mod @@ -4,7 +4,7 @@ go 1.19 require ( cosmossdk.io/api v0.2.6 - cosmossdk.io/core v0.4.1 + cosmossdk.io/core v0.5.0 cosmossdk.io/math v1.0.0-beta.4 github.com/cosmos/cosmos-proto v1.0.0-beta.1 github.com/google/go-cmp v0.5.9 diff --git a/x/tx/go.sum b/x/tx/go.sum index b6b896d2a3..81b4dd4f65 100644 --- a/x/tx/go.sum +++ b/x/tx/go.sum @@ -2,6 +2,8 @@ cosmossdk.io/api v0.2.6 h1:AoNwaLLapcLsphhMK6+o0kZl+D6MMUaHVqSdwinASGU= cosmossdk.io/api v0.2.6/go.mod h1:u/d+GAxil0nWpl1XnQL8nkziQDIWuBDhv8VnDm/s6dI= cosmossdk.io/core v0.4.1 h1:5icpjPmw8J4uFp6w8OoLJPxsw6X3kRi9nAtTr3qp2Ok= cosmossdk.io/core v0.4.1/go.mod h1:Zqd1GB+krTF3bzhTnPNwzy3NTtXu+MKLX/9sPQXTIDE= +cosmossdk.io/core v0.5.0 h1:37BkURamssr1FQkE6ZNSjgesLYMflREiykK/Z3k4l7Q= +cosmossdk.io/core v0.5.0/go.mod h1:QVJT+YsJWs0pD/HuczGY5y/WEc9JCn1ycLsuCDUvFlc= cosmossdk.io/math v1.0.0-beta.4 h1:JtKedVLGzA0vv84xjYmZ75RKG35Kf2WwcFu8IjRkIIw= cosmossdk.io/math v1.0.0-beta.4/go.mod h1:An0MllWJY6PxibUpnwGk8jOm+a/qIxlKmL5Zyp9NnaM= github.com/cosmos/cosmos-proto v1.0.0-beta.1 h1:iDL5qh++NoXxG8hSy93FdYJut4XfgbShIocllGaXx/0=