@agoric/inter-protocol 0.16.2-dev-5dc325b.0 → 0.16.2-getting-started-dev-d127d1d.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 (162) hide show
  1. package/CHANGELOG.md +1057 -0
  2. package/package.json +30 -37
  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 +39 -47
  17. package/src/auction/sortedOffers.js +7 -8
  18. package/src/auction/util.js +4 -4
  19. package/src/clientSupport.js +96 -154
  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/README.md +0 -13
  25. package/src/price/fluxAggregatorContract.js +53 -59
  26. package/src/price/fluxAggregatorKit.js +33 -48
  27. package/src/price/priceOracleKit.js +13 -11
  28. package/src/price/roundsManager.js +64 -52
  29. package/src/proposals/addAssetToVault.js +36 -170
  30. package/src/proposals/committee-proposal.js +27 -21
  31. package/src/proposals/core-proposal.js +7 -7
  32. package/src/proposals/econ-behaviors.js +32 -57
  33. package/src/proposals/price-feed-proposal.js +36 -71
  34. package/src/proposals/startEconCommittee.js +1 -1
  35. package/src/proposals/startPSM.js +22 -32
  36. package/src/proposals/utils.js +7 -32
  37. package/src/psm/psm.js +63 -69
  38. package/src/reserve/assetReserve.js +18 -27
  39. package/src/reserve/assetReserveKit.js +22 -14
  40. package/src/typeGuards.js +13 -0
  41. package/src/vaultFactory/liquidation.js +17 -30
  42. package/src/vaultFactory/math.js +9 -8
  43. package/src/vaultFactory/orderedVaultStore.js +9 -6
  44. package/src/vaultFactory/params.js +19 -25
  45. package/src/vaultFactory/prioritizedVaults.js +2 -2
  46. package/src/vaultFactory/proceeds.js +18 -24
  47. package/src/vaultFactory/storeUtils.js +12 -8
  48. package/src/vaultFactory/type-imports.js +1 -1
  49. package/src/vaultFactory/types.js +28 -38
  50. package/src/vaultFactory/vault.js +89 -88
  51. package/src/vaultFactory/vaultDirector.js +44 -35
  52. package/src/vaultFactory/vaultFactory.js +26 -33
  53. package/src/vaultFactory/vaultHolder.js +13 -8
  54. package/src/vaultFactory/vaultKit.js +2 -3
  55. package/src/vaultFactory/vaultManager.js +120 -138
  56. package/src/auction/auctionBook.d.ts +0 -83
  57. package/src/auction/auctionBook.d.ts.map +0 -1
  58. package/src/auction/auctioneer.d.ts +0 -75
  59. package/src/auction/auctioneer.d.ts.map +0 -1
  60. package/src/auction/offerBook.d.ts +0 -72
  61. package/src/auction/offerBook.d.ts.map +0 -1
  62. package/src/auction/params.d.ts +0 -142
  63. package/src/auction/params.d.ts.map +0 -1
  64. package/src/auction/scheduleMath.d.ts +0 -4
  65. package/src/auction/scheduleMath.d.ts.map +0 -1
  66. package/src/auction/scheduler.d.ts +0 -49
  67. package/src/auction/scheduler.d.ts.map +0 -1
  68. package/src/auction/sortedOffers.d.ts +0 -8
  69. package/src/auction/sortedOffers.d.ts.map +0 -1
  70. package/src/auction/util.d.ts +0 -30
  71. package/src/auction/util.d.ts.map +0 -1
  72. package/src/clientSupport.d.ts +0 -167
  73. package/src/clientSupport.d.ts.map +0 -1
  74. package/src/collectFees.d.ts +0 -2
  75. package/src/collectFees.d.ts.map +0 -1
  76. package/src/contractSupport.d.ts +0 -33
  77. package/src/contractSupport.d.ts.map +0 -1
  78. package/src/econCommitteeCharter.d.ts +0 -41
  79. package/src/econCommitteeCharter.d.ts.map +0 -1
  80. package/src/feeDistributor.d.ts +0 -212
  81. package/src/feeDistributor.d.ts.map +0 -1
  82. package/src/index.d.ts +0 -2
  83. package/src/index.d.ts.map +0 -1
  84. package/src/interest-math.d.ts +0 -3
  85. package/src/interest-math.d.ts.map +0 -1
  86. package/src/interest.d.ts +0 -29
  87. package/src/interest.d.ts.map +0 -1
  88. package/src/price/fluxAggregatorContract.d.ts +0 -112
  89. package/src/price/fluxAggregatorContract.d.ts.map +0 -1
  90. package/src/price/fluxAggregatorKit.d.ts +0 -155
  91. package/src/price/fluxAggregatorKit.d.ts.map +0 -1
  92. package/src/price/priceOracleKit.d.ts +0 -52
  93. package/src/price/priceOracleKit.d.ts.map +0 -1
  94. package/src/price/roundsManager.d.ts +0 -330
  95. package/src/price/roundsManager.d.ts.map +0 -1
  96. package/src/proposals/addAssetToVault.d.ts +0 -160
  97. package/src/proposals/addAssetToVault.d.ts.map +0 -1
  98. package/src/proposals/committee-proposal.d.ts +0 -113
  99. package/src/proposals/committee-proposal.d.ts.map +0 -1
  100. package/src/proposals/core-proposal.d.ts +0 -149
  101. package/src/proposals/core-proposal.d.ts.map +0 -1
  102. package/src/proposals/econ-behaviors.d.ts +0 -201
  103. package/src/proposals/econ-behaviors.d.ts.map +0 -1
  104. package/src/proposals/price-feed-proposal.d.ts +0 -82
  105. package/src/proposals/price-feed-proposal.d.ts.map +0 -1
  106. package/src/proposals/startEconCommittee.d.ts +0 -34
  107. package/src/proposals/startEconCommittee.d.ts.map +0 -1
  108. package/src/proposals/startPSM.d.ts +0 -61
  109. package/src/proposals/startPSM.d.ts.map +0 -1
  110. package/src/proposals/utils.d.ts +0 -17
  111. package/src/proposals/utils.d.ts.map +0 -1
  112. package/src/provisionPool.d.ts +0 -165
  113. package/src/provisionPool.d.ts.map +0 -1
  114. package/src/provisionPool.js +0 -119
  115. package/src/provisionPoolKit.d.ts +0 -379
  116. package/src/provisionPoolKit.d.ts.map +0 -1
  117. package/src/provisionPoolKit.js +0 -461
  118. package/src/psm/psm.d.ts +0 -178
  119. package/src/psm/psm.d.ts.map +0 -1
  120. package/src/psm/types.d.ts +0 -2
  121. package/src/psm/types.d.ts.map +0 -1
  122. package/src/reserve/assetReserve.d.ts +0 -44
  123. package/src/reserve/assetReserve.d.ts.map +0 -1
  124. package/src/reserve/assetReserveKit.d.ts +0 -114
  125. package/src/reserve/assetReserveKit.d.ts.map +0 -1
  126. package/src/reserve/params.d.ts +0 -10
  127. package/src/reserve/params.d.ts.map +0 -1
  128. package/src/tokens.d.ts +0 -3
  129. package/src/tokens.d.ts.map +0 -1
  130. package/src/tokens.js +0 -5
  131. package/src/vaultFactory/burn.d.ts +0 -2
  132. package/src/vaultFactory/burn.d.ts.map +0 -1
  133. package/src/vaultFactory/liquidation.d.ts +0 -24
  134. package/src/vaultFactory/liquidation.d.ts.map +0 -1
  135. package/src/vaultFactory/math.d.ts +0 -10
  136. package/src/vaultFactory/math.d.ts.map +0 -1
  137. package/src/vaultFactory/orderedVaultStore.d.ts +0 -94
  138. package/src/vaultFactory/orderedVaultStore.d.ts.map +0 -1
  139. package/src/vaultFactory/params.d.ts +0 -159
  140. package/src/vaultFactory/params.d.ts.map +0 -1
  141. package/src/vaultFactory/prioritizedVaults.d.ts +0 -279
  142. package/src/vaultFactory/prioritizedVaults.d.ts.map +0 -1
  143. package/src/vaultFactory/proceeds.d.ts +0 -34
  144. package/src/vaultFactory/proceeds.d.ts.map +0 -1
  145. package/src/vaultFactory/storeUtils.d.ts +0 -25
  146. package/src/vaultFactory/storeUtils.d.ts.map +0 -1
  147. package/src/vaultFactory/type-imports.d.ts +0 -2
  148. package/src/vaultFactory/type-imports.d.ts.map +0 -1
  149. package/src/vaultFactory/types.d.ts +0 -137
  150. package/src/vaultFactory/types.d.ts.map +0 -1
  151. package/src/vaultFactory/vault.d.ts +0 -529
  152. package/src/vaultFactory/vault.d.ts.map +0 -1
  153. package/src/vaultFactory/vaultDirector.d.ts +0 -560
  154. package/src/vaultFactory/vaultDirector.d.ts.map +0 -1
  155. package/src/vaultFactory/vaultFactory.d.ts +0 -162
  156. package/src/vaultFactory/vaultFactory.d.ts.map +0 -1
  157. package/src/vaultFactory/vaultHolder.d.ts +0 -201
  158. package/src/vaultFactory/vaultHolder.d.ts.map +0 -1
  159. package/src/vaultFactory/vaultKit.d.ts +0 -32
  160. package/src/vaultFactory/vaultKit.d.ts.map +0 -1
  161. package/src/vaultFactory/vaultManager.d.ts +0 -554
  162. package/src/vaultFactory/vaultManager.d.ts.map +0 -1
@@ -1,6 +1,6 @@
1
1
  // @jessie-check
2
2
 
3
- /// <reference path="./types.js" />
3
+ import './types.js';
4
4
 
5
5
  import {
6
6
  CONTRACT_ELECTORATE,
@@ -75,11 +75,7 @@ const makeVaultDirectorParams = (
75
75
  };
76
76
  harden(makeVaultDirectorParams);
77
77
 
78
- /**
79
- * @typedef {import('@agoric/governance/src/contractGovernance/typedParamManager').ParamTypesMapFromRecord<
80
- * ReturnType<typeof makeVaultDirectorParams>
81
- * >} VaultDirectorParams
82
- */
78
+ /** @typedef {import('@agoric/governance/src/contractGovernance/typedParamManager').ParamTypesMapFromRecord<ReturnType<typeof makeVaultDirectorParams>>} VaultDirectorParams */
83
79
 
84
80
  /** @type {(liquidationMargin: Ratio) => Ratio} */
85
81
  const zeroRatio = liquidationMargin =>
@@ -126,16 +122,16 @@ export const vaultParamPattern = M.splitRecord(
126
122
 
127
123
  /**
128
124
  * @param {{
129
- * auctioneerPublicFacet: ERef<AuctioneerPublicFacet>;
130
- * electorateInvitationAmount: Amount<'set'>;
131
- * minInitialDebt: Amount<'nat'>;
132
- * bootstrapPaymentValue: bigint;
133
- * priceAuthority: ERef<PriceAuthority>;
134
- * timer: ERef<import('@agoric/time/src/types').TimerService>;
135
- * reservePublicFacet: AssetReservePublicFacet;
136
- * interestTiming: InterestTiming;
137
- * shortfallInvitationAmount: Amount<'set'>;
138
- * referencedUi?: string;
125
+ * auctioneerPublicFacet: ERef<AuctioneerPublicFacet>,
126
+ * electorateInvitationAmount: Amount<'set'>,
127
+ * minInitialDebt: Amount<'nat'>,
128
+ * bootstrapPaymentValue: bigint,
129
+ * priceAuthority: ERef<PriceAuthority>,
130
+ * timer: ERef<import('@agoric/time/src/types').TimerService>,
131
+ * reservePublicFacet: AssetReservePublicFacet,
132
+ * interestTiming: InterestTiming,
133
+ * shortfallInvitationAmount: Amount<'set'>,
134
+ * referencedUi?: string,
139
135
  * }} opts
140
136
  */
141
137
  export const makeGovernedTerms = ({
@@ -167,8 +163,8 @@ export const makeGovernedTerms = ({
167
163
  };
168
164
  harden(makeGovernedTerms);
169
165
  /**
170
- * Stop-gap which restores initial param values UNTIL
171
- * https://github.com/Agoric/agoric-sdk/issues/5200
166
+ * Stop-gap which restores initial param values
167
+ * UNTIL https://github.com/Agoric/agoric-sdk/issues/5200
172
168
  *
173
169
  * NB: changes from initial values will be lost upon restart
174
170
  *
@@ -180,12 +176,7 @@ export const provideVaultParamManagers = (baggage, marshaller) => {
180
176
  const managers = makeScalarMapStore();
181
177
 
182
178
  // the managers aren't durable but their arguments are
183
- /**
184
- * @type {MapStore<
185
- * Brand,
186
- * { storageNode: StorageNode; initialParamValues: VaultManagerParamValues }
187
- * >}
188
- */
179
+ /** @type {MapStore<Brand, {storageNode: StorageNode, initialParamValues: VaultManagerParamValues}>} */
189
180
  const managerArgs = provideDurableMapStore(
190
181
  baggage,
191
182
  'vault param manager parts',
@@ -205,6 +196,7 @@ export const provideVaultParamManagers = (baggage, marshaller) => {
205
196
 
206
197
  return {
207
198
  /**
199
+ *
208
200
  * @param {Brand} brand
209
201
  * @param {StorageNode} storageNode
210
202
  * @param {VaultManagerParamValues} initialParamValues
@@ -214,7 +206,9 @@ export const provideVaultParamManagers = (baggage, marshaller) => {
214
206
  managerArgs.init(brand, args);
215
207
  return makeManager(brand, args);
216
208
  },
217
- /** @param {Brand} brand */
209
+ /**
210
+ * @param {Brand} brand
211
+ */
218
212
  get(brand) {
219
213
  return managers.get(brand);
220
214
  },
@@ -47,8 +47,8 @@ export const currentDebtToCollateral = vault =>
47
47
  * Vaults, ordered by their debt ratio so that all the vaults below a threshold
48
48
  * can be quickly found and liquidated.
49
49
  *
50
- * @param {MapStore<string, Vault>} store vault has a higher debt ratio than the
51
- * previous highest
50
+ * @param {MapStore<string, Vault>} store
51
+ * vault has a higher debt ratio than the previous highest
52
52
  */
53
53
  export const makePrioritizedVaults = store => {
54
54
  const vaults = makeOrderedVaultStore(store);
@@ -11,32 +11,27 @@ import { liquidationResults } from './liquidation.js';
11
11
 
12
12
  /**
13
13
  * @typedef {{
14
- * overage: Amount<'nat'>;
15
- * shortfallToReserve: Amount<'nat'>;
16
- * collateralForReserve: Amount<'nat'>;
17
- * actualCollateralSold: Amount<'nat'>;
18
- * collateralSold: Amount<'nat'>;
19
- * collatRemaining: Amount<'nat'>;
20
- * debtToBurn: Amount<'nat'>;
21
- * mintedForReserve: Amount<'nat'>;
22
- * mintedProceeds: Amount<'nat'>;
23
- * phantomDebt: Amount<'nat'>;
24
- * totalPenalty: Amount<'nat'>;
25
- * transfersToVault: [number, AmountKeywordRecord][];
26
- * vaultsToReinstate: number[];
14
+ * overage: Amount<'nat'>,
15
+ * shortfallToReserve: Amount<'nat'>,
16
+ * collateralForReserve: Amount<'nat'>,
17
+ * actualCollateralSold: Amount<'nat'>,
18
+ * collateralSold: Amount<'nat'>,
19
+ * collatRemaining: Amount<'nat'>,
20
+ * debtToBurn: Amount<'nat'>,
21
+ * mintedForReserve: Amount<'nat'>,
22
+ * mintedProceeds: Amount<'nat'>,
23
+ * phantomDebt: Amount<'nat'>,
24
+ * totalPenalty: Amount<'nat'>,
25
+ * transfersToVault: Array<[number, AmountKeywordRecord]>,
26
+ * vaultsToReinstate: Array<number>
27
27
  * }} DistributionPlan
28
- * The plan to execute for distributing proceeds of a liquidation.
29
28
  *
30
- * Vaults are referenced by index in the list sent to the calculator.
29
+ * The plan to execute for distributing proceeds of a liquidation.
30
+ *
31
+ * Vaults are referenced by index in the list sent to the calculator.
31
32
  */
32
33
 
33
- /**
34
- * @typedef {{
35
- * collateral: Amount<'nat'>;
36
- * presaleDebt: Amount<'nat'>;
37
- * currentDebt: Amount<'nat'>;
38
- * }} VaultBalances
39
- */
34
+ /** @typedef {{ collateral: Amount<'nat'>, presaleDebt: Amount<'nat'>, currentDebt: Amount<'nat'> }} VaultBalances */
40
35
 
41
36
  /**
42
37
  * Liquidation.md describes how to process liquidation proceeds.
@@ -51,8 +46,7 @@ import { liquidationResults } from './liquidation.js';
51
46
  * @param {Amount<'nat'>} inputs.totalDebt
52
47
  * @param {Amount<'nat'>} inputs.totalCollateral
53
48
  * @param {PriceDescription} inputs.oraclePriceAtStart
54
- * @param {VaultBalances[]} inputs.vaultsBalances ordered best to worst
55
- * collateralized
49
+ * @param {Array<VaultBalances>} inputs.vaultsBalances ordered best to worst collateralized
56
50
  * @param {Ratio} inputs.penaltyRate
57
51
  * @returns {DistributionPlan}
58
52
  */
@@ -19,9 +19,13 @@ const { multiply } = natSafeMath;
19
19
 
20
20
  const trace = makeTracer('Store', true);
21
21
 
22
- /** @typedef {import('@endo/marshal').PureData} PureData */
22
+ /**
23
+ * @typedef {import('@endo/marshal').PureData} PureData
24
+ */
23
25
 
24
- /** @typedef {[normalizedCollateralization: number, vaultId: VaultId]} CompositeKey */
26
+ /**
27
+ * @typedef {[normalizedCollateralization: number, vaultId: VaultId]} CompositeKey
28
+ */
25
29
 
26
30
  // `makeEncodePassable` has three named options:
27
31
  // `encodeRemotable`, `encodeError`, and `encodePromise`.
@@ -65,12 +69,12 @@ const decodeNumber = encoded => {
65
69
  };
66
70
 
67
71
  // Type annotations to support static testing of amount values
68
- /** @typedef {Amount<'nat'> & { normalized: true }} NormalizedDebt */
69
- /** @typedef {Amount<'nat'> & { normalized: false }} ActualDebt */
72
+ /** @typedef {Amount<'nat'> & {normalized: true}} NormalizedDebt */
73
+ /** @typedef {Amount<'nat'> & {normalized: false}} ActualDebt */
70
74
 
71
75
  /**
72
- * Overcollateralized are greater than one. The more undercollaterized the
73
- * smaller in [0-1].
76
+ * Overcollateralized are greater than one.
77
+ * The more undercollaterized the smaller in [0-1].
74
78
  *
75
79
  * @param {NormalizedDebt} normalizedDebt normalized (not actual) total debt
76
80
  * @param {Amount<'nat'>} collateral
@@ -91,7 +95,7 @@ const collateralizationRatio = (normalizedDebt, collateral) => {
91
95
  * @param {Amount<'nat'>} collateral
92
96
  * @param {VaultId} vaultId
93
97
  * @returns {string} lexically sortable string in which highest
94
- * debt-to-collateral is earliest
98
+ * debt-to-collateral is earliest
95
99
  */
96
100
  export const toVaultKey = (normalizedDebt, collateral, vaultId) => {
97
101
  assert(normalizedDebt);
@@ -158,7 +162,7 @@ harden(normalizedCollRatio);
158
162
  * @param {Ratio} compoundedInterest
159
163
  * @param {Ratio} margin
160
164
  * @returns {string} lexically sortable string in which highest
161
- * debt-to-collateral is earliest
165
+ * debt-to-collateral is earliest
162
166
  */
163
167
  export const normalizedCollRatioKey = (quote, compoundedInterest, margin) => {
164
168
  const collRatio = normalizedCollRatio(quote, compoundedInterest, margin);
@@ -1,4 +1,4 @@
1
1
  // @jessie-check
2
2
 
3
3
  import '@agoric/zoe/exported.js';
4
- /// <reference path="./types.js" />
4
+ import './types.js';
@@ -2,30 +2,21 @@
2
2
 
3
3
  /**
4
4
  * @typedef {import('./vault').VaultNotification} VaultNotification
5
- *
6
5
  * @typedef {import('./vault').Vault} Vault
7
- *
8
6
  * @typedef {import('./vaultKit').VaultKit} VaultKit
9
- *
10
7
  * @typedef {import('./vaultManager').VaultManager} VaultManager
11
- *
12
8
  * @typedef {import('./vaultManager').CollateralManager} CollateralManager
13
- *
14
9
  * @typedef {import('../reserve/assetReserve.js').AssetReserveLimitedCreatorFacet} AssetReserveCreatorFacet
15
- *
16
10
  * @typedef {import('../reserve/assetReserve.js').AssetReservePublicFacet} AssetReservePublicFacet
17
- *
18
11
  * @typedef {import('../auction/auctioneer.js').AuctioneerPublicFacet} AuctioneerPublicFacet
19
- *
20
12
  * @typedef {import('./vaultFactory.js').VaultFactoryContract['publicFacet']} VaultFactoryPublicFacet
21
13
  *
22
14
  * @typedef {import('@agoric/time/src/types').Timestamp} Timestamp
23
- *
24
15
  * @typedef {import('@agoric/time/src/types').RelativeTime} RelativeTime
25
16
  */
26
17
 
27
18
  /**
28
- * @typedef {object} AutoswapLocal
19
+ * @typedef {object} AutoswapLocal
29
20
  * @property {(amount: Amount, brand: Brand) => Amount} getInputPrice
30
21
  * @property {() => Invitation} makeSwapInvitation
31
22
  */
@@ -33,16 +24,13 @@
33
24
  /**
34
25
  * @typedef {object} VaultManagerParamValues
35
26
  * @property {Ratio} liquidationMargin - margin below which collateral will be
36
- * liquidated to satisfy the debt.
37
- * @property {Ratio} liquidationPenalty - penalty charged upon liquidation as
38
- * proportion of debt
39
- * @property {Ratio} interestRate - annual interest rate charged on debt
40
- * positions
41
- * @property {Ratio} mintFee - The fee (in BasisPoints) charged when creating or
42
- * increasing a debt position.
27
+ * liquidated to satisfy the debt.
28
+ * @property {Ratio} liquidationPenalty - penalty charged upon liquidation as proportion of debt
29
+ * @property {Ratio} interestRate - annual interest rate charged on debt positions
30
+ * @property {Ratio} mintFee - The fee (in BasisPoints) charged when creating
31
+ * or increasing a debt position.
43
32
  * @property {Amount<'nat'>} debtLimit
44
- * @property {Ratio} [liquidationPadding] - vault must maintain this in order to
45
- * remove collateral or add debt
33
+ * @property {Ratio} [liquidationPadding] - vault must maintain this in order to remove collateral or add debt
46
34
  */
47
35
 
48
36
  /**
@@ -54,7 +42,7 @@
54
42
  */
55
43
 
56
44
  /**
57
- * @typedef {object} VaultFactoryCreatorFacet
45
+ * @typedef {object} VaultFactoryCreatorFacet
58
46
  * @property {AddVaultType} addVaultType
59
47
  * @property {() => Allocation} getRewardAllocation
60
48
  * @property {() => Promise<Invitation<string, never>>} makeCollectFeesInvitation
@@ -63,20 +51,23 @@
63
51
  */
64
52
 
65
53
  /**
66
- * @callback MintAndTransfer Mint new debt `toMint` and transfer the `fee`
67
- * portion to the vaultFactory's reward pool. Then reallocate over all the
68
- * seat arguments and the rewardPoolSeat. Update the `totalDebt` if the
69
- * reallocate succeeds.
54
+ * @callback MintAndTransfer
55
+ * Mint new debt `toMint` and transfer the `fee` portion to the vaultFactory's reward
56
+ * pool. Then reallocate over all the seat arguments and the rewardPoolSeat. Update
57
+ * the `totalDebt` if the reallocate succeeds.
70
58
  * @param {ZCFSeat} mintReceiver
71
59
  * @param {Amount<'nat'>} toMint
72
60
  * @param {Amount<'nat'>} fee
73
- * @param {TransferPart[]} transfers
61
+ * @param {import('@agoric/zoe/src/contractSupport/atomicTransfer.js').TransferPart[]} transfers
74
62
  * @returns {void}
75
63
  */
76
64
 
77
65
  /**
78
- * @callback BurnDebt Burn debt tokens off a seat and update the `totalDebt` if
79
- * the reallocate succeeds.
66
+ * @callback BurnDebt
67
+ *
68
+ * Burn debt tokens off a seat and update
69
+ * the `totalDebt` if the reallocate succeeds.
70
+ *
80
71
  * @param {Amount} toBurn
81
72
  * @param {ZCFSeat} fromSeat
82
73
  * @returns {void}
@@ -87,15 +78,16 @@
87
78
  * @property {() => Ratio} getLiquidationMargin
88
79
  * @property {() => Ratio} getMintFee
89
80
  * @property {() => Promise<PriceQuote>} getCollateralQuote
90
- * @property {() => Ratio} getInterestRate - The annual interest rate on a debt
91
- * position
81
+ * @property {() => Ratio} getInterestRate - The annual interest rate on a debt position
92
82
  * @property {() => RelativeTime} getChargingPeriod - The period (in seconds) at
93
83
  * which interest is charged to the debt position.
94
84
  * @property {() => RelativeTime} getRecordingPeriod - The period (in seconds)
95
85
  * at which interest is recorded to the debt position.
96
86
  */
97
87
 
98
- /** @typedef {string} VaultId */
88
+ /**
89
+ * @typedef {string} VaultId
90
+ */
99
91
 
100
92
  /**
101
93
  * @typedef {object} InterestTiming
@@ -112,9 +104,7 @@
112
104
 
113
105
  /**
114
106
  * @typedef {object} Liquidator
115
- * @property {() => Promise<
116
- * Invitation<void, { debt: Amount<'nat'>; penaltyRate: Ratio }>
117
- * >} makeLiquidateInvitation
107
+ * @property {() => Promise<Invitation<void, { debt: Amount<'nat'>; penaltyRate: Ratio; }>>} makeLiquidateInvitation
118
108
  */
119
109
 
120
110
  /**
@@ -134,11 +124,11 @@
134
124
  /**
135
125
  * @typedef {object} CalculatorKit
136
126
  * @property {Calculate} calculate calculate new debt for charging periods up to
137
- * the present.
127
+ * the present.
138
128
  * @property {Calculate} calculateReportingPeriod calculate new debt for
139
- * reporting periods up to the present. If some charging periods have elapsed
140
- * that don't constitute whole reporting periods, the time is not updated past
141
- * them and interest is not accumulated for them.
129
+ * reporting periods up to the present. If some charging periods have elapsed
130
+ * that don't constitute whole reporting periods, the time is not updated past
131
+ * them and interest is not accumulated for them.
142
132
  */
143
133
 
144
- /** @typedef {{ key: 'governedParams' | { collateralBrand: Brand } }} VaultFactoryParamPath */
134
+ /** @typedef {{key: 'governedParams' | {collateralBrand: Brand}}} VaultFactoryParamPath */