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