@agoric/cosmos 0.35.0-u20.0 → 0.35.0-u21.0.1
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/coverage.txt +8531 -0
- 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
|