@agoric/inter-protocol 0.13.4-pismo-dev-0d5327f.0 → 0.14.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 (141) hide show
  1. package/CHANGELOG.md +287 -0
  2. package/README.md +26 -20
  3. package/bundles/bundle-auctioneer-js-meta.json +722 -0
  4. package/bundles/bundle-auctioneer.js +1 -0
  5. package/bundles/bundle-econCommitteeCharter-js-meta.json +514 -0
  6. package/bundles/bundle-econCommitteeCharter.js +1 -0
  7. package/bundles/bundle-feeDistributor-js-meta.json +458 -0
  8. package/bundles/bundle-feeDistributor.js +1 -1
  9. package/bundles/bundle-fluxAggregatorKit-js-meta.json +674 -0
  10. package/bundles/bundle-fluxAggregatorKit.js +1 -0
  11. package/bundles/bundle-psm-js-meta.json +666 -0
  12. package/bundles/bundle-psm.js +1 -1
  13. package/bundles/bundle-reserve-js-meta.json +662 -0
  14. package/bundles/bundle-reserve.js +1 -1
  15. package/bundles/bundle-scaledPriceAuthority-js-meta.json +542 -0
  16. package/bundles/bundle-scaledPriceAuthority.js +1 -1
  17. package/bundles/bundle-vaultFactory-js-meta.json +786 -0
  18. package/bundles/bundle-vaultFactory.js +1 -1
  19. package/exported.js +0 -2
  20. package/package.json +34 -31
  21. package/scripts/add-collateral-core.js +14 -4
  22. package/scripts/build-bundles.js +9 -2
  23. package/scripts/deploy-contracts.js +1 -4
  24. package/scripts/init-core.js +20 -38
  25. package/scripts/invite-committee-core.js +1 -1
  26. package/scripts/manual-price-feed.js +2 -2
  27. package/scripts/price-feed-core.js +7 -6
  28. package/scripts/start-local-chain.sh +84 -0
  29. package/src/auction/auctionBook.js +755 -0
  30. package/src/auction/auctioneer.js +720 -0
  31. package/src/auction/offerBook.js +221 -0
  32. package/src/auction/params.js +174 -0
  33. package/src/auction/scheduleMath.js +167 -0
  34. package/src/auction/scheduler.js +370 -0
  35. package/src/auction/sortedOffers.js +136 -0
  36. package/src/auction/util.js +55 -0
  37. package/src/clientSupport.js +324 -0
  38. package/src/collectFees.js +8 -14
  39. package/src/contractSupport.js +24 -68
  40. package/src/econCommitteeCharter.js +161 -77
  41. package/src/feeDistributor.js +60 -20
  42. package/src/index.js +2 -0
  43. package/src/interest-math.js +1 -4
  44. package/src/interest.js +20 -13
  45. package/src/price/README.md +57 -0
  46. package/src/price/fluxAggregatorContract.js +190 -0
  47. package/src/price/fluxAggregatorKit.js +375 -0
  48. package/src/price/priceOracleKit.js +127 -0
  49. package/src/price/roundsManager.js +726 -0
  50. package/src/proposals/addAssetToVault.js +89 -94
  51. package/src/proposals/committee-proposal.js +141 -40
  52. package/src/proposals/core-proposal.js +100 -167
  53. package/src/proposals/econ-behaviors.js +320 -564
  54. package/src/proposals/price-feed-proposal.js +175 -78
  55. package/src/proposals/startEconCommittee.js +25 -12
  56. package/src/proposals/startPSM.js +231 -211
  57. package/src/proposals/utils.js +31 -17
  58. package/src/psm/README.md +71 -0
  59. package/src/psm/psm.js +272 -160
  60. package/src/psm/types.js +2 -0
  61. package/src/reserve/assetReserve.js +56 -413
  62. package/src/reserve/assetReserveKit.js +303 -0
  63. package/src/reserve/doc.md +1 -3
  64. package/src/reserve/params.js +2 -5
  65. package/src/typeGuards.js +13 -0
  66. package/src/vaultFactory/Liquidation.md +100 -0
  67. package/src/vaultFactory/burn.js +2 -1
  68. package/src/vaultFactory/liquidation.js +270 -108
  69. package/src/vaultFactory/math.js +95 -0
  70. package/src/vaultFactory/orderedVaultStore.js +0 -1
  71. package/src/vaultFactory/params.js +133 -112
  72. package/src/vaultFactory/prioritizedVaults.js +36 -79
  73. package/src/vaultFactory/storeUtils.js +67 -9
  74. package/src/vaultFactory/type-imports.js +2 -0
  75. package/src/vaultFactory/types.js +22 -26
  76. package/src/vaultFactory/vault.js +772 -709
  77. package/src/vaultFactory/vaultDirector.js +480 -483
  78. package/src/vaultFactory/vaultFactory.js +99 -60
  79. package/src/vaultFactory/vaultHolder.js +121 -95
  80. package/src/vaultFactory/vaultKit.js +39 -31
  81. package/src/vaultFactory/vaultManager.js +1249 -868
  82. package/bundles/bundle-amm-meta.js +0 -618
  83. package/bundles/bundle-amm.js +0 -1
  84. package/bundles/bundle-feeDistributor-meta.js +0 -346
  85. package/bundles/bundle-interchainPool-meta.js +0 -534
  86. package/bundles/bundle-interchainPool.js +0 -1
  87. package/bundles/bundle-liquidateIncrementally-meta.js +0 -442
  88. package/bundles/bundle-liquidateIncrementally.js +0 -1
  89. package/bundles/bundle-liquidateMinimum-meta.js +0 -442
  90. package/bundles/bundle-liquidateMinimum.js +0 -1
  91. package/bundles/bundle-psm-meta.js +0 -538
  92. package/bundles/bundle-psmCharter-meta.js +0 -418
  93. package/bundles/bundle-psmCharter.js +0 -1
  94. package/bundles/bundle-reserve-meta.js +0 -542
  95. package/bundles/bundle-scaledPriceAuthority-meta.js +0 -442
  96. package/bundles/bundle-stakeFactory-meta.js +0 -574
  97. package/bundles/bundle-stakeFactory.js +0 -1
  98. package/bundles/bundle-vaultFactory-meta.js +0 -598
  99. package/scripts/add-initial-liquidity.js +0 -180
  100. package/src/collect.js +0 -13
  101. package/src/interchainPool.js +0 -135
  102. package/src/makeTracer.js +0 -36
  103. package/src/my-lien.js +0 -85
  104. package/src/proposals/demoIssuers.js +0 -685
  105. package/src/proposals/sim-behaviors.js +0 -40
  106. package/src/psm/psmCharter.js +0 -139
  107. package/src/stakeFactory/README.md +0 -62
  108. package/src/stakeFactory/attestation.js +0 -267
  109. package/src/stakeFactory/attestationTool.js +0 -66
  110. package/src/stakeFactory/constants.js +0 -16
  111. package/src/stakeFactory/params.js +0 -31
  112. package/src/stakeFactory/stakeFactory.js +0 -236
  113. package/src/stakeFactory/stakeFactoryKit.js +0 -455
  114. package/src/stakeFactory/stakeFactoryManager.js +0 -296
  115. package/src/stakeFactory/types.js +0 -42
  116. package/src/vaultFactory/liquidateIncrementally.js +0 -350
  117. package/src/vaultFactory/liquidateMinimum.js +0 -100
  118. package/src/vpool-xyk-amm/AttackersGuide.md +0 -89
  119. package/src/vpool-xyk-amm/addLiquidity.js +0 -222
  120. package/src/vpool-xyk-amm/addPool.js +0 -197
  121. package/src/vpool-xyk-amm/constantProduct/AMM-Trade.jpeg +0 -0
  122. package/src/vpool-xyk-amm/constantProduct/README.md +0 -204
  123. package/src/vpool-xyk-amm/constantProduct/calcFees.js +0 -99
  124. package/src/vpool-xyk-amm/constantProduct/calcSwapPrices.js +0 -85
  125. package/src/vpool-xyk-amm/constantProduct/core.js +0 -153
  126. package/src/vpool-xyk-amm/constantProduct/defaults.js +0 -5
  127. package/src/vpool-xyk-amm/constantProduct/getXY.js +0 -52
  128. package/src/vpool-xyk-amm/constantProduct/internal-types.js +0 -116
  129. package/src/vpool-xyk-amm/constantProduct/invariants.js +0 -43
  130. package/src/vpool-xyk-amm/constantProduct/swap.js +0 -272
  131. package/src/vpool-xyk-amm/constantProduct/types.js +0 -32
  132. package/src/vpool-xyk-amm/doublePool.js +0 -194
  133. package/src/vpool-xyk-amm/estimate.js +0 -155
  134. package/src/vpool-xyk-amm/multipoolMarketMaker.js +0 -520
  135. package/src/vpool-xyk-amm/params.js +0 -61
  136. package/src/vpool-xyk-amm/pool.js +0 -396
  137. package/src/vpool-xyk-amm/priceAuthority.js +0 -94
  138. package/src/vpool-xyk-amm/removeLiquidity.js +0 -31
  139. package/src/vpool-xyk-amm/singlePool.js +0 -73
  140. package/src/vpool-xyk-amm/swap.js +0 -69
  141. 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