@agoric/inter-protocol 0.13.3 → 0.13.4-dev-d32a66a.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 (140) hide show
  1. package/README.md +26 -20
  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 +514 -0
  5. package/bundles/bundle-econCommitteeCharter.js +1 -0
  6. package/bundles/bundle-feeDistributor-js-meta.json +458 -0
  7. package/bundles/bundle-feeDistributor.js +1 -1
  8. package/bundles/bundle-fluxAggregatorKit-js-meta.json +674 -0
  9. package/bundles/bundle-fluxAggregatorKit.js +1 -0
  10. package/bundles/bundle-psm-js-meta.json +666 -0
  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 -1
  14. package/bundles/bundle-scaledPriceAuthority-js-meta.json +542 -0
  15. package/bundles/bundle-scaledPriceAuthority.js +1 -1
  16. package/bundles/bundle-vaultFactory-js-meta.json +786 -0
  17. package/bundles/bundle-vaultFactory.js +1 -1
  18. package/exported.js +0 -2
  19. package/package.json +34 -31
  20. package/scripts/add-collateral-core.js +14 -4
  21. package/scripts/build-bundles.js +9 -2
  22. package/scripts/deploy-contracts.js +1 -4
  23. package/scripts/init-core.js +20 -38
  24. package/scripts/invite-committee-core.js +1 -1
  25. package/scripts/manual-price-feed.js +2 -2
  26. package/scripts/price-feed-core.js +7 -6
  27. package/scripts/start-local-chain.sh +84 -0
  28. package/src/auction/auctionBook.js +755 -0
  29. package/src/auction/auctioneer.js +720 -0
  30. package/src/auction/offerBook.js +221 -0
  31. package/src/auction/params.js +174 -0
  32. package/src/auction/scheduleMath.js +167 -0
  33. package/src/auction/scheduler.js +370 -0
  34. package/src/auction/sortedOffers.js +136 -0
  35. package/src/auction/util.js +55 -0
  36. package/src/clientSupport.js +324 -0
  37. package/src/collectFees.js +8 -14
  38. package/src/contractSupport.js +24 -68
  39. package/src/econCommitteeCharter.js +161 -77
  40. package/src/feeDistributor.js +60 -20
  41. package/src/index.js +2 -0
  42. package/src/interest-math.js +1 -4
  43. package/src/interest.js +20 -13
  44. package/src/price/README.md +57 -0
  45. package/src/price/fluxAggregatorContract.js +190 -0
  46. package/src/price/fluxAggregatorKit.js +375 -0
  47. package/src/price/priceOracleKit.js +127 -0
  48. package/src/price/roundsManager.js +726 -0
  49. package/src/proposals/addAssetToVault.js +89 -94
  50. package/src/proposals/committee-proposal.js +141 -40
  51. package/src/proposals/core-proposal.js +100 -167
  52. package/src/proposals/econ-behaviors.js +320 -564
  53. package/src/proposals/price-feed-proposal.js +175 -78
  54. package/src/proposals/startEconCommittee.js +25 -12
  55. package/src/proposals/startPSM.js +231 -211
  56. package/src/proposals/utils.js +31 -17
  57. package/src/psm/README.md +71 -0
  58. package/src/psm/psm.js +272 -160
  59. package/src/psm/types.js +2 -0
  60. package/src/reserve/assetReserve.js +56 -413
  61. package/src/reserve/assetReserveKit.js +303 -0
  62. package/src/reserve/doc.md +1 -3
  63. package/src/reserve/params.js +2 -5
  64. package/src/typeGuards.js +13 -0
  65. package/src/vaultFactory/Liquidation.md +100 -0
  66. package/src/vaultFactory/burn.js +2 -1
  67. package/src/vaultFactory/liquidation.js +270 -108
  68. package/src/vaultFactory/math.js +95 -0
  69. package/src/vaultFactory/orderedVaultStore.js +0 -1
  70. package/src/vaultFactory/params.js +133 -112
  71. package/src/vaultFactory/prioritizedVaults.js +36 -79
  72. package/src/vaultFactory/storeUtils.js +67 -9
  73. package/src/vaultFactory/type-imports.js +2 -0
  74. package/src/vaultFactory/types.js +22 -26
  75. package/src/vaultFactory/vault.js +772 -709
  76. package/src/vaultFactory/vaultDirector.js +480 -483
  77. package/src/vaultFactory/vaultFactory.js +99 -60
  78. package/src/vaultFactory/vaultHolder.js +121 -95
  79. package/src/vaultFactory/vaultKit.js +39 -31
  80. package/src/vaultFactory/vaultManager.js +1249 -868
  81. package/bundles/bundle-amm-meta.js +0 -618
  82. package/bundles/bundle-amm.js +0 -1
  83. package/bundles/bundle-feeDistributor-meta.js +0 -346
  84. package/bundles/bundle-interchainPool-meta.js +0 -534
  85. package/bundles/bundle-interchainPool.js +0 -1
  86. package/bundles/bundle-liquidateIncrementally-meta.js +0 -442
  87. package/bundles/bundle-liquidateIncrementally.js +0 -1
  88. package/bundles/bundle-liquidateMinimum-meta.js +0 -442
  89. package/bundles/bundle-liquidateMinimum.js +0 -1
  90. package/bundles/bundle-psm-meta.js +0 -538
  91. package/bundles/bundle-psmCharter-meta.js +0 -418
  92. package/bundles/bundle-psmCharter.js +0 -1
  93. package/bundles/bundle-reserve-meta.js +0 -542
  94. package/bundles/bundle-scaledPriceAuthority-meta.js +0 -442
  95. package/bundles/bundle-stakeFactory-meta.js +0 -574
  96. package/bundles/bundle-stakeFactory.js +0 -1
  97. package/bundles/bundle-vaultFactory-meta.js +0 -598
  98. package/scripts/add-initial-liquidity.js +0 -180
  99. package/src/collect.js +0 -13
  100. package/src/interchainPool.js +0 -135
  101. package/src/makeTracer.js +0 -36
  102. package/src/my-lien.js +0 -85
  103. package/src/proposals/demoIssuers.js +0 -685
  104. package/src/proposals/sim-behaviors.js +0 -40
  105. package/src/psm/psmCharter.js +0 -139
  106. package/src/stakeFactory/README.md +0 -62
  107. package/src/stakeFactory/attestation.js +0 -267
  108. package/src/stakeFactory/attestationTool.js +0 -66
  109. package/src/stakeFactory/constants.js +0 -16
  110. package/src/stakeFactory/params.js +0 -31
  111. package/src/stakeFactory/stakeFactory.js +0 -236
  112. package/src/stakeFactory/stakeFactoryKit.js +0 -455
  113. package/src/stakeFactory/stakeFactoryManager.js +0 -296
  114. package/src/stakeFactory/types.js +0 -42
  115. package/src/vaultFactory/liquidateIncrementally.js +0 -350
  116. package/src/vaultFactory/liquidateMinimum.js +0 -100
  117. package/src/vpool-xyk-amm/AttackersGuide.md +0 -89
  118. package/src/vpool-xyk-amm/addLiquidity.js +0 -222
  119. package/src/vpool-xyk-amm/addPool.js +0 -197
  120. package/src/vpool-xyk-amm/constantProduct/AMM-Trade.jpeg +0 -0
  121. package/src/vpool-xyk-amm/constantProduct/README.md +0 -204
  122. package/src/vpool-xyk-amm/constantProduct/calcFees.js +0 -99
  123. package/src/vpool-xyk-amm/constantProduct/calcSwapPrices.js +0 -85
  124. package/src/vpool-xyk-amm/constantProduct/core.js +0 -153
  125. package/src/vpool-xyk-amm/constantProduct/defaults.js +0 -5
  126. package/src/vpool-xyk-amm/constantProduct/getXY.js +0 -52
  127. package/src/vpool-xyk-amm/constantProduct/internal-types.js +0 -116
  128. package/src/vpool-xyk-amm/constantProduct/invariants.js +0 -43
  129. package/src/vpool-xyk-amm/constantProduct/swap.js +0 -272
  130. package/src/vpool-xyk-amm/constantProduct/types.js +0 -32
  131. package/src/vpool-xyk-amm/doublePool.js +0 -194
  132. package/src/vpool-xyk-amm/estimate.js +0 -155
  133. package/src/vpool-xyk-amm/multipoolMarketMaker.js +0 -520
  134. package/src/vpool-xyk-amm/params.js +0 -61
  135. package/src/vpool-xyk-amm/pool.js +0 -396
  136. package/src/vpool-xyk-amm/priceAuthority.js +0 -94
  137. package/src/vpool-xyk-amm/removeLiquidity.js +0 -31
  138. package/src/vpool-xyk-amm/singlePool.js +0 -73
  139. package/src/vpool-xyk-amm/swap.js +0 -69
  140. package/src/vpool-xyk-amm/types.js +0 -154
@@ -1,4 +1,4 @@
1
- // @ts-check
1
+ // @jessie-check
2
2
 
3
3
  /**
4
4
  * @typedef {import('./vault').VaultNotification} VaultNotification
@@ -8,7 +8,11 @@
8
8
  * @typedef {import('./vaultManager').CollateralManager} CollateralManager
9
9
  * @typedef {import('../reserve/assetReserve.js').AssetReserveLimitedCreatorFacet} AssetReserveCreatorFacet
10
10
  * @typedef {import('../reserve/assetReserve.js').AssetReservePublicFacet} AssetReservePublicFacet
11
+ * @typedef {import('../auction/auctioneer.js').AuctioneerPublicFacet} AuctioneerPublicFacet
11
12
  * @typedef {import('./vaultFactory.js').VaultFactoryContract['publicFacet']} VaultFactoryPublicFacet
13
+ *
14
+ * @typedef {import('@agoric/time/src/types').Timestamp} Timestamp
15
+ * @typedef {import('@agoric/time/src/types').RelativeTime} RelativeTime
12
16
  */
13
17
 
14
18
  /**
@@ -31,10 +35,11 @@
31
35
  * @property {Ratio} liquidationMargin - margin below which collateral will be
32
36
  * liquidated to satisfy the debt.
33
37
  * @property {Ratio} liquidationPenalty - penalty charged upon liquidation as proportion of debt
34
- * @property {Ratio} interestRate - annual interest rate charged on loans
35
- * @property {Ratio} loanFee - The fee (in BasisPoints) charged when opening
36
- * or increasing a loan.
38
+ * @property {Ratio} interestRate - annual interest rate charged on debt positions
39
+ * @property {Ratio} mintFee - The fee (in BasisPoints) charged when creating
40
+ * or increasing a debt position.
37
41
  * @property {Amount<'nat'>} debtLimit
42
+ * @property {Ratio} [liquidationPadding] - vault must maintain this in order to remove collateral or add debt
38
43
  */
39
44
 
40
45
  /**
@@ -48,24 +53,21 @@
48
53
  /**
49
54
  * @typedef {object} VaultFactoryCreatorFacet
50
55
  * @property {AddVaultType} addVaultType
51
- * @property {() => Promise<Array<Collateral>>} getCollaterals
52
56
  * @property {() => Allocation} getRewardAllocation
53
- * @property {() => Instance} getContractGovernor
54
- * @property {() => Promise<Invitation>} makeCollectFeesInvitation
55
- * @property {() => void} updateMetrics
57
+ * @property {() => Promise<Invitation<string, never>>} makeCollectFeesInvitation
58
+ * @property {() => import('@agoric/time/src/types').TimerWaker} makeLiquidationWaker
59
+ * @property {() => import('@agoric/time/src/types').TimerWaker} makePriceLockWaker
56
60
  */
57
61
 
58
62
  /**
59
- * @callback MintAndReallocate
60
- *
63
+ * @callback MintAndTransfer
61
64
  * Mint new debt `toMint` and transfer the `fee` portion to the vaultFactory's reward
62
65
  * pool. Then reallocate over all the seat arguments and the rewardPoolSeat. Update
63
66
  * the `totalDebt` if the reallocate succeeds.
64
- *
65
- * @param {Amount} toMint
66
- * @param {Amount} fee
67
- * @param {ZCFSeat} fromSeat
68
- * @param {...ZCFSeat} otherSeats
67
+ * @param {ZCFSeat} mintReceiver
68
+ * @param {Amount<'nat'>} toMint
69
+ * @param {Amount<'nat'>} fee
70
+ * @param {import('@agoric/zoe/src/contractSupport/atomicTransfer.js').TransferPart[]} transfers
69
71
  * @returns {void}
70
72
  */
71
73
 
@@ -83,13 +85,13 @@
83
85
  /**
84
86
  * @typedef {object} GetVaultParams
85
87
  * @property {() => Ratio} getLiquidationMargin
86
- * @property {() => Ratio} getLoanFee
88
+ * @property {() => Ratio} getMintFee
87
89
  * @property {() => Promise<PriceQuote>} getCollateralQuote
88
- * @property {() => Ratio} getInterestRate - The annual interest rate on a loan
90
+ * @property {() => Ratio} getInterestRate - The annual interest rate on a debt position
89
91
  * @property {() => RelativeTime} getChargingPeriod - The period (in seconds) at
90
- * which interest is charged to the loan.
92
+ * which interest is charged to the debt position.
91
93
  * @property {() => RelativeTime} getRecordingPeriod - The period (in seconds)
92
- * at which interest is recorded to the loan.
94
+ * at which interest is recorded to the debt position.
93
95
  */
94
96
 
95
97
  /**
@@ -97,17 +99,11 @@
97
99
  */
98
100
 
99
101
  /**
100
- * @typedef {object} LoanTiming
102
+ * @typedef {object} InterestTiming
101
103
  * @property {RelativeTime} chargingPeriod in seconds
102
104
  * @property {RelativeTime} recordingPeriod in seconds
103
105
  */
104
106
 
105
- /**
106
- * @typedef {object} AMMFees
107
- * @property {bigint} poolFee
108
- * @property {bigint} protocolFee
109
- */
110
-
111
107
  /**
112
108
  * @typedef {object} LiquidationStrategy
113
109
  * @property {() => KeywordKeywordRecord} keywordMapping