@agoric/inter-protocol 0.16.2-other-dev-1f26562.0 → 0.16.2-other-dev-3eb1a1d.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/README.md +6 -6
  2. package/package.json +42 -36
  3. package/scripts/build-bundles.js +5 -21
  4. package/src/auction/auctionBook.d.ts +147 -0
  5. package/src/auction/auctionBook.d.ts.map +1 -0
  6. package/src/auction/auctionBook.js +156 -150
  7. package/src/auction/auctionMath.d.ts +17 -0
  8. package/src/auction/auctionMath.d.ts.map +1 -0
  9. package/src/auction/auctionMath.js +81 -0
  10. package/src/auction/auctioneer.d.ts +69 -0
  11. package/src/auction/auctioneer.d.ts.map +1 -0
  12. package/src/auction/auctioneer.js +70 -59
  13. package/src/auction/offerBook.d.ts +45 -0
  14. package/src/auction/offerBook.d.ts.map +1 -0
  15. package/src/auction/offerBook.js +13 -12
  16. package/src/auction/params.d.ts +144 -0
  17. package/src/auction/params.d.ts.map +1 -0
  18. package/src/auction/params.js +10 -9
  19. package/src/auction/scheduleMath.d.ts +5 -0
  20. package/src/auction/scheduleMath.d.ts.map +1 -0
  21. package/src/auction/scheduleMath.js +18 -16
  22. package/src/auction/scheduler.d.ts +50 -0
  23. package/src/auction/scheduler.d.ts.map +1 -0
  24. package/src/auction/scheduler.js +53 -47
  25. package/src/auction/sortedOffers.d.ts +8 -0
  26. package/src/auction/sortedOffers.d.ts.map +1 -0
  27. package/src/auction/sortedOffers.js +10 -9
  28. package/src/auction/util.d.ts +30 -0
  29. package/src/auction/util.d.ts.map +1 -0
  30. package/src/auction/util.js +9 -6
  31. package/src/clientSupport.d.ts +167 -0
  32. package/src/clientSupport.d.ts.map +1 -0
  33. package/src/clientSupport.js +155 -97
  34. package/src/collectFees.d.ts +2 -0
  35. package/src/collectFees.d.ts.map +1 -0
  36. package/src/contractSupport.d.ts +28 -0
  37. package/src/contractSupport.d.ts.map +1 -0
  38. package/src/contractSupport.js +19 -13
  39. package/src/econCommitteeCharter.d.ts +40 -0
  40. package/src/econCommitteeCharter.d.ts.map +1 -0
  41. package/src/econCommitteeCharter.js +21 -20
  42. package/src/feeDistributor.d.ts +224 -0
  43. package/src/feeDistributor.d.ts.map +1 -0
  44. package/src/feeDistributor.js +37 -33
  45. package/src/index.d.ts +2 -0
  46. package/src/index.d.ts.map +1 -0
  47. package/src/index.js +1 -0
  48. package/src/interest-math.d.ts +3 -0
  49. package/src/interest-math.d.ts.map +1 -0
  50. package/src/interest.d.ts +28 -0
  51. package/src/interest.d.ts.map +1 -0
  52. package/src/interest.js +23 -18
  53. package/src/price/README.md +13 -0
  54. package/src/price/fluxAggregatorContract.d.ts +71 -0
  55. package/src/price/fluxAggregatorContract.d.ts.map +1 -0
  56. package/src/price/fluxAggregatorContract.js +64 -55
  57. package/src/price/fluxAggregatorKit.d.ts +103 -0
  58. package/src/price/fluxAggregatorKit.d.ts.map +1 -0
  59. package/src/price/fluxAggregatorKit.js +52 -40
  60. package/src/price/priceOracleKit.d.ts +38 -0
  61. package/src/price/priceOracleKit.d.ts.map +1 -0
  62. package/src/price/priceOracleKit.js +12 -14
  63. package/src/price/roundsManager.d.ts +204 -0
  64. package/src/price/roundsManager.d.ts.map +1 -0
  65. package/src/price/roundsManager.js +131 -85
  66. package/src/proposals/README.md +2 -3
  67. package/src/proposals/add-auction.d.ts +109 -0
  68. package/src/proposals/add-auction.d.ts.map +1 -0
  69. package/src/proposals/add-auction.js +256 -0
  70. package/src/proposals/addAssetToVault.d.ts +173 -0
  71. package/src/proposals/addAssetToVault.d.ts.map +1 -0
  72. package/src/proposals/addAssetToVault.js +192 -40
  73. package/src/proposals/committee-proposal.d.ts +113 -0
  74. package/src/proposals/committee-proposal.d.ts.map +1 -0
  75. package/src/proposals/committee-proposal.js +25 -31
  76. package/src/proposals/core-proposal.d.ts +149 -0
  77. package/src/proposals/core-proposal.d.ts.map +1 -0
  78. package/src/proposals/core-proposal.js +9 -11
  79. package/src/proposals/deploy-price-feeds.d.ts +76 -0
  80. package/src/proposals/deploy-price-feeds.d.ts.map +1 -0
  81. package/src/proposals/deploy-price-feeds.js +316 -0
  82. package/src/proposals/econ-behaviors.d.ts +541 -0
  83. package/src/proposals/econ-behaviors.d.ts.map +1 -0
  84. package/src/proposals/econ-behaviors.js +64 -45
  85. package/src/proposals/price-feed-proposal.d.ts +84 -0
  86. package/src/proposals/price-feed-proposal.d.ts.map +1 -0
  87. package/src/proposals/price-feed-proposal.js +109 -51
  88. package/src/proposals/replace-fee-distributor.d.ts +48 -0
  89. package/src/proposals/replace-fee-distributor.d.ts.map +1 -0
  90. package/src/proposals/replace-fee-distributor.js +195 -0
  91. package/src/proposals/replace-scaledPriceAuthorities.d.ts +30 -0
  92. package/src/proposals/replace-scaledPriceAuthorities.d.ts.map +1 -0
  93. package/src/proposals/replace-scaledPriceAuthorities.js +124 -0
  94. package/src/proposals/replaceElectorate.d.ts +55 -0
  95. package/src/proposals/replaceElectorate.d.ts.map +1 -0
  96. package/src/proposals/replaceElectorate.js +521 -0
  97. package/src/proposals/startEconCommittee.d.ts +34 -0
  98. package/src/proposals/startEconCommittee.d.ts.map +1 -0
  99. package/src/proposals/startEconCommittee.js +2 -2
  100. package/src/proposals/startPSM.d.ts +59 -0
  101. package/src/proposals/startPSM.d.ts.map +1 -0
  102. package/src/proposals/startPSM.js +44 -29
  103. package/src/proposals/upgrade-scaledPriceAuthorities.d.ts +24 -0
  104. package/src/proposals/upgrade-scaledPriceAuthorities.d.ts.map +1 -0
  105. package/src/proposals/upgrade-scaledPriceAuthorities.js +78 -0
  106. package/src/proposals/upgrade-vaults.d.ts +41 -0
  107. package/src/proposals/upgrade-vaults.d.ts.map +1 -0
  108. package/src/proposals/upgrade-vaults.js +202 -0
  109. package/src/proposals/utils.d.ts +19 -0
  110. package/src/proposals/utils.d.ts.map +1 -0
  111. package/src/proposals/utils.js +43 -9
  112. package/src/provisionPool.d.ts +163 -0
  113. package/src/provisionPool.d.ts.map +1 -0
  114. package/src/provisionPool.js +122 -0
  115. package/src/provisionPoolKit.d.ts +359 -0
  116. package/src/provisionPoolKit.d.ts.map +1 -0
  117. package/src/provisionPoolKit.js +522 -0
  118. package/src/psm/psm.d.ts +125 -0
  119. package/src/psm/psm.d.ts.map +1 -0
  120. package/src/psm/psm.js +80 -79
  121. package/src/psm/types-ambient.d.ts +2 -0
  122. package/src/psm/types-ambient.d.ts.map +1 -0
  123. package/src/psm/types-ambient.js +3 -0
  124. package/src/reserve/assetReserve.d.ts +47 -0
  125. package/src/reserve/assetReserve.d.ts.map +1 -0
  126. package/src/reserve/assetReserve.js +28 -19
  127. package/src/reserve/assetReserveKit.d.ts +74 -0
  128. package/src/reserve/assetReserveKit.d.ts.map +1 -0
  129. package/src/reserve/assetReserveKit.js +24 -30
  130. package/src/reserve/params.d.ts +10 -0
  131. package/src/reserve/params.d.ts.map +1 -0
  132. package/src/tokens.d.ts +3 -0
  133. package/src/tokens.d.ts.map +1 -0
  134. package/src/tokens.js +5 -0
  135. package/src/vaultFactory/burn.d.ts +2 -0
  136. package/src/vaultFactory/burn.d.ts.map +1 -0
  137. package/src/vaultFactory/burn.js +1 -1
  138. package/src/vaultFactory/liquidation.d.ts +23 -0
  139. package/src/vaultFactory/liquidation.d.ts.map +1 -0
  140. package/src/vaultFactory/liquidation.js +37 -24
  141. package/src/vaultFactory/math.d.ts +11 -0
  142. package/src/vaultFactory/math.d.ts.map +1 -0
  143. package/src/vaultFactory/math.js +10 -9
  144. package/src/vaultFactory/orderedVaultStore.d.ts +93 -0
  145. package/src/vaultFactory/orderedVaultStore.d.ts.map +1 -0
  146. package/src/vaultFactory/orderedVaultStore.js +8 -11
  147. package/src/vaultFactory/params.d.ts +140 -0
  148. package/src/vaultFactory/params.d.ts.map +1 -0
  149. package/src/vaultFactory/params.js +52 -24
  150. package/src/vaultFactory/prioritizedVaults.d.ts +279 -0
  151. package/src/vaultFactory/prioritizedVaults.d.ts.map +1 -0
  152. package/src/vaultFactory/prioritizedVaults.js +4 -4
  153. package/src/vaultFactory/proceeds.d.ts +35 -0
  154. package/src/vaultFactory/proceeds.d.ts.map +1 -0
  155. package/src/vaultFactory/proceeds.js +26 -18
  156. package/src/vaultFactory/storeUtils.d.ts +25 -0
  157. package/src/vaultFactory/storeUtils.d.ts.map +1 -0
  158. package/src/vaultFactory/storeUtils.js +10 -12
  159. package/src/vaultFactory/types-ambient.d.ts +137 -0
  160. package/src/vaultFactory/types-ambient.d.ts.map +1 -0
  161. package/src/vaultFactory/{types.js → types-ambient.js} +42 -42
  162. package/src/vaultFactory/vault.d.ts +343 -0
  163. package/src/vaultFactory/vault.d.ts.map +1 -0
  164. package/src/vaultFactory/vault.js +105 -99
  165. package/src/vaultFactory/vaultDirector.d.ts +341 -0
  166. package/src/vaultFactory/vaultDirector.d.ts.map +1 -0
  167. package/src/vaultFactory/vaultDirector.js +86 -64
  168. package/src/vaultFactory/vaultFactory.d.ts +202 -0
  169. package/src/vaultFactory/vaultFactory.d.ts.map +1 -0
  170. package/src/vaultFactory/vaultFactory.js +52 -33
  171. package/src/vaultFactory/vaultHolder.d.ts +126 -0
  172. package/src/vaultFactory/vaultHolder.d.ts.map +1 -0
  173. package/src/vaultFactory/vaultHolder.js +11 -16
  174. package/src/vaultFactory/vaultKit.d.ts +32 -0
  175. package/src/vaultFactory/vaultKit.d.ts.map +1 -0
  176. package/src/vaultFactory/vaultKit.js +5 -4
  177. package/src/vaultFactory/vaultManager.d.ts +674 -0
  178. package/src/vaultFactory/vaultManager.d.ts.map +1 -0
  179. package/src/vaultFactory/vaultManager.js +257 -158
  180. package/CHANGELOG.md +0 -1041
  181. package/exported.js +0 -2
  182. package/scripts/add-collateral-core.js +0 -112
  183. package/scripts/deploy-contracts.js +0 -100
  184. package/scripts/init-core.js +0 -198
  185. package/scripts/invite-committee-core.js +0 -42
  186. package/scripts/manual-price-feed.js +0 -117
  187. package/scripts/price-feed-core.js +0 -104
  188. package/scripts/start-local-chain.sh +0 -84
  189. package/src/psm/types.js +0 -3
  190. package/src/typeGuards.js +0 -13
  191. package/src/vaultFactory/type-imports.js +0 -4
@@ -0,0 +1,195 @@
1
+ import { deeplyFulfilledObject, makeTracer } from '@agoric/internal';
2
+ import { Stable } from '@agoric/internal/src/tokens.js';
3
+ import { makeScalarBigMapStore } from '@agoric/vat-data';
4
+ import { getInterfaceOf, E } from '@endo/far';
5
+
6
+ const trace = makeTracer('ReplaceFeeDistributer', true);
7
+
8
+ /**
9
+ * Start the reward distributor.
10
+ *
11
+ * @param {import('./econ-behaviors').EconomyBootstrapPowers} powers
12
+ * @param {{
13
+ * options: {
14
+ * keywordShares: Record<string, bigint>;
15
+ * collectionInterval: bigint;
16
+ * };
17
+ * }} options
18
+ */
19
+ export const replaceFeeDistributor = async (
20
+ {
21
+ consume: {
22
+ chainTimerService,
23
+ bankManager,
24
+ vaultFactoryKit,
25
+ periodicFeeCollectors,
26
+ reserveKit,
27
+ zoe,
28
+ contractKits: contractKitsP,
29
+ },
30
+ produce: {
31
+ feeDistributorKit,
32
+ periodicFeeCollectors: periodicFeeCollectorsP,
33
+ },
34
+ instance: {
35
+ produce: { feeDistributor: feeDistributorP },
36
+ },
37
+ installation: {
38
+ consume: { feeDistributor },
39
+ },
40
+ issuer: {
41
+ consume: { [Stable.symbol]: centralIssuerP },
42
+ },
43
+ brand: {
44
+ consume: { [Stable.symbol]: centralBrandP },
45
+ },
46
+ },
47
+ { options },
48
+ ) => {
49
+ trace('replaceFeeDistributer', options);
50
+
51
+ const { keywordShares, collectionInterval } = options;
52
+
53
+ const feeDistributorTerms = await deeplyFulfilledObject(
54
+ harden({
55
+ timerService: chainTimerService,
56
+ collectionInterval,
57
+ keywordShares,
58
+ }),
59
+ );
60
+ trace('feeDistributorTerms', feeDistributorTerms);
61
+
62
+ const [centralIssuer, centralBrand, contractKits] = await Promise.all([
63
+ centralIssuerP,
64
+ centralBrandP,
65
+ contractKitsP,
66
+ ]);
67
+
68
+ const rewardDistributorDepositFacet = await E(bankManager)
69
+ .getRewardDistributorDepositFacet(Stable.denom, {
70
+ issuer: centralIssuer,
71
+ brand: centralBrand,
72
+ })
73
+ .catch(e => {
74
+ console.error('Cannot create fee collector deposit facet', e);
75
+ return undefined;
76
+ });
77
+
78
+ /**
79
+ * @type {StartedInstanceKit<
80
+ * typeof import('@agoric/inter-protocol/src/feeDistributor.js').start
81
+ * >}
82
+ */
83
+ const instanceKit = await E(zoe).startInstance(
84
+ feeDistributor,
85
+ { Fee: centralIssuer },
86
+ feeDistributorTerms,
87
+ undefined,
88
+ 'feeDistributor',
89
+ );
90
+ await E(instanceKit.creatorFacet).setDestinations({
91
+ ...(rewardDistributorDepositFacet && {
92
+ RewardDistributor: E(
93
+ instanceKit.creatorFacet,
94
+ ).makeDepositFacetDestination(rewardDistributorDepositFacet),
95
+ }),
96
+ Reserve: E(instanceKit.creatorFacet).makeOfferDestination(
97
+ zoe,
98
+ 'Collateral',
99
+ E.get(reserveKit).publicFacet,
100
+ 'makeAddCollateralInvitation',
101
+ ),
102
+ });
103
+
104
+ trace('Clearing the old instance from bootstrap powers...');
105
+ feeDistributorKit.reset();
106
+ feeDistributorP.reset();
107
+
108
+ trace('Now introduce the new instance');
109
+ feeDistributorKit.resolve(
110
+ harden({ ...instanceKit, label: 'feeDistributor' }),
111
+ );
112
+ feeDistributorP.resolve(instanceKit.instance);
113
+
114
+ const periodicCollectors = await periodicFeeCollectors;
115
+ trace(
116
+ `Stop periodicCollectors of the old instance. Number of collectors: ${periodicCollectors.getSize()}`,
117
+ );
118
+ for await (const [key, collector] of periodicCollectors.entries()) {
119
+ trace('Getting debugName', key);
120
+ // @ts-expect-error incomplete PeriodicFeeCollector type
121
+ const debugName = await E(collector).getDebugName();
122
+ trace(`Stopping ${debugName}...`);
123
+ await E(collector).stop();
124
+ }
125
+ periodicFeeCollectorsP.reset();
126
+
127
+ trace('Old collectors cleared. Start creating and setting new ones.');
128
+
129
+ const collectorKit = {
130
+ vaultFactory: E.get(vaultFactoryKit).creatorFacet,
131
+ };
132
+ const newCollectorStore = makeScalarBigMapStore('periodicCollectors', {
133
+ durable: true,
134
+ });
135
+ await Promise.all(
136
+ Object.entries(collectorKit).map(async ([debugName, collectorFacet]) => {
137
+ const collector = E(instanceKit.creatorFacet).makeContractFeeCollector(
138
+ zoe,
139
+ collectorFacet,
140
+ );
141
+ const periodicCollector = await E(
142
+ instanceKit.creatorFacet,
143
+ ).startPeriodicCollection(debugName, collector);
144
+ newCollectorStore.init(periodicCollectors.getSize(), periodicCollector);
145
+ }),
146
+ );
147
+
148
+ trace('Write newCollectorStore in periodicFeeCollectors');
149
+ periodicFeeCollectorsP.resolve(newCollectorStore);
150
+
151
+ trace('Write to contractKits');
152
+ const label = getInterfaceOf(instanceKit.instance);
153
+ const kit = harden({ ...instanceKit, label });
154
+ contractKits.init(kit.instance, kit);
155
+
156
+ trace('Done.');
157
+ };
158
+ harden(replaceFeeDistributor);
159
+
160
+ const t = 'replaceFeeDistributor';
161
+ export const getManifestForReplaceFeeDistributor = async (
162
+ _,
163
+ feeDistributorOptions,
164
+ ) => ({
165
+ manifest: {
166
+ [replaceFeeDistributor.name]: {
167
+ consume: {
168
+ chainTimerService: t,
169
+ bankManager: t,
170
+ vaultFactoryKit: t,
171
+ periodicFeeCollectors: t,
172
+ reserveKit: t,
173
+ zoe: t,
174
+ contractKits: t,
175
+ },
176
+ produce: {
177
+ feeDistributorKit: t,
178
+ periodicFeeCollectors: t,
179
+ },
180
+ instance: {
181
+ produce: { feeDistributor: t },
182
+ },
183
+ installation: {
184
+ consume: { feeDistributor: t },
185
+ },
186
+ issuer: {
187
+ consume: { [Stable.symbol]: t },
188
+ },
189
+ brand: {
190
+ consume: { [Stable.symbol]: t },
191
+ },
192
+ },
193
+ },
194
+ options: { ...feeDistributorOptions },
195
+ });
@@ -0,0 +1,30 @@
1
+ export function replaceScaledPriceAuthority(powers: BootstrapPowers, { options }: {
2
+ options: object;
3
+ }): Promise<void>;
4
+ export function replaceScaledPriceAuthorities(powers: ChainBootstrapSpace & BootstrapPowers, { options }: {
5
+ options: {
6
+ scaledPARef: {
7
+ bundleID: string;
8
+ };
9
+ };
10
+ }): Promise<void>;
11
+ export function getManifestForReplaceScaledPriceAuthorities(_ign: any, upgradeSPAOptions: any): Promise<{
12
+ manifest: {
13
+ [x: string]: {
14
+ consume: {
15
+ agoricNames: string;
16
+ priceAuthority: string;
17
+ startUpgradable: string;
18
+ zoe: string;
19
+ agoricNamesAdmin: string;
20
+ contractKits: string;
21
+ priceAuthorityAdmin: string;
22
+ };
23
+ instance: {
24
+ produce: string;
25
+ };
26
+ };
27
+ };
28
+ options: any;
29
+ }>;
30
+ //# sourceMappingURL=replace-scaledPriceAuthorities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replace-scaledPriceAuthorities.d.ts","sourceRoot":"","sources":["replace-scaledPriceAuthorities.js"],"names":[],"mappings":"AAaO,oDAJI,eAAe,eAEvB;IAAuB,OAAO,EAAtB,MAAM;CAChB,iBAeA;AAUM,sDAHI,mBAAmB,GAAG,eAAe,eACrC;IAAE,OAAO,EAAE;QAAE,WAAW,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,iBA2D5D;AAGM;;;;;;;;;;;;;;;;;;GA0BL"}
@@ -0,0 +1,124 @@
1
+ import { makeTracer } from '@agoric/internal';
2
+ import { E } from '@endo/far';
3
+
4
+ import { startScaledPriceAuthority } from './addAssetToVault.js';
5
+ import { scaledPriceFeedName } from './utils.js';
6
+
7
+ const trace = makeTracer('replaceScaledPA', true);
8
+
9
+ /**
10
+ * @param {BootstrapPowers} powers
11
+ * @param {object} config
12
+ * @param {object} config.options
13
+ */
14
+ export const replaceScaledPriceAuthority = async (powers, { options }) => {
15
+ const {
16
+ instance: { produce: produceInstance },
17
+ } = powers;
18
+ const { issuerName } = options.interchainAssetOptions;
19
+
20
+ const spaKit = await startScaledPriceAuthority(powers, { options });
21
+
22
+ const label = scaledPriceFeedName(issuerName);
23
+ produceInstance[label].reset();
24
+
25
+ // publish into agoricNames. This must stay after registerPriceAuthority,
26
+ // which is called by startScaledPriceAuthority()
27
+ produceInstance[label].resolve(spaKit.instance);
28
+ };
29
+
30
+ /**
31
+ * Look up the existing assets known to auctions, and replace the corresponding
32
+ * scaledPriceAuthorities. The existing contracts will be left behind to be
33
+ * cleaned up later.
34
+ *
35
+ * @param {ChainBootstrapSpace & BootstrapPowers} powers
36
+ * @param {{ options: { scaledPARef: { bundleID: string } } }} options
37
+ */
38
+ export const replaceScaledPriceAuthorities = async (powers, { options }) => {
39
+ trace('start');
40
+ const {
41
+ consume: {
42
+ agoricNamesAdmin,
43
+ agoricNames,
44
+ contractKits: contractKitsP,
45
+ zoe,
46
+ },
47
+ } = powers;
48
+
49
+ const { scaledPARef } = options;
50
+
51
+ const installationsAdmin = E(agoricNamesAdmin).lookupAdmin('installation');
52
+ const [spaInstallation, contractKits] = await Promise.all([
53
+ E(E(installationsAdmin).readonly()).lookup('scaledPriceAuthority'),
54
+ contractKitsP,
55
+ ]);
56
+
57
+ const bundleID = scaledPARef.bundleID;
58
+ if (scaledPARef && bundleID) {
59
+ await E.when(
60
+ E(zoe).installBundleID(bundleID),
61
+ installation =>
62
+ E(installationsAdmin).update('scaledPriceAuthority', installation),
63
+ err =>
64
+ console.error(
65
+ `🚨 failed to update scaledPriceAuthority installation`,
66
+ err,
67
+ ),
68
+ );
69
+ trace('installed scaledPriceAuthority bundle', bundleID);
70
+ }
71
+
72
+ // Ask Zoe for the installation for each kit's instance, and return all the
73
+ // kits where that matches the given installation.
74
+ async function maybeSPAKit(kit) {
75
+ const installation = await E(zoe).getInstallationForInstance(kit.instance);
76
+ return spaInstallation === installation ? [kit] : [];
77
+ }
78
+ const scaledPAKits = (
79
+ await Promise.all([...contractKits.values()].map(maybeSPAKit))
80
+ ).flat();
81
+
82
+ const namedBrands = await E(E(agoricNames).lookup('brand')).entries();
83
+
84
+ for (const kitEntry of scaledPAKits) {
85
+ const { instance } = kitEntry;
86
+ const terms = await E(powers.consume.zoe).getTerms(instance);
87
+ const { brand } = terms.scaleIn.denominator;
88
+ const entry = namedBrands.find(([_k, v]) => v === brand);
89
+ assert(entry, 'unable to find issuerName for ', brand);
90
+ const issuerName = entry[0];
91
+ await replaceScaledPriceAuthority(powers, {
92
+ options: { interchainAssetOptions: { issuerName } },
93
+ });
94
+ }
95
+ };
96
+
97
+ const t = 'replaceScaledPriceAuthority';
98
+ export const getManifestForReplaceScaledPriceAuthorities = async (
99
+ _ign,
100
+ upgradeSPAOptions,
101
+ ) => ({
102
+ manifest: {
103
+ [replaceScaledPriceAuthorities.name]: {
104
+ consume: {
105
+ // //// Widely known ////
106
+ agoricNames: t,
107
+ priceAuthority: t,
108
+ startUpgradable: t,
109
+ zoe: t,
110
+
111
+ // //// closely held, powerful ////
112
+ agoricNamesAdmin: t,
113
+ contractKits: t,
114
+ priceAuthorityAdmin: t,
115
+ },
116
+ instance: {
117
+ // This is a right to add/replace any instance. That we update only the
118
+ // relevant ones must be verified by inspection.
119
+ produce: t,
120
+ },
121
+ },
122
+ },
123
+ options: { ...upgradeSPAOptions },
124
+ });
@@ -0,0 +1,55 @@
1
+ export function replaceAllElectorates(permittedPowers: EconomyBootstrapPowers & interlockPowers, config: {
2
+ options: {
3
+ committeeName: string;
4
+ voterAddresses: Record<string, string>;
5
+ highPrioritySendersConfig: {
6
+ addressesToAdd: string[];
7
+ addressesToRemove: string[];
8
+ };
9
+ };
10
+ }): Promise<void>;
11
+ export function getManifestForReplaceAllElectorates({ economicCommitteeRef: _economicCommitteeRef }: {
12
+ economicCommitteeRef: any;
13
+ }, options: any): Promise<{
14
+ manifest: {
15
+ [x: string]: {
16
+ consume: {
17
+ auctionUpgradeNewGovCreator: boolean;
18
+ auctionUpgradeNewInstance: boolean;
19
+ psmKit: boolean;
20
+ governedContractKits: boolean;
21
+ chainStorage: boolean;
22
+ highPrioritySendersManager: boolean;
23
+ namesByAddressAdmin: boolean;
24
+ board: boolean;
25
+ startUpgradable: boolean;
26
+ };
27
+ produce: {
28
+ econCharterKit: boolean;
29
+ economicCommitteeKit: boolean;
30
+ economicCommitteeCreatorFacet: boolean;
31
+ auctionUpgradeNewGovCreator: boolean;
32
+ };
33
+ installation: {
34
+ consume: {
35
+ committee: boolean;
36
+ binaryVoteCounter: boolean;
37
+ econCommitteeCharter: boolean;
38
+ };
39
+ };
40
+ instance: {
41
+ produce: {
42
+ economicCommittee: boolean;
43
+ econCommitteeCharter: boolean;
44
+ };
45
+ };
46
+ };
47
+ };
48
+ options: any;
49
+ }>;
50
+ export type interlockPowers = PromiseSpaceOf<{
51
+ auctionUpgradeNewInstance: Instance;
52
+ auctionUpgradeNewGovCreator: any;
53
+ }>;
54
+ import type { EconomyBootstrapPowers } from './econ-behaviors.js';
55
+ //# sourceMappingURL=replaceElectorate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replaceElectorate.d.ts","sourceRoot":"","sources":["replaceElectorate.js"],"names":[],"mappings":"AAwZO,uDAlBI,sBAAsB,GAAG,eAAe,UAGxC;IACN,OAAO,EAAE;QACP,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvC,yBAAyB,EAAE;YACzB,cAAc,EAAE,MAAM,EAAE,CAAC;YACzB,iBAAiB,EAAE,MAAM,EAAE,CAAC;SAC7B,CAAC;KACH,CAAC;CACH,GAGS,OAAO,CAAC,IAAI,CAAC,CAuEzB;AAIM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCL;8BApNW,cAAc,CAAC;IACvB,yBAAyB,EAAE,QAAQ,CAAC;IACpC,2BAA2B,EAAE,GAAG,CAAC;CAClC,CAAC;4CApSqC,qBAAqB"}