@agoric/cosmos 0.35.0-u14.1 → 0.35.0-u16.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 -134
- package/MAINTAINERS.md +3 -0
- package/Makefile +36 -26
- package/ante/ante.go +6 -5
- package/ante/inbound_test.go +3 -2
- package/ante/vm_admission.go +2 -1
- package/app/app.go +206 -150
- 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 +164 -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 +8 -4
- 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 +16 -5
- 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/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/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)
|
|
619
|
+
|
|
620
|
+
// Add an IBC route for vIBC.
|
|
621
|
+
ibcRouter.AddRoute(vibc.ModuleName, vibcIBCModule)
|
|
578
622
|
|
|
579
|
-
//
|
|
580
|
-
//
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
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)
|
|
585
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()
|
|
@@ -791,7 +865,7 @@ func NewAgoricApp(
|
|
|
791
865
|
for name := range upgradeNamesOfThisVersion {
|
|
792
866
|
app.UpgradeKeeper.SetUpgradeHandler(
|
|
793
867
|
name,
|
|
794
|
-
|
|
868
|
+
upgrade16Handler(app, name),
|
|
795
869
|
)
|
|
796
870
|
}
|
|
797
871
|
|
|
@@ -801,8 +875,13 @@ func NewAgoricApp(
|
|
|
801
875
|
}
|
|
802
876
|
if upgradeNamesOfThisVersion[upgradeInfo.Name] && !app.UpgradeKeeper.IsSkipHeight(upgradeInfo.Height) {
|
|
803
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
|
+
},
|
|
804
883
|
Deleted: []string{
|
|
805
|
-
|
|
884
|
+
"lien", // Agoric removed the lien module
|
|
806
885
|
},
|
|
807
886
|
}
|
|
808
887
|
|
|
@@ -830,68 +909,6 @@ func NewAgoricApp(
|
|
|
830
909
|
return app
|
|
831
910
|
}
|
|
832
911
|
|
|
833
|
-
var upgradeNamesOfThisVersion = map[string]bool{
|
|
834
|
-
"agoric-upgrade-14": true,
|
|
835
|
-
"agorictest-upgrade-14": true,
|
|
836
|
-
"agorictest-upgrade-14-2": true,
|
|
837
|
-
}
|
|
838
|
-
|
|
839
|
-
func isFirstTimeUpgradeOfThisVersion(app *GaiaApp, ctx sdk.Context) bool {
|
|
840
|
-
for name := range upgradeNamesOfThisVersion {
|
|
841
|
-
if app.UpgradeKeeper.GetDoneHeight(ctx, name) != 0 {
|
|
842
|
-
return false
|
|
843
|
-
}
|
|
844
|
-
}
|
|
845
|
-
return true
|
|
846
|
-
}
|
|
847
|
-
|
|
848
|
-
// upgrade14Handler performs standard upgrade actions plus custom actions for upgrade-14.
|
|
849
|
-
func upgrade14Handler(app *GaiaApp, targetUpgrade string) func(sdk.Context, upgradetypes.Plan, module.VersionMap) (module.VersionMap, error) {
|
|
850
|
-
return func(ctx sdk.Context, plan upgradetypes.Plan, fromVm module.VersionMap) (module.VersionMap, error) {
|
|
851
|
-
app.CheckControllerInited(false)
|
|
852
|
-
|
|
853
|
-
CoreProposalSteps := []vm.CoreProposalStep{}
|
|
854
|
-
|
|
855
|
-
// These CoreProposalSteps are not idempotent and should only be executed
|
|
856
|
-
// as part of the first upgrade-14 on any given chain.
|
|
857
|
-
if isFirstTimeUpgradeOfThisVersion(app, ctx) {
|
|
858
|
-
// Each CoreProposalStep runs sequentially, and can be constructed from
|
|
859
|
-
// one or more modules executing in parallel within the step.
|
|
860
|
-
CoreProposalSteps = []vm.CoreProposalStep{
|
|
861
|
-
// First, upgrade wallet factory
|
|
862
|
-
vm.CoreProposalStepForModules("@agoric/vats/scripts/build-wallet-factory2-upgrade.js"),
|
|
863
|
-
// Then, upgrade Zoe and ZCF
|
|
864
|
-
vm.CoreProposalStepForModules("@agoric/vats/scripts/replace-zoe.js"),
|
|
865
|
-
// Next revive KREAd characters
|
|
866
|
-
vm.CoreProposalStepForModules("@agoric/vats/scripts/revive-kread.js"),
|
|
867
|
-
}
|
|
868
|
-
}
|
|
869
|
-
|
|
870
|
-
app.upgradeDetails = &upgradeDetails{
|
|
871
|
-
// Record the plan to send to SwingSet
|
|
872
|
-
Plan: plan,
|
|
873
|
-
// Core proposals that should run during the upgrade block
|
|
874
|
-
// These will be merged with any coreProposals specified in the
|
|
875
|
-
// upgradeInfo field of the upgrade plan ran as subsequent steps
|
|
876
|
-
CoreProposals: vm.CoreProposalsFromSteps(CoreProposalSteps...),
|
|
877
|
-
}
|
|
878
|
-
|
|
879
|
-
// Always run module migrations
|
|
880
|
-
mvm, err := app.mm.RunMigrations(ctx, app.configurator, fromVm)
|
|
881
|
-
if err != nil {
|
|
882
|
-
return mvm, err
|
|
883
|
-
}
|
|
884
|
-
|
|
885
|
-
m := swingsetkeeper.NewMigrator(app.SwingSetKeeper)
|
|
886
|
-
err = m.MigrateParams(ctx)
|
|
887
|
-
if err != nil {
|
|
888
|
-
return mvm, err
|
|
889
|
-
}
|
|
890
|
-
|
|
891
|
-
return mvm, nil
|
|
892
|
-
}
|
|
893
|
-
}
|
|
894
|
-
|
|
895
912
|
// normalizeModuleAccount ensures that the given account is a module account,
|
|
896
913
|
// initializing or updating it if necessary. The account name must be listed in maccPerms.
|
|
897
914
|
func normalizeModuleAccount(ctx sdk.Context, ak authkeeper.AccountKeeper, name string) {
|
|
@@ -921,11 +938,14 @@ type cosmosInitAction struct {
|
|
|
921
938
|
UpgradeDetails *upgradeDetails `json:"upgradeDetails,omitempty"`
|
|
922
939
|
Params swingset.Params `json:"params"`
|
|
923
940
|
SupplyCoins sdk.Coins `json:"supplyCoins"`
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
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"`
|
|
929
949
|
}
|
|
930
950
|
|
|
931
951
|
// Name returns the name of the App
|
|
@@ -955,11 +975,13 @@ func (app *GaiaApp) initController(ctx sdk.Context, bootstrap bool) {
|
|
|
955
975
|
Params: app.SwingSetKeeper.GetParams(ctx),
|
|
956
976
|
SupplyCoins: sdk.NewCoins(app.BankKeeper.GetSupply(ctx, "uist")),
|
|
957
977
|
UpgradeDetails: app.upgradeDetails,
|
|
958
|
-
|
|
959
|
-
StoragePort:
|
|
960
|
-
SwingsetPort:
|
|
961
|
-
VbankPort:
|
|
962
|
-
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,
|
|
963
985
|
}
|
|
964
986
|
// This uses `BlockingSend` as a friendly wrapper for `sendToController`
|
|
965
987
|
//
|
|
@@ -971,12 +993,12 @@ func (app *GaiaApp) initController(ctx sdk.Context, bootstrap bool) {
|
|
|
971
993
|
// fmt.Fprintf(os.Stderr, "AG_COSMOS_INIT Returned from SwingSet: %s, %v\n", out, err)
|
|
972
994
|
|
|
973
995
|
if err != nil {
|
|
974
|
-
panic(
|
|
996
|
+
panic(sdkioerrors.Wrap(err, "cannot initialize Controller"))
|
|
975
997
|
}
|
|
976
998
|
var res bool
|
|
977
999
|
err = json.Unmarshal([]byte(out), &res)
|
|
978
1000
|
if err != nil {
|
|
979
|
-
panic(
|
|
1001
|
+
panic(sdkioerrors.Wrapf(err, "cannot unmarshal Controller init response: %s", out))
|
|
980
1002
|
}
|
|
981
1003
|
if !res {
|
|
982
1004
|
panic(fmt.Errorf("controller negative init response"))
|
|
@@ -1224,6 +1246,7 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino
|
|
|
1224
1246
|
paramsKeeper.Subspace(slashingtypes.ModuleName)
|
|
1225
1247
|
paramsKeeper.Subspace(govtypes.ModuleName).WithKeyTable(govtypesv1.ParamKeyTable())
|
|
1226
1248
|
paramsKeeper.Subspace(ibctransfertypes.ModuleName)
|
|
1249
|
+
paramsKeeper.Subspace(packetforwardtypes.ModuleName).WithKeyTable(packetforwardtypes.ParamKeyTable())
|
|
1227
1250
|
paramsKeeper.Subspace(ibchost.ModuleName)
|
|
1228
1251
|
paramsKeeper.Subspace(icahosttypes.SubModuleName)
|
|
1229
1252
|
paramsKeeper.Subspace(swingset.ModuleName)
|
|
@@ -1231,3 +1254,36 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino
|
|
|
1231
1254
|
|
|
1232
1255
|
return paramsKeeper
|
|
1233
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
|
+
}
|