@agoric/builders 0.2.0-u18a.0 → 0.2.0-u19.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 CHANGED
@@ -3,110 +3,41 @@
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.2.0-u18a.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/builders@0.2.0-u18.6...@agoric/builders@0.2.0-u18a.0) (2025-02-07)
6
+ ## 0.2.0-u19.0 (2025-02-24)
7
7
 
8
- **Note:** Version bump only for package @agoric/builders
9
8
 
9
+ ### ⚠ BREAKING CHANGES
10
10
 
11
-
12
-
13
-
14
- ## [0.2.0-u18.6](https://github.com/Agoric/agoric-sdk/compare/@agoric/builders@0.2.0-u18.5...@agoric/builders@0.2.0-u18.6) (2024-12-24)
15
-
11
+ * remove orch.makeLocalAccount
12
+ * make Network and IBC vats durable (#8721)
16
13
 
17
14
  ### Features
18
15
 
16
+ * smartWallet verstion 2 with watchedPromises ([5ed5107](https://github.com/Agoric/agoric-sdk/commit/5ed51078d39e643d91b572d9c50fad4a276d7ded))
19
17
  * `ForwardOpts` accepts `intermediateRecipient` ([eb975f1](https://github.com/Agoric/agoric-sdk/commit/eb975f1df1587bc9307b27c20b7b236cc7fe386e))
20
18
  * `ForwardOptsShape` ([50b1717](https://github.com/Agoric/agoric-sdk/commit/50b1717c1e40ed67a5e69810961ad8d0144c5f9e))
19
+ * a proposal to upgrade scaledPriceAuthorities ([e5ed0ff](https://github.com/Agoric/agoric-sdk/commit/e5ed0ff6abcb83f52b32d49125e21e6e41923ed0))
21
20
  * add `bech32Prefix?: string` to `CosmosChainInfo` ([cb9e1ee](https://github.com/Agoric/agoric-sdk/commit/cb9e1eeab9295b44ec009b82d73c457299e8d6f4))
21
+ * add priceFeed for StkAtom ([6a861df](https://github.com/Agoric/agoric-sdk/commit/6a861dfa14f42b4547a24ba31175a3b1a74c97c1))
22
+ * add transfer method to CosmosOrchestrationAccount ([b1fdde1](https://github.com/Agoric/agoric-sdk/commit/b1fdde18b33237d1a2ea6f02938d998f55ce4d01))
23
+ * add upgrade zcf only proposal ([73e0bb8](https://github.com/Agoric/agoric-sdk/commit/73e0bb830e7612e74c8fb510b909db154d2b2219))
24
+ * added replace electorate proposal in chain upgrade ([4e88d9f](https://github.com/Agoric/agoric-sdk/commit/4e88d9f0412fe2b90efda30df0afbb61887bf35f))
22
25
  * advancer with fees ([087f3a8](https://github.com/Agoric/agoric-sdk/commit/087f3a84a266fd0061f6d35c7b51f193de308f95))
23
26
  * assetInfo as array of entries ([51e7a9c](https://github.com/Agoric/agoric-sdk/commit/51e7a9c3e3fb2cde44db2ffce817f353a17e76a3))
27
+ * auctioneer detects failing priceAuthority; requests new one ([#8691](https://github.com/Agoric/agoric-sdk/issues/8691)) ([8604b01](https://github.com/Agoric/agoric-sdk/commit/8604b011b072d7bef43df59c075bcff9582b8804)), closes [#8696](https://github.com/Agoric/agoric-sdk/issues/8696)
28
+ * **boot:** distribute FastUSDC contract fee builder, test ([7776298](https://github.com/Agoric/agoric-sdk/commit/7776298772a6e5178573fc3078ab0a5fbfea9f8a))
24
29
  * **builders:** --noNoble option for init-fast-usdc ([508a3e0](https://github.com/Agoric/agoric-sdk/commit/508a3e0876d0fadac0e4a2fc1fa64b86ff8e5c2d))
25
30
  * **builders:** fast-usdc builder w/CLI config ([9f45a05](https://github.com/Agoric/agoric-sdk/commit/9f45a0572777cfe26012b5f48ad4140eaea96dad))
26
31
  * **builders:** fast-usdc oracleSet option for MAINNET, ... ([3bf01a2](https://github.com/Agoric/agoric-sdk/commit/3bf01a279e5b2c72d6667704a07056501012260e))
27
32
  * **builders:** fast-usdc policy update builder ([8ded3d8](https://github.com/Agoric/agoric-sdk/commit/8ded3d8be612a6944b80f3f63ab6fb727c76d179))
33
+ * **builders:** non-ambient `strictPriceFeedProposalBuilder` in `priceFeedSupport.js` ([95174a2](https://github.com/Agoric/agoric-sdk/commit/95174a23671ed16f7497ef6b0edaa63a54f1343d))
28
34
  * chain-capabilities.js constants ([52ff70a](https://github.com/Agoric/agoric-sdk/commit/52ff70a187df1fadc89ccc506228bc6d0ca48da6))
35
+ * coreEval to update priceFeeds, auction, and vaultManager ([fd91f78](https://github.com/Agoric/agoric-sdk/commit/fd91f781ad721033d67485d1732272af0c689ae7))
36
+ * examples/auto-stake-it.contract.js ([b87ecba](https://github.com/Agoric/agoric-sdk/commit/b87ecba0ea41f1397dbd513d8e4c541f1299fd3f)), closes [#9042](https://github.com/Agoric/agoric-sdk/issues/9042)
29
37
  * export `DenomDetailShape` ([2dfddb3](https://github.com/Agoric/agoric-sdk/commit/2dfddb3fb2018d769b1acc1b32f4ff3b4c7f67b7))
30
38
  * export `OrchestrationPowersShape` ([34b61ea](https://github.com/Agoric/agoric-sdk/commit/34b61eae918a5f02ba6e06ac7e15b24750494821))
31
39
  * **fast-usdc:** write chain policies to vstorage ([#10532](https://github.com/Agoric/agoric-sdk/issues/10532)) ([9d6cff1](https://github.com/Agoric/agoric-sdk/commit/9d6cff17bb95ce5557758da242ca4646a87ac5b0))
32
40
  * fusdc assetInfo and chainInfo by netname ([afb4f34](https://github.com/Agoric/agoric-sdk/commit/afb4f34518124b3809d1df07ea706743fa47f2b1))
33
- * parameterize fusdc with chainInfo and assetInfo ([e5a8b64](https://github.com/Agoric/agoric-sdk/commit/e5a8b6489368f0bf3a099ce4c5ddf9607a6192c1))
34
- * record instances that will be replaced so we can manage them ([c883c39](https://github.com/Agoric/agoric-sdk/commit/c883c39bbe4ec236a758030508fdf9f4fbd3ba9b))
35
- * register interchain bank assets proposal ([0e20707](https://github.com/Agoric/agoric-sdk/commit/0e2070754d6811acd40cb026792d4295189ae771))
36
- * registerChainsAndAssets ([e72782d](https://github.com/Agoric/agoric-sdk/commit/e72782dcc748b9e6a2879179cccf9866718f4e00))
37
- * save the outgoing EC Charter instance and kit ([c2c9be3](https://github.com/Agoric/agoric-sdk/commit/c2c9be3785f50e3b2cae3585d0e05d8b0a918283))
38
- * send-anywhere inits chainHub ([2fa2f75](https://github.com/Agoric/agoric-sdk/commit/2fa2f7512b2a1a19d47f47b59e3206619794be18))
39
- * 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)
40
-
41
-
42
- ### Bug Fixes
43
-
44
- * **agd:** upgrade all orchestration vats to new liveslots ([59fa82c](https://github.com/Agoric/agoric-sdk/commit/59fa82c4740e1ddace28e1389e3c7c875bcdf93e))
45
- * **orchestration:** denomAmounts must be non-negative ([#10458](https://github.com/Agoric/agoric-sdk/issues/10458)) ([40e0e4e](https://github.com/Agoric/agoric-sdk/commit/40e0e4e37503b611609d1752389477d8f14f1a8e))
46
-
47
-
48
-
49
- ## [0.2.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/builders@0.2.0-u18.4...@agoric/builders@0.2.0-u18.5) (2024-12-17)
50
-
51
- **Note:** Version bump only for package @agoric/builders
52
-
53
-
54
-
55
-
56
-
57
- ## [0.2.0-u18.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/builders@0.2.0-u18.3...@agoric/builders@0.2.0-u18.4) (2024-12-13)
58
-
59
-
60
- ### Features
61
-
62
- * record instances that will be replaced so we can manage them ([3b1a35d](https://github.com/Agoric/agoric-sdk/commit/3b1a35d31a7bf20fab6b80af3091079f6307cb29))
63
-
64
-
65
-
66
- ## [0.2.0-u18.3](https://github.com/Agoric/agoric-sdk/compare/@agoric/builders@0.2.0-u18.2...@agoric/builders@0.2.0-u18.3) (2024-12-09)
67
-
68
- **Note:** Version bump only for package @agoric/builders
69
-
70
-
71
-
72
-
73
-
74
- ## [0.2.0-u18.2](https://github.com/Agoric/agoric-sdk/compare/@agoric/builders@0.2.0-u18.1...@agoric/builders@0.2.0-u18.2) (2024-11-21)
75
-
76
- **Note:** Version bump only for package @agoric/builders
77
-
78
-
79
-
80
-
81
-
82
- ## [0.2.0-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/builders@0.2.0-u18.0...@agoric/builders@0.2.0-u18.1) (2024-11-19)
83
-
84
- **Note:** Version bump only for package @agoric/builders
85
-
86
-
87
-
88
-
89
-
90
- ## 0.2.0-u18.0 (2024-10-31)
91
-
92
-
93
- ### ⚠ BREAKING CHANGES
94
-
95
- * remove orch.makeLocalAccount
96
- * make Network and IBC vats durable (#8721)
97
-
98
- ### Features
99
-
100
- * smartWallet verstion 2 with watchedPromises ([5ed5107](https://github.com/Agoric/agoric-sdk/commit/5ed51078d39e643d91b572d9c50fad4a276d7ded))
101
- * a proposal to upgrade scaledPriceAuthorities ([e5ed0ff](https://github.com/Agoric/agoric-sdk/commit/e5ed0ff6abcb83f52b32d49125e21e6e41923ed0))
102
- * add priceFeed for StkAtom ([6a861df](https://github.com/Agoric/agoric-sdk/commit/6a861dfa14f42b4547a24ba31175a3b1a74c97c1))
103
- * add transfer method to CosmosOrchestrationAccount ([b1fdde1](https://github.com/Agoric/agoric-sdk/commit/b1fdde18b33237d1a2ea6f02938d998f55ce4d01))
104
- * add upgrade zcf only proposal ([73e0bb8](https://github.com/Agoric/agoric-sdk/commit/73e0bb830e7612e74c8fb510b909db154d2b2219))
105
- * added replace electorate proposal in chain upgrade ([4e88d9f](https://github.com/Agoric/agoric-sdk/commit/4e88d9f0412fe2b90efda30df0afbb61887bf35f))
106
- * auctioneer detects failing priceAuthority; requests new one ([#8691](https://github.com/Agoric/agoric-sdk/issues/8691)) ([8604b01](https://github.com/Agoric/agoric-sdk/commit/8604b011b072d7bef43df59c075bcff9582b8804)), closes [#8696](https://github.com/Agoric/agoric-sdk/issues/8696)
107
- * **builders:** non-ambient `strictPriceFeedProposalBuilder` in `priceFeedSupport.js` ([95174a2](https://github.com/Agoric/agoric-sdk/commit/95174a23671ed16f7497ef6b0edaa63a54f1343d))
108
- * coreEval to update priceFeeds, auction, and vaultManager ([fd91f78](https://github.com/Agoric/agoric-sdk/commit/fd91f781ad721033d67485d1732272af0c689ae7))
109
- * examples/auto-stake-it.contract.js ([b87ecba](https://github.com/Agoric/agoric-sdk/commit/b87ecba0ea41f1397dbd513d8e4c541f1299fd3f)), closes [#9042](https://github.com/Agoric/agoric-sdk/issues/9042)
110
41
  * include issuerKeywordRecord in start-sendAnywhere.js ([0b97916](https://github.com/Agoric/agoric-sdk/commit/0b9791672f91890a9de13511d0a6e7290d30d4d5))
111
42
  * make Network and IBC vats durable ([#8721](https://github.com/Agoric/agoric-sdk/issues/8721)) ([3d13c09](https://github.com/Agoric/agoric-sdk/commit/3d13c09363013e23726c2ac5fa299a8e5344fd8c))
112
43
  * new 'builders' package ([00c88ab](https://github.com/Agoric/agoric-sdk/commit/00c88ab1615ed55a3928ae52e332be05a173d1f6))
@@ -114,15 +45,22 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
114
45
  * **orchestration:** add stakeAtom example contract ([82f1901](https://github.com/Agoric/agoric-sdk/commit/82f1901ec6ecf5a802a72023d033609deeb053e1))
115
46
  * **orchestration:** create ChainAccount ([ba75ed6](https://github.com/Agoric/agoric-sdk/commit/ba75ed692a565aae5c5124ad5220f6901576532e))
116
47
  * **orchestration:** stakeAtom query balance ([9f0ae09](https://github.com/Agoric/agoric-sdk/commit/9f0ae09e389f1750c9e550d5e6893460d1e21d07))
48
+ * parameterize fusdc with chainInfo and assetInfo ([e5a8b64](https://github.com/Agoric/agoric-sdk/commit/e5a8b6489368f0bf3a099ce4c5ddf9607a6192c1))
49
+ * record instances that will be replaced so we can manage them ([c883c39](https://github.com/Agoric/agoric-sdk/commit/c883c39bbe4ec236a758030508fdf9f4fbd3ba9b))
50
+ * register interchain bank assets proposal ([0e20707](https://github.com/Agoric/agoric-sdk/commit/0e2070754d6811acd40cb026792d4295189ae771))
51
+ * registerChainsAndAssets ([e72782d](https://github.com/Agoric/agoric-sdk/commit/e72782dcc748b9e6a2879179cccf9866718f4e00))
117
52
  * remove orch.makeLocalAccount ([5526337](https://github.com/Agoric/agoric-sdk/commit/552633753ff66f011f6cff7b701cd3cc8f808fbe)), closes [#10106](https://github.com/Agoric/agoric-sdk/issues/10106)
118
53
  * remove prefix.key_prefix from IBCConnectionInfo ([78e701a](https://github.com/Agoric/agoric-sdk/commit/78e701a92de9fa62ac719211a3bd874efd3678ac)), closes [#9807](https://github.com/Agoric/agoric-sdk/issues/9807)
119
54
  * repair KREAd contract on zoe upgrade ([84dd229](https://github.com/Agoric/agoric-sdk/commit/84dd2297eb74061b809a11bba3c2d2c5c697219f))
120
55
  * replace committee proposal support for custom config ([d3014e3](https://github.com/Agoric/agoric-sdk/commit/d3014e3162eeb7e30c2976dd8fd3feb9b79efc54))
56
+ * save the outgoing EC Charter instance and kit ([c2c9be3](https://github.com/Agoric/agoric-sdk/commit/c2c9be3785f50e3b2cae3585d0e05d8b0a918283))
57
+ * send-anywhere inits chainHub ([2fa2f75](https://github.com/Agoric/agoric-sdk/commit/2fa2f7512b2a1a19d47f47b59e3206619794be18))
121
58
  * **smart-wallet:** upgrade walletFactory for non-vbank assets ([a0c4ecf](https://github.com/Agoric/agoric-sdk/commit/a0c4ecf5d6f1e3874828f5b2fcf38f87cb0619ba))
122
59
  * stakeBld contract ([a7e30a4](https://github.com/Agoric/agoric-sdk/commit/a7e30a4e43c00b2916d2d57c70063650e726321f))
123
60
  * start a new auction in a3p-integration ([969235b](https://github.com/Agoric/agoric-sdk/commit/969235b18abbd15187e343d5f616f12177d224c4))
124
61
  * update price feed proposal support for custom config ([8804ed2](https://github.com/Agoric/agoric-sdk/commit/8804ed28e259bf4ee9dd8872ccdd9ec42897e279))
125
62
  * upgrade auction and vaults to use the new governor ([5aeac6d](https://github.com/Agoric/agoric-sdk/commit/5aeac6d2bd3a95357c9a725e01391b3d967530ff))
63
+ * 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)
126
64
  * **vat-transfer:** first cut at working proposal ([2864bd5](https://github.com/Agoric/agoric-sdk/commit/2864bd5c12300c3595df9676bcfde894dbe59b29))
127
65
  * **vats:** provide init-localchain ([19e5aed](https://github.com/Agoric/agoric-sdk/commit/19e5aed4e8a2aad667c04023e0aea01712ff9b9c))
128
66
  * **vats:** upgrade the orchestration core ([c2d9530](https://github.com/Agoric/agoric-sdk/commit/c2d9530e2d891bd9412969a43a9c5728cc3c2721))
@@ -131,8 +69,10 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
131
69
 
132
70
  ### Bug Fixes
133
71
 
72
+ * **agd:** upgrade all orchestration vats to new liveslots ([59fa82c](https://github.com/Agoric/agoric-sdk/commit/59fa82c4740e1ddace28e1389e3c7c875bcdf93e))
134
73
  * **builders:** Overlook inspecific home type ([e499fc4](https://github.com/Agoric/agoric-sdk/commit/e499fc4749b24e4f178e43b401410a0e5f06fb17))
135
74
  * **builders:** use proper `oracleBrand` subkey case ([52f02b7](https://github.com/Agoric/agoric-sdk/commit/52f02b75b6706ee455a32ff83617dd5afb7342a7))
75
+ * **orchestration:** denomAmounts must be non-negative ([#10458](https://github.com/Agoric/agoric-sdk/issues/10458)) ([40e0e4e](https://github.com/Agoric/agoric-sdk/commit/40e0e4e37503b611609d1752389477d8f14f1a8e))
136
76
  * **orchestration:** makeAccount never resolves when icqEnabled: false ([a74b6a2](https://github.com/Agoric/agoric-sdk/commit/a74b6a27d5108c5e014d546b86c695e3fc8bf2e5))
137
77
  * repair storage of zcfBundleCap and add a3p test ([72c7574](https://github.com/Agoric/agoric-sdk/commit/72c75740aff920ffb53231441d0f00a8747400f1))
138
78
  * support issuerName separate from keyword in add-collateral-core ([f0b1559](https://github.com/Agoric/agoric-sdk/commit/f0b1559374fe67d10e92f20c85d90a6f07e03cf0))
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agoric/builders",
3
- "version": "0.2.0-u18a.0",
3
+ "version": "0.2.0-u19.0",
4
4
  "description": "Build scripts for proposals to an Agoric chain",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -23,35 +23,35 @@
23
23
  "author": "Agoric",
24
24
  "license": "Apache-2.0",
25
25
  "dependencies": {
26
- "@agoric/ertp": "^0.16.3-u18a.0",
27
- "@agoric/fast-usdc": "^0.2.0-u18a.0",
28
- "@agoric/internal": "^0.4.0-u18a.0",
29
- "@agoric/notifier": "^0.7.0-u18a.0",
30
- "@agoric/smart-wallet": "^0.5.4-u18a.0",
31
- "@agoric/vat-data": "^0.5.3-u18a.0",
32
- "@agoric/vats": "^0.16.0-u18a.0",
33
- "@agoric/zoe": "^0.26.3-u18a.0",
34
- "@endo/bundle-source": "^3.5.0",
35
- "@endo/captp": "^4.4.3",
36
- "@endo/eventual-send": "^1.2.8",
37
- "@endo/far": "^1.1.9",
38
- "@endo/init": "^1.1.7",
39
- "@endo/marshal": "^1.6.2",
40
- "@endo/patterns": "^1.4.7",
41
- "@endo/promise-kit": "^1.1.8",
42
- "@endo/stream": "^1.2.8",
43
- "import-meta-resolve": "^2.2.1"
26
+ "@agoric/ertp": "^0.16.3-u19.0",
27
+ "@agoric/fast-usdc": "^0.2.0-u19.0",
28
+ "@agoric/internal": "^0.4.0-u19.0",
29
+ "@agoric/notifier": "^0.7.0-u19.0",
30
+ "@agoric/smart-wallet": "^0.5.4-u19.0",
31
+ "@agoric/vat-data": "^0.5.3-u19.0",
32
+ "@agoric/vats": "^0.16.0-u19.0",
33
+ "@agoric/zoe": "^0.27.0-u19.0",
34
+ "@endo/bundle-source": "^3.5.1",
35
+ "@endo/captp": "^4.4.4",
36
+ "@endo/eventual-send": "^1.3.0",
37
+ "@endo/far": "^1.1.10",
38
+ "@endo/init": "^1.1.8",
39
+ "@endo/marshal": "^1.6.3",
40
+ "@endo/patterns": "^1.4.8",
41
+ "@endo/promise-kit": "^1.1.9",
42
+ "@endo/stream": "^1.2.9",
43
+ "import-meta-resolve": "^4.1.0"
44
44
  },
45
45
  "devDependencies": {
46
- "@agoric/deploy-script-support": "^0.10.4-u18a.0",
47
- "@agoric/governance": "^0.10.4-u18a.0",
48
- "@agoric/inter-protocol": "^0.17.0-u18a.0",
49
- "@agoric/orchestration": "^0.2.0-u18a.0",
50
- "@agoric/store": "^0.9.3-u18.1",
51
- "@agoric/swing-store": "^0.10.0-u18a.0",
52
- "@agoric/swingset-liveslots": "^0.10.3-u18a.0",
53
- "@agoric/time": "^0.3.3-u18.1",
54
- "@endo/errors": "^1.2.8",
46
+ "@agoric/deploy-script-support": "^0.10.4-u19.0",
47
+ "@agoric/governance": "^0.10.4-u19.0",
48
+ "@agoric/inter-protocol": "^0.17.0-u19.0",
49
+ "@agoric/orchestration": "^0.2.0-u19.0",
50
+ "@agoric/store": "^0.9.3-u19.0",
51
+ "@agoric/swing-store": "^0.10.0-u19.0",
52
+ "@agoric/swingset-liveslots": "^0.10.3-u19.0",
53
+ "@agoric/time": "^0.3.3-u19.0",
54
+ "@endo/errors": "^1.2.9",
55
55
  "ava": "^5.3.0",
56
56
  "c8": "^10.1.2"
57
57
  },
@@ -81,7 +81,7 @@
81
81
  "workerThreads": false
82
82
  },
83
83
  "typeCoverage": {
84
- "atLeast": 90.93
84
+ "atLeast": 91.57
85
85
  },
86
- "gitHead": "4e4d2b4dedc5a268178712fc6beb89496518480a"
86
+ "gitHead": "29e9704c375a06bb617027093b30d2d25faa6471"
87
87
  }
@@ -0,0 +1,83 @@
1
+ // @ts-check
2
+ import { makeHelpers } from '@agoric/deploy-script-support';
3
+ import { getManifestForAddOperators } from '@agoric/fast-usdc/src/add-operators.core.js';
4
+ import { toExternalConfig } from '@agoric/fast-usdc/src/utils/config-marshal.js';
5
+ import { configurations } from '@agoric/fast-usdc/src/utils/deploy-config.js';
6
+ import { Far } from '@endo/far';
7
+ import { parseArgs } from 'node:util';
8
+
9
+ /**
10
+ * @import {CoreEvalBuilder, DeployScriptFunction} from '@agoric/deploy-script-support/src/externalTypes.js';
11
+ * @import {ParseArgsConfig} from 'node:util';
12
+ * @import {FastUSDCConfig, FeedPolicy} from '@agoric/fast-usdc/src/types.js';
13
+ * @import {FastUSDCOpts} from './start-fast-usdc.build.js';
14
+ */
15
+
16
+ const { keys } = Object;
17
+
18
+ /** @type {ParseArgsConfig['options']} */
19
+ const options = {
20
+ net: { type: 'string' },
21
+ oracle: { type: 'string', multiple: true },
22
+ };
23
+ const oraclesUsage = 'use --oracle name:address ...';
24
+
25
+ const crossVatContext = /** @type {const} */ ({
26
+ /** @type {Brand<'nat'>} */
27
+ USDC: Far('USDC Brand'),
28
+ });
29
+
30
+ /** @type {CoreEvalBuilder} */
31
+ export const defaultProposalBuilder = async (
32
+ powers,
33
+ /** @type {FastUSDCConfig} */ config,
34
+ ) => {
35
+ return harden({
36
+ sourceSpec: '@agoric/fast-usdc/src/add-operators.core.js',
37
+ /** @type {[string, Parameters<typeof getManifestForAddOperators>[1]]} */
38
+ getManifestCall: [
39
+ getManifestForAddOperators.name,
40
+ {
41
+ options: toExternalConfig(config, crossVatContext),
42
+ },
43
+ ],
44
+ });
45
+ };
46
+
47
+ /** @type {DeployScriptFunction} */
48
+ export default async (homeP, endowments) => {
49
+ const { writeCoreEval } = await makeHelpers(homeP, endowments);
50
+ const { scriptArgs } = endowments;
51
+
52
+ /** @type {{ values: FastUSDCOpts }} */
53
+ // @ts-expect-error ensured by options
54
+ const {
55
+ values: { oracle: oracleArgs, net },
56
+ } = parseArgs({ args: scriptArgs, options });
57
+
58
+ const parseOracleArgs = () => {
59
+ if (net) {
60
+ if (!(net in configurations)) {
61
+ throw Error(`${net} not in ${keys(configurations)}`);
62
+ }
63
+ return configurations[net].oracles;
64
+ }
65
+ if (!oracleArgs) throw Error(oraclesUsage);
66
+ return Object.fromEntries(
67
+ oracleArgs.map(arg => {
68
+ const result = arg.match(/(?<name>[^:]+):(?<address>.+)/);
69
+ if (!(result && result.groups)) throw Error(oraclesUsage);
70
+ const { name, address } = result.groups;
71
+ return [name, address];
72
+ }),
73
+ );
74
+ };
75
+
76
+ const config = harden({
77
+ oracles: parseOracleArgs(),
78
+ });
79
+
80
+ await writeCoreEval('add-operators', utils =>
81
+ defaultProposalBuilder(utils, config),
82
+ );
83
+ };
@@ -0,0 +1,75 @@
1
+ import { makeHelpers } from '@agoric/deploy-script-support';
2
+ import { AmountMath } from '@agoric/ertp';
3
+ import { getManifestForDistributeFees } from '@agoric/fast-usdc/src/distribute-fees.core.js';
4
+ import { toExternalConfig } from '@agoric/fast-usdc/src/utils/config-marshal.js';
5
+ import {
6
+ multiplyBy,
7
+ parseRatio,
8
+ } from '@agoric/zoe/src/contractSupport/ratio.js';
9
+ import { Far } from '@endo/far';
10
+ import { parseArgs } from 'node:util';
11
+
12
+ /**
13
+ * @import {CoreEvalBuilder, DeployScriptFunction} from '@agoric/deploy-script-support/src/externalTypes.js'
14
+ * @import {FeeDistributionTerms} from '@agoric/fast-usdc/src/distribute-fees.core.js'
15
+ */
16
+
17
+ const usage =
18
+ 'Use: [--fixedFees <number> | --feePortion <percent>] --destinationAddress <address> ...';
19
+
20
+ const xVatCtx = /** @type {const} */ ({
21
+ /** @type {Brand<'nat'>} */
22
+ USDC: Far('USDC Brand'),
23
+ });
24
+ const { USDC } = xVatCtx;
25
+ const USDC_DECIMALS = 6n;
26
+ const unit = AmountMath.make(USDC, 10n ** USDC_DECIMALS);
27
+
28
+ /**
29
+ * @param {unknown} _utils
30
+ * @param {FeeDistributionTerms} feeTerms
31
+ * @satisfies {CoreEvalBuilder}
32
+ */
33
+ export const feeProposalBuilder = async (_utils, feeTerms) => {
34
+ return harden({
35
+ sourceSpec: '@agoric/fast-usdc/src/distribute-fees.core.js',
36
+ /** @type {[string, Parameters<typeof getManifestForDistributeFees>[1]]} */
37
+ getManifestCall: [
38
+ getManifestForDistributeFees.name,
39
+ { options: toExternalConfig(harden({ feeTerms }), xVatCtx) },
40
+ ],
41
+ });
42
+ };
43
+
44
+ /** @type {DeployScriptFunction} */
45
+ export default async (homeP, endowments) => {
46
+ const { writeCoreEval } = await makeHelpers(homeP, endowments);
47
+ /** @type {{ values: Record<string, string | undefined> }} */
48
+ const {
49
+ values: { destinationAddress, ...opt },
50
+ } = parseArgs({
51
+ args: endowments.scriptArgs,
52
+ options: {
53
+ destinationAddress: { type: 'string' },
54
+ fixedFees: { type: 'string' },
55
+ feePortion: { type: 'string' },
56
+ },
57
+ });
58
+ if (!destinationAddress) assert.fail(usage);
59
+ if (opt.fixedFees && opt.feePortion) assert.fail(usage);
60
+
61
+ /** @type {FeeDistributionTerms} */
62
+ const feeTerms = {
63
+ destinationAddress,
64
+ ...((opt.fixedFees && {
65
+ fixedFees: multiplyBy(unit, parseRatio(opt.fixedFees, USDC)),
66
+ }) ||
67
+ (opt.feePortion && {
68
+ feePortion: parseRatio(opt.feePortion, USDC),
69
+ }) ||
70
+ assert.fail(usage)),
71
+ };
72
+ await writeCoreEval('eval-fast-usdc-fees', utils =>
73
+ feeProposalBuilder(utils, feeTerms),
74
+ );
75
+ };
@@ -7,7 +7,7 @@ import { makeHelpers } from '@agoric/deploy-script-support';
7
7
  /**
8
8
  * @import {CoreEvalBuilder, DeployScriptFunction} from '@agoric/deploy-script-support/src/externalTypes.js'
9
9
  * @import {ParseArgsConfig} from 'node:util'
10
- * @import {FastUSDCConfig} from '@agoric/fast-usdc/src/types.js'
10
+ * @import {FastUSDCConfig} from '@agoric/fast-usdc';
11
11
  */
12
12
 
13
13
  /** @type {ParseArgsConfig['options']} */
@@ -22,10 +22,14 @@ const feedPolicyUsage = 'use --feedPolicy <policy> ...';
22
22
  * }} FastUSDCUpdateOpts
23
23
  */
24
24
 
25
- /** @type {CoreEvalBuilder} */
25
+ /**
26
+ * @param {Parameters<CoreEvalBuilder>[0]} powers
27
+ * @param {FastUSDCConfig} config
28
+ * @satisfies {CoreEvalBuilder}
29
+ */
26
30
  export const updateProposalBuilder = async (
27
- _utils,
28
- /** @type {FastUSDCConfig} */ config,
31
+ powers,
32
+ /** @type {Pick<FastUSDCConfig, 'feedPolicy'>} */ config,
29
33
  ) => {
30
34
  return harden({
31
35
  sourceSpec: '@agoric/fast-usdc/src/fast-usdc-policy.core.js',
@@ -1,10 +1,8 @@
1
1
  // @ts-check
2
2
  import { makeHelpers } from '@agoric/deploy-script-support';
3
3
  import { AmountMath } from '@agoric/ertp';
4
- import {
5
- FastUSDCConfigShape,
6
- getManifestForFastUSDC,
7
- } from '@agoric/fast-usdc/src/fast-usdc.start.js';
4
+ import { getManifestForFastUSDC } from '@agoric/fast-usdc/src/start-fast-usdc.core.js';
5
+ import { FastUSDCConfigShape } from '@agoric/fast-usdc/src/type-guards.js';
8
6
  import { toExternalConfig } from '@agoric/fast-usdc/src/utils/config-marshal.js';
9
7
  import { configurations } from '@agoric/fast-usdc/src/utils/deploy-config.js';
10
8
  import {
@@ -17,7 +15,7 @@ import { parseArgs } from 'node:util';
17
15
  /**
18
16
  * @import {CoreEvalBuilder, DeployScriptFunction} from '@agoric/deploy-script-support/src/externalTypes.js'
19
17
  * @import {ParseArgsConfig} from 'node:util'
20
- * @import {FastUSDCConfig} from '@agoric/fast-usdc/src/types.js'
18
+ * @import {FastUSDCConfig, FeedPolicy} from '@agoric/fast-usdc';
21
19
  */
22
20
 
23
21
  const { keys } = Object;
@@ -26,7 +24,6 @@ const { keys } = Object;
26
24
  const options = {
27
25
  flatFee: { type: 'string', default: '0.01' },
28
26
  variableRate: { type: 'string', default: '0.01' },
29
- maxVariableFee: { type: 'string', default: '5' },
30
27
  contractRate: { type: 'string', default: '0.2' },
31
28
  net: { type: 'string' },
32
29
  oracle: { type: 'string', multiple: true },
@@ -52,7 +49,6 @@ const assetInfoUsage =
52
49
  * @typedef {{
53
50
  * flatFee: string;
54
51
  * variableRate: string;
55
- * maxVariableFee: string;
56
52
  * contractRate: string;
57
53
  * net?: string;
58
54
  * oracle?: string[];
@@ -72,13 +68,17 @@ const { USDC } = crossVatContext;
72
68
  const USDC_DECIMALS = 6;
73
69
  const unit = AmountMath.make(USDC, 10n ** BigInt(USDC_DECIMALS));
74
70
 
75
- /** @type {CoreEvalBuilder} */
71
+ /**
72
+ * @param {Parameters<CoreEvalBuilder>[0]} powers
73
+ * @param {FastUSDCConfig} config
74
+ * @satisfies {CoreEvalBuilder}
75
+ */
76
76
  export const defaultProposalBuilder = async (
77
77
  { publishRef, install },
78
- /** @type {FastUSDCConfig} */ config,
78
+ config,
79
79
  ) => {
80
80
  return harden({
81
- sourceSpec: '@agoric/fast-usdc/src/fast-usdc.start.js',
81
+ sourceSpec: '@agoric/fast-usdc/src/start-fast-usdc.core.js',
82
82
  /** @type {[string, Parameters<typeof getManifestForFastUSDC>[1]]} */
83
83
  getManifestCall: [
84
84
  getManifestForFastUSDC.name,
@@ -114,6 +114,7 @@ export default async (homeP, endowments) => {
114
114
  },
115
115
  } = parseArgs({ args: scriptArgs, options });
116
116
 
117
+ /** @returns {FeedPolicy} */
117
118
  const parseFeedPolicy = () => {
118
119
  if (net) {
119
120
  if (!(net in configurations)) {
@@ -122,7 +123,17 @@ export default async (homeP, endowments) => {
122
123
  return configurations[net].feedPolicy;
123
124
  }
124
125
  if (!feedPolicy) throw Error(feedPolicyUsage);
125
- return JSON.parse(feedPolicy);
126
+ const parsed = JSON.parse(feedPolicy);
127
+ if (!parsed.chainPolicies) {
128
+ return {
129
+ ...configurations.MAINNET.feedPolicy,
130
+ ...parsed,
131
+ };
132
+ } else {
133
+ // consider having callers use `toExternalConfig` to pass in bigints and
134
+ // use `fromExternalConfig` here to parse
135
+ throw Error('TODO: support unmarshalling feedPolicy');
136
+ }
126
137
  };
127
138
 
128
139
  const parseOracleArgs = () => {
@@ -148,11 +159,10 @@ export default async (homeP, endowments) => {
148
159
  /** @param {string} numeral */
149
160
  const toRatio = numeral => parseRatio(numeral, USDC);
150
161
  const parseFeeConfigArgs = () => {
151
- const { flatFee, variableRate, maxVariableFee, contractRate } = fees;
162
+ const { flatFee, variableRate, contractRate } = fees;
152
163
  return {
153
164
  flat: toAmount(flatFee),
154
165
  variableRate: toRatio(variableRate),
155
- maxVariable: toAmount(maxVariableFee),
156
166
  contractRate: toRatio(contractRate),
157
167
  };
158
168
  };
@@ -0,0 +1,82 @@
1
+ import { parseScriptArgs, makeHelpers } from '@agoric/deploy-script-support';
2
+ import { getManifestForReplaceFeeDistributor } from '@agoric/inter-protocol/src/proposals/replace-fee-distributor.js';
3
+ import { SECONDS_PER_HOUR } from '@agoric/inter-protocol/src/proposals/econ-behaviors.js';
4
+
5
+ const configurations = {
6
+ A3P_INTEGRATION: {
7
+ params: {
8
+ collectionInterval: 30n,
9
+ keywordShares: {
10
+ RewardDistributor: 0n,
11
+ Reserve: 1n,
12
+ },
13
+ },
14
+ },
15
+ MAINNET: {
16
+ params: {
17
+ collectionInterval: 1n * SECONDS_PER_HOUR,
18
+ keywordShares: {
19
+ RewardDistributor: 0n,
20
+ Reserve: 1n,
21
+ },
22
+ },
23
+ },
24
+ DEVNET: {
25
+ params: {
26
+ collectionInterval: 1n * SECONDS_PER_HOUR,
27
+ keywordShares: {
28
+ RewardDistributor: 0n,
29
+ Reserve: 1n,
30
+ },
31
+ },
32
+ },
33
+ EMERYNET: {
34
+ params: {
35
+ collectionInterval: 1n * SECONDS_PER_HOUR,
36
+ keywordShares: {
37
+ RewardDistributor: 0n,
38
+ Reserve: 1n,
39
+ },
40
+ },
41
+ },
42
+ };
43
+
44
+ const { keys } = Object;
45
+ const knownVariants = keys(configurations);
46
+
47
+ /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
48
+ export const defaultProposalBuilder = async ({ publishRef, install }, opts) => {
49
+ const config = opts.config || configurations[opts.variant];
50
+ console.log('feeDist OPTS', opts, config);
51
+ if (!config) {
52
+ const error = `Unknown variant "${opts.variant}". Expected one of ${knownVariants.join(', ')}`;
53
+ console.error(error);
54
+ throw Error(error);
55
+ }
56
+ const { params } = config;
57
+
58
+ return harden({
59
+ sourceSpec:
60
+ '@agoric/inter-protocol/src/proposals/replace-fee-distributor.js',
61
+ getManifestCall: [
62
+ getManifestForReplaceFeeDistributor.name,
63
+ {
64
+ feeDistributorRef: publishRef(
65
+ install('@agoric/inter-protocol/src/feeDistributor.js'),
66
+ ),
67
+ ...params,
68
+ },
69
+ ],
70
+ });
71
+ };
72
+
73
+ /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').DeployScriptFunction} */
74
+ export default async (homeP, endowments) => {
75
+ const name = 'replace-feeDistributor-combo';
76
+ const opts = parseScriptArgs(endowments, name, knownVariants);
77
+ const { writeCoreEval } = await makeHelpers(homeP, endowments);
78
+
79
+ await writeCoreEval('replace-feeDistributor', utils =>
80
+ defaultProposalBuilder(utils, opts),
81
+ );
82
+ };
@@ -3,12 +3,20 @@ import { getManifestForReplaceFeeDistributor } from '@agoric/inter-protocol/src/
3
3
  import { SECONDS_PER_HOUR } from '@agoric/inter-protocol/src/proposals/econ-behaviors.js';
4
4
 
5
5
  /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
6
- export const defaultProposalBuilder = async (_, opts) => {
6
+ export const defaultProposalBuilder = async ({ publishRef, install }, opts) => {
7
7
  console.log('feeDist OPTS', opts);
8
8
  return harden({
9
9
  sourceSpec:
10
10
  '@agoric/inter-protocol/src/proposals/replace-fee-distributor.js',
11
- getManifestCall: [getManifestForReplaceFeeDistributor.name, { ...opts }],
11
+ getManifestCall: [
12
+ getManifestForReplaceFeeDistributor.name,
13
+ {
14
+ feeDistributorRef: publishRef(
15
+ install('@agoric/inter-protocol/src/feeDistributor.js'),
16
+ ),
17
+ ...opts,
18
+ },
19
+ ],
12
20
  });
13
21
  };
14
22
 
@@ -14,6 +14,6 @@ export const defaultProposalBuilder = async ({ publishRef, install }) =>
14
14
 
15
15
  /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').DeployScriptFunction} */
16
16
  export default async (homeP, endowments) => {
17
- const { writeCoreProposal } = await makeHelpers(homeP, endowments);
18
- await writeCoreProposal('upgrade-bank', defaultProposalBuilder);
17
+ const { writeCoreEval } = await makeHelpers(homeP, endowments);
18
+ await writeCoreEval('upgrade-bank', defaultProposalBuilder);
19
19
  };
@@ -1,4 +1,4 @@
1
- import { makeHelpers } from '@agoric/deploy-script-support';
1
+ import { makeHelpers, parseScriptArgs } from '@agoric/deploy-script-support';
2
2
  import { getManifestForUpgradingMintHolder } from '@agoric/vats/src/proposals/upgrade-mintHolder-proposal.js';
3
3
 
4
4
  const configurations = {
@@ -94,30 +94,9 @@ export const defaultProposalBuilder = async ({ publishRef, install }, opts) => {
94
94
  });
95
95
  };
96
96
 
97
- const Usage = `agoric run upgrade-mintHolder.js ${[...knownVariants, '<json-config>'].join(' | ')}`;
98
-
99
97
  /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').DeployScriptFunction} */
100
98
  export default async (homeP, endowments) => {
101
- const { scriptArgs } = endowments;
102
- const variantOrConfig = scriptArgs?.[0];
103
- console.log('upgrade-mintHolder', variantOrConfig);
104
-
105
- const opts = {};
106
-
107
- if (typeof variantOrConfig === 'string') {
108
- if (variantOrConfig[0] === '{') {
109
- try {
110
- opts.config = JSON.parse(variantOrConfig);
111
- } catch (err) {
112
- throw Error(`Failed to parse config argument ${variantOrConfig}`);
113
- }
114
- } else {
115
- opts.variant = variantOrConfig;
116
- }
117
- } else {
118
- console.error(Usage);
119
- throw Error(Usage);
120
- }
99
+ const opts = parseScriptArgs(endowments, 'upgrade-mintHolder', knownVariants);
121
100
 
122
101
  const { writeCoreEval } = await makeHelpers(homeP, endowments);
123
102
  await writeCoreEval(`upgrade-mintHolder`, utils =>
@@ -0,0 +1,19 @@
1
+ import { makeHelpers } from '@agoric/deploy-script-support';
2
+
3
+ /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').CoreEvalBuilder} */
4
+ export const defaultProposalBuilder = async ({ publishRef, install }) =>
5
+ harden({
6
+ sourceSpec: '@agoric/vats/src/proposals/upgrade-psm-proposal.js',
7
+ getManifestCall: [
8
+ 'getManifestForUpgradingPSM',
9
+ {
10
+ psmRef: publishRef(install('@agoric/inter-protocol/src/psm/psm.js')),
11
+ },
12
+ ],
13
+ });
14
+
15
+ /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').DeployScriptFunction} */
16
+ export default async (homeP, endowments) => {
17
+ const { writeCoreEval } = await makeHelpers(homeP, endowments);
18
+ await writeCoreEval('upgrade-psm', defaultProposalBuilder);
19
+ };