@agoric/inter-protocol 0.16.2-dev-6e5b422.0 → 0.16.2-dev-bd1190d.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 (112) hide show
  1. package/bundles/bundle-auctioneer-js-meta.json +116 -116
  2. package/bundles/bundle-econCommitteeCharter-js-meta.json +71 -71
  3. package/bundles/bundle-feeDistributor-js-meta.json +57 -57
  4. package/bundles/bundle-fluxAggregatorKit-js-meta.json +111 -111
  5. package/bundles/bundle-psm-js-meta.json +109 -109
  6. package/bundles/bundle-reserve-js-meta.json +108 -108
  7. package/bundles/bundle-scaledPriceAuthority-js-meta.json +84 -84
  8. package/bundles/bundle-vaultFactory-js-meta.json +133 -133
  9. package/package.json +19 -17
  10. package/src/auction/auctionBook.d.ts +80 -0
  11. package/src/auction/auctionBook.d.ts.map +1 -0
  12. package/src/auction/auctioneer.d.ts +75 -0
  13. package/src/auction/auctioneer.d.ts.map +1 -0
  14. package/src/auction/offerBook.d.ts +72 -0
  15. package/src/auction/offerBook.d.ts.map +1 -0
  16. package/src/auction/params.d.ts +142 -0
  17. package/src/auction/params.d.ts.map +1 -0
  18. package/src/auction/scheduleMath.d.ts +4 -0
  19. package/src/auction/scheduleMath.d.ts.map +1 -0
  20. package/src/auction/scheduler.d.ts +49 -0
  21. package/src/auction/scheduler.d.ts.map +1 -0
  22. package/src/auction/sortedOffers.d.ts +8 -0
  23. package/src/auction/sortedOffers.d.ts.map +1 -0
  24. package/src/auction/util.d.ts +30 -0
  25. package/src/auction/util.d.ts.map +1 -0
  26. package/src/clientSupport.d.ts +129 -0
  27. package/src/clientSupport.d.ts.map +1 -0
  28. package/src/collectFees.d.ts +2 -0
  29. package/src/collectFees.d.ts.map +1 -0
  30. package/src/contractSupport.d.ts +33 -0
  31. package/src/contractSupport.d.ts.map +1 -0
  32. package/src/econCommitteeCharter.d.ts +45 -0
  33. package/src/econCommitteeCharter.d.ts.map +1 -0
  34. package/src/feeDistributor.d.ts +234 -0
  35. package/src/feeDistributor.d.ts.map +1 -0
  36. package/src/index.d.ts +2 -0
  37. package/src/index.d.ts.map +1 -0
  38. package/src/interest-math.d.ts +3 -0
  39. package/src/interest-math.d.ts.map +1 -0
  40. package/src/interest.d.ts +28 -0
  41. package/src/interest.d.ts.map +1 -0
  42. package/src/price/fluxAggregatorContract.d.ts +110 -0
  43. package/src/price/fluxAggregatorContract.d.ts.map +1 -0
  44. package/src/price/fluxAggregatorKit.d.ts +150 -0
  45. package/src/price/fluxAggregatorKit.d.ts.map +1 -0
  46. package/src/price/priceOracleKit.d.ts +58 -0
  47. package/src/price/priceOracleKit.d.ts.map +1 -0
  48. package/src/price/roundsManager.d.ts +348 -0
  49. package/src/price/roundsManager.d.ts.map +1 -0
  50. package/src/proposals/addAssetToVault.d.ts +155 -0
  51. package/src/proposals/addAssetToVault.d.ts.map +1 -0
  52. package/src/proposals/committee-proposal.d.ts +121 -0
  53. package/src/proposals/committee-proposal.d.ts.map +1 -0
  54. package/src/proposals/core-proposal.d.ts +149 -0
  55. package/src/proposals/core-proposal.d.ts.map +1 -0
  56. package/src/proposals/econ-behaviors.d.ts +201 -0
  57. package/src/proposals/econ-behaviors.d.ts.map +1 -0
  58. package/src/proposals/price-feed-proposal.d.ts +83 -0
  59. package/src/proposals/price-feed-proposal.d.ts.map +1 -0
  60. package/src/proposals/startEconCommittee.d.ts +34 -0
  61. package/src/proposals/startEconCommittee.d.ts.map +1 -0
  62. package/src/proposals/startPSM.d.ts +61 -0
  63. package/src/proposals/startPSM.d.ts.map +1 -0
  64. package/src/proposals/startPSM.js +8 -7
  65. package/src/proposals/utils.d.ts +15 -0
  66. package/src/proposals/utils.d.ts.map +1 -0
  67. package/src/psm/psm.d.ts +193 -0
  68. package/src/psm/psm.d.ts.map +1 -0
  69. package/src/psm/types.d.ts +2 -0
  70. package/src/psm/types.d.ts.map +1 -0
  71. package/src/reserve/assetReserve.d.ts +42 -0
  72. package/src/reserve/assetReserve.d.ts.map +1 -0
  73. package/src/reserve/assetReserveKit.d.ts +126 -0
  74. package/src/reserve/assetReserveKit.d.ts.map +1 -0
  75. package/src/reserve/params.d.ts +10 -0
  76. package/src/reserve/params.d.ts.map +1 -0
  77. package/src/tokens.d.ts +36 -0
  78. package/src/tokens.d.ts.map +1 -0
  79. package/src/typeGuards.d.ts +5 -0
  80. package/src/typeGuards.d.ts.map +1 -0
  81. package/src/vaultFactory/burn.d.ts +2 -0
  82. package/src/vaultFactory/burn.d.ts.map +1 -0
  83. package/src/vaultFactory/liquidation.d.ts +24 -0
  84. package/src/vaultFactory/liquidation.d.ts.map +1 -0
  85. package/src/vaultFactory/math.d.ts +10 -0
  86. package/src/vaultFactory/math.d.ts.map +1 -0
  87. package/src/vaultFactory/orderedVaultStore.d.ts +94 -0
  88. package/src/vaultFactory/orderedVaultStore.d.ts.map +1 -0
  89. package/src/vaultFactory/params.d.ts +162 -0
  90. package/src/vaultFactory/params.d.ts.map +1 -0
  91. package/src/vaultFactory/prioritizedVaults.d.ts +279 -0
  92. package/src/vaultFactory/prioritizedVaults.d.ts.map +1 -0
  93. package/src/vaultFactory/proceeds.d.ts +34 -0
  94. package/src/vaultFactory/proceeds.d.ts.map +1 -0
  95. package/src/vaultFactory/storeUtils.d.ts +29 -0
  96. package/src/vaultFactory/storeUtils.d.ts.map +1 -0
  97. package/src/vaultFactory/type-imports.d.ts +2 -0
  98. package/src/vaultFactory/type-imports.d.ts.map +1 -0
  99. package/src/vaultFactory/types.d.ts +132 -0
  100. package/src/vaultFactory/types.d.ts.map +1 -0
  101. package/src/vaultFactory/vault.d.ts +585 -0
  102. package/src/vaultFactory/vault.d.ts.map +1 -0
  103. package/src/vaultFactory/vaultDirector.d.ts +582 -0
  104. package/src/vaultFactory/vaultDirector.d.ts.map +1 -0
  105. package/src/vaultFactory/vaultFactory.d.ts +159 -0
  106. package/src/vaultFactory/vaultFactory.d.ts.map +1 -0
  107. package/src/vaultFactory/vaultHolder.d.ts +205 -0
  108. package/src/vaultFactory/vaultHolder.d.ts.map +1 -0
  109. package/src/vaultFactory/vaultKit.d.ts +32 -0
  110. package/src/vaultFactory/vaultKit.d.ts.map +1 -0
  111. package/src/vaultFactory/vaultManager.d.ts +552 -0
  112. package/src/vaultFactory/vaultManager.d.ts.map +1 -0
@@ -0,0 +1,552 @@
1
+ export function prepareVaultManagerKit(baggage: MapStore<string, unknown>, { zcf, marshaller, makeRecorderKit, factoryPowers }: {
2
+ zcf: import('./vaultFactory.js').VaultFactoryZCF;
3
+ marshaller: ERef<Marshaller>;
4
+ makeRecorderKit: import('@agoric/zoe/src/contractSupport/recorder.js').MakeRecorderKit;
5
+ makeERecorderKit: import('@agoric/zoe/src/contractSupport/recorder.js').MakeERecorderKit;
6
+ factoryPowers: import('./vaultDirector.js').FactoryPowersFacet;
7
+ }): (externalParams: Omit<Readonly<{
8
+ debtMint: ZCFMint<'nat'>;
9
+ collateralBrand: Brand<'nat'>;
10
+ collateralUnit: Amount<'nat'>;
11
+ descriptionScope: string;
12
+ startTimeStamp: Timestamp;
13
+ storageNode: StorageNode;
14
+ }> & {
15
+ metricsStorageNode: StorageNode;
16
+ }, "metricsStorageNode">) => Promise<{
17
+ collateral: {
18
+ makeVaultInvitation(): Promise<Invitation<R, A>>;
19
+ getQuotes(): import("@agoric/notifier").StoredNotifier<PriceQuote>;
20
+ getCompoundedStabilityFee(): Ratio;
21
+ getPublicTopics(): {
22
+ asset: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<AssetState>;
23
+ metrics: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<MetricsNotification>;
24
+ };
25
+ };
26
+ helper: {
27
+ /**
28
+ * Start non-durable processes (or restart if needed after vat restart)
29
+ */
30
+ start(): void;
31
+ /**
32
+ * @param {Timestamp} updateTime
33
+ */
34
+ chargeAllVaults(updateTime: Timestamp): Promise<void>;
35
+ assetNotify(): Promise<void>;
36
+ burnToCoverDebt(debt: any, proceeds: any, seat: any): void;
37
+ sendToReserve(penalty: any, seat: any, seatKeyword?: string): void;
38
+ markLiquidating(debt: any, collateral: any): void;
39
+ /**
40
+ *
41
+ * @param {Amount<'nat'>} debt
42
+ * @param {Amount<'nat'>} collateral
43
+ * @param {Amount<'nat'>} overage
44
+ * @param {Amount<'nat'>} shortfall
45
+ */
46
+ markDoneLiquidating(debt: Amount<'nat'>, collateral: Amount<'nat'>, overage: Amount<'nat'>, shortfall: Amount<'nat'>): void;
47
+ writeMetrics(): Promise<void>;
48
+ /**
49
+ * This is designed to tolerate an incomplete plan, in case calculateDistributionPlan encounters
50
+ * an error during its calculation. We don't have a way to induce such errors in CI so we've
51
+ * done so manually in dev and verified this function recovers as expected.
52
+ *
53
+ * @param {AmountKeywordRecord} proceeds
54
+ * @param {Amount<'nat'>} totalDebt
55
+ * @param {Pick<PriceQuote, 'quoteAmount'>} oraclePriceAtStart
56
+ * @param {MapStore<Vault, { collateralAmount: Amount<'nat'>, debtAmount: Amount<'nat'>}>} vaultData
57
+ * @param {Amount<'nat'>} totalCollateral
58
+ */
59
+ planProceedsDistribution(proceeds: AmountKeywordRecord, totalDebt: Amount<'nat'>, oraclePriceAtStart: Pick<PriceQuote, 'quoteAmount'>, vaultData: MapStore<Vault, {
60
+ collateralAmount: Amount<'nat'>;
61
+ debtAmount: Amount<'nat'>;
62
+ }>, totalCollateral: Amount<'nat'>): {
63
+ plan: import("./proceeds.js").DistributionPlan;
64
+ vaultsInPlan: {
65
+ getVaultSeat(): ZCFSeat;
66
+ initVaultKit(seat: ZCFSeat, storageNode: StorageNode): Promise<{
67
+ publicSubscribers: {
68
+ vault: {
69
+ description: string;
70
+ subscriber: Subscriber<import("./vault.js").VaultNotification>;
71
+ storagePath: Promise<string>;
72
+ };
73
+ };
74
+ invitationMakers: {
75
+ AdjustBalances(): Promise<Invitation<R, A>>;
76
+ CloseVault(): Promise<Invitation<R, A>>;
77
+ TransferVault(): Promise<Invitation<R, A>>;
78
+ };
79
+ vault: {
80
+ getPublicTopics(): {
81
+ vault: {
82
+ description: string;
83
+ subscriber: Subscriber<import("./vault.js").VaultNotification>;
84
+ storagePath: Promise<string>;
85
+ };
86
+ };
87
+ makeAdjustBalancesInvitation(): Promise<Invitation<R, A>>;
88
+ makeCloseInvitation(): Promise<Invitation<R, A>>;
89
+ makeTransferInvitation(): Promise<Invitation<R, A>>;
90
+ getCollateralAmount(): Amount<"nat">;
91
+ getCurrentDebt(): Amount<"nat">;
92
+ getNormalizedDebt(): import("./storeUtils.js").NormalizedDebt;
93
+ };
94
+ vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<import("./vault.js").VaultNotification>;
95
+ }>;
96
+ liquidating(): void;
97
+ liquidated(): void;
98
+ abortLiquidation(): string;
99
+ makeAdjustBalancesInvitation(): Promise<Invitation<R, A>>;
100
+ makeCloseInvitation(): Promise<Invitation<R, A>>;
101
+ makeTransferInvitation(): Promise<Invitation<R, A>>;
102
+ getCollateralAmount(): Amount<"nat">;
103
+ getCurrentDebt(): Amount<"nat">;
104
+ getNormalizedDebt(): import("./storeUtils.js").NormalizedDebt;
105
+ }[];
106
+ };
107
+ /**
108
+ * This is designed to tolerate an incomplete plan, in case calculateDistributionPlan encounters
109
+ * an error during its calculation. We don't have a way to induce such errors in CI so we've
110
+ * done so manually in dev and verified this function recovers as expected.
111
+ *
112
+ * @param {object} obj
113
+ * @param {import('./proceeds.js').DistributionPlan} obj.plan
114
+ * @param {Array<Vault>} obj.vaultsInPlan
115
+ * @param {ZCFSeat} obj.liqSeat
116
+ * @param {Amount<'nat'>} obj.totalCollateral
117
+ * @param {Amount<'nat'>} obj.totalDebt
118
+ * @returns {void}
119
+ */
120
+ distributeProceeds({ plan, vaultsInPlan, liqSeat, totalCollateral, totalDebt, }: {
121
+ plan: import('./proceeds.js').DistributionPlan;
122
+ vaultsInPlan: Array<Vault>;
123
+ liqSeat: ZCFSeat;
124
+ totalCollateral: Amount<'nat'>;
125
+ totalDebt: Amount<'nat'>;
126
+ }): void;
127
+ };
128
+ manager: {
129
+ getGovernedParams(): GovernedParamGetters;
130
+ /**
131
+ * Look up the most recent price authority price to determine the max
132
+ * debt this manager config will allow for the collateral.
133
+ *
134
+ * @param {Amount<'nat'>} collateralAmount
135
+ */
136
+ maxDebtFor(collateralAmount: Amount<'nat'>): Amount<"nat">;
137
+ /** @type {MintAndTransfer} */
138
+ mintAndTransfer(mintReceiver: ZCFSeat, toMint: Amount<"nat">, fee: Amount<"nat">, transfers: import("@agoric/zoe/src/contractSupport/atomicTransfer.js").TransferPart[]): void;
139
+ /**
140
+ * @param {Amount<'nat'>} toBurn
141
+ * @param {ZCFSeat} seat
142
+ */
143
+ burn(toBurn: Amount<'nat'>, seat: ZCFSeat): void;
144
+ getAssetSubscriber(): Subscriber<AssetState>;
145
+ getCollateralBrand(): Brand<"nat">;
146
+ getDebtBrand(): Brand<"nat">;
147
+ /**
148
+ * Prepend with an identifier of this vault manager
149
+ *
150
+ * @param {string} base
151
+ */
152
+ scopeDescription(base: string): string;
153
+ /**
154
+ * coefficient on existing debt to calculate new debt
155
+ */
156
+ getCompoundedStabilityFee(): Ratio;
157
+ /**
158
+ * Called by a vault when its balances change.
159
+ *
160
+ * @param {NormalizedDebt} oldDebtNormalized
161
+ * @param {Amount<'nat'>} oldCollateral
162
+ * @param {VaultId} vaultId
163
+ * @param {import('./vault.js').VaultPhase} vaultPhase at the end of whatever change updated balances
164
+ * @param {Vault} vault
165
+ * @returns {void}
166
+ */
167
+ handleBalanceChange(oldDebtNormalized: NormalizedDebt, oldCollateral: Amount<'nat'>, vaultId: VaultId, vaultPhase: import('./vault.js').VaultPhase, vault: Vault): void;
168
+ };
169
+ self: {
170
+ getGovernedParams(): GovernedParamGetters;
171
+ /**
172
+ * @param {ZCFSeat} seat
173
+ */
174
+ makeVaultKit(seat: ZCFSeat): Promise<{
175
+ publicSubscribers: {
176
+ vault: {
177
+ description: string;
178
+ subscriber: Subscriber<import("./vault.js").VaultNotification>;
179
+ storagePath: Promise<string>;
180
+ };
181
+ };
182
+ invitationMakers: {
183
+ AdjustBalances(): Promise<Invitation<R, A>>;
184
+ CloseVault(): Promise<Invitation<R, A>>;
185
+ TransferVault(): Promise<Invitation<R, A>>;
186
+ };
187
+ vault: {
188
+ getPublicTopics(): {
189
+ vault: {
190
+ description: string;
191
+ subscriber: Subscriber<import("./vault.js").VaultNotification>;
192
+ storagePath: Promise<string>;
193
+ };
194
+ };
195
+ makeAdjustBalancesInvitation(): Promise<Invitation<R, A>>;
196
+ makeCloseInvitation(): Promise<Invitation<R, A>>;
197
+ makeTransferInvitation(): Promise<Invitation<R, A>>;
198
+ getCollateralAmount(): Amount<"nat">;
199
+ getCurrentDebt(): Amount<"nat">;
200
+ getNormalizedDebt(): import("./storeUtils.js").NormalizedDebt;
201
+ };
202
+ vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<import("./vault.js").VaultNotification>;
203
+ }>;
204
+ getCollateralQuote(): PriceQuote;
205
+ getPublicFacet(): {
206
+ makeVaultInvitation(): Promise<Invitation<R, A>>;
207
+ getQuotes(): import("@agoric/notifier").StoredNotifier<PriceQuote>;
208
+ getCompoundedStabilityFee(): Ratio;
209
+ getPublicTopics(): {
210
+ asset: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<AssetState>;
211
+ metrics: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<MetricsNotification>;
212
+ };
213
+ };
214
+ lockOraclePrices(): PriceQuote;
215
+ /**
216
+ * @param {ERef<AuctioneerPublicFacet>} auctionPF
217
+ */
218
+ liquidateVaults(auctionPF: ERef<AuctioneerPublicFacet>): Promise<void>;
219
+ };
220
+ } & import("@endo/eventual-send").RemotableBrand<{}, {
221
+ collateral: {
222
+ makeVaultInvitation(): Promise<Invitation<R, A>>;
223
+ getQuotes(): import("@agoric/notifier").StoredNotifier<PriceQuote>;
224
+ getCompoundedStabilityFee(): Ratio;
225
+ getPublicTopics(): {
226
+ asset: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<AssetState>;
227
+ metrics: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<MetricsNotification>;
228
+ };
229
+ };
230
+ helper: {
231
+ /**
232
+ * Start non-durable processes (or restart if needed after vat restart)
233
+ */
234
+ start(): void;
235
+ /**
236
+ * @param {Timestamp} updateTime
237
+ */
238
+ chargeAllVaults(updateTime: Timestamp): Promise<void>;
239
+ assetNotify(): Promise<void>;
240
+ burnToCoverDebt(debt: any, proceeds: any, seat: any): void;
241
+ sendToReserve(penalty: any, seat: any, seatKeyword?: string): void;
242
+ markLiquidating(debt: any, collateral: any): void;
243
+ /**
244
+ *
245
+ * @param {Amount<'nat'>} debt
246
+ * @param {Amount<'nat'>} collateral
247
+ * @param {Amount<'nat'>} overage
248
+ * @param {Amount<'nat'>} shortfall
249
+ */
250
+ markDoneLiquidating(debt: Amount<'nat'>, collateral: Amount<'nat'>, overage: Amount<'nat'>, shortfall: Amount<'nat'>): void;
251
+ writeMetrics(): Promise<void>;
252
+ /**
253
+ * This is designed to tolerate an incomplete plan, in case calculateDistributionPlan encounters
254
+ * an error during its calculation. We don't have a way to induce such errors in CI so we've
255
+ * done so manually in dev and verified this function recovers as expected.
256
+ *
257
+ * @param {AmountKeywordRecord} proceeds
258
+ * @param {Amount<'nat'>} totalDebt
259
+ * @param {Pick<PriceQuote, 'quoteAmount'>} oraclePriceAtStart
260
+ * @param {MapStore<Vault, { collateralAmount: Amount<'nat'>, debtAmount: Amount<'nat'>}>} vaultData
261
+ * @param {Amount<'nat'>} totalCollateral
262
+ */
263
+ planProceedsDistribution(proceeds: AmountKeywordRecord, totalDebt: Amount<'nat'>, oraclePriceAtStart: Pick<PriceQuote, 'quoteAmount'>, vaultData: MapStore<Vault, {
264
+ collateralAmount: Amount<'nat'>;
265
+ debtAmount: Amount<'nat'>;
266
+ }>, totalCollateral: Amount<'nat'>): {
267
+ plan: import("./proceeds.js").DistributionPlan;
268
+ vaultsInPlan: {
269
+ getVaultSeat(): ZCFSeat;
270
+ initVaultKit(seat: ZCFSeat, storageNode: StorageNode): Promise<{
271
+ publicSubscribers: {
272
+ vault: {
273
+ description: string;
274
+ subscriber: Subscriber<import("./vault.js").VaultNotification>;
275
+ storagePath: Promise<string>;
276
+ };
277
+ };
278
+ invitationMakers: {
279
+ AdjustBalances(): Promise<Invitation<R, A>>;
280
+ CloseVault(): Promise<Invitation<R, A>>;
281
+ TransferVault(): Promise<Invitation<R, A>>;
282
+ };
283
+ vault: {
284
+ getPublicTopics(): {
285
+ vault: {
286
+ description: string;
287
+ subscriber: Subscriber<import("./vault.js").VaultNotification>;
288
+ storagePath: Promise<string>;
289
+ };
290
+ };
291
+ makeAdjustBalancesInvitation(): Promise<Invitation<R, A>>;
292
+ makeCloseInvitation(): Promise<Invitation<R, A>>;
293
+ makeTransferInvitation(): Promise<Invitation<R, A>>;
294
+ getCollateralAmount(): Amount<"nat">;
295
+ getCurrentDebt(): Amount<"nat">;
296
+ getNormalizedDebt(): import("./storeUtils.js").NormalizedDebt;
297
+ };
298
+ vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<import("./vault.js").VaultNotification>;
299
+ }>;
300
+ liquidating(): void;
301
+ liquidated(): void;
302
+ abortLiquidation(): string;
303
+ makeAdjustBalancesInvitation(): Promise<Invitation<R, A>>;
304
+ makeCloseInvitation(): Promise<Invitation<R, A>>;
305
+ makeTransferInvitation(): Promise<Invitation<R, A>>;
306
+ getCollateralAmount(): Amount<"nat">;
307
+ getCurrentDebt(): Amount<"nat">;
308
+ getNormalizedDebt(): import("./storeUtils.js").NormalizedDebt;
309
+ }[];
310
+ };
311
+ /**
312
+ * This is designed to tolerate an incomplete plan, in case calculateDistributionPlan encounters
313
+ * an error during its calculation. We don't have a way to induce such errors in CI so we've
314
+ * done so manually in dev and verified this function recovers as expected.
315
+ *
316
+ * @param {object} obj
317
+ * @param {import('./proceeds.js').DistributionPlan} obj.plan
318
+ * @param {Array<Vault>} obj.vaultsInPlan
319
+ * @param {ZCFSeat} obj.liqSeat
320
+ * @param {Amount<'nat'>} obj.totalCollateral
321
+ * @param {Amount<'nat'>} obj.totalDebt
322
+ * @returns {void}
323
+ */
324
+ distributeProceeds({ plan, vaultsInPlan, liqSeat, totalCollateral, totalDebt, }: {
325
+ plan: import('./proceeds.js').DistributionPlan;
326
+ vaultsInPlan: Array<Vault>;
327
+ liqSeat: ZCFSeat;
328
+ totalCollateral: Amount<'nat'>;
329
+ totalDebt: Amount<'nat'>;
330
+ }): void;
331
+ };
332
+ manager: {
333
+ getGovernedParams(): GovernedParamGetters;
334
+ /**
335
+ * Look up the most recent price authority price to determine the max
336
+ * debt this manager config will allow for the collateral.
337
+ *
338
+ * @param {Amount<'nat'>} collateralAmount
339
+ */
340
+ maxDebtFor(collateralAmount: Amount<'nat'>): Amount<"nat">;
341
+ /** @type {MintAndTransfer} */
342
+ mintAndTransfer(mintReceiver: ZCFSeat, toMint: Amount<"nat">, fee: Amount<"nat">, transfers: import("@agoric/zoe/src/contractSupport/atomicTransfer.js").TransferPart[]): void;
343
+ /**
344
+ * @param {Amount<'nat'>} toBurn
345
+ * @param {ZCFSeat} seat
346
+ */
347
+ burn(toBurn: Amount<'nat'>, seat: ZCFSeat): void;
348
+ getAssetSubscriber(): Subscriber<AssetState>;
349
+ getCollateralBrand(): Brand<"nat">;
350
+ getDebtBrand(): Brand<"nat">;
351
+ /**
352
+ * Prepend with an identifier of this vault manager
353
+ *
354
+ * @param {string} base
355
+ */
356
+ scopeDescription(base: string): string;
357
+ /**
358
+ * coefficient on existing debt to calculate new debt
359
+ */
360
+ getCompoundedStabilityFee(): Ratio;
361
+ /**
362
+ * Called by a vault when its balances change.
363
+ *
364
+ * @param {NormalizedDebt} oldDebtNormalized
365
+ * @param {Amount<'nat'>} oldCollateral
366
+ * @param {VaultId} vaultId
367
+ * @param {import('./vault.js').VaultPhase} vaultPhase at the end of whatever change updated balances
368
+ * @param {Vault} vault
369
+ * @returns {void}
370
+ */
371
+ handleBalanceChange(oldDebtNormalized: NormalizedDebt, oldCollateral: Amount<'nat'>, vaultId: VaultId, vaultPhase: import('./vault.js').VaultPhase, vault: Vault): void;
372
+ };
373
+ self: {
374
+ getGovernedParams(): GovernedParamGetters;
375
+ /**
376
+ * @param {ZCFSeat} seat
377
+ */
378
+ makeVaultKit(seat: ZCFSeat): Promise<{
379
+ publicSubscribers: {
380
+ vault: {
381
+ description: string;
382
+ subscriber: Subscriber<import("./vault.js").VaultNotification>;
383
+ storagePath: Promise<string>;
384
+ };
385
+ };
386
+ invitationMakers: {
387
+ AdjustBalances(): Promise<Invitation<R, A>>;
388
+ CloseVault(): Promise<Invitation<R, A>>;
389
+ TransferVault(): Promise<Invitation<R, A>>;
390
+ };
391
+ vault: {
392
+ getPublicTopics(): {
393
+ vault: {
394
+ description: string;
395
+ subscriber: Subscriber<import("./vault.js").VaultNotification>;
396
+ storagePath: Promise<string>;
397
+ };
398
+ };
399
+ makeAdjustBalancesInvitation(): Promise<Invitation<R, A>>;
400
+ makeCloseInvitation(): Promise<Invitation<R, A>>;
401
+ makeTransferInvitation(): Promise<Invitation<R, A>>;
402
+ getCollateralAmount(): Amount<"nat">;
403
+ getCurrentDebt(): Amount<"nat">;
404
+ getNormalizedDebt(): import("./storeUtils.js").NormalizedDebt;
405
+ };
406
+ vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<import("./vault.js").VaultNotification>;
407
+ }>;
408
+ getCollateralQuote(): PriceQuote;
409
+ getPublicFacet(): {
410
+ makeVaultInvitation(): Promise<Invitation<R, A>>;
411
+ getQuotes(): import("@agoric/notifier").StoredNotifier<PriceQuote>;
412
+ getCompoundedStabilityFee(): Ratio;
413
+ getPublicTopics(): {
414
+ asset: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<AssetState>;
415
+ metrics: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<MetricsNotification>;
416
+ };
417
+ };
418
+ lockOraclePrices(): PriceQuote;
419
+ /**
420
+ * @param {ERef<AuctioneerPublicFacet>} auctionPF
421
+ */
422
+ liquidateVaults(auctionPF: ERef<AuctioneerPublicFacet>): Promise<void>;
423
+ };
424
+ }>>;
425
+ export function provideAndStartVaultManagerKits(baggage: MapStore<string, unknown>): {
426
+ /** @type {(kit: VaultManagerKit) => void} */
427
+ add: (kit: VaultManagerKit) => void;
428
+ /** @type {(index: number) => VaultManagerKit} */
429
+ get: (index: number) => VaultManagerKit;
430
+ length: () => any;
431
+ };
432
+ export type NormalizedDebt = import('./storeUtils.js').NormalizedDebt;
433
+ export type RelativeTime = import('@agoric/time/src/types').RelativeTime;
434
+ export type MetricsNotification = {
435
+ /**
436
+ * priceQuote that will be used for liquidation.
437
+ * Non-null from priceLock time until liquidation has taken place.
438
+ */
439
+ lockedQuote: Ratio | null;
440
+ /**
441
+ * present count of vaults
442
+ */
443
+ numActiveVaults: number;
444
+ /**
445
+ * present count of liquidating vaults
446
+ */
447
+ numLiquidatingVaults: number;
448
+ /**
449
+ * present sum of collateral across all vaults
450
+ */
451
+ totalCollateral: Amount<'nat'>;
452
+ /**
453
+ * present sum of debt across all vaults
454
+ */
455
+ totalDebt: Amount<'nat'>;
456
+ /**
457
+ * collateral held as a result of not returning excess refunds
458
+ * to owners of vaults liquidated with shortfalls
459
+ */
460
+ retainedCollateral: Amount<'nat'>;
461
+ /**
462
+ * present sum of collateral in vaults sent for liquidation
463
+ */
464
+ liquidatingCollateral: Amount<'nat'>;
465
+ /**
466
+ * present sum of debt in vaults sent for liquidation
467
+ */
468
+ liquidatingDebt: Amount<'nat'>;
469
+ /**
470
+ * running sum of collateral sold in liquidation
471
+ */
472
+ totalCollateralSold: Amount<'nat'>;
473
+ /**
474
+ * running sum of overages, central received greater than debt
475
+ */
476
+ totalOverageReceived: Amount<'nat'>;
477
+ /**
478
+ * running sum of minted received from liquidation
479
+ */
480
+ totalProceedsReceived: Amount<'nat'>;
481
+ /**
482
+ * running sum of shortfalls, minted received less than debt
483
+ */
484
+ totalShortfallReceived: Amount<'nat'>;
485
+ /**
486
+ * running count of liquidated vaults
487
+ */
488
+ numLiquidationsCompleted: number;
489
+ /**
490
+ * running count of vault liquidations that were reverted.
491
+ */
492
+ numLiquidationsAborted: number;
493
+ };
494
+ export type AssetState = {
495
+ compoundedStabilityFee: Ratio;
496
+ stabilityFee: Ratio;
497
+ latestStabilityFeeUpdate: Timestamp;
498
+ };
499
+ export type GovernedParamGetters = {
500
+ getChargingPeriod: () => RelativeTime;
501
+ getRecordingPeriod: () => RelativeTime;
502
+ getDebtLimit: () => Amount<'nat'>;
503
+ getStabilityFee: () => Ratio;
504
+ getLiquidationPadding: () => Ratio;
505
+ getLiquidationMargin: () => Ratio;
506
+ getLiquidationPenalty: () => Ratio;
507
+ getMintFee: () => Ratio;
508
+ getMinInitialDebt: () => Amount<'nat'>;
509
+ };
510
+ export type HeldParams = Readonly<{
511
+ debtMint: ZCFMint<'nat'>;
512
+ collateralBrand: Brand<'nat'>;
513
+ collateralUnit: Amount<'nat'>;
514
+ descriptionScope: string;
515
+ startTimeStamp: Timestamp;
516
+ storageNode: StorageNode;
517
+ }>;
518
+ export type ImmutableState = {
519
+ assetTopicKit: import('@agoric/zoe/src/contractSupport/recorder.js').RecorderKit<AssetState>;
520
+ debtBrand: Brand<'nat'>;
521
+ liquidatingVaults: SetStore<Vault>;
522
+ metricsTopicKit: import('@agoric/zoe/src/contractSupport/recorder.js').RecorderKit<MetricsNotification>;
523
+ poolIncrementSeat: ZCFSeat;
524
+ retainedCollateralSeat: ZCFSeat;
525
+ unsettledVaults: MapStore<string, Vault>;
526
+ };
527
+ export type MutableState = {
528
+ compoundedStabilityFee: Ratio;
529
+ latestStabilityFeeUpdate: Timestamp;
530
+ numLiquidationsCompleted: number;
531
+ numLiquidationsAborted: number;
532
+ totalCollateral: Amount<'nat'>;
533
+ totalCollateralSold: Amount<'nat'>;
534
+ totalDebt: Amount<'nat'>;
535
+ liquidatingCollateral: Amount<'nat'>;
536
+ liquidatingDebt: Amount<'nat'>;
537
+ totalOverageReceived: Amount<'nat'>;
538
+ totalProceedsReceived: Amount<'nat'>;
539
+ totalShortfallReceived: Amount<'nat'>;
540
+ vaultCounter: number;
541
+ lockedQuote: PriceQuote | undefined;
542
+ };
543
+ export type VaultManagerKit = Awaited<ReturnType<ReturnType<typeof prepareVaultManagerKit>>>;
544
+ /**
545
+ * Each VaultManager manages a single collateral type.
546
+ *
547
+ * It manages some number of outstanding debt positions, each called a Vault,
548
+ * for which the collateral is provided in exchange for borrowed Minted.
549
+ */
550
+ export type VaultManager = VaultManagerKit['self'];
551
+ export type CollateralManager = VaultManagerKit['collateral'];
552
+ //# sourceMappingURL=vaultManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vaultManager.d.ts","sourceRoot":"","sources":["vaultManager.js"],"names":[],"mappings":"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"}