@pendle/core-v2 0.9.3-beta → 0.10.1-beta

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 (360) hide show
  1. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.dbg.json +1 -1
  2. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.json +2 -2
  3. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/WadRayMath.sol/WadRayMath.dbg.json +1 -1
  4. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol/PendleQiSAvaxSCY.dbg.json +1 -1
  5. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol/PendleQiSAvaxSCY.json +2 -2
  6. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  7. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.dbg.json +1 -1
  8. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.json +2 -2
  9. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol/PendleSAvaxSCY.dbg.json +1 -1
  10. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol/PendleSAvaxSCY.json +2 -2
  11. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.dbg.json +1 -1
  12. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.json +7 -2
  13. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.dbg.json +1 -1
  14. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.json +2 -2
  15. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol/PendleStargateSCY.dbg.json +1 -1
  16. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol/PendleStargateSCY.json +2 -2
  17. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.dbg.json +1 -1
  18. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.json +2 -2
  19. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultSCY.sol/PendleYearnVaultSCY.dbg.json +4 -0
  20. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/{PendleYearnVaultScy.sol → PendleYearnVaultSCY.sol}/PendleYearnVaultSCY.json +3 -3
  21. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol/PendleSJoeSCY.dbg.json +1 -1
  22. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol/PendleSJoeSCY.json +2 -2
  23. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBase.sol/SCYBase.dbg.json +1 -1
  24. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +1 -1
  25. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol/CelerReceiverUpg.dbg.json +1 -1
  26. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol/CelerReceiverUpg.json +67 -5
  27. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol/CelerSenderUpg.dbg.json +1 -1
  28. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol/CelerSenderUpg.json +63 -1
  29. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  30. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.json +65 -3
  31. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  32. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +74 -10
  33. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +79 -15
  35. package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +204 -123
  38. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.json +127 -73
  40. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +93 -34
  42. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +90 -14
  44. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.json +14 -1
  46. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +139 -37
  48. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +84 -56
  50. package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.json +122 -11
  53. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  55. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  56. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  57. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +96 -40
  58. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  59. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  60. package/build/artifacts/contracts/core/actions/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +4 -0
  61. package/build/artifacts/contracts/core/actions/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +1025 -0
  62. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.json +2 -2
  64. package/build/artifacts/contracts/core/actions/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +4 -0
  65. package/build/artifacts/contracts/core/actions/ActionMintRedeem.sol/ActionMintRedeem.json +622 -0
  66. package/build/artifacts/contracts/core/actions/ActionMisc.sol/ActionMisc.dbg.json +4 -0
  67. package/build/artifacts/contracts/core/actions/ActionMisc.sol/ActionMisc.json +35 -0
  68. package/build/artifacts/contracts/core/actions/ActionSwapPT.sol/ActionSwapPT.dbg.json +4 -0
  69. package/build/artifacts/contracts/core/actions/ActionSwapPT.sol/ActionSwapPT.json +459 -0
  70. package/build/artifacts/contracts/core/actions/ActionSwapYT.sol/ActionSwapYT.dbg.json +4 -0
  71. package/build/artifacts/contracts/core/actions/ActionSwapYT.sol/ActionSwapYT.json +459 -0
  72. package/build/artifacts/contracts/core/actions/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +4 -0
  73. package/build/artifacts/contracts/core/actions/base/{ActionSCYAndPTBase.sol/ActionSCYAndPTBase.json → ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json} +2 -2
  74. package/build/artifacts/contracts/core/actions/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  75. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
  76. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +1 -1
  77. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +1 -1
  78. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  79. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.json +24 -0
  80. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  81. package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.dbg.json +1 -1
  82. package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.dbg.json +1 -1
  83. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  84. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.dbg.json +1 -1
  85. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.dbg.json +1 -1
  86. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +4 -0
  87. package/build/artifacts/contracts/interfaces/{IPActionCore.sol/IPActionCore.json → IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json} +154 -909
  88. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +4 -0
  89. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json +598 -0
  90. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +4 -0
  91. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.json +35 -0
  92. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +4 -0
  93. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.json +435 -0
  94. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +4 -0
  95. package/build/artifacts/contracts/interfaces/{IPActionYT.sol/IPActionYT.json → IPActionSwapYT.sol/IPActionSwapYT.json} +23 -11
  96. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  97. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +349 -57
  98. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +4 -0
  99. package/build/artifacts/contracts/{core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.json → interfaces/IPGauge.sol/IPGauge.json} +5 -5
  100. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  101. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  102. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +1 -1
  103. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  104. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  105. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.json +72 -29
  106. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  107. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.json +0 -11
  108. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  109. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  111. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  112. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.json +1 -1
  113. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  114. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.json +0 -37
  115. package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.dbg.json +1 -1
  116. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  117. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  118. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.json +1 -1
  119. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  120. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  121. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  122. package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.dbg.json +1 -1
  123. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  124. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.json +1 -1
  125. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.dbg.json +1 -1
  126. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +1 -1
  127. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  128. package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +1 -1
  129. package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +1 -1
  130. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  131. package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.dbg.json +1 -1
  132. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +1 -1
  133. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  134. package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.dbg.json +1 -1
  135. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  136. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +1 -1
  137. package/build/artifacts/contracts/libraries/OracleLib.sol/OracleLib.dbg.json +4 -0
  138. package/build/artifacts/contracts/libraries/OracleLib.sol/OracleLib.json +74 -0
  139. package/build/artifacts/contracts/libraries/RewardManager.sol/RewardManager.dbg.json +1 -1
  140. package/build/artifacts/contracts/libraries/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  141. package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.dbg.json +1 -1
  142. package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  143. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  144. package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  145. package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  146. package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  147. package/build/artifacts/contracts/libraries/helpers/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  148. package/build/artifacts/contracts/libraries/helpers/PYIndex.sol/PYIndexLib.json +2 -2
  149. package/build/artifacts/contracts/libraries/helpers/SSTORE2Deployer.sol/SSTORE2Deployer.dbg.json +1 -1
  150. package/build/artifacts/contracts/libraries/helpers/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  151. package/build/artifacts/contracts/libraries/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +1 -1
  152. package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  153. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.dbg.json +1 -1
  154. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.json +2 -2
  155. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  156. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.json +2 -2
  157. package/build/artifacts/contracts/libraries/math/Math.sol/Math.dbg.json +1 -1
  158. package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.dbg.json +1 -1
  159. package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.dbg.json +1 -1
  160. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +4 -0
  161. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +93 -0
  162. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  163. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +447 -49
  164. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +4 -0
  165. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.json +86 -0
  166. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +4 -0
  167. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.json +37 -0
  168. package/build/artifacts/contracts/periphery/PendleGovernanceManager.sol/PendleGovernanceManager.dbg.json +1 -1
  169. package/build/artifacts/contracts/periphery/PermissionsV2Upg.sol/PermissionsV2Upg.dbg.json +1 -1
  170. package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol +8 -0
  171. package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol +1 -1
  172. package/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol +11 -5
  173. package/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol +0 -1
  174. package/contracts/SuperComposableYield/SCY-implementations/{PendleYearnVaultScy.sol → PendleYearnVaultSCY.sol} +0 -0
  175. package/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol +1 -0
  176. package/contracts/SuperComposableYield/base-implementations/SCYBase.sol +1 -1
  177. package/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol +1 -1
  178. package/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol +7 -7
  179. package/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol +7 -6
  180. package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +4 -5
  181. package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol +6 -3
  182. package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol +6 -3
  183. package/contracts/core/LiquidityMining/PendleGauge.sol +3 -2
  184. package/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +22 -28
  185. package/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +71 -13
  186. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +7 -4
  187. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +6 -2
  188. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol +4 -3
  189. package/contracts/core/Market/PendleMarket.sol +91 -55
  190. package/contracts/core/Market/PendleMarketFactory.sol +18 -33
  191. package/contracts/core/PendleRouter.sol +60 -52
  192. package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +12 -12
  193. package/contracts/core/YieldContracts/PendleYieldToken.sol +1 -1
  194. package/contracts/core/actions/ActionAddRemoveLiq.sol +366 -0
  195. package/contracts/core/actions/ActionCallback.sol +6 -6
  196. package/contracts/core/actions/ActionMintRedeem.sol +124 -0
  197. package/contracts/core/actions/ActionMisc.sol +24 -0
  198. package/contracts/core/actions/ActionSwapPT.sol +199 -0
  199. package/contracts/core/actions/{base/ActionSCYAndYTBase.sol → ActionSwapYT.sol} +109 -74
  200. package/contracts/core/actions/base/{ActionSCYAndPYBase.sol → ActionBaseMintRedeem.sol} +9 -8
  201. package/contracts/interfaces/IBenQiComptroller.sol +2 -0
  202. package/contracts/interfaces/IPActionAddRemoveLiq.sol +188 -0
  203. package/contracts/interfaces/IPActionMintRedeem.sol +115 -0
  204. package/contracts/interfaces/IPActionMisc.sol +9 -0
  205. package/contracts/interfaces/IPActionSwapPT.sol +69 -0
  206. package/contracts/interfaces/{IPActionYT.sol → IPActionSwapYT.sol} +12 -10
  207. package/contracts/interfaces/IPAllAction.sol +12 -3
  208. package/contracts/interfaces/IPGauge.sol +6 -0
  209. package/contracts/interfaces/IPGaugeController.sol +0 -2
  210. package/contracts/interfaces/IPMarket.sol +28 -10
  211. package/contracts/interfaces/IPMarketFactory.sol +1 -7
  212. package/contracts/interfaces/IPVeToken.sol +1 -1
  213. package/contracts/interfaces/IPVotingController.sol +0 -2
  214. package/contracts/interfaces/IRewardManager.sol +1 -1
  215. package/contracts/libraries/OracleLib.sol +214 -0
  216. package/contracts/libraries/RewardManagerAbstract.sol +1 -1
  217. package/contracts/libraries/math/MarketApproxLib.sol +227 -14
  218. package/contracts/libraries/math/MarketMathCore.sol +0 -33
  219. package/contracts/offchain-helpers/MarketMathStatic.sol +565 -0
  220. package/contracts/offchain-helpers/RouterStatic.sol +196 -262
  221. package/contracts/periphery/BoringOwnableUpgradeable.sol +62 -0
  222. package/deployments/43113-benqi.json +2 -2
  223. package/deployments/43113-core.json +7 -8
  224. package/deployments/43113-markets/benqi-market-6440d6.json +8 -0
  225. package/deployments/43113-markets/benqi-market-Dc7592.json +8 -0
  226. package/deployments/80001-core.json +6 -7
  227. package/deployments/80001-markets/benqi-market-1542e0.json +8 -0
  228. package/deployments/80001-markets/benqi-market-2b6D02.json +8 -0
  229. package/package.json +11 -11
  230. package/typechain-types/ActionAddRemoveLiq.ts +1037 -0
  231. package/typechain-types/ActionBaseMintRedeem.ts +87 -0
  232. package/typechain-types/ActionCore.ts +116 -104
  233. package/typechain-types/ActionMintRedeem.ts +665 -0
  234. package/typechain-types/ActionMisc.ts +105 -0
  235. package/typechain-types/ActionSwapPT.ts +515 -0
  236. package/typechain-types/ActionSwapYT.ts +515 -0
  237. package/typechain-types/ActionYT.ts +5 -4
  238. package/typechain-types/BoringOwnable.ts +194 -0
  239. package/typechain-types/BoringOwnableData.ts +100 -0
  240. package/typechain-types/BoringOwnableUpgradeable.ts +194 -0
  241. package/typechain-types/BoringOwnableUpgradeableData.ts +100 -0
  242. package/typechain-types/CelerReceiverUpg.ts +124 -19
  243. package/typechain-types/CelerSenderUpg.ts +116 -11
  244. package/typechain-types/IBenQiComptroller.ts +39 -0
  245. package/typechain-types/IPActionAddRemoveLiq.ts +1018 -0
  246. package/typechain-types/IPActionCore.ts +116 -104
  247. package/typechain-types/IPActionMintRedeem.ts +646 -0
  248. package/typechain-types/IPActionMisc.ts +105 -0
  249. package/typechain-types/IPActionSwapPT.ts +496 -0
  250. package/typechain-types/IPActionSwapYT.ts +496 -0
  251. package/typechain-types/IPActionYT.ts +5 -4
  252. package/typechain-types/IPAllAction.ts +499 -250
  253. package/typechain-types/IPGauge.ts +87 -0
  254. package/typechain-types/IPMarket.ts +133 -50
  255. package/typechain-types/IPMarketFactory.ts +7 -17
  256. package/typechain-types/IPVeToken.ts +8 -8
  257. package/typechain-types/IPVotingController.ts +0 -20
  258. package/typechain-types/IPYieldToken.ts +3 -3
  259. package/typechain-types/IRewardManager.ts +3 -3
  260. package/typechain-types/MarketMathStatic.ts +198 -0
  261. package/typechain-types/OracleLib.ts +124 -0
  262. package/typechain-types/PendleGaugeControllerBaseUpg.ts +118 -15
  263. package/typechain-types/PendleGaugeControllerMainchainUpg.ts +136 -9
  264. package/typechain-types/PendleGaugeControllerSidechainUpg.ts +138 -11
  265. package/typechain-types/PendleMarket.ts +178 -59
  266. package/typechain-types/PendleMarketFactory.ts +135 -61
  267. package/typechain-types/PendleRouter.ts +201 -31
  268. package/typechain-types/PendleVotingControllerUpg.ts +325 -149
  269. package/typechain-types/PendleYieldContractFactory.ts +144 -21
  270. package/typechain-types/RouterStatic.ts +404 -114
  271. package/typechain-types/VotingControllerStorageUpg.ts +182 -113
  272. package/typechain-types/VotingEscrowPendleMainchain.ts +170 -63
  273. package/typechain-types/VotingEscrowPendleSidechain.ts +163 -17
  274. package/typechain-types/VotingEscrowTokenBase.ts +27 -8
  275. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1083 -0
  276. package/typechain-types/factories/ActionBaseMintRedeem__factory.ts +43 -0
  277. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  278. package/typechain-types/factories/ActionCore__factory.ts +39 -23
  279. package/typechain-types/factories/ActionMintRedeem__factory.ts +680 -0
  280. package/typechain-types/factories/ActionMisc__factory.ts +85 -0
  281. package/typechain-types/factories/ActionSwapPT__factory.ts +514 -0
  282. package/typechain-types/factories/ActionSwapYT__factory.ts +514 -0
  283. package/typechain-types/factories/ActionYT__factory.ts +2 -2
  284. package/typechain-types/factories/BoringOwnableData__factory.ts +90 -0
  285. package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +96 -0
  286. package/typechain-types/factories/BoringOwnableUpgradeable__factory.ts +143 -0
  287. package/typechain-types/factories/BoringOwnable__factory.ts +141 -0
  288. package/typechain-types/factories/CelerReceiverUpg__factory.ts +67 -5
  289. package/typechain-types/factories/CelerSenderUpg__factory.ts +63 -1
  290. package/typechain-types/factories/IBenQiComptroller__factory.ts +24 -0
  291. package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +1020 -0
  292. package/typechain-types/factories/IPActionCore__factory.ts +38 -22
  293. package/typechain-types/factories/IPActionMintRedeem__factory.ts +613 -0
  294. package/typechain-types/factories/IPActionMisc__factory.ts +47 -0
  295. package/typechain-types/factories/IPActionSwapPT__factory.ts +450 -0
  296. package/typechain-types/factories/IPActionSwapYT__factory.ts +450 -0
  297. package/typechain-types/factories/IPActionYT__factory.ts +1 -1
  298. package/typechain-types/factories/IPAllAction__factory.ts +349 -57
  299. package/typechain-types/factories/IPGauge__factory.ts +36 -0
  300. package/typechain-types/factories/IPMarketFactory__factory.ts +0 -11
  301. package/typechain-types/factories/IPMarket__factory.ts +72 -29
  302. package/typechain-types/factories/IPVeToken__factory.ts +1 -1
  303. package/typechain-types/factories/IPVotingController__factory.ts +0 -37
  304. package/typechain-types/factories/IPYieldToken__factory.ts +1 -1
  305. package/typechain-types/factories/IRewardManager__factory.ts +1 -1
  306. package/typechain-types/factories/MarketMathStatic__factory.ts +146 -0
  307. package/typechain-types/factories/OracleLib__factory.ts +124 -0
  308. package/typechain-types/factories/PendleAaveV3SCY__factory.ts +1 -1
  309. package/typechain-types/factories/PendleERC4626SCY__factory.ts +1 -1
  310. package/typechain-types/factories/PendleEulerSCY__factory.ts +10 -1
  311. package/typechain-types/factories/PendleGaugeControllerBaseUpg__factory.ts +65 -3
  312. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +73 -13
  313. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +79 -23
  314. package/typechain-types/factories/PendleMarketFactory__factory.ts +84 -86
  315. package/typechain-types/factories/PendleMarket__factory.ts +131 -37
  316. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  317. package/typechain-types/factories/PendleQiSAvaxSCY__factory.ts +1 -1
  318. package/typechain-types/factories/PendleQiTokenSCY__factory.ts +1 -1
  319. package/typechain-types/factories/PendleRouter__factory.ts +141 -22
  320. package/typechain-types/factories/PendleSAvaxSCY__factory.ts +1 -1
  321. package/typechain-types/factories/PendleSJoeSCY__factory.ts +1 -1
  322. package/typechain-types/factories/PendleStargateSCY__factory.ts +1 -1
  323. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +203 -129
  324. package/typechain-types/factories/PendleWstEthSCY__factory.ts +1 -1
  325. package/typechain-types/factories/PendleYearnVaultSCY__factory.ts +1 -1
  326. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +97 -72
  327. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  328. package/typechain-types/factories/RouterStatic__factory.ts +253 -49
  329. package/typechain-types/factories/VotingControllerStorageUpg__factory.ts +126 -72
  330. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +93 -41
  331. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +90 -17
  332. package/typechain-types/factories/VotingEscrowTokenBase__factory.ts +14 -1
  333. package/typechain-types/hardhat.d.ts +162 -0
  334. package/typechain-types/index.ts +36 -0
  335. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.dbg.json +0 -4
  336. package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.dbg.json +0 -4
  337. package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.json +0 -1785
  338. package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.dbg.json +0 -4
  339. package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.json +0 -447
  340. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPTBase.sol/ActionSCYAndPTBase.dbg.json +0 -4
  341. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.dbg.json +0 -4
  342. package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.dbg.json +0 -4
  343. package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.json +0 -24
  344. package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.dbg.json +0 -4
  345. package/build/artifacts/contracts/interfaces/IPActionYT.sol/IPActionYT.dbg.json +0 -4
  346. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +0 -4
  347. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +0 -874
  348. package/contracts/core/actions/ActionCore.sol +0 -377
  349. package/contracts/core/actions/ActionYT.sol +0 -93
  350. package/contracts/core/actions/base/ActionSCYAndPTBase.sol +0 -303
  351. package/contracts/interfaces/IPActionCore.sol +0 -305
  352. package/contracts/interfaces/IPRouterStatic.sol +0 -152
  353. package/deployments/43113-markets/benqi-market-599408.json +0 -7
  354. package/deployments/43113-markets/benqi-market-93bbf0.json +0 -7
  355. package/deployments/80001-markets/benqi-market-007811.json +0 -7
  356. package/deployments/80001-markets/benqi-market-3fe528.json +0 -7
  357. package/typechain-types/FeeDistributorAbstract.ts +0 -164
  358. package/typechain-types/IPVotingControllerStorage.ts +0 -169
  359. package/typechain-types/factories/FeeDistributorAbstract__factory.ts +0 -90
  360. package/typechain-types/factories/IPVotingControllerStorage__factory.ts +0 -107
@@ -1,303 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.15;
3
-
4
- import "../../../interfaces/IPMarketFactory.sol";
5
- import "../../../interfaces/IPMarket.sol";
6
- import "../../../interfaces/IPMarketSwapCallback.sol";
7
- import "../../../libraries/math/MarketApproxLib.sol";
8
- import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
9
- import "./ActionSCYAndPYBase.sol";
10
-
11
- abstract contract ActionSCYAndPTBase is ActionSCYAndPYBase {
12
- using Math for uint256;
13
- using Math for int256;
14
- using MarketMathCore for MarketState;
15
- using MarketApproxLib for MarketState;
16
- using SafeERC20 for IERC20;
17
- using PYIndexLib for IPYieldToken;
18
-
19
- bytes private constant EMPTY_BYTES = abi.encode();
20
-
21
- /// @dev since this contract will be proxied, it must not contains non-immutable variables
22
-
23
- /// @dev For doPull: if doPull is true, this function will do transferFrom as necessary from msg.sender. Else, it will
24
- /// assume tokens have already been transferred in.
25
-
26
- function _addLiquidityDualScyAndPt(
27
- address receiver,
28
- address market,
29
- uint256 scyDesired,
30
- uint256 ptDesired,
31
- uint256 minLpOut,
32
- bool doPull
33
- )
34
- internal
35
- returns (
36
- uint256 netLpOut,
37
- uint256 scyUsed,
38
- uint256 ptUsed
39
- )
40
- {
41
- (ISuperComposableYield SCY, IPPrincipalToken PT, IPYieldToken YT) = IPMarket(market)
42
- .readTokens();
43
-
44
- MarketState memory state = IPMarket(market).readState(false);
45
- (, netLpOut, scyUsed, ptUsed) = state.addLiquidity(
46
- YT.newIndex(),
47
- scyDesired,
48
- ptDesired,
49
- block.timestamp
50
- );
51
-
52
- // early-check
53
- require(netLpOut >= minLpOut, "insufficient lp out");
54
-
55
- if (doPull) {
56
- IERC20(SCY).safeTransferFrom(msg.sender, market, scyUsed);
57
- IERC20(PT).safeTransferFrom(msg.sender, market, ptUsed);
58
- }
59
-
60
- netLpOut = IPMarket(market).mint(receiver);
61
-
62
- // fail-safe
63
- require(netLpOut >= minLpOut, "FS insufficient lp out");
64
- }
65
-
66
- function _addLiquidityDualIbTokenAndPt(
67
- address receiver,
68
- address market,
69
- uint256 ibTokenDesired,
70
- uint256 ptDesired,
71
- uint256 minLpOut
72
- )
73
- internal
74
- returns (
75
- uint256 netLpOut,
76
- uint256 ibTokenUsed,
77
- uint256 ptUsed
78
- )
79
- {
80
- (ISuperComposableYield SCY, IPPrincipalToken PT, IPYieldToken YT) = IPMarket(market)
81
- .readTokens();
82
-
83
- address ibToken = SCY.yieldToken();
84
- uint256 scyDesired = SCY.previewDeposit(ibToken, ibTokenDesired);
85
- uint256 scyUsed;
86
-
87
- {
88
- MarketState memory state = IPMarket(market).readState(false);
89
- (, netLpOut, scyUsed, ptUsed) = state.addLiquidity(
90
- YT.newIndex(),
91
- scyDesired,
92
- ptDesired,
93
- block.timestamp
94
- );
95
- }
96
-
97
- // early-check
98
- require(netLpOut >= minLpOut, "insufficient lp out");
99
-
100
- IERC20(PT).safeTransferFrom(msg.sender, market, ptUsed);
101
-
102
- // convert ibToken to SCY to deposit
103
- ibTokenUsed = (ibTokenDesired * scyUsed).rawDivUp(scyDesired);
104
-
105
- IERC20(ibToken).safeTransferFrom(msg.sender, address(this), ibTokenUsed);
106
-
107
- _safeApproveInf(ibToken, address(SCY));
108
-
109
- SCY.deposit(market, ibToken, ibTokenUsed, scyDesired);
110
-
111
- netLpOut = IPMarket(market).mint(receiver);
112
- // fail-safe
113
- require(netLpOut >= minLpOut, "FS insufficient lp out");
114
- }
115
-
116
- function _removeLiquidityDualScyAndPt(
117
- address receiver,
118
- address market,
119
- uint256 lpToRemove,
120
- uint256 scyOutMin,
121
- uint256 ptOutMin
122
- ) internal returns (uint256 netScyOut, uint256 netPtOut) {
123
- IERC20(market).safeTransferFrom(msg.sender, market, lpToRemove);
124
-
125
- (netScyOut, netPtOut) = IPMarket(market).burn(receiver, receiver);
126
-
127
- require(netScyOut >= scyOutMin, "insufficient SCY out");
128
- require(netPtOut >= ptOutMin, "insufficient PT out");
129
- }
130
-
131
- function _removeLiquidityDualIbTokenAndPt(
132
- address receiver,
133
- address market,
134
- uint256 lpToRemove,
135
- uint256 ibTokenOutMin,
136
- uint256 ptOutMin
137
- ) internal returns (uint256 netIbTokenOut, uint256 netPtOut) {
138
- (ISuperComposableYield SCY, , ) = IPMarket(market).readTokens();
139
- address ibToken = SCY.yieldToken();
140
-
141
- IERC20(market).safeTransferFrom(msg.sender, market, lpToRemove);
142
-
143
- (, netPtOut) = IPMarket(market).burn(address(SCY), receiver);
144
-
145
- netIbTokenOut = SCY.redeemAfterTransfer(receiver, ibToken, ibTokenOutMin);
146
-
147
- require(netPtOut >= ptOutMin, "insufficient PT out");
148
- }
149
-
150
- function _swapExactPtForScy(
151
- address receiver,
152
- address market,
153
- uint256 exactPtIn,
154
- uint256 minScyOut,
155
- bool doPull
156
- ) internal returns (uint256 netScyOut) {
157
- if (doPull) {
158
- (, IPPrincipalToken PT, ) = IPMarket(market).readTokens();
159
- IERC20(address(PT)).safeTransferFrom(msg.sender, market, exactPtIn);
160
- }
161
-
162
- (netScyOut, ) = IPMarket(market).swapExactPtForScy(receiver, exactPtIn, EMPTY_BYTES);
163
-
164
- require(netScyOut >= minScyOut, "insufficient SCY out");
165
- }
166
-
167
- /**
168
- * @notice Note that the amount of SCY out will be a bit more than `exactScyOut`, since an approximation is used. It's
169
- guaranteed that the `netScyOut` is at least `exactScyOut`
170
- */
171
- function _swapPtForExactScy(
172
- address receiver,
173
- address market,
174
- uint256 exactScyOut,
175
- uint256 maxPtIn,
176
- ApproxParams memory guessPtIn,
177
- bool doPull
178
- ) internal returns (uint256 netPtIn) {
179
- MarketState memory state = IPMarket(market).readState(false);
180
- (, IPPrincipalToken PT, IPYieldToken YT) = IPMarket(market).readTokens();
181
-
182
- (netPtIn, , ) = state.approxSwapPtForExactScy(
183
- YT.newIndex(),
184
- exactScyOut,
185
- block.timestamp,
186
- guessPtIn
187
- );
188
- require(netPtIn <= maxPtIn, "exceed limit PT in");
189
-
190
- if (doPull) {
191
- IERC20(PT).safeTransferFrom(msg.sender, market, netPtIn);
192
- }
193
-
194
- (uint256 netScyOut, ) = IPMarket(market).swapExactPtForScy(receiver, netPtIn, EMPTY_BYTES);
195
-
196
- // fail-safe
197
- require(netScyOut >= exactScyOut, "FS insufficient SCY out");
198
- }
199
-
200
- function _swapScyForExactPt(
201
- address receiver,
202
- address market,
203
- uint256 exactPtOut,
204
- uint256 maxScyIn,
205
- bool doPull
206
- ) internal returns (uint256 netScyIn) {
207
- MarketState memory state = IPMarket(market).readState(false);
208
- (ISuperComposableYield SCY, , IPYieldToken YT) = IPMarket(market).readTokens();
209
-
210
- (netScyIn, ) = state.swapScyForExactPt(YT.newIndex(), exactPtOut, block.timestamp);
211
-
212
- require(netScyIn <= maxScyIn, "exceed limit SCY in");
213
-
214
- if (doPull) {
215
- IERC20(SCY).safeTransferFrom(msg.sender, market, netScyIn);
216
- }
217
-
218
- IPMarket(market).swapScyForExactPt(receiver, exactPtOut, EMPTY_BYTES); // ignore return
219
-
220
- // no fail-safe since exactly netScyIn will go into the market
221
- }
222
-
223
- /**
224
- * @notice Note that although we will only use almost all of the `exactScyIn`, we will still transfer all in so that
225
- not to leave dust behind
226
- */
227
- function _swapExactScyForPt(
228
- address receiver,
229
- address market,
230
- uint256 exactScyIn,
231
- uint256 minPtOut,
232
- ApproxParams memory guessPtOut,
233
- bool doPull
234
- ) internal returns (uint256 netPtOut) {
235
- MarketState memory state = IPMarket(market).readState(false);
236
- (ISuperComposableYield SCY, , IPYieldToken YT) = IPMarket(market).readTokens();
237
-
238
- (netPtOut, , ) = state.approxSwapExactScyForPt(
239
- YT.newIndex(),
240
- exactScyIn,
241
- block.timestamp,
242
- guessPtOut
243
- );
244
-
245
- require(netPtOut >= minPtOut, "insufficient PT out");
246
-
247
- if (doPull) {
248
- IERC20(SCY).safeTransferFrom(msg.sender, market, exactScyIn);
249
- }
250
-
251
- IPMarket(market).swapScyForExactPt(receiver, netPtOut, EMPTY_BYTES); // ignore return
252
-
253
- // no fail-safe since exactly netPtOut >= minPtOut will be out
254
- }
255
-
256
- /**
257
- * @notice swap from any ERC20 tokens, through Uniswap's forks, to get baseTokens to make SCY, then swap
258
- from SCY to PT
259
- * @dev simply a combination of _mintScyFromToken & _swapExactScyForPt
260
- */
261
- function _swapExactTokenForPt(
262
- address receiver,
263
- address market,
264
- uint256 minPtOut,
265
- ApproxParams memory guessPtOut,
266
- TokenInput calldata input
267
- ) internal returns (uint256 netPtOut) {
268
- (ISuperComposableYield SCY, , ) = IPMarket(market).readTokens();
269
-
270
- // all output SCY is transferred directly to the market
271
- uint256 netScyUseToBuyPt = _mintScyFromToken(address(market), address(SCY), 1, input);
272
-
273
- // SCY is already in the market, hence doPull = false
274
- netPtOut = _swapExactScyForPt(
275
- receiver,
276
- market,
277
- netScyUseToBuyPt,
278
- minPtOut,
279
- guessPtOut,
280
- false
281
- );
282
- }
283
-
284
- /**
285
- * @notice swap from PT to SCY, then redeem SCY to baseToken & swap through Uniswap's forks to get tokenOut
286
- * @dev simply a combination of _swapExactPtForScy & _redeemScyToToken
287
- */
288
- function _swapExactPtForToken(
289
- address receiver,
290
- address market,
291
- uint256 exactPtIn,
292
- TokenOutput calldata output,
293
- bool doPull
294
- ) internal returns (uint256 netTokenOut) {
295
- (ISuperComposableYield SCY, , ) = IPMarket(market).readTokens();
296
-
297
- // all output SCY is directly transferred to the SCY contract
298
- uint256 netScyReceived = _swapExactPtForScy(address(SCY), market, exactPtIn, 1, doPull);
299
-
300
- // since all SCY is already at the SCY contract, doPull = false
301
- netTokenOut = _redeemScyToToken(receiver, address(SCY), netScyReceived, output, false);
302
- }
303
- }
@@ -1,305 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.15;
3
-
4
- import "../libraries/math/MarketApproxLib.sol";
5
- import "../libraries/kyberswap/KyberSwapHelper.sol";
6
-
7
- interface IPActionCore {
8
- event AddLiquidityDualScyAndPt(
9
- address indexed caller,
10
- address indexed market,
11
- address indexed receiver,
12
- uint256 scyUsed,
13
- uint256 ptUsed,
14
- uint256 lpOut
15
- );
16
-
17
- event AddLiquidityDualIbTokenAndPt(
18
- address indexed caller,
19
- address indexed market,
20
- address indexed receiver,
21
- uint256 ibTokenUsed,
22
- uint256 ptUsed,
23
- uint256 lpOut
24
- );
25
-
26
- event RemoveLiquidityDualScyAndPt(
27
- address indexed caller,
28
- address indexed market,
29
- address receiver,
30
- uint256 lpIn,
31
- uint256 amountPTOut,
32
- uint256 amountSCYOut
33
- );
34
-
35
- event RemoveLiquidityDualIbTokenAndPt(
36
- address indexed caller,
37
- address indexed market,
38
- address receiver,
39
- uint256 lpIn,
40
- uint256 amountPTOut,
41
- uint256 amountIbTokenOut
42
- );
43
-
44
- event SwapPtAndScy(
45
- address indexed caller,
46
- address indexed market,
47
- address indexed receiver,
48
- int256 amountPtToAccount,
49
- int256 amountScyToAccount
50
- );
51
-
52
- event SwapPtAndToken(
53
- address indexed caller,
54
- address indexed market,
55
- address indexed token,
56
- address receiver,
57
- int256 amountPtToAccount,
58
- int256 amountTokenToAccount
59
- );
60
-
61
- event MintScyFromToken(
62
- address indexed caller,
63
- address indexed receiver,
64
- address indexed SCY,
65
- address tokenIn,
66
- uint256 netTokenIn,
67
- uint256 netScyOut
68
- );
69
-
70
- event RedeemScyToToken(
71
- address indexed caller,
72
- address indexed receiver,
73
- address indexed SCY,
74
- uint256 netScyIn,
75
- address tokenOut,
76
- uint256 netTokenOut
77
- );
78
-
79
- event MintPyFromScy(
80
- address indexed caller,
81
- address indexed receiver,
82
- address indexed YT,
83
- uint256 netScyIn,
84
- uint256 netPyOut
85
- );
86
-
87
- event RedeemPyToScy(
88
- address indexed caller,
89
- address indexed receiver,
90
- address indexed YT,
91
- uint256 netPyIn,
92
- uint256 netScyOut
93
- );
94
-
95
- event MintPyFromToken(
96
- address indexed caller,
97
- address indexed receiver,
98
- address indexed YT,
99
- address tokenIn,
100
- uint256 netTokenIn,
101
- uint256 netPyOut
102
- );
103
-
104
- event RedeemPyToToken(
105
- address indexed caller,
106
- address indexed receiver,
107
- address indexed YT,
108
- uint256 netPyIn,
109
- address tokenOut,
110
- uint256 netTokenOut
111
- );
112
-
113
- function addLiquidityDualScyAndPt(
114
- address receiver,
115
- address market,
116
- uint256 scyDesired,
117
- uint256 ptDesired,
118
- uint256 minLpOut
119
- )
120
- external
121
- returns (
122
- uint256 netLpOut,
123
- uint256 scyUsed,
124
- uint256 ptUsed
125
- );
126
-
127
- /// @dev refer to the internal function
128
- function addLiquidityDualIbTokenAndPt(
129
- address receiver,
130
- address market,
131
- uint256 ibTokenDesired,
132
- uint256 ptDesired,
133
- uint256 minLpOut
134
- )
135
- external
136
- returns (
137
- uint256 netLpOut,
138
- uint256 ibTokenUsed,
139
- uint256 ptUsed
140
- );
141
-
142
- function addLiquiditySinglePt(
143
- address receiver,
144
- address market,
145
- uint256 netPtIn,
146
- uint256 minLpOut,
147
- ApproxParams calldata guessPtSwapToScy
148
- ) external returns (uint256 netLpOut);
149
-
150
- function addLiquiditySingleScy(
151
- address receiver,
152
- address market,
153
- uint256 netScyIn,
154
- uint256 minLpOut,
155
- ApproxParams calldata guessPtReceivedFromScy
156
- ) external returns (uint256 netLpOut);
157
-
158
- function addLiquiditySingleToken(
159
- address receiver,
160
- address market,
161
- uint256 minLpOut,
162
- ApproxParams calldata guessPtReceivedFromScy,
163
- TokenInput calldata input
164
- ) external returns (uint256 netLpOut);
165
-
166
- function removeLiquidityDualScyAndPt(
167
- address receiver,
168
- address market,
169
- uint256 lpToRemove,
170
- uint256 scyOutMin,
171
- uint256 ptOutMin
172
- ) external returns (uint256 netScyOut, uint256 netPtOut);
173
-
174
- /// @dev refer to the internal function
175
- function removeLiquidityDualIbTokenAndPt(
176
- address receiver,
177
- address market,
178
- uint256 lpToRemove,
179
- uint256 ibTokenMin,
180
- uint256 ptOutMin
181
- ) external returns (uint256 netIbTokenOut, uint256 netPtOut);
182
-
183
- function removeLiquiditySinglePt(
184
- address receiver,
185
- address market,
186
- uint256 lpToRemove,
187
- uint256 minPtOut,
188
- ApproxParams calldata guessPtOut
189
- ) external returns (uint256 netPtOut);
190
-
191
- function removeLiquiditySingleScy(
192
- address receiver,
193
- address market,
194
- uint256 lpToRemove,
195
- uint256 minScyOut
196
- ) external returns (uint256 netScyOut);
197
-
198
- function removeLiquiditySingleToken(
199
- address receiver,
200
- address market,
201
- uint256 lpToRemove,
202
- TokenOutput calldata output
203
- ) external returns (uint256 netTokenOut);
204
-
205
- function swapExactPtForScy(
206
- address receiver,
207
- address market,
208
- uint256 exactPtIn,
209
- uint256 minScyOut
210
- ) external returns (uint256 netScyOut);
211
-
212
- function swapPtForExactScy(
213
- address receiver,
214
- address market,
215
- uint256 exactScyOut,
216
- uint256 maxPtIn,
217
- ApproxParams calldata guessPtIn
218
- ) external returns (uint256 netPtIn);
219
-
220
- function swapScyForExactPt(
221
- address receiver,
222
- address market,
223
- uint256 exactPtOut,
224
- uint256 maxScyIn
225
- ) external returns (uint256 netScyIn);
226
-
227
- function swapExactScyForPt(
228
- address receiver,
229
- address market,
230
- uint256 exactScyIn,
231
- uint256 minPtOut,
232
- ApproxParams calldata guessPtOut
233
- ) external returns (uint256 netPtOut);
234
-
235
- function mintScyFromToken(
236
- address receiver,
237
- address SCY,
238
- uint256 minScyOut,
239
- TokenInput calldata input
240
- ) external returns (uint256 netScyOut);
241
-
242
- function redeemScyToToken(
243
- address receiver,
244
- address SCY,
245
- uint256 netScyIn,
246
- TokenOutput calldata output
247
- ) external returns (uint256 netTokenOut);
248
-
249
- function mintPyFromToken(
250
- address receiver,
251
- address YT,
252
- uint256 minPyOut,
253
- TokenInput calldata input
254
- ) external returns (uint256 netPyOut);
255
-
256
- function redeemPyToToken(
257
- address receiver,
258
- address YT,
259
- uint256 netPyIn,
260
- TokenOutput calldata output
261
- ) external returns (uint256 netTokenOut);
262
-
263
- function mintPyFromScy(
264
- address receiver,
265
- address YT,
266
- uint256 netScyIn,
267
- uint256 minPyOut
268
- ) external returns (uint256 netPyOut);
269
-
270
- function redeemPyToScy(
271
- address receiver,
272
- address YT,
273
- uint256 netPyIn,
274
- uint256 minScyOut
275
- ) external returns (uint256 netScyOut);
276
-
277
- function swapExactTokenForPt(
278
- address receiver,
279
- address market,
280
- uint256 minPtOut,
281
- ApproxParams calldata guessPtOut,
282
- TokenInput calldata input
283
- ) external returns (uint256 netPtOut);
284
-
285
- function swapExactPtForToken(
286
- address receiver,
287
- address market,
288
- uint256 exactPtIn,
289
- TokenOutput calldata output
290
- ) external returns (uint256 netTokenOut);
291
-
292
- function redeemDueInterestAndRewards(
293
- address user,
294
- address[] calldata scys,
295
- address[] calldata yts,
296
- address[] calldata markets
297
- )
298
- external
299
- returns (
300
- uint256[][] memory scyRewards,
301
- uint256[] memory ytInterests,
302
- uint256[][] memory ytRewards,
303
- uint256[][] memory marketRewards
304
- );
305
- }