@agoric/inter-protocol 0.17.0-u18.5 → 0.17.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.
Files changed (67) hide show
  1. package/package.json +28 -28
  2. package/src/auction/auctionBook.d.ts +1 -2
  3. package/src/auction/auctionBook.d.ts.map +1 -1
  4. package/src/auction/auctionMath.d.ts +1 -1
  5. package/src/auction/auctionMath.d.ts.map +1 -1
  6. package/src/auction/auctioneer.d.ts.map +1 -1
  7. package/src/auction/auctioneer.js +3 -3
  8. package/src/auction/params.d.ts.map +1 -1
  9. package/src/auction/scheduler.d.ts.map +1 -1
  10. package/src/auction/scheduler.js +0 -1
  11. package/src/contractSupport.d.ts +1 -1
  12. package/src/contractSupport.d.ts.map +1 -1
  13. package/src/econCommitteeCharter.d.ts +1 -1
  14. package/src/econCommitteeCharter.d.ts.map +1 -1
  15. package/src/feeDistributor.d.ts +6 -6
  16. package/src/feeDistributor.d.ts.map +1 -1
  17. package/src/price/fluxAggregatorContract.d.ts.map +1 -1
  18. package/src/price/fluxAggregatorKit.d.ts.map +1 -1
  19. package/src/price/priceOracleKit.d.ts.map +1 -1
  20. package/src/price/roundsManager.d.ts +0 -1
  21. package/src/price/roundsManager.d.ts.map +1 -1
  22. package/src/proposals/econ-behaviors.d.ts +15 -13
  23. package/src/proposals/econ-behaviors.d.ts.map +1 -1
  24. package/src/proposals/econ-behaviors.js +3 -2
  25. package/src/proposals/price-feed-proposal.d.ts +1 -1
  26. package/src/proposals/price-feed-proposal.d.ts.map +1 -1
  27. package/src/proposals/replace-fee-distributor.d.ts +48 -0
  28. package/src/proposals/replace-fee-distributor.d.ts.map +1 -0
  29. package/src/proposals/replace-fee-distributor.js +195 -0
  30. package/src/proposals/replaceElectorate.d.ts +3 -0
  31. package/src/proposals/replaceElectorate.d.ts.map +1 -1
  32. package/src/proposals/replaceElectorate.js +71 -12
  33. package/src/proposals/startPSM.d.ts +1 -1
  34. package/src/proposals/startPSM.d.ts.map +1 -1
  35. package/src/proposals/upgrade-vaults.d.ts.map +1 -1
  36. package/src/proposals/upgrade-vaults.js +6 -0
  37. package/src/provisionPool.d.ts +4 -110
  38. package/src/provisionPool.d.ts.map +1 -1
  39. package/src/provisionPool.js +12 -2
  40. package/src/provisionPoolKit.d.ts +10 -257
  41. package/src/provisionPoolKit.d.ts.map +1 -1
  42. package/src/provisionPoolKit.js +81 -63
  43. package/src/psm/psm.d.ts.map +1 -1
  44. package/src/psm/psm.js +2 -5
  45. package/src/reserve/assetReserve.d.ts.map +1 -1
  46. package/src/reserve/assetReserve.js +6 -15
  47. package/src/reserve/params.d.ts +5 -3
  48. package/src/reserve/params.d.ts.map +1 -1
  49. package/src/reserve/params.js +4 -2
  50. package/src/vaultFactory/math.d.ts +1 -1
  51. package/src/vaultFactory/math.d.ts.map +1 -1
  52. package/src/vaultFactory/orderedVaultStore.d.ts +4 -4
  53. package/src/vaultFactory/orderedVaultStore.d.ts.map +1 -1
  54. package/src/vaultFactory/params.d.ts.map +1 -1
  55. package/src/vaultFactory/prioritizedVaults.d.ts +12 -12
  56. package/src/vaultFactory/prioritizedVaults.d.ts.map +1 -1
  57. package/src/vaultFactory/vault.d.ts +2 -2
  58. package/src/vaultFactory/vaultDirector.d.ts +12 -11
  59. package/src/vaultFactory/vaultDirector.d.ts.map +1 -1
  60. package/src/vaultFactory/vaultDirector.js +5 -1
  61. package/src/vaultFactory/vaultFactory.d.ts +7 -6
  62. package/src/vaultFactory/vaultFactory.d.ts.map +1 -1
  63. package/src/vaultFactory/vaultHolder.d.ts +50 -6
  64. package/src/vaultFactory/vaultHolder.d.ts.map +1 -1
  65. package/src/vaultFactory/vaultKit.d.ts +2 -2
  66. package/src/vaultFactory/vaultManager.d.ts +16 -18
  67. package/src/vaultFactory/vaultManager.d.ts.map +1 -1
@@ -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
+ });
@@ -18,6 +18,8 @@ export function getManifestForReplaceAllElectorates({ economicCommitteeRef: _eco
18
18
  auctionUpgradeNewGovCreator: boolean;
19
19
  auctionUpgradeNewInstance: boolean;
20
20
  psmKit: boolean;
21
+ contractKits: boolean;
22
+ econCharterKit: boolean;
21
23
  governedContractKits: boolean;
22
24
  chainStorage: boolean;
23
25
  highPrioritySendersManager: boolean;
@@ -47,6 +49,7 @@ export function getManifestForReplaceAllElectorates({ economicCommitteeRef: _eco
47
49
  };
48
50
  consume: {
49
51
  economicCommittee: boolean;
52
+ econCommitteeCharter: boolean;
50
53
  };
51
54
  };
52
55
  };
@@ -1 +1 @@
1
- {"version":3,"file":"replaceElectorate.d.ts","sourceRoot":"","sources":["replaceElectorate.js"],"names":[],"mappings":"AAkbO,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CL;8BAzNW,cAAc,CAAC;IACvB,yBAAyB,EAAE,QAAQ,CAAC;IACpC,2BAA2B,EAAE,GAAG,CAAC;IACjC,wBAAwB,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CACtD,CAAC;4CA9TqC,qBAAqB"}
1
+ {"version":3,"file":"replaceElectorate.d.ts","sourceRoot":"","sources":["replaceElectorate.js"],"names":[],"mappings":"AAweO,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDL;8BA9NW,cAAc,CAAC;IACvB,yBAAyB,EAAE,QAAQ,CAAC;IACpC,2BAA2B,EAAE,GAAG,CAAC;IACjC,wBAAwB,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CACtD,CAAC;4CApXqC,qBAAqB"}
@@ -289,33 +289,87 @@ const startNewEconomicCommittee = async (
289
289
  * Starts a new Economic Committee Charter by creating an instance with the
290
290
  * provided committee specifications.
291
291
  *
292
- * @param {EconomyBootstrapPowers} powers - The resources and capabilities
293
- * required to start the committee.
292
+ * @param {EconomyBootstrapPowers &
293
+ * PromiseSpaceOf<{ retiredContractInstances: MapStore<string, Instance> }>} powers
294
+ * - The resources and capabilities required to start the committee.
295
+ *
294
296
  * @returns {Promise<EconCharterStartResult>} A promise that resolves to the
295
297
  * charter kit result.
296
298
  */
297
299
  const startNewEconCharter = async ({
298
- consume: { startUpgradable },
299
- produce: { econCharterKit },
300
+ consume: {
301
+ board,
302
+ startUpgradable,
303
+ contractKits: contractKitsP,
304
+ econCharterKit: econCharterKitP,
305
+ retiredContractInstances: retiredContractInstancesP,
306
+ },
307
+ produce: {
308
+ econCharterKit: produceEconCharterKit,
309
+ retiredContractInstances: produceRetiredInstances,
310
+ },
300
311
  installation: {
301
312
  consume: { binaryVoteCounter: counterP, econCommitteeCharter: installP },
302
313
  },
303
314
  instance: {
304
315
  produce: { econCommitteeCharter },
316
+ consume: { econCommitteeCharter: previousInstanceP },
305
317
  },
306
318
  }) => {
307
- const [charterInstall, counterInstall] = await Promise.all([
319
+ const [
320
+ charterInstall,
321
+ counterInstall,
322
+ previousInstance,
323
+ contractKits,
324
+ econCharterKit,
325
+ retiredInstances,
326
+ ] = await Promise.all([
308
327
  installP,
309
328
  counterP,
329
+ previousInstanceP,
330
+ contractKitsP,
331
+ econCharterKitP,
332
+ provideRetiredInstances(retiredContractInstancesP, produceRetiredInstances),
310
333
  ]);
311
- const terms = await harden({
312
- binaryVoteCounterInstallation: counterInstall,
313
- });
334
+
335
+ const label = 'econCommitteeCharter';
336
+ const previousCharterKit = { ...econCharterKit, label };
337
+
338
+ const boardID = await E(board).getId(previousCharterKit.instance);
339
+ const identifier = `${label}-${boardID}`;
340
+ trace('Saving previous EC Charter Instance', label);
341
+
342
+ // save the old charter instance kit so we can manage it later
343
+ if (retiredInstances.has(identifier)) {
344
+ // bootstrap tests start having already run this upgrade. Actual upgrades on
345
+ // mainNet or testnets should start with the promiseSpace post upgrade-17,
346
+ // which doesn't have this entry in the map.
347
+ trace(
348
+ '⚠️ WARNING: collision on storing Charter in retireInstances not' +
349
+ ' expected during chain upgrade. It IS normal during bootstrap tests',
350
+ );
351
+ } else {
352
+ retiredInstances.init(identifier, previousCharterKit.instance);
353
+ }
354
+ if (contractKits.has(previousInstance)) {
355
+ // bootstrap tests start having already run this upgrade. Actual upgrades on
356
+ // mainNet or testnets should start with the promiseSpace post upgrade-17,
357
+ // which doesn't have this entry in the map.
358
+ trace(
359
+ '⚠️ WARNING: collision on storing Charter in contractKits not' +
360
+ ' expected during chain upgrade. It IS normal during bootstrap tests',
361
+ );
362
+ } else {
363
+ contractKits.init(previousInstance, previousCharterKit);
364
+ }
314
365
 
315
366
  trace('Starting new EC Charter Instance');
316
367
 
368
+ const terms = harden({
369
+ binaryVoteCounterInstallation: counterInstall,
370
+ });
317
371
  const startResult = await E(startUpgradable)({
318
- label: 'econCommitteeCharter',
372
+ label,
319
373
  installation: charterInstall,
320
374
  terms,
321
375
  });
@@ -325,8 +379,8 @@ const startNewEconCharter = async ({
325
379
  econCommitteeCharter.reset();
326
380
  econCommitteeCharter.resolve(E.get(startResult).instance);
327
381
 
328
- econCharterKit.reset();
329
- econCharterKit.resolve(startResult);
382
+ produceEconCharterKit.reset();
383
+ produceEconCharterKit.resolve(startResult);
330
384
  return startResult;
331
385
  };
332
386
 
@@ -515,6 +569,8 @@ export const getManifestForReplaceAllElectorates = async (
515
569
  auctionUpgradeNewGovCreator: true,
516
570
  auctionUpgradeNewInstance: true,
517
571
  psmKit: true,
572
+ contractKits: true,
573
+ econCharterKit: true,
518
574
  governedContractKits: true,
519
575
  chainStorage: true,
520
576
  highPrioritySendersManager: true,
@@ -543,7 +599,10 @@ export const getManifestForReplaceAllElectorates = async (
543
599
  economicCommittee: true,
544
600
  econCommitteeCharter: true,
545
601
  },
546
- consume: { economicCommittee: true },
602
+ consume: {
603
+ economicCommittee: true,
604
+ econCommitteeCharter: true,
605
+ },
547
606
  },
548
607
  },
549
608
  },
@@ -5,7 +5,7 @@ export function startPSM({ vatParameters: { chainStorageEntries }, consume: { ag
5
5
  options?: {
6
6
  anchorOptions?: AnchorOptions;
7
7
  } | undefined;
8
- } | undefined): Promise<void>;
8
+ }): Promise<void>;
9
9
  export function makeAnchorAsset({ vatParameters: { chainStorageEntries }, consume: { agoricNamesAdmin, bankManager, startUpgradable, anchorBalancePayments, }, installation: { consume: { mintHolder }, }, produce: { testFirstAnchorKit, anchorBalancePayments: produceAnchorBalancePayments, }, }: EconomyBootstrapPowers & WellKnownSpaces & ChainStorageVatParams, { options: { anchorOptions } }: {
10
10
  options: {
11
11
  anchorOptions?: AnchorOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"startPSM.d.ts","sourceRoot":"","sources":["startPSM.js"],"names":[],"mappings":"AAuFO,ydAPI,sBAAsB,GAAG,eAAe,GAAG,qBAAqB;;;;;wBAK9C,aAAa;;8BAsMzC;AAuBM,qSAHI,sBAAsB,GAAG,eAAe,GAAG,qBAAqB,kCAChE;IAAE,OAAO,EAAE;QAAE,aAAa,CAAC,EAAE,aAAa,CAAA;KAAE,CAAA;CAAE,iBAwGxD;AAGD,iEAAiE;AAEjE,8DAiBE;AAEF,gCAAgC;AAChC,2BADW,iBAAiB,CA6C1B;AAGK;;;;;;;;;;;;EAaN;AAEM;;;;;;;;;;;;;;EAcN;;;;;;;uCAreM,yBAAyB;iCAAzB,yBAAyB;oCAAzB,yBAAyB;4CAIU,qBAAqB;uBAZxC,gCAAgC;uCAUlB,mCAAmC"}
1
+ {"version":3,"file":"startPSM.d.ts","sourceRoot":"","sources":["startPSM.js"],"names":[],"mappings":"AAuFO,ydAPI,sBAAsB,GAAG,eAAe,GAAG,qBAAqB,kFAExE;IAAwB,eAAe;IACf,eAAe;IACf,UAAU;IACiB,OAAO;wBAAhC,aAAa;;CAAoB,iBAsM7D;AAuBM,qSAHI,sBAAsB,GAAG,eAAe,GAAG,qBAAqB,kCAChE;IAAE,OAAO,EAAE;QAAE,aAAa,CAAC,EAAE,aAAa,CAAA;KAAE,CAAA;CAAE,iBAwGxD;AAGD,iEAAiE;AAEjE,8DAiBE;AAEF,gCAAgC;AAChC,2BADW,iBAAiB,CA6C1B;AAGK;;;;;;;;;;;;EAaN;AAEM;;;;;;;;;;;;;;EAcN;;;;;;;uCAreM,yBAAyB;iCAAzB,yBAAyB;oCAAzB,yBAAyB;4CAIU,qBAAqB;uBAZxC,gCAAgC;uCAUlB,mCAAmC"}
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade-vaults.d.ts","sourceRoot":"","sources":["upgrade-vaults.js"],"names":[],"mappings":"AAyBO,+XARI,OAAO,oCAAoC,EAAE,sBAAsB,GACvE,eAAe,uDACX;IACN,OAAO,EAAE;QACP,kBAAkB,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC;KAC1C,CAAC;CACH,iBA8IH;AAUM,4DAHJ;IAAmB,UAAU,EAArB,GAAG;CACX,uBAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;GA4Bb;8BAhMY,cAAc,CAAC;IACvB,kBAAkB,EAAE,QAAQ,CAAC;IAC7B,yBAAyB,EAAE,QAAQ,CAAC;IACpC,sBAAsB,EAAE,MAAM,CAAC;CAChC,CAAC"}
1
+ {"version":3,"file":"upgrade-vaults.d.ts","sourceRoot":"","sources":["upgrade-vaults.js"],"names":[],"mappings":"AA+BO,+XARI,OAAO,oCAAoC,EAAE,sBAAsB,GACvE,eAAe,uDACX;IACN,OAAO,EAAE;QACP,kBAAkB,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC;KAC1C,CAAC;CACH,iBA8IH;AAUM,4DAHJ;IAAmB,UAAU,EAArB,GAAG;CACX,uBAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;GA4Bb;8BAhMY,cAAc,CAAC;IACvB,kBAAkB,EAAE,QAAQ,CAAC;IAC7B,yBAAyB,EAAE,QAAQ,CAAC;IACpC,sBAAsB,EAAE,MAAM,CAAC;CAChC,CAAC"}
@@ -1,3 +1,9 @@
1
+ /**
2
+ * @file this core-eval proposal is specific to the upgrade-18 scenario,
3
+ * handling tasks beyond generic Vault Factory null upgrade. For a reusable
4
+ * proposal, see upgrade-vaultFactory-proposal.js.
5
+ */
6
+
1
7
  import { E } from '@endo/far';
2
8
  import { makeNotifierFromAsyncIterable } from '@agoric/notifier';
3
9
  import { makeTracer } from '@agoric/internal/src/index.js';
@@ -7,6 +7,7 @@ export function start(zcf: ZCF<ProvisionTerms>, privateArgs: {
7
7
  storageNode: StorageNode;
8
8
  marshaller: Marshal<any>;
9
9
  metricsOverride?: import("./provisionPoolKit.js").MetricsNotification;
10
+ governedParamOverrides?: Record<string, Amount | undefined>;
10
11
  }, baggage: import("@agoric/vat-data").Baggage): Promise<{
11
12
  creatorFacet: import("@endo/exo").Guarded<{
12
13
  getParamMgrRetriever: () => {
@@ -23,112 +24,7 @@ export function start(zcf: ZCF<ProvisionTerms>, privateArgs: {
23
24
  }>;
24
25
  }>;
25
26
  getInvitation: (name: any) => Promise<Invitation<unknown, undefined>>;
26
- getLimitedCreatorFacet: () => import("@endo/exo").Guarded<{
27
- addRevivableAddresses(oldAddresses: string[]): void;
28
- getWalletReviver(): import("@endo/exo").Guarded<{
29
- reviveWallet(address: string): Promise<{
30
- handleBridgeAction(actionCapData: import("@endo/marshal").CapData<string | null>, canSpend?: boolean | undefined): Promise<void>;
31
- getDepositFacet(): import("@endo/exo").Guarded<{
32
- receive(payment: Payment): Promise<Amount>;
33
- }>;
34
- getOffersFacet(): import("@endo/exo").Guarded<{
35
- executeOffer(offerSpec: OfferSpec): Promise<void>;
36
- tryExitOffer(offerId: import("@agoric/smart-wallet/src/offers.js").OfferId): Promise<void>;
37
- }>;
38
- getCurrentSubscriber(): globalThis.Subscriber<import("@agoric/smart-wallet/src/smartWallet.js").CurrentWalletRecord>;
39
- getUpdatesSubscriber(): globalThis.Subscriber<import("@agoric/smart-wallet/src/smartWallet.js").UpdateRecord>;
40
- getPublicTopics(): {
41
- current: {
42
- description: string;
43
- subscriber: globalThis.Subscriber<import("@agoric/smart-wallet/src/smartWallet.js").CurrentWalletRecord>;
44
- storagePath: Promise<string>;
45
- };
46
- updates: {
47
- description: string;
48
- subscriber: globalThis.Subscriber<import("@agoric/smart-wallet/src/smartWallet.js").UpdateRecord>;
49
- storagePath: Promise<string>;
50
- };
51
- };
52
- } & import("../../../node_modules/@endo/exo/src/get-interface.js").GetInterfaceGuard<{
53
- handleBridgeAction(actionCapData: import("@endo/marshal").CapData<string | null>, canSpend?: boolean | undefined): Promise<void>;
54
- getDepositFacet(): import("@endo/exo").Guarded<{
55
- receive(payment: Payment): Promise<Amount>;
56
- }>;
57
- getOffersFacet(): import("@endo/exo").Guarded<{
58
- executeOffer(offerSpec: OfferSpec): Promise<void>;
59
- tryExitOffer(offerId: import("@agoric/smart-wallet/src/offers.js").OfferId): Promise<void>;
60
- }>;
61
- getCurrentSubscriber(): globalThis.Subscriber<import("@agoric/smart-wallet/src/smartWallet.js").CurrentWalletRecord>;
62
- getUpdatesSubscriber(): globalThis.Subscriber<import("@agoric/smart-wallet/src/smartWallet.js").UpdateRecord>;
63
- getPublicTopics(): {
64
- current: {
65
- description: string;
66
- subscriber: globalThis.Subscriber<import("@agoric/smart-wallet/src/smartWallet.js").CurrentWalletRecord>;
67
- storagePath: Promise<string>;
68
- };
69
- updates: {
70
- description: string;
71
- subscriber: globalThis.Subscriber<import("@agoric/smart-wallet/src/smartWallet.js").UpdateRecord>;
72
- storagePath: Promise<string>;
73
- };
74
- };
75
- }> & import("@endo/eventual-send").RemotableBrand<{}, {
76
- handleBridgeAction(actionCapData: import("@endo/marshal").CapData<string | null>, canSpend?: boolean | undefined): Promise<void>;
77
- getDepositFacet(): import("@endo/exo").Guarded<{
78
- receive(payment: Payment): Promise<Amount>;
79
- }>;
80
- getOffersFacet(): import("@endo/exo").Guarded<{
81
- executeOffer(offerSpec: OfferSpec): Promise<void>;
82
- tryExitOffer(offerId: import("@agoric/smart-wallet/src/offers.js").OfferId): Promise<void>;
83
- }>;
84
- getCurrentSubscriber(): globalThis.Subscriber<import("@agoric/smart-wallet/src/smartWallet.js").CurrentWalletRecord>;
85
- getUpdatesSubscriber(): globalThis.Subscriber<import("@agoric/smart-wallet/src/smartWallet.js").UpdateRecord>;
86
- getPublicTopics(): {
87
- current: {
88
- description: string;
89
- subscriber: globalThis.Subscriber<import("@agoric/smart-wallet/src/smartWallet.js").CurrentWalletRecord>;
90
- storagePath: Promise<string>;
91
- };
92
- updates: {
93
- description: string;
94
- subscriber: globalThis.Subscriber<import("@agoric/smart-wallet/src/smartWallet.js").UpdateRecord>;
95
- storagePath: Promise<string>;
96
- };
97
- };
98
- } & import("../../../node_modules/@endo/exo/src/get-interface.js").GetInterfaceGuard<{
99
- handleBridgeAction(actionCapData: import("@endo/marshal").CapData<string | null>, canSpend?: boolean | undefined): Promise<void>;
100
- getDepositFacet(): import("@endo/exo").Guarded<{
101
- receive(payment: Payment): Promise<Amount>;
102
- }>;
103
- getOffersFacet(): import("@endo/exo").Guarded<{
104
- executeOffer(offerSpec: OfferSpec): Promise<void>;
105
- tryExitOffer(offerId: import("@agoric/smart-wallet/src/offers.js").OfferId): Promise<void>;
106
- }>;
107
- getCurrentSubscriber(): globalThis.Subscriber<import("@agoric/smart-wallet/src/smartWallet.js").CurrentWalletRecord>;
108
- getUpdatesSubscriber(): globalThis.Subscriber<import("@agoric/smart-wallet/src/smartWallet.js").UpdateRecord>;
109
- getPublicTopics(): {
110
- current: {
111
- description: string;
112
- subscriber: globalThis.Subscriber<import("@agoric/smart-wallet/src/smartWallet.js").CurrentWalletRecord>;
113
- storagePath: Promise<string>;
114
- };
115
- updates: {
116
- description: string;
117
- subscriber: globalThis.Subscriber<import("@agoric/smart-wallet/src/smartWallet.js").UpdateRecord>;
118
- storagePath: Promise<string>;
119
- };
120
- };
121
- }>> & import("@endo/pass-style").RemotableObject>;
122
- ackWallet(address: string): boolean;
123
- }>;
124
- setReferences(erefs: ProvisionPoolKitReferences): Promise<void>;
125
- makeHandler(): {
126
- fromBridge: (obj: any) => Promise<void>;
127
- } & import("@endo/pass-style").RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, {
128
- fromBridge: (obj: any) => Promise<void>;
129
- }>;
130
- initPSM(brand: Brand, instance: PsmInstance): void;
131
- }>;
27
+ getLimitedCreatorFacet: () => any;
132
28
  getGovernedApis: () => GovernedApis;
133
29
  getGovernedApiNames: () => string[];
134
30
  setOfferFilter: (strings: any) => Promise<void>;
@@ -147,10 +43,8 @@ export function start(zcf: ZCF<ProvisionTerms>, privateArgs: {
147
43
  getUnknown: (name: string) => any;
148
44
  getSubscription: () => globalThis.StoredSubscription<globalThis.GovernanceSubscriptionState>;
149
45
  getGovernedParams: () => globalThis.ERef<globalThis.ParamStateRecord>;
150
- getMetrics(): globalThis.Subscriber<import("./provisionPoolKit.js").MetricsNotification>;
151
- getPublicTopics(): {
152
- metrics: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<import("./provisionPoolKit.js").MetricsNotification>;
153
- };
46
+ getMetrics(): any;
47
+ getPublicTopics(): any;
154
48
  }>;
155
49
  }>;
156
50
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"provisionPool.d.ts","sourceRoot":"","sources":["provisionPool.js"],"names":[],"mappings":"AAgBA,8CAA8C;AAE9C,2BAA2B;AAC3B,mBADW,YAAY,CAerB;AAqBK,2BAZI,GAAG,CAAC,cAAc,CAAC,eACnB;IACN,QAAQ,EAAE,OAAO,WAAW,EAAE,IAAI,CACtC,OAAa,8BAA8B,EAAE,IAAI,CAC5C,CAAC;IACF,sBAAsB,EAAE,UAAU,CAAC;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,QAAQ,GAAG,CAAC,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,uBAAuB,EAAE,mBAAmB,CAAC;CACvE,WACO,OAAO,kBAAkB,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;6DAsE0o8B,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+CAAvnoB,cAAc;kDAAuE,cAAc;;;;;;;;;GAHjrU;;;;6BAlFY,aAAa,GACrB,eAAe,CAAC;IACd,uBAAuB,EAAE,QAAQ,CAAC;CACnC,CAAC;6BAxBoB,eAAe"}
1
+ {"version":3,"file":"provisionPool.d.ts","sourceRoot":"","sources":["provisionPool.js"],"names":[],"mappings":"AAoBA,8CAA8C;AAE9C,2BAA2B;AAC3B,mBADW,YAAY,CAerB;AAsBK,2BAbI,GAAG,CAAC,cAAc,CAAC,eACnB;IACN,QAAQ,EAAE,OAAO,WAAW,EAAE,IAAI,CACtC,OAAa,8BAA8B,EAAE,IAAI,CAC5C,CAAC;IACF,sBAAsB,EAAE,UAAU,CAAC;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,QAAQ,GAAG,CAAC,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,uBAAuB,EAAE,mBAAmB,CAAC;IACtE,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC7D,WACO,OAAO,kBAAkB,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+CA2EktT,cAAc;kDAAuE,cAAc;;;;;;;GAHj2T;;;;6BAxFY,aAAa,GACrB,eAAe,CAAC;IACd,uBAAuB,EAAE,QAAQ,CAAC;CACnC,CAAC;6BAxBoB,eAAe"}
@@ -12,7 +12,11 @@ import { prepareExo } from '@agoric/vat-data';
12
12
  import { provideSingleton } from '@agoric/zoe/src/contractSupport/durability.js';
13
13
  import { prepareRecorderKitMakers } from '@agoric/zoe/src/contractSupport/recorder.js';
14
14
  import { TopicsRecordShape } from '@agoric/zoe/src/contractSupport/topics.js';
15
- import { prepareProvisionPoolKit } from './provisionPoolKit.js';
15
+ import { makeDurableZone } from '@agoric/zone/durable.js';
16
+ import {
17
+ prepareBridgeProvisionTool,
18
+ prepareProvisionPoolKit,
19
+ } from './provisionPoolKit.js';
16
20
 
17
21
  /** @import {Marshal} from '@endo/marshal'; */
18
22
 
@@ -49,6 +53,7 @@ harden(meta);
49
53
  * storageNode: StorageNode;
50
54
  * marshaller: Marshal<any>;
51
55
  * metricsOverride?: import('./provisionPoolKit.js').MetricsNotification;
56
+ * governedParamOverrides?: Record<string, Amount | undefined>;
52
57
  * }} privateArgs
53
58
  * @param {import('@agoric/vat-data').Baggage} baggage
54
59
  */
@@ -70,13 +75,18 @@ export const start = async (zcf, privateArgs, baggage) => {
70
75
  },
71
76
  privateArgs.storageNode,
72
77
  privateArgs.marshaller,
78
+ privateArgs.governedParamOverrides,
73
79
  );
74
80
 
75
- const makeProvisionPoolKit = prepareProvisionPoolKit(baggage, {
81
+ const zone = makeDurableZone(baggage);
82
+
83
+ const makeBridgeProvisionTool = prepareBridgeProvisionTool(zone);
84
+ const makeProvisionPoolKit = prepareProvisionPoolKit(zone, {
76
85
  makeRecorderKit,
77
86
  params,
78
87
  poolBank,
79
88
  zcf,
89
+ makeBridgeProvisionTool,
80
90
  });
81
91
 
82
92
  const provisionPoolKit = await provideSingleton(