@agoric/cosmos 0.35.0-u20.0 → 0.35.0-u21.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/.clang-format +116 -0
- package/CHANGELOG.md +14 -2
- package/Makefile +38 -67
- package/ante/ante.go +2 -2
- package/ante/inbound_test.go +1 -1
- package/app/app.go +173 -142
- package/app/export.go +6 -6
- package/app/genesis.go +4 -0
- package/app/sim_test.go +299 -50
- package/app/upgrade.go +125 -24
- 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 +34 -1
- package/daemon/cmd/root.go +26 -35
- package/daemon/cmd/root_test.go +5 -4
- package/daemon/cmd/testnet.go +221 -95
- package/daemon/main.go +1 -0
- package/git-revision.txt +1 -1
- package/go.mod +93 -58
- package/go.sum +148 -95
- package/package.json +6 -3
- package/proto/agoric/swingset/genesis.proto +7 -11
- package/proto/agoric/swingset/msgs.proto +56 -75
- package/proto/agoric/swingset/query.proto +7 -10
- package/proto/agoric/swingset/swingset.proto +79 -108
- package/proto/agoric/vbank/genesis.proto +5 -5
- package/proto/agoric/vbank/msgs.proto +1 -2
- package/proto/agoric/vbank/vbank.proto +42 -52
- package/proto/agoric/vibc/msgs.proto +8 -11
- package/proto/agoric/vstorage/genesis.proto +6 -9
- package/proto/agoric/vstorage/query.proto +19 -48
- package/proto/agoric/vstorage/vstorage.proto +4 -10
- package/proto/agoric/vtransfer/genesis.proto +7 -7
- package/proto/buf.gen.gogo.yaml +8 -0
- package/proto/buf.gen.pulsar.yaml +17 -0
- package/proto/buf.gen.swagger.yaml +5 -0
- package/proto/buf.yaml +10 -0
- package/scripts/protocgen.sh +14 -21
- package/third_party/proto/amino/amino.proto +79 -0
- package/third_party/proto/cosmos/base/v1beta1/coin.proto +7 -2
- package/third_party/proto/cosmos/ics23/v1/proofs.proto +243 -0
- package/third_party/proto/cosmos/msg/v1/msg.proto +30 -0
- package/third_party/proto/cosmos/upgrade/v1beta1/upgrade.proto +17 -5
- package/third_party/proto/cosmos_proto/cosmos.proto +16 -1
- package/third_party/proto/gogoproto/gogo.proto +2 -2
- package/third_party/proto/google/protobuf/any.proto +6 -3
- package/third_party/proto/ibc/core/channel/v1/channel.proto +1 -1
- package/third_party/proto/ibc/core/client/v1/client.proto +4 -2
- 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/vm/client.go +32 -7
- package/vm/proto_json.go +2 -2
- package/x/swingset/abci.go +1 -1
- package/x/swingset/alias.go +0 -1
- package/x/swingset/config.go +1 -1
- package/x/swingset/keeper/extension_snapshotter.go +1 -1
- package/x/swingset/keeper/extension_snapshotter_test.go +1 -1
- package/x/swingset/keeper/keeper.go +1 -1
- package/x/swingset/keeper/keeper_test.go +1 -1
- package/x/swingset/keeper/querier.go +1 -30
- 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 +1 -14
- package/x/swingset/types/default-params.go +24 -16
- package/x/swingset/types/genesis.pb.go +2 -2
- package/x/swingset/types/msgs.pb.go +4 -3
- package/x/swingset/types/msgs_test.go +1 -1
- package/x/swingset/types/query.pb.go +4 -3
- package/x/swingset/types/swingset.pb.go +2 -2
- package/x/vbank/genesis.go +1 -1
- package/x/vbank/keeper/querier.go +1 -21
- package/x/vbank/module.go +1 -16
- package/x/vbank/types/genesis.pb.go +2 -2
- package/x/vbank/types/msgs.pb.go +3 -2
- package/x/vbank/types/query.pb.go +4 -3
- package/x/vbank/types/vbank.pb.go +2 -2
- package/x/vbank/vbank_test.go +95 -16
- package/x/vibc/keeper/keeper.go +8 -5
- package/x/vibc/keeper/migrations.go +36 -0
- package/x/vibc/keeper/triggers.go +1 -1
- package/x/vibc/module.go +9 -17
- package/x/vibc/types/expected_keepers.go +5 -10
- package/x/vibc/types/ibc_module.go +4 -4
- package/x/vibc/types/msgs.go +1 -1
- package/x/vibc/types/msgs.pb.go +5 -4
- package/x/vibc/types/receiver.go +2 -2
- package/x/vlocalchain/keeper/keeper.go +3 -3
- package/x/vlocalchain/types/vlocalchain.pb.go +1 -1
- package/x/vlocalchain/vlocalchain_test.go +6 -6
- package/x/vstorage/alias.go +0 -1
- package/x/vstorage/client/cli/query.go +1 -1
- package/x/vstorage/genesis.go +1 -1
- package/x/vstorage/keeper/keeper.go +6 -5
- package/x/vstorage/keeper/keeper_test.go +24 -24
- package/x/vstorage/keeper/querier.go +1 -32
- package/x/vstorage/keeper/querier_test.go +41 -6
- package/x/vstorage/module.go +1 -14
- package/x/vstorage/types/genesis.pb.go +2 -2
- package/x/vstorage/types/query.pb.go +8 -5
- package/x/vstorage/types/vstorage.pb.go +2 -2
- package/x/vstorage/vstorage_test.go +3 -3
- package/x/vtransfer/genesis.go +1 -1
- package/x/vtransfer/ibc_middleware.go +4 -4
- package/x/vtransfer/ibc_middleware_test.go +10 -11
- package/x/vtransfer/keeper/keeper.go +5 -5
- package/x/vtransfer/module.go +1 -14
- package/x/vtransfer/types/expected_keepers.go +2 -18
- package/x/vtransfer/types/genesis.pb.go +2 -2
- package/x/vtransfer/utils_test.go +15 -15
- package/daemon/cmd/genaccounts.go +0 -195
package/app/upgrade.go
CHANGED
|
@@ -6,13 +6,28 @@ import (
|
|
|
6
6
|
|
|
7
7
|
"github.com/Agoric/agoric-sdk/golang/cosmos/vm"
|
|
8
8
|
swingsetkeeper "github.com/Agoric/agoric-sdk/golang/cosmos/x/swingset/keeper"
|
|
9
|
+
"github.com/cosmos/cosmos-sdk/baseapp"
|
|
9
10
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
10
11
|
"github.com/cosmos/cosmos-sdk/types/module"
|
|
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"
|
|
20
|
+
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"
|
|
11
23
|
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
|
|
24
|
+
|
|
25
|
+
ibctmmigrations "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint/migrations"
|
|
12
26
|
)
|
|
13
27
|
|
|
14
28
|
var upgradeNamesOfThisVersion = []string{
|
|
15
|
-
"agoric-upgrade-
|
|
29
|
+
"agoric-upgrade-21",
|
|
30
|
+
"agoric-upgrade-21-a3p",
|
|
16
31
|
}
|
|
17
32
|
|
|
18
33
|
// isUpgradeNameOfThisVersion returns whether the provided plan name is a
|
|
@@ -46,7 +61,8 @@ func isPrimaryUpgradeName(name string) bool {
|
|
|
46
61
|
return false
|
|
47
62
|
}
|
|
48
63
|
switch name {
|
|
49
|
-
case validUpgradeName("agoric-upgrade-
|
|
64
|
+
case validUpgradeName("agoric-upgrade-21"),
|
|
65
|
+
validUpgradeName("agoric-upgrade-21-a3p"):
|
|
50
66
|
return true
|
|
51
67
|
default:
|
|
52
68
|
panic(fmt.Errorf("unexpected upgrade name %s", validUpgradeName(name)))
|
|
@@ -94,17 +110,10 @@ func buildProposalStepWithArgs(moduleName string, entrypoint string, args ...vm.
|
|
|
94
110
|
|
|
95
111
|
func getVariantFromUpgradeName(upgradeName string) string {
|
|
96
112
|
switch upgradeName {
|
|
97
|
-
case "
|
|
113
|
+
case "agoric-upgrade-21-a3p":
|
|
98
114
|
return "A3P_INTEGRATION"
|
|
99
|
-
case "
|
|
115
|
+
case "agoric-upgrade-21":
|
|
100
116
|
return "MAINNET"
|
|
101
|
-
case "UNRELEASED_devnet":
|
|
102
|
-
return "DEVNET"
|
|
103
|
-
case "UNRELEASED_emerynet":
|
|
104
|
-
return "EMERYNET"
|
|
105
|
-
case "UNRELEASED_BASIC":
|
|
106
|
-
// Noupgrade for this version.
|
|
107
|
-
return ""
|
|
108
117
|
default:
|
|
109
118
|
return ""
|
|
110
119
|
}
|
|
@@ -129,11 +138,64 @@ func buildProposalStepFromScript(targetUpgrade string, builderScript string) (vm
|
|
|
129
138
|
)
|
|
130
139
|
}
|
|
131
140
|
|
|
132
|
-
//
|
|
133
|
-
func
|
|
141
|
+
// RegisterUpgradeHandlers registers the upgrade handlers for all upgradeNames.
|
|
142
|
+
func (app *GaiaApp) RegisterUpgradeHandlers() {
|
|
143
|
+
// Set param key table for params module migration
|
|
144
|
+
for _, subspace := range app.ParamsKeeper.GetSubspaces() {
|
|
145
|
+
subspace := subspace
|
|
146
|
+
|
|
147
|
+
var keyTable paramstypes.KeyTable
|
|
148
|
+
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
|
|
165
|
+
default:
|
|
166
|
+
continue
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
if !subspace.HasKeyTable() {
|
|
170
|
+
subspace.WithKeyTable(keyTable)
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
baseAppLegacySS := app.ParamsKeeper.Subspace(baseapp.Paramspace).WithKeyTable(paramstypes.ConsensusParamsKeyTable())
|
|
175
|
+
|
|
176
|
+
for _, name := range upgradeNamesOfThisVersion {
|
|
177
|
+
app.UpgradeKeeper.SetUpgradeHandler(
|
|
178
|
+
name,
|
|
179
|
+
upgrade21Handler(app, name, baseAppLegacySS),
|
|
180
|
+
)
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
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) {
|
|
186
|
+
_ = targetUpgrade
|
|
134
187
|
return func(ctx sdk.Context, plan upgradetypes.Plan, fromVm module.VersionMap) (module.VersionMap, error) {
|
|
135
188
|
app.CheckControllerInited(false)
|
|
136
189
|
|
|
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
|
+
|
|
137
199
|
CoreProposalSteps := []vm.CoreProposalStep{}
|
|
138
200
|
|
|
139
201
|
// These CoreProposalSteps are not idempotent and should only be executed
|
|
@@ -149,26 +211,65 @@ func upgrade20Handler(app *GaiaApp, targetUpgrade string) func(sdk.Context, upgr
|
|
|
149
211
|
// Each CoreProposalStep runs sequentially, and can be constructed from
|
|
150
212
|
// one or more modules executing in parallel within the step.
|
|
151
213
|
CoreProposalSteps = append(CoreProposalSteps,
|
|
152
|
-
// Orchestration vats: Fix memory leak in vow tools
|
|
153
|
-
// vat-ibc (included in orchestration): Accommodate string sequence numbers.
|
|
154
|
-
vm.CoreProposalStepForModules(
|
|
155
|
-
"@agoric/builders/scripts/vats/upgrade-orchestration.js",
|
|
156
|
-
),
|
|
157
214
|
// Register a new ZCF to be used for all future contract instances and upgrades
|
|
158
215
|
vm.CoreProposalStepForModules(
|
|
159
216
|
"@agoric/builders/scripts/vats/upgrade-zcf.js",
|
|
160
217
|
),
|
|
218
|
+
vm.CoreProposalStepForModules(
|
|
219
|
+
"@agoric/builders/scripts/vats/upgrade-provisionPool-to-BLD.js",
|
|
220
|
+
),
|
|
161
221
|
// because of #10794, we need to do at least a null upgrade of
|
|
162
222
|
// the walletFactory on every software upgrade
|
|
163
223
|
vm.CoreProposalStepForModules(
|
|
164
224
|
"@agoric/builders/scripts/smart-wallet/build-wallet-factory2-upgrade.js",
|
|
165
225
|
),
|
|
166
|
-
// vat-bank is slowly leaking, possibly because of the liveslots resolved promise leak
|
|
167
|
-
// (https://github.com/Agoric/agoric-sdk/issues/11118). Restart to pick up the fix.
|
|
168
|
-
vm.CoreProposalStepForModules(
|
|
169
|
-
"@agoric/builders/scripts/vats/upgrade-bank.js",
|
|
170
|
-
),
|
|
171
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
|
+
)
|
|
244
|
+
if err != nil {
|
|
245
|
+
return module.VersionMap{}, err
|
|
246
|
+
}
|
|
247
|
+
CoreProposalSteps = append(CoreProposalSteps,
|
|
248
|
+
reserveUpgradeStep,
|
|
249
|
+
)
|
|
250
|
+
|
|
251
|
+
// terminationTargets is a slice of "$boardID:$instanceKitLabel" strings.
|
|
252
|
+
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"}
|
|
259
|
+
}
|
|
260
|
+
if len(terminationTargets) > 0 {
|
|
261
|
+
args := []vm.Jsonable{terminationTargets}
|
|
262
|
+
terminationStep, err := buildProposalStepWithArgs(
|
|
263
|
+
"@agoric/vats/src/proposals/terminate-governed-instance.js",
|
|
264
|
+
// defaultProposalBuilder(powers, targets)
|
|
265
|
+
"defaultProposalBuilder",
|
|
266
|
+
args...,
|
|
267
|
+
)
|
|
268
|
+
if err != nil {
|
|
269
|
+
return module.VersionMap{}, err
|
|
270
|
+
}
|
|
271
|
+
CoreProposalSteps = append(CoreProposalSteps, terminationStep)
|
|
272
|
+
}
|
|
172
273
|
}
|
|
173
274
|
|
|
174
275
|
app.upgradeDetails = &upgradeDetails{
|
|
@@ -181,7 +282,7 @@ func upgrade20Handler(app *GaiaApp, targetUpgrade string) func(sdk.Context, upgr
|
|
|
181
282
|
}
|
|
182
283
|
|
|
183
284
|
// Always run module migrations
|
|
184
|
-
mvm, err := app.
|
|
285
|
+
mvm, err := app.ModuleManager.RunMigrations(ctx, app.configurator, fromVm)
|
|
185
286
|
if err != nil {
|
|
186
287
|
return mvm, err
|
|
187
288
|
}
|
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
|
+
"agoric-upgrade-21-a3p",
|
|
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
|
@@ -10,8 +10,8 @@ import (
|
|
|
10
10
|
"syscall"
|
|
11
11
|
"time"
|
|
12
12
|
|
|
13
|
+
"github.com/cometbft/cometbft/libs/log"
|
|
13
14
|
"github.com/spf13/cast"
|
|
14
|
-
"github.com/tendermint/tendermint/libs/log"
|
|
15
15
|
|
|
16
16
|
gaia "github.com/Agoric/agoric-sdk/golang/cosmos/app"
|
|
17
17
|
"github.com/Agoric/agoric-sdk/golang/cosmos/daemon"
|
package/cmd/libdaemon/main.go
CHANGED
|
@@ -15,8 +15,9 @@ import (
|
|
|
15
15
|
"net/rpc"
|
|
16
16
|
"os"
|
|
17
17
|
"path/filepath"
|
|
18
|
+
"runtime/debug"
|
|
18
19
|
|
|
19
|
-
log "github.com/
|
|
20
|
+
log "github.com/cometbft/cometbft/libs/log"
|
|
20
21
|
|
|
21
22
|
gaia "github.com/Agoric/agoric-sdk/golang/cosmos/app"
|
|
22
23
|
"github.com/Agoric/agoric-sdk/golang/cosmos/daemon"
|
|
@@ -25,6 +26,11 @@ import (
|
|
|
25
26
|
servertypes "github.com/cosmos/cosmos-sdk/server/types"
|
|
26
27
|
)
|
|
27
28
|
|
|
29
|
+
// Taken from sysexits.h
|
|
30
|
+
const (
|
|
31
|
+
EX_SOFTWARE = 70 /* internal software error */
|
|
32
|
+
)
|
|
33
|
+
|
|
28
34
|
type goReturn = struct {
|
|
29
35
|
str string
|
|
30
36
|
err error
|
|
@@ -32,6 +38,8 @@ type goReturn = struct {
|
|
|
32
38
|
|
|
33
39
|
const SwingSetPort = 123
|
|
34
40
|
|
|
41
|
+
var logger = log.NewTMLogger(log.NewSyncWriter(os.Stderr)).With("module", "cmd/libdaemon")
|
|
42
|
+
|
|
35
43
|
var vmClientCodec *vm.ClientCodec
|
|
36
44
|
var agdServer *vm.AgdServer
|
|
37
45
|
|
|
@@ -59,8 +67,29 @@ func ConnectVMClientCodec(ctx context.Context, nodePort int, sendFunc func(int,
|
|
|
59
67
|
return vmClientCodec, sendToNode
|
|
60
68
|
}
|
|
61
69
|
|
|
70
|
+
// handlePanic is a helper function to recover from panics, log them, and exit the process.
|
|
71
|
+
func handlePanic(caller string) {
|
|
72
|
+
if r := recover(); r != nil {
|
|
73
|
+
defer func() {
|
|
74
|
+
if err := recover(); err != nil {
|
|
75
|
+
// If we panic again, we will exit the process without logging the error or stack.
|
|
76
|
+
os.Stderr.WriteString("Double panic in exported Go function: " + caller + "\n")
|
|
77
|
+
os.Exit(EX_SOFTWARE)
|
|
78
|
+
}
|
|
79
|
+
}()
|
|
80
|
+
|
|
81
|
+
// Log the panic with the caller information.
|
|
82
|
+
logger.Error("Panic in exported Go function", "caller", caller, "error", r, "stack", debug.Stack())
|
|
83
|
+
|
|
84
|
+
// Exit the process with a non-zero exit code.
|
|
85
|
+
os.Exit(EX_SOFTWARE)
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
62
89
|
//export RunAgCosmosDaemon
|
|
63
90
|
func RunAgCosmosDaemon(nodePort C.int, toNode C.sendFunc, cosmosArgs []*C.char) C.int {
|
|
91
|
+
defer handlePanic("RunAgCosmosDaemon")
|
|
92
|
+
|
|
64
93
|
userHomeDir, err := os.UserHomeDir()
|
|
65
94
|
if err != nil {
|
|
66
95
|
panic(err)
|
|
@@ -92,6 +121,8 @@ func RunAgCosmosDaemon(nodePort C.int, toNode C.sendFunc, cosmosArgs []*C.char)
|
|
|
92
121
|
// fmt.Fprintln(os.Stderr, "Starting Cosmos", args)
|
|
93
122
|
os.Args = args
|
|
94
123
|
go func() {
|
|
124
|
+
defer handlePanic("daemon.RunWithController")
|
|
125
|
+
|
|
95
126
|
// We run in the background, but exit when the job is over.
|
|
96
127
|
// swingset.SendToNode("hello from Initial Go!")
|
|
97
128
|
exitCode := 0
|
|
@@ -112,6 +143,7 @@ func RunAgCosmosDaemon(nodePort C.int, toNode C.sendFunc, cosmosArgs []*C.char)
|
|
|
112
143
|
|
|
113
144
|
//export ReplyToGo
|
|
114
145
|
func ReplyToGo(replyPort C.int, isError C.int, resp C.Body) C.int {
|
|
146
|
+
defer handlePanic("ReplyToGo")
|
|
115
147
|
respStr := C.GoString(resp)
|
|
116
148
|
// fmt.Printf("Reply to Go %d %s\n", replyPort, respStr)
|
|
117
149
|
if err := vmClientCodec.Receive(int(replyPort), int(isError) != 0, respStr); err != nil {
|
|
@@ -126,6 +158,7 @@ type errorWrapper struct {
|
|
|
126
158
|
|
|
127
159
|
//export SendToGo
|
|
128
160
|
func SendToGo(port C.int, msg C.Body) C.Body {
|
|
161
|
+
defer handlePanic("SendToGo")
|
|
129
162
|
msgStr := C.GoString(msg)
|
|
130
163
|
// fmt.Fprintln(os.Stderr, "Send to Go", msgStr)
|
|
131
164
|
var respStr string
|
package/daemon/cmd/root.go
CHANGED
|
@@ -10,6 +10,12 @@ import (
|
|
|
10
10
|
|
|
11
11
|
serverconfig "github.com/cosmos/cosmos-sdk/server/config"
|
|
12
12
|
|
|
13
|
+
rosettaCmd "cosmossdk.io/tools/rosetta/cmd"
|
|
14
|
+
|
|
15
|
+
dbm "github.com/cometbft/cometbft-db"
|
|
16
|
+
tmcfg "github.com/cometbft/cometbft/config"
|
|
17
|
+
tmcli "github.com/cometbft/cometbft/libs/cli"
|
|
18
|
+
"github.com/cometbft/cometbft/libs/log"
|
|
13
19
|
"github.com/cosmos/cosmos-sdk/client"
|
|
14
20
|
"github.com/cosmos/cosmos-sdk/client/config"
|
|
15
21
|
"github.com/cosmos/cosmos-sdk/client/debug"
|
|
@@ -29,10 +35,6 @@ import (
|
|
|
29
35
|
"github.com/spf13/cast"
|
|
30
36
|
"github.com/spf13/cobra"
|
|
31
37
|
"github.com/spf13/viper"
|
|
32
|
-
tmcfg "github.com/tendermint/tendermint/config"
|
|
33
|
-
tmcli "github.com/tendermint/tendermint/libs/cli"
|
|
34
|
-
"github.com/tendermint/tendermint/libs/log"
|
|
35
|
-
dbm "github.com/tendermint/tm-db"
|
|
36
38
|
|
|
37
39
|
gaia "github.com/Agoric/agoric-sdk/golang/cosmos/app"
|
|
38
40
|
"github.com/Agoric/agoric-sdk/golang/cosmos/app/params"
|
|
@@ -131,7 +133,7 @@ func initAppConfig() (string, interface{}) {
|
|
|
131
133
|
// FIXME: We may want a non-zero min gas price.
|
|
132
134
|
// For now, we set it to zero to reduce friction (the default "" fails
|
|
133
135
|
// startup, forcing each validator to set their own value).
|
|
134
|
-
srvCfg.MinGasPrices = "
|
|
136
|
+
srvCfg.MinGasPrices = "0ubld"
|
|
135
137
|
|
|
136
138
|
customAppConfig := CustomAppConfig{
|
|
137
139
|
Config: *srvCfg,
|
|
@@ -152,20 +154,27 @@ func initRootCmd(sender vm.Sender, rootCmd *cobra.Command, encodingConfig params
|
|
|
152
154
|
cfg.Seal()
|
|
153
155
|
|
|
154
156
|
ac := appCreator{
|
|
155
|
-
encCfg: encodingConfig,
|
|
156
157
|
sender: sender,
|
|
157
158
|
agdServer: vm.NewAgdServer(),
|
|
158
159
|
}
|
|
159
160
|
|
|
161
|
+
genesisCmd := genutilcli.GenesisCoreCommand(
|
|
162
|
+
encodingConfig.TxConfig,
|
|
163
|
+
gaia.ModuleBasics,
|
|
164
|
+
gaia.DefaultNodeHome,
|
|
165
|
+
)
|
|
166
|
+
|
|
160
167
|
rootCmd.AddCommand(
|
|
161
168
|
genutilcli.InitCmd(gaia.ModuleBasics, gaia.DefaultNodeHome),
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
169
|
+
genesisCmd,
|
|
170
|
+
)
|
|
171
|
+
// Alias all the genesis commands to the top level as well.
|
|
172
|
+
rootCmd.AddCommand(
|
|
173
|
+
genesisCmd.Commands()...,
|
|
174
|
+
)
|
|
175
|
+
rootCmd.AddCommand(
|
|
167
176
|
tmcli.NewCompletionCmd(rootCmd, true),
|
|
168
|
-
|
|
177
|
+
NewTestnetCmd(gaia.ModuleBasics, banktypes.GenesisBalancesIterator{}, AppName),
|
|
169
178
|
debug.Cmd(),
|
|
170
179
|
config.Cmd(),
|
|
171
180
|
pruning.Cmd(ac.newSnapshotsApp, gaia.DefaultNodeHome),
|
|
@@ -217,7 +226,7 @@ func initRootCmd(sender vm.Sender, rootCmd *cobra.Command, encodingConfig params
|
|
|
217
226
|
keys.Commands(gaia.DefaultNodeHome),
|
|
218
227
|
)
|
|
219
228
|
// add rosetta
|
|
220
|
-
rootCmd.AddCommand(
|
|
229
|
+
rootCmd.AddCommand(rosettaCmd.RosettaCommand(encodingConfig.InterfaceRegistry, encodingConfig.Marshaler))
|
|
221
230
|
}
|
|
222
231
|
|
|
223
232
|
const (
|
|
@@ -301,7 +310,6 @@ func txCommand() *cobra.Command {
|
|
|
301
310
|
}
|
|
302
311
|
|
|
303
312
|
type appCreator struct {
|
|
304
|
-
encCfg params.EncodingConfig
|
|
305
313
|
sender vm.Sender
|
|
306
314
|
agdServer *vm.AgdServer
|
|
307
315
|
}
|
|
@@ -319,12 +327,6 @@ func (ac appCreator) newApp(
|
|
|
319
327
|
}
|
|
320
328
|
|
|
321
329
|
baseappOptions := server.DefaultBaseappOptions(appOpts)
|
|
322
|
-
|
|
323
|
-
skipUpgradeHeights := make(map[int64]bool)
|
|
324
|
-
for _, h := range cast.ToIntSlice(appOpts.Get(server.FlagUnsafeSkipUpgrades)) {
|
|
325
|
-
skipUpgradeHeights[int64(h)] = true
|
|
326
|
-
}
|
|
327
|
-
|
|
328
330
|
homePath := cast.ToString(appOpts.Get(flags.FlagHome))
|
|
329
331
|
|
|
330
332
|
// Set a default value for FlagSwingStoreExportDir based on homePath
|
|
@@ -337,10 +339,7 @@ func (ac appCreator) newApp(
|
|
|
337
339
|
|
|
338
340
|
return gaia.NewAgoricApp(
|
|
339
341
|
ac.sender, ac.agdServer,
|
|
340
|
-
logger, db, traceStore, true,
|
|
341
|
-
homePath,
|
|
342
|
-
cast.ToUint(appOpts.Get(server.FlagInvCheckPeriod)),
|
|
343
|
-
ac.encCfg,
|
|
342
|
+
logger, db, traceStore, true,
|
|
344
343
|
appOpts,
|
|
345
344
|
baseappOptions...,
|
|
346
345
|
)
|
|
@@ -360,14 +359,9 @@ func (ac appCreator) newSnapshotsApp(
|
|
|
360
359
|
|
|
361
360
|
baseappOptions := server.DefaultBaseappOptions(appOpts)
|
|
362
361
|
|
|
363
|
-
homePath := cast.ToString(appOpts.Get(flags.FlagHome))
|
|
364
|
-
|
|
365
362
|
return gaia.NewAgoricApp(
|
|
366
363
|
ac.sender, ac.agdServer,
|
|
367
|
-
logger, db, traceStore, true,
|
|
368
|
-
homePath,
|
|
369
|
-
cast.ToUint(appOpts.Get(server.FlagInvCheckPeriod)),
|
|
370
|
-
ac.encCfg,
|
|
364
|
+
logger, db, traceStore, true,
|
|
371
365
|
appOpts,
|
|
372
366
|
baseappOptions...,
|
|
373
367
|
)
|
|
@@ -479,6 +473,7 @@ func (ac appCreator) appExport(
|
|
|
479
473
|
forZeroHeight bool,
|
|
480
474
|
jailAllowedAddrs []string,
|
|
481
475
|
appOpts servertypes.AppOptions,
|
|
476
|
+
modulesToExport []string,
|
|
482
477
|
) (servertypes.ExportedApp, error) {
|
|
483
478
|
swingStoreExportMode, ok := appOpts.Get(gaia.FlagSwingStoreExportMode).(string)
|
|
484
479
|
if !(ok && allowedSwingSetExportModes[swingStoreExportMode]) {
|
|
@@ -508,10 +503,6 @@ func (ac appCreator) appExport(
|
|
|
508
503
|
db,
|
|
509
504
|
traceStore,
|
|
510
505
|
loadLatest,
|
|
511
|
-
map[int64]bool{},
|
|
512
|
-
homePath,
|
|
513
|
-
cast.ToUint(appOpts.Get(server.FlagInvCheckPeriod)),
|
|
514
|
-
ac.encCfg,
|
|
515
506
|
appOpts,
|
|
516
507
|
)
|
|
517
508
|
|
|
@@ -521,7 +512,7 @@ func (ac appCreator) appExport(
|
|
|
521
512
|
}
|
|
522
513
|
}
|
|
523
514
|
|
|
524
|
-
return gaiaApp.ExportAppStateAndValidators(forZeroHeight, jailAllowedAddrs)
|
|
515
|
+
return gaiaApp.ExportAppStateAndValidators(forZeroHeight, jailAllowedAddrs, modulesToExport)
|
|
525
516
|
}
|
|
526
517
|
|
|
527
518
|
// replaceCosmosSnapshotExportCommand monkey-patches the "snapshots export" command
|
package/daemon/cmd/root_test.go
CHANGED
|
@@ -10,12 +10,12 @@ 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
15
|
"github.com/cosmos/cosmos-sdk/server"
|
|
14
16
|
svrcmd "github.com/cosmos/cosmos-sdk/server/cmd"
|
|
15
17
|
serverconfig "github.com/cosmos/cosmos-sdk/server/config"
|
|
16
18
|
servertypes "github.com/cosmos/cosmos-sdk/server/types"
|
|
17
|
-
"github.com/tendermint/tendermint/libs/log"
|
|
18
|
-
dbm "github.com/tendermint/tm-db"
|
|
19
19
|
|
|
20
20
|
app "github.com/Agoric/agoric-sdk/golang/cosmos/app"
|
|
21
21
|
"github.com/Agoric/agoric-sdk/golang/cosmos/daemon/cmd"
|
|
@@ -42,10 +42,10 @@ func TestCLIFlags(t *testing.T) {
|
|
|
42
42
|
"abci-client-type": "",
|
|
43
43
|
"address": "",
|
|
44
44
|
"app-db-backend": "",
|
|
45
|
+
"block_sync": "",
|
|
45
46
|
"cpu-profile": "",
|
|
46
47
|
"db_backend": "",
|
|
47
48
|
"db_dir": "",
|
|
48
|
-
"fast_sync": "",
|
|
49
49
|
"genesis_hash": "",
|
|
50
50
|
"grpc-only": "",
|
|
51
51
|
"halt-height": "",
|
|
@@ -93,6 +93,8 @@ func TestCLIFlags(t *testing.T) {
|
|
|
93
93
|
"grpc.max-recv-msg-size": "",
|
|
94
94
|
"grpc.max-send-msg-size": "",
|
|
95
95
|
|
|
96
|
+
"mempool.max-txs": "",
|
|
97
|
+
|
|
96
98
|
"p2p.external-address": "",
|
|
97
99
|
"p2p.laddr": "",
|
|
98
100
|
"p2p.persistent_peers": "",
|
|
@@ -101,7 +103,6 @@ func TestCLIFlags(t *testing.T) {
|
|
|
101
103
|
"p2p.seed_mode": "",
|
|
102
104
|
"p2p.seeds": "",
|
|
103
105
|
"p2p.unconditional_peer_ids": "",
|
|
104
|
-
"p2p.upnp": "",
|
|
105
106
|
|
|
106
107
|
"rpc.grpc_laddr": "",
|
|
107
108
|
"rpc.laddr": "",
|