From 8c74d47d69580ce92863ec9d2df92e68fcbb1f0f Mon Sep 17 00:00:00 2001 From: Jacob Gadikian Date: Wed, 3 May 2023 15:14:53 +0700 Subject: [PATCH 1/3] use cosmossdk.io/errors --- app/params/config.go | 7 +- go.mod | 1 + go.sum | 2 + osmomath/go.mod | 2 +- osmoutils/go.mod | 3 +- osmoutils/go.sum | 2 +- tests/cl-genesis-positions/go.mod | 2 +- tests/cl-go-client/go.mod | 5 +- tests/cl-go-client/go.sum | 10 +-- wasmbinding/message_plugin.go | 30 +++---- wasmbinding/query_plugin.go | 8 +- x/concentrated-liquidity/incentives_test.go | 3 +- x/cosmwasmpool/model/msgs.go | 3 +- x/epochs/go.mod | 3 +- x/epochs/go.sum | 2 +- x/gamm/handler.go | 4 +- x/gamm/keeper/grpc_query.go | 6 +- x/gamm/keeper/grpc_query_test.go | 12 +-- x/gamm/keeper/migrate_test.go | 9 ++- x/gamm/keeper/pool.go | 5 +- x/gamm/keeper/pool_service.go | 29 +++---- x/gamm/keeper/swap.go | 12 +-- x/gamm/pool-models/balancer/amm.go | 9 ++- x/gamm/pool-models/balancer/msgs.go | 5 +- x/gamm/pool-models/balancer/pool.go | 20 ++--- x/gamm/pool-models/balancer/pool_asset.go | 7 +- .../pool-models/balancer/pool_suite_test.go | 4 +- x/gamm/pool-models/internal/cfmm_common/lp.go | 8 +- x/gamm/pool-models/stableswap/msgs.go | 5 +- x/gamm/pool-models/stableswap/pool.go | 7 +- x/gamm/types/errors.go | 79 ++++++++++--------- x/gamm/types/msgs.go | 51 ++++++------ x/ibc-hooks/go.mod | 4 +- x/ibc-hooks/go.sum | 3 +- x/ibc-hooks/types/errors.go | 16 ++-- x/ibc-hooks/wasm_hook.go | 14 ++-- x/ibc-rate-limit/ibc_module.go | 8 +- x/ibc-rate-limit/ics4_wrapper.go | 4 +- x/ibc-rate-limit/rate_limit.go | 7 +- x/ibc-rate-limit/types/errors.go | 8 +- x/incentives/keeper/gauge.go | 4 +- x/incentives/keeper/grpc_query.go | 6 +- x/incentives/keeper/msg_server.go | 5 +- x/lockup/keeper/grpc_query.go | 26 +++--- x/lockup/keeper/lock.go | 6 +- x/lockup/keeper/msg_server.go | 25 +++--- x/lockup/keeper/store.go | 4 +- x/lockup/types/errors.go | 14 ++-- x/lockup/types/msgs.go | 15 ++-- x/mint/keeper/keeper.go | 7 +- x/mint/keeper/keeper_test.go | 11 +-- x/mint/types/errors.go | 8 +- x/pool-incentives/handler.go | 4 +- x/pool-incentives/keeper/distr.go | 9 ++- x/pool-incentives/types/errors.go | 18 ++--- x/poolmanager/types/msgs.go | 9 ++- x/protorev/proposal_handler.go | 3 +- x/protorev/types/msg.go | 16 ++-- x/superfluid/keeper/grpc_query.go | 25 +++--- x/superfluid/keeper/migrate_test.go | 4 +- x/superfluid/keeper/stake.go | 8 +- x/superfluid/keeper/stake_test.go | 10 +-- x/superfluid/keeper/superfluid_asset_store.go | 5 +- x/superfluid/proposal_handler.go | 4 +- x/superfluid/types/errors.go | 28 +++---- x/superfluid/types/msgs.go | 9 ++- x/tokenfactory/keeper/before_send.go | 4 +- x/tokenfactory/types/denoms.go | 8 +- x/tokenfactory/types/errors.go | 22 +++--- x/tokenfactory/types/genesis.go | 6 +- x/tokenfactory/types/msgs.go | 31 ++++---- x/txfees/handler.go | 4 +- x/txfees/keeper/feedecorator.go | 23 +++--- x/txfees/keeper/feetokens.go | 7 +- x/txfees/keeper/grpc_query.go | 5 +- x/txfees/types/errors.go | 12 +-- x/valset-pref/types/msgs.go | 19 ++--- 77 files changed, 453 insertions(+), 390 deletions(-) diff --git a/app/params/config.go b/app/params/config.go index b5325ecf795..b463dd45fcf 100644 --- a/app/params/config.go +++ b/app/params/config.go @@ -1,6 +1,7 @@ package params import ( + errorsmod "cosmossdk.io/errors" "github.com/cosmos/cosmos-sdk/types/address" sdk "github.com/cosmos/cosmos-sdk/types" @@ -59,16 +60,16 @@ func SetAddressPrefixes() { // source: https://github.com/cosmos/cosmos-sdk/blob/v0.43.0-beta1/types/address.go#L141 config.SetAddressVerifier(func(bytes []byte) error { if len(bytes) == 0 { - return sdkerrors.Wrap(sdkerrors.ErrUnknownAddress, "addresses cannot be empty") + return errorsmod.Wrap(sdkerrors.ErrUnknownAddress, "addresses cannot be empty") } if len(bytes) > address.MaxAddrLen { - return sdkerrors.Wrapf(sdkerrors.ErrUnknownAddress, "address max length is %d, got %d, %x", address.MaxAddrLen, len(bytes), bytes) + return errorsmod.Wrapf(sdkerrors.ErrUnknownAddress, "address max length is %d, got %d, %x", address.MaxAddrLen, len(bytes), bytes) } // TODO: Do we want to allow addresses of lengths other than 20 and 32 bytes? if len(bytes) != 20 && len(bytes) != 32 { - return sdkerrors.Wrapf(sdkerrors.ErrUnknownAddress, "address length must be 20 or 32 bytes, got %d, %x", len(bytes), bytes) + return errorsmod.Wrapf(sdkerrors.ErrUnknownAddress, "address length must be 20 or 32 bytes, got %d, %x", len(bytes), bytes) } return nil diff --git a/go.mod b/go.mod index d6a141c515d..fc92a7426cf 100644 --- a/go.mod +++ b/go.mod @@ -3,6 +3,7 @@ module github.com/osmosis-labs/osmosis/v15 go 1.20 require ( + cosmossdk.io/errors v1.0.0-beta.7 github.com/CosmWasm/wasmd v0.31.0 github.com/cosmos/cosmos-proto v1.0.0-beta.2 github.com/cosmos/cosmos-sdk v0.47.2 diff --git a/go.sum b/go.sum index 1fc9f697338..537cf2753ed 100644 --- a/go.sum +++ b/go.sum @@ -42,6 +42,8 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= collectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE= +cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w= +cosmossdk.io/errors v1.0.0-beta.7/go.mod h1:mz6FQMJRku4bY7aqS/Gwfcmr/ue91roMEKAmDUDpBfE= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0-rc.1 h1:m0VOOB23frXZvAOK44usCgLWvtsxIoMCTBGJZlpmGfU= filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= diff --git a/osmomath/go.mod b/osmomath/go.mod index 09923b20dcc..f23f838e343 100644 --- a/osmomath/go.mod +++ b/osmomath/go.mod @@ -3,7 +3,7 @@ module github.com/osmosis-labs/osmosis/osmomath go 1.20 require ( - github.com/cosmos/cosmos-sdk v0.47.1 + github.com/cosmos/cosmos-sdk v0.47.2 github.com/stretchr/testify v1.8.2 gopkg.in/yaml.v2 v2.4.0 ) diff --git a/osmoutils/go.mod b/osmoutils/go.mod index 6870dc93e63..252e6ccd1a7 100644 --- a/osmoutils/go.mod +++ b/osmoutils/go.mod @@ -3,7 +3,7 @@ module github.com/osmosis-labs/osmosis/osmoutils go 1.20 require ( - github.com/cosmos/cosmos-sdk v0.47.1 + github.com/cosmos/cosmos-sdk v0.47.2 github.com/cosmos/iavl v0.19.5 github.com/cosmos/ibc-go/v4 v4.3.0 github.com/gogo/protobuf v1.3.3 @@ -91,6 +91,7 @@ require ( github.com/mtibben/percent v0.2.1 // indirect github.com/onsi/ginkgo v1.16.4 // indirect github.com/onsi/gomega v1.26.0 // indirect + github.com/opencontainers/runc v1.1.5 // indirect github.com/pelletier/go-toml/v2 v2.0.6 // indirect github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 // indirect github.com/pkg/errors v0.9.1 // indirect diff --git a/osmoutils/go.sum b/osmoutils/go.sum index 90d4d78d23d..30a42c6a331 100644 --- a/osmoutils/go.sum +++ b/osmoutils/go.sum @@ -669,7 +669,7 @@ github.com/onsi/gomega v1.26.0/go.mod h1:r+zV744Re+DiYCIPRlYOTxn0YkOLcAnW8k1xXdM github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= -github.com/opencontainers/runc v1.1.3 h1:vIXrkId+0/J2Ymu2m7VjGvbSlAId9XNRPhn2p4b+d8w= +github.com/opencontainers/runc v1.1.5 h1:L44KXEpKmfWDcS02aeGm8QNTFXTo2D+8MYGDIJ/GDEs= github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= diff --git a/tests/cl-genesis-positions/go.mod b/tests/cl-genesis-positions/go.mod index 8ca55157b03..90aa14cad42 100644 --- a/tests/cl-genesis-positions/go.mod +++ b/tests/cl-genesis-positions/go.mod @@ -3,7 +3,7 @@ module cl-get-positions-subgraph go 1.20 require ( - github.com/cosmos/cosmos-sdk v0.47.1 + github.com/cosmos/cosmos-sdk v0.47.2 github.com/ignite/cli v0.23.0 github.com/osmosis-labs/osmosis/osmomath v0.0.3-dev.0.20230425121701-4d427b673864 github.com/osmosis-labs/osmosis/v15 v15.0.0-20230428145105-bbf71267279b diff --git a/tests/cl-go-client/go.mod b/tests/cl-go-client/go.mod index 6f3c99127b1..bac64ff11dc 100644 --- a/tests/cl-go-client/go.mod +++ b/tests/cl-go-client/go.mod @@ -3,13 +3,14 @@ module cl-positions go 1.20 require ( - github.com/cosmos/cosmos-sdk v0.47.1 + github.com/cosmos/cosmos-sdk v0.47.2 github.com/ignite/cli v0.23.0 github.com/osmosis-labs/osmosis/v15 v15.0.0-20230428145105-bbf71267279b ) require ( + cosmossdk.io/errors v1.0.0-beta.7 // indirect filippo.io/edwards25519 v1.0.0-rc.1 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect @@ -42,7 +43,6 @@ require ( github.com/dustin/go-humanize v1.0.1-0.20200219035652-afde56e7acac // indirect github.com/dvsekhvalnov/jose2go v1.5.0 // indirect github.com/felixge/httpsnoop v1.0.2 // indirect - github.com/frankban/quicktest v1.14.4 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/ghodss/yaml v1.0.0 // indirect github.com/gin-gonic/gin v1.8.1 // indirect @@ -101,7 +101,6 @@ require ( github.com/rakyll/statik v0.1.7 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/regen-network/cosmos-proto v0.3.1 // indirect - github.com/rogpeppe/go-internal v1.10.0 // indirect github.com/rs/cors v1.8.2 // indirect github.com/rs/zerolog v1.27.0 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect diff --git a/tests/cl-go-client/go.sum b/tests/cl-go-client/go.sum index bf4bca2a33e..b1e57f25e8c 100644 --- a/tests/cl-go-client/go.sum +++ b/tests/cl-go-client/go.sum @@ -38,6 +38,7 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= collectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE= +cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0-rc.1 h1:m0VOOB23frXZvAOK44usCgLWvtsxIoMCTBGJZlpmGfU= filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -273,7 +274,6 @@ github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8 github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= @@ -398,7 +398,6 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.1.1-0.20200604201612-c04b05f3adfa/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -564,7 +563,6 @@ github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORN github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= -github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -680,7 +678,7 @@ github.com/onsi/gomega v1.26.0 h1:03cDLK28U6hWvCAns6NeydX3zIm4SF3ci69ulidS32Q= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= -github.com/opencontainers/runc v1.1.3 h1:vIXrkId+0/J2Ymu2m7VjGvbSlAId9XNRPhn2p4b+d8w= +github.com/opencontainers/runc v1.1.5 h1:L44KXEpKmfWDcS02aeGm8QNTFXTo2D+8MYGDIJ/GDEs= github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= @@ -693,7 +691,7 @@ github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnh github.com/ory/dockertest v3.3.5+incompatible h1:iLLK6SQwIhcbrG783Dghaaa3WPzGc+4Emza6EbVUUGA= github.com/osmosis-labs/cosmos-sdk v0.45.1-0.20230326212251-7a2cf2993434 h1:RetElHdhDl6f00Tjj7ii2r+HX2aa/u+dhgwQb5hKv8Y= github.com/osmosis-labs/cosmos-sdk v0.45.1-0.20230326212251-7a2cf2993434/go.mod h1:ss3tUfPTwaa6NsoPZrCR7xOqLqCK0LwoNbc2Q8Zs5/Y= -github.com/osmosis-labs/osmosis/osmomath v0.0.3-dev.0.20230328024000-175ec88e4304 h1:iSSlHl+SoewNpP/2N8JaUEHhOQRmJAnS8zaJ11yWslY= +github.com/osmosis-labs/osmosis/osmomath v0.0.3-dev.0.20230425121701-4d427b673864 h1:UhkJ67kx4NP7FEEQ+ybpDLIiS0Rl8vX8G55FKZux98I= github.com/osmosis-labs/osmosis/osmomath v0.0.3-dev.0.20230425121701-4d427b673864/go.mod h1:Hu4OHAvKtnCaqA4GlodNf89JZ+2TFtH7IDNxNi6Vue8= github.com/osmosis-labs/osmosis/osmoutils v0.0.0-20230411200859-ae3065d0ca05 h1:fqVGxZPgUWuYWxVcMxHz5vrDV/aoxGJ7Kt0J4Vu/bsY= github.com/osmosis-labs/osmosis/osmoutils v0.0.0-20230411200859-ae3065d0ca05/go.mod h1:zyBrzl2rsZWGbOU+/1hzA+xoQlCshzZuHe/5mzdb/zo= @@ -783,9 +781,7 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/cors v1.8.2 h1:KCooALfAYGs415Cwu5ABvv9n9509fSiG5SQJn/AQo4U= github.com/rs/cors v1.8.2/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= diff --git a/wasmbinding/message_plugin.go b/wasmbinding/message_plugin.go index ec64c353776..680b36c611d 100644 --- a/wasmbinding/message_plugin.go +++ b/wasmbinding/message_plugin.go @@ -3,10 +3,10 @@ package wasmbinding import ( "encoding/json" + errorsmod "cosmossdk.io/errors" wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" wasmvmtypes "github.com/CosmWasm/wasmvm/types" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" "github.com/osmosis-labs/osmosis/v15/wasmbinding/bindings" @@ -41,7 +41,7 @@ func (m *CustomMessenger) DispatchMsg(ctx sdk.Context, contractAddr sdk.AccAddre // leave everything else for the wrapped version var contractMsg bindings.OsmosisMsg if err := json.Unmarshal(msg.Custom, &contractMsg); err != nil { - return nil, nil, sdkerrors.Wrap(err, "osmosis msg") + return nil, nil, errorsmod.Wrap(err, "osmosis msg") } if contractMsg.CreateDenom != nil { return m.createDenom(ctx, contractAddr, contractMsg.CreateDenom) @@ -63,7 +63,7 @@ func (m *CustomMessenger) DispatchMsg(ctx sdk.Context, contractAddr sdk.AccAddre func (m *CustomMessenger) createDenom(ctx sdk.Context, contractAddr sdk.AccAddress, createDenom *bindings.CreateDenom) ([]sdk.Event, [][]byte, error) { err := PerformCreateDenom(m.tokenFactory, m.bank, ctx, contractAddr, createDenom) if err != nil { - return nil, nil, sdkerrors.Wrap(err, "perform create denom") + return nil, nil, errorsmod.Wrap(err, "perform create denom") } return nil, nil, nil } @@ -79,7 +79,7 @@ func PerformCreateDenom(f *tokenfactorykeeper.Keeper, b *bankkeeper.BaseKeeper, msgCreateDenom := tokenfactorytypes.NewMsgCreateDenom(contractAddr.String(), createDenom.Subdenom) if err := msgCreateDenom.ValidateBasic(); err != nil { - return sdkerrors.Wrap(err, "failed validating MsgCreateDenom") + return errorsmod.Wrap(err, "failed validating MsgCreateDenom") } // Create denom @@ -88,7 +88,7 @@ func PerformCreateDenom(f *tokenfactorykeeper.Keeper, b *bankkeeper.BaseKeeper, msgCreateDenom, ) if err != nil { - return sdkerrors.Wrap(err, "creating denom") + return errorsmod.Wrap(err, "creating denom") } return nil } @@ -97,7 +97,7 @@ func PerformCreateDenom(f *tokenfactorykeeper.Keeper, b *bankkeeper.BaseKeeper, func (m *CustomMessenger) mintTokens(ctx sdk.Context, contractAddr sdk.AccAddress, mint *bindings.MintTokens) ([]sdk.Event, [][]byte, error) { err := PerformMint(m.tokenFactory, m.bank, ctx, contractAddr, mint) if err != nil { - return nil, nil, sdkerrors.Wrap(err, "perform mint") + return nil, nil, errorsmod.Wrap(err, "perform mint") } return nil, nil, nil } @@ -122,11 +122,11 @@ func PerformMint(f *tokenfactorykeeper.Keeper, b *bankkeeper.BaseKeeper, ctx sdk msgServer := tokenfactorykeeper.NewMsgServerImpl(*f) _, err = msgServer.Mint(sdk.WrapSDKContext(ctx), sdkMsg) if err != nil { - return sdkerrors.Wrap(err, "minting coins from message") + return errorsmod.Wrap(err, "minting coins from message") } err = b.SendCoins(ctx, contractAddr, rcpt, sdk.NewCoins(coin)) if err != nil { - return sdkerrors.Wrap(err, "sending newly minted coins from message") + return errorsmod.Wrap(err, "sending newly minted coins from message") } return nil } @@ -135,7 +135,7 @@ func PerformMint(f *tokenfactorykeeper.Keeper, b *bankkeeper.BaseKeeper, ctx sdk func (m *CustomMessenger) changeAdmin(ctx sdk.Context, contractAddr sdk.AccAddress, changeAdmin *bindings.ChangeAdmin) ([]sdk.Event, [][]byte, error) { err := ChangeAdmin(m.tokenFactory, ctx, contractAddr, changeAdmin) if err != nil { - return nil, nil, sdkerrors.Wrap(err, "failed to change admin") + return nil, nil, errorsmod.Wrap(err, "failed to change admin") } return nil, nil, nil } @@ -158,7 +158,7 @@ func ChangeAdmin(f *tokenfactorykeeper.Keeper, ctx sdk.Context, contractAddr sdk msgServer := tokenfactorykeeper.NewMsgServerImpl(*f) _, err = msgServer.ChangeAdmin(sdk.WrapSDKContext(ctx), changeAdminMsg) if err != nil { - return sdkerrors.Wrap(err, "failed changing admin from message") + return errorsmod.Wrap(err, "failed changing admin from message") } return nil } @@ -167,7 +167,7 @@ func ChangeAdmin(f *tokenfactorykeeper.Keeper, ctx sdk.Context, contractAddr sdk func (m *CustomMessenger) burnTokens(ctx sdk.Context, contractAddr sdk.AccAddress, burn *bindings.BurnTokens) ([]sdk.Event, [][]byte, error) { err := PerformBurn(m.tokenFactory, ctx, contractAddr, burn) if err != nil { - return nil, nil, sdkerrors.Wrap(err, "perform burn") + return nil, nil, errorsmod.Wrap(err, "perform burn") } return nil, nil, nil } @@ -188,7 +188,7 @@ func PerformBurn(f *tokenfactorykeeper.Keeper, ctx sdk.Context, contractAddr sdk msgServer := tokenfactorykeeper.NewMsgServerImpl(*f) _, err := msgServer.Burn(sdk.WrapSDKContext(ctx), sdkMsg) if err != nil { - return sdkerrors.Wrap(err, "burning coins from message") + return errorsmod.Wrap(err, "burning coins from message") } return nil } @@ -201,7 +201,7 @@ func GetFullDenom(contract string, subDenom string) (string, error) { } fullDenom, err := tokenfactorytypes.GetTokenDenom(contract, subDenom) if err != nil { - return "", sdkerrors.Wrap(err, "validate sub-denom") + return "", errorsmod.Wrap(err, "validate sub-denom") } return fullDenom, nil @@ -211,11 +211,11 @@ func GetFullDenom(contract string, subDenom string) (string, error) { func parseAddress(addr string) (sdk.AccAddress, error) { parsed, err := sdk.AccAddressFromBech32(addr) if err != nil { - return nil, sdkerrors.Wrap(err, "address from bech32") + return nil, errorsmod.Wrap(err, "address from bech32") } err = sdk.VerifyAddressFormat(parsed) if err != nil { - return nil, sdkerrors.Wrap(err, "verify address format") + return nil, errorsmod.Wrap(err, "verify address format") } return parsed, nil } diff --git a/wasmbinding/query_plugin.go b/wasmbinding/query_plugin.go index fccf6864543..8af1ddca7c7 100644 --- a/wasmbinding/query_plugin.go +++ b/wasmbinding/query_plugin.go @@ -4,11 +4,11 @@ import ( "encoding/json" "fmt" + errorsmod "cosmossdk.io/errors" wasmvmtypes "github.com/CosmWasm/wasmvm/types" "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" abci "github.com/tendermint/tendermint/abci/types" "github.com/osmosis-labs/osmosis/v15/wasmbinding/bindings" @@ -49,7 +49,7 @@ func CustomQuerier(qp *QueryPlugin) func(ctx sdk.Context, request json.RawMessag return func(ctx sdk.Context, request json.RawMessage) ([]byte, error) { var contractQuery bindings.OsmosisQuery if err := json.Unmarshal(request, &contractQuery); err != nil { - return nil, sdkerrors.Wrap(err, "osmosis query") + return nil, errorsmod.Wrap(err, "osmosis query") } switch { @@ -59,7 +59,7 @@ func CustomQuerier(qp *QueryPlugin) func(ctx sdk.Context, request json.RawMessag fullDenom, err := GetFullDenom(creator, subdenom) if err != nil { - return nil, sdkerrors.Wrap(err, "osmo full denom query") + return nil, errorsmod.Wrap(err, "osmo full denom query") } res := bindings.FullDenomResponse{ @@ -68,7 +68,7 @@ func CustomQuerier(qp *QueryPlugin) func(ctx sdk.Context, request json.RawMessag bz, err := json.Marshal(res) if err != nil { - return nil, sdkerrors.Wrap(err, "osmo full denom query response") + return nil, errorsmod.Wrap(err, "osmo full denom query response") } return bz, nil diff --git a/x/concentrated-liquidity/incentives_test.go b/x/concentrated-liquidity/incentives_test.go index 0e0d5e3d389..d061b9e1647 100644 --- a/x/concentrated-liquidity/incentives_test.go +++ b/x/concentrated-liquidity/incentives_test.go @@ -6,6 +6,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" + errorsmod "cosmossdk.io/errors" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/osmosis-labs/osmosis/osmoutils" @@ -4019,7 +4020,7 @@ func (s *KeeperTestSuite) TestClaimAndResetFullRangeBalancerPool() { uptimeGrowth: uptimeHelper.hundredTokensMultiDenom, insufficientPoolBalance: true, - expectedError: sdkerrors.Wrapf(sdkerrors.ErrInsufficientFunds, "%s is smaller than %s", sdk.NewCoin("bar", sdk.ZeroInt()), sdk.NewCoin("bar", sdk.NewInt(47500))), + expectedError: errorsmod.Wrapf(sdkerrors.ErrInsufficientFunds, "%s is smaller than %s", sdk.NewCoin("bar", sdk.ZeroInt()), sdk.NewCoin("bar", sdk.NewInt(47500))), }, } for name, tc := range tests { diff --git a/x/cosmwasmpool/model/msgs.go b/x/cosmwasmpool/model/msgs.go index 028ad0c71b7..a93b185478f 100644 --- a/x/cosmwasmpool/model/msgs.go +++ b/x/cosmwasmpool/model/msgs.go @@ -3,6 +3,7 @@ package model import ( sdk "github.com/cosmos/cosmos-sdk/types" + errorsmod "cosmossdk.io/errors" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/osmosis-labs/osmosis/v15/x/cosmwasmpool/types" @@ -34,7 +35,7 @@ func (msg MsgCreateCosmWasmPool) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(msg.Sender) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } return nil diff --git a/x/epochs/go.mod b/x/epochs/go.mod index a868ffe8cae..e3378da8e85 100644 --- a/x/epochs/go.mod +++ b/x/epochs/go.mod @@ -3,7 +3,7 @@ module github.com/osmosis-labs/osmosis/x/epochs go 1.20 require ( - github.com/cosmos/cosmos-sdk v0.47.1 + github.com/cosmos/cosmos-sdk v0.47.2 github.com/gogo/protobuf v1.3.3 github.com/golang/protobuf v1.5.3 github.com/gorilla/mux v1.8.0 @@ -88,6 +88,7 @@ require ( github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mtibben/percent v0.2.1 // indirect github.com/nxadm/tail v1.4.8 // indirect + github.com/opencontainers/runc v1.1.5 // indirect github.com/pelletier/go-toml/v2 v2.0.6 // indirect github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 // indirect github.com/pkg/errors v0.9.1 // indirect diff --git a/x/epochs/go.sum b/x/epochs/go.sum index bc344f3f182..3f9d9e32a80 100644 --- a/x/epochs/go.sum +++ b/x/epochs/go.sum @@ -671,7 +671,7 @@ github.com/onsi/gomega v1.26.0 h1:03cDLK28U6hWvCAns6NeydX3zIm4SF3ci69ulidS32Q= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= -github.com/opencontainers/runc v1.1.3 h1:vIXrkId+0/J2Ymu2m7VjGvbSlAId9XNRPhn2p4b+d8w= +github.com/opencontainers/runc v1.1.5 h1:L44KXEpKmfWDcS02aeGm8QNTFXTo2D+8MYGDIJ/GDEs= github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= diff --git a/x/gamm/handler.go b/x/gamm/handler.go index 86e26b8b5ce..d2cf8f3b755 100644 --- a/x/gamm/handler.go +++ b/x/gamm/handler.go @@ -1,8 +1,10 @@ package gamm import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" "github.com/osmosis-labs/osmosis/v15/x/gamm/keeper" @@ -19,7 +21,7 @@ func NewMigrationRecordHandler(k keeper.Keeper) govtypes.Handler { return handleReplaceMigrationRecordsProposal(ctx, k, c) default: - return sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized migration record proposal content type: %T", c) + return errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized migration record proposal content type: %T", c) } } } diff --git a/x/gamm/keeper/grpc_query.go b/x/gamm/keeper/grpc_query.go index 86e2e833d46..c2a17ffb596 100644 --- a/x/gamm/keeper/grpc_query.go +++ b/x/gamm/keeper/grpc_query.go @@ -7,10 +7,12 @@ import ( "google.golang.org/grpc/codes" "google.golang.org/grpc/status" + errorsmod "cosmossdk.io/errors" codectypes "github.com/cosmos/cosmos-sdk/codec/types" "github.com/cosmos/cosmos-sdk/store/prefix" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/cosmos/cosmos-sdk/types/query" "github.com/osmosis-labs/osmosis/v15/x/gamm/pool-models/balancer" @@ -251,7 +253,7 @@ func (q Querier) CalcExitPoolCoinsFromShares(ctx context.Context, req *types.Que totalSharesAmount := pool.GetTotalShares() if req.ShareInAmount.GTE(totalSharesAmount) || req.ShareInAmount.LTE(sdk.ZeroInt()) { - return nil, sdkerrors.Wrapf(types.ErrInvalidMathApprox, "share ratio is zero or negative") + return nil, errorsmod.Wrapf(types.ErrInvalidMathApprox, "share ratio is zero or negative") } exitCoins, err := pool.CalcExitPoolCoinsFromShares(sdkCtx, req.ShareInAmount, exitFee) @@ -311,7 +313,7 @@ func (q Querier) PoolParams(ctx context.Context, req *types.QueryPoolParamsReque default: errMsg := fmt.Sprintf("unrecognized %s pool type: %T", types.ModuleName, pool) - return nil, sdkerrors.Wrap(sdkerrors.ErrUnpackAny, errMsg) + return nil, errorsmod.Wrap(sdkerrors.ErrUnpackAny, errMsg) } } diff --git a/x/gamm/keeper/grpc_query_test.go b/x/gamm/keeper/grpc_query_test.go index c62a66b1054..f0d912ffba4 100644 --- a/x/gamm/keeper/grpc_query_test.go +++ b/x/gamm/keeper/grpc_query_test.go @@ -4,16 +4,16 @@ import ( gocontext "context" "errors" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/cosmos/cosmos-sdk/types/query" "github.com/osmosis-labs/osmosis/v15/x/gamm/pool-models/balancer" balancertypes "github.com/osmosis-labs/osmosis/v15/x/gamm/pool-models/balancer" "github.com/osmosis-labs/osmosis/v15/x/gamm/pool-models/stableswap" "github.com/osmosis-labs/osmosis/v15/x/gamm/types" - poolmanagertypes "github.com/osmosis-labs/osmosis/v15/x/poolmanager/types" "github.com/osmosis-labs/osmosis/v15/x/gamm/v2types" + poolmanagertypes "github.com/osmosis-labs/osmosis/v15/x/poolmanager/types" ) func (suite *KeeperTestSuite) TestCalcExitPoolCoinsFromShares() { @@ -44,13 +44,13 @@ func (suite *KeeperTestSuite) TestCalcExitPoolCoinsFromShares() { "zero share in amount", poolId, sdk.ZeroInt(), - sdkerrors.Wrapf(types.ErrInvalidMathApprox, "share ratio is zero or negative"), + errorsmod.Wrapf(types.ErrInvalidMathApprox, "share ratio is zero or negative"), }, { "negative share in amount", poolId, sdk.NewInt(-10000), - sdkerrors.Wrapf(types.ErrInvalidMathApprox, "share ratio is zero or negative"), + errorsmod.Wrapf(types.ErrInvalidMathApprox, "share ratio is zero or negative"), }, } @@ -132,7 +132,7 @@ func (suite *KeeperTestSuite) TestCalcJoinPoolNoSwapShares() { "token in denom does not exist", poolId, sdk.NewCoins(sdk.NewCoin("random", sdk.NewInt(10000))), - sdkerrors.Wrapf(types.ErrDenomNotFoundInPool, "input denoms must already exist in the pool (%s)", "random"), + errorsmod.Wrapf(types.ErrDenomNotFoundInPool, "input denoms must already exist in the pool (%s)", "random"), }, { "join pool with incorrect amount of assets", @@ -396,7 +396,7 @@ func (suite *KeeperTestSuite) TestCalcJoinPoolShares() { "token in denom does not exist", poolId, sdk.NewCoins(sdk.NewCoin("random", sdk.NewInt(10000))), - sdkerrors.Wrapf(types.ErrDenomNotFoundInPool, "input denoms must already exist in the pool (%s)", "random"), + errorsmod.Wrapf(types.ErrDenomNotFoundInPool, "input denoms must already exist in the pool (%s)", "random"), }, { "join pool with incorrect amount of assets", diff --git a/x/gamm/keeper/migrate_test.go b/x/gamm/keeper/migrate_test.go index 7871bd6d27d..90c2ca4f080 100644 --- a/x/gamm/keeper/migrate_test.go +++ b/x/gamm/keeper/migrate_test.go @@ -3,6 +3,7 @@ package keeper_test import ( "fmt" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -96,7 +97,7 @@ func (suite *KeeperTestSuite) TestMigrate() { sharesToCreate: defaultGammShares.Amount, expectedLiquidity: sdk.MustNewDecFromStr("100000000000.000000010000000000"), setupPoolMigrationLink: true, - expectedErr: sdkerrors.Wrap(sdkerrors.ErrInsufficientFunds, fmt.Sprintf("%s is smaller than %s", defaultGammShares, invalidGammShares)), + expectedErr: errorsmod.Wrap(sdkerrors.ErrInsufficientFunds, fmt.Sprintf("%s is smaller than %s", defaultGammShares, invalidGammShares)), }, // test token out mins { @@ -123,7 +124,7 @@ func (suite *KeeperTestSuite) TestMigrate() { tokenOutMins: sdk.NewCoins(sdk.NewCoin(ETH, sdk.NewInt(110000000000)), sdk.NewCoin(USDC, sdk.NewInt(110000000000))), expectedLiquidity: sdk.MustNewDecFromStr("100000000000.000000010000000000"), setupPoolMigrationLink: true, - expectedErr: sdkerrors.Wrapf(types.ErrLimitMinAmount, + expectedErr: errorsmod.Wrapf(types.ErrLimitMinAmount, "Exit pool returned %s , minimum tokens out specified as %s", sdk.NewCoins(sdk.NewCoin(ETH, sdk.NewInt(100000000000)), sdk.NewCoin(USDC, sdk.NewInt(100000000000))), sdk.NewCoins(sdk.NewCoin(ETH, sdk.NewInt(110000000000)), sdk.NewCoin(USDC, sdk.NewInt(110000000000)))), errTolerance: defaultErrorTolerance, @@ -139,7 +140,7 @@ func (suite *KeeperTestSuite) TestMigrate() { tokenOutMins: sdk.NewCoins(sdk.NewCoin(ETH, sdk.NewInt(110000000000)), sdk.NewCoin(USDC, sdk.NewInt(100000000000))), expectedLiquidity: sdk.MustNewDecFromStr("100000000000.000000010000000000"), setupPoolMigrationLink: true, - expectedErr: sdkerrors.Wrapf(types.ErrLimitMinAmount, + expectedErr: errorsmod.Wrapf(types.ErrLimitMinAmount, "Exit pool returned %s , minimum tokens out specified as %s", sdk.NewCoins(sdk.NewCoin(ETH, sdk.NewInt(100000000000)), sdk.NewCoin(USDC, sdk.NewInt(100000000000))), sdk.NewCoins(sdk.NewCoin(ETH, sdk.NewInt(110000000000)), sdk.NewCoin(USDC, sdk.NewInt(100000000000)))), errTolerance: defaultErrorTolerance, @@ -258,6 +259,7 @@ func (suite *KeeperTestSuite) TestMigrate() { suite.Require().Equal(0, test.errTolerance.Compare(userUsdcBalanceTransferredToClPool.Amount, amount1)) } } + func (suite *KeeperTestSuite) TestReplaceMigrationRecords() { tests := []struct { name string @@ -867,7 +869,6 @@ func (suite *KeeperTestSuite) TestGetAllMigrationInfo() { } else { suite.Require().Equal(len(migrationRecords.BalancerToConcentratedPoolLinks), 0) } - }) } } diff --git a/x/gamm/keeper/pool.go b/x/gamm/keeper/pool.go index 2f7abf31517..8be771719d4 100644 --- a/x/gamm/keeper/pool.go +++ b/x/gamm/keeper/pool.go @@ -5,6 +5,7 @@ import ( gogotypes "github.com/gogo/protobuf/types" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -78,7 +79,7 @@ func (k Keeper) GetCFMMPool(ctx sdk.Context, poolId uint64) (types.CFMMPoolI, er } if !pool.IsActive(ctx) { - return &balancer.Pool{}, sdkerrors.Wrapf(types.ErrPoolLocked, "swap on inactive pool") + return &balancer.Pool{}, errorsmod.Wrapf(types.ErrPoolLocked, "swap on inactive pool") } return pool, nil } @@ -284,7 +285,7 @@ func (k Keeper) GetPoolType(ctx sdk.Context, poolId uint64) (poolmanagertypes.Po return poolmanagertypes.Stableswap, nil default: errMsg := fmt.Sprintf("unrecognized %s pool type: %T", types.ModuleName, pool) - return -1, sdkerrors.Wrap(sdkerrors.ErrUnpackAny, errMsg) + return -1, errorsmod.Wrap(sdkerrors.ErrUnpackAny, errMsg) } } diff --git a/x/gamm/keeper/pool_service.go b/x/gamm/keeper/pool_service.go index 68568e97ff1..e2e53fc34d3 100644 --- a/x/gamm/keeper/pool_service.go +++ b/x/gamm/keeper/pool_service.go @@ -3,8 +3,9 @@ package keeper import ( "fmt" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" "github.com/osmosis-labs/osmosis/osmomath" @@ -151,17 +152,17 @@ func (k Keeper) JoinPoolNoSwap( } // check that needed lp liquidity does not exceed the given `tokenInMaxs` parameter. Return error if so. - //if tokenInMaxs == 0, don't do this check. + // if tokenInMaxs == 0, don't do this check. if tokenInMaxs.Len() != 0 { if !(neededLpLiquidity.DenomsSubsetOf(tokenInMaxs)) { - return nil, sdk.ZeroInt(), sdkerrors.Wrapf(types.ErrLimitMaxAmount, "TokenInMaxs does not include all the tokens that are part of the target pool,"+ + return nil, sdk.ZeroInt(), errorsmod.Wrapf(types.ErrLimitMaxAmount, "TokenInMaxs does not include all the tokens that are part of the target pool,"+ " upperbound: %v, needed %v", tokenInMaxs, neededLpLiquidity) } else if !(tokenInMaxs.DenomsSubsetOf(neededLpLiquidity)) { - return nil, sdk.ZeroInt(), sdkerrors.Wrapf(types.ErrDenomNotFoundInPool, "TokenInMaxs includes tokens that are not part of the target pool,"+ + return nil, sdk.ZeroInt(), errorsmod.Wrapf(types.ErrDenomNotFoundInPool, "TokenInMaxs includes tokens that are not part of the target pool,"+ " input tokens: %v, pool tokens %v", tokenInMaxs, neededLpLiquidity) } if !(tokenInMaxs.IsAllGTE(neededLpLiquidity)) { - return nil, sdk.ZeroInt(), sdkerrors.Wrapf(types.ErrLimitMaxAmount, "TokenInMaxs is less than the needed LP liquidity to this JoinPoolNoSwap,"+ + return nil, sdk.ZeroInt(), errorsmod.Wrapf(types.ErrLimitMaxAmount, "TokenInMaxs is less than the needed LP liquidity to this JoinPoolNoSwap,"+ " upperbound: %v, needed %v", tokenInMaxs, neededLpLiquidity) } } @@ -191,7 +192,7 @@ func getMaximalNoSwapLPAmount(ctx sdk.Context, pool types.CFMMPoolI, shareOutAmo // shares currently in the pool. It is intended to be used in scenarios where you want shareRatio := shareOutAmount.ToDec().QuoInt(totalSharesAmount) if shareRatio.LTE(sdk.ZeroDec()) { - return sdk.Coins{}, sdkerrors.Wrapf(types.ErrInvalidMathApprox, "Too few shares out wanted. "+ + return sdk.Coins{}, errorsmod.Wrapf(types.ErrInvalidMathApprox, "Too few shares out wanted. "+ "(debug: getMaximalNoSwapLPAmount share ratio is zero or negative)") } @@ -202,7 +203,7 @@ func getMaximalNoSwapLPAmount(ctx sdk.Context, pool types.CFMMPoolI, shareOutAmo // (coin.Amt * shareRatio).Ceil() neededAmt := coin.Amount.ToDec().Mul(shareRatio).Ceil().RoundInt() if neededAmt.LTE(sdk.ZeroInt()) { - return sdk.Coins{}, sdkerrors.Wrapf(types.ErrInvalidMathApprox, "Too few shares out wanted") + return sdk.Coins{}, errorsmod.Wrapf(types.ErrInvalidMathApprox, "Too few shares out wanted") } neededCoin := sdk.Coin{Denom: coin.Denom, Amount: neededAmt} neededLpLiquidity = neededLpLiquidity.Add(neededCoin) @@ -241,14 +242,14 @@ func (k Keeper) JoinSwapExactAmountIn( return sdk.ZeroInt(), err case sharesOut.LT(shareOutMinAmount): - return sdk.ZeroInt(), sdkerrors.Wrapf( + return sdk.ZeroInt(), errorsmod.Wrapf( types.ErrLimitMinAmount, "too much slippage; needed a minimum of %s shares to pass, got %s", shareOutMinAmount, sharesOut, ) case sharesOut.LTE(sdk.ZeroInt()): - return sdk.ZeroInt(), sdkerrors.Wrapf(types.ErrInvalidMathApprox, "share amount is zero or negative") + return sdk.ZeroInt(), errorsmod.Wrapf(types.ErrInvalidMathApprox, "share amount is zero or negative") } if err := k.applyJoinPoolStateChange(ctx, pool, sender, sharesOut, tokensIn); err != nil { @@ -290,7 +291,7 @@ func (k Keeper) JoinSwapShareAmountOut( } if tokenInAmount.GT(tokenInMaxAmount) { - return sdk.Int{}, sdkerrors.Wrapf(types.ErrLimitMaxAmount, "%s resulted tokens is larger than the max amount of %s", tokenInAmount, tokenInMaxAmount) + return sdk.Int{}, errorsmod.Wrapf(types.ErrLimitMaxAmount, "%s resulted tokens is larger than the max amount of %s", tokenInAmount, tokenInMaxAmount) } tokenIn := sdk.NewCoins(sdk.NewCoin(tokenInDenom, tokenInAmount)) @@ -318,9 +319,9 @@ func (k Keeper) ExitPool( totalSharesAmount := pool.GetTotalShares() if shareInAmount.GTE(totalSharesAmount) { - return sdk.Coins{}, sdkerrors.Wrapf(types.ErrInvalidMathApprox, "Trying to exit >= the number of shares contained in the pool.") + return sdk.Coins{}, errorsmod.Wrapf(types.ErrInvalidMathApprox, "Trying to exit >= the number of shares contained in the pool.") } else if shareInAmount.LTE(sdk.ZeroInt()) { - return sdk.Coins{}, sdkerrors.Wrapf(types.ErrInvalidMathApprox, "Trying to exit a negative amount of shares") + return sdk.Coins{}, errorsmod.Wrapf(types.ErrInvalidMathApprox, "Trying to exit a negative amount of shares") } exitFee := pool.GetExitFee(ctx) exitCoins, err = pool.ExitPool(ctx, shareInAmount, exitFee) @@ -328,7 +329,7 @@ func (k Keeper) ExitPool( return sdk.Coins{}, err } if !tokenOutMins.DenomsSubsetOf(exitCoins) || tokenOutMins.IsAnyGT(exitCoins) { - return sdk.Coins{}, sdkerrors.Wrapf(types.ErrLimitMinAmount, + return sdk.Coins{}, errorsmod.Wrapf(types.ErrLimitMinAmount, "Exit pool returned %s , minimum tokens out specified as %s", exitCoins, tokenOutMins) } @@ -376,7 +377,7 @@ func (k Keeper) ExitSwapShareAmountIn( } if tokenOutAmount.LT(tokenOutMinAmount) { - return sdk.Int{}, sdkerrors.Wrapf(types.ErrLimitMinAmount, + return sdk.Int{}, errorsmod.Wrapf(types.ErrLimitMinAmount, "Provided LP shares yield %s tokens out, wanted a minimum of %s for it to work", tokenOutAmount, tokenOutMinAmount) } diff --git a/x/gamm/keeper/swap.go b/x/gamm/keeper/swap.go index 17ad56865f5..776fac54ca0 100644 --- a/x/gamm/keeper/swap.go +++ b/x/gamm/keeper/swap.go @@ -4,8 +4,8 @@ import ( "errors" "fmt" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/osmosis-labs/osmosis/v15/x/gamm/types" "github.com/osmosis-labs/osmosis/v15/x/poolmanager/events" @@ -58,11 +58,11 @@ func (k Keeper) SwapExactAmountIn( tokenOutAmount = tokenOutCoin.Amount if !tokenOutAmount.IsPositive() { - return sdk.Int{}, sdkerrors.Wrapf(types.ErrInvalidMathApprox, "token amount must be positive") + return sdk.Int{}, errorsmod.Wrapf(types.ErrInvalidMathApprox, "token amount must be positive") } if tokenOutAmount.LT(tokenOutMinAmount) { - return sdk.Int{}, sdkerrors.Wrapf(types.ErrLimitMinAmount, "%s token is lesser than min amount", tokenOutDenom) + return sdk.Int{}, errorsmod.Wrapf(types.ErrLimitMinAmount, "%s token is lesser than min amount", tokenOutDenom) } // Settles balances between the tx sender and the pool to match the swap that was executed earlier. @@ -104,7 +104,7 @@ func (k Keeper) SwapExactAmountOut( poolOutBal := liquidity.AmountOf(tokenOut.Denom) if tokenOut.Amount.GTE(poolOutBal) { - return sdk.Int{}, sdkerrors.Wrapf(types.ErrTooManyTokensOut, + return sdk.Int{}, errorsmod.Wrapf(types.ErrTooManyTokensOut, "can't get more tokens out than there are tokens in the pool") } @@ -120,11 +120,11 @@ func (k Keeper) SwapExactAmountOut( tokenInAmount = tokenIn.Amount if tokenInAmount.LTE(sdk.ZeroInt()) { - return sdk.Int{}, sdkerrors.Wrapf(types.ErrInvalidMathApprox, "token amount is zero or negative") + return sdk.Int{}, errorsmod.Wrapf(types.ErrInvalidMathApprox, "token amount is zero or negative") } if tokenInAmount.GT(tokenInMaxAmount) { - return sdk.Int{}, sdkerrors.Wrapf(types.ErrLimitMaxAmount, "Swap requires %s, which is greater than the amount %s", tokenIn, tokenInMaxAmount) + return sdk.Int{}, errorsmod.Wrapf(types.ErrLimitMaxAmount, "Swap requires %s, which is greater than the amount %s", tokenIn, tokenInMaxAmount) } err = k.updatePoolForSwap(ctx, pool, sender, tokenIn, tokenOut) diff --git a/x/gamm/pool-models/balancer/amm.go b/x/gamm/pool-models/balancer/amm.go index a7a371c7f25..832a5f90286 100644 --- a/x/gamm/pool-models/balancer/amm.go +++ b/x/gamm/pool-models/balancer/amm.go @@ -4,7 +4,8 @@ import ( "fmt" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + + errorsmod "cosmossdk.io/errors" "github.com/osmosis-labs/osmosis/osmomath" "github.com/osmosis-labs/osmosis/v15/x/gamm/types" @@ -72,11 +73,11 @@ func poolAssetsMulDec(base []PoolAsset, d sdk.Dec) []PoolAsset { // Namely, that the weight is in the range [1, MaxUserSpecifiedWeight) func ValidateUserSpecifiedWeight(weight sdk.Int) error { if !weight.IsPositive() { - return sdkerrors.Wrap(types.ErrNotPositiveWeight, weight.String()) + return errorsmod.Wrap(types.ErrNotPositiveWeight, weight.String()) } if weight.GTE(MaxUserSpecifiedWeight) { - return sdkerrors.Wrap(types.ErrWeightTooLarge, weight.String()) + return errorsmod.Wrap(types.ErrWeightTooLarge, weight.String()) } return nil } @@ -234,7 +235,7 @@ func ensureDenomInPool(poolAssetsByDenom map[string]PoolAsset, tokensIn sdk.Coin for _, coin := range tokensIn { _, ok := poolAssetsByDenom[coin.Denom] if !ok { - return sdkerrors.Wrapf(types.ErrDenomNotFoundInPool, invalidInputDenomsErrFormat, coin.Denom) + return errorsmod.Wrapf(types.ErrDenomNotFoundInPool, invalidInputDenomsErrFormat, coin.Denom) } } diff --git a/x/gamm/pool-models/balancer/msgs.go b/x/gamm/pool-models/balancer/msgs.go index 5fb7c51f073..7054b0cb3a7 100644 --- a/x/gamm/pool-models/balancer/msgs.go +++ b/x/gamm/pool-models/balancer/msgs.go @@ -1,6 +1,7 @@ package balancer import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -37,7 +38,7 @@ func (msg MsgCreateBalancerPool) Type() string { return TypeMsgCreateBalancerPo func (msg MsgCreateBalancerPool) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(msg.Sender) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } err = validateUserSpecifiedPoolAssets(msg.PoolAssets) @@ -112,7 +113,7 @@ func (msg MsgMigrateSharesToFullRangeConcentratedPosition) Type() string { retu func (msg MsgMigrateSharesToFullRangeConcentratedPosition) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(msg.Sender) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } return nil diff --git a/x/gamm/pool-models/balancer/pool.go b/x/gamm/pool-models/balancer/pool.go index 66bf101345a..c2172b06bac 100644 --- a/x/gamm/pool-models/balancer/pool.go +++ b/x/gamm/pool-models/balancer/pool.go @@ -7,8 +7,8 @@ import ( "strings" "time" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/osmosis-labs/osmosis/v15/x/gamm/pool-models/internal/cfmm_common" "github.com/osmosis-labs/osmosis/v15/x/gamm/types" @@ -225,7 +225,7 @@ func (p Pool) getPoolAssetAndIndex(denom string) (int, PoolAsset, error) { } if len(p.PoolAssets) == 0 { - return -1, PoolAsset{}, sdkerrors.Wrapf(types.ErrDenomNotFoundInPool, fmt.Sprintf(formatNoPoolAssetFoundErrFormat, denom)) + return -1, PoolAsset{}, errorsmod.Wrapf(types.ErrDenomNotFoundInPool, fmt.Sprintf(formatNoPoolAssetFoundErrFormat, denom)) } i := sort.Search(len(p.PoolAssets), func(i int) bool { @@ -236,11 +236,11 @@ func (p Pool) getPoolAssetAndIndex(denom string) (int, PoolAsset, error) { }) if i < 0 || i >= len(p.PoolAssets) { - return -1, PoolAsset{}, sdkerrors.Wrapf(types.ErrDenomNotFoundInPool, fmt.Sprintf(formatNoPoolAssetFoundErrFormat, denom)) + return -1, PoolAsset{}, errorsmod.Wrapf(types.ErrDenomNotFoundInPool, fmt.Sprintf(formatNoPoolAssetFoundErrFormat, denom)) } if p.PoolAssets[i].Token.Denom != denom { - return -1, PoolAsset{}, sdkerrors.Wrapf(types.ErrDenomNotFoundInPool, fmt.Sprintf(formatNoPoolAssetFoundErrFormat, denom)) + return -1, PoolAsset{}, errorsmod.Wrapf(types.ErrDenomNotFoundInPool, fmt.Sprintf(formatNoPoolAssetFoundErrFormat, denom)) } return i, p.PoolAssets[i], nil @@ -516,7 +516,7 @@ func (p Pool) CalcOutAmtGivenIn( // We ignore the decimal component, as we round down the token amount out. tokenAmountOutInt := tokenAmountOut.TruncateInt() if !tokenAmountOutInt.IsPositive() { - return sdk.Coin{}, sdkerrors.Wrapf(types.ErrInvalidMathApprox, "token amount must be positive") + return sdk.Coin{}, errorsmod.Wrapf(types.ErrInvalidMathApprox, "token amount must be positive") } return sdk.NewCoin(tokenOutDenom, tokenAmountOutInt), nil @@ -573,7 +573,7 @@ func (p Pool) CalcInAmtGivenOut( tokenInAmt := tokenAmountInBeforeFee.Ceil().TruncateInt() if !tokenInAmt.IsPositive() { - return sdk.Coin{}, sdkerrors.Wrapf(types.ErrInvalidMathApprox, "token amount must be positive") + return sdk.Coin{}, errorsmod.Wrapf(types.ErrInvalidMathApprox, "token amount must be positive") } return sdk.NewCoin(tokenInDenom, tokenInAmt), nil } @@ -905,7 +905,7 @@ func (p *Pool) CalcTokenInShareAmountOut( ).Ceil().TruncateInt() if !tokenInAmount.IsPositive() { - return sdk.Int{}, sdkerrors.Wrapf(types.ErrNotPositiveRequireAmount, nonPostiveTokenAmountErrFormat, tokenInAmount) + return sdk.Int{}, errorsmod.Wrapf(types.ErrNotPositiveRequireAmount, nonPostiveTokenAmountErrFormat, tokenInAmount) } return tokenInAmount, nil @@ -932,7 +932,7 @@ func (p *Pool) JoinPoolTokenInMaxShareAmountOut( ).TruncateInt() if !tokenInAmount.IsPositive() { - return sdk.Int{}, sdkerrors.Wrapf(types.ErrNotPositiveRequireAmount, nonPostiveTokenAmountErrFormat, tokenInAmount) + return sdk.Int{}, errorsmod.Wrapf(types.ErrNotPositiveRequireAmount, nonPostiveTokenAmountErrFormat, tokenInAmount) } poolAssetIn.Token.Amount = poolAssetIn.Token.Amount.Add(tokenInAmount) @@ -964,11 +964,11 @@ func (p *Pool) ExitSwapExactAmountOut( ).TruncateInt() if !sharesIn.IsPositive() { - return sdk.Int{}, sdkerrors.Wrapf(types.ErrNotPositiveRequireAmount, nonPostiveSharesAmountErrFormat, sharesIn) + return sdk.Int{}, errorsmod.Wrapf(types.ErrNotPositiveRequireAmount, nonPostiveSharesAmountErrFormat, sharesIn) } if sharesIn.GT(shareInMaxAmount) { - return sdk.Int{}, sdkerrors.Wrapf(types.ErrLimitMaxAmount, sharesLargerThanMaxErrFormat, sharesIn, shareInMaxAmount) + return sdk.Int{}, errorsmod.Wrapf(types.ErrLimitMaxAmount, sharesLargerThanMaxErrFormat, sharesIn, shareInMaxAmount) } if err := p.exitPool(ctx, sdk.NewCoins(tokenOut), sharesIn); err != nil { diff --git a/x/gamm/pool-models/balancer/pool_asset.go b/x/gamm/pool-models/balancer/pool_asset.go index 42ec1883d9b..88e5fce5e29 100644 --- a/x/gamm/pool-models/balancer/pool_asset.go +++ b/x/gamm/pool-models/balancer/pool_asset.go @@ -9,6 +9,7 @@ import ( "github.com/osmosis-labs/osmosis/v15/x/gamm/types" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) @@ -75,7 +76,7 @@ func validateUserSpecifiedPoolAssets(assets []PoolAsset) error { } if len(assets) > types.MaxNumOfAssetsInPool { - return sdkerrors.Wrapf(types.ErrTooManyPoolAssets, "%d", len(assets)) + return errorsmod.Wrapf(types.ErrTooManyPoolAssets, "%d", len(assets)) } assetExistsMap := map[string]bool{} @@ -86,10 +87,10 @@ func validateUserSpecifiedPoolAssets(assets []PoolAsset) error { } if !asset.Token.IsValid() || !asset.Token.IsPositive() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidCoins, asset.Token.String()) + return errorsmod.Wrap(sdkerrors.ErrInvalidCoins, asset.Token.String()) } if _, exists := assetExistsMap[asset.Token.Denom]; exists { - return sdkerrors.Wrapf(types.ErrTooFewPoolAssets, "pool asset %s already exists", asset.Token.Denom) + return errorsmod.Wrapf(types.ErrTooFewPoolAssets, "pool asset %s already exists", asset.Token.Denom) } assetExistsMap[asset.Token.Denom] = true } diff --git a/x/gamm/pool-models/balancer/pool_suite_test.go b/x/gamm/pool-models/balancer/pool_suite_test.go index a5a69b4f330..13f0ad57ce1 100644 --- a/x/gamm/pool-models/balancer/pool_suite_test.go +++ b/x/gamm/pool-models/balancer/pool_suite_test.go @@ -6,8 +6,8 @@ import ( "testing" time "time" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/stretchr/testify/require" "github.com/stretchr/testify/suite" @@ -381,7 +381,7 @@ var calcSingleAssetJoinTestCases = []calcJoinSharesTestCase{ poolAssets: oneTrillionEvenPoolAssets, tokensIn: sdk.NewCoins(sdk.NewInt64Coin(doesNotExistDenom, 50_000)), expectShares: sdk.ZeroInt(), - expErr: sdkerrors.Wrapf(types.ErrDenomNotFoundInPool, fmt.Sprintf(balancer.ErrMsgFormatNoPoolAssetFound, doesNotExistDenom)), + expErr: errorsmod.Wrapf(types.ErrDenomNotFoundInPool, fmt.Sprintf(balancer.ErrMsgFormatNoPoolAssetFound, doesNotExistDenom)), }, { // Pool liquidity is changed by 1e-12 / 2 diff --git a/x/gamm/pool-models/internal/cfmm_common/lp.go b/x/gamm/pool-models/internal/cfmm_common/lp.go index 2cf691e2687..6ab8573915a 100644 --- a/x/gamm/pool-models/internal/cfmm_common/lp.go +++ b/x/gamm/pool-models/internal/cfmm_common/lp.go @@ -4,7 +4,8 @@ import ( "errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + + errorsmod "cosmossdk.io/errors" "github.com/osmosis-labs/osmosis/osmomath" "github.com/osmosis-labs/osmosis/v15/x/gamm/types" @@ -16,7 +17,7 @@ const errMsgFormatSharesLargerThanMax = "%s resulted shares is larger than the m func CalcExitPool(ctx sdk.Context, pool types.CFMMPoolI, exitingShares sdk.Int, exitFee sdk.Dec) (sdk.Coins, error) { totalShares := pool.GetTotalShares() if exitingShares.GTE(totalShares) { - return sdk.Coins{}, sdkerrors.Wrapf(types.ErrLimitMaxAmount, errMsgFormatSharesLargerThanMax, exitingShares, totalShares) + return sdk.Coins{}, errorsmod.Wrapf(types.ErrLimitMaxAmount, errMsgFormatSharesLargerThanMax, exitingShares, totalShares) } // refundedShares = exitingShares * (1 - exit fee) @@ -168,7 +169,8 @@ func BinarySearchSingleAssetJoin( // SwapAllCoinsToSingleAsset iterates through each token in the input set and trades it against the same pool sequentially func SwapAllCoinsToSingleAsset(pool types.CFMMPoolI, ctx sdk.Context, inTokens sdk.Coins, swapToDenom string, - swapFee sdk.Dec) (sdk.Int, error) { + swapFee sdk.Dec, +) (sdk.Int, error) { tokenOutAmt := inTokens.AmountOfNoDenomValidation(swapToDenom) for _, coin := range inTokens { if coin.Denom == swapToDenom { diff --git a/x/gamm/pool-models/stableswap/msgs.go b/x/gamm/pool-models/stableswap/msgs.go index e06d1a541cf..64a166ecc44 100644 --- a/x/gamm/pool-models/stableswap/msgs.go +++ b/x/gamm/pool-models/stableswap/msgs.go @@ -1,6 +1,7 @@ package stableswap import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -39,7 +40,7 @@ func (msg MsgCreateStableswapPool) Type() string { return TypeMsgCreateStablesw func (msg MsgCreateStableswapPool) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(msg.Sender) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } err = msg.PoolParams.Validate() @@ -150,7 +151,7 @@ func (msg MsgStableSwapAdjustScalingFactors) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(msg.Sender) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } return nil diff --git a/x/gamm/pool-models/stableswap/pool.go b/x/gamm/pool-models/stableswap/pool.go index 3ce93b96a7a..c0d324ee4f8 100644 --- a/x/gamm/pool-models/stableswap/pool.go +++ b/x/gamm/pool-models/stableswap/pool.go @@ -6,7 +6,8 @@ import ( "fmt" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + + errorsmod "cosmossdk.io/errors" "github.com/osmosis-labs/osmosis/osmomath" "github.com/osmosis-labs/osmosis/v15/x/gamm/pool-models/internal/cfmm_common" @@ -250,7 +251,7 @@ func (p Pool) CalcOutAmtGivenIn(ctx sdk.Context, tokenIn sdk.Coins, tokenOutDeno // we ignore the decimal component, as token out amount must round down tokenOutAmt := outAmtDec.TruncateInt() if !tokenOutAmt.IsPositive() { - return sdk.Coin{}, sdkerrors.Wrapf(types.ErrInvalidMathApprox, + return sdk.Coin{}, errorsmod.Wrapf(types.ErrInvalidMathApprox, fmt.Sprintf("token amount must be positive, got %v", tokenOutAmt)) } return sdk.NewCoin(tokenOutDenom, tokenOutAmt), nil @@ -288,7 +289,7 @@ func (p Pool) CalcInAmtGivenOut(ctx sdk.Context, tokenOut sdk.Coins, tokenInDeno tokenInAmt := amt.Ceil().TruncateInt() if !tokenInAmt.IsPositive() { - return sdk.Coin{}, sdkerrors.Wrapf(types.ErrInvalidMathApprox, "token amount must be positive") + return sdk.Coin{}, errorsmod.Wrapf(types.ErrInvalidMathApprox, "token amount must be positive") } return sdk.NewCoin(tokenInDenom, tokenInAmt), nil } diff --git a/x/gamm/types/errors.go b/x/gamm/types/errors.go index 6a193ea495d..8a97103e6f0 100644 --- a/x/gamm/types/errors.go +++ b/x/gamm/types/errors.go @@ -3,8 +3,9 @@ package types import ( fmt "fmt" + errorsmod "cosmossdk.io/errors" + sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) type PoolDoesNotExistError struct { @@ -51,42 +52,42 @@ func (e BalancerPoolMigrationLinkNotFoundError) Error() string { // x/gamm module sentinel errors. var ( - ErrPoolNotFound = sdkerrors.Register(ModuleName, 1, "pool not found") - ErrPoolAlreadyExist = sdkerrors.Register(ModuleName, 2, "pool already exist") - ErrPoolLocked = sdkerrors.Register(ModuleName, 3, "pool is locked") - ErrTooFewPoolAssets = sdkerrors.Register(ModuleName, 4, "pool should have at least 2 assets, as they must be swapping between at least two assets") - ErrTooManyPoolAssets = sdkerrors.Register(ModuleName, 5, "pool has too many assets (currently capped at 8 assets for both balancer and stableswap)") - ErrLimitMaxAmount = sdkerrors.Register(ModuleName, 6, "calculated amount is larger than max amount") - ErrLimitMinAmount = sdkerrors.Register(ModuleName, 7, "calculated amount is lesser than min amount") - ErrInvalidMathApprox = sdkerrors.Register(ModuleName, 8, "invalid calculated result") - ErrAlreadyInvalidPool = sdkerrors.Register(ModuleName, 9, "destruction on already invalid pool") - ErrInvalidPool = sdkerrors.Register(ModuleName, 10, "attempting to create an invalid pool") - ErrDenomNotFoundInPool = sdkerrors.Register(ModuleName, 11, "denom does not exist in pool") - ErrDenomAlreadyInPool = sdkerrors.Register(ModuleName, 12, "denom already exists in the pool") - - ErrEmptyRoutes = sdkerrors.Register(ModuleName, 21, "routes not defined") - ErrEmptyPoolAssets = sdkerrors.Register(ModuleName, 22, "PoolAssets not defined") - ErrNegativeSwapFee = sdkerrors.Register(ModuleName, 23, "swap fee is negative") - ErrNegativeExitFee = sdkerrors.Register(ModuleName, 24, "exit fee is negative") - ErrTooMuchSwapFee = sdkerrors.Register(ModuleName, 25, "swap fee should be lesser than 1 (100%)") - ErrTooMuchExitFee = sdkerrors.Register(ModuleName, 26, "exit fee should be lesser than 1 (100%)") - ErrNotPositiveWeight = sdkerrors.Register(ModuleName, 27, "token weight should be greater than 0") - ErrWeightTooLarge = sdkerrors.Register(ModuleName, 28, "user specified token weight should be less than 2^20") - ErrNotPositiveCriteria = sdkerrors.Register(ModuleName, 29, "min out amount or max in amount should be positive") - ErrNotPositiveRequireAmount = sdkerrors.Register(ModuleName, 30, "required amount should be positive") - ErrTooManyTokensOut = sdkerrors.Register(ModuleName, 31, "tx is trying to get more tokens out of the pool than exist") - ErrSpotPriceOverflow = sdkerrors.Register(ModuleName, 32, "invalid spot price (overflowed)") - ErrSpotPriceInternal = sdkerrors.Register(ModuleName, 33, "internal spot price error") - - ErrPoolParamsInvalidDenom = sdkerrors.Register(ModuleName, 50, "pool params' LBP params has an invalid denomination") - ErrPoolParamsInvalidNumDenoms = sdkerrors.Register(ModuleName, 51, "pool params' LBP doesn't have same number of params as underlying pool") - - ErrNotImplemented = sdkerrors.Register(ModuleName, 60, "function not implemented") - - ErrNotStableSwapPool = sdkerrors.Register(ModuleName, 61, "not stableswap pool") - ErrInvalidScalingFactorLength = sdkerrors.Register(ModuleName, 62, "pool liquidity and scaling factors must have same length") - ErrNotScalingFactorGovernor = sdkerrors.Register(ModuleName, 63, "not scaling factor governor") - ErrInvalidScalingFactors = sdkerrors.Register(ModuleName, 64, "scaling factors cannot be 0 or use more than 63 bits") - ErrHitMaxScaledAssets = sdkerrors.Register(ModuleName, 65, "post-scaled pool assets can not exceed 10^34") - ErrHitMinScaledAssets = sdkerrors.Register(ModuleName, 66, "post-scaled pool assets can not be less than 1") + ErrPoolNotFound = errorsmod.Register(ModuleName, 1, "pool not found") + ErrPoolAlreadyExist = errorsmod.Register(ModuleName, 2, "pool already exist") + ErrPoolLocked = errorsmod.Register(ModuleName, 3, "pool is locked") + ErrTooFewPoolAssets = errorsmod.Register(ModuleName, 4, "pool should have at least 2 assets, as they must be swapping between at least two assets") + ErrTooManyPoolAssets = errorsmod.Register(ModuleName, 5, "pool has too many assets (currently capped at 8 assets for both balancer and stableswap)") + ErrLimitMaxAmount = errorsmod.Register(ModuleName, 6, "calculated amount is larger than max amount") + ErrLimitMinAmount = errorsmod.Register(ModuleName, 7, "calculated amount is lesser than min amount") + ErrInvalidMathApprox = errorsmod.Register(ModuleName, 8, "invalid calculated result") + ErrAlreadyInvalidPool = errorsmod.Register(ModuleName, 9, "destruction on already invalid pool") + ErrInvalidPool = errorsmod.Register(ModuleName, 10, "attempting to create an invalid pool") + ErrDenomNotFoundInPool = errorsmod.Register(ModuleName, 11, "denom does not exist in pool") + ErrDenomAlreadyInPool = errorsmod.Register(ModuleName, 12, "denom already exists in the pool") + + ErrEmptyRoutes = errorsmod.Register(ModuleName, 21, "routes not defined") + ErrEmptyPoolAssets = errorsmod.Register(ModuleName, 22, "PoolAssets not defined") + ErrNegativeSwapFee = errorsmod.Register(ModuleName, 23, "swap fee is negative") + ErrNegativeExitFee = errorsmod.Register(ModuleName, 24, "exit fee is negative") + ErrTooMuchSwapFee = errorsmod.Register(ModuleName, 25, "swap fee should be lesser than 1 (100%)") + ErrTooMuchExitFee = errorsmod.Register(ModuleName, 26, "exit fee should be lesser than 1 (100%)") + ErrNotPositiveWeight = errorsmod.Register(ModuleName, 27, "token weight should be greater than 0") + ErrWeightTooLarge = errorsmod.Register(ModuleName, 28, "user specified token weight should be less than 2^20") + ErrNotPositiveCriteria = errorsmod.Register(ModuleName, 29, "min out amount or max in amount should be positive") + ErrNotPositiveRequireAmount = errorsmod.Register(ModuleName, 30, "required amount should be positive") + ErrTooManyTokensOut = errorsmod.Register(ModuleName, 31, "tx is trying to get more tokens out of the pool than exist") + ErrSpotPriceOverflow = errorsmod.Register(ModuleName, 32, "invalid spot price (overflowed)") + ErrSpotPriceInternal = errorsmod.Register(ModuleName, 33, "internal spot price error") + + ErrPoolParamsInvalidDenom = errorsmod.Register(ModuleName, 50, "pool params' LBP params has an invalid denomination") + ErrPoolParamsInvalidNumDenoms = errorsmod.Register(ModuleName, 51, "pool params' LBP doesn't have same number of params as underlying pool") + + ErrNotImplemented = errorsmod.Register(ModuleName, 60, "function not implemented") + + ErrNotStableSwapPool = errorsmod.Register(ModuleName, 61, "not stableswap pool") + ErrInvalidScalingFactorLength = errorsmod.Register(ModuleName, 62, "pool liquidity and scaling factors must have same length") + ErrNotScalingFactorGovernor = errorsmod.Register(ModuleName, 63, "not scaling factor governor") + ErrInvalidScalingFactors = errorsmod.Register(ModuleName, 64, "scaling factors cannot be 0 or use more than 63 bits") + ErrHitMaxScaledAssets = errorsmod.Register(ModuleName, 65, "post-scaled pool assets can not exceed 10^34") + ErrHitMinScaledAssets = errorsmod.Register(ModuleName, 66, "post-scaled pool assets can not be less than 1") ) diff --git a/x/gamm/types/msgs.go b/x/gamm/types/msgs.go index 3e99d40c792..a24eb31f4b2 100644 --- a/x/gamm/types/msgs.go +++ b/x/gamm/types/msgs.go @@ -5,6 +5,7 @@ import ( "strings" "time" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) @@ -37,14 +38,14 @@ func ValidateFutureGovernor(governor string) error { lockTimeStr := "" splits := strings.Split(governor, ",") if len(splits) > 2 { - return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, fmt.Sprintf("invalid future governor: %s", governor)) + return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, fmt.Sprintf("invalid future governor: %s", governor)) } // token,100h if len(splits) == 2 { lpTokenStr := splits[0] if sdk.ValidateDenom(lpTokenStr) != nil { - return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, fmt.Sprintf("invalid future governor: %s", governor)) + return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, fmt.Sprintf("invalid future governor: %s", governor)) } lockTimeStr = splits[1] } @@ -57,7 +58,7 @@ func ValidateFutureGovernor(governor string) error { // Note that a duration of 0 is allowed _, err = time.ParseDuration(lockTimeStr) if err != nil { - return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, fmt.Sprintf("invalid future governor: %s", governor)) + return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, fmt.Sprintf("invalid future governor: %s", governor)) } return nil } @@ -69,7 +70,7 @@ func (msg MsgSwapExactAmountIn) Type() string { return TypeMsgSwapExactAmountIn func (msg MsgSwapExactAmountIn) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(msg.Sender) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } err = SwapAmountInRoutes(msg.Routes).Validate() @@ -78,7 +79,7 @@ func (msg MsgSwapExactAmountIn) ValidateBasic() error { } if !msg.TokenIn.IsValid() || !msg.TokenIn.IsPositive() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidCoins, msg.TokenIn.String()) + return errorsmod.Wrap(sdkerrors.ErrInvalidCoins, msg.TokenIn.String()) } if !msg.TokenOutMinAmount.IsPositive() { @@ -107,7 +108,7 @@ func (msg MsgSwapExactAmountOut) Type() string { return TypeMsgSwapExactAmountO func (msg MsgSwapExactAmountOut) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(msg.Sender) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } err = SwapAmountOutRoutes(msg.Routes).Validate() @@ -116,7 +117,7 @@ func (msg MsgSwapExactAmountOut) ValidateBasic() error { } if !msg.TokenOut.IsValid() || !msg.TokenOut.IsPositive() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidCoins, msg.TokenOut.String()) + return errorsmod.Wrap(sdkerrors.ErrInvalidCoins, msg.TokenOut.String()) } if !msg.TokenInMaxAmount.IsPositive() { @@ -145,16 +146,16 @@ func (msg MsgJoinPool) Type() string { return TypeMsgJoinPool } func (msg MsgJoinPool) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(msg.Sender) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } if !msg.ShareOutAmount.IsPositive() { - return sdkerrors.Wrap(ErrNotPositiveRequireAmount, msg.ShareOutAmount.String()) + return errorsmod.Wrap(ErrNotPositiveRequireAmount, msg.ShareOutAmount.String()) } tokenInMaxs := sdk.Coins(msg.TokenInMaxs) if !tokenInMaxs.IsValid() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidCoins, tokenInMaxs.String()) + return errorsmod.Wrap(sdkerrors.ErrInvalidCoins, tokenInMaxs.String()) } return nil @@ -179,16 +180,16 @@ func (msg MsgExitPool) Type() string { return TypeMsgExitPool } func (msg MsgExitPool) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(msg.Sender) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } if !msg.ShareInAmount.IsPositive() { - return sdkerrors.Wrap(ErrNotPositiveRequireAmount, msg.ShareInAmount.String()) + return errorsmod.Wrap(ErrNotPositiveRequireAmount, msg.ShareInAmount.String()) } tokenOutMins := sdk.Coins(msg.TokenOutMins) if !tokenOutMins.IsValid() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidCoins, tokenOutMins.String()) + return errorsmod.Wrap(sdkerrors.ErrInvalidCoins, tokenOutMins.String()) } return nil @@ -213,15 +214,15 @@ func (msg MsgJoinSwapExternAmountIn) Type() string { return TypeMsgJoinSwapExte func (msg MsgJoinSwapExternAmountIn) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(msg.Sender) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } if !msg.TokenIn.IsValid() || !msg.TokenIn.IsPositive() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidCoins, msg.TokenIn.String()) + return errorsmod.Wrap(sdkerrors.ErrInvalidCoins, msg.TokenIn.String()) } if !msg.ShareOutMinAmount.IsPositive() { - return sdkerrors.Wrap(ErrNotPositiveCriteria, msg.ShareOutMinAmount.String()) + return errorsmod.Wrap(ErrNotPositiveCriteria, msg.ShareOutMinAmount.String()) } return nil @@ -246,7 +247,7 @@ func (msg MsgJoinSwapShareAmountOut) Type() string { return TypeMsgJoinSwapShar func (msg MsgJoinSwapShareAmountOut) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(msg.Sender) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } err = sdk.ValidateDenom(msg.TokenInDenom) @@ -255,11 +256,11 @@ func (msg MsgJoinSwapShareAmountOut) ValidateBasic() error { } if !msg.ShareOutAmount.IsPositive() { - return sdkerrors.Wrap(ErrNotPositiveRequireAmount, msg.ShareOutAmount.String()) + return errorsmod.Wrap(ErrNotPositiveRequireAmount, msg.ShareOutAmount.String()) } if !msg.TokenInMaxAmount.IsPositive() { - return sdkerrors.Wrap(ErrNotPositiveCriteria, msg.TokenInMaxAmount.String()) + return errorsmod.Wrap(ErrNotPositiveCriteria, msg.TokenInMaxAmount.String()) } return nil @@ -284,15 +285,15 @@ func (msg MsgExitSwapExternAmountOut) Type() string { return TypeMsgExitSwapExt func (msg MsgExitSwapExternAmountOut) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(msg.Sender) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } if !msg.TokenOut.IsValid() || !msg.TokenOut.IsPositive() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidCoins, msg.TokenOut.String()) + return errorsmod.Wrap(sdkerrors.ErrInvalidCoins, msg.TokenOut.String()) } if !msg.ShareInMaxAmount.IsPositive() { - return sdkerrors.Wrap(ErrNotPositiveCriteria, msg.ShareInMaxAmount.String()) + return errorsmod.Wrap(ErrNotPositiveCriteria, msg.ShareInMaxAmount.String()) } return nil @@ -317,7 +318,7 @@ func (msg MsgExitSwapShareAmountIn) Type() string { return TypeMsgExitSwapShare func (msg MsgExitSwapShareAmountIn) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(msg.Sender) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } err = sdk.ValidateDenom(msg.TokenOutDenom) @@ -326,11 +327,11 @@ func (msg MsgExitSwapShareAmountIn) ValidateBasic() error { } if !msg.ShareInAmount.IsPositive() { - return sdkerrors.Wrap(ErrNotPositiveRequireAmount, msg.ShareInAmount.String()) + return errorsmod.Wrap(ErrNotPositiveRequireAmount, msg.ShareInAmount.String()) } if !msg.TokenOutMinAmount.IsPositive() { - return sdkerrors.Wrap(ErrNotPositiveCriteria, msg.TokenOutMinAmount.String()) + return errorsmod.Wrap(ErrNotPositiveCriteria, msg.TokenOutMinAmount.String()) } return nil diff --git a/x/ibc-hooks/go.mod b/x/ibc-hooks/go.mod index f696aa95c7c..969d17a7225 100644 --- a/x/ibc-hooks/go.mod +++ b/x/ibc-hooks/go.mod @@ -3,8 +3,9 @@ module github.com/osmosis-labs/osmosis/x/ibc-hooks go 1.20 require ( + cosmossdk.io/errors v1.0.0-beta.7 github.com/CosmWasm/wasmd v0.31.0 - github.com/cosmos/cosmos-sdk v0.47.1 + github.com/cosmos/cosmos-sdk v0.47.2 github.com/cosmos/ibc-go/v4 v4.3.0 github.com/gorilla/mux v1.8.0 github.com/grpc-ecosystem/grpc-gateway v1.16.0 @@ -92,6 +93,7 @@ require ( github.com/mtibben/percent v0.2.1 // indirect github.com/nxadm/tail v1.4.8 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/opencontainers/runc v1.1.5 // indirect github.com/pelletier/go-toml/v2 v2.0.6 // indirect github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 // indirect github.com/pkg/errors v0.9.1 // indirect diff --git a/x/ibc-hooks/go.sum b/x/ibc-hooks/go.sum index c755e1aa0de..cb30e3ca361 100644 --- a/x/ibc-hooks/go.sum +++ b/x/ibc-hooks/go.sum @@ -39,6 +39,7 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= collectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE= +cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0-rc.1 h1:m0VOOB23frXZvAOK44usCgLWvtsxIoMCTBGJZlpmGfU= filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -684,7 +685,7 @@ github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWEr github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= -github.com/opencontainers/runc v1.1.3 h1:vIXrkId+0/J2Ymu2m7VjGvbSlAId9XNRPhn2p4b+d8w= +github.com/opencontainers/runc v1.1.5 h1:L44KXEpKmfWDcS02aeGm8QNTFXTo2D+8MYGDIJ/GDEs= github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= diff --git a/x/ibc-hooks/types/errors.go b/x/ibc-hooks/types/errors.go index 9683d397f93..717e33bddd4 100644 --- a/x/ibc-hooks/types/errors.go +++ b/x/ibc-hooks/types/errors.go @@ -1,15 +1,17 @@ package types -import sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" +import ( + errorsmod "cosmossdk.io/errors" +) var ( ErrBadMetadataFormatMsg = "wasm metadata not properly formatted for: '%v'. %s" ErrBadExecutionMsg = "cannot execute contract: %v" - ErrMsgValidation = sdkerrors.Register("wasm-hooks", 2, "error in wasmhook message validation") - ErrMarshaling = sdkerrors.Register("wasm-hooks", 3, "cannot marshal the ICS20 packet") - ErrInvalidPacket = sdkerrors.Register("wasm-hooks", 4, "invalid packet data") - ErrBadResponse = sdkerrors.Register("wasm-hooks", 5, "cannot create response") - ErrWasmError = sdkerrors.Register("wasm-hooks", 6, "wasm error") - ErrBadSender = sdkerrors.Register("wasm-hooks", 7, "bad sender") + ErrMsgValidation = errorsmod.Register("wasm-hooks", 2, "error in wasmhook message validation") + ErrMarshaling = errorsmod.Register("wasm-hooks", 3, "cannot marshal the ICS20 packet") + ErrInvalidPacket = errorsmod.Register("wasm-hooks", 4, "invalid packet data") + ErrBadResponse = errorsmod.Register("wasm-hooks", 5, "cannot create response") + ErrWasmError = errorsmod.Register("wasm-hooks", 6, "wasm error") + ErrBadSender = errorsmod.Register("wasm-hooks", 7, "bad sender") ) diff --git a/x/ibc-hooks/wasm_hook.go b/x/ibc-hooks/wasm_hook.go index 31e4beac26a..75ed8e5ef5b 100644 --- a/x/ibc-hooks/wasm_hook.go +++ b/x/ibc-hooks/wasm_hook.go @@ -3,9 +3,11 @@ package ibc_hooks import ( "encoding/json" "fmt" + + errorsmod "cosmossdk.io/errors" wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" + "github.com/osmosis-labs/osmosis/x/ibc-hooks/keeper" wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" @@ -251,7 +253,7 @@ func (h WasmHooks) SendPacketOverride(i ICS4Middleware, ctx sdk.Context, chanCap delete(metadata, types.IBCCallbackKey) bzMetadata, err := json.Marshal(metadata) if err != nil { - return sdkerrors.Wrap(err, "Send packet with callback error") + return errorsmod.Wrap(err, "Send packet with callback error") } stringMetadata := string(bzMetadata) if stringMetadata == "{}" { @@ -261,7 +263,7 @@ func (h WasmHooks) SendPacketOverride(i ICS4Middleware, ctx sdk.Context, chanCap } dataBytes, err := json.Marshal(data) if err != nil { - return sdkerrors.Wrap(err, "Send packet with callback error") + return errorsmod.Wrap(err, "Send packet with callback error") } packetWithoutCallbackMemo := channeltypes.Packet{ @@ -313,7 +315,7 @@ func (h WasmHooks) OnAcknowledgementPacketOverride(im IBCMiddleware, ctx sdk.Con contractAddr, err := sdk.AccAddressFromBech32(contract) if err != nil { - return sdkerrors.Wrap(err, "Ack callback error") // The callback configured is not a bech32. Error out + return errorsmod.Wrap(err, "Ack callback error") // The callback configured is not a bech32. Error out } success := "false" @@ -335,7 +337,7 @@ func (h WasmHooks) OnAcknowledgementPacketOverride(im IBCMiddleware, ctx sdk.Con if err != nil { // error processing the callback // ToDo: Open Question: Should we also delete the callback here? - return sdkerrors.Wrap(err, "Ack callback error") + return errorsmod.Wrap(err, "Ack callback error") } h.ibcHooksKeeper.DeletePacketCallback(ctx, packet.GetSourceChannel(), packet.GetSequence()) return nil @@ -360,7 +362,7 @@ func (h WasmHooks) OnTimeoutPacketOverride(im IBCMiddleware, ctx sdk.Context, pa contractAddr, err := sdk.AccAddressFromBech32(contract) if err != nil { - return sdkerrors.Wrap(err, "Timeout callback error") // The callback configured is not a bech32. Error out + return errorsmod.Wrap(err, "Timeout callback error") // The callback configured is not a bech32. Error out } sudoMsg := []byte(fmt.Sprintf( diff --git a/x/ibc-rate-limit/ibc_module.go b/x/ibc-rate-limit/ibc_module.go index db98b5e578d..aa8cc00cce6 100644 --- a/x/ibc-rate-limit/ibc_module.go +++ b/x/ibc-rate-limit/ibc_module.go @@ -6,8 +6,10 @@ import ( "github.com/osmosis-labs/osmosis/osmoutils" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" transfertypes "github.com/cosmos/ibc-go/v4/modules/apps/transfer/types" channeltypes "github.com/cosmos/ibc-go/v4/modules/core/04-channel/types" @@ -113,7 +115,7 @@ func ValidateReceiverAddress(packet exported.PacketI) error { return err } if len(packetData.Receiver) >= 4096 { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "IBC Receiver address too long. Max supported length is %d", 4096) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "IBC Receiver address too long. Max supported length is %d", 4096) } return nil } @@ -139,7 +141,7 @@ func (im *IBCModule) OnRecvPacket( if strings.Contains(err.Error(), "rate limit exceeded") { return osmoutils.NewEmitErrorAcknowledgement(ctx, types.ErrRateLimitExceeded) } - fullError := sdkerrors.Wrap(types.ErrContractError, err.Error()) + fullError := errorsmod.Wrap(types.ErrContractError, err.Error()) return osmoutils.NewEmitErrorAcknowledgement(ctx, fullError) } @@ -156,7 +158,7 @@ func (im *IBCModule) OnAcknowledgementPacket( ) error { var ack channeltypes.Acknowledgement if err := json.Unmarshal(acknowledgement, &ack); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "cannot unmarshal ICS-20 transfer packet acknowledgement: %v", err) + return errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "cannot unmarshal ICS-20 transfer packet acknowledgement: %v", err) } if osmoutils.IsAckError(acknowledgement) { diff --git a/x/ibc-rate-limit/ics4_wrapper.go b/x/ibc-rate-limit/ics4_wrapper.go index 04c47344f8b..ad63f80d0f3 100644 --- a/x/ibc-rate-limit/ics4_wrapper.go +++ b/x/ibc-rate-limit/ics4_wrapper.go @@ -1,9 +1,11 @@ package ibc_rate_limit import ( + errorsmod "cosmossdk.io/errors" wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper" bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" @@ -71,7 +73,7 @@ func (i *ICS4Wrapper) SendPacket(ctx sdk.Context, chanCap *capabilitytypes.Capab err := CheckAndUpdateRateLimits(ctx, i.ContractKeeper, "send_packet", contract, fullPacket) if err != nil { - return sdkerrors.Wrap(err, "rate limit SendPacket failed to authorize transfer") + return errorsmod.Wrap(err, "rate limit SendPacket failed to authorize transfer") } return i.channel.SendPacket(ctx, chanCap, packet) diff --git a/x/ibc-rate-limit/rate_limit.go b/x/ibc-rate-limit/rate_limit.go index 40ef8969dfb..fa8df2fbac1 100644 --- a/x/ibc-rate-limit/rate_limit.go +++ b/x/ibc-rate-limit/rate_limit.go @@ -3,12 +3,13 @@ package ibc_rate_limit import ( "encoding/json" + errorsmod "cosmossdk.io/errors" wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" transfertypes "github.com/cosmos/ibc-go/v4/modules/apps/transfer/types" clienttypes "github.com/cosmos/ibc-go/v4/modules/core/02-client/types" "github.com/cosmos/ibc-go/v4/modules/core/exported" + "github.com/osmosis-labs/osmosis/v15/x/ibc-rate-limit/types" ) @@ -36,7 +37,7 @@ func CheckAndUpdateRateLimits(ctx sdk.Context, contractKeeper *wasmkeeper.Permis _, err = contractKeeper.Sudo(ctx, contractAddr, sendPacketMsg) if err != nil { - return sdkerrors.Wrap(types.ErrRateLimitExceeded, err.Error()) + return errorsmod.Wrap(types.ErrRateLimitExceeded, err.Error()) } return nil @@ -72,7 +73,7 @@ func UndoSendRateLimit(ctx sdk.Context, contractKeeper *wasmkeeper.PermissionedK _, err = contractKeeper.Sudo(ctx, contractAddr, asJson) if err != nil { - return sdkerrors.Wrap(types.ErrContractError, err.Error()) + return errorsmod.Wrap(types.ErrContractError, err.Error()) } return nil diff --git a/x/ibc-rate-limit/types/errors.go b/x/ibc-rate-limit/types/errors.go index 5394ce11e3d..42116a7e1d5 100644 --- a/x/ibc-rate-limit/types/errors.go +++ b/x/ibc-rate-limit/types/errors.go @@ -1,11 +1,11 @@ package types import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" ) var ( - ErrRateLimitExceeded = sdkerrors.Register(ModuleName, 2, "rate limit exceeded") - ErrBadMessage = sdkerrors.Register(ModuleName, 3, "bad message") - ErrContractError = sdkerrors.Register(ModuleName, 4, "contract error") + ErrRateLimitExceeded = errorsmod.Register(ModuleName, 2, "rate limit exceeded") + ErrBadMessage = errorsmod.Register(ModuleName, 3, "bad message") + ErrContractError = errorsmod.Register(ModuleName, 4, "contract error") ) diff --git a/x/incentives/keeper/gauge.go b/x/incentives/keeper/gauge.go index c714a4bb369..1d0a2ffd526 100644 --- a/x/incentives/keeper/gauge.go +++ b/x/incentives/keeper/gauge.go @@ -8,7 +8,9 @@ import ( "strings" "time" + errorsmod "cosmossdk.io/errors" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/gogo/protobuf/proto" db "github.com/tendermint/tm-db" @@ -303,7 +305,7 @@ func (k Keeper) chargeFeeIfSufficientFeeDenomBalance(ctx sdk.Context, address sd accountBalance := k.bk.GetBalance(ctx, address, feeDenom).Amount if accountBalance.LT(totalCost) { - return sdkerrors.Wrapf(sdkerrors.ErrInsufficientFunds, "account's balance of %s (%s) is less than the total cost of the message (%s)", feeDenom, accountBalance, totalCost) + return errorsmod.Wrapf(sdkerrors.ErrInsufficientFunds, "account's balance of %s (%s) is less than the total cost of the message (%s)", feeDenom, accountBalance, totalCost) } if err := k.ck.FundCommunityPool(ctx, sdk.NewCoins(sdk.NewCoin(feeDenom, fee)), address); err != nil { diff --git a/x/incentives/keeper/grpc_query.go b/x/incentives/keeper/grpc_query.go index d8ab5572c32..93cdee21934 100644 --- a/x/incentives/keeper/grpc_query.go +++ b/x/incentives/keeper/grpc_query.go @@ -7,9 +7,11 @@ import ( "google.golang.org/grpc/codes" "google.golang.org/grpc/status" + errorsmod "cosmossdk.io/errors" "github.com/cosmos/cosmos-sdk/store/prefix" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/cosmos/cosmos-sdk/types/query" "github.com/osmosis-labs/osmosis/v15/x/incentives/types" @@ -138,13 +140,13 @@ func (q Querier) RewardsEst(goCtx context.Context, req *types.RewardsEstRequest) return nil, status.Error(codes.InvalidArgument, "empty request") } if len(req.Owner) == 0 && len(req.LockIds) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty owner") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty owner") } ctx := sdk.UnwrapSDKContext(goCtx) diff := req.EndEpoch - q.Keeper.GetEpochInfo(ctx).CurrentEpoch if diff > 365 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "end epoch out of ranges") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "end epoch out of ranges") } if len(req.Owner) != 0 { diff --git a/x/incentives/keeper/msg_server.go b/x/incentives/keeper/msg_server.go index c7b9ae15b2f..cb6154d344d 100644 --- a/x/incentives/keeper/msg_server.go +++ b/x/incentives/keeper/msg_server.go @@ -6,6 +6,7 @@ import ( "github.com/osmosis-labs/osmosis/osmoutils" "github.com/osmosis-labs/osmosis/v15/x/incentives/types" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) @@ -39,7 +40,7 @@ func (server msgServer) CreateGauge(goCtx context.Context, msg *types.MsgCreateG gaugeID, err := server.keeper.CreateGauge(ctx, msg.IsPerpetual, owner, msg.Coins, msg.DistributeTo, msg.StartTime, msg.NumEpochsPaidOver) if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, err.Error()) + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, err.Error()) } ctx.EventManager().EmitEvents(sdk.Events{ @@ -66,7 +67,7 @@ func (server msgServer) AddToGauge(goCtx context.Context, msg *types.MsgAddToGau } err = server.keeper.AddToGaugeRewards(ctx, owner, msg.Rewards, msg.GaugeId) if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, err.Error()) + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, err.Error()) } ctx.EventManager().EmitEvents(sdk.Events{ diff --git a/x/lockup/keeper/grpc_query.go b/x/lockup/keeper/grpc_query.go index ce775b639b8..f51d8ca952a 100644 --- a/x/lockup/keeper/grpc_query.go +++ b/x/lockup/keeper/grpc_query.go @@ -3,8 +3,10 @@ package keeper import ( "context" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "google.golang.org/grpc/codes" "google.golang.org/grpc/status" @@ -42,7 +44,7 @@ func (q Querier) AccountUnlockableCoins(goCtx context.Context, req *types.Accoun return nil, status.Error(codes.InvalidArgument, "empty request") } if len(req.Owner) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty owner") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty owner") } ctx := sdk.UnwrapSDKContext(goCtx) @@ -61,7 +63,7 @@ func (q Querier) AccountUnlockingCoins(goCtx context.Context, req *types.Account return nil, status.Error(codes.InvalidArgument, "empty request") } if len(req.Owner) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty owner") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty owner") } ctx := sdk.UnwrapSDKContext(goCtx) @@ -80,7 +82,7 @@ func (q Querier) AccountLockedCoins(goCtx context.Context, req *types.AccountLoc return nil, status.Error(codes.InvalidArgument, "empty request") } if len(req.Owner) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty owner") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty owner") } ctx := sdk.UnwrapSDKContext(goCtx) @@ -99,7 +101,7 @@ func (q Querier) AccountLockedPastTime(goCtx context.Context, req *types.Account return nil, status.Error(codes.InvalidArgument, "empty request") } if len(req.Owner) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty owner") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty owner") } ctx := sdk.UnwrapSDKContext(goCtx) @@ -118,7 +120,7 @@ func (q Querier) AccountUnlockedBeforeTime(goCtx context.Context, req *types.Acc return nil, status.Error(codes.InvalidArgument, "empty request") } if len(req.Owner) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty owner") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty owner") } ctx := sdk.UnwrapSDKContext(goCtx) @@ -138,7 +140,7 @@ func (q Querier) AccountLockedPastTimeDenom(goCtx context.Context, req *types.Ac return nil, status.Error(codes.InvalidArgument, "empty request") } if len(req.Owner) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty owner") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty owner") } ctx := sdk.UnwrapSDKContext(goCtx) @@ -192,7 +194,7 @@ func (q Querier) AccountLockedLongerDuration(goCtx context.Context, req *types.A return nil, status.Error(codes.InvalidArgument, "empty request") } if len(req.Owner) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty owner") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty owner") } ctx := sdk.UnwrapSDKContext(goCtx) @@ -212,7 +214,7 @@ func (q Querier) AccountLockedLongerDurationDenom(goCtx context.Context, req *ty return nil, status.Error(codes.InvalidArgument, "empty request") } if len(req.Owner) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty owner") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty owner") } ctx := sdk.UnwrapSDKContext(goCtx) @@ -232,7 +234,7 @@ func (q Querier) AccountLockedDuration(goCtx context.Context, req *types.Account return nil, status.Error(codes.InvalidArgument, "empty request") } if len(req.Owner) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty owner") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty owner") } ctx := sdk.UnwrapSDKContext(goCtx) @@ -253,7 +255,7 @@ func (q Querier) AccountLockedPastTimeNotUnlockingOnly(goCtx context.Context, re return nil, status.Error(codes.InvalidArgument, "empty request") } if len(req.Owner) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty owner") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty owner") } ctx := sdk.UnwrapSDKContext(goCtx) @@ -273,7 +275,7 @@ func (q Querier) AccountLockedLongerDurationNotUnlockingOnly(goCtx context.Conte return nil, status.Error(codes.InvalidArgument, "empty request") } if len(req.Owner) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty owner") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty owner") } ctx := sdk.UnwrapSDKContext(goCtx) @@ -292,7 +294,7 @@ func (q Querier) LockedDenom(goCtx context.Context, req *types.LockedDenomReques return nil, status.Error(codes.InvalidArgument, "empty request") } if len(req.Denom) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty denom") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty denom") } ctx := sdk.UnwrapSDKContext(goCtx) diff --git a/x/lockup/keeper/lock.go b/x/lockup/keeper/lock.go index f51daf2ef5a..da1ddb64569 100644 --- a/x/lockup/keeper/lock.go +++ b/x/lockup/keeper/lock.go @@ -6,9 +6,11 @@ import ( "strings" "time" + errorsmod "cosmossdk.io/errors" "github.com/cosmos/cosmos-sdk/store/prefix" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/gogo/protobuf/proto" "github.com/osmosis-labs/osmosis/osmoutils/sumtree" @@ -57,7 +59,7 @@ func (k Keeper) AddToExistingLock(ctx sdk.Context, owner sdk.AccAddress, coin sd // if no lock exists for the given owner + denom + duration, return an error if len(locks) < 1 { - return 0, sdkerrors.Wrapf(types.ErrLockupNotFound, "lock with denom %s before duration %s does not exist", coin.Denom, duration.String()) + return 0, errorsmod.Wrapf(types.ErrLockupNotFound, "lock with denom %s before duration %s does not exist", coin.Denom, duration.String()) } // if existing lock with same duration and denom exists, add to the existing lock @@ -65,7 +67,7 @@ func (k Keeper) AddToExistingLock(ctx sdk.Context, owner sdk.AccAddress, coin sd lock := locks[0] _, err := k.AddTokensToLockByID(ctx, lock.ID, owner, coin) if err != nil { - return 0, sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, err.Error()) + return 0, errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, err.Error()) } return lock.ID, nil diff --git a/x/lockup/keeper/msg_server.go b/x/lockup/keeper/msg_server.go index c9ef08f1f07..35755b464d6 100644 --- a/x/lockup/keeper/msg_server.go +++ b/x/lockup/keeper/msg_server.go @@ -7,6 +7,7 @@ import ( "github.com/osmosis-labs/osmosis/osmoutils" "github.com/osmosis-labs/osmosis/v15/x/lockup/types" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) @@ -60,7 +61,7 @@ func (server msgServer) LockTokens(goCtx context.Context, msg *types.MsgLockToke // if the owner + duration combination is new, create a new lock. lock, err := server.keeper.CreateLock(ctx, owner, msg.Coins, msg.Duration) if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, err.Error()) + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, err.Error()) } ctx.EventManager().EmitEvents(sdk.Events{ @@ -84,16 +85,16 @@ func (server msgServer) BeginUnlocking(goCtx context.Context, msg *types.MsgBegi lock, err := server.keeper.GetLockByID(ctx, msg.ID) if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, err.Error()) + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, err.Error()) } if msg.Owner != lock.Owner { - return nil, sdkerrors.Wrap(types.ErrNotLockOwner, fmt.Sprintf("msg sender (%s) and lock owner (%s) does not match", msg.Owner, lock.Owner)) + return nil, errorsmod.Wrap(types.ErrNotLockOwner, fmt.Sprintf("msg sender (%s) and lock owner (%s) does not match", msg.Owner, lock.Owner)) } unlockingLock, err := server.keeper.BeginUnlock(ctx, lock.ID, msg.Coins) if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, err.Error()) + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, err.Error()) } // N.B. begin unlock event is emitted downstream in the keeper method. @@ -112,7 +113,7 @@ func (server msgServer) BeginUnlockingAll(goCtx context.Context, msg *types.MsgB unlocks, err := server.keeper.BeginUnlockAllNotUnlockings(ctx, owner) if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, err.Error()) + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, err.Error()) } // Create the events for this message @@ -156,12 +157,12 @@ func (server msgServer) ExtendLockup(goCtx context.Context, msg *types.MsgExtend err = server.keeper.ExtendLockup(ctx, msg.ID, owner, msg.Duration) if err != nil { - return nil, sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, err.Error()) + return nil, errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, err.Error()) } lock, err := server.keeper.GetLockByID(ctx, msg.ID) if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, err.Error()) + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, err.Error()) } ctx.EventManager().EmitEvents(sdk.Events{ @@ -184,12 +185,12 @@ func (server msgServer) ForceUnlock(goCtx context.Context, msg *types.MsgForceUn lock, err := server.keeper.GetLockByID(ctx, msg.ID) if err != nil { - return &types.MsgForceUnlockResponse{Success: false}, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, err.Error()) + return &types.MsgForceUnlockResponse{Success: false}, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, err.Error()) } // check if message sender matches lock owner if lock.Owner != msg.Owner { - return &types.MsgForceUnlockResponse{Success: false}, sdkerrors.Wrapf(sdkerrors.ErrUnauthorized, "Sender (%s) does not match lock owner (%s)", msg.Owner, lock.Owner) + return &types.MsgForceUnlockResponse{Success: false}, errorsmod.Wrapf(sdkerrors.ErrUnauthorized, "Sender (%s) does not match lock owner (%s)", msg.Owner, lock.Owner) } // check for chain parameter that the address is allowed to force unlock @@ -203,13 +204,13 @@ func (server msgServer) ForceUnlock(goCtx context.Context, msg *types.MsgForceUn } } if !found { - return &types.MsgForceUnlockResponse{Success: false}, sdkerrors.Wrapf(sdkerrors.ErrUnauthorized, "Sender (%s) not allowed to force unlock", lock.Owner) + return &types.MsgForceUnlockResponse{Success: false}, errorsmod.Wrapf(sdkerrors.ErrUnauthorized, "Sender (%s) not allowed to force unlock", lock.Owner) } // check that given lock is not superfluid staked synthLocks := server.keeper.GetAllSyntheticLockupsByLockup(ctx, lock.ID) if len(synthLocks) > 0 { - return &types.MsgForceUnlockResponse{Success: false}, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "superfluid delegation exists for lock") + return &types.MsgForceUnlockResponse{Success: false}, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "superfluid delegation exists for lock") } // force unlock given lock @@ -217,7 +218,7 @@ func (server msgServer) ForceUnlock(goCtx context.Context, msg *types.MsgForceUn // provided is empty. err = server.keeper.PartialForceUnlock(ctx, *lock, msg.Coins) if err != nil { - return &types.MsgForceUnlockResponse{Success: false}, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, err.Error()) + return &types.MsgForceUnlockResponse{Success: false}, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, err.Error()) } return &types.MsgForceUnlockResponse{Success: true}, nil diff --git a/x/lockup/keeper/store.go b/x/lockup/keeper/store.go index fe253a5a256..ff7494c2f44 100644 --- a/x/lockup/keeper/store.go +++ b/x/lockup/keeper/store.go @@ -9,8 +9,8 @@ import ( "github.com/osmosis-labs/osmosis/v15/x/lockup/types" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) // GetLastLockID returns ID used last time. @@ -242,7 +242,7 @@ func (k Keeper) GetLockByID(ctx sdk.Context, lockID uint64) (*types.PeriodLock, store := ctx.KVStore(k.storeKey) lockKey := lockStoreKey(lockID) if !store.Has(lockKey) { - return nil, sdkerrors.Wrap(types.ErrLockupNotFound, fmt.Sprintf("lock with ID %d does not exist", lockID)) + return nil, errorsmod.Wrap(types.ErrLockupNotFound, fmt.Sprintf("lock with ID %d does not exist", lockID)) } bz := store.Get(lockKey) err := proto.Unmarshal(bz, &lock) diff --git a/x/lockup/types/errors.go b/x/lockup/types/errors.go index 6301861bf5e..ee98a1ff567 100644 --- a/x/lockup/types/errors.go +++ b/x/lockup/types/errors.go @@ -1,15 +1,15 @@ package types -// DONTCOVER - import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" ) +// DONTCOVER + // x/lockup module sentinel errors. var ( - ErrNotLockOwner = sdkerrors.Register(ModuleName, 1, "msg sender is not the owner of specified lock") - ErrSyntheticLockupAlreadyExists = sdkerrors.Register(ModuleName, 2, "synthetic lockup already exists for same lock and suffix") - ErrSyntheticDurationLongerThanNative = sdkerrors.Register(ModuleName, 3, "synthetic lockup duration should be shorter than native lockup duration") - ErrLockupNotFound = sdkerrors.Register(ModuleName, 4, "lockup not found") + ErrNotLockOwner = errorsmod.Register(ModuleName, 1, "msg sender is not the owner of specified lock") + ErrSyntheticLockupAlreadyExists = errorsmod.Register(ModuleName, 2, "synthetic lockup already exists for same lock and suffix") + ErrSyntheticDurationLongerThanNative = errorsmod.Register(ModuleName, 3, "synthetic lockup duration should be shorter than native lockup duration") + ErrLockupNotFound = errorsmod.Register(ModuleName, 4, "lockup not found") ) diff --git a/x/lockup/types/msgs.go b/x/lockup/types/msgs.go index 98bed0534ca..2085818a455 100644 --- a/x/lockup/types/msgs.go +++ b/x/lockup/types/msgs.go @@ -4,6 +4,7 @@ import ( "fmt" "time" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) @@ -33,7 +34,7 @@ func (m MsgLockTokens) Type() string { return TypeMsgLockTokens } func (m MsgLockTokens) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(m.Owner) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid owner address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid owner address (%s)", err) } if m.Duration <= 0 { @@ -75,7 +76,7 @@ func (m MsgBeginUnlockingAll) Type() string { return TypeMsgBeginUnlockingAll } func (m MsgBeginUnlockingAll) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(m.Owner) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid owner address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid owner address (%s)", err) } return nil } @@ -105,7 +106,7 @@ func (m MsgBeginUnlocking) Type() string { return TypeMsgBeginUnlocking } func (m MsgBeginUnlocking) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(m.Owner) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid owner address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid owner address (%s)", err) } if m.ID == 0 { @@ -147,7 +148,7 @@ func (m MsgExtendLockup) Type() string { return TypeMsgExtendLockup } func (m MsgExtendLockup) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(m.Owner) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid owner address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid owner address (%s)", err) } if m.ID == 0 { return fmt.Errorf("id is empty") @@ -183,15 +184,15 @@ func (m MsgForceUnlock) Type() string { return TypeMsgBeginUnlockingAll } func (m MsgForceUnlock) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(m.Owner) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid owner address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid owner address (%s)", err) } if m.ID <= 0 { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "lock id should be bigger than 1 (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "lock id should be bigger than 1 (%s)", err) } if !m.Coins.IsValid() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidCoins, m.Coins.String()) + return errorsmod.Wrap(sdkerrors.ErrInvalidCoins, m.Coins.String()) } return nil } diff --git a/x/mint/keeper/keeper.go b/x/mint/keeper/keeper.go index 2808be960fc..af2787d3d3e 100644 --- a/x/mint/keeper/keeper.go +++ b/x/mint/keeper/keeper.go @@ -5,12 +5,13 @@ import ( "github.com/tendermint/tendermint/libs/log" + errorsmod "cosmossdk.io/errors" + "github.com/osmosis-labs/osmosis/osmoutils" "github.com/osmosis-labs/osmosis/v15/x/mint/types" poolincentivestypes "github.com/osmosis-labs/osmosis/v15/x/pool-incentives/types" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" ) @@ -290,10 +291,10 @@ func getProportions(mintedCoin sdk.Coin, ratio sdk.Dec) (sdk.Coin, error) { // - developer vesting module account is already created prior to calling this method. func (k Keeper) createDeveloperVestingModuleAccount(ctx sdk.Context, amount sdk.Coin) error { if amount.IsNil() || amount.Amount.IsZero() { - return sdkerrors.Wrap(types.ErrAmountNilOrZero, "amount cannot be nil or zero") + return errorsmod.Wrap(types.ErrAmountNilOrZero, "amount cannot be nil or zero") } if k.accountKeeper.HasAccount(ctx, k.accountKeeper.GetModuleAddress(types.DeveloperVestingModuleAcctName)) { - return sdkerrors.Wrapf(types.ErrModuleAccountAlreadyExist, "%s vesting module account already exist", types.DeveloperVestingModuleAcctName) + return errorsmod.Wrapf(types.ErrModuleAccountAlreadyExist, "%s vesting module account already exist", types.DeveloperVestingModuleAcctName) } moduleAcc := authtypes.NewEmptyModuleAccount( diff --git a/x/mint/keeper/keeper_test.go b/x/mint/keeper/keeper_test.go index 850e748479a..f87f762c414 100644 --- a/x/mint/keeper/keeper_test.go +++ b/x/mint/keeper/keeper_test.go @@ -4,6 +4,7 @@ import ( "fmt" "testing" + errorsmod "cosmossdk.io/errors" "github.com/cosmos/btcutil/bech32" sdk "github.com/cosmos/cosmos-sdk/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" @@ -276,18 +277,18 @@ func (suite *KeeperTestSuite) TestCreateDeveloperVestingModuleAccount() { }, "nil amount": { blockHeight: 0, - expectedError: sdkerrors.Wrap(types.ErrAmountNilOrZero, "amount cannot be nil or zero"), + expectedError: errorsmod.Wrap(types.ErrAmountNilOrZero, "amount cannot be nil or zero"), }, "zero amount": { blockHeight: 0, amount: sdk.NewCoin("stake", sdk.NewInt(0)), - expectedError: sdkerrors.Wrap(types.ErrAmountNilOrZero, "amount cannot be nil or zero"), + expectedError: errorsmod.Wrap(types.ErrAmountNilOrZero, "amount cannot be nil or zero"), }, "module account is already created": { blockHeight: 0, amount: sdk.NewCoin("stake", sdk.NewInt(keeper.DeveloperVestingAmount)), isDeveloperModuleAccountCreated: true, - expectedError: sdkerrors.Wrapf(types.ErrModuleAccountAlreadyExist, "%s vesting module account already exist", types.DeveloperVestingModuleAcctName), + expectedError: errorsmod.Wrapf(types.ErrModuleAccountAlreadyExist, "%s vesting module account already exist", types.DeveloperVestingModuleAcctName), }, } @@ -551,7 +552,7 @@ func (suite *KeeperTestSuite) TestDistributeDeveloperRewards() { }, }, - expectedError: sdkerrors.Wrap(bech32.ErrInvalidLength(len(invalidAddress)), "decoding bech32 failed"), + expectedError: errorsmod.Wrap(bech32.ErrInvalidLength(len(invalidAddress)), "decoding bech32 failed"), // This case should not happen in practice due to parameter validation. // The method spec also requires that all recepient addresses are valid by CONTRACT. // Since we still handle error returned by the converion from string to address, @@ -569,7 +570,7 @@ func (suite *KeeperTestSuite) TestDistributeDeveloperRewards() { Weight: sdk.NewDec(1), }, }, - expectedError: sdkerrors.Wrap(sdkerrors.ErrInsufficientFunds, fmt.Sprintf("%s is smaller than %s", validPreMintCoinSubOne, validPreMintCoin)), + expectedError: errorsmod.Wrap(sdkerrors.ErrInsufficientFunds, fmt.Sprintf("%s is smaller than %s", validPreMintCoinSubOne, validPreMintCoin)), }, "distribute * proportion < pre-mint but distribute * proportion > developer vesting amount - error": { preMintCoin: validPreMintCoin, diff --git a/x/mint/types/errors.go b/x/mint/types/errors.go index 6f721cb74a7..22ead4603a7 100644 --- a/x/mint/types/errors.go +++ b/x/mint/types/errors.go @@ -1,11 +1,11 @@ package types import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" ) var ( - ErrAmountNilOrZero = sdkerrors.Register(ModuleName, 2, "amount cannot be nil or zero") - ErrModuleAccountAlreadyExist = sdkerrors.Register(ModuleName, 3, "module account already exists") - ErrModuleDoesnotExist = sdkerrors.Register(ModuleName, 4, "module account does not exist") + ErrAmountNilOrZero = errorsmod.Register(ModuleName, 2, "amount cannot be nil or zero") + ErrModuleAccountAlreadyExist = errorsmod.Register(ModuleName, 3, "module account already exists") + ErrModuleDoesnotExist = errorsmod.Register(ModuleName, 4, "module account does not exist") ) diff --git a/x/pool-incentives/handler.go b/x/pool-incentives/handler.go index 52388377414..6acae137ea8 100644 --- a/x/pool-incentives/handler.go +++ b/x/pool-incentives/handler.go @@ -1,8 +1,10 @@ package pool_incentives import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" "github.com/osmosis-labs/osmosis/v15/x/pool-incentives/keeper" @@ -19,7 +21,7 @@ func NewPoolIncentivesProposalHandler(k keeper.Keeper) govtypes.Handler { return handleReplacePoolIncentivesProposal(ctx, k, c) default: - return sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized pool incentives proposal content type: %T", c) + return errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized pool incentives proposal content type: %T", c) } } } diff --git a/x/pool-incentives/keeper/distr.go b/x/pool-incentives/keeper/distr.go index f9236388387..5d8a98db5ac 100644 --- a/x/pool-incentives/keeper/distr.go +++ b/x/pool-incentives/keeper/distr.go @@ -4,11 +4,12 @@ import ( "fmt" "sort" + errorsmod "cosmossdk.io/errors" + "github.com/osmosis-labs/osmosis/osmoutils" "github.com/osmosis-labs/osmosis/v15/x/pool-incentives/types" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) // FundCommunityPoolFromModule allows the pool-incentives module to directly fund the community fund pool. @@ -89,7 +90,7 @@ func (k Keeper) validateRecords(ctx sdk.Context, records ...types.DistrRecord) e for _, record := range records { if gaugeIdFlags[record.GaugeId] { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrDistrRecordRegisteredGauge, "Gauge ID #%d has duplications.", record.GaugeId, @@ -98,7 +99,7 @@ func (k Keeper) validateRecords(ctx sdk.Context, records ...types.DistrRecord) e // Ensure records are sorted because ~AESTHETIC~ if record.GaugeId < lastGaugeID { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrDistrRecordNotSorted, "Gauge ID #%d came after Gauge ID #%d.", record.GaugeId, lastGaugeID, @@ -113,7 +114,7 @@ func (k Keeper) validateRecords(ctx sdk.Context, records ...types.DistrRecord) e return err } if !gauge.IsPerpetual { - return sdkerrors.Wrapf(types.ErrDistrRecordRegisteredGauge, + return errorsmod.Wrapf(types.ErrDistrRecordRegisteredGauge, "Gauge ID #%d is not perpetual.", record.GaugeId) } diff --git a/x/pool-incentives/types/errors.go b/x/pool-incentives/types/errors.go index 3a95a47fa92..b6e57f942bb 100644 --- a/x/pool-incentives/types/errors.go +++ b/x/pool-incentives/types/errors.go @@ -4,19 +4,19 @@ import ( "fmt" "time" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" ) // The following regiisters various pool-incentives errors. var ( - ErrNoGaugeIdExist = sdkerrors.Register(ModuleName, 1, "no gauge id exist") - ErrDistrRecordNotPositiveWeight = sdkerrors.Register(ModuleName, 2, "weight in record should be positive") - ErrDistrRecordNotRegisteredGauge = sdkerrors.Register(ModuleName, 3, "gauge was not registered") - ErrDistrRecordRegisteredGauge = sdkerrors.Register(ModuleName, 4, "gauge was already registered") - ErrDistrRecordNotSorted = sdkerrors.Register(ModuleName, 5, "gauges are not sorted") - - ErrEmptyProposalRecords = sdkerrors.Register(ModuleName, 10, "records are empty") - ErrEmptyProposalGaugeIds = sdkerrors.Register(ModuleName, 11, "gauge ids are empty") + ErrNoGaugeIdExist = errorsmod.Register(ModuleName, 1, "no gauge id exist") + ErrDistrRecordNotPositiveWeight = errorsmod.Register(ModuleName, 2, "weight in record should be positive") + ErrDistrRecordNotRegisteredGauge = errorsmod.Register(ModuleName, 3, "gauge was not registered") + ErrDistrRecordRegisteredGauge = errorsmod.Register(ModuleName, 4, "gauge was already registered") + ErrDistrRecordNotSorted = errorsmod.Register(ModuleName, 5, "gauges are not sorted") + + ErrEmptyProposalRecords = errorsmod.Register(ModuleName, 10, "records are empty") + ErrEmptyProposalGaugeIds = errorsmod.Register(ModuleName, 11, "gauge ids are empty") ) type NoGaugeAssociatedWithPoolError struct { diff --git a/x/poolmanager/types/msgs.go b/x/poolmanager/types/msgs.go index 52bf028b724..f1af10033a2 100644 --- a/x/poolmanager/types/msgs.go +++ b/x/poolmanager/types/msgs.go @@ -1,6 +1,7 @@ package types import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) @@ -20,7 +21,7 @@ func (msg MsgSwapExactAmountIn) Type() string { return TypeMsgSwapExactAmountIn func (msg MsgSwapExactAmountIn) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(msg.Sender) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } err = SwapAmountInRoutes(msg.Routes).Validate() @@ -30,7 +31,7 @@ func (msg MsgSwapExactAmountIn) ValidateBasic() error { if !msg.TokenIn.IsValid() || !msg.TokenIn.IsPositive() { // TODO: remove sdk errors - return sdkerrors.Wrap(sdkerrors.ErrInvalidCoins, msg.TokenIn.String()) + return errorsmod.Wrap(sdkerrors.ErrInvalidCoins, msg.TokenIn.String()) } if !msg.TokenOutMinAmount.IsPositive() { @@ -59,7 +60,7 @@ func (msg MsgSwapExactAmountOut) Type() string { return TypeMsgSwapExactAmountO func (msg MsgSwapExactAmountOut) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(msg.Sender) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } err = SwapAmountOutRoutes(msg.Routes).Validate() @@ -68,7 +69,7 @@ func (msg MsgSwapExactAmountOut) ValidateBasic() error { } if !msg.TokenOut.IsValid() || !msg.TokenOut.IsPositive() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidCoins, msg.TokenOut.String()) + return errorsmod.Wrap(sdkerrors.ErrInvalidCoins, msg.TokenOut.String()) } if !msg.TokenInMaxAmount.IsPositive() { diff --git a/x/protorev/proposal_handler.go b/x/protorev/proposal_handler.go index 0bda51f1029..0bf608418d7 100644 --- a/x/protorev/proposal_handler.go +++ b/x/protorev/proposal_handler.go @@ -4,6 +4,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + errorsmod "cosmossdk.io/errors" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/osmosis-labs/osmosis/v15/x/protorev/keeper" @@ -18,7 +19,7 @@ func NewProtoRevProposalHandler(k keeper.Keeper) govtypes.Handler { case *types.SetProtoRevEnabledProposal: return HandleEnabledProposal(ctx, k, c) default: - return sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized %s proposal content type: %T", types.ModuleName, c) + return errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized %s proposal content type: %T", types.ModuleName, c) } } } diff --git a/x/protorev/types/msg.go b/x/protorev/types/msg.go index 67ddb33578d..1210405a36c 100644 --- a/x/protorev/types/msg.go +++ b/x/protorev/types/msg.go @@ -1,8 +1,8 @@ package types import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) var ( @@ -46,7 +46,7 @@ func (msg MsgSetHotRoutes) Type() string { func (msg MsgSetHotRoutes) ValidateBasic() error { // Account must be a valid bech32 address if _, err := sdk.AccAddressFromBech32(msg.Admin); err != nil { - return sdkerrors.Wrap(err, "invalid admin address (must be bech32)") + return errorsmod.Wrap(err, "invalid admin address (must be bech32)") } // Validate the hot routes @@ -92,13 +92,13 @@ func (msg MsgSetDeveloperAccount) ValidateBasic() error { // Account must be a valid bech32 address _, err := sdk.AccAddressFromBech32(msg.Admin) if err != nil { - return sdkerrors.Wrap(err, "invalid admin address (must be bech32)") + return errorsmod.Wrap(err, "invalid admin address (must be bech32)") } // Account must be a valid bech32 address _, err = sdk.AccAddressFromBech32(msg.DeveloperAccount) if err != nil { - return sdkerrors.Wrap(err, "invalid developer account address (must be bech32)") + return errorsmod.Wrap(err, "invalid developer account address (must be bech32)") } return nil @@ -138,7 +138,7 @@ func (msg MsgSetMaxPoolPointsPerTx) Type() string { func (msg MsgSetMaxPoolPointsPerTx) ValidateBasic() error { // Account must be a valid bech32 address if _, err := sdk.AccAddressFromBech32(msg.Admin); err != nil { - return sdkerrors.Wrap(err, "invalid admin address (must be bech32)") + return errorsmod.Wrap(err, "invalid admin address (must be bech32)") } // Max pool points per tx must be in the valid range @@ -183,7 +183,7 @@ func (msg MsgSetMaxPoolPointsPerBlock) Type() string { func (msg MsgSetMaxPoolPointsPerBlock) ValidateBasic() error { // Account must be a valid bech32 address if _, err := sdk.AccAddressFromBech32(msg.Admin); err != nil { - return sdkerrors.Wrap(err, "invalid admin address (must be bech32)") + return errorsmod.Wrap(err, "invalid admin address (must be bech32)") } // Max pool points per block must be in the valid range @@ -228,7 +228,7 @@ func (msg MsgSetPoolWeights) Type() string { func (msg MsgSetPoolWeights) ValidateBasic() error { // Account must be a valid bech32 address if _, err := sdk.AccAddressFromBech32(msg.Admin); err != nil { - return sdkerrors.Wrap(err, "invalid admin address (must be bech32)") + return errorsmod.Wrap(err, "invalid admin address (must be bech32)") } if err := msg.PoolWeights.Validate(); err != nil { @@ -272,7 +272,7 @@ func (msg MsgSetBaseDenoms) Type() string { func (msg MsgSetBaseDenoms) ValidateBasic() error { // Account must be a valid bech32 address if _, err := sdk.AccAddressFromBech32(msg.Admin); err != nil { - return sdkerrors.Wrap(err, "invalid admin address (must be bech32)") + return errorsmod.Wrap(err, "invalid admin address (must be bech32)") } // Check that there is at least one base denom and that first denom is osmo diff --git a/x/superfluid/keeper/grpc_query.go b/x/superfluid/keeper/grpc_query.go index d67b1689242..258e7573343 100644 --- a/x/superfluid/keeper/grpc_query.go +++ b/x/superfluid/keeper/grpc_query.go @@ -5,6 +5,7 @@ import ( "strings" "time" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" @@ -45,7 +46,7 @@ func (q Querier) AssetType(goCtx context.Context, req *types.AssetTypeRequest) ( return nil, status.Error(codes.InvalidArgument, "empty request") } if len(req.Denom) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty denom") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty denom") } ctx := sdk.UnwrapSDKContext(goCtx) @@ -73,7 +74,7 @@ func (q Querier) AssetMultiplier(goCtx context.Context, req *types.AssetMultipli return nil, status.Error(codes.InvalidArgument, "empty request") } if len(req.Denom) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty denom") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty denom") } ctx := sdk.UnwrapSDKContext(goCtx) @@ -146,13 +147,13 @@ func (q Querier) SuperfluidDelegationAmount(goCtx context.Context, req *types.Su return nil, status.Error(codes.InvalidArgument, "empty request") } if len(req.Denom) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty denom") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty denom") } if len(req.ValidatorAddress) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty validator address") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty validator address") } if len(req.DelegatorAddress) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty delegator address") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty delegator address") } ctx := sdk.UnwrapSDKContext(goCtx) @@ -188,7 +189,7 @@ func (q Querier) SuperfluidDelegationsByDelegator(goCtx context.Context, req *ty return nil, status.Error(codes.InvalidArgument, "empty request") } if len(req.DelegatorAddress) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty delegator address") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty delegator address") } ctx := sdk.UnwrapSDKContext(goCtx) @@ -256,7 +257,7 @@ func (q Querier) SuperfluidUndelegationsByDelegator(goCtx context.Context, req * return nil, status.Error(codes.InvalidArgument, "empty request") } if len(req.DelegatorAddress) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty delegator address") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty delegator address") } ctx := sdk.UnwrapSDKContext(goCtx) @@ -314,10 +315,10 @@ func (q Querier) SuperfluidDelegationsByValidatorDenom(goCtx context.Context, re return nil, status.Error(codes.InvalidArgument, "empty request") } if len(req.Denom) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty denom") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty denom") } if len(req.ValidatorAddress) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty validator address") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty validator address") } ctx := sdk.UnwrapSDKContext(goCtx) @@ -362,10 +363,10 @@ func (q Querier) EstimateSuperfluidDelegatedAmountByValidatorDenom(goCtx context return nil, status.Error(codes.InvalidArgument, "empty request") } if len(req.Denom) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty denom") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty denom") } if len(req.ValidatorAddress) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty validator address") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty validator address") } ctx := sdk.UnwrapSDKContext(goCtx) @@ -484,7 +485,7 @@ func (q Querier) TotalDelegationByDelegator(goCtx context.Context, req *types.Qu return nil, status.Error(codes.InvalidArgument, "empty request") } if len(req.DelegatorAddress) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty delegator address") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty delegator address") } ctx := sdk.UnwrapSDKContext(goCtx) diff --git a/x/superfluid/keeper/migrate_test.go b/x/superfluid/keeper/migrate_test.go index befb992ac26..153d7adf9bf 100644 --- a/x/superfluid/keeper/migrate_test.go +++ b/x/superfluid/keeper/migrate_test.go @@ -4,9 +4,9 @@ import ( "fmt" "strings" + errorsmod "cosmossdk.io/errors" "github.com/cosmos/cosmos-sdk/simapp" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" "github.com/osmosis-labs/osmosis/osmomath" @@ -74,7 +74,7 @@ func (suite *KeeperTestSuite) TestRouteLockedBalancerToConcentratedMigration() { "error: non-existent lock": { overwriteLockId: true, percentOfSharesToMigrate: sdk.MustNewDecFromStr("1"), - expectedError: sdkerrors.Wrap(lockuptypes.ErrLockupNotFound, fmt.Sprintf("lock with ID %d does not exist", 5)), + expectedError: errorsmod.Wrap(lockuptypes.ErrLockupNotFound, fmt.Sprintf("lock with ID %d does not exist", 5)), }, "error: lock that is not superfluid delegated, not unlocking, min exit coins more than being exitted": { // migrateNonSuperfluidLockBalancerToConcentrated diff --git a/x/superfluid/keeper/stake.go b/x/superfluid/keeper/stake.go index bb4dddb534d..d643ce94c9d 100644 --- a/x/superfluid/keeper/stake.go +++ b/x/superfluid/keeper/stake.go @@ -3,7 +3,7 @@ package keeper import ( "fmt" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" "github.com/osmosis-labs/osmosis/osmoutils" lockuptypes "github.com/osmosis-labs/osmosis/v15/x/lockup/types" @@ -161,18 +161,18 @@ func (k Keeper) validateLockForSFDelegate(ctx sdk.Context, lock *lockuptypes.Per // prevent unbonding lockups to be not able to be used for superfluid staking if lock.IsUnlocking() { - return sdkerrors.Wrapf(types.ErrUnbondingLockupNotSupported, "lock id : %d", lock.ID) + return errorsmod.Wrapf(types.ErrUnbondingLockupNotSupported, "lock id : %d", lock.ID) } // ensure that lock duration >= staking.UnbondingTime unbondingTime := k.sk.GetParams(ctx).UnbondingTime if lock.Duration < unbondingTime { - return sdkerrors.Wrapf(types.ErrNotEnoughLockupDuration, "lock duration (%d) must be greater than unbonding time (%d)", lock.Duration, unbondingTime) + return errorsmod.Wrapf(types.ErrNotEnoughLockupDuration, "lock duration (%d) must be greater than unbonding time (%d)", lock.Duration, unbondingTime) } // Thus when we stake now, this will be the only superfluid position for this lockID. if k.alreadySuperfluidStaking(ctx, lock.ID) { - return sdkerrors.Wrapf(types.ErrAlreadyUsedSuperfluidLockup, "lock id : %d", lock.ID) + return errorsmod.Wrapf(types.ErrAlreadyUsedSuperfluidLockup, "lock id : %d", lock.ID) } return nil diff --git a/x/superfluid/keeper/stake_test.go b/x/superfluid/keeper/stake_test.go index 10bc30ee16f..6f81cd14f2d 100644 --- a/x/superfluid/keeper/stake_test.go +++ b/x/superfluid/keeper/stake_test.go @@ -10,8 +10,8 @@ import ( "github.com/osmosis-labs/osmosis/v15/x/superfluid/keeper" "github.com/osmosis-labs/osmosis/v15/x/superfluid/types" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" ) @@ -193,7 +193,7 @@ func (suite *KeeperTestSuite) TestValidateLockForSFDelegate() { ID: 1, }, superfluidAssetToSet: types.SuperfluidAsset{Denom: DefaultGammAsset, AssetType: types.SuperfluidAssetTypeLPShare}, - expectedErr: sdkerrors.Wrapf(types.ErrNonSuperfluidAsset, "denom: %s", "uosmo"), + expectedErr: errorsmod.Wrapf(types.ErrNonSuperfluidAsset, "denom: %s", "uosmo"), }, { name: "invalid lock - unbonding lockup not supported", @@ -205,7 +205,7 @@ func (suite *KeeperTestSuite) TestValidateLockForSFDelegate() { EndTime: time.Now().Add(time.Hour * 24), }, superfluidAssetToSet: types.SuperfluidAsset{Denom: DefaultGammAsset, AssetType: types.SuperfluidAssetTypeLPShare}, - expectedErr: sdkerrors.Wrapf(types.ErrUnbondingLockupNotSupported, "lock id : %d", uint64(1)), + expectedErr: errorsmod.Wrapf(types.ErrUnbondingLockupNotSupported, "lock id : %d", uint64(1)), }, { name: "invalid lock - not enough lockup duration", @@ -216,7 +216,7 @@ func (suite *KeeperTestSuite) TestValidateLockForSFDelegate() { ID: 1, }, superfluidAssetToSet: types.SuperfluidAsset{Denom: DefaultGammAsset, AssetType: types.SuperfluidAssetTypeLPShare}, - expectedErr: sdkerrors.Wrapf(types.ErrNotEnoughLockupDuration, + expectedErr: errorsmod.Wrapf(types.ErrNotEnoughLockupDuration, "lock duration (%d) must be greater than unbonding time (%d)", time.Hour*24, time.Hour*24*21), }, @@ -230,7 +230,7 @@ func (suite *KeeperTestSuite) TestValidateLockForSFDelegate() { }, superfluidAssetToSet: types.SuperfluidAsset{Denom: DefaultGammAsset, AssetType: types.SuperfluidAssetTypeLPShare}, lockIdAlreadySuperfluidDelegated: true, - expectedErr: sdkerrors.Wrapf(types.ErrAlreadyUsedSuperfluidLockup, "lock id : %d", uint64(1)), + expectedErr: errorsmod.Wrapf(types.ErrAlreadyUsedSuperfluidLockup, "lock id : %d", uint64(1)), }, } diff --git a/x/superfluid/keeper/superfluid_asset_store.go b/x/superfluid/keeper/superfluid_asset_store.go index 0a3ca5be947..ea43da1bad6 100644 --- a/x/superfluid/keeper/superfluid_asset_store.go +++ b/x/superfluid/keeper/superfluid_asset_store.go @@ -5,12 +5,13 @@ package keeper import ( "github.com/gogo/protobuf/proto" + errorsmod "cosmossdk.io/errors" + "github.com/osmosis-labs/osmosis/osmoutils" "github.com/osmosis-labs/osmosis/v15/x/superfluid/types" "github.com/cosmos/cosmos-sdk/store/prefix" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) func (k Keeper) SetSuperfluidAsset(ctx sdk.Context, asset types.SuperfluidAsset) { @@ -38,7 +39,7 @@ func (k Keeper) GetSuperfluidAsset(ctx sdk.Context, denom string) (types.Superfl return types.SuperfluidAsset{}, err } if !found { - return types.SuperfluidAsset{}, sdkerrors.Wrapf(types.ErrNonSuperfluidAsset, "denom: %s", denom) + return types.SuperfluidAsset{}, errorsmod.Wrapf(types.ErrNonSuperfluidAsset, "denom: %s", denom) } return asset, nil } diff --git a/x/superfluid/proposal_handler.go b/x/superfluid/proposal_handler.go index 68abee5c267..5c51cb91a7a 100644 --- a/x/superfluid/proposal_handler.go +++ b/x/superfluid/proposal_handler.go @@ -1,8 +1,10 @@ package superfluid import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" "github.com/osmosis-labs/osmosis/v15/x/superfluid/keeper" @@ -21,7 +23,7 @@ func NewSuperfluidProposalHandler(k keeper.Keeper, ek types.EpochKeeper, gk type return handleUnpoolWhitelistChange(ctx, k, gk, c) default: - return sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized pool incentives proposal content type: %T", c) + return errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized pool incentives proposal content type: %T", c) } } } diff --git a/x/superfluid/types/errors.go b/x/superfluid/types/errors.go index 72623fc801f..c81fa48807e 100644 --- a/x/superfluid/types/errors.go +++ b/x/superfluid/types/errors.go @@ -1,24 +1,24 @@ package types import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" ) // x/superfluid module errors. var ( - ErrMultipleCoinsLockupNotSupported = sdkerrors.Register(ModuleName, 1, "multiple coins lockup is not supported") - ErrUnbondingLockupNotSupported = sdkerrors.Register(ModuleName, 2, "unbonding lockup is not allowed to participate in superfluid staking") - ErrNotEnoughLockupDuration = sdkerrors.Register(ModuleName, 3, "lockup does not have enough lock duration") - ErrOsmoEquivalentZeroNotAllowed = sdkerrors.Register(ModuleName, 4, "not able to do superfluid staking for zero osmo equivalent") - ErrNotSuperfluidUsedLockup = sdkerrors.Register(ModuleName, 5, "lockup is not used for superfluid staking") - ErrSameValidatorRedelegation = sdkerrors.Register(ModuleName, 6, "redelegation to the same validator is not allowed") - ErrAlreadyUsedSuperfluidLockup = sdkerrors.Register(ModuleName, 7, "lockup is already being used for superfluid staking") - ErrUnbondingSyntheticLockupExists = sdkerrors.Register(ModuleName, 8, "unbonding synthetic lockup exists on the validator") - ErrBondingLockupNotSupported = sdkerrors.Register(ModuleName, 9, "bonded superfluid stake is not allowed to have underlying lock unlocked") + ErrMultipleCoinsLockupNotSupported = errorsmod.Register(ModuleName, 1, "multiple coins lockup is not supported") + ErrUnbondingLockupNotSupported = errorsmod.Register(ModuleName, 2, "unbonding lockup is not allowed to participate in superfluid staking") + ErrNotEnoughLockupDuration = errorsmod.Register(ModuleName, 3, "lockup does not have enough lock duration") + ErrOsmoEquivalentZeroNotAllowed = errorsmod.Register(ModuleName, 4, "not able to do superfluid staking for zero osmo equivalent") + ErrNotSuperfluidUsedLockup = errorsmod.Register(ModuleName, 5, "lockup is not used for superfluid staking") + ErrSameValidatorRedelegation = errorsmod.Register(ModuleName, 6, "redelegation to the same validator is not allowed") + ErrAlreadyUsedSuperfluidLockup = errorsmod.Register(ModuleName, 7, "lockup is already being used for superfluid staking") + ErrUnbondingSyntheticLockupExists = errorsmod.Register(ModuleName, 8, "unbonding synthetic lockup exists on the validator") + ErrBondingLockupNotSupported = errorsmod.Register(ModuleName, 9, "bonded superfluid stake is not allowed to have underlying lock unlocked") - ErrNonSuperfluidAsset = sdkerrors.Register(ModuleName, 10, "provided asset is not supported for superfluid staking") + ErrNonSuperfluidAsset = errorsmod.Register(ModuleName, 10, "provided asset is not supported for superfluid staking") - ErrPoolNotWhitelisted = sdkerrors.Register(ModuleName, 41, "pool not whitelisted to unpool") - ErrLockUnpoolNotAllowed = sdkerrors.Register(ModuleName, 42, "lock not eligible for unpooling") - ErrLockLengthMismatch = sdkerrors.Register(ModuleName, 43, "lock has more than one asset") + ErrPoolNotWhitelisted = errorsmod.Register(ModuleName, 41, "pool not whitelisted to unpool") + ErrLockUnpoolNotAllowed = errorsmod.Register(ModuleName, 42, "lock not eligible for unpooling") + ErrLockLengthMismatch = errorsmod.Register(ModuleName, 43, "lock has more than one asset") ) diff --git a/x/superfluid/types/msgs.go b/x/superfluid/types/msgs.go index 63c52513d1b..f6ca2fc3fb9 100644 --- a/x/superfluid/types/msgs.go +++ b/x/superfluid/types/msgs.go @@ -3,6 +3,7 @@ package types import ( "fmt" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) @@ -245,7 +246,7 @@ func (msg MsgUnPoolWhitelistedPool) Type() string { return TypeMsgUnPoolWhiteli func (msg MsgUnPoolWhitelistedPool) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(msg.Sender) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } return nil @@ -277,10 +278,11 @@ func (msg MsgUnlockAndMigrateSharesToFullRangeConcentratedPosition) Route() stri func (msg MsgUnlockAndMigrateSharesToFullRangeConcentratedPosition) Type() string { return TypeMsgUnlockAndMigrateShares } + func (msg MsgUnlockAndMigrateSharesToFullRangeConcentratedPosition) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(msg.Sender) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } if msg.LockId <= 0 { return fmt.Errorf("Invalid lock ID (%d)", msg.LockId) @@ -318,10 +320,11 @@ func (msg MsgCreateFullRangePositionAndSuperfluidDelegate) Route() string { retu func (msg MsgCreateFullRangePositionAndSuperfluidDelegate) Type() string { return TypeMsgUnlockAndMigrateShares } + func (msg MsgCreateFullRangePositionAndSuperfluidDelegate) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(msg.Sender) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } err = msg.Coins.Validate() diff --git a/x/tokenfactory/keeper/before_send.go b/x/tokenfactory/keeper/before_send.go index e00b0b79e28..6c17d559b9c 100644 --- a/x/tokenfactory/keeper/before_send.go +++ b/x/tokenfactory/keeper/before_send.go @@ -4,10 +4,10 @@ import ( "encoding/json" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/osmosis-labs/osmosis/v15/x/tokenfactory/types" + errorsmod "cosmossdk.io/errors" wasmKeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" wasmvmtypes "github.com/CosmWasm/wasmvm/types" ) @@ -127,7 +127,7 @@ func (k Keeper) callBeforeSendListener(ctx sdk.Context, wasmKeeper wasmKeeper.Ke _, err = wasmKeeper.Sudo(ctx.WithEventManager(em), cwAddr, msgBz) if err != nil { - return sdkerrors.Wrapf(err, "failed to call before send hook for denom %s", coin.Denom) + return errorsmod.Wrapf(err, "failed to call before send hook for denom %s", coin.Denom) } } } diff --git a/x/tokenfactory/types/denoms.go b/x/tokenfactory/types/denoms.go index bad601e08ce..c705a9b95c5 100644 --- a/x/tokenfactory/types/denoms.go +++ b/x/tokenfactory/types/denoms.go @@ -4,8 +4,8 @@ import ( fmt "fmt" "strings" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" ) @@ -48,17 +48,17 @@ func DeconstructDenom(denom string) (creator string, subdenom string, err error) strParts := strings.Split(denom, "/") if len(strParts) < 3 { - return "", "", sdkerrors.Wrapf(ErrInvalidDenom, "not enough parts of denom %s", denom) + return "", "", errorsmod.Wrapf(ErrInvalidDenom, "not enough parts of denom %s", denom) } if strParts[0] != ModuleDenomPrefix { - return "", "", sdkerrors.Wrapf(ErrInvalidDenom, "denom prefix is incorrect. Is: %s. Should be: %s", strParts[0], ModuleDenomPrefix) + return "", "", errorsmod.Wrapf(ErrInvalidDenom, "denom prefix is incorrect. Is: %s. Should be: %s", strParts[0], ModuleDenomPrefix) } creator = strParts[1] creatorAddr, err := sdk.AccAddressFromBech32(creator) if err != nil { - return "", "", sdkerrors.Wrapf(ErrInvalidDenom, "Invalid creator address (%s)", err) + return "", "", errorsmod.Wrapf(ErrInvalidDenom, "Invalid creator address (%s)", err) } // Handle the case where a denom has a slash in its subdenom. For example, diff --git a/x/tokenfactory/types/errors.go b/x/tokenfactory/types/errors.go index 93f691b6907..a66d4b6b417 100644 --- a/x/tokenfactory/types/errors.go +++ b/x/tokenfactory/types/errors.go @@ -5,19 +5,19 @@ package types import ( fmt "fmt" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" ) // x/tokenfactory module sentinel errors var ( - ErrDenomExists = sdkerrors.Register(ModuleName, 2, "attempting to create a denom that already exists (has bank metadata)") - ErrUnauthorized = sdkerrors.Register(ModuleName, 3, "unauthorized account") - ErrInvalidDenom = sdkerrors.Register(ModuleName, 4, "invalid denom") - ErrInvalidCreator = sdkerrors.Register(ModuleName, 5, "invalid creator") - ErrInvalidAuthorityMetadata = sdkerrors.Register(ModuleName, 6, "invalid authority metadata") - ErrInvalidGenesis = sdkerrors.Register(ModuleName, 7, "invalid genesis") - ErrSubdenomTooLong = sdkerrors.Register(ModuleName, 8, fmt.Sprintf("subdenom too long, max length is %d bytes", MaxSubdenomLength)) - ErrCreatorTooLong = sdkerrors.Register(ModuleName, 9, fmt.Sprintf("creator too long, max length is %d bytes", MaxCreatorLength)) - ErrDenomDoesNotExist = sdkerrors.Register(ModuleName, 10, "denom does not exist") - ErrBurnFromModuleAccount = sdkerrors.Register(ModuleName, 11, "burning from Module Account is not allowed") + ErrDenomExists = errorsmod.Register(ModuleName, 2, "attempting to create a denom that already exists (has bank metadata)") + ErrUnauthorized = errorsmod.Register(ModuleName, 3, "unauthorized account") + ErrInvalidDenom = errorsmod.Register(ModuleName, 4, "invalid denom") + ErrInvalidCreator = errorsmod.Register(ModuleName, 5, "invalid creator") + ErrInvalidAuthorityMetadata = errorsmod.Register(ModuleName, 6, "invalid authority metadata") + ErrInvalidGenesis = errorsmod.Register(ModuleName, 7, "invalid genesis") + ErrSubdenomTooLong = errorsmod.Register(ModuleName, 8, fmt.Sprintf("subdenom too long, max length is %d bytes", MaxSubdenomLength)) + ErrCreatorTooLong = errorsmod.Register(ModuleName, 9, fmt.Sprintf("creator too long, max length is %d bytes", MaxCreatorLength)) + ErrDenomDoesNotExist = errorsmod.Register(ModuleName, 10, "denom does not exist") + ErrBurnFromModuleAccount = errorsmod.Register(ModuleName, 11, "burning from Module Account is not allowed") ) diff --git a/x/tokenfactory/types/genesis.go b/x/tokenfactory/types/genesis.go index b1ba181fab2..aef9370ccac 100644 --- a/x/tokenfactory/types/genesis.go +++ b/x/tokenfactory/types/genesis.go @@ -1,8 +1,8 @@ package types import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) // this line is used by starport scaffolding # genesis/types/import @@ -30,7 +30,7 @@ func (gs GenesisState) Validate() error { for _, denom := range gs.GetFactoryDenoms() { if seenDenoms[denom.GetDenom()] { - return sdkerrors.Wrapf(ErrInvalidGenesis, "duplicate denom: %s", denom.GetDenom()) + return errorsmod.Wrapf(ErrInvalidGenesis, "duplicate denom: %s", denom.GetDenom()) } seenDenoms[denom.GetDenom()] = true @@ -42,7 +42,7 @@ func (gs GenesisState) Validate() error { if denom.AuthorityMetadata.Admin != "" { _, err = sdk.AccAddressFromBech32(denom.AuthorityMetadata.Admin) if err != nil { - return sdkerrors.Wrapf(ErrInvalidAuthorityMetadata, "Invalid admin address (%s)", err) + return errorsmod.Wrapf(ErrInvalidAuthorityMetadata, "Invalid admin address (%s)", err) } } } diff --git a/x/tokenfactory/types/msgs.go b/x/tokenfactory/types/msgs.go index 3195e017bb4..9ee67c9a5eb 100644 --- a/x/tokenfactory/types/msgs.go +++ b/x/tokenfactory/types/msgs.go @@ -1,6 +1,7 @@ package types import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" @@ -32,12 +33,12 @@ func (m MsgCreateDenom) Type() string { return TypeMsgCreateDenom } func (m MsgCreateDenom) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(m.Sender) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } _, err = GetTokenDenom(m.Sender, m.Subdenom) if err != nil { - return sdkerrors.Wrap(ErrInvalidDenom, err.Error()) + return errorsmod.Wrap(ErrInvalidDenom, err.Error()) } return nil @@ -75,11 +76,11 @@ func (m MsgMint) Type() string { return TypeMsgMint } func (m MsgMint) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(m.Sender) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } if !m.Amount.IsValid() || m.Amount.Amount.Equal(sdk.ZeroInt()) { - return sdkerrors.Wrap(sdkerrors.ErrInvalidCoins, m.Amount.String()) + return errorsmod.Wrap(sdkerrors.ErrInvalidCoins, m.Amount.String()) } return nil @@ -118,11 +119,11 @@ func (m MsgBurn) Type() string { return TypeMsgBurn } func (m MsgBurn) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(m.Sender) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } if !m.Amount.IsValid() || m.Amount.Amount.Equal(sdk.ZeroInt()) { - return sdkerrors.Wrap(sdkerrors.ErrInvalidCoins, m.Amount.String()) + return errorsmod.Wrap(sdkerrors.ErrInvalidCoins, m.Amount.String()) } return nil @@ -154,20 +155,20 @@ func (m MsgForceTransfer) Type() string { return TypeMsgForceTransfer } func (m MsgForceTransfer) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(m.Sender) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } _, err = sdk.AccAddressFromBech32(m.TransferFromAddress) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid address (%s)", err) } _, err = sdk.AccAddressFromBech32(m.TransferToAddress) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid address (%s)", err) } if !m.Amount.IsValid() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidCoins, m.Amount.String()) + return errorsmod.Wrap(sdkerrors.ErrInvalidCoins, m.Amount.String()) } return nil @@ -198,12 +199,12 @@ func (m MsgChangeAdmin) Type() string { return TypeMsgChangeAdmin } func (m MsgChangeAdmin) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(m.Sender) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } _, err = sdk.AccAddressFromBech32(m.NewAdmin) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid address (%s)", err) } _, _, err = DeconstructDenom(m.Denom) @@ -238,7 +239,7 @@ func (m MsgSetDenomMetadata) Type() string { return TypeMsgSetDenomMetadata } func (m MsgSetDenomMetadata) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(m.Sender) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } err = m.Metadata.Validate() @@ -279,13 +280,13 @@ func (m MsgSetBeforeSendHook) Type() string { return TypeMsgSetBeforeSendHook } func (m MsgSetBeforeSendHook) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(m.Sender) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } if m.CosmwasmAddress != "" { _, err = sdk.AccAddressFromBech32(m.CosmwasmAddress) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid cosmwasm contract address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid cosmwasm contract address (%s)", err) } } diff --git a/x/txfees/handler.go b/x/txfees/handler.go index 42452fa77b6..42101c96df6 100644 --- a/x/txfees/handler.go +++ b/x/txfees/handler.go @@ -1,8 +1,10 @@ package txfees import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" "github.com/osmosis-labs/osmosis/v15/x/txfees/keeper" @@ -15,7 +17,7 @@ func NewUpdateFeeTokenProposalHandler(k keeper.Keeper) govtypes.Handler { case *types.UpdateFeeTokenProposal: return handleUpdateFeeTokenProposal(ctx, k, c) default: - return sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized txfees proposal content type: %T", c) + return errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized txfees proposal content type: %T", c) } } } diff --git a/x/txfees/keeper/feedecorator.go b/x/txfees/keeper/feedecorator.go index bf99539b88e..36e4787b870 100644 --- a/x/txfees/keeper/feedecorator.go +++ b/x/txfees/keeper/feedecorator.go @@ -3,6 +3,7 @@ package keeper import ( "fmt" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -36,7 +37,7 @@ func (mfd MempoolFeeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate b // So this is not a real restriction at the moment. feeTx, ok := tx.(sdk.FeeTx) if !ok { - return ctx, sdkerrors.Wrap(sdkerrors.ErrTxDecode, "Tx must be a FeeTx") + return ctx, errorsmod.Wrap(sdkerrors.ErrTxDecode, "Tx must be a FeeTx") } // Ensure that the provided gas is less than the maximum gas per tx, @@ -45,7 +46,7 @@ func (mfd MempoolFeeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate b if ctx.IsCheckTx() && !simulate { if feeTx.GetGas() > mfd.Opts.MaxGasWantedPerTx { msg := "Too much gas wanted: %d, maximum is %d" - return ctx, sdkerrors.Wrapf(sdkerrors.ErrOutOfGas, msg, feeTx.GetGas(), mfd.Opts.MaxGasWantedPerTx) + return ctx, errorsmod.Wrapf(sdkerrors.ErrOutOfGas, msg, feeTx.GetGas(), mfd.Opts.MaxGasWantedPerTx) } } @@ -81,7 +82,7 @@ func (mfd MempoolFeeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate b } // You should only be able to pay with one fee token in a single tx if len(feeCoins) != 1 { - return ctx, sdkerrors.Wrapf(sdkerrors.ErrInsufficientFee, + return ctx, errorsmod.Wrapf(sdkerrors.ErrInsufficientFee, "Expected 1 fee denom attached, got %d", len(feeCoins)) } // The minimum base gas price is in uosmo, convert the fee denom's worth to uosmo terms. @@ -128,7 +129,7 @@ func (k Keeper) IsSufficientFee(ctx sdk.Context, minBaseGasPrice sdk.Dec, gasReq } // check to ensure that the convertedFee should always be greater than or equal to the requireBaseFee if !(convertedFee.IsGTE(requiredBaseFee)) { - return sdkerrors.Wrapf(sdkerrors.ErrInsufficientFee, "insufficient fees; got: %s which converts to %s. required: %s", feeCoin, convertedFee, requiredBaseFee) + return errorsmod.Wrapf(sdkerrors.ErrInsufficientFee, "insufficient fees; got: %s which converts to %s. required: %s", feeCoin, convertedFee, requiredBaseFee) } return nil @@ -170,7 +171,7 @@ func NewDeductFeeDecorator(tk Keeper, ak types.AccountKeeper, bk types.BankKeepe func (dfd DeductFeeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bool, next sdk.AnteHandler) (newCtx sdk.Context, err error) { feeTx, ok := tx.(sdk.FeeTx) if !ok { - return ctx, sdkerrors.Wrap(sdkerrors.ErrTxDecode, "Tx must be a FeeTx") + return ctx, errorsmod.Wrap(sdkerrors.ErrTxDecode, "Tx must be a FeeTx") } // checks to make sure the module account has been set to collect fees in base token @@ -194,11 +195,11 @@ func (dfd DeductFeeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bo // If a fee granter was set, deduct fee from the fee granter's account. if feeGranter != nil { if dfd.feegrantKeeper == nil { - return ctx, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "fee grants is not enabled") + return ctx, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "fee grants is not enabled") } else if !feeGranter.Equals(feePayer) { err := dfd.feegrantKeeper.UseGrantedFees(ctx, feeGranter, feePayer, fee, tx.GetMsgs()) if err != nil { - return ctx, sdkerrors.Wrapf(err, "%s not allowed to pay fees from %s", feeGranter, feePayer) + return ctx, errorsmod.Wrapf(err, "%s not allowed to pay fees from %s", feeGranter, feePayer) } } @@ -208,7 +209,7 @@ func (dfd DeductFeeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bo deductFeesFromAcc := dfd.ak.GetAccount(ctx, deductFeesFrom) if deductFeesFromAcc == nil { - return ctx, sdkerrors.Wrapf(sdkerrors.ErrUnknownAddress, "fee payer address: %s does not exist", deductFeesFrom) + return ctx, errorsmod.Wrapf(sdkerrors.ErrUnknownAddress, "fee payer address: %s does not exist", deductFeesFrom) } // deducts the fees and transfer them to the module account @@ -230,7 +231,7 @@ func (dfd DeductFeeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bo func DeductFees(txFeesKeeper types.TxFeesKeeper, bankKeeper types.BankKeeper, ctx sdk.Context, acc authtypes.AccountI, fees sdk.Coins) error { // Checks the validity of the fee tokens (sorted, have positive amount, valid and unique denomination) if !fees.IsValid() { - return sdkerrors.Wrapf(sdkerrors.ErrInsufficientFee, "invalid fee amount: %s", fees) + return errorsmod.Wrapf(sdkerrors.ErrInsufficientFee, "invalid fee amount: %s", fees) } // pulls base denom from TxFeesKeeper (should be uOSMO) @@ -244,13 +245,13 @@ func DeductFees(txFeesKeeper types.TxFeesKeeper, bankKeeper types.BankKeeper, ct // sends to FeeCollectorName module account err := bankKeeper.SendCoinsFromAccountToModule(ctx, acc.GetAddress(), types.FeeCollectorName, fees) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInsufficientFunds, err.Error()) + return errorsmod.Wrapf(sdkerrors.ErrInsufficientFunds, err.Error()) } } else { // sends to NonNativeFeeCollectorName module account err := bankKeeper.SendCoinsFromAccountToModule(ctx, acc.GetAddress(), types.NonNativeFeeCollectorName, fees) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInsufficientFunds, err.Error()) + return errorsmod.Wrapf(sdkerrors.ErrInsufficientFunds, err.Error()) } } diff --git a/x/txfees/keeper/feetokens.go b/x/txfees/keeper/feetokens.go index 4232dcd82db..1e137ac7eed 100644 --- a/x/txfees/keeper/feetokens.go +++ b/x/txfees/keeper/feetokens.go @@ -3,10 +3,11 @@ package keeper import ( "github.com/gogo/protobuf/proto" + errorsmod "cosmossdk.io/errors" + "github.com/osmosis-labs/osmosis/v15/x/txfees/types" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) // ConvertToBaseToken converts a fee amount in a whitelisted fee token to the base fee token amount. @@ -94,7 +95,7 @@ func (k Keeper) ValidateFeeToken(ctx sdk.Context, feeToken types.FeeToken) error return err } if baseDenom == feeToken.Denom { - return sdkerrors.Wrap(types.ErrInvalidFeeToken, "cannot add basedenom as a whitelisted fee token") + return errorsmod.Wrap(types.ErrInvalidFeeToken, "cannot add basedenom as a whitelisted fee token") } // This not returning an error implies that: // - feeToken.Denom exists @@ -110,7 +111,7 @@ func (k Keeper) ValidateFeeToken(ctx sdk.Context, feeToken types.FeeToken) error func (k Keeper) GetFeeToken(ctx sdk.Context, denom string) (types.FeeToken, error) { prefixStore := k.GetFeeTokensStore(ctx) if !prefixStore.Has([]byte(denom)) { - return types.FeeToken{}, sdkerrors.Wrapf(types.ErrInvalidFeeToken, "%s", denom) + return types.FeeToken{}, errorsmod.Wrapf(types.ErrInvalidFeeToken, "%s", denom) } bz := prefixStore.Get([]byte(denom)) diff --git a/x/txfees/keeper/grpc_query.go b/x/txfees/keeper/grpc_query.go index f31e7d1414a..f4ec3249527 100644 --- a/x/txfees/keeper/grpc_query.go +++ b/x/txfees/keeper/grpc_query.go @@ -3,6 +3,7 @@ package keeper import ( "context" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "google.golang.org/grpc/codes" @@ -35,7 +36,7 @@ func (q Querier) DenomSpotPrice(ctx context.Context, req *types.QueryDenomSpotPr return nil, status.Error(codes.InvalidArgument, "empty request") } if len(req.Denom) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty denom") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty denom") } sdkCtx := sdk.UnwrapSDKContext(ctx) @@ -58,7 +59,7 @@ func (q Querier) DenomPoolId(ctx context.Context, req *types.QueryDenomPoolIdReq return nil, status.Error(codes.InvalidArgument, "empty request") } if len(req.Denom) == 0 { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "empty denom") + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "empty denom") } sdkCtx := sdk.UnwrapSDKContext(ctx) diff --git a/x/txfees/types/errors.go b/x/txfees/types/errors.go index 9e1ab036f87..bdf015c9633 100644 --- a/x/txfees/types/errors.go +++ b/x/txfees/types/errors.go @@ -1,14 +1,14 @@ package types -// DONTCOVER - import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" ) +// DONTCOVER + // x/txfees module errors. var ( - ErrNoBaseDenom = sdkerrors.Register(ModuleName, 1, "no base denom was set") - ErrTooManyFeeCoins = sdkerrors.Register(ModuleName, 2, "too many fee coins. only accepts fees in one denom") - ErrInvalidFeeToken = sdkerrors.Register(ModuleName, 3, "invalid fee token") + ErrNoBaseDenom = errorsmod.Register(ModuleName, 1, "no base denom was set") + ErrTooManyFeeCoins = errorsmod.Register(ModuleName, 2, "too many fee coins. only accepts fees in one denom") + ErrInvalidFeeToken = errorsmod.Register(ModuleName, 3, "invalid fee token") ) diff --git a/x/valset-pref/types/msgs.go b/x/valset-pref/types/msgs.go index 63ce9ae841d..22e6291de7a 100644 --- a/x/valset-pref/types/msgs.go +++ b/x/valset-pref/types/msgs.go @@ -3,6 +3,7 @@ package types import ( fmt "fmt" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -30,7 +31,7 @@ func (m MsgSetValidatorSetPreference) Type() string { return TypeMsgSetValidato func (m MsgSetValidatorSetPreference) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(m.Delegator) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid delegator address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid delegator address (%s)", err) } totalWeight := sdk.ZeroDec() @@ -38,7 +39,7 @@ func (m MsgSetValidatorSetPreference) ValidateBasic() error { for _, validator := range m.Preferences { _, err := sdk.ValAddressFromBech32(validator.ValOperAddress) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid validator address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid validator address (%s)", err) } // all the weights should be positive @@ -97,7 +98,7 @@ func (m MsgDelegateToValidatorSet) Type() string { return TypeMsgDelegateToVali func (m MsgDelegateToValidatorSet) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(m.Delegator) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } if !m.Coin.IsValid() { @@ -136,7 +137,7 @@ func (m MsgUndelegateFromValidatorSet) Type() string { return TypeMsgUndelegate func (m MsgUndelegateFromValidatorSet) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(m.Delegator) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } if !m.Coin.IsValid() { @@ -175,7 +176,7 @@ func (m MsgRedelegateValidatorSet) Type() string { return TypeMsgRedelegateVali func (m MsgRedelegateValidatorSet) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(m.Delegator) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid delegator address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid delegator address (%s)", err) } totalWeight := sdk.NewDec(0) @@ -183,7 +184,7 @@ func (m MsgRedelegateValidatorSet) ValidateBasic() error { for _, validator := range m.Preferences { _, err := sdk.ValAddressFromBech32(validator.ValOperAddress) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid validator address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid validator address (%s)", err) } totalWeight = totalWeight.Add(validator.Weight) @@ -235,7 +236,7 @@ func (m MsgWithdrawDelegationRewards) Type() string { return TypeMsgWithdrawDel func (m MsgWithdrawDelegationRewards) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(m.Delegator) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } return nil @@ -269,11 +270,11 @@ func (m MsgDelegateBondedTokens) Type() string { return TypeMsgDelegateBondedTok func (m MsgDelegateBondedTokens) ValidateBasic() error { _, err := sdk.AccAddressFromBech32(m.Delegator) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } if m.LockID <= 0 { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "lock id should be bigger than 1 (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "lock id should be bigger than 1 (%s)", err) } return nil From 108fe1dcaaf79afa3a86baaa37361c1053f60323 Mon Sep 17 00:00:00 2001 From: Jacob Gadikian Date: Wed, 3 May 2023 15:37:44 +0700 Subject: [PATCH 2/3] update changelog --- CHANGELOG.md | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dd1dff88aaf..979b38741cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -52,6 +52,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Misc Improvements + * [#5065](https://github.com/osmosis-labs/osmosis/pull/5065) Use cosmossdk.io/errors * [#4549](https://github.com/osmosis-labs/osmosis/pull/4549) Add single pool price estimate queries * [#4767](https://github.com/osmosis-labs/osmosis/pull/4767) Disable create pool with non-zero exit fee * [#4847](https://github.com/osmosis-labs/osmosis/pull/4847) Update `make build` command to build only `osmosisd` binary @@ -78,8 +79,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Features -* [#4829] (https://github.com/osmosis-labs/osmosis/pull/4829) Add highest liquidity pool query in x/protorev -* [#4878] (https://github.com/osmosis-labs/osmosis/pull/4878) Emit backrun event upon successful protorev backrun +* [#4829] () Add highest liquidity pool query in x/protorev +* [#4878] () Emit backrun event upon successful protorev backrun ### Misc Improvements @@ -100,7 +101,7 @@ This release containts the following new modules: * [#4248](https://github.com/osmosis-labs/osmosis/pull/4248) Add panic recovery to `MultihopEstimateInGivenExactAmountOut`, `MultihopEstimateOutGivenExactAmountIn` and `RouteExactAmountOut` * [#3911](https://github.com/osmosis-labs/osmosis/pull/3911) Add Packet Forward Middleware * [#4244](https://github.com/osmosis-labs/osmosis/pull/4244) Consensus min gas fee of .0025 uosmo - * [#4340](https://github.com/osmosis-labs/osmosis/pull/4340) Added rate limits according to: https://www.mintscan.io/osmosis/proposals/427 + * [#4340](https://github.com/osmosis-labs/osmosis/pull/4340) Added rate limits according to: * [#4207](https://github.com/osmosis-labs/osmosis/pull/4207) Integrate Async ICQ. ### Misc Improvements @@ -339,7 +340,7 @@ x #### SDK Upgrades * [#2245](https://github.com/osmosis-labs/osmosis/pull/2245) Upgrade SDK for to v0.45.0x-osmo-v9.2. Major changes: - * Minimum deposit on proposer at submission time: https://github.com/osmosis-labs/cosmos-sdk/pull/302 + * Minimum deposit on proposer at submission time: ## v10.1.1 @@ -361,11 +362,11 @@ x #### SDK Upgrades * [#2146](https://github.com/osmosis-labs/osmosis/pull/2146) Upgrade SDK for to v0.45.0x-osmo-v9.1. Major changes: - * Concurrency query client option: https://github.com/osmosis-labs/cosmos-sdk/pull/281 - * Remove redacted message fix: https://github.com/osmosis-labs/cosmos-sdk/pull/284 - * Reduce commit store logs (change to Debug): https://github.com/osmosis-labs/cosmos-sdk/pull/282 - * Bring back the cliff vesting command: https://github.com/osmosis-labs/cosmos-sdk/pull/272 - * Allow ScheduleUpgrade to come from same block: https://github.com/osmosis-labs/cosmos-sdk/pull/261 + * Concurrency query client option: + * Remove redacted message fix: + * Reduce commit store logs (change to Debug): + * Bring back the cliff vesting command: + * Allow ScheduleUpgrade to come from same block: ## v10.0.1 @@ -403,7 +404,7 @@ It including breaking changes to the GAMM API's, many developer and node operato #### GAMM API changes API changes were done to enable more CFMM's to be implemented within the existing framework. -Integrators will have to update their messages and queries to adapt, please see https://github.com/osmosis-labs/osmosis/blob/main/x/gamm/breaking_changes_notes.md +Integrators will have to update their messages and queries to adapt, please see #### Governance Changes @@ -464,7 +465,7 @@ Every node should upgrade their software version to v8.0.0 before the upgrade bl ### Features * {Across many PRs} Initiate emergency upgrade -* [#1481] Emergency upgrade as of prop [226] (https://www.mintscan.io/osmosis/proposals/226) +* [#1481] Emergency upgrade as of prop [226] () * [#1482] Checking Whitelisted Pools contain UST * [#1486] Update whitelisted pool IDs * [#1262] Add a forceprune command to the binaries, that prunes golevelDB data better From eeed59638c03cce2f63eb4a0504b0f6f53459cb1 Mon Sep 17 00:00:00 2001 From: Jacob Gadikian Date: Wed, 3 May 2023 16:48:24 +0700 Subject: [PATCH 3/3] fix links so they don't violate no-bare-url --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 979b38741cd..9b6b09bb84a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -79,8 +79,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Features -* [#4829] () Add highest liquidity pool query in x/protorev -* [#4878] () Emit backrun event upon successful protorev backrun +* [#4829](https://github.com/osmosis-labs/osmosis/pull/4829) Add highest liquidity pool query in x/protorev +* [#4878](https://github.com/osmosis-labs/osmosis/pull/4878) Emit backrun event upon successful protorev backrun ### Misc Improvements