@agoric/cosmos 0.35.0-u21.0 → 0.35.0-u22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -187
- package/Makefile +2 -2
- package/ante/ante.go +2 -2
- package/ante/inbound.go +1 -2
- package/ante/inbound_test.go +3 -1
- package/ante/vm_admission.go +1 -2
- package/app/app.go +255 -174
- package/app/encoding.go +6 -3
- package/app/export.go +50 -21
- package/app/genesis.go +7 -5
- package/app/params/encoding.go +1 -1
- package/app/params/proto.go +6 -4
- package/app/sim_test.go +11 -13
- package/app/txconfig/tx_config.go +169 -0
- package/app/upgrade.go +52 -97
- package/app/upgrade_test.go +1 -1
- package/cmd/agd/agvm.go +1 -1
- package/cmd/agd/main.go +1 -1
- package/cmd/libdaemon/main.go +2 -2
- package/daemon/cmd/root.go +99 -30
- package/daemon/cmd/root_test.go +12 -27
- package/daemon/main.go +2 -9
- package/git-revision.txt +1 -1
- package/go.mod +129 -109
- package/go.sum +228 -469
- package/package.json +2 -2
- package/proto/agoric/swingset/msgs.proto +46 -9
- package/proto/agoric/swingset/swingset.proto +7 -2
- package/proto/agoric/vbank/vbank.proto +1 -1
- package/proto/agoric/vibc/msgs.proto +4 -0
- package/tests/e2e/vbank/vbank_test.go +172 -0
- package/tests/integrations/types/aminojson_test.go +214 -0
- package/tests/integrations/vbank/vbank_test.go +348 -0
- package/third_party/proto/amino/amino.proto +6 -1
- package/third_party/proto/cosmos/base/v1beta1/coin.proto +18 -5
- package/third_party/proto/cosmos/upgrade/v1beta1/upgrade.proto +4 -8
- package/third_party/proto/ibc/core/channel/v1/channel.proto +42 -17
- package/third_party/proto/ibc/core/client/v1/client.proto +48 -40
- package/types/address_hooks.go +2 -2
- package/types/address_hooks_test.go +3 -3
- package/types/ibc_packet.go +3 -3
- package/types/ibc_packet_test.go +3 -3
- package/types/kv_entry_helpers.go +3 -3
- package/types/kv_entry_helpers_test.go +2 -2
- package/types/legacy_address_encoder.go +58 -0
- package/vm/proto_json_test.go +1 -1
- package/vm/server.go +2 -1
- package/x/swingset/abci.go +2 -2
- package/x/swingset/client/cli/tx.go +16 -14
- package/x/swingset/config.go +1 -1
- package/x/swingset/genesis.go +2 -1
- package/x/swingset/handler.go +2 -1
- package/x/swingset/keeper/extension_snapshotter.go +14 -5
- package/x/swingset/keeper/extension_snapshotter_test.go +1 -1
- package/x/swingset/keeper/keeper.go +21 -17
- package/x/swingset/keeper/keeper_test.go +10 -7
- package/x/swingset/keeper/msg_server.go +26 -5
- package/x/swingset/keeper/swing_store_exports_handler.go +1 -1
- package/x/swingset/keeper/swing_store_exports_handler_test.go +1 -1
- package/x/swingset/module.go +20 -22
- package/x/swingset/types/codec.go +10 -5
- package/x/swingset/types/default-params.go +13 -12
- package/x/swingset/types/expected_keepers.go +5 -4
- package/x/swingset/types/msgs.go +50 -36
- package/x/swingset/types/msgs.pb.go +60 -51
- package/x/swingset/types/params_test.go +21 -20
- package/x/swingset/types/swingset.pb.go +67 -61
- package/x/vbank/genesis.go +12 -8
- package/x/vbank/handler.go +2 -1
- package/x/vbank/keeper/grpc_query.go +4 -1
- package/x/vbank/keeper/keeper.go +108 -23
- package/x/vbank/keeper/querier.go +4 -1
- package/x/vbank/keeper/rewards.go +6 -2
- package/x/vbank/module.go +47 -75
- package/x/vbank/types/expected_keepers.go +15 -10
- package/x/vbank/types/key.go +3 -0
- package/x/vbank/types/params.go +4 -3
- package/x/vbank/types/vbank.pb.go +41 -40
- package/x/vbank/vbank.go +25 -10
- package/x/vbank/vbank_test.go +213 -154
- package/x/vibc/handler.go +2 -1
- package/x/vibc/keeper/keeper.go +10 -10
- package/x/vibc/keeper/migrations.go +1 -1
- package/x/vibc/keeper/triggers.go +1 -1
- package/x/vibc/module.go +5 -22
- package/x/vibc/types/codec.go +2 -1
- package/x/vibc/types/expected_keepers.go +7 -5
- package/x/vibc/types/ibc_module.go +5 -5
- package/x/vibc/types/msgs.go +30 -7
- package/x/vibc/types/msgs.pb.go +29 -25
- package/x/vibc/types/receiver.go +2 -2
- package/x/vlocalchain/handler.go +2 -1
- package/x/vlocalchain/keeper/keeper.go +17 -5
- package/x/vlocalchain/keeper/keeper_test.go +3 -2
- package/x/vlocalchain/types/expected_keepers.go +7 -4
- package/x/vlocalchain/vlocalchain_test.go +38 -26
- package/x/vstorage/genesis.go +10 -10
- package/x/vstorage/handler.go +2 -1
- package/x/vstorage/keeper/keeper.go +68 -46
- package/x/vstorage/keeper/keeper_test.go +35 -19
- package/x/vstorage/module.go +27 -13
- package/x/vstorage/testing/queue.go +5 -3
- package/x/vstorage/vstorage.go +2 -1
- package/x/vstorage/vstorage_test.go +21 -17
- package/x/vtransfer/genesis.go +1 -3
- package/x/vtransfer/handler.go +3 -2
- package/x/vtransfer/ibc_middleware.go +5 -5
- package/x/vtransfer/ibc_middleware_test.go +43 -29
- package/x/vtransfer/keeper/keeper.go +35 -33
- package/x/vtransfer/module.go +8 -11
- package/x/vtransfer/types/expected_keepers.go +3 -3
- package/x/vtransfer/utils_test.go +26 -11
- package/daemon/cmd/testnet.go +0 -539
package/app/app.go
CHANGED
|
@@ -14,13 +14,27 @@ import (
|
|
|
14
14
|
|
|
15
15
|
autocliv1 "cosmossdk.io/api/cosmos/autocli/v1"
|
|
16
16
|
reflectionv1 "cosmossdk.io/api/cosmos/reflection/v1"
|
|
17
|
+
"cosmossdk.io/client/v2/autocli"
|
|
18
|
+
"cosmossdk.io/core/appmodule"
|
|
17
19
|
sdkioerrors "cosmossdk.io/errors"
|
|
20
|
+
storetypes "cosmossdk.io/store/types"
|
|
21
|
+
"cosmossdk.io/x/evidence"
|
|
22
|
+
evidencekeeper "cosmossdk.io/x/evidence/keeper"
|
|
23
|
+
evidencetypes "cosmossdk.io/x/evidence/types"
|
|
24
|
+
"cosmossdk.io/x/feegrant"
|
|
25
|
+
feegrantkeeper "cosmossdk.io/x/feegrant/keeper"
|
|
26
|
+
feegrantmodule "cosmossdk.io/x/feegrant/module"
|
|
27
|
+
"cosmossdk.io/x/tx/signing"
|
|
28
|
+
"cosmossdk.io/x/upgrade"
|
|
29
|
+
upgradekeeper "cosmossdk.io/x/upgrade/keeper"
|
|
30
|
+
upgradetypes "cosmossdk.io/x/upgrade/types"
|
|
18
31
|
"github.com/cosmos/cosmos-sdk/baseapp"
|
|
19
32
|
"github.com/cosmos/cosmos-sdk/client"
|
|
20
33
|
"github.com/cosmos/cosmos-sdk/client/flags"
|
|
34
|
+
cmtservice "github.com/cosmos/cosmos-sdk/client/grpc/cmtservice"
|
|
21
35
|
nodeservice "github.com/cosmos/cosmos-sdk/client/grpc/node"
|
|
22
|
-
"github.com/cosmos/cosmos-sdk/client/grpc/tmservice"
|
|
23
36
|
"github.com/cosmos/cosmos-sdk/codec"
|
|
37
|
+
"github.com/cosmos/cosmos-sdk/codec/address"
|
|
24
38
|
"github.com/cosmos/cosmos-sdk/codec/types"
|
|
25
39
|
"github.com/cosmos/cosmos-sdk/runtime"
|
|
26
40
|
runtimeservices "github.com/cosmos/cosmos-sdk/runtime/services"
|
|
@@ -28,12 +42,13 @@ import (
|
|
|
28
42
|
"github.com/cosmos/cosmos-sdk/server/api"
|
|
29
43
|
"github.com/cosmos/cosmos-sdk/server/config"
|
|
30
44
|
servertypes "github.com/cosmos/cosmos-sdk/server/types"
|
|
31
|
-
|
|
45
|
+
"github.com/cosmos/cosmos-sdk/std"
|
|
32
46
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
33
47
|
"github.com/cosmos/cosmos-sdk/types/module"
|
|
34
48
|
"github.com/cosmos/cosmos-sdk/version"
|
|
35
49
|
"github.com/cosmos/cosmos-sdk/x/auth"
|
|
36
50
|
"github.com/cosmos/cosmos-sdk/x/auth/ante"
|
|
51
|
+
authcodec "github.com/cosmos/cosmos-sdk/x/auth/codec"
|
|
37
52
|
authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper"
|
|
38
53
|
authsims "github.com/cosmos/cosmos-sdk/x/auth/simulation"
|
|
39
54
|
authtx "github.com/cosmos/cosmos-sdk/x/auth/tx"
|
|
@@ -46,27 +61,17 @@ import (
|
|
|
46
61
|
"github.com/cosmos/cosmos-sdk/x/bank"
|
|
47
62
|
bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
|
|
48
63
|
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
|
|
49
|
-
"github.com/cosmos/cosmos-sdk/x/capability"
|
|
50
|
-
capabilitykeeper "github.com/cosmos/cosmos-sdk/x/capability/keeper"
|
|
51
|
-
capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types"
|
|
52
64
|
consensusparamskeeper "github.com/cosmos/cosmos-sdk/x/consensus/keeper"
|
|
53
65
|
consensusparamstypes "github.com/cosmos/cosmos-sdk/x/consensus/types"
|
|
54
66
|
distr "github.com/cosmos/cosmos-sdk/x/distribution"
|
|
55
67
|
distrkeeper "github.com/cosmos/cosmos-sdk/x/distribution/keeper"
|
|
56
68
|
distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types"
|
|
57
|
-
"github.com/cosmos/cosmos-sdk/x/evidence"
|
|
58
|
-
evidencekeeper "github.com/cosmos/cosmos-sdk/x/evidence/keeper"
|
|
59
|
-
evidencetypes "github.com/cosmos/cosmos-sdk/x/evidence/types"
|
|
60
|
-
"github.com/cosmos/cosmos-sdk/x/feegrant"
|
|
61
|
-
feegrantkeeper "github.com/cosmos/cosmos-sdk/x/feegrant/keeper"
|
|
62
|
-
feegrantmodule "github.com/cosmos/cosmos-sdk/x/feegrant/module"
|
|
63
69
|
"github.com/cosmos/cosmos-sdk/x/genutil"
|
|
64
70
|
genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types"
|
|
65
71
|
"github.com/cosmos/cosmos-sdk/x/gov"
|
|
66
72
|
govclient "github.com/cosmos/cosmos-sdk/x/gov/client"
|
|
67
73
|
govkeeper "github.com/cosmos/cosmos-sdk/x/gov/keeper"
|
|
68
74
|
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types"
|
|
69
|
-
govtypesv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1"
|
|
70
75
|
govv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"
|
|
71
76
|
"github.com/cosmos/cosmos-sdk/x/mint"
|
|
72
77
|
mintkeeper "github.com/cosmos/cosmos-sdk/x/mint/keeper"
|
|
@@ -82,39 +87,39 @@ import (
|
|
|
82
87
|
"github.com/cosmos/cosmos-sdk/x/staking"
|
|
83
88
|
stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper"
|
|
84
89
|
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
|
|
85
|
-
"github.com/cosmos/
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
ica "github.com/cosmos/ibc-go/
|
|
90
|
+
"github.com/cosmos/gogoproto/proto"
|
|
91
|
+
"github.com/cosmos/ibc-go/modules/capability"
|
|
92
|
+
capabilitykeeper "github.com/cosmos/ibc-go/modules/capability/keeper"
|
|
93
|
+
capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types"
|
|
94
|
+
ica "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts"
|
|
90
95
|
|
|
91
|
-
|
|
96
|
+
"cosmossdk.io/log"
|
|
92
97
|
abci "github.com/cometbft/cometbft/abci/types"
|
|
93
98
|
tmjson "github.com/cometbft/cometbft/libs/json"
|
|
94
|
-
"github.com/cometbft/cometbft/libs/log"
|
|
95
99
|
tmos "github.com/cometbft/cometbft/libs/os"
|
|
96
100
|
tmproto "github.com/cometbft/cometbft/proto/tendermint/types"
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
ibcclienttypes "github.com/cosmos/ibc-go/
|
|
108
|
-
ibcporttypes "github.com/cosmos/ibc-go/
|
|
109
|
-
ibcexported "github.com/cosmos/ibc-go/
|
|
110
|
-
ibckeeper "github.com/cosmos/ibc-go/
|
|
111
|
-
|
|
112
|
-
ibctm "github.com/cosmos/ibc-go/
|
|
101
|
+
dbm "github.com/cosmos/cosmos-db"
|
|
102
|
+
icahost "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host"
|
|
103
|
+
icahostkeeper "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host/keeper"
|
|
104
|
+
icahosttypes "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host/types"
|
|
105
|
+
icatypes "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/types"
|
|
106
|
+
ibctransfer "github.com/cosmos/ibc-go/v8/modules/apps/transfer"
|
|
107
|
+
ibctransferkeeper "github.com/cosmos/ibc-go/v8/modules/apps/transfer/keeper"
|
|
108
|
+
ibctransfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types"
|
|
109
|
+
ibc "github.com/cosmos/ibc-go/v8/modules/core"
|
|
110
|
+
ibcclient "github.com/cosmos/ibc-go/v8/modules/core/02-client"
|
|
111
|
+
ibcclienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types"
|
|
112
|
+
ibcporttypes "github.com/cosmos/ibc-go/v8/modules/core/05-port/types"
|
|
113
|
+
ibcexported "github.com/cosmos/ibc-go/v8/modules/core/exported"
|
|
114
|
+
ibckeeper "github.com/cosmos/ibc-go/v8/modules/core/keeper"
|
|
115
|
+
ibcsolo "github.com/cosmos/ibc-go/v8/modules/light-clients/06-solomachine"
|
|
116
|
+
ibctm "github.com/cosmos/ibc-go/v8/modules/light-clients/07-tendermint"
|
|
113
117
|
"github.com/gorilla/mux"
|
|
114
118
|
"github.com/rakyll/statik/fs"
|
|
115
119
|
"github.com/spf13/cast"
|
|
116
120
|
|
|
117
121
|
appante "github.com/Agoric/agoric-sdk/golang/cosmos/ante"
|
|
122
|
+
"github.com/Agoric/agoric-sdk/golang/cosmos/app/txconfig"
|
|
118
123
|
agorictypes "github.com/Agoric/agoric-sdk/golang/cosmos/types"
|
|
119
124
|
|
|
120
125
|
// conv "github.com/Agoric/agoric-sdk/golang/cosmos/types/conv"
|
|
@@ -126,19 +131,20 @@ import (
|
|
|
126
131
|
"github.com/Agoric/agoric-sdk/golang/cosmos/x/vbank"
|
|
127
132
|
vbanktypes "github.com/Agoric/agoric-sdk/golang/cosmos/x/vbank/types"
|
|
128
133
|
"github.com/Agoric/agoric-sdk/golang/cosmos/x/vibc"
|
|
134
|
+
vibctypes "github.com/Agoric/agoric-sdk/golang/cosmos/x/vibc/types"
|
|
129
135
|
"github.com/Agoric/agoric-sdk/golang/cosmos/x/vlocalchain"
|
|
130
136
|
"github.com/Agoric/agoric-sdk/golang/cosmos/x/vstorage"
|
|
131
137
|
"github.com/Agoric/agoric-sdk/golang/cosmos/x/vtransfer"
|
|
132
138
|
vtransferkeeper "github.com/Agoric/agoric-sdk/golang/cosmos/x/vtransfer/keeper"
|
|
133
|
-
testtypes "github.com/cosmos/ibc-go/
|
|
139
|
+
testtypes "github.com/cosmos/ibc-go/v8/testing/types"
|
|
134
140
|
|
|
135
141
|
// Import the packet forward middleware
|
|
136
|
-
packetforward "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/
|
|
137
|
-
packetforwardkeeper "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/
|
|
138
|
-
packetforwardtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/
|
|
139
|
-
|
|
142
|
+
packetforward "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8/packetforward"
|
|
143
|
+
packetforwardkeeper "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8/packetforward/keeper"
|
|
144
|
+
packetforwardtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8/packetforward/types"
|
|
140
145
|
// unnamed import of statik for swagger UI support
|
|
141
|
-
|
|
146
|
+
// XXX figure out how to build the docs
|
|
147
|
+
// _ "github.com/cosmos/cosmos-sdk/client/docs/statik"
|
|
142
148
|
)
|
|
143
149
|
|
|
144
150
|
const appName = "agoric"
|
|
@@ -164,45 +170,6 @@ var (
|
|
|
164
170
|
// DefaultNodeHome default home directories for the application daemon
|
|
165
171
|
DefaultNodeHome string
|
|
166
172
|
|
|
167
|
-
// ModuleBasics defines the module BasicManager is in charge of setting up basic,
|
|
168
|
-
// non-dependant module elements, such as codec registration
|
|
169
|
-
// and genesis verification.
|
|
170
|
-
ModuleBasics = module.NewBasicManager(
|
|
171
|
-
auth.AppModuleBasic{},
|
|
172
|
-
genutil.NewAppModuleBasic(genutiltypes.DefaultMessageValidator),
|
|
173
|
-
bank.AppModuleBasic{},
|
|
174
|
-
capability.AppModuleBasic{},
|
|
175
|
-
staking.AppModuleBasic{},
|
|
176
|
-
mint.AppModuleBasic{},
|
|
177
|
-
distr.AppModuleBasic{},
|
|
178
|
-
gov.NewAppModuleBasic([]govclient.ProposalHandler{
|
|
179
|
-
paramsclient.ProposalHandler,
|
|
180
|
-
upgradeclient.LegacyProposalHandler,
|
|
181
|
-
upgradeclient.LegacyCancelProposalHandler,
|
|
182
|
-
ibcclientclient.UpdateClientProposalHandler,
|
|
183
|
-
ibcclientclient.UpgradeProposalHandler,
|
|
184
|
-
swingsetclient.CoreEvalProposalHandler,
|
|
185
|
-
}),
|
|
186
|
-
params.AppModuleBasic{},
|
|
187
|
-
slashing.AppModuleBasic{},
|
|
188
|
-
feegrantmodule.AppModuleBasic{},
|
|
189
|
-
authzmodule.AppModuleBasic{},
|
|
190
|
-
ibc.AppModuleBasic{},
|
|
191
|
-
ibctm.AppModuleBasic{},
|
|
192
|
-
ibcsolomachine.AppModuleBasic{},
|
|
193
|
-
upgrade.AppModuleBasic{},
|
|
194
|
-
evidence.AppModuleBasic{},
|
|
195
|
-
ibctransfer.AppModuleBasic{},
|
|
196
|
-
vesting.AppModuleBasic{},
|
|
197
|
-
ica.AppModuleBasic{},
|
|
198
|
-
packetforward.AppModuleBasic{},
|
|
199
|
-
swingset.AppModuleBasic{},
|
|
200
|
-
vstorage.AppModuleBasic{},
|
|
201
|
-
vibc.AppModuleBasic{},
|
|
202
|
-
vbank.AppModuleBasic{},
|
|
203
|
-
vtransfer.AppModuleBasic{},
|
|
204
|
-
)
|
|
205
|
-
|
|
206
173
|
// module account permissions
|
|
207
174
|
maccPerms = map[string][]string{
|
|
208
175
|
authtypes.FeeCollectorName: nil,
|
|
@@ -221,16 +188,13 @@ var (
|
|
|
221
188
|
)
|
|
222
189
|
|
|
223
190
|
var (
|
|
224
|
-
// _ simapp.App = (*GaiaApp)(nil)
|
|
225
|
-
// _ servertypes.Application = (*GaiaApp)(nil)
|
|
226
|
-
|
|
227
191
|
_ runtime.AppI = (*GaiaApp)(nil)
|
|
228
192
|
_ servertypes.Application = (*GaiaApp)(nil)
|
|
229
193
|
// _ ibctesting.TestingApp = (*GaiaApp)(nil)
|
|
230
194
|
)
|
|
231
195
|
|
|
232
196
|
// GaiaApp extends an ABCI application, but with most of its parameters exported.
|
|
233
|
-
// They are exported for convenience in
|
|
197
|
+
// They are exported for convenience in cr1eating helper functions, as object
|
|
234
198
|
// capabilities aren't needed for testing.
|
|
235
199
|
type GaiaApp struct { // nolint: golint
|
|
236
200
|
*baseapp.BaseApp
|
|
@@ -238,6 +202,7 @@ type GaiaApp struct { // nolint: golint
|
|
|
238
202
|
legacyAmino *codec.LegacyAmino
|
|
239
203
|
appCodec codec.Codec
|
|
240
204
|
interfaceRegistry types.InterfaceRegistry
|
|
205
|
+
txConfig client.TxConfig
|
|
241
206
|
|
|
242
207
|
controllerInited bool
|
|
243
208
|
bootstrapNeeded bool
|
|
@@ -264,7 +229,7 @@ type GaiaApp struct { // nolint: golint
|
|
|
264
229
|
AccountKeeper authkeeper.AccountKeeper
|
|
265
230
|
BankKeeper bankkeeper.Keeper
|
|
266
231
|
CapabilityKeeper *capabilitykeeper.Keeper
|
|
267
|
-
StakingKeeper stakingkeeper.Keeper
|
|
232
|
+
StakingKeeper *stakingkeeper.Keeper
|
|
268
233
|
SlashingKeeper slashingkeeper.Keeper
|
|
269
234
|
MintKeeper mintkeeper.Keeper
|
|
270
235
|
DistrKeeper distrkeeper.Keeper
|
|
@@ -296,8 +261,9 @@ type GaiaApp struct { // nolint: golint
|
|
|
296
261
|
ScopedICAHostKeeper capabilitykeeper.ScopedKeeper
|
|
297
262
|
ScopedVibcKeeper capabilitykeeper.ScopedKeeper
|
|
298
263
|
|
|
299
|
-
// the module
|
|
300
|
-
ModuleManager
|
|
264
|
+
// the module managers
|
|
265
|
+
ModuleManager *module.Manager
|
|
266
|
+
BasicModuleManager module.BasicManager
|
|
301
267
|
|
|
302
268
|
// simulation manager
|
|
303
269
|
sm *module.SimulationManager
|
|
@@ -324,6 +290,7 @@ func NewSimApp(
|
|
|
324
290
|
var defaultController vm.Sender = func(ctx context.Context, needReply bool, jsonRequest string) (jsonReply string, err error) {
|
|
325
291
|
return "", fmt.Errorf("unexpected VM upcall with no controller: %s", jsonRequest)
|
|
326
292
|
}
|
|
293
|
+
|
|
327
294
|
app := NewAgoricApp(
|
|
328
295
|
defaultController, vm.NewAgdServer(),
|
|
329
296
|
logger, db, traceStore, loadLatest, appOpts, baseAppOptions...,
|
|
@@ -349,19 +316,47 @@ func NewAgoricApp(
|
|
|
349
316
|
for _, h := range cast.ToIntSlice(appOpts.Get(server.FlagUnsafeSkipUpgrades)) {
|
|
350
317
|
skipUpgradeHeights[int64(h)] = true
|
|
351
318
|
}
|
|
352
|
-
encodingConfig := MakeEncodingConfig()
|
|
353
319
|
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
320
|
+
signingOptions := signing.Options{
|
|
321
|
+
AddressCodec: address.Bech32Codec{
|
|
322
|
+
Bech32Prefix: sdk.GetConfig().GetBech32AccountAddrPrefix(),
|
|
323
|
+
},
|
|
324
|
+
ValidatorAddressCodec: address.Bech32Codec{
|
|
325
|
+
Bech32Prefix: sdk.GetConfig().GetBech32ValidatorAddrPrefix(),
|
|
326
|
+
},
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
DefineCustomGetSigners(&signingOptions)
|
|
330
|
+
|
|
331
|
+
interfaceRegistry, _ := types.NewInterfaceRegistryWithOptions(types.InterfaceRegistryOptions{
|
|
332
|
+
ProtoFiles: proto.HybridResolver,
|
|
333
|
+
SigningOptions: signingOptions,
|
|
334
|
+
})
|
|
335
|
+
appCodec := codec.NewProtoCodec(interfaceRegistry)
|
|
336
|
+
legacyAmino := codec.NewLegacyAmino()
|
|
337
|
+
|
|
338
|
+
txConfig, err := txconfig.NewTxConfigWithOptionsWithCustomEncoders(appCodec, authtx.ConfigOptions{
|
|
339
|
+
EnabledSignModes: authtx.DefaultSignModes,
|
|
340
|
+
CustomSignModes: []signing.SignModeHandler{},
|
|
341
|
+
})
|
|
342
|
+
if err != nil {
|
|
343
|
+
panic(err)
|
|
344
|
+
}
|
|
357
345
|
|
|
358
|
-
|
|
346
|
+
if err := interfaceRegistry.SigningContext().Validate(); err != nil {
|
|
347
|
+
panic(err)
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
std.RegisterLegacyAminoCodec(legacyAmino)
|
|
351
|
+
std.RegisterInterfaces(interfaceRegistry)
|
|
352
|
+
|
|
353
|
+
bApp := baseapp.NewBaseApp(appName, logger, db, txConfig.TxDecoder(), baseAppOptions...)
|
|
359
354
|
bApp.SetCommitMultiStoreTracer(traceStore)
|
|
360
355
|
bApp.SetVersion(version.Version)
|
|
361
356
|
bApp.SetInterfaceRegistry(interfaceRegistry)
|
|
362
|
-
bApp.SetTxEncoder(
|
|
357
|
+
bApp.SetTxEncoder(txConfig.TxEncoder())
|
|
363
358
|
|
|
364
|
-
keys :=
|
|
359
|
+
keys := storetypes.NewKVStoreKeys(
|
|
365
360
|
authtypes.StoreKey, banktypes.StoreKey, stakingtypes.StoreKey,
|
|
366
361
|
minttypes.StoreKey, distrtypes.StoreKey, slashingtypes.StoreKey,
|
|
367
362
|
govtypes.StoreKey, paramstypes.StoreKey, ibcexported.StoreKey, upgradetypes.StoreKey,
|
|
@@ -370,8 +365,8 @@ func NewAgoricApp(
|
|
|
370
365
|
swingset.StoreKey, vstorage.StoreKey, vibc.StoreKey,
|
|
371
366
|
vlocalchain.StoreKey, vtransfer.StoreKey, vbank.StoreKey, consensusparamstypes.StoreKey,
|
|
372
367
|
)
|
|
373
|
-
tkeys :=
|
|
374
|
-
memKeys :=
|
|
368
|
+
tkeys := storetypes.NewTransientStoreKeys(paramstypes.TStoreKey, vbanktypes.TStoreKey)
|
|
369
|
+
memKeys := storetypes.NewMemoryStoreKeys(capabilitytypes.MemStoreKey)
|
|
375
370
|
|
|
376
371
|
app := &GaiaApp{
|
|
377
372
|
BaseApp: bApp,
|
|
@@ -379,6 +374,7 @@ func NewAgoricApp(
|
|
|
379
374
|
resolvedConfig: appOpts,
|
|
380
375
|
legacyAmino: legacyAmino,
|
|
381
376
|
appCodec: appCodec,
|
|
377
|
+
txConfig: txConfig,
|
|
382
378
|
interfaceRegistry: interfaceRegistry,
|
|
383
379
|
invCheckPeriod: invCheckPeriod,
|
|
384
380
|
keys: keys,
|
|
@@ -395,12 +391,13 @@ func NewAgoricApp(
|
|
|
395
391
|
|
|
396
392
|
app.ConsensusParamsKeeper = consensusparamskeeper.NewKeeper(
|
|
397
393
|
appCodec,
|
|
398
|
-
keys[consensusparamstypes.StoreKey],
|
|
394
|
+
runtime.NewKVStoreService(keys[consensusparamstypes.StoreKey]),
|
|
399
395
|
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
|
|
396
|
+
runtime.EventService{},
|
|
400
397
|
)
|
|
401
398
|
|
|
402
399
|
// set the BaseApp's parameter store
|
|
403
|
-
bApp.SetParamStore(
|
|
400
|
+
bApp.SetParamStore(app.ConsensusParamsKeeper.ParamsStore)
|
|
404
401
|
|
|
405
402
|
// add capability keeper and ScopeToModule for ibc module
|
|
406
403
|
app.CapabilityKeeper = capabilitykeeper.NewKeeper(appCodec, keys[capabilitytypes.StoreKey], memKeys[capabilitytypes.MemStoreKey])
|
|
@@ -414,42 +411,48 @@ func NewAgoricApp(
|
|
|
414
411
|
|
|
415
412
|
app.AccountKeeper = authkeeper.NewAccountKeeper(
|
|
416
413
|
appCodec,
|
|
417
|
-
keys[authtypes.StoreKey],
|
|
414
|
+
runtime.NewKVStoreService(keys[authtypes.StoreKey]),
|
|
418
415
|
authtypes.ProtoBaseAccount,
|
|
419
416
|
maccPerms,
|
|
420
|
-
sdk.
|
|
417
|
+
authcodec.NewBech32Codec(sdk.GetConfig().GetBech32AccountAddrPrefix()),
|
|
418
|
+
sdk.GetConfig().GetBech32AccountAddrPrefix(),
|
|
421
419
|
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
|
|
422
420
|
)
|
|
423
421
|
|
|
424
422
|
app.BankKeeper = bankkeeper.NewBaseKeeper(
|
|
425
423
|
appCodec,
|
|
426
|
-
keys[banktypes.StoreKey],
|
|
424
|
+
runtime.NewKVStoreService(keys[banktypes.StoreKey]),
|
|
427
425
|
app.AccountKeeper,
|
|
428
426
|
BlockedAddresses(),
|
|
429
427
|
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
|
|
428
|
+
bApp.Logger(),
|
|
430
429
|
)
|
|
430
|
+
|
|
431
431
|
app.AuthzKeeper = authzkeeper.NewKeeper(
|
|
432
|
-
keys[authzkeeper.StoreKey],
|
|
432
|
+
runtime.NewKVStoreService(keys[authzkeeper.StoreKey]),
|
|
433
433
|
appCodec,
|
|
434
434
|
app.BaseApp.MsgServiceRouter(),
|
|
435
435
|
app.AccountKeeper,
|
|
436
436
|
)
|
|
437
|
+
|
|
437
438
|
app.FeeGrantKeeper = feegrantkeeper.NewKeeper(
|
|
438
439
|
appCodec,
|
|
439
|
-
keys[feegrant.StoreKey],
|
|
440
|
+
runtime.NewKVStoreService(keys[feegrant.StoreKey]),
|
|
440
441
|
app.AccountKeeper,
|
|
441
442
|
)
|
|
442
|
-
app.StakingKeeper =
|
|
443
|
+
app.StakingKeeper = stakingkeeper.NewKeeper(
|
|
443
444
|
appCodec,
|
|
444
|
-
keys[stakingtypes.StoreKey],
|
|
445
|
+
runtime.NewKVStoreService(keys[stakingtypes.StoreKey]),
|
|
445
446
|
app.AccountKeeper,
|
|
446
447
|
app.BankKeeper,
|
|
447
448
|
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
|
|
449
|
+
address.NewBech32Codec(sdk.GetConfig().GetBech32ValidatorAddrPrefix()),
|
|
450
|
+
address.NewBech32Codec(sdk.GetConfig().GetBech32ConsensusAddrPrefix()),
|
|
448
451
|
)
|
|
449
452
|
|
|
450
453
|
app.MintKeeper = mintkeeper.NewKeeper(
|
|
451
454
|
appCodec,
|
|
452
|
-
keys[minttypes.StoreKey],
|
|
455
|
+
runtime.NewKVStoreService(keys[minttypes.StoreKey]),
|
|
453
456
|
app.StakingKeeper,
|
|
454
457
|
app.AccountKeeper,
|
|
455
458
|
app.BankKeeper,
|
|
@@ -459,7 +462,7 @@ func NewAgoricApp(
|
|
|
459
462
|
|
|
460
463
|
distrKeeper := distrkeeper.NewKeeper(
|
|
461
464
|
appCodec,
|
|
462
|
-
keys[distrtypes.StoreKey],
|
|
465
|
+
runtime.NewKVStoreService(keys[distrtypes.StoreKey]),
|
|
463
466
|
app.AccountKeeper,
|
|
464
467
|
app.BankKeeper,
|
|
465
468
|
app.StakingKeeper,
|
|
@@ -471,7 +474,7 @@ func NewAgoricApp(
|
|
|
471
474
|
app.SlashingKeeper = slashingkeeper.NewKeeper(
|
|
472
475
|
appCodec,
|
|
473
476
|
legacyAmino,
|
|
474
|
-
keys[slashingtypes.StoreKey],
|
|
477
|
+
runtime.NewKVStoreService(keys[slashingtypes.StoreKey]),
|
|
475
478
|
app.StakingKeeper,
|
|
476
479
|
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
|
|
477
480
|
)
|
|
@@ -484,7 +487,7 @@ func NewAgoricApp(
|
|
|
484
487
|
|
|
485
488
|
app.UpgradeKeeper = upgradekeeper.NewKeeper(
|
|
486
489
|
skipUpgradeHeights,
|
|
487
|
-
keys[upgradetypes.StoreKey],
|
|
490
|
+
runtime.NewKVStoreService(keys[upgradetypes.StoreKey]),
|
|
488
491
|
appCodec,
|
|
489
492
|
homePath,
|
|
490
493
|
app.BaseApp,
|
|
@@ -502,6 +505,7 @@ func NewAgoricApp(
|
|
|
502
505
|
app.StakingKeeper,
|
|
503
506
|
app.UpgradeKeeper,
|
|
504
507
|
scopedIBCKeeper,
|
|
508
|
+
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
|
|
505
509
|
)
|
|
506
510
|
|
|
507
511
|
// This function is tricky to get right, so we build it ourselves.
|
|
@@ -517,13 +521,15 @@ func NewAgoricApp(
|
|
|
517
521
|
}
|
|
518
522
|
|
|
519
523
|
app.VstorageKeeper = vstorage.NewKeeper(
|
|
520
|
-
|
|
524
|
+
vstorage.StoreKey,
|
|
525
|
+
runtime.NewKVStoreService(keys[vstorage.StoreKey]),
|
|
521
526
|
)
|
|
522
527
|
app.vstoragePort = app.AgdServer.MustRegisterPortHandler("vstorage", vstorage.NewStorageHandler(app.VstorageKeeper))
|
|
523
528
|
|
|
524
529
|
// The SwingSetKeeper is the Keeper from the SwingSet module
|
|
525
530
|
app.SwingSetKeeper = swingset.NewKeeper(
|
|
526
|
-
appCodec, keys[swingset.StoreKey]
|
|
531
|
+
appCodec, runtime.NewKVStoreService(keys[swingset.StoreKey]),
|
|
532
|
+
app.GetSubspace(swingset.ModuleName),
|
|
527
533
|
app.AccountKeeper, app.BankKeeper,
|
|
528
534
|
app.VstorageKeeper, vbanktypes.ReservePoolName,
|
|
529
535
|
callToController,
|
|
@@ -563,9 +569,13 @@ func NewAgoricApp(
|
|
|
563
569
|
app.VibcKeeper = vibc.NewKeeper(
|
|
564
570
|
appCodec,
|
|
565
571
|
app.IBCKeeper.ChannelKeeper,
|
|
566
|
-
|
|
572
|
+
app.IBCKeeper.PortKeeper,
|
|
567
573
|
app.IBCKeeper.ClientKeeper,
|
|
568
|
-
).WithScope(
|
|
574
|
+
).WithScope(
|
|
575
|
+
runtime.NewKVStoreService(keys[vibc.StoreKey]),
|
|
576
|
+
scopedVibcKeeper,
|
|
577
|
+
app.SwingSetKeeper.PushAction,
|
|
578
|
+
)
|
|
569
579
|
|
|
570
580
|
vibcModule := vibc.NewAppModule(app.VibcKeeper, app.BankKeeper)
|
|
571
581
|
vibcIBCModule := vibc.NewIBCModule(app.VibcKeeper)
|
|
@@ -573,7 +583,7 @@ func NewAgoricApp(
|
|
|
573
583
|
|
|
574
584
|
app.VtransferKeeper = vtransferkeeper.NewKeeper(
|
|
575
585
|
appCodec,
|
|
576
|
-
keys[vtransfer.StoreKey],
|
|
586
|
+
runtime.NewKVStoreService(keys[vtransfer.StoreKey]),
|
|
577
587
|
app.VibcKeeper,
|
|
578
588
|
scopedTransferKeeper,
|
|
579
589
|
app.SwingSetKeeper.PushAction,
|
|
@@ -585,7 +595,10 @@ func NewAgoricApp(
|
|
|
585
595
|
)
|
|
586
596
|
|
|
587
597
|
app.VbankKeeper = vbank.NewKeeper(
|
|
588
|
-
appCodec,
|
|
598
|
+
appCodec,
|
|
599
|
+
runtime.NewKVStoreService(keys[vbank.StoreKey]),
|
|
600
|
+
runtime.NewTransientStoreService(tkeys[vbanktypes.TStoreKey]),
|
|
601
|
+
app.GetSubspace(vbank.ModuleName),
|
|
589
602
|
app.AccountKeeper, app.BankKeeper, authtypes.FeeCollectorName,
|
|
590
603
|
app.SwingSetKeeper.PushAction,
|
|
591
604
|
)
|
|
@@ -597,17 +610,17 @@ func NewAgoricApp(
|
|
|
597
610
|
govRouter.
|
|
598
611
|
AddRoute(govtypes.RouterKey, govv1beta1.ProposalHandler).
|
|
599
612
|
AddRoute(paramproposal.RouterKey, params.NewParamChangeProposalHandler(app.ParamsKeeper)).
|
|
600
|
-
AddRoute(upgradetypes.RouterKey, upgrade.NewSoftwareUpgradeProposalHandler(app.UpgradeKeeper)).
|
|
601
613
|
AddRoute(ibcclienttypes.RouterKey, ibcclient.NewClientProposalHandler(app.IBCKeeper.ClientKeeper)).
|
|
602
614
|
AddRoute(swingsettypes.RouterKey, swingset.NewSwingSetProposalHandler(app.SwingSetKeeper))
|
|
603
615
|
govConfig := govtypes.DefaultConfig()
|
|
604
616
|
|
|
605
617
|
app.GovKeeper = govkeeper.NewKeeper(
|
|
606
618
|
appCodec,
|
|
607
|
-
keys[govtypes.StoreKey],
|
|
619
|
+
runtime.NewKVStoreService(keys[govtypes.StoreKey]),
|
|
608
620
|
app.AccountKeeper,
|
|
609
621
|
app.BankKeeper,
|
|
610
622
|
app.StakingKeeper,
|
|
623
|
+
app.DistrKeeper,
|
|
611
624
|
app.MsgServiceRouter(),
|
|
612
625
|
govConfig,
|
|
613
626
|
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
|
|
@@ -639,10 +652,11 @@ func NewAgoricApp(
|
|
|
639
652
|
app.GetSubspace(ibctransfertypes.ModuleName),
|
|
640
653
|
app.PacketForwardKeeper, // Wire in the middleware ICS4Wrapper.
|
|
641
654
|
app.IBCKeeper.ChannelKeeper,
|
|
642
|
-
|
|
655
|
+
app.IBCKeeper.PortKeeper,
|
|
643
656
|
app.AccountKeeper,
|
|
644
657
|
app.BankKeeper,
|
|
645
658
|
scopedTransferKeeper,
|
|
659
|
+
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
|
|
646
660
|
)
|
|
647
661
|
|
|
648
662
|
app.PacketForwardKeeper.SetTransferKeeper(app.TransferKeeper)
|
|
@@ -655,10 +669,11 @@ func NewAgoricApp(
|
|
|
655
669
|
app.GetSubspace(icahosttypes.SubModuleName),
|
|
656
670
|
app.IBCKeeper.ChannelKeeper, // This is where middleware binding would happen.
|
|
657
671
|
app.IBCKeeper.ChannelKeeper,
|
|
658
|
-
|
|
672
|
+
app.IBCKeeper.PortKeeper,
|
|
659
673
|
app.AccountKeeper,
|
|
660
674
|
scopedICAHostKeeper,
|
|
661
675
|
app.MsgServiceRouter(),
|
|
676
|
+
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
|
|
662
677
|
)
|
|
663
678
|
app.ICAHostKeeper.WithQueryRouter(app.GRPCQueryRouter())
|
|
664
679
|
|
|
@@ -666,7 +681,6 @@ func NewAgoricApp(
|
|
|
666
681
|
icaModule := ica.NewAppModule(nil, &app.ICAHostKeeper)
|
|
667
682
|
|
|
668
683
|
ics20TransferModule := ibctransfer.NewAppModule(app.TransferKeeper)
|
|
669
|
-
|
|
670
684
|
// Create the IBC router, which maps *module names* (not PortIDs) to modules.
|
|
671
685
|
ibcRouter := ibcporttypes.NewRouter()
|
|
672
686
|
|
|
@@ -685,7 +699,6 @@ func NewAgoricApp(
|
|
|
685
699
|
app.PacketForwardKeeper,
|
|
686
700
|
0, // retries on timeout
|
|
687
701
|
packetforwardkeeper.DefaultForwardTransferPacketTimeoutTimestamp, // forward timeout
|
|
688
|
-
packetforwardkeeper.DefaultRefundTransferPacketTimeoutTimestamp, // refund timeout
|
|
689
702
|
)
|
|
690
703
|
ics20TransferIBCModule = vtransfer.NewIBCMiddleware(ics20TransferIBCModule, app.VtransferKeeper)
|
|
691
704
|
ibcRouter.AddRoute(ibctransfertypes.ModuleName, ics20TransferIBCModule)
|
|
@@ -710,11 +723,13 @@ func NewAgoricApp(
|
|
|
710
723
|
// create evidence keeper with router
|
|
711
724
|
evidenceKeeper := evidencekeeper.NewKeeper(
|
|
712
725
|
appCodec,
|
|
713
|
-
keys[evidencetypes.StoreKey],
|
|
726
|
+
runtime.NewKVStoreService(keys[evidencetypes.StoreKey]),
|
|
714
727
|
app.StakingKeeper,
|
|
715
728
|
app.SlashingKeeper,
|
|
729
|
+
app.AccountKeeper.AddressCodec(),
|
|
730
|
+
runtime.ProvideCometInfoService(),
|
|
716
731
|
)
|
|
717
|
-
|
|
732
|
+
// If evidence needs to be handled for the app, set routes in router here and seal
|
|
718
733
|
app.EvidenceKeeper = *evidenceKeeper
|
|
719
734
|
|
|
720
735
|
swingStoreExportDir := cast.ToString(appOpts.Get(FlagSwingStoreExportDir))
|
|
@@ -726,8 +741,8 @@ func NewAgoricApp(
|
|
|
726
741
|
genutil.NewAppModule(
|
|
727
742
|
app.AccountKeeper,
|
|
728
743
|
app.StakingKeeper,
|
|
729
|
-
app
|
|
730
|
-
|
|
744
|
+
app,
|
|
745
|
+
app.txConfig,
|
|
731
746
|
),
|
|
732
747
|
auth.NewAppModule(appCodec, app.AccountKeeper, authsims.RandomGenesisAccounts, app.GetSubspace(authtypes.ModuleName)),
|
|
733
748
|
vesting.NewAppModule(app.AccountKeeper, app.BankKeeper, app.StakingKeeper),
|
|
@@ -735,14 +750,16 @@ func NewAgoricApp(
|
|
|
735
750
|
capability.NewAppModule(appCodec, *app.CapabilityKeeper, false),
|
|
736
751
|
gov.NewAppModule(appCodec, app.GovKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(govtypes.ModuleName)),
|
|
737
752
|
mint.NewAppModule(appCodec, app.MintKeeper, app.AccountKeeper, nil, app.GetSubspace(minttypes.ModuleName)),
|
|
738
|
-
slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(slashingtypes.ModuleName)),
|
|
753
|
+
slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(slashingtypes.ModuleName), app.interfaceRegistry),
|
|
739
754
|
distr.NewAppModule(appCodec, app.DistrKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(distrtypes.ModuleName)),
|
|
740
|
-
staking.NewAppModule(appCodec,
|
|
741
|
-
upgrade.NewAppModule(app.UpgradeKeeper),
|
|
755
|
+
staking.NewAppModule(appCodec, app.StakingKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(stakingtypes.ModuleName)),
|
|
756
|
+
upgrade.NewAppModule(app.UpgradeKeeper, app.AccountKeeper.AddressCodec()),
|
|
742
757
|
evidence.NewAppModule(app.EvidenceKeeper),
|
|
743
758
|
feegrantmodule.NewAppModule(appCodec, app.AccountKeeper, app.BankKeeper, app.FeeGrantKeeper, app.interfaceRegistry),
|
|
744
759
|
authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry),
|
|
745
760
|
ibc.NewAppModule(app.IBCKeeper),
|
|
761
|
+
ibctm.NewAppModule(),
|
|
762
|
+
ibcsolo.NewAppModule(),
|
|
746
763
|
params.NewAppModule(app.ParamsKeeper),
|
|
747
764
|
ics20TransferModule,
|
|
748
765
|
icaModule,
|
|
@@ -761,6 +778,31 @@ func NewAgoricApp(
|
|
|
761
778
|
vtransferModule,
|
|
762
779
|
)
|
|
763
780
|
|
|
781
|
+
// BasicModuleManager defines the module BasicManager is in charge of setting up basic,
|
|
782
|
+
// non-dependant module elements, such as codec registration and genesis verification.
|
|
783
|
+
// By default it is composed of all the module from the module manager.
|
|
784
|
+
// Additionally, app module basics can be overwritten by passing them as argument.
|
|
785
|
+
app.BasicModuleManager = module.NewBasicManagerFromManager(
|
|
786
|
+
app.ModuleManager,
|
|
787
|
+
map[string]module.AppModuleBasic{
|
|
788
|
+
genutiltypes.ModuleName: genutil.NewAppModuleBasic(genutiltypes.DefaultMessageValidator),
|
|
789
|
+
govtypes.ModuleName: gov.NewAppModuleBasic(
|
|
790
|
+
[]govclient.ProposalHandler{
|
|
791
|
+
paramsclient.ProposalHandler,
|
|
792
|
+
swingsetclient.CoreEvalProposalHandler,
|
|
793
|
+
},
|
|
794
|
+
),
|
|
795
|
+
})
|
|
796
|
+
app.BasicModuleManager.RegisterLegacyAminoCodec(legacyAmino)
|
|
797
|
+
app.BasicModuleManager.RegisterInterfaces(interfaceRegistry)
|
|
798
|
+
|
|
799
|
+
// According to the upgrading guide (https://github.com/cosmos/cosmos-sdk/blob/main/UPGRADING.md#set-preblocker),
|
|
800
|
+
//upgrade types need to be added to the pre-blocker. While this part has been implemented, the guide also states
|
|
801
|
+
//that these types should be removed from begin blocker. If we need to actually remove them, we would need to modify
|
|
802
|
+
// the SetOrderBeginBlockers logic. However, it's unclear whether this removal is strictly required or optional.
|
|
803
|
+
app.ModuleManager.SetOrderPreBlockers(upgradetypes.ModuleName)
|
|
804
|
+
app.SetPreBlocker(app.PreBlocker)
|
|
805
|
+
|
|
764
806
|
// During begin block slashing happens after distr.BeginBlocker so that
|
|
765
807
|
// there is nothing left over in the validator fee pool, so as to keep the
|
|
766
808
|
// CanWithdrawInvariant invariant.
|
|
@@ -768,8 +810,6 @@ func NewAgoricApp(
|
|
|
768
810
|
// NOTE: capability module's beginblocker must come before any modules using capabilities (e.g. IBC)
|
|
769
811
|
app.ModuleManager.SetOrderBeginBlockers(
|
|
770
812
|
// Cosmos-SDK modules appear roughly in the order used by simapp and gaiad.
|
|
771
|
-
// upgrades should be run first
|
|
772
|
-
upgradetypes.ModuleName,
|
|
773
813
|
capabilitytypes.ModuleName,
|
|
774
814
|
// params influence many other modules, so it should be near the top.
|
|
775
815
|
paramstypes.ModuleName,
|
|
@@ -840,10 +880,10 @@ func NewAgoricApp(
|
|
|
840
880
|
// can do so safely.
|
|
841
881
|
|
|
842
882
|
moduleOrderForGenesisAndUpgrade := []string{
|
|
883
|
+
paramstypes.ModuleName,
|
|
843
884
|
capabilitytypes.ModuleName,
|
|
844
885
|
authtypes.ModuleName,
|
|
845
886
|
banktypes.ModuleName,
|
|
846
|
-
paramstypes.ModuleName,
|
|
847
887
|
distrtypes.ModuleName,
|
|
848
888
|
stakingtypes.ModuleName,
|
|
849
889
|
slashingtypes.ModuleName,
|
|
@@ -852,6 +892,8 @@ func NewAgoricApp(
|
|
|
852
892
|
ibctransfertypes.ModuleName,
|
|
853
893
|
packetforwardtypes.ModuleName,
|
|
854
894
|
ibcexported.ModuleName,
|
|
895
|
+
ibcsolo.ModuleName,
|
|
896
|
+
ibctm.ModuleName,
|
|
855
897
|
icatypes.ModuleName,
|
|
856
898
|
evidencetypes.ModuleName,
|
|
857
899
|
feegrant.ModuleName,
|
|
@@ -886,9 +928,8 @@ func NewAgoricApp(
|
|
|
886
928
|
// NOTE: this is not required apps that don't use the simulator for fuzz testing
|
|
887
929
|
// transactions
|
|
888
930
|
overrideModules := map[string]module.AppModuleSimulation{
|
|
889
|
-
authtypes.ModuleName: auth.NewAppModule(
|
|
931
|
+
authtypes.ModuleName: auth.NewAppModule(appCodec, app.AccountKeeper, authsims.RandomGenesisAccounts, app.GetSubspace(authtypes.ModuleName)),
|
|
890
932
|
}
|
|
891
|
-
|
|
892
933
|
app.sm = module.NewSimulationManagerFromAppModules(app.ModuleManager.Modules, overrideModules)
|
|
893
934
|
|
|
894
935
|
app.sm.RegisterStoreDecoders()
|
|
@@ -904,7 +945,7 @@ func NewAgoricApp(
|
|
|
904
945
|
AccountKeeper: app.AccountKeeper,
|
|
905
946
|
BankKeeper: app.BankKeeper,
|
|
906
947
|
FeegrantKeeper: app.FeeGrantKeeper,
|
|
907
|
-
SignModeHandler:
|
|
948
|
+
SignModeHandler: app.txConfig.SignModeHandler(),
|
|
908
949
|
SigGasConsumer: ante.DefaultSigVerificationGasConsumer,
|
|
909
950
|
},
|
|
910
951
|
IBCKeeper: app.IBCKeeper,
|
|
@@ -935,7 +976,9 @@ func NewAgoricApp(
|
|
|
935
976
|
// another, which shouldn't re-run store upgrades.
|
|
936
977
|
if isPrimaryUpgradeName(upgradeInfo.Name) && !app.UpgradeKeeper.IsSkipHeight(upgradeInfo.Height) {
|
|
937
978
|
storeUpgrades := storetypes.StoreUpgrades{
|
|
938
|
-
Added:
|
|
979
|
+
Added: []string{
|
|
980
|
+
capabilitytypes.MemStoreKey,
|
|
981
|
+
},
|
|
939
982
|
Deleted: []string{},
|
|
940
983
|
}
|
|
941
984
|
|
|
@@ -966,18 +1009,20 @@ func NewAgoricApp(
|
|
|
966
1009
|
// normalizeModuleAccount ensures that the given account is a module account,
|
|
967
1010
|
// initializing or updating it if necessary. The account name must be listed in maccPerms.
|
|
968
1011
|
func normalizeModuleAccount(ctx sdk.Context, ak authkeeper.AccountKeeper, name string) {
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
1012
|
+
ma := ak.GetModuleAccount(ctx, name)
|
|
1013
|
+
if ma != nil {
|
|
1014
|
+
// Properly modular.
|
|
972
1015
|
return
|
|
973
1016
|
}
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
newAcct.AccountNumber = acct.GetAccountNumber()
|
|
978
|
-
newAcct.Sequence = acct.GetSequence()
|
|
1017
|
+
shadow := ak.GetAccount(ctx, authtypes.NewModuleAddress(name))
|
|
1018
|
+
if shadow == nil {
|
|
1019
|
+
panic(fmt.Errorf("module account %s shadow not found in account store", name))
|
|
979
1020
|
}
|
|
980
|
-
|
|
1021
|
+
|
|
1022
|
+
perms := maccPerms[name]
|
|
1023
|
+
base := authtypes.NewBaseAccount(shadow.GetAddress(), shadow.GetPubKey(), shadow.GetAccountNumber(), shadow.GetSequence())
|
|
1024
|
+
ma = authtypes.NewModuleAccount(base, name, perms...)
|
|
1025
|
+
ak.SetModuleAccount(ctx, ma)
|
|
981
1026
|
}
|
|
982
1027
|
|
|
983
1028
|
type upgradeDetails struct {
|
|
@@ -1006,6 +1051,18 @@ type cosmosInitAction struct {
|
|
|
1006
1051
|
// Name returns the name of the App
|
|
1007
1052
|
func (app *GaiaApp) Name() string { return app.BaseApp.Name() }
|
|
1008
1053
|
|
|
1054
|
+
// PreBlocker application updates before each begin block.
|
|
1055
|
+
func (app *GaiaApp) PreBlocker(ctx sdk.Context, _ *abci.RequestFinalizeBlock) (*sdk.ResponsePreBlock, error) {
|
|
1056
|
+
// Set gas meter to the free gas meter.
|
|
1057
|
+
// This is because there is currently non-deterministic gas usage in the
|
|
1058
|
+
// pre-blocker, e.g. due to hydration of in-memory data structures.
|
|
1059
|
+
//
|
|
1060
|
+
// Note that we don't need to reset the gas meter after the pre-blocker
|
|
1061
|
+
// because Go is pass by value.
|
|
1062
|
+
ctx = ctx.WithGasMeter(storetypes.NewInfiniteGasMeter())
|
|
1063
|
+
return app.ModuleManager.PreBlock(ctx)
|
|
1064
|
+
}
|
|
1065
|
+
|
|
1009
1066
|
// CheckControllerInited exits if the controller initialization state does not match `expected`.
|
|
1010
1067
|
func (app *GaiaApp) CheckControllerInited(expected bool) {
|
|
1011
1068
|
if app.controllerInited != expected {
|
|
@@ -1082,27 +1139,30 @@ func (app *GaiaApp) ensureControllerInited(ctx sdk.Context) {
|
|
|
1082
1139
|
}
|
|
1083
1140
|
|
|
1084
1141
|
// BeginBlocker application updates every begin block
|
|
1085
|
-
func (app *GaiaApp) BeginBlocker(ctx sdk.Context,
|
|
1086
|
-
return app.ModuleManager.BeginBlock(ctx
|
|
1142
|
+
func (app *GaiaApp) BeginBlocker(ctx sdk.Context) (sdk.BeginBlock, error) {
|
|
1143
|
+
return app.ModuleManager.BeginBlock(ctx)
|
|
1087
1144
|
}
|
|
1088
1145
|
|
|
1089
1146
|
// EndBlocker application updates every end block
|
|
1090
|
-
func (app *GaiaApp) EndBlocker(ctx sdk.Context,
|
|
1091
|
-
return app.ModuleManager.EndBlock(ctx
|
|
1147
|
+
func (app *GaiaApp) EndBlocker(ctx sdk.Context) (sdk.EndBlock, error) {
|
|
1148
|
+
return app.ModuleManager.EndBlock(ctx)
|
|
1092
1149
|
}
|
|
1093
1150
|
|
|
1094
1151
|
// InitChainer application update at chain initialization
|
|
1095
|
-
func (app *GaiaApp) InitChainer(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain {
|
|
1152
|
+
func (app *GaiaApp) InitChainer(ctx sdk.Context, req *abci.RequestInitChain) (*abci.ResponseInitChain, error) {
|
|
1096
1153
|
var genesisState GenesisState
|
|
1097
1154
|
if err := tmjson.Unmarshal(req.AppStateBytes, &genesisState); err != nil {
|
|
1098
|
-
|
|
1155
|
+
return nil, err
|
|
1099
1156
|
}
|
|
1100
1157
|
|
|
1101
1158
|
app.UpgradeKeeper.SetModuleVersionMap(ctx, app.ModuleManager.GetVersionMap())
|
|
1102
|
-
res := app.ModuleManager.InitGenesis(ctx, app.appCodec, genesisState)
|
|
1159
|
+
res, err := app.ModuleManager.InitGenesis(ctx, app.appCodec, genesisState)
|
|
1160
|
+
if err != nil {
|
|
1161
|
+
return nil, err
|
|
1162
|
+
}
|
|
1103
1163
|
|
|
1104
1164
|
// initialize the provision and reserve module accounts, to avoid their implicit creation
|
|
1105
|
-
// as a default account upon receiving a transfer. See
|
|
1165
|
+
// as a default account upon receiving a transfer. See BlockedAddresses().
|
|
1106
1166
|
normalizeModuleAccount(ctx, app.AccountKeeper, vbanktypes.ProvisionPoolName)
|
|
1107
1167
|
normalizeModuleAccount(ctx, app.AccountKeeper, vbanktypes.ReservePoolName)
|
|
1108
1168
|
|
|
@@ -1118,28 +1178,29 @@ func (app *GaiaApp) InitChainer(ctx sdk.Context, req abci.RequestInitChain) abci
|
|
|
1118
1178
|
stdlog.Printf("Genesis time %s is in %s\n", genTime, d)
|
|
1119
1179
|
}
|
|
1120
1180
|
|
|
1121
|
-
return res
|
|
1181
|
+
return res, nil
|
|
1122
1182
|
}
|
|
1123
1183
|
|
|
1124
1184
|
// Commit tells the controller that the block is commited
|
|
1125
|
-
func (app *GaiaApp) Commit() abci.ResponseCommit {
|
|
1185
|
+
func (app *GaiaApp) Commit() (*abci.ResponseCommit, error) {
|
|
1126
1186
|
err := swingsetkeeper.WaitUntilSwingStoreExportStarted()
|
|
1127
1187
|
|
|
1128
1188
|
if err != nil {
|
|
1129
1189
|
app.Logger().Error("swing-store export failed to start", "err", err)
|
|
1190
|
+
return nil, err
|
|
1130
1191
|
}
|
|
1131
1192
|
|
|
1132
1193
|
// Frontrun the BaseApp's Commit method
|
|
1133
1194
|
err = swingset.CommitBlock(app.SwingSetKeeper)
|
|
1134
1195
|
if err != nil {
|
|
1135
|
-
|
|
1196
|
+
return nil, err
|
|
1136
1197
|
}
|
|
1137
1198
|
|
|
1138
|
-
res, snapshotHeight := app.BaseApp.CommitWithoutSnapshot()
|
|
1199
|
+
res, snapshotHeight, err := app.BaseApp.CommitWithoutSnapshot()
|
|
1139
1200
|
|
|
1140
1201
|
err = swingset.AfterCommitBlock(app.SwingSetKeeper)
|
|
1141
1202
|
if err != nil {
|
|
1142
|
-
|
|
1203
|
+
return nil, err
|
|
1143
1204
|
}
|
|
1144
1205
|
|
|
1145
1206
|
if snapshotHeight > 0 {
|
|
@@ -1147,10 +1208,11 @@ func (app *GaiaApp) Commit() abci.ResponseCommit {
|
|
|
1147
1208
|
|
|
1148
1209
|
if err != nil {
|
|
1149
1210
|
app.Logger().Error("failed to initiate swingset snapshot", "err", err)
|
|
1211
|
+
return nil, err
|
|
1150
1212
|
}
|
|
1151
1213
|
}
|
|
1152
1214
|
|
|
1153
|
-
return res
|
|
1215
|
+
return res, nil
|
|
1154
1216
|
}
|
|
1155
1217
|
|
|
1156
1218
|
// LoadHeight loads a particular height
|
|
@@ -1229,6 +1291,11 @@ func (app *GaiaApp) GetMemKey(storeKey string) *storetypes.MemoryStoreKey {
|
|
|
1229
1291
|
return app.memKeys[storeKey]
|
|
1230
1292
|
}
|
|
1231
1293
|
|
|
1294
|
+
func DefineCustomGetSigners(signingOptions *signing.Options) {
|
|
1295
|
+
swingsettypes.DefineCustomGetSigners(signingOptions)
|
|
1296
|
+
vibctypes.DefineCustomGetSigners(signingOptions)
|
|
1297
|
+
}
|
|
1298
|
+
|
|
1232
1299
|
// GetSubspace returns a param subspace for a given module name.
|
|
1233
1300
|
//
|
|
1234
1301
|
// NOTE: This is solely to be used for testing purposes.
|
|
@@ -1250,16 +1317,17 @@ func (app *GaiaApp) RegisterAPIRoutes(apiSvr *api.Server, apiConfig config.APICo
|
|
|
1250
1317
|
authtx.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
|
|
1251
1318
|
|
|
1252
1319
|
// Register new tendermint queries routes from grpc-gateway.
|
|
1253
|
-
|
|
1320
|
+
cmtservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
|
|
1254
1321
|
|
|
1255
1322
|
// Register node gRPC service for grpc-gateway.
|
|
1256
1323
|
nodeservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
|
|
1257
1324
|
|
|
1258
1325
|
// Register grpc-gateway routes for all modules.
|
|
1259
|
-
|
|
1326
|
+
app.BasicModuleManager.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
|
|
1260
1327
|
|
|
1261
1328
|
// register swagger API from root so that other applications can override easily
|
|
1262
|
-
|
|
1329
|
+
// XXX figure out how to build the docs to make them available from the _ import above
|
|
1330
|
+
if false && apiConfig.Swagger {
|
|
1263
1331
|
RegisterSwaggerAPI(apiSvr.Router)
|
|
1264
1332
|
}
|
|
1265
1333
|
}
|
|
@@ -1271,7 +1339,7 @@ func (app *GaiaApp) RegisterTxService(clientCtx client.Context) {
|
|
|
1271
1339
|
|
|
1272
1340
|
// RegisterTendermintService implements the Application.RegisterTendermintService method.
|
|
1273
1341
|
func (app *GaiaApp) RegisterTendermintService(clientCtx client.Context) {
|
|
1274
|
-
|
|
1342
|
+
cmtservice.RegisterTendermintService(clientCtx, app.BaseApp.GRPCQueryRouter(), app.interfaceRegistry, app.Query)
|
|
1275
1343
|
}
|
|
1276
1344
|
|
|
1277
1345
|
// RegisterSwaggerAPI registers swagger route with API Server
|
|
@@ -1298,17 +1366,10 @@ func GetMaccPerms() map[string][]string {
|
|
|
1298
1366
|
func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino, key, tkey storetypes.StoreKey) paramskeeper.Keeper {
|
|
1299
1367
|
paramsKeeper := paramskeeper.NewKeeper(appCodec, legacyAmino, key, tkey)
|
|
1300
1368
|
|
|
1301
|
-
|
|
1302
|
-
paramsKeeper.Subspace(banktypes.ModuleName)
|
|
1303
|
-
paramsKeeper.Subspace(stakingtypes.ModuleName)
|
|
1304
|
-
paramsKeeper.Subspace(minttypes.ModuleName)
|
|
1305
|
-
paramsKeeper.Subspace(distrtypes.ModuleName)
|
|
1306
|
-
paramsKeeper.Subspace(slashingtypes.ModuleName)
|
|
1307
|
-
paramsKeeper.Subspace(govtypes.ModuleName).WithKeyTable(govtypesv1.ParamKeyTable())
|
|
1308
|
-
paramsKeeper.Subspace(ibctransfertypes.ModuleName)
|
|
1309
|
-
paramsKeeper.Subspace(packetforwardtypes.ModuleName).WithKeyTable(packetforwardtypes.ParamKeyTable())
|
|
1369
|
+
// Subspaces can be removed after upgrade of params.
|
|
1310
1370
|
paramsKeeper.Subspace(ibcexported.ModuleName)
|
|
1311
1371
|
paramsKeeper.Subspace(icahosttypes.SubModuleName)
|
|
1372
|
+
paramsKeeper.Subspace(ibctransfertypes.ModuleName)
|
|
1312
1373
|
paramsKeeper.Subspace(swingset.ModuleName)
|
|
1313
1374
|
paramsKeeper.Subspace(vbank.ModuleName)
|
|
1314
1375
|
|
|
@@ -1339,7 +1400,27 @@ func (app *GaiaApp) GetScopedIBCKeeper() capabilitykeeper.ScopedKeeper {
|
|
|
1339
1400
|
|
|
1340
1401
|
// GetTxConfig implements the TestingApp interface.
|
|
1341
1402
|
func (app *GaiaApp) GetTxConfig() client.TxConfig {
|
|
1342
|
-
return
|
|
1403
|
+
return app.txConfig
|
|
1404
|
+
}
|
|
1405
|
+
|
|
1406
|
+
func (app *GaiaApp) AutoCliOpts() autocli.AppOptions {
|
|
1407
|
+
modules := make(map[string]appmodule.AppModule, 0)
|
|
1408
|
+
for _, m := range app.ModuleManager.Modules {
|
|
1409
|
+
if moduleWithName, ok := m.(module.HasName); ok {
|
|
1410
|
+
moduleName := moduleWithName.Name()
|
|
1411
|
+
if appModule, ok := moduleWithName.(appmodule.AppModule); ok {
|
|
1412
|
+
modules[moduleName] = appModule
|
|
1413
|
+
}
|
|
1414
|
+
}
|
|
1415
|
+
}
|
|
1416
|
+
|
|
1417
|
+
return autocli.AppOptions{
|
|
1418
|
+
Modules: modules,
|
|
1419
|
+
ModuleOptions: runtimeservices.ExtractAutoCLIOptions(app.ModuleManager.Modules),
|
|
1420
|
+
AddressCodec: authcodec.NewBech32Codec(sdk.GetConfig().GetBech32AccountAddrPrefix()),
|
|
1421
|
+
ValidatorAddressCodec: authcodec.NewBech32Codec(sdk.GetConfig().GetBech32ValidatorAddrPrefix()),
|
|
1422
|
+
ConsensusAddressCodec: authcodec.NewBech32Codec(sdk.GetConfig().GetBech32ConsensusAddrPrefix()),
|
|
1423
|
+
}
|
|
1343
1424
|
}
|
|
1344
1425
|
|
|
1345
1426
|
// For testing purposes
|
|
@@ -1349,6 +1430,6 @@ func (app *GaiaApp) SetSwingStoreExportDir(dir string) {
|
|
|
1349
1430
|
}
|
|
1350
1431
|
|
|
1351
1432
|
// RegisterNodeService implements the Application.RegisterNodeService method.
|
|
1352
|
-
func (app *GaiaApp) RegisterNodeService(clientCtx client.Context) {
|
|
1353
|
-
nodeservice.RegisterNodeService(clientCtx, app.GRPCQueryRouter())
|
|
1433
|
+
func (app *GaiaApp) RegisterNodeService(clientCtx client.Context, cfg config.Config) {
|
|
1434
|
+
nodeservice.RegisterNodeService(clientCtx, app.GRPCQueryRouter(), cfg)
|
|
1354
1435
|
}
|