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