@agoric/cosmos 0.34.2-dev-3c8aafe.0 → 0.34.2-dev-74fbe43.0.74fbe43
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/Makefile +6 -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 +256 -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 +40 -90
- 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 +130 -109
- package/go.sum +228 -469
- package/package.json +2 -2
- package/proto/agoric/swingset/msgs.proto +72 -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/scripts/mockgen.sh +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 +349 -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 -27
- 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 +28 -23
- package/x/swingset/keeper/keeper_test.go +10 -7
- package/x/swingset/keeper/msg_server.go +52 -5
- package/x/swingset/keeper/msg_server_test.go +121 -0
- package/x/swingset/keeper/proposal.go +4 -0
- package/x/swingset/keeper/querier.go +1 -1
- 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/keeper/test_utils.go +2 -2
- package/x/swingset/module.go +20 -22
- package/x/swingset/testing/queue.go +5 -2
- package/x/swingset/testutil/mocks.go +379 -0
- package/x/swingset/types/codec.go +10 -5
- package/x/swingset/types/default-params.go +13 -12
- package/x/swingset/types/expected_keepers.go +29 -4
- package/x/swingset/types/msgs.go +51 -36
- package/x/swingset/types/msgs.pb.go +561 -51
- package/x/swingset/types/params_test.go +21 -20
- package/x/swingset/types/swingset.pb.go +67 -61
- package/x/vbank/genesis.go +13 -9
- 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 +10 -5
- 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 +29 -11
- 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/grpc_query.go +1 -1
- package/x/vstorage/keeper/keeper.go +72 -50
- package/x/vstorage/keeper/keeper_test.go +74 -54
- package/x/vstorage/keeper/querier.go +1 -1
- package/x/vstorage/module.go +27 -13
- package/x/vstorage/testing/queue.go +5 -3
- package/x/vstorage/vstorage.go +10 -9
- package/x/vstorage/vstorage_test.go +24 -18
- 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
|
+
}
|
|
345
|
+
|
|
346
|
+
if err := interfaceRegistry.SigningContext().Validate(); err != nil {
|
|
347
|
+
panic(err)
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
std.RegisterLegacyAminoCodec(legacyAmino)
|
|
351
|
+
std.RegisterInterfaces(interfaceRegistry)
|
|
357
352
|
|
|
358
|
-
bApp := baseapp.NewBaseApp(appName, logger, db,
|
|
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,15 +521,18 @@ 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,
|
|
535
|
+
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
|
|
529
536
|
callToController,
|
|
530
537
|
)
|
|
531
538
|
app.swingsetPort = app.AgdServer.MustRegisterPortHandler("swingset", swingset.NewPortHandler(app.SwingSetKeeper))
|
|
@@ -563,9 +570,13 @@ func NewAgoricApp(
|
|
|
563
570
|
app.VibcKeeper = vibc.NewKeeper(
|
|
564
571
|
appCodec,
|
|
565
572
|
app.IBCKeeper.ChannelKeeper,
|
|
566
|
-
|
|
573
|
+
app.IBCKeeper.PortKeeper,
|
|
567
574
|
app.IBCKeeper.ClientKeeper,
|
|
568
|
-
).WithScope(
|
|
575
|
+
).WithScope(
|
|
576
|
+
runtime.NewKVStoreService(keys[vibc.StoreKey]),
|
|
577
|
+
scopedVibcKeeper,
|
|
578
|
+
app.SwingSetKeeper.PushAction,
|
|
579
|
+
)
|
|
569
580
|
|
|
570
581
|
vibcModule := vibc.NewAppModule(app.VibcKeeper, app.BankKeeper)
|
|
571
582
|
vibcIBCModule := vibc.NewIBCModule(app.VibcKeeper)
|
|
@@ -573,7 +584,7 @@ func NewAgoricApp(
|
|
|
573
584
|
|
|
574
585
|
app.VtransferKeeper = vtransferkeeper.NewKeeper(
|
|
575
586
|
appCodec,
|
|
576
|
-
keys[vtransfer.StoreKey],
|
|
587
|
+
runtime.NewKVStoreService(keys[vtransfer.StoreKey]),
|
|
577
588
|
app.VibcKeeper,
|
|
578
589
|
scopedTransferKeeper,
|
|
579
590
|
app.SwingSetKeeper.PushAction,
|
|
@@ -585,7 +596,10 @@ func NewAgoricApp(
|
|
|
585
596
|
)
|
|
586
597
|
|
|
587
598
|
app.VbankKeeper = vbank.NewKeeper(
|
|
588
|
-
appCodec,
|
|
599
|
+
appCodec,
|
|
600
|
+
runtime.NewKVStoreService(keys[vbank.StoreKey]),
|
|
601
|
+
runtime.NewTransientStoreService(tkeys[vbanktypes.TStoreKey]),
|
|
602
|
+
app.GetSubspace(vbank.ModuleName),
|
|
589
603
|
app.AccountKeeper, app.BankKeeper, authtypes.FeeCollectorName,
|
|
590
604
|
app.SwingSetKeeper.PushAction,
|
|
591
605
|
)
|
|
@@ -597,17 +611,17 @@ func NewAgoricApp(
|
|
|
597
611
|
govRouter.
|
|
598
612
|
AddRoute(govtypes.RouterKey, govv1beta1.ProposalHandler).
|
|
599
613
|
AddRoute(paramproposal.RouterKey, params.NewParamChangeProposalHandler(app.ParamsKeeper)).
|
|
600
|
-
AddRoute(upgradetypes.RouterKey, upgrade.NewSoftwareUpgradeProposalHandler(app.UpgradeKeeper)).
|
|
601
614
|
AddRoute(ibcclienttypes.RouterKey, ibcclient.NewClientProposalHandler(app.IBCKeeper.ClientKeeper)).
|
|
602
615
|
AddRoute(swingsettypes.RouterKey, swingset.NewSwingSetProposalHandler(app.SwingSetKeeper))
|
|
603
616
|
govConfig := govtypes.DefaultConfig()
|
|
604
617
|
|
|
605
618
|
app.GovKeeper = govkeeper.NewKeeper(
|
|
606
619
|
appCodec,
|
|
607
|
-
keys[govtypes.StoreKey],
|
|
620
|
+
runtime.NewKVStoreService(keys[govtypes.StoreKey]),
|
|
608
621
|
app.AccountKeeper,
|
|
609
622
|
app.BankKeeper,
|
|
610
623
|
app.StakingKeeper,
|
|
624
|
+
app.DistrKeeper,
|
|
611
625
|
app.MsgServiceRouter(),
|
|
612
626
|
govConfig,
|
|
613
627
|
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
|
|
@@ -639,10 +653,11 @@ func NewAgoricApp(
|
|
|
639
653
|
app.GetSubspace(ibctransfertypes.ModuleName),
|
|
640
654
|
app.PacketForwardKeeper, // Wire in the middleware ICS4Wrapper.
|
|
641
655
|
app.IBCKeeper.ChannelKeeper,
|
|
642
|
-
|
|
656
|
+
app.IBCKeeper.PortKeeper,
|
|
643
657
|
app.AccountKeeper,
|
|
644
658
|
app.BankKeeper,
|
|
645
659
|
scopedTransferKeeper,
|
|
660
|
+
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
|
|
646
661
|
)
|
|
647
662
|
|
|
648
663
|
app.PacketForwardKeeper.SetTransferKeeper(app.TransferKeeper)
|
|
@@ -655,10 +670,11 @@ func NewAgoricApp(
|
|
|
655
670
|
app.GetSubspace(icahosttypes.SubModuleName),
|
|
656
671
|
app.IBCKeeper.ChannelKeeper, // This is where middleware binding would happen.
|
|
657
672
|
app.IBCKeeper.ChannelKeeper,
|
|
658
|
-
|
|
673
|
+
app.IBCKeeper.PortKeeper,
|
|
659
674
|
app.AccountKeeper,
|
|
660
675
|
scopedICAHostKeeper,
|
|
661
676
|
app.MsgServiceRouter(),
|
|
677
|
+
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
|
|
662
678
|
)
|
|
663
679
|
app.ICAHostKeeper.WithQueryRouter(app.GRPCQueryRouter())
|
|
664
680
|
|
|
@@ -666,7 +682,6 @@ func NewAgoricApp(
|
|
|
666
682
|
icaModule := ica.NewAppModule(nil, &app.ICAHostKeeper)
|
|
667
683
|
|
|
668
684
|
ics20TransferModule := ibctransfer.NewAppModule(app.TransferKeeper)
|
|
669
|
-
|
|
670
685
|
// Create the IBC router, which maps *module names* (not PortIDs) to modules.
|
|
671
686
|
ibcRouter := ibcporttypes.NewRouter()
|
|
672
687
|
|
|
@@ -685,7 +700,6 @@ func NewAgoricApp(
|
|
|
685
700
|
app.PacketForwardKeeper,
|
|
686
701
|
0, // retries on timeout
|
|
687
702
|
packetforwardkeeper.DefaultForwardTransferPacketTimeoutTimestamp, // forward timeout
|
|
688
|
-
packetforwardkeeper.DefaultRefundTransferPacketTimeoutTimestamp, // refund timeout
|
|
689
703
|
)
|
|
690
704
|
ics20TransferIBCModule = vtransfer.NewIBCMiddleware(ics20TransferIBCModule, app.VtransferKeeper)
|
|
691
705
|
ibcRouter.AddRoute(ibctransfertypes.ModuleName, ics20TransferIBCModule)
|
|
@@ -710,11 +724,13 @@ func NewAgoricApp(
|
|
|
710
724
|
// create evidence keeper with router
|
|
711
725
|
evidenceKeeper := evidencekeeper.NewKeeper(
|
|
712
726
|
appCodec,
|
|
713
|
-
keys[evidencetypes.StoreKey],
|
|
727
|
+
runtime.NewKVStoreService(keys[evidencetypes.StoreKey]),
|
|
714
728
|
app.StakingKeeper,
|
|
715
729
|
app.SlashingKeeper,
|
|
730
|
+
app.AccountKeeper.AddressCodec(),
|
|
731
|
+
runtime.ProvideCometInfoService(),
|
|
716
732
|
)
|
|
717
|
-
|
|
733
|
+
// If evidence needs to be handled for the app, set routes in router here and seal
|
|
718
734
|
app.EvidenceKeeper = *evidenceKeeper
|
|
719
735
|
|
|
720
736
|
swingStoreExportDir := cast.ToString(appOpts.Get(FlagSwingStoreExportDir))
|
|
@@ -726,8 +742,8 @@ func NewAgoricApp(
|
|
|
726
742
|
genutil.NewAppModule(
|
|
727
743
|
app.AccountKeeper,
|
|
728
744
|
app.StakingKeeper,
|
|
729
|
-
app
|
|
730
|
-
|
|
745
|
+
app,
|
|
746
|
+
app.txConfig,
|
|
731
747
|
),
|
|
732
748
|
auth.NewAppModule(appCodec, app.AccountKeeper, authsims.RandomGenesisAccounts, app.GetSubspace(authtypes.ModuleName)),
|
|
733
749
|
vesting.NewAppModule(app.AccountKeeper, app.BankKeeper, app.StakingKeeper),
|
|
@@ -735,14 +751,16 @@ func NewAgoricApp(
|
|
|
735
751
|
capability.NewAppModule(appCodec, *app.CapabilityKeeper, false),
|
|
736
752
|
gov.NewAppModule(appCodec, app.GovKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(govtypes.ModuleName)),
|
|
737
753
|
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)),
|
|
754
|
+
slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(slashingtypes.ModuleName), app.interfaceRegistry),
|
|
739
755
|
distr.NewAppModule(appCodec, app.DistrKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(distrtypes.ModuleName)),
|
|
740
|
-
staking.NewAppModule(appCodec,
|
|
741
|
-
upgrade.NewAppModule(app.UpgradeKeeper),
|
|
756
|
+
staking.NewAppModule(appCodec, app.StakingKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(stakingtypes.ModuleName)),
|
|
757
|
+
upgrade.NewAppModule(app.UpgradeKeeper, app.AccountKeeper.AddressCodec()),
|
|
742
758
|
evidence.NewAppModule(app.EvidenceKeeper),
|
|
743
759
|
feegrantmodule.NewAppModule(appCodec, app.AccountKeeper, app.BankKeeper, app.FeeGrantKeeper, app.interfaceRegistry),
|
|
744
760
|
authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry),
|
|
745
761
|
ibc.NewAppModule(app.IBCKeeper),
|
|
762
|
+
ibctm.NewAppModule(),
|
|
763
|
+
ibcsolo.NewAppModule(),
|
|
746
764
|
params.NewAppModule(app.ParamsKeeper),
|
|
747
765
|
ics20TransferModule,
|
|
748
766
|
icaModule,
|
|
@@ -761,6 +779,31 @@ func NewAgoricApp(
|
|
|
761
779
|
vtransferModule,
|
|
762
780
|
)
|
|
763
781
|
|
|
782
|
+
// BasicModuleManager defines the module BasicManager is in charge of setting up basic,
|
|
783
|
+
// non-dependant module elements, such as codec registration and genesis verification.
|
|
784
|
+
// By default it is composed of all the module from the module manager.
|
|
785
|
+
// Additionally, app module basics can be overwritten by passing them as argument.
|
|
786
|
+
app.BasicModuleManager = module.NewBasicManagerFromManager(
|
|
787
|
+
app.ModuleManager,
|
|
788
|
+
map[string]module.AppModuleBasic{
|
|
789
|
+
genutiltypes.ModuleName: genutil.NewAppModuleBasic(genutiltypes.DefaultMessageValidator),
|
|
790
|
+
govtypes.ModuleName: gov.NewAppModuleBasic(
|
|
791
|
+
[]govclient.ProposalHandler{
|
|
792
|
+
paramsclient.ProposalHandler,
|
|
793
|
+
swingsetclient.CoreEvalProposalHandler,
|
|
794
|
+
},
|
|
795
|
+
),
|
|
796
|
+
})
|
|
797
|
+
app.BasicModuleManager.RegisterLegacyAminoCodec(legacyAmino)
|
|
798
|
+
app.BasicModuleManager.RegisterInterfaces(interfaceRegistry)
|
|
799
|
+
|
|
800
|
+
// According to the upgrading guide (https://github.com/cosmos/cosmos-sdk/blob/main/UPGRADING.md#set-preblocker),
|
|
801
|
+
//upgrade types need to be added to the pre-blocker. While this part has been implemented, the guide also states
|
|
802
|
+
//that these types should be removed from begin blocker. If we need to actually remove them, we would need to modify
|
|
803
|
+
// the SetOrderBeginBlockers logic. However, it's unclear whether this removal is strictly required or optional.
|
|
804
|
+
app.ModuleManager.SetOrderPreBlockers(upgradetypes.ModuleName)
|
|
805
|
+
app.SetPreBlocker(app.PreBlocker)
|
|
806
|
+
|
|
764
807
|
// During begin block slashing happens after distr.BeginBlocker so that
|
|
765
808
|
// there is nothing left over in the validator fee pool, so as to keep the
|
|
766
809
|
// CanWithdrawInvariant invariant.
|
|
@@ -768,8 +811,6 @@ func NewAgoricApp(
|
|
|
768
811
|
// NOTE: capability module's beginblocker must come before any modules using capabilities (e.g. IBC)
|
|
769
812
|
app.ModuleManager.SetOrderBeginBlockers(
|
|
770
813
|
// Cosmos-SDK modules appear roughly in the order used by simapp and gaiad.
|
|
771
|
-
// upgrades should be run first
|
|
772
|
-
upgradetypes.ModuleName,
|
|
773
814
|
capabilitytypes.ModuleName,
|
|
774
815
|
// params influence many other modules, so it should be near the top.
|
|
775
816
|
paramstypes.ModuleName,
|
|
@@ -840,10 +881,10 @@ func NewAgoricApp(
|
|
|
840
881
|
// can do so safely.
|
|
841
882
|
|
|
842
883
|
moduleOrderForGenesisAndUpgrade := []string{
|
|
884
|
+
paramstypes.ModuleName,
|
|
843
885
|
capabilitytypes.ModuleName,
|
|
844
886
|
authtypes.ModuleName,
|
|
845
887
|
banktypes.ModuleName,
|
|
846
|
-
paramstypes.ModuleName,
|
|
847
888
|
distrtypes.ModuleName,
|
|
848
889
|
stakingtypes.ModuleName,
|
|
849
890
|
slashingtypes.ModuleName,
|
|
@@ -852,6 +893,8 @@ func NewAgoricApp(
|
|
|
852
893
|
ibctransfertypes.ModuleName,
|
|
853
894
|
packetforwardtypes.ModuleName,
|
|
854
895
|
ibcexported.ModuleName,
|
|
896
|
+
ibcsolo.ModuleName,
|
|
897
|
+
ibctm.ModuleName,
|
|
855
898
|
icatypes.ModuleName,
|
|
856
899
|
evidencetypes.ModuleName,
|
|
857
900
|
feegrant.ModuleName,
|
|
@@ -886,9 +929,8 @@ func NewAgoricApp(
|
|
|
886
929
|
// NOTE: this is not required apps that don't use the simulator for fuzz testing
|
|
887
930
|
// transactions
|
|
888
931
|
overrideModules := map[string]module.AppModuleSimulation{
|
|
889
|
-
authtypes.ModuleName: auth.NewAppModule(
|
|
932
|
+
authtypes.ModuleName: auth.NewAppModule(appCodec, app.AccountKeeper, authsims.RandomGenesisAccounts, app.GetSubspace(authtypes.ModuleName)),
|
|
890
933
|
}
|
|
891
|
-
|
|
892
934
|
app.sm = module.NewSimulationManagerFromAppModules(app.ModuleManager.Modules, overrideModules)
|
|
893
935
|
|
|
894
936
|
app.sm.RegisterStoreDecoders()
|
|
@@ -904,7 +946,7 @@ func NewAgoricApp(
|
|
|
904
946
|
AccountKeeper: app.AccountKeeper,
|
|
905
947
|
BankKeeper: app.BankKeeper,
|
|
906
948
|
FeegrantKeeper: app.FeeGrantKeeper,
|
|
907
|
-
SignModeHandler:
|
|
949
|
+
SignModeHandler: app.txConfig.SignModeHandler(),
|
|
908
950
|
SigGasConsumer: ante.DefaultSigVerificationGasConsumer,
|
|
909
951
|
},
|
|
910
952
|
IBCKeeper: app.IBCKeeper,
|
|
@@ -935,7 +977,9 @@ func NewAgoricApp(
|
|
|
935
977
|
// another, which shouldn't re-run store upgrades.
|
|
936
978
|
if isPrimaryUpgradeName(upgradeInfo.Name) && !app.UpgradeKeeper.IsSkipHeight(upgradeInfo.Height) {
|
|
937
979
|
storeUpgrades := storetypes.StoreUpgrades{
|
|
938
|
-
Added:
|
|
980
|
+
Added: []string{
|
|
981
|
+
capabilitytypes.MemStoreKey,
|
|
982
|
+
},
|
|
939
983
|
Deleted: []string{},
|
|
940
984
|
}
|
|
941
985
|
|
|
@@ -966,18 +1010,20 @@ func NewAgoricApp(
|
|
|
966
1010
|
// normalizeModuleAccount ensures that the given account is a module account,
|
|
967
1011
|
// initializing or updating it if necessary. The account name must be listed in maccPerms.
|
|
968
1012
|
func normalizeModuleAccount(ctx sdk.Context, ak authkeeper.AccountKeeper, name string) {
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
1013
|
+
ma := ak.GetModuleAccount(ctx, name)
|
|
1014
|
+
if ma != nil {
|
|
1015
|
+
// Properly modular.
|
|
972
1016
|
return
|
|
973
1017
|
}
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
newAcct.AccountNumber = acct.GetAccountNumber()
|
|
978
|
-
newAcct.Sequence = acct.GetSequence()
|
|
1018
|
+
shadow := ak.GetAccount(ctx, authtypes.NewModuleAddress(name))
|
|
1019
|
+
if shadow == nil {
|
|
1020
|
+
panic(fmt.Errorf("module account %s shadow not found in account store", name))
|
|
979
1021
|
}
|
|
980
|
-
|
|
1022
|
+
|
|
1023
|
+
perms := maccPerms[name]
|
|
1024
|
+
base := authtypes.NewBaseAccount(shadow.GetAddress(), shadow.GetPubKey(), shadow.GetAccountNumber(), shadow.GetSequence())
|
|
1025
|
+
ma = authtypes.NewModuleAccount(base, name, perms...)
|
|
1026
|
+
ak.SetModuleAccount(ctx, ma)
|
|
981
1027
|
}
|
|
982
1028
|
|
|
983
1029
|
type upgradeDetails struct {
|
|
@@ -1006,6 +1052,18 @@ type cosmosInitAction struct {
|
|
|
1006
1052
|
// Name returns the name of the App
|
|
1007
1053
|
func (app *GaiaApp) Name() string { return app.BaseApp.Name() }
|
|
1008
1054
|
|
|
1055
|
+
// PreBlocker application updates before each begin block.
|
|
1056
|
+
func (app *GaiaApp) PreBlocker(ctx sdk.Context, _ *abci.RequestFinalizeBlock) (*sdk.ResponsePreBlock, error) {
|
|
1057
|
+
// Set gas meter to the free gas meter.
|
|
1058
|
+
// This is because there is currently non-deterministic gas usage in the
|
|
1059
|
+
// pre-blocker, e.g. due to hydration of in-memory data structures.
|
|
1060
|
+
//
|
|
1061
|
+
// Note that we don't need to reset the gas meter after the pre-blocker
|
|
1062
|
+
// because Go is pass by value.
|
|
1063
|
+
ctx = ctx.WithGasMeter(storetypes.NewInfiniteGasMeter())
|
|
1064
|
+
return app.ModuleManager.PreBlock(ctx)
|
|
1065
|
+
}
|
|
1066
|
+
|
|
1009
1067
|
// CheckControllerInited exits if the controller initialization state does not match `expected`.
|
|
1010
1068
|
func (app *GaiaApp) CheckControllerInited(expected bool) {
|
|
1011
1069
|
if app.controllerInited != expected {
|
|
@@ -1082,27 +1140,30 @@ func (app *GaiaApp) ensureControllerInited(ctx sdk.Context) {
|
|
|
1082
1140
|
}
|
|
1083
1141
|
|
|
1084
1142
|
// BeginBlocker application updates every begin block
|
|
1085
|
-
func (app *GaiaApp) BeginBlocker(ctx sdk.Context,
|
|
1086
|
-
return app.ModuleManager.BeginBlock(ctx
|
|
1143
|
+
func (app *GaiaApp) BeginBlocker(ctx sdk.Context) (sdk.BeginBlock, error) {
|
|
1144
|
+
return app.ModuleManager.BeginBlock(ctx)
|
|
1087
1145
|
}
|
|
1088
1146
|
|
|
1089
1147
|
// EndBlocker application updates every end block
|
|
1090
|
-
func (app *GaiaApp) EndBlocker(ctx sdk.Context,
|
|
1091
|
-
return app.ModuleManager.EndBlock(ctx
|
|
1148
|
+
func (app *GaiaApp) EndBlocker(ctx sdk.Context) (sdk.EndBlock, error) {
|
|
1149
|
+
return app.ModuleManager.EndBlock(ctx)
|
|
1092
1150
|
}
|
|
1093
1151
|
|
|
1094
1152
|
// InitChainer application update at chain initialization
|
|
1095
|
-
func (app *GaiaApp) InitChainer(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain {
|
|
1153
|
+
func (app *GaiaApp) InitChainer(ctx sdk.Context, req *abci.RequestInitChain) (*abci.ResponseInitChain, error) {
|
|
1096
1154
|
var genesisState GenesisState
|
|
1097
1155
|
if err := tmjson.Unmarshal(req.AppStateBytes, &genesisState); err != nil {
|
|
1098
|
-
|
|
1156
|
+
return nil, err
|
|
1099
1157
|
}
|
|
1100
1158
|
|
|
1101
1159
|
app.UpgradeKeeper.SetModuleVersionMap(ctx, app.ModuleManager.GetVersionMap())
|
|
1102
|
-
res := app.ModuleManager.InitGenesis(ctx, app.appCodec, genesisState)
|
|
1160
|
+
res, err := app.ModuleManager.InitGenesis(ctx, app.appCodec, genesisState)
|
|
1161
|
+
if err != nil {
|
|
1162
|
+
return nil, err
|
|
1163
|
+
}
|
|
1103
1164
|
|
|
1104
1165
|
// initialize the provision and reserve module accounts, to avoid their implicit creation
|
|
1105
|
-
// as a default account upon receiving a transfer. See
|
|
1166
|
+
// as a default account upon receiving a transfer. See BlockedAddresses().
|
|
1106
1167
|
normalizeModuleAccount(ctx, app.AccountKeeper, vbanktypes.ProvisionPoolName)
|
|
1107
1168
|
normalizeModuleAccount(ctx, app.AccountKeeper, vbanktypes.ReservePoolName)
|
|
1108
1169
|
|
|
@@ -1118,28 +1179,29 @@ func (app *GaiaApp) InitChainer(ctx sdk.Context, req abci.RequestInitChain) abci
|
|
|
1118
1179
|
stdlog.Printf("Genesis time %s is in %s\n", genTime, d)
|
|
1119
1180
|
}
|
|
1120
1181
|
|
|
1121
|
-
return res
|
|
1182
|
+
return res, nil
|
|
1122
1183
|
}
|
|
1123
1184
|
|
|
1124
1185
|
// Commit tells the controller that the block is commited
|
|
1125
|
-
func (app *GaiaApp) Commit() abci.ResponseCommit {
|
|
1186
|
+
func (app *GaiaApp) Commit() (*abci.ResponseCommit, error) {
|
|
1126
1187
|
err := swingsetkeeper.WaitUntilSwingStoreExportStarted()
|
|
1127
1188
|
|
|
1128
1189
|
if err != nil {
|
|
1129
1190
|
app.Logger().Error("swing-store export failed to start", "err", err)
|
|
1191
|
+
// failing to perform a swing-store export is not fatal.
|
|
1130
1192
|
}
|
|
1131
1193
|
|
|
1132
1194
|
// Frontrun the BaseApp's Commit method
|
|
1133
1195
|
err = swingset.CommitBlock(app.SwingSetKeeper)
|
|
1134
1196
|
if err != nil {
|
|
1135
|
-
|
|
1197
|
+
return nil, err
|
|
1136
1198
|
}
|
|
1137
1199
|
|
|
1138
|
-
res, snapshotHeight := app.BaseApp.CommitWithoutSnapshot()
|
|
1200
|
+
res, snapshotHeight, err := app.BaseApp.CommitWithoutSnapshot()
|
|
1139
1201
|
|
|
1140
1202
|
err = swingset.AfterCommitBlock(app.SwingSetKeeper)
|
|
1141
1203
|
if err != nil {
|
|
1142
|
-
|
|
1204
|
+
return nil, err
|
|
1143
1205
|
}
|
|
1144
1206
|
|
|
1145
1207
|
if snapshotHeight > 0 {
|
|
@@ -1147,10 +1209,11 @@ func (app *GaiaApp) Commit() abci.ResponseCommit {
|
|
|
1147
1209
|
|
|
1148
1210
|
if err != nil {
|
|
1149
1211
|
app.Logger().Error("failed to initiate swingset snapshot", "err", err)
|
|
1212
|
+
// failing to initiate a snapshot is not fatal. It can happen e.g. if a snapshot is already in progress
|
|
1150
1213
|
}
|
|
1151
1214
|
}
|
|
1152
1215
|
|
|
1153
|
-
return res
|
|
1216
|
+
return res, nil
|
|
1154
1217
|
}
|
|
1155
1218
|
|
|
1156
1219
|
// LoadHeight loads a particular height
|
|
@@ -1229,6 +1292,11 @@ func (app *GaiaApp) GetMemKey(storeKey string) *storetypes.MemoryStoreKey {
|
|
|
1229
1292
|
return app.memKeys[storeKey]
|
|
1230
1293
|
}
|
|
1231
1294
|
|
|
1295
|
+
func DefineCustomGetSigners(signingOptions *signing.Options) {
|
|
1296
|
+
swingsettypes.DefineCustomGetSigners(signingOptions)
|
|
1297
|
+
vibctypes.DefineCustomGetSigners(signingOptions)
|
|
1298
|
+
}
|
|
1299
|
+
|
|
1232
1300
|
// GetSubspace returns a param subspace for a given module name.
|
|
1233
1301
|
//
|
|
1234
1302
|
// NOTE: This is solely to be used for testing purposes.
|
|
@@ -1250,16 +1318,17 @@ func (app *GaiaApp) RegisterAPIRoutes(apiSvr *api.Server, apiConfig config.APICo
|
|
|
1250
1318
|
authtx.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
|
|
1251
1319
|
|
|
1252
1320
|
// Register new tendermint queries routes from grpc-gateway.
|
|
1253
|
-
|
|
1321
|
+
cmtservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
|
|
1254
1322
|
|
|
1255
1323
|
// Register node gRPC service for grpc-gateway.
|
|
1256
1324
|
nodeservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
|
|
1257
1325
|
|
|
1258
1326
|
// Register grpc-gateway routes for all modules.
|
|
1259
|
-
|
|
1327
|
+
app.BasicModuleManager.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
|
|
1260
1328
|
|
|
1261
1329
|
// register swagger API from root so that other applications can override easily
|
|
1262
|
-
|
|
1330
|
+
// XXX figure out how to build the docs to make them available from the _ import above
|
|
1331
|
+
if false && apiConfig.Swagger {
|
|
1263
1332
|
RegisterSwaggerAPI(apiSvr.Router)
|
|
1264
1333
|
}
|
|
1265
1334
|
}
|
|
@@ -1271,7 +1340,7 @@ func (app *GaiaApp) RegisterTxService(clientCtx client.Context) {
|
|
|
1271
1340
|
|
|
1272
1341
|
// RegisterTendermintService implements the Application.RegisterTendermintService method.
|
|
1273
1342
|
func (app *GaiaApp) RegisterTendermintService(clientCtx client.Context) {
|
|
1274
|
-
|
|
1343
|
+
cmtservice.RegisterTendermintService(clientCtx, app.BaseApp.GRPCQueryRouter(), app.interfaceRegistry, app.Query)
|
|
1275
1344
|
}
|
|
1276
1345
|
|
|
1277
1346
|
// RegisterSwaggerAPI registers swagger route with API Server
|
|
@@ -1298,17 +1367,10 @@ func GetMaccPerms() map[string][]string {
|
|
|
1298
1367
|
func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino, key, tkey storetypes.StoreKey) paramskeeper.Keeper {
|
|
1299
1368
|
paramsKeeper := paramskeeper.NewKeeper(appCodec, legacyAmino, key, tkey)
|
|
1300
1369
|
|
|
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())
|
|
1370
|
+
// Subspaces can be removed after upgrade of params.
|
|
1310
1371
|
paramsKeeper.Subspace(ibcexported.ModuleName)
|
|
1311
1372
|
paramsKeeper.Subspace(icahosttypes.SubModuleName)
|
|
1373
|
+
paramsKeeper.Subspace(ibctransfertypes.ModuleName)
|
|
1312
1374
|
paramsKeeper.Subspace(swingset.ModuleName)
|
|
1313
1375
|
paramsKeeper.Subspace(vbank.ModuleName)
|
|
1314
1376
|
|
|
@@ -1339,7 +1401,27 @@ func (app *GaiaApp) GetScopedIBCKeeper() capabilitykeeper.ScopedKeeper {
|
|
|
1339
1401
|
|
|
1340
1402
|
// GetTxConfig implements the TestingApp interface.
|
|
1341
1403
|
func (app *GaiaApp) GetTxConfig() client.TxConfig {
|
|
1342
|
-
return
|
|
1404
|
+
return app.txConfig
|
|
1405
|
+
}
|
|
1406
|
+
|
|
1407
|
+
func (app *GaiaApp) AutoCliOpts() autocli.AppOptions {
|
|
1408
|
+
modules := make(map[string]appmodule.AppModule, 0)
|
|
1409
|
+
for _, m := range app.ModuleManager.Modules {
|
|
1410
|
+
if moduleWithName, ok := m.(module.HasName); ok {
|
|
1411
|
+
moduleName := moduleWithName.Name()
|
|
1412
|
+
if appModule, ok := moduleWithName.(appmodule.AppModule); ok {
|
|
1413
|
+
modules[moduleName] = appModule
|
|
1414
|
+
}
|
|
1415
|
+
}
|
|
1416
|
+
}
|
|
1417
|
+
|
|
1418
|
+
return autocli.AppOptions{
|
|
1419
|
+
Modules: modules,
|
|
1420
|
+
ModuleOptions: runtimeservices.ExtractAutoCLIOptions(app.ModuleManager.Modules),
|
|
1421
|
+
AddressCodec: authcodec.NewBech32Codec(sdk.GetConfig().GetBech32AccountAddrPrefix()),
|
|
1422
|
+
ValidatorAddressCodec: authcodec.NewBech32Codec(sdk.GetConfig().GetBech32ValidatorAddrPrefix()),
|
|
1423
|
+
ConsensusAddressCodec: authcodec.NewBech32Codec(sdk.GetConfig().GetBech32ConsensusAddrPrefix()),
|
|
1424
|
+
}
|
|
1343
1425
|
}
|
|
1344
1426
|
|
|
1345
1427
|
// For testing purposes
|
|
@@ -1349,6 +1431,6 @@ func (app *GaiaApp) SetSwingStoreExportDir(dir string) {
|
|
|
1349
1431
|
}
|
|
1350
1432
|
|
|
1351
1433
|
// RegisterNodeService implements the Application.RegisterNodeService method.
|
|
1352
|
-
func (app *GaiaApp) RegisterNodeService(clientCtx client.Context) {
|
|
1353
|
-
nodeservice.RegisterNodeService(clientCtx, app.GRPCQueryRouter())
|
|
1434
|
+
func (app *GaiaApp) RegisterNodeService(clientCtx client.Context, cfg config.Config) {
|
|
1435
|
+
nodeservice.RegisterNodeService(clientCtx, app.GRPCQueryRouter(), cfg)
|
|
1354
1436
|
}
|