diff --git a/.gitignore b/.gitignore index b9c46cafa65..a641b687924 100644 --- a/.gitignore +++ b/.gitignore @@ -59,3 +59,6 @@ dependency-graph.png # Go go.work go.work.sum + +# Depinject +debug_container.dot \ No newline at end of file diff --git a/go.mod b/go.mod index 32c1797409b..c8b3b3a63ba 100644 --- a/go.mod +++ b/go.mod @@ -4,8 +4,9 @@ module github.com/cosmos/ibc-go/v7 require ( cosmossdk.io/api v0.7.0 - cosmossdk.io/client/v2 v2.0.0-20230722073756-0fa85b7a424d + cosmossdk.io/client/v2 v2.0.0-20230813130951-df7cc3ee672b cosmossdk.io/core v0.9.0 + cosmossdk.io/depinject v1.0.0-alpha.4 cosmossdk.io/errors v1.0.0 cosmossdk.io/log v1.2.0 cosmossdk.io/math v1.0.1 @@ -14,19 +15,17 @@ require ( cosmossdk.io/x/circuit v0.0.0-20230722073756-0fa85b7a424d cosmossdk.io/x/evidence v0.0.0-20230722073756-0fa85b7a424d cosmossdk.io/x/feegrant v0.0.0-20230722073756-0fa85b7a424d - cosmossdk.io/x/tx v0.9.1 cosmossdk.io/x/upgrade v0.0.0-20230722073756-0fa85b7a424d github.com/cometbft/cometbft v0.38.0-rc3 github.com/cosmos/cosmos-db v1.0.0 github.com/cosmos/cosmos-proto v1.0.0-beta.3 - github.com/cosmos/cosmos-sdk v0.50.0-beta.0.0.20230811080659-5b0c08130c52 + github.com/cosmos/cosmos-sdk v0.50.0-beta.0.0.20230813132910-3a96bb9f7f14 github.com/cosmos/gogoproto v1.4.10 github.com/cosmos/ibc-go/modules/capability v1.0.0-rc3 github.com/cosmos/ics23/go v0.10.0 github.com/golang/protobuf v1.5.3 github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/hashicorp/go-metrics v0.5.1 - github.com/spf13/cast v1.5.1 github.com/spf13/cobra v1.7.0 github.com/spf13/viper v1.16.0 github.com/stretchr/testify v1.8.4 @@ -43,7 +42,7 @@ require ( cloud.google.com/go/iam v1.1.0 // indirect cloud.google.com/go/storage v1.30.1 // indirect cosmossdk.io/collections v0.3.0 // indirect - cosmossdk.io/depinject v1.0.0-alpha.4 // indirect + cosmossdk.io/x/tx v0.9.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 @@ -117,7 +116,7 @@ require ( github.com/hashicorp/go-safetemp v1.0.0 // indirect github.com/hashicorp/go-uuid v1.0.2 // indirect github.com/hashicorp/go-version v1.6.0 // indirect - github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d // indirect + github.com/hashicorp/golang-lru v1.0.2 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/hashicorp/yamux v0.1.1 // indirect github.com/hdevalence/ed25519consensus v0.1.0 // indirect @@ -160,6 +159,7 @@ require ( github.com/rs/zerolog v1.30.0 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect github.com/spf13/afero v1.9.5 // indirect + github.com/spf13/cast v1.5.1 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/subosito/gotenv v1.4.2 // indirect @@ -171,13 +171,13 @@ require ( github.com/zondax/ledger-go v0.14.1 // indirect go.etcd.io/bbolt v1.3.7 // indirect go.opencensus.io v0.24.0 // indirect - golang.org/x/crypto v0.11.0 // indirect + golang.org/x/crypto v0.12.0 // indirect golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb // indirect golang.org/x/net v0.12.0 // indirect golang.org/x/oauth2 v0.8.0 // indirect golang.org/x/sync v0.3.0 // indirect golang.org/x/sys v0.11.0 // indirect - golang.org/x/term v0.10.0 // indirect + golang.org/x/term v0.11.0 // indirect golang.org/x/text v0.12.0 // indirect golang.org/x/tools v0.9.1 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect @@ -189,7 +189,7 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect gotest.tools/v3 v3.5.0 // indirect nhooyr.io/websocket v1.8.6 // indirect - pgregory.net/rapid v1.0.0 // indirect + pgregory.net/rapid v1.1.0 // indirect sigs.k8s.io/yaml v1.3.0 // indirect ) diff --git a/go.sum b/go.sum index 6200a091d9c..4e95f39119c 100644 --- a/go.sum +++ b/go.sum @@ -189,14 +189,12 @@ cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1V cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= cosmossdk.io/api v0.7.0 h1:QsEMIWuv9xWDbF2HZnW4Lpu1/SejCztPu0LQx7t6MN4= cosmossdk.io/api v0.7.0/go.mod h1:kJFAEMLN57y0viszHDPLMmieF0471o5QAwwApa+270M= -cosmossdk.io/client/v2 v2.0.0-20230722073756-0fa85b7a424d h1:lCk+DQKrWfikuV7fgKhiPRPE1w/LG80JZQaFUPGVG8o= -cosmossdk.io/client/v2 v2.0.0-20230722073756-0fa85b7a424d/go.mod h1:cRYwwVgXhMpKrh6/oao3u+SW5Nb7RHQCGcF+jTsmcQQ= +cosmossdk.io/client/v2 v2.0.0-20230813130951-df7cc3ee672b h1:v/HaRDNe/bSroLUg2EmoI1a7Vdb0qtyCVT3/b/0xQ4k= +cosmossdk.io/client/v2 v2.0.0-20230813130951-df7cc3ee672b/go.mod h1:QXZXous+Cysw5SBXVtJU9F5phijR6u0Tt8LaspPMCe0= cosmossdk.io/collections v0.3.0 h1:v0eEqLBxebAV+t+Ahwf9tSJOu95HVLINwROXx2TTZ08= cosmossdk.io/collections v0.3.0/go.mod h1:CHE1+niUElL9ikCpevRZcp0yqQ4TU0TrEEGirN0mvIg= cosmossdk.io/core v0.9.0 h1:30ScAOHDIUOCg1DKAwqkho9wuQJnu7GUrMcg0XLioic= cosmossdk.io/core v0.9.0/go.mod h1:NFgl5r41Q36+RixTvyrfsS6qQ65agCbZ1FTpnN7/G1Y= -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/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.0 h1:nxF07lmlBbB8NKQhtJ+sJm6ef5uV1XkvPXG2bUntb04= @@ -245,8 +243,6 @@ github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/ github.com/adlio/schema v1.3.3 h1:oBJn8I02PyTB466pZO1UZEn1TV5XLlifBSyMrmHl/1I= github.com/adlio/schema v1.3.3/go.mod h1:1EsRssiv9/Ce2CMzq5DoL7RiMshhuigQxrR4DMV9fHg= 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/participle/v2 v2.0.0-alpha7/go.mod h1:NumScqsC42o9x+dGj8/YqsIfhrIQjFEOFovxotbBirA= 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= @@ -329,8 +325,6 @@ 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/apd/v3 v3.1.0/go.mod h1:6qgPBMXjATAdD/VefbRP9NoSLKjbB4LCoA7gN4LpHs4= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4= github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= @@ -363,10 +357,8 @@ github.com/cosmos/cosmos-db v1.0.0 h1:EVcQZ+qYag7W6uorBKFPvX6gRjw6Uq2hIh4hCWjuQ0 github.com/cosmos/cosmos-db v1.0.0/go.mod h1:iBvi1TtqaedwLdcrZVYRSSCb6eSy61NLj4UNmdIgs0U= github.com/cosmos/cosmos-proto v1.0.0-beta.3 h1:VitvZ1lPORTVxkmF2fAp3IiA61xVwArQYKXTdEcpW6o= github.com/cosmos/cosmos-proto v1.0.0-beta.3/go.mod h1:t8IASdLaAq+bbHbjq4p960BvcTqtwuAxid3b/2rOD6I= -github.com/cosmos/cosmos-sdk v0.50.0-beta.0.0.20230802171422-ee5b2e3afc4f h1:KVypgBpP7iFjmTTTopZeNukTDwexCM3CAr1Jcj5u11Q= -github.com/cosmos/cosmos-sdk v0.50.0-beta.0.0.20230802171422-ee5b2e3afc4f/go.mod h1:pJU8sjvSa3I7lH2whf4QO1V2DTU79G8WwPTdqmDEh+Q= -github.com/cosmos/cosmos-sdk v0.50.0-beta.0.0.20230811080659-5b0c08130c52 h1:picac3BiU580Vj73A+Go6cl4n0T7BEhvH3SeTE1qSqg= -github.com/cosmos/cosmos-sdk v0.50.0-beta.0.0.20230811080659-5b0c08130c52/go.mod h1:Vkoj4oaKNFZFjE+jQAToiTT+on2yOQ+zsa4UIH9lpT8= +github.com/cosmos/cosmos-sdk v0.50.0-beta.0.0.20230813132910-3a96bb9f7f14 h1:DNSzkt2ejr+90UWjjdSSkcU6pun/TgwJW2ab1s6mmr0= +github.com/cosmos/cosmos-sdk v0.50.0-beta.0.0.20230813132910-3a96bb9f7f14/go.mod h1:Vkoj4oaKNFZFjE+jQAToiTT+on2yOQ+zsa4UIH9lpT8= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= github.com/cosmos/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE= @@ -393,10 +385,6 @@ github.com/creachadair/tomledit v0.0.24 h1:5Xjr25R2esu1rKCbQEmjZYlrhFkDspoAbAKb6 github.com/creachadair/tomledit v0.0.24/go.mod h1:9qHbShRWQzSCcn617cMzg4eab1vbLCOjOshAWSzWr8U= 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/gherkin/go/v22 v22.0.0/go.mod h1:3mJT10B2GGn3MvVPd3FwR7m2u4tLhSRhWUqJU4KN4Fg= -github.com/cucumber/common/messages/go/v17 v17.1.1 h1:RNqopvIFyLWnKv0LfATh34SWBhXeoFTJnSrgm9cT/Ts= -github.com/cucumber/common/messages/go/v17 v17.1.1/go.mod h1:bpGxb57tDE385Rb2EohgUadLkAbhoC4IyCFi89u/JQI= 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= @@ -462,8 +450,6 @@ github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4 github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= -github.com/getsentry/sentry-go v0.22.0 h1:XNX9zKbv7baSEI65l+H1GEJgSeIC1c7EN5kluWaP6dM= -github.com/getsentry/sentry-go v0.22.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= 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= @@ -513,8 +499,6 @@ github.com/goccy/go-json v0.10.2/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.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= -github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= 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= @@ -700,8 +684,8 @@ github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09 github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d h1:dg1dEPuWpEqDnvIw251EVy4zlP8gWbsGj4BsUKCRpYs= -github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c= +github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= @@ -945,8 +929,6 @@ github.com/prometheus/procfs v0.11.0/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPH 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/regen-network/gocuke v0.6.2/go.mod h1:zYaqIHZobHyd0xOrHGPQjbhGJsuZ1oElx150u2o1xuk= 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= @@ -1102,8 +1084,8 @@ golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= -golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA= -golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= +golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk= +golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= 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= @@ -1360,8 +1342,6 @@ golang.org/x/sys v0.1.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.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= -golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -1370,8 +1350,8 @@ golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.10.0 h1:3R7pNqamzBraeqj/Tj8qt1aQ2HpmlC+Cx/qL/7hn4/c= -golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= +golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0= +golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= 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= @@ -1386,8 +1366,6 @@ golang.org/x/text v0.4.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.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4= -golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1750,8 +1728,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 v1.0.0 h1:iQaM2w5PZ6xvt6x7hbd7tiDS+nk7YPp5uCaEba+T/F4= -pgregory.net/rapid v1.0.0/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/apps/29-fee/types/fee.pb.go b/modules/apps/29-fee/types/fee.pb.go index 6568d3f9310..c678c1c867f 100644 --- a/modules/apps/29-fee/types/fee.pb.go +++ b/modules/apps/29-fee/types/fee.pb.go @@ -7,6 +7,7 @@ import ( fmt "fmt" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" types "github.com/cosmos/cosmos-sdk/types" + _ "github.com/cosmos/cosmos-sdk/types/msgservice" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" types1 "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" @@ -265,37 +266,38 @@ func init() { func init() { proto.RegisterFile("ibc/applications/fee/v1/fee.proto", fileDescriptor_cb3319f1af2a53e5) } var fileDescriptor_cb3319f1af2a53e5 = []byte{ - // 467 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x93, 0x41, 0x8b, 0x13, 0x31, - 0x14, 0xc7, 0x9b, 0x56, 0x76, 0xb7, 0x29, 0x7a, 0x18, 0x16, 0x5c, 0x8b, 0xce, 0xae, 0x03, 0x42, - 0x2f, 0x4d, 0x6c, 0x55, 0xc4, 0x9b, 0x56, 0x28, 0xf4, 0xa4, 0xf4, 0x22, 0x78, 0x59, 0x32, 0xc9, - 0x9b, 0x6e, 0xe8, 0x74, 0x32, 0x4c, 0xd2, 0xc2, 0xde, 0xfd, 0x00, 0x7e, 0x07, 0x6f, 0x7e, 0x0b, - 0x6f, 0x7b, 0xdc, 0xa3, 0x27, 0x95, 0xf6, 0x8b, 0xc8, 0xcb, 0xc4, 0x61, 0x51, 0xf6, 0x22, 0x3d, - 0xcd, 0x7b, 0x6f, 0xde, 0x7b, 0xbf, 0x7f, 0xf2, 0xf2, 0xe8, 0x63, 0x9d, 0x4a, 0x2e, 0xca, 0x32, - 0xd7, 0x52, 0x38, 0x6d, 0x0a, 0xcb, 0x33, 0x00, 0xbe, 0x19, 0xe1, 0x87, 0x95, 0x95, 0x71, 0x26, - 0xba, 0xaf, 0x53, 0xc9, 0x6e, 0xa6, 0x30, 0xfc, 0xb7, 0x19, 0xf5, 0x63, 0x69, 0xec, 0xca, 0x58, - 0x9e, 0x0a, 0x8b, 0x25, 0x29, 0x38, 0x31, 0xe2, 0xd2, 0xe8, 0xa2, 0x2e, 0xec, 0x1f, 0x2f, 0xcc, - 0xc2, 0x78, 0x93, 0xa3, 0x15, 0xa2, 0x9e, 0x28, 0x4d, 0x05, 0x5c, 0x5e, 0x88, 0xa2, 0x80, 0x1c, - 0x69, 0xc1, 0xac, 0x53, 0x92, 0x6f, 0x6d, 0xda, 0x99, 0x02, 0x44, 0x19, 0x3d, 0xaa, 0x40, 0x6e, - 0xce, 0x33, 0x80, 0x13, 0x72, 0xd6, 0x19, 0xf4, 0xc6, 0x0f, 0x58, 0xcd, 0x64, 0xc8, 0x64, 0x81, - 0xc9, 0xde, 0x1a, 0x5d, 0x4c, 0x9e, 0x5e, 0xfd, 0x38, 0x6d, 0x7d, 0xfd, 0x79, 0x3a, 0x58, 0x68, - 0x77, 0xb1, 0x4e, 0x99, 0x34, 0x2b, 0x1e, 0x04, 0xd6, 0x9f, 0xa1, 0x55, 0x4b, 0xee, 0x2e, 0x4b, - 0xb0, 0xbe, 0xc0, 0xce, 0x0f, 0xb1, 0x39, 0x72, 0x14, 0x3d, 0x14, 0x72, 0xe9, 0x31, 0xed, 0xfd, - 0x63, 0x0e, 0x84, 0x5c, 0x22, 0x25, 0xa7, 0x3d, 0xa7, 0x57, 0x60, 0xd6, 0xce, 0x93, 0x3a, 0xfb, - 0x27, 0xd1, 0xd0, 0x7f, 0x0a, 0x90, 0x7c, 0x22, 0xb4, 0xfb, 0x5e, 0xc8, 0x25, 0xa0, 0x17, 0x3d, - 0xa7, 0x9d, 0xfa, 0x12, 0xc9, 0xa0, 0x37, 0x7e, 0xc8, 0x6e, 0x99, 0x28, 0x9b, 0x02, 0x4c, 0xee, - 0x20, 0x76, 0x8e, 0xe9, 0xd1, 0x13, 0x7a, 0xaf, 0x82, 0x6c, 0x5d, 0xa8, 0x73, 0xa1, 0x54, 0x05, - 0xd6, 0x9e, 0xb4, 0xcf, 0xc8, 0xa0, 0x3b, 0xbf, 0x5b, 0x47, 0xdf, 0xd4, 0xc1, 0xa8, 0x8f, 0x63, - 0xca, 0xc5, 0x25, 0x54, 0xd6, 0x9f, 0xaa, 0x3b, 0x6f, 0xfc, 0xe4, 0x03, 0xa5, 0x8d, 0x0a, 0x1b, - 0xcd, 0x68, 0xaf, 0xf4, 0x1e, 0xde, 0x80, 0x0d, 0x33, 0x4d, 0x6e, 0x95, 0xd3, 0x54, 0x06, 0x51, - 0xb4, 0x6c, 0x5a, 0x25, 0x5f, 0x08, 0x3d, 0x9e, 0x29, 0x28, 0x9c, 0xce, 0x34, 0xa8, 0x1b, 0x8c, - 0xd7, 0xb4, 0x1b, 0x18, 0x5a, 0x85, 0x03, 0x3f, 0xf2, 0x04, 0x7c, 0x73, 0xec, 0xcf, 0x43, 0x6b, - 0xba, 0xcf, 0x54, 0x68, 0x7e, 0x54, 0x06, 0xff, 0x6f, 0x95, 0xed, 0xff, 0x57, 0x39, 0x79, 0x77, - 0xb5, 0x8d, 0xc9, 0xf5, 0x36, 0x26, 0xbf, 0xb6, 0x31, 0xf9, 0xbc, 0x8b, 0x5b, 0xd7, 0xbb, 0xb8, - 0xf5, 0x7d, 0x17, 0xb7, 0x3e, 0xbe, 0xf8, 0x77, 0xaa, 0x3a, 0x95, 0xc3, 0x85, 0xe1, 0x9b, 0x97, - 0x7c, 0x65, 0xd4, 0x3a, 0x07, 0x8b, 0x8b, 0x69, 0xf9, 0xf8, 0xd5, 0x10, 0x77, 0xd2, 0x0f, 0x3a, - 0x3d, 0xf0, 0x1b, 0xf2, 0xec, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x39, 0xec, 0x7b, 0x52, 0xb8, - 0x03, 0x00, 0x00, + // 490 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x93, 0x31, 0x6f, 0xd3, 0x40, + 0x14, 0xc7, 0xe3, 0x04, 0xb5, 0xcd, 0x45, 0x30, 0x98, 0x4a, 0x2d, 0x11, 0xb8, 0xc5, 0x12, 0x52, + 0x84, 0x94, 0x3b, 0x12, 0x40, 0x08, 0x26, 0x08, 0x52, 0xa4, 0x4c, 0xa0, 0x2c, 0x48, 0x2c, 0xd5, + 0xf9, 0xee, 0xd9, 0x3d, 0xc5, 0xf6, 0x59, 0x3e, 0x27, 0x52, 0x57, 0x3e, 0x01, 0x2b, 0x33, 0x1b, + 0x13, 0x5f, 0x81, 0xad, 0x63, 0x47, 0x26, 0x40, 0xc9, 0xc0, 0xd7, 0x40, 0xef, 0x7c, 0x58, 0x55, + 0x51, 0x17, 0x94, 0xc9, 0xf7, 0xee, 0xee, 0xfd, 0x7f, 0x7f, 0xbf, 0x77, 0x8f, 0xdc, 0x57, 0x91, + 0x60, 0xbc, 0x28, 0x52, 0x25, 0x78, 0xa5, 0x74, 0x6e, 0x58, 0x0c, 0xc0, 0x56, 0x23, 0xfc, 0xd0, + 0xa2, 0xd4, 0x95, 0xf6, 0x0f, 0x54, 0x24, 0xe8, 0xe5, 0x2b, 0x14, 0xcf, 0x56, 0xa3, 0x7e, 0x20, + 0xb4, 0xc9, 0xb4, 0x61, 0x11, 0x37, 0x98, 0x12, 0x41, 0xc5, 0x47, 0x4c, 0x68, 0x95, 0xd7, 0x89, + 0xfd, 0xfd, 0x44, 0x27, 0xda, 0x2e, 0x19, 0xae, 0xdc, 0xae, 0x25, 0x0a, 0x5d, 0x02, 0x13, 0xa7, + 0x3c, 0xcf, 0x21, 0x45, 0x9a, 0x5b, 0xba, 0x2b, 0x07, 0x4e, 0x38, 0x33, 0x09, 0x1e, 0x66, 0x26, + 0xa9, 0x0f, 0xc2, 0x6f, 0x6d, 0xd2, 0x99, 0x02, 0xf8, 0x31, 0xd9, 0x2b, 0x41, 0xac, 0x4e, 0x62, + 0x80, 0x43, 0xef, 0xb8, 0x33, 0xe8, 0x8d, 0xef, 0xd0, 0x3a, 0x87, 0xa2, 0x19, 0xea, 0xcc, 0xd0, + 0xd7, 0x5a, 0xe5, 0x93, 0x47, 0xe7, 0x3f, 0x8e, 0x5a, 0x5f, 0x7e, 0x1e, 0x0d, 0x12, 0x55, 0x9d, + 0x2e, 0x23, 0x2a, 0x74, 0xc6, 0x1c, 0xa0, 0xfe, 0x0c, 0x8d, 0x5c, 0xb0, 0xea, 0xac, 0x00, 0x63, + 0x13, 0xcc, 0x7c, 0x17, 0xc5, 0x91, 0x23, 0xc9, 0x2e, 0x17, 0x0b, 0x8b, 0x69, 0x6f, 0x1f, 0xb3, + 0xc3, 0xc5, 0x02, 0x29, 0x29, 0xe9, 0x55, 0x2a, 0x03, 0xbd, 0xac, 0x2c, 0xa9, 0xb3, 0x7d, 0x12, + 0x71, 0xfa, 0x53, 0x80, 0xf0, 0x93, 0x47, 0xba, 0x6f, 0xb9, 0x58, 0x00, 0x46, 0xfe, 0x13, 0xd2, + 0xa9, 0x8b, 0xe8, 0x0d, 0x7a, 0xe3, 0xbb, 0xf4, 0x9a, 0x56, 0xd3, 0x29, 0xc0, 0xe4, 0x06, 0x62, + 0xe7, 0x78, 0xdd, 0x7f, 0x40, 0x6e, 0x95, 0x10, 0x2f, 0x73, 0x79, 0xc2, 0xa5, 0x2c, 0xc1, 0x98, + 0xc3, 0xf6, 0xb1, 0x37, 0xe8, 0xce, 0x6f, 0xd6, 0xbb, 0xaf, 0xea, 0x4d, 0xbf, 0x8f, 0x6d, 0x4a, + 0xf9, 0x19, 0x94, 0xc6, 0xfe, 0x55, 0x77, 0xde, 0xc4, 0x2f, 0x6e, 0x7f, 0xf8, 0xfd, 0xf5, 0xe1, + 0x15, 0x95, 0xf0, 0x1d, 0x21, 0x8d, 0x35, 0xe3, 0xcf, 0x48, 0xaf, 0xb0, 0x11, 0x96, 0xc5, 0xb8, + 0x46, 0x87, 0xd7, 0x7a, 0x6c, 0x32, 0x9d, 0x53, 0x52, 0x34, 0x52, 0xe1, 0x67, 0x8f, 0xec, 0xcf, + 0x24, 0xe4, 0x95, 0x8a, 0x15, 0xc8, 0x4b, 0x8c, 0x97, 0xa4, 0xeb, 0x18, 0x4a, 0xba, 0x2a, 0xdc, + 0xb3, 0x04, 0x7c, 0xa1, 0xf4, 0xef, 0xb3, 0x6c, 0xd4, 0x67, 0xd2, 0x89, 0xef, 0x15, 0x2e, 0xbe, + 0xea, 0xb2, 0xfd, 0xff, 0x2e, 0x27, 0x6f, 0xce, 0xd7, 0x81, 0x77, 0xb1, 0x0e, 0xbc, 0x5f, 0xeb, + 0xc0, 0xfb, 0xb8, 0x09, 0x5a, 0x17, 0x9b, 0xa0, 0xf5, 0x7d, 0x13, 0xb4, 0xde, 0x3f, 0xfd, 0xb7, + 0xd5, 0x2a, 0x12, 0xc3, 0x44, 0xb3, 0xd5, 0x33, 0x96, 0x69, 0xb9, 0x4c, 0xc1, 0xe0, 0x18, 0x1b, + 0x36, 0x7e, 0x3e, 0xc4, 0x09, 0xb6, 0xdd, 0x8f, 0x76, 0xec, 0xd8, 0x3c, 0xfe, 0x13, 0x00, 0x00, + 0xff, 0xff, 0xb0, 0x8c, 0x0d, 0x3d, 0xe6, 0x03, 0x00, 0x00, } func (m *Fee) Marshal() (dAtA []byte, err error) { diff --git a/modules/apps/29-fee/types/tx.pb.go b/modules/apps/29-fee/types/tx.pb.go index 6c517752734..356f00e7491 100644 --- a/modules/apps/29-fee/types/tx.pb.go +++ b/modules/apps/29-fee/types/tx.pb.go @@ -373,49 +373,48 @@ func init() { func init() { proto.RegisterFile("ibc/applications/fee/v1/tx.proto", fileDescriptor_05c93128649f1b96) } var fileDescriptor_05c93128649f1b96 = []byte{ - // 661 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x54, 0xcf, 0x4e, 0xdb, 0x4e, - 0x10, 0x8e, 0x09, 0xff, 0x32, 0xf0, 0xfb, 0x01, 0x2b, 0xd4, 0x18, 0x0b, 0x0c, 0x44, 0xa8, 0xa2, - 0x48, 0xb1, 0x9b, 0xb4, 0xa8, 0x2a, 0x52, 0xa5, 0x16, 0x24, 0x2a, 0x0e, 0xa8, 0x51, 0x8e, 0xbd, - 0x20, 0x67, 0x3d, 0x31, 0x6e, 0x13, 0xaf, 0xe5, 0x75, 0xa2, 0xfa, 0x56, 0xf5, 0xd4, 0x43, 0x0f, - 0xed, 0x1b, 0xf4, 0x11, 0xe8, 0x3b, 0xf4, 0xc0, 0x91, 0x63, 0x4f, 0xa8, 0x82, 0x03, 0x6f, 0xd0, - 0x73, 0xb5, 0xf6, 0xda, 0x35, 0xa1, 0x41, 0x69, 0xa5, 0xde, 0x3c, 0x3b, 0xdf, 0x7e, 0x33, 0xdf, - 0xe7, 0xd9, 0x81, 0x35, 0xb7, 0x45, 0x4d, 0xcb, 0xf7, 0x3b, 0x2e, 0xb5, 0x42, 0x97, 0x79, 0xdc, - 0x6c, 0x23, 0x9a, 0xfd, 0x9a, 0x19, 0xbe, 0x31, 0xfc, 0x80, 0x85, 0x8c, 0x94, 0xdd, 0x16, 0x35, - 0xf2, 0x08, 0xa3, 0x8d, 0x68, 0xf4, 0x6b, 0xda, 0xa2, 0xc3, 0x1c, 0x16, 0x63, 0x4c, 0xf1, 0x95, - 0xc0, 0xb5, 0xf5, 0x61, 0x84, 0xe2, 0x56, 0x0e, 0x42, 0x59, 0x80, 0x26, 0x3d, 0xb6, 0x3c, 0x0f, - 0x3b, 0x22, 0x2d, 0x3f, 0x25, 0xa4, 0x4c, 0x19, 0xef, 0x32, 0x6e, 0x76, 0xb9, 0x23, 0x92, 0x5d, - 0xee, 0x24, 0x89, 0xca, 0x07, 0x05, 0xe6, 0x0f, 0xb9, 0xd3, 0x44, 0xc7, 0xe5, 0x21, 0x06, 0x0d, - 0x2b, 0x42, 0x24, 0x65, 0x98, 0xf2, 0x59, 0x10, 0x1e, 0xb9, 0xb6, 0xaa, 0xac, 0x29, 0x9b, 0xa5, - 0xe6, 0xa4, 0x08, 0x0f, 0x6c, 0xb2, 0x02, 0x20, 0x79, 0x45, 0x6e, 0x2c, 0xce, 0x95, 0xe4, 0xc9, - 0x81, 0x4d, 0x54, 0x98, 0x0a, 0xb0, 0x63, 0x45, 0x18, 0xa8, 0xc5, 0x38, 0x97, 0x86, 0x64, 0x11, - 0x26, 0x7c, 0x41, 0xad, 0x8e, 0xc7, 0xe7, 0x49, 0xb0, 0x33, 0xff, 0xfe, 0xf3, 0x6a, 0xe1, 0xdd, - 0xd5, 0xc9, 0x56, 0x8a, 0xab, 0x68, 0xa0, 0x0e, 0x76, 0xd3, 0x44, 0xee, 0x33, 0x8f, 0x63, 0xe5, - 0x8b, 0x02, 0xcb, 0xb9, 0xe4, 0x1e, 0xeb, 0x79, 0x21, 0x06, 0xbe, 0x15, 0x84, 0xd1, 0xbf, 0x6a, - 0xbb, 0x0a, 0x84, 0xe6, 0xca, 0x1c, 0xe5, 0x35, 0x2c, 0xd0, 0xc1, 0x06, 0x7e, 0xa3, 0xe7, 0x2e, - 0x6c, 0xdc, 0xd6, 0x72, 0xa6, 0xed, 0x5c, 0x81, 0xb9, 0x43, 0xee, 0x34, 0xac, 0xa8, 0x61, 0xd1, - 0xd7, 0x18, 0xee, 0x23, 0x92, 0x87, 0x50, 0x6c, 0x23, 0xc6, 0x52, 0x66, 0xea, 0xcb, 0xc6, 0x90, - 0xb1, 0x31, 0xf6, 0x11, 0x77, 0xc7, 0x4f, 0xcf, 0x57, 0x0b, 0x4d, 0x01, 0x27, 0x1b, 0xf0, 0x3f, - 0x67, 0xbd, 0x80, 0xe2, 0x51, 0xea, 0x45, 0xa2, 0x77, 0x36, 0x39, 0x6d, 0x24, 0x8e, 0x6c, 0xc1, - 0x82, 0x44, 0xe5, 0x8c, 0x49, 0xc4, 0xcf, 0x25, 0x89, 0xbd, 0xcc, 0x9e, 0x3b, 0x30, 0xc9, 0x5d, - 0xc7, 0xc3, 0x40, 0x0a, 0x97, 0x11, 0xd1, 0x60, 0x5a, 0xca, 0xe4, 0xea, 0xc4, 0x5a, 0x71, 0xb3, - 0xd4, 0xcc, 0xe2, 0x9d, 0xb9, 0xd4, 0x09, 0x09, 0xae, 0x2c, 0x41, 0x79, 0x40, 0x5f, 0xa6, 0xfd, - 0xab, 0x02, 0x8b, 0x03, 0xb9, 0x67, 0x3c, 0xf2, 0x28, 0x79, 0x0a, 0x25, 0x3f, 0x3e, 0x49, 0xff, - 0xe8, 0x4c, 0x7d, 0x25, 0xb6, 0x41, 0xcc, 0xba, 0x91, 0x0e, 0x78, 0xbf, 0x66, 0x24, 0xf7, 0x0e, - 0x6c, 0xe9, 0xc3, 0xb4, 0x2f, 0x63, 0xf2, 0x1c, 0x40, 0x32, 0x08, 0x27, 0xc7, 0x62, 0x8a, 0xca, - 0x50, 0x27, 0xb3, 0xf2, 0x92, 0x47, 0x56, 0xdf, 0x47, 0xdc, 0x59, 0x4f, 0xf5, 0xa8, 0xbf, 0xf8, - 0x8c, 0x00, 0xdb, 0x3d, 0xcf, 0xb6, 0x6c, 0x3b, 0x40, 0xce, 0x2b, 0x7a, 0x3c, 0x9d, 0x37, 0x54, - 0xa4, 0x32, 0xeb, 0x3f, 0x8a, 0x50, 0x3c, 0xe4, 0x0e, 0xe9, 0xc2, 0x7f, 0xd7, 0x5f, 0xdb, 0xbd, - 0xa1, 0x0d, 0x0d, 0x3e, 0x05, 0xad, 0x36, 0x32, 0x34, 0x2d, 0x4b, 0x3e, 0x29, 0xb0, 0x34, 0xfc, - 0xc9, 0x6c, 0x8f, 0x42, 0x78, 0xe3, 0x9a, 0xf6, 0xe4, 0xaf, 0xae, 0x65, 0x3d, 0xbd, 0x82, 0xd9, - 0x6b, 0x93, 0xbe, 0x79, 0x1b, 0x5d, 0x1e, 0xa9, 0xdd, 0x1f, 0x15, 0x99, 0xd5, 0x8a, 0x60, 0xe1, - 0xe6, 0x64, 0x55, 0x47, 0xa5, 0x89, 0xe1, 0xda, 0xf6, 0x1f, 0xc1, 0xd3, 0xd2, 0xda, 0xc4, 0xdb, - 0xab, 0x93, 0x2d, 0x65, 0xf7, 0xc5, 0xe9, 0x85, 0xae, 0x9c, 0x5d, 0xe8, 0xca, 0xf7, 0x0b, 0x5d, - 0xf9, 0x78, 0xa9, 0x17, 0xce, 0x2e, 0xf5, 0xc2, 0xb7, 0x4b, 0xbd, 0xf0, 0x72, 0xdb, 0x71, 0xc3, - 0xe3, 0x5e, 0xcb, 0xa0, 0xac, 0x6b, 0xca, 0x05, 0xed, 0xb6, 0x68, 0xd5, 0x61, 0x66, 0xff, 0x91, - 0xd9, 0x65, 0x76, 0xaf, 0x83, 0x5c, 0xec, 0x7e, 0x6e, 0xd6, 0x1f, 0x57, 0xc5, 0xda, 0x0f, 0x23, - 0x1f, 0x79, 0x6b, 0x32, 0x5e, 0xdd, 0x0f, 0x7e, 0x06, 0x00, 0x00, 0xff, 0xff, 0x07, 0x0e, 0x63, - 0x53, 0x6c, 0x06, 0x00, 0x00, + // 649 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x54, 0x4d, 0x6f, 0xd3, 0x40, + 0x10, 0x8d, 0x9b, 0x7e, 0x65, 0x5a, 0x68, 0xbb, 0x54, 0x24, 0xb5, 0x5a, 0xb7, 0x58, 0x15, 0x2a, + 0x95, 0x62, 0x93, 0x40, 0x85, 0xa8, 0x84, 0x04, 0xad, 0x54, 0xd4, 0x43, 0x45, 0x94, 0x23, 0x97, + 0xca, 0xd9, 0x4c, 0x5d, 0x43, 0xec, 0xb5, 0xbc, 0x4e, 0x84, 0x6f, 0x88, 0x13, 0x07, 0x0e, 0xf0, + 0x0f, 0xf8, 0x09, 0xe5, 0xc2, 0x6f, 0xe8, 0xb1, 0x47, 0x4e, 0x15, 0x6a, 0x0f, 0xfd, 0x07, 0x9c, + 0xd1, 0xda, 0x6b, 0xcb, 0x4d, 0x48, 0x15, 0x90, 0xb8, 0x65, 0xf6, 0xbd, 0x7d, 0x33, 0xef, 0x65, + 0xbc, 0xb0, 0xe6, 0xb4, 0xa8, 0x69, 0xf9, 0x7e, 0xc7, 0xa1, 0x56, 0xe8, 0x30, 0x8f, 0x9b, 0x47, + 0x88, 0x66, 0xaf, 0x66, 0x86, 0xef, 0x0c, 0x3f, 0x60, 0x21, 0x23, 0x65, 0xa7, 0x45, 0x8d, 0x3c, + 0xc3, 0x38, 0x42, 0x34, 0x7a, 0x35, 0x75, 0xd1, 0x66, 0x36, 0x8b, 0x39, 0xa6, 0xf8, 0x95, 0xd0, + 0xd5, 0x7b, 0xc3, 0x04, 0xc5, 0xad, 0x1c, 0x85, 0xb2, 0x00, 0x4d, 0x7a, 0x6c, 0x79, 0x1e, 0x76, + 0x04, 0x2c, 0x7f, 0x4a, 0x4a, 0x99, 0x32, 0xee, 0x32, 0x6e, 0xba, 0xdc, 0x16, 0xa0, 0xcb, 0xed, + 0x04, 0xd0, 0x3f, 0x29, 0x30, 0x7f, 0xc0, 0xed, 0x26, 0xda, 0x0e, 0x0f, 0x31, 0x68, 0x58, 0x11, + 0x22, 0x29, 0xc3, 0x94, 0xcf, 0x82, 0xf0, 0xd0, 0x69, 0x57, 0x94, 0x35, 0x65, 0xa3, 0xd4, 0x9c, + 0x14, 0xe5, 0x7e, 0x9b, 0xac, 0x00, 0x48, 0x5d, 0x81, 0x8d, 0xc5, 0x58, 0x49, 0x9e, 0xec, 0xb7, + 0x49, 0x05, 0xa6, 0x02, 0xec, 0x58, 0x11, 0x06, 0x95, 0x62, 0x8c, 0xa5, 0x25, 0x59, 0x84, 0x09, + 0x5f, 0x48, 0x57, 0xc6, 0xe3, 0xf3, 0xa4, 0xd8, 0x9e, 0xff, 0xf8, 0x75, 0xb5, 0xf0, 0xe1, 0xea, + 0x64, 0x33, 0xe5, 0xe9, 0x2a, 0x54, 0xfa, 0xa7, 0x69, 0x22, 0xf7, 0x99, 0xc7, 0x51, 0xff, 0xa6, + 0xc0, 0x72, 0x0e, 0xdc, 0x65, 0x5d, 0x2f, 0xc4, 0xc0, 0xb7, 0x82, 0x30, 0xfa, 0x5f, 0x63, 0x57, + 0x81, 0xd0, 0x5c, 0x9b, 0xc3, 0xbc, 0x87, 0x05, 0xda, 0x3f, 0xc0, 0x1f, 0xfc, 0xdc, 0x87, 0xf5, + 0x9b, 0x46, 0xce, 0xbc, 0x9d, 0x2b, 0x30, 0x77, 0xc0, 0xed, 0x86, 0x15, 0x35, 0x2c, 0xfa, 0x16, + 0xc3, 0x3d, 0x44, 0xf2, 0x18, 0x8a, 0x47, 0x88, 0xb1, 0x95, 0x99, 0xfa, 0xb2, 0x31, 0x64, 0x6d, + 0x8c, 0x3d, 0xc4, 0x9d, 0xf1, 0xd3, 0xf3, 0xd5, 0x42, 0x53, 0xd0, 0xc9, 0x3a, 0xdc, 0xe6, 0xac, + 0x1b, 0x50, 0x3c, 0x4c, 0xb3, 0x48, 0xfc, 0xce, 0x26, 0xa7, 0x8d, 0x24, 0x91, 0x4d, 0x58, 0x90, + 0xac, 0x5c, 0x30, 0x89, 0xf9, 0xb9, 0x04, 0xd8, 0xcd, 0xe2, 0xb9, 0x0b, 0x93, 0xdc, 0xb1, 0x3d, + 0x0c, 0xa4, 0x71, 0x59, 0x11, 0x15, 0xa6, 0xa5, 0x4d, 0x5e, 0x99, 0x58, 0x2b, 0x6e, 0x94, 0x9a, + 0x59, 0xbd, 0x3d, 0x97, 0x26, 0x21, 0xc9, 0xfa, 0x12, 0x94, 0xfb, 0xfc, 0x65, 0xde, 0xbf, 0x2b, + 0xb0, 0xd8, 0x87, 0xbd, 0xe0, 0x91, 0x47, 0xc9, 0x73, 0x28, 0xf9, 0xf1, 0x49, 0xfa, 0x8f, 0xce, + 0xd4, 0x57, 0xe2, 0x18, 0xc4, 0xae, 0x1b, 0xe9, 0x82, 0xf7, 0x6a, 0x46, 0x72, 0x6f, 0xbf, 0x2d, + 0x73, 0x98, 0xf6, 0x65, 0x4d, 0x5e, 0x02, 0x48, 0x05, 0x91, 0xe4, 0x58, 0x2c, 0xa1, 0x0f, 0x4d, + 0x32, 0x6b, 0x2f, 0x75, 0x64, 0xf7, 0x3d, 0xc4, 0xed, 0x3b, 0xa9, 0x9f, 0x9c, 0x9e, 0xae, 0xc5, + 0xfb, 0x38, 0x30, 0x77, 0x6a, 0xac, 0xfe, 0xab, 0x08, 0xc5, 0x03, 0x6e, 0x13, 0x17, 0x6e, 0x5d, + 0xff, 0xbe, 0x1e, 0x0c, 0x1d, 0xa1, 0x7f, 0xf9, 0xd5, 0xda, 0xc8, 0xd4, 0xb4, 0x2d, 0xf9, 0xa2, + 0xc0, 0xd2, 0xf0, 0x8f, 0x64, 0x6b, 0x14, 0xc1, 0x81, 0x6b, 0xea, 0xb3, 0x7f, 0xba, 0x96, 0xcd, + 0xf4, 0x06, 0x66, 0xaf, 0xed, 0xf6, 0xc6, 0x4d, 0x72, 0x79, 0xa6, 0xfa, 0x70, 0x54, 0x66, 0xd6, + 0x2b, 0x82, 0x85, 0xc1, 0x5d, 0xaa, 0x8e, 0x2a, 0x13, 0xd3, 0xd5, 0xad, 0xbf, 0xa2, 0xa7, 0xad, + 0xd5, 0x89, 0xf7, 0x57, 0x27, 0x9b, 0xca, 0xce, 0xab, 0xd3, 0x0b, 0x4d, 0x39, 0xbb, 0xd0, 0x94, + 0x9f, 0x17, 0x9a, 0xf2, 0xf9, 0x52, 0x2b, 0x9c, 0x5d, 0x6a, 0x85, 0x1f, 0x97, 0x5a, 0xe1, 0xf5, + 0x96, 0xed, 0x84, 0xc7, 0xdd, 0x96, 0x41, 0x99, 0x6b, 0xca, 0x27, 0xd9, 0x69, 0xd1, 0xaa, 0xcd, + 0xcc, 0xde, 0x13, 0xd3, 0x65, 0xed, 0x6e, 0x07, 0xb9, 0x78, 0xed, 0xb9, 0x59, 0x7f, 0x5a, 0x15, + 0x0f, 0x7d, 0x18, 0xf9, 0xc8, 0x5b, 0x93, 0xf1, 0x63, 0xfd, 0xe8, 0x77, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x35, 0x34, 0x60, 0x80, 0x5e, 0x06, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/proto/ibc/applications/fee/v1/fee.proto b/proto/ibc/applications/fee/v1/fee.proto index 6cdfdd39082..7d451c0c6e8 100644 --- a/proto/ibc/applications/fee/v1/fee.proto +++ b/proto/ibc/applications/fee/v1/fee.proto @@ -7,6 +7,7 @@ option go_package = "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types"; import "cosmos/base/v1beta1/coin.proto"; import "gogoproto/gogo.proto"; import "ibc/core/channel/v1/channel.proto"; +import "cosmos/msg/v1/msg.proto"; // Fee defines the ICS29 receive, acknowledgement and timeout fees message Fee { @@ -23,6 +24,8 @@ message Fee { // PacketFee contains ICS29 relayer fees, refund address and optional list of permitted relayers message PacketFee { + option (cosmos.msg.v1.signer) = "refund_address"; + // fee encapsulates the recv, ack and timeout fees associated with an IBC packet Fee fee = 1 [(gogoproto.nullable) = false]; // the refund address for unspent fees diff --git a/proto/ibc/applications/fee/v1/tx.proto b/proto/ibc/applications/fee/v1/tx.proto index 9c48974931b..3b72b8aa599 100644 --- a/proto/ibc/applications/fee/v1/tx.proto +++ b/proto/ibc/applications/fee/v1/tx.proto @@ -104,7 +104,7 @@ message MsgPayPacketFeeResponse {} // MsgPayPacketFeeAsync defines the request type for the PayPacketFeeAsync rpc // This Msg can be used to pay for a packet at a specified sequence (instead of the next sequence send) message MsgPayPacketFeeAsync { - option (cosmos.msg.v1.signer) = "packet_fee.refundaddress"; + option (cosmos.msg.v1.signer) = "packet_fee"; option (gogoproto.goproto_getters) = false; // unique packet identifier comprised of the channel ID, port ID and sequence diff --git a/testing/simapp/app.go b/testing/simapp/app.go index 5c299846a4c..1d3f6531a4d 100644 --- a/testing/simapp/app.go +++ b/testing/simapp/app.go @@ -1,109 +1,51 @@ package simapp import ( - "encoding/json" - "fmt" "io" "os" "path/filepath" dbm "github.com/cosmos/cosmos-db" - "github.com/cosmos/gogoproto/proto" - "github.com/spf13/cast" - autocliv1 "cosmossdk.io/api/cosmos/autocli/v1" - reflectionv1 "cosmossdk.io/api/cosmos/reflection/v1" "cosmossdk.io/client/v2/autocli" + "cosmossdk.io/core/address" "cosmossdk.io/core/appmodule" + "cosmossdk.io/depinject" "cosmossdk.io/log" storetypes "cosmossdk.io/store/types" - "cosmossdk.io/x/circuit" circuitkeeper "cosmossdk.io/x/circuit/keeper" - circuittypes "cosmossdk.io/x/circuit/types" - "cosmossdk.io/x/evidence" evidencekeeper "cosmossdk.io/x/evidence/keeper" - evidencetypes "cosmossdk.io/x/evidence/types" - "cosmossdk.io/x/feegrant" feegrantkeeper "cosmossdk.io/x/feegrant/keeper" - feegrantmodule "cosmossdk.io/x/feegrant/module" - "cosmossdk.io/x/tx/signing" - "cosmossdk.io/x/upgrade" upgradekeeper "cosmossdk.io/x/upgrade/keeper" - upgradetypes "cosmossdk.io/x/upgrade/types" "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/flags" - "github.com/cosmos/cosmos-sdk/client/grpc/cmtservice" - nodeservice "github.com/cosmos/cosmos-sdk/client/grpc/node" "github.com/cosmos/cosmos-sdk/codec" - "github.com/cosmos/cosmos-sdk/codec/address" - "github.com/cosmos/cosmos-sdk/codec/types" + codectypes "github.com/cosmos/cosmos-sdk/codec/types" "github.com/cosmos/cosmos-sdk/runtime" - runtimeservices "github.com/cosmos/cosmos-sdk/runtime/services" "github.com/cosmos/cosmos-sdk/server" "github.com/cosmos/cosmos-sdk/server/api" "github.com/cosmos/cosmos-sdk/server/config" servertypes "github.com/cosmos/cosmos-sdk/server/types" - "github.com/cosmos/cosmos-sdk/std" - "github.com/cosmos/cosmos-sdk/testutil/testdata/testpb" - sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" - "github.com/cosmos/cosmos-sdk/types/msgservice" - "github.com/cosmos/cosmos-sdk/version" "github.com/cosmos/cosmos-sdk/x/auth" - "github.com/cosmos/cosmos-sdk/x/auth/ante" - authcodec "github.com/cosmos/cosmos-sdk/x/auth/codec" authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper" - "github.com/cosmos/cosmos-sdk/x/auth/posthandler" authsims "github.com/cosmos/cosmos-sdk/x/auth/simulation" - authtx "github.com/cosmos/cosmos-sdk/x/auth/tx" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - "github.com/cosmos/cosmos-sdk/x/auth/vesting" - vestingtypes "github.com/cosmos/cosmos-sdk/x/auth/vesting/types" - "github.com/cosmos/cosmos-sdk/x/authz" authzkeeper "github.com/cosmos/cosmos-sdk/x/authz/keeper" - authzmodule "github.com/cosmos/cosmos-sdk/x/authz/module" - "github.com/cosmos/cosmos-sdk/x/bank" bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - consensus "github.com/cosmos/cosmos-sdk/x/consensus" - consensusparamkeeper "github.com/cosmos/cosmos-sdk/x/consensus/keeper" - consensusparamtypes "github.com/cosmos/cosmos-sdk/x/consensus/types" - "github.com/cosmos/cosmos-sdk/x/crisis" + consensuskeeper "github.com/cosmos/cosmos-sdk/x/consensus/keeper" crisiskeeper "github.com/cosmos/cosmos-sdk/x/crisis/keeper" - crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types" - distr "github.com/cosmos/cosmos-sdk/x/distribution" distrkeeper "github.com/cosmos/cosmos-sdk/x/distribution/keeper" - distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - "github.com/cosmos/cosmos-sdk/x/genutil" - genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types" - "github.com/cosmos/cosmos-sdk/x/gov" - govclient "github.com/cosmos/cosmos-sdk/x/gov/client" govkeeper "github.com/cosmos/cosmos-sdk/x/gov/keeper" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" - govv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" - "github.com/cosmos/cosmos-sdk/x/group" groupkeeper "github.com/cosmos/cosmos-sdk/x/group/keeper" - groupmodule "github.com/cosmos/cosmos-sdk/x/group/module" - "github.com/cosmos/cosmos-sdk/x/mint" mintkeeper "github.com/cosmos/cosmos-sdk/x/mint/keeper" - minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" - "github.com/cosmos/cosmos-sdk/x/params" - paramsclient "github.com/cosmos/cosmos-sdk/x/params/client" paramskeeper "github.com/cosmos/cosmos-sdk/x/params/keeper" paramstypes "github.com/cosmos/cosmos-sdk/x/params/types" - paramproposal "github.com/cosmos/cosmos-sdk/x/params/types/proposal" - "github.com/cosmos/cosmos-sdk/x/slashing" slashingkeeper "github.com/cosmos/cosmos-sdk/x/slashing/keeper" - slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" - "github.com/cosmos/cosmos-sdk/x/staking" stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" - - "github.com/cosmos/ibc-go/modules/capability" capabilitykeeper "github.com/cosmos/ibc-go/modules/capability/keeper" capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" ica "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts" @@ -113,7 +55,6 @@ import ( icahost "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host" icahostkeeper "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host/keeper" icahosttypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host/types" - icatypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/types" ibcfee "github.com/cosmos/ibc-go/v7/modules/apps/29-fee" ibcfeekeeper "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/keeper" ibcfeetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types" @@ -121,9 +62,6 @@ import ( ibctransferkeeper "github.com/cosmos/ibc-go/v7/modules/apps/transfer/keeper" ibctransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" ibc "github.com/cosmos/ibc-go/v7/modules/core" - ibcclient "github.com/cosmos/ibc-go/v7/modules/core/02-client" - ibcclientclient "github.com/cosmos/ibc-go/v7/modules/core/02-client/client" - ibcclienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" porttypes "github.com/cosmos/ibc-go/v7/modules/core/05-port/types" ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" ibckeeper "github.com/cosmos/ibc-go/v7/modules/core/keeper" @@ -133,31 +71,13 @@ import ( ibctestingtypes "github.com/cosmos/ibc-go/v7/testing/types" ) -const appName = "SimApp" - // IBC application testing ports const ( MockFeePort string = ibcmock.ModuleName + ibcfeetypes.ModuleName ) -var ( - // DefaultNodeHome default home directories for the application daemon - DefaultNodeHome string - - // module account permissions - maccPerms = map[string][]string{ - authtypes.FeeCollectorName: nil, - distrtypes.ModuleName: nil, - minttypes.ModuleName: {authtypes.Minter}, - stakingtypes.BondedPoolName: {authtypes.Burner, authtypes.Staking}, - stakingtypes.NotBondedPoolName: {authtypes.Burner, authtypes.Staking}, - govtypes.ModuleName: {authtypes.Burner}, - ibctransfertypes.ModuleName: {authtypes.Minter, authtypes.Burner}, - ibcfeetypes.ModuleName: nil, - icatypes.ModuleName: nil, - ibcmock.ModuleName: nil, - } -) +// DefaultNodeHome default home directories for the application daemon +var DefaultNodeHome string var ( _ runtime.AppI = (*SimApp)(nil) @@ -168,40 +88,37 @@ var ( // They are exported for convenience in creating helper functions, as object // capabilities aren't needed for testing. type SimApp struct { - *baseapp.BaseApp + *runtime.App legacyAmino *codec.LegacyAmino appCodec codec.Codec txConfig client.TxConfig - interfaceRegistry types.InterfaceRegistry - - // keys to access the substores - keys map[string]*storetypes.KVStoreKey - tkeys map[string]*storetypes.TransientStoreKey - memKeys map[string]*storetypes.MemoryStoreKey + interfaceRegistry codectypes.InterfaceRegistry // keepers AccountKeeper authkeeper.AccountKeeper BankKeeper bankkeeper.Keeper - CapabilityKeeper *capabilitykeeper.Keeper StakingKeeper *stakingkeeper.Keeper SlashingKeeper slashingkeeper.Keeper MintKeeper mintkeeper.Keeper DistrKeeper distrkeeper.Keeper - GovKeeper govkeeper.Keeper + GovKeeper *govkeeper.Keeper CrisisKeeper *crisiskeeper.Keeper UpgradeKeeper *upgradekeeper.Keeper ParamsKeeper paramskeeper.Keeper AuthzKeeper authzkeeper.Keeper - IBCKeeper *ibckeeper.Keeper // IBC Keeper must be a pointer in the app, so we can SetRouter on it correctly - IBCFeeKeeper ibcfeekeeper.Keeper - ICAControllerKeeper icacontrollerkeeper.Keeper - ICAHostKeeper icahostkeeper.Keeper EvidenceKeeper evidencekeeper.Keeper - TransferKeeper ibctransferkeeper.Keeper FeeGrantKeeper feegrantkeeper.Keeper GroupKeeper groupkeeper.Keeper - ConsensusParamsKeeper consensusparamkeeper.Keeper - CircuitKeeper circuitkeeper.Keeper + ConsensusParamsKeeper consensuskeeper.Keeper + CircuitBreakerKeeper circuitkeeper.Keeper + + // IBC keepers + CapabilityKeeper *capabilitykeeper.Keeper + IBCKeeper *ibckeeper.Keeper // IBC Keeper must be a pointer in the app, so we can SetRouter on it correctly + TransferKeeper ibctransferkeeper.Keeper + IBCFeeKeeper ibcfeekeeper.Keeper + ICAControllerKeeper icacontrollerkeeper.Keeper + ICAHostKeeper icahostkeeper.Keeper // make scoped keepers public for test purposes ScopedIBCKeeper capabilitykeeper.ScopedKeeper @@ -217,15 +134,8 @@ type SimApp struct { ICAAuthModule ibcmock.IBCModule FeeMockModule ibcmock.IBCModule - // the module manager - ModuleManager *module.Manager - BasicModuleManager module.BasicManager - // simulation manager - simulationManager *module.SimulationManager - - // module configurator - configurator module.Configurator + sm *module.SimulationManager } func init() { @@ -246,23 +156,50 @@ func NewSimApp( appOpts servertypes.AppOptions, baseAppOptions ...func(*baseapp.BaseApp), ) *SimApp { - interfaceRegistry, _ := types.NewInterfaceRegistryWithOptions(types.InterfaceRegistryOptions{ - ProtoFiles: proto.HybridResolver, - SigningOptions: signing.Options{ - AddressCodec: address.Bech32Codec{ - Bech32Prefix: sdk.GetConfig().GetBech32AccountAddrPrefix(), - }, - ValidatorAddressCodec: address.Bech32Codec{ - Bech32Prefix: sdk.GetConfig().GetBech32ValidatorAddrPrefix(), - }, - }, - }) - appCodec := codec.NewProtoCodec(interfaceRegistry) - legacyAmino := codec.NewLegacyAmino() - txConfig := authtx.NewTxConfig(appCodec, authtx.DefaultSignModes) - - std.RegisterLegacyAminoCodec(legacyAmino) - std.RegisterInterfaces(interfaceRegistry) + var ( + app = &SimApp{} + appBuilder *runtime.AppBuilder + + // merge the AppConfig and other configuration in one config + appConfig = depinject.Configs( + AppConfig, + depinject.Supply( + // supply the application options + appOpts, + // supply the logger + logger, + + // ADVANCED CONFIGURATION + // See Cosmos SDK SimApp for Core SDK module advanced configuration + ), + ) + ) + + if err := depinject.Inject(appConfig, + &appBuilder, + &app.appCodec, + &app.legacyAmino, + &app.txConfig, + &app.interfaceRegistry, + &app.AccountKeeper, + &app.BankKeeper, + &app.StakingKeeper, + &app.SlashingKeeper, + &app.MintKeeper, + &app.DistrKeeper, + &app.GovKeeper, + &app.CrisisKeeper, + &app.UpgradeKeeper, + &app.ParamsKeeper, + &app.AuthzKeeper, + &app.EvidenceKeeper, + &app.FeeGrantKeeper, + &app.GroupKeeper, + &app.ConsensusParamsKeeper, + &app.CircuitBreakerKeeper, + ); err != nil { + panic(err) + } // Below we could construct and set an application specific mempool and // ABCI 1.0 PrepareProposal and ProcessProposal handlers. These defaults are @@ -271,16 +208,16 @@ func NewSimApp( // // Example: // - // bApp := baseapp.NewBaseApp(...) + // app.App = appBuilder.Build(...) // nonceMempool := mempool.NewSenderNonceMempool() - // abciPropHandler := NewDefaultProposalHandler(nonceMempool, bApp) + // abciPropHandler := NewDefaultProposalHandler(nonceMempool, app.App.BaseApp) // - // bApp.SetMempool(nonceMempool) - // bApp.SetPrepareProposal(abciPropHandler.PrepareProposalHandler()) - // bApp.SetProcessProposal(abciPropHandler.ProcessProposalHandler()) + // app.App.BaseApp.SetMempool(nonceMempool) + // app.App.BaseApp.SetPrepareProposal(abciPropHandler.PrepareProposalHandler()) + // app.App.BaseApp.SetProcessProposal(abciPropHandler.ProcessProposalHandler()) // // Alternatively, you can construct BaseApp options, append those to - // baseAppOptions and pass them to NewBaseApp. + // baseAppOptions and pass them to the appBuilder. // // Example: // @@ -290,47 +227,31 @@ func NewSimApp( // } // baseAppOptions = append(baseAppOptions, prepareOpt) - bApp := baseapp.NewBaseApp(appName, logger, db, txConfig.TxDecoder(), baseAppOptions...) - bApp.SetCommitMultiStoreTracer(traceStore) - bApp.SetVersion(version.Version) - bApp.SetInterfaceRegistry(interfaceRegistry) - bApp.SetTxEncoder(txConfig.TxEncoder()) - - keys := storetypes.NewKVStoreKeys( - authtypes.StoreKey, banktypes.StoreKey, stakingtypes.StoreKey, crisistypes.StoreKey, - minttypes.StoreKey, distrtypes.StoreKey, slashingtypes.StoreKey, - govtypes.StoreKey, group.StoreKey, paramstypes.StoreKey, ibcexported.StoreKey, upgradetypes.StoreKey, feegrant.StoreKey, - evidencetypes.StoreKey, ibctransfertypes.StoreKey, icacontrollertypes.StoreKey, icahosttypes.StoreKey, capabilitytypes.StoreKey, - authzkeeper.StoreKey, ibcfeetypes.StoreKey, consensusparamtypes.StoreKey, circuittypes.StoreKey, - ) + app.App = appBuilder.Build(db, traceStore, baseAppOptions...) - // register streaming services - if err := bApp.RegisterStreamingServices(appOpts, keys); err != nil { - panic(err) - } + /* Register IBC modules */ - tkeys := storetypes.NewTransientStoreKeys(paramstypes.TStoreKey) - memKeys := storetypes.NewMemoryStoreKeys(capabilitytypes.MemStoreKey, ibcmock.MemStoreKey) - - app := &SimApp{ - BaseApp: bApp, - legacyAmino: legacyAmino, - appCodec: appCodec, - txConfig: txConfig, - interfaceRegistry: interfaceRegistry, - keys: keys, - tkeys: tkeys, - memKeys: memKeys, + if err := app.RegisterStores( + storetypes.NewKVStoreKey(capabilitytypes.StoreKey), + storetypes.NewMemoryStoreKey(capabilitytypes.MemStoreKey), + storetypes.NewKVStoreKey(icacontrollertypes.StoreKey), + storetypes.NewKVStoreKey(ibcexported.StoreKey), + storetypes.NewKVStoreKey(ibcfeetypes.StoreKey), + storetypes.NewKVStoreKey(icahosttypes.StoreKey), + storetypes.NewKVStoreKey(ibctransfertypes.StoreKey), + ); err != nil { + panic(err) } - app.ParamsKeeper = initParamsKeeper(appCodec, legacyAmino, keys[paramstypes.StoreKey], tkeys[paramstypes.TStoreKey]) - - // set the BaseApp's parameter store - app.ConsensusParamsKeeper = consensusparamkeeper.NewKeeper(appCodec, runtime.NewKVStoreService(keys[consensusparamtypes.StoreKey]), authtypes.NewModuleAddress(govtypes.ModuleName).String(), runtime.EventService{}) - bApp.SetParamStore(app.ConsensusParamsKeeper.ParamsStore) + // TODO: ibc module subspaces can be removed after migration of params + // https://github.com/cosmos/ibc-go/issues/2010 + app.ParamsKeeper.Subspace(ibctransfertypes.ModuleName) + app.ParamsKeeper.Subspace(ibcexported.ModuleName) + app.ParamsKeeper.Subspace(icacontrollertypes.SubModuleName) + app.ParamsKeeper.Subspace(icahosttypes.SubModuleName) // add capability keeper and ScopeToModule for ibc module - app.CapabilityKeeper = capabilitykeeper.NewKeeper(appCodec, keys[capabilitytypes.StoreKey], memKeys[capabilitytypes.MemStoreKey]) + app.CapabilityKeeper = capabilitykeeper.NewKeeper(app.appCodec, app.GetKey(capabilitytypes.StoreKey), app.GetMemKey(capabilitytypes.MemStoreKey)) scopedIBCKeeper := app.CapabilityKeeper.ScopeToModule(ibcexported.ModuleName) scopedTransferKeeper := app.CapabilityKeeper.ScopeToModule(ibctransfertypes.ModuleName) @@ -348,97 +269,13 @@ func NewSimApp( // their scoped modules in `NewApp` with `ScopeToModule` app.CapabilityKeeper.Seal() - // SDK module keepers - - // add keepers - app.AccountKeeper = authkeeper.NewAccountKeeper(appCodec, runtime.NewKVStoreService(keys[authtypes.StoreKey]), authtypes.ProtoBaseAccount, maccPerms, authcodec.NewBech32Codec(sdk.Bech32MainPrefix), sdk.Bech32MainPrefix, authtypes.NewModuleAddress(govtypes.ModuleName).String()) - - app.BankKeeper = bankkeeper.NewBaseKeeper( - appCodec, - runtime.NewKVStoreService(keys[banktypes.StoreKey]), - app.AccountKeeper, - BlockedAddresses(), - authtypes.NewModuleAddress(govtypes.ModuleName).String(), - logger, - ) - app.StakingKeeper = stakingkeeper.NewKeeper( - appCodec, runtime.NewKVStoreService(keys[stakingtypes.StoreKey]), app.AccountKeeper, app.BankKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(), authcodec.NewBech32Codec(sdk.Bech32PrefixValAddr), authcodec.NewBech32Codec(sdk.Bech32PrefixConsAddr), - ) - app.MintKeeper = mintkeeper.NewKeeper(appCodec, runtime.NewKVStoreService(keys[minttypes.StoreKey]), app.StakingKeeper, app.AccountKeeper, app.BankKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String()) - - app.DistrKeeper = distrkeeper.NewKeeper(appCodec, runtime.NewKVStoreService(keys[distrtypes.StoreKey]), app.AccountKeeper, app.BankKeeper, app.StakingKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String()) - - app.SlashingKeeper = slashingkeeper.NewKeeper( - appCodec, legacyAmino, runtime.NewKVStoreService(keys[slashingtypes.StoreKey]), app.StakingKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(), - ) - - invCheckPeriod := cast.ToUint(appOpts.Get(server.FlagInvCheckPeriod)) - app.CrisisKeeper = crisiskeeper.NewKeeper(appCodec, runtime.NewKVStoreService(keys[crisistypes.StoreKey]), invCheckPeriod, - app.BankKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String(), app.AccountKeeper.AddressCodec()) - - app.FeeGrantKeeper = feegrantkeeper.NewKeeper(appCodec, runtime.NewKVStoreService(keys[feegrant.StoreKey]), app.AccountKeeper) - - // register the staking hooks - // NOTE: stakingKeeper above is passed by reference, so that it will contain these hooks - app.StakingKeeper.SetHooks( - stakingtypes.NewMultiStakingHooks(app.DistrKeeper.Hooks(), app.SlashingKeeper.Hooks()), - ) - - app.CircuitKeeper = circuitkeeper.NewKeeper(appCodec, runtime.NewKVStoreService(keys[circuittypes.StoreKey]), authtypes.NewModuleAddress(govtypes.ModuleName).String(), app.AccountKeeper.AddressCodec()) - app.BaseApp.SetCircuitBreaker(&app.CircuitKeeper) - - app.AuthzKeeper = authzkeeper.NewKeeper(runtime.NewKVStoreService(keys[authzkeeper.StoreKey]), appCodec, app.MsgServiceRouter(), app.AccountKeeper) - - groupConfig := group.DefaultConfig() - /* - Example of setting group params: - groupConfig.MaxMetadataLen = 1000 - */ - app.GroupKeeper = groupkeeper.NewKeeper(keys[group.StoreKey], appCodec, app.MsgServiceRouter(), app.AccountKeeper, groupConfig) - - // get skipUpgradeHeights from the app options - skipUpgradeHeights := map[int64]bool{} - for _, h := range cast.ToIntSlice(appOpts.Get(server.FlagUnsafeSkipUpgrades)) { - skipUpgradeHeights[int64(h)] = true - } - homePath := cast.ToString(appOpts.Get(flags.FlagHome)) - // set the governance module account as the authority for conducting upgrades - app.UpgradeKeeper = upgradekeeper.NewKeeper(skipUpgradeHeights, runtime.NewKVStoreService(keys[upgradetypes.StoreKey]), appCodec, homePath, app.BaseApp, authtypes.NewModuleAddress(govtypes.ModuleName).String()) - app.IBCKeeper = ibckeeper.NewKeeper( - appCodec, keys[ibcexported.StoreKey], app.GetSubspace(ibcexported.ModuleName), app.StakingKeeper, app.UpgradeKeeper, scopedIBCKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(), - ) - // Register the proposal types - // Deprecated: Avoid adding new handlers, instead use the new proposal flow - // by granting the governance module the right to execute the message. - // See: https://docs.cosmos.network/main/modules/gov#proposal-messages - govRouter := govv1beta1.NewRouter() - govRouter.AddRoute(govtypes.RouterKey, govv1beta1.ProposalHandler). - AddRoute(paramproposal.RouterKey, params.NewParamChangeProposalHandler(app.ParamsKeeper)). - AddRoute(ibcclienttypes.RouterKey, ibcclient.NewClientProposalHandler(app.IBCKeeper.ClientKeeper)) - - govConfig := govtypes.DefaultConfig() - /* - Example of setting gov params: - govConfig.MaxMetadataLen = 10000 - */ - govKeeper := govkeeper.NewKeeper( - appCodec, runtime.NewKVStoreService(keys[govtypes.StoreKey]), app.AccountKeeper, app.BankKeeper, - app.StakingKeeper, app.DistrKeeper, app.MsgServiceRouter(), govConfig, authtypes.NewModuleAddress(govtypes.ModuleName).String(), - ) - - // Set legacy router for backwards compatibility with gov v1beta1 - govKeeper.SetLegacyRouter(govRouter) - - app.GovKeeper = *govKeeper.SetHooks( - govtypes.NewMultiGovHooks( - // register the governance hooks - ), + app.appCodec, app.GetKey(ibcexported.StoreKey), app.GetSubspace(ibcexported.ModuleName), app.StakingKeeper, app.UpgradeKeeper, scopedIBCKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(), ) // IBC Fee Module keeper app.IBCFeeKeeper = ibcfeekeeper.NewKeeper( - appCodec, keys[ibcfeetypes.StoreKey], + app.appCodec, app.GetKey(ibcfeetypes.StoreKey), app.IBCKeeper.ChannelKeeper, // may be replaced with IBC middleware app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper, app.AccountKeeper, app.BankKeeper, @@ -446,7 +283,7 @@ func NewSimApp( // ICA Controller keeper app.ICAControllerKeeper = icacontrollerkeeper.NewKeeper( - appCodec, keys[icacontrollertypes.StoreKey], app.GetSubspace(icacontrollertypes.SubModuleName), + app.appCodec, app.GetKey(icacontrollertypes.StoreKey), app.GetSubspace(icacontrollertypes.SubModuleName), app.IBCFeeKeeper, // use ics29 fee as ics4Wrapper in middleware stack app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper, scopedICAControllerKeeper, app.MsgServiceRouter(), @@ -455,7 +292,7 @@ func NewSimApp( // ICA Host keeper app.ICAHostKeeper = icahostkeeper.NewKeeper( - appCodec, keys[icahosttypes.StoreKey], app.GetSubspace(icahosttypes.SubModuleName), + app.appCodec, app.GetKey(icahosttypes.StoreKey), app.GetSubspace(icahosttypes.SubModuleName), app.IBCFeeKeeper, // use ics29 fee as ics4Wrapper in middleware stack app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper, app.AccountKeeper, scopedICAHostKeeper, app.MsgServiceRouter(), @@ -470,7 +307,7 @@ func NewSimApp( // Create Transfer Keeper and pass IBCFeeKeeper as expected Channel and PortKeeper // since fee middleware will wrap the IBCKeeper for underlying application. app.TransferKeeper = ibctransferkeeper.NewKeeper( - appCodec, keys[ibctransfertypes.StoreKey], app.GetSubspace(ibctransfertypes.ModuleName), + app.appCodec, app.GetKey(ibctransfertypes.StoreKey), app.GetSubspace(ibctransfertypes.ModuleName), app.IBCFeeKeeper, // ISC4 Wrapper: fee IBC middleware app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper, app.AccountKeeper, app.BankKeeper, scopedTransferKeeper, @@ -553,46 +390,7 @@ func NewSimApp( // Seal the IBC Router app.IBCKeeper.SetRouter(ibcRouter) - // create evidence keeper with router - evidenceKeeper := evidencekeeper.NewKeeper( - appCodec, runtime.NewKVStoreService(keys[evidencetypes.StoreKey]), app.StakingKeeper, app.SlashingKeeper, app.AccountKeeper.AddressCodec(), runtime.ProvideCometInfoService(), - ) - // If evidence needs to be handled for the app, set routes in router here and seal - app.EvidenceKeeper = *evidenceKeeper - - // **** Module Options **** - - // NOTE: we may consider parsing `appOpts` inside module constructors. For the moment - // we prefer to be more strict in what arguments the modules expect. - skipGenesisInvariants := cast.ToBool(appOpts.Get(crisis.FlagSkipGenesisInvariants)) - - // NOTE: Any module instantiated in the module manager that is later modified - // must be passed by reference here. - app.ModuleManager = module.NewManager( - genutil.NewAppModule( - app.AccountKeeper, app.StakingKeeper, app, - txConfig, - ), - auth.NewAppModule(appCodec, app.AccountKeeper, authsims.RandomGenesisAccounts, app.GetSubspace(authtypes.ModuleName)), - vesting.NewAppModule(app.AccountKeeper, app.BankKeeper), - bank.NewAppModule(appCodec, app.BankKeeper, app.AccountKeeper, app.GetSubspace(banktypes.ModuleName)), - capability.NewAppModule(appCodec, *app.CapabilityKeeper, false), - crisis.NewAppModule(app.CrisisKeeper, skipGenesisInvariants, app.GetSubspace(crisistypes.ModuleName)), - feegrantmodule.NewAppModule(appCodec, app.AccountKeeper, app.BankKeeper, app.FeeGrantKeeper, app.interfaceRegistry), - gov.NewAppModule(appCodec, &app.GovKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(govtypes.ModuleName)), - mint.NewAppModule(appCodec, app.MintKeeper, app.AccountKeeper, nil, app.GetSubspace(minttypes.ModuleName)), - slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(slashingtypes.ModuleName), app.interfaceRegistry), - distr.NewAppModule(appCodec, app.DistrKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(distrtypes.ModuleName)), - staking.NewAppModule(appCodec, app.StakingKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(stakingtypes.ModuleName)), - upgrade.NewAppModule(app.UpgradeKeeper, app.AccountKeeper.AddressCodec()), - evidence.NewAppModule(app.EvidenceKeeper), - params.NewAppModule(app.ParamsKeeper), - authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry), - groupmodule.NewAppModule(appCodec, app.GroupKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry), - consensus.NewAppModule(appCodec, app.ConsensusParamsKeeper), - circuit.NewAppModule(appCodec, app.CircuitKeeper), - - // IBC modules + if err := app.RegisterModules( ibc.NewAppModule(app.IBCKeeper), transfer.NewAppModule(app.TransferKeeper), ibcfee.NewAppModule(app.IBCFeeKeeper), @@ -600,105 +398,24 @@ func NewSimApp( ibctm.AppModuleBasic{}, solomachine.AppModuleBasic{}, mockModule, - ) - - // BasicModuleManager defines the module BasicManager is in charge of setting up basic, - // non-dependant module elements, such as codec registration and genesis verification. - // By default it is composed of all the module from the module manager. - // Additionally, app module basics can be overwritten by passing them as argument. - app.BasicModuleManager = module.NewBasicManagerFromManager( - app.ModuleManager, - map[string]module.AppModuleBasic{ - genutiltypes.ModuleName: genutil.NewAppModuleBasic(genutiltypes.DefaultMessageValidator), - govtypes.ModuleName: gov.NewAppModuleBasic( - []govclient.ProposalHandler{ - paramsclient.ProposalHandler, - ibcclientclient.UpdateClientProposalHandler, - ibcclientclient.UpgradeProposalHandler, - }, - ), - }) - app.BasicModuleManager.RegisterLegacyAminoCodec(legacyAmino) - app.BasicModuleManager.RegisterInterfaces(interfaceRegistry) - - // During begin block slashing happens after distr.BeginBlocker so that - // there is nothing left over in the validator fee pool, so as to keep the - // CanWithdrawInvariant invariant. - // NOTE: staking module is required if HistoricalEntries param > 0 - // NOTE: capability module's beginblocker must come before any modules using capabilities (e.g. IBC) - app.ModuleManager.SetOrderBeginBlockers( - upgradetypes.ModuleName, - capabilitytypes.ModuleName, - minttypes.ModuleName, - distrtypes.ModuleName, - slashingtypes.ModuleName, - evidencetypes.ModuleName, - stakingtypes.ModuleName, - ibcexported.ModuleName, - ibctransfertypes.ModuleName, - genutiltypes.ModuleName, - authz.ModuleName, - icatypes.ModuleName, - ibcfeetypes.ModuleName, - ibcmock.ModuleName, - ) - app.ModuleManager.SetOrderEndBlockers( - crisistypes.ModuleName, - govtypes.ModuleName, - stakingtypes.ModuleName, - ibcexported.ModuleName, - ibctransfertypes.ModuleName, - capabilitytypes.ModuleName, - genutiltypes.ModuleName, - feegrant.ModuleName, - icatypes.ModuleName, - ibcfeetypes.ModuleName, - ibcmock.ModuleName, - group.ModuleName, - ) - - // NOTE: The genutils module must occur after staking so that pools are - // properly initialized with tokens from genesis accounts. - // NOTE: The genutils module must also occur after auth so that it can access the params from auth. - // NOTE: Capability module must occur first so that it can initialize any capabilities - // so that other modules that want to create or claim capabilities afterwards in InitChain - // can do so safely. - genesisModuleOrder := []string{ - capabilitytypes.ModuleName, - authtypes.ModuleName, - banktypes.ModuleName, distrtypes.ModuleName, stakingtypes.ModuleName, - slashingtypes.ModuleName, govtypes.ModuleName, minttypes.ModuleName, crisistypes.ModuleName, - ibcexported.ModuleName, genutiltypes.ModuleName, evidencetypes.ModuleName, authz.ModuleName, ibctransfertypes.ModuleName, - icatypes.ModuleName, ibcfeetypes.ModuleName, ibcmock.ModuleName, feegrant.ModuleName, paramstypes.ModuleName, upgradetypes.ModuleName, - vestingtypes.ModuleName, group.ModuleName, consensusparamtypes.ModuleName, circuittypes.ModuleName, - } - app.ModuleManager.SetOrderInitGenesis(genesisModuleOrder...) - app.ModuleManager.SetOrderExportGenesis(genesisModuleOrder...) - - // Uncomment if you want to set a custom migration order here. - // app.ModuleManager.SetOrderMigrations(custom order) - - app.ModuleManager.RegisterInvariants(app.CrisisKeeper) - app.configurator = module.NewConfigurator(app.appCodec, app.MsgServiceRouter(), app.GRPCQueryRouter()) - err := app.ModuleManager.RegisterServices(app.configurator) - if err != nil { + ); err != nil { panic(err) } + /* End IBC Module Setup */ + // registerUpgradeHandlers is used for registering any on-chain upgrades. // Make sure it's called after `app.ModuleManager` and `app.configurator` are set. app.registerUpgradeHandlers() - autocliv1.RegisterQueryServer(app.GRPCQueryRouter(), runtimeservices.NewAutoCLIQueryService(app.ModuleManager.Modules)) - - reflectionSvc, err := runtimeservices.NewReflectionService() - if err != nil { + // register streaming services + if err := app.RegisterStreamingServices(appOpts, app.kvStoreKeys()); err != nil { panic(err) } - reflectionv1.RegisterReflectionServiceServer(app.GRPCQueryRouter(), reflectionSvc) - // add test gRPC service for testing gRPC queries in isolation - testpb.RegisterQueryServer(app.GRPCQueryRouter(), testpb.QueryImpl{}) + /* Module Options */ + + app.ModuleManager.RegisterInvariants(app.CrisisKeeper) // create the simulation manager and define the order of the modules for deterministic simulations // @@ -707,61 +424,23 @@ func NewSimApp( overrideModules := map[string]module.AppModuleSimulation{ authtypes.ModuleName: auth.NewAppModule(app.appCodec, app.AccountKeeper, authsims.RandomGenesisAccounts, app.GetSubspace(authtypes.ModuleName)), } - app.simulationManager = module.NewSimulationManagerFromAppModules(app.ModuleManager.Modules, overrideModules) + app.sm = module.NewSimulationManagerFromAppModules(app.ModuleManager.Modules, overrideModules) - app.simulationManager.RegisterStoreDecoders() + app.sm.RegisterStoreDecoders() - // initialize stores - app.MountKVStores(keys) - app.MountTransientStores(tkeys) - app.MountMemoryStores(memKeys) - - // initialize BaseApp - app.SetInitChainer(app.InitChainer) - app.SetBeginBlocker(app.BeginBlocker) - app.SetEndBlocker(app.EndBlocker) - app.setAnteHandler(txConfig) - - // In v0.46, the SDK introduces _postHandlers_. PostHandlers are like - // antehandlers, but are run _after_ the `runMsgs` execution. They are also - // defined as a chain, and have the same signature as antehandlers. - // - // In baseapp, postHandlers are run in the same store branch as `runMsgs`, - // meaning that both `runMsgs` and `postHandler` state will be committed if - // both are successful, and both will be reverted if any of the two fails. - // - // The SDK exposes a default postHandlers chain, which comprises of only - // one decorator: the Transaction Tips decorator. However, some chains do - // not need it by default, so feel free to comment the next line if you do - // not need tips. - // To read more about tips: - // https://docs.cosmos.network/main/core/tips.html + // A custom InitChainer can be set if extra pre-init-genesis logic is required. + // By default, when using app wiring enabled module, this is not required. + // For instance, the upgrade module will set automatically the module version map in its init genesis thanks to app wiring. + // However, when registering a module manually (i.e. that does not support app wiring), the module version map + // must be set manually as follow. The upgrade module will de-duplicate the module version map. // - // Please note that changing any of the anteHandler or postHandler chain is - // likely to be a state-machine breaking change, which needs a coordinated - // upgrade. - app.setPostHandler() - - // At startup, after all modules have been registered, check that all proto - // annotations are correct. - protoFiles, err := proto.MergedRegistry() - if err != nil { - panic(err) - } - err = msgservice.ValidateProtoAnnotations(protoFiles) - if err != nil { - // Once we switch to using protoreflect-based antehandlers, we might - // want to panic here instead of logging a warning. - _, err := fmt.Fprintln(os.Stderr, err.Error()) - if err != nil { - fmt.Println("could not write to stderr") - } - } + // app.SetInitChainer(func(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain { + // app.UpgradeKeeper.SetModuleVersionMap(ctx, app.ModuleManager.GetVersionMap()) + // return app.App.InitChainer(ctx, req) + // }) - if loadLatest { - if err := app.LoadLatestVersion(); err != nil { - panic(fmt.Errorf("error loading last version: %w", err)) - } + if err := app.Load(loadLatest); err != nil { + panic(err) } app.ScopedIBCKeeper = scopedIBCKeeper @@ -778,72 +457,39 @@ func NewSimApp( return app } -func (app *SimApp) setAnteHandler(txConfig client.TxConfig) { - anteHandler, err := NewAnteHandler( - HandlerOptions{ - ante.HandlerOptions{ - AccountKeeper: app.AccountKeeper, - BankKeeper: app.BankKeeper, - SignModeHandler: txConfig.SignModeHandler(), - FeegrantKeeper: app.FeeGrantKeeper, - SigGasConsumer: ante.DefaultSigVerificationGasConsumer, - }, - &app.CircuitKeeper, - app.IBCKeeper, - }, - ) - if err != nil { - panic(err) +// AutoCliOpts returns the autocli options for the app. +func (app *SimApp) AutoCliOpts() autocli.AppOptions { + modules := make(map[string]appmodule.AppModule, 0) + for _, m := range app.ModuleManager.Modules { + if moduleWithName, ok := m.(module.HasName); ok { + moduleName := moduleWithName.Name() + if appModule, ok := moduleWithName.(appmodule.AppModule); ok { + modules[moduleName] = appModule + } + } } - // Set the AnteHandler for the app - app.SetAnteHandler(anteHandler) -} - -func (app *SimApp) setPostHandler() { - postHandler, err := posthandler.NewPostHandler( - posthandler.HandlerOptions{}, + var ( + addressCodec address.Codec + validatorAddressCodec runtime.ValidatorAddressCodec + consensusAddressCodec runtime.ConsensusAddressCodec ) - if err != nil { - panic(err) - } - - app.SetPostHandler(postHandler) -} -// Name returns the name of the App -func (app *SimApp) Name() string { return app.BaseApp.Name() } - -// BeginBlocker application updates every begin block -func (app *SimApp) BeginBlocker(ctx sdk.Context) (sdk.BeginBlock, error) { - return app.ModuleManager.BeginBlock(ctx) -} - -// EndBlocker application updates every end block -func (app *SimApp) EndBlocker(ctx sdk.Context) (sdk.EndBlock, error) { - return app.ModuleManager.EndBlock(ctx) -} - -// Configurator returns the configurator for the app -func (app *SimApp) Configurator() module.Configurator { - return app.configurator -} - -// InitChainer application update at chain initialization -func (app *SimApp) InitChainer(ctx sdk.Context, req *abci.RequestInitChain) (*abci.ResponseInitChain, error) { - var genesisState GenesisState - if err := json.Unmarshal(req.AppStateBytes, &genesisState); err != nil { + if err := depinject.Inject( + depinject.Configs(AppConfig, depinject.Supply(log.NewNopLogger())), + &addressCodec, + &validatorAddressCodec, + &consensusAddressCodec, + ); err != nil { panic(err) } - if err := app.UpgradeKeeper.SetModuleVersionMap(ctx, app.ModuleManager.GetVersionMap()); err != nil { - panic(err) - } - return app.ModuleManager.InitGenesis(ctx, app.appCodec, genesisState) -} -// LoadHeight loads a particular height -func (app *SimApp) LoadHeight(height int64) error { - return app.LoadVersion(height) + return autocli.AppOptions{ + Modules: modules, + AddressCodec: addressCodec, + ValidatorAddressCodec: validatorAddressCodec, + ConsensusAddressCodec: consensusAddressCodec, + } } // LegacyAmino returns SimApp's amino codec. @@ -862,8 +508,8 @@ func (app *SimApp) AppCodec() codec.Codec { return app.appCodec } -// InterfaceRegistry returns SimApp's InterfaceRegistry -func (app *SimApp) InterfaceRegistry() types.InterfaceRegistry { +// InterfaceRegistry returns SimApp's InterfaceRegistry. +func (app *SimApp) InterfaceRegistry() codectypes.InterfaceRegistry { return app.interfaceRegistry } @@ -872,43 +518,24 @@ func (app *SimApp) TxConfig() client.TxConfig { return app.txConfig } -// AutoCliOpts returns the autocli options for the app. -func (app *SimApp) AutoCliOpts() autocli.AppOptions { - modules := make(map[string]appmodule.AppModule, 0) - for _, m := range app.ModuleManager.Modules { - if moduleWithName, ok := m.(module.HasName); ok { - moduleName := moduleWithName.Name() - if appModule, ok := moduleWithName.(appmodule.AppModule); ok { - modules[moduleName] = appModule - } - } - } - - return autocli.AppOptions{ - Modules: modules, - AddressCodec: authcodec.NewBech32Codec(sdk.GetConfig().GetBech32AccountAddrPrefix()), - ValidatorAddressCodec: authcodec.NewBech32Codec(sdk.GetConfig().GetBech32ValidatorAddrPrefix()), - ConsensusAddressCodec: authcodec.NewBech32Codec(sdk.GetConfig().GetBech32ConsensusAddrPrefix()), - } -} - -// DefaultGenesis returns a default genesis from the registered AppModuleBasic's. -func (app *SimApp) DefaultGenesis() map[string]json.RawMessage { - return app.BasicModuleManager.DefaultGenesis(app.appCodec) -} - // GetKey returns the KVStoreKey for the provided store key. // // NOTE: This is solely to be used for testing purposes. func (app *SimApp) GetKey(storeKey string) *storetypes.KVStoreKey { - return app.keys[storeKey] + sk := app.UnsafeFindStoreKey(storeKey) + kvStoreKey, ok := sk.(*storetypes.KVStoreKey) + if !ok { + return nil + } + return kvStoreKey } -// GetStoreKeys returns all the stored store keys. -func (app *SimApp) GetStoreKeys() []storetypes.StoreKey { - keys := make([]storetypes.StoreKey, len(app.keys)) - for _, key := range app.keys { - keys = append(keys, key) +func (app *SimApp) kvStoreKeys() map[string]*storetypes.KVStoreKey { + keys := make(map[string]*storetypes.KVStoreKey) + for _, k := range app.GetStoreKeys() { + if kv, ok := k.(*storetypes.KVStoreKey); ok { + keys[kv.Name()] = kv + } } return keys @@ -924,89 +551,50 @@ func (app *SimApp) GetSubspace(moduleName string) paramstypes.Subspace { // SimulationManager implements the SimulationApp interface func (app *SimApp) SimulationManager() *module.SimulationManager { - return app.simulationManager + return app.sm } // RegisterAPIRoutes registers all application module routes with the provided // API server. func (app *SimApp) RegisterAPIRoutes(apiSvr *api.Server, apiConfig config.APIConfig) { - clientCtx := apiSvr.ClientCtx - // Register new tx routes from grpc-gateway. - authtx.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter) - - // Register new CometBFT queries routes from grpc-gateway. - cmtservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter) - - // Register node gRPC service for grpc-gateway. - nodeservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter) - - // Register grpc-gateway routes for all modules. - app.BasicModuleManager.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter) - - // register swagger API from root so that other applications can override easily + app.App.RegisterAPIRoutes(apiSvr, apiConfig) + // register swagger API in app.go so that other applications can override easily if err := server.RegisterSwaggerAPI(apiSvr.ClientCtx, apiSvr.Router, apiConfig.Swagger); err != nil { panic(err) } } -// RegisterTxService implements the Application.RegisterTxService method. -func (app *SimApp) RegisterTxService(clientCtx client.Context) { - authtx.RegisterTxService(app.BaseApp.GRPCQueryRouter(), clientCtx, app.BaseApp.Simulate, app.interfaceRegistry) -} - -// RegisterTendermintService implements the Application.RegisterTendermintService method. -func (app *SimApp) RegisterTendermintService(clientCtx client.Context) { - cmtApp := server.NewCometABCIWrapper(app) - cmtservice.RegisterTendermintService( - clientCtx, - app.BaseApp.GRPCQueryRouter(), - app.interfaceRegistry, - cmtApp.Query, - ) -} - -func (app *SimApp) RegisterNodeService(clientCtx client.Context, cfg config.Config) { - nodeservice.RegisterNodeService(clientCtx, app.GRPCQueryRouter(), cfg) -} - // GetMaccPerms returns a copy of the module account permissions // // NOTE: This is solely to be used for testing purposes. func GetMaccPerms() map[string][]string { - dupMaccPerms := make(map[string][]string) - for k, v := range maccPerms { - dupMaccPerms[k] = v + dup := make(map[string][]string) + for _, perms := range moduleAccPerms { + dup[perms.Account] = perms.Permissions } - return dupMaccPerms + return dup } // BlockedAddresses returns all the app's blocked account addresses. func BlockedAddresses() map[string]bool { - modAccAddrs := make(map[string]bool) - for acc := range GetMaccPerms() { - modAccAddrs[authtypes.NewModuleAddress(acc).String()] = true - } - - // allow the following addresses to receive funds - delete(modAccAddrs, authtypes.NewModuleAddress(govtypes.ModuleName).String()) - delete(modAccAddrs, authtypes.NewModuleAddress(ibcmock.ModuleName).String()) + result := make(map[string]bool) - return modAccAddrs -} - -// initParamsKeeper init params keeper and its subspaces -func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino, key, tkey storetypes.StoreKey) paramskeeper.Keeper { - paramsKeeper := paramskeeper.NewKeeper(appCodec, legacyAmino, key, tkey) + if len(blockAccAddrs) > 0 { + for _, addr := range blockAccAddrs { + result[addr] = true + } + } else { + for addr := range GetMaccPerms() { + result[addr] = true + } - // TODO: ibc module subspaces can be removed after migration of params - // https://github.com/cosmos/ibc-go/issues/2010 - paramsKeeper.Subspace(ibctransfertypes.ModuleName) - paramsKeeper.Subspace(ibcexported.ModuleName) - paramsKeeper.Subspace(icacontrollertypes.SubModuleName) - paramsKeeper.Subspace(icahosttypes.SubModuleName) + // allow the following addresses to receive funds + delete(result, authtypes.NewModuleAddress(govtypes.ModuleName).String()) + delete(result, authtypes.NewModuleAddress(ibcmock.ModuleName).String()) + } - return paramsKeeper + return result } // IBC TestingApp functions @@ -1040,5 +628,10 @@ func (app *SimApp) GetTxConfig() client.TxConfig { // // NOTE: This is solely used for testing purposes. func (app *SimApp) GetMemKey(storeKey string) *storetypes.MemoryStoreKey { - return app.memKeys[storeKey] + key, ok := app.UnsafeFindStoreKey(storeKey).(*storetypes.MemoryStoreKey) + if !ok { + return nil + } + + return key } diff --git a/testing/simapp/app_config.go b/testing/simapp/app_config.go new file mode 100644 index 00000000000..bf88f12d191 --- /dev/null +++ b/testing/simapp/app_config.go @@ -0,0 +1,297 @@ +package simapp + +import ( + "time" + + "google.golang.org/protobuf/types/known/durationpb" + + _ "cosmossdk.io/x/circuit" // import for side-effects + _ "cosmossdk.io/x/evidence" // import for side-effects + _ "cosmossdk.io/x/feegrant/module" // import for side-effects + _ "cosmossdk.io/x/upgrade" // import for side-effects + _ "github.com/cosmos/cosmos-sdk/x/auth/tx/config" // import for side-effects + _ "github.com/cosmos/cosmos-sdk/x/auth/vesting" // import for side-effects + _ "github.com/cosmos/cosmos-sdk/x/authz/module" // import for side-effects + _ "github.com/cosmos/cosmos-sdk/x/bank" // import for side-effects + _ "github.com/cosmos/cosmos-sdk/x/consensus" // import for side-effects + _ "github.com/cosmos/cosmos-sdk/x/crisis" // import for side-effects + _ "github.com/cosmos/cosmos-sdk/x/distribution" // import for side-effects + _ "github.com/cosmos/cosmos-sdk/x/group/module" // import for side-effects + _ "github.com/cosmos/cosmos-sdk/x/mint" // import for side-effects + _ "github.com/cosmos/cosmos-sdk/x/params" // import for side-effects + _ "github.com/cosmos/cosmos-sdk/x/slashing" // import for side-effects + _ "github.com/cosmos/cosmos-sdk/x/staking" // import for side-effects + + runtimev1alpha1 "cosmossdk.io/api/cosmos/app/runtime/v1alpha1" + appv1alpha1 "cosmossdk.io/api/cosmos/app/v1alpha1" + authmodulev1 "cosmossdk.io/api/cosmos/auth/module/v1" + authzmodulev1 "cosmossdk.io/api/cosmos/authz/module/v1" + bankmodulev1 "cosmossdk.io/api/cosmos/bank/module/v1" + circuitmodulev1 "cosmossdk.io/api/cosmos/circuit/module/v1" + consensusmodulev1 "cosmossdk.io/api/cosmos/consensus/module/v1" + crisismodulev1 "cosmossdk.io/api/cosmos/crisis/module/v1" + distrmodulev1 "cosmossdk.io/api/cosmos/distribution/module/v1" + evidencemodulev1 "cosmossdk.io/api/cosmos/evidence/module/v1" + feegrantmodulev1 "cosmossdk.io/api/cosmos/feegrant/module/v1" + genutilmodulev1 "cosmossdk.io/api/cosmos/genutil/module/v1" + govmodulev1 "cosmossdk.io/api/cosmos/gov/module/v1" + groupmodulev1 "cosmossdk.io/api/cosmos/group/module/v1" + mintmodulev1 "cosmossdk.io/api/cosmos/mint/module/v1" + paramsmodulev1 "cosmossdk.io/api/cosmos/params/module/v1" + slashingmodulev1 "cosmossdk.io/api/cosmos/slashing/module/v1" + stakingmodulev1 "cosmossdk.io/api/cosmos/staking/module/v1" + txconfigv1 "cosmossdk.io/api/cosmos/tx/config/v1" + upgrademodulev1 "cosmossdk.io/api/cosmos/upgrade/module/v1" + vestingmodulev1 "cosmossdk.io/api/cosmos/vesting/module/v1" + "cosmossdk.io/core/appconfig" + "cosmossdk.io/depinject" + circuittypes "cosmossdk.io/x/circuit/types" + evidencetypes "cosmossdk.io/x/evidence/types" + "cosmossdk.io/x/feegrant" + upgradetypes "cosmossdk.io/x/upgrade/types" + + "github.com/cosmos/cosmos-sdk/runtime" + "github.com/cosmos/cosmos-sdk/types/module" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + vestingtypes "github.com/cosmos/cosmos-sdk/x/auth/vesting/types" + "github.com/cosmos/cosmos-sdk/x/authz" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + consensustypes "github.com/cosmos/cosmos-sdk/x/consensus/types" + crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types" + distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" + "github.com/cosmos/cosmos-sdk/x/genutil" + genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types" + "github.com/cosmos/cosmos-sdk/x/gov" + govclient "github.com/cosmos/cosmos-sdk/x/gov/client" + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + "github.com/cosmos/cosmos-sdk/x/group" + minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" + paramsclient "github.com/cosmos/cosmos-sdk/x/params/client" + paramstypes "github.com/cosmos/cosmos-sdk/x/params/types" + slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" + stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" + + capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" + icatypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/types" + ibcfeetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types" + ibctransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" + ibcclientclient "github.com/cosmos/ibc-go/v7/modules/core/02-client/client" + ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" + ibcmock "github.com/cosmos/ibc-go/v7/testing/mock" +) + +var ( + // module account permissions + moduleAccPerms = []*authmodulev1.ModuleAccountPermission{ + {Account: authtypes.FeeCollectorName}, + {Account: distrtypes.ModuleName}, + {Account: minttypes.ModuleName, Permissions: []string{authtypes.Minter}}, + {Account: stakingtypes.BondedPoolName, Permissions: []string{authtypes.Burner, stakingtypes.ModuleName}}, + {Account: stakingtypes.NotBondedPoolName, Permissions: []string{authtypes.Burner, stakingtypes.ModuleName}}, + {Account: govtypes.ModuleName, Permissions: []string{authtypes.Burner}}, + {Account: ibctransfertypes.ModuleName, Permissions: []string{authtypes.Minter, authtypes.Burner}}, + {Account: ibcfeetypes.ModuleName, Permissions: nil}, + {Account: icatypes.ModuleName, Permissions: nil}, + {Account: ibcmock.ModuleName, Permissions: nil}, + } + + // blocked account addresses + blockAccAddrs = []string{ + authtypes.FeeCollectorName, + distrtypes.ModuleName, + minttypes.ModuleName, + stakingtypes.BondedPoolName, + stakingtypes.NotBondedPoolName, + // We allow the following module accounts to receive funds: + // govtypes.ModuleName + } + + CustomModuleBasicConfig = map[string]module.AppModuleBasic{ + genutiltypes.ModuleName: genutil.NewAppModuleBasic(genutiltypes.DefaultMessageValidator), + govtypes.ModuleName: gov.NewAppModuleBasic( + []govclient.ProposalHandler{ + paramsclient.ProposalHandler, + ibcclientclient.UpdateClientProposalHandler, + ibcclientclient.UpgradeProposalHandler, + }, + ), + } + + // application configuration (used by depinject) + AppConfig = depinject.Configs(appconfig.Compose(&appv1alpha1.Config{ + Modules: []*appv1alpha1.ModuleConfig{ + { + Name: runtime.ModuleName, + Config: appconfig.WrapAny(&runtimev1alpha1.Module{ + AppName: "SimApp", + // During begin block slashing happens after distr.BeginBlocker so that + // there is nothing left over in the validator fee pool, so as to keep the + // CanWithdrawInvariant invariant. + // NOTE: staking module is required if HistoricalEntries param > 0 + BeginBlockers: []string{ + upgradetypes.ModuleName, + capabilitytypes.ModuleName, + minttypes.ModuleName, + distrtypes.ModuleName, + slashingtypes.ModuleName, + evidencetypes.ModuleName, + stakingtypes.ModuleName, + authz.ModuleName, + icatypes.ModuleName, + ibcfeetypes.ModuleName, + ibcmock.ModuleName, + }, + EndBlockers: []string{ + crisistypes.ModuleName, + govtypes.ModuleName, + stakingtypes.ModuleName, + ibcexported.ModuleName, + ibctransfertypes.ModuleName, + capabilitytypes.ModuleName, + genutiltypes.ModuleName, + feegrant.ModuleName, + icatypes.ModuleName, + ibcfeetypes.ModuleName, + ibcmock.ModuleName, + group.ModuleName, + }, + OverrideStoreKeys: []*runtimev1alpha1.StoreKeyConfig{ + { + ModuleName: authtypes.ModuleName, + KvStoreKey: "acc", + }, + }, + // NOTE: The genutils module must occur after staking so that pools are + // properly initialized with tokens from genesis accounts. + // NOTE: The genutils module must also occur after auth so that it can access the params from auth. + InitGenesis: []string{ + capabilitytypes.ModuleName, + authtypes.ModuleName, + banktypes.ModuleName, + distrtypes.ModuleName, + stakingtypes.ModuleName, + slashingtypes.ModuleName, + govtypes.ModuleName, + minttypes.ModuleName, + crisistypes.ModuleName, + ibcexported.ModuleName, + genutiltypes.ModuleName, + evidencetypes.ModuleName, + authz.ModuleName, + ibctransfertypes.ModuleName, + icatypes.ModuleName, + ibcfeetypes.ModuleName, + ibcmock.ModuleName, + feegrant.ModuleName, + group.ModuleName, + paramstypes.ModuleName, + upgradetypes.ModuleName, + vestingtypes.ModuleName, + circuittypes.ModuleName, + }, + // When ExportGenesis is not specified, the export genesis module order + // is equal to the init genesis order + // ExportGenesis: []string{}, + // Uncomment if you want to set a custom migration order here. + // OrderMigrations: []string{}, + }), + }, + { + Name: authtypes.ModuleName, + Config: appconfig.WrapAny(&authmodulev1.Module{ + Bech32Prefix: "cosmos", + ModuleAccountPermissions: moduleAccPerms, + // By default modules authority is the governance module. This is configurable with the following: + // Authority: "group", // A custom module authority can be set using a module name + // Authority: "cosmos1cwwv22j5ca08ggdv9c2uky355k908694z577tv", // or a specific address + }), + }, + { + Name: vestingtypes.ModuleName, + Config: appconfig.WrapAny(&vestingmodulev1.Module{}), + }, + { + Name: banktypes.ModuleName, + Config: appconfig.WrapAny(&bankmodulev1.Module{ + BlockedModuleAccountsOverride: blockAccAddrs, + }), + }, + { + Name: stakingtypes.ModuleName, + Config: appconfig.WrapAny(&stakingmodulev1.Module{ + // NOTE: specifying a prefix is only necessary when using bech32 addresses + // If not specfied, the auth Bech32Prefix appended with "valoper" and "valcons" is used by default + Bech32PrefixValidator: "cosmosvaloper", + Bech32PrefixConsensus: "cosmosvalcons", + }), + }, + { + Name: slashingtypes.ModuleName, + Config: appconfig.WrapAny(&slashingmodulev1.Module{}), + }, + { + Name: paramstypes.ModuleName, + Config: appconfig.WrapAny(¶msmodulev1.Module{}), + }, + { + Name: "tx", + Config: appconfig.WrapAny(&txconfigv1.Config{}), + }, + { + Name: genutiltypes.ModuleName, + Config: appconfig.WrapAny(&genutilmodulev1.Module{}), + }, + { + Name: authz.ModuleName, + Config: appconfig.WrapAny(&authzmodulev1.Module{}), + }, + { + Name: upgradetypes.ModuleName, + Config: appconfig.WrapAny(&upgrademodulev1.Module{}), + }, + { + Name: distrtypes.ModuleName, + Config: appconfig.WrapAny(&distrmodulev1.Module{}), + }, + { + Name: evidencetypes.ModuleName, + Config: appconfig.WrapAny(&evidencemodulev1.Module{}), + }, + { + Name: minttypes.ModuleName, + Config: appconfig.WrapAny(&mintmodulev1.Module{}), + }, + { + Name: group.ModuleName, + Config: appconfig.WrapAny(&groupmodulev1.Module{ + MaxExecutionPeriod: durationpb.New(time.Second * 1209600), + MaxMetadataLen: 255, + }), + }, + { + Name: feegrant.ModuleName, + Config: appconfig.WrapAny(&feegrantmodulev1.Module{}), + }, + { + Name: govtypes.ModuleName, + Config: appconfig.WrapAny(&govmodulev1.Module{}), + }, + { + Name: crisistypes.ModuleName, + Config: appconfig.WrapAny(&crisismodulev1.Module{}), + }, + { + Name: consensustypes.ModuleName, + Config: appconfig.WrapAny(&consensusmodulev1.Module{}), + }, + { + Name: circuittypes.ModuleName, + Config: appconfig.WrapAny(&circuitmodulev1.Module{}), + }, + }, + }), + depinject.Supply( + // supply custom module basics + CustomModuleBasicConfig, + )) +) diff --git a/testing/simapp/export.go b/testing/simapp/export.go index 190b547e6a5..273588dd5f8 100644 --- a/testing/simapp/export.go +++ b/testing/simapp/export.go @@ -196,7 +196,7 @@ func (app *SimApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs [] // Iterate through validators by power descending, reset bond heights, and // update bond intra-tx counters. - store := ctx.KVStore(app.keys[stakingtypes.StoreKey]) + store := ctx.KVStore(app.GetKey(stakingtypes.StoreKey)) iter := storetypes.KVStoreReversePrefixIterator(store, stakingtypes.ValidatorsKey) counter := int16(0) diff --git a/testing/simapp/simd/cmd/root.go b/testing/simapp/simd/cmd/root.go index 5ac6a9f1cb0..a6910c13dc8 100644 --- a/testing/simapp/simd/cmd/root.go +++ b/testing/simapp/simd/cmd/root.go @@ -45,7 +45,8 @@ import ( // main function. func NewRootCmd() *cobra.Command { // we "pre"-instantiate the application for getting the injected/configured encoding configuration - // note, this is not necessary when using app wiring, as depinject can be directly used (see root_v2.go) + // note, this is not necessary when an application uses only app wired module, as depinject can be directly used + // IBC SimApp uses a mix a app v2 and manual wiring, so we need to instantiate the full app to get the information. tempApp := simapp.NewSimApp(log.NewNopLogger(), dbm.NewMemDB(), nil, true, simtestutil.NewAppOptionsWithFlagHome(tempDir())) encodingConfig := params.EncodingConfig{ InterfaceRegistry: tempApp.InterfaceRegistry(), @@ -110,7 +111,7 @@ func NewRootCmd() *cobra.Command { }, } - initRootCmd(rootCmd, encodingConfig, tempApp.BasicModuleManager) + initRootCmd(rootCmd, encodingConfig, module.NewBasicManagerFromManager(tempApp.ModuleManager, simapp.CustomModuleBasicConfig)) if err := tempApp.AutoCliOpts().EnhanceRootCommand(rootCmd); err != nil { panic(err) diff --git a/testing/simapp/upgrades.go b/testing/simapp/upgrades.go index c635b7ecc1c..5b780d1c98c 100644 --- a/testing/simapp/upgrades.go +++ b/testing/simapp/upgrades.go @@ -17,7 +17,7 @@ import ( func (app SimApp) registerUpgradeHandlers() { app.UpgradeKeeper.SetUpgradeHandler( upgrades.V5, - upgrades.CreateDefaultUpgradeHandler(app.ModuleManager, app.configurator), + upgrades.CreateDefaultUpgradeHandler(app.ModuleManager, app.Configurator()), ) // NOTE: The moduleName arg of v6.CreateUpgradeHandler refers to the auth module ScopedKeeper name to which the channel capability should be migrated from. @@ -27,9 +27,9 @@ func (app SimApp) registerUpgradeHandlers() { upgrades.V6, upgrades.CreateV6UpgradeHandler( app.ModuleManager, - app.configurator, + app.Configurator(), app.appCodec, - app.keys[capabilitytypes.ModuleName], + app.GetKey(capabilitytypes.ModuleName), app.CapabilityKeeper, ibcmock.ModuleName+icacontrollertypes.SubModuleName, ), @@ -39,7 +39,7 @@ func (app SimApp) registerUpgradeHandlers() { upgrades.V7, upgrades.CreateV7UpgradeHandler( app.ModuleManager, - app.configurator, + app.Configurator(), app.appCodec, app.IBCKeeper.ClientKeeper, app.ConsensusParamsKeeper, @@ -49,14 +49,14 @@ func (app SimApp) registerUpgradeHandlers() { app.UpgradeKeeper.SetUpgradeHandler( upgrades.V7_1, - upgrades.CreateV7LocalhostUpgradeHandler(app.ModuleManager, app.configurator, app.IBCKeeper.ClientKeeper), + upgrades.CreateV7LocalhostUpgradeHandler(app.ModuleManager, app.Configurator(), app.IBCKeeper.ClientKeeper), ) app.UpgradeKeeper.SetUpgradeHandler( upgrades.V8, upgrades.CreateV8UpgradeHandler( app.ModuleManager, - app.configurator, + app.Configurator(), ), )