@agoric/cosmos 0.35.0-u21.0 → 0.35.0-u22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -187
- package/Makefile +2 -2
- package/ante/ante.go +2 -2
- package/ante/inbound.go +1 -2
- package/ante/inbound_test.go +3 -1
- package/ante/vm_admission.go +1 -2
- package/app/app.go +255 -174
- package/app/encoding.go +6 -3
- package/app/export.go +50 -21
- package/app/genesis.go +7 -5
- package/app/params/encoding.go +1 -1
- package/app/params/proto.go +6 -4
- package/app/sim_test.go +11 -13
- package/app/txconfig/tx_config.go +169 -0
- package/app/upgrade.go +52 -97
- package/app/upgrade_test.go +1 -1
- package/cmd/agd/agvm.go +1 -1
- package/cmd/agd/main.go +1 -1
- package/cmd/libdaemon/main.go +2 -2
- package/daemon/cmd/root.go +99 -30
- package/daemon/cmd/root_test.go +12 -27
- package/daemon/main.go +2 -9
- package/git-revision.txt +1 -1
- package/go.mod +129 -109
- package/go.sum +228 -469
- package/package.json +2 -2
- package/proto/agoric/swingset/msgs.proto +46 -9
- package/proto/agoric/swingset/swingset.proto +7 -2
- package/proto/agoric/vbank/vbank.proto +1 -1
- package/proto/agoric/vibc/msgs.proto +4 -0
- package/tests/e2e/vbank/vbank_test.go +172 -0
- package/tests/integrations/types/aminojson_test.go +214 -0
- package/tests/integrations/vbank/vbank_test.go +348 -0
- package/third_party/proto/amino/amino.proto +6 -1
- package/third_party/proto/cosmos/base/v1beta1/coin.proto +18 -5
- package/third_party/proto/cosmos/upgrade/v1beta1/upgrade.proto +4 -8
- package/third_party/proto/ibc/core/channel/v1/channel.proto +42 -17
- package/third_party/proto/ibc/core/client/v1/client.proto +48 -40
- package/types/address_hooks.go +2 -2
- package/types/address_hooks_test.go +3 -3
- package/types/ibc_packet.go +3 -3
- package/types/ibc_packet_test.go +3 -3
- package/types/kv_entry_helpers.go +3 -3
- package/types/kv_entry_helpers_test.go +2 -2
- package/types/legacy_address_encoder.go +58 -0
- package/vm/proto_json_test.go +1 -1
- package/vm/server.go +2 -1
- package/x/swingset/abci.go +2 -2
- package/x/swingset/client/cli/tx.go +16 -14
- package/x/swingset/config.go +1 -1
- package/x/swingset/genesis.go +2 -1
- package/x/swingset/handler.go +2 -1
- package/x/swingset/keeper/extension_snapshotter.go +14 -5
- package/x/swingset/keeper/extension_snapshotter_test.go +1 -1
- package/x/swingset/keeper/keeper.go +21 -17
- package/x/swingset/keeper/keeper_test.go +10 -7
- package/x/swingset/keeper/msg_server.go +26 -5
- package/x/swingset/keeper/swing_store_exports_handler.go +1 -1
- package/x/swingset/keeper/swing_store_exports_handler_test.go +1 -1
- package/x/swingset/module.go +20 -22
- package/x/swingset/types/codec.go +10 -5
- package/x/swingset/types/default-params.go +13 -12
- package/x/swingset/types/expected_keepers.go +5 -4
- package/x/swingset/types/msgs.go +50 -36
- package/x/swingset/types/msgs.pb.go +60 -51
- package/x/swingset/types/params_test.go +21 -20
- package/x/swingset/types/swingset.pb.go +67 -61
- package/x/vbank/genesis.go +12 -8
- package/x/vbank/handler.go +2 -1
- package/x/vbank/keeper/grpc_query.go +4 -1
- package/x/vbank/keeper/keeper.go +108 -23
- package/x/vbank/keeper/querier.go +4 -1
- package/x/vbank/keeper/rewards.go +6 -2
- package/x/vbank/module.go +47 -75
- package/x/vbank/types/expected_keepers.go +15 -10
- package/x/vbank/types/key.go +3 -0
- package/x/vbank/types/params.go +4 -3
- package/x/vbank/types/vbank.pb.go +41 -40
- package/x/vbank/vbank.go +25 -10
- package/x/vbank/vbank_test.go +213 -154
- package/x/vibc/handler.go +2 -1
- package/x/vibc/keeper/keeper.go +10 -10
- package/x/vibc/keeper/migrations.go +1 -1
- package/x/vibc/keeper/triggers.go +1 -1
- package/x/vibc/module.go +5 -22
- package/x/vibc/types/codec.go +2 -1
- package/x/vibc/types/expected_keepers.go +7 -5
- package/x/vibc/types/ibc_module.go +5 -5
- package/x/vibc/types/msgs.go +30 -7
- package/x/vibc/types/msgs.pb.go +29 -25
- package/x/vibc/types/receiver.go +2 -2
- package/x/vlocalchain/handler.go +2 -1
- package/x/vlocalchain/keeper/keeper.go +17 -5
- package/x/vlocalchain/keeper/keeper_test.go +3 -2
- package/x/vlocalchain/types/expected_keepers.go +7 -4
- package/x/vlocalchain/vlocalchain_test.go +38 -26
- package/x/vstorage/genesis.go +10 -10
- package/x/vstorage/handler.go +2 -1
- package/x/vstorage/keeper/keeper.go +68 -46
- package/x/vstorage/keeper/keeper_test.go +35 -19
- package/x/vstorage/module.go +27 -13
- package/x/vstorage/testing/queue.go +5 -3
- package/x/vstorage/vstorage.go +2 -1
- package/x/vstorage/vstorage_test.go +21 -17
- package/x/vtransfer/genesis.go +1 -3
- package/x/vtransfer/handler.go +3 -2
- package/x/vtransfer/ibc_middleware.go +5 -5
- package/x/vtransfer/ibc_middleware_test.go +43 -29
- package/x/vtransfer/keeper/keeper.go +35 -33
- package/x/vtransfer/module.go +8 -11
- package/x/vtransfer/types/expected_keepers.go +3 -3
- package/x/vtransfer/utils_test.go +26 -11
- package/daemon/cmd/testnet.go +0 -539
package/app/upgrade.go
CHANGED
|
@@ -1,33 +1,28 @@
|
|
|
1
1
|
package gaia
|
|
2
2
|
|
|
3
3
|
import (
|
|
4
|
+
"context"
|
|
4
5
|
"encoding/json"
|
|
5
6
|
"fmt"
|
|
6
7
|
|
|
7
8
|
"github.com/Agoric/agoric-sdk/golang/cosmos/vm"
|
|
8
9
|
swingsetkeeper "github.com/Agoric/agoric-sdk/golang/cosmos/x/swingset/keeper"
|
|
9
|
-
"github.com/cosmos/cosmos-sdk/baseapp"
|
|
10
10
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
11
11
|
"github.com/cosmos/cosmos-sdk/types/module"
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
|
|
15
|
-
crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types"
|
|
16
|
-
distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types"
|
|
17
|
-
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types"
|
|
18
|
-
govv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1"
|
|
19
|
-
minttypes "github.com/cosmos/cosmos-sdk/x/mint/types"
|
|
13
|
+
upgradetypes "cosmossdk.io/x/upgrade/types"
|
|
20
14
|
paramstypes "github.com/cosmos/cosmos-sdk/x/params/types"
|
|
21
|
-
slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types"
|
|
22
|
-
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
|
|
23
|
-
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
|
|
24
15
|
|
|
25
|
-
|
|
16
|
+
icahosttypes "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host/types"
|
|
17
|
+
ibctransfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types"
|
|
18
|
+
ibcclienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types"
|
|
19
|
+
ibcconnectiontypes "github.com/cosmos/ibc-go/v8/modules/core/03-connection/types"
|
|
20
|
+
ibcexported "github.com/cosmos/ibc-go/v8/modules/core/exported"
|
|
21
|
+
ibctmmigrations "github.com/cosmos/ibc-go/v8/modules/light-clients/07-tendermint/migrations"
|
|
26
22
|
)
|
|
27
23
|
|
|
28
24
|
var upgradeNamesOfThisVersion = []string{
|
|
29
|
-
"agoric-upgrade-
|
|
30
|
-
"agoric-upgrade-21-a3p",
|
|
25
|
+
"agoric-upgrade-22",
|
|
31
26
|
}
|
|
32
27
|
|
|
33
28
|
// isUpgradeNameOfThisVersion returns whether the provided plan name is a
|
|
@@ -61,8 +56,7 @@ func isPrimaryUpgradeName(name string) bool {
|
|
|
61
56
|
return false
|
|
62
57
|
}
|
|
63
58
|
switch name {
|
|
64
|
-
case validUpgradeName("agoric-upgrade-
|
|
65
|
-
validUpgradeName("agoric-upgrade-21-a3p"):
|
|
59
|
+
case validUpgradeName("agoric-upgrade-22"):
|
|
66
60
|
return true
|
|
67
61
|
default:
|
|
68
62
|
panic(fmt.Errorf("unexpected upgrade name %s", validUpgradeName(name)))
|
|
@@ -73,7 +67,11 @@ func isPrimaryUpgradeName(name string) bool {
|
|
|
73
67
|
// upgrade plan name of this version have previously been applied.
|
|
74
68
|
func isFirstTimeUpgradeOfThisVersion(app *GaiaApp, ctx sdk.Context) bool {
|
|
75
69
|
for _, name := range upgradeNamesOfThisVersion {
|
|
76
|
-
|
|
70
|
+
height, err := app.UpgradeKeeper.GetDoneHeight(ctx, name)
|
|
71
|
+
if err != nil {
|
|
72
|
+
panic(fmt.Errorf("error getting done height: %s", err))
|
|
73
|
+
}
|
|
74
|
+
if height != 0 {
|
|
77
75
|
return false
|
|
78
76
|
}
|
|
79
77
|
}
|
|
@@ -110,10 +108,17 @@ func buildProposalStepWithArgs(moduleName string, entrypoint string, args ...vm.
|
|
|
110
108
|
|
|
111
109
|
func getVariantFromUpgradeName(upgradeName string) string {
|
|
112
110
|
switch upgradeName {
|
|
113
|
-
case "
|
|
111
|
+
case "UNRELEASED_A3P_INTEGRATION":
|
|
114
112
|
return "A3P_INTEGRATION"
|
|
115
|
-
case "
|
|
113
|
+
case "UNRELEASED_main":
|
|
116
114
|
return "MAINNET"
|
|
115
|
+
case "UNRELEASED_devnet":
|
|
116
|
+
return "DEVNET"
|
|
117
|
+
case "UNRELEASED_emerynet":
|
|
118
|
+
return "EMERYNET"
|
|
119
|
+
case "UNRELEASED_BASIC":
|
|
120
|
+
// Noupgrade for this version.
|
|
121
|
+
return ""
|
|
117
122
|
default:
|
|
118
123
|
return ""
|
|
119
124
|
}
|
|
@@ -142,26 +147,15 @@ func buildProposalStepFromScript(targetUpgrade string, builderScript string) (vm
|
|
|
142
147
|
func (app *GaiaApp) RegisterUpgradeHandlers() {
|
|
143
148
|
// Set param key table for params module migration
|
|
144
149
|
for _, subspace := range app.ParamsKeeper.GetSubspaces() {
|
|
145
|
-
subspace := subspace
|
|
146
|
-
|
|
147
150
|
var keyTable paramstypes.KeyTable
|
|
148
151
|
switch subspace.Name() {
|
|
149
|
-
case
|
|
150
|
-
keyTable =
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
keyTable = minttypes.ParamKeyTable() //nolint:staticcheck
|
|
157
|
-
case distrtypes.ModuleName:
|
|
158
|
-
keyTable = distrtypes.ParamKeyTable() //nolint:staticcheck
|
|
159
|
-
case slashingtypes.ModuleName:
|
|
160
|
-
keyTable = slashingtypes.ParamKeyTable() //nolint:staticcheck
|
|
161
|
-
case govtypes.ModuleName:
|
|
162
|
-
keyTable = govv1.ParamKeyTable() //nolint:staticcheck
|
|
163
|
-
case crisistypes.ModuleName:
|
|
164
|
-
keyTable = crisistypes.ParamKeyTable() //nolint:staticcheck
|
|
152
|
+
case ibcexported.ModuleName:
|
|
153
|
+
keyTable = ibcclienttypes.ParamKeyTable() //nolint:staticcheck
|
|
154
|
+
keyTable.RegisterParamSet(&ibcconnectiontypes.Params{})
|
|
155
|
+
case icahosttypes.SubModuleName:
|
|
156
|
+
keyTable = icahosttypes.ParamKeyTable() //nolint:staticcheck
|
|
157
|
+
case ibctransfertypes.ModuleName:
|
|
158
|
+
keyTable = ibctransfertypes.ParamKeyTable() //nolint:staticcheck
|
|
165
159
|
default:
|
|
166
160
|
continue
|
|
167
161
|
}
|
|
@@ -171,31 +165,21 @@ func (app *GaiaApp) RegisterUpgradeHandlers() {
|
|
|
171
165
|
}
|
|
172
166
|
}
|
|
173
167
|
|
|
174
|
-
baseAppLegacySS := app.ParamsKeeper.Subspace(baseapp.Paramspace).WithKeyTable(paramstypes.ConsensusParamsKeyTable())
|
|
175
|
-
|
|
176
168
|
for _, name := range upgradeNamesOfThisVersion {
|
|
177
169
|
app.UpgradeKeeper.SetUpgradeHandler(
|
|
178
170
|
name,
|
|
179
|
-
|
|
171
|
+
upgrade22Handler(app, name),
|
|
180
172
|
)
|
|
181
173
|
}
|
|
182
174
|
}
|
|
183
175
|
|
|
184
|
-
//
|
|
185
|
-
func
|
|
176
|
+
// upgrade22Handler performs standard upgrade actions plus custom actions for upgrade-22.
|
|
177
|
+
func upgrade22Handler(app *GaiaApp, targetUpgrade string) upgradetypes.UpgradeHandler {
|
|
186
178
|
_ = targetUpgrade
|
|
187
|
-
return func(
|
|
179
|
+
return func(goCtx context.Context, plan upgradetypes.Plan, fromVm module.VersionMap) (module.VersionMap, error) {
|
|
180
|
+
ctx := sdk.UnwrapSDKContext(goCtx)
|
|
188
181
|
app.CheckControllerInited(false)
|
|
189
182
|
|
|
190
|
-
// prune expired tendermint consensus states to save storage space
|
|
191
|
-
_, err := ibctmmigrations.PruneExpiredConsensusStates(ctx, app.AppCodec(), app.IBCKeeper.ClientKeeper)
|
|
192
|
-
if err != nil {
|
|
193
|
-
return nil, err
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
// Migrate Tendermint consensus parameters from x/params module to a dedicated x/consensus module.
|
|
197
|
-
baseapp.MigrateParams(ctx, baseAppLegacySS, &app.ConsensusParamsKeeper)
|
|
198
|
-
|
|
199
183
|
CoreProposalSteps := []vm.CoreProposalStep{}
|
|
200
184
|
|
|
201
185
|
// These CoreProposalSteps are not idempotent and should only be executed
|
|
@@ -208,62 +192,33 @@ func upgrade21Handler(app *GaiaApp, targetUpgrade string, baseAppLegacySS params
|
|
|
208
192
|
return module.VersionMap{}, fmt.Errorf("cannot run %s as first upgrade", plan.Name)
|
|
209
193
|
}
|
|
210
194
|
|
|
211
|
-
//
|
|
212
|
-
|
|
213
|
-
CoreProposalSteps = append(CoreProposalSteps,
|
|
214
|
-
// Register a new ZCF to be used for all future contract instances and upgrades
|
|
215
|
-
vm.CoreProposalStepForModules(
|
|
216
|
-
"@agoric/builders/scripts/vats/upgrade-zcf.js",
|
|
217
|
-
),
|
|
218
|
-
vm.CoreProposalStepForModules(
|
|
219
|
-
"@agoric/builders/scripts/vats/upgrade-provisionPool-to-BLD.js",
|
|
220
|
-
),
|
|
221
|
-
// because of #10794, we need to do at least a null upgrade of
|
|
222
|
-
// the walletFactory on every software upgrade
|
|
223
|
-
vm.CoreProposalStepForModules(
|
|
224
|
-
"@agoric/builders/scripts/smart-wallet/build-wallet-factory2-upgrade.js",
|
|
225
|
-
),
|
|
226
|
-
)
|
|
227
|
-
|
|
228
|
-
// Reserve contract needs to be upgraded for IST wind-down.
|
|
229
|
-
reserveUpgradeStep, err := buildProposalStepWithArgs(
|
|
230
|
-
"@agoric/builders/scripts/vats/upgrade-vats.js",
|
|
231
|
-
"upgradeZoeContractsProposalBuilder",
|
|
232
|
-
[]struct {
|
|
233
|
-
KitLookup []string `json:"kitLookup"`
|
|
234
|
-
BundleName string `json:"bundleName"`
|
|
235
|
-
Entrypoint string `json:"entrypoint"`
|
|
236
|
-
}{
|
|
237
|
-
{
|
|
238
|
-
KitLookup: []string{"reserveKit"},
|
|
239
|
-
BundleName: "reserve",
|
|
240
|
-
Entrypoint: "@agoric/inter-protocol/src/reserve/assetReserve.js",
|
|
241
|
-
},
|
|
242
|
-
},
|
|
243
|
-
)
|
|
195
|
+
// prune expired tendermint consensus states to save storage space.
|
|
196
|
+
_, err := ibctmmigrations.PruneExpiredConsensusStates(ctx, app.AppCodec(), app.IBCKeeper.ClientKeeper)
|
|
244
197
|
if err != nil {
|
|
245
|
-
return
|
|
198
|
+
return nil, err
|
|
246
199
|
}
|
|
247
|
-
CoreProposalSteps = append(CoreProposalSteps,
|
|
248
|
-
reserveUpgradeStep,
|
|
249
|
-
)
|
|
250
200
|
|
|
251
201
|
// terminationTargets is a slice of "$boardID:$instanceKitLabel" strings.
|
|
252
202
|
var terminationTargets []string
|
|
253
|
-
switch
|
|
254
|
-
case "
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
203
|
+
switch ctx.ChainID() {
|
|
204
|
+
case "agoric-3": // MAINNET
|
|
205
|
+
terminationTargets = []string{
|
|
206
|
+
// v29 "zcf-b1-4522b-ATOM-USD_price_feed"
|
|
207
|
+
"board02963:ATOM-USD_price_feed",
|
|
208
|
+
// v68 "zcf-b1-4522b-stATOM-USD_price_feed"
|
|
209
|
+
"board012113:stATOM-USD_price_feed",
|
|
210
|
+
// v98 "zcf-b1-4522b-stOSMO-USD_price_feed"
|
|
211
|
+
"board002164:stOSMO-USD_price_feed",
|
|
212
|
+
// v104 "zcf-b1-4522b-stTIA-USD_price_feed"
|
|
213
|
+
"board043173:stTIA-USD_price_feed",
|
|
214
|
+
}
|
|
259
215
|
}
|
|
260
216
|
if len(terminationTargets) > 0 {
|
|
261
|
-
args := []vm.Jsonable{terminationTargets}
|
|
262
217
|
terminationStep, err := buildProposalStepWithArgs(
|
|
263
218
|
"@agoric/vats/src/proposals/terminate-governed-instance.js",
|
|
264
219
|
// defaultProposalBuilder(powers, targets)
|
|
265
220
|
"defaultProposalBuilder",
|
|
266
|
-
|
|
221
|
+
terminationTargets,
|
|
267
222
|
)
|
|
268
223
|
if err != nil {
|
|
269
224
|
return module.VersionMap{}, err
|
package/app/upgrade_test.go
CHANGED
|
@@ -17,7 +17,7 @@ func TestBuildProposalSteps(t *testing.T) {
|
|
|
17
17
|
"buildProposalStepFromScript",
|
|
18
18
|
func() (vm.CoreProposalStep, error) {
|
|
19
19
|
return buildProposalStepFromScript(
|
|
20
|
-
"
|
|
20
|
+
"UNRELEASED_A3P_INTEGRATION",
|
|
21
21
|
"@agoric/builders/scripts/vats/upgrade-orchestration.js",
|
|
22
22
|
)
|
|
23
23
|
},
|
package/cmd/agd/agvm.go
CHANGED
package/cmd/agd/main.go
CHANGED
package/cmd/libdaemon/main.go
CHANGED
|
@@ -17,7 +17,7 @@ import (
|
|
|
17
17
|
"path/filepath"
|
|
18
18
|
"runtime/debug"
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
"cosmossdk.io/log"
|
|
21
21
|
|
|
22
22
|
gaia "github.com/Agoric/agoric-sdk/golang/cosmos/app"
|
|
23
23
|
"github.com/Agoric/agoric-sdk/golang/cosmos/daemon"
|
|
@@ -38,7 +38,7 @@ type goReturn = struct {
|
|
|
38
38
|
|
|
39
39
|
const SwingSetPort = 123
|
|
40
40
|
|
|
41
|
-
var logger = log.
|
|
41
|
+
var logger = log.NewLogger(os.Stderr).With("module", "cmd/libdaemon")
|
|
42
42
|
|
|
43
43
|
var vmClientCodec *vm.ClientCodec
|
|
44
44
|
var agdServer *vm.AgdServer
|
package/daemon/cmd/root.go
CHANGED
|
@@ -10,12 +10,15 @@ import (
|
|
|
10
10
|
|
|
11
11
|
serverconfig "github.com/cosmos/cosmos-sdk/server/config"
|
|
12
12
|
|
|
13
|
-
rosettaCmd "
|
|
13
|
+
rosettaCmd "github.com/cosmos/rosetta/cmd"
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
"cosmossdk.io/log"
|
|
16
|
+
"cosmossdk.io/simapp/params"
|
|
17
|
+
simdcmd "cosmossdk.io/simapp/simd/cmd"
|
|
18
|
+
confixcmd "cosmossdk.io/tools/confix/cmd"
|
|
16
19
|
tmcfg "github.com/cometbft/cometbft/config"
|
|
17
20
|
tmcli "github.com/cometbft/cometbft/libs/cli"
|
|
18
|
-
"github.com/
|
|
21
|
+
dbm "github.com/cosmos/cosmos-db"
|
|
19
22
|
"github.com/cosmos/cosmos-sdk/client"
|
|
20
23
|
"github.com/cosmos/cosmos-sdk/client/config"
|
|
21
24
|
"github.com/cosmos/cosmos-sdk/client/debug"
|
|
@@ -24,23 +27,32 @@ import (
|
|
|
24
27
|
"github.com/cosmos/cosmos-sdk/client/pruning"
|
|
25
28
|
"github.com/cosmos/cosmos-sdk/client/rpc"
|
|
26
29
|
"github.com/cosmos/cosmos-sdk/client/snapshot"
|
|
30
|
+
"github.com/cosmos/cosmos-sdk/codec/address"
|
|
27
31
|
"github.com/cosmos/cosmos-sdk/server"
|
|
28
32
|
servertypes "github.com/cosmos/cosmos-sdk/server/types"
|
|
33
|
+
simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims"
|
|
29
34
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
35
|
+
"github.com/cosmos/cosmos-sdk/types/module"
|
|
30
36
|
authcmd "github.com/cosmos/cosmos-sdk/x/auth/client/cli"
|
|
31
37
|
"github.com/cosmos/cosmos-sdk/x/auth/types"
|
|
32
38
|
vestingcli "github.com/cosmos/cosmos-sdk/x/auth/vesting/client/cli"
|
|
33
39
|
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
|
|
40
|
+
"github.com/cosmos/cosmos-sdk/x/crisis"
|
|
34
41
|
genutilcli "github.com/cosmos/cosmos-sdk/x/genutil/client/cli"
|
|
35
42
|
"github.com/spf13/cast"
|
|
36
43
|
"github.com/spf13/cobra"
|
|
37
44
|
"github.com/spf13/viper"
|
|
38
45
|
|
|
46
|
+
"github.com/cosmos/cosmos-sdk/types/tx/signing"
|
|
47
|
+
"github.com/cosmos/cosmos-sdk/x/auth/tx"
|
|
48
|
+
authtxconfig "github.com/cosmos/cosmos-sdk/x/auth/tx/config"
|
|
49
|
+
|
|
39
50
|
gaia "github.com/Agoric/agoric-sdk/golang/cosmos/app"
|
|
40
|
-
"github.com/Agoric/agoric-sdk/golang/cosmos/app/
|
|
51
|
+
"github.com/Agoric/agoric-sdk/golang/cosmos/app/txconfig"
|
|
41
52
|
"github.com/Agoric/agoric-sdk/golang/cosmos/vm"
|
|
42
53
|
swingset "github.com/Agoric/agoric-sdk/golang/cosmos/x/swingset"
|
|
43
54
|
swingsetkeeper "github.com/Agoric/agoric-sdk/golang/cosmos/x/swingset/keeper"
|
|
55
|
+
rosetta "github.com/cosmos/rosetta"
|
|
44
56
|
)
|
|
45
57
|
|
|
46
58
|
var AppName = "agd"
|
|
@@ -53,6 +65,7 @@ type CustomAppConfig struct {
|
|
|
53
65
|
// Swingset must be named as expected by swingset.DefaultConfigTemplate
|
|
54
66
|
// and must use a mapstructure key matching swingset.ConfigPrefix.
|
|
55
67
|
Swingset swingset.SwingsetConfig `mapstructure:"swingset"`
|
|
68
|
+
Rosetta rosetta.Config `mapstructure:"rosetta"`
|
|
56
69
|
}
|
|
57
70
|
|
|
58
71
|
type cobraRunE func(cmd *cobra.Command, args []string) error
|
|
@@ -75,9 +88,27 @@ func appendToPreRunE(cmd *cobra.Command, fn cobraRunE) {
|
|
|
75
88
|
// NewRootCmd creates a new root command for simd. It is called once in the
|
|
76
89
|
// main function.
|
|
77
90
|
func NewRootCmd(sender vm.Sender) (*cobra.Command, params.EncodingConfig) {
|
|
78
|
-
|
|
91
|
+
// we "pre"-instantiate the application for getting the injected/configured encoding configuration
|
|
92
|
+
// note, this is not necessary when using app wiring, as depinject can be directly used (see root_v2.go)
|
|
93
|
+
|
|
94
|
+
appOpts := make(simtestutil.AppOptionsMap, 0)
|
|
95
|
+
tempApp := gaia.NewSimApp(
|
|
96
|
+
log.NewNopLogger(),
|
|
97
|
+
dbm.NewMemDB(),
|
|
98
|
+
nil,
|
|
99
|
+
false, // we don't want to run the app, just get the encoding config
|
|
100
|
+
appOpts,
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
encodingConfig := params.EncodingConfig{
|
|
104
|
+
Codec: tempApp.AppCodec(),
|
|
105
|
+
InterfaceRegistry: tempApp.InterfaceRegistry(),
|
|
106
|
+
TxConfig: tempApp.GetTxConfig(),
|
|
107
|
+
Amino: tempApp.LegacyAmino(),
|
|
108
|
+
}
|
|
109
|
+
|
|
79
110
|
initClientCtx := client.Context{}.
|
|
80
|
-
WithCodec(encodingConfig.
|
|
111
|
+
WithCodec(encodingConfig.Codec).
|
|
81
112
|
WithInterfaceRegistry(encodingConfig.InterfaceRegistry).
|
|
82
113
|
WithTxConfig(encodingConfig.TxConfig).
|
|
83
114
|
WithLegacyAmino(encodingConfig.Amino).
|
|
@@ -94,6 +125,7 @@ func NewRootCmd(sender vm.Sender) (*cobra.Command, params.EncodingConfig) {
|
|
|
94
125
|
cmd.SetOut(cmd.OutOrStdout())
|
|
95
126
|
cmd.SetErr(cmd.ErrOrStderr())
|
|
96
127
|
|
|
128
|
+
initClientCtx = initClientCtx.WithCmdContext(cmd.Context())
|
|
97
129
|
initClientCtx, err := client.ReadPersistentCommandFlags(initClientCtx, cmd.Flags())
|
|
98
130
|
if err != nil {
|
|
99
131
|
return err
|
|
@@ -104,22 +136,51 @@ func NewRootCmd(sender vm.Sender) (*cobra.Command, params.EncodingConfig) {
|
|
|
104
136
|
return err
|
|
105
137
|
}
|
|
106
138
|
|
|
139
|
+
// This needs to go after ReadFromClientConfig, as that function
|
|
140
|
+
// sets the RPC client needed for SIGN_MODE_TEXTUAL. This sign mode
|
|
141
|
+
// is only available if the client is online.
|
|
142
|
+
if !initClientCtx.Offline {
|
|
143
|
+
enabledSignModes := append(tx.DefaultSignModes, signing.SignMode_SIGN_MODE_TEXTUAL)
|
|
144
|
+
txConfigOpts := tx.ConfigOptions{
|
|
145
|
+
EnabledSignModes: enabledSignModes,
|
|
146
|
+
TextualCoinMetadataQueryFn: authtxconfig.NewGRPCCoinMetadataQueryFn(initClientCtx),
|
|
147
|
+
}
|
|
148
|
+
txConfig, err := txconfig.NewTxConfigWithOptionsWithCustomEncoders(
|
|
149
|
+
initClientCtx.Codec,
|
|
150
|
+
txConfigOpts,
|
|
151
|
+
)
|
|
152
|
+
if err != nil {
|
|
153
|
+
return err
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
initClientCtx = initClientCtx.WithTxConfig(txConfig)
|
|
157
|
+
}
|
|
158
|
+
|
|
107
159
|
if err := client.SetCmdClientContextHandler(initClientCtx, cmd); err != nil {
|
|
108
160
|
return err
|
|
109
161
|
}
|
|
110
162
|
|
|
111
163
|
customAppTemplate, customAppConfig := initAppConfig()
|
|
112
|
-
|
|
113
|
-
|
|
164
|
+
customCMTConfig := initCometBFTConfig()
|
|
165
|
+
|
|
166
|
+
return server.InterceptConfigsPreRunHandler(cmd, customAppTemplate, customAppConfig, customCMTConfig)
|
|
114
167
|
},
|
|
115
168
|
}
|
|
116
169
|
|
|
117
|
-
initRootCmd(sender, rootCmd, encodingConfig)
|
|
170
|
+
initRootCmd(sender, rootCmd, encodingConfig, tempApp.BasicModuleManager)
|
|
171
|
+
|
|
172
|
+
// add keyring to autocli opts
|
|
173
|
+
autoCliOpts := tempApp.AutoCliOpts()
|
|
174
|
+
autoCliOpts.ClientCtx = initClientCtx
|
|
175
|
+
|
|
176
|
+
if err := autoCliOpts.EnhanceRootCommand(rootCmd); err != nil {
|
|
177
|
+
panic(err)
|
|
178
|
+
}
|
|
118
179
|
|
|
119
180
|
return rootCmd, encodingConfig
|
|
120
181
|
}
|
|
121
182
|
|
|
122
|
-
func
|
|
183
|
+
func initCometBFTConfig() *tmcfg.Config {
|
|
123
184
|
cfg := tmcfg.DefaultConfig()
|
|
124
185
|
// customize config here
|
|
125
186
|
return cfg
|
|
@@ -149,7 +210,7 @@ func initAppConfig() (string, interface{}) {
|
|
|
149
210
|
return customAppTemplate, customAppConfig
|
|
150
211
|
}
|
|
151
212
|
|
|
152
|
-
func initRootCmd(sender vm.Sender, rootCmd *cobra.Command, encodingConfig params.EncodingConfig) {
|
|
213
|
+
func initRootCmd(sender vm.Sender, rootCmd *cobra.Command, encodingConfig params.EncodingConfig, basicManager module.BasicManager) {
|
|
153
214
|
cfg := sdk.GetConfig()
|
|
154
215
|
cfg.Seal()
|
|
155
216
|
|
|
@@ -160,12 +221,12 @@ func initRootCmd(sender vm.Sender, rootCmd *cobra.Command, encodingConfig params
|
|
|
160
221
|
|
|
161
222
|
genesisCmd := genutilcli.GenesisCoreCommand(
|
|
162
223
|
encodingConfig.TxConfig,
|
|
163
|
-
|
|
224
|
+
basicManager,
|
|
164
225
|
gaia.DefaultNodeHome,
|
|
165
226
|
)
|
|
166
227
|
|
|
167
228
|
rootCmd.AddCommand(
|
|
168
|
-
genutilcli.InitCmd(
|
|
229
|
+
genutilcli.InitCmd(basicManager, gaia.DefaultNodeHome),
|
|
169
230
|
genesisCmd,
|
|
170
231
|
)
|
|
171
232
|
// Alias all the genesis commands to the top level as well.
|
|
@@ -174,14 +235,19 @@ func initRootCmd(sender vm.Sender, rootCmd *cobra.Command, encodingConfig params
|
|
|
174
235
|
)
|
|
175
236
|
rootCmd.AddCommand(
|
|
176
237
|
tmcli.NewCompletionCmd(rootCmd, true),
|
|
177
|
-
NewTestnetCmd(
|
|
238
|
+
simdcmd.NewTestnetCmd(basicManager, banktypes.GenesisBalancesIterator{}, AppName),
|
|
178
239
|
debug.Cmd(),
|
|
179
|
-
|
|
240
|
+
confixcmd.ConfigCommand(),
|
|
180
241
|
pruning.Cmd(ac.newSnapshotsApp, gaia.DefaultNodeHome),
|
|
181
242
|
snapshot.Cmd(ac.newSnapshotsApp),
|
|
182
243
|
)
|
|
183
244
|
|
|
184
|
-
server.
|
|
245
|
+
server.AddCommandsWithStartCmdOptions(rootCmd, gaia.DefaultNodeHome, ac.newApp, ac.appExport, server.StartCmdOptions{
|
|
246
|
+
AddFlags: func(startCmd *cobra.Command) {
|
|
247
|
+
addStartFlags(startCmd)
|
|
248
|
+
crisis.AddModuleInitFlags(startCmd)
|
|
249
|
+
},
|
|
250
|
+
})
|
|
185
251
|
|
|
186
252
|
for _, command := range rootCmd.Commands() {
|
|
187
253
|
switch command.Name() {
|
|
@@ -219,14 +285,21 @@ func initRootCmd(sender vm.Sender, rootCmd *cobra.Command, encodingConfig params
|
|
|
219
285
|
}
|
|
220
286
|
|
|
221
287
|
// add keybase, auxiliary RPC, query, and tx child commands
|
|
288
|
+
qcmd := queryCommand()
|
|
289
|
+
tcmd := txCommand()
|
|
290
|
+
|
|
291
|
+
basicManager.AddQueryCommands(qcmd)
|
|
292
|
+
basicManager.AddTxCommands(tcmd)
|
|
222
293
|
rootCmd.AddCommand(
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
keys.Commands(
|
|
294
|
+
server.StatusCommand(),
|
|
295
|
+
qcmd,
|
|
296
|
+
tcmd,
|
|
297
|
+
keys.Commands(),
|
|
227
298
|
)
|
|
228
299
|
// add rosetta
|
|
229
|
-
rootCmd.AddCommand(
|
|
300
|
+
rootCmd.AddCommand(
|
|
301
|
+
rosettaCmd.RosettaCommand(encodingConfig.InterfaceRegistry, encodingConfig.Codec),
|
|
302
|
+
)
|
|
230
303
|
}
|
|
231
304
|
|
|
232
305
|
const (
|
|
@@ -266,16 +339,14 @@ func queryCommand() *cobra.Command {
|
|
|
266
339
|
}
|
|
267
340
|
|
|
268
341
|
cmd.AddCommand(
|
|
269
|
-
|
|
342
|
+
rpc.WaitTxCmd(),
|
|
270
343
|
rpc.ValidatorCommand(),
|
|
271
|
-
|
|
344
|
+
server.QueryBlockCmd(),
|
|
272
345
|
authcmd.QueryTxsByEventsCmd(),
|
|
346
|
+
server.QueryBlocksCmd(),
|
|
273
347
|
authcmd.QueryTxCmd(),
|
|
274
348
|
)
|
|
275
349
|
|
|
276
|
-
gaia.ModuleBasics.AddQueryCommands(cmd)
|
|
277
|
-
cmd.PersistentFlags().String(flags.FlagChainID, "", "The network chain ID")
|
|
278
|
-
|
|
279
350
|
return cmd
|
|
280
351
|
}
|
|
281
352
|
|
|
@@ -298,12 +369,10 @@ func txCommand() *cobra.Command {
|
|
|
298
369
|
authcmd.GetBroadcastCommand(),
|
|
299
370
|
authcmd.GetEncodeCommand(),
|
|
300
371
|
authcmd.GetDecodeCommand(),
|
|
301
|
-
authcmd.GetAuxToFeeCommand(),
|
|
302
372
|
flags.LineBreak,
|
|
303
|
-
vestingcli.GetTxCmd(),
|
|
373
|
+
vestingcli.GetTxCmd(address.NewBech32Codec(sdk.Bech32PrefixAccAddr)),
|
|
304
374
|
)
|
|
305
375
|
|
|
306
|
-
gaia.ModuleBasics.AddTxCommands(cmd)
|
|
307
376
|
cmd.PersistentFlags().String(flags.FlagChainID, "", "The network chain ID")
|
|
308
377
|
|
|
309
378
|
return cmd
|
|
@@ -506,7 +575,7 @@ func (ac appCreator) appExport(
|
|
|
506
575
|
appOpts,
|
|
507
576
|
)
|
|
508
577
|
|
|
509
|
-
if
|
|
578
|
+
if !loadLatest {
|
|
510
579
|
if err := gaiaApp.LoadHeight(height); err != nil {
|
|
511
580
|
return servertypes.ExportedApp{}, err
|
|
512
581
|
}
|
package/daemon/cmd/root_test.go
CHANGED
|
@@ -10,8 +10,8 @@ import (
|
|
|
10
10
|
"github.com/spf13/pflag"
|
|
11
11
|
"github.com/stretchr/testify/require"
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
"github.com/
|
|
13
|
+
"cosmossdk.io/log"
|
|
14
|
+
dbm "github.com/cosmos/cosmos-db"
|
|
15
15
|
"github.com/cosmos/cosmos-sdk/server"
|
|
16
16
|
svrcmd "github.com/cosmos/cosmos-sdk/server/cmd"
|
|
17
17
|
serverconfig "github.com/cosmos/cosmos-sdk/server/config"
|
|
@@ -39,10 +39,8 @@ func TestCLIFlags(t *testing.T) {
|
|
|
39
39
|
// handling should not be added in the Agoric app (most likely in root.go)
|
|
40
40
|
expectedFlagNames := map[string]interface{}{
|
|
41
41
|
"abci": "",
|
|
42
|
-
"abci-client-type": "",
|
|
43
42
|
"address": "",
|
|
44
43
|
"app-db-backend": "",
|
|
45
|
-
"block_sync": "",
|
|
46
44
|
"cpu-profile": "",
|
|
47
45
|
"db_backend": "",
|
|
48
46
|
"db_dir": "",
|
|
@@ -53,7 +51,6 @@ func TestCLIFlags(t *testing.T) {
|
|
|
53
51
|
"home": "",
|
|
54
52
|
"iavl-cache-size": "",
|
|
55
53
|
"iavl-disable-fastnode": "",
|
|
56
|
-
"iavl-lazy-loading": "",
|
|
57
54
|
"index-events": "",
|
|
58
55
|
"inter-block-cache": "",
|
|
59
56
|
"inv-check-period": "",
|
|
@@ -65,11 +62,13 @@ func TestCLIFlags(t *testing.T) {
|
|
|
65
62
|
"pruning": "default",
|
|
66
63
|
"pruning-interval": "",
|
|
67
64
|
"pruning-keep-recent": "",
|
|
65
|
+
"query-gas-limit": "",
|
|
66
|
+
"shutdown-grace": "",
|
|
68
67
|
"trace": "",
|
|
69
68
|
"trace-store": "",
|
|
70
69
|
"transport": "",
|
|
71
70
|
"unsafe-skip-upgrades": "",
|
|
72
|
-
"with-
|
|
71
|
+
"with-comet": "",
|
|
73
72
|
|
|
74
73
|
"api.address": "",
|
|
75
74
|
"api.enable": "",
|
|
@@ -84,9 +83,7 @@ func TestCLIFlags(t *testing.T) {
|
|
|
84
83
|
"consensus.create_empty_blocks_interval": "",
|
|
85
84
|
"consensus.double_sign_check_height": "",
|
|
86
85
|
|
|
87
|
-
"grpc-web.
|
|
88
|
-
"grpc-web.enable": "",
|
|
89
|
-
"grpc-web.enable-unsafe-cors": "",
|
|
86
|
+
"grpc-web.enable": "",
|
|
90
87
|
|
|
91
88
|
"grpc.address": "",
|
|
92
89
|
"grpc.enable": "",
|
|
@@ -109,27 +106,12 @@ func TestCLIFlags(t *testing.T) {
|
|
|
109
106
|
"rpc.pprof_laddr": "",
|
|
110
107
|
"rpc.unsafe": "",
|
|
111
108
|
|
|
112
|
-
"rosetta.address": "",
|
|
113
|
-
"rosetta.blockchain": "",
|
|
114
|
-
"rosetta.denom-to-suggest": "",
|
|
115
|
-
"rosetta.enable-fee-suggestion": "",
|
|
116
|
-
"rosetta.enable": "",
|
|
117
|
-
"rosetta.gas-to-suggest": "",
|
|
118
|
-
"rosetta.network": "",
|
|
119
|
-
"rosetta.offline": "",
|
|
120
|
-
"rosetta.retries": "",
|
|
121
|
-
|
|
122
109
|
"state-sync.snapshot-interval": "",
|
|
123
110
|
"state-sync.snapshot-keep-recent": "",
|
|
124
111
|
|
|
125
|
-
"
|
|
126
|
-
|
|
127
|
-
"
|
|
128
|
-
"streamers.file.keys": "",
|
|
129
|
-
"streamers.file.output-metadata": "",
|
|
130
|
-
"streamers.file.prefix": "",
|
|
131
|
-
"streamers.file.stop-node-on-error": "",
|
|
132
|
-
"streamers.file.write_dir": "",
|
|
112
|
+
"streaming.abci.plugin": "",
|
|
113
|
+
"streaming.abci.keys": "",
|
|
114
|
+
"streaming.abci.stop-node-on-err": "",
|
|
133
115
|
|
|
134
116
|
"telemetry.enable-hostname-label": "",
|
|
135
117
|
"telemetry.enable-hostname": "",
|
|
@@ -138,6 +120,9 @@ func TestCLIFlags(t *testing.T) {
|
|
|
138
120
|
"telemetry.global-labels": "",
|
|
139
121
|
"telemetry.prometheus-retention-time": "",
|
|
140
122
|
"telemetry.service-name": "",
|
|
123
|
+
"telemetry.metrics-sink": "",
|
|
124
|
+
"telemetry.datadog-hostname": "",
|
|
125
|
+
"telemetry.statsd-addr": "",
|
|
141
126
|
}
|
|
142
127
|
unknownFlagNames := []string{}
|
|
143
128
|
missingFlagNames := map[string]bool{}
|
package/daemon/main.go
CHANGED
|
@@ -7,7 +7,6 @@ import (
|
|
|
7
7
|
"os/signal"
|
|
8
8
|
"syscall"
|
|
9
9
|
|
|
10
|
-
"github.com/cosmos/cosmos-sdk/server"
|
|
11
10
|
svrcmd "github.com/cosmos/cosmos-sdk/server/cmd"
|
|
12
11
|
|
|
13
12
|
"github.com/Agoric/agoric-sdk/golang/cosmos/agoric"
|
|
@@ -46,13 +45,7 @@ func RunWithController(sendToController vm.Sender) {
|
|
|
46
45
|
|
|
47
46
|
rootCmd, _ := cmd.NewRootCmd(sendToController)
|
|
48
47
|
if err := svrcmd.Execute(rootCmd, "", app.DefaultNodeHome); err != nil {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
os.Exit(e.Code)
|
|
52
|
-
|
|
53
|
-
default:
|
|
54
|
-
fmt.Fprintf(os.Stderr, "Error: %v\n", e)
|
|
55
|
-
os.Exit(1)
|
|
56
|
-
}
|
|
48
|
+
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
|
|
49
|
+
os.Exit(1)
|
|
57
50
|
}
|
|
58
51
|
}
|