@agoric/cosmos 0.35.0-upgrade-14-dev-0169c7e.0 → 0.35.0-upgrade-16-dev-07b0130.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 +49 -26
- package/ante/ante.go +11 -11
- package/ante/inbound_test.go +3 -2
- package/ante/vm_admission.go +2 -1
- package/app/app.go +260 -175
- package/app/export.go +13 -6
- package/app/upgrade.go +76 -0
- package/cmd/agd/agvm.go +42 -0
- package/cmd/agd/main.go +132 -11
- package/cmd/libdaemon/main.go +67 -53
- package/cmd/libdaemon/main_test.go +2 -1
- package/daemon/cmd/genaccounts.go +13 -9
- package/daemon/cmd/root.go +186 -73
- package/daemon/cmd/root_test.go +190 -2
- package/daemon/cmd/testnet.go +17 -6
- package/daemon/main.go +6 -3
- 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 +110 -68
- package/go.sum +601 -248
- 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/vstorage/query.proto +53 -1
- package/proto/agoric/vtransfer/genesis.proto +18 -0
- package/scripts/protocgen.sh +16 -6
- package/third_party/proto/buf.yaml +1 -0
- package/third_party/proto/cosmos/base/query/v1beta1/pagination.proto +4 -1
- package/third_party/proto/cosmos/base/v1beta1/coin.proto +7 -4
- package/third_party/proto/cosmos/upgrade/v1beta1/upgrade.proto +16 -6
- package/third_party/proto/cosmos_proto/cosmos.proto +97 -0
- package/third_party/proto/google/api/annotations.proto +1 -1
- package/third_party/proto/google/api/http.proto +181 -120
- package/third_party/proto/google/api/httpbody.proto +9 -6
- package/third_party/proto/google/protobuf/any.proto +1 -7
- package/third_party/proto/ibc/core/channel/v1/channel.proto +15 -1
- package/third_party/proto/ibc/core/client/v1/client.proto +9 -6
- package/types/kv_entry_helpers.go +42 -0
- package/upgradegaia.sh +21 -12
- package/vm/action.go +28 -24
- package/vm/action_test.go +36 -16
- package/vm/client.go +113 -0
- package/vm/client_test.go +182 -0
- package/vm/controller.go +18 -42
- 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/query.go +2 -2
- package/x/swingset/client/cli/tx.go +52 -33
- package/x/swingset/client/proposal_handler.go +2 -17
- 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 +21 -36
- package/x/swingset/keeper/keeper_test.go +1 -1
- package/x/swingset/keeper/msg_server.go +20 -22
- package/x/swingset/keeper/proposal.go +13 -3
- package/x/swingset/keeper/querier.go +23 -14
- 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 +5 -4
- package/x/swingset/swingset.go +4 -2
- package/x/swingset/testing/queue.go +17 -0
- package/x/swingset/types/codec.go +2 -2
- 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/msgs.pb.go +16 -16
- package/x/swingset/types/params.go +2 -1
- package/x/swingset/types/proposal.go +10 -9
- package/x/swingset/types/swingset.pb.go +1 -1
- package/x/swingset/types/types.go +30 -28
- package/x/vbank/genesis.go +0 -2
- package/x/vbank/handler.go +2 -1
- package/x/vbank/keeper/keeper.go +3 -2
- package/x/vbank/keeper/querier.go +9 -4
- package/x/vbank/keeper/rewards.go +1 -1
- package/x/vbank/module.go +0 -5
- package/x/vbank/types/msgs.go +0 -12
- package/x/vbank/vbank.go +20 -19
- package/x/vbank/vbank_test.go +10 -10
- package/x/vibc/alias.go +3 -0
- package/x/vibc/handler.go +16 -9
- package/x/vibc/keeper/keeper.go +112 -74
- package/x/vibc/keeper/triggers.go +101 -0
- package/x/vibc/module.go +5 -8
- package/x/vibc/types/expected_keepers.go +26 -5
- package/x/vibc/types/ibc_module.go +336 -0
- package/x/vibc/types/msgs.go +1 -1
- package/x/vibc/types/msgs.pb.go +1 -1
- 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/README.md +138 -0
- package/x/vstorage/capdata/capdata.go +298 -0
- package/x/vstorage/capdata/capdata_test.go +352 -0
- package/x/vstorage/client/cli/query.go +51 -4
- package/x/vstorage/handler.go +2 -1
- package/x/vstorage/keeper/grpc_query.go +220 -0
- package/x/vstorage/keeper/keeper.go +16 -22
- package/x/vstorage/keeper/keeper_grpc_test.go +300 -0
- package/x/vstorage/keeper/keeper_test.go +1 -1
- package/x/vstorage/keeper/querier.go +11 -6
- 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/vstorage/types/query.pb.go +646 -36
- package/x/vstorage/types/query.pb.gw.go +119 -0
- package/x/vstorage/vstorage.go +16 -15
- package/x/vstorage/vstorage_test.go +5 -5
- 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 -254
- package/x/lien/keeper/keeper_test.go +0 -623
- package/x/lien/lien.go +0 -203
- package/x/lien/lien_test.go +0 -529
- 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 -393
- /package/{src/index.cjs → index.cjs} +0 -0
package/app/app.go
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
package gaia
|
|
2
2
|
|
|
3
3
|
import (
|
|
4
|
+
"context"
|
|
4
5
|
"encoding/json"
|
|
5
6
|
"fmt"
|
|
6
7
|
"io"
|
|
@@ -11,10 +12,11 @@ import (
|
|
|
11
12
|
"runtime/debug"
|
|
12
13
|
"time"
|
|
13
14
|
|
|
15
|
+
sdkioerrors "cosmossdk.io/errors"
|
|
14
16
|
"github.com/cosmos/cosmos-sdk/baseapp"
|
|
15
17
|
"github.com/cosmos/cosmos-sdk/client"
|
|
18
|
+
nodeservice "github.com/cosmos/cosmos-sdk/client/grpc/node"
|
|
16
19
|
"github.com/cosmos/cosmos-sdk/client/grpc/tmservice"
|
|
17
|
-
"github.com/cosmos/cosmos-sdk/client/rpc"
|
|
18
20
|
"github.com/cosmos/cosmos-sdk/codec"
|
|
19
21
|
"github.com/cosmos/cosmos-sdk/codec/types"
|
|
20
22
|
"github.com/cosmos/cosmos-sdk/server/api"
|
|
@@ -23,12 +25,10 @@ import (
|
|
|
23
25
|
"github.com/cosmos/cosmos-sdk/simapp"
|
|
24
26
|
storetypes "github.com/cosmos/cosmos-sdk/store/types"
|
|
25
27
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
26
|
-
"github.com/cosmos/cosmos-sdk/types/errors"
|
|
27
28
|
"github.com/cosmos/cosmos-sdk/types/module"
|
|
28
29
|
"github.com/cosmos/cosmos-sdk/version"
|
|
29
30
|
"github.com/cosmos/cosmos-sdk/x/auth"
|
|
30
31
|
"github.com/cosmos/cosmos-sdk/x/auth/ante"
|
|
31
|
-
authrest "github.com/cosmos/cosmos-sdk/x/auth/client/rest"
|
|
32
32
|
authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper"
|
|
33
33
|
authsims "github.com/cosmos/cosmos-sdk/x/auth/simulation"
|
|
34
34
|
authtx "github.com/cosmos/cosmos-sdk/x/auth/tx"
|
|
@@ -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"
|
|
@@ -58,8 +57,11 @@ import (
|
|
|
58
57
|
"github.com/cosmos/cosmos-sdk/x/genutil"
|
|
59
58
|
genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types"
|
|
60
59
|
"github.com/cosmos/cosmos-sdk/x/gov"
|
|
60
|
+
govclient "github.com/cosmos/cosmos-sdk/x/gov/client"
|
|
61
61
|
govkeeper "github.com/cosmos/cosmos-sdk/x/gov/keeper"
|
|
62
62
|
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types"
|
|
63
|
+
govtypesv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1"
|
|
64
|
+
govv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"
|
|
63
65
|
"github.com/cosmos/cosmos-sdk/x/mint"
|
|
64
66
|
mintkeeper "github.com/cosmos/cosmos-sdk/x/mint/keeper"
|
|
65
67
|
minttypes "github.com/cosmos/cosmos-sdk/x/mint/types"
|
|
@@ -78,22 +80,22 @@ import (
|
|
|
78
80
|
upgradeclient "github.com/cosmos/cosmos-sdk/x/upgrade/client"
|
|
79
81
|
upgradekeeper "github.com/cosmos/cosmos-sdk/x/upgrade/keeper"
|
|
80
82
|
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
|
|
81
|
-
ica "github.com/cosmos/ibc-go/
|
|
82
|
-
|
|
83
|
-
icahost "github.com/cosmos/ibc-go/
|
|
84
|
-
icahostkeeper "github.com/cosmos/ibc-go/
|
|
85
|
-
icahosttypes "github.com/cosmos/ibc-go/
|
|
86
|
-
icatypes "github.com/cosmos/ibc-go/
|
|
87
|
-
"github.com/cosmos/ibc-go/
|
|
88
|
-
ibctransferkeeper "github.com/cosmos/ibc-go/
|
|
89
|
-
ibctransfertypes "github.com/cosmos/ibc-go/
|
|
90
|
-
ibc "github.com/cosmos/ibc-go/
|
|
91
|
-
ibcclient "github.com/cosmos/ibc-go/
|
|
92
|
-
ibcclientclient "github.com/cosmos/ibc-go/
|
|
93
|
-
ibcclienttypes "github.com/cosmos/ibc-go/
|
|
94
|
-
|
|
95
|
-
ibchost "github.com/cosmos/ibc-go/
|
|
96
|
-
ibckeeper "github.com/cosmos/ibc-go/
|
|
83
|
+
ica "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts"
|
|
84
|
+
|
|
85
|
+
icahost "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/host"
|
|
86
|
+
icahostkeeper "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/host/keeper"
|
|
87
|
+
icahosttypes "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/host/types"
|
|
88
|
+
icatypes "github.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/types"
|
|
89
|
+
ibctransfer "github.com/cosmos/ibc-go/v6/modules/apps/transfer"
|
|
90
|
+
ibctransferkeeper "github.com/cosmos/ibc-go/v6/modules/apps/transfer/keeper"
|
|
91
|
+
ibctransfertypes "github.com/cosmos/ibc-go/v6/modules/apps/transfer/types"
|
|
92
|
+
ibc "github.com/cosmos/ibc-go/v6/modules/core"
|
|
93
|
+
ibcclient "github.com/cosmos/ibc-go/v6/modules/core/02-client"
|
|
94
|
+
ibcclientclient "github.com/cosmos/ibc-go/v6/modules/core/02-client/client"
|
|
95
|
+
ibcclienttypes "github.com/cosmos/ibc-go/v6/modules/core/02-client/types"
|
|
96
|
+
ibcporttypes "github.com/cosmos/ibc-go/v6/modules/core/05-port/types"
|
|
97
|
+
ibchost "github.com/cosmos/ibc-go/v6/modules/core/24-host"
|
|
98
|
+
ibckeeper "github.com/cosmos/ibc-go/v6/modules/core/keeper"
|
|
97
99
|
"github.com/gorilla/mux"
|
|
98
100
|
"github.com/rakyll/statik/fs"
|
|
99
101
|
"github.com/spf13/cast"
|
|
@@ -108,8 +110,9 @@ import (
|
|
|
108
110
|
|
|
109
111
|
appante "github.com/Agoric/agoric-sdk/golang/cosmos/ante"
|
|
110
112
|
agorictypes "github.com/Agoric/agoric-sdk/golang/cosmos/types"
|
|
113
|
+
|
|
114
|
+
// conv "github.com/Agoric/agoric-sdk/golang/cosmos/types/conv"
|
|
111
115
|
"github.com/Agoric/agoric-sdk/golang/cosmos/vm"
|
|
112
|
-
"github.com/Agoric/agoric-sdk/golang/cosmos/x/lien"
|
|
113
116
|
"github.com/Agoric/agoric-sdk/golang/cosmos/x/swingset"
|
|
114
117
|
swingsetclient "github.com/Agoric/agoric-sdk/golang/cosmos/x/swingset/client"
|
|
115
118
|
swingsetkeeper "github.com/Agoric/agoric-sdk/golang/cosmos/x/swingset/keeper"
|
|
@@ -117,7 +120,16 @@ import (
|
|
|
117
120
|
"github.com/Agoric/agoric-sdk/golang/cosmos/x/vbank"
|
|
118
121
|
vbanktypes "github.com/Agoric/agoric-sdk/golang/cosmos/x/vbank/types"
|
|
119
122
|
"github.com/Agoric/agoric-sdk/golang/cosmos/x/vibc"
|
|
123
|
+
"github.com/Agoric/agoric-sdk/golang/cosmos/x/vlocalchain"
|
|
120
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"
|
|
121
133
|
|
|
122
134
|
// unnamed import of statik for swagger UI support
|
|
123
135
|
_ "github.com/cosmos/cosmos-sdk/client/docs/statik"
|
|
@@ -148,15 +160,15 @@ var (
|
|
|
148
160
|
staking.AppModuleBasic{},
|
|
149
161
|
mint.AppModuleBasic{},
|
|
150
162
|
distr.AppModuleBasic{},
|
|
151
|
-
gov.NewAppModuleBasic(
|
|
163
|
+
gov.NewAppModuleBasic([]govclient.ProposalHandler{
|
|
152
164
|
paramsclient.ProposalHandler,
|
|
153
165
|
distrclient.ProposalHandler,
|
|
154
|
-
upgradeclient.
|
|
155
|
-
upgradeclient.
|
|
166
|
+
upgradeclient.LegacyProposalHandler,
|
|
167
|
+
upgradeclient.LegacyCancelProposalHandler,
|
|
156
168
|
ibcclientclient.UpdateClientProposalHandler,
|
|
157
169
|
ibcclientclient.UpgradeProposalHandler,
|
|
158
170
|
swingsetclient.CoreEvalProposalHandler,
|
|
159
|
-
),
|
|
171
|
+
}),
|
|
160
172
|
params.AppModuleBasic{},
|
|
161
173
|
slashing.AppModuleBasic{},
|
|
162
174
|
feegrantmodule.AppModuleBasic{},
|
|
@@ -164,14 +176,15 @@ var (
|
|
|
164
176
|
ibc.AppModuleBasic{},
|
|
165
177
|
upgrade.AppModuleBasic{},
|
|
166
178
|
evidence.AppModuleBasic{},
|
|
167
|
-
|
|
179
|
+
ibctransfer.AppModuleBasic{},
|
|
168
180
|
vesting.AppModuleBasic{},
|
|
169
181
|
ica.AppModuleBasic{},
|
|
182
|
+
packetforward.AppModuleBasic{},
|
|
170
183
|
swingset.AppModuleBasic{},
|
|
171
184
|
vstorage.AppModuleBasic{},
|
|
172
185
|
vibc.AppModuleBasic{},
|
|
173
186
|
vbank.AppModuleBasic{},
|
|
174
|
-
|
|
187
|
+
vtransfer.AppModuleBasic{},
|
|
175
188
|
)
|
|
176
189
|
|
|
177
190
|
// module account permissions
|
|
@@ -207,20 +220,24 @@ type GaiaApp struct { // nolint: golint
|
|
|
207
220
|
|
|
208
221
|
controllerInited bool
|
|
209
222
|
bootstrapNeeded bool
|
|
210
|
-
lienPort int
|
|
211
223
|
swingsetPort int
|
|
212
224
|
vbankPort int
|
|
213
225
|
vibcPort int
|
|
214
226
|
vstoragePort int
|
|
227
|
+
vlocalchainPort int
|
|
228
|
+
vtransferPort int
|
|
215
229
|
|
|
216
230
|
upgradeDetails *upgradeDetails
|
|
217
231
|
|
|
218
232
|
invCheckPeriod uint
|
|
219
233
|
|
|
220
234
|
// keys to access the substores
|
|
221
|
-
keys map[string]*
|
|
222
|
-
tkeys map[string]*
|
|
223
|
-
memKeys map[string]*
|
|
235
|
+
keys map[string]*storetypes.KVStoreKey
|
|
236
|
+
tkeys map[string]*storetypes.TransientStoreKey
|
|
237
|
+
memKeys map[string]*storetypes.MemoryStoreKey
|
|
238
|
+
|
|
239
|
+
// manage communication from the VM to the ABCI app
|
|
240
|
+
AgdServer *vm.AgdServer
|
|
224
241
|
|
|
225
242
|
// keepers
|
|
226
243
|
AccountKeeper authkeeper.AccountKeeper
|
|
@@ -234,12 +251,13 @@ type GaiaApp struct { // nolint: golint
|
|
|
234
251
|
UpgradeKeeper upgradekeeper.Keeper
|
|
235
252
|
ParamsKeeper paramskeeper.Keeper
|
|
236
253
|
// IBC Keeper must be a pointer in the app, so we can SetRouter on it correctly
|
|
237
|
-
IBCKeeper
|
|
238
|
-
ICAHostKeeper
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
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
|
|
243
261
|
|
|
244
262
|
SwingStoreExportsHandler swingset.SwingStoreExportsHandler
|
|
245
263
|
SwingSetSnapshotter swingset.ExtensionSnapshotter
|
|
@@ -247,7 +265,8 @@ type GaiaApp struct { // nolint: golint
|
|
|
247
265
|
VstorageKeeper vstorage.Keeper
|
|
248
266
|
VibcKeeper vibc.Keeper
|
|
249
267
|
VbankKeeper vbank.Keeper
|
|
250
|
-
|
|
268
|
+
VlocalchainKeeper vlocalchain.Keeper
|
|
269
|
+
VtransferKeeper vtransferkeeper.Keeper
|
|
251
270
|
|
|
252
271
|
// make scoped keepers public for test purposes
|
|
253
272
|
ScopedIBCKeeper capabilitykeeper.ScopedKeeper
|
|
@@ -284,19 +303,18 @@ func NewGaiaApp(
|
|
|
284
303
|
appOpts servertypes.AppOptions,
|
|
285
304
|
baseAppOptions ...func(*baseapp.BaseApp),
|
|
286
305
|
) *GaiaApp {
|
|
287
|
-
defaultController
|
|
288
|
-
fmt.
|
|
289
|
-
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)
|
|
290
308
|
}
|
|
291
309
|
return NewAgoricApp(
|
|
292
|
-
defaultController,
|
|
310
|
+
defaultController, vm.NewAgdServer(),
|
|
293
311
|
logger, db, traceStore, loadLatest, skipUpgradeHeights,
|
|
294
312
|
homePath, invCheckPeriod, encodingConfig, appOpts, baseAppOptions...,
|
|
295
313
|
)
|
|
296
314
|
}
|
|
297
315
|
|
|
298
316
|
func NewAgoricApp(
|
|
299
|
-
sendToController
|
|
317
|
+
sendToController vm.Sender, agdServer *vm.AgdServer,
|
|
300
318
|
logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest bool, skipUpgradeHeights map[int64]bool,
|
|
301
319
|
homePath string, invCheckPeriod uint, encodingConfig gaiaappparams.EncodingConfig, appOpts servertypes.AppOptions, baseAppOptions ...func(*baseapp.BaseApp),
|
|
302
320
|
) *GaiaApp {
|
|
@@ -313,15 +331,17 @@ func NewAgoricApp(
|
|
|
313
331
|
authtypes.StoreKey, banktypes.StoreKey, stakingtypes.StoreKey,
|
|
314
332
|
minttypes.StoreKey, distrtypes.StoreKey, slashingtypes.StoreKey,
|
|
315
333
|
govtypes.StoreKey, paramstypes.StoreKey, ibchost.StoreKey, upgradetypes.StoreKey,
|
|
316
|
-
evidencetypes.StoreKey, ibctransfertypes.StoreKey,
|
|
334
|
+
evidencetypes.StoreKey, ibctransfertypes.StoreKey, packetforwardtypes.StoreKey,
|
|
317
335
|
capabilitytypes.StoreKey, feegrant.StoreKey, authzkeeper.StoreKey, icahosttypes.StoreKey,
|
|
318
|
-
swingset.StoreKey, vstorage.StoreKey, vibc.StoreKey,
|
|
336
|
+
swingset.StoreKey, vstorage.StoreKey, vibc.StoreKey,
|
|
337
|
+
vlocalchain.StoreKey, vtransfer.StoreKey, vbank.StoreKey,
|
|
319
338
|
)
|
|
320
339
|
tkeys := sdk.NewTransientStoreKeys(paramstypes.TStoreKey)
|
|
321
340
|
memKeys := sdk.NewMemoryStoreKeys(capabilitytypes.MemStoreKey)
|
|
322
341
|
|
|
323
342
|
app := &GaiaApp{
|
|
324
343
|
BaseApp: bApp,
|
|
344
|
+
AgdServer: agdServer,
|
|
325
345
|
legacyAmino: legacyAmino,
|
|
326
346
|
appCodec: appCodec,
|
|
327
347
|
interfaceRegistry: interfaceRegistry,
|
|
@@ -340,7 +360,7 @@ func NewAgoricApp(
|
|
|
340
360
|
|
|
341
361
|
// set the BaseApp's parameter store
|
|
342
362
|
bApp.SetParamStore(
|
|
343
|
-
app.ParamsKeeper.Subspace(baseapp.Paramspace).WithKeyTable(
|
|
363
|
+
app.ParamsKeeper.Subspace(baseapp.Paramspace).WithKeyTable(paramstypes.ConsensusParamsKeyTable()),
|
|
344
364
|
)
|
|
345
365
|
|
|
346
366
|
// add capability keeper and ScopeToModule for ibc module
|
|
@@ -352,15 +372,15 @@ func NewAgoricApp(
|
|
|
352
372
|
app.CapabilityKeeper.Seal()
|
|
353
373
|
|
|
354
374
|
// add keepers
|
|
355
|
-
|
|
375
|
+
app.AccountKeeper = authkeeper.NewAccountKeeper(
|
|
356
376
|
appCodec,
|
|
357
377
|
keys[authtypes.StoreKey],
|
|
358
378
|
app.GetSubspace(authtypes.ModuleName),
|
|
359
379
|
authtypes.ProtoBaseAccount,
|
|
360
380
|
maccPerms,
|
|
381
|
+
appName,
|
|
361
382
|
)
|
|
362
|
-
|
|
363
|
-
app.AccountKeeper = wrappedAccountKeeper
|
|
383
|
+
|
|
364
384
|
app.BankKeeper = bankkeeper.NewBaseKeeper(
|
|
365
385
|
appCodec,
|
|
366
386
|
keys[banktypes.StoreKey],
|
|
@@ -372,6 +392,7 @@ func NewAgoricApp(
|
|
|
372
392
|
keys[authzkeeper.StoreKey],
|
|
373
393
|
appCodec,
|
|
374
394
|
app.BaseApp.MsgServiceRouter(),
|
|
395
|
+
app.AccountKeeper,
|
|
375
396
|
)
|
|
376
397
|
app.FeeGrantKeeper = feegrantkeeper.NewKeeper(
|
|
377
398
|
appCodec,
|
|
@@ -403,7 +424,6 @@ func NewAgoricApp(
|
|
|
403
424
|
&stakingKeeper,
|
|
404
425
|
// This is the pool to distribute from immediately. DO NOT ALTER.
|
|
405
426
|
vbanktypes.GiveawayPoolName,
|
|
406
|
-
app.ModuleAccountAddrs(),
|
|
407
427
|
)
|
|
408
428
|
app.SlashingKeeper = slashingkeeper.NewKeeper(
|
|
409
429
|
appCodec,
|
|
@@ -417,6 +437,7 @@ func NewAgoricApp(
|
|
|
417
437
|
appCodec,
|
|
418
438
|
homePath,
|
|
419
439
|
app.BaseApp,
|
|
440
|
+
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
|
|
420
441
|
)
|
|
421
442
|
|
|
422
443
|
// register the staking hooks
|
|
@@ -436,11 +457,11 @@ func NewAgoricApp(
|
|
|
436
457
|
)
|
|
437
458
|
|
|
438
459
|
// This function is tricky to get right, so we build it ourselves.
|
|
439
|
-
callToController := func(ctx sdk.Context,
|
|
460
|
+
callToController := func(ctx sdk.Context, jsonRequest string) (jsonReply string, err error) {
|
|
440
461
|
app.CheckControllerInited(true)
|
|
441
462
|
// We use SwingSet-level metering to charge the user for the call.
|
|
442
|
-
defer
|
|
443
|
-
return sendToController(true,
|
|
463
|
+
defer app.AgdServer.SetControllerContext(ctx)()
|
|
464
|
+
return sendToController(sdk.WrapSDKContext(ctx), true, jsonRequest)
|
|
444
465
|
}
|
|
445
466
|
|
|
446
467
|
setBootstrapNeeded := func() {
|
|
@@ -450,7 +471,7 @@ func NewAgoricApp(
|
|
|
450
471
|
app.VstorageKeeper = vstorage.NewKeeper(
|
|
451
472
|
keys[vstorage.StoreKey],
|
|
452
473
|
)
|
|
453
|
-
app.vstoragePort =
|
|
474
|
+
app.vstoragePort = app.AgdServer.MustRegisterPortHandler("vstorage", vstorage.NewStorageHandler(app.VstorageKeeper))
|
|
454
475
|
|
|
455
476
|
// The SwingSetKeeper is the Keeper from the SwingSet module
|
|
456
477
|
app.SwingSetKeeper = swingset.NewKeeper(
|
|
@@ -459,7 +480,7 @@ func NewAgoricApp(
|
|
|
459
480
|
app.VstorageKeeper, vbanktypes.ReservePoolName,
|
|
460
481
|
callToController,
|
|
461
482
|
)
|
|
462
|
-
app.swingsetPort =
|
|
483
|
+
app.swingsetPort = app.AgdServer.MustRegisterPortHandler("swingset", swingset.NewPortHandler(app.SwingSetKeeper))
|
|
463
484
|
|
|
464
485
|
app.SwingStoreExportsHandler = *swingsetkeeper.NewSwingStoreExportsHandler(
|
|
465
486
|
app.Logger(),
|
|
@@ -472,7 +493,7 @@ func NewAgoricApp(
|
|
|
472
493
|
if err != nil {
|
|
473
494
|
return "", err
|
|
474
495
|
}
|
|
475
|
-
return sendToController(true, string(bz))
|
|
496
|
+
return sendToController(context.Background(), true, string(bz))
|
|
476
497
|
},
|
|
477
498
|
)
|
|
478
499
|
|
|
@@ -492,16 +513,26 @@ func NewAgoricApp(
|
|
|
492
513
|
)
|
|
493
514
|
|
|
494
515
|
app.VibcKeeper = vibc.NewKeeper(
|
|
495
|
-
appCodec,
|
|
516
|
+
appCodec,
|
|
496
517
|
app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper,
|
|
497
|
-
|
|
498
|
-
|
|
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,
|
|
499
529
|
app.SwingSetKeeper.PushAction,
|
|
500
530
|
)
|
|
501
531
|
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
532
|
+
vtransferModule := vtransfer.NewAppModule(app.VtransferKeeper)
|
|
533
|
+
app.vtransferPort = app.AgdServer.MustRegisterPortHandler("vtransfer",
|
|
534
|
+
vibc.NewReceiver(app.VtransferKeeper),
|
|
535
|
+
)
|
|
505
536
|
|
|
506
537
|
app.VbankKeeper = vbank.NewKeeper(
|
|
507
538
|
appCodec, keys[vbank.StoreKey], app.GetSubspace(vbank.ModuleName),
|
|
@@ -509,27 +540,18 @@ func NewAgoricApp(
|
|
|
509
540
|
app.SwingSetKeeper.PushAction,
|
|
510
541
|
)
|
|
511
542
|
vbankModule := vbank.NewAppModule(app.VbankKeeper)
|
|
512
|
-
app.vbankPort =
|
|
513
|
-
|
|
514
|
-
// Lien keeper, and circular reference back to wrappedAccountKeeper
|
|
515
|
-
app.LienKeeper = lien.NewKeeper(
|
|
516
|
-
appCodec, keys[lien.StoreKey],
|
|
517
|
-
wrappedAccountKeeper, app.BankKeeper, app.StakingKeeper,
|
|
518
|
-
app.SwingSetKeeper.PushAction,
|
|
519
|
-
)
|
|
520
|
-
wrappedAccountKeeper.SetWrapper(app.LienKeeper.GetAccountWrapper())
|
|
521
|
-
lienModule := lien.NewAppModule(app.LienKeeper)
|
|
522
|
-
app.lienPort = vm.RegisterPortHandler("lien", lien.NewPortHandler(app.LienKeeper))
|
|
543
|
+
app.vbankPort = app.AgdServer.MustRegisterPortHandler("bank", vbank.NewPortHandler(vbankModule, app.VbankKeeper))
|
|
523
544
|
|
|
524
545
|
// register the proposal types
|
|
525
|
-
govRouter :=
|
|
546
|
+
govRouter := govv1beta1.NewRouter()
|
|
526
547
|
govRouter.
|
|
527
|
-
AddRoute(govtypes.RouterKey,
|
|
548
|
+
AddRoute(govtypes.RouterKey, govv1beta1.ProposalHandler).
|
|
528
549
|
AddRoute(paramproposal.RouterKey, params.NewParamChangeProposalHandler(app.ParamsKeeper)).
|
|
529
550
|
AddRoute(distrtypes.RouterKey, distr.NewCommunityPoolSpendProposalHandler(app.DistrKeeper)).
|
|
530
551
|
AddRoute(upgradetypes.RouterKey, upgrade.NewSoftwareUpgradeProposalHandler(app.UpgradeKeeper)).
|
|
531
552
|
AddRoute(ibcclienttypes.RouterKey, ibcclient.NewClientProposalHandler(app.IBCKeeper.ClientKeeper)).
|
|
532
553
|
AddRoute(swingsettypes.RouterKey, swingset.NewSwingSetProposalHandler(app.SwingSetKeeper))
|
|
554
|
+
govConfig := govtypes.DefaultConfig()
|
|
533
555
|
|
|
534
556
|
app.GovKeeper = govkeeper.NewKeeper(
|
|
535
557
|
appCodec,
|
|
@@ -539,43 +561,95 @@ func NewAgoricApp(
|
|
|
539
561
|
app.BankKeeper,
|
|
540
562
|
&stakingKeeper,
|
|
541
563
|
govRouter,
|
|
564
|
+
app.BaseApp.MsgServiceRouter(),
|
|
565
|
+
govConfig,
|
|
566
|
+
)
|
|
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(),
|
|
542
580
|
)
|
|
543
581
|
|
|
544
582
|
app.TransferKeeper = ibctransferkeeper.NewKeeper(
|
|
545
583
|
appCodec,
|
|
546
584
|
keys[ibctransfertypes.StoreKey],
|
|
547
585
|
app.GetSubspace(ibctransfertypes.ModuleName),
|
|
548
|
-
app.
|
|
586
|
+
app.PacketForwardKeeper, // Wire in the middleware ICS4Wrapper.
|
|
549
587
|
app.IBCKeeper.ChannelKeeper,
|
|
550
588
|
&app.IBCKeeper.PortKeeper,
|
|
551
589
|
app.AccountKeeper,
|
|
552
590
|
app.BankKeeper,
|
|
553
591
|
scopedTransferKeeper,
|
|
554
592
|
)
|
|
555
|
-
transferModule := transfer.NewAppModule(app.TransferKeeper)
|
|
556
|
-
transferIBCModule := transfer.NewIBCModule(app.TransferKeeper)
|
|
557
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.
|
|
558
599
|
app.ICAHostKeeper = icahostkeeper.NewKeeper(
|
|
559
600
|
appCodec, keys[icahosttypes.StoreKey],
|
|
560
601
|
app.GetSubspace(icahosttypes.SubModuleName),
|
|
602
|
+
app.IBCKeeper.ChannelKeeper, // This is where middleware binding would happen.
|
|
561
603
|
app.IBCKeeper.ChannelKeeper,
|
|
562
604
|
&app.IBCKeeper.PortKeeper,
|
|
563
605
|
app.AccountKeeper,
|
|
564
606
|
scopedICAHostKeeper,
|
|
565
607
|
app.MsgServiceRouter(),
|
|
566
608
|
)
|
|
567
|
-
icaModule := ica.NewAppModule(nil, &app.ICAHostKeeper)
|
|
568
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()
|
|
569
616
|
|
|
570
|
-
//
|
|
571
|
-
|
|
572
|
-
ibcRouter := porttypes.NewRouter()
|
|
573
|
-
ibcRouter.AddRoute(icahosttypes.SubModuleName, icaHostIBCModule).
|
|
574
|
-
AddRoute(ibctransfertypes.ModuleName, transferIBCModule).
|
|
575
|
-
AddRoute(vibc.ModuleName, vibcIBCModule)
|
|
617
|
+
// Add an IBC route for the ICA Host.
|
|
618
|
+
ibcRouter.AddRoute(icahosttypes.SubModuleName, icaHostIBCModule)
|
|
576
619
|
|
|
620
|
+
// Add an IBC route for vIBC.
|
|
621
|
+
ibcRouter.AddRoute(vibc.ModuleName, vibcIBCModule)
|
|
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
|
|
577
638
|
app.IBCKeeper.SetRouter(ibcRouter)
|
|
578
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
|
+
|
|
579
653
|
// create evidence keeper with router
|
|
580
654
|
evidenceKeeper := evidencekeeper.NewKeeper(
|
|
581
655
|
appCodec,
|
|
@@ -602,7 +676,7 @@ func NewAgoricApp(
|
|
|
602
676
|
bank.NewAppModule(appCodec, app.BankKeeper, app.AccountKeeper),
|
|
603
677
|
capability.NewAppModule(appCodec, *app.CapabilityKeeper),
|
|
604
678
|
gov.NewAppModule(appCodec, app.GovKeeper, app.AccountKeeper, app.BankKeeper),
|
|
605
|
-
mint.NewAppModule(appCodec, app.MintKeeper, app.AccountKeeper),
|
|
679
|
+
mint.NewAppModule(appCodec, app.MintKeeper, app.AccountKeeper, nil),
|
|
606
680
|
slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper),
|
|
607
681
|
distr.NewAppModule(appCodec, app.DistrKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper),
|
|
608
682
|
staking.NewAppModule(appCodec, app.StakingKeeper, app.AccountKeeper, app.BankKeeper),
|
|
@@ -612,13 +686,14 @@ func NewAgoricApp(
|
|
|
612
686
|
authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry),
|
|
613
687
|
ibc.NewAppModule(app.IBCKeeper),
|
|
614
688
|
params.NewAppModule(app.ParamsKeeper),
|
|
615
|
-
|
|
689
|
+
ics20TransferModule,
|
|
616
690
|
icaModule,
|
|
691
|
+
packetforward.NewAppModule(app.PacketForwardKeeper),
|
|
617
692
|
vstorage.NewAppModule(app.VstorageKeeper),
|
|
618
693
|
swingset.NewAppModule(app.SwingSetKeeper, &app.SwingStoreExportsHandler, setBootstrapNeeded, app.ensureControllerInited, swingStoreExportDir),
|
|
619
694
|
vibcModule,
|
|
620
695
|
vbankModule,
|
|
621
|
-
|
|
696
|
+
vtransferModule,
|
|
622
697
|
)
|
|
623
698
|
|
|
624
699
|
// During begin block slashing happens after distr.BeginBlocker so that
|
|
@@ -627,14 +702,19 @@ func NewAgoricApp(
|
|
|
627
702
|
// NOTE: staking module is required if HistoricalEntries param > 0
|
|
628
703
|
// NOTE: capability module's beginblocker must come before any modules using capabilities (e.g. IBC)
|
|
629
704
|
app.mm.SetOrderBeginBlockers(
|
|
705
|
+
// Cosmos-SDK modules appear roughly in the order used by simapp and gaiad.
|
|
630
706
|
// upgrades should be run first
|
|
631
707
|
upgradetypes.ModuleName,
|
|
632
708
|
capabilitytypes.ModuleName,
|
|
709
|
+
// params influence many other modules, so it should be near the top.
|
|
710
|
+
paramstypes.ModuleName,
|
|
633
711
|
govtypes.ModuleName,
|
|
634
712
|
stakingtypes.ModuleName,
|
|
713
|
+
// ibc apps are grouped together
|
|
635
714
|
ibctransfertypes.ModuleName,
|
|
636
715
|
ibchost.ModuleName,
|
|
637
716
|
icatypes.ModuleName,
|
|
717
|
+
packetforwardtypes.ModuleName,
|
|
638
718
|
authtypes.ModuleName,
|
|
639
719
|
banktypes.ModuleName,
|
|
640
720
|
distrtypes.ModuleName,
|
|
@@ -644,7 +724,6 @@ func NewAgoricApp(
|
|
|
644
724
|
evidencetypes.ModuleName,
|
|
645
725
|
authz.ModuleName,
|
|
646
726
|
feegrant.ModuleName,
|
|
647
|
-
paramstypes.ModuleName,
|
|
648
727
|
vestingtypes.ModuleName,
|
|
649
728
|
vstorage.ModuleName,
|
|
650
729
|
// This will cause the swingset controller to init if it hadn't yet, passing
|
|
@@ -652,17 +731,19 @@ func NewAgoricApp(
|
|
|
652
731
|
swingset.ModuleName,
|
|
653
732
|
vibc.ModuleName,
|
|
654
733
|
vbank.ModuleName,
|
|
655
|
-
|
|
734
|
+
vtransfer.ModuleName,
|
|
656
735
|
)
|
|
657
736
|
app.mm.SetOrderEndBlockers(
|
|
658
|
-
|
|
659
|
-
vbank.ModuleName,
|
|
660
|
-
lien.ModuleName,
|
|
737
|
+
// Cosmos-SDK modules appear roughly in the order used by simapp and gaiad.
|
|
661
738
|
govtypes.ModuleName,
|
|
662
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,
|
|
663
743
|
ibctransfertypes.ModuleName,
|
|
664
744
|
ibchost.ModuleName,
|
|
665
745
|
icatypes.ModuleName,
|
|
746
|
+
packetforwardtypes.ModuleName,
|
|
666
747
|
feegrant.ModuleName,
|
|
667
748
|
authz.ModuleName,
|
|
668
749
|
capabilitytypes.ModuleName,
|
|
@@ -676,7 +757,11 @@ func NewAgoricApp(
|
|
|
676
757
|
paramstypes.ModuleName,
|
|
677
758
|
upgradetypes.ModuleName,
|
|
678
759
|
vestingtypes.ModuleName,
|
|
679
|
-
//
|
|
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.
|
|
680
765
|
swingset.ModuleName,
|
|
681
766
|
// And then vstorage, to produce SwingSet-induced events.
|
|
682
767
|
vstorage.ModuleName,
|
|
@@ -693,26 +778,28 @@ func NewAgoricApp(
|
|
|
693
778
|
capabilitytypes.ModuleName,
|
|
694
779
|
authtypes.ModuleName,
|
|
695
780
|
banktypes.ModuleName,
|
|
781
|
+
paramstypes.ModuleName,
|
|
696
782
|
distrtypes.ModuleName,
|
|
697
783
|
stakingtypes.ModuleName,
|
|
698
784
|
slashingtypes.ModuleName,
|
|
699
785
|
govtypes.ModuleName,
|
|
700
786
|
minttypes.ModuleName,
|
|
701
787
|
ibctransfertypes.ModuleName,
|
|
788
|
+
packetforwardtypes.ModuleName,
|
|
702
789
|
ibchost.ModuleName,
|
|
703
790
|
icatypes.ModuleName,
|
|
704
791
|
evidencetypes.ModuleName,
|
|
705
792
|
feegrant.ModuleName,
|
|
706
793
|
authz.ModuleName,
|
|
707
794
|
genutiltypes.ModuleName,
|
|
708
|
-
paramstypes.ModuleName,
|
|
709
795
|
upgradetypes.ModuleName,
|
|
710
796
|
vestingtypes.ModuleName,
|
|
797
|
+
// Agoric-specific modules go last since they may rely on other SDK modules.
|
|
711
798
|
vstorage.ModuleName,
|
|
712
799
|
vbank.ModuleName,
|
|
713
800
|
vibc.ModuleName,
|
|
801
|
+
vtransfer.ModuleName,
|
|
714
802
|
swingset.ModuleName,
|
|
715
|
-
lien.ModuleName,
|
|
716
803
|
}
|
|
717
804
|
|
|
718
805
|
app.mm.SetOrderInitGenesis(moduleOrderForGenesisAndUpgrade...)
|
|
@@ -734,14 +821,14 @@ func NewAgoricApp(
|
|
|
734
821
|
feegrantmodule.NewAppModule(appCodec, app.AccountKeeper, app.BankKeeper, app.FeeGrantKeeper, app.interfaceRegistry),
|
|
735
822
|
authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry),
|
|
736
823
|
gov.NewAppModule(appCodec, app.GovKeeper, app.AccountKeeper, app.BankKeeper),
|
|
737
|
-
mint.NewAppModule(appCodec, app.MintKeeper, app.AccountKeeper),
|
|
824
|
+
mint.NewAppModule(appCodec, app.MintKeeper, app.AccountKeeper, nil),
|
|
738
825
|
staking.NewAppModule(appCodec, app.StakingKeeper, app.AccountKeeper, app.BankKeeper),
|
|
739
826
|
distr.NewAppModule(appCodec, app.DistrKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper),
|
|
740
827
|
slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper),
|
|
741
828
|
params.NewAppModule(app.ParamsKeeper),
|
|
742
829
|
evidence.NewAppModule(app.EvidenceKeeper),
|
|
743
830
|
ibc.NewAppModule(app.IBCKeeper),
|
|
744
|
-
|
|
831
|
+
ics20TransferModule,
|
|
745
832
|
)
|
|
746
833
|
|
|
747
834
|
app.sm.RegisterStoreDecoders()
|
|
@@ -775,28 +862,26 @@ func NewAgoricApp(
|
|
|
775
862
|
app.SetBeginBlocker(app.BeginBlocker)
|
|
776
863
|
app.SetEndBlocker(app.EndBlocker)
|
|
777
864
|
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
upgradeName,
|
|
785
|
-
upgrade14Handler(app, upgradeName),
|
|
786
|
-
)
|
|
787
|
-
app.UpgradeKeeper.SetUpgradeHandler(
|
|
788
|
-
upgradeNameTest,
|
|
789
|
-
upgrade14Handler(app, upgradeNameTest),
|
|
790
|
-
)
|
|
865
|
+
for name := range upgradeNamesOfThisVersion {
|
|
866
|
+
app.UpgradeKeeper.SetUpgradeHandler(
|
|
867
|
+
name,
|
|
868
|
+
upgrade16Handler(app, name),
|
|
869
|
+
)
|
|
870
|
+
}
|
|
791
871
|
|
|
792
872
|
upgradeInfo, err := app.UpgradeKeeper.ReadUpgradeInfoFromDisk()
|
|
793
873
|
if err != nil {
|
|
794
874
|
panic(err)
|
|
795
875
|
}
|
|
796
|
-
if
|
|
876
|
+
if upgradeNamesOfThisVersion[upgradeInfo.Name] && !app.UpgradeKeeper.IsSkipHeight(upgradeInfo.Height) {
|
|
797
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
|
+
},
|
|
798
883
|
Deleted: []string{
|
|
799
|
-
|
|
884
|
+
"lien", // Agoric removed the lien module
|
|
800
885
|
},
|
|
801
886
|
}
|
|
802
887
|
|
|
@@ -824,45 +909,6 @@ func NewAgoricApp(
|
|
|
824
909
|
return app
|
|
825
910
|
}
|
|
826
911
|
|
|
827
|
-
// upgrade14Handler performs standard upgrade actions plus custom actions for upgrade-14.
|
|
828
|
-
func upgrade14Handler(app *GaiaApp, targetUpgrade string) func(sdk.Context, upgradetypes.Plan, module.VersionMap) (module.VersionMap, error) {
|
|
829
|
-
return func(ctx sdk.Context, plan upgradetypes.Plan, fromVm module.VersionMap) (module.VersionMap, error) {
|
|
830
|
-
app.CheckControllerInited(false)
|
|
831
|
-
|
|
832
|
-
// Each CoreProposalStep runs sequentially, and can be constructed from
|
|
833
|
-
// one or more modules executing in parallel within the step.
|
|
834
|
-
CoreProposalSteps := []vm.CoreProposalStep{
|
|
835
|
-
// First, upgrade wallet factory
|
|
836
|
-
vm.CoreProposalStepForModules("@agoric/vats/scripts/build-wallet-factory2-upgrade.js"),
|
|
837
|
-
// Then, upgrade Zoe and ZCF
|
|
838
|
-
vm.CoreProposalStepForModules("@agoric/vats/scripts/replace-zoe.js"),
|
|
839
|
-
}
|
|
840
|
-
|
|
841
|
-
app.upgradeDetails = &upgradeDetails{
|
|
842
|
-
// Record the plan to send to SwingSet
|
|
843
|
-
Plan: plan,
|
|
844
|
-
// Core proposals that should run during the upgrade block
|
|
845
|
-
// These will be merged with any coreProposals specified in the
|
|
846
|
-
// upgradeInfo field of the upgrade plan ran as subsequent steps
|
|
847
|
-
CoreProposals: vm.CoreProposalsFromSteps(CoreProposalSteps...),
|
|
848
|
-
}
|
|
849
|
-
|
|
850
|
-
// Always run module migrations
|
|
851
|
-
mvm, err := app.mm.RunMigrations(ctx, app.configurator, fromVm)
|
|
852
|
-
if err != nil {
|
|
853
|
-
return mvm, err
|
|
854
|
-
}
|
|
855
|
-
|
|
856
|
-
m := swingsetkeeper.NewMigrator(app.SwingSetKeeper)
|
|
857
|
-
err = m.MigrateParams(ctx)
|
|
858
|
-
if err != nil {
|
|
859
|
-
return mvm, err
|
|
860
|
-
}
|
|
861
|
-
|
|
862
|
-
return mvm, nil
|
|
863
|
-
}
|
|
864
|
-
}
|
|
865
|
-
|
|
866
912
|
// normalizeModuleAccount ensures that the given account is a module account,
|
|
867
913
|
// initializing or updating it if necessary. The account name must be listed in maccPerms.
|
|
868
914
|
func normalizeModuleAccount(ctx sdk.Context, ak authkeeper.AccountKeeper, name string) {
|
|
@@ -892,11 +938,14 @@ type cosmosInitAction struct {
|
|
|
892
938
|
UpgradeDetails *upgradeDetails `json:"upgradeDetails,omitempty"`
|
|
893
939
|
Params swingset.Params `json:"params"`
|
|
894
940
|
SupplyCoins sdk.Coins `json:"supplyCoins"`
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
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"`
|
|
900
949
|
}
|
|
901
950
|
|
|
902
951
|
// Name returns the name of the App
|
|
@@ -926,11 +975,13 @@ func (app *GaiaApp) initController(ctx sdk.Context, bootstrap bool) {
|
|
|
926
975
|
Params: app.SwingSetKeeper.GetParams(ctx),
|
|
927
976
|
SupplyCoins: sdk.NewCoins(app.BankKeeper.GetSupply(ctx, "uist")),
|
|
928
977
|
UpgradeDetails: app.upgradeDetails,
|
|
929
|
-
|
|
930
|
-
StoragePort:
|
|
931
|
-
SwingsetPort:
|
|
932
|
-
VbankPort:
|
|
933
|
-
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,
|
|
934
985
|
}
|
|
935
986
|
// This uses `BlockingSend` as a friendly wrapper for `sendToController`
|
|
936
987
|
//
|
|
@@ -942,12 +993,12 @@ func (app *GaiaApp) initController(ctx sdk.Context, bootstrap bool) {
|
|
|
942
993
|
// fmt.Fprintf(os.Stderr, "AG_COSMOS_INIT Returned from SwingSet: %s, %v\n", out, err)
|
|
943
994
|
|
|
944
995
|
if err != nil {
|
|
945
|
-
panic(
|
|
996
|
+
panic(sdkioerrors.Wrap(err, "cannot initialize Controller"))
|
|
946
997
|
}
|
|
947
998
|
var res bool
|
|
948
999
|
err = json.Unmarshal([]byte(out), &res)
|
|
949
1000
|
if err != nil {
|
|
950
|
-
panic(
|
|
1001
|
+
panic(sdkioerrors.Wrapf(err, "cannot unmarshal Controller init response: %s", out))
|
|
951
1002
|
}
|
|
952
1003
|
if !res {
|
|
953
1004
|
panic(fmt.Errorf("controller negative init response"))
|
|
@@ -1100,21 +1151,21 @@ func (app *GaiaApp) InterfaceRegistry() types.InterfaceRegistry {
|
|
|
1100
1151
|
// GetKey returns the KVStoreKey for the provided store key.
|
|
1101
1152
|
//
|
|
1102
1153
|
// NOTE: This is solely to be used for testing purposes.
|
|
1103
|
-
func (app *GaiaApp) GetKey(storeKey string) *
|
|
1154
|
+
func (app *GaiaApp) GetKey(storeKey string) *storetypes.KVStoreKey {
|
|
1104
1155
|
return app.keys[storeKey]
|
|
1105
1156
|
}
|
|
1106
1157
|
|
|
1107
1158
|
// GetTKey returns the TransientStoreKey for the provided store key.
|
|
1108
1159
|
//
|
|
1109
1160
|
// NOTE: This is solely to be used for testing purposes.
|
|
1110
|
-
func (app *GaiaApp) GetTKey(storeKey string) *
|
|
1161
|
+
func (app *GaiaApp) GetTKey(storeKey string) *storetypes.TransientStoreKey {
|
|
1111
1162
|
return app.tkeys[storeKey]
|
|
1112
1163
|
}
|
|
1113
1164
|
|
|
1114
1165
|
// GetMemKey returns the MemStoreKey for the provided mem key.
|
|
1115
1166
|
//
|
|
1116
1167
|
// NOTE: This is solely used for testing purposes.
|
|
1117
|
-
func (app *GaiaApp) GetMemKey(storeKey string) *
|
|
1168
|
+
func (app *GaiaApp) GetMemKey(storeKey string) *storetypes.MemoryStoreKey {
|
|
1118
1169
|
return app.memKeys[storeKey]
|
|
1119
1170
|
}
|
|
1120
1171
|
|
|
@@ -1135,16 +1186,16 @@ func (app *GaiaApp) SimulationManager() *module.SimulationManager {
|
|
|
1135
1186
|
// API server.
|
|
1136
1187
|
func (app *GaiaApp) RegisterAPIRoutes(apiSvr *api.Server, apiConfig config.APIConfig) {
|
|
1137
1188
|
clientCtx := apiSvr.ClientCtx
|
|
1138
|
-
rpc.RegisterRoutes(clientCtx, apiSvr.Router)
|
|
1139
|
-
// Register legacy tx routes.
|
|
1140
|
-
authrest.RegisterTxRoutes(clientCtx, apiSvr.Router)
|
|
1141
1189
|
// Register new tx routes from grpc-gateway.
|
|
1142
1190
|
authtx.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
|
|
1191
|
+
|
|
1143
1192
|
// Register new tendermint queries routes from grpc-gateway.
|
|
1144
1193
|
tmservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
|
|
1145
1194
|
|
|
1146
|
-
// Register
|
|
1147
|
-
|
|
1195
|
+
// Register node gRPC service for grpc-gateway.
|
|
1196
|
+
nodeservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
|
|
1197
|
+
|
|
1198
|
+
// Register grpc-gateway routes for all modules.
|
|
1148
1199
|
ModuleBasics.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
|
|
1149
1200
|
|
|
1150
1201
|
// register swagger API from root so that other applications can override easily
|
|
@@ -1160,7 +1211,7 @@ func (app *GaiaApp) RegisterTxService(clientCtx client.Context) {
|
|
|
1160
1211
|
|
|
1161
1212
|
// RegisterTendermintService implements the Application.RegisterTendermintService method.
|
|
1162
1213
|
func (app *GaiaApp) RegisterTendermintService(clientCtx client.Context) {
|
|
1163
|
-
tmservice.RegisterTendermintService(app.BaseApp.GRPCQueryRouter(),
|
|
1214
|
+
tmservice.RegisterTendermintService(clientCtx, app.BaseApp.GRPCQueryRouter(), app.interfaceRegistry, app.Query)
|
|
1164
1215
|
}
|
|
1165
1216
|
|
|
1166
1217
|
// RegisterSwaggerAPI registers swagger route with API Server
|
|
@@ -1184,7 +1235,7 @@ func GetMaccPerms() map[string][]string {
|
|
|
1184
1235
|
}
|
|
1185
1236
|
|
|
1186
1237
|
// initParamsKeeper init params keeper and its subspaces
|
|
1187
|
-
func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino, key, tkey
|
|
1238
|
+
func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino, key, tkey storetypes.StoreKey) paramskeeper.Keeper {
|
|
1188
1239
|
paramsKeeper := paramskeeper.NewKeeper(appCodec, legacyAmino, key, tkey)
|
|
1189
1240
|
|
|
1190
1241
|
paramsKeeper.Subspace(authtypes.ModuleName)
|
|
@@ -1193,8 +1244,9 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino
|
|
|
1193
1244
|
paramsKeeper.Subspace(minttypes.ModuleName)
|
|
1194
1245
|
paramsKeeper.Subspace(distrtypes.ModuleName)
|
|
1195
1246
|
paramsKeeper.Subspace(slashingtypes.ModuleName)
|
|
1196
|
-
paramsKeeper.Subspace(govtypes.ModuleName).WithKeyTable(
|
|
1247
|
+
paramsKeeper.Subspace(govtypes.ModuleName).WithKeyTable(govtypesv1.ParamKeyTable())
|
|
1197
1248
|
paramsKeeper.Subspace(ibctransfertypes.ModuleName)
|
|
1249
|
+
paramsKeeper.Subspace(packetforwardtypes.ModuleName).WithKeyTable(packetforwardtypes.ParamKeyTable())
|
|
1198
1250
|
paramsKeeper.Subspace(ibchost.ModuleName)
|
|
1199
1251
|
paramsKeeper.Subspace(icahosttypes.SubModuleName)
|
|
1200
1252
|
paramsKeeper.Subspace(swingset.ModuleName)
|
|
@@ -1202,3 +1254,36 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino
|
|
|
1202
1254
|
|
|
1203
1255
|
return paramsKeeper
|
|
1204
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
|
+
}
|