@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.
Files changed (113) hide show
  1. package/CHANGELOG.md +11 -187
  2. package/Makefile +2 -2
  3. package/ante/ante.go +2 -2
  4. package/ante/inbound.go +1 -2
  5. package/ante/inbound_test.go +3 -1
  6. package/ante/vm_admission.go +1 -2
  7. package/app/app.go +255 -174
  8. package/app/encoding.go +6 -3
  9. package/app/export.go +50 -21
  10. package/app/genesis.go +7 -5
  11. package/app/params/encoding.go +1 -1
  12. package/app/params/proto.go +6 -4
  13. package/app/sim_test.go +11 -13
  14. package/app/txconfig/tx_config.go +169 -0
  15. package/app/upgrade.go +52 -97
  16. package/app/upgrade_test.go +1 -1
  17. package/cmd/agd/agvm.go +1 -1
  18. package/cmd/agd/main.go +1 -1
  19. package/cmd/libdaemon/main.go +2 -2
  20. package/daemon/cmd/root.go +99 -30
  21. package/daemon/cmd/root_test.go +12 -27
  22. package/daemon/main.go +2 -9
  23. package/git-revision.txt +1 -1
  24. package/go.mod +129 -109
  25. package/go.sum +228 -469
  26. package/package.json +2 -2
  27. package/proto/agoric/swingset/msgs.proto +46 -9
  28. package/proto/agoric/swingset/swingset.proto +7 -2
  29. package/proto/agoric/vbank/vbank.proto +1 -1
  30. package/proto/agoric/vibc/msgs.proto +4 -0
  31. package/tests/e2e/vbank/vbank_test.go +172 -0
  32. package/tests/integrations/types/aminojson_test.go +214 -0
  33. package/tests/integrations/vbank/vbank_test.go +348 -0
  34. package/third_party/proto/amino/amino.proto +6 -1
  35. package/third_party/proto/cosmos/base/v1beta1/coin.proto +18 -5
  36. package/third_party/proto/cosmos/upgrade/v1beta1/upgrade.proto +4 -8
  37. package/third_party/proto/ibc/core/channel/v1/channel.proto +42 -17
  38. package/third_party/proto/ibc/core/client/v1/client.proto +48 -40
  39. package/types/address_hooks.go +2 -2
  40. package/types/address_hooks_test.go +3 -3
  41. package/types/ibc_packet.go +3 -3
  42. package/types/ibc_packet_test.go +3 -3
  43. package/types/kv_entry_helpers.go +3 -3
  44. package/types/kv_entry_helpers_test.go +2 -2
  45. package/types/legacy_address_encoder.go +58 -0
  46. package/vm/proto_json_test.go +1 -1
  47. package/vm/server.go +2 -1
  48. package/x/swingset/abci.go +2 -2
  49. package/x/swingset/client/cli/tx.go +16 -14
  50. package/x/swingset/config.go +1 -1
  51. package/x/swingset/genesis.go +2 -1
  52. package/x/swingset/handler.go +2 -1
  53. package/x/swingset/keeper/extension_snapshotter.go +14 -5
  54. package/x/swingset/keeper/extension_snapshotter_test.go +1 -1
  55. package/x/swingset/keeper/keeper.go +21 -17
  56. package/x/swingset/keeper/keeper_test.go +10 -7
  57. package/x/swingset/keeper/msg_server.go +26 -5
  58. package/x/swingset/keeper/swing_store_exports_handler.go +1 -1
  59. package/x/swingset/keeper/swing_store_exports_handler_test.go +1 -1
  60. package/x/swingset/module.go +20 -22
  61. package/x/swingset/types/codec.go +10 -5
  62. package/x/swingset/types/default-params.go +13 -12
  63. package/x/swingset/types/expected_keepers.go +5 -4
  64. package/x/swingset/types/msgs.go +50 -36
  65. package/x/swingset/types/msgs.pb.go +60 -51
  66. package/x/swingset/types/params_test.go +21 -20
  67. package/x/swingset/types/swingset.pb.go +67 -61
  68. package/x/vbank/genesis.go +12 -8
  69. package/x/vbank/handler.go +2 -1
  70. package/x/vbank/keeper/grpc_query.go +4 -1
  71. package/x/vbank/keeper/keeper.go +108 -23
  72. package/x/vbank/keeper/querier.go +4 -1
  73. package/x/vbank/keeper/rewards.go +6 -2
  74. package/x/vbank/module.go +47 -75
  75. package/x/vbank/types/expected_keepers.go +15 -10
  76. package/x/vbank/types/key.go +3 -0
  77. package/x/vbank/types/params.go +4 -3
  78. package/x/vbank/types/vbank.pb.go +41 -40
  79. package/x/vbank/vbank.go +25 -10
  80. package/x/vbank/vbank_test.go +213 -154
  81. package/x/vibc/handler.go +2 -1
  82. package/x/vibc/keeper/keeper.go +10 -10
  83. package/x/vibc/keeper/migrations.go +1 -1
  84. package/x/vibc/keeper/triggers.go +1 -1
  85. package/x/vibc/module.go +5 -22
  86. package/x/vibc/types/codec.go +2 -1
  87. package/x/vibc/types/expected_keepers.go +7 -5
  88. package/x/vibc/types/ibc_module.go +5 -5
  89. package/x/vibc/types/msgs.go +30 -7
  90. package/x/vibc/types/msgs.pb.go +29 -25
  91. package/x/vibc/types/receiver.go +2 -2
  92. package/x/vlocalchain/handler.go +2 -1
  93. package/x/vlocalchain/keeper/keeper.go +17 -5
  94. package/x/vlocalchain/keeper/keeper_test.go +3 -2
  95. package/x/vlocalchain/types/expected_keepers.go +7 -4
  96. package/x/vlocalchain/vlocalchain_test.go +38 -26
  97. package/x/vstorage/genesis.go +10 -10
  98. package/x/vstorage/handler.go +2 -1
  99. package/x/vstorage/keeper/keeper.go +68 -46
  100. package/x/vstorage/keeper/keeper_test.go +35 -19
  101. package/x/vstorage/module.go +27 -13
  102. package/x/vstorage/testing/queue.go +5 -3
  103. package/x/vstorage/vstorage.go +2 -1
  104. package/x/vstorage/vstorage_test.go +21 -17
  105. package/x/vtransfer/genesis.go +1 -3
  106. package/x/vtransfer/handler.go +3 -2
  107. package/x/vtransfer/ibc_middleware.go +5 -5
  108. package/x/vtransfer/ibc_middleware_test.go +43 -29
  109. package/x/vtransfer/keeper/keeper.go +35 -33
  110. package/x/vtransfer/module.go +8 -11
  111. package/x/vtransfer/types/expected_keepers.go +3 -3
  112. package/x/vtransfer/utils_test.go +26 -11
  113. 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
- authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
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
- ibctmmigrations "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint/migrations"
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-21",
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-21"),
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
- if app.UpgradeKeeper.GetDoneHeight(ctx, name) != 0 {
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 "agoric-upgrade-21-a3p":
111
+ case "UNRELEASED_A3P_INTEGRATION":
114
112
  return "A3P_INTEGRATION"
115
- case "agoric-upgrade-21":
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 authtypes.ModuleName:
150
- keyTable = authtypes.ParamKeyTable() //nolint:staticcheck
151
- case banktypes.ModuleName:
152
- keyTable = banktypes.ParamKeyTable() //nolint:staticcheck
153
- case stakingtypes.ModuleName:
154
- keyTable = stakingtypes.ParamKeyTable() //nolint:staticcheck
155
- case minttypes.ModuleName:
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
- upgrade21Handler(app, name, baseAppLegacySS),
171
+ upgrade22Handler(app, name),
180
172
  )
181
173
  }
182
174
  }
183
175
 
184
- // upgrade21Handler performs standard upgrade actions plus custom actions for upgrade-21.
185
- func upgrade21Handler(app *GaiaApp, targetUpgrade string, baseAppLegacySS paramstypes.Subspace) func(sdk.Context, upgradetypes.Plan, module.VersionMap) (module.VersionMap, error) {
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(ctx sdk.Context, plan upgradetypes.Plan, fromVm module.VersionMap) (module.VersionMap, error) {
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
- // Each CoreProposalStep runs sequentially, and can be constructed from
212
- // one or more modules executing in parallel within the step.
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 module.VersionMap{}, err
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 getVariantFromUpgradeName(targetUpgrade) {
254
- case "MAINNET":
255
- // v111 "zcf-b1-4522b-stkATOM-USD_price_feed"
256
- terminationTargets = []string{"board052184:stkATOM-USD_price_feed"}
257
- case "A3P_INTEGRATION":
258
- terminationTargets = []string{"board04091:stATOM-USD_price_feed"}
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
- args...,
221
+ terminationTargets,
267
222
  )
268
223
  if err != nil {
269
224
  return module.VersionMap{}, err
@@ -17,7 +17,7 @@ func TestBuildProposalSteps(t *testing.T) {
17
17
  "buildProposalStepFromScript",
18
18
  func() (vm.CoreProposalStep, error) {
19
19
  return buildProposalStepFromScript(
20
- "agoric-upgrade-21-a3p",
20
+ "UNRELEASED_A3P_INTEGRATION",
21
21
  "@agoric/builders/scripts/vats/upgrade-orchestration.js",
22
22
  )
23
23
  },
package/cmd/agd/agvm.go CHANGED
@@ -5,7 +5,7 @@ import (
5
5
  "os"
6
6
  "os/exec"
7
7
 
8
- "github.com/cometbft/cometbft/libs/log"
8
+ "cosmossdk.io/log"
9
9
  )
10
10
 
11
11
  // NewVMCommand creates a new OS command to run the Agoric VM. It sets up the
package/cmd/agd/main.go CHANGED
@@ -10,7 +10,7 @@ import (
10
10
  "syscall"
11
11
  "time"
12
12
 
13
- "github.com/cometbft/cometbft/libs/log"
13
+ "cosmossdk.io/log"
14
14
  "github.com/spf13/cast"
15
15
 
16
16
  gaia "github.com/Agoric/agoric-sdk/golang/cosmos/app"
@@ -17,7 +17,7 @@ import (
17
17
  "path/filepath"
18
18
  "runtime/debug"
19
19
 
20
- log "github.com/cometbft/cometbft/libs/log"
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.NewTMLogger(log.NewSyncWriter(os.Stderr)).With("module", "cmd/libdaemon")
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
@@ -10,12 +10,15 @@ import (
10
10
 
11
11
  serverconfig "github.com/cosmos/cosmos-sdk/server/config"
12
12
 
13
- rosettaCmd "cosmossdk.io/tools/rosetta/cmd"
13
+ rosettaCmd "github.com/cosmos/rosetta/cmd"
14
14
 
15
- dbm "github.com/cometbft/cometbft-db"
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/cometbft/cometbft/libs/log"
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/params"
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
- encodingConfig := gaia.MakeEncodingConfig()
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.Marshaler).
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
- customTMConfig := initTendermintConfig()
113
- return server.InterceptConfigsPreRunHandler(cmd, customAppTemplate, customAppConfig, customTMConfig)
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 initTendermintConfig() *tmcfg.Config {
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
- gaia.ModuleBasics,
224
+ basicManager,
164
225
  gaia.DefaultNodeHome,
165
226
  )
166
227
 
167
228
  rootCmd.AddCommand(
168
- genutilcli.InitCmd(gaia.ModuleBasics, gaia.DefaultNodeHome),
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(gaia.ModuleBasics, banktypes.GenesisBalancesIterator{}, AppName),
238
+ simdcmd.NewTestnetCmd(basicManager, banktypes.GenesisBalancesIterator{}, AppName),
178
239
  debug.Cmd(),
179
- config.Cmd(),
240
+ confixcmd.ConfigCommand(),
180
241
  pruning.Cmd(ac.newSnapshotsApp, gaia.DefaultNodeHome),
181
242
  snapshot.Cmd(ac.newSnapshotsApp),
182
243
  )
183
244
 
184
- server.AddCommands(rootCmd, gaia.DefaultNodeHome, ac.newApp, ac.appExport, addStartFlags)
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
- rpc.StatusCommand(),
224
- queryCommand(),
225
- txCommand(),
226
- keys.Commands(gaia.DefaultNodeHome),
294
+ server.StatusCommand(),
295
+ qcmd,
296
+ tcmd,
297
+ keys.Commands(),
227
298
  )
228
299
  // add rosetta
229
- rootCmd.AddCommand(rosettaCmd.RosettaCommand(encodingConfig.InterfaceRegistry, encodingConfig.Marshaler))
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
- authcmd.GetAccountCmd(),
342
+ rpc.WaitTxCmd(),
270
343
  rpc.ValidatorCommand(),
271
- rpc.BlockCommand(),
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 height != -1 {
578
+ if !loadLatest {
510
579
  if err := gaiaApp.LoadHeight(height); err != nil {
511
580
  return servertypes.ExportedApp{}, err
512
581
  }
@@ -10,8 +10,8 @@ import (
10
10
  "github.com/spf13/pflag"
11
11
  "github.com/stretchr/testify/require"
12
12
 
13
- dbm "github.com/cometbft/cometbft-db"
14
- "github.com/cometbft/cometbft/libs/log"
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-tendermint": "",
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.address": "",
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
- "store.streamers": "",
126
-
127
- "streamers.file.fsync": "",
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
- switch e := err.(type) {
50
- case server.ErrorCode:
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
  }