@agoric/cosmos 0.35.0-u18.4 → 0.35.0-u18a.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 +40 -0
- package/ante/inbound_test.go +2 -2
- package/app/app.go +26 -9
- package/app/upgrade.go +47 -134
- package/daemon/cmd/root.go +48 -15
- package/git-revision.txt +1 -1
- package/go.mod +82 -71
- package/go.sum +200 -167
- package/package.json +2 -2
- package/proto/agoric/swingset/swingset.proto +25 -0
- package/proto/agoric/vbank/vbank.proto +7 -0
- package/types/address_hooks.go +242 -0
- package/types/address_hooks_test.go +221 -0
- package/x/swingset/genesis.go +99 -21
- package/x/swingset/keeper/keeper.go +16 -7
- package/x/swingset/module.go +17 -2
- package/x/swingset/testing/queue.go +8 -0
- package/x/swingset/types/default-params.go +31 -5
- package/x/swingset/types/expected_keepers.go +2 -2
- package/x/swingset/types/msgs.go +34 -12
- package/x/swingset/types/params.go +53 -43
- package/x/swingset/types/params_test.go +75 -9
- package/x/swingset/types/swingset.pb.go +386 -56
- package/x/vbank/README.md +6 -1
- package/x/vbank/keeper/keeper.go +4 -9
- package/x/vbank/keeper/migrations.go +30 -0
- package/x/vbank/module.go +8 -2
- package/x/vbank/types/params.go +43 -2
- package/x/vbank/types/vbank.pb.go +105 -36
- package/x/vbank/vbank_test.go +12 -7
- package/x/vibc/keeper/keeper.go +2 -5
- package/x/vibc/keeper/triggers.go +3 -6
- package/x/vibc/types/receiver.go +11 -5
- package/x/vstorage/testing/queue.go +10 -3
- package/x/vtransfer/ibc_middleware.go +5 -1
- package/x/vtransfer/ibc_middleware_test.go +511 -145
- package/x/vtransfer/keeper/keeper.go +215 -50
- package/x/vtransfer/types/genesis.pb.go +1 -0
- package/x/vtransfer/utils_test.go +111 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,46 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [0.35.0-u18a.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/cosmos@0.35.0-u18.5...@agoric/cosmos@0.35.0-u18a.0) (2025-02-07)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **cosmos:** Next upgrade is agoric-upgrade-18a ([b87159a](https://github.com/Agoric/agoric-sdk/commit/b87159ad77c3c13ae0c2123cb1373d59463f68ef))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
* **vtransfer:** some tweaks for ack handling ([a6d295a](https://github.com/Agoric/agoric-sdk/commit/a6d295a730126580262f96c383a4c69412a2e54e))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
## [0.35.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/cosmos@0.35.0-u18.4...@agoric/cosmos@0.35.0-u18.5) (2024-12-24)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### Features
|
|
24
|
+
|
|
25
|
+
* **cosmos:** Support arbitrary core eval builder arguments ([#10767](https://github.com/Agoric/agoric-sdk/issues/10767)) ([a944f4c](https://github.com/Agoric/agoric-sdk/commit/a944f4cdf36012e8c07fe0804de5e9f3532db3ce)), closes [#10752](https://github.com/Agoric/agoric-sdk/issues/10752) [#10752](https://github.com/Agoric/agoric-sdk/issues/10752)
|
|
26
|
+
* **cosmos:** use `x/vbank` ConsensusVersion to upgrade monitoring ([0e367d3](https://github.com/Agoric/agoric-sdk/commit/0e367d3e9870622acc8a38afe57c2b6cbe629341))
|
|
27
|
+
* migrate upgrade of v7-board from upgrade 19 to upgrade 18 ([#10761](https://github.com/Agoric/agoric-sdk/issues/10761)) ([837776e](https://github.com/Agoric/agoric-sdk/commit/837776e6eb693603bce4ed3f9af5c659c9a19d2d)), closes [#10760](https://github.com/Agoric/agoric-sdk/issues/10760)
|
|
28
|
+
* upgrade v7-board and test it ([#10516](https://github.com/Agoric/agoric-sdk/issues/10516)) ([d8a109e](https://github.com/Agoric/agoric-sdk/commit/d8a109edcc78c977ef856131b52dd449e6a9d724)), closes [#10394](https://github.com/Agoric/agoric-sdk/issues/10394)
|
|
29
|
+
* **vbank:** new param `allowed_monitoring_accounts` ([5ac4c52](https://github.com/Agoric/agoric-sdk/commit/5ac4c527b5a3e85bb14ba91a32bcbb6beb0097c9))
|
|
30
|
+
* **vtransfer:** extract base address from parameterized address ([3d44b53](https://github.com/Agoric/agoric-sdk/commit/3d44b5363324baa803a2d9523ce11ded7cce1ed1))
|
|
31
|
+
* **vtransfer:** port some `address-hooks.js` functions to Go ([159098b](https://github.com/Agoric/agoric-sdk/commit/159098bbfaddf4448da4778aa29fbc072aed80a9))
|
|
32
|
+
* **x/swingset:** Add parameters for controlling vat cleanup budget ([02c8138](https://github.com/Agoric/agoric-sdk/commit/02c8138bb2090bc995bfe517bc52952014458984)), closes [#8928](https://github.com/Agoric/agoric-sdk/issues/8928)
|
|
33
|
+
* **x/swingset:** Define default vat cleanup budget as { default: 5, kv: 50 } ([d86ee6d](https://github.com/Agoric/agoric-sdk/commit/d86ee6d5cf0882a53ac3a6e3b802e4002c4c1d12))
|
|
34
|
+
* **x/swingset:** Read beansPerUnit in each message handler and pass down to helpers ([55b9b49](https://github.com/Agoric/agoric-sdk/commit/55b9b49d5f77be9db33ae132a8f7b7017a90d0a9))
|
|
35
|
+
* **x/swingset:** Require a non-empty vat cleanup budget to include `default` ([28c4d8b](https://github.com/Agoric/agoric-sdk/commit/28c4d8bf9897f1ff744e64ea0e681ee41064aafd))
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
### Bug Fixes
|
|
39
|
+
|
|
40
|
+
* **agd:** upgrade all orchestration vats to new liveslots ([59fa82c](https://github.com/Agoric/agoric-sdk/commit/59fa82c4740e1ddace28e1389e3c7c875bcdf93e))
|
|
41
|
+
* **cosmos:** return an error if version is unsupported ([d17e55b](https://github.com/Agoric/agoric-sdk/commit/d17e55b5d5c0a178e49ed9a0402ed52827074426))
|
|
42
|
+
* **x/swingset:** Let migration see incomplete Params structs ([315cdd5](https://github.com/Agoric/agoric-sdk/commit/315cdd56e0955ba26d624ca3a4997888abc1d635))
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
6
46
|
## [0.35.0-u18.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/cosmos@0.35.0-u18.3...@agoric/cosmos@0.35.0-u18.4) (2024-12-17)
|
|
7
47
|
|
|
8
48
|
**Note:** Version bump only for package @agoric/cosmos
|
package/ante/inbound_test.go
CHANGED
|
@@ -215,7 +215,7 @@ func (msk mockSwingsetKeeper) GetBeansPerUnit(ctx sdk.Context) map[string]sdkmat
|
|
|
215
215
|
return nil
|
|
216
216
|
}
|
|
217
217
|
|
|
218
|
-
func (msk mockSwingsetKeeper) ChargeBeans(ctx sdk.Context, addr sdk.AccAddress, beans sdkmath.Uint) error {
|
|
218
|
+
func (msk mockSwingsetKeeper) ChargeBeans(ctx sdk.Context, beansPerUnit map[string]sdkmath.Uint, addr sdk.AccAddress, beans sdkmath.Uint) error {
|
|
219
219
|
return fmt.Errorf("not implemented")
|
|
220
220
|
}
|
|
221
221
|
|
|
@@ -223,6 +223,6 @@ func (msk mockSwingsetKeeper) GetSmartWalletState(ctx sdk.Context, addr sdk.AccA
|
|
|
223
223
|
panic(fmt.Errorf("not implemented"))
|
|
224
224
|
}
|
|
225
225
|
|
|
226
|
-
func (msk mockSwingsetKeeper) ChargeForSmartWallet(ctx sdk.Context, addr sdk.AccAddress) error {
|
|
226
|
+
func (msk mockSwingsetKeeper) ChargeForSmartWallet(ctx sdk.Context, beansPerUnit map[string]sdkmath.Uint, addr sdk.AccAddress) error {
|
|
227
227
|
return fmt.Errorf("not implemented")
|
|
228
228
|
}
|
package/app/app.go
CHANGED
|
@@ -137,13 +137,22 @@ import (
|
|
|
137
137
|
|
|
138
138
|
const appName = "agoric"
|
|
139
139
|
|
|
140
|
-
|
|
141
|
-
//
|
|
142
|
-
//
|
|
143
|
-
// value is
|
|
144
|
-
//
|
|
145
|
-
//
|
|
146
|
-
|
|
140
|
+
const (
|
|
141
|
+
// FlagSwingStoreExportDir defines the config flag used to specify where a
|
|
142
|
+
// genesis swing-store export is expected. For start from genesis, the default
|
|
143
|
+
// value is config/swing-store in the home directory. For genesis export, the
|
|
144
|
+
// value is always a "swing-store" directory sibling to the exported
|
|
145
|
+
// genesis.json file.
|
|
146
|
+
// TODO: document this flag in config, likely alongside the genesis path
|
|
147
|
+
FlagSwingStoreExportDir = "swing-store-export-dir"
|
|
148
|
+
// FlagSwingStoreExportMode defines the export mode for the swing store
|
|
149
|
+
// Alongside the default mode `operational`, there are two other modes
|
|
150
|
+
//
|
|
151
|
+
// 1- `skip` mode will skip the swing store export altogether
|
|
152
|
+
//
|
|
153
|
+
// 2- `debug` mode will export all the available store
|
|
154
|
+
FlagSwingStoreExportMode = "swing-store-export-mode"
|
|
155
|
+
)
|
|
147
156
|
|
|
148
157
|
var (
|
|
149
158
|
// DefaultNodeHome default home directories for the application daemon
|
|
@@ -673,6 +682,7 @@ func NewAgoricApp(
|
|
|
673
682
|
app.EvidenceKeeper = *evidenceKeeper
|
|
674
683
|
|
|
675
684
|
swingStoreExportDir := cast.ToString(appOpts.Get(FlagSwingStoreExportDir))
|
|
685
|
+
swingStoreExportMode := cast.ToString(appOpts.Get(FlagSwingStoreExportMode))
|
|
676
686
|
|
|
677
687
|
// NOTE: Any module instantiated in the module manager that is later modified
|
|
678
688
|
// must be passed by reference here.
|
|
@@ -702,7 +712,14 @@ func NewAgoricApp(
|
|
|
702
712
|
icaModule,
|
|
703
713
|
packetforward.NewAppModule(app.PacketForwardKeeper),
|
|
704
714
|
vstorage.NewAppModule(app.VstorageKeeper),
|
|
705
|
-
swingset.NewAppModule(
|
|
715
|
+
swingset.NewAppModule(
|
|
716
|
+
app.SwingSetKeeper,
|
|
717
|
+
&app.SwingStoreExportsHandler,
|
|
718
|
+
setBootstrapNeeded,
|
|
719
|
+
app.ensureControllerInited,
|
|
720
|
+
swingStoreExportDir,
|
|
721
|
+
swingStoreExportMode,
|
|
722
|
+
),
|
|
706
723
|
vibcModule,
|
|
707
724
|
vbankModule,
|
|
708
725
|
vtransferModule,
|
|
@@ -877,7 +894,7 @@ func NewAgoricApp(
|
|
|
877
894
|
for _, name := range upgradeNamesOfThisVersion {
|
|
878
895
|
app.UpgradeKeeper.SetUpgradeHandler(
|
|
879
896
|
name,
|
|
880
|
-
|
|
897
|
+
upgrade18aHandler(app, name),
|
|
881
898
|
)
|
|
882
899
|
}
|
|
883
900
|
|
package/app/upgrade.go
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
package gaia
|
|
2
2
|
|
|
3
3
|
import (
|
|
4
|
-
"encoding/json"
|
|
5
4
|
"fmt"
|
|
6
|
-
"strings"
|
|
7
|
-
"text/template"
|
|
8
5
|
|
|
9
6
|
"github.com/Agoric/agoric-sdk/golang/cosmos/vm"
|
|
10
7
|
swingsetkeeper "github.com/Agoric/agoric-sdk/golang/cosmos/x/swingset/keeper"
|
|
@@ -14,13 +11,7 @@ import (
|
|
|
14
11
|
)
|
|
15
12
|
|
|
16
13
|
var upgradeNamesOfThisVersion = []string{
|
|
17
|
-
"agoric-upgrade-
|
|
18
|
-
"agoric-upgrade-18-devnet",
|
|
19
|
-
"agoric-upgrade-18-emerynet",
|
|
20
|
-
"agoric-upgrade-18-basic",
|
|
21
|
-
"agoric-upgrade-18-basic-2",
|
|
22
|
-
"agoric-upgrade-18-emerynet-rc3",
|
|
23
|
-
"agoric-upgrade-18-a3p",
|
|
14
|
+
"agoric-upgrade-18a",
|
|
24
15
|
}
|
|
25
16
|
|
|
26
17
|
// isUpgradeNameOfThisVersion returns whether the provided plan name is a
|
|
@@ -54,15 +45,8 @@ func isPrimaryUpgradeName(name string) bool {
|
|
|
54
45
|
return false
|
|
55
46
|
}
|
|
56
47
|
switch name {
|
|
57
|
-
case validUpgradeName("agoric-upgrade-
|
|
58
|
-
validUpgradeName("agoric-upgrade-18-devnet"),
|
|
59
|
-
validUpgradeName("agoric-upgrade-18-emerynet"),
|
|
60
|
-
validUpgradeName("agoric-upgrade-18-basic"),
|
|
61
|
-
validUpgradeName("agoric-upgrade-18-a3p"):
|
|
48
|
+
case validUpgradeName("agoric-upgrade-18a"):
|
|
62
49
|
return true
|
|
63
|
-
case validUpgradeName("agoric-upgrade-18-basic-2"),
|
|
64
|
-
validUpgradeName("agoric-upgrade-18-emerynet-rc3"):
|
|
65
|
-
return false
|
|
66
50
|
default:
|
|
67
51
|
panic(fmt.Errorf("unexpected upgrade name %s", validUpgradeName(name)))
|
|
68
52
|
}
|
|
@@ -79,87 +63,24 @@ func isFirstTimeUpgradeOfThisVersion(app *GaiaApp, ctx sdk.Context) bool {
|
|
|
79
63
|
return true
|
|
80
64
|
}
|
|
81
65
|
|
|
82
|
-
func
|
|
83
|
-
|
|
84
|
-
"module": "{{.moduleName}}",
|
|
85
|
-
"entrypoint": "{{.entrypoint}}",
|
|
86
|
-
"args": [ {{.optsArg}} ]
|
|
87
|
-
}`))
|
|
88
|
-
|
|
89
|
-
optsArg, err := json.Marshal(opts)
|
|
90
|
-
if err != nil {
|
|
91
|
-
return nil, err
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
var result strings.Builder
|
|
95
|
-
err = t.Execute(&result, map[string]any{
|
|
96
|
-
"moduleName": moduleName,
|
|
97
|
-
"entrypoint": entrypoint,
|
|
98
|
-
"optsArg": string(optsArg),
|
|
99
|
-
})
|
|
100
|
-
if err != nil {
|
|
101
|
-
return nil, err
|
|
102
|
-
}
|
|
103
|
-
jsonStr := result.String()
|
|
104
|
-
jsonBz := []byte(jsonStr)
|
|
105
|
-
if !json.Valid(jsonBz) {
|
|
106
|
-
return nil, fmt.Errorf("invalid JSON: %s", jsonStr)
|
|
107
|
-
}
|
|
108
|
-
proposal := vm.ArbitraryCoreProposal{Json: jsonBz}
|
|
109
|
-
return vm.CoreProposalStepForModules(proposal), nil
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
func getVariantFromUpgradeName(upgradeName string) string {
|
|
113
|
-
switch upgradeName {
|
|
114
|
-
case "agoric-upgrade-18-mainnet":
|
|
115
|
-
return "MAINNET"
|
|
116
|
-
case "agoric-upgrade-18-devnet":
|
|
117
|
-
return "DEVNET"
|
|
118
|
-
case "agoric-upgrade-18-emerynet":
|
|
119
|
-
return "EMERYNET"
|
|
120
|
-
case "agoric-upgrade-18-basic":
|
|
121
|
-
return ""
|
|
122
|
-
case "agoric-upgrade-18-a3p":
|
|
123
|
-
return "A3P_INTEGRATION"
|
|
124
|
-
default:
|
|
125
|
-
return ""
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
func replaceElectorateCoreProposalStep(upgradeName string) (vm.CoreProposalStep, error) {
|
|
130
|
-
variant := getVariantFromUpgradeName(upgradeName)
|
|
131
|
-
|
|
132
|
-
if variant == "" {
|
|
133
|
-
return nil, nil
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
return buildProposalStepWithArgs(
|
|
137
|
-
"@agoric/builders/scripts/inter-protocol/replace-electorate-core.js",
|
|
138
|
-
"defaultProposalBuilder",
|
|
139
|
-
map[string]any{
|
|
140
|
-
"variant": variant,
|
|
141
|
-
},
|
|
142
|
-
)
|
|
143
|
-
}
|
|
66
|
+
// func upgradeMintHolderCoreProposal(upgradeName string) (vm.CoreProposalStep, error) {
|
|
67
|
+
// variant := getVariantFromUpgradeName(upgradeName)
|
|
144
68
|
|
|
145
|
-
|
|
146
|
-
|
|
69
|
+
// if variant == "" {
|
|
70
|
+
// return nil, nil
|
|
71
|
+
// }
|
|
147
72
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
73
|
+
// return buildProposalStepWithArgs(
|
|
74
|
+
// "@agoric/builders/scripts/vats/upgrade-mintHolder.js",
|
|
75
|
+
// "defaultProposalBuilder",
|
|
76
|
+
// map[string]any{
|
|
77
|
+
// "variant": variant,
|
|
78
|
+
// },
|
|
79
|
+
// )
|
|
80
|
+
// }
|
|
151
81
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
"defaultProposalBuilder",
|
|
155
|
-
map[string]any{
|
|
156
|
-
"variant": variant,
|
|
157
|
-
},
|
|
158
|
-
)
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
// upgrade18Handler performs standard upgrade actions plus custom actions for upgrade-18.
|
|
162
|
-
func upgrade18Handler(app *GaiaApp, targetUpgrade string) func(sdk.Context, upgradetypes.Plan, module.VersionMap) (module.VersionMap, error) {
|
|
82
|
+
// upgrade18aHandler performs standard upgrade actions plus custom actions for upgrade-18a.
|
|
83
|
+
func upgrade18aHandler(app *GaiaApp, targetUpgrade string) func(sdk.Context, upgradetypes.Plan, module.VersionMap) (module.VersionMap, error) {
|
|
163
84
|
return func(ctx sdk.Context, plan upgradetypes.Plan, fromVm module.VersionMap) (module.VersionMap, error) {
|
|
164
85
|
app.CheckControllerInited(false)
|
|
165
86
|
|
|
@@ -175,45 +96,37 @@ func upgrade18Handler(app *GaiaApp, targetUpgrade string) func(sdk.Context, upgr
|
|
|
175
96
|
return module.VersionMap{}, fmt.Errorf("cannot run %s as first upgrade", plan.Name)
|
|
176
97
|
}
|
|
177
98
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
99
|
+
// CoreProposals for Upgrade 19. These should not be introduced
|
|
100
|
+
// before upgrade 18 is done because they would be run in n:upgrade-next
|
|
101
|
+
//
|
|
102
|
+
// upgradeMintHolderStep, err := upgradeMintHolderCoreProposal(targetUpgrade)
|
|
103
|
+
// if err != nil {
|
|
104
|
+
// return nil, err
|
|
105
|
+
// } else if upgradeMintHolderStep != nil {
|
|
106
|
+
// CoreProposalSteps = append(CoreProposalSteps, upgradeMintHolderStep)
|
|
107
|
+
// }
|
|
108
|
+
//
|
|
109
|
+
// CoreProposalSteps = append(CoreProposalSteps,
|
|
110
|
+
// vm.CoreProposalStepForModules(
|
|
111
|
+
// "@agoric/builders/scripts/inter-protocol/replace-feeDistributor.js",
|
|
112
|
+
// ),
|
|
113
|
+
// vm.CoreProposalStepForModules(
|
|
114
|
+
// "@agoric/builders/scripts/vats/upgrade-paRegistry.js",
|
|
115
|
+
// ),
|
|
116
|
+
// vm.CoreProposalStepForModules(
|
|
117
|
+
// "@agoric/builders/scripts/vats/upgrade-provisionPool.js",
|
|
118
|
+
// ),
|
|
119
|
+
// vm.CoreProposalStepForModules(
|
|
120
|
+
// "@agoric/builders/scripts/vats/upgrade-bank.js",
|
|
121
|
+
// ),
|
|
122
|
+
// vm.CoreProposalStepForModules(
|
|
123
|
+
// "@agoric/builders/scripts/vats/upgrade-agoricNames.js",
|
|
124
|
+
// ),
|
|
125
|
+
// vm.CoreProposalStepForModules(
|
|
126
|
+
// "@agoric/builders/scripts/vats/upgrade-asset-reserve.js",
|
|
127
|
+
// ),
|
|
128
|
+
// )
|
|
200
129
|
|
|
201
|
-
// Each CoreProposalStep runs sequentially, and can be constructed from
|
|
202
|
-
// one or more modules executing in parallel within the step.
|
|
203
|
-
CoreProposalSteps = append(CoreProposalSteps,
|
|
204
|
-
vm.CoreProposalStepForModules(
|
|
205
|
-
// Upgrade Zoe (no new ZCF needed).
|
|
206
|
-
"@agoric/builders/scripts/vats/upgrade-zoe.js",
|
|
207
|
-
),
|
|
208
|
-
// Revive KREAd characters
|
|
209
|
-
vm.CoreProposalStepForModules(
|
|
210
|
-
"@agoric/builders/scripts/vats/revive-kread.js",
|
|
211
|
-
),
|
|
212
|
-
vm.CoreProposalStepForModules(
|
|
213
|
-
// Upgrade to include a cleanup from https://github.com/Agoric/agoric-sdk/pull/10319
|
|
214
|
-
"@agoric/builders/scripts/smart-wallet/build-wallet-factory2-upgrade.js",
|
|
215
|
-
),
|
|
216
|
-
)
|
|
217
130
|
}
|
|
218
131
|
|
|
219
132
|
app.upgradeDetails = &upgradeDetails{
|
package/daemon/cmd/root.go
CHANGED
|
@@ -386,6 +386,12 @@ const (
|
|
|
386
386
|
ExportedSwingStoreDirectoryName = "swing-store"
|
|
387
387
|
)
|
|
388
388
|
|
|
389
|
+
var allowedSwingSetExportModes = map[string]bool{
|
|
390
|
+
swingset.SwingStoreExportModeDebug: true,
|
|
391
|
+
swingset.SwingStoreExportModeOperational: true,
|
|
392
|
+
swingset.SwingStoreExportModeSkip: true,
|
|
393
|
+
}
|
|
394
|
+
|
|
389
395
|
// extendCosmosExportCommand monkey-patches the "export" command added by
|
|
390
396
|
// cosmos-sdk to add a required "export-dir" command-line flag, and create the
|
|
391
397
|
// genesis export in the specified directory if the VM is running.
|
|
@@ -396,31 +402,52 @@ func extendCosmosExportCommand(cmd *cobra.Command) {
|
|
|
396
402
|
panic(err)
|
|
397
403
|
}
|
|
398
404
|
|
|
405
|
+
var keys []string
|
|
406
|
+
for key := range allowedSwingSetExportModes {
|
|
407
|
+
keys = append(keys, key)
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
cmd.Flags().String(
|
|
411
|
+
gaia.FlagSwingStoreExportMode,
|
|
412
|
+
swingset.SwingStoreExportModeOperational,
|
|
413
|
+
fmt.Sprintf(
|
|
414
|
+
"The mode for swingstore export (%s)",
|
|
415
|
+
strings.Join(keys, " | "),
|
|
416
|
+
),
|
|
417
|
+
)
|
|
418
|
+
|
|
399
419
|
originalRunE := cmd.RunE
|
|
400
420
|
|
|
401
421
|
extendedRunE := func(cmd *cobra.Command, args []string) error {
|
|
402
422
|
serverCtx := server.GetServerContextFromCmd(cmd)
|
|
403
423
|
|
|
404
424
|
exportDir, _ := cmd.Flags().GetString(FlagExportDir)
|
|
425
|
+
swingStoreExportMode, _ := cmd.Flags().GetString(gaia.FlagSwingStoreExportMode)
|
|
426
|
+
|
|
405
427
|
err := os.MkdirAll(exportDir, os.ModePerm)
|
|
406
428
|
if err != nil {
|
|
407
429
|
return err
|
|
408
430
|
}
|
|
409
431
|
|
|
410
432
|
genesisPath := filepath.Join(exportDir, ExportedGenesisFileName)
|
|
411
|
-
swingStoreExportPath := filepath.Join(exportDir, ExportedSwingStoreDirectoryName)
|
|
412
433
|
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
434
|
+
// Since none mode doesn't perform any swing store export
|
|
435
|
+
// There is no point in creating the export directory
|
|
436
|
+
if swingStoreExportMode != swingset.SwingStoreExportModeSkip {
|
|
437
|
+
swingStoreExportPath := filepath.Join(exportDir, ExportedSwingStoreDirectoryName)
|
|
438
|
+
|
|
439
|
+
err = os.MkdirAll(swingStoreExportPath, os.ModePerm)
|
|
440
|
+
if err != nil {
|
|
441
|
+
return err
|
|
442
|
+
}
|
|
443
|
+
// We unconditionally set FlagSwingStoreExportDir as for export, it makes
|
|
444
|
+
// little sense for users to control this location separately, and we don't
|
|
445
|
+
// want to override any swing-store artifacts that may be associated to the
|
|
446
|
+
// current genesis.
|
|
447
|
+
serverCtx.Viper.Set(gaia.FlagSwingStoreExportDir, swingStoreExportPath)
|
|
416
448
|
}
|
|
417
|
-
// We unconditionally set FlagSwingStoreExportDir as for export, it makes
|
|
418
|
-
// little sense for users to control this location separately, and we don't
|
|
419
|
-
// want to override any swing-store artifacts that may be associated to the
|
|
420
|
-
// current genesis.
|
|
421
|
-
serverCtx.Viper.Set(gaia.FlagSwingStoreExportDir, swingStoreExportPath)
|
|
422
449
|
|
|
423
|
-
if hasVMController(serverCtx) {
|
|
450
|
+
if hasVMController(serverCtx) || swingStoreExportMode == swingset.SwingStoreExportModeSkip {
|
|
424
451
|
// Capture the export in the genesisPath.
|
|
425
452
|
// This will fail if a genesis.json already exists in the export-dir
|
|
426
453
|
genesisFile, err := os.OpenFile(
|
|
@@ -453,7 +480,16 @@ func (ac appCreator) appExport(
|
|
|
453
480
|
jailAllowedAddrs []string,
|
|
454
481
|
appOpts servertypes.AppOptions,
|
|
455
482
|
) (servertypes.ExportedApp, error) {
|
|
456
|
-
|
|
483
|
+
swingStoreExportMode, ok := appOpts.Get(gaia.FlagSwingStoreExportMode).(string)
|
|
484
|
+
if !(ok && allowedSwingSetExportModes[swingStoreExportMode]) {
|
|
485
|
+
return servertypes.ExportedApp{}, fmt.Errorf(
|
|
486
|
+
"export mode '%s' is not supported",
|
|
487
|
+
swingStoreExportMode,
|
|
488
|
+
)
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
// We don't have to launch VM in case the swing store export is not required
|
|
492
|
+
if swingStoreExportMode != swingset.SwingStoreExportModeSkip && OnExportHook != nil {
|
|
457
493
|
if err := OnExportHook(ac.agdServer, logger, appOpts); err != nil {
|
|
458
494
|
return servertypes.ExportedApp{}, err
|
|
459
495
|
}
|
|
@@ -464,10 +500,7 @@ func (ac appCreator) appExport(
|
|
|
464
500
|
return servertypes.ExportedApp{}, errors.New("application home is not set")
|
|
465
501
|
}
|
|
466
502
|
|
|
467
|
-
|
|
468
|
-
if height == -1 {
|
|
469
|
-
loadLatest = true
|
|
470
|
-
}
|
|
503
|
+
loadLatest := height == -1
|
|
471
504
|
|
|
472
505
|
gaiaApp := gaia.NewAgoricApp(
|
|
473
506
|
ac.sender, ac.agdServer,
|
package/git-revision.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
4e4d2b4ded
|