From 3b95c79e2012f904f3218435e2b45b6805af8801 Mon Sep 17 00:00:00 2001 From: "riccardo.montagnin" Date: Fri, 3 Jul 2020 08:28:20 +0200 Subject: [PATCH 1/7] Updated Cosmos to v0.38.5 --- go.mod | 12 ++++++------ go.sum | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 56 insertions(+), 10 deletions(-) diff --git a/go.mod b/go.mod index 2fc6d18913..f9e3e39566 100644 --- a/go.mod +++ b/go.mod @@ -3,15 +3,15 @@ module github.com/desmos-labs/desmos go 1.13 require ( - github.com/btcsuite/btcd v0.0.0-20190115013929-ed77733ec07d - github.com/cosmos/cosmos-sdk v0.38.4 + github.com/btcsuite/btcd v0.20.1-beta + github.com/cosmos/cosmos-sdk v0.38.5 github.com/desmos-labs/Go-Emoji-Utils v1.1.1-0.20200515063516-9c493b11de3e github.com/gorilla/mux v1.7.3 github.com/otiai10/copy v1.0.2 - github.com/spf13/cobra v0.0.6 - github.com/spf13/viper v1.6.2 + github.com/spf13/cobra v1.0.0 + github.com/spf13/viper v1.6.3 github.com/stretchr/testify v1.5.1 github.com/tendermint/go-amino v0.15.1 - github.com/tendermint/tendermint v0.33.3 - github.com/tendermint/tm-db v0.5.0 + github.com/tendermint/tendermint v0.33.6 + github.com/tendermint/tm-db v0.5.1 ) diff --git a/go.sum b/go.sum index c0673bbe3e..2c7da67a7a 100644 --- a/go.sum +++ b/go.sum @@ -6,6 +6,8 @@ github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/ChainSafe/go-schnorrkel v0.0.0-20200102211924-4bcbc698314f h1:4O1om+UVU+Hfcihr1timk8YNXHxzZWgCo7ofnrZRApw= github.com/ChainSafe/go-schnorrkel v0.0.0-20200102211924-4bcbc698314f/go.mod h1:URdX5+vg25ts3aCh8H5IFZybJYKWhJHYMTnf+ULtoC4= +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/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc= @@ -43,9 +45,14 @@ github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/btcsuite/btcd v0.0.0-20190115013929-ed77733ec07d h1:xG8Pj6Y6J760xwETNmMzmlt38QSwz0BLp1cZ09g27uw= github.com/btcsuite/btcd v0.0.0-20190115013929-ed77733ec07d/go.mod h1:d3C0AkH6BRcvO8T0UEPu53cnw4IbV63x1bEjildYhO0= +github.com/btcsuite/btcd v0.20.1-beta h1:Ik4hyJqN8Jfyv3S4AGBOmyouMsYE3EdYODkMbQjwPGw= +github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= github.com/btcsuite/btcutil v0.0.0-20180706230648-ab6388e0c60a h1:RQMUrEILyYJEoAT34XS/kLu40vC0+po/UfxrBBA4qZE= github.com/btcsuite/btcutil v0.0.0-20180706230648-ab6388e0c60a/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/btcutil v1.0.2 h1:9iZ1Terx9fMIOtq1VrwdqfsATL9MC2l8ZrUY6YZ2uts= +github.com/btcsuite/btcutil v1.0.2/go.mod h1:j9HUFwoQRsZL3V4n+qG+CUnEGHOarIxfC3Le2Yhbcts= github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= @@ -65,13 +72,14 @@ github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:z github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cosmos/cosmos-sdk v0.38.4 h1:jPZOvhMQkm7wwwzcLxuluhVpKfuIgddNGt999pAiz/Y= -github.com/cosmos/cosmos-sdk v0.38.4/go.mod h1:rzWOofbKfRt3wxiylmYWEFHnxxGj0coyqgWl2I9obAw= +github.com/cosmos/cosmos-sdk v0.38.5 h1:hLSrm4pvhqbA+zhyY+ltEfpynjLGeKFefctK8kHG6TE= +github.com/cosmos/cosmos-sdk v0.38.5/go.mod h1:o5V2eXScgPWh8BkKr2Z2Zq+NEt1RFW8l1HBk87JG+PY= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d h1:49RLWk1j44Xu4fjHb6JFYmeUnDORVwHNkDxaQ0ctCVU= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/ledger-cosmos-go v0.11.1 h1:9JIYsGnXP613pb2vPjFeMMjBI5lEDsEaF6oYorTy6J4= @@ -156,6 +164,12 @@ github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.3.4 h1:87PNWwrRvUSnqS4dlcBU/ftvOIBep4sYuBLlh6rX2wk= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0 h1:oOuy+ugB+P/kBdUnG5QaMXSIyJ1q38wWSojYCb3z5VQ= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= @@ -183,6 +197,8 @@ github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= @@ -192,6 +208,8 @@ github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8 github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= github.com/gtank/merlin v0.1.1-0.20191105220539-8318aed1a79f h1:8N8XWLZelZNibkhM1FuF+3Ad3YIbgirjdMiVA0eUkaM= github.com/gtank/merlin v0.1.1-0.20191105220539-8318aed1a79f/go.mod h1:T86dnYJhcGOh5BjZFCJWTDeTK7XW8uE+E21Cy/bIQ+s= +github.com/gtank/merlin v0.1.1 h1:eQ90iG7K9pOhtereWsmyRJ6RAwcP4tHTDBHXNg+u5is= +github.com/gtank/merlin v0.1.1/go.mod h1:T86dnYJhcGOh5BjZFCJWTDeTK7XW8uE+E21Cy/bIQ+s= github.com/gtank/ristretto255 v0.1.2 h1:JEqUCPA1NvLq5DwYtuzigd7ss8fwbYay9fi4/5uMzcc= github.com/gtank/ristretto255 v0.1.2/go.mod h1:Ph5OpO6c7xKUGROZfWVLiJf9icMDwUeIvY4OmlYW69o= github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= @@ -270,6 +288,8 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5 github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643 h1:hLDRPB66XQT/8+wG9WsDpiCvZf1yKO7sz7scAjSlBa0= github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= +github.com/minio/highwayhash v1.0.0 h1:iMSDhgUILCr0TNm8LWlSjF8N0ZIj2qbO8WHp6Q/J2BA= +github.com/minio/highwayhash v1.0.0/go.mod h1:xQboMTeM9nY9v/LlAOxFctujiv5+Aq2hR5dxBpaMbdc= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= @@ -343,6 +363,8 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.5.0 h1:Ctq0iGpCmr3jeP77kbF2UxgvRwzWWz+4Bh9/vJTyg1A= github.com/prometheus/client_golang v1.5.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= +github.com/prometheus/client_golang v1.5.1 h1:bdHYieyGlH+6OLEk2YQha8THib30KP0/yD0YH9m6xcA= +github.com/prometheus/client_golang v1.5.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 h1:S/YWwWx/RA8rT8tKFRuGUZhuA90OyIBpPCXkcbwU8DE= @@ -372,6 +394,8 @@ github.com/rakyll/statik v0.1.6 h1:uICcfUXpgqtw2VopbIncslhAmE5hwc4g20TEyEENBNs= github.com/rakyll/statik v0.1.6/go.mod h1:OEi9wJV/fMUAGx1eNjq75DKDsJVuEv1U0oYdX6GX8Zs= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a h1:9ZKAASQSHhDYGoxY8uLVpewe1GDZ2vu2Tr/vTdVAkFQ= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 h1:MkV+77GLUNo5oJ0jf870itWm3D0Sjh7+Za9gazKc5LQ= +github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= @@ -399,6 +423,8 @@ github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkU github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.6 h1:breEStsVwemnKh2/s6gMvSdMEkwW0sK8vGStnlVBMCs= github.com/spf13/cobra v0.0.6/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= +github.com/spf13/cobra v1.0.0 h1:6m/oheQuQ13N9ks4hubMG6BnvwOeaJrqSPLahSnczz8= +github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= @@ -410,6 +436,8 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/spf13/viper v1.6.2 h1:7aKfF+e8/k68gda3LOjo5RxiUqddoFxVq4BKBPrxk5E= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= +github.com/spf13/viper v1.6.3 h1:pDDu1OyEDTKzpJwdq4TiuLyMsUgRa/BT5cn5O62NoHs= +github.com/spf13/viper v1.6.3/go.mod h1:jUMtyi0/lB5yZH/FjyGAoH7IMNrIhlBf6pXZmbMDvzw= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= @@ -440,11 +468,13 @@ github.com/tendermint/iavl v0.13.2 h1:O1m08/Ciy53l9IYmf75uIRVvrNsfjEbre8u/yCu/oq github.com/tendermint/iavl v0.13.2/go.mod h1:vE1u0XAGXYjHykd4BLp8p/yivrw2PF1TuoljBcsQoGA= github.com/tendermint/tendermint v0.33.2 h1:NzvRMTuXJxqSsFed2J7uHmMU5N1CVzSpfi3nCc882KY= github.com/tendermint/tendermint v0.33.2/go.mod h1:25DqB7YvV1tN3tHsjWoc2vFtlwICfrub9XO6UBO+4xk= -github.com/tendermint/tendermint v0.33.3 h1:6lMqjEoCGejCzAghbvfQgmw87snGSqEhDTo/jw+W8CI= -github.com/tendermint/tendermint v0.33.3/go.mod h1:25DqB7YvV1tN3tHsjWoc2vFtlwICfrub9XO6UBO+4xk= +github.com/tendermint/tendermint v0.33.6 h1:W4UOsXY4ROJZ3TLLGVVv71VXD4WK2gJRb3gzeced+mg= +github.com/tendermint/tendermint v0.33.6/go.mod h1:0yUs9eIuuDq07nQql9BmI30FtYGcEC60Tu5JzB5IezM= github.com/tendermint/tm-db v0.4.1/go.mod h1:JsJ6qzYkCGiGwm5GHl/H5GLI9XLb6qZX7PRe425dHAY= github.com/tendermint/tm-db v0.5.0 h1:qtM5UTr1dlRnHtDY6y7MZO5Di8XAE2j3lc/pCnKJ5hQ= github.com/tendermint/tm-db v0.5.0/go.mod h1:lSq7q5WRR/njf1LnhiZ/lIJHk2S8Y1Zyq5oP/3o9C2U= +github.com/tendermint/tm-db v0.5.1 h1:H9HDq8UEA7Eeg13kdYckkgwwkQLBnJGgX4PgLJRhieY= +github.com/tendermint/tm-db v0.5.1/go.mod h1:g92zWjHpCYlEvQXvy9M168Su8V1IBEeawpXVVBaK4f4= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -478,6 +508,9 @@ golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413 h1:ULYEB3JvPRE/IfO+9uO7vKV/xzVTO7XPAwm8xbf4w2g= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200406173513-056763e48d71 h1:DOmugCavvUtnUD114C1Wh+UgTgQZ4pMLzXxi1pSt+/Y= +golang.org/x/crypto v0.0.0-20200406173513-056763e48d71/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -509,6 +542,8 @@ golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7 h1:fHDIZ2oxGnUZRN6WgWFCbYBjH golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2 h1:CCH4IOTTfewWjGOlSp+zGcjutRKlBEZQ6wTn8ozI/nI= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= 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/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -525,6 +560,7 @@ golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -537,6 +573,8 @@ golang.org/x/sys v0.0.0-20200116001909-b77594299b42 h1:vEOn+mP2zCOVzKckCZy6YsCtD golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82 h1:ywK/j/KkyTHcdyYSZNXGjMwgmDSfjglYZ3vStQ/gSCU= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= @@ -589,6 +627,14 @@ google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.28.0 h1:bO/TA4OxCOummhSf10siHuG7vJOiwh7SpRpFZDkOgl4= google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.28.1 h1:C1QC6KzgSiLyBabDi87BbjaGreoRgGUF5nOyvfrAZ1k= +google.golang.org/grpc v1.28.1/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0 h1:qdOKuR/EIArgaWNjetjgTzgVTAZ+S/WXVrq9HW9zimw= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= 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 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= From e6aa4f5c970f2b8b4deee8e771a0a61e8b7867e7 Mon Sep 17 00:00:00 2001 From: "riccardo.montagnin" Date: Fri, 3 Jul 2020 08:32:50 +0200 Subject: [PATCH 2/7] Updated Cosmos to v0.38.5 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ce280e3bc..cf6f91b2c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ - Moved `posts` module constants to chain parameters (#172) - Added the creation date inside the profile saving event (#210) - Changed the way times are serialized inside event attributes (#211) +- Updated Cosmos to `v0.38.5` ## Bug fixes - Fixed a bug inside the `Equals` method of the `Pictures` object From 3409630cc5434412674b759b07e42eafb0cb093e Mon Sep 17 00:00:00 2001 From: "riccardo.montagnin" Date: Fri, 17 Jul 2020 10:26:20 +0200 Subject: [PATCH 3/7] Improved magpie and posts errors Signed-off-by: riccardo.montagnin --- x/commons/types/errors/errors.go | 10 +++++ x/magpie/keeper/handler.go | 7 ++-- x/magpie/types/msgs.go | 10 ++--- x/magpie/types/msgs_test.go | 13 ++++--- x/posts/types/errors/errors.go | 18 +++++++++ x/posts/types/msgs/msg_reactions.go | 11 ++++-- x/posts/types/msgs/msg_reactions_test.go | 38 ++++++++++--------- x/posts/types/msgs/msgs.go | 16 +++++--- x/posts/types/msgs/msgs_polls.go | 9 +++-- x/posts/types/msgs/msgs_polls_test.go | 11 ++++-- x/posts/types/msgs/msgs_post_reactions.go | 17 +++++---- .../types/msgs/msgs_post_reactions_test.go | 22 ++++++----- x/posts/types/msgs/msgs_test.go | 13 ++++--- x/reports/keeper/handler.go | 5 ++- 14 files changed, 127 insertions(+), 73 deletions(-) create mode 100644 x/commons/types/errors/errors.go create mode 100644 x/posts/types/errors/errors.go diff --git a/x/commons/types/errors/errors.go b/x/commons/types/errors/errors.go new file mode 100644 index 0000000000..a2aff1fc2d --- /dev/null +++ b/x/commons/types/errors/errors.go @@ -0,0 +1,10 @@ +package errors + +import sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + +// RootCodespace is the codespace for all errors defined in this package +const RootCodespace = "desmos" + +var ( + ErrInvalidURI = sdkerrors.Register(RootCodespace, 1, "invalid uri") +) diff --git a/x/magpie/keeper/handler.go b/x/magpie/keeper/handler.go index 7d1266597a..8eb7d18d19 100644 --- a/x/magpie/keeper/handler.go +++ b/x/magpie/keeper/handler.go @@ -8,8 +8,9 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/cosmos/cosmos-sdk/x/auth" - "github.com/desmos-labs/desmos/x/magpie/types" "github.com/tendermint/tendermint/crypto/secp256k1" + + "github.com/desmos-labs/desmos/x/magpie/types" ) // NewHandler returns a handler for "magpie" type messages. @@ -21,8 +22,8 @@ func NewHandler(keeper Keeper) sdk.Handler { case types.MsgCreateSession: return handleMsgCreateSession(ctx, keeper, msg) default: - errMsg := fmt.Sprintf("Unrecognized Magpie message type: %v", msg.Type()) - return nil, sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, errMsg) + return nil, sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, + fmt.Sprintf("unrecognized magpie message type: %v", msg.Type())) } } } diff --git a/x/magpie/types/msgs.go b/x/magpie/types/msgs.go index 90d5672a3b..8da3a5b476 100644 --- a/x/magpie/types/msgs.go +++ b/x/magpie/types/msgs.go @@ -37,24 +37,24 @@ func (msg MsgCreateSession) Type() string { return ActionCreationSession } // ValidateBasic runs stateless checks on the message func (msg MsgCreateSession) ValidateBasic() error { if msg.Owner.Empty() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, fmt.Sprintf("Invalid session owner: %s", msg.Owner)) + return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, fmt.Sprintf("invalid session owner: %s", msg.Owner)) } if len(strings.TrimSpace(msg.Namespace)) == 0 { - return sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "Session namespace cannot be empty") + return sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "session namespace cannot be empty") } if len(strings.TrimSpace(msg.PubKey)) == 0 { - return sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "Signer public key cannot be empty") + return sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "signer's public key cannot be empty") } // The external signer address doesn't have to exist on Desmos if len(strings.TrimSpace(msg.ExternalOwner)) == 0 { - return sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "Session external owner cannot be empty") + return sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "session external owner cannot be empty") } if len(strings.TrimSpace(msg.Signature)) == 0 { - return sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "Session signature cannot be empty") + return sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "session signature cannot be empty") } return nil diff --git a/x/magpie/types/msgs_test.go b/x/magpie/types/msgs_test.go index c48188bc68..c1f8e9ccb4 100644 --- a/x/magpie/types/msgs_test.go +++ b/x/magpie/types/msgs_test.go @@ -5,8 +5,9 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - "github.com/desmos-labs/desmos/x/magpie/types" "github.com/stretchr/testify/require" + + "github.com/desmos-labs/desmos/x/magpie/types" ) // ---------------------- @@ -47,7 +48,7 @@ func TestMsgCreateSession_ValidateBasic(t *testing.T) { "cosmospub1addwnpepqf06gxm8tf4u9af99zsuphr2jmqvr2t956me5rcx9kywmrtg6jewy8gjtcs", "QmZh...===", ), - expErr: sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "Invalid session owner: "), + expErr: sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "invalid session owner: "), }, { name: "Invalid namespace", @@ -58,7 +59,7 @@ func TestMsgCreateSession_ValidateBasic(t *testing.T) { "cosmospub1addwnpepqf06gxm8tf4u9af99zsuphr2jmqvr2t956me5rcx9kywmrtg6jewy8gjtcs", "QmZh...===", ), - expErr: sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "Session namespace cannot be empty"), + expErr: sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "session namespace cannot be empty"), }, { name: "Invalid external owner", @@ -69,7 +70,7 @@ func TestMsgCreateSession_ValidateBasic(t *testing.T) { "cosmospub1addwnpepqf06gxm8tf4u9af99zsuphr2jmqvr2t956me5rcx9kywmrtg6jewy8gjtcs", "QmZh...===", ), - expErr: sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "Session external owner cannot be empty"), + expErr: sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "session external owner cannot be empty"), }, { name: "Invalid public key", @@ -80,7 +81,7 @@ func TestMsgCreateSession_ValidateBasic(t *testing.T) { " ", "QmZh...===", ), - expErr: sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "Signer public key cannot be empty"), + expErr: sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "signer's public key cannot be empty"), }, { name: "Invalid signature", @@ -91,7 +92,7 @@ func TestMsgCreateSession_ValidateBasic(t *testing.T) { "cosmospub1addwnpepqf06gxm8tf4u9af99zsuphr2jmqvr2t956me5rcx9kywmrtg6jewy8gjtcs", " ", ), - expErr: sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "Session signature cannot be empty"), + expErr: sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "session signature cannot be empty"), }, } diff --git a/x/posts/types/errors/errors.go b/x/posts/types/errors/errors.go new file mode 100644 index 0000000000..b15d8df4ba --- /dev/null +++ b/x/posts/types/errors/errors.go @@ -0,0 +1,18 @@ +package errors + +import sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + +// RootCodespace is the codespace for all errors defined in this package +const RootCodespace = "posts" + +var ( + // ErrInvalidPostID is returned if we cannot parse a post id + ErrInvalidPostID = sdkerrors.Register(RootCodespace, 1, "invalid post id") + + // ErrInvalidSubspace is returned if a post subspace is not valid + ErrInvalidSubspace = sdkerrors.Register(RootCodespace, 2, "invalid subspace") + + // ErrInvalidReactionCode is returned if we cannot validate a reaction short code + ErrInvalidReactionCode = sdkerrors.Register(RootCodespace, 3, + "invalid reaction shortcode (it must only contains a-z, 0-9, - and _ and must start and end with a ':')") +) diff --git a/x/posts/types/msgs/msg_reactions.go b/x/posts/types/msgs/msg_reactions.go index ee51bb375c..2e58664998 100644 --- a/x/posts/types/msgs/msg_reactions.go +++ b/x/posts/types/msgs/msg_reactions.go @@ -5,6 +5,9 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + + commonerrors "github.com/desmos-labs/desmos/x/commons/types/errors" + postserrors "github.com/desmos-labs/desmos/x/posts/types/errors" "github.com/desmos-labs/desmos/x/posts/types/models" ) @@ -36,19 +39,19 @@ func (msg MsgRegisterReaction) Type() string { return models.ActionRegisterReact // ValidateBasic runs stateless checks on the message func (msg MsgRegisterReaction) ValidateBasic() error { if msg.Creator.Empty() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, fmt.Sprintf("Invalid creator address: %s", msg.Creator)) + return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, fmt.Sprintf("invalid creator address: %s", msg.Creator)) } if !models.ShortCodeRegEx.MatchString(msg.ShortCode) { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "The specified shortcode is not valid. To be valid it must only contains a-z, 0-9, - and _ and must start and end with a :") + return sdkerrors.Wrap(postserrors.ErrInvalidReactionCode, msg.ShortCode) } if !models.URIRegEx.MatchString(msg.Value) { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "reaction value should be a valid URL") + return sdkerrors.Wrap(commonerrors.ErrInvalidURI, "reaction value should be a valid uri") } if !models.Sha256RegEx.MatchString(msg.Subspace) { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "reaction subspace must be a valid sha-256 hash") + return sdkerrors.Wrap(postserrors.ErrInvalidSubspace, "reaction subspace must be a valid sha-256 hash") } return nil diff --git a/x/posts/types/msgs/msg_reactions_test.go b/x/posts/types/msgs/msg_reactions_test.go index e0856aad42..0e3accf81d 100644 --- a/x/posts/types/msgs/msg_reactions_test.go +++ b/x/posts/types/msgs/msg_reactions_test.go @@ -1,12 +1,15 @@ package msgs_test import ( - "fmt" "testing" + commonerrors "github.com/desmos-labs/desmos/x/commons/types/errors" + postserrors "github.com/desmos-labs/desmos/x/posts/types/errors" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - "github.com/desmos-labs/desmos/x/posts/types/msgs" "github.com/stretchr/testify/require" + + "github.com/desmos-labs/desmos/x/posts/types/msgs" ) var msgRegisterReaction = msgs.NewMsgRegisterReaction(testOwner, ":smile:", "https://smile.jpg", @@ -32,60 +35,61 @@ func TestMsgRegisterReaction_ValidateBasic(t *testing.T) { name: "Invalid creator returns error", msg: msgs.NewMsgRegisterReaction(nil, ":smile:", "https://smile.jpg", "4e188d9c17150037d5199bbdb91ae1eb2a78a15aca04cb35530cccb81494b36e"), - error: sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, fmt.Sprintf("Invalid creator address: %s", "")), + error: sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "invalid creator address: "), }, { name: "Empty short code returns error", msg: msgs.NewMsgRegisterReaction(testOwner, "", "https://smile.jpg", "4e188d9c17150037d5199bbdb91ae1eb2a78a15aca04cb35530cccb81494b36e"), - error: sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "The specified shortcode is not valid. To be valid it must only contains a-z, 0-9, - and _ and must start and end with a :"), + error: sdkerrors.Wrap(postserrors.ErrInvalidReactionCode, ""), }, { name: "Invalid short code returns error", msg: msgs.NewMsgRegisterReaction(testOwner, ":smile", "https://smile.jpg", "4e188d9c17150037d5199bbdb91ae1eb2a78a15aca04cb35530cccb81494b36e"), - error: sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "The specified shortcode is not valid. To be valid it must only contains a-z, 0-9, - and _ and must start and end with a :"), + error: sdkerrors.Wrap(postserrors.ErrInvalidReactionCode, ":smile"), }, { name: "Empty value returns error", msg: msgs.NewMsgRegisterReaction(testOwner, ":smile:", "", "4e188d9c17150037d5199bbdb91ae1eb2a78a15aca04cb35530cccb81494b36e"), - error: sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "reaction value should be a valid URL"), + error: sdkerrors.Wrap(commonerrors.ErrInvalidURI, "reaction value should be a valid uri"), }, { name: "Invalid value returns error (url)", msg: msgs.NewMsgRegisterReaction(testOwner, ":smile:", "htp://smile.jpg", "4e188d9c17150037d5199bbdb91ae1eb2a78a15aca04cb35530cccb81494b36e"), - error: sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "reaction value should be a valid URL"), + error: sdkerrors.Wrap(commonerrors.ErrInvalidURI, "reaction value should be a valid uri"), }, { name: "Invalid value returns error (unicode)", msg: msgs.NewMsgRegisterReaction(testOwner, ":smile:", "U+1", "4e188d9c17150037d5199bbdb91ae1eb2a78a15aca04cb35530cccb81494b36e"), - error: sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "reaction value should be a valid URL"), + error: sdkerrors.Wrap(commonerrors.ErrInvalidURI, "reaction value should be a valid uri"), }, { name: "Valid emoji value returns no error", msg: msgs.NewMsgRegisterReaction(testOwner, ":smile:", "💙", "4e188d9c17150037d5199bbdb91ae1eb2a78a15aca04cb35530cccb81494b36e"), - error: sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "reaction value should be a valid URL"), + error: sdkerrors.Wrap(commonerrors.ErrInvalidURI, "reaction value should be a valid uri"), }, { name: "Invalid subspace returns error", msg: msgs.NewMsgRegisterReaction(testOwner, ":smile:", "https://smile.jpg", "1234"), - error: sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "reaction subspace must be a valid sha-256 hash"), + error: sdkerrors.Wrap(postserrors.ErrInvalidSubspace, "reaction subspace must be a valid sha-256 hash"), }, } for _, test := range tests { test := test - returnedError := test.msg.ValidateBasic() - if test.error == nil { - require.Nil(t, returnedError) - } else { - require.NotNil(t, returnedError) - require.Equal(t, test.error.Error(), returnedError.Error()) - } + t.Run(test.name, func(t *testing.T) { + if test.error == nil { + require.Nil(t, test.msg.ValidateBasic()) + } else { + require.NotNil(t, test.msg.ValidateBasic()) + require.Equal(t, test.error.Error(), test.msg.ValidateBasic().Error()) + } + }) } } diff --git a/x/posts/types/msgs/msgs.go b/x/posts/types/msgs/msgs.go index 55c3d43655..3d918eda79 100644 --- a/x/posts/types/msgs/msgs.go +++ b/x/posts/types/msgs/msgs.go @@ -6,8 +6,11 @@ import ( "strings" "time" + postserrors "github.com/desmos-labs/desmos/x/posts/types/errors" + sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/desmos-labs/desmos/x/posts/types/models" ) @@ -54,23 +57,24 @@ func (msg MsgCreatePost) Type() string { return models.ActionCreatePost } // ValidateBasic runs stateless checks on the message func (msg MsgCreatePost) ValidateBasic() error { if msg.Creator.Empty() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, fmt.Sprintf("Invalid creator address: %s", msg.Creator)) + return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, fmt.Sprintf("invalid creator address: %s", msg.Creator)) } if len(strings.TrimSpace(msg.Message)) == 0 && len(msg.Medias) == 0 && msg.PollData == nil { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Post message, medias or poll are required and cannot be all blank or empty") + return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, + "post message, medias or poll are required and cannot be all blank or empty") } if !models.Sha256RegEx.MatchString(msg.Subspace) { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Post subspace must be a valid sha-256 hash") + return sdkerrors.Wrap(postserrors.ErrInvalidSubspace, "post subspace must be a valid sha-256 hash") } if msg.CreationDate.IsZero() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Invalid post creation date") + return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "invalid post creation date") } if msg.CreationDate.After(time.Now().UTC()) { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Creation date cannot be in the future") + return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "creation date cannot be in the future") } if msg.Medias != nil { @@ -81,7 +85,7 @@ func (msg MsgCreatePost) ValidateBasic() error { if msg.PollData != nil { if !msg.PollData.Open { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Poll Post cannot be created closed") + return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "poll cannot be created closed") } if err := msg.PollData.Validate(); err != nil { return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, err.Error()) diff --git a/x/posts/types/msgs/msgs_polls.go b/x/posts/types/msgs/msgs_polls.go index 1eab9673ea..681bd2154f 100644 --- a/x/posts/types/msgs/msgs_polls.go +++ b/x/posts/types/msgs/msgs_polls.go @@ -3,8 +3,11 @@ package msgs import ( "fmt" + postserrors "github.com/desmos-labs/desmos/x/posts/types/errors" + sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/desmos-labs/desmos/x/posts/types/models" ) @@ -37,15 +40,15 @@ func (msg MsgAnswerPoll) Type() string { return models.ActionAnswerPoll } // ValidateBasic runs stateless checks on the message func (msg MsgAnswerPoll) ValidateBasic() error { if !msg.PostID.Valid() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, fmt.Sprintf("Invalid post id: %s", msg.PostID)) + return sdkerrors.Wrap(postserrors.ErrInvalidPostID, msg.PostID.String()) } if msg.Answerer.Empty() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, fmt.Sprintf("Invalid answerer address: %s", msg.Answerer)) + return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, fmt.Sprintf("invalid answerer address: %s", msg.Answerer)) } if len(msg.UserAnswers) == 0 { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Provided answers must contains at least one answer") + return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "provided answers must contains at least one answer") } return nil diff --git a/x/posts/types/msgs/msgs_polls_test.go b/x/posts/types/msgs/msgs_polls_test.go index 896ca681a6..57f87c4625 100644 --- a/x/posts/types/msgs/msgs_polls_test.go +++ b/x/posts/types/msgs/msgs_polls_test.go @@ -3,10 +3,13 @@ package msgs_test import ( "testing" + postserrors "github.com/desmos-labs/desmos/x/posts/types/errors" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/stretchr/testify/require" + "github.com/desmos-labs/desmos/x/posts/types/models" "github.com/desmos-labs/desmos/x/posts/types/msgs" - "github.com/stretchr/testify/require" ) // ---------------------- @@ -34,17 +37,17 @@ func TestMsgAnswerPollPost_ValidateBasic(t *testing.T) { { name: "Invalid post id", msg: msgs.NewMsgAnswerPoll("", []models.AnswerID{1, 2}, msgAnswerPollPost.Answerer), - error: sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Invalid post id: "), + error: sdkerrors.Wrap(postserrors.ErrInvalidPostID, ""), }, { name: "Invalid answerer address", msg: msgs.NewMsgAnswerPoll(id, []models.AnswerID{1, 2}, nil), - error: sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "Invalid answerer address: "), + error: sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "invalid answerer address: "), }, { name: "Returns error when no answer is provided", msg: msgs.NewMsgAnswerPoll(id, []models.AnswerID{}, msgAnswerPollPost.Answerer), - error: sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Provided answers must contains at least one answer"), + error: sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "provided answers must contains at least one answer"), }, { name: "Valid message returns no error", diff --git a/x/posts/types/msgs/msgs_post_reactions.go b/x/posts/types/msgs/msgs_post_reactions.go index 04c1e128f7..8bf121fbe9 100644 --- a/x/posts/types/msgs/msgs_post_reactions.go +++ b/x/posts/types/msgs/msgs_post_reactions.go @@ -3,9 +3,12 @@ package msgs import ( "fmt" + postserrors "github.com/desmos-labs/desmos/x/posts/types/errors" + sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" emoji "github.com/desmos-labs/Go-Emoji-Utils" + "github.com/desmos-labs/desmos/x/posts/types/models" ) @@ -38,17 +41,16 @@ func (msg MsgAddPostReaction) Type() string { return models.ActionAddPostReactio // ValidateBasic runs stateless checks on the message func (msg MsgAddPostReaction) ValidateBasic() error { if !msg.PostID.Valid() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, fmt.Sprintf("Invalid post id: %s", msg.PostID)) + return sdkerrors.Wrap(postserrors.ErrInvalidPostID, msg.PostID.String()) } if msg.User.Empty() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, fmt.Sprintf("Invalid user address: %s", msg.User)) + return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, fmt.Sprintf("invalid user address: %s", msg.User)) } _, err := emoji.LookupEmoji(msg.Reaction) if !models.ShortCodeRegEx.MatchString(msg.Reaction) && err != nil { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Reaction value must be an emoji or an emoji shortcode."+ - "If a shortcode is provided, it must only contains a-z, 0-9, - and _ and must start and end with a :") + return sdkerrors.Wrap(postserrors.ErrInvalidReactionCode, msg.Reaction) } return nil @@ -94,17 +96,16 @@ func (msg MsgRemovePostReaction) Type() string { return models.ActionRemovePostR // ValidateBasic runs stateless checks on the message func (msg MsgRemovePostReaction) ValidateBasic() error { if !msg.PostID.Valid() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, fmt.Sprintf("Invalid post id: %s", msg.PostID)) + return sdkerrors.Wrap(postserrors.ErrInvalidPostID, msg.PostID.String()) } if msg.User.Empty() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, fmt.Sprintf("Invalid user address: %s", msg.User)) + return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, fmt.Sprintf("invalid user address: %s", msg.User)) } _, err := emoji.LookupEmoji(msg.Reaction) if !models.ShortCodeRegEx.MatchString(msg.Reaction) && err != nil { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Reaction value must be an emoji or an emoji shortcode. "+ - "If a shortcode is provided, it must only contains a-z, 0-9, - and _ and must start and end with a :") + return sdkerrors.Wrap(postserrors.ErrInvalidReactionCode, msg.Reaction) } return nil diff --git a/x/posts/types/msgs/msgs_post_reactions_test.go b/x/posts/types/msgs/msgs_post_reactions_test.go index 038fe4fbfc..fb6c9c8fd7 100644 --- a/x/posts/types/msgs/msgs_post_reactions_test.go +++ b/x/posts/types/msgs/msgs_post_reactions_test.go @@ -3,11 +3,14 @@ package msgs_test import ( "testing" + postserrors "github.com/desmos-labs/desmos/x/posts/types/errors" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" emoji2 "github.com/desmos-labs/Go-Emoji-Utils" + "github.com/stretchr/testify/require" + "github.com/desmos-labs/desmos/x/posts/types/models" "github.com/desmos-labs/desmos/x/posts/types/msgs" - "github.com/stretchr/testify/require" ) // ---------------------- @@ -47,17 +50,17 @@ func TestMsgAddPostReaction_ValidateBasic(t *testing.T) { { name: "Invalid post id returns error", msg: msgs.NewMsgAddPostReaction("", ":like:", testOwner), - error: sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Invalid post id: "), + error: sdkerrors.Wrap(postserrors.ErrInvalidPostID, ""), }, { name: "Invalid user returns error", msg: msgs.NewMsgAddPostReaction(id, ":like:", nil), - error: sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "Invalid user address: "), + error: sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "invalid user address: "), }, { name: "Invalid value returns error", msg: msgs.NewMsgAddPostReaction(id, "like", testOwner), - error: sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Reaction value must be an emoji or an emoji shortcode.If a shortcode is provided, it must only contains a-z, 0-9, - and _ and must start and end with a :"), + error: sdkerrors.Wrap(postserrors.ErrInvalidReactionCode, "like"), }, { name: "Valid message returns no error (with shortcode)", @@ -120,18 +123,17 @@ func TestMsgRemovePostReaction_ValidateBasic(t *testing.T) { { name: "Invalid post id returns error", msg: msgs.NewMsgRemovePostReaction("", testOwner, ":+1:"), - error: sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Invalid post id: "), + error: sdkerrors.Wrap(postserrors.ErrInvalidPostID, ""), }, { name: "Invalid user address: ", msg: msgs.NewMsgRemovePostReaction(id, nil, ":like:"), - error: sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "Invalid user address: "), + error: sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "invalid user address: "), }, { - name: "Blank value returns no error", - msg: msgs.NewMsgRemovePostReaction(id, testOwner, ""), - error: sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Reaction value must be an emoji or an emoji shortcode. "+ - "If a shortcode is provided, it must only contains a-z, 0-9, - and _ and must start and end with a :"), + name: "Blank value returns no error", + msg: msgs.NewMsgRemovePostReaction(id, testOwner, ""), + error: sdkerrors.Wrap(postserrors.ErrInvalidReactionCode, ""), }, { name: "Valid message returns no error (with shortcode)", diff --git a/x/posts/types/msgs/msgs_test.go b/x/posts/types/msgs/msgs_test.go index 4a467a40fa..98f3af1464 100644 --- a/x/posts/types/msgs/msgs_test.go +++ b/x/posts/types/msgs/msgs_test.go @@ -4,11 +4,14 @@ import ( "testing" "time" + postserrors "github.com/desmos-labs/desmos/x/posts/types/errors" + sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/stretchr/testify/require" + "github.com/desmos-labs/desmos/x/posts/types/models" "github.com/desmos-labs/desmos/x/posts/types/msgs" - "github.com/stretchr/testify/require" ) // ---------------------- @@ -74,7 +77,7 @@ func TestMsgCreatePost_ValidateBasic(t *testing.T) { msgCreatePost.Medias, msgCreatePost.PollData, ), - error: sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "Invalid creator address: "), + error: sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "invalid creator address: "), }, { name: "Empty message returns error if medias, poll data and message are empty", @@ -89,7 +92,7 @@ func TestMsgCreatePost_ValidateBasic(t *testing.T) { nil, nil, ), - error: sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Post message, medias or poll are required and cannot be all blank or empty"), + error: sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "post message, medias or poll are required and cannot be all blank or empty"), }, { name: "Non-empty message returns no error if medias are empty", @@ -179,7 +182,7 @@ func TestMsgCreatePost_ValidateBasic(t *testing.T) { msgCreatePost.Medias, msgCreatePost.PollData, ), - error: sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Post subspace must be a valid sha-256 hash"), + error: sdkerrors.Wrap(postserrors.ErrInvalidSubspace, "post subspace must be a valid sha-256 hash"), }, { name: "Future creation date returns error", @@ -194,7 +197,7 @@ func TestMsgCreatePost_ValidateBasic(t *testing.T) { msgCreatePost.Medias, msgCreatePost.PollData, ), - error: sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Creation date cannot be in the future"), + error: sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "creation date cannot be in the future"), }, { name: "Empty URI in medias returns error", diff --git a/x/reports/keeper/handler.go b/x/reports/keeper/handler.go index ef25b0d8c6..b58c36c4fe 100644 --- a/x/reports/keeper/handler.go +++ b/x/reports/keeper/handler.go @@ -5,6 +5,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/desmos-labs/desmos/x/reports/types" ) @@ -17,8 +18,8 @@ func NewHandler(keeper Keeper) sdk.Handler { case types.MsgReportPost: return handleMsgReportPost(ctx, keeper, msg) default: - errMsg := fmt.Sprintf("Unrecognized Posts message type: %v", msg.Type()) - return nil, sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, errMsg) + return nil, sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, + fmt.Sprintf("unrecognized posts message type: %v", msg.Type())) } } } From f4d726e8a74e3901c94fec4f8695a47237ac77d8 Mon Sep 17 00:00:00 2001 From: "riccardo.montagnin" Date: Fri, 17 Jul 2020 10:35:44 +0200 Subject: [PATCH 4/7] Improved reports and profiles error handling Signed-off-by: riccardo.montagnin --- x/profiles/types/msgs.go | 3 +-- x/profiles/types/msgs_test.go | 5 +++-- x/reports/types/models/report.go | 4 ++-- x/reports/types/models/report_test.go | 11 ++++++----- x/reports/types/msgs/msgs.go | 9 ++++++--- x/reports/types/msgs/msgs_test.go | 12 ++++++++---- 6 files changed, 26 insertions(+), 18 deletions(-) diff --git a/x/profiles/types/msgs.go b/x/profiles/types/msgs.go index 9b70b210e2..2b70a2e2fa 100644 --- a/x/profiles/types/msgs.go +++ b/x/profiles/types/msgs.go @@ -43,8 +43,7 @@ func (msg MsgSaveProfile) Type() string { return ActionSaveProfile } // ValidateBasic runs stateless checks on the message func (msg MsgSaveProfile) ValidateBasic() error { if msg.Creator.Empty() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, - fmt.Sprintf("Invalid creator address: %s", msg.Creator)) + return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, fmt.Sprintf("invalid creator address: %s", msg.Creator)) } if strings.TrimSpace(msg.Dtag) == "" { diff --git a/x/profiles/types/msgs_test.go b/x/profiles/types/msgs_test.go index bbcabcc70f..d038afd58a 100644 --- a/x/profiles/types/msgs_test.go +++ b/x/profiles/types/msgs_test.go @@ -5,8 +5,9 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - "github.com/desmos-labs/desmos/x/profiles/types" "github.com/stretchr/testify/require" + + "github.com/desmos-labs/desmos/x/profiles/types" ) // ---------------------- @@ -64,7 +65,7 @@ func TestMsgSaveProfile_ValidateBasic(t *testing.T) { testProfile.Pictures.Cover, nil, ), - error: sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "Invalid creator address: "), + error: sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "invalid creator address: "), }, { name: "Invalid empty dtag returns error", diff --git a/x/reports/types/models/report.go b/x/reports/types/models/report.go index 5c2039c30f..33d2489450 100644 --- a/x/reports/types/models/report.go +++ b/x/reports/types/models/report.go @@ -30,11 +30,11 @@ func (r Report) Validate() error { } if len(strings.TrimSpace(r.Message)) == 0 { - return fmt.Errorf("reports's message cannot be empty") + return fmt.Errorf("report message cannot be empty") } if r.User.Empty() { - return fmt.Errorf("invalid user address %s", r.User) + return fmt.Errorf("invalid user address: %s", r.User) } return nil diff --git a/x/reports/types/models/report_test.go b/x/reports/types/models/report_test.go index 7163d2401d..59dd1f2157 100644 --- a/x/reports/types/models/report_test.go +++ b/x/reports/types/models/report_test.go @@ -5,8 +5,9 @@ import ( "testing" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/desmos-labs/desmos/x/reports/types" "github.com/stretchr/testify/require" + + "github.com/desmos-labs/desmos/x/reports/types" ) func TestReport_Validate(t *testing.T) { @@ -26,12 +27,12 @@ func TestReport_Validate(t *testing.T) { { name: "empty reports's message returns error", report: types.NewReport("scam", "", creator), - expErr: fmt.Errorf("reports's message cannot be empty"), + expErr: fmt.Errorf("report message cannot be empty"), }, { name: "invalid reports's creator returns error", report: types.NewReport("scam", "message", sdk.AccAddress{}), - expErr: fmt.Errorf("invalid user address "), + expErr: fmt.Errorf("invalid user address: "), }, { name: "valid reports returns no error", @@ -66,12 +67,12 @@ func TestReports_Validate(t *testing.T) { { name: "empty reports's message returns error", reports: types.Reports{types.NewReport("scam", "", creator)}, - expErr: fmt.Errorf("reports's message cannot be empty"), + expErr: fmt.Errorf("report message cannot be empty"), }, { name: "invalid reports's creator returns error", reports: types.Reports{types.NewReport("scam", "message", sdk.AccAddress{})}, - expErr: fmt.Errorf("invalid user address "), + expErr: fmt.Errorf("invalid user address: "), }, { name: "valid reports returns no error", diff --git a/x/reports/types/msgs/msgs.go b/x/reports/types/msgs/msgs.go index af7626534f..29ef14f9f1 100644 --- a/x/reports/types/msgs/msgs.go +++ b/x/reports/types/msgs/msgs.go @@ -1,9 +1,12 @@ package msgs import ( - "fmt" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + + postserrors "github.com/desmos-labs/desmos/x/posts/types/errors" sdk "github.com/cosmos/cosmos-sdk/types" + posts "github.com/desmos-labs/desmos/x/posts/types" "github.com/desmos-labs/desmos/x/reports/types/models" "github.com/desmos-labs/desmos/x/reports/types/models/common" @@ -36,11 +39,11 @@ func (msg MsgReportPost) Type() string { return common.ActionReportPost } // ValidateBasic runs stateless checks on the message func (msg MsgReportPost) ValidateBasic() error { if !msg.PostID.Valid() { - return fmt.Errorf("invalid postID: %s", msg.PostID) + return sdkerrors.Wrap(postserrors.ErrInvalidPostID, msg.PostID.String()) } if err := msg.Report.Validate(); err != nil { - return err + return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, err.Error()) } return nil diff --git a/x/reports/types/msgs/msgs_test.go b/x/reports/types/msgs/msgs_test.go index fe8bd0da01..9e330310d4 100644 --- a/x/reports/types/msgs/msgs_test.go +++ b/x/reports/types/msgs/msgs_test.go @@ -1,13 +1,17 @@ package msgs_test import ( - "fmt" "testing" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + + postserrors "github.com/desmos-labs/desmos/x/posts/types/errors" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/stretchr/testify/require" + posts "github.com/desmos-labs/desmos/x/posts/types" "github.com/desmos-labs/desmos/x/reports/types" - "github.com/stretchr/testify/require" ) func TestMsgReportPost_Route(t *testing.T) { @@ -40,12 +44,12 @@ func TestMsgReportPost_ValidateBasic(t *testing.T) { { name: "invalid post ID returns error", msg: types.NewMsgReportPost("123", "type", "message", creator), - error: fmt.Errorf("invalid postID: 123"), + error: sdkerrors.Wrap(postserrors.ErrInvalidPostID, "123"), }, { name: "invalid reports returns error", msg: types.NewMsgReportPost(postID, "scam", "", creator), - error: fmt.Errorf("reports's message cannot be empty"), + error: sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "report message cannot be empty"), }, } From a3de88a53c47125048d1ce73564d97d756ba2e6d Mon Sep 17 00:00:00 2001 From: "riccardo.montagnin" Date: Fri, 17 Jul 2020 10:45:55 +0200 Subject: [PATCH 5/7] Added CHANGELOG entry Signed-off-by: riccardo.montagnin --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a237bfdb83..5d71c8d95d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# Version 0.10.0 +## Changes +- Changed the returned error to make them more clear (#237) + # Version 0.9.0 ## Changes - Removed the JSON-style `String` methods where it was possible, changed the others to not From 0bc3ddec820b69eb79c3c4c2c951d896e115782b Mon Sep 17 00:00:00 2001 From: "riccardo.montagnin" Date: Fri, 17 Jul 2020 10:55:46 +0200 Subject: [PATCH 6/7] Fixed the lint Ci Signed-off-by: riccardo.montagnin --- .github/workflows/lint.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index a11f9e0f25..112c993565 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -21,10 +21,10 @@ jobs: .go .mod .sum - - uses: golangci/golangci-lint-action@master + - uses: golangci/golangci-lint-action@v2 with: # Required: the version of golangci-lint is required and must be specified without patch version: we always use the latest patch version. - version: v1.27 + version: v1.28 args: --timeout 10m github-token: ${{ secrets.github_token }} if: "env.GIT_DIFF != ''" From ecd3fe2555cc77bf6c4359f81ddcd107b4ab7b91 Mon Sep 17 00:00:00 2001 From: "riccardo.montagnin" Date: Fri, 17 Jul 2020 20:48:16 +0200 Subject: [PATCH 7/7] Fixed build errors Signed-off-by: riccardo.montagnin --- x/posts/types/msgs/msg_reactions.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/x/posts/types/msgs/msg_reactions.go b/x/posts/types/msgs/msg_reactions.go index 48ec3d8485..ad9440632e 100644 --- a/x/posts/types/msgs/msg_reactions.go +++ b/x/posts/types/msgs/msg_reactions.go @@ -33,10 +33,10 @@ func NewMsgRegisterReaction(creator sdk.AccAddress, shortCode, value, subspace s } // Route should return the name of the module -func (msg MsgRegisterReaction) Route() string { return postsModels.RouterKey } +func (msg MsgRegisterReaction) Route() string { return postsmodels.RouterKey } // Type should return the action -func (msg MsgRegisterReaction) Type() string { return postsModels.ActionRegisterReaction } +func (msg MsgRegisterReaction) Type() string { return postsmodels.ActionRegisterReaction } // ValidateBasic runs stateless checks on the message func (msg MsgRegisterReaction) ValidateBasic() error { @@ -44,7 +44,7 @@ func (msg MsgRegisterReaction) ValidateBasic() error { return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, fmt.Sprintf("invalid creator address: %s", msg.Creator)) } - if !postmodels.ShortCodeRegEx.MatchString(msg.ShortCode) { + if !postsmodels.ShortCodeRegEx.MatchString(msg.ShortCode) { return sdkerrors.Wrap(postserrors.ErrInvalidReactionCode, msg.ShortCode) } @@ -52,7 +52,7 @@ func (msg MsgRegisterReaction) ValidateBasic() error { return sdkerrors.Wrap(commonerrors.ErrInvalidURI, "reaction value should be a valid uri") } - if !postmodels.Sha256RegEx.MatchString(msg.Subspace) { + if !postsmodels.Sha256RegEx.MatchString(msg.Subspace) { return sdkerrors.Wrap(postserrors.ErrInvalidSubspace, "reaction subspace must be a valid sha-256 hash") }