@agoric/inter-protocol 0.16.2-upgrade-16-dev-d492653.0 → 0.16.2-upgrade-16-dev-0549112.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 +16 -16
  2. package/src/auction/auctionBook.d.ts +95 -32
  3. package/src/auction/auctionBook.d.ts.map +1 -1
  4. package/src/auction/auctioneer.d.ts +10 -24
  5. package/src/auction/auctioneer.d.ts.map +1 -1
  6. package/src/auction/offerBook.d.ts.map +1 -1
  7. package/src/auction/params.d.ts +4 -9
  8. package/src/auction/params.d.ts.map +1 -1
  9. package/src/auction/scheduleMath.d.ts.map +1 -1
  10. package/src/auction/scheduler.d.ts.map +1 -1
  11. package/src/auction/util.d.ts.map +1 -1
  12. package/src/contractSupport.d.ts +2 -2
  13. package/src/contractSupport.d.ts.map +1 -1
  14. package/src/econCommitteeCharter.d.ts +3 -3
  15. package/src/feeDistributor.d.ts +2 -2
  16. package/src/feeDistributor.d.ts.map +1 -1
  17. package/src/interest.d.ts.map +1 -1
  18. package/src/price/fluxAggregatorContract.d.ts +3 -3
  19. package/src/price/fluxAggregatorContract.d.ts.map +1 -1
  20. package/src/price/fluxAggregatorKit.d.ts +2 -2
  21. package/src/price/fluxAggregatorKit.d.ts.map +1 -1
  22. package/src/price/priceOracleKit.d.ts.map +1 -1
  23. package/src/price/roundsManager.d.ts +9 -43
  24. package/src/price/roundsManager.d.ts.map +1 -1
  25. package/src/proposals/addAssetToVault.d.ts.map +1 -1
  26. package/src/proposals/econ-behaviors.d.ts +137 -755
  27. package/src/proposals/econ-behaviors.d.ts.map +1 -1
  28. package/src/proposals/price-feed-proposal.d.ts.map +1 -1
  29. package/src/proposals/startEconCommittee.d.ts.map +1 -1
  30. package/src/proposals/startPSM.d.ts +3 -3
  31. package/src/proposals/startPSM.d.ts.map +1 -1
  32. package/src/proposals/upgrade-vaults.d.ts.map +1 -1
  33. package/src/proposals/upgrade-vaults.js +43 -10
  34. package/src/proposals/utils.d.ts.map +1 -1
  35. package/src/provisionPool.d.ts +8 -8
  36. package/src/provisionPool.d.ts.map +1 -1
  37. package/src/provisionPoolKit.d.ts +58 -467
  38. package/src/provisionPoolKit.d.ts.map +1 -1
  39. package/src/psm/psm.d.ts +4 -4
  40. package/src/psm/psm.d.ts.map +1 -1
  41. package/src/reserve/assetReserve.d.ts +2 -2
  42. package/src/reserve/assetReserve.d.ts.map +1 -1
  43. package/src/vaultFactory/liquidation.d.ts +4 -144
  44. package/src/vaultFactory/liquidation.d.ts.map +1 -1
  45. package/src/vaultFactory/math.d.ts.map +1 -1
  46. package/src/vaultFactory/orderedVaultStore.d.ts +10 -277
  47. package/src/vaultFactory/orderedVaultStore.d.ts.map +1 -1
  48. package/src/vaultFactory/params.d.ts +2 -7
  49. package/src/vaultFactory/params.d.ts.map +1 -1
  50. package/src/vaultFactory/prioritizedVaults.d.ts +31 -744
  51. package/src/vaultFactory/prioritizedVaults.d.ts.map +1 -1
  52. package/src/vaultFactory/proceeds.d.ts.map +1 -1
  53. package/src/vaultFactory/storeUtils.d.ts.map +1 -1
  54. package/src/vaultFactory/types-ambient.d.ts +1 -98
  55. package/src/vaultFactory/types-ambient.d.ts.map +1 -1
  56. package/src/vaultFactory/vault.d.ts +4 -74
  57. package/src/vaultFactory/vault.d.ts.map +1 -1
  58. package/src/vaultFactory/vaultDirector.d.ts +2 -50
  59. package/src/vaultFactory/vaultDirector.d.ts.map +1 -1
  60. package/src/vaultFactory/vaultFactory.d.ts +7 -83
  61. package/src/vaultFactory/vaultFactory.d.ts.map +1 -1
  62. package/src/vaultFactory/vaultHolder.d.ts +18 -162
  63. package/src/vaultFactory/vaultHolder.d.ts.map +1 -1
  64. package/src/vaultFactory/vaultKit.d.ts +1 -71
  65. package/src/vaultFactory/vaultKit.d.ts.map +1 -1
  66. package/src/vaultFactory/vaultManager.d.ts +236 -381
  67. package/src/vaultFactory/vaultManager.d.ts.map +1 -1
@@ -5,7 +5,7 @@ export function prepareVaultManagerKit(baggage: import("@agoric/swingset-liveslo
5
5
  makeRecorderKit: import("@agoric/zoe/src/contractSupport/recorder.js").MakeRecorderKit;
6
6
  makeERecorderKit: import("@agoric/zoe/src/contractSupport/recorder.js").MakeERecorderKit;
7
7
  factoryPowers: import("./vaultDirector.js").FactoryPowersFacet;
8
- }): (externalParams: Omit<Readonly<{
8
+ }): (externalParams: Omit<Parameters<(params: Readonly<{
9
9
  debtMint: ZCFMint<"nat">;
10
10
  collateralBrand: Brand<"nat">;
11
11
  collateralUnit: Amount<"nat">;
@@ -14,7 +14,7 @@ export function prepareVaultManagerKit(baggage: import("@agoric/swingset-liveslo
14
14
  storageNode: StorageNode;
15
15
  }> & {
16
16
  metricsStorageNode: StorageNode;
17
- }, "metricsStorageNode">) => Promise<import("@endo/exo").GuardedKit<{
17
+ }) => import("@endo/exo").GuardedKit<{
18
18
  collateral: {
19
19
  makeVaultInvitation(): Promise<Invitation<{
20
20
  publicSubscribers: {
@@ -86,77 +86,7 @@ export function prepareVaultManagerKit(baggage: import("@agoric/swingset-liveslo
86
86
  * >} vaultData
87
87
  * @param {Amount<'nat'>} totalCollateral
88
88
  */
89
- planProceedsDistribution(proceeds: AmountKeywordRecord, totalDebt: Amount<"nat">, oraclePriceAtStart: Pick<PriceQuote, "quoteAmount">, vaultData: globalThis.MapStore<import("@endo/exo").Guarded<{
90
- getVaultSeat(): ZCFSeat;
91
- initVaultKit(seat: ZCFSeat, storageNode: StorageNode): Promise<{
92
- publicSubscribers: {
93
- vault: {
94
- description: string;
95
- subscriber: globalThis.Subscriber<VaultNotification>;
96
- storagePath: Promise<string>;
97
- };
98
- };
99
- invitationMakers: import("@endo/exo").Guarded<{
100
- AdjustBalances(): Promise<Invitation<string, undefined>>;
101
- CloseVault(): Promise<Invitation<string, undefined>>;
102
- TransferVault(): Promise<Invitation<any, undefined>>;
103
- }>;
104
- vault: import("@endo/exo").Guarded<{
105
- getPublicTopics(): {
106
- vault: {
107
- description: string;
108
- subscriber: globalThis.Subscriber<VaultNotification>;
109
- storagePath: Promise<string>;
110
- };
111
- };
112
- makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
113
- makeCloseInvitation(): Promise<Invitation<string, undefined>>;
114
- makeTransferInvitation(): Promise<Invitation<any, undefined>>;
115
- getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
116
- getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
117
- getNormalizedDebt(): NormalizedDebt;
118
- }>;
119
- vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
120
- }>;
121
- liquidating(): void;
122
- liquidated(): void;
123
- abortLiquidation(): string;
124
- makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
125
- makeCloseInvitation(): Promise<Invitation<string, undefined>>;
126
- makeTransferInvitation(): Promise<Invitation<{
127
- publicSubscribers: {
128
- vault: {
129
- description: string;
130
- subscriber: globalThis.Subscriber<VaultNotification>;
131
- storagePath: Promise<string>;
132
- };
133
- };
134
- invitationMakers: import("@endo/exo").Guarded<{
135
- AdjustBalances(): Promise<Invitation<string, undefined>>;
136
- CloseVault(): Promise<Invitation<string, undefined>>;
137
- TransferVault(): Promise<Invitation<any, undefined>>;
138
- }>;
139
- vault: import("@endo/exo").Guarded<{
140
- getPublicTopics(): {
141
- vault: {
142
- description: string;
143
- subscriber: globalThis.Subscriber<VaultNotification>;
144
- storagePath: Promise<string>;
145
- };
146
- };
147
- makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
148
- makeCloseInvitation(): Promise<Invitation<string, undefined>>;
149
- makeTransferInvitation(): Promise<Invitation<any, undefined>>;
150
- getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
151
- getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
152
- getNormalizedDebt(): NormalizedDebt;
153
- }>;
154
- vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
155
- }, undefined>>;
156
- getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
157
- getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
158
- getNormalizedDebt(): NormalizedDebt;
159
- }>, {
89
+ planProceedsDistribution(proceeds: AmountKeywordRecord, totalDebt: Amount<"nat">, oraclePriceAtStart: Pick<PriceQuote, "quoteAmount">, vaultData: MapStore<Vault, {
160
90
  collateralAmount: Amount<"nat">;
161
91
  debtAmount: Amount<"nat">;
162
92
  }>, totalCollateral: Amount<"nat">): {
@@ -198,39 +128,10 @@ export function prepareVaultManagerKit(baggage: import("@agoric/swingset-liveslo
198
128
  abortLiquidation(): string;
199
129
  makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
200
130
  makeCloseInvitation(): Promise<Invitation<string, undefined>>;
201
- makeTransferInvitation(): Promise<Invitation<{
202
- publicSubscribers: {
203
- vault: {
204
- description: string;
205
- subscriber: globalThis.Subscriber<VaultNotification>;
206
- storagePath: Promise<string>;
207
- };
208
- };
209
- invitationMakers: import("@endo/exo").Guarded<{
210
- AdjustBalances(): Promise<Invitation<string, undefined>>;
211
- CloseVault(): Promise<Invitation<string, undefined>>;
212
- TransferVault(): Promise<Invitation<any, undefined>>;
213
- }>;
214
- vault: import("@endo/exo").Guarded<{
215
- getPublicTopics(): {
216
- vault: {
217
- description: string;
218
- subscriber: globalThis.Subscriber<VaultNotification>;
219
- storagePath: Promise<string>;
220
- };
221
- };
222
- makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
223
- makeCloseInvitation(): Promise<Invitation<string, undefined>>;
224
- makeTransferInvitation(): Promise<Invitation<any, undefined>>;
225
- getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
226
- getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
227
- getNormalizedDebt(): NormalizedDebt;
228
- }>;
229
- vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
230
- }, undefined>>;
231
- getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
232
- getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
233
- getNormalizedDebt(): NormalizedDebt;
131
+ makeTransferInvitation(): Promise<Invitation<VaultKit>>;
132
+ getCollateralAmount(): Amount<"nat">;
133
+ getCurrentDebt(): Amount<"nat">;
134
+ getNormalizedDebt(): import("./storeUtils.js").NormalizedDebt;
234
135
  }>[];
235
136
  };
236
137
  /**
@@ -249,77 +150,7 @@ export function prepareVaultManagerKit(baggage: import("@agoric/swingset-liveslo
249
150
  */
250
151
  distributeProceeds({ plan, vaultsInPlan, liqSeat, totalCollateral, totalDebt, }: {
251
152
  plan: import("./proceeds.js").DistributionPlan;
252
- vaultsInPlan: import("@endo/exo").Guarded<{
253
- getVaultSeat(): ZCFSeat;
254
- initVaultKit(seat: ZCFSeat, storageNode: StorageNode): Promise<{
255
- publicSubscribers: {
256
- vault: {
257
- description: string;
258
- subscriber: globalThis.Subscriber<VaultNotification>;
259
- storagePath: Promise<string>;
260
- };
261
- };
262
- invitationMakers: import("@endo/exo").Guarded<{
263
- AdjustBalances(): Promise<Invitation<string, undefined>>;
264
- CloseVault(): Promise<Invitation<string, undefined>>;
265
- TransferVault(): Promise<Invitation<any, undefined>>;
266
- }>;
267
- vault: import("@endo/exo").Guarded<{
268
- getPublicTopics(): {
269
- vault: {
270
- description: string;
271
- subscriber: globalThis.Subscriber<VaultNotification>;
272
- storagePath: Promise<string>;
273
- };
274
- };
275
- makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
276
- makeCloseInvitation(): Promise<Invitation<string, undefined>>;
277
- makeTransferInvitation(): Promise<Invitation<any, undefined>>;
278
- getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
279
- getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
280
- getNormalizedDebt(): NormalizedDebt;
281
- }>;
282
- vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
283
- }>;
284
- liquidating(): void;
285
- liquidated(): void;
286
- abortLiquidation(): string;
287
- makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
288
- makeCloseInvitation(): Promise<Invitation<string, undefined>>;
289
- makeTransferInvitation(): Promise<Invitation<{
290
- publicSubscribers: {
291
- vault: {
292
- description: string;
293
- subscriber: globalThis.Subscriber<VaultNotification>;
294
- storagePath: Promise<string>;
295
- };
296
- };
297
- invitationMakers: import("@endo/exo").Guarded<{
298
- AdjustBalances(): Promise<Invitation<string, undefined>>;
299
- CloseVault(): Promise<Invitation<string, undefined>>;
300
- TransferVault(): Promise<Invitation<any, undefined>>;
301
- }>;
302
- vault: import("@endo/exo").Guarded<{
303
- getPublicTopics(): {
304
- vault: {
305
- description: string;
306
- subscriber: globalThis.Subscriber<VaultNotification>;
307
- storagePath: Promise<string>;
308
- };
309
- };
310
- makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
311
- makeCloseInvitation(): Promise<Invitation<string, undefined>>;
312
- makeTransferInvitation(): Promise<Invitation<any, undefined>>;
313
- getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
314
- getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
315
- getNormalizedDebt(): NormalizedDebt;
316
- }>;
317
- vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
318
- }, undefined>>;
319
- getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
320
- getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
321
- getNormalizedDebt(): NormalizedDebt;
322
- }>[];
153
+ vaultsInPlan: Vault[];
323
154
  liqSeat: ZCFSeat;
324
155
  totalCollateral: Amount<"nat">;
325
156
  totalDebt: Amount<"nat">;
@@ -363,9 +194,44 @@ export function prepareVaultManagerKit(baggage: import("@agoric/swingset-liveslo
363
194
  * @param {Vault} vault
364
195
  * @returns {void}
365
196
  */
366
- handleBalanceChange(oldDebtNormalized: NormalizedDebt, oldCollateral: Amount<"nat">, vaultId: VaultId, vaultPhase: import("./vault.js").VaultPhase, vault: import("@endo/exo").Guarded<{
367
- getVaultSeat(): ZCFSeat;
368
- initVaultKit(seat: ZCFSeat, storageNode: StorageNode): Promise<{
197
+ handleBalanceChange(oldDebtNormalized: NormalizedDebt, oldCollateral: Amount<"nat">, vaultId: VaultId, vaultPhase: import("./vault.js").VaultPhase, vault: Vault): void;
198
+ };
199
+ self: {
200
+ getGovernedParams(): GovernedParamGetters;
201
+ /** @param {ZCFSeat} seat */
202
+ makeVaultKit(seat: ZCFSeat): Promise<{
203
+ publicSubscribers: {
204
+ vault: {
205
+ description: string;
206
+ subscriber: globalThis.Subscriber<VaultNotification>;
207
+ storagePath: Promise<string>;
208
+ };
209
+ };
210
+ invitationMakers: import("@endo/exo").Guarded<{
211
+ AdjustBalances(): Promise<Invitation<string, undefined>>;
212
+ CloseVault(): Promise<Invitation<string, undefined>>;
213
+ TransferVault(): Promise<Invitation<any, undefined>>;
214
+ }>;
215
+ vault: import("@endo/exo").Guarded<{
216
+ getPublicTopics(): {
217
+ vault: {
218
+ description: string;
219
+ subscriber: globalThis.Subscriber<VaultNotification>;
220
+ storagePath: Promise<string>;
221
+ };
222
+ };
223
+ makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
224
+ makeCloseInvitation(): Promise<Invitation<string, undefined>>;
225
+ makeTransferInvitation(): Promise<Invitation<any, undefined>>;
226
+ getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
227
+ getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
228
+ getNormalizedDebt(): NormalizedDebt;
229
+ }>;
230
+ vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
231
+ }>;
232
+ getCollateralQuote(): PriceQuote;
233
+ getPublicFacet(): import("@endo/exo").Guarded<{
234
+ makeVaultInvitation(): Promise<Invitation<{
369
235
  publicSubscribers: {
370
236
  vault: {
371
237
  description: string;
@@ -394,46 +260,199 @@ export function prepareVaultManagerKit(baggage: import("@agoric/swingset-liveslo
394
260
  getNormalizedDebt(): NormalizedDebt;
395
261
  }>;
396
262
  vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
263
+ }, undefined>>;
264
+ getQuotes(): import("@agoric/notifier").StoredNotifier<PriceQuote>;
265
+ getCompoundedInterest(): Ratio;
266
+ getPublicTopics(): {
267
+ asset: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<AssetState>;
268
+ metrics: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<MetricsNotification>;
269
+ };
270
+ }>;
271
+ lockOraclePrices(): PriceQuote;
272
+ /** @param {ERef<AuctioneerPublicFacet>} auctionPF */
273
+ liquidateVaults(auctionPF: ERef<AuctioneerPublicFacet>): Promise<void>;
274
+ };
275
+ }>>[0], "metricsStorageNode">) => Promise<import("@endo/exo").GuardedKit<{
276
+ collateral: {
277
+ makeVaultInvitation(): Promise<Invitation<{
278
+ publicSubscribers: {
279
+ vault: {
280
+ description: string;
281
+ subscriber: globalThis.Subscriber<VaultNotification>;
282
+ storagePath: Promise<string>;
283
+ };
284
+ };
285
+ invitationMakers: import("@endo/exo").Guarded<{
286
+ AdjustBalances(): Promise<Invitation<string, undefined>>;
287
+ CloseVault(): Promise<Invitation<string, undefined>>;
288
+ TransferVault(): Promise<Invitation<any, undefined>>;
397
289
  }>;
398
- liquidating(): void;
399
- liquidated(): void;
400
- abortLiquidation(): string;
401
- makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
402
- makeCloseInvitation(): Promise<Invitation<string, undefined>>;
403
- makeTransferInvitation(): Promise<Invitation<{
404
- publicSubscribers: {
290
+ vault: import("@endo/exo").Guarded<{
291
+ getPublicTopics(): {
405
292
  vault: {
406
293
  description: string;
407
294
  subscriber: globalThis.Subscriber<VaultNotification>;
408
295
  storagePath: Promise<string>;
409
296
  };
410
297
  };
411
- invitationMakers: import("@endo/exo").Guarded<{
412
- AdjustBalances(): Promise<Invitation<string, undefined>>;
413
- CloseVault(): Promise<Invitation<string, undefined>>;
414
- TransferVault(): Promise<Invitation<any, undefined>>;
415
- }>;
416
- vault: import("@endo/exo").Guarded<{
417
- getPublicTopics(): {
298
+ makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
299
+ makeCloseInvitation(): Promise<Invitation<string, undefined>>;
300
+ makeTransferInvitation(): Promise<Invitation<any, undefined>>;
301
+ getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
302
+ getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
303
+ getNormalizedDebt(): NormalizedDebt;
304
+ }>;
305
+ vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
306
+ }, undefined>>;
307
+ getQuotes(): import("@agoric/notifier").StoredNotifier<PriceQuote>;
308
+ getCompoundedInterest(): Ratio;
309
+ getPublicTopics(): {
310
+ asset: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<AssetState>;
311
+ metrics: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<MetricsNotification>;
312
+ };
313
+ };
314
+ helper: {
315
+ /** Start non-durable processes (or restart if needed after vat restart) */
316
+ start(): void;
317
+ observeQuoteNotifier(): void;
318
+ /** @param {Timestamp} updateTime */
319
+ chargeAllVaults(updateTime: Timestamp): Promise<void>;
320
+ assetNotify(): Promise<void>;
321
+ burnToCoverDebt(debt: any, proceeds: any, seat: any): void;
322
+ sendToReserve(penalty: any, seat: any, seatKeyword?: string): void;
323
+ markLiquidating(debt: any, collateral: any): void;
324
+ /**
325
+ * @param {Amount<'nat'>} debt
326
+ * @param {Amount<'nat'>} collateral
327
+ * @param {Amount<'nat'>} overage
328
+ * @param {Amount<'nat'>} shortfall
329
+ */
330
+ markDoneLiquidating(debt: Amount<"nat">, collateral: Amount<"nat">, overage: Amount<"nat">, shortfall: Amount<"nat">): void;
331
+ writeMetrics(): Promise<void>;
332
+ /**
333
+ * This is designed to tolerate an incomplete plan, in case
334
+ * calculateDistributionPlan encounters an error during its calculation.
335
+ * We don't have a way to induce such errors in CI so we've done so
336
+ * manually in dev and verified this function recovers as expected.
337
+ *
338
+ * @param {AmountKeywordRecord} proceeds
339
+ * @param {Amount<'nat'>} totalDebt
340
+ * @param {Pick<PriceQuote, 'quoteAmount'>} oraclePriceAtStart
341
+ * @param {MapStore<
342
+ * Vault,
343
+ * { collateralAmount: Amount<'nat'>; debtAmount: Amount<'nat'> }
344
+ * >} vaultData
345
+ * @param {Amount<'nat'>} totalCollateral
346
+ */
347
+ planProceedsDistribution(proceeds: AmountKeywordRecord, totalDebt: Amount<"nat">, oraclePriceAtStart: Pick<PriceQuote, "quoteAmount">, vaultData: MapStore<Vault, {
348
+ collateralAmount: Amount<"nat">;
349
+ debtAmount: Amount<"nat">;
350
+ }>, totalCollateral: Amount<"nat">): {
351
+ plan: import("./proceeds.js").DistributionPlan;
352
+ vaultsInPlan: import("@endo/exo").Guarded<{
353
+ getVaultSeat(): ZCFSeat;
354
+ initVaultKit(seat: ZCFSeat, storageNode: StorageNode): Promise<{
355
+ publicSubscribers: {
418
356
  vault: {
419
357
  description: string;
420
358
  subscriber: globalThis.Subscriber<VaultNotification>;
421
359
  storagePath: Promise<string>;
422
360
  };
423
361
  };
424
- makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
425
- makeCloseInvitation(): Promise<Invitation<string, undefined>>;
426
- makeTransferInvitation(): Promise<Invitation<any, undefined>>;
427
- getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
428
- getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
429
- getNormalizedDebt(): NormalizedDebt;
362
+ invitationMakers: import("@endo/exo").Guarded<{
363
+ AdjustBalances(): Promise<Invitation<string, undefined>>;
364
+ CloseVault(): Promise<Invitation<string, undefined>>;
365
+ TransferVault(): Promise<Invitation<any, undefined>>;
366
+ }>;
367
+ vault: import("@endo/exo").Guarded<{
368
+ getPublicTopics(): {
369
+ vault: {
370
+ description: string;
371
+ subscriber: globalThis.Subscriber<VaultNotification>;
372
+ storagePath: Promise<string>;
373
+ };
374
+ };
375
+ makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
376
+ makeCloseInvitation(): Promise<Invitation<string, undefined>>;
377
+ makeTransferInvitation(): Promise<Invitation<any, undefined>>;
378
+ getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
379
+ getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
380
+ getNormalizedDebt(): NormalizedDebt;
381
+ }>;
382
+ vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
430
383
  }>;
431
- vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
432
- }, undefined>>;
433
- getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
434
- getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
435
- getNormalizedDebt(): NormalizedDebt;
436
- }>): void;
384
+ liquidating(): void;
385
+ liquidated(): void;
386
+ abortLiquidation(): string;
387
+ makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
388
+ makeCloseInvitation(): Promise<Invitation<string, undefined>>;
389
+ makeTransferInvitation(): Promise<Invitation<VaultKit>>;
390
+ getCollateralAmount(): Amount<"nat">;
391
+ getCurrentDebt(): Amount<"nat">;
392
+ getNormalizedDebt(): import("./storeUtils.js").NormalizedDebt;
393
+ }>[];
394
+ };
395
+ /**
396
+ * This is designed to tolerate an incomplete plan, in case
397
+ * calculateDistributionPlan encounters an error during its calculation.
398
+ * We don't have a way to induce such errors in CI so we've done so
399
+ * manually in dev and verified this function recovers as expected.
400
+ *
401
+ * @param {object} obj
402
+ * @param {import('./proceeds.js').DistributionPlan} obj.plan
403
+ * @param {Vault[]} obj.vaultsInPlan
404
+ * @param {ZCFSeat} obj.liqSeat
405
+ * @param {Amount<'nat'>} obj.totalCollateral
406
+ * @param {Amount<'nat'>} obj.totalDebt
407
+ * @returns {void}
408
+ */
409
+ distributeProceeds({ plan, vaultsInPlan, liqSeat, totalCollateral, totalDebt, }: {
410
+ plan: import("./proceeds.js").DistributionPlan;
411
+ vaultsInPlan: Vault[];
412
+ liqSeat: ZCFSeat;
413
+ totalCollateral: Amount<"nat">;
414
+ totalDebt: Amount<"nat">;
415
+ }): void;
416
+ };
417
+ manager: {
418
+ getGovernedParams(): GovernedParamGetters;
419
+ /**
420
+ * Look up the most recent price authority price to determine the max
421
+ * debt this manager config will allow for the collateral.
422
+ *
423
+ * @param {Amount<'nat'>} collateralAmount
424
+ */
425
+ maxDebtFor(collateralAmount: Amount<"nat">): import("@agoric/ertp/src/types.js").NatAmount;
426
+ /** @type {MintAndTransfer} */
427
+ mintAndTransfer(mintReceiver: ZCFSeat, toMint: Amount<"nat">, fee: Amount<"nat">, transfers: TransferPart[]): void;
428
+ /**
429
+ * @param {Amount<'nat'>} toBurn
430
+ * @param {ZCFSeat} seat
431
+ */
432
+ burn(toBurn: Amount<"nat">, seat: ZCFSeat): void;
433
+ getAssetSubscriber(): globalThis.Subscriber<AssetState>;
434
+ getCollateralBrand(): globalThis.Brand<"nat">;
435
+ getDebtBrand(): globalThis.Brand<"nat">;
436
+ /**
437
+ * Prepend with an identifier of this vault manager
438
+ *
439
+ * @param {string} base
440
+ */
441
+ scopeDescription(base: string): string;
442
+ /** coefficient on existing debt to calculate new debt */
443
+ getCompoundedInterest(): Ratio;
444
+ /**
445
+ * Called by a vault when its balances change.
446
+ *
447
+ * @param {NormalizedDebt} oldDebtNormalized
448
+ * @param {Amount<'nat'>} oldCollateral
449
+ * @param {VaultId} vaultId
450
+ * @param {import('./vault.js').VaultPhase} vaultPhase at the end of
451
+ * whatever change updated balances
452
+ * @param {Vault} vault
453
+ * @returns {void}
454
+ */
455
+ handleBalanceChange(oldDebtNormalized: NormalizedDebt, oldCollateral: Amount<"nat">, vaultId: VaultId, vaultPhase: import("./vault.js").VaultPhase, vault: Vault): void;
437
456
  };
438
457
  self: {
439
458
  getGovernedParams(): GovernedParamGetters;
@@ -509,31 +528,7 @@ export function prepareVaultManagerKit(baggage: import("@agoric/swingset-liveslo
509
528
  }>;
510
529
  lockOraclePrices(): PriceQuote;
511
530
  /** @param {ERef<AuctioneerPublicFacet>} auctionPF */
512
- liquidateVaults(auctionPF: globalThis.ERef<globalThis.GovernedPublicFacet<{
513
- getElectorate: () => import("@agoric/ertp/src/types.js").SetAmount<import("@endo/patterns").Key>;
514
- getStartFrequency: () => RelativeTime;
515
- getClockStep: () => RelativeTime;
516
- getStartingRate: () => bigint;
517
- getLowestRate: () => bigint;
518
- getDiscountStep: () => bigint;
519
- getAuctionStartDelay: () => RelativeTime;
520
- getPriceLockPeriod: () => RelativeTime;
521
- makeBidInvitation(collateralBrand: Brand<"nat">): Promise<Invitation<string, import("../auction/auctionBook.js").OfferSpec>>;
522
- getSchedules(): {
523
- liveAuctionSchedule: import("../auction/scheduler.js").Schedule | null;
524
- nextAuctionSchedule: import("../auction/scheduler.js").Schedule | null;
525
- };
526
- getScheduleUpdates(): globalThis.Subscriber<import("../auction/scheduler.js").ScheduleNotification>;
527
- getBookDataUpdates(brand: any): globalThis.Subscriber<import("../auction/auctionBook.js").BookDataNotification>;
528
- getPublicTopics(brand: any): {
529
- bookData: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<import("../auction/auctionBook.js").BookDataNotification>;
530
- } | {
531
- schedule: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<import("../auction/scheduler.js").ScheduleNotification>;
532
- };
533
- makeDepositInvitation: () => Promise<Invitation<string, {
534
- goal: import("@agoric/ertp/src/types.js").NatAmount;
535
- }>>;
536
- }>>): Promise<void>;
531
+ liquidateVaults(auctionPF: ERef<AuctioneerPublicFacet>): Promise<void>;
537
532
  };
538
533
  }>>;
539
534
  export function provideAndStartVaultManagerKits(baggage: import("@agoric/vat-data").Baggage): {
@@ -630,162 +625,22 @@ export type GovernedParamGetters = {
630
625
  getMintFee: () => Ratio;
631
626
  getMinInitialDebt: () => Amount<"nat">;
632
627
  };
633
- export type HeldParams = {
634
- readonly debtMint: ZCFMint<"nat">;
635
- readonly collateralBrand: Brand<"nat">;
636
- readonly collateralUnit: Amount<"nat">;
637
- readonly descriptionScope: string;
638
- readonly startTimeStamp: Timestamp;
639
- readonly storageNode: StorageNode;
640
- };
628
+ export type HeldParams = Readonly<{
629
+ debtMint: ZCFMint<"nat">;
630
+ collateralBrand: Brand<"nat">;
631
+ collateralUnit: Amount<"nat">;
632
+ descriptionScope: string;
633
+ startTimeStamp: Timestamp;
634
+ storageNode: StorageNode;
635
+ }>;
641
636
  export type ImmutableState = {
642
637
  assetTopicKit: import("@agoric/zoe/src/contractSupport/recorder.js").RecorderKit<AssetState>;
643
638
  debtBrand: Brand<"nat">;
644
- liquidatingVaults: globalThis.SetStore<import("@endo/exo").Guarded<{
645
- getVaultSeat(): ZCFSeat;
646
- initVaultKit(seat: ZCFSeat, storageNode: StorageNode): Promise<{
647
- publicSubscribers: {
648
- vault: {
649
- description: string;
650
- subscriber: globalThis.Subscriber<VaultNotification>;
651
- storagePath: Promise<string>;
652
- };
653
- };
654
- invitationMakers: import("@endo/exo").Guarded<{
655
- AdjustBalances(): Promise<Invitation<string, undefined>>;
656
- CloseVault(): Promise<Invitation<string, undefined>>;
657
- TransferVault(): Promise<Invitation<any, undefined>>;
658
- }>;
659
- vault: import("@endo/exo").Guarded<{
660
- getPublicTopics(): {
661
- vault: {
662
- description: string;
663
- subscriber: globalThis.Subscriber<VaultNotification>;
664
- storagePath: Promise<string>;
665
- };
666
- };
667
- makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
668
- makeCloseInvitation(): Promise<Invitation<string, undefined>>;
669
- makeTransferInvitation(): Promise<Invitation<any, undefined>>;
670
- getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
671
- getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
672
- getNormalizedDebt(): NormalizedDebt;
673
- }>;
674
- vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
675
- }>;
676
- liquidating(): void;
677
- liquidated(): void;
678
- abortLiquidation(): string;
679
- makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
680
- makeCloseInvitation(): Promise<Invitation<string, undefined>>;
681
- makeTransferInvitation(): Promise<Invitation<{
682
- publicSubscribers: {
683
- vault: {
684
- description: string;
685
- subscriber: globalThis.Subscriber<VaultNotification>;
686
- storagePath: Promise<string>;
687
- };
688
- };
689
- invitationMakers: import("@endo/exo").Guarded<{
690
- AdjustBalances(): Promise<Invitation<string, undefined>>;
691
- CloseVault(): Promise<Invitation<string, undefined>>;
692
- TransferVault(): Promise<Invitation<any, undefined>>;
693
- }>;
694
- vault: import("@endo/exo").Guarded<{
695
- getPublicTopics(): {
696
- vault: {
697
- description: string;
698
- subscriber: globalThis.Subscriber<VaultNotification>;
699
- storagePath: Promise<string>;
700
- };
701
- };
702
- makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
703
- makeCloseInvitation(): Promise<Invitation<string, undefined>>;
704
- makeTransferInvitation(): Promise<Invitation<any, undefined>>;
705
- getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
706
- getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
707
- getNormalizedDebt(): NormalizedDebt;
708
- }>;
709
- vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
710
- }, undefined>>;
711
- getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
712
- getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
713
- getNormalizedDebt(): NormalizedDebt;
714
- }>>;
639
+ liquidatingVaults: SetStore<Vault>;
715
640
  metricsTopicKit: import("@agoric/zoe/src/contractSupport/recorder.js").RecorderKit<MetricsNotification>;
716
641
  poolIncrementSeat: ZCFSeat;
717
642
  retainedCollateralSeat: ZCFSeat;
718
- unsettledVaults: globalThis.MapStore<string, import("@endo/exo").Guarded<{
719
- getVaultSeat(): ZCFSeat;
720
- initVaultKit(seat: ZCFSeat, storageNode: StorageNode): Promise<{
721
- publicSubscribers: {
722
- vault: {
723
- description: string;
724
- subscriber: globalThis.Subscriber<VaultNotification>;
725
- storagePath: Promise<string>;
726
- };
727
- };
728
- invitationMakers: import("@endo/exo").Guarded<{
729
- AdjustBalances(): Promise<Invitation<string, undefined>>;
730
- CloseVault(): Promise<Invitation<string, undefined>>;
731
- TransferVault(): Promise<Invitation<any, undefined>>;
732
- }>;
733
- vault: import("@endo/exo").Guarded<{
734
- getPublicTopics(): {
735
- vault: {
736
- description: string;
737
- subscriber: globalThis.Subscriber<VaultNotification>;
738
- storagePath: Promise<string>;
739
- };
740
- };
741
- makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
742
- makeCloseInvitation(): Promise<Invitation<string, undefined>>;
743
- makeTransferInvitation(): Promise<Invitation<any, undefined>>;
744
- getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
745
- getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
746
- getNormalizedDebt(): NormalizedDebt;
747
- }>;
748
- vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
749
- }>;
750
- liquidating(): void;
751
- liquidated(): void;
752
- abortLiquidation(): string;
753
- makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
754
- makeCloseInvitation(): Promise<Invitation<string, undefined>>;
755
- makeTransferInvitation(): Promise<Invitation<{
756
- publicSubscribers: {
757
- vault: {
758
- description: string;
759
- subscriber: globalThis.Subscriber<VaultNotification>;
760
- storagePath: Promise<string>;
761
- };
762
- };
763
- invitationMakers: import("@endo/exo").Guarded<{
764
- AdjustBalances(): Promise<Invitation<string, undefined>>;
765
- CloseVault(): Promise<Invitation<string, undefined>>;
766
- TransferVault(): Promise<Invitation<any, undefined>>;
767
- }>;
768
- vault: import("@endo/exo").Guarded<{
769
- getPublicTopics(): {
770
- vault: {
771
- description: string;
772
- subscriber: globalThis.Subscriber<VaultNotification>;
773
- storagePath: Promise<string>;
774
- };
775
- };
776
- makeAdjustBalancesInvitation(): Promise<Invitation<string, undefined>>;
777
- makeCloseInvitation(): Promise<Invitation<string, undefined>>;
778
- makeTransferInvitation(): Promise<Invitation<any, undefined>>;
779
- getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
780
- getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
781
- getNormalizedDebt(): NormalizedDebt;
782
- }>;
783
- vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
784
- }, undefined>>;
785
- getCollateralAmount(): import("@agoric/ertp/src/types.js").NatAmount;
786
- getCurrentDebt(): import("@agoric/ertp/src/types.js").NatAmount;
787
- getNormalizedDebt(): NormalizedDebt;
788
- }>>;
643
+ unsettledVaults: MapStore<string, Vault>;
789
644
  };
790
645
  export type MutableState = {
791
646
  compoundedInterest: Ratio;