@agoric/inter-protocol 0.16.2-dev-57802f9.0 → 0.16.2-other-dev-70beeb7.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 (160) hide show
  1. package/CHANGELOG.md +1041 -0
  2. package/package.json +30 -33
  3. package/scripts/add-collateral-core.js +112 -0
  4. package/scripts/build-bundles.js +21 -5
  5. package/scripts/deploy-contracts.js +100 -0
  6. package/scripts/init-core.js +198 -0
  7. package/scripts/invite-committee-core.js +42 -0
  8. package/scripts/manual-price-feed.js +117 -0
  9. package/scripts/price-feed-core.js +104 -0
  10. package/scripts/start-local-chain.sh +84 -0
  11. package/src/auction/auctionBook.js +59 -74
  12. package/src/auction/auctioneer.js +44 -56
  13. package/src/auction/offerBook.js +11 -12
  14. package/src/auction/params.js +5 -3
  15. package/src/auction/scheduleMath.js +13 -13
  16. package/src/auction/scheduler.js +32 -32
  17. package/src/auction/sortedOffers.js +7 -8
  18. package/src/auction/util.js +4 -4
  19. package/src/clientSupport.js +96 -152
  20. package/src/contractSupport.js +5 -5
  21. package/src/econCommitteeCharter.js +17 -18
  22. package/src/feeDistributor.js +33 -34
  23. package/src/interest.js +14 -20
  24. package/src/price/fluxAggregatorContract.js +45 -51
  25. package/src/price/fluxAggregatorKit.js +33 -48
  26. package/src/price/priceOracleKit.js +13 -11
  27. package/src/price/roundsManager.js +64 -52
  28. package/src/proposals/addAssetToVault.js +6 -15
  29. package/src/proposals/committee-proposal.js +27 -21
  30. package/src/proposals/core-proposal.js +7 -7
  31. package/src/proposals/econ-behaviors.js +32 -57
  32. package/src/proposals/price-feed-proposal.js +34 -66
  33. package/src/proposals/startEconCommittee.js +1 -1
  34. package/src/proposals/startPSM.js +22 -32
  35. package/src/proposals/utils.js +7 -26
  36. package/src/psm/psm.js +63 -69
  37. package/src/reserve/assetReserve.js +18 -27
  38. package/src/reserve/assetReserveKit.js +22 -14
  39. package/src/typeGuards.js +13 -0
  40. package/src/vaultFactory/liquidation.js +17 -30
  41. package/src/vaultFactory/math.js +9 -8
  42. package/src/vaultFactory/orderedVaultStore.js +9 -6
  43. package/src/vaultFactory/params.js +18 -24
  44. package/src/vaultFactory/prioritizedVaults.js +2 -2
  45. package/src/vaultFactory/proceeds.js +18 -24
  46. package/src/vaultFactory/storeUtils.js +12 -8
  47. package/src/vaultFactory/types.js +28 -38
  48. package/src/vaultFactory/vault.js +89 -88
  49. package/src/vaultFactory/vaultDirector.js +44 -35
  50. package/src/vaultFactory/vaultFactory.js +26 -33
  51. package/src/vaultFactory/vaultHolder.js +13 -8
  52. package/src/vaultFactory/vaultKit.js +2 -3
  53. package/src/vaultFactory/vaultManager.js +120 -138
  54. package/src/auction/auctionBook.d.ts +0 -83
  55. package/src/auction/auctionBook.d.ts.map +0 -1
  56. package/src/auction/auctioneer.d.ts +0 -75
  57. package/src/auction/auctioneer.d.ts.map +0 -1
  58. package/src/auction/offerBook.d.ts +0 -72
  59. package/src/auction/offerBook.d.ts.map +0 -1
  60. package/src/auction/params.d.ts +0 -142
  61. package/src/auction/params.d.ts.map +0 -1
  62. package/src/auction/scheduleMath.d.ts +0 -4
  63. package/src/auction/scheduleMath.d.ts.map +0 -1
  64. package/src/auction/scheduler.d.ts +0 -49
  65. package/src/auction/scheduler.d.ts.map +0 -1
  66. package/src/auction/sortedOffers.d.ts +0 -8
  67. package/src/auction/sortedOffers.d.ts.map +0 -1
  68. package/src/auction/util.d.ts +0 -30
  69. package/src/auction/util.d.ts.map +0 -1
  70. package/src/clientSupport.d.ts +0 -167
  71. package/src/clientSupport.d.ts.map +0 -1
  72. package/src/collectFees.d.ts +0 -2
  73. package/src/collectFees.d.ts.map +0 -1
  74. package/src/contractSupport.d.ts +0 -33
  75. package/src/contractSupport.d.ts.map +0 -1
  76. package/src/econCommitteeCharter.d.ts +0 -41
  77. package/src/econCommitteeCharter.d.ts.map +0 -1
  78. package/src/feeDistributor.d.ts +0 -212
  79. package/src/feeDistributor.d.ts.map +0 -1
  80. package/src/index.d.ts +0 -2
  81. package/src/index.d.ts.map +0 -1
  82. package/src/interest-math.d.ts +0 -3
  83. package/src/interest-math.d.ts.map +0 -1
  84. package/src/interest.d.ts +0 -29
  85. package/src/interest.d.ts.map +0 -1
  86. package/src/price/fluxAggregatorContract.d.ts +0 -112
  87. package/src/price/fluxAggregatorContract.d.ts.map +0 -1
  88. package/src/price/fluxAggregatorKit.d.ts +0 -155
  89. package/src/price/fluxAggregatorKit.d.ts.map +0 -1
  90. package/src/price/priceOracleKit.d.ts +0 -52
  91. package/src/price/priceOracleKit.d.ts.map +0 -1
  92. package/src/price/roundsManager.d.ts +0 -330
  93. package/src/price/roundsManager.d.ts.map +0 -1
  94. package/src/proposals/addAssetToVault.d.ts +0 -143
  95. package/src/proposals/addAssetToVault.d.ts.map +0 -1
  96. package/src/proposals/committee-proposal.d.ts +0 -113
  97. package/src/proposals/committee-proposal.d.ts.map +0 -1
  98. package/src/proposals/core-proposal.d.ts +0 -149
  99. package/src/proposals/core-proposal.d.ts.map +0 -1
  100. package/src/proposals/econ-behaviors.d.ts +0 -201
  101. package/src/proposals/econ-behaviors.d.ts.map +0 -1
  102. package/src/proposals/price-feed-proposal.d.ts +0 -82
  103. package/src/proposals/price-feed-proposal.d.ts.map +0 -1
  104. package/src/proposals/startEconCommittee.d.ts +0 -34
  105. package/src/proposals/startEconCommittee.d.ts.map +0 -1
  106. package/src/proposals/startPSM.d.ts +0 -61
  107. package/src/proposals/startPSM.d.ts.map +0 -1
  108. package/src/proposals/utils.d.ts +0 -15
  109. package/src/proposals/utils.d.ts.map +0 -1
  110. package/src/provisionPool.d.ts +0 -165
  111. package/src/provisionPool.d.ts.map +0 -1
  112. package/src/provisionPool.js +0 -119
  113. package/src/provisionPoolKit.d.ts +0 -379
  114. package/src/provisionPoolKit.d.ts.map +0 -1
  115. package/src/provisionPoolKit.js +0 -461
  116. package/src/psm/psm.d.ts +0 -178
  117. package/src/psm/psm.d.ts.map +0 -1
  118. package/src/psm/types.d.ts +0 -2
  119. package/src/psm/types.d.ts.map +0 -1
  120. package/src/reserve/assetReserve.d.ts +0 -44
  121. package/src/reserve/assetReserve.d.ts.map +0 -1
  122. package/src/reserve/assetReserveKit.d.ts +0 -114
  123. package/src/reserve/assetReserveKit.d.ts.map +0 -1
  124. package/src/reserve/params.d.ts +0 -10
  125. package/src/reserve/params.d.ts.map +0 -1
  126. package/src/tokens.d.ts +0 -3
  127. package/src/tokens.d.ts.map +0 -1
  128. package/src/tokens.js +0 -5
  129. package/src/vaultFactory/burn.d.ts +0 -2
  130. package/src/vaultFactory/burn.d.ts.map +0 -1
  131. package/src/vaultFactory/liquidation.d.ts +0 -24
  132. package/src/vaultFactory/liquidation.d.ts.map +0 -1
  133. package/src/vaultFactory/math.d.ts +0 -10
  134. package/src/vaultFactory/math.d.ts.map +0 -1
  135. package/src/vaultFactory/orderedVaultStore.d.ts +0 -94
  136. package/src/vaultFactory/orderedVaultStore.d.ts.map +0 -1
  137. package/src/vaultFactory/params.d.ts +0 -159
  138. package/src/vaultFactory/params.d.ts.map +0 -1
  139. package/src/vaultFactory/prioritizedVaults.d.ts +0 -279
  140. package/src/vaultFactory/prioritizedVaults.d.ts.map +0 -1
  141. package/src/vaultFactory/proceeds.d.ts +0 -34
  142. package/src/vaultFactory/proceeds.d.ts.map +0 -1
  143. package/src/vaultFactory/storeUtils.d.ts +0 -25
  144. package/src/vaultFactory/storeUtils.d.ts.map +0 -1
  145. package/src/vaultFactory/type-imports.d.ts +0 -2
  146. package/src/vaultFactory/type-imports.d.ts.map +0 -1
  147. package/src/vaultFactory/types.d.ts +0 -137
  148. package/src/vaultFactory/types.d.ts.map +0 -1
  149. package/src/vaultFactory/vault.d.ts +0 -529
  150. package/src/vaultFactory/vault.d.ts.map +0 -1
  151. package/src/vaultFactory/vaultDirector.d.ts +0 -560
  152. package/src/vaultFactory/vaultDirector.d.ts.map +0 -1
  153. package/src/vaultFactory/vaultFactory.d.ts +0 -162
  154. package/src/vaultFactory/vaultFactory.d.ts.map +0 -1
  155. package/src/vaultFactory/vaultHolder.d.ts +0 -201
  156. package/src/vaultFactory/vaultHolder.d.ts.map +0 -1
  157. package/src/vaultFactory/vaultKit.d.ts +0 -32
  158. package/src/vaultFactory/vaultKit.d.ts.map +0 -1
  159. package/src/vaultFactory/vaultManager.d.ts +0 -554
  160. package/src/vaultFactory/vaultManager.d.ts.map +0 -1
@@ -1,529 +0,0 @@
1
- export namespace Phase {
2
- let ACTIVE: "active";
3
- let LIQUIDATING: "liquidating";
4
- let CLOSED: "closed";
5
- let LIQUIDATED: "liquidated";
6
- let TRANSFER: "transfer";
7
- }
8
- /**
9
- * @typedef {Phase[keyof typeof Phase]} HolderPhase
10
- *
11
- * @typedef {object} VaultNotification
12
- * @property {Amount<'nat'>} locked Amount of Collateral locked
13
- * @property {{ debt: Amount<'nat'>; interest: Ratio }} debtSnapshot 'debt' at
14
- * the point the compounded interest was 'interest'
15
- * @property {HolderPhase} vaultState
16
- */
17
- /**
18
- * @typedef {object} VaultManager
19
- * @property {() => Subscriber<import('./vaultManager').AssetState>} getAssetSubscriber
20
- * @property {(collateralAmount: Amount) => Amount<'nat'>} maxDebtFor
21
- * @property {() => Brand} getCollateralBrand
22
- * @property {(base: string) => string} scopeDescription
23
- * @property {() => Brand<'nat'>} getDebtBrand
24
- * @property {MintAndTransfer} mintAndTransfer
25
- * @property {(amount: Amount, seat: ZCFSeat) => void} burn
26
- * @property {() => Ratio} getCompoundedInterest
27
- * @property {(
28
- * oldDebt: import('./storeUtils.js').NormalizedDebt,
29
- * oldCollateral: Amount<'nat'>,
30
- * vaultId: VaultId,
31
- * vaultPhase: VaultPhase,
32
- * vault: Vault,
33
- * ) => void} handleBalanceChange
34
- * @property {() => import('./vaultManager.js').GovernedParamGetters} getGovernedParams
35
- */
36
- /**
37
- * @typedef {Readonly<{
38
- * idInManager: VaultId;
39
- * manager: VaultManager;
40
- * storageNode: StorageNode;
41
- * vaultSeat: ZCFSeat;
42
- * }>} ImmutableState
43
- */
44
- /**
45
- * Snapshot is of the debt and compounded interest when the principal was last
46
- * changed.
47
- *
48
- * @typedef {{
49
- * interestSnapshot: Ratio;
50
- * phase: VaultPhase;
51
- * debtSnapshot: Amount<'nat'>;
52
- * outerUpdater:
53
- * | import('@agoric/zoe/src/contractSupport/recorder.js').Recorder<VaultNotification>
54
- * | null;
55
- * }} MutableState
56
- */
57
- export const VaultI: any;
58
- export function prepareVault(baggage: import('@agoric/ertp').Baggage, makeRecorderKit: import('@agoric/zoe/src/contractSupport/recorder.js').MakeRecorderKit, zcf: ZCF): (manager: VaultManager, idInManager: string, storageNode: StorageNode) => {
59
- helper: {
60
- collateralBrand(): Brand<AssetKind>;
61
- debtBrand(): Brand<"nat">;
62
- emptyCollateral(): Amount<"nat">;
63
- emptyDebt(): Amount<"nat">;
64
- /**
65
- * @typedef {{
66
- * give: { Collateral: Amount<'nat'>; Minted: Amount<'nat'> };
67
- * want: { Collateral: Amount<'nat'>; Minted: Amount<'nat'> };
68
- * }} FullProposal
69
- */
70
- /**
71
- * @param {ProposalRecord} partial
72
- * @returns {FullProposal}
73
- */
74
- fullProposal(partial: ProposalRecord): {
75
- give: {
76
- Collateral: Amount<'nat'>;
77
- Minted: Amount<'nat'>;
78
- };
79
- want: {
80
- Collateral: Amount<'nat'>;
81
- Minted: Amount<'nat'>;
82
- };
83
- };
84
- /** @param {VaultPhase} newPhase */
85
- assignPhase(newPhase: VaultPhase): void;
86
- assertActive(): void;
87
- assertCloseable(): void;
88
- /**
89
- * Called whenever the debt is paid or created through a transaction,
90
- * but not for interest accrual.
91
- *
92
- * @param {Amount<'nat'>} newDebt - principal and all accrued interest
93
- */
94
- updateDebtSnapshot(newDebt: Amount<'nat'>): void;
95
- /**
96
- * Update the debt balance and propagate upwards to maintain aggregate
97
- * debt and liquidation order.
98
- *
99
- * @param {NormalizedDebt} oldDebtNormalized - prior principal and all
100
- * accrued interest, normalized to the launch of the vaultManager
101
- * @param {Amount<'nat'>} oldCollateral - actual collateral
102
- * @param {Amount<'nat'>} newDebtActual - actual principal and all
103
- * accrued interest
104
- */
105
- updateDebtAccounting(oldDebtNormalized: NormalizedDebt, oldCollateral: Amount<'nat'>, newDebtActual: Amount<'nat'>): void;
106
- /** @param {ZCFSeat} seat */
107
- getCollateralAllocated(seat: ZCFSeat): Amount<any>;
108
- getMintedAllocated(seat: any): any;
109
- assertVaultHoldsNoMinted(): void;
110
- /**
111
- * @param {Amount<'nat'>} collateralAmount
112
- * @param {Amount<'nat'>} proposedDebt
113
- */
114
- assertSufficientCollateral(collateralAmount: Amount<'nat'>, proposedDebt: Amount<'nat'>): void;
115
- /** @param {HolderPhase} newPhase */
116
- getStateSnapshot(newPhase: HolderPhase): {
117
- debtSnapshot: {
118
- debt: Amount<"nat">;
119
- interest: Ratio;
120
- };
121
- locked: Amount<"nat">;
122
- vaultState: HolderPhase;
123
- };
124
- /** call this whenever anything changes! */
125
- updateUiState(): void;
126
- /** @param {ZCFSeat} seat */
127
- closeHook(seat: ZCFSeat): Promise<string>;
128
- /**
129
- * Calculate the fee, the amount to mint and the resulting debt. The
130
- * give and the want together reflect a delta, where typically one is
131
- * zero because they come from the gave/want of an offer proposal. If
132
- * the `want` is zero, the `fee` will also be zero, so the simple math
133
- * works.
134
- *
135
- * @param {Amount<'nat'>} currentDebt
136
- * @param {Amount<'nat'>} giveAmount
137
- * @param {Amount<'nat'>} wantAmount
138
- */
139
- debtFee(currentDebt: Amount<'nat'>, giveAmount: Amount<'nat'>, wantAmount: Amount<'nat'>): {
140
- newDebt: Amount<"nat">;
141
- toMint: Amount<"nat">;
142
- fee: Amount<"nat">;
143
- surplus: Amount<"nat">;
144
- };
145
- /**
146
- * Adjust principal and collateral (atomically for offer safety)
147
- *
148
- * @param {ZCFSeat} clientSeat
149
- * @returns {string} success message
150
- */
151
- adjustBalancesHook(clientSeat: ZCFSeat): string;
152
- /**
153
- * @param {ZCFSeat} clientSeat
154
- * @param {FullProposal} fp
155
- * @param {ReturnType<typeof calculateDebtCosts>} costs
156
- * @param {object} accounting
157
- * @param {NormalizedDebt} accounting.normalizedDebtPre
158
- * @param {Amount<'nat'>} accounting.collateralPre
159
- * @returns {string} success message
160
- */
161
- commitBalanceAdjustment(clientSeat: ZCFSeat, fp: {
162
- give: {
163
- Collateral: Amount<'nat'>;
164
- Minted: Amount<'nat'>;
165
- };
166
- want: {
167
- Collateral: Amount<'nat'>;
168
- Minted: Amount<'nat'>;
169
- };
170
- }, { newDebt, fee, surplus, toMint }: ReturnType<typeof calculateDebtCosts>, { normalizedDebtPre, collateralPre }: {
171
- normalizedDebtPre: NormalizedDebt;
172
- collateralPre: Amount<'nat'>;
173
- }): string;
174
- /**
175
- * @param {ZCFSeat} seat
176
- * @returns {VaultKit}
177
- */
178
- makeTransferInvitationHook(seat: ZCFSeat): VaultKit;
179
- };
180
- self: {
181
- getVaultSeat(): ZCFSeat;
182
- /**
183
- * @param {ZCFSeat} seat
184
- * @param {StorageNode} storageNode
185
- */
186
- initVaultKit(seat: ZCFSeat, storageNode: StorageNode): Promise<{
187
- publicSubscribers: {
188
- vault: {
189
- description: string;
190
- subscriber: Subscriber<VaultNotification>;
191
- storagePath: Promise<string>;
192
- };
193
- };
194
- invitationMakers: {
195
- AdjustBalances(): Promise<Invitation<R, A>>;
196
- CloseVault(): Promise<Invitation<R, A>>;
197
- TransferVault(): Promise<Invitation<R, A>>;
198
- };
199
- vault: {
200
- getPublicTopics(): {
201
- vault: {
202
- description: string;
203
- subscriber: Subscriber<VaultNotification>;
204
- storagePath: Promise<string>;
205
- };
206
- };
207
- makeAdjustBalancesInvitation(): Promise<Invitation<R, A>>;
208
- makeCloseInvitation(): Promise<Invitation<R, A>>;
209
- makeTransferInvitation(): Promise<Invitation<R, A>>;
210
- getCollateralAmount(): Amount<"nat">;
211
- getCurrentDebt(): Amount<"nat">;
212
- getNormalizedDebt(): import("./storeUtils.js").NormalizedDebt;
213
- };
214
- vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
215
- }>;
216
- /** Called by manager at start of liquidation. */
217
- liquidating(): void;
218
- /**
219
- * Called by manager at end of liquidation, at which point all debts
220
- * have been covered.
221
- */
222
- liquidated(): void;
223
- /**
224
- * Called by vaultManager when the auction wasn't able to sell the
225
- * collateral. The liquidation fee was charged against the collateral,
226
- * but the debt will be restored and the vault will be active again.
227
- * Liquidation.md has details on the liquidation approach.
228
- */
229
- abortLiquidation(): string;
230
- makeAdjustBalancesInvitation(): Promise<Invitation<R, A>>;
231
- makeCloseInvitation(): Promise<Invitation<R, A>>;
232
- /** @returns {Promise<Invitation>} */
233
- makeTransferInvitation(): Promise<Invitation>;
234
- /** @returns {Amount<'nat'>} */
235
- getCollateralAmount(): Amount<'nat'>;
236
- /**
237
- * The actual current debt, including accrued interest.
238
- *
239
- * This looks like a simple getter but it does a lot of the heavy
240
- * lifting for interest accrual. Rather than updating all records when
241
- * interest accrues, the vault manager updates just its rolling
242
- * compounded interest. Here we calculate what the current debt is given
243
- * what's recorded in this vault and what interest has compounded since
244
- * this vault record was written.
245
- *
246
- * @returns {Amount<'nat'>}
247
- * @see getNormalizedDebt
248
- */
249
- getCurrentDebt(): Amount<'nat'>;
250
- /**
251
- * The normalization puts all debts on a common time-independent scale
252
- * since the launch of this vault manager. This allows the manager to
253
- * order vaults by their debt-to-collateral ratios without having to
254
- * mutate the debts as the interest accrues.
255
- *
256
- * @returns {import('./storeUtils.js').NormalizedDebt} as if the vault
257
- * was open at the launch of this manager, before any interest
258
- * accrued
259
- * @see getActualDebAmount
260
- */
261
- getNormalizedDebt(): import('./storeUtils.js').NormalizedDebt;
262
- };
263
- } & import("@endo/eventual-send").RemotableBrand<{}, {
264
- helper: {
265
- collateralBrand(): Brand<AssetKind>;
266
- debtBrand(): Brand<"nat">;
267
- emptyCollateral(): Amount<"nat">;
268
- emptyDebt(): Amount<"nat">;
269
- /**
270
- * @typedef {{
271
- * give: { Collateral: Amount<'nat'>; Minted: Amount<'nat'> };
272
- * want: { Collateral: Amount<'nat'>; Minted: Amount<'nat'> };
273
- * }} FullProposal
274
- */
275
- /**
276
- * @param {ProposalRecord} partial
277
- * @returns {FullProposal}
278
- */
279
- fullProposal(partial: ProposalRecord): {
280
- give: {
281
- Collateral: Amount<'nat'>;
282
- Minted: Amount<'nat'>;
283
- };
284
- want: {
285
- Collateral: Amount<'nat'>;
286
- Minted: Amount<'nat'>;
287
- };
288
- };
289
- /** @param {VaultPhase} newPhase */
290
- assignPhase(newPhase: VaultPhase): void;
291
- assertActive(): void;
292
- assertCloseable(): void;
293
- /**
294
- * Called whenever the debt is paid or created through a transaction,
295
- * but not for interest accrual.
296
- *
297
- * @param {Amount<'nat'>} newDebt - principal and all accrued interest
298
- */
299
- updateDebtSnapshot(newDebt: Amount<'nat'>): void;
300
- /**
301
- * Update the debt balance and propagate upwards to maintain aggregate
302
- * debt and liquidation order.
303
- *
304
- * @param {NormalizedDebt} oldDebtNormalized - prior principal and all
305
- * accrued interest, normalized to the launch of the vaultManager
306
- * @param {Amount<'nat'>} oldCollateral - actual collateral
307
- * @param {Amount<'nat'>} newDebtActual - actual principal and all
308
- * accrued interest
309
- */
310
- updateDebtAccounting(oldDebtNormalized: NormalizedDebt, oldCollateral: Amount<'nat'>, newDebtActual: Amount<'nat'>): void;
311
- /** @param {ZCFSeat} seat */
312
- getCollateralAllocated(seat: ZCFSeat): Amount<any>;
313
- getMintedAllocated(seat: any): any;
314
- assertVaultHoldsNoMinted(): void;
315
- /**
316
- * @param {Amount<'nat'>} collateralAmount
317
- * @param {Amount<'nat'>} proposedDebt
318
- */
319
- assertSufficientCollateral(collateralAmount: Amount<'nat'>, proposedDebt: Amount<'nat'>): void;
320
- /** @param {HolderPhase} newPhase */
321
- getStateSnapshot(newPhase: HolderPhase): {
322
- debtSnapshot: {
323
- debt: Amount<"nat">;
324
- interest: Ratio;
325
- };
326
- locked: Amount<"nat">;
327
- vaultState: HolderPhase;
328
- };
329
- /** call this whenever anything changes! */
330
- updateUiState(): void;
331
- /** @param {ZCFSeat} seat */
332
- closeHook(seat: ZCFSeat): Promise<string>;
333
- /**
334
- * Calculate the fee, the amount to mint and the resulting debt. The
335
- * give and the want together reflect a delta, where typically one is
336
- * zero because they come from the gave/want of an offer proposal. If
337
- * the `want` is zero, the `fee` will also be zero, so the simple math
338
- * works.
339
- *
340
- * @param {Amount<'nat'>} currentDebt
341
- * @param {Amount<'nat'>} giveAmount
342
- * @param {Amount<'nat'>} wantAmount
343
- */
344
- debtFee(currentDebt: Amount<'nat'>, giveAmount: Amount<'nat'>, wantAmount: Amount<'nat'>): {
345
- newDebt: Amount<"nat">;
346
- toMint: Amount<"nat">;
347
- fee: Amount<"nat">;
348
- surplus: Amount<"nat">;
349
- };
350
- /**
351
- * Adjust principal and collateral (atomically for offer safety)
352
- *
353
- * @param {ZCFSeat} clientSeat
354
- * @returns {string} success message
355
- */
356
- adjustBalancesHook(clientSeat: ZCFSeat): string;
357
- /**
358
- * @param {ZCFSeat} clientSeat
359
- * @param {FullProposal} fp
360
- * @param {ReturnType<typeof calculateDebtCosts>} costs
361
- * @param {object} accounting
362
- * @param {NormalizedDebt} accounting.normalizedDebtPre
363
- * @param {Amount<'nat'>} accounting.collateralPre
364
- * @returns {string} success message
365
- */
366
- commitBalanceAdjustment(clientSeat: ZCFSeat, fp: {
367
- give: {
368
- Collateral: Amount<'nat'>;
369
- Minted: Amount<'nat'>;
370
- };
371
- want: {
372
- Collateral: Amount<'nat'>;
373
- Minted: Amount<'nat'>;
374
- };
375
- }, { newDebt, fee, surplus, toMint }: ReturnType<typeof calculateDebtCosts>, { normalizedDebtPre, collateralPre }: {
376
- normalizedDebtPre: NormalizedDebt;
377
- collateralPre: Amount<'nat'>;
378
- }): string;
379
- /**
380
- * @param {ZCFSeat} seat
381
- * @returns {VaultKit}
382
- */
383
- makeTransferInvitationHook(seat: ZCFSeat): VaultKit;
384
- };
385
- self: {
386
- getVaultSeat(): ZCFSeat;
387
- /**
388
- * @param {ZCFSeat} seat
389
- * @param {StorageNode} storageNode
390
- */
391
- initVaultKit(seat: ZCFSeat, storageNode: StorageNode): Promise<{
392
- publicSubscribers: {
393
- vault: {
394
- description: string;
395
- subscriber: Subscriber<VaultNotification>;
396
- storagePath: Promise<string>;
397
- };
398
- };
399
- invitationMakers: {
400
- AdjustBalances(): Promise<Invitation<R, A>>;
401
- CloseVault(): Promise<Invitation<R, A>>;
402
- TransferVault(): Promise<Invitation<R, A>>;
403
- };
404
- vault: {
405
- getPublicTopics(): {
406
- vault: {
407
- description: string;
408
- subscriber: Subscriber<VaultNotification>;
409
- storagePath: Promise<string>;
410
- };
411
- };
412
- makeAdjustBalancesInvitation(): Promise<Invitation<R, A>>;
413
- makeCloseInvitation(): Promise<Invitation<R, A>>;
414
- makeTransferInvitation(): Promise<Invitation<R, A>>;
415
- getCollateralAmount(): Amount<"nat">;
416
- getCurrentDebt(): Amount<"nat">;
417
- getNormalizedDebt(): import("./storeUtils.js").NormalizedDebt;
418
- };
419
- vaultUpdater: import("@agoric/zoe/src/contractSupport/recorder.js").Recorder<VaultNotification>;
420
- }>;
421
- /** Called by manager at start of liquidation. */
422
- liquidating(): void;
423
- /**
424
- * Called by manager at end of liquidation, at which point all debts
425
- * have been covered.
426
- */
427
- liquidated(): void;
428
- /**
429
- * Called by vaultManager when the auction wasn't able to sell the
430
- * collateral. The liquidation fee was charged against the collateral,
431
- * but the debt will be restored and the vault will be active again.
432
- * Liquidation.md has details on the liquidation approach.
433
- */
434
- abortLiquidation(): string;
435
- makeAdjustBalancesInvitation(): Promise<Invitation<R, A>>;
436
- makeCloseInvitation(): Promise<Invitation<R, A>>;
437
- /** @returns {Promise<Invitation>} */
438
- makeTransferInvitation(): Promise<Invitation>;
439
- /** @returns {Amount<'nat'>} */
440
- getCollateralAmount(): Amount<'nat'>;
441
- /**
442
- * The actual current debt, including accrued interest.
443
- *
444
- * This looks like a simple getter but it does a lot of the heavy
445
- * lifting for interest accrual. Rather than updating all records when
446
- * interest accrues, the vault manager updates just its rolling
447
- * compounded interest. Here we calculate what the current debt is given
448
- * what's recorded in this vault and what interest has compounded since
449
- * this vault record was written.
450
- *
451
- * @returns {Amount<'nat'>}
452
- * @see getNormalizedDebt
453
- */
454
- getCurrentDebt(): Amount<'nat'>;
455
- /**
456
- * The normalization puts all debts on a common time-independent scale
457
- * since the launch of this vault manager. This allows the manager to
458
- * order vaults by their debt-to-collateral ratios without having to
459
- * mutate the debts as the interest accrues.
460
- *
461
- * @returns {import('./storeUtils.js').NormalizedDebt} as if the vault
462
- * was open at the launch of this manager, before any interest
463
- * accrued
464
- * @see getActualDebAmount
465
- */
466
- getNormalizedDebt(): import('./storeUtils.js').NormalizedDebt;
467
- };
468
- }>;
469
- export type NormalizedDebt = import('./storeUtils.js').NormalizedDebt;
470
- export type VaultPhase = {
471
- readonly ACTIVE: "active";
472
- readonly LIQUIDATING: "liquidating";
473
- readonly CLOSED: "closed";
474
- readonly LIQUIDATED: "liquidated";
475
- readonly TRANSFER: "transfer";
476
- }[keyof Omit<typeof Phase, 'TRANSFER'>];
477
- export type HolderPhase = {
478
- readonly ACTIVE: "active";
479
- readonly LIQUIDATING: "liquidating";
480
- readonly CLOSED: "closed";
481
- readonly LIQUIDATED: "liquidated";
482
- readonly TRANSFER: "transfer";
483
- }[keyof typeof Phase];
484
- export type VaultNotification = {
485
- /**
486
- * Amount of Collateral locked
487
- */
488
- locked: Amount<'nat'>;
489
- /**
490
- * 'debt' at
491
- * the point the compounded interest was 'interest'
492
- */
493
- debtSnapshot: {
494
- debt: Amount<'nat'>;
495
- interest: Ratio;
496
- };
497
- vaultState: HolderPhase;
498
- };
499
- export type VaultManager = {
500
- getAssetSubscriber: () => Subscriber<import('./vaultManager').AssetState>;
501
- maxDebtFor: (collateralAmount: Amount) => Amount<'nat'>;
502
- getCollateralBrand: () => Brand;
503
- scopeDescription: (base: string) => string;
504
- getDebtBrand: () => Brand<'nat'>;
505
- mintAndTransfer: MintAndTransfer;
506
- burn: (amount: Amount, seat: ZCFSeat) => void;
507
- getCompoundedInterest: () => Ratio;
508
- handleBalanceChange: (oldDebt: import('./storeUtils.js').NormalizedDebt, oldCollateral: Amount<'nat'>, vaultId: VaultId, vaultPhase: VaultPhase, vault: Vault) => void;
509
- getGovernedParams: () => import('./vaultManager.js').GovernedParamGetters;
510
- };
511
- export type ImmutableState = Readonly<{
512
- idInManager: VaultId;
513
- manager: VaultManager;
514
- storageNode: StorageNode;
515
- vaultSeat: ZCFSeat;
516
- }>;
517
- /**
518
- * Snapshot is of the debt and compounded interest when the principal was last
519
- * changed.
520
- */
521
- export type MutableState = {
522
- interestSnapshot: Ratio;
523
- phase: VaultPhase;
524
- debtSnapshot: Amount<'nat'>;
525
- outerUpdater: import('@agoric/zoe/src/contractSupport/recorder.js').Recorder<VaultNotification> | null;
526
- };
527
- export type Vault = ReturnType<ReturnType<typeof prepareVault>>['self'];
528
- import { calculateDebtCosts } from './math.js';
529
- //# sourceMappingURL=vault.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vault.d.ts","sourceRoot":"","sources":["vault.js"],"names":[],"mappings":"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"}