@agoric/inter-protocol 0.16.2-upgrade-14-dev-c8f9e7b.0 → 0.16.2-upgrade-16-fi-dev-8879538.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 (175) hide show
  1. package/package.json +41 -34
  2. package/scripts/build-bundles.js +5 -21
  3. package/src/auction/auctionBook.d.ts +84 -0
  4. package/src/auction/auctionBook.d.ts.map +1 -0
  5. package/src/auction/auctionBook.js +135 -103
  6. package/src/auction/auctioneer.d.ts +83 -0
  7. package/src/auction/auctioneer.d.ts.map +1 -0
  8. package/src/auction/auctioneer.js +63 -49
  9. package/src/auction/offerBook.d.ts +45 -0
  10. package/src/auction/offerBook.d.ts.map +1 -0
  11. package/src/auction/offerBook.js +13 -12
  12. package/src/auction/params.d.ts +149 -0
  13. package/src/auction/params.d.ts.map +1 -0
  14. package/src/auction/params.js +10 -9
  15. package/src/auction/scheduleMath.d.ts +5 -0
  16. package/src/auction/scheduleMath.d.ts.map +1 -0
  17. package/src/auction/scheduleMath.js +17 -15
  18. package/src/auction/scheduler.d.ts +49 -0
  19. package/src/auction/scheduler.d.ts.map +1 -0
  20. package/src/auction/scheduler.js +51 -43
  21. package/src/auction/sortedOffers.d.ts +8 -0
  22. package/src/auction/sortedOffers.d.ts.map +1 -0
  23. package/src/auction/sortedOffers.js +9 -7
  24. package/src/auction/util.d.ts +32 -0
  25. package/src/auction/util.d.ts.map +1 -0
  26. package/src/auction/util.js +6 -4
  27. package/src/clientSupport.d.ts +167 -0
  28. package/src/clientSupport.d.ts.map +1 -0
  29. package/src/clientSupport.js +97 -40
  30. package/src/collectFees.d.ts +2 -0
  31. package/src/collectFees.d.ts.map +1 -0
  32. package/src/contractSupport.d.ts +28 -0
  33. package/src/contractSupport.d.ts.map +1 -0
  34. package/src/contractSupport.js +14 -12
  35. package/src/econCommitteeCharter.d.ts +39 -0
  36. package/src/econCommitteeCharter.d.ts.map +1 -0
  37. package/src/econCommitteeCharter.js +21 -20
  38. package/src/feeDistributor.d.ts +224 -0
  39. package/src/feeDistributor.d.ts.map +1 -0
  40. package/src/feeDistributor.js +37 -33
  41. package/src/index.d.ts +2 -0
  42. package/src/index.d.ts.map +1 -0
  43. package/src/index.js +1 -0
  44. package/src/interest-math.d.ts +3 -0
  45. package/src/interest-math.d.ts.map +1 -0
  46. package/src/interest.d.ts +28 -0
  47. package/src/interest.d.ts.map +1 -0
  48. package/src/interest.js +21 -16
  49. package/src/price/README.md +13 -0
  50. package/src/price/fluxAggregatorContract.d.ts +70 -0
  51. package/src/price/fluxAggregatorContract.d.ts.map +1 -0
  52. package/src/price/fluxAggregatorContract.js +62 -55
  53. package/src/price/fluxAggregatorKit.d.ts +103 -0
  54. package/src/price/fluxAggregatorKit.d.ts.map +1 -0
  55. package/src/price/fluxAggregatorKit.js +50 -37
  56. package/src/price/priceOracleKit.d.ts +38 -0
  57. package/src/price/priceOracleKit.d.ts.map +1 -0
  58. package/src/price/priceOracleKit.js +11 -13
  59. package/src/price/roundsManager.d.ts +238 -0
  60. package/src/price/roundsManager.d.ts.map +1 -0
  61. package/src/price/roundsManager.js +77 -82
  62. package/src/proposals/README.md +2 -3
  63. package/src/proposals/add-auction.d.ts +69 -0
  64. package/src/proposals/add-auction.d.ts.map +1 -0
  65. package/src/proposals/add-auction.js +181 -0
  66. package/src/proposals/addAssetToVault.d.ts +160 -0
  67. package/src/proposals/addAssetToVault.d.ts.map +1 -0
  68. package/src/proposals/addAssetToVault.js +172 -38
  69. package/src/proposals/committee-proposal.d.ts +113 -0
  70. package/src/proposals/committee-proposal.d.ts.map +1 -0
  71. package/src/proposals/committee-proposal.js +25 -31
  72. package/src/proposals/core-proposal.d.ts +149 -0
  73. package/src/proposals/core-proposal.d.ts.map +1 -0
  74. package/src/proposals/core-proposal.js +9 -11
  75. package/src/proposals/econ-behaviors.d.ts +1169 -0
  76. package/src/proposals/econ-behaviors.d.ts.map +1 -0
  77. package/src/proposals/econ-behaviors.js +66 -45
  78. package/src/proposals/price-feed-proposal.d.ts +84 -0
  79. package/src/proposals/price-feed-proposal.d.ts.map +1 -0
  80. package/src/proposals/price-feed-proposal.js +108 -51
  81. package/src/proposals/startEconCommittee.d.ts +34 -0
  82. package/src/proposals/startEconCommittee.d.ts.map +1 -0
  83. package/src/proposals/startEconCommittee.js +2 -2
  84. package/src/proposals/startPSM.d.ts +59 -0
  85. package/src/proposals/startPSM.d.ts.map +1 -0
  86. package/src/proposals/startPSM.js +38 -27
  87. package/src/proposals/upgrade-scaledPriceAuthorities.d.ts +24 -0
  88. package/src/proposals/upgrade-scaledPriceAuthorities.d.ts.map +1 -0
  89. package/src/proposals/upgrade-scaledPriceAuthorities.js +78 -0
  90. package/src/proposals/upgrade-vaults.d.ts +35 -0
  91. package/src/proposals/upgrade-vaults.d.ts.map +1 -0
  92. package/src/proposals/upgrade-vaults.js +202 -0
  93. package/src/proposals/utils.d.ts +17 -0
  94. package/src/proposals/utils.d.ts.map +1 -0
  95. package/src/proposals/utils.js +34 -7
  96. package/src/provisionPool.d.ts +167 -0
  97. package/src/provisionPool.d.ts.map +1 -0
  98. package/src/provisionPool.js +122 -0
  99. package/src/provisionPoolKit.d.ts +770 -0
  100. package/src/provisionPoolKit.d.ts.map +1 -0
  101. package/src/provisionPoolKit.js +463 -0
  102. package/src/psm/psm.d.ts +122 -0
  103. package/src/psm/psm.d.ts.map +1 -0
  104. package/src/psm/psm.js +73 -69
  105. package/src/psm/types-ambient.d.ts +2 -0
  106. package/src/psm/types-ambient.d.ts.map +1 -0
  107. package/src/psm/types-ambient.js +3 -0
  108. package/src/reserve/assetReserve.d.ts +47 -0
  109. package/src/reserve/assetReserve.d.ts.map +1 -0
  110. package/src/reserve/assetReserve.js +28 -19
  111. package/src/reserve/assetReserveKit.d.ts +74 -0
  112. package/src/reserve/assetReserveKit.d.ts.map +1 -0
  113. package/src/reserve/assetReserveKit.js +18 -24
  114. package/src/reserve/params.d.ts +10 -0
  115. package/src/reserve/params.d.ts.map +1 -0
  116. package/src/tokens.d.ts +3 -0
  117. package/src/tokens.d.ts.map +1 -0
  118. package/src/tokens.js +5 -0
  119. package/src/vaultFactory/burn.d.ts +2 -0
  120. package/src/vaultFactory/burn.d.ts.map +1 -0
  121. package/src/vaultFactory/burn.js +1 -1
  122. package/src/vaultFactory/liquidation.d.ts +163 -0
  123. package/src/vaultFactory/liquidation.d.ts.map +1 -0
  124. package/src/vaultFactory/liquidation.js +36 -22
  125. package/src/vaultFactory/math.d.ts +11 -0
  126. package/src/vaultFactory/math.d.ts.map +1 -0
  127. package/src/vaultFactory/math.js +10 -9
  128. package/src/vaultFactory/orderedVaultStore.d.ts +360 -0
  129. package/src/vaultFactory/orderedVaultStore.d.ts.map +1 -0
  130. package/src/vaultFactory/orderedVaultStore.js +8 -11
  131. package/src/vaultFactory/params.d.ts +145 -0
  132. package/src/vaultFactory/params.d.ts.map +1 -0
  133. package/src/vaultFactory/params.js +52 -24
  134. package/src/vaultFactory/prioritizedVaults.d.ts +992 -0
  135. package/src/vaultFactory/prioritizedVaults.d.ts.map +1 -0
  136. package/src/vaultFactory/prioritizedVaults.js +4 -4
  137. package/src/vaultFactory/proceeds.d.ts +35 -0
  138. package/src/vaultFactory/proceeds.d.ts.map +1 -0
  139. package/src/vaultFactory/proceeds.js +26 -18
  140. package/src/vaultFactory/storeUtils.d.ts +25 -0
  141. package/src/vaultFactory/storeUtils.d.ts.map +1 -0
  142. package/src/vaultFactory/storeUtils.js +10 -12
  143. package/src/vaultFactory/types-ambient.d.ts +234 -0
  144. package/src/vaultFactory/types-ambient.d.ts.map +1 -0
  145. package/src/vaultFactory/{types.js → types-ambient.js} +42 -42
  146. package/src/vaultFactory/vault.d.ts +402 -0
  147. package/src/vaultFactory/vault.d.ts.map +1 -0
  148. package/src/vaultFactory/vault.js +99 -93
  149. package/src/vaultFactory/vaultDirector.d.ts +388 -0
  150. package/src/vaultFactory/vaultDirector.d.ts.map +1 -0
  151. package/src/vaultFactory/vaultDirector.js +61 -50
  152. package/src/vaultFactory/vaultFactory.d.ts +277 -0
  153. package/src/vaultFactory/vaultFactory.d.ts.map +1 -0
  154. package/src/vaultFactory/vaultFactory.js +49 -32
  155. package/src/vaultFactory/vaultHolder.d.ts +270 -0
  156. package/src/vaultFactory/vaultHolder.d.ts.map +1 -0
  157. package/src/vaultFactory/vaultHolder.js +10 -14
  158. package/src/vaultFactory/vaultKit.d.ts +102 -0
  159. package/src/vaultFactory/vaultKit.d.ts.map +1 -0
  160. package/src/vaultFactory/vaultKit.js +5 -4
  161. package/src/vaultFactory/vaultManager.d.ts +819 -0
  162. package/src/vaultFactory/vaultManager.d.ts.map +1 -0
  163. package/src/vaultFactory/vaultManager.js +248 -151
  164. package/CHANGELOG.md +0 -1066
  165. package/exported.js +0 -2
  166. package/scripts/add-collateral-core.js +0 -113
  167. package/scripts/deploy-contracts.js +0 -100
  168. package/scripts/init-core.js +0 -200
  169. package/scripts/invite-committee-core.js +0 -42
  170. package/scripts/manual-price-feed.js +0 -117
  171. package/scripts/price-feed-core.js +0 -104
  172. package/scripts/start-local-chain.sh +0 -84
  173. package/src/psm/types.js +0 -3
  174. package/src/typeGuards.js +0 -13
  175. package/src/vaultFactory/type-imports.js +0 -4
@@ -1,10 +1,11 @@
1
- import '@agoric/zoe/exported.js';
2
- import '@agoric/zoe/src/contracts/exported.js';
3
-
4
- import '@agoric/governance/exported.js';
1
+ /// <reference types="@agoric/governance/exported" />
2
+ /// <reference types="@agoric/zoe/exported" />
5
3
 
6
4
  import { AmountMath, AmountShape, BrandShape, IssuerShape } from '@agoric/ertp';
7
- import { GovernorFacetShape } from '@agoric/governance/src/typeGuards.js';
5
+ import {
6
+ GovernorFacetShape,
7
+ InvitationShape,
8
+ } from '@agoric/governance/src/typeGuards.js';
8
9
  import { makeTracer } from '@agoric/internal';
9
10
  import { M, mustMatch } from '@agoric/store';
10
11
  import {
@@ -44,45 +45,50 @@ const trace = makeTracer('VD', true);
44
45
 
45
46
  /**
46
47
  * @typedef {{
47
- * collaterals: Brand[],
48
- * rewardPoolAllocation: AmountKeywordRecord,
48
+ * collaterals: Brand[];
49
+ * rewardPoolAllocation: AmountKeywordRecord;
49
50
  * }} MetricsNotification
50
51
  *
51
- * @typedef {Readonly<{
52
- * }>} ImmutableState
52
+ * @typedef {Readonly<{}>} ImmutableState
53
53
  *
54
- * @typedef {{
55
- * }} MutableState
54
+ * @typedef {{}} MutableState
56
55
  *
57
56
  * @typedef {ImmutableState & MutableState} State
58
57
  *
59
58
  * @typedef {{
60
- * burnDebt: BurnDebt,
61
- * getGovernedParams: (collateralBrand: Brand) => import('./vaultManager.js').GovernedParamGetters,
62
- * mintAndTransfer: MintAndTransfer,
63
- * getShortfallReporter: () => Promise<import('../reserve/assetReserve.js').ShortfallReporter>,
59
+ * burnDebt: BurnDebt;
60
+ * getGovernedParams: (
61
+ * collateralBrand: Brand,
62
+ * ) => import('./vaultManager.js').GovernedParamGetters;
63
+ * mintAndTransfer: MintAndTransfer;
64
+ * getShortfallReporter: () => Promise<
65
+ * import('../reserve/assetReserve.js').ShortfallReporter
66
+ * >;
64
67
  * }} FactoryPowersFacet
65
68
  *
66
69
  * @typedef {Readonly<{
67
70
  * state: State;
68
71
  * }>} MethodContext
69
72
  *
70
- * @typedef {import('@agoric/governance/src/contractGovernance/typedParamManager').TypedParamManager<import('./params.js').VaultDirectorParams>} VaultDirectorParamManager
73
+ * @typedef {import('@agoric/governance/src/contractGovernance/typedParamManager.js').TypedParamManager<
74
+ * import('./params.js').VaultDirectorParams
75
+ * >} VaultDirectorParamManager
71
76
  */
72
77
 
73
78
  const shortfallInvitationKey = 'shortfallInvitation';
74
79
 
75
80
  /**
76
- * @param {import('@agoric/ertp').Baggage} baggage
81
+ * @param {import('@agoric/swingset-liveslots').Baggage} baggage
77
82
  * @param {import('./vaultFactory.js').VaultFactoryZCF} zcf
78
83
  * @param {VaultDirectorParamManager} directorParamManager
79
- * @param {ZCFMint<"nat">} debtMint
80
- * @param {ERef<import('@agoric/time/src/types').TimerService>} timer
84
+ * @param {ZCFMint<'nat'>} debtMint
85
+ * @param {ERef<import('@agoric/time').TimerService>} timer
81
86
  * @param {ERef<import('../auction/auctioneer.js').AuctioneerPublicFacet>} auctioneer
82
87
  * @param {ERef<StorageNode>} storageNode
83
88
  * @param {ERef<Marshaller>} marshaller
84
89
  * @param {import('@agoric/zoe/src/contractSupport/recorder.js').MakeRecorderKit} makeRecorderKit
85
90
  * @param {import('@agoric/zoe/src/contractSupport/recorder.js').MakeERecorderKit} makeERecorderKit
91
+ * @param managerParams
86
92
  */
87
93
  const prepareVaultDirector = (
88
94
  baggage,
@@ -95,6 +101,7 @@ const prepareVaultDirector = (
95
101
  marshaller,
96
102
  makeRecorderKit,
97
103
  makeERecorderKit,
104
+ managerParams,
98
105
  ) => {
99
106
  /** @type {import('../reserve/assetReserve.js').ShortfallReporter} */
100
107
  let shortfallReporter;
@@ -113,7 +120,11 @@ const prepareVaultDirector = (
113
120
  // Non-durable map because param managers aren't durable.
114
121
  // In the event they're needed they can be reconstructed from contract terms and off-chain data.
115
122
  /** a powerful object; can modify parameters */
116
- const vaultParamManagers = provideVaultParamManagers(baggage, marshaller);
123
+ const vaultParamManagers = provideVaultParamManagers(
124
+ baggage,
125
+ marshaller,
126
+ managerParams,
127
+ );
117
128
 
118
129
  const metricsNode = E(storageNode).makeChildNode('metrics');
119
130
 
@@ -126,9 +137,7 @@ const prepareVaultDirector = (
126
137
 
127
138
  const managersNode = E(storageNode).makeChildNode('managers');
128
139
 
129
- /**
130
- * @returns {MetricsNotification}
131
- */
140
+ /** @returns {MetricsNotification} */
132
141
  const sampleMetrics = () => {
133
142
  return harden({
134
143
  collaterals: Array.from(collateralManagers.keys()),
@@ -141,6 +150,7 @@ const prepareVaultDirector = (
141
150
  const oldInvitation = baggage.has(shortfallInvitationKey)
142
151
  ? baggage.get(shortfallInvitationKey)
143
152
  : undefined;
153
+
144
154
  const newInvitation = await directorParamManager.getInternalParamValue(
145
155
  SHORTFALL_INVITATION_KEY,
146
156
  );
@@ -188,15 +198,15 @@ const prepareVaultDirector = (
188
198
  },
189
199
 
190
200
  /**
191
- * Let the manager add rewards to the rewardPoolSeat without
192
- * exposing the rewardPoolSeat to them.
201
+ * Let the manager add rewards to the rewardPoolSeat without exposing the
202
+ * rewardPoolSeat to them.
193
203
  *
194
204
  * @type {MintAndTransfer}
195
205
  */
196
206
  mintAndTransfer: (mintReceiver, toMint, fee, nonMintTransfers) => {
197
207
  const kept = AmountMath.subtract(toMint, fee);
198
208
  debtMint.mintGains(harden({ Minted: toMint }), mintSeat);
199
- /** @type {import('@agoric/zoe/src/contractSupport/atomicTransfer.js').TransferPart[]} */
209
+ /** @type {TransferPart[]} */
200
210
  const transfers = [
201
211
  ...nonMintTransfers,
202
212
  [mintSeat, rewardPoolSeat, { Minted: fee }],
@@ -250,6 +260,7 @@ const prepareVaultDirector = (
250
260
  metrics: makeRecorderTopic('Vault Factory metrics', metricsKit),
251
261
  });
252
262
 
263
+ /** @param {(vm: VaultManager) => void} fn */
253
264
  const allManagersDo = fn => {
254
265
  for (const managerIndex of collateralManagers.values()) {
255
266
  const vm = vaultManagers.get(managerIndex).self;
@@ -263,9 +274,7 @@ const prepareVaultDirector = (
263
274
  });
264
275
  };
265
276
 
266
- /**
267
- * @returns {State}
268
- */
277
+ /** @returns {State} */
269
278
  const initState = () => {
270
279
  return {};
271
280
  };
@@ -275,7 +284,7 @@ const prepareVaultDirector = (
275
284
  *
276
285
  * @param {import('./vaultFactory.js').VaultFactoryZCF} zcf
277
286
  * @param {VaultDirectorParamManager} directorParamManager
278
- * @param {ZCFMint<"nat">} debtMint
287
+ * @param {ZCFMint<'nat'>} debtMint
279
288
  */
280
289
  const makeVaultDirector = prepareExoClassKit(
281
290
  baggage,
@@ -293,6 +302,7 @@ const prepareVaultDirector = (
293
302
  makePriceLockWaker: M.call().returns(M.remotable('TimerWaker')),
294
303
  makeLiquidationWaker: M.call().returns(M.remotable('TimerWaker')),
295
304
  makeReschedulerWaker: M.call().returns(M.remotable('TimerWaker')),
305
+ setShortfallReporter: M.call(InvitationShape).returns(M.promise()),
296
306
  }),
297
307
  public: M.interface('public', {
298
308
  getCollateralManager: M.call(BrandShape).returns(M.remotable()),
@@ -301,7 +311,7 @@ const prepareVaultDirector = (
301
311
  SubscriberShape,
302
312
  ),
303
313
  getElectorateSubscription: M.call().returns(SubscriberShape),
304
- getGovernedParams: M.call({ collateralBrand: BrandShape }).returns(
314
+ getGovernedParams: M.callWhen({ collateralBrand: BrandShape }).returns(
305
315
  M.record(),
306
316
  ),
307
317
  getInvitationAmount: M.call(M.string()).returns(AmountShape),
@@ -330,9 +340,7 @@ const prepareVaultDirector = (
330
340
  }
331
341
  },
332
342
  }),
333
- /**
334
- * @param {string} name
335
- */
343
+ /** @param {string} name */
336
344
  getInvitation(name) {
337
345
  return directorParamManager.getInternalParamValue(name);
338
346
  },
@@ -378,9 +386,8 @@ const prepareVaultDirector = (
378
386
  // zero-based index of the manager being made
379
387
  const managerIndex = vaultManagers.length();
380
388
  const managerId = `manager${managerIndex}`;
381
- const managerStorageNode = await E(managersNode).makeChildNode(
382
- managerId,
383
- );
389
+ const managerStorageNode =
390
+ await E(managersNode).makeChildNode(managerId);
384
391
 
385
392
  vaultParamManagers.addParamManager(
386
393
  collateralBrand,
@@ -424,6 +431,7 @@ const prepareVaultDirector = (
424
431
 
425
432
  makeLiquidationWaker() {
426
433
  return makeWaker('liquidationWaker', _timestamp => {
434
+ // XXX floating promise
427
435
  allManagersDo(vm => vm.liquidateVaults(auctioneer));
428
436
  });
429
437
  },
@@ -438,11 +446,15 @@ const prepareVaultDirector = (
438
446
  allManagersDo(vm => vm.lockOraclePrices());
439
447
  });
440
448
  },
449
+ async setShortfallReporter(newInvitation) {
450
+ const zoe = zcf.getZoeService();
451
+ shortfallReporter = await E(
452
+ E(zoe).offer(newInvitation),
453
+ ).getOfferResult();
454
+ },
441
455
  },
442
456
  public: {
443
- /**
444
- * @param {Brand} brandIn
445
- */
457
+ /** @param {Brand} brandIn */
446
458
  getCollateralManager(brandIn) {
447
459
  collateralManagers.has(brandIn) ||
448
460
  Fail`Not a supported collateral type ${brandIn}`;
@@ -463,22 +475,21 @@ const prepareVaultDirector = (
463
475
  getPublicTopics() {
464
476
  return topics;
465
477
  },
466
- /**
467
- * subscription for the paramManager for the vaultFactory's electorate
468
- */
478
+ /** subscription for the paramManager for the vaultFactory's electorate */
469
479
  getElectorateSubscription() {
470
480
  return directorParamManager.getSubscription();
471
481
  },
472
482
  /**
483
+ * Note this works only for a collateral manager. For the director use,
484
+ * `getElectorateSubscription`
485
+ *
473
486
  * @param {{ collateralBrand: Brand }} selector
474
487
  */
475
488
  getGovernedParams({ collateralBrand }) {
476
489
  // TODO use named getters of TypedParamManager
477
490
  return vaultParamManagers.get(collateralBrand).getParams();
478
491
  },
479
- /**
480
- * @param {string} name
481
- */
492
+ /** @param {string} name */
482
493
  getInvitationAmount(name) {
483
494
  return directorParamManager.getInvitationAmount(name);
484
495
  },
@@ -498,9 +509,7 @@ const prepareVaultDirector = (
498
509
  rescheduleWaker,
499
510
  );
500
511
  },
501
- /**
502
- * Start non-durable processes (or restart if needed after vat restart)
503
- */
512
+ /** Start non-durable processes (or restart if needed after vat restart) */
504
513
  async start() {
505
514
  const { helper, machine } = this.facets;
506
515
 
@@ -525,7 +534,9 @@ harden(prepareVaultDirector);
525
534
  /**
526
535
  * Prepare the VaultDirector kind, get or make the singleton
527
536
  *
528
- * @type {(...pvdArgs: Parameters<typeof prepareVaultDirector>) => ReturnType<ReturnType<typeof prepareVaultDirector>>}
537
+ * @type {(
538
+ * ...pvdArgs: Parameters<typeof prepareVaultDirector>
539
+ * ) => ReturnType<ReturnType<typeof prepareVaultDirector>>}
529
540
  */
530
541
  export const provideDirector = (...args) => {
531
542
  const makeVaultDirector = prepareVaultDirector(...args);
@@ -0,0 +1,277 @@
1
+ /**
2
+ * @typedef {ZCF<
3
+ * GovernanceTerms<import('./params').VaultDirectorParams> & {
4
+ * priceAuthority: ERef<PriceAuthority>;
5
+ * reservePublicFacet: AssetReservePublicFacet;
6
+ * timerService: import('@agoric/time').TimerService;
7
+ * }
8
+ * >} VaultFactoryZCF
9
+ */
10
+ /** @type {ContractMeta} */
11
+ export const meta: ContractMeta;
12
+ export function start(zcf: VaultFactoryZCF, privateArgs: {
13
+ feeMintAccess: FeeMintAccess;
14
+ initialPoserInvitation: Invitation;
15
+ initialShortfallInvitation: Invitation;
16
+ storageNode: ERef<StorageNode>;
17
+ marshaller: ERef<Marshaller>;
18
+ auctioneerInstance: Instance;
19
+ managerParams: Record<string, import("./params.js").VaultManagerParamOverrides>;
20
+ }, baggage: import("@agoric/swingset-liveslots").Baggage): Promise<{
21
+ creatorFacet: import("@endo/exo").Guarded<{
22
+ getParamMgrRetriever: () => {
23
+ get: (paramPath?: VaultFactoryParamPath) => import("./vaultDirector.js").VaultDirectorParamManager | import("@agoric/governance/src/contractGovernance/typedParamManager.js").TypedParamManager<{
24
+ DebtLimit: "amount";
25
+ InterestRate: "ratio";
26
+ LiquidationPadding: "ratio";
27
+ LiquidationMargin: "ratio";
28
+ LiquidationPenalty: "ratio";
29
+ MintFee: "ratio";
30
+ }>;
31
+ } & import("@endo/pass-style").RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, {
32
+ get: (paramPath?: VaultFactoryParamPath) => import("./vaultDirector.js").VaultDirectorParamManager | import("@agoric/governance/src/contractGovernance/typedParamManager.js").TypedParamManager<{
33
+ DebtLimit: "amount";
34
+ InterestRate: "ratio";
35
+ LiquidationPadding: "ratio";
36
+ LiquidationMargin: "ratio";
37
+ LiquidationPenalty: "ratio";
38
+ MintFee: "ratio";
39
+ }>;
40
+ }>;
41
+ getInvitation(name: string): Promise<Invitation<unknown, undefined>>;
42
+ getLimitedCreatorFacet(): import("@endo/exo").Guarded<{
43
+ addVaultType(collateralIssuer: Issuer<"nat">, collateralKeyword: Keyword, initialParamValues: VaultManagerParamValues): Promise<import("@endo/exo").Guarded<{
44
+ getGovernedParams(): import("./vaultManager.js").GovernedParamGetters;
45
+ makeVaultKit(seat: ZCFSeat): Promise<{
46
+ publicSubscribers: {
47
+ vault: {
48
+ description: string;
49
+ subscriber: globalThis.Subscriber<VaultNotification>;
50
+ storagePath: Promise<string>;
51
+ };
52
+ };
53
+ invitationMakers: import("@endo/exo").Guarded<{
54
+ AdjustBalances(): Promise<Invitation<string, undefined>>;
55
+ CloseVault(): Promise<Invitation<string, undefined>>;
56
+ TransferVault(): Promise<Invitation<any, undefined>>;
57
+ }>;
58
+ vault: import("@endo/exo").Guarded<{
59
+ getPublicTopics(): {
60
+ vault: {
61
+ description: string;
62
+ subscriber: globalThis.Subscriber<VaultNotification>;
63
+ storagePath: Promise<string>;
64
+ };
65
+ };
66
+ makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
67
+ makeCloseInvitation(): Promise<Invitation<string, undefined>>;
68
+ makeTransferInvitation(): Promise<Invitation<any, undefined>>;
69
+ getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
70
+ getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
71
+ getNormalizedDebt(): import("./storeUtils.js").NormalizedDebt;
72
+ }>;
73
+ vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
74
+ }>;
75
+ getCollateralQuote(): PriceQuote;
76
+ getPublicFacet(): import("@endo/exo").Guarded<{
77
+ makeVaultInvitation(): Promise<Invitation<{
78
+ publicSubscribers: {
79
+ vault: {
80
+ description: string;
81
+ subscriber: globalThis.Subscriber<VaultNotification>;
82
+ storagePath: Promise<string>;
83
+ };
84
+ };
85
+ invitationMakers: import("@endo/exo").Guarded<{
86
+ AdjustBalances(): Promise<Invitation<string, undefined>>;
87
+ CloseVault(): Promise<Invitation<string, undefined>>;
88
+ TransferVault(): Promise<Invitation<any, undefined>>;
89
+ }>;
90
+ vault: import("@endo/exo").Guarded<{
91
+ getPublicTopics(): {
92
+ vault: {
93
+ description: string;
94
+ subscriber: globalThis.Subscriber<VaultNotification>;
95
+ storagePath: Promise<string>;
96
+ };
97
+ };
98
+ makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
99
+ makeCloseInvitation(): Promise<Invitation<string, undefined>>;
100
+ makeTransferInvitation(): Promise<Invitation<any, undefined>>;
101
+ getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
102
+ getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
103
+ getNormalizedDebt(): import("./storeUtils.js").NormalizedDebt;
104
+ }>;
105
+ vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
106
+ }, undefined>>;
107
+ getQuotes(): import("@agoric/notifier").StoredNotifier<PriceQuote>;
108
+ getCompoundedInterest(): Ratio;
109
+ getPublicTopics(): {
110
+ asset: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<import("./vaultManager.js").AssetState>;
111
+ metrics: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<import("./vaultManager.js").MetricsNotification>;
112
+ };
113
+ }>;
114
+ lockOraclePrices(): PriceQuote;
115
+ liquidateVaults(auctionPF: globalThis.ERef<globalThis.GovernedPublicFacet<{
116
+ getElectorate: () => import("@agoric/ertp/src/types.js").SetAmount<import("@endo/patterns").Key>;
117
+ getStartFrequency: () => RelativeTime;
118
+ getClockStep: () => RelativeTime;
119
+ getStartingRate: () => bigint;
120
+ getLowestRate: () => bigint;
121
+ getDiscountStep: () => bigint;
122
+ getAuctionStartDelay: () => RelativeTime;
123
+ getPriceLockPeriod: () => RelativeTime;
124
+ makeBidInvitation(collateralBrand: Brand<"nat">): Promise<Invitation<string, import("../auction/auctionBook.js").OfferSpec>>;
125
+ getSchedules(): {
126
+ liveAuctionSchedule: import("../auction/scheduler.js").Schedule | null;
127
+ nextAuctionSchedule: import("../auction/scheduler.js").Schedule | null;
128
+ };
129
+ getScheduleUpdates(): globalThis.Subscriber<import("../auction/scheduler.js").ScheduleNotification>;
130
+ getBookDataUpdates(brand: any): globalThis.Subscriber<import("../auction/auctionBook.js").BookDataNotification>;
131
+ getPublicTopics(brand: any): {
132
+ bookData: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<import("../auction/auctionBook.js").BookDataNotification>;
133
+ } | {
134
+ schedule: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<import("../auction/scheduler.js").ScheduleNotification>;
135
+ };
136
+ makeDepositInvitation: () => Promise<Invitation<string, {
137
+ goal: import("@agoric/ertp/src/types.js").NatAmount;
138
+ }>>;
139
+ }>>): Promise<void>;
140
+ }>>;
141
+ makeCollectFeesInvitation(): Promise<Invitation<string, undefined>>;
142
+ getRewardAllocation(): Allocation;
143
+ makeLiquidationWaker(): {
144
+ wake: (timestamp: any) => any;
145
+ } & import("@endo/pass-style").RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, {
146
+ wake: (timestamp: any) => any;
147
+ }>;
148
+ makeReschedulerWaker(): {
149
+ wake: (timestamp: any) => any;
150
+ } & import("@endo/pass-style").RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, {
151
+ wake: (timestamp: any) => any;
152
+ }>;
153
+ makePriceLockWaker(): {
154
+ wake: (timestamp: any) => any;
155
+ } & import("@endo/pass-style").RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, {
156
+ wake: (timestamp: any) => any;
157
+ }>;
158
+ setShortfallReporter(newInvitation: any): Promise<void>;
159
+ }>;
160
+ getGovernedApis(): globalThis.ERef<globalThis.GovernedApis>;
161
+ getGovernedApiNames(): never[];
162
+ setOfferFilter: (strings: any) => Promise<void>;
163
+ }>;
164
+ publicFacet: import("@endo/exo").Guarded<{
165
+ getCollateralManager(brandIn: Brand): import("@endo/exo").Guarded<{
166
+ makeVaultInvitation(): Promise<Invitation<{
167
+ publicSubscribers: {
168
+ vault: {
169
+ description: string;
170
+ subscriber: globalThis.Subscriber<VaultNotification>;
171
+ storagePath: Promise<string>;
172
+ };
173
+ };
174
+ invitationMakers: import("@endo/exo").Guarded<{
175
+ AdjustBalances(): Promise<Invitation<string, undefined>>;
176
+ CloseVault(): Promise<Invitation<string, undefined>>;
177
+ TransferVault(): Promise<Invitation<any, undefined>>;
178
+ }>;
179
+ vault: import("@endo/exo").Guarded<{
180
+ getPublicTopics(): {
181
+ vault: {
182
+ description: string;
183
+ subscriber: globalThis.Subscriber<VaultNotification>;
184
+ storagePath: Promise<string>;
185
+ };
186
+ };
187
+ makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
188
+ makeCloseInvitation(): Promise<Invitation<string, undefined>>;
189
+ makeTransferInvitation(): Promise<Invitation<any, undefined>>;
190
+ getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
191
+ getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
192
+ getNormalizedDebt(): import("./storeUtils.js").NormalizedDebt;
193
+ }>;
194
+ vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
195
+ }, undefined>>;
196
+ getQuotes(): import("@agoric/notifier").StoredNotifier<PriceQuote>;
197
+ getCompoundedInterest(): Ratio;
198
+ getPublicTopics(): {
199
+ asset: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<import("./vaultManager.js").AssetState>;
200
+ metrics: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<import("./vaultManager.js").MetricsNotification>;
201
+ };
202
+ }>;
203
+ getDebtIssuer(): globalThis.Issuer<"nat", import("@endo/patterns").Key>;
204
+ getSubscription({ collateralBrand }: {
205
+ collateralBrand: Brand;
206
+ }): globalThis.StoredSubscription<globalThis.GovernanceSubscriptionState>;
207
+ getPublicTopics(): {
208
+ metrics: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<import("./vaultDirector.js").MetricsNotification>;
209
+ };
210
+ getElectorateSubscription(): globalThis.StoredSubscription<globalThis.GovernanceSubscriptionState>;
211
+ getGovernedParams({ collateralBrand }: {
212
+ collateralBrand: Brand;
213
+ }): globalThis.ERef<globalThis.ParamStateRecord>;
214
+ getInvitationAmount(name: string): import("@agoric/ertp/src/types.js").SetAmount<InvitationDetails>;
215
+ }>;
216
+ }>;
217
+ export type VaultFactoryZCF = {
218
+ atomicRearrange: (transfers: TransferPart[]) => void;
219
+ reallocate: Reallocate;
220
+ assertUniqueKeyword: (keyword: Keyword) => void;
221
+ saveIssuer: <I extends globalThis.Issuer>(issuerP: ERef<I>, keyword: Keyword) => Promise<I extends globalThis.Issuer<infer K extends globalThis.AssetKind, infer M extends import("@endo/patterns").Key> ? IssuerRecord<K, M> : never>;
222
+ makeInvitation: <R, A = undefined>(offerHandler: OfferHandler<ERef<R>, A>, description: string, customDetails?: object, proposalShape?: Pattern) => Promise<Invitation<R, A>>;
223
+ shutdown: (completion: Completion) => void;
224
+ shutdownWithFailure: import("@agoric/swingset-vat").ShutdownWithFailure;
225
+ getZoeService: () => globalThis.ERef<ZoeService>;
226
+ getInvitationIssuer: () => globalThis.Issuer<"set">;
227
+ getTerms: () => StandardTerms & globalThis.GovernanceTerms<import("@agoric/governance/src/contractGovernance/typedParamManager.js").ParamTypesMapFromRecord<{
228
+ Electorate: {
229
+ type: "invitation";
230
+ value: import("@agoric/ertp/src/types.js").SetAmount<import("@endo/patterns").Key>;
231
+ };
232
+ MinInitialDebt: {
233
+ type: "amount";
234
+ value: import("@agoric/ertp/src/types.js").NatAmount;
235
+ };
236
+ ShortfallInvitation: {
237
+ type: "invitation";
238
+ value: import("@agoric/ertp/src/types.js").SetAmount<import("@endo/patterns").Key>;
239
+ };
240
+ ReferencedUI: {
241
+ type: "string";
242
+ value: string;
243
+ };
244
+ ChargingPeriod: {
245
+ type: "nat";
246
+ value: bigint;
247
+ };
248
+ RecordingPeriod: {
249
+ type: "nat";
250
+ value: bigint;
251
+ };
252
+ }>> & {
253
+ priceAuthority: globalThis.ERef<PriceAuthority>;
254
+ reservePublicFacet: globalThis.GovernedPublicFacet<import("@endo/exo").Guarded<{
255
+ makeAddCollateralInvitation(): Promise<Invitation<string, never>>;
256
+ getPublicTopics(): {
257
+ metrics: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<import("../reserve/assetReserveKit.js").MetricsNotification>;
258
+ };
259
+ }>>;
260
+ timerService: import("@agoric/time").TimerService;
261
+ };
262
+ getBrandForIssuer: <K_1 extends globalThis.AssetKind>(issuer: Issuer<K_1>) => globalThis.Brand<K_1>;
263
+ getIssuerForBrand: <K_1_1 extends globalThis.AssetKind>(brand: Brand<K_1_1>) => globalThis.Issuer<K_1_1>;
264
+ getAssetKind: GetAssetKindByBrand;
265
+ makeZCFMint: <K_2 extends globalThis.AssetKind = "nat">(keyword: Keyword, assetKind?: K_2 | undefined, displayInfo?: AdditionalDisplayInfo, options?: import("@agoric/ertp").IssuerOptionsRecord) => Promise<ZCFMint<K_2>>;
266
+ registerFeeMint: ZCFRegisterFeeMint;
267
+ makeEmptySeatKit: ZCFMakeEmptySeatKit;
268
+ setTestJig: SetTestJig;
269
+ stopAcceptingOffers: () => Promise<void>;
270
+ setOfferFilter: (strings: Array<string>) => Promise<void>;
271
+ getOfferFilter: () => Promise<string[]>;
272
+ getInstance: () => Instance;
273
+ };
274
+ export type VaultFactoryContract = ContractOf<typeof start>;
275
+ import type { PriceQuote } from '@agoric/zoe/tools/types.js';
276
+ import type { PriceAuthority } from '@agoric/zoe/tools/types.js';
277
+ //# sourceMappingURL=vaultFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vaultFactory.d.ts","sourceRoot":"","sources":["vaultFactory.js"],"names":[],"mappings":"AAmCA;;;;;;;;GAQG;AAEH,2BAA2B;AAC3B,mBADW,YAAY,CAerB;AAmBK,2BAfI,eAAe,eACf;IACV,aAAiB,EAAE,aAAa,CAAC;IACjC,sBAA0B,EAAE,UAAU,CAAC;IACvC,0BAA8B,EAAE,UAAU,CAAC;IAC3C,WAAe,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACnC,UAAc,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACjC,kBAAsB,EAAE,QAAQ,CAAC;IACjC,aAAiB,EAAE,MAAM,CACzB,MAAY,EACZ,OAAa,aAAa,EAAE,0BAA0B,CACjD,CAAC;CACH,WACO,OAAO,4BAA4B,EAAE,OAAO;;;8BAyFy1J,qBAAqB;;;;;;;;;;;;;;;;;;;;2CAA6lC,OAAO,KAAK,CAAC,qBAAsC,OAAO,sBAAuC,uBAAuB;;mCAAm8uB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uDAApqa,MAAM,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sCAAhsO,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAAge;YAAC,iBAAiB,KAAM,CAAA;SAAE;;;;;+CAA2jB;YAAC,iBAAiB,KAAM,CAAA;SAAE;;;GAJ/zU;;iCAhJiB,YAAa,EAAE;;mCAGsB,OAAQ;uDAKlD,KAAM,CAAC,CAAC,WAAc,OAAQ;qDAmBzB,aACd,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,+DAGW,OAAQ;2BAK5B,UADI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAbW,OAAO,cAAc,EAAE,YAAY;;kEAwBnD,OAAQ,GAAC,CAAC;mEAGd,MAAO,KAAG,CAAC;;qEAGP,OAAO,cAAiB,GAAI,YACvB,gBAAmB,qBACb,YACT,OAAI,cACD,EAAE,mBAAmB;;;;;8BAMF,aAAc;;;;mCAqF7B,UAAU,CAAC,OAAO,KAAK,CAAC;gCAtIwD,4BAA4B;oCAA5B,4BAA4B"}