diff --git a/Makefile b/Makefile index 61addf7f..92980c2e 100644 --- a/Makefile +++ b/Makefile @@ -116,7 +116,7 @@ lint: golangci-lint format: find . -name '*.go' -type f -not -path "./vendor*" -not -path "*.git*" -not -path "./lite/*/statik.go" -not -path "*.pb.go" | xargs gofmt -w -s find . -name '*.go' -type f -not -path "./vendor*" -not -path "*.git*" -not -path "./lite/*/statik.go" -not -path "*.pb.go" | xargs misspell -w - find . -name '*.go' -type f -not -path "./vendor*" -not -path "*.git*" -not -path "./lite/*/statik.go" -not -path "*.pb.go" | xargs goimports -w -local github.com/irisnet/irismod + find . -name '*.go' -type f -not -path "./vendor*" -not -path "*.git*" -not -path "./lite/*/statik.go" -not -path "*.pb.go" -not -path "*.pulsar.go" | xargs goimports -w -local github.com/irisnet/irismod benchmark: @go test -mod=readonly -bench=. ./... diff --git a/go.mod b/go.mod index e57718af..97d9485e 100644 --- a/go.mod +++ b/go.mod @@ -5,13 +5,13 @@ module github.com/irisnet/irismod require ( cosmossdk.io/api v0.3.1 cosmossdk.io/core v0.5.1 - cosmossdk.io/depinject v1.0.0-alpha.3 - cosmossdk.io/errors v1.0.0 - cosmossdk.io/math v1.0.1 - github.com/cometbft/cometbft v0.37.2 + cosmossdk.io/depinject v1.0.0-alpha.4 + cosmossdk.io/errors v1.0.1 + cosmossdk.io/math v1.2.0 + github.com/cometbft/cometbft v0.37.4 github.com/cometbft/cometbft-db v0.7.0 - github.com/cosmos/cosmos-proto v1.0.0-beta.2 - github.com/cosmos/cosmos-sdk v0.47.4 + github.com/cosmos/cosmos-proto v1.0.0-beta.4 + github.com/cosmos/cosmos-sdk v0.47.9-ics-lsm github.com/cosmos/gogoproto v1.4.10 github.com/golang/protobuf v1.5.3 github.com/gorilla/mux v1.8.0 @@ -23,25 +23,25 @@ require ( github.com/stretchr/testify v1.8.4 github.com/tidwall/gjson v1.14.4 github.com/xeipuuv/gojsonschema v1.2.0 - google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529 - google.golang.org/grpc v1.56.3 - google.golang.org/protobuf v1.31.0 + google.golang.org/genproto/googleapis/api v0.0.0-20231212172506-995d672761c0 + google.golang.org/grpc v1.60.1 + google.golang.org/protobuf v1.32.0 gopkg.in/yaml.v2 v2.4.0 sigs.k8s.io/yaml v1.3.0 ) require ( - cloud.google.com/go v0.110.4 // indirect - cloud.google.com/go/compute v1.20.1 // indirect + cloud.google.com/go v0.111.0 // indirect + cloud.google.com/go/compute v1.23.3 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/iam v1.1.0 // indirect + cloud.google.com/go/iam v1.1.5 // indirect cloud.google.com/go/storage v1.30.1 // indirect - cosmossdk.io/log v1.1.1-0.20230704160919-88f2c830b0ca // indirect + cosmossdk.io/log v1.3.1 // indirect cosmossdk.io/tools/rosetta v0.2.1 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect - github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d // indirect + github.com/ChainSafe/go-schnorrkel v1.0.0 // indirect github.com/armon/go-metrics v0.4.1 // indirect github.com/aws/aws-sdk-go v1.44.203 // indirect github.com/beorn7/perks v1.0.1 // indirect @@ -53,13 +53,16 @@ require ( github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/chzyer/readline v1.5.1 // indirect github.com/cockroachdb/apd/v2 v2.0.2 // indirect + github.com/cockroachdb/errors v1.10.0 // indirect + github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect + github.com/cockroachdb/redact v1.1.5 // indirect github.com/coinbase/rosetta-sdk-go/types v1.0.0 // indirect github.com/confio/ics23/go v0.9.0 // indirect github.com/cosmos/btcutil v1.0.5 // indirect github.com/cosmos/go-bip39 v1.0.0 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect - github.com/cosmos/iavl v0.20.0 // indirect - github.com/cosmos/ledger-cosmos-go v0.12.1 // indirect + github.com/cosmos/iavl v0.20.1 // indirect + github.com/cosmos/ledger-cosmos-go v0.12.4 // indirect github.com/cosmos/rosetta-sdk-go v0.10.0 // indirect github.com/creachadair/taskgroup v0.3.2 // indirect github.com/danieljoos/wincred v1.1.2 // indirect @@ -70,27 +73,29 @@ require ( github.com/dgraph-io/ristretto v0.1.1 // indirect github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect github.com/dustin/go-humanize v1.0.1 // indirect - github.com/dvsekhvalnov/jose2go v1.5.0 // indirect + github.com/dvsekhvalnov/jose2go v1.6.0 // indirect github.com/felixge/httpsnoop v1.0.2 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect - github.com/gin-gonic/gin v1.8.1 // indirect + github.com/getsentry/sentry-go v0.23.0 // indirect github.com/go-kit/kit v0.12.0 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.5.1 // indirect + github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/stdr v1.2.2 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/glog v1.1.0 // indirect + github.com/golang/glog v1.1.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/mock v1.6.0 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/btree v1.1.2 // indirect - github.com/google/go-cmp v0.5.9 // indirect + github.com/google/go-cmp v0.6.0 // indirect github.com/google/orderedcode v0.0.1 // indirect - github.com/google/s2a-go v0.1.4 // indirect - github.com/google/uuid v1.3.0 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect - github.com/googleapis/gax-go/v2 v2.11.0 // indirect + github.com/google/s2a-go v0.1.7 // indirect + github.com/google/uuid v1.4.0 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect + github.com/googleapis/gax-go/v2 v2.12.0 // indirect github.com/gorilla/handlers v1.5.1 // indirect github.com/gorilla/websocket v1.5.0 // indirect github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect @@ -110,13 +115,15 @@ require ( github.com/inconshreveable/mousetrap v1.0.1 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmhodges/levigo v1.0.0 // indirect - github.com/klauspost/compress v1.16.3 // indirect + github.com/klauspost/compress v1.16.7 // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/kr/text v0.2.0 // indirect github.com/lib/pq v1.10.7 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect github.com/magiconair/properties v1.8.6 // indirect github.com/manifoldco/promptui v0.9.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect github.com/minio/highwayhash v1.0.2 // indirect @@ -134,8 +141,9 @@ require ( github.com/prometheus/common v0.42.0 // indirect github.com/prometheus/procfs v0.9.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect + github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/rs/cors v1.8.2 // indirect - github.com/rs/zerolog v1.29.1 // indirect + github.com/rs/zerolog v1.32.0 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect github.com/spf13/afero v1.9.2 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect @@ -150,26 +158,29 @@ require ( github.com/ulikunitz/xz v0.5.11 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect - github.com/zondax/hid v0.9.1 // indirect - github.com/zondax/ledger-go v0.14.0 // indirect + github.com/zondax/hid v0.9.2 // indirect + github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.7 // indirect go.opencensus.io v0.24.0 // indirect - golang.org/x/crypto v0.14.0 // indirect - golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/oauth2 v0.8.0 // indirect - golang.org/x/sys v0.13.0 // indirect - golang.org/x/term v0.13.0 // indirect - golang.org/x/text v0.13.0 // indirect - golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/api v0.126.0 // indirect - google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect + go.opentelemetry.io/otel v1.19.0 // indirect + go.opentelemetry.io/otel/metric v1.19.0 // indirect + go.opentelemetry.io/otel/trace v1.19.0 // indirect + golang.org/x/crypto v0.16.0 // indirect + golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb // indirect + golang.org/x/net v0.19.0 // indirect + golang.org/x/oauth2 v0.13.0 // indirect + golang.org/x/sync v0.4.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/term v0.15.0 // indirect + golang.org/x/text v0.14.0 // indirect + google.golang.org/api v0.149.0 // indirect + google.golang.org/appengine v1.6.8 // indirect + google.golang.org/genproto v0.0.0-20240102182953-50ed04b92917 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240108191215-35c7eff3a6b1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect nhooyr.io/websocket v1.8.6 // indirect - pgregory.net/rapid v0.5.5 // indirect + pgregory.net/rapid v1.1.0 // indirect ) replace ( diff --git a/go.sum b/go.sum index d52ce75a..fdcf4755 100644 --- a/go.sum +++ b/go.sum @@ -32,8 +32,8 @@ cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w9 cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= -cloud.google.com/go v0.110.4 h1:1JYyxKMN9hd5dR2MYTPWkGUgcoxVVhg0LKNKEo0qvmk= -cloud.google.com/go v0.110.4/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= +cloud.google.com/go v0.111.0 h1:YHLKNupSD1KqjDbQ3+LVdQ81h/UJbJyZG203cEfnQgM= +cloud.google.com/go v0.111.0/go.mod h1:0mibmpKP1TyOOFYQY5izo0LnT+ecvOQ0Sg3OdmMiNRU= cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= @@ -70,8 +70,8 @@ cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= -cloud.google.com/go/compute v1.20.1 h1:6aKEtlUiwEpJzM001l0yFkpXmUVXaN8W+fbkb2AZNbg= -cloud.google.com/go/compute v1.20.1/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= +cloud.google.com/go/compute v1.23.3 h1:6sVlXXBmbd7jNX0Ipq0trII3e4n1/MsADLK6a+aiVlk= +cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= @@ -111,8 +111,8 @@ cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y97 cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= -cloud.google.com/go/iam v1.1.0 h1:67gSqaPukx7O8WLLHMa0PNs3EBGd2eE4d+psbO/CO94= -cloud.google.com/go/iam v1.1.0/go.mod h1:nxdHjaKfCr7fNYx/HJMM8LgiMugmveWlkatear5gVyk= +cloud.google.com/go/iam v1.1.5 h1:1jTsCu4bcsNsE4iiqNT5SHwrDRCfRmIaaaVFhRveTJI= +cloud.google.com/go/iam v1.1.5/go.mod h1:rB6P/Ic3mykPbFio+vo7403drjlgvoWfYpJhMXEbzv8= cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= @@ -191,14 +191,14 @@ cosmossdk.io/api v0.3.1 h1:NNiOclKRR0AOlO4KIqeaG6PS6kswOMhHD0ir0SscNXE= cosmossdk.io/api v0.3.1/go.mod h1:DfHfMkiNA2Uhy8fj0JJlOCYOBp4eWUUJ1te5zBGNyIw= cosmossdk.io/core v0.5.1 h1:vQVtFrIYOQJDV3f7rw4pjjVqc1id4+mE0L9hHP66pyI= cosmossdk.io/core v0.5.1/go.mod h1:KZtwHCLjcFuo0nmDc24Xy6CRNEL9Vl/MeimQ2aC7NLE= -cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z+zfw= -cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU= -cosmossdk.io/errors v1.0.0 h1:nxF07lmlBbB8NKQhtJ+sJm6ef5uV1XkvPXG2bUntb04= -cosmossdk.io/errors v1.0.0/go.mod h1:+hJZLuhdDE0pYN8HkOrVNwrIOYvUGnn6+4fjnJs/oV0= -cosmossdk.io/log v1.1.1-0.20230704160919-88f2c830b0ca h1:msenprh2BLLRwNT7zN56TbBHOGk/7ARQckXHxXyvjoQ= -cosmossdk.io/log v1.1.1-0.20230704160919-88f2c830b0ca/go.mod h1:PkIAKXZvaxrTRc++z53XMRvFk8AcGGWYHcMIPzVYX9c= -cosmossdk.io/math v1.0.1 h1:Qx3ifyOPaMLNH/89WeZFH268yCvU4xEcnPLu3sJqPPg= -cosmossdk.io/math v1.0.1/go.mod h1:Ygz4wBHrgc7g0N+8+MrnTfS9LLn9aaTGa9hKopuym5k= +cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc= +cosmossdk.io/depinject v1.0.0-alpha.4/go.mod h1:HeDk7IkR5ckZ3lMGs/o91AVUc7E596vMaOmslGFM3yU= +cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= +cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= +cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= +cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= +cosmossdk.io/math v1.2.0 h1:8gudhTkkD3NxOP2YyyJIYYmt6dQ55ZfJkDOaxXpy7Ig= +cosmossdk.io/math v1.2.0/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= @@ -209,8 +209,8 @@ github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d h1:nalkkPQcITbvhmL4+C4cKA87NW0tfm3Kl9VXRoPywFg= -github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d/go.mod h1:URdX5+vg25ts3aCh8H5IFZybJYKWhJHYMTnf+ULtoC4= +github.com/ChainSafe/go-schnorrkel v1.0.0 h1:3aDA67lAykLaG1y3AOjs88dMxC88PgUuHRrLeDnvGIM= +github.com/ChainSafe/go-schnorrkel v1.0.0/go.mod h1:dpzHYVxLZcp8pjlV+O+UR8K0Hp/z7vcchBSbMBEhCw4= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg= @@ -223,7 +223,6 @@ github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrd github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/adlio/schema v1.3.3 h1:oBJn8I02PyTB466pZO1UZEn1TV5XLlifBSyMrmHl/1I= github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= -github.com/alecthomas/participle/v2 v2.0.0-alpha7 h1:cK4vjj0VSgb3lN1nuKA5F7dw+1s1pWBe5bx7nNCnN+c= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -302,13 +301,18 @@ github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/apd/v2 v2.0.2 h1:weh8u7Cneje73dDh+2tEVLUvyBc89iwepWCD8b8034E= github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw= -github.com/cockroachdb/apd/v3 v3.1.0 h1:MK3Ow7LH0W8zkd5GMKA1PvS9qG3bWFI95WaVNfyZJ/w= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= +github.com/cockroachdb/errors v1.10.0 h1:lfxS8zZz1+OjtV4MtNWgboi/W5tyLEB6VQZBXN+0VUU= +github.com/cockroachdb/errors v1.10.0/go.mod h1:lknhIsEVQ9Ss/qKDBQS/UqFSvPQjOwNq2qyKAxtHRqE= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30= +github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/coinbase/rosetta-sdk-go/types v1.0.0 h1:jpVIwLcPoOeCR6o1tU+Xv7r5bMONNbHU7MuEHboiFuA= github.com/coinbase/rosetta-sdk-go/types v1.0.0/go.mod h1:eq7W2TMRH22GTW0N0beDnN931DW0/WOI1R2sdHNHG4c= -github.com/cometbft/cometbft v0.37.2 h1:XB0yyHGT0lwmJlFmM4+rsRnczPlHoAKFX6K8Zgc2/Jc= -github.com/cometbft/cometbft v0.37.2/go.mod h1:Y2MMMN//O5K4YKd8ze4r9jmk4Y7h0ajqILXbH5JQFVs= +github.com/cometbft/cometbft v0.37.4 h1:xyvvEqlyfK8MgNIIKVJaMsuIp03wxOcFmVkT26+Ikpg= +github.com/cometbft/cometbft v0.37.4/go.mod h1:Cmg5Hp4sNpapm7j+x0xRyt2g0juQfmB752ous+pA0G8= github.com/cometbft/cometbft-db v0.7.0 h1:uBjbrBx4QzU0zOEnU8KxoDl18dMNgDh+zZRUE0ucsbo= github.com/cometbft/cometbft-db v0.7.0/go.mod h1:yiKJIm2WKrt6x8Cyxtq9YTEcIMPcEe4XPxhgX59Fzf0= github.com/confio/ics23/go v0.9.0 h1:cWs+wdbS2KRPZezoaaj+qBleXgUk5WOQFMP3CQFGTr4= @@ -322,10 +326,10 @@ github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSV github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= -github.com/cosmos/cosmos-proto v1.0.0-beta.2 h1:X3OKvWgK9Gsejo0F1qs5l8Qn6xJV/AzgIWR2wZ8Nua8= -github.com/cosmos/cosmos-proto v1.0.0-beta.2/go.mod h1:+XRCLJ14pr5HFEHIUcn51IKXD1Fy3rkEQqt4WqmN4V0= -github.com/cosmos/cosmos-sdk v0.47.4 h1:FVUpEprm58nMmBX4xkRdMDaIG5Nr4yy92HZAfGAw9bg= -github.com/cosmos/cosmos-sdk v0.47.4/go.mod h1:R5n+uM7vguVPFap4pgkdvQCT1nVo/OtPwrlAU40rvok= +github.com/cosmos/cosmos-proto v1.0.0-beta.4 h1:aEL7tU/rLOmxZQ9z4i7mzxcLbSCY48OdY7lIWTLG7oU= +github.com/cosmos/cosmos-proto v1.0.0-beta.4/go.mod h1:oeB+FyVzG3XrQJbJng0EnV8Vljfk9XvTIpGILNU/9Co= +github.com/cosmos/cosmos-sdk v0.47.9-ics-lsm h1:IBZd1wBRSqlqrls+YzzQfR67HWBFLXyTqH6zwEsVpKU= +github.com/cosmos/cosmos-sdk v0.47.9-ics-lsm/go.mod h1:Vks1CurTEJIWcjLkXZ4hLpdXsnVRRBmBRr6tygK9vHc= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= @@ -334,12 +338,12 @@ github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= github.com/cosmos/gogoproto v1.4.10 h1:QH/yT8X+c0F4ZDacDv3z+xE3WU1P1Z3wQoLMBRJoKuI= github.com/cosmos/gogoproto v1.4.10/go.mod h1:3aAZzeRWpAwr+SS/LLkICX2/kDFyaYVzckBDzygIxek= -github.com/cosmos/iavl v0.20.0 h1:fTVznVlepH0KK8NyKq8w+U7c2L6jofa27aFX6YGlm38= -github.com/cosmos/iavl v0.20.0/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A= +github.com/cosmos/iavl v0.20.1 h1:rM1kqeG3/HBT85vsZdoSNsehciqUQPWrR4BYmqE2+zg= +github.com/cosmos/iavl v0.20.1/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A= github.com/cosmos/keyring v1.2.0 h1:8C1lBP9xhImmIabyXW4c3vFjjLiBdGCmfLUfeZlV1Yo= github.com/cosmos/keyring v1.2.0/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= -github.com/cosmos/ledger-cosmos-go v0.12.1 h1:sMBxza5p/rNK/06nBSNmsI/WDqI0pVJFVNihy1Y984w= -github.com/cosmos/ledger-cosmos-go v0.12.1/go.mod h1:dhO6kj+Y+AHIOgAe4L9HL/6NDdyyth4q238I9yFpD2g= +github.com/cosmos/ledger-cosmos-go v0.12.4 h1:drvWt+GJP7Aiw550yeb3ON/zsrgW0jgh5saFCr7pDnw= +github.com/cosmos/ledger-cosmos-go v0.12.4/go.mod h1:fjfVWRf++Xkygt9wzCsjEBdjcf7wiiY35fv3ctT+k4M= github.com/cosmos/rosetta-sdk-go v0.10.0 h1:E5RhTruuoA7KTIXUcMicL76cffyeoyvNybzUGSKFTcM= github.com/cosmos/rosetta-sdk-go v0.10.0/go.mod h1:SImAZkb96YbwvoRkzSMQB6noNJXFgWl/ENIznEoYQI4= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= @@ -349,8 +353,6 @@ github.com/creachadair/taskgroup v0.3.2 h1:zlfutDS+5XG40AOxcHDSThxKzns8Tnr9jnr6V github.com/creachadair/taskgroup v0.3.2/go.mod h1:wieWwecHVzsidg2CsUnFinW1faVN4+kq+TDlRJQ0Wbk= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/cucumber/common/gherkin/go/v22 v22.0.0 h1:4K8NqptbvdOrjL9DEea6HFjSpbdT9+Q5kgLpmmsHYl0= -github.com/cucumber/common/messages/go/v17 v17.1.1 h1:RNqopvIFyLWnKv0LfATh34SWBhXeoFTJnSrgm9cT/Ts= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -375,8 +377,8 @@ github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:Htrtb github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/dvsekhvalnov/jose2go v1.5.0 h1:3j8ya4Z4kMCwT5nXIKFSV84YS+HdqSSO0VsTQxaLAeM= -github.com/dvsekhvalnov/jose2go v1.5.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= +github.com/dvsekhvalnov/jose2go v1.6.0 h1:Y9gnSnP4qEI0+/uQkHvFXeD2PLPJeXEL+ySMEA2EjTY= +github.com/dvsekhvalnov/jose2go v1.6.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= @@ -407,11 +409,14 @@ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMo github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/getsentry/sentry-go v0.23.0 h1:dn+QRCeJv4pPt9OjVXiMcGIBIefaTJPw/h0bZWO05nE= +github.com/getsentry/sentry-go v0.23.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.9.0 h1:OjyFBKICoexlu99ctXNR2gg+c5pKrKMuyjgARg9qeY8= github.com/gin-gonic/gin v1.9.0/go.mod h1:W1Me9+hsUSyj3CePGrd1/QrKJMSJ1Tu/0hFEH89961k= +github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -427,6 +432,11 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= @@ -447,7 +457,6 @@ github.com/goccy/go-json v0.10.0/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MG github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofrs/uuid v4.3.0+incompatible h1:CaSVZxm5B+7o45rtab4jC2G37WGYX1zQfuU2i6DSvnc= github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/googleapis v1.4.1-0.20201022092350-68b0159b7869/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= @@ -460,8 +469,8 @@ github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= +github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -520,8 +529,9 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -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/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/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.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= @@ -549,17 +559,18 @@ github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/s2a-go v0.1.4 h1:1kZ/sQM3srePvKs3tXAvQzo66XfcReoqFpIpIccE7Oc= -github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= +github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= +github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= +github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= -github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k= -github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= +github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= @@ -569,8 +580,8 @@ github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99 github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= -github.com/googleapis/gax-go/v2 v2.11.0 h1:9V9PWXEsWnPpQhu/PeQIkS4eGzMlTLGgt80cUUI8Ki4= -github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI= +github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= +github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= @@ -683,8 +694,8 @@ github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYs github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= -github.com/klauspost/compress v1.16.3 h1:XuJt9zzcnaz6a16/OU53ZjWp/v7/42WcR5t2a0PcNQY= -github.com/klauspost/compress v1.16.3/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= +github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -695,6 +706,7 @@ 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= @@ -714,16 +726,15 @@ github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPK github.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA= github.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= @@ -813,6 +824,7 @@ github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 h1:hDSdbBuw3Lefr6 github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -860,19 +872,20 @@ github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Ung github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/regen-network/gocuke v0.6.2 h1:pHviZ0kKAq2U2hN2q3smKNxct6hS0mGByFMHGnWA97M= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= 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 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= +github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= 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= -github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.29.1 h1:cO+d60CHkknCbvzEWxP0S9K6KqyTjrCNUy1LdQLCGPc= -github.com/rs/zerolog v1.29.1/go.mod h1:Le6ESbR7hc+DP6Lt1THiV8CQSdkkNrd3R0XbEgp3ZBU= +github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= +github.com/rs/zerolog v1.32.0 h1:keLypqrlIjaFsbmJOBdB/qvyF8KEtCWHwobLp5l/mQ0= +github.com/rs/zerolog v1.32.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -975,10 +988,10 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/zondax/hid v0.9.1 h1:gQe66rtmyZ8VeGFcOpbuH3r7erYtNEAezCAYu8LdkJo= -github.com/zondax/hid v0.9.1/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= -github.com/zondax/ledger-go v0.14.0 h1:dlMC7aO8Wss1CxBq2I96kZ69Nh1ligzbs8UWOtq/AsA= -github.com/zondax/ledger-go v0.14.0/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= +github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= +github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= +github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= +github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= @@ -994,6 +1007,13 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= +go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= +go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= +go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= +go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= +go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= @@ -1019,10 +1039,9 @@ golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= -golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY= +golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1034,8 +1053,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc h1:mCRnTeVUjcrhlRmO0VK8a6k6Rrf6TF9htwo2pJVSjIU= -golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= +golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb h1:xIApU0ow1zwMa2uL1VDNeQlNVFTWMQxZUZCMDy0Q4Us= +golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1062,7 +1081,7 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= +golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1111,7 +1130,6 @@ golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLd golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= @@ -1126,8 +1144,8 @@ golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfS golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1153,8 +1171,8 @@ golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A= -golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= -golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= +golang.org/x/oauth2 v0.13.0 h1:jDDenyj+WgFtmV3zYVoi8aE2BwtXFLWOA67ZfNWftiY= +golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1169,7 +1187,8 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= +golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ= +golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1243,7 +1262,6 @@ golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1269,15 +1287,16 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= +golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1291,8 +1310,8 @@ golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1418,8 +1437,8 @@ google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= -google.golang.org/api v0.126.0 h1:q4GJq+cAdMAC7XP7njvQ4tvohGLiSlytuL4BQxbIZ+o= -google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= +google.golang.org/api v0.149.0 h1:b2CqT6kG+zqJIVKRQ3ELJVLN1PwHZ6DJ3dW8yl82rgY= +google.golang.org/api v0.149.0/go.mod h1:Mwn1B7JTXrzXtnvmzQE2BD6bYZQ8DShKZDZbeN9I7qI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1427,8 +1446,9 @@ google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -1537,12 +1557,12 @@ google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqw google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 h1:Au6te5hbKUV8pIYWHqOUZ1pva5qK/rwbIhoXEUB9Lu8= -google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:O9kGHb51iE/nOGvQaDUuadVYqovW56s5emA88lQnj6Y= -google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529 h1:s5YSX+ZH5b5vS9rnpGymvIyMpLRJizowqDlOuyjXnTk= -google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= +google.golang.org/genproto v0.0.0-20240102182953-50ed04b92917 h1:nz5NESFLZbJGPFxDT/HCn+V1mZ8JGNoY4nUpmW/Y2eg= +google.golang.org/genproto v0.0.0-20240102182953-50ed04b92917/go.mod h1:pZqR+glSb11aJ+JQcczCvgf47+duRuzNSKqE8YAQnV0= +google.golang.org/genproto/googleapis/api v0.0.0-20231212172506-995d672761c0 h1:s1w3X6gQxwrLEpxnLd/qXTVLgQE2yXwaOaoa6IlY/+o= +google.golang.org/genproto/googleapis/api v0.0.0-20231212172506-995d672761c0/go.mod h1:CAny0tYF+0/9rmDB9fahA9YLzX3+AEVl1qXbv5hhj6c= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240108191215-35c7eff3a6b1 h1:gphdwh0npgs8elJ4T6J+DQJHPVF7RsuJHCfwztUb4J4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240108191215-35c7eff3a6b1/go.mod h1:daQN87bsDqDoe316QbbvX60nMoJQa4r6Ds0ZuoAe5yA= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1584,8 +1604,8 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.56.3 h1:8I4C0Yq1EjstUzUJzpcRVbuYA2mODtEmpWiQoN/b2nc= -google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= +google.golang.org/grpc v1.60.1 h1:26+wFr+cNqSGFcOXcabYC0lUVJVRa2Sb2ortSK7VrEU= +google.golang.org/grpc v1.60.1/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -1602,8 +1622,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -1637,7 +1657,7 @@ gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= -gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1648,8 +1668,8 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k= nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= -pgregory.net/rapid v0.5.5 h1:jkgx1TjbQPD/feRoK+S/mXw9e1uj6WilpHrXJowi6oA= -pgregory.net/rapid v0.5.5/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= +pgregory.net/rapid v1.1.0 h1:CMa0sjHSru3puNx+J0MIAuiiEV4N0qj8/cMWGBBCsjw= +pgregory.net/rapid v1.1.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= diff --git a/modules/coinswap/keeper/fees.go b/modules/coinswap/keeper/fees.go index ed479278..4b7e995d 100644 --- a/modules/coinswap/keeper/fees.go +++ b/modules/coinswap/keeper/fees.go @@ -1,4 +1,4 @@ -//nolint +// nolint package keeper import ( diff --git a/modules/coinswap/keeper/grpc_query.go b/modules/coinswap/keeper/grpc_query.go index 4b7b6856..232fba5f 100644 --- a/modules/coinswap/keeper/grpc_query.go +++ b/modules/coinswap/keeper/grpc_query.go @@ -6,9 +6,9 @@ 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/irisnet/irismod/modules/coinswap/types" @@ -28,7 +28,7 @@ func (k Keeper) LiquidityPool( ctx := sdk.UnwrapSDKContext(c) pool, exists := k.GetPoolByLptDenom(ctx, req.LptDenom) if !exists { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrReservePoolNotExists, "liquidity pool token: %s", req.LptDenom, diff --git a/modules/coinswap/keeper/keeper.go b/modules/coinswap/keeper/keeper.go index 6ff7de8f..6f845654 100644 --- a/modules/coinswap/keeper/keeper.go +++ b/modules/coinswap/keeper/keeper.go @@ -8,6 +8,7 @@ import ( sdkmath "cosmossdk.io/math" "github.com/cometbft/cometbft/libs/log" + errorsmod "cosmossdk.io/errors" "github.com/cosmos/cosmos-sdk/codec" storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" @@ -103,7 +104,7 @@ func (k Keeper) Swap(ctx sdk.Context, msg *types.MsgSwapOrder) error { func (k Keeper) AddLiquidity(ctx sdk.Context, msg *types.MsgAddLiquidity) (sdk.Coin, error) { standardDenom := k.GetStandardDenom(ctx) if standardDenom == msg.MaxToken.Denom { - return sdk.Coin{}, sdkerrors.Wrapf(types.ErrInvalidDenom, + return sdk.Coin{}, errorsmod.Wrapf(types.ErrInvalidDenom, "MaxToken: %s should not be StandardDenom", msg.MaxToken.String()) } @@ -131,7 +132,7 @@ func (k Keeper) AddLiquidity(ctx sdk.Context, msg *types.MsgAddLiquidity) (sdk.C mintLiquidityAmt = msg.ExactStandardAmt if mintLiquidityAmt.LT(msg.MinLiquidity) { - return sdk.Coin{}, sdkerrors.Wrapf( + return sdk.Coin{}, errorsmod.Wrapf( types.ErrConstraintNotMet, "liquidity amount not met, user expected: no less than %s, actual: %s", msg.MinLiquidity.String(), @@ -160,7 +161,7 @@ func (k Keeper) AddLiquidity(ctx sdk.Context, msg *types.MsgAddLiquidity) (sdk.C if balances == nil || balances.IsZero() { mintLiquidityAmt = msg.ExactStandardAmt if mintLiquidityAmt.LT(msg.MinLiquidity) { - return sdk.Coin{}, sdkerrors.Wrapf( + return sdk.Coin{}, errorsmod.Wrapf( types.ErrConstraintNotMet, "liquidity amount not met, user expected: no less than %s, actual: %s", msg.MinLiquidity.String(), @@ -185,12 +186,12 @@ func (k Keeper) AddLiquidity(ctx sdk.Context, msg *types.MsgAddLiquidity) (sdk.C liquidity := k.bk.GetSupply(ctx, pool.LptDenom).Amount if standardReserveAmt.IsZero() || tokenReserveAmt.IsZero() || liquidity.IsZero() { return sdk.Coin{}, - sdkerrors.Wrapf(types.ErrConstraintNotMet, "liquidity pool invalid") + errorsmod.Wrapf(types.ErrConstraintNotMet, "liquidity pool invalid") } mintLiquidityAmt = (liquidity.Mul(msg.ExactStandardAmt)).Quo(standardReserveAmt) if mintLiquidityAmt.LT(msg.MinLiquidity) { - return sdk.Coin{}, sdkerrors.Wrapf( + return sdk.Coin{}, errorsmod.Wrapf( types.ErrConstraintNotMet, "liquidity amount not met, user expected: no less than %s, actual: %s", msg.MinLiquidity.String(), @@ -202,7 +203,7 @@ func (k Keeper) AddLiquidity(ctx sdk.Context, msg *types.MsgAddLiquidity) (sdk.C if depositAmt.GT(msg.MaxToken.Amount) { return sdk.Coin{}, - sdkerrors.Wrapf( + errorsmod.Wrapf( types.ErrConstraintNotMet, "token amount not met, user expected: no more than %s, actual: %s", msg.MaxToken.String(), @@ -273,7 +274,7 @@ func (k Keeper) AddUnilateralLiquidity( poolID := types.GetPoolId(msg.CounterpartyDenom) pool, exist := k.GetPool(ctx, poolID) if !exist { - return sdk.Coin{}, sdkerrors.Wrapf( + return sdk.Coin{}, errorsmod.Wrapf( types.ErrReservePoolNotExists, "liquidity pool: %s ", poolID, @@ -292,7 +293,7 @@ func (k Keeper) AddUnilateralLiquidity( if msg.ExactToken.Denom != msg.CounterpartyDenom && msg.ExactToken.Denom != k.GetStandardDenom(ctx) { - return sdk.Coin{}, sdkerrors.Wrapf( + return sdk.Coin{}, errorsmod.Wrapf( types.ErrInvalidDenom, "liquidity pool %s has no %s", poolID, @@ -301,7 +302,7 @@ func (k Keeper) AddUnilateralLiquidity( } if balances == nil || balances.IsZero() { - return sdk.Coin{}, sdkerrors.Wrapf( + return sdk.Coin{}, errorsmod.Wrapf( sdkerrors.ErrInvalidRequest, "When the liquidity is empty, can not add unilateral liquidity", ) @@ -329,7 +330,7 @@ func (k Keeper) AddUnilateralLiquidity( mintLptAmt := sdkmath.NewIntFromBigInt(squareBigInt).Sub(lptBalanceAmt) if mintLptAmt.LT(msg.MinLiquidity) { - return sdk.Coin{}, sdkerrors.Wrapf( + return sdk.Coin{}, errorsmod.Wrapf( types.ErrConstraintNotMet, "liquidity amount not met, user expected: no less than %s, actual: %s", msg.MinLiquidity.String(), @@ -394,7 +395,7 @@ func (k Keeper) RemoveLiquidity(ctx sdk.Context, msg *types.MsgRemoveLiquidity) pool, exists := k.GetPoolByLptDenom(ctx, msg.WithdrawLiquidity.Denom) if !exists { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrReservePoolNotExists, "liquidity pool token: %s", msg.WithdrawLiquidity.Denom, @@ -413,7 +414,7 @@ func (k Keeper) RemoveLiquidity(ctx sdk.Context, msg *types.MsgRemoveLiquidity) tokenReserveAmt := balances.AmountOf(minTokenDenom) liquidityReserve := k.bk.GetSupply(ctx, lptDenom).Amount if standardReserveAmt.LT(msg.MinStandardAmt) { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrInsufficientFunds, "insufficient %s funds, user expected: %s, actual: %s", standardDenom, @@ -422,7 +423,7 @@ func (k Keeper) RemoveLiquidity(ctx sdk.Context, msg *types.MsgRemoveLiquidity) ) } if tokenReserveAmt.LT(msg.MinToken) { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrInsufficientFunds, "insufficient %s funds, user expected: %s, actual: %s", minTokenDenom, @@ -431,7 +432,7 @@ func (k Keeper) RemoveLiquidity(ctx sdk.Context, msg *types.MsgRemoveLiquidity) ) } if liquidityReserve.LT(msg.WithdrawLiquidity.Amount) { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrInsufficientFunds, "insufficient %s funds, user expected: %s, actual: %s", lptDenom, @@ -450,7 +451,7 @@ func (k Keeper) RemoveLiquidity(ctx sdk.Context, msg *types.MsgRemoveLiquidity) deductUniCoin := msg.WithdrawLiquidity if irisWithdrawCoin.Amount.LT(msg.MinStandardAmt) { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrConstraintNotMet, "iris amount not met, user expected: no less than %s, actual: %s", sdk.NewCoin(standardDenom, msg.MinStandardAmt).String(), @@ -458,7 +459,7 @@ func (k Keeper) RemoveLiquidity(ctx sdk.Context, msg *types.MsgRemoveLiquidity) ) } if tokenWithdrawCoin.Amount.LT(msg.MinToken) { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrConstraintNotMet, "token amount not met, user expected: no less than %s, actual: %s", sdk.NewCoin(minTokenDenom, msg.MinToken).String(), @@ -529,7 +530,7 @@ func (k Keeper) RemoveUnilateralLiquidity( poolID := types.GetPoolId(msg.CounterpartyDenom) pool, exist := k.GetPool(ctx, poolID) if !exist { - return sdk.Coins{}, sdkerrors.Wrapf( + return sdk.Coins{}, errorsmod.Wrapf( types.ErrReservePoolNotExists, "liquidity pool: %s ", poolID, @@ -548,7 +549,7 @@ func (k Keeper) RemoveUnilateralLiquidity( if msg.MinToken.Denom != msg.CounterpartyDenom && msg.MinToken.Denom != k.GetStandardDenom(ctx) { - return sdk.Coins{}, sdkerrors.Wrapf(types.ErrInvalidDenom, + return sdk.Coins{}, errorsmod.Wrapf(types.ErrInvalidDenom, "liquidity pool %s has no %s", poolID, msg.MinToken.Denom) } @@ -559,13 +560,13 @@ func (k Keeper) RemoveUnilateralLiquidity( lptBalanceAmt := k.bk.GetSupply(ctx, lptDenom).Amount if lptBalanceAmt.LT(msg.ExactLiquidity) { - return sdk.Coins{}, sdkerrors.Wrapf(types.ErrInsufficientFunds, + return sdk.Coins{}, errorsmod.Wrapf(types.ErrInsufficientFunds, "insufficient %s funds, user expected: %s, actual: %s", lptDenom, msg.ExactLiquidity.String(), lptBalanceAmt.String()) } if lptBalanceAmt.Equal(msg.ExactLiquidity) { - return sdk.Coins{}, sdkerrors.Wrapf( + return sdk.Coins{}, errorsmod.Wrapf( types.ErrConstraintNotMet, "forbid to withdraw all liquidity unilaterally, should be less than: %s", lptBalanceAmt.String(), @@ -573,7 +574,7 @@ func (k Keeper) RemoveUnilateralLiquidity( } if targetBalanceAmt.LT(msg.MinToken.Amount) { - return sdk.Coins{}, sdkerrors.Wrapf(types.ErrInsufficientFunds, + return sdk.Coins{}, errorsmod.Wrapf(types.ErrInsufficientFunds, "insufficient %s funds, user expected: %s, actual: %s", targetTokenDenom, msg.MinToken.Amount.String(), targetBalanceAmt.String()) } @@ -603,7 +604,7 @@ func (k Keeper) RemoveUnilateralLiquidity( targetTokenAmtAfterFee := targetTokenNumerator.Quo(targetTokenDenominator) if targetTokenAmtAfterFee.LT(msg.MinToken.Amount) { - return nil, sdkerrors.Wrapf(types.ErrConstraintNotMet, + return nil, errorsmod.Wrapf(types.ErrConstraintNotMet, "token withdrawn amount not met, user expected: no less than %s, actual: %s", msg.MinToken.String(), sdk.NewCoin(targetTokenDenom, targetTokenAmtAfterFee).String()) } diff --git a/modules/coinswap/keeper/keeper_test.go b/modules/coinswap/keeper/keeper_test.go index 895ff9c8..52c6e691 100644 --- a/modules/coinswap/keeper/keeper_test.go +++ b/modules/coinswap/keeper/keeper_test.go @@ -337,7 +337,7 @@ func (suite *TestSuite) TestLiquidity2() { suite.Equal( "14135062787267695755", suite.app.BankKeeper.GetSupply(suite.ctx, pool.LptDenom).Amount.String(), - ) // todo theoretical lpt ammount + ) // todo theoretical lpt amount // 2.2 poolBalances expCoins = sdk.NewCoins( diff --git a/modules/coinswap/keeper/msg_server.go b/modules/coinswap/keeper/msg_server.go index 5d346f2c..2c064a57 100644 --- a/modules/coinswap/keeper/msg_server.go +++ b/modules/coinswap/keeper/msg_server.go @@ -4,6 +4,7 @@ import ( "context" "time" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -29,7 +30,7 @@ func (m msgServer) AddLiquidity( ctx := sdk.UnwrapSDKContext(goCtx) // check that deadline has not passed if ctx.BlockHeader().Time.After(time.Unix(msg.Deadline, 0)) { - return nil, sdkerrors.Wrap( + return nil, errorsmod.Wrap( types.ErrInvalidDeadline, "deadline has passed for MsgAddLiquidity", ) @@ -52,7 +53,7 @@ func (m msgServer) AddUnilateralLiquidity( ctx := sdk.UnwrapSDKContext(goCtx) // check that deadline has not passed if ctx.BlockHeader().Time.After(time.Unix(msg.Deadline, 0)) { - return nil, sdkerrors.Wrap( + return nil, errorsmod.Wrap( types.ErrInvalidDeadline, "deadline has passed for MsgAddUnilateralLiquidity", ) @@ -75,7 +76,7 @@ func (m msgServer) RemoveLiquidity( ctx := sdk.UnwrapSDKContext(goCtx) // check that deadline has not passed if ctx.BlockHeader().Time.After(time.Unix(msg.Deadline, 0)) { - return nil, sdkerrors.Wrap( + return nil, errorsmod.Wrap( types.ErrInvalidDeadline, "deadline has passed for MsgRemoveLiquidity", ) @@ -96,7 +97,7 @@ func (m msgServer) RemoveUnilateralLiquidity( ctx := sdk.UnwrapSDKContext(goCtx) // check that deadline has not passed if ctx.BlockHeader().Time.After(time.Unix(msg.Deadline, 0)) { - return nil, sdkerrors.Wrap( + return nil, errorsmod.Wrap( types.ErrInvalidDeadline, "deadline has passed for MsgRemoveLiquidity", ) @@ -118,11 +119,11 @@ func (m msgServer) SwapCoin( ctx := sdk.UnwrapSDKContext(goCtx) // check that deadline has not passed if ctx.BlockHeader().Time.After(time.Unix(msg.Deadline, 0)) { - return nil, sdkerrors.Wrap(types.ErrInvalidDeadline, "deadline has passed for MsgSwapOrder") + return nil, errorsmod.Wrap(types.ErrInvalidDeadline, "deadline has passed for MsgSwapOrder") } if m.k.blockedAddrs[msg.Output.Address] { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( sdkerrors.ErrUnauthorized, "%s is not allowed to receive external funds", msg.Output.Address, @@ -140,7 +141,7 @@ func (m msgServer) UpdateParams( msg *types.MsgUpdateParams, ) (*types.MsgUpdateParamsResponse, error) { if m.k.authority != msg.Authority { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( sdkerrors.ErrUnauthorized, "invalid authority; expected %s, got %s", m.k.authority, diff --git a/modules/coinswap/keeper/params.go b/modules/coinswap/keeper/params.go index 455d861c..843cd507 100644 --- a/modules/coinswap/keeper/params.go +++ b/modules/coinswap/keeper/params.go @@ -3,6 +3,7 @@ package keeper import ( sdk "github.com/cosmos/cosmos-sdk/types" gogotypes "github.com/cosmos/gogoproto/types" + "github.com/irisnet/irismod/modules/coinswap/types" ) diff --git a/modules/coinswap/keeper/pool.go b/modules/coinswap/keeper/pool.go index d61835d8..15c5a60b 100644 --- a/modules/coinswap/keeper/pool.go +++ b/modules/coinswap/keeper/pool.go @@ -5,8 +5,8 @@ import ( gogotypes "github.com/cosmos/gogoproto/types" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/irisnet/irismod/modules/coinswap/types" ) @@ -84,7 +84,7 @@ func (k Keeper) GetPoolBalances( } acc := k.ak.GetAccount(ctx, address) if acc == nil { - return nil, sdkerrors.Wrap(types.ErrReservePoolNotExists, escrowAddress) + return nil, errorsmod.Wrap(types.ErrReservePoolNotExists, escrowAddress) } return k.bk.GetAllBalances(ctx, acc.GetAddress()), nil } @@ -96,7 +96,7 @@ func (k Keeper) GetPoolBalancesByLptDenom( address := types.GetReservePoolAddr(lptDenom) acc := k.ak.GetAccount(ctx, address) if acc == nil { - return nil, sdkerrors.Wrap(types.ErrReservePoolNotExists, address.String()) + return nil, errorsmod.Wrap(types.ErrReservePoolNotExists, address.String()) } return k.bk.GetAllBalances(ctx, acc.GetAddress()), nil } @@ -109,7 +109,7 @@ func (k Keeper) GetLptDenomFromDenoms(ctx sdk.Context, denom1, denom2 string) (s standardDenom := k.GetStandardDenom(ctx) if denom1 != standardDenom && denom2 != standardDenom { - return "", sdkerrors.Wrap( + return "", errorsmod.Wrap( types.ErrNotContainStandardDenom, fmt.Sprintf( "standard denom: %s, denom1: %s, denom2: %s", @@ -127,7 +127,7 @@ func (k Keeper) GetLptDenomFromDenoms(ctx sdk.Context, denom1, denom2 string) (s poolId := types.GetPoolId(counterpartyDenom) pool, has := k.GetPool(ctx, poolId) if !has { - return "", sdkerrors.Wrapf( + return "", errorsmod.Wrapf( types.ErrReservePoolNotExists, "liquidity pool token: %s", counterpartyDenom, @@ -144,7 +144,7 @@ func (k Keeper) ValidatePool(ctx sdk.Context, lptDenom string) error { pool, has := k.GetPoolByLptDenom(ctx, lptDenom) if !has { - return sdkerrors.Wrapf(types.ErrReservePoolNotExists, "liquidity pool token: %s", lptDenom) + return errorsmod.Wrapf(types.ErrReservePoolNotExists, "liquidity pool token: %s", lptDenom) } _, err := k.GetPoolBalances(ctx, pool.EscrowAddress) diff --git a/modules/coinswap/keeper/swap.go b/modules/coinswap/keeper/swap.go index 3507ad49..1dd7c8c2 100644 --- a/modules/coinswap/keeper/swap.go +++ b/modules/coinswap/keeper/swap.go @@ -3,9 +3,9 @@ package keeper import ( "fmt" + errorsmod "cosmossdk.io/errors" sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/irisnet/irismod/modules/coinswap/types" ) @@ -28,7 +28,8 @@ func (k Keeper) swapCoins(ctx sdk.Context, sender, recipient sdk.AccAddress, coi return k.bk.SendCoins(ctx, poolAddr, recipient, sdk.NewCoins(coinBought)) } -/** +/* +* Calculate the amount of another token to be received based on the exact amount of tokens sold @param exactSoldCoin : sold coin @param soldTokenDenom : received token's denom @@ -50,10 +51,10 @@ func (k Keeper) calculateWithExactInput(ctx sdk.Context, exactSoldCoin sdk.Coin, outputReserve := reservePool.AmountOf(boughtTokenDenom) if !inputReserve.IsPositive() { - return sdk.ZeroInt(), sdkerrors.Wrap(types.ErrInsufficientFunds, fmt.Sprintf("reserve pool insufficient funds, actual [%s%s]", inputReserve.String(), exactSoldCoin.Denom)) + return sdk.ZeroInt(), errorsmod.Wrap(types.ErrInsufficientFunds, fmt.Sprintf("reserve pool insufficient funds, actual [%s%s]", inputReserve.String(), exactSoldCoin.Denom)) } if !outputReserve.IsPositive() { - return sdk.ZeroInt(), sdkerrors.Wrap(types.ErrInsufficientFunds, fmt.Sprintf("reserve pool insufficient funds, actual [%s%s]", outputReserve.String(), boughtTokenDenom)) + return sdk.ZeroInt(), errorsmod.Wrap(types.ErrInsufficientFunds, fmt.Sprintf("reserve pool insufficient funds, actual [%s%s]", outputReserve.String(), boughtTokenDenom)) } param := k.GetParams(ctx) @@ -61,7 +62,8 @@ func (k Keeper) calculateWithExactInput(ctx sdk.Context, exactSoldCoin sdk.Coin, return boughtTokenAmt, nil } -/** +/* +* Sell exact amount of a token for buying another, one of them must be standard token @param input: exact amount of the token to be sold @param output: min amount of the token to be bought @@ -77,7 +79,7 @@ func (k Keeper) TradeExactInputForOutput(ctx sdk.Context, input types.Input, out // assert that the calculated amount is more than the // minimum amount the buyer is willing to buy. if boughtTokenAmt.LT(output.Coin.Amount) { - return sdk.ZeroInt(), sdkerrors.Wrap(types.ErrConstraintNotMet, fmt.Sprintf("insufficient amount of %s, user expected: %s, actual: %s", output.Coin.Denom, output.Coin.Amount.String(), boughtTokenAmt.String())) + return sdk.ZeroInt(), errorsmod.Wrap(types.ErrConstraintNotMet, fmt.Sprintf("insufficient amount of %s, user expected: %s, actual: %s", output.Coin.Denom, output.Coin.Amount.String(), boughtTokenAmt.String())) } boughtToken := sdk.NewCoin(output.Coin.Denom, boughtTokenAmt) @@ -96,7 +98,8 @@ func (k Keeper) TradeExactInputForOutput(ctx sdk.Context, input types.Input, out return boughtTokenAmt, nil } -/** +/* +* Sell exact amount of a token for buying another, non of them are standard token @param input: exact amount of the token to be sold @param output: min amount of the token to be bought @@ -133,7 +136,7 @@ func (k Keeper) doubleTradeExactInputForOutput(ctx sdk.Context, input types.Inpu // assert that the calculated amount is less than the // minimum amount the buyer is willing to buy. if boughtAmt.LT(output.Coin.Amount) { - return sdk.ZeroInt(), sdkerrors.Wrap(types.ErrConstraintNotMet, fmt.Sprintf("insufficient amount of %s, user expected: %s, actual: %s", output.Coin.Denom, output.Coin.Amount.String(), boughtAmt.String())) + return sdk.ZeroInt(), errorsmod.Wrap(types.ErrConstraintNotMet, fmt.Sprintf("insufficient amount of %s, user expected: %s, actual: %s", output.Coin.Denom, output.Coin.Amount.String(), boughtAmt.String())) } if err := k.swapCoins(ctx, inputAddress, outputAddress, standardCoin, boughtToken); err != nil { @@ -142,7 +145,8 @@ func (k Keeper) doubleTradeExactInputForOutput(ctx sdk.Context, input types.Inpu return boughtAmt, nil } -/** +/* +* Calculate the amount of the token to be paid based on the exact amount of the token to be bought @param exactBoughtCoin @param soldTokenDenom @@ -164,13 +168,13 @@ func (k Keeper) calculateWithExactOutput(ctx sdk.Context, exactBoughtCoin sdk.Co inputReserve := reservePool.AmountOf(soldTokenDenom) if !inputReserve.IsPositive() { - return sdk.ZeroInt(), sdkerrors.Wrap(types.ErrInsufficientFunds, fmt.Sprintf("reserve pool insufficient balance: [%s%s]", inputReserve.String(), soldTokenDenom)) + return sdk.ZeroInt(), errorsmod.Wrap(types.ErrInsufficientFunds, fmt.Sprintf("reserve pool insufficient balance: [%s%s]", inputReserve.String(), soldTokenDenom)) } if !outputReserve.IsPositive() { - return sdk.ZeroInt(), sdkerrors.Wrap(types.ErrInsufficientFunds, fmt.Sprintf("reserve pool insufficient balance: [%s%s]", outputReserve.String(), exactBoughtCoin.Denom)) + return sdk.ZeroInt(), errorsmod.Wrap(types.ErrInsufficientFunds, fmt.Sprintf("reserve pool insufficient balance: [%s%s]", outputReserve.String(), exactBoughtCoin.Denom)) } if exactBoughtCoin.Amount.GTE(outputReserve) { - return sdk.ZeroInt(), sdkerrors.Wrap(types.ErrInsufficientFunds, fmt.Sprintf("reserve pool insufficient balance of %s, user expected: %s, actual: %s", exactBoughtCoin.Denom, exactBoughtCoin.Amount.String(), outputReserve.String())) + return sdk.ZeroInt(), errorsmod.Wrap(types.ErrInsufficientFunds, fmt.Sprintf("reserve pool insufficient balance of %s, user expected: %s, actual: %s", exactBoughtCoin.Denom, exactBoughtCoin.Amount.String(), outputReserve.String())) } param := k.GetParams(ctx) @@ -178,7 +182,8 @@ func (k Keeper) calculateWithExactOutput(ctx sdk.Context, exactBoughtCoin sdk.Co return soldTokenAmt, nil } -/** +/* +* Buy exact amount of a token by specifying the max amount of another token, one of them must be standard token @param input : max amount of the token to be paid @param output : exact amount of the token to be bought @@ -194,7 +199,7 @@ func (k Keeper) TradeInputForExactOutput(ctx sdk.Context, input types.Input, out // assert that the calculated amount is less than the // max amount the buyer is willing to pay. if soldTokenAmt.GT(input.Coin.Amount) { - return sdk.ZeroInt(), sdkerrors.Wrap(types.ErrConstraintNotMet, fmt.Sprintf("insufficient amount of %s, user expected: %s, actual: %s", input.Coin.Denom, input.Coin.Amount.String(), soldTokenAmt.String())) + return sdk.ZeroInt(), errorsmod.Wrap(types.ErrConstraintNotMet, fmt.Sprintf("insufficient amount of %s, user expected: %s, actual: %s", input.Coin.Denom, input.Coin.Amount.String(), soldTokenAmt.String())) } soldToken := sdk.NewCoin(input.Coin.Denom, soldTokenAmt) @@ -213,7 +218,8 @@ func (k Keeper) TradeInputForExactOutput(ctx sdk.Context, input types.Input, out return soldTokenAmt, nil } -/** +/* +* Buy exact amount of a token by specifying the max amount of another token, non of them are standard token @param input : max amount of the token to be paid @param output : exact amount of the token to be bought @@ -238,7 +244,7 @@ func (k Keeper) doubleTradeInputForExactOutput(ctx sdk.Context, input types.Inpu // assert that the calculated amount is less than the // max amount the buyer is willing to sell. if soldTokenAmt.GT(input.Coin.Amount) { - return sdk.ZeroInt(), sdkerrors.Wrap(types.ErrConstraintNotMet, fmt.Sprintf("insufficient amount of %s, user expected: %s, actual: %s", input.Coin.Denom, input.Coin.Amount.String(), soldTokenAmt.String())) + return sdk.ZeroInt(), errorsmod.Wrap(types.ErrConstraintNotMet, fmt.Sprintf("insufficient amount of %s, user expected: %s, actual: %s", input.Coin.Denom, input.Coin.Amount.String(), soldTokenAmt.String())) } inputAddress, err := sdk.AccAddressFromBech32(input.Address) diff --git a/modules/coinswap/simulation/operations.go b/modules/coinswap/simulation/operations.go index c763ef8a..fa5905ae 100644 --- a/modules/coinswap/simulation/operations.go +++ b/modules/coinswap/simulation/operations.go @@ -8,12 +8,12 @@ import ( "strings" "time" + errorsmod "cosmossdk.io/errors" sdkmath "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/codec" simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" moduletestutil "github.com/cosmos/cosmos-sdk/types/module/testutil" simtypes "github.com/cosmos/cosmos-sdk/types/simulation" "github.com/cosmos/cosmos-sdk/x/simulation" @@ -972,7 +972,7 @@ func doubleSwapBill( outputReserve := reservePool.AmountOf(outputCoin.Denom) inputReserve := reservePool.AmountOf(standardDenom) if outputCoin.Amount.GTE(outputReserve) { - return sdk.Coin{}, sdk.Coin{}, sdkerrors.Wrap( + return sdk.Coin{}, sdk.Coin{}, errorsmod.Wrap( types.ErrConstraintNotMet, fmt.Sprintf( "insufficient amount of %s, user expected: %s, actual: %s", diff --git a/modules/coinswap/types/errors.go b/modules/coinswap/types/errors.go index e98cab2d..299f193f 100644 --- a/modules/coinswap/types/errors.go +++ b/modules/coinswap/types/errors.go @@ -1,17 +1,17 @@ package types import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" ) // coinswap module sentinel errors var ( - ErrReservePoolNotExists = sdkerrors.Register(ModuleName, 2, "reserve pool not exists") - ErrEqualDenom = sdkerrors.Register(ModuleName, 3, "input and output denomination are equal") - ErrNotContainStandardDenom = sdkerrors.Register(ModuleName, 4, "must have one standard denom") - ErrMustStandardDenom = sdkerrors.Register(ModuleName, 5, "must be standard denom") - ErrInvalidDenom = sdkerrors.Register(ModuleName, 6, "invalid denom") - ErrInvalidDeadline = sdkerrors.Register(ModuleName, 7, "invalid deadline") - ErrConstraintNotMet = sdkerrors.Register(ModuleName, 8, "constraint not met") - ErrInsufficientFunds = sdkerrors.Register(ModuleName, 9, "insufficient funds") + ErrReservePoolNotExists = errorsmod.Register(ModuleName, 2, "reserve pool not exists") + ErrEqualDenom = errorsmod.Register(ModuleName, 3, "input and output denomination are equal") + ErrNotContainStandardDenom = errorsmod.Register(ModuleName, 4, "must have one standard denom") + ErrMustStandardDenom = errorsmod.Register(ModuleName, 5, "must be standard denom") + ErrInvalidDenom = errorsmod.Register(ModuleName, 6, "invalid denom") + ErrInvalidDeadline = errorsmod.Register(ModuleName, 7, "invalid deadline") + ErrConstraintNotMet = errorsmod.Register(ModuleName, 8, "constraint not met") + ErrInsufficientFunds = errorsmod.Register(ModuleName, 9, "insufficient funds") ) diff --git a/modules/coinswap/types/msgs.go b/modules/coinswap/types/msgs.go index e8c3b79a..368909c5 100644 --- a/modules/coinswap/types/msgs.go +++ b/modules/coinswap/types/msgs.go @@ -1,6 +1,7 @@ package types import ( + errorsmod "cosmossdk.io/errors" sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -75,7 +76,7 @@ func (msg MsgSwapOrder) ValidateBasic() error { } if msg.Input.Coin.Denom == msg.Output.Coin.Denom { - return sdkerrors.Wrap(ErrEqualDenom, "invalid swap") + return errorsmod.Wrap(ErrEqualDenom, "invalid swap") } return ValidateDeadline(msg.Deadline) @@ -142,7 +143,7 @@ func (msg MsgAddLiquidity) ValidateBasic() error { } if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) } return nil } @@ -202,7 +203,7 @@ func (m MsgAddUnilateralLiquidity) ValidateBasic() error { } if _, err := sdk.AccAddressFromBech32(m.Sender); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) } return nil } @@ -265,7 +266,7 @@ func (msg MsgRemoveLiquidity) ValidateBasic() error { } if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) } return nil } @@ -325,7 +326,7 @@ func (m MsgRemoveUnilateralLiquidity) ValidateBasic() error { } if _, err := sdk.AccAddressFromBech32(m.Sender); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) } return nil } @@ -352,7 +353,7 @@ func (m *MsgUpdateParams) GetSignBytes() []byte { // ValidateBasic executes sanity validation on the provided data func (m *MsgUpdateParams) ValidateBasic() error { if _, err := sdk.AccAddressFromBech32(m.Authority); err != nil { - return sdkerrors.Wrap(err, "invalid authority address") + return errorsmod.Wrap(err, "invalid authority address") } return m.Params.Validate() } diff --git a/modules/coinswap/types/validation.go b/modules/coinswap/types/validation.go index 5ec3d7f1..6d5bb779 100644 --- a/modules/coinswap/types/validation.go +++ b/modules/coinswap/types/validation.go @@ -4,6 +4,7 @@ import ( fmt "fmt" "strings" + errorsmod "cosmossdk.io/errors" sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -12,15 +13,15 @@ import ( // ValidateInput verifies whether the given input is legal func ValidateInput(input Input) error { if !(input.Coin.IsValid() && input.Coin.IsPositive()) { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidCoins, "invalid input (%s)", input.Coin.String()) + return errorsmod.Wrapf(sdkerrors.ErrInvalidCoins, "invalid input (%s)", input.Coin.String()) } if strings.HasPrefix(input.Coin.Denom, LptTokenPrefix) { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "invalid input denom, should not begin with (%s)", LptTokenPrefix) + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "invalid input denom, should not begin with (%s)", LptTokenPrefix) } if _, err := sdk.AccAddressFromBech32(input.Address); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid input address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid input address (%s)", err) } return nil } @@ -28,15 +29,15 @@ func ValidateInput(input Input) error { // ValidateOutput verifies whether the given output is legal func ValidateOutput(output Output) error { if !(output.Coin.IsValid() && output.Coin.IsPositive()) { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidCoins, "invalid output (%s)", output.Coin.String()) + return errorsmod.Wrapf(sdkerrors.ErrInvalidCoins, "invalid output (%s)", output.Coin.String()) } if strings.HasPrefix(output.Coin.Denom, LptTokenPrefix) { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "invalid output denom, should not begin with (%s)", LptTokenPrefix) + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "invalid output denom, should not begin with (%s)", LptTokenPrefix) } if _, err := sdk.AccAddressFromBech32(output.Address); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid output address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid output address (%s)", err) } return nil } @@ -44,7 +45,7 @@ func ValidateOutput(output Output) error { // ValidateDeadline verifies whether the given deadline is legal func ValidateDeadline(deadline int64) error { if deadline <= 0 { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, fmt.Sprintf("deadline %d must be greater than 0", deadline)) + return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, fmt.Sprintf("deadline %d must be greater than 0", deadline)) } return nil } @@ -52,11 +53,11 @@ func ValidateDeadline(deadline int64) error { // ValidateMaxToken verifies whether the maximum token is legal func ValidateMaxToken(maxToken sdk.Coin) error { if !(maxToken.IsValid() && maxToken.IsPositive()) { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidCoins, "invalid maxToken (%s)", maxToken.String()) + return errorsmod.Wrapf(sdkerrors.ErrInvalidCoins, "invalid maxToken (%s)", maxToken.String()) } if strings.HasPrefix(maxToken.Denom, LptTokenPrefix) { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "max token must be non-liquidity token") + return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "max token must be non-liquidity token") } return nil } @@ -64,11 +65,11 @@ func ValidateMaxToken(maxToken sdk.Coin) error { // ValidateToken verifies whether the exact token is legal func ValidateToken(exactToken sdk.Coin) error { if !(exactToken.IsValid() && exactToken.IsPositive()) { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidCoins, "invalid exactToken (%s)", exactToken.String()) + return errorsmod.Wrapf(sdkerrors.ErrInvalidCoins, "invalid exactToken (%s)", exactToken.String()) } if strings.HasPrefix(exactToken.Denom, LptTokenPrefix) { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "token must be non-liquidity token") + return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "token must be non-liquidity token") } return nil } @@ -76,7 +77,7 @@ func ValidateToken(exactToken sdk.Coin) error { // ValidateCounterpartyDenom verifies whether the counterparty denom is legal func ValidateCounterpartyDenom(counterpartydenom string) error { if counterpartydenom == "" { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "counterparty denom should not be empty") + return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "counterparty denom should not be empty") } return nil } @@ -84,7 +85,7 @@ func ValidateCounterpartyDenom(counterpartydenom string) error { // ValidateExactStandardAmt verifies whether the standard token amount is legal func ValidateExactStandardAmt(standardAmt sdkmath.Int) error { if !standardAmt.IsPositive() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "standard token amount must be positive") + return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "standard token amount must be positive") } return nil } @@ -92,7 +93,7 @@ func ValidateExactStandardAmt(standardAmt sdkmath.Int) error { // ValidateLiquidity verifies whether the minimum liquidity is legal func ValidateLiquidity(minLiquidity sdkmath.Int) error { if minLiquidity.IsNegative() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "liquidity can not be negative") + return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "liquidity can not be negative") } return nil } @@ -100,7 +101,7 @@ func ValidateLiquidity(minLiquidity sdkmath.Int) error { // ValidateMinToken verifies whether the minimum token amount is legal func ValidateMinToken(minToken sdkmath.Int) error { if minToken.IsNegative() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidCoins, "minimum token amount can not be negative") + return errorsmod.Wrap(sdkerrors.ErrInvalidCoins, "minimum token amount can not be negative") } return nil } @@ -108,7 +109,7 @@ func ValidateMinToken(minToken sdkmath.Int) error { // ValidateWithdrawLiquidity verifies whether the given liquidity is legal func ValidateWithdrawLiquidity(liquidity sdk.Coin) error { if !liquidity.IsValid() || !liquidity.IsPositive() { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidCoins, "invalid withdrawLiquidity (%s)", liquidity.String()) + return errorsmod.Wrapf(sdkerrors.ErrInvalidCoins, "invalid withdrawLiquidity (%s)", liquidity.String()) } if err := ValidateLptDenom(liquidity.Denom); err != nil { @@ -120,7 +121,7 @@ func ValidateWithdrawLiquidity(liquidity sdk.Coin) error { // ValidateMinStandardAmt verifies whether the minimum standard amount is legal func ValidateMinStandardAmt(minStandardAmt sdkmath.Int) error { if minStandardAmt.IsNegative() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, fmt.Sprintf("minimum standard token amount %s can not be negative", minStandardAmt.String())) + return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, fmt.Sprintf("minimum standard token amount %s can not be negative", minStandardAmt.String())) } return nil } @@ -128,7 +129,7 @@ func ValidateMinStandardAmt(minStandardAmt sdkmath.Int) error { // ValidateLptDenom returns nil if the Liquidity pool token denom is valid func ValidateLptDenom(lptDenom string) error { if _, err := ParseLptDenom(lptDenom); err != nil { - return sdkerrors.Wrap(ErrInvalidDenom, lptDenom) + return errorsmod.Wrap(ErrInvalidDenom, lptDenom) } return nil } @@ -136,7 +137,7 @@ func ValidateLptDenom(lptDenom string) error { // ValidatePoolSequenceId returns nil if the pool id is valid func ValidatePoolSequenceId(poolId uint64) error { if poolId == 0 { - return sdkerrors.Wrap(ErrReservePoolNotExists, "pool-id is not valid") + return errorsmod.Wrap(ErrReservePoolNotExists, "pool-id is not valid") } return nil } diff --git a/modules/farm/handler.go b/modules/farm/handler.go index 65b1b9f0..b8b633b8 100644 --- a/modules/farm/handler.go +++ b/modules/farm/handler.go @@ -1,6 +1,7 @@ package farm import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" govv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" @@ -40,7 +41,7 @@ func NewHandler(k keeper.Keeper) sdk.Handler { return sdk.WrapServiceResult(ctx, res, err) default: - return nil, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized %s message type: %T", types.ModuleName, msg) + return nil, errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized %s message type: %T", types.ModuleName, msg) } } } @@ -52,7 +53,7 @@ func NewCommunityPoolCreateFarmProposalHandler(k keeper.Keeper) govv1beta1.Handl return k.HandleCreateFarmProposal(ctx, c) default: - return sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized farm proposal content type: %T", c) + return errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized farm proposal content type: %T", c) } } } diff --git a/modules/farm/keeper/farmer.go b/modules/farm/keeper/farmer.go index 4bea0f0c..659b4d71 100644 --- a/modules/farm/keeper/farmer.go +++ b/modules/farm/keeper/farmer.go @@ -1,6 +1,7 @@ package keeper import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -16,11 +17,11 @@ func (k Keeper) Stake( ) (reward sdk.Coins, err error) { pool, exist := k.GetPool(ctx, poolId) if !exist { - return reward, sdkerrors.Wrapf(types.ErrPoolNotFound, poolId) + return reward, errorsmod.Wrapf(types.ErrPoolNotFound, poolId) } if pool.StartHeight > ctx.BlockHeight() { - return reward, sdkerrors.Wrapf( + return reward, errorsmod.Wrapf( types.ErrPoolNotStart, "farm pool [%s] will start at height [%d], current [%d]", poolId, pool.StartHeight, ctx.BlockHeight(), @@ -28,7 +29,7 @@ func (k Keeper) Stake( } if k.Expired(ctx, pool) { - return reward, sdkerrors.Wrapf( + return reward, errorsmod.Wrapf( types.ErrPoolExpired, "pool [%s] has expired at height [%d], current [%d]", poolId, pool.EndHeight, ctx.BlockHeight(), @@ -36,7 +37,7 @@ func (k Keeper) Stake( } if lpToken.Denom != pool.TotalLptLocked.Denom { - return reward, sdkerrors.Wrapf( + return reward, errorsmod.Wrapf( types.ErrNotMatch, "pool [%s] only accept [%s] token, but got [%s]", poolId, pool.TotalLptLocked.Denom, lpToken.Denom, @@ -81,12 +82,12 @@ func (k Keeper) Stake( func (k Keeper) Unstake(ctx sdk.Context, poolId string, lpToken sdk.Coin, sender sdk.AccAddress) (_ sdk.Coins, err error) { pool, exist := k.GetPool(ctx, poolId) if !exist { - return nil, sdkerrors.Wrapf(types.ErrPoolNotFound, poolId) + return nil, errorsmod.Wrapf(types.ErrPoolNotFound, poolId) } //lpToken demon must be same as pool.TotalLptLocked.Denom if lpToken.Denom != pool.TotalLptLocked.Denom { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrNotMatch, "pool [%s] only accept [%s] token, but got [%s]", poolId, pool.TotalLptLocked.Denom, lpToken.Denom, @@ -96,7 +97,7 @@ func (k Keeper) Unstake(ctx sdk.Context, poolId string, lpToken sdk.Coin, sender //farmInfo must be exist farmInfo, exist := k.GetFarmInfo(ctx, poolId, sender.String()) if !exist { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrFarmerNotFound, "farmer [%s] not found in pool [%s]", sender.String(), poolId, @@ -105,7 +106,7 @@ func (k Keeper) Unstake(ctx sdk.Context, poolId string, lpToken sdk.Coin, sender //the lp token unstaked must be less than staked if farmInfo.Locked.LT(lpToken.Amount) { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( sdkerrors.ErrInsufficientFunds, "farmer locked lp token [%s], but unstake [%s]", farmInfo.Locked.String(), lpToken.Amount.String(), @@ -114,7 +115,7 @@ func (k Keeper) Unstake(ctx sdk.Context, poolId string, lpToken sdk.Coin, sender //the lp token unstaked must be less than pool if pool.TotalLptLocked.Amount.LT(lpToken.Amount) { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( sdkerrors.ErrInsufficientFunds, "farmer locked lp token [%s], but farm pool total: [%s]", farmInfo.Locked.String(), pool.TotalLptLocked.Amount.String(), @@ -162,11 +163,11 @@ func (k Keeper) Unstake(ctx sdk.Context, poolId string, lpToken sdk.Coin, sender func (k Keeper) Harvest(ctx sdk.Context, poolId string, sender sdk.AccAddress) (sdk.Coins, error) { pool, exist := k.GetPool(ctx, poolId) if !exist { - return nil, sdkerrors.Wrapf(types.ErrPoolNotFound, poolId) + return nil, errorsmod.Wrapf(types.ErrPoolNotFound, poolId) } if k.Expired(ctx, pool) { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrPoolExpired, "pool [%s] has expired at height [%d], current [%d]", poolId, pool.EndHeight, ctx.BlockHeight(), @@ -175,7 +176,7 @@ func (k Keeper) Harvest(ctx sdk.Context, poolId string, sender sdk.AccAddress) ( farmInfo, exist := k.GetFarmInfo(ctx, poolId, sender.String()) if !exist { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrFarmerNotFound, "farmer [%s] not found in pool [%s]", sender.String(), poolId, @@ -224,7 +225,7 @@ func (k Keeper) Refund(ctx sdk.Context, pool types.FarmPool) (sdk.Coins, error) } if !refundTotal.IsAllPositive() { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrInvalidRefund, "pool [%s] has no remaining reward", pool.Id, diff --git a/modules/farm/keeper/fees.go b/modules/farm/keeper/fees.go index feb6bf19..ac4d2f10 100644 --- a/modules/farm/keeper/fees.go +++ b/modules/farm/keeper/fees.go @@ -1,4 +1,4 @@ -//nolint +// nolint package keeper import ( diff --git a/modules/farm/keeper/grpc_query.go b/modules/farm/keeper/grpc_query.go index 97ef80f0..8c64acd3 100644 --- a/modules/farm/keeper/grpc_query.go +++ b/modules/farm/keeper/grpc_query.go @@ -3,12 +3,12 @@ package keeper import ( "context" + errorsmod "cosmossdk.io/errors" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" "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/irisnet/irismod/modules/farm/types" @@ -70,7 +70,7 @@ func (k Keeper) FarmPool(goctx context.Context, pool, exist := k.GetPool(ctx, request.Id) if !exist { - return nil, sdkerrors.Wrapf(types.ErrPoolNotFound, request.Id) + return nil, errorsmod.Wrapf(types.ErrPoolNotFound, request.Id) } var totalReward sdk.Coins @@ -116,13 +116,13 @@ func (k Keeper) Farmer(goctx context.Context, request *types.QueryFarmerRequest) } } if len(farmInfos) == 0 { - return nil, sdkerrors.Wrapf(types.ErrFarmerNotFound, "not found farmer: %s", request.Farmer) + return nil, errorsmod.Wrapf(types.ErrFarmerNotFound, "not found farmer: %s", request.Farmer) } for _, farmer := range farmInfos { pool, exist := k.GetPool(cacheCtx, farmer.PoolId) if !exist { - return nil, sdkerrors.Wrapf(types.ErrPoolNotFound, farmer.PoolId) + return nil, errorsmod.Wrapf(types.ErrPoolNotFound, farmer.PoolId) } //The farm pool has not started, no reward diff --git a/modules/farm/keeper/msg_server.go b/modules/farm/keeper/msg_server.go index 54d0ff9d..4d950f68 100644 --- a/modules/farm/keeper/msg_server.go +++ b/modules/farm/keeper/msg_server.go @@ -4,6 +4,7 @@ import ( "context" "fmt" + errorsmod "cosmossdk.io/errors" codectypes "github.com/cosmos/cosmos-sdk/codec/types" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -36,7 +37,7 @@ func (m msgServer) CreatePool( ctx := sdk.UnwrapSDKContext(goCtx) //check valid begin height if ctx.BlockHeight() > int64(msg.StartHeight) { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrExpiredHeight, "The current block height[%d] is greater than StartHeight[%d]", ctx.BlockHeight(), msg.StartHeight, @@ -46,7 +47,7 @@ func (m msgServer) CreatePool( if maxRewardCategories := m.k.MaxRewardCategories(ctx); uint32( len(msg.TotalReward), ) > maxRewardCategories { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrInvalidRewardRule, "the max reward category num is [%d], but got [%d]", maxRewardCategories, len(msg.TotalReward), @@ -55,7 +56,7 @@ func (m msgServer) CreatePool( //check valid lp token denom if err := m.k.ck.ValidatePool(ctx, msg.LptDenom); err != nil { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrInvalidLPToken, "The lp token denom[%s] is not exist", msg.LptDenom, @@ -98,7 +99,7 @@ func (m msgServer) CreatePoolWithCommunityPool( totalReward := sdk.NewCoins(msg.Content.FundApplied...).Add(msg.Content.FundSelfBond...) maxRewardCategories := m.k.MaxRewardCategories(ctx) if uint32(len(totalReward)) > maxRewardCategories { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrInvalidRewardRule, "the max reward category num is [%d], but got [%d]", maxRewardCategories, len(totalReward), @@ -107,7 +108,7 @@ func (m msgServer) CreatePoolWithCommunityPool( //check valid lp token denom if err := m.k.ck.ValidatePool(ctx, msg.Content.LptDenom); err != nil { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrInvalidLPToken, "The lp token denom[%s] is not exist", msg.Content.LptDenom, @@ -310,7 +311,7 @@ func (m msgServer) UpdateParams( msg *types.MsgUpdateParams, ) (*types.MsgUpdateParamsResponse, error) { if m.k.authority != msg.Authority { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( sdkerrors.ErrUnauthorized, "invalid authority; expected %s, got %s", m.k.authority, diff --git a/modules/farm/keeper/pool.go b/modules/farm/keeper/pool.go index 05ff8599..cbfed82c 100644 --- a/modules/farm/keeper/pool.go +++ b/modules/farm/keeper/pool.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,20 +37,20 @@ func (k Keeper) CreatePool( func (k Keeper) DestroyPool(ctx sdk.Context, poolId string, creator sdk.AccAddress) (sdk.Coins, error) { pool, exist := k.GetPool(ctx, poolId) if !exist { - return nil, sdkerrors.Wrapf(types.ErrPoolNotFound, poolId) + return nil, errorsmod.Wrapf(types.ErrPoolNotFound, poolId) } if creator.String() != pool.Creator { - return nil, sdkerrors.Wrapf(sdkerrors.ErrUnauthorized, "creator [%s] is not the creator of the pool", creator.String()) + return nil, errorsmod.Wrapf(sdkerrors.ErrUnauthorized, "creator [%s] is not the creator of the pool", creator.String()) } if !pool.Editable { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrInvalidOperate, "pool [%s] is not editable", poolId) } if k.Expired(ctx, pool) { - return nil, sdkerrors.Wrapf(types.ErrPoolExpired, + return nil, errorsmod.Wrapf(types.ErrPoolExpired, "pool [%s] has expired at height [%d], current [%d]", poolId, pool.EndHeight, @@ -70,22 +71,22 @@ func (k Keeper) AdjustPool( pool, exist := k.GetPool(ctx, poolId) //check if the liquidity pool exists if !exist { - return sdkerrors.Wrapf(types.ErrPoolNotFound, poolId) + return errorsmod.Wrapf(types.ErrPoolNotFound, poolId) } if !pool.Editable { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrInvalidOperate, "pool [%s] is not editable", poolId) } //check permissions if creator.String() != pool.Creator { - return sdkerrors.Wrapf(sdkerrors.ErrUnauthorized, "creator [%s] is not the creator of the pool", creator.String()) + return errorsmod.Wrapf(sdkerrors.ErrUnauthorized, "creator [%s] is not the creator of the pool", creator.String()) } //check for expiration if k.Expired(ctx, pool) { - return sdkerrors.Wrapf(types.ErrPoolExpired, + return errorsmod.Wrapf(types.ErrPoolExpired, "pool [%s] has expired at height[%d], current [%d]", poolId, pool.EndHeight, @@ -96,11 +97,11 @@ func (k Keeper) AdjustPool( pool.Rules = k.GetRewardRules(ctx, pool.Id) rules := types.RewardRules(pool.Rules) if rewardPerBlock != nil && !rewardPerBlock.DenomsSubsetOf(rules.RewardsPerBlock()) { - return sdkerrors.Wrapf(types.ErrInvalidAppend, "rewardPerBlock: %s", rewardPerBlock.String()) + return errorsmod.Wrapf(types.ErrInvalidAppend, "rewardPerBlock: %s", rewardPerBlock.String()) } if reward != nil && !rules.Contains(reward) { - return sdkerrors.Wrapf(types.ErrInvalidAppend, reward.String()) + return errorsmod.Wrapf(types.ErrInvalidAppend, reward.String()) } startHeight := pool.StartHeight @@ -228,7 +229,7 @@ func (k Keeper) updatePool( ) (types.FarmPool, sdk.Coins, error) { height := ctx.BlockHeight() if height < pool.LastHeightDistrRewards { - return pool, nil, sdkerrors.Wrapf( + return pool, nil, errorsmod.Wrapf( types.ErrExpiredHeight, "invalid height: [%d], last distribution height: [%d]", height, pool.LastHeightDistrRewards, @@ -237,7 +238,7 @@ func (k Keeper) updatePool( rules := k.GetRewardRules(ctx, pool.Id) if len(rules) == 0 { - return pool, nil, sdkerrors.Wrapf(types.ErrPoolNotFound, pool.Id) + return pool, nil, errorsmod.Wrapf(types.ErrPoolNotFound, pool.Id) } var rewardTotal sdk.Coins //when there are multiple farm operations in the same block, the value needs to be updated once @@ -254,7 +255,7 @@ func (k Keeper) updatePool( "remainingReward", rules[i].RemainingReward.String(), "rewardCollected", rewardCollected.String(), ) - return pool, nil, sdkerrors.Wrapf( + return pool, nil, errorsmod.Wrapf( sdkerrors.ErrInsufficientFunds, "the remaining reward of the pool [%s] is [%s], but got [%s]", pool.Id, sdk.NewCoin(rules[i].Reward, rules[i].RemainingReward).String(), coinCollected, diff --git a/modules/farm/keeper/proposal_hook.go b/modules/farm/keeper/proposal_hook.go index 0ec06f09..eaed5bb7 100644 --- a/modules/farm/keeper/proposal_hook.go +++ b/modules/farm/keeper/proposal_hook.go @@ -4,51 +4,79 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" v1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" + + "github.com/irisnet/irismod/modules/farm/types" ) var _ govtypes.GovHooks = GovHook{} +// GovHook implements govtypes.GovHooks type GovHook struct { k Keeper } +// NewGovHook returns a new GovHook instance. +// +// It takes a parameter of type Keeper and returns a GovHook. func NewGovHook(k Keeper) GovHook { return GovHook{k} } -//AfterProposalFailedMinDeposit callback when the proposal is deleted due to insufficient collateral -func (h GovHook) AfterProposalFailedMinDeposit(ctx sdk.Context, proposalID uint64) { +// AfterProposalFailedMinDeposit callback when the proposal is deleted due to insufficient collateral +func (h GovHook) AfterProposalFailedMinDeposit(ctx sdk.Context, proposalID uint64) error { info, has := h.k.GetEscrowInfo(ctx, proposalID) if !has { - return + return types.ErrEscrowInfoNotFound } //execute refund logic h.k.refundEscrow(ctx, info) + return nil } -//AfterProposalVotingPeriodEnded callback when proposal voting is complete -func (h GovHook) AfterProposalVotingPeriodEnded(ctx sdk.Context, proposalID uint64) { +// AfterProposalVotingPeriodEnded callback when proposal voting is complete +func (h GovHook) AfterProposalVotingPeriodEnded(ctx sdk.Context, proposalID uint64) error { info, has := h.k.GetEscrowInfo(ctx, proposalID) if !has { - return + return types.ErrEscrowInfoNotFound } proposal, has := h.k.gk.GetProposal(ctx, proposalID) if !has { - return + return types.ErrInvalidProposal } //when the proposal is passed, the content of the proposal is executed by the gov module, which is not directly processed here if proposal.Status == v1.StatusPassed { h.k.deleteEscrowInfo(ctx, proposalID) - return + return types.ErrInvalidProposal } //when the proposal is not passed,execute refund logic h.k.refundEscrow(ctx, info) + + return nil +} + +// AfterProposalSubmission description of the Go function. +// +// Takes in sdk.Context and uint64 as parameters. +// Returns an error. +func (h GovHook) AfterProposalSubmission(ctx sdk.Context, proposalID uint64) error { + return nil +} + +// AfterProposalDeposit is a function that... +// +// takes in ctx sdk.Context, proposalID uint64, depositorAddr sdk.AccAddress. +// Returns an error. +func (h GovHook) AfterProposalDeposit(ctx sdk.Context, proposalID uint64, depositorAddr sdk.AccAddress) error { + return nil } -func (h GovHook) AfterProposalSubmission(ctx sdk.Context, proposalID uint64) {} -func (h GovHook) AfterProposalDeposit(ctx sdk.Context, proposalID uint64, depositorAddr sdk.AccAddress) { +// AfterProposalVote is a Go function. +// +// It takes parameters ctx sdk.Context, proposalID uint64, voterAddr sdk.AccAddress. +// It returns an error. +func (h GovHook) AfterProposalVote(ctx sdk.Context, proposalID uint64, voterAddr sdk.AccAddress) error { + return nil } -func (h GovHook) AfterProposalVote(ctx sdk.Context, proposalID uint64, voterAddr sdk.AccAddress) {} diff --git a/modules/farm/types/errors.go b/modules/farm/types/errors.go index ce876fcf..b4ca9bdc 100644 --- a/modules/farm/types/errors.go +++ b/modules/farm/types/errors.go @@ -1,26 +1,27 @@ package types import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" ) // farm module sentinel errors var ( - ErrExpiredHeight = sdkerrors.Register(ModuleName, 2, "expired block height") - ErrInvalidLPToken = sdkerrors.Register(ModuleName, 3, "invalid lp token denom") - ErrNotMatch = sdkerrors.Register(ModuleName, 4, "the data does not match") - ErrPoolExpired = sdkerrors.Register(ModuleName, 5, "the farm pool has expired") - ErrPoolNotStart = sdkerrors.Register(ModuleName, 6, "the farm pool don't start") - ErrPoolExist = sdkerrors.Register(ModuleName, 7, "the farm pool already exist") - ErrPoolNotFound = sdkerrors.Register(ModuleName, 8, "the farm pool does not exist") - ErrInvalidOperate = sdkerrors.Register(ModuleName, 9, "invalid operate") - ErrFarmerNotFound = sdkerrors.Register(ModuleName, 10, "the farmer does not exist") - ErrInvalidPoolId = sdkerrors.Register(ModuleName, 11, "invalid pool id") - ErrInvalidDescription = sdkerrors.Register(ModuleName, 12, "invalid pool description, length must be less than or equal to 280") - ErrInvalidAppend = sdkerrors.Register(ModuleName, 13, "cannot add new token as a reward") - ErrInvalidRewardRule = sdkerrors.Register(ModuleName, 14, "invalid reward rule") - ErrAllEmpty = sdkerrors.Register(ModuleName, 15, "shouldn't all be empty") - ErrBadDistribution = sdkerrors.Register(ModuleName, 16, "community pool does not have sufficient coins to distribute") - ErrInvalidRefund = sdkerrors.Register(ModuleName, 17, "invalid refund amount") - ErrInvalidProposal = sdkerrors.Register(ModuleName, 18, "invalid proposal") + ErrExpiredHeight = errorsmod.Register(ModuleName, 2, "expired block height") + ErrInvalidLPToken = errorsmod.Register(ModuleName, 3, "invalid lp token denom") + ErrNotMatch = errorsmod.Register(ModuleName, 4, "the data does not match") + ErrPoolExpired = errorsmod.Register(ModuleName, 5, "the farm pool has expired") + ErrPoolNotStart = errorsmod.Register(ModuleName, 6, "the farm pool don't start") + ErrPoolExist = errorsmod.Register(ModuleName, 7, "the farm pool already exist") + ErrPoolNotFound = errorsmod.Register(ModuleName, 8, "the farm pool does not exist") + ErrInvalidOperate = errorsmod.Register(ModuleName, 9, "invalid operate") + ErrFarmerNotFound = errorsmod.Register(ModuleName, 10, "the farmer does not exist") + ErrInvalidPoolId = errorsmod.Register(ModuleName, 11, "invalid pool id") + ErrInvalidDescription = errorsmod.Register(ModuleName, 12, "invalid pool description, length must be less than or equal to 280") + ErrInvalidAppend = errorsmod.Register(ModuleName, 13, "cannot add new token as a reward") + ErrInvalidRewardRule = errorsmod.Register(ModuleName, 14, "invalid reward rule") + ErrAllEmpty = errorsmod.Register(ModuleName, 15, "shouldn't all be empty") + ErrBadDistribution = errorsmod.Register(ModuleName, 16, "community pool does not have sufficient coins to distribute") + ErrInvalidRefund = errorsmod.Register(ModuleName, 17, "invalid refund amount") + ErrInvalidProposal = errorsmod.Register(ModuleName, 18, "invalid proposal") + ErrEscrowInfoNotFound = errorsmod.Register(ModuleName, 19, "the escrow information does not exist") ) diff --git a/modules/farm/types/farm.go b/modules/farm/types/farm.go index b5d43463..ebd4e47a 100644 --- a/modules/farm/types/farm.go +++ b/modules/farm/types/farm.go @@ -3,6 +3,7 @@ package types import ( math "math" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) @@ -20,7 +21,7 @@ func (pool FarmPool) ExpiredHeight() (int64, error) { } } if int64(math.MaxInt64)-pool.StartHeight < targetInteval { - return 0, sdkerrors.Wrapf(sdkerrors.ErrInvalidHeight, "endheight overflow") + return 0, errorsmod.Wrapf(sdkerrors.ErrInvalidHeight, "endheight overflow") } return pool.StartHeight + targetInteval, nil } diff --git a/modules/farm/types/msgs.go b/modules/farm/types/msgs.go index 7eec6a8f..1d390883 100644 --- a/modules/farm/types/msgs.go +++ b/modules/farm/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" ) @@ -94,10 +95,10 @@ func (msg MsgCreatePoolWithCommunityPool) Type() string { return TypeMsgCreatePr // ValidateBasic implements Msg func (msg MsgCreatePoolWithCommunityPool) ValidateBasic() error { if !msg.InitialDeposit.IsValid() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidCoins, msg.InitialDeposit.String()) + return errorsmod.Wrap(sdkerrors.ErrInvalidCoins, msg.InitialDeposit.String()) } if msg.InitialDeposit.IsAnyNegative() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidCoins, msg.InitialDeposit.String()) + return errorsmod.Wrap(sdkerrors.ErrInvalidCoins, msg.InitialDeposit.String()) } if err := ValidateAddress(msg.Proposer); err != nil { return err @@ -165,7 +166,7 @@ func (msg MsgAdjustPool) ValidateBasic() error { } if msg.AdditionalReward == nil && msg.RewardPerBlock == nil { - return sdkerrors.Wrap(ErrAllEmpty, "AdditionalReward and RewardPerBlock") + return errorsmod.Wrap(ErrAllEmpty, "AdditionalReward and RewardPerBlock") } if msg.AdditionalReward != nil { @@ -318,7 +319,7 @@ func (m *MsgUpdateParams) GetSignBytes() []byte { // ValidateBasic executes sanity validation on the provided data func (m *MsgUpdateParams) ValidateBasic() error { if _, err := sdk.AccAddressFromBech32(m.Authority); err != nil { - return sdkerrors.Wrap(err, "invalid authority address") + return errorsmod.Wrap(err, "invalid authority address") } return m.Params.Validate() } diff --git a/modules/farm/types/validation.go b/modules/farm/types/validation.go index e90f85a5..2eea1e5a 100644 --- a/modules/farm/types/validation.go +++ b/modules/farm/types/validation.go @@ -4,6 +4,7 @@ import ( "strconv" "strings" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) @@ -26,7 +27,7 @@ func ValidatepPoolId(poolId string) (uint64, error) { // ValidateDescription validates the pool name func ValidateDescription(description string) error { if len(description) > MaxDescriptionLength { - return sdkerrors.Wrap(ErrInvalidDescription, description) + return errorsmod.Wrap(ErrInvalidDescription, description) } return nil } @@ -39,7 +40,7 @@ func ValidateLpTokenDenom(denom string) error { // ValidateCoins validates the coin func ValidateCoins(field string, coins ...sdk.Coin) error { if len(coins) == 0 { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidCoins, "The %s should be greater than zero", field) + return errorsmod.Wrapf(sdkerrors.ErrInvalidCoins, "The %s should be greater than zero", field) } return sdk.NewCoins(coins...).Validate() } @@ -53,21 +54,21 @@ func ValidateAddress(sender string) error { // ValidateReward validates the coin func ValidateReward(rewardPerBlock, totalReward sdk.Coins) error { if len(rewardPerBlock) != len(totalReward) { - return sdkerrors.Wrapf(ErrNotMatch, "The length of rewardPerBlock and totalReward must be the same") + return errorsmod.Wrapf(ErrNotMatch, "The length of rewardPerBlock and totalReward must be the same") } if !rewardPerBlock.DenomsSubsetOf(totalReward) { - return sdkerrors.Wrapf(ErrInvalidRewardRule, "rewardPerBlock and totalReward token types must be the same") + return errorsmod.Wrapf(ErrInvalidRewardRule, "rewardPerBlock and totalReward token types must be the same") } for i := range totalReward { if !totalReward[i].IsGTE(rewardPerBlock[i]) { - return sdkerrors.Wrapf(ErrNotMatch, "The totalReward should be greater than or equal to rewardPerBlock") + return errorsmod.Wrapf(ErrNotMatch, "The totalReward should be greater than or equal to rewardPerBlock") } //uint64 overflow check h := totalReward[i].Amount.Quo(rewardPerBlock[i].Amount) if !h.IsInt64() { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "Can not convert to int64, overflow") + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "Can not convert to int64, overflow") } } return nil @@ -79,12 +80,12 @@ func ValidateFund(rewardPerBlock, fundApplied, fundSelfBond []sdk.Coin) error { } if err := sdk.NewCoins(fundSelfBond...).Validate(); err != nil { - return sdkerrors.Wrapf(err, "The fundSelfBond is invalid coin") + return errorsmod.Wrapf(err, "The fundSelfBond is invalid coin") } total := sdk.NewCoins(fundApplied...).Add(fundSelfBond...) if len(fundApplied)+len(fundSelfBond) != total.Len() { - return sdkerrors.Wrapf(ErrInvalidProposal, "the type of The token bond by the user cannot be the same as the one applied for community pool") + return errorsmod.Wrapf(ErrInvalidProposal, "the type of The token bond by the user cannot be the same as the one applied for community pool") } return ValidateReward(rewardPerBlock, total) } diff --git a/modules/htlc/handler.go b/modules/htlc/handler.go index 8394439d..46217422 100644 --- a/modules/htlc/handler.go +++ b/modules/htlc/handler.go @@ -1,6 +1,7 @@ package htlc import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -25,7 +26,7 @@ func NewHandler(k keeper.Keeper) sdk.Handler { return sdk.WrapServiceResult(ctx, res, err) default: - return nil, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized %s message type: %T", types.ModuleName, msg) + return nil, errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized %s message type: %T", types.ModuleName, msg) } } } diff --git a/modules/htlc/keeper/asset.go b/modules/htlc/keeper/asset.go index 265b5401..88217b86 100644 --- a/modules/htlc/keeper/asset.go +++ b/modules/htlc/keeper/asset.go @@ -5,8 +5,8 @@ import ( gogotypes "github.com/cosmos/gogoproto/types" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/irisnet/irismod/modules/htlc/types" ) @@ -15,7 +15,7 @@ import ( func (k Keeper) IncrementCurrentAssetSupply(ctx sdk.Context, coin sdk.Coin) error { supply, found := k.GetAssetSupply(ctx, coin.Denom) if !found { - return sdkerrors.Wrap(types.ErrAssetNotSupported, coin.Denom) + return errorsmod.Wrap(types.ErrAssetNotSupported, coin.Denom) } limit, err := k.GetSupplyLimit(ctx, coin.Denom) @@ -26,7 +26,7 @@ func (k Keeper) IncrementCurrentAssetSupply(ctx sdk.Context, coin sdk.Coin) erro // Resulting current supply must be under asset's limit if supplyLimit.IsLT(supply.CurrentSupply.Add(coin)) { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrExceedsSupplyLimit, "increase %s, asset supply %s, limit %s", coin, supply.CurrentSupply, supplyLimit, @@ -36,7 +36,7 @@ func (k Keeper) IncrementCurrentAssetSupply(ctx sdk.Context, coin sdk.Coin) erro if limit.TimeLimited { timeBasedSupplyLimit := sdk.NewCoin(coin.Denom, limit.TimeBasedLimit) if timeBasedSupplyLimit.IsLT(supply.TimeLimitedCurrentSupply.Add(coin)) { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrExceedsTimeBasedSupplyLimit, "increase %s, current time-based asset supply %s, limit %s", coin, supply.TimeLimitedCurrentSupply, timeBasedSupplyLimit, @@ -54,13 +54,13 @@ func (k Keeper) IncrementCurrentAssetSupply(ctx sdk.Context, coin sdk.Coin) erro func (k Keeper) DecrementCurrentAssetSupply(ctx sdk.Context, coin sdk.Coin) error { supply, found := k.GetAssetSupply(ctx, coin.Denom) if !found { - return sdkerrors.Wrap(types.ErrAssetNotSupported, coin.Denom) + return errorsmod.Wrap(types.ErrAssetNotSupported, coin.Denom) } // Resulting current supply must be greater than or equal to 0 // Use sdk.Int instead of sdk.Coin to prevent panic if true if supply.CurrentSupply.Amount.Sub(coin.Amount).IsNegative() { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrInvalidCurrentSupply, "decrease %s, asset supply %s", coin, @@ -77,7 +77,7 @@ func (k Keeper) DecrementCurrentAssetSupply(ctx sdk.Context, coin sdk.Coin) erro func (k Keeper) IncrementIncomingAssetSupply(ctx sdk.Context, coin sdk.Coin) error { supply, found := k.GetAssetSupply(ctx, coin.Denom) if !found { - return sdkerrors.Wrap(types.ErrAssetNotSupported, coin.Denom) + return errorsmod.Wrap(types.ErrAssetNotSupported, coin.Denom) } // Result of (current + incoming + amount) must be under asset's limit @@ -89,7 +89,7 @@ func (k Keeper) IncrementIncomingAssetSupply(ctx sdk.Context, coin sdk.Coin) err } supplyLimit := sdk.NewCoin(coin.Denom, limit.Limit) if supplyLimit.IsLT(totalSupply.Add(coin)) { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrExceedsSupplyLimit, "increase %s, asset supply %s, limit %s", coin, @@ -102,7 +102,7 @@ func (k Keeper) IncrementIncomingAssetSupply(ctx sdk.Context, coin sdk.Coin) err timeLimitedTotalSupply := supply.TimeLimitedCurrentSupply.Add(supply.IncomingSupply) timeBasedSupplyLimit := sdk.NewCoin(coin.Denom, limit.TimeBasedLimit) if timeBasedSupplyLimit.IsLT(timeLimitedTotalSupply.Add(coin)) { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrExceedsTimeBasedSupplyLimit, "increase %s, time-based asset supply %s, limit %s", coin, supply.TimeLimitedCurrentSupply, timeBasedSupplyLimit, @@ -119,13 +119,13 @@ func (k Keeper) IncrementIncomingAssetSupply(ctx sdk.Context, coin sdk.Coin) err func (k Keeper) DecrementIncomingAssetSupply(ctx sdk.Context, coin sdk.Coin) error { supply, found := k.GetAssetSupply(ctx, coin.Denom) if !found { - return sdkerrors.Wrap(types.ErrAssetNotSupported, coin.Denom) + return errorsmod.Wrap(types.ErrAssetNotSupported, coin.Denom) } // Resulting incoming supply must be greater than or equal to 0 // Use sdk.Int instead of sdk.Coin to prevent panic if true if supply.IncomingSupply.Amount.Sub(coin.Amount).IsNegative() { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrInvalidIncomingSupply, "decrease %s, incoming supply %s", coin, @@ -142,12 +142,12 @@ func (k Keeper) DecrementIncomingAssetSupply(ctx sdk.Context, coin sdk.Coin) err func (k Keeper) IncrementOutgoingAssetSupply(ctx sdk.Context, coin sdk.Coin) error { supply, found := k.GetAssetSupply(ctx, coin.Denom) if !found { - return sdkerrors.Wrap(types.ErrAssetNotSupported, coin.Denom) + return errorsmod.Wrap(types.ErrAssetNotSupported, coin.Denom) } // Result of (outgoing + amount) must be less than current supply if supply.CurrentSupply.IsLT(supply.OutgoingSupply.Add(coin)) { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrExceedsAvailableSupply, "swap amount %s, available supply %s", coin, supply.CurrentSupply.Amount.Sub(supply.OutgoingSupply.Amount), @@ -163,13 +163,13 @@ func (k Keeper) IncrementOutgoingAssetSupply(ctx sdk.Context, coin sdk.Coin) err func (k Keeper) DecrementOutgoingAssetSupply(ctx sdk.Context, coin sdk.Coin) error { supply, found := k.GetAssetSupply(ctx, coin.Denom) if !found { - return sdkerrors.Wrap(types.ErrAssetNotSupported, coin.Denom) + return errorsmod.Wrap(types.ErrAssetNotSupported, coin.Denom) } // Resulting outgoing supply must be greater than or equal to 0 // Use sdk.Int instead of sdk.Coin to prevent panic if true if supply.OutgoingSupply.Amount.Sub(coin.Amount).IsNegative() { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrInvalidOutgoingSupply, "decrease %s, outgoing supply %s", coin, diff --git a/modules/htlc/keeper/htlc.go b/modules/htlc/keeper/htlc.go index 99a29969..dad597b2 100644 --- a/modules/htlc/keeper/htlc.go +++ b/modules/htlc/keeper/htlc.go @@ -8,8 +8,8 @@ import ( tmbytes "github.com/cometbft/cometbft/libs/bytes" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/irisnet/irismod/modules/htlc/types" ) @@ -34,7 +34,7 @@ func (k Keeper) CreateHTLC( // check if the HTLC already exists if k.HasHTLC(ctx, id) { - return id, sdkerrors.Wrap(types.ErrHTLCExists, id.String()) + return id, errorsmod.Wrap(types.ErrHTLCExists, id.String()) } expirationHeight := uint64(ctx.BlockHeight()) + timeLock @@ -97,7 +97,7 @@ func (k Keeper) createHTLT( var direction types.SwapDirection if len(amount) != 1 { - return direction, sdkerrors.Wrapf( + return direction, errorsmod.Wrapf( types.ErrInvalidAmount, "amount %s must contain exactly one coin", amount.String(), @@ -115,7 +115,7 @@ func (k Keeper) createHTLT( // Swap amount must be within the specified swap amount limits if amount[0].Amount.LT(asset.MinSwapAmount) || amount[0].Amount.GT(asset.MaxSwapAmount) { - return direction, sdkerrors.Wrapf( + return direction, errorsmod.Wrapf( types.ErrInvalidAmount, "amount %s outside range [%s, %s]", amount[0].Amount, @@ -128,7 +128,7 @@ func (k Keeper) createHTLT( pastTimestampLimit := ctx.BlockTime().Add(-15 * time.Minute).Unix() futureTimestampLimit := ctx.BlockTime().Add(30 * time.Minute).Unix() if timestamp < uint64(pastTimestampLimit) || timestamp >= uint64(futureTimestampLimit) { - return direction, sdkerrors.Wrap( + return direction, errorsmod.Wrap( types.ErrInvalidTimestamp, fmt.Sprintf( "timestamp can neither be 15 minutes ahead of the current time, nor 30 minutes later. block time: %s, timestamp: %s", @@ -142,7 +142,7 @@ func (k Keeper) createHTLT( if sender.Equals(deputyAddress) { if to.Equals(deputyAddress) { - return direction, sdkerrors.Wrapf( + return direction, errorsmod.Wrapf( types.ErrInvalidAccount, "deputy cannot be both sender and receiver: %s", asset.DeputyAddress, @@ -151,7 +151,7 @@ func (k Keeper) createHTLT( direction = types.Incoming } else { if !to.Equals(deputyAddress) { - return direction, sdkerrors.Wrapf(types.ErrInvalidAccount, "deputy must be recipient for outgoing account: %s", to) + return direction, errorsmod.Wrapf(types.ErrInvalidAccount, "deputy must be recipient for outgoing account: %s", to) } direction = types.Outgoing } @@ -172,7 +172,7 @@ func (k Keeper) createHTLT( case types.Outgoing: // Outgoing swaps must have a time lock within the accepted range if timeLock < asset.MinBlockLock || timeLock > asset.MaxBlockLock { - return direction, sdkerrors.Wrapf( + return direction, errorsmod.Wrapf( types.ErrInvalidTimeLock, "time lock %d outside range [%d, %d]", timeLock, @@ -182,7 +182,7 @@ func (k Keeper) createHTLT( } // Amount in outgoing swaps must be able to pay the deputy's fixed fee. if amount[0].Amount.LT(asset.FixedFee.Add(asset.MinSwapAmount)) { - return direction, sdkerrors.Wrapf( + return direction, errorsmod.Wrapf( types.ErrInsufficientAmount, "amount %s is less than fixed fee %s add min swap amount %s", amount[0].String(), asset.FixedFee.String(), asset.MinSwapAmount.String(), @@ -196,7 +196,7 @@ func (k Keeper) createHTLT( return direction, err } default: - return direction, sdkerrors.Wrapf(types.ErrInvalidDirection, direction.String()) + return direction, errorsmod.Wrapf(types.ErrInvalidDirection, direction.String()) } return direction, nil @@ -216,19 +216,19 @@ func (k Keeper) ClaimHTLC( // query the HTLC htlc, found := k.GetHTLC(ctx, id) if !found { - return "", false, types.None, sdkerrors.Wrap(types.ErrUnknownHTLC, id.String()) + return "", false, types.None, errorsmod.Wrap(types.ErrUnknownHTLC, id.String()) } // check if the HTLC is open if htlc.State != types.Open { - return "", false, types.None, sdkerrors.Wrap(types.ErrHTLCNotOpen, id.String()) + return "", false, types.None, errorsmod.Wrap(types.ErrHTLCNotOpen, id.String()) } hashLock, _ := hex.DecodeString(htlc.HashLock) // check if the secret matches with the hash lock if !bytes.Equal(types.GetHashLock(secret, htlc.Timestamp), hashLock) { - return "", false, types.None, sdkerrors.Wrap(types.ErrInvalidSecret, secret.String()) + return "", false, types.None, errorsmod.Wrap(types.ErrInvalidSecret, secret.String()) } to, err := sdk.AccAddressFromBech32(htlc.To) @@ -292,7 +292,7 @@ func (k Keeper) claimHTLT(ctx sdk.Context, htlc types.HTLC) error { return err } default: - return sdkerrors.Wrapf(types.ErrInvalidDirection, htlc.Direction.String()) + return errorsmod.Wrapf(types.ErrInvalidDirection, htlc.Direction.String()) } return nil diff --git a/modules/htlc/keeper/msg_server.go b/modules/htlc/keeper/msg_server.go index c6d246d3..5a6b0063 100644 --- a/modules/htlc/keeper/msg_server.go +++ b/modules/htlc/keeper/msg_server.go @@ -5,6 +5,7 @@ import ( "encoding/hex" "strconv" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -44,7 +45,7 @@ func (m msgServer) CreateHTLC( } if m.k.blockedAddrs[msg.To] { - return nil, sdkerrors.Wrapf(sdkerrors.ErrUnauthorized, "%s is a module account", msg.To) + return nil, errorsmod.Wrapf(sdkerrors.ErrUnauthorized, "%s is a module account", msg.To) } ctx := sdk.UnwrapSDKContext(goCtx) @@ -119,7 +120,7 @@ func (m msgServer) UpdateParams( msg *types.MsgUpdateParams, ) (*types.MsgUpdateParamsResponse, error) { if m.k.authority != msg.Authority { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( sdkerrors.ErrUnauthorized, "invalid authority; expected %s, got %s", m.k.authority, diff --git a/modules/htlc/keeper/params.go b/modules/htlc/keeper/params.go index 5e686147..42dde266 100644 --- a/modules/htlc/keeper/params.go +++ b/modules/htlc/keeper/params.go @@ -1,8 +1,8 @@ package keeper import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/irisnet/irismod/modules/htlc/types" ) @@ -52,7 +52,7 @@ func (k Keeper) GetAsset(ctx sdk.Context, denom string) (types.AssetParam, error return asset, nil } } - return types.AssetParam{}, sdkerrors.Wrap(types.ErrAssetNotSupported, denom) + return types.AssetParam{}, errorsmod.Wrap(types.ErrAssetNotSupported, denom) } // SetAsset sets an asset in the params @@ -138,7 +138,7 @@ func (k Keeper) ValidateLiveAsset(ctx sdk.Context, coin sdk.Coin) error { return err } if !asset.Active { - return sdkerrors.Wrap(types.ErrAssetNotActive, asset.Denom) + return errorsmod.Wrap(types.ErrAssetNotActive, asset.Denom) } return nil } diff --git a/modules/htlc/types/errors.go b/modules/htlc/types/errors.go index d496df59..af075381 100644 --- a/modules/htlc/types/errors.go +++ b/modules/htlc/types/errors.go @@ -1,33 +1,33 @@ package types import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" ) // HTLC module sentinel errors var ( - ErrInvalidID = sdkerrors.Register(ModuleName, 2, "invalid htlc id") - ErrInvalidHashLock = sdkerrors.Register(ModuleName, 3, "invalid hash lock") - ErrInvalidTimeLock = sdkerrors.Register(ModuleName, 4, "invalid time lock") - ErrInvalidSecret = sdkerrors.Register(ModuleName, 5, "invalid secret") - ErrInvalidExpirationHeight = sdkerrors.Register(ModuleName, 6, "invalid expiration height") - ErrInvalidTimestamp = sdkerrors.Register(ModuleName, 7, "invalid timestamp") - ErrInvalidState = sdkerrors.Register(ModuleName, 8, "invalid state") - ErrInvalidClosedBlock = sdkerrors.Register(ModuleName, 9, "invalid closed block") - ErrInvalidDirection = sdkerrors.Register(ModuleName, 10, "invalid direction") - ErrHTLCExists = sdkerrors.Register(ModuleName, 11, "htlc already exists") - ErrUnknownHTLC = sdkerrors.Register(ModuleName, 12, "unknown htlc") - ErrHTLCNotOpen = sdkerrors.Register(ModuleName, 13, "htlc not open") - ErrAssetNotSupported = sdkerrors.Register(ModuleName, 14, "asset not found") - ErrAssetNotActive = sdkerrors.Register(ModuleName, 15, "asset is currently inactive") - ErrInvalidAccount = sdkerrors.Register(ModuleName, 16, "invalid account") - ErrInvalidAmount = sdkerrors.Register(ModuleName, 17, "invalid amount") - ErrInsufficientAmount = sdkerrors.Register(ModuleName, 18, "amount cannot cover the deputy fixed fee") - ErrExceedsSupplyLimit = sdkerrors.Register(ModuleName, 19, "asset supply over limit") - ErrExceedsTimeBasedSupplyLimit = sdkerrors.Register(ModuleName, 20, "asset supply over limit for current time period") - ErrInvalidCurrentSupply = sdkerrors.Register(ModuleName, 21, "supply decrease puts current asset supply below 0") - ErrInvalidIncomingSupply = sdkerrors.Register(ModuleName, 22, "supply decrease puts incoming asset supply below 0") - ErrInvalidOutgoingSupply = sdkerrors.Register(ModuleName, 23, "supply decrease puts outgoing asset supply below 0") - ErrExceedsAvailableSupply = sdkerrors.Register(ModuleName, 24, "outgoing swap exceeds total available supply") - ErrAssetSupplyNotFound = sdkerrors.Register(ModuleName, 25, "asset supply not found in store") + ErrInvalidID = errorsmod.Register(ModuleName, 2, "invalid htlc id") + ErrInvalidHashLock = errorsmod.Register(ModuleName, 3, "invalid hash lock") + ErrInvalidTimeLock = errorsmod.Register(ModuleName, 4, "invalid time lock") + ErrInvalidSecret = errorsmod.Register(ModuleName, 5, "invalid secret") + ErrInvalidExpirationHeight = errorsmod.Register(ModuleName, 6, "invalid expiration height") + ErrInvalidTimestamp = errorsmod.Register(ModuleName, 7, "invalid timestamp") + ErrInvalidState = errorsmod.Register(ModuleName, 8, "invalid state") + ErrInvalidClosedBlock = errorsmod.Register(ModuleName, 9, "invalid closed block") + ErrInvalidDirection = errorsmod.Register(ModuleName, 10, "invalid direction") + ErrHTLCExists = errorsmod.Register(ModuleName, 11, "htlc already exists") + ErrUnknownHTLC = errorsmod.Register(ModuleName, 12, "unknown htlc") + ErrHTLCNotOpen = errorsmod.Register(ModuleName, 13, "htlc not open") + ErrAssetNotSupported = errorsmod.Register(ModuleName, 14, "asset not found") + ErrAssetNotActive = errorsmod.Register(ModuleName, 15, "asset is currently inactive") + ErrInvalidAccount = errorsmod.Register(ModuleName, 16, "invalid account") + ErrInvalidAmount = errorsmod.Register(ModuleName, 17, "invalid amount") + ErrInsufficientAmount = errorsmod.Register(ModuleName, 18, "amount cannot cover the deputy fixed fee") + ErrExceedsSupplyLimit = errorsmod.Register(ModuleName, 19, "asset supply over limit") + ErrExceedsTimeBasedSupplyLimit = errorsmod.Register(ModuleName, 20, "asset supply over limit for current time period") + ErrInvalidCurrentSupply = errorsmod.Register(ModuleName, 21, "supply decrease puts current asset supply below 0") + ErrInvalidIncomingSupply = errorsmod.Register(ModuleName, 22, "supply decrease puts incoming asset supply below 0") + ErrInvalidOutgoingSupply = errorsmod.Register(ModuleName, 23, "supply decrease puts outgoing asset supply below 0") + ErrExceedsAvailableSupply = errorsmod.Register(ModuleName, 24, "outgoing swap exceeds total available supply") + ErrAssetSupplyNotFound = errorsmod.Register(ModuleName, 25, "asset supply not found in store") ) diff --git a/modules/htlc/types/genesis.go b/modules/htlc/types/genesis.go index e659309f..23a462a5 100644 --- a/modules/htlc/types/genesis.go +++ b/modules/htlc/types/genesis.go @@ -4,7 +4,7 @@ import ( fmt "fmt" time "time" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" ) // NewGenesisState constructs a new GenesisState instance @@ -40,7 +40,7 @@ func ValidateGenesis(data GenesisState) error { } if htlc.State != Open { - return sdkerrors.Wrap(ErrHTLCNotOpen, htlc.Id) + return errorsmod.Wrap(ErrHTLCNotOpen, htlc.Id) } if err := htlc.Validate(); err != nil { diff --git a/modules/htlc/types/htlc.go b/modules/htlc/types/htlc.go index 2c3aca64..ac5129fd 100644 --- a/modules/htlc/types/htlc.go +++ b/modules/htlc/types/htlc.go @@ -7,6 +7,7 @@ import ( "github.com/cometbft/cometbft/crypto/tmhash" tmbytes "github.com/cometbft/cometbft/libs/bytes" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) @@ -55,10 +56,10 @@ func (h HTLC) Validate() error { return err } if _, err := sdk.AccAddressFromBech32(h.Sender); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) } if _, err := sdk.AccAddressFromBech32(h.To); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid recipient address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid recipient address (%s)", err) } if err := ValidateReceiverOnOtherChain(h.ReceiverOnOtherChain); err != nil { return err @@ -67,34 +68,34 @@ func (h HTLC) Validate() error { return err } if h.ExpirationHeight == 0 { - return sdkerrors.Wrapf(ErrInvalidExpirationHeight, "expire height cannot be 0") + return errorsmod.Wrapf(ErrInvalidExpirationHeight, "expire height cannot be 0") } if h.Timestamp == 0 { - return sdkerrors.Wrapf(ErrInvalidTimestamp, "timestamp cannot be 0") + return errorsmod.Wrapf(ErrInvalidTimestamp, "timestamp cannot be 0") } if err := ValidateAmount(h.Transfer, h.Amount); err != nil { return err } if h.State > Refunded { - return sdkerrors.Wrapf(ErrInvalidState, "invalid htlc status") + return errorsmod.Wrapf(ErrInvalidState, "invalid htlc status") } if h.State == Completed && h.ClosedBlock == 0 { - return sdkerrors.Wrapf(ErrInvalidClosedBlock, "closed block cannot be 0") + return errorsmod.Wrapf(ErrInvalidClosedBlock, "closed block cannot be 0") } if !h.Transfer && h.Direction != 0 { - return sdkerrors.Wrapf(ErrInvalidDirection, "invalid htlc direction") + return errorsmod.Wrapf(ErrInvalidDirection, "invalid htlc direction") } if h.Transfer && (h.Direction < Incoming || h.Direction > Outgoing) { - return sdkerrors.Wrapf(ErrInvalidDirection, "invalid htlt direction") + return errorsmod.Wrapf(ErrInvalidDirection, "invalid htlt direction") } if h.State != Completed && len(h.Secret) > 0 { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( ErrInvalidSecret, "secret must be empty when the HTLC has not be claimed", ) } if h.State == Completed && len(h.Secret) != SecretLength { - return sdkerrors.Wrapf(ErrInvalidSecret, "length of the secret must be %d", SecretLength) + return errorsmod.Wrapf(ErrInvalidSecret, "length of the secret must be %d", SecretLength) } return nil } @@ -124,16 +125,16 @@ func DefaultAssetSupplies() []AssetSupply { // Validate performs a basic validation of an asset supply fields. func (a AssetSupply) Validate() error { if !a.IncomingSupply.IsValid() { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidCoins, "incoming supply %s", a.IncomingSupply) + return errorsmod.Wrapf(sdkerrors.ErrInvalidCoins, "incoming supply %s", a.IncomingSupply) } if !a.OutgoingSupply.IsValid() { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidCoins, "outgoing supply %s", a.OutgoingSupply) + return errorsmod.Wrapf(sdkerrors.ErrInvalidCoins, "outgoing supply %s", a.OutgoingSupply) } if !a.CurrentSupply.IsValid() { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidCoins, "current supply %s", a.CurrentSupply) + return errorsmod.Wrapf(sdkerrors.ErrInvalidCoins, "current supply %s", a.CurrentSupply) } if !a.TimeLimitedCurrentSupply.IsValid() { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( sdkerrors.ErrInvalidCoins, "time-limited current supply %s", a.CurrentSupply, diff --git a/modules/htlc/types/msgs.go b/modules/htlc/types/msgs.go index 85706195..aa60ccb9 100644 --- a/modules/htlc/types/msgs.go +++ b/modules/htlc/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" ) @@ -56,11 +57,11 @@ func (msg MsgCreateHTLC) Type() string { return TypeMsgCreateHTLC } // ValidateBasic implements Msg func (msg MsgCreateHTLC) ValidateBasic() error { if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) } if _, err := sdk.AccAddressFromBech32(msg.To); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid recipient address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid recipient address (%s)", err) } if err := ValidateReceiverOnOtherChain(msg.ReceiverOnOtherChain); err != nil { @@ -121,7 +122,7 @@ func (msg MsgClaimHTLC) Type() string { return TypeMsgClaimHTLC } // ValidateBasic implements Msg. func (msg MsgClaimHTLC) ValidateBasic() error { if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) } if err := ValidateID(msg.Id); err != nil { @@ -159,7 +160,7 @@ func (m *MsgUpdateParams) GetSignBytes() []byte { // ValidateBasic executes sanity validation on the provided data func (m *MsgUpdateParams) ValidateBasic() error { if _, err := sdk.AccAddressFromBech32(m.Authority); err != nil { - return sdkerrors.Wrap(err, "invalid authority address") + return errorsmod.Wrap(err, "invalid authority address") } return m.Params.Validate() } diff --git a/modules/htlc/types/validation.go b/modules/htlc/types/validation.go index 05cd9795..96606d8a 100644 --- a/modules/htlc/types/validation.go +++ b/modules/htlc/types/validation.go @@ -3,6 +3,7 @@ package types import ( "encoding/hex" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) @@ -27,7 +28,7 @@ const ( // ValidateReceiverOnOtherChain verifies if the receiver on the other chain is legal func ValidateReceiverOnOtherChain(receiverOnOtherChain string) error { if len(receiverOnOtherChain) > MaxLengthForAddressOnOtherChain { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "length of the receiver on other chain must be between [0,%d]", MaxLengthForAddressOnOtherChain) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "length of the receiver on other chain must be between [0,%d]", MaxLengthForAddressOnOtherChain) } return nil } @@ -35,7 +36,7 @@ func ValidateReceiverOnOtherChain(receiverOnOtherChain string) error { // ValidateSenderOnOtherChain verifies if the receiver on the other chain is legal func ValidateSenderOnOtherChain(senderOnOtherChain string) error { if len(senderOnOtherChain) > MaxLengthForAddressOnOtherChain { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "length of the sender on other chain must be between [0,%d]", MaxLengthForAddressOnOtherChain) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "length of the sender on other chain must be between [0,%d]", MaxLengthForAddressOnOtherChain) } return nil } @@ -43,10 +44,10 @@ func ValidateSenderOnOtherChain(senderOnOtherChain string) error { // ValidateAmount verifies whether the given amount is legal func ValidateAmount(transfer bool, amount sdk.Coins) error { if transfer && len(amount) != 1 { - return sdkerrors.Wrapf(ErrInvalidAmount, "amount %s must contain exactly one coin", amount.String()) + return errorsmod.Wrapf(ErrInvalidAmount, "amount %s must contain exactly one coin", amount.String()) } if !(amount.IsValid() && amount.IsAllPositive()) { - return sdkerrors.Wrap(sdkerrors.ErrInvalidCoins, "the transferred amount must be valid") + return errorsmod.Wrap(sdkerrors.ErrInvalidCoins, "the transferred amount must be valid") } return nil } @@ -54,10 +55,10 @@ func ValidateAmount(transfer bool, amount sdk.Coins) error { // ValidateID verifies whether the given ID lock is legal func ValidateID(id string) error { if len(id) != HTLCIDLength { - return sdkerrors.Wrapf(ErrInvalidID, "length of the htlc id must be %d", HTLCIDLength) + return errorsmod.Wrapf(ErrInvalidID, "length of the htlc id must be %d", HTLCIDLength) } if _, err := hex.DecodeString(id); err != nil { - return sdkerrors.Wrapf(ErrInvalidID, "id must be a hex encoded string") + return errorsmod.Wrapf(ErrInvalidID, "id must be a hex encoded string") } return nil } @@ -65,10 +66,10 @@ func ValidateID(id string) error { // ValidateHashLock verifies whether the given hash lock is legal func ValidateHashLock(hashLock string) error { if len(hashLock) != HashLockLength { - return sdkerrors.Wrapf(ErrInvalidHashLock, "length of the hash lock must be %d", HashLockLength) + return errorsmod.Wrapf(ErrInvalidHashLock, "length of the hash lock must be %d", HashLockLength) } if _, err := hex.DecodeString(hashLock); err != nil { - return sdkerrors.Wrapf(ErrInvalidHashLock, "hash lock must be a hex encoded string") + return errorsmod.Wrapf(ErrInvalidHashLock, "hash lock must be a hex encoded string") } return nil } @@ -76,7 +77,7 @@ func ValidateHashLock(hashLock string) error { // ValidateTimeLock verifies whether the given time lock is legal func ValidateTimeLock(timeLock uint64) error { if timeLock < MinTimeLock || timeLock > MaxTimeLock { - return sdkerrors.Wrapf(ErrInvalidTimeLock, "the time lock must be between [%d,%d]", MinTimeLock, MaxTimeLock) + return errorsmod.Wrapf(ErrInvalidTimeLock, "the time lock must be between [%d,%d]", MinTimeLock, MaxTimeLock) } return nil } @@ -84,10 +85,10 @@ func ValidateTimeLock(timeLock uint64) error { // ValidateSecret verifies whether the given secret is legal func ValidateSecret(secret string) error { if len(secret) != SecretLength { - return sdkerrors.Wrapf(ErrInvalidSecret, "length of the secret must be %d", SecretLength) + return errorsmod.Wrapf(ErrInvalidSecret, "length of the secret must be %d", SecretLength) } if _, err := hex.DecodeString(secret); err != nil { - return sdkerrors.Wrapf(ErrInvalidSecret, "secret must be a hex encoded string") + return errorsmod.Wrapf(ErrInvalidSecret, "secret must be a hex encoded string") } return nil } diff --git a/modules/mt/client/cli/query.go b/modules/mt/client/cli/query.go index f6097ea4..ae4c2a70 100644 --- a/modules/mt/client/cli/query.go +++ b/modules/mt/client/cli/query.go @@ -3,6 +3,7 @@ package cli import ( "context" "fmt" + "github.com/spf13/cobra" "github.com/cosmos/cosmos-sdk/client" diff --git a/modules/mt/client/testutil/grpc_query_test.go b/modules/mt/client/testutil/grpc_query_test.go index 9ebb3ddd..35bcf3f2 100644 --- a/modules/mt/client/testutil/grpc_query_test.go +++ b/modules/mt/client/testutil/grpc_query_test.go @@ -8,12 +8,14 @@ import ( "github.com/cosmos/cosmos-sdk/testutil" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/gogoproto/proto" + mtcli "github.com/irisnet/irismod/modules/mt/client/cli" mttestutil "github.com/irisnet/irismod/modules/mt/client/testutil" mttypes "github.com/irisnet/irismod/modules/mt/types" - "github.com/irisnet/irismod/simapp" "github.com/stretchr/testify/suite" + + "github.com/irisnet/irismod/simapp" ) type IntegrationTestSuite struct { diff --git a/modules/mt/genesis.go b/modules/mt/genesis.go index d23d083f..c452b658 100644 --- a/modules/mt/genesis.go +++ b/modules/mt/genesis.go @@ -1,8 +1,10 @@ package mt import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/irisnet/irismod/modules/mt/keeper" "github.com/irisnet/irismod/modules/mt/types" ) @@ -40,7 +42,7 @@ func InitGenesis(ctx sdk.Context, k keeper.Keeper, data types.GenesisState) { for _, o := range data.Owners { addr, err := sdk.AccAddressFromBech32(o.Address) if err != nil { - panic(sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid owner address (%s)", addr)) + panic(errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid owner address (%s)", addr)) } for _, d := range o.Denoms { diff --git a/modules/mt/handler.go b/modules/mt/handler.go index 8004b309..1c9e78e4 100644 --- a/modules/mt/handler.go +++ b/modules/mt/handler.go @@ -1,6 +1,7 @@ package mt import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -41,7 +42,7 @@ func NewHandler(k keeper.Keeper) sdk.Handler { return sdk.WrapServiceResult(ctx, res, err) default: - return nil, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized mt message type: %T", msg) + return nil, errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized mt message type: %T", msg) } } } diff --git a/modules/mt/keeper/balance.go b/modules/mt/keeper/balance.go index 237c1916..ec560dc7 100644 --- a/modules/mt/keeper/balance.go +++ b/modules/mt/keeper/balance.go @@ -4,8 +4,10 @@ import ( "bytes" "math" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/irisnet/irismod/modules/mt/types" ) @@ -17,7 +19,7 @@ func (k Keeper) AddBalance(ctx sdk.Context, balance := k.GetBalance(ctx, denomID, mtID, addr) if math.MaxUint64-balance < amount { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "overflow: max %d, got %d", math.MaxUint64-balance, amount) + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "overflow: max %d, got %d", math.MaxUint64-balance, amount) } balance += amount @@ -151,7 +153,7 @@ func (k Keeper) IncreaseDenomSupply(ctx sdk.Context, denomID string) { func (k Keeper) IncreaseMTSupply(ctx sdk.Context, denomID, mtID string, amount uint64) error { supply := k.GetMTSupply(ctx, denomID, mtID) if math.MaxUint64-supply < amount { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "overflow: max %d, got %d", math.MaxUint64-supply, amount) + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "overflow: max %d, got %d", math.MaxUint64-supply, amount) } supply += amount diff --git a/modules/mt/keeper/denom.go b/modules/mt/keeper/denom.go index 93302af3..2b4711a0 100644 --- a/modules/mt/keeper/denom.go +++ b/modules/mt/keeper/denom.go @@ -3,6 +3,8 @@ package keeper import ( "crypto/sha256" "fmt" + + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -63,7 +65,7 @@ func (k Keeper) GetDenoms(ctx sdk.Context) (denoms []types.Denom) { // UpdateDenom is responsible for updating the definition of denom func (k Keeper) UpdateDenom(ctx sdk.Context, denom types.Denom) error { if !k.HasDenom(ctx, denom.Id) { - return sdkerrors.Wrapf(sdkerrors.ErrNotFound, "denom not found (%s)", denom.Id) + return errorsmod.Wrapf(sdkerrors.ErrNotFound, "denom not found (%s)", denom.Id) } store := ctx.KVStore(k.storeKey) diff --git a/modules/mt/keeper/grpc_query.go b/modules/mt/keeper/grpc_query.go index 589a74d9..50a3aefc 100644 --- a/modules/mt/keeper/grpc_query.go +++ b/modules/mt/keeper/grpc_query.go @@ -2,13 +2,15 @@ package keeper import ( "context" + "strings" + "github.com/cosmos/cosmos-sdk/store/prefix" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/query" - "github.com/irisnet/irismod/modules/mt/types" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" - "strings" + + "github.com/irisnet/irismod/modules/mt/types" ) var _ types.QueryServer = Keeper{} diff --git a/modules/mt/keeper/keeper.go b/modules/mt/keeper/keeper.go index 8255b8cb..5d24b1bb 100644 --- a/modules/mt/keeper/keeper.go +++ b/modules/mt/keeper/keeper.go @@ -5,6 +5,7 @@ import ( "github.com/cometbft/cometbft/libs/log" + errorsmod "cosmossdk.io/errors" "github.com/cosmos/cosmos-sdk/codec" storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" @@ -121,7 +122,7 @@ func (k Keeper) TransferOwner(ctx sdk.Context, srcOwnerAmount := k.GetBalance(ctx, denomID, mtID, srcOwner) if srcOwnerAmount < amount { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( sdkerrors.ErrInsufficientFunds, "insufficient balance: %d", srcOwnerAmount, @@ -139,7 +140,7 @@ func (k Keeper) BurnMT(ctx sdk.Context, srcOwnerAmount := k.GetBalance(ctx, denomID, mtID, owner) if srcOwnerAmount < amount { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( sdkerrors.ErrInsufficientFunds, "insufficient balance: %d", srcOwnerAmount, diff --git a/modules/mt/keeper/msg_server.go b/modules/mt/keeper/msg_server.go index 4c2bd8a1..d0964bbb 100644 --- a/modules/mt/keeper/msg_server.go +++ b/modules/mt/keeper/msg_server.go @@ -5,8 +5,10 @@ import ( "strconv" "strings" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/irisnet/irismod/modules/mt/types" ) @@ -81,7 +83,7 @@ func (m msgServer) MintMT( // if user inputs an MT ID, then mint amounts to the MT, else issue a new MT if len(mtID) > 0 { if !m.Keeper.HasMT(ctx, msg.DenomId, mtID) { - return nil, sdkerrors.Wrapf(sdkerrors.ErrNotFound, "mt not found (%s)", mtID) + return nil, errorsmod.Wrapf(sdkerrors.ErrNotFound, "mt not found (%s)", mtID) } if err := m.Keeper.MintMT(ctx, msg.DenomId, mtID, msg.Amount, recipient); err != nil { diff --git a/modules/mt/keeper/mt.go b/modules/mt/keeper/mt.go index 30076e51..fc4efd60 100644 --- a/modules/mt/keeper/mt.go +++ b/modules/mt/keeper/mt.go @@ -3,6 +3,8 @@ package keeper import ( "crypto/sha256" "fmt" + + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -27,7 +29,7 @@ func (k Keeper) GetMT(ctx sdk.Context, denomID, mtID string) (mt exported.MT, er bz := store.Get(types.KeyMT(denomID, mtID)) if bz == nil { - return nil, sdkerrors.Wrapf(sdkerrors.ErrNotFound, "mt not found (%s)", mtID) + return nil, errorsmod.Wrapf(sdkerrors.ErrNotFound, "mt not found (%s)", mtID) } var baseMT types.MT @@ -61,11 +63,11 @@ func (k Keeper) GetMTs(ctx sdk.Context, denomID string) (mts []exported.MT) { func (k Keeper) Authorize(ctx sdk.Context, denomID string, owner sdk.AccAddress) error { denom, found := k.GetDenom(ctx, denomID) if !found { - return sdkerrors.Wrapf(sdkerrors.ErrNotFound, "denom not found (%s)", denomID) + return errorsmod.Wrapf(sdkerrors.ErrNotFound, "denom not found (%s)", denomID) } if owner.String() != denom.Owner { - return sdkerrors.Wrap(sdkerrors.ErrUnauthorized, owner.String()) + return errorsmod.Wrap(sdkerrors.ErrUnauthorized, owner.String()) } return nil diff --git a/modules/mt/simulation/genesis.go b/modules/mt/simulation/genesis.go index c6e1523c..e00be94a 100644 --- a/modules/mt/simulation/genesis.go +++ b/modules/mt/simulation/genesis.go @@ -3,10 +3,12 @@ package simulation import ( "encoding/json" "fmt" + "math/rand" + "github.com/cosmos/cosmos-sdk/types/module" simtypes "github.com/cosmos/cosmos-sdk/types/simulation" + mt "github.com/irisnet/irismod/modules/mt/types" - "math/rand" ) const ( diff --git a/modules/mt/simulation/operations.go b/modules/mt/simulation/operations.go index f31f7a5c..5170db71 100644 --- a/modules/mt/simulation/operations.go +++ b/modules/mt/simulation/operations.go @@ -10,6 +10,7 @@ import ( moduletestutil "github.com/cosmos/cosmos-sdk/types/module/testutil" simtypes "github.com/cosmos/cosmos-sdk/types/simulation" "github.com/cosmos/cosmos-sdk/x/simulation" + "github.com/irisnet/irismod/modules/mt/keeper" mt "github.com/irisnet/irismod/modules/mt/types" ) diff --git a/modules/mt/types/genesis.go b/modules/mt/types/genesis.go index e00edb07..4cd5a86e 100644 --- a/modules/mt/types/genesis.go +++ b/modules/mt/types/genesis.go @@ -1,7 +1,8 @@ package types import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" + "github.com/irisnet/irismod/modules/mt/exported" ) @@ -45,7 +46,7 @@ func ValidateGenesis(data GenesisState) error { denomMap2[d.DenomId] = true if _, ok := denomMap1[d.DenomId]; !ok { - return sdkerrors.Wrapf(sdkerrors.ErrPanic, "unknown mt denom, (%s)", d.DenomId) + return errorsmod.Wrapf(errorsmod.ErrPanic, "unknown mt denom, (%s)", d.DenomId) } for _, b := range d.Balances { mtMap2[d.DenomId+b.MtId] = mtMap2[d.DenomId+b.MtId] + b.Amount @@ -57,13 +58,13 @@ func ValidateGenesis(data GenesisState) error { mtCount2 := len(mtMap2) if mtCount1 != mtCount2 { - return sdkerrors.Wrapf(sdkerrors.ErrPanic, "mt count mismatch, (%d, %d)", mtCount1, mtCount2) + return errorsmod.Wrapf(errorsmod.ErrPanic, "mt count mismatch, (%d, %d)", mtCount1, mtCount2) } for id1, supply1 := range mtMap1 { supply2 := mtMap2[id1] if supply1 != supply2 { - return sdkerrors.Wrapf(sdkerrors.ErrPanic, "mt supply mismatch, id: %s (%d, %d)", id1, supply1, mtCount2) + return errorsmod.Wrapf(errorsmod.ErrPanic, "mt supply mismatch, id: %s (%d, %d)", id1, supply1, mtCount2) } } diff --git a/modules/mt/types/msgs.go b/modules/mt/types/msgs.go index ee59bec3..2ff8d7ab 100644 --- a/modules/mt/types/msgs.go +++ b/modules/mt/types/msgs.go @@ -1,9 +1,11 @@ package types import ( + "strings" + + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - "strings" ) // constant used to indicate that some field should not be updated @@ -46,11 +48,11 @@ func (msg MsgIssueDenom) Type() string { return TypeMsgIssueDenom } func (msg MsgIssueDenom) ValidateBasic() error { if len(strings.TrimSpace(msg.Name)) <= 0 { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "name is required") + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "name is required") } if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) } return nil } @@ -92,23 +94,23 @@ func (msg MsgTransferMT) Type() string { return TypeMsgTransferMT } // ValidateBasic Implements Msg. func (msg MsgTransferMT) ValidateBasic() error { if len(strings.TrimSpace(msg.Id)) <= 0 { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "mt id is required") + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "mt id is required") } if len(strings.TrimSpace(msg.DenomId)) <= 0 { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "denom id is required") + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "denom id is required") } if msg.Amount <= 0 { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "amount is required") + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "amount is required") } if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) } if _, err := sdk.AccAddressFromBech32(msg.Recipient); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid recipient address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid recipient address (%s)", err) } return nil } @@ -149,15 +151,15 @@ func (msg MsgEditMT) Type() string { return TypeMsgEditMT } // ValidateBasic Implements Msg. func (msg MsgEditMT) ValidateBasic() error { if len(strings.TrimSpace(msg.Id)) <= 0 { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "mt id is required") + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "mt id is required") } if len(strings.TrimSpace(msg.DenomId)) <= 0 { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "denom id is required") + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "denom id is required") } if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) } return nil @@ -202,24 +204,24 @@ func (msg MsgMintMT) Type() string { return TypeMsgMintMT } func (msg MsgMintMT) ValidateBasic() error { if len(strings.TrimSpace(msg.DenomId)) <= 0 { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "denom id is required") + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "denom id is required") } if msg.Amount <= 0 { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "amount is required") + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "amount is required") } if len(strings.TrimSpace(msg.Id)) > 0 && len(msg.Data) > 0 { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "metadata can not be accepted while minting, use 'edit mt' instead") + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "metadata can not be accepted while minting, use 'edit mt' instead") } if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) } if len(strings.TrimSpace(msg.Recipient)) > 0 { if _, err := sdk.AccAddressFromBech32(msg.Recipient); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid receipt address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid receipt address (%s)", err) } } @@ -260,19 +262,19 @@ func (msg MsgBurnMT) Type() string { return TypeMsgBurnMT } // ValidateBasic Implements Msg. func (msg MsgBurnMT) ValidateBasic() error { if len(strings.TrimSpace(msg.Id)) <= 0 { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "mt id is required") + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "mt id is required") } if len(strings.TrimSpace(msg.DenomId)) <= 0 { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "denom id is required") + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "denom id is required") } if msg.Amount <= 0 { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "amount is required") + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "amount is required") } if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) } return nil @@ -311,15 +313,15 @@ func (msg MsgTransferDenom) Type() string { return TypeMsgTransferDenom } // ValidateBasic Implements Msg. func (msg MsgTransferDenom) ValidateBasic() error { if len(strings.TrimSpace(msg.Id)) <= 0 { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "denom id is required") + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "denom id is required") } if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) } if _, err := sdk.AccAddressFromBech32(msg.Recipient); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid recipient address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid recipient address (%s)", err) } return nil diff --git a/modules/nft/keeper/denom.go b/modules/nft/keeper/denom.go index cf9987c0..4f695321 100644 --- a/modules/nft/keeper/denom.go +++ b/modules/nft/keeper/denom.go @@ -1,6 +1,7 @@ package keeper import ( + errorsmod "cosmossdk.io/errors" codectypes "github.com/cosmos/cosmos-sdk/codec/types" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -58,7 +59,7 @@ func (k Keeper) TransferDenomOwner( // authorize if srcOwner.String() != denom.Creator { - return sdkerrors.Wrapf(sdkerrors.ErrUnauthorized, "%s is not allowed to transfer denom %s", srcOwner.String(), denomID) + return errorsmod.Wrapf(sdkerrors.ErrUnauthorized, "%s is not allowed to transfer denom %s", srcOwner.String(), denomID) } denomMetadata := &types.DenomMetadata{ @@ -90,7 +91,7 @@ func (k Keeper) TransferDenomOwner( func (k Keeper) GetDenomInfo(ctx sdk.Context, denomID string) (*types.Denom, error) { class, has := k.nk.GetClass(ctx, denomID) if !has { - return nil, sdkerrors.Wrapf(types.ErrInvalidDenom, "denom ID %s not exists", denomID) + return nil, errorsmod.Wrapf(types.ErrInvalidDenom, "denom ID %s not exists", denomID) } var denomMetadata types.DenomMetadata diff --git a/modules/nft/keeper/grpc_query.go b/modules/nft/keeper/grpc_query.go index 2d42c7e0..ff17e9e6 100644 --- a/modules/nft/keeper/grpc_query.go +++ b/modules/nft/keeper/grpc_query.go @@ -6,8 +6,8 @@ import ( "google.golang.org/grpc/codes" "google.golang.org/grpc/status" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/cosmos/cosmos-sdk/x/nft" "github.com/irisnet/irismod/modules/nft/types" @@ -167,12 +167,12 @@ func (k Keeper) NFT(c context.Context, request *types.QueryNFTRequest) (*types.Q nft, err := k.GetNFT(ctx, request.DenomId, request.TokenId) if err != nil { - return nil, sdkerrors.Wrapf(types.ErrUnknownNFT, "invalid NFT %s from collection %s", request.TokenId, request.DenomId) + return nil, errorsmod.Wrapf(types.ErrUnknownNFT, "invalid NFT %s from collection %s", request.TokenId, request.DenomId) } baseNFT, ok := nft.(types.BaseNFT) if !ok { - return nil, sdkerrors.Wrapf(types.ErrUnknownNFT, "invalid type NFT %s from collection %s", request.TokenId, request.DenomId) + return nil, errorsmod.Wrapf(types.ErrUnknownNFT, "invalid type NFT %s from collection %s", request.TokenId, request.DenomId) } return &types.QueryNFTResponse{NFT: &baseNFT}, nil diff --git a/modules/nft/keeper/invariants.go b/modules/nft/keeper/invariants.go index d63243b6..45cc74d4 100644 --- a/modules/nft/keeper/invariants.go +++ b/modules/nft/keeper/invariants.go @@ -6,6 +6,7 @@ import ( "fmt" sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/irisnet/irismod/modules/nft/types" ) diff --git a/modules/nft/keeper/msg_server.go b/modules/nft/keeper/msg_server.go index 8756af9b..6b5cd34b 100644 --- a/modules/nft/keeper/msg_server.go +++ b/modules/nft/keeper/msg_server.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" @@ -71,7 +72,7 @@ func (k Keeper) MintNFT( } if denom.MintRestricted && denom.Creator != sender.String() { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( sdkerrors.ErrUnauthorized, "%s is not allowed to mint NFT of denom %s", sender, diff --git a/modules/nft/keeper/nft.go b/modules/nft/keeper/nft.go index bfae6551..c8cd23bc 100644 --- a/modules/nft/keeper/nft.go +++ b/modules/nft/keeper/nft.go @@ -1,6 +1,7 @@ package keeper import ( + errorsmod "cosmossdk.io/errors" codectypes "github.com/cosmos/cosmos-sdk/codec/types" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -52,7 +53,7 @@ func (k Keeper) UpdateNFT(ctx sdk.Context, denomID, if denom.UpdateRestricted { // if true , nobody can update the NFT under this denom - return sdkerrors.Wrapf(sdkerrors.ErrUnauthorized, "nobody can update the NFT under this denom %s", denomID) + return errorsmod.Wrapf(sdkerrors.ErrUnauthorized, "nobody can update the NFT under this denom %s", denomID) } // just the owner of NFT can edit @@ -69,7 +70,7 @@ func (k Keeper) UpdateNFT(ctx sdk.Context, denomID, token, exist := k.nk.GetNFT(ctx, denomID, tokenID) if !exist { - return sdkerrors.Wrapf(types.ErrUnknownNFT, "nft ID %s not exists", tokenID) + return errorsmod.Wrapf(types.ErrUnknownNFT, "nft ID %s not exists", tokenID) } token.Uri = types.Modify(token.Uri, tokenURI) @@ -103,7 +104,7 @@ func (k Keeper) TransferOwnership(ctx sdk.Context, denomID, ) error { token, exist := k.nk.GetNFT(ctx, denomID, tokenID) if !exist { - return sdkerrors.Wrapf(types.ErrInvalidTokenID, "nft ID %s not exists", tokenID) + return errorsmod.Wrapf(types.ErrInvalidTokenID, "nft ID %s not exists", tokenID) } if err := k.Authorize(ctx, denomID, tokenID, srcOwner); err != nil { @@ -119,7 +120,7 @@ func (k Keeper) TransferOwnership(ctx sdk.Context, denomID, tokenMetadataChanged := types.Modified(tokenNm) || types.Modified(tokenData) if denom.UpdateRestricted && (tokenChanged || tokenMetadataChanged) { - return sdkerrors.Wrapf(sdkerrors.ErrUnauthorized, "It is restricted to update NFT under this denom %s", denom.Id) + return errorsmod.Wrapf(sdkerrors.ErrUnauthorized, "It is restricted to update NFT under this denom %s", denom.Id) } if !tokenChanged && !tokenMetadataChanged { @@ -161,7 +162,7 @@ func (k Keeper) RemoveNFT(ctx sdk.Context, denomID, tokenID string, owner sdk.Ac func (k Keeper) GetNFT(ctx sdk.Context, denomID, tokenID string) (nft exported.NFT, err error) { token, exist := k.nk.GetNFT(ctx, denomID, tokenID) if !exist { - return nil, sdkerrors.Wrapf(types.ErrUnknownNFT, "not found NFT: %s", denomID) + return nil, errorsmod.Wrapf(types.ErrUnknownNFT, "not found NFT: %s", denomID) } nftMetadata, err := types.UnmarshalNFTMetadata(k.cdc, token.Data.GetValue()) @@ -204,7 +205,7 @@ func (k Keeper) GetNFTs(ctx sdk.Context, denom string) (nfts []exported.NFT, err // Return the NFT if true, an error otherwise func (k Keeper) Authorize(ctx sdk.Context, denomID, tokenID string, owner sdk.AccAddress) error { if !owner.Equals(k.nk.GetOwner(ctx, denomID, tokenID)) { - return sdkerrors.Wrap(types.ErrUnauthorized, owner.String()) + return errorsmod.Wrap(types.ErrUnauthorized, owner.String()) } return nil } diff --git a/modules/nft/keeper/pagination_test.go b/modules/nft/keeper/pagination_test.go index 5558257c..b1d6d880 100644 --- a/modules/nft/keeper/pagination_test.go +++ b/modules/nft/keeper/pagination_test.go @@ -1,9 +1,10 @@ package keeper import ( + "testing" + "github.com/cosmos/cosmos-sdk/types/query" "github.com/stretchr/testify/require" - "testing" ) var ShapePageRequest = shapePageRequest diff --git a/modules/nft/types/genesis.go b/modules/nft/types/genesis.go index d24a46c8..24f8c740 100644 --- a/modules/nft/types/genesis.go +++ b/modules/nft/types/genesis.go @@ -1,6 +1,7 @@ package types import ( + errorsmod "cosmossdk.io/errors" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) @@ -26,7 +27,7 @@ func ValidateGenesis(data GenesisState) error { for _, nft := range c.NFTs { if nft.GetOwner().Empty() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "missing owner") + return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, "missing owner") } if err := ValidateTokenID(nft.GetID()); err != nil { diff --git a/modules/nft/types/msgs.go b/modules/nft/types/msgs.go index 9d038e1d..b7119252 100644 --- a/modules/nft/types/msgs.go +++ b/modules/nft/types/msgs.go @@ -227,7 +227,7 @@ func (msg MsgMintNFT) ValidateBasic() error { if _, err := sdk.AccAddressFromBech32(msg.Recipient); err != nil { return errormod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid receipt address (%s)", err) } - if IsIBCDenom(msg.DenomId){ + if IsIBCDenom(msg.DenomId) { return errormod.Wrapf(sdkerrors.ErrInvalidRequest, "can not mint nft in denom (%s)", msg.DenomId) } if err := ValidateDenomID(msg.DenomId); err != nil { diff --git a/modules/oracle/handler.go b/modules/oracle/handler.go index f93b43ed..09433353 100644 --- a/modules/oracle/handler.go +++ b/modules/oracle/handler.go @@ -1,6 +1,7 @@ package oracle import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -33,7 +34,7 @@ func NewHandler(k keeper.Keeper) sdk.Handler { return sdk.WrapServiceResult(ctx, res, err) default: - return nil, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized %s message type: %T", types.ModuleName, msg) + return nil, errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized %s message type: %T", types.ModuleName, msg) } } } diff --git a/modules/oracle/keeper/ante.go b/modules/oracle/keeper/ante.go index 845b163e..4d6d734f 100644 --- a/modules/oracle/keeper/ante.go +++ b/modules/oracle/keeper/ante.go @@ -1,6 +1,7 @@ package keeper import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -26,11 +27,11 @@ func (dtf ValidateOracleAuthDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, si case *types.MsgCreateFeed: creator, err := sdk.AccAddressFromBech32(msg.Creator) if err != nil { - return ctx, sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "invalid creator") + return ctx, errorsmod.Wrap(sdkerrors.ErrInvalidAddress, "invalid creator") } if !dtf.ak.Authorized(ctx, creator) { - return ctx, sdkerrors.Wrapf(types.ErrUnauthorized, msg.Creator) + return ctx, errorsmod.Wrapf(types.ErrUnauthorized, msg.Creator) } } } diff --git a/modules/oracle/keeper/keeper.go b/modules/oracle/keeper/keeper.go index 340affe2..b3799bdc 100644 --- a/modules/oracle/keeper/keeper.go +++ b/modules/oracle/keeper/keeper.go @@ -10,10 +10,10 @@ import ( tmbytes "github.com/cometbft/cometbft/libs/bytes" + errorsmod "cosmossdk.io/errors" "github.com/cosmos/cosmos-sdk/codec" storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/irisnet/irismod/modules/oracle/types" serviceexported "github.com/irisnet/irismod/modules/service/exported" @@ -55,7 +55,7 @@ func NewKeeper( // CreateFeed creates a stopped feed func (k Keeper) CreateFeed(ctx sdk.Context, msg *types.MsgCreateFeed) error { if _, found := k.GetFeed(ctx, msg.FeedName); found { - return sdkerrors.Wrapf(types.ErrExistedFeedName, msg.FeedName) + return errorsmod.Wrapf(types.ErrExistedFeedName, msg.FeedName) } providers := make([]sdk.AccAddress, len(msg.Providers)) @@ -102,24 +102,24 @@ func (k Keeper) CreateFeed(ctx sdk.Context, msg *types.MsgCreateFeed) error { func (k Keeper) StartFeed(ctx sdk.Context, msg *types.MsgStartFeed) error { feed, found := k.GetFeed(ctx, msg.FeedName) if !found { - return sdkerrors.Wrapf(types.ErrUnknownFeedName, msg.FeedName) + return errorsmod.Wrapf(types.ErrUnknownFeedName, msg.FeedName) } requestContextID, _ := hex.DecodeString(feed.RequestContextID) creator, _ := sdk.AccAddressFromBech32(msg.Creator) if msg.Creator != feed.Creator { - return sdkerrors.Wrapf(types.ErrUnauthorized, msg.Creator) + return errorsmod.Wrapf(types.ErrUnauthorized, msg.Creator) } reqCtx, existed := k.sk.GetRequestContext(ctx, requestContextID) if !existed { - return sdkerrors.Wrapf(types.ErrUnknownFeedName, msg.FeedName) + return errorsmod.Wrapf(types.ErrUnknownFeedName, msg.FeedName) } // Can not start feed in "running" state if reqCtx.State == serviceexported.RUNNING { - return sdkerrors.Wrapf(types.ErrInvalidFeedState, msg.FeedName) + return errorsmod.Wrapf(types.ErrInvalidFeedState, msg.FeedName) } if err := k.sk.StartRequestContext(ctx, requestContextID, creator); err != nil { @@ -134,24 +134,24 @@ func (k Keeper) StartFeed(ctx sdk.Context, msg *types.MsgStartFeed) error { func (k Keeper) PauseFeed(ctx sdk.Context, msg *types.MsgPauseFeed) error { feed, found := k.GetFeed(ctx, msg.FeedName) if !found { - return sdkerrors.Wrapf(types.ErrUnknownFeedName, msg.FeedName) + return errorsmod.Wrapf(types.ErrUnknownFeedName, msg.FeedName) } requestContextID, _ := hex.DecodeString(feed.RequestContextID) creator, _ := sdk.AccAddressFromBech32(msg.Creator) if msg.Creator != feed.Creator { - return sdkerrors.Wrapf(types.ErrUnauthorized, msg.Creator) + return errorsmod.Wrapf(types.ErrUnauthorized, msg.Creator) } reqCtx, existed := k.sk.GetRequestContext(ctx, requestContextID) if !existed { - return sdkerrors.Wrapf(types.ErrUnknownFeedName, msg.FeedName) + return errorsmod.Wrapf(types.ErrUnknownFeedName, msg.FeedName) } // Can only pause feed in "running" state if reqCtx.State != serviceexported.RUNNING { - return sdkerrors.Wrapf(types.ErrInvalidFeedState, msg.FeedName) + return errorsmod.Wrapf(types.ErrInvalidFeedState, msg.FeedName) } if err := k.sk.PauseRequestContext(ctx, requestContextID, creator); err != nil { @@ -166,11 +166,11 @@ func (k Keeper) PauseFeed(ctx sdk.Context, msg *types.MsgPauseFeed) error { func (k Keeper) EditFeed(ctx sdk.Context, msg *types.MsgEditFeed) error { feed, found := k.GetFeed(ctx, msg.FeedName) if !found { - return sdkerrors.Wrapf(types.ErrUnknownFeedName, msg.FeedName) + return errorsmod.Wrapf(types.ErrUnknownFeedName, msg.FeedName) } if msg.Creator != feed.Creator { - return sdkerrors.Wrapf(types.ErrUnauthorized, msg.Creator) + return errorsmod.Wrapf(types.ErrUnauthorized, msg.Creator) } requestContextID, _ := hex.DecodeString(feed.RequestContextID) diff --git a/modules/oracle/keeper/pagination_test.go b/modules/oracle/keeper/pagination_test.go index 5558257c..b1d6d880 100644 --- a/modules/oracle/keeper/pagination_test.go +++ b/modules/oracle/keeper/pagination_test.go @@ -1,9 +1,10 @@ package keeper import ( + "testing" + "github.com/cosmos/cosmos-sdk/types/query" "github.com/stretchr/testify/require" - "testing" ) var ShapePageRequest = shapePageRequest diff --git a/modules/oracle/types/aggregate.go b/modules/oracle/types/aggregate.go index 2c2374f0..35f01f35 100644 --- a/modules/oracle/types/aggregate.go +++ b/modules/oracle/types/aggregate.go @@ -7,7 +7,7 @@ import ( "github.com/tidwall/gjson" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" ) var ( @@ -28,7 +28,7 @@ func init() { func GetAggregateFunc(methodNm string) (Aggregate, error) { fun, ok := router[methodNm] if !ok { - return nil, sdkerrors.Wrapf(ErrNotRegisterFunc, methodNm) + return nil, errorsmod.Wrapf(ErrNotRegisterFunc, methodNm) } return fun, nil } diff --git a/modules/oracle/types/errors.go b/modules/oracle/types/errors.go index 8a9b4d82..f7ec2aaf 100644 --- a/modules/oracle/types/errors.go +++ b/modules/oracle/types/errors.go @@ -1,18 +1,18 @@ package types import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" ) // oracle module sentinel errors var ( - ErrUnknownFeedName = sdkerrors.Register(ModuleName, 2, "unknown feed") - ErrInvalidFeedName = sdkerrors.Register(ModuleName, 3, "invalid feed name") - ErrExistedFeedName = sdkerrors.Register(ModuleName, 4, "feed already exists") - ErrUnauthorized = sdkerrors.Register(ModuleName, 5, "unauthorized owner") - ErrInvalidServiceName = sdkerrors.Register(ModuleName, 6, "invalid service name") - ErrInvalidDescription = sdkerrors.Register(ModuleName, 7, "invalid description") - ErrNotRegisterFunc = sdkerrors.Register(ModuleName, 8, "method don't register") - ErrInvalidFeedState = sdkerrors.Register(ModuleName, 9, "invalid state feed") - ErrInvalidServiceFeeCap = sdkerrors.Register(ModuleName, 10, "service fee cap is invalid") + ErrUnknownFeedName = errorsmod.Register(ModuleName, 2, "unknown feed") + ErrInvalidFeedName = errorsmod.Register(ModuleName, 3, "invalid feed name") + ErrExistedFeedName = errorsmod.Register(ModuleName, 4, "feed already exists") + ErrUnauthorized = errorsmod.Register(ModuleName, 5, "unauthorized owner") + ErrInvalidServiceName = errorsmod.Register(ModuleName, 6, "invalid service name") + ErrInvalidDescription = errorsmod.Register(ModuleName, 7, "invalid description") + ErrNotRegisterFunc = errorsmod.Register(ModuleName, 8, "method don't register") + ErrInvalidFeedState = errorsmod.Register(ModuleName, 9, "invalid state feed") + ErrInvalidServiceFeeCap = errorsmod.Register(ModuleName, 10, "service fee cap is invalid") ) diff --git a/modules/oracle/types/msgs.go b/modules/oracle/types/msgs.go index 7b39bb78..f9891ded 100644 --- a/modules/oracle/types/msgs.go +++ b/modules/oracle/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" ) @@ -55,7 +56,7 @@ func (msg MsgCreateFeed) ValidateBasic() error { return err } if len(msg.Providers) == 0 { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "providers missing") + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "providers missing") } if err := ValidateAggregateFunc(msg.AggregateFunc); err != nil { @@ -63,7 +64,7 @@ func (msg MsgCreateFeed) ValidateBasic() error { } if !msg.ServiceFeeCap.IsValid() { - return sdkerrors.Wrapf(ErrInvalidServiceFeeCap, msg.ServiceFeeCap.String()) + return errorsmod.Wrapf(ErrInvalidServiceFeeCap, msg.ServiceFeeCap.String()) } if err := ValidateCreator(msg.Creator); err != nil { diff --git a/modules/oracle/types/validation.go b/modules/oracle/types/validation.go index eb605694..3c87a44c 100644 --- a/modules/oracle/types/validation.go +++ b/modules/oracle/types/validation.go @@ -3,6 +3,7 @@ package types import ( "regexp" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -26,7 +27,7 @@ var ( // ValidateFeedName verifies if the feed name is legal func ValidateFeedName(feedName string) error { if !regexpFeedName.MatchString(feedName) { - return sdkerrors.Wrap(ErrInvalidFeedName, feedName) + return errorsmod.Wrap(ErrInvalidFeedName, feedName) } return nil } @@ -34,7 +35,7 @@ func ValidateFeedName(feedName string) error { // ValidateDescription verifies if the description is legal func ValidateDescription(desc string) error { if len(desc) > MaxDescriptionLen { - return sdkerrors.Wrap(ErrInvalidDescription, desc) + return errorsmod.Wrap(ErrInvalidDescription, desc) } return nil } @@ -42,7 +43,7 @@ func ValidateDescription(desc string) error { // ValidateAggregateFunc verifies if the aggregation function is legal func ValidateAggregateFunc(aggregateFunc string) error { if len(aggregateFunc) == 0 || len(aggregateFunc) > MaxAggregateFuncNameLen { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "aggregate func must between [1, %d], got: %d", MaxAggregateFuncNameLen, len(aggregateFunc)) + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "aggregate func must between [1, %d], got: %d", MaxAggregateFuncNameLen, len(aggregateFunc)) } if _, err := GetAggregateFunc(aggregateFunc); err != nil { @@ -54,7 +55,7 @@ func ValidateAggregateFunc(aggregateFunc string) error { // ValidateLatestHistory verifies if the latest history is legal func ValidateLatestHistory(latestHistory uint64) error { if latestHistory < 1 || latestHistory > MaxLatestHistory { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "latest history is invalid, should be between 1 and %d", MaxLatestHistory) + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "latest history is invalid, should be between 1 and %d", MaxLatestHistory) } return nil } @@ -62,7 +63,7 @@ func ValidateLatestHistory(latestHistory uint64) error { // ValidateCreator verifies if the creator is legal func ValidateCreator(creator string) error { if _, err := sdk.AccAddressFromBech32(creator); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid creator") + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid creator") } return nil } @@ -75,7 +76,7 @@ func ValidateServiceName(serviceName string) error { // ValidateResponseThreshold verifies whether the given threshold is legal func ValidateResponseThreshold(responseThreshold uint32, maxCnt int) error { if (maxCnt != 0 && int(responseThreshold) > maxCnt) || responseThreshold < 1 { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "response threshold should be between 1 and %d", maxCnt) + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "response threshold should be between 1 and %d", maxCnt) } return nil } @@ -83,7 +84,7 @@ func ValidateResponseThreshold(responseThreshold uint32, maxCnt int) error { // ValidateTimeout verifies whether the given timeout and frequency are legal func ValidateTimeout(timeout int64, frequency uint64) error { if frequency < uint64(timeout) { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "timeout [%d] should be no more than frequency [%d]", timeout, frequency) + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "timeout [%d] should be no more than frequency [%d]", timeout, frequency) } return nil } @@ -91,7 +92,7 @@ func ValidateTimeout(timeout int64, frequency uint64) error { // ValidateServiceFeeCap verifies whether the given service fee cap is legal func ValidateServiceFeeCap(serviceFeeCap sdk.Coins) error { if !serviceFeeCap.IsValid() { - return sdkerrors.Wrapf(ErrInvalidServiceFeeCap, serviceFeeCap.String()) + return errorsmod.Wrapf(ErrInvalidServiceFeeCap, serviceFeeCap.String()) } return nil } diff --git a/modules/random/handler.go b/modules/random/handler.go index 2854914a..ec596076 100644 --- a/modules/random/handler.go +++ b/modules/random/handler.go @@ -1,6 +1,7 @@ package random import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -21,7 +22,7 @@ func NewHandler(k keeper.Keeper) sdk.Handler { return sdk.WrapServiceResult(ctx, res, err) default: - return nil, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized %s message type: %T", types.ModuleName, msg) + return nil, errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized %s message type: %T", types.ModuleName, msg) } } } diff --git a/modules/random/keeper/grpc_query.go b/modules/random/keeper/grpc_query.go index 06cceffd..69fcb344 100644 --- a/modules/random/keeper/grpc_query.go +++ b/modules/random/keeper/grpc_query.go @@ -8,6 +8,7 @@ import ( "google.golang.org/grpc/codes" "google.golang.org/grpc/status" + errorsmod "cosmossdk.io/errors" "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -65,11 +66,11 @@ func (k Keeper) RandomRequestQueue(c context.Context, req *types.QueryRandomRequ func queryRandomRequestQueue(ctx sdk.Context, req abci.RequestQuery, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ([]byte, error) { var params types.QueryRandomRequestQueueParams if err := legacyQuerierCdc.UnmarshalJSON(req.Data, ¶ms); err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONUnmarshal, err.Error()) + return nil, errorsmod.Wrap(sdkerrors.ErrJSONUnmarshal, err.Error()) } if params.Height < 0 { - return nil, sdkerrors.Wrap(types.ErrInvalidHeight, string(rune(params.Height))) + return nil, errorsmod.Wrap(types.ErrInvalidHeight, string(rune(params.Height))) } var requests []types.Request @@ -84,7 +85,7 @@ func queryRandomRequestQueue(ctx sdk.Context, req abci.RequestQuery, k Keeper, l bz, err := codec.MarshalJSONIndent(legacyQuerierCdc, requests) if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) + return nil, errorsmod.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) } return bz, nil diff --git a/modules/random/keeper/keeper.go b/modules/random/keeper/keeper.go index 7af1eb16..8f3002f3 100644 --- a/modules/random/keeper/keeper.go +++ b/modules/random/keeper/keeper.go @@ -5,10 +5,10 @@ import ( "github.com/cometbft/cometbft/libs/log" + errorsmod "cosmossdk.io/errors" "github.com/cosmos/cosmos-sdk/codec" storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/irisnet/irismod/modules/random/types" ) @@ -138,7 +138,7 @@ func (k Keeper) GetOracleRandRequest( bz := store.Get(types.KeyOracleRandomRequest(requestContextID)) if bz == nil { - return types.Request{}, sdkerrors.Wrap( + return types.Request{}, errorsmod.Wrap( types.ErrInvalidRequestContextID, hex.EncodeToString(requestContextID), ) @@ -162,7 +162,7 @@ func (k Keeper) GetRandom(ctx sdk.Context, reqID []byte) (types.Random, error) { bz := store.Get(types.KeyRandom(reqID)) if bz == nil { - return types.Random{}, sdkerrors.Wrap(types.ErrInvalidReqID, hex.EncodeToString(reqID)) + return types.Random{}, errorsmod.Wrap(types.ErrInvalidReqID, hex.EncodeToString(reqID)) } var random types.Random diff --git a/modules/random/types/errors.go b/modules/random/types/errors.go index dd889efb..e3f099b0 100644 --- a/modules/random/types/errors.go +++ b/modules/random/types/errors.go @@ -1,14 +1,14 @@ package types import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" ) // random module sentinel errors var ( - ErrInvalidReqID = sdkerrors.Register(ModuleName, 2, "invalid request id") - ErrInvalidHeight = sdkerrors.Register(ModuleName, 3, "invalid height, must be greater than 0") - ErrInvalidServiceBindings = sdkerrors.Register(ModuleName, 4, "no service bindings available") - ErrInvalidRequestContextID = sdkerrors.Register(ModuleName, 5, "invalid request context id") - ErrInvalidServiceFeeCap = sdkerrors.Register(ModuleName, 6, "invalid service fee cap") + ErrInvalidReqID = errorsmod.Register(ModuleName, 2, "invalid request id") + ErrInvalidHeight = errorsmod.Register(ModuleName, 3, "invalid height, must be greater than 0") + ErrInvalidServiceBindings = errorsmod.Register(ModuleName, 4, "no service bindings available") + ErrInvalidRequestContextID = errorsmod.Register(ModuleName, 5, "invalid request context id") + ErrInvalidServiceFeeCap = errorsmod.Register(ModuleName, 6, "invalid service fee cap") ) diff --git a/modules/random/types/msgs.go b/modules/random/types/msgs.go index eae53305..02bf11a3 100644 --- a/modules/random/types/msgs.go +++ b/modules/random/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" ) @@ -37,7 +38,7 @@ func (msg MsgRequestRandom) Type() string { return TypeMsgRequestRandom } // ValidateBasic implements Msg. func (msg MsgRequestRandom) ValidateBasic() error { if _, err := sdk.AccAddressFromBech32(msg.Consumer); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid consumer address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid consumer address (%s)", err) } return ValidateServiceFeeCap(msg.ServiceFeeCap) } diff --git a/modules/random/types/request.go b/modules/random/types/request.go index 39980935..a2ce6180 100644 --- a/modules/random/types/request.go +++ b/modules/random/types/request.go @@ -4,6 +4,7 @@ import ( "encoding/hex" "fmt" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) @@ -40,11 +41,11 @@ func GenerateRequestID(r Request) []byte { // CheckReqID checks if the given request id is valid func CheckReqID(reqID string) error { if len(reqID) != 64 { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, fmt.Sprintf("invalid request id: %s", reqID)) + return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, fmt.Sprintf("invalid request id: %s", reqID)) } if _, err := hex.DecodeString(reqID); err != nil { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, fmt.Sprintf("invalid request id: %s", reqID)) + return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, fmt.Sprintf("invalid request id: %s", reqID)) } return nil diff --git a/modules/random/types/validation.go b/modules/random/types/validation.go index c4818950..46ccd6c9 100644 --- a/modules/random/types/validation.go +++ b/modules/random/types/validation.go @@ -1,14 +1,14 @@ package types import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) // ValidateServiceFeeCap verifies whether the service fee cap is legal func ValidateServiceFeeCap(serviceFeeCap sdk.Coins) error { if !serviceFeeCap.IsValid() { - return sdkerrors.Wrapf(ErrInvalidServiceFeeCap, serviceFeeCap.String()) + return errorsmod.Wrapf(ErrInvalidServiceFeeCap, serviceFeeCap.String()) } return nil } diff --git a/modules/record/handler.go b/modules/record/handler.go index 079fa36b..b9fe058b 100644 --- a/modules/record/handler.go +++ b/modules/record/handler.go @@ -1,6 +1,7 @@ package record import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -21,7 +22,7 @@ func NewHandler(k keeper.Keeper) sdk.Handler { return sdk.WrapServiceResult(ctx, res, err) default: - return nil, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized record message type: %T", msg) + return nil, errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized record message type: %T", msg) } } } diff --git a/modules/record/types/erros.go b/modules/record/types/erros.go index e5e8f078..6626d80b 100644 --- a/modules/record/types/erros.go +++ b/modules/record/types/erros.go @@ -1,10 +1,10 @@ package types import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" ) // record module sentinel errors var ( - ErrUnknownRecord = sdkerrors.Register(ModuleName, 2, "unknown record") + ErrUnknownRecord = errorsmod.Register(ModuleName, 2, "unknown record") ) diff --git a/modules/record/types/msgs.go b/modules/record/types/msgs.go index 2e16aab5..cc1f0734 100644 --- a/modules/record/types/msgs.go +++ b/modules/record/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" ) @@ -37,11 +38,11 @@ func (msg MsgCreateRecord) GetSignBytes() []byte { // ValidateBasic implements Msg. func (msg MsgCreateRecord) ValidateBasic() error { if len(msg.Contents) == 0 { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "contents missing") + return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "contents missing") } if _, err := sdk.AccAddressFromBech32(msg.Creator); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid creator address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid creator address (%s)", err) } return ValidateContents(msg.Contents...) diff --git a/modules/record/types/validation.go b/modules/record/types/validation.go index ecb1bc64..bef06a9b 100644 --- a/modules/record/types/validation.go +++ b/modules/record/types/validation.go @@ -1,6 +1,7 @@ package types import ( + errorsmod "cosmossdk.io/errors" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) @@ -8,10 +9,10 @@ import ( func ValidateContents(contents ...Content) error { for i, content := range contents { if len(content.Digest) == 0 { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "content[%d] digest missing", i) + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "content[%d] digest missing", i) } if len(content.DigestAlgo) == 0 { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "content[%d] digest algo missing", i) + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "content[%d] digest algo missing", i) } } return nil diff --git a/modules/service/handler.go b/modules/service/handler.go index 186b033b..35e29d71 100644 --- a/modules/service/handler.go +++ b/modules/service/handler.go @@ -1,6 +1,7 @@ package service import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -73,7 +74,7 @@ func NewHandler(k keeper.Keeper) sdk.Handler { return sdk.WrapServiceResult(ctx, res, err) default: - return nil, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized %s message type: %T", types.ModuleName, msg) + return nil, errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized %s message type: %T", types.ModuleName, msg) } } } diff --git a/modules/service/keeper/binding.go b/modules/service/keeper/binding.go index 5d0776be..fe1ad5c6 100644 --- a/modules/service/keeper/binding.go +++ b/modules/service/keeper/binding.go @@ -6,8 +6,8 @@ import ( gogotypes "github.com/cosmos/gogoproto/types" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" v1 "github.com/cosmos/cosmos-sdk/x/auth/migrations/v1" "github.com/irisnet/irismod/modules/service/types" @@ -25,16 +25,16 @@ func (k Keeper) AddServiceBinding( owner sdk.AccAddress, ) error { if _, found := k.GetServiceDefinition(ctx, serviceName); !found { - return sdkerrors.Wrap(types.ErrUnknownServiceDefinition, serviceName) + return errorsmod.Wrap(types.ErrUnknownServiceDefinition, serviceName) } if _, found := k.GetServiceBinding(ctx, serviceName, provider); found { - return sdkerrors.Wrap(types.ErrServiceBindingExists, "") + return errorsmod.Wrap(types.ErrServiceBindingExists, "") } currentOwner, found := k.GetOwner(ctx, provider) if found && !owner.Equals(currentOwner) { - return sdkerrors.Wrap(types.ErrNotAuthorized, "owner not matching") + return errorsmod.Wrap(types.ErrNotAuthorized, "owner not matching") } if err := k.validateDeposit(ctx, deposit); err != nil { @@ -43,7 +43,7 @@ func (k Keeper) AddServiceBinding( maxReqTimeout := k.MaxRequestTimeout(ctx) if qos > uint64(maxReqTimeout) { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrInvalidQoS, "QoS [%d] must not be greater than maximum request timeout [%d]", qos, maxReqTimeout, @@ -61,11 +61,11 @@ func (k Keeper) AddServiceBinding( minDeposit, err := k.GetMinDeposit(ctx, parsedPricing) if err != nil { - return sdkerrors.Wrapf(types.ErrInvalidMinDeposit, "%s", err) + return errorsmod.Wrapf(types.ErrInvalidMinDeposit, "%s", err) } if !deposit.IsAllGTE(minDeposit) { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrInvalidDeposit, "insufficient deposit: minimum deposit %s, %s got", minDeposit, deposit, @@ -146,7 +146,7 @@ func (k Keeper) UpdateServiceBinding( ) error { binding, found := k.GetServiceBinding(ctx, serviceName, provider) if !found { - return sdkerrors.Wrap(types.ErrUnknownServiceBinding, "") + return errorsmod.Wrap(types.ErrUnknownServiceBinding, "") } bindingOwner, err := sdk.AccAddressFromBech32(binding.Owner) @@ -155,7 +155,7 @@ func (k Keeper) UpdateServiceBinding( } if !owner.Equals(bindingOwner) { - return sdkerrors.Wrap(types.ErrNotAuthorized, "owner not matching") + return errorsmod.Wrap(types.ErrNotAuthorized, "owner not matching") } updated := false @@ -163,7 +163,7 @@ func (k Keeper) UpdateServiceBinding( if qos != 0 { maxReqTimeout := k.MaxRequestTimeout(ctx) if qos > uint64(maxReqTimeout) { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrInvalidQoS, "QoS [%d] must not be greater than maximum request timeout [%d]", qos, maxReqTimeout, @@ -212,11 +212,11 @@ func (k Keeper) UpdateServiceBinding( if binding.Available && updated { minDeposit, err := k.GetMinDeposit(ctx, parsedPricing) if err != nil { - return sdkerrors.Wrapf(types.ErrInvalidMinDeposit, "%s", err) + return errorsmod.Wrapf(types.ErrInvalidMinDeposit, "%s", err) } if !binding.Deposit.IsAllGTE(minDeposit) { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrInvalidDeposit, "insufficient deposit: minimum deposit %s, %s got", minDeposit, binding.Deposit, @@ -247,7 +247,7 @@ func (k Keeper) DisableServiceBinding( ) error { binding, found := k.GetServiceBinding(ctx, serviceName, provider) if !found { - return sdkerrors.Wrap(types.ErrUnknownServiceBinding, "") + return errorsmod.Wrap(types.ErrUnknownServiceBinding, "") } bindingOwner, err := sdk.AccAddressFromBech32(binding.Owner) @@ -256,11 +256,11 @@ func (k Keeper) DisableServiceBinding( } if !owner.Equals(bindingOwner) { - return sdkerrors.Wrap(types.ErrNotAuthorized, "owner not matching") + return errorsmod.Wrap(types.ErrNotAuthorized, "owner not matching") } if !binding.Available { - return sdkerrors.Wrap(types.ErrServiceBindingUnavailable, "") + return errorsmod.Wrap(types.ErrServiceBindingUnavailable, "") } binding.Available = false @@ -281,7 +281,7 @@ func (k Keeper) EnableServiceBinding( ) error { binding, found := k.GetServiceBinding(ctx, serviceName, provider) if !found { - return sdkerrors.Wrap(types.ErrUnknownServiceBinding, "") + return errorsmod.Wrap(types.ErrUnknownServiceBinding, "") } bindingOwner, err := sdk.AccAddressFromBech32(binding.Owner) @@ -290,11 +290,11 @@ func (k Keeper) EnableServiceBinding( } if !owner.Equals(bindingOwner) { - return sdkerrors.Wrap(types.ErrNotAuthorized, "owner not matching") + return errorsmod.Wrap(types.ErrNotAuthorized, "owner not matching") } if binding.Available { - return sdkerrors.Wrap(types.ErrServiceBindingAvailable, "") + return errorsmod.Wrap(types.ErrServiceBindingAvailable, "") } // add the deposit @@ -308,11 +308,11 @@ func (k Keeper) EnableServiceBinding( minDeposit, err := k.GetMinDeposit(ctx, k.GetPricing(ctx, serviceName, provider)) if err != nil { - return sdkerrors.Wrapf(types.ErrInvalidMinDeposit, "%s", err) + return errorsmod.Wrapf(types.ErrInvalidMinDeposit, "%s", err) } if !binding.Deposit.IsAllGTE(minDeposit) { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrInvalidDeposit, "insufficient deposit: minimum deposit %s, %s got", minDeposit, binding.Deposit, @@ -344,7 +344,7 @@ func (k Keeper) RefundDeposit( ) error { binding, found := k.GetServiceBinding(ctx, serviceName, provider) if !found { - return sdkerrors.Wrap(types.ErrUnknownServiceBinding, "") + return errorsmod.Wrap(types.ErrUnknownServiceBinding, "") } bindingOwner, err := sdk.AccAddressFromBech32(binding.Owner) @@ -353,15 +353,15 @@ func (k Keeper) RefundDeposit( } if !owner.Equals(bindingOwner) { - return sdkerrors.Wrap(types.ErrNotAuthorized, "owner not matching") + return errorsmod.Wrap(types.ErrNotAuthorized, "owner not matching") } if binding.Available { - return sdkerrors.Wrap(types.ErrServiceBindingAvailable, "") + return errorsmod.Wrap(types.ErrServiceBindingAvailable, "") } if binding.Deposit.IsZero() { - return sdkerrors.Wrap(types.ErrInvalidDeposit, "the deposit of the service binding is zero") + return errorsmod.Wrap(types.ErrInvalidDeposit, "the deposit of the service binding is zero") } refundableTime := binding.DisabledTime.Add(k.ArbitrationTimeLimit(ctx)). @@ -369,7 +369,7 @@ func (k Keeper) RefundDeposit( currentTime := ctx.BlockHeader().Time if currentTime.Before(refundableTime) { - return sdkerrors.Wrapf(types.ErrIncorrectRefundTime, "%v", refundableTime) + return errorsmod.Wrapf(types.ErrIncorrectRefundTime, "%v", refundableTime) } // Send coins from the deposit module account to the owner's account @@ -658,7 +658,7 @@ func (k Keeper) validateDeposit(ctx sdk.Context, deposit sdk.Coins) error { baseDenom := k.BaseDenom(ctx) if len(deposit) != 1 || deposit[0].Denom != baseDenom { - return sdkerrors.Wrapf(types.ErrInvalidDeposit, "deposit only accepts %s", baseDenom) + return errorsmod.Wrapf(types.ErrInvalidDeposit, "deposit only accepts %s", baseDenom) } return nil @@ -672,7 +672,7 @@ func (k Keeper) validatePricing(ctx sdk.Context, pricing types.Pricing) error { baseDenom := k.BaseDenom(ctx) if priceDenom != baseDenom { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrInvalidPricing, "invalid denom: %s, service fee only accepts %s", priceDenom, @@ -682,7 +682,7 @@ func (k Keeper) validatePricing(ctx sdk.Context, pricing types.Pricing) error { } if supply := k.bankKeeper.GetSupply(ctx, priceDenom).Amount; !supply.IsPositive() { - return sdkerrors.Wrapf(types.ErrInvalidPricing, "invalid denom: %s", priceDenom) + return errorsmod.Wrapf(types.ErrInvalidPricing, "invalid denom: %s", priceDenom) } return nil diff --git a/modules/service/keeper/definition.go b/modules/service/keeper/definition.go index a09db51c..1aa3a32d 100644 --- a/modules/service/keeper/definition.go +++ b/modules/service/keeper/definition.go @@ -1,8 +1,8 @@ package keeper import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/irisnet/irismod/modules/service/types" ) @@ -18,7 +18,7 @@ func (k Keeper) AddServiceDefinition( schemas string, ) error { if _, found := k.GetServiceDefinition(ctx, name); found { - return sdkerrors.Wrap(types.ErrServiceDefinitionExists, name) + return errorsmod.Wrap(types.ErrServiceDefinitionExists, name) } svcDef := types.NewServiceDefinition(name, description, tags, author, authorDescription, schemas) diff --git a/modules/service/keeper/fees.go b/modules/service/keeper/fees.go index 985fca6c..565ee921 100644 --- a/modules/service/keeper/fees.go +++ b/modules/service/keeper/fees.go @@ -3,6 +3,7 @@ package keeper import ( gogotypes "github.com/cosmos/gogoproto/types" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" v1 "github.com/cosmos/cosmos-sdk/x/auth/migrations/v1" @@ -40,7 +41,7 @@ func (k Keeper) AddEarnedFee(ctx sdk.Context, provider sdk.AccAddress, fee sdk.C earnedFee, hasNeg := fee.SafeSub(taxCoins...) if hasNeg { - return sdkerrors.Wrapf(sdkerrors.ErrInsufficientFunds, "%s is less than %s", fee, taxCoins) + return errorsmod.Wrapf(sdkerrors.ErrInsufficientFunds, "%s is less than %s", fee, taxCoins) } // add the provider's earned fees @@ -138,13 +139,13 @@ func (k Keeper) WithdrawEarnedFees(ctx sdk.Context, owner, provider sdk.AccAddre if !provider.Empty() { providerOwner, _ := k.GetOwner(ctx, provider) if !owner.Equals(providerOwner) { - return sdkerrors.Wrap(types.ErrNotAuthorized, "owner not matching") + return errorsmod.Wrap(types.ErrNotAuthorized, "owner not matching") } } ownerEarnedFees, found := k.GetOwnerEarnedFees(ctx, owner) if !found { - return sdkerrors.Wrap(types.ErrNoEarnedFees, owner.String()) + return errorsmod.Wrap(types.ErrNoEarnedFees, owner.String()) } var withdrawFees sdk.Coins @@ -152,7 +153,7 @@ func (k Keeper) WithdrawEarnedFees(ctx sdk.Context, owner, provider sdk.AccAddre if !provider.Empty() { earnedFees, found := k.GetEarnedFees(ctx, provider) if !found { - return sdkerrors.Wrap(types.ErrNoEarnedFees, provider.String()) + return errorsmod.Wrap(types.ErrNoEarnedFees, provider.String()) } k.DeleteEarnedFees(ctx, provider) @@ -227,7 +228,7 @@ func (k Keeper) RefundServiceFees(ctx sdk.Context) error { consumer, err := sdk.AccAddressFromBech32(request.Consumer) if err != nil { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( sdkerrors.ErrInvalidAddress, "invalid consumer address (%s)", err, diff --git a/modules/service/keeper/grpc_query.go b/modules/service/keeper/grpc_query.go index 2c1866ca..9e502929 100644 --- a/modules/service/keeper/grpc_query.go +++ b/modules/service/keeper/grpc_query.go @@ -7,6 +7,7 @@ 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" @@ -30,7 +31,7 @@ func (k Keeper) Definition( ctx := sdk.UnwrapSDKContext(c) definition, found := k.GetServiceDefinition(ctx, req.ServiceName) if !found { - return nil, sdkerrors.Wrap(types.ErrUnknownServiceDefinition, req.ServiceName) + return nil, errorsmod.Wrap(types.ErrUnknownServiceDefinition, req.ServiceName) } return &types.QueryDefinitionResponse{ServiceDefinition: &definition}, nil @@ -46,7 +47,7 @@ func (k Keeper) Binding( provider, err := sdk.AccAddressFromBech32(req.Provider) if err != nil { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( sdkerrors.ErrInvalidAddress, "invalid provider address (%s)", err, @@ -57,7 +58,7 @@ func (k Keeper) Binding( binding, found := k.GetServiceBinding(ctx, req.ServiceName, provider) if !found { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrUnknownServiceBinding, "service: %s, provider: %s", req.ServiceName, @@ -99,7 +100,7 @@ func (k Keeper) Bindings( } else { owner, err := sdk.AccAddressFromBech32(req.Owner) if err != nil { - return nil, sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid owner address (%s)", err) + return nil, errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid owner address (%s)", err) } bindingStore := prefix.NewStore(store, types.GetOwnerBindingsSubspace(owner, req.ServiceName)) pageRes, err = query.Paginate(bindingStore, shapePageRequest(req.Pagination), func(key []byte, value []byte) error { @@ -128,7 +129,7 @@ func (k Keeper) WithdrawAddress( owner, err := sdk.AccAddressFromBech32(req.Owner) if err != nil { - return nil, sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid owner address (%s)", err) + return nil, errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid owner address (%s)", err) } ctx := sdk.UnwrapSDKContext(c) @@ -147,7 +148,7 @@ func (k Keeper) RequestContext( } if len(req.RequestContextId) != types.ContextIDLen { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrInvalidRequestContextID, "length of the request context ID must be %d in bytes", types.ContextIDLen, @@ -155,7 +156,7 @@ func (k Keeper) RequestContext( } requestContextId, err := hex.DecodeString(req.RequestContextId) if err != nil { - return nil, sdkerrors.Wrap( + return nil, errorsmod.Wrap( types.ErrInvalidRequestContextID, "request context ID must be a hex encoded string", ) @@ -177,7 +178,7 @@ func (k Keeper) Request( } if len(req.RequestId) != types.RequestIDLen { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrInvalidRequestID, "invalid length, expected: %d, got: %d", types.RequestIDLen, len(req.RequestId), @@ -186,7 +187,7 @@ func (k Keeper) Request( requestId, err := hex.DecodeString(req.RequestId) if err != nil { - return nil, sdkerrors.Wrap( + return nil, errorsmod.Wrap( types.ErrInvalidRequestContextID, "request ID must be a hex encoded string", ) @@ -208,7 +209,7 @@ func (k Keeper) Requests( provider, err := sdk.AccAddressFromBech32(req.Provider) if err != nil { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( sdkerrors.ErrInvalidAddress, "invalid provider address (%s)", err, @@ -249,7 +250,7 @@ func (k Keeper) RequestsByReqCtx( } if len(req.RequestContextId) != types.ContextIDLen { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrInvalidRequestContextID, "length of the request context ID must be %d in bytes", types.ContextIDLen, @@ -257,7 +258,7 @@ func (k Keeper) RequestsByReqCtx( } requestContextId, err := hex.DecodeString(req.RequestContextId) if err != nil { - return nil, sdkerrors.Wrap( + return nil, errorsmod.Wrap( types.ErrInvalidRequestContextID, "request context ID must be a hex encoded string", ) @@ -299,7 +300,7 @@ func (k Keeper) Response( ctx := sdk.UnwrapSDKContext(c) if len(req.RequestId) != types.RequestIDLen { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrInvalidRequestID, "invalid length, expected: %d, got: %d", types.RequestIDLen, len(req.RequestId), @@ -308,7 +309,7 @@ func (k Keeper) Response( requestId, err := hex.DecodeString(req.RequestId) if err != nil { - return nil, sdkerrors.Wrap( + return nil, errorsmod.Wrap( types.ErrInvalidRequestContextID, "request ID must be a hex encoded string", ) @@ -327,7 +328,7 @@ func (k Keeper) Responses( } if len(req.RequestContextId) != types.ContextIDLen { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrInvalidRequestContextID, "length of the request context ID must be %d in bytes", types.ContextIDLen, @@ -335,7 +336,7 @@ func (k Keeper) Responses( } requestContextId, err := hex.DecodeString(req.RequestContextId) if err != nil { - return nil, sdkerrors.Wrap( + return nil, errorsmod.Wrap( types.ErrInvalidRequestContextID, "request context ID must be a hex encoded string", ) @@ -376,7 +377,7 @@ func (k Keeper) EarnedFees( provider, err := sdk.AccAddressFromBech32(req.Provider) if err != nil { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( sdkerrors.ErrInvalidAddress, "invalid provider address (%s)", err, @@ -386,7 +387,7 @@ func (k Keeper) EarnedFees( ctx := sdk.UnwrapSDKContext(c) fees, found := k.GetEarnedFees(ctx, provider) if !found { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrNoEarnedFees, "no earned fees for %s", req.Provider, ) } @@ -409,7 +410,7 @@ func (k Keeper) Schema( case "result": schema = types.ResultSchema default: - return nil, sdkerrors.Wrap(types.ErrInvalidSchemaName, schema) + return nil, errorsmod.Wrap(types.ErrInvalidSchemaName, schema) } return &types.QuerySchemaResponse{Schema: schema}, nil diff --git a/modules/service/keeper/invocation.go b/modules/service/keeper/invocation.go index 76183577..73bd2266 100644 --- a/modules/service/keeper/invocation.go +++ b/modules/service/keeper/invocation.go @@ -10,6 +10,7 @@ import ( "github.com/cometbft/cometbft/crypto/tmhash" tmbytes "github.com/cometbft/cometbft/libs/bytes" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -22,7 +23,7 @@ func (k Keeper) RegisterResponseCallback( respCallback types.ResponseCallback, ) error { if _, ok := k.respCallbacks[moduleName]; ok { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrCallbackRegistered, "%s already registered for module %s", "response callback", @@ -38,7 +39,7 @@ func (k Keeper) RegisterResponseCallback( // RegisterStateCallback registers a module callback for state handling func (k Keeper) RegisterStateCallback(moduleName string, stateCallback types.StateCallback) error { if _, ok := k.stateCallbacks[moduleName]; ok { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrCallbackRegistered, "%s already registered for module %s", "state callback", @@ -86,7 +87,7 @@ func (k Keeper) CreateRequestContext( } if responseThreshold < 1 || int(responseThreshold) > len(providers) { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrInvalidResponseThreshold, "response threshold [%d] must be between [1,%d]", responseThreshold, @@ -97,7 +98,7 @@ func (k Keeper) CreateRequestContext( _, found := k.GetServiceDefinition(ctx, serviceName) if !found { - return nil, sdkerrors.Wrap(types.ErrUnknownServiceDefinition, serviceName) + return nil, errorsmod.Wrap(types.ErrUnknownServiceDefinition, serviceName) } if err := types.ValidateRequestInput(input); err != nil { @@ -110,7 +111,7 @@ func (k Keeper) CreateRequestContext( maxRequestTimeout := k.MaxRequestTimeout(ctx) if timeout > maxRequestTimeout { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrInvalidTimeout, "timeout [%d] must not be greater than the max request timeout [%d]", timeout, @@ -168,7 +169,7 @@ func (k Keeper) UpdateRequestContext( } requestContext, found := k.GetRequestContext(ctx, requestContextID) if !found { - return sdkerrors.Wrap(types.ErrUnknownRequestContext, requestContextID.String()) + return errorsmod.Wrap(types.ErrUnknownRequestContext, requestContextID.String()) } // check authority when called by module @@ -196,7 +197,7 @@ func (k Keeper) UpdateRequestContext( } if respThreshold > uint32(len(pds)) { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrInvalidResponseThreshold, "response threshold [%d] must be between [1,%d]", respThreshold, @@ -219,7 +220,7 @@ func (k Keeper) UpdateRequestContext( maxRequestTimeout := k.MaxRequestTimeout(ctx) if timeout > maxRequestTimeout { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrInvalidTimeout, "timeout [%d] must not be greater than the max request timeout [%d]", timeout, @@ -236,7 +237,7 @@ func (k Keeper) UpdateRequestContext( } if repeatedFreq < uint64(timeout) { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrInvalidRepeatedFreq, "repeated frequency [%d] must not be less than the timeout [%d]", repeatedFreq, @@ -245,7 +246,7 @@ func (k Keeper) UpdateRequestContext( } if repeatedTotal >= 1 && repeatedTotal < int64(requestContext.BatchCounter) { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrInvalidRepeatedTotal, "updated repeated total [%d] must not be less than the current batch counter [%d]", repeatedTotal, @@ -282,7 +283,7 @@ func (k Keeper) PauseRequestContext( ) error { requestContext, found := k.GetRequestContext(ctx, requestContextID) if !found { - return sdkerrors.Wrap(types.ErrUnknownRequestContext, requestContextID.String()) + return errorsmod.Wrap(types.ErrUnknownRequestContext, requestContextID.String()) } // check authority when called by module @@ -314,7 +315,7 @@ func (k Keeper) StartRequestContext( ) error { requestContext, found := k.GetRequestContext(ctx, requestContextID) if !found { - return sdkerrors.Wrap(types.ErrUnknownRequestContext, requestContextID.String()) + return errorsmod.Wrap(types.ErrUnknownRequestContext, requestContextID.String()) } // check authority when called by module @@ -348,7 +349,7 @@ func (k Keeper) KillRequestContext( ) error { requestContext, found := k.GetRequestContext(ctx, requestContextID) if !found { - return sdkerrors.Wrap(types.ErrUnknownRequestContext, requestContextID.String()) + return errorsmod.Wrap(types.ErrUnknownRequestContext, requestContextID.String()) } // check authority when called by module @@ -1013,24 +1014,24 @@ func (k Keeper) AddResponse( ) { request, found := k.GetRequest(ctx, requestID) if !found { - return request, response, sdkerrors.Wrap(types.ErrUnknownRequest, requestID.String()) + return request, response, errorsmod.Wrap(types.ErrUnknownRequest, requestID.String()) } requestProvider, _ := sdk.AccAddressFromBech32(request.Provider) if !provider.Equals(requestProvider) { - return request, response, sdkerrors.Wrap( + return request, response, errorsmod.Wrap( types.ErrInvalidResponse, "provider does not match", ) } if !k.IsRequestActive(ctx, requestID) { - return request, response, sdkerrors.Wrap(types.ErrInvalidResponse, "request is not active") + return request, response, errorsmod.Wrap(types.ErrInvalidResponse, "request is not active") } if len(output) > 0 { if err := types.ValidateResponseOutput(output); err != nil { - return request, response, sdkerrors.Wrap(types.ErrInvalidResponseOutput, err.Error()) + return request, response, errorsmod.Wrap(types.ErrInvalidResponseOutput, err.Error()) } } @@ -1235,7 +1236,7 @@ func (k Keeper) Slash(ctx sdk.Context, requestID tmbytes.HexBytes) error { deposit, hasNeg := binding.Deposit.SafeSub(slashedCoins...) if hasNeg { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( sdkerrors.ErrInsufficientFunds, "%s is less than %s", binding.Deposit.String(), @@ -1279,15 +1280,15 @@ func (k Keeper) CheckAuthority( ) error { requestContext, found := k.GetRequestContext(ctx, requestContextID) if !found { - return sdkerrors.Wrap(types.ErrUnknownRequestContext, requestContextID.String()) + return errorsmod.Wrap(types.ErrUnknownRequestContext, requestContextID.String()) } if consumer.String() != requestContext.Consumer { - return sdkerrors.Wrapf(types.ErrNotAuthorized, "consumer not matching") + return errorsmod.Wrapf(types.ErrNotAuthorized, "consumer not matching") } if checkModule && len(requestContext.ModuleName) > 0 { - return sdkerrors.Wrapf(types.ErrNotAuthorized, "not authorized operation") + return errorsmod.Wrapf(types.ErrNotAuthorized, "not authorized operation") } return nil @@ -1297,7 +1298,7 @@ func (k Keeper) CheckAuthority( func (k Keeper) GetResponseCallback(moduleName string) (types.ResponseCallback, error) { respCallback, ok := k.respCallbacks[moduleName] if !ok { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrCallbackNotRegistered, "%s not registered for module %s", "response callback", @@ -1312,7 +1313,7 @@ func (k Keeper) GetResponseCallback(moduleName string) (types.ResponseCallback, func (k Keeper) GetStateCallback(moduleName string) (types.StateCallback, error) { stateCallback, ok := k.stateCallbacks[moduleName] if !ok { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrCallbackNotRegistered, "%s not registered for module %s", "state callback", @@ -1347,7 +1348,7 @@ func (k Keeper) validateServiceFeeCap(ctx sdk.Context, serviceFeeCap sdk.Coins) baseDenom := k.BaseDenom(ctx) if len(serviceFeeCap) != 1 || serviceFeeCap[0].Denom != baseDenom { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrInvalidServiceFeeCap, "service fee cap only accepts %s", baseDenom, diff --git a/modules/service/keeper/module_service.go b/modules/service/keeper/module_service.go index bc640d81..a2354bce 100644 --- a/modules/service/keeper/module_service.go +++ b/modules/service/keeper/module_service.go @@ -3,6 +3,7 @@ package keeper import ( tmbytes "github.com/cometbft/cometbft/libs/bytes" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -12,7 +13,7 @@ import ( // RegisterModuleService registers a module service func (k Keeper) RegisterModuleService(moduleName string, moduleService *types.ModuleService) error { if _, ok := k.moduleServices[moduleName]; ok { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrModuleServiceRegistered, "%s already registered for module %s", "module service", @@ -57,7 +58,7 @@ func (k Keeper) RequestModuleService( ) error { requestContext, found := k.GetRequestContext(ctx, reqContextID) if !found { - return sdkerrors.Wrap(types.ErrUnknownRequestContext, reqContextID.String()) + return errorsmod.Wrap(types.ErrUnknownRequestContext, reqContextID.String()) } requestContextConsumer, _ := sdk.AccAddressFromBech32(requestContext.Consumer) @@ -66,7 +67,7 @@ func (k Keeper) RequestModuleService( for i, provider := range requestContext.Providers { pd, err := sdk.AccAddressFromBech32(provider) if err != nil { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( sdkerrors.ErrInvalidAddress, "invalid provider address: %s", provider, diff --git a/modules/service/keeper/msg_server.go b/modules/service/keeper/msg_server.go index 7009c196..62f2dbfc 100644 --- a/modules/service/keeper/msg_server.go +++ b/modules/service/keeper/msg_server.go @@ -6,6 +6,7 @@ import ( tmbytes "github.com/cometbft/cometbft/libs/bytes" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -59,7 +60,7 @@ func (m msgServer) BindService( msg *types.MsgBindService, ) (*types.MsgBindServiceResponse, error) { if _, _, found := m.k.GetModuleServiceByServiceName(msg.ServiceName); found { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( types.ErrBindModuleService, "module service %s", msg.ServiceName, @@ -144,7 +145,7 @@ func (m msgServer) SetWithdrawAddress( } if m.k.blockedAddrs[msg.WithdrawAddress] { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( sdkerrors.ErrUnauthorized, "%s is a module account", msg.WithdrawAddress, @@ -537,7 +538,7 @@ func (m msgServer) UpdateParams( msg *types.MsgUpdateParams, ) (*types.MsgUpdateParamsResponse, error) { if m.k.authority != msg.Authority { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( sdkerrors.ErrUnauthorized, "invalid authority; expected %s, got %s", m.k.authority, diff --git a/modules/service/keeper/oracle_price.go b/modules/service/keeper/oracle_price.go index 5e8c8606..acd2443d 100644 --- a/modules/service/keeper/oracle_price.go +++ b/modules/service/keeper/oracle_price.go @@ -5,8 +5,8 @@ import ( "github.com/tidwall/gjson" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/irisnet/irismod/modules/service/types" ) @@ -50,7 +50,7 @@ func (k Keeper) GetExchangedPrice( func (k Keeper) GetExchangeRate(ctx sdk.Context, quoteDenom, baseDenom string) (sdk.Dec, error) { exchangeRateSvc, exist := k.GetModuleServiceByModuleName(types.RegisterModuleName) if !exist { - return sdk.Dec{}, sdkerrors.Wrapf(types.ErrInvalidModuleService, "module service does not exist: %s", types.RegisterModuleName) + return sdk.Dec{}, errorsmod.Wrapf(types.ErrInvalidModuleService, "module service does not exist: %s", types.RegisterModuleName) } inputBody := fmt.Sprintf(`{"pair":"%s-%s"}`, quoteDenom, baseDenom) @@ -61,7 +61,7 @@ func (k Keeper) GetExchangeRate(ctx sdk.Context, quoteDenom, baseDenom string) ( result, output := exchangeRateSvc.ReuquestService(ctx, input) if code, msg := CheckResult(result); code != types.ResultOK { - return sdk.Dec{}, sdkerrors.Wrapf(types.ErrInvalidModuleService, msg) + return sdk.Dec{}, errorsmod.Wrapf(types.ErrInvalidModuleService, msg) } outputBody := gjson.Get(output, types.PATH_BODY).String() @@ -75,7 +75,7 @@ func (k Keeper) GetExchangeRate(ctx sdk.Context, quoteDenom, baseDenom string) ( } if rate.IsZero() { - return sdk.Dec{}, sdkerrors.Wrapf(types.ErrInvalidResponseOutputBody, "rate can not be zero") + return sdk.Dec{}, errorsmod.Wrapf(types.ErrInvalidResponseOutputBody, "rate can not be zero") } return rate, nil diff --git a/modules/service/keeper/pagination_test.go b/modules/service/keeper/pagination_test.go index 5558257c..b1d6d880 100644 --- a/modules/service/keeper/pagination_test.go +++ b/modules/service/keeper/pagination_test.go @@ -1,9 +1,10 @@ package keeper import ( + "testing" + "github.com/cosmos/cosmos-sdk/types/query" "github.com/stretchr/testify/require" - "testing" ) var ShapePageRequest = shapePageRequest diff --git a/modules/service/types/binding.go b/modules/service/types/binding.go index cac3ca7d..77ccf1f4 100644 --- a/modules/service/types/binding.go +++ b/modules/service/types/binding.go @@ -4,8 +4,8 @@ import ( "encoding/json" "time" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) // NewServiceBinding creates a new ServiceBinding instance @@ -77,12 +77,12 @@ func GetDiscountByVolume(pricing Pricing, volume uint64) sdk.Dec { func ParsePricing(pricing string) (p Pricing, err error) { var rawPricing RawPricing if err := json.Unmarshal([]byte(pricing), &rawPricing); err != nil { - return p, sdkerrors.Wrapf(ErrInvalidPricing, "failed to unmarshal the pricing: %s", err.Error()) + return p, errorsmod.Wrapf(ErrInvalidPricing, "failed to unmarshal the pricing: %s", err.Error()) } priceCoin, err := sdk.ParseCoinNormalized(rawPricing.Price) if err != nil { - return p, sdkerrors.Wrapf(ErrInvalidPricing, "invalid price: %s", err.Error()) + return p, errorsmod.Wrapf(ErrInvalidPricing, "invalid price: %s", err.Error()) } p.Price = sdk.Coins{priceCoin} @@ -99,7 +99,7 @@ func CheckPricing(pricing Pricing) error { // p[i].StartTime >= p[i-1].EndTime for i, p := range pricing.PromotionsByTime { if !p.EndTime.After(p.StartTime) || (i > 0 && p.StartTime.Before(pricing.PromotionsByTime[i-1].EndTime)) { - return sdkerrors.Wrapf(ErrInvalidPricing, "invalid timing promotion %d", i) + return errorsmod.Wrapf(ErrInvalidPricing, "invalid timing promotion %d", i) } } @@ -107,7 +107,7 @@ func CheckPricing(pricing Pricing) error { // p[i].Volume > p[i-1].Volume for i, p := range pricing.PromotionsByVolume { if i > 0 && p.Volume < pricing.PromotionsByVolume[i-1].Volume { - return sdkerrors.Wrapf(ErrInvalidPricing, "invalid volume promotion %d", i) + return errorsmod.Wrapf(ErrInvalidPricing, "invalid volume promotion %d", i) } } diff --git a/modules/service/types/errors.go b/modules/service/types/errors.go index 1690ec53..5729258b 100644 --- a/modules/service/types/errors.go +++ b/modules/service/types/errors.go @@ -1,59 +1,59 @@ package types import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" ) // service module sentinel errors var ( - ErrInvalidServiceName = sdkerrors.Register(ModuleName, 2, "invalid service name, must contain alphanumeric characters, _ and - only,length greater than 0 and less than or equal to 70") - ErrInvalidDescription = sdkerrors.Register(ModuleName, 3, "invalid description") - ErrInvalidTags = sdkerrors.Register(ModuleName, 4, "invalid tags") - ErrInvalidSchemas = sdkerrors.Register(ModuleName, 5, "invalid schemas") - ErrUnknownServiceDefinition = sdkerrors.Register(ModuleName, 6, "unknown service definition") - ErrServiceDefinitionExists = sdkerrors.Register(ModuleName, 7, "service definition already exists") + ErrInvalidServiceName = errorsmod.Register(ModuleName, 2, "invalid service name, must contain alphanumeric characters, _ and - only,length greater than 0 and less than or equal to 70") + ErrInvalidDescription = errorsmod.Register(ModuleName, 3, "invalid description") + ErrInvalidTags = errorsmod.Register(ModuleName, 4, "invalid tags") + ErrInvalidSchemas = errorsmod.Register(ModuleName, 5, "invalid schemas") + ErrUnknownServiceDefinition = errorsmod.Register(ModuleName, 6, "unknown service definition") + ErrServiceDefinitionExists = errorsmod.Register(ModuleName, 7, "service definition already exists") - ErrInvalidDeposit = sdkerrors.Register(ModuleName, 8, "invalid deposit") - ErrInvalidMinDeposit = sdkerrors.Register(ModuleName, 9, "invalid minimum deposit") - ErrInvalidPricing = sdkerrors.Register(ModuleName, 10, "invalid pricing") - ErrInvalidQoS = sdkerrors.Register(ModuleName, 11, "invalid QoS") - ErrInvalidOptions = sdkerrors.Register(ModuleName, 12, "invalid options") - ErrServiceBindingExists = sdkerrors.Register(ModuleName, 13, "service binding already exists") - ErrUnknownServiceBinding = sdkerrors.Register(ModuleName, 14, "unknown service binding") - ErrServiceBindingUnavailable = sdkerrors.Register(ModuleName, 15, "service binding unavailable") - ErrServiceBindingAvailable = sdkerrors.Register(ModuleName, 16, "service binding available") - ErrIncorrectRefundTime = sdkerrors.Register(ModuleName, 17, "incorrect refund time") + ErrInvalidDeposit = errorsmod.Register(ModuleName, 8, "invalid deposit") + ErrInvalidMinDeposit = errorsmod.Register(ModuleName, 9, "invalid minimum deposit") + ErrInvalidPricing = errorsmod.Register(ModuleName, 10, "invalid pricing") + ErrInvalidQoS = errorsmod.Register(ModuleName, 11, "invalid QoS") + ErrInvalidOptions = errorsmod.Register(ModuleName, 12, "invalid options") + ErrServiceBindingExists = errorsmod.Register(ModuleName, 13, "service binding already exists") + ErrUnknownServiceBinding = errorsmod.Register(ModuleName, 14, "unknown service binding") + ErrServiceBindingUnavailable = errorsmod.Register(ModuleName, 15, "service binding unavailable") + ErrServiceBindingAvailable = errorsmod.Register(ModuleName, 16, "service binding available") + ErrIncorrectRefundTime = errorsmod.Register(ModuleName, 17, "incorrect refund time") - ErrInvalidServiceFeeCap = sdkerrors.Register(ModuleName, 18, "invalid service fee cap") - ErrInvalidProviders = sdkerrors.Register(ModuleName, 19, "invalid providers") - ErrInvalidTimeout = sdkerrors.Register(ModuleName, 20, "invalid timeout") - ErrInvalidRepeatedFreq = sdkerrors.Register(ModuleName, 21, "invalid repeated frequency") - ErrInvalidRepeatedTotal = sdkerrors.Register(ModuleName, 22, "invalid repeated total count") - ErrInvalidResponseThreshold = sdkerrors.Register(ModuleName, 23, "invalid response threshold") - ErrInvalidResponse = sdkerrors.Register(ModuleName, 24, "invalid response") - ErrInvalidRequestID = sdkerrors.Register(ModuleName, 25, "invalid request ID") - ErrUnknownRequest = sdkerrors.Register(ModuleName, 26, "unknown request") - ErrUnknownResponse = sdkerrors.Register(ModuleName, 27, "unknown response") - ErrUnknownRequestContext = sdkerrors.Register(ModuleName, 28, "unknown request context") - ErrInvalidRequestContextID = sdkerrors.Register(ModuleName, 29, "invalid request context ID") - ErrRequestContextNonRepeated = sdkerrors.Register(ModuleName, 30, "request context non repeated") - ErrRequestContextNotRunning = sdkerrors.Register(ModuleName, 31, "request context not running") - ErrRequestContextNotPaused = sdkerrors.Register(ModuleName, 32, "request context not paused") - ErrRequestContextCompleted = sdkerrors.Register(ModuleName, 33, "request context completed") - ErrCallbackRegistered = sdkerrors.Register(ModuleName, 34, "callback registered") - ErrCallbackNotRegistered = sdkerrors.Register(ModuleName, 35, "callback not registered") - ErrNoEarnedFees = sdkerrors.Register(ModuleName, 36, "no earned fees") + ErrInvalidServiceFeeCap = errorsmod.Register(ModuleName, 18, "invalid service fee cap") + ErrInvalidProviders = errorsmod.Register(ModuleName, 19, "invalid providers") + ErrInvalidTimeout = errorsmod.Register(ModuleName, 20, "invalid timeout") + ErrInvalidRepeatedFreq = errorsmod.Register(ModuleName, 21, "invalid repeated frequency") + ErrInvalidRepeatedTotal = errorsmod.Register(ModuleName, 22, "invalid repeated total count") + ErrInvalidResponseThreshold = errorsmod.Register(ModuleName, 23, "invalid response threshold") + ErrInvalidResponse = errorsmod.Register(ModuleName, 24, "invalid response") + ErrInvalidRequestID = errorsmod.Register(ModuleName, 25, "invalid request ID") + ErrUnknownRequest = errorsmod.Register(ModuleName, 26, "unknown request") + ErrUnknownResponse = errorsmod.Register(ModuleName, 27, "unknown response") + ErrUnknownRequestContext = errorsmod.Register(ModuleName, 28, "unknown request context") + ErrInvalidRequestContextID = errorsmod.Register(ModuleName, 29, "invalid request context ID") + ErrRequestContextNonRepeated = errorsmod.Register(ModuleName, 30, "request context non repeated") + ErrRequestContextNotRunning = errorsmod.Register(ModuleName, 31, "request context not running") + ErrRequestContextNotPaused = errorsmod.Register(ModuleName, 32, "request context not paused") + ErrRequestContextCompleted = errorsmod.Register(ModuleName, 33, "request context completed") + ErrCallbackRegistered = errorsmod.Register(ModuleName, 34, "callback registered") + ErrCallbackNotRegistered = errorsmod.Register(ModuleName, 35, "callback not registered") + ErrNoEarnedFees = errorsmod.Register(ModuleName, 36, "no earned fees") - ErrInvalidRequestInput = sdkerrors.Register(ModuleName, 37, "invalid request input") - ErrInvalidResponseOutput = sdkerrors.Register(ModuleName, 38, "invalid response output") - ErrInvalidResponseResult = sdkerrors.Register(ModuleName, 39, "invalid response result") + ErrInvalidRequestInput = errorsmod.Register(ModuleName, 37, "invalid request input") + ErrInvalidResponseOutput = errorsmod.Register(ModuleName, 38, "invalid response output") + ErrInvalidResponseResult = errorsmod.Register(ModuleName, 39, "invalid response result") - ErrInvalidSchemaName = sdkerrors.Register(ModuleName, 40, "invalid service schema name") - ErrNotAuthorized = sdkerrors.Register(ModuleName, 41, "not authorized") + ErrInvalidSchemaName = errorsmod.Register(ModuleName, 40, "invalid service schema name") + ErrNotAuthorized = errorsmod.Register(ModuleName, 41, "not authorized") - ErrModuleServiceRegistered = sdkerrors.Register(ModuleName, 42, "module service registered") - ErrInvalidModuleService = sdkerrors.Register(ModuleName, 43, "invalid module service") - ErrBindModuleService = sdkerrors.Register(ModuleName, 44, "can not bind module service") - ErrInvalidRequestInputBody = sdkerrors.Register(ModuleName, 45, "invalid request input body") - ErrInvalidResponseOutputBody = sdkerrors.Register(ModuleName, 46, "invalid response output body") + ErrModuleServiceRegistered = errorsmod.Register(ModuleName, 42, "module service registered") + ErrInvalidModuleService = errorsmod.Register(ModuleName, 43, "invalid module service") + ErrBindModuleService = errorsmod.Register(ModuleName, 44, "can not bind module service") + ErrInvalidRequestInputBody = errorsmod.Register(ModuleName, 45, "invalid request input body") + ErrInvalidResponseOutputBody = errorsmod.Register(ModuleName, 46, "invalid response output body") ) diff --git a/modules/service/types/invocation.go b/modules/service/types/invocation.go index 5cbee447..bddcfa6a 100644 --- a/modules/service/types/invocation.go +++ b/modules/service/types/invocation.go @@ -10,8 +10,8 @@ import ( tmbytes "github.com/cometbft/cometbft/libs/bytes" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) // NewRequestContext creates a new RequestContext instance @@ -196,7 +196,7 @@ func ParseResult(result string) (Result, error) { var r Result if err := json.Unmarshal([]byte(result), &r); err != nil { - return r, sdkerrors.Wrapf( + return r, errorsmod.Wrapf( ErrInvalidResponseResult, "failed to unmarshal the result: %s", err, diff --git a/modules/service/types/msgs.go b/modules/service/types/msgs.go index 46ea6bdb..f91589b0 100644 --- a/modules/service/types/msgs.go +++ b/modules/service/types/msgs.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" ) // Message types for the service module @@ -846,7 +846,7 @@ func (m *MsgUpdateParams) GetSignBytes() []byte { // ValidateBasic executes sanity validation on the provided data func (m *MsgUpdateParams) ValidateBasic() error { if _, err := sdk.AccAddressFromBech32(m.Authority); err != nil { - return sdkerrors.Wrap(err, "invalid authority address") + return errorsmod.Wrap(err, "invalid authority address") } return m.Params.Validate() } diff --git a/modules/service/types/schema.go b/modules/service/types/schema.go index 12237190..7f09da05 100644 --- a/modules/service/types/schema.go +++ b/modules/service/types/schema.go @@ -7,7 +7,7 @@ import ( "github.com/xeipuuv/gojsonschema" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" ) const PATH_BODY = "body" @@ -21,7 +21,7 @@ type ServiceSchemas struct { // ValidateServiceSchemas validates the given service schemas func ValidateServiceSchemas(schemas string) error { if len(schemas) == 0 { - return sdkerrors.Wrap(ErrInvalidSchemas, "schemas missing") + return errorsmod.Wrap(ErrInvalidSchemas, "schemas missing") } svcSchemas, err := parseServiceSchemas(schemas) @@ -43,11 +43,11 @@ func ValidateServiceSchemas(schemas string) error { // ValidateBindingPricing validates the given pricing against the Pricing JSON Schema func ValidateBindingPricing(pricing string) error { if len(pricing) == 0 { - return sdkerrors.Wrap(ErrInvalidPricing, "pricing missing") + return errorsmod.Wrap(ErrInvalidPricing, "pricing missing") } if err := validateDocument([]byte(PricingSchema), pricing); err != nil { - return sdkerrors.Wrap(ErrInvalidPricing, err.Error()) + return errorsmod.Wrap(ErrInvalidPricing, err.Error()) } return nil @@ -56,7 +56,7 @@ func ValidateBindingPricing(pricing string) error { // ValidateRequestInput validates the request input against the input schema func ValidateRequestInput(input string) error { if err := validateDocument([]byte(InputSchema), input); err != nil { - return sdkerrors.Wrap(ErrInvalidRequestInput, err.Error()) + return errorsmod.Wrap(ErrInvalidRequestInput, err.Error()) } return nil } @@ -68,7 +68,7 @@ func ValidateRequestInputBody(schemas string, inputBody string) error { } if err := validateDocument(inputSchemaBz, inputBody); err != nil { - return sdkerrors.Wrap(ErrInvalidRequestInputBody, err.Error()) + return errorsmod.Wrap(ErrInvalidRequestInputBody, err.Error()) } return nil @@ -77,11 +77,11 @@ func ValidateRequestInputBody(schemas string, inputBody string) error { // ValidateResponseResult validates the response result against the result schema func ValidateResponseResult(result string) error { if len(result) == 0 { - return sdkerrors.Wrap(ErrInvalidResponseResult, "result missing") + return errorsmod.Wrap(ErrInvalidResponseResult, "result missing") } if err := validateDocument([]byte(ResultSchema), result); err != nil { - return sdkerrors.Wrap(ErrInvalidResponseResult, err.Error()) + return errorsmod.Wrap(ErrInvalidResponseResult, err.Error()) } return nil @@ -90,7 +90,7 @@ func ValidateResponseResult(result string) error { // ValidateResponseOutput validates the response output against the output schema func ValidateResponseOutput(output string) error { if err := validateDocument([]byte(OutputSchema), output); err != nil { - return sdkerrors.Wrap(ErrInvalidResponseOutput, err.Error()) + return errorsmod.Wrap(ErrInvalidResponseOutput, err.Error()) } return nil } @@ -102,7 +102,7 @@ func ValidateResponseOutputBody(schemas string, outputBody string) error { } if err := validateDocument(outputSchemaBz, outputBody); err != nil { - return sdkerrors.Wrap(ErrInvalidResponseOutputBody, err.Error()) + return errorsmod.Wrap(ErrInvalidResponseOutputBody, err.Error()) } return nil @@ -111,11 +111,11 @@ func ValidateResponseOutputBody(schemas string, outputBody string) error { func validateInputSchema(inputSchema map[string]interface{}) error { inputSchemaBz, err := json.Marshal(inputSchema) if err != nil { - return sdkerrors.Wrap(ErrInvalidSchemas, fmt.Sprintf("failed to marshal the input schema: %s", err)) + return errorsmod.Wrap(ErrInvalidSchemas, fmt.Sprintf("failed to marshal the input schema: %s", err)) } if _, err = gojsonschema.NewSchema(gojsonschema.NewBytesLoader(inputSchemaBz)); err != nil { - return sdkerrors.Wrap(ErrInvalidSchemas, fmt.Sprintf("invalid input schema: %s", err)) + return errorsmod.Wrap(ErrInvalidSchemas, fmt.Sprintf("invalid input schema: %s", err)) } return nil @@ -124,11 +124,11 @@ func validateInputSchema(inputSchema map[string]interface{}) error { func validateOutputSchema(outputSchema map[string]interface{}) error { outputSchemaBz, err := json.Marshal(outputSchema) if err != nil { - return sdkerrors.Wrap(ErrInvalidSchemas, fmt.Sprintf("failed to marshal the output schema: %s", err)) + return errorsmod.Wrap(ErrInvalidSchemas, fmt.Sprintf("failed to marshal the output schema: %s", err)) } if _, err = gojsonschema.NewSchema(gojsonschema.NewBytesLoader(outputSchemaBz)); err != nil { - return sdkerrors.Wrap(ErrInvalidSchemas, fmt.Sprintf("invalid output schema: %s", err)) + return errorsmod.Wrap(ErrInvalidSchemas, fmt.Sprintf("invalid output schema: %s", err)) } return nil @@ -138,7 +138,7 @@ func validateOutputSchema(outputSchema map[string]interface{}) error { func parseServiceSchemas(schemas string) (ServiceSchemas, error) { var svcSchemas ServiceSchemas if err := json.Unmarshal([]byte(schemas), &svcSchemas); err != nil { - return svcSchemas, sdkerrors.Wrap(ErrInvalidSchemas, fmt.Sprintf("failed to unmarshal the schemas: %s", err)) + return svcSchemas, errorsmod.Wrap(ErrInvalidSchemas, fmt.Sprintf("failed to unmarshal the schemas: %s", err)) } return svcSchemas, nil @@ -153,7 +153,7 @@ func parseInputSchema(schemas string) ([]byte, error) { inputSchemaBz, err := json.Marshal(svcSchemas.Input) if err != nil { - return nil, sdkerrors.Wrap(ErrInvalidSchemas, fmt.Sprintf("failed to marshal the input schema: %s", err)) + return nil, errorsmod.Wrap(ErrInvalidSchemas, fmt.Sprintf("failed to marshal the input schema: %s", err)) } return inputSchemaBz, nil @@ -168,7 +168,7 @@ func parseOutputSchema(schemas string) ([]byte, error) { outputSchemaBz, err := json.Marshal(svcSchemas.Output) if err != nil { - return nil, sdkerrors.Wrap(ErrInvalidSchemas, fmt.Sprintf("failed to marshal the output schema: %s", err)) + return nil, errorsmod.Wrap(ErrInvalidSchemas, fmt.Sprintf("failed to marshal the output schema: %s", err)) } return outputSchemaBz, nil diff --git a/modules/service/types/validation.go b/modules/service/types/validation.go index 8869315d..d37ddead 100644 --- a/modules/service/types/validation.go +++ b/modules/service/types/validation.go @@ -6,6 +6,7 @@ import ( "fmt" "regexp" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) @@ -32,7 +33,7 @@ var ( // ValidateAuthor verifies whether the parameters are legal func ValidateAuthor(author string) error { if _, err := sdk.AccAddressFromBech32(author); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid author address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid author address (%s)", err) } return nil } @@ -40,7 +41,7 @@ func ValidateAuthor(author string) error { // ValidateServiceName validates the service name func ValidateServiceName(name string) error { if !regexpServiceName.MatchString(name) || len(name) > MaxNameLength { - return sdkerrors.Wrap(ErrInvalidServiceName, name) + return errorsmod.Wrap(ErrInvalidServiceName, name) } return nil } @@ -48,14 +49,14 @@ func ValidateServiceName(name string) error { // ValidateTags verifies whether the given tags are legal func ValidateTags(tags []string) error { if len(tags) > MaxTagsNum { - return sdkerrors.Wrap(ErrInvalidTags, fmt.Sprintf("invalid tags size; got: %d, max: %d", len(tags), MaxTagsNum)) + return errorsmod.Wrap(ErrInvalidTags, fmt.Sprintf("invalid tags size; got: %d, max: %d", len(tags), MaxTagsNum)) } if HasDuplicate(tags) { - return sdkerrors.Wrap(ErrInvalidTags, "duplicate tag") + return errorsmod.Wrap(ErrInvalidTags, "duplicate tag") } for i, tag := range tags { if !regexpTag.MatchString(tag) { - return sdkerrors.Wrapf(ErrInvalidTags, "tag [%d] is invalid, must match regexp: %s", i, regexpTag.String()) + return errorsmod.Wrapf(ErrInvalidTags, "tag [%d] is invalid, must match regexp: %s", i, regexpTag.String()) } } return nil @@ -64,7 +65,7 @@ func ValidateTags(tags []string) error { // ValidateServiceDescription verifies whether the parameters are legal func ValidateServiceDescription(svcDescription string) error { if len(svcDescription) > MaxDescriptionLength { - return sdkerrors.Wrap(ErrInvalidDescription, fmt.Sprintf("invalid service description length; got: %d, max: %d", len(svcDescription), MaxDescriptionLength)) + return errorsmod.Wrap(ErrInvalidDescription, fmt.Sprintf("invalid service description length; got: %d, max: %d", len(svcDescription), MaxDescriptionLength)) } return nil } @@ -72,7 +73,7 @@ func ValidateServiceDescription(svcDescription string) error { // ValidateAuthorDescription verifies whether the parameters are legal func ValidateAuthorDescription(authorDescription string) error { if len(authorDescription) > MaxDescriptionLength { - return sdkerrors.Wrap(ErrInvalidDescription, fmt.Sprintf("invalid author description length; got: %d, max: %d", len(authorDescription), MaxDescriptionLength)) + return errorsmod.Wrap(ErrInvalidDescription, fmt.Sprintf("invalid author description length; got: %d, max: %d", len(authorDescription), MaxDescriptionLength)) } return nil } @@ -80,7 +81,7 @@ func ValidateAuthorDescription(authorDescription string) error { // ValidateProvider verifies whether the parameters are legal func ValidateProvider(provider string) error { if _, err := sdk.AccAddressFromBech32(provider); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid provider address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid provider address (%s)", err) } return nil } @@ -88,7 +89,7 @@ func ValidateProvider(provider string) error { // ValidateOwner verifies whether the parameters are legal func ValidateOwner(owner string) error { if _, err := sdk.AccAddressFromBech32(owner); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid owner address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid owner address (%s)", err) } return nil } @@ -96,10 +97,10 @@ func ValidateOwner(owner string) error { // ValidateServiceDeposit verifies whether the parameters are legal func ValidateServiceDeposit(deposit sdk.Coins) error { if !deposit.IsValid() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidCoins, "invalid deposit") + return errorsmod.Wrap(sdkerrors.ErrInvalidCoins, "invalid deposit") } if deposit.IsAnyNegative() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidCoins, "invalid deposit") + return errorsmod.Wrap(sdkerrors.ErrInvalidCoins, "invalid deposit") } return nil } @@ -120,7 +121,7 @@ func ValidatePricing(pricing string) error { // ValidateQoS verifies whether the parameters are legal func ValidateQoS(qos uint64) error { if qos == 0 { - return sdkerrors.Wrap(ErrInvalidQoS, "qos must be greater than 0") + return errorsmod.Wrap(ErrInvalidQoS, "qos must be greater than 0") } return nil } @@ -128,7 +129,7 @@ func ValidateQoS(qos uint64) error { // ValidateOptions verifies whether the parameters are legal func ValidateOptions(options string) error { if !json.Valid([]byte(options)) { - return sdkerrors.Wrap(ErrInvalidOptions, "options is not valid JSON") + return errorsmod.Wrap(ErrInvalidOptions, "options is not valid JSON") } return nil } @@ -136,7 +137,7 @@ func ValidateOptions(options string) error { // ValidateWithdrawAddress verifies whether the parameters are legal func ValidateWithdrawAddress(withdrawAddress string) error { if _, err := sdk.AccAddressFromBech32(withdrawAddress); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid withdrawal address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid withdrawal address (%s)", err) } return nil } @@ -167,14 +168,14 @@ func ValidateRequest( return err } if timeout <= 0 { - return sdkerrors.Wrapf(ErrInvalidTimeout, "timeout [%d] must be greater than 0", timeout) + return errorsmod.Wrapf(ErrInvalidTimeout, "timeout [%d] must be greater than 0", timeout) } if repeated { if repeatedFrequency > 0 && repeatedFrequency < uint64(timeout) { - return sdkerrors.Wrapf(ErrInvalidRepeatedFreq, "repeated frequency [%d] must not be less than timeout [%d]", repeatedFrequency, timeout) + return errorsmod.Wrapf(ErrInvalidRepeatedFreq, "repeated frequency [%d] must not be less than timeout [%d]", repeatedFrequency, timeout) } if repeatedTotal < -1 || repeatedTotal == 0 { - return sdkerrors.Wrapf(ErrInvalidRepeatedTotal, "repeated total number [%d] must be greater than 0 or equal to -1", repeatedTotal) + return errorsmod.Wrapf(ErrInvalidRepeatedTotal, "repeated total number [%d] must be greater than 0 or equal to -1", repeatedTotal) } } return nil @@ -197,13 +198,13 @@ func ValidateRequestContextUpdating( } } if timeout < 0 { - return sdkerrors.Wrapf(ErrInvalidTimeout, "timeout must not be less than 0: %d", timeout) + return errorsmod.Wrapf(ErrInvalidTimeout, "timeout must not be less than 0: %d", timeout) } if timeout != 0 && repeatedFrequency != 0 && repeatedFrequency < uint64(timeout) { - return sdkerrors.Wrapf(ErrInvalidRepeatedFreq, "frequency [%d] must not be less than timeout [%d]", repeatedFrequency, timeout) + return errorsmod.Wrapf(ErrInvalidRepeatedFreq, "frequency [%d] must not be less than timeout [%d]", repeatedFrequency, timeout) } if repeatedTotal < -1 { - return sdkerrors.Wrapf(ErrInvalidRepeatedFreq, "repeated total number must not be less than -1: %d", repeatedTotal) + return errorsmod.Wrapf(ErrInvalidRepeatedFreq, "repeated total number must not be less than -1: %d", repeatedTotal) } return nil } @@ -211,7 +212,7 @@ func ValidateRequestContextUpdating( // ValidateConsumer verifies whether the parameters are legal func ValidateConsumer(consumer string) error { if _, err := sdk.AccAddressFromBech32(consumer); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid consumer address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid consumer address (%s)", err) } return nil } @@ -219,10 +220,10 @@ func ValidateConsumer(consumer string) error { // ValidateProviders verifies whether the parameters are legal func ValidateProviders(providers []sdk.AccAddress) error { if len(providers) == 0 { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "providers missing") + return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "providers missing") } if len(providers) > MaxProvidersNum { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "total number of the providers must not be greater than %d", MaxProvidersNum) + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "total number of the providers must not be greater than %d", MaxProvidersNum) } if err := checkDuplicateProviders(providers); err != nil { return err @@ -233,7 +234,7 @@ func ValidateProviders(providers []sdk.AccAddress) error { // ValidateProvidersCanEmpty verifies whether the parameters are legal func ValidateProvidersCanEmpty(providers []sdk.AccAddress) error { if len(providers) > MaxProvidersNum { - return sdkerrors.Wrapf(ErrInvalidProviders, "total number of the providers must not be greater than %d", MaxProvidersNum) + return errorsmod.Wrapf(ErrInvalidProviders, "total number of the providers must not be greater than %d", MaxProvidersNum) } if len(providers) > 0 { if err := checkDuplicateProviders(providers); err != nil { @@ -246,7 +247,7 @@ func ValidateProvidersCanEmpty(providers []sdk.AccAddress) error { // ValidateServiceFeeCap verifies whether the parameters are legal func ValidateServiceFeeCap(serviceFeeCap sdk.Coins) error { if !serviceFeeCap.IsValid() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, fmt.Sprintf("invalid service fee cap: %s", serviceFeeCap)) + return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, fmt.Sprintf("invalid service fee cap: %s", serviceFeeCap)) } return nil } @@ -254,10 +255,10 @@ func ValidateServiceFeeCap(serviceFeeCap sdk.Coins) error { // ValidateRequestID verifies whether the parameters are legal func ValidateRequestID(reqID string) error { if len(reqID) != RequestIDLen { - return sdkerrors.Wrapf(ErrInvalidRequestID, "length of the request ID must be %d", RequestIDLen) + return errorsmod.Wrapf(ErrInvalidRequestID, "length of the request ID must be %d", RequestIDLen) } if _, err := hex.DecodeString(reqID); err != nil { - return sdkerrors.Wrap(ErrInvalidRequestID, "request ID must be a hex encoded string") + return errorsmod.Wrap(ErrInvalidRequestID, "request ID must be a hex encoded string") } return nil } @@ -265,10 +266,10 @@ func ValidateRequestID(reqID string) error { // ValidateContextID verifies whether the parameters are legal func ValidateContextID(contextID string) error { if len(contextID) != ContextIDLen { - return sdkerrors.Wrapf(ErrInvalidRequestContextID, "length of the request context ID must be %d in bytes", ContextIDLen) + return errorsmod.Wrapf(ErrInvalidRequestContextID, "length of the request context ID must be %d in bytes", ContextIDLen) } if _, err := hex.DecodeString(contextID); err != nil { - return sdkerrors.Wrap(ErrInvalidRequestContextID, "request context ID must be a hex encoded string") + return errorsmod.Wrap(ErrInvalidRequestContextID, "request context ID must be a hex encoded string") } return nil } @@ -276,11 +277,11 @@ func ValidateContextID(contextID string) error { // ValidateInput verifies whether the parameters are legal func ValidateInput(input string) error { if len(input) == 0 { - return sdkerrors.Wrap(ErrInvalidRequestInput, "input missing") + return errorsmod.Wrap(ErrInvalidRequestInput, "input missing") } if ValidateRequestInput(input) != nil { - return sdkerrors.Wrap(ErrInvalidRequestInput, "invalid input") + return errorsmod.Wrap(ErrInvalidRequestInput, "invalid input") } return nil @@ -289,15 +290,15 @@ func ValidateInput(input string) error { // ValidateOutput verifies whether the parameters are legal func ValidateOutput(code ResultCode, output string) error { if code == ResultOK && len(output) == 0 { - return sdkerrors.Wrapf(ErrInvalidResponse, "output must be specified when the result code is %v", ResultOK) + return errorsmod.Wrapf(ErrInvalidResponse, "output must be specified when the result code is %v", ResultOK) } if code != ResultOK && len(output) != 0 { - return sdkerrors.Wrapf(ErrInvalidResponse, "output should not be specified when the result code is not %v", ResultOK) + return errorsmod.Wrapf(ErrInvalidResponse, "output should not be specified when the result code is not %v", ResultOK) } if len(output) > 0 && ValidateResponseOutput(output) != nil { - return sdkerrors.Wrap(ErrInvalidResponse, "invalid output") + return errorsmod.Wrap(ErrInvalidResponse, "invalid output") } return nil @@ -311,7 +312,7 @@ func checkDuplicateProviders(providers []sdk.AccAddress) error { } if HasDuplicate(providerArr) { - return sdkerrors.Wrap(ErrInvalidProviders, "there exists duplicate providers") + return errorsmod.Wrap(ErrInvalidProviders, "there exists duplicate providers") } return nil diff --git a/modules/token/handler.go b/modules/token/handler.go index 07cd24af..a9f916e9 100644 --- a/modules/token/handler.go +++ b/modules/token/handler.go @@ -1,6 +1,7 @@ package token import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -41,7 +42,7 @@ func NewHandler(k keeper.Keeper) sdk.Handler { return sdk.WrapServiceResult(ctx, res, err) default: - return nil, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized nft message type: %T", msg) + return nil, errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized nft message type: %T", msg) } } } diff --git a/modules/token/keeper/ante.go b/modules/token/keeper/ante.go index a8b81256..f4c92a02 100644 --- a/modules/token/keeper/ante.go +++ b/modules/token/keeper/ante.go @@ -1,6 +1,7 @@ package keeper import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -30,7 +31,7 @@ func (dtf ValidateTokenFeeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simu case *v1.MsgIssueToken: fee, err := dtf.k.GetTokenIssueFee(ctx, msg.Symbol) if err != nil { - return ctx, sdkerrors.Wrap(types.ErrInvalidBaseFee, err.Error()) + return ctx, errorsmod.Wrap(types.ErrInvalidBaseFee, err.Error()) } if fe, ok := feeMap[msg.Owner]; ok { @@ -46,7 +47,7 @@ func (dtf ValidateTokenFeeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simu fee, err := dtf.k.GetTokenMintFee(ctx, symbol) if err != nil { - return ctx, sdkerrors.Wrap(types.ErrInvalidBaseFee, err.Error()) + return ctx, errorsmod.Wrap(types.ErrInvalidBaseFee, err.Error()) } if fe, ok := feeMap[msg.Owner]; ok { @@ -61,7 +62,7 @@ func (dtf ValidateTokenFeeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simu owner, _ := sdk.AccAddressFromBech32(addr) balance := dtf.bk.GetBalance(ctx, owner, fee.Denom) if balance.IsLT(fee) { - return ctx, sdkerrors.Wrapf( + return ctx, errorsmod.Wrapf( sdkerrors.ErrInsufficientFunds, "insufficient coins for token fee; %s < %s", balance, fee, ) } diff --git a/modules/token/keeper/keeper.go b/modules/token/keeper/keeper.go index 4425c75b..49632656 100644 --- a/modules/token/keeper/keeper.go +++ b/modules/token/keeper/keeper.go @@ -5,11 +5,11 @@ import ( "github.com/cometbft/cometbft/libs/log" + errorsmod "cosmossdk.io/errors" sdkmath "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/codec" storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/irisnet/irismod/modules/token/types" v1 "github.com/irisnet/irismod/modules/token/types/v1" @@ -107,7 +107,7 @@ func (k Keeper) EditToken( } if owner.String() != token.Owner { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrInvalidOwner, "the address %s is not the owner of the token %s", owner, @@ -120,7 +120,7 @@ func (k Keeper) EditToken( issuedMainUnitAmt := issuedAmt.Quo(sdkmath.NewIntWithDecimal(1, int(token.Scale))) if sdk.NewIntFromUint64(maxSupply).LT(issuedMainUnitAmt) { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrInvalidMaxSupply, "max supply must not be less than %s", issuedMainUnitAmt, @@ -161,7 +161,7 @@ func (k Keeper) TransferTokenOwner( } if srcOwner.String() != token.Owner { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrInvalidOwner, "the address %s is not the owner of the token %s", srcOwner, @@ -195,7 +195,7 @@ func (k Keeper) MintToken( } if owner.String() != token.Owner { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrInvalidOwner, "the address %s is not the owner of the token %s", owner, @@ -204,7 +204,7 @@ func (k Keeper) MintToken( } if !token.Mintable { - return sdkerrors.Wrapf(types.ErrNotMintable, "%s", token.Symbol) + return errorsmod.Wrapf(types.ErrNotMintable, "%s", token.Symbol) } supply := k.getTokenSupply(ctx, token.MinUnit) @@ -212,7 +212,7 @@ func (k Keeper) MintToken( mintableAmt := sdk.NewIntFromUint64(token.MaxSupply).Mul(precision).Sub(supply) if coinMinted.Amount.GT(mintableAmt) { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrInvalidAmount, "the amount exceeds the mintable token amount; expected (0, %d], got %d", mintableAmt, coinMinted.Amount, diff --git a/modules/token/keeper/msg_server.go b/modules/token/keeper/msg_server.go index 49940050..67a3b681 100644 --- a/modules/token/keeper/msg_server.go +++ b/modules/token/keeper/msg_server.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" @@ -32,7 +33,7 @@ func (m msgServer) IssueToken( } if m.k.blockedAddrs[msg.Owner] { - return nil, sdkerrors.Wrapf(sdkerrors.ErrUnauthorized, "%s is a module account", msg.Owner) + return nil, errorsmod.Wrapf(sdkerrors.ErrUnauthorized, "%s is a module account", msg.Owner) } ctx := sdk.UnwrapSDKContext(goCtx) @@ -110,7 +111,7 @@ func (m msgServer) MintToken( } if m.k.blockedAddrs[recipient.String()] { - return nil, sdkerrors.Wrapf(sdkerrors.ErrUnauthorized, "%s is a module account", recipient) + return nil, errorsmod.Wrapf(sdkerrors.ErrUnauthorized, "%s is a module account", recipient) } ctx := sdk.UnwrapSDKContext(goCtx) @@ -178,7 +179,7 @@ func (m msgServer) TransferTokenOwner( } if m.k.blockedAddrs[msg.DstOwner] { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( sdkerrors.ErrUnauthorized, "%s is a module account", msg.DstOwner, @@ -220,7 +221,7 @@ func (m msgServer) SwapFeeToken( } if m.k.blockedAddrs[msg.Recipient] { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( sdkerrors.ErrUnauthorized, "%s is a module account", recipient, @@ -254,7 +255,7 @@ func (m msgServer) UpdateParams( msg *v1.MsgUpdateParams, ) (*v1.MsgUpdateParamsResponse, error) { if m.k.authority != msg.Authority { - return nil, sdkerrors.Wrapf( + return nil, errorsmod.Wrapf( sdkerrors.ErrUnauthorized, "invalid authority; expected %s, got %s", m.k.authority, diff --git a/modules/token/keeper/pagination_test.go b/modules/token/keeper/pagination_test.go index 5558257c..b1d6d880 100644 --- a/modules/token/keeper/pagination_test.go +++ b/modules/token/keeper/pagination_test.go @@ -1,9 +1,10 @@ package keeper import ( + "testing" + "github.com/cosmos/cosmos-sdk/types/query" "github.com/stretchr/testify/require" - "testing" ) var ShapePageRequest = shapePageRequest diff --git a/modules/token/keeper/token.go b/modules/token/keeper/token.go index a856df5c..278b0b2a 100644 --- a/modules/token/keeper/token.go +++ b/modules/token/keeper/token.go @@ -5,8 +5,8 @@ import ( gogotypes "github.com/cosmos/gogoproto/types" + 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/irisnet/irismod/modules/token/types" @@ -59,13 +59,13 @@ func (k Keeper) GetToken(ctx sdk.Context, denom string) (v1.TokenI, error) { return &token, nil } - return nil, sdkerrors.Wrapf(types.ErrTokenNotExists, "token: %s does not exist", denom) + return nil, errorsmod.Wrapf(types.ErrTokenNotExists, "token: %s does not exist", denom) } // AddToken saves a new token func (k Keeper) AddToken(ctx sdk.Context, token v1.Token) error { if k.HasToken(ctx, token.Symbol) { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrSymbolAlreadyExists, "symbol already exists: %s", token.Symbol, @@ -73,7 +73,7 @@ func (k Keeper) AddToken(ctx sdk.Context, token v1.Token) error { } if k.HasToken(ctx, token.MinUnit) { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( types.ErrMinUnitAlreadyExists, "min-unit already exists: %s", token.MinUnit, @@ -155,7 +155,7 @@ func (k Keeper) GetBurnCoin(ctx sdk.Context, minUint string) (sdk.Coin, error) { bz := store.Get(key) if len(bz) == 0 { - return sdk.Coin{}, sdkerrors.Wrapf( + return sdk.Coin{}, errorsmod.Wrapf( types.ErrNotFoundTokenAmt, "not found symbol: %s", minUint, @@ -211,7 +211,7 @@ func (k Keeper) getTokenBySymbol(ctx sdk.Context, symbol string) (token v1.Token bz := store.Get(types.KeySymbol(symbol)) if bz == nil { - return token, sdkerrors.Wrap( + return token, errorsmod.Wrap( types.ErrTokenNotExists, fmt.Sprintf("token symbol %s does not exist", symbol), ) @@ -226,7 +226,7 @@ func (k Keeper) getTokenByMinUnit(ctx sdk.Context, minUnit string) (token v1.Tok bz := store.Get(types.KeyMinUint(minUnit)) if bz == nil { - return token, sdkerrors.Wrap( + return token, errorsmod.Wrap( types.ErrTokenNotExists, fmt.Sprintf("token minUnit %s does not exist", minUnit), ) @@ -248,7 +248,7 @@ func (k Keeper) getSymbolByMinUnit(ctx sdk.Context, minUnit string) (string, err bz := store.Get(types.KeyMinUint(minUnit)) if bz == nil { - return "", sdkerrors.Wrap( + return "", errorsmod.Wrap( types.ErrTokenNotExists, fmt.Sprintf("token minUnit %s does not exist", minUnit), ) diff --git a/modules/token/types/errors.go b/modules/token/types/errors.go index 24e4bc6f..af557a2a 100644 --- a/modules/token/types/errors.go +++ b/modules/token/types/errors.go @@ -2,26 +2,26 @@ package types import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + errorsmod "cosmossdk.io/errors" ) // token module sentinel errors var ( - ErrInvalidName = sdkerrors.Register(ModuleName, 2, "invalid token name") - ErrInvalidMinUnit = sdkerrors.Register(ModuleName, 3, "invalid token min unit") - ErrInvalidSymbol = sdkerrors.Register(ModuleName, 4, "invalid standard denom") - ErrInvalidInitSupply = sdkerrors.Register(ModuleName, 5, "invalid token initial supply") - ErrInvalidMaxSupply = sdkerrors.Register(ModuleName, 6, "invalid token maximum supply") - ErrInvalidScale = sdkerrors.Register(ModuleName, 7, "invalid token scale") - ErrSymbolAlreadyExists = sdkerrors.Register(ModuleName, 8, "symbol already exists") - ErrMinUnitAlreadyExists = sdkerrors.Register(ModuleName, 9, "min unit already exists") - ErrTokenNotExists = sdkerrors.Register(ModuleName, 10, "token does not exist") - ErrInvalidToAddress = sdkerrors.Register(ModuleName, 11, "the new owner must not be same as the original owner") - ErrInvalidOwner = sdkerrors.Register(ModuleName, 12, "invalid token owner") - ErrNotMintable = sdkerrors.Register(ModuleName, 13, "token is not mintable") - ErrNotFoundTokenAmt = sdkerrors.Register(ModuleName, 14, "burned token amount not found") - ErrInvalidAmount = sdkerrors.Register(ModuleName, 15, "invalid amount") - ErrInvalidBaseFee = sdkerrors.Register(ModuleName, 16, "invalid base fee") - ErrInvalidSwap = sdkerrors.Register(ModuleName, 17, "unregistered swapable fee token") - ErrInsufficientFee = sdkerrors.Register(ModuleName, 18, "the amount of tokens after swap is less than 1") + ErrInvalidName = errorsmod.Register(ModuleName, 2, "invalid token name") + ErrInvalidMinUnit = errorsmod.Register(ModuleName, 3, "invalid token min unit") + ErrInvalidSymbol = errorsmod.Register(ModuleName, 4, "invalid standard denom") + ErrInvalidInitSupply = errorsmod.Register(ModuleName, 5, "invalid token initial supply") + ErrInvalidMaxSupply = errorsmod.Register(ModuleName, 6, "invalid token maximum supply") + ErrInvalidScale = errorsmod.Register(ModuleName, 7, "invalid token scale") + ErrSymbolAlreadyExists = errorsmod.Register(ModuleName, 8, "symbol already exists") + ErrMinUnitAlreadyExists = errorsmod.Register(ModuleName, 9, "min unit already exists") + ErrTokenNotExists = errorsmod.Register(ModuleName, 10, "token does not exist") + ErrInvalidToAddress = errorsmod.Register(ModuleName, 11, "the new owner must not be same as the original owner") + ErrInvalidOwner = errorsmod.Register(ModuleName, 12, "invalid token owner") + ErrNotMintable = errorsmod.Register(ModuleName, 13, "token is not mintable") + ErrNotFoundTokenAmt = errorsmod.Register(ModuleName, 14, "burned token amount not found") + ErrInvalidAmount = errorsmod.Register(ModuleName, 15, "invalid amount") + ErrInvalidBaseFee = errorsmod.Register(ModuleName, 16, "invalid base fee") + ErrInvalidSwap = errorsmod.Register(ModuleName, 17, "unregistered swapable fee token") + ErrInsufficientFee = errorsmod.Register(ModuleName, 18, "the amount of tokens after swap is less than 1") ) diff --git a/modules/token/types/v1/msgs.go b/modules/token/types/v1/msgs.go index 7166afe6..9f61fe92 100644 --- a/modules/token/types/v1/msgs.go +++ b/modules/token/types/v1/msgs.go @@ -1,6 +1,7 @@ package v1 import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -59,7 +60,7 @@ func (msg MsgIssueToken) Type() string { return TypeMsgIssueToken } func (msg MsgIssueToken) ValidateBasic() error { owner, err := sdk.AccAddressFromBech32(msg.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 NewToken( @@ -124,7 +125,7 @@ func (msg MsgTransferTokenOwner) GetSigners() []sdk.AccAddress { func (msg MsgTransferTokenOwner) ValidateBasic() error { srcOwner, err := sdk.AccAddressFromBech32(msg.SrcOwner) if err != nil { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( sdkerrors.ErrInvalidAddress, "invalid source owner address (%s)", err, @@ -133,7 +134,7 @@ func (msg MsgTransferTokenOwner) ValidateBasic() error { dstOwner, err := sdk.AccAddressFromBech32(msg.DstOwner) if err != nil { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( sdkerrors.ErrInvalidAddress, "invalid destination owner address (%s)", err, @@ -204,7 +205,7 @@ func (msg MsgEditToken) GetSigners() []sdk.AccAddress { func (msg MsgEditToken) ValidateBasic() error { // check owner if _, err := sdk.AccAddressFromBech32(msg.Owner); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid owner address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid owner address (%s)", err) } if err := tokentypes.ValidateName(msg.Name); err != nil { @@ -242,13 +243,13 @@ func (msg MsgMintToken) GetSigners() []sdk.AccAddress { func (msg MsgMintToken) ValidateBasic() error { // check the owner if _, err := sdk.AccAddressFromBech32(msg.Owner); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid owner address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid owner address (%s)", err) } // check the reception if len(msg.To) > 0 { if _, err := sdk.AccAddressFromBech32(msg.To); err != nil { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( sdkerrors.ErrInvalidAddress, "invalid mint reception address (%s)", err, @@ -287,7 +288,7 @@ func (msg MsgBurnToken) GetSigners() []sdk.AccAddress { func (msg MsgBurnToken) ValidateBasic() error { // check the owner if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid owner address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid owner address (%s)", err) } return tokentypes.ValidateCoin(msg.Coin) @@ -315,12 +316,12 @@ func (msg MsgSwapFeeToken) GetSignBytes() []byte { func (msg MsgSwapFeeToken) ValidateBasic() error { // check the Sender if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err) } if len(msg.Recipient) != 0 { if _, err := sdk.AccAddressFromBech32(msg.Recipient); err != nil { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( sdkerrors.ErrInvalidAddress, "invalid recipient address (%s)", err, @@ -341,7 +342,7 @@ func (m *MsgUpdateParams) GetSignBytes() []byte { // ValidateBasic executes sanity validation on the provided data func (m *MsgUpdateParams) ValidateBasic() error { if _, err := sdk.AccAddressFromBech32(m.Authority); err != nil { - return sdkerrors.Wrap(err, "invalid authority address") + return errorsmod.Wrap(err, "invalid authority address") } return m.Params.Validate() } diff --git a/modules/token/types/v1/msgs_test.go b/modules/token/types/v1/msgs_test.go index f7dbbe06..96c0ff7f 100644 --- a/modules/token/types/v1/msgs_test.go +++ b/modules/token/types/v1/msgs_test.go @@ -9,6 +9,7 @@ import ( sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" + tokentypes "github.com/irisnet/irismod/modules/token/types" ) diff --git a/modules/token/types/v1/token.go b/modules/token/types/v1/token.go index a98c6505..7c849ed6 100644 --- a/modules/token/types/v1/token.go +++ b/modules/token/types/v1/token.go @@ -5,6 +5,7 @@ import ( "github.com/cosmos/gogoproto/proto" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -115,7 +116,7 @@ func (t Token) ToMainCoin(coin sdk.Coin) (sdk.DecCoin, error) { return sdk.NewDecCoinFromDec( coin.Denom, sdk.ZeroDec(), - ), sdkerrors.Wrapf( + ), errorsmod.Wrapf( tokentypes.ErrTokenNotExists, "not the token min_unit", ) @@ -133,7 +134,7 @@ func (t Token) ToMinCoin(coin sdk.DecCoin) (newCoin sdk.Coin, err error) { return sdk.NewCoin( coin.Denom, sdk.ZeroInt(), - ), sdkerrors.Wrapf( + ), errorsmod.Wrapf( tokentypes.ErrTokenNotExists, "not the token symbol", ) @@ -149,7 +150,7 @@ func (t Token) ToMinCoin(coin sdk.DecCoin) (newCoin sdk.Coin, err error) { func (t Token) Validate() error { if len(t.Owner) > 0 { if _, err := sdk.AccAddressFromBech32(t.Owner); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid owner address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid owner address (%s)", err) } } if err := tokentypes.ValidateName(t.Name); err != nil { @@ -165,7 +166,7 @@ func (t Token) Validate() error { return err } if t.MaxSupply < t.InitialSupply { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( tokentypes.ErrInvalidMaxSupply, "invalid token max supply %d, only accepts value [%d, %d]", t.MaxSupply, diff --git a/modules/token/types/v1beta1/msgs.go b/modules/token/types/v1beta1/msgs.go index d6f9de4b..ae46b4d5 100644 --- a/modules/token/types/v1beta1/msgs.go +++ b/modules/token/types/v1beta1/msgs.go @@ -1,8 +1,10 @@ package v1beta1 import ( + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + tokentypes "github.com/irisnet/irismod/modules/token/types" ) @@ -56,7 +58,7 @@ func (msg MsgIssueToken) Type() string { return TypeMsgIssueToken } func (msg MsgIssueToken) ValidateBasic() error { owner, err := sdk.AccAddressFromBech32(msg.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 NewToken( @@ -121,12 +123,12 @@ func (msg MsgTransferTokenOwner) GetSigners() []sdk.AccAddress { func (msg MsgTransferTokenOwner) ValidateBasic() error { srcOwner, err := sdk.AccAddressFromBech32(msg.SrcOwner) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid source owner address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid source owner address (%s)", err) } dstOwner, err := sdk.AccAddressFromBech32(msg.DstOwner) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid destination owner address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid destination owner address (%s)", err) } // check if the `DstOwner` is same as the original owner @@ -188,7 +190,7 @@ func (msg MsgEditToken) GetSigners() []sdk.AccAddress { func (msg MsgEditToken) ValidateBasic() error { // check owner if _, err := sdk.AccAddressFromBech32(msg.Owner); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid owner address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid owner address (%s)", err) } if err := tokentypes.ValidateName(msg.Name); err != nil { @@ -236,13 +238,13 @@ func (msg MsgMintToken) GetSigners() []sdk.AccAddress { func (msg MsgMintToken) ValidateBasic() error { // check the owner if _, err := sdk.AccAddressFromBech32(msg.Owner); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid owner address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid owner address (%s)", err) } // check the reception if len(msg.To) > 0 { if _, err := sdk.AccAddressFromBech32(msg.To); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid mint reception address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid mint reception address (%s)", err) } } @@ -290,7 +292,7 @@ func (msg MsgBurnToken) GetSigners() []sdk.AccAddress { func (msg MsgBurnToken) ValidateBasic() error { // check the owner if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid owner address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid owner address (%s)", err) } if err := tokentypes.ValidateAmount(msg.Amount); err != nil { diff --git a/modules/token/types/v1beta1/msgs_test.go b/modules/token/types/v1beta1/msgs_test.go index 43f7fff7..2554258a 100644 --- a/modules/token/types/v1beta1/msgs_test.go +++ b/modules/token/types/v1beta1/msgs_test.go @@ -8,6 +8,7 @@ import ( "github.com/cometbft/cometbft/crypto/tmhash" sdk "github.com/cosmos/cosmos-sdk/types" + tokentypes "github.com/irisnet/irismod/modules/token/types" ) diff --git a/modules/token/types/v1beta1/token.go b/modules/token/types/v1beta1/token.go index 1e44d4d5..2bc80bcc 100644 --- a/modules/token/types/v1beta1/token.go +++ b/modules/token/types/v1beta1/token.go @@ -6,8 +6,10 @@ import ( "github.com/cosmos/gogoproto/proto" "gopkg.in/yaml.v2" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + tokentypes "github.com/irisnet/irismod/modules/token/types" ) @@ -114,7 +116,7 @@ func (t Token) ToMainCoin(coin sdk.Coin) (sdk.DecCoin, error) { return sdk.NewDecCoinFromDec( coin.Denom, sdk.ZeroDec(), - ), sdkerrors.Wrapf( + ), errorsmod.Wrapf( tokentypes.ErrTokenNotExists, "token not match", ) @@ -136,7 +138,7 @@ func (t Token) ToMinCoin(coin sdk.DecCoin) (newCoin sdk.Coin, err error) { return sdk.NewCoin( coin.Denom, sdk.ZeroInt(), - ), sdkerrors.Wrapf( + ), errorsmod.Wrapf( tokentypes.ErrTokenNotExists, "token not match", ) @@ -156,7 +158,7 @@ func (t Token) ToMinCoin(coin sdk.DecCoin) (newCoin sdk.Coin, err error) { func (t Token) Validate() error { if len(t.Owner) > 0 { if _, err := sdk.AccAddressFromBech32(t.Owner); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid owner address (%s)", err) + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid owner address (%s)", err) } } if err := tokentypes.ValidateName(t.Name); err != nil { @@ -172,7 +174,7 @@ func (t Token) Validate() error { return err } if t.MaxSupply < t.InitialSupply { - return sdkerrors.Wrapf( + return errorsmod.Wrapf( tokentypes.ErrInvalidMaxSupply, "invalid token max supply %d, only accepts value [%d, %d]", t.MaxSupply, diff --git a/modules/token/types/v1beta1/token_test.go b/modules/token/types/v1beta1/token_test.go index e0ec6da3..4b3da526 100644 --- a/modules/token/types/v1beta1/token_test.go +++ b/modules/token/types/v1beta1/token_test.go @@ -7,6 +7,7 @@ import ( sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" + tokentypes "github.com/irisnet/irismod/modules/token/types" ) diff --git a/modules/token/types/validation.go b/modules/token/types/validation.go index 7e91307f..704ba5df 100644 --- a/modules/token/types/validation.go +++ b/modules/token/types/validation.go @@ -6,6 +6,7 @@ import ( "regexp" "strings" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) @@ -54,7 +55,7 @@ var ( // ValidateInitialSupply verifies whether the initial supply is legal func ValidateInitialSupply(initialSupply uint64) error { if initialSupply > MaximumInitSupply { - return sdkerrors.Wrapf(ErrInvalidInitSupply, "invalid token initial supply %d, only accepts value [0, %d]", initialSupply, MaximumInitSupply) + return errorsmod.Wrapf(ErrInvalidInitSupply, "invalid token initial supply %d, only accepts value [0, %d]", initialSupply, MaximumInitSupply) } return nil } @@ -62,7 +63,7 @@ func ValidateInitialSupply(initialSupply uint64) error { // ValidateName verifies whether the given name is legal func ValidateName(name string) error { if len(name) == 0 || len(name) > MaximumNameLen { - return sdkerrors.Wrapf(ErrInvalidName, "invalid token name %s, only accepts length (0, %d]", name, MaximumNameLen) + return errorsmod.Wrapf(ErrInvalidName, "invalid token name %s, only accepts length (0, %d]", name, MaximumNameLen) } return nil } @@ -70,7 +71,7 @@ func ValidateName(name string) error { // ValidateScale verifies whether the given scale is legal func ValidateScale(scale uint32) error { if scale > MaximumScale { - return sdkerrors.Wrapf(ErrInvalidScale, "invalid token scale %d, only accepts value [0, %d]", scale, MaximumScale) + return errorsmod.Wrapf(ErrInvalidScale, "invalid token scale %d, only accepts value [0, %d]", scale, MaximumScale) } return nil } @@ -78,7 +79,7 @@ func ValidateScale(scale uint32) error { // ValidateMinUnit checks if the given min unit is valid func ValidateMinUnit(minUnit string) error { if !regexpMinUint(minUnit) { - return sdkerrors.Wrapf(ErrInvalidMinUnit, "invalid minUnit: %s, only accepts english lowercase letters and numbers, length [%d, %d], and begin with an english letter, regexp: %s", minUnit, MinimumMinUnitLen, MaximumMinUnitLen, regexpMinUintFmt) + return errorsmod.Wrapf(ErrInvalidMinUnit, "invalid minUnit: %s, only accepts english lowercase letters and numbers, length [%d, %d], and begin with an english letter, regexp: %s", minUnit, MinimumMinUnitLen, MaximumMinUnitLen, regexpMinUintFmt) } return ValidateKeywords(minUnit) } @@ -86,7 +87,7 @@ func ValidateMinUnit(minUnit string) error { // ValidateSymbol checks if the given symbol is valid func ValidateSymbol(symbol string) error { if !regexpSymbol(symbol) { - return sdkerrors.Wrapf(ErrInvalidSymbol, "invalid symbol: %s, only accepts english lowercase letters and numbers, length [%d, %d], and begin with an english letter, regexp: %s", symbol, MinimumSymbolLen, MaximumSymbolLen, regexpSymbolFmt) + return errorsmod.Wrapf(ErrInvalidSymbol, "invalid symbol: %s, only accepts english lowercase letters and numbers, length [%d, %d], and begin with an english letter, regexp: %s", symbol, MinimumSymbolLen, MaximumSymbolLen, regexpSymbolFmt) } return ValidateKeywords(symbol) } @@ -94,7 +95,7 @@ func ValidateSymbol(symbol string) error { // ValidateKeywords checks if the given denom begins with `TokenKeywords` func ValidateKeywords(denom string) error { if regexpKeyword(denom) { - return sdkerrors.Wrapf(ErrInvalidSymbol, "invalid token: %s, can not begin with keyword: (%s)", denom, keywords) + return errorsmod.Wrapf(ErrInvalidSymbol, "invalid token: %s, can not begin with keyword: (%s)", denom, keywords) } return nil } @@ -102,7 +103,7 @@ func ValidateKeywords(denom string) error { // ValidateAmount checks if the given denom begins with `TokenKeywords` func ValidateAmount(amount uint64) error { if amount == 0 { - return sdkerrors.Wrapf(ErrInvalidMaxSupply, "invalid token amount %d, only accepts value (0, %d]", amount, uint64(MaximumMaxSupply)) + return errorsmod.Wrapf(ErrInvalidMaxSupply, "invalid token amount %d, only accepts value (0, %d]", amount, uint64(MaximumMaxSupply)) } return nil } @@ -110,7 +111,7 @@ func ValidateAmount(amount uint64) error { // ValidateCoin checks if the given coin func ValidateCoin(coin sdk.Coin) error { if !coin.IsPositive() { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidCoins, "invalid coin (%s)", coin.String()) + return errorsmod.Wrapf(sdkerrors.ErrInvalidCoins, "invalid coin (%s)", coin.String()) } return ValidateMinUnit(coin.Denom) } diff --git a/simapp/export.go b/simapp/export.go index 753be0cc..5bdef6cb 100644 --- a/simapp/export.go +++ b/simapp/export.go @@ -6,6 +6,7 @@ import ( "log" tmproto "github.com/cometbft/cometbft/proto/tendermint/types" + "github.com/irisnet/irismod/modules/htlc" "github.com/irisnet/irismod/modules/oracle" "github.com/irisnet/irismod/modules/random"