@agoric/cosmos 0.35.0-upgrade-14-dev-c8f9e7b.0 → 0.35.0-upgrade-16a-dev-fb592e4.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 +121 -77
- package/MAINTAINERS.md +3 -0
- package/Makefile +36 -26
- package/ante/ante.go +7 -9
- package/ante/inbound_test.go +3 -2
- package/ante/vm_admission.go +2 -1
- package/app/app.go +212 -140
- package/app/upgrade.go +76 -0
- package/cmd/agd/agvm.go +42 -0
- package/cmd/agd/main.go +130 -11
- package/cmd/libdaemon/main.go +64 -53
- package/cmd/libdaemon/main_test.go +2 -1
- package/daemon/cmd/root.go +171 -74
- package/daemon/cmd/root_test.go +189 -1
- package/daemon/main.go +4 -2
- package/e2e_test/Makefile +29 -0
- package/e2e_test/README.md +100 -0
- package/e2e_test/go.mod +217 -0
- package/e2e_test/go.sum +1323 -0
- package/e2e_test/ibc_conformance_test.go +56 -0
- package/e2e_test/pfm_test.go +613 -0
- package/e2e_test/util.go +271 -0
- package/git-revision.txt +1 -1
- package/go.mod +22 -11
- package/go.sum +17 -13
- package/package.json +9 -5
- package/proto/agoric/swingset/genesis.proto +4 -0
- package/proto/agoric/swingset/swingset.proto +1 -1
- package/proto/agoric/vlocalchain/.clang-format +7 -0
- package/proto/agoric/vlocalchain/vlocalchain.proto +31 -0
- package/proto/agoric/vtransfer/genesis.proto +18 -0
- package/scripts/protocgen.sh +7 -8
- package/types/kv_entry_helpers.go +42 -0
- package/upgradegaia.sh +8 -8
- package/vm/action.go +5 -4
- package/vm/action_test.go +31 -11
- package/vm/client.go +113 -0
- package/vm/client_test.go +182 -0
- package/vm/controller.go +17 -40
- package/vm/core_proposals.go +22 -2
- package/vm/jsonrpcconn/jsonrpcconn.go +160 -0
- package/vm/jsonrpcconn/jsonrpcconn_test.go +126 -0
- package/vm/proto_json.go +38 -0
- package/vm/proto_json_test.go +103 -0
- package/vm/server.go +124 -0
- package/x/swingset/abci.go +10 -10
- package/x/swingset/alias.go +2 -0
- package/x/swingset/client/cli/tx.go +4 -0
- package/x/swingset/genesis.go +84 -24
- package/x/swingset/handler.go +2 -1
- package/x/swingset/keeper/extension_snapshotter.go +2 -2
- package/x/swingset/keeper/keeper.go +13 -25
- package/x/swingset/keeper/msg_server.go +18 -18
- package/x/swingset/keeper/proposal.go +3 -3
- package/x/swingset/keeper/querier.go +12 -11
- package/x/swingset/keeper/swing_store_exports_handler.go +21 -6
- package/x/swingset/keeper/test_utils.go +16 -0
- package/x/swingset/module.go +7 -7
- package/x/swingset/proposal_handler.go +2 -1
- package/x/swingset/testing/queue.go +17 -0
- package/x/swingset/types/default-params.go +1 -1
- package/x/swingset/types/expected_keepers.go +3 -2
- package/x/swingset/types/genesis.pb.go +78 -25
- package/x/swingset/types/msgs.go +44 -24
- package/x/swingset/types/params.go +2 -1
- package/x/swingset/types/proposal.go +5 -4
- package/x/swingset/types/swingset.pb.go +1 -1
- package/x/vbank/genesis.go +0 -2
- package/x/vbank/handler.go +2 -1
- package/x/vbank/keeper/querier.go +4 -3
- package/x/vbank/module.go +0 -5
- package/x/vbank/types/msgs.go +0 -12
- package/x/vbank/vbank.go +9 -9
- package/x/vbank/vbank_test.go +2 -2
- package/x/vibc/alias.go +3 -0
- package/x/vibc/handler.go +16 -9
- package/x/vibc/keeper/keeper.go +102 -65
- package/x/vibc/keeper/triggers.go +101 -0
- package/x/vibc/module.go +5 -8
- package/x/vibc/types/expected_keepers.go +13 -0
- package/x/vibc/types/ibc_module.go +336 -0
- package/x/vibc/types/receiver.go +170 -0
- package/x/vlocalchain/alias.go +19 -0
- package/x/vlocalchain/handler.go +21 -0
- package/x/vlocalchain/keeper/keeper.go +279 -0
- package/x/vlocalchain/keeper/keeper_test.go +97 -0
- package/x/vlocalchain/types/codec.go +34 -0
- package/x/vlocalchain/types/key.go +27 -0
- package/x/vlocalchain/types/msgs.go +16 -0
- package/x/vlocalchain/types/vlocalchain.pb.go +1072 -0
- package/x/vlocalchain/vlocalchain.go +114 -0
- package/x/vlocalchain/vlocalchain_test.go +434 -0
- package/x/vstorage/handler.go +2 -1
- package/x/vstorage/keeper/grpc_query.go +0 -1
- package/x/vstorage/keeper/keeper.go +13 -20
- package/x/vstorage/keeper/querier.go +6 -5
- package/x/vstorage/keeper/querier_test.go +4 -3
- package/x/vstorage/module.go +0 -5
- package/x/vstorage/testing/queue.go +27 -0
- package/x/vtransfer/alias.go +13 -0
- package/x/vtransfer/genesis.go +39 -0
- package/x/vtransfer/genesis_test.go +12 -0
- package/x/vtransfer/handler.go +20 -0
- package/x/vtransfer/ibc_middleware.go +186 -0
- package/x/vtransfer/ibc_middleware_test.go +448 -0
- package/x/vtransfer/keeper/keeper.go +281 -0
- package/x/vtransfer/module.go +124 -0
- package/x/vtransfer/types/expected_keepers.go +38 -0
- package/x/vtransfer/types/genesis.pb.go +327 -0
- package/x/vtransfer/types/key.go +9 -0
- package/x/vtransfer/types/msgs.go +9 -0
- package/ante/fee.go +0 -96
- package/proto/agoric/lien/genesis.proto +0 -25
- package/proto/agoric/lien/lien.proto +0 -25
- package/x/lien/alias.go +0 -17
- package/x/lien/genesis.go +0 -58
- package/x/lien/genesis_test.go +0 -101
- package/x/lien/keeper/account.go +0 -290
- package/x/lien/keeper/keeper.go +0 -255
- package/x/lien/keeper/keeper_test.go +0 -623
- package/x/lien/lien.go +0 -205
- package/x/lien/lien_test.go +0 -533
- package/x/lien/module.go +0 -115
- package/x/lien/spec/01_concepts.md +0 -146
- package/x/lien/spec/02_messages.md +0 -96
- package/x/lien/types/accountkeeper.go +0 -81
- package/x/lien/types/accountstate.go +0 -27
- package/x/lien/types/expected_keepers.go +0 -18
- package/x/lien/types/genesis.pb.go +0 -567
- package/x/lien/types/key.go +0 -25
- package/x/lien/types/lien.pb.go +0 -403
- package/x/vibc/ibc.go +0 -394
- /package/{src/index.cjs → index.cjs} +0 -0
package/app/app.go
CHANGED
|
@@ -12,6 +12,7 @@ import (
|
|
|
12
12
|
"runtime/debug"
|
|
13
13
|
"time"
|
|
14
14
|
|
|
15
|
+
sdkioerrors "cosmossdk.io/errors"
|
|
15
16
|
"github.com/cosmos/cosmos-sdk/baseapp"
|
|
16
17
|
"github.com/cosmos/cosmos-sdk/client"
|
|
17
18
|
nodeservice "github.com/cosmos/cosmos-sdk/client/grpc/node"
|
|
@@ -24,7 +25,6 @@ import (
|
|
|
24
25
|
"github.com/cosmos/cosmos-sdk/simapp"
|
|
25
26
|
storetypes "github.com/cosmos/cosmos-sdk/store/types"
|
|
26
27
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
27
|
-
"github.com/cosmos/cosmos-sdk/types/errors"
|
|
28
28
|
"github.com/cosmos/cosmos-sdk/types/module"
|
|
29
29
|
"github.com/cosmos/cosmos-sdk/version"
|
|
30
30
|
"github.com/cosmos/cosmos-sdk/x/auth"
|
|
@@ -44,7 +44,6 @@ import (
|
|
|
44
44
|
"github.com/cosmos/cosmos-sdk/x/capability"
|
|
45
45
|
capabilitykeeper "github.com/cosmos/cosmos-sdk/x/capability/keeper"
|
|
46
46
|
capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types"
|
|
47
|
-
crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types"
|
|
48
47
|
distr "github.com/cosmos/cosmos-sdk/x/distribution"
|
|
49
48
|
distrclient "github.com/cosmos/cosmos-sdk/x/distribution/client"
|
|
50
49
|
distrkeeper "github.com/cosmos/cosmos-sdk/x/distribution/keeper"
|
|
@@ -87,14 +86,14 @@ import (
|
|
|
87
86
|
icahostkeeper "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/host/keeper"
|
|
88
87
|
icahosttypes "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/host/types"
|
|
89
88
|
icatypes "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/types"
|
|
90
|
-
"github.com/cosmos/ibc-go/v6/modules/apps/transfer"
|
|
89
|
+
ibctransfer "github.com/cosmos/ibc-go/v6/modules/apps/transfer"
|
|
91
90
|
ibctransferkeeper "github.com/cosmos/ibc-go/v6/modules/apps/transfer/keeper"
|
|
92
91
|
ibctransfertypes "github.com/cosmos/ibc-go/v6/modules/apps/transfer/types"
|
|
93
92
|
ibc "github.com/cosmos/ibc-go/v6/modules/core"
|
|
94
93
|
ibcclient "github.com/cosmos/ibc-go/v6/modules/core/02-client"
|
|
95
94
|
ibcclientclient "github.com/cosmos/ibc-go/v6/modules/core/02-client/client"
|
|
96
95
|
ibcclienttypes "github.com/cosmos/ibc-go/v6/modules/core/02-client/types"
|
|
97
|
-
|
|
96
|
+
ibcporttypes "github.com/cosmos/ibc-go/v6/modules/core/05-port/types"
|
|
98
97
|
ibchost "github.com/cosmos/ibc-go/v6/modules/core/24-host"
|
|
99
98
|
ibckeeper "github.com/cosmos/ibc-go/v6/modules/core/keeper"
|
|
100
99
|
"github.com/gorilla/mux"
|
|
@@ -111,8 +110,9 @@ import (
|
|
|
111
110
|
|
|
112
111
|
appante "github.com/Agoric/agoric-sdk/golang/cosmos/ante"
|
|
113
112
|
agorictypes "github.com/Agoric/agoric-sdk/golang/cosmos/types"
|
|
113
|
+
|
|
114
|
+
// conv "github.com/Agoric/agoric-sdk/golang/cosmos/types/conv"
|
|
114
115
|
"github.com/Agoric/agoric-sdk/golang/cosmos/vm"
|
|
115
|
-
"github.com/Agoric/agoric-sdk/golang/cosmos/x/lien"
|
|
116
116
|
"github.com/Agoric/agoric-sdk/golang/cosmos/x/swingset"
|
|
117
117
|
swingsetclient "github.com/Agoric/agoric-sdk/golang/cosmos/x/swingset/client"
|
|
118
118
|
swingsetkeeper "github.com/Agoric/agoric-sdk/golang/cosmos/x/swingset/keeper"
|
|
@@ -120,7 +120,16 @@ import (
|
|
|
120
120
|
"github.com/Agoric/agoric-sdk/golang/cosmos/x/vbank"
|
|
121
121
|
vbanktypes "github.com/Agoric/agoric-sdk/golang/cosmos/x/vbank/types"
|
|
122
122
|
"github.com/Agoric/agoric-sdk/golang/cosmos/x/vibc"
|
|
123
|
+
"github.com/Agoric/agoric-sdk/golang/cosmos/x/vlocalchain"
|
|
123
124
|
"github.com/Agoric/agoric-sdk/golang/cosmos/x/vstorage"
|
|
125
|
+
"github.com/Agoric/agoric-sdk/golang/cosmos/x/vtransfer"
|
|
126
|
+
vtransferkeeper "github.com/Agoric/agoric-sdk/golang/cosmos/x/vtransfer/keeper"
|
|
127
|
+
testtypes "github.com/cosmos/ibc-go/v6/testing/types"
|
|
128
|
+
|
|
129
|
+
// Import the packet forward middleware
|
|
130
|
+
packetforward "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v6/packetforward"
|
|
131
|
+
packetforwardkeeper "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v6/packetforward/keeper"
|
|
132
|
+
packetforwardtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v6/packetforward/types"
|
|
124
133
|
|
|
125
134
|
// unnamed import of statik for swagger UI support
|
|
126
135
|
_ "github.com/cosmos/cosmos-sdk/client/docs/statik"
|
|
@@ -167,14 +176,15 @@ var (
|
|
|
167
176
|
ibc.AppModuleBasic{},
|
|
168
177
|
upgrade.AppModuleBasic{},
|
|
169
178
|
evidence.AppModuleBasic{},
|
|
170
|
-
|
|
179
|
+
ibctransfer.AppModuleBasic{},
|
|
171
180
|
vesting.AppModuleBasic{},
|
|
172
181
|
ica.AppModuleBasic{},
|
|
182
|
+
packetforward.AppModuleBasic{},
|
|
173
183
|
swingset.AppModuleBasic{},
|
|
174
184
|
vstorage.AppModuleBasic{},
|
|
175
185
|
vibc.AppModuleBasic{},
|
|
176
186
|
vbank.AppModuleBasic{},
|
|
177
|
-
|
|
187
|
+
vtransfer.AppModuleBasic{},
|
|
178
188
|
)
|
|
179
189
|
|
|
180
190
|
// module account permissions
|
|
@@ -210,11 +220,12 @@ type GaiaApp struct { // nolint: golint
|
|
|
210
220
|
|
|
211
221
|
controllerInited bool
|
|
212
222
|
bootstrapNeeded bool
|
|
213
|
-
lienPort int
|
|
214
223
|
swingsetPort int
|
|
215
224
|
vbankPort int
|
|
216
225
|
vibcPort int
|
|
217
226
|
vstoragePort int
|
|
227
|
+
vlocalchainPort int
|
|
228
|
+
vtransferPort int
|
|
218
229
|
|
|
219
230
|
upgradeDetails *upgradeDetails
|
|
220
231
|
|
|
@@ -225,6 +236,9 @@ type GaiaApp struct { // nolint: golint
|
|
|
225
236
|
tkeys map[string]*storetypes.TransientStoreKey
|
|
226
237
|
memKeys map[string]*storetypes.MemoryStoreKey
|
|
227
238
|
|
|
239
|
+
// manage communication from the VM to the ABCI app
|
|
240
|
+
AgdServer *vm.AgdServer
|
|
241
|
+
|
|
228
242
|
// keepers
|
|
229
243
|
AccountKeeper authkeeper.AccountKeeper
|
|
230
244
|
BankKeeper bankkeeper.Keeper
|
|
@@ -237,12 +251,13 @@ type GaiaApp struct { // nolint: golint
|
|
|
237
251
|
UpgradeKeeper upgradekeeper.Keeper
|
|
238
252
|
ParamsKeeper paramskeeper.Keeper
|
|
239
253
|
// IBC Keeper must be a pointer in the app, so we can SetRouter on it correctly
|
|
240
|
-
IBCKeeper
|
|
241
|
-
ICAHostKeeper
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
254
|
+
IBCKeeper *ibckeeper.Keeper
|
|
255
|
+
ICAHostKeeper icahostkeeper.Keeper
|
|
256
|
+
PacketForwardKeeper *packetforwardkeeper.Keeper
|
|
257
|
+
EvidenceKeeper evidencekeeper.Keeper
|
|
258
|
+
TransferKeeper ibctransferkeeper.Keeper
|
|
259
|
+
FeeGrantKeeper feegrantkeeper.Keeper
|
|
260
|
+
AuthzKeeper authzkeeper.Keeper
|
|
246
261
|
|
|
247
262
|
SwingStoreExportsHandler swingset.SwingStoreExportsHandler
|
|
248
263
|
SwingSetSnapshotter swingset.ExtensionSnapshotter
|
|
@@ -250,7 +265,8 @@ type GaiaApp struct { // nolint: golint
|
|
|
250
265
|
VstorageKeeper vstorage.Keeper
|
|
251
266
|
VibcKeeper vibc.Keeper
|
|
252
267
|
VbankKeeper vbank.Keeper
|
|
253
|
-
|
|
268
|
+
VlocalchainKeeper vlocalchain.Keeper
|
|
269
|
+
VtransferKeeper vtransferkeeper.Keeper
|
|
254
270
|
|
|
255
271
|
// make scoped keepers public for test purposes
|
|
256
272
|
ScopedIBCKeeper capabilitykeeper.ScopedKeeper
|
|
@@ -287,19 +303,18 @@ func NewGaiaApp(
|
|
|
287
303
|
appOpts servertypes.AppOptions,
|
|
288
304
|
baseAppOptions ...func(*baseapp.BaseApp),
|
|
289
305
|
) *GaiaApp {
|
|
290
|
-
defaultController
|
|
291
|
-
fmt.
|
|
292
|
-
return "", nil
|
|
306
|
+
var defaultController vm.Sender = func(ctx context.Context, needReply bool, jsonRequest string) (jsonReply string, err error) {
|
|
307
|
+
return "", fmt.Errorf("unexpected VM upcall with no controller: %s", jsonRequest)
|
|
293
308
|
}
|
|
294
309
|
return NewAgoricApp(
|
|
295
|
-
defaultController,
|
|
310
|
+
defaultController, vm.NewAgdServer(),
|
|
296
311
|
logger, db, traceStore, loadLatest, skipUpgradeHeights,
|
|
297
312
|
homePath, invCheckPeriod, encodingConfig, appOpts, baseAppOptions...,
|
|
298
313
|
)
|
|
299
314
|
}
|
|
300
315
|
|
|
301
316
|
func NewAgoricApp(
|
|
302
|
-
sendToController
|
|
317
|
+
sendToController vm.Sender, agdServer *vm.AgdServer,
|
|
303
318
|
logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest bool, skipUpgradeHeights map[int64]bool,
|
|
304
319
|
homePath string, invCheckPeriod uint, encodingConfig gaiaappparams.EncodingConfig, appOpts servertypes.AppOptions, baseAppOptions ...func(*baseapp.BaseApp),
|
|
305
320
|
) *GaiaApp {
|
|
@@ -316,15 +331,17 @@ func NewAgoricApp(
|
|
|
316
331
|
authtypes.StoreKey, banktypes.StoreKey, stakingtypes.StoreKey,
|
|
317
332
|
minttypes.StoreKey, distrtypes.StoreKey, slashingtypes.StoreKey,
|
|
318
333
|
govtypes.StoreKey, paramstypes.StoreKey, ibchost.StoreKey, upgradetypes.StoreKey,
|
|
319
|
-
evidencetypes.StoreKey, ibctransfertypes.StoreKey,
|
|
334
|
+
evidencetypes.StoreKey, ibctransfertypes.StoreKey, packetforwardtypes.StoreKey,
|
|
320
335
|
capabilitytypes.StoreKey, feegrant.StoreKey, authzkeeper.StoreKey, icahosttypes.StoreKey,
|
|
321
|
-
swingset.StoreKey, vstorage.StoreKey, vibc.StoreKey,
|
|
336
|
+
swingset.StoreKey, vstorage.StoreKey, vibc.StoreKey,
|
|
337
|
+
vlocalchain.StoreKey, vtransfer.StoreKey, vbank.StoreKey,
|
|
322
338
|
)
|
|
323
339
|
tkeys := sdk.NewTransientStoreKeys(paramstypes.TStoreKey)
|
|
324
340
|
memKeys := sdk.NewMemoryStoreKeys(capabilitytypes.MemStoreKey)
|
|
325
341
|
|
|
326
342
|
app := &GaiaApp{
|
|
327
343
|
BaseApp: bApp,
|
|
344
|
+
AgdServer: agdServer,
|
|
328
345
|
legacyAmino: legacyAmino,
|
|
329
346
|
appCodec: appCodec,
|
|
330
347
|
interfaceRegistry: interfaceRegistry,
|
|
@@ -355,7 +372,7 @@ func NewAgoricApp(
|
|
|
355
372
|
app.CapabilityKeeper.Seal()
|
|
356
373
|
|
|
357
374
|
// add keepers
|
|
358
|
-
|
|
375
|
+
app.AccountKeeper = authkeeper.NewAccountKeeper(
|
|
359
376
|
appCodec,
|
|
360
377
|
keys[authtypes.StoreKey],
|
|
361
378
|
app.GetSubspace(authtypes.ModuleName),
|
|
@@ -363,8 +380,7 @@ func NewAgoricApp(
|
|
|
363
380
|
maccPerms,
|
|
364
381
|
appName,
|
|
365
382
|
)
|
|
366
|
-
|
|
367
|
-
app.AccountKeeper = wrappedAccountKeeper
|
|
383
|
+
|
|
368
384
|
app.BankKeeper = bankkeeper.NewBaseKeeper(
|
|
369
385
|
appCodec,
|
|
370
386
|
keys[banktypes.StoreKey],
|
|
@@ -441,11 +457,11 @@ func NewAgoricApp(
|
|
|
441
457
|
)
|
|
442
458
|
|
|
443
459
|
// This function is tricky to get right, so we build it ourselves.
|
|
444
|
-
callToController := func(ctx sdk.Context,
|
|
460
|
+
callToController := func(ctx sdk.Context, jsonRequest string) (jsonReply string, err error) {
|
|
445
461
|
app.CheckControllerInited(true)
|
|
446
462
|
// We use SwingSet-level metering to charge the user for the call.
|
|
447
|
-
defer
|
|
448
|
-
return sendToController(sdk.WrapSDKContext(ctx), true,
|
|
463
|
+
defer app.AgdServer.SetControllerContext(ctx)()
|
|
464
|
+
return sendToController(sdk.WrapSDKContext(ctx), true, jsonRequest)
|
|
449
465
|
}
|
|
450
466
|
|
|
451
467
|
setBootstrapNeeded := func() {
|
|
@@ -455,7 +471,7 @@ func NewAgoricApp(
|
|
|
455
471
|
app.VstorageKeeper = vstorage.NewKeeper(
|
|
456
472
|
keys[vstorage.StoreKey],
|
|
457
473
|
)
|
|
458
|
-
app.vstoragePort =
|
|
474
|
+
app.vstoragePort = app.AgdServer.MustRegisterPortHandler("vstorage", vstorage.NewStorageHandler(app.VstorageKeeper))
|
|
459
475
|
|
|
460
476
|
// The SwingSetKeeper is the Keeper from the SwingSet module
|
|
461
477
|
app.SwingSetKeeper = swingset.NewKeeper(
|
|
@@ -464,7 +480,7 @@ func NewAgoricApp(
|
|
|
464
480
|
app.VstorageKeeper, vbanktypes.ReservePoolName,
|
|
465
481
|
callToController,
|
|
466
482
|
)
|
|
467
|
-
app.swingsetPort =
|
|
483
|
+
app.swingsetPort = app.AgdServer.MustRegisterPortHandler("swingset", swingset.NewPortHandler(app.SwingSetKeeper))
|
|
468
484
|
|
|
469
485
|
app.SwingStoreExportsHandler = *swingsetkeeper.NewSwingStoreExportsHandler(
|
|
470
486
|
app.Logger(),
|
|
@@ -497,16 +513,26 @@ func NewAgoricApp(
|
|
|
497
513
|
)
|
|
498
514
|
|
|
499
515
|
app.VibcKeeper = vibc.NewKeeper(
|
|
500
|
-
appCodec,
|
|
516
|
+
appCodec,
|
|
501
517
|
app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper,
|
|
502
|
-
|
|
503
|
-
|
|
518
|
+
).WithScope(keys[vibc.StoreKey], scopedVibcKeeper, app.SwingSetKeeper.PushAction)
|
|
519
|
+
|
|
520
|
+
vibcModule := vibc.NewAppModule(app.VibcKeeper, app.BankKeeper)
|
|
521
|
+
vibcIBCModule := vibc.NewIBCModule(app.VibcKeeper)
|
|
522
|
+
app.vibcPort = app.AgdServer.MustRegisterPortHandler("vibc", vibc.NewReceiver(app.VibcKeeper))
|
|
523
|
+
|
|
524
|
+
app.VtransferKeeper = vtransferkeeper.NewKeeper(
|
|
525
|
+
appCodec,
|
|
526
|
+
keys[vtransfer.StoreKey],
|
|
527
|
+
app.VibcKeeper,
|
|
528
|
+
scopedTransferKeeper,
|
|
504
529
|
app.SwingSetKeeper.PushAction,
|
|
505
530
|
)
|
|
506
531
|
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
532
|
+
vtransferModule := vtransfer.NewAppModule(app.VtransferKeeper)
|
|
533
|
+
app.vtransferPort = app.AgdServer.MustRegisterPortHandler("vtransfer",
|
|
534
|
+
vibc.NewReceiver(app.VtransferKeeper),
|
|
535
|
+
)
|
|
510
536
|
|
|
511
537
|
app.VbankKeeper = vbank.NewKeeper(
|
|
512
538
|
appCodec, keys[vbank.StoreKey], app.GetSubspace(vbank.ModuleName),
|
|
@@ -514,17 +540,7 @@ func NewAgoricApp(
|
|
|
514
540
|
app.SwingSetKeeper.PushAction,
|
|
515
541
|
)
|
|
516
542
|
vbankModule := vbank.NewAppModule(app.VbankKeeper)
|
|
517
|
-
app.vbankPort =
|
|
518
|
-
|
|
519
|
-
// Lien keeper, and circular reference back to wrappedAccountKeeper
|
|
520
|
-
app.LienKeeper = lien.NewKeeper(
|
|
521
|
-
appCodec, keys[lien.StoreKey],
|
|
522
|
-
wrappedAccountKeeper, app.BankKeeper, app.StakingKeeper,
|
|
523
|
-
app.SwingSetKeeper.PushAction,
|
|
524
|
-
)
|
|
525
|
-
wrappedAccountKeeper.SetWrapper(app.LienKeeper.GetAccountWrapper())
|
|
526
|
-
lienModule := lien.NewAppModule(app.LienKeeper)
|
|
527
|
-
app.lienPort = vm.RegisterPortHandler("lien", lien.NewPortHandler(app.LienKeeper))
|
|
543
|
+
app.vbankPort = app.AgdServer.MustRegisterPortHandler("bank", vbank.NewPortHandler(vbankModule, app.VbankKeeper))
|
|
528
544
|
|
|
529
545
|
// register the proposal types
|
|
530
546
|
govRouter := govv1beta1.NewRouter()
|
|
@@ -549,42 +565,91 @@ func NewAgoricApp(
|
|
|
549
565
|
govConfig,
|
|
550
566
|
)
|
|
551
567
|
|
|
568
|
+
// Initialize the packet forward middleware Keeper
|
|
569
|
+
// It's important to note that the PFM Keeper must be initialized before the Transfer Keeper
|
|
570
|
+
app.PacketForwardKeeper = packetforwardkeeper.NewKeeper(
|
|
571
|
+
appCodec,
|
|
572
|
+
keys[packetforwardtypes.StoreKey],
|
|
573
|
+
app.GetSubspace(packetforwardtypes.ModuleName),
|
|
574
|
+
app.TransferKeeper, // will be zero-value here, reference is set later on with SetTransferKeeper.
|
|
575
|
+
app.IBCKeeper.ChannelKeeper,
|
|
576
|
+
app.DistrKeeper,
|
|
577
|
+
app.BankKeeper,
|
|
578
|
+
// Make vtransfer the middleware wrapper for the IBCKeeper.
|
|
579
|
+
app.VtransferKeeper.GetICS4Wrapper(),
|
|
580
|
+
)
|
|
581
|
+
|
|
552
582
|
app.TransferKeeper = ibctransferkeeper.NewKeeper(
|
|
553
583
|
appCodec,
|
|
554
584
|
keys[ibctransfertypes.StoreKey],
|
|
555
585
|
app.GetSubspace(ibctransfertypes.ModuleName),
|
|
556
|
-
app.
|
|
586
|
+
app.PacketForwardKeeper, // Wire in the middleware ICS4Wrapper.
|
|
557
587
|
app.IBCKeeper.ChannelKeeper,
|
|
558
588
|
&app.IBCKeeper.PortKeeper,
|
|
559
589
|
app.AccountKeeper,
|
|
560
590
|
app.BankKeeper,
|
|
561
591
|
scopedTransferKeeper,
|
|
562
592
|
)
|
|
563
|
-
transferModule := transfer.NewAppModule(app.TransferKeeper)
|
|
564
|
-
transferIBCModule := transfer.NewIBCModule(app.TransferKeeper)
|
|
565
593
|
|
|
594
|
+
app.PacketForwardKeeper.SetTransferKeeper(app.TransferKeeper)
|
|
595
|
+
|
|
596
|
+
// NewAppModule uses a pointer to the host keeper in case there's a need to
|
|
597
|
+
// tie a circular knot with IBC middleware before icahostkeeper.NewKeeper
|
|
598
|
+
// can be called.
|
|
566
599
|
app.ICAHostKeeper = icahostkeeper.NewKeeper(
|
|
567
600
|
appCodec, keys[icahosttypes.StoreKey],
|
|
568
601
|
app.GetSubspace(icahosttypes.SubModuleName),
|
|
569
|
-
app.IBCKeeper.ChannelKeeper,
|
|
602
|
+
app.IBCKeeper.ChannelKeeper, // This is where middleware binding would happen.
|
|
570
603
|
app.IBCKeeper.ChannelKeeper,
|
|
571
604
|
&app.IBCKeeper.PortKeeper,
|
|
572
605
|
app.AccountKeeper,
|
|
573
606
|
scopedICAHostKeeper,
|
|
574
607
|
app.MsgServiceRouter(),
|
|
575
608
|
)
|
|
576
|
-
icaModule := ica.NewAppModule(nil, &app.ICAHostKeeper)
|
|
577
609
|
icaHostIBCModule := icahost.NewIBCModule(app.ICAHostKeeper)
|
|
610
|
+
icaModule := ica.NewAppModule(nil, &app.ICAHostKeeper)
|
|
611
|
+
|
|
612
|
+
ics20TransferModule := ibctransfer.NewAppModule(app.TransferKeeper)
|
|
613
|
+
|
|
614
|
+
// Create the IBC router, which maps *module names* (not PortIDs) to modules.
|
|
615
|
+
ibcRouter := ibcporttypes.NewRouter()
|
|
616
|
+
|
|
617
|
+
// Add an IBC route for the ICA Host.
|
|
618
|
+
ibcRouter.AddRoute(icahosttypes.SubModuleName, icaHostIBCModule)
|
|
578
619
|
|
|
579
|
-
//
|
|
580
|
-
|
|
581
|
-
ibcRouter := porttypes.NewRouter()
|
|
582
|
-
ibcRouter.AddRoute(icahosttypes.SubModuleName, icaHostIBCModule).
|
|
583
|
-
AddRoute(ibctransfertypes.ModuleName, transferIBCModule).
|
|
584
|
-
AddRoute(vibc.ModuleName, vibcIBCModule)
|
|
620
|
+
// Add an IBC route for vIBC.
|
|
621
|
+
ibcRouter.AddRoute(vibc.ModuleName, vibcIBCModule)
|
|
585
622
|
|
|
623
|
+
// Add an IBC route for ICS-20 fungible token transfers, wrapping base
|
|
624
|
+
// Cosmos functionality with middleware (from the inside out, Cosmos
|
|
625
|
+
// packet-forwarding and then our own "vtransfer").
|
|
626
|
+
var ics20TransferIBCModule ibcporttypes.IBCModule = ibctransfer.NewIBCModule(app.TransferKeeper)
|
|
627
|
+
ics20TransferIBCModule = packetforward.NewIBCMiddleware(
|
|
628
|
+
ics20TransferIBCModule,
|
|
629
|
+
app.PacketForwardKeeper,
|
|
630
|
+
0, // retries on timeout
|
|
631
|
+
packetforwardkeeper.DefaultForwardTransferPacketTimeoutTimestamp, // forward timeout
|
|
632
|
+
packetforwardkeeper.DefaultRefundTransferPacketTimeoutTimestamp, // refund timeout
|
|
633
|
+
)
|
|
634
|
+
ics20TransferIBCModule = vtransfer.NewIBCMiddleware(ics20TransferIBCModule, app.VtransferKeeper)
|
|
635
|
+
ibcRouter.AddRoute(ibctransfertypes.ModuleName, ics20TransferIBCModule)
|
|
636
|
+
|
|
637
|
+
// Seal the router
|
|
586
638
|
app.IBCKeeper.SetRouter(ibcRouter)
|
|
587
639
|
|
|
640
|
+
// The local chain keeper provides ICA/ICQ-like support for the VM to
|
|
641
|
+
// control a fresh account and/or query this Cosmos-SDK instance.
|
|
642
|
+
app.VlocalchainKeeper = vlocalchain.NewKeeper(
|
|
643
|
+
appCodec,
|
|
644
|
+
keys[vlocalchain.StoreKey],
|
|
645
|
+
app.BaseApp.MsgServiceRouter(),
|
|
646
|
+
app.BaseApp.GRPCQueryRouter(),
|
|
647
|
+
)
|
|
648
|
+
app.vlocalchainPort = app.AgdServer.MustRegisterPortHandler(
|
|
649
|
+
"vlocalchain",
|
|
650
|
+
vlocalchain.NewReceiver(app.VlocalchainKeeper),
|
|
651
|
+
)
|
|
652
|
+
|
|
588
653
|
// create evidence keeper with router
|
|
589
654
|
evidenceKeeper := evidencekeeper.NewKeeper(
|
|
590
655
|
appCodec,
|
|
@@ -606,11 +671,7 @@ func NewAgoricApp(
|
|
|
606
671
|
app.BaseApp.DeliverTx,
|
|
607
672
|
encodingConfig.TxConfig,
|
|
608
673
|
),
|
|
609
|
-
|
|
610
|
-
// since migration method doesn't know how to unwrap the account keeper.
|
|
611
|
-
// Needs access to some struct fields.
|
|
612
|
-
// (Alternative is to add accessor methods to the AccountKeeper interface.)
|
|
613
|
-
auth.NewAppModule(appCodec, innerAk, nil),
|
|
674
|
+
auth.NewAppModule(appCodec, app.AccountKeeper, nil),
|
|
614
675
|
vesting.NewAppModule(app.AccountKeeper, app.BankKeeper, app.StakingKeeper),
|
|
615
676
|
bank.NewAppModule(appCodec, app.BankKeeper, app.AccountKeeper),
|
|
616
677
|
capability.NewAppModule(appCodec, *app.CapabilityKeeper),
|
|
@@ -625,13 +686,14 @@ func NewAgoricApp(
|
|
|
625
686
|
authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry),
|
|
626
687
|
ibc.NewAppModule(app.IBCKeeper),
|
|
627
688
|
params.NewAppModule(app.ParamsKeeper),
|
|
628
|
-
|
|
689
|
+
ics20TransferModule,
|
|
629
690
|
icaModule,
|
|
691
|
+
packetforward.NewAppModule(app.PacketForwardKeeper),
|
|
630
692
|
vstorage.NewAppModule(app.VstorageKeeper),
|
|
631
693
|
swingset.NewAppModule(app.SwingSetKeeper, &app.SwingStoreExportsHandler, setBootstrapNeeded, app.ensureControllerInited, swingStoreExportDir),
|
|
632
694
|
vibcModule,
|
|
633
695
|
vbankModule,
|
|
634
|
-
|
|
696
|
+
vtransferModule,
|
|
635
697
|
)
|
|
636
698
|
|
|
637
699
|
// During begin block slashing happens after distr.BeginBlocker so that
|
|
@@ -640,14 +702,19 @@ func NewAgoricApp(
|
|
|
640
702
|
// NOTE: staking module is required if HistoricalEntries param > 0
|
|
641
703
|
// NOTE: capability module's beginblocker must come before any modules using capabilities (e.g. IBC)
|
|
642
704
|
app.mm.SetOrderBeginBlockers(
|
|
705
|
+
// Cosmos-SDK modules appear roughly in the order used by simapp and gaiad.
|
|
643
706
|
// upgrades should be run first
|
|
644
707
|
upgradetypes.ModuleName,
|
|
645
708
|
capabilitytypes.ModuleName,
|
|
709
|
+
// params influence many other modules, so it should be near the top.
|
|
710
|
+
paramstypes.ModuleName,
|
|
646
711
|
govtypes.ModuleName,
|
|
647
712
|
stakingtypes.ModuleName,
|
|
713
|
+
// ibc apps are grouped together
|
|
648
714
|
ibctransfertypes.ModuleName,
|
|
649
715
|
ibchost.ModuleName,
|
|
650
716
|
icatypes.ModuleName,
|
|
717
|
+
packetforwardtypes.ModuleName,
|
|
651
718
|
authtypes.ModuleName,
|
|
652
719
|
banktypes.ModuleName,
|
|
653
720
|
distrtypes.ModuleName,
|
|
@@ -657,7 +724,6 @@ func NewAgoricApp(
|
|
|
657
724
|
evidencetypes.ModuleName,
|
|
658
725
|
authz.ModuleName,
|
|
659
726
|
feegrant.ModuleName,
|
|
660
|
-
paramstypes.ModuleName,
|
|
661
727
|
vestingtypes.ModuleName,
|
|
662
728
|
vstorage.ModuleName,
|
|
663
729
|
// This will cause the swingset controller to init if it hadn't yet, passing
|
|
@@ -665,17 +731,19 @@ func NewAgoricApp(
|
|
|
665
731
|
swingset.ModuleName,
|
|
666
732
|
vibc.ModuleName,
|
|
667
733
|
vbank.ModuleName,
|
|
668
|
-
|
|
734
|
+
vtransfer.ModuleName,
|
|
669
735
|
)
|
|
670
736
|
app.mm.SetOrderEndBlockers(
|
|
671
|
-
|
|
672
|
-
vbank.ModuleName,
|
|
673
|
-
lien.ModuleName,
|
|
737
|
+
// Cosmos-SDK modules appear roughly in the order used by simapp and gaiad.
|
|
674
738
|
govtypes.ModuleName,
|
|
675
739
|
stakingtypes.ModuleName,
|
|
740
|
+
// vibc is an Agoric-specific IBC app, so group it here with other IBC apps.
|
|
741
|
+
vibc.ModuleName,
|
|
742
|
+
vtransfer.ModuleName,
|
|
676
743
|
ibctransfertypes.ModuleName,
|
|
677
744
|
ibchost.ModuleName,
|
|
678
745
|
icatypes.ModuleName,
|
|
746
|
+
packetforwardtypes.ModuleName,
|
|
679
747
|
feegrant.ModuleName,
|
|
680
748
|
authz.ModuleName,
|
|
681
749
|
capabilitytypes.ModuleName,
|
|
@@ -689,7 +757,11 @@ func NewAgoricApp(
|
|
|
689
757
|
paramstypes.ModuleName,
|
|
690
758
|
upgradetypes.ModuleName,
|
|
691
759
|
vestingtypes.ModuleName,
|
|
692
|
-
//
|
|
760
|
+
// Putting vbank before SwingSet VM will enable vbank to capture all event
|
|
761
|
+
// history that was produced all the other modules, and push those balance
|
|
762
|
+
// changes on the VM's actionQueue.
|
|
763
|
+
vbank.ModuleName,
|
|
764
|
+
// SwingSet VM needs to be last, for it to capture all the pushed actions.
|
|
693
765
|
swingset.ModuleName,
|
|
694
766
|
// And then vstorage, to produce SwingSet-induced events.
|
|
695
767
|
vstorage.ModuleName,
|
|
@@ -706,26 +778,28 @@ func NewAgoricApp(
|
|
|
706
778
|
capabilitytypes.ModuleName,
|
|
707
779
|
authtypes.ModuleName,
|
|
708
780
|
banktypes.ModuleName,
|
|
781
|
+
paramstypes.ModuleName,
|
|
709
782
|
distrtypes.ModuleName,
|
|
710
783
|
stakingtypes.ModuleName,
|
|
711
784
|
slashingtypes.ModuleName,
|
|
712
785
|
govtypes.ModuleName,
|
|
713
786
|
minttypes.ModuleName,
|
|
714
787
|
ibctransfertypes.ModuleName,
|
|
788
|
+
packetforwardtypes.ModuleName,
|
|
715
789
|
ibchost.ModuleName,
|
|
716
790
|
icatypes.ModuleName,
|
|
717
791
|
evidencetypes.ModuleName,
|
|
718
792
|
feegrant.ModuleName,
|
|
719
793
|
authz.ModuleName,
|
|
720
794
|
genutiltypes.ModuleName,
|
|
721
|
-
paramstypes.ModuleName,
|
|
722
795
|
upgradetypes.ModuleName,
|
|
723
796
|
vestingtypes.ModuleName,
|
|
797
|
+
// Agoric-specific modules go last since they may rely on other SDK modules.
|
|
724
798
|
vstorage.ModuleName,
|
|
725
799
|
vbank.ModuleName,
|
|
726
800
|
vibc.ModuleName,
|
|
801
|
+
vtransfer.ModuleName,
|
|
727
802
|
swingset.ModuleName,
|
|
728
|
-
lien.ModuleName,
|
|
729
803
|
}
|
|
730
804
|
|
|
731
805
|
app.mm.SetOrderInitGenesis(moduleOrderForGenesisAndUpgrade...)
|
|
@@ -754,7 +828,7 @@ func NewAgoricApp(
|
|
|
754
828
|
params.NewAppModule(app.ParamsKeeper),
|
|
755
829
|
evidence.NewAppModule(app.EvidenceKeeper),
|
|
756
830
|
ibc.NewAppModule(app.IBCKeeper),
|
|
757
|
-
|
|
831
|
+
ics20TransferModule,
|
|
758
832
|
)
|
|
759
833
|
|
|
760
834
|
app.sm.RegisterStoreDecoders()
|
|
@@ -788,28 +862,26 @@ func NewAgoricApp(
|
|
|
788
862
|
app.SetBeginBlocker(app.BeginBlocker)
|
|
789
863
|
app.SetEndBlocker(app.EndBlocker)
|
|
790
864
|
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
upgradeName,
|
|
798
|
-
upgrade14Handler(app, upgradeName),
|
|
799
|
-
)
|
|
800
|
-
app.UpgradeKeeper.SetUpgradeHandler(
|
|
801
|
-
upgradeNameTest,
|
|
802
|
-
upgrade14Handler(app, upgradeNameTest),
|
|
803
|
-
)
|
|
865
|
+
for name := range upgradeNamesOfThisVersion {
|
|
866
|
+
app.UpgradeKeeper.SetUpgradeHandler(
|
|
867
|
+
name,
|
|
868
|
+
upgrade16Handler(app, name),
|
|
869
|
+
)
|
|
870
|
+
}
|
|
804
871
|
|
|
805
872
|
upgradeInfo, err := app.UpgradeKeeper.ReadUpgradeInfoFromDisk()
|
|
806
873
|
if err != nil {
|
|
807
874
|
panic(err)
|
|
808
875
|
}
|
|
809
|
-
if
|
|
876
|
+
if upgradeNamesOfThisVersion[upgradeInfo.Name] && !app.UpgradeKeeper.IsSkipHeight(upgradeInfo.Height) {
|
|
810
877
|
storeUpgrades := storetypes.StoreUpgrades{
|
|
878
|
+
Added: []string{
|
|
879
|
+
packetforwardtypes.ModuleName, // Added PFM
|
|
880
|
+
vlocalchain.ModuleName, // Agoric added vlocalchain
|
|
881
|
+
vtransfer.ModuleName, // Agoric added vtransfer
|
|
882
|
+
},
|
|
811
883
|
Deleted: []string{
|
|
812
|
-
|
|
884
|
+
"lien", // Agoric removed the lien module
|
|
813
885
|
},
|
|
814
886
|
}
|
|
815
887
|
|
|
@@ -837,45 +909,6 @@ func NewAgoricApp(
|
|
|
837
909
|
return app
|
|
838
910
|
}
|
|
839
911
|
|
|
840
|
-
// upgrade14Handler performs standard upgrade actions plus custom actions for upgrade-14.
|
|
841
|
-
func upgrade14Handler(app *GaiaApp, targetUpgrade string) func(sdk.Context, upgradetypes.Plan, module.VersionMap) (module.VersionMap, error) {
|
|
842
|
-
return func(ctx sdk.Context, plan upgradetypes.Plan, fromVm module.VersionMap) (module.VersionMap, error) {
|
|
843
|
-
app.CheckControllerInited(false)
|
|
844
|
-
|
|
845
|
-
// Each CoreProposalStep runs sequentially, and can be constructed from
|
|
846
|
-
// one or more modules executing in parallel within the step.
|
|
847
|
-
CoreProposalSteps := []vm.CoreProposalStep{
|
|
848
|
-
// First, upgrade wallet factory
|
|
849
|
-
vm.CoreProposalStepForModules("@agoric/vats/scripts/build-wallet-factory2-upgrade.js"),
|
|
850
|
-
// Then, upgrade Zoe and ZCF
|
|
851
|
-
vm.CoreProposalStepForModules("@agoric/vats/scripts/replace-zoe.js"),
|
|
852
|
-
}
|
|
853
|
-
|
|
854
|
-
app.upgradeDetails = &upgradeDetails{
|
|
855
|
-
// Record the plan to send to SwingSet
|
|
856
|
-
Plan: plan,
|
|
857
|
-
// Core proposals that should run during the upgrade block
|
|
858
|
-
// These will be merged with any coreProposals specified in the
|
|
859
|
-
// upgradeInfo field of the upgrade plan ran as subsequent steps
|
|
860
|
-
CoreProposals: vm.CoreProposalsFromSteps(CoreProposalSteps...),
|
|
861
|
-
}
|
|
862
|
-
|
|
863
|
-
// Always run module migrations
|
|
864
|
-
mvm, err := app.mm.RunMigrations(ctx, app.configurator, fromVm)
|
|
865
|
-
if err != nil {
|
|
866
|
-
return mvm, err
|
|
867
|
-
}
|
|
868
|
-
|
|
869
|
-
m := swingsetkeeper.NewMigrator(app.SwingSetKeeper)
|
|
870
|
-
err = m.MigrateParams(ctx)
|
|
871
|
-
if err != nil {
|
|
872
|
-
return mvm, err
|
|
873
|
-
}
|
|
874
|
-
|
|
875
|
-
return mvm, nil
|
|
876
|
-
}
|
|
877
|
-
}
|
|
878
|
-
|
|
879
912
|
// normalizeModuleAccount ensures that the given account is a module account,
|
|
880
913
|
// initializing or updating it if necessary. The account name must be listed in maccPerms.
|
|
881
914
|
func normalizeModuleAccount(ctx sdk.Context, ak authkeeper.AccountKeeper, name string) {
|
|
@@ -905,11 +938,14 @@ type cosmosInitAction struct {
|
|
|
905
938
|
UpgradeDetails *upgradeDetails `json:"upgradeDetails,omitempty"`
|
|
906
939
|
Params swingset.Params `json:"params"`
|
|
907
940
|
SupplyCoins sdk.Coins `json:"supplyCoins"`
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
941
|
+
// CAVEAT: Every property ending in "Port" is saved in chain-main.js/portNums
|
|
942
|
+
// with a key consisting of this name with the "Port" stripped.
|
|
943
|
+
StoragePort int `json:"storagePort"`
|
|
944
|
+
SwingsetPort int `json:"swingsetPort"`
|
|
945
|
+
VbankPort int `json:"vbankPort"`
|
|
946
|
+
VibcPort int `json:"vibcPort"`
|
|
947
|
+
VlocalchainPort int `json:"vlocalchainPort"`
|
|
948
|
+
VtransferPort int `json:"vtransferPort"`
|
|
913
949
|
}
|
|
914
950
|
|
|
915
951
|
// Name returns the name of the App
|
|
@@ -939,11 +975,13 @@ func (app *GaiaApp) initController(ctx sdk.Context, bootstrap bool) {
|
|
|
939
975
|
Params: app.SwingSetKeeper.GetParams(ctx),
|
|
940
976
|
SupplyCoins: sdk.NewCoins(app.BankKeeper.GetSupply(ctx, "uist")),
|
|
941
977
|
UpgradeDetails: app.upgradeDetails,
|
|
942
|
-
|
|
943
|
-
StoragePort:
|
|
944
|
-
SwingsetPort:
|
|
945
|
-
VbankPort:
|
|
946
|
-
VibcPort:
|
|
978
|
+
// See CAVEAT in cosmosInitAction.
|
|
979
|
+
StoragePort: app.vstoragePort,
|
|
980
|
+
SwingsetPort: app.swingsetPort,
|
|
981
|
+
VbankPort: app.vbankPort,
|
|
982
|
+
VibcPort: app.vibcPort,
|
|
983
|
+
VlocalchainPort: app.vlocalchainPort,
|
|
984
|
+
VtransferPort: app.vtransferPort,
|
|
947
985
|
}
|
|
948
986
|
// This uses `BlockingSend` as a friendly wrapper for `sendToController`
|
|
949
987
|
//
|
|
@@ -955,12 +993,12 @@ func (app *GaiaApp) initController(ctx sdk.Context, bootstrap bool) {
|
|
|
955
993
|
// fmt.Fprintf(os.Stderr, "AG_COSMOS_INIT Returned from SwingSet: %s, %v\n", out, err)
|
|
956
994
|
|
|
957
995
|
if err != nil {
|
|
958
|
-
panic(
|
|
996
|
+
panic(sdkioerrors.Wrap(err, "cannot initialize Controller"))
|
|
959
997
|
}
|
|
960
998
|
var res bool
|
|
961
999
|
err = json.Unmarshal([]byte(out), &res)
|
|
962
1000
|
if err != nil {
|
|
963
|
-
panic(
|
|
1001
|
+
panic(sdkioerrors.Wrapf(err, "cannot unmarshal Controller init response: %s", out))
|
|
964
1002
|
}
|
|
965
1003
|
if !res {
|
|
966
1004
|
panic(fmt.Errorf("controller negative init response"))
|
|
@@ -1208,6 +1246,7 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino
|
|
|
1208
1246
|
paramsKeeper.Subspace(slashingtypes.ModuleName)
|
|
1209
1247
|
paramsKeeper.Subspace(govtypes.ModuleName).WithKeyTable(govtypesv1.ParamKeyTable())
|
|
1210
1248
|
paramsKeeper.Subspace(ibctransfertypes.ModuleName)
|
|
1249
|
+
paramsKeeper.Subspace(packetforwardtypes.ModuleName).WithKeyTable(packetforwardtypes.ParamKeyTable())
|
|
1211
1250
|
paramsKeeper.Subspace(ibchost.ModuleName)
|
|
1212
1251
|
paramsKeeper.Subspace(icahosttypes.SubModuleName)
|
|
1213
1252
|
paramsKeeper.Subspace(swingset.ModuleName)
|
|
@@ -1215,3 +1254,36 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino
|
|
|
1215
1254
|
|
|
1216
1255
|
return paramsKeeper
|
|
1217
1256
|
}
|
|
1257
|
+
|
|
1258
|
+
// TestingApp functions
|
|
1259
|
+
|
|
1260
|
+
// GetBaseApp implements the TestingApp interface.
|
|
1261
|
+
func (app *GaiaApp) GetBaseApp() *baseapp.BaseApp {
|
|
1262
|
+
return app.BaseApp
|
|
1263
|
+
}
|
|
1264
|
+
|
|
1265
|
+
// GetStakingKeeper implements the TestingApp interface.
|
|
1266
|
+
func (app *GaiaApp) GetStakingKeeper() testtypes.StakingKeeper {
|
|
1267
|
+
return app.StakingKeeper
|
|
1268
|
+
}
|
|
1269
|
+
|
|
1270
|
+
// GetIBCKeeper implements the TestingApp interface.
|
|
1271
|
+
func (app *GaiaApp) GetIBCKeeper() *ibckeeper.Keeper {
|
|
1272
|
+
return app.IBCKeeper
|
|
1273
|
+
}
|
|
1274
|
+
|
|
1275
|
+
// GetScopedIBCKeeper implements the TestingApp interface.
|
|
1276
|
+
func (app *GaiaApp) GetScopedIBCKeeper() capabilitykeeper.ScopedKeeper {
|
|
1277
|
+
return app.ScopedIBCKeeper
|
|
1278
|
+
}
|
|
1279
|
+
|
|
1280
|
+
// GetTxConfig implements the TestingApp interface.
|
|
1281
|
+
func (app *GaiaApp) GetTxConfig() client.TxConfig {
|
|
1282
|
+
return MakeEncodingConfig().TxConfig
|
|
1283
|
+
}
|
|
1284
|
+
|
|
1285
|
+
// For testing purposes
|
|
1286
|
+
func (app *GaiaApp) SetSwingStoreExportDir(dir string) {
|
|
1287
|
+
module := app.mm.Modules[swingset.ModuleName].(swingset.AppModule)
|
|
1288
|
+
module.SetSwingStoreExportDir(dir)
|
|
1289
|
+
}
|