@pendle/core-v2 2.1.2-mainnet → 2.3.0-mainnet

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 (491) hide show
  1. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
  2. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.json +2 -2
  3. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
  4. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +2 -2
  6. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  7. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.json +2 -2
  9. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  11. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  12. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  13. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  14. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  15. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
  16. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  18. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  19. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  20. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  21. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  22. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
  23. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  24. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  25. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  26. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  27. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  28. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  29. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  30. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +2 -2
  32. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +2 -2
  34. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +2 -2
  36. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  38. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  40. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  43. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  45. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.json +2 -2
  49. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/StandardizedYield/SYUtils.sol/SYUtils.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/StandardizedYield/SYUtils.sol/SYUtils.json +2 -2
  53. package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  55. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +2 -2
  56. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSY.sol/PendleAuraWethAnkrethSY.dbg.json +4 -0
  57. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSY.sol/PendleAuraWethAnkrethSY.json +1192 -0
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.dbg.json +1 -1
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.json +2 -2
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.dbg.json +1 -1
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.json +2 -2
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.json +2 -2
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.dbg.json +1 -1
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.json +2 -2
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol/PendleAuraBalancerStableLPSY.dbg.json +1 -1
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.dbg.json +1 -1
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.json +2 -2
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.dbg.json +1 -1
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +2 -2
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  77. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +2 -2
  78. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +1 -1
  79. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.json +2 -2
  80. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +1 -1
  81. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.json +2 -2
  82. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +1 -1
  83. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.json +2 -2
  84. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  85. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.dbg.json +1 -1
  86. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
  87. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +2 -2
  88. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
  89. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.json +2 -2
  90. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  91. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
  92. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  93. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  94. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  95. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  96. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  97. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  98. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  99. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  100. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  101. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +1 -1
  102. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +1 -1
  103. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +2 -2
  104. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +1 -1
  105. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +2 -2
  106. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +1 -1
  107. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +2 -2
  108. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  109. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.json +2 -2
  110. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
  111. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.json +2 -2
  112. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  113. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.json +2 -2
  114. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
  115. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.json +2 -2
  116. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
  117. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.json +2 -2
  118. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
  119. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
  120. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.json +2 -2
  121. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  122. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +2 -2
  123. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +1 -1
  124. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.json +2 -2
  125. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  126. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  127. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.json +2 -2
  128. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.dbg.json +1 -1
  129. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.json +2 -2
  130. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +1 -1
  131. package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.dbg.json +1 -1
  132. package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.dbg.json +1 -1
  133. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +1 -1
  134. package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
  135. package/build/artifacts/contracts/interfaces/ConvexCurve/ICrvDepositor.sol/ICrvDepositor.dbg.json +1 -1
  136. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
  137. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
  138. package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.dbg.json +1 -1
  139. package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.dbg.json +1 -1
  140. package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.dbg.json +1 -1
  141. package/build/artifacts/contracts/interfaces/IApeStaking.sol/IApeStaking.dbg.json +1 -1
  142. package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.dbg.json +1 -1
  143. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  144. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  145. package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +4 -0
  146. package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.json +307 -0
  147. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +4 -0
  148. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.json +269 -0
  149. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +4 -0
  150. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.json +1260 -0
  151. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  152. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +4 -0
  153. package/build/artifacts/contracts/interfaces/{IAToken.sol/IAToken.json → IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.json} +114 -93
  154. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +4 -0
  155. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.json +184 -0
  156. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  157. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  158. package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.dbg.json +4 -0
  159. package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.json +40 -0
  160. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  161. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  162. package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.dbg.json +1 -1
  163. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
  164. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  165. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  166. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  167. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +1 -1
  168. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  169. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  170. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  171. package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.dbg.json +4 -0
  172. package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.json +55 -0
  173. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +4 -0
  174. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +2322 -0
  175. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  176. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  177. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  178. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +1 -1
  179. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  180. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  181. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  182. package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +1 -1
  183. package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +1 -1
  184. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  185. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.dbg.json +1 -1
  186. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.json +2 -2
  187. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  188. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.json +2 -2
  189. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
  190. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +2 -2
  191. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  192. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
  193. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +1 -1
  194. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.json +2 -2
  195. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +4 -0
  196. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +30 -0
  197. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +4 -0
  198. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +307 -0
  199. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +4 -0
  200. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +333 -0
  201. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +4 -0
  202. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +1397 -0
  203. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +4 -0
  204. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +310 -0
  205. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +4 -0
  206. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +228 -0
  207. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +4 -0
  208. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +93 -0
  209. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +4 -0
  210. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.json +10 -0
  211. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  212. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +2 -2
  213. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  214. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +2 -2
  215. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  216. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +2 -2
  217. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  218. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +2 -2
  219. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  220. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +2 -2
  221. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  222. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
  223. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
  224. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  225. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  226. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  227. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  228. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  229. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  230. package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.dbg.json +1 -1
  231. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +1 -1
  232. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
  233. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapAggregator.sol/PendleSwapAggregator.dbg.json +1 -1
  234. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapAggregator.sol/PendleSwapAggregator.json +2 -2
  235. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.dbg.json +1 -1
  236. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +1 -1
  237. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +1 -1
  238. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol +4 -5
  239. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol +3 -5
  240. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol +7 -10
  241. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol +8 -10
  242. package/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol +16 -8
  243. package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +3 -5
  244. package/contracts/LiquidityMining/README.md +49 -46
  245. package/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol +9 -14
  246. package/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +4 -10
  247. package/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +23 -36
  248. package/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +18 -24
  249. package/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +3 -4
  250. package/contracts/LiquidityMining/libraries/VeBalanceLib.sol +20 -26
  251. package/contracts/core/BulkSeller/BulkSeller.sol +1 -5
  252. package/contracts/core/BulkSeller/BulkSellerFactory.sol +4 -5
  253. package/contracts/core/BulkSeller/BulkSellerMathCore.sol +20 -25
  254. package/contracts/core/Market/MarketMathCore.sol +23 -69
  255. package/contracts/core/Market/OracleLib.sol +4 -4
  256. package/contracts/core/Market/PendleGauge.sol +7 -20
  257. package/contracts/core/Market/PendleMarket.sol +5 -15
  258. package/contracts/core/Market/PendleMarketFactory.sol +3 -9
  259. package/contracts/core/RewardManager/RewardManager.sol +4 -6
  260. package/contracts/core/RewardManager/RewardManagerAbstract.sol +4 -4
  261. package/contracts/core/StandardizedYield/PYIndex.sol +7 -36
  262. package/contracts/core/StandardizedYield/SYBase.sol +20 -26
  263. package/contracts/core/StandardizedYield/SYBaseWithRewards.sol +7 -19
  264. package/contracts/core/StandardizedYield/SYUtils.sol +4 -5
  265. package/contracts/core/StandardizedYield/StEthHelper.sol +12 -16
  266. package/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol +14 -24
  267. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSY.sol +127 -0
  268. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol +12 -20
  269. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol +12 -20
  270. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol +1 -5
  271. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol +28 -44
  272. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol +28 -47
  273. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol +6 -10
  274. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol +6 -10
  275. package/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol +13 -22
  276. package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol +20 -27
  277. package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol +20 -27
  278. package/contracts/core/StandardizedYield/implementations/Convex/README.md +4 -4
  279. package/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol +32 -40
  280. package/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol +10 -12
  281. package/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol +14 -18
  282. package/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol +32 -48
  283. package/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol +6 -7
  284. package/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol +14 -24
  285. package/contracts/core/StandardizedYield/implementations/GLP/README.md +15 -13
  286. package/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol +12 -38
  287. package/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol +13 -23
  288. package/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol +13 -23
  289. package/contracts/core/YieldContracts/PendleYieldToken.sol +28 -44
  290. package/contracts/core/YieldContractsV2/InterestManagerYTV2.sol +4 -4
  291. package/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol +1 -1
  292. package/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol +24 -38
  293. package/contracts/core/erc20/PendleERC20.sol +14 -44
  294. package/contracts/core/libraries/ArrayLib.sol +20 -9
  295. package/contracts/core/libraries/BaseSplitCodeFactory.sol +5 -7
  296. package/contracts/core/libraries/BoringOwnableUpgradeable.sol +1 -5
  297. package/contracts/core/libraries/Errors.sol +0 -2
  298. package/contracts/core/libraries/StringLib.sol +14 -20
  299. package/contracts/core/libraries/TokenHelper.sol +6 -31
  300. package/contracts/core/libraries/math/LogExpMath.sol +2 -2
  301. package/contracts/core/libraries/math/Math.sol +3 -15
  302. package/contracts/interfaces/Balancer/IComposableStable.sol +4 -14
  303. package/contracts/interfaces/Balancer/IMetaStablePool.sol +4 -13
  304. package/contracts/interfaces/Balancer/IVault.sol +4 -6
  305. package/contracts/interfaces/ConvexCurve/IBooster.sol +4 -16
  306. package/contracts/interfaces/ConvexCurve/ICrvDepositor.sol +1 -5
  307. package/contracts/interfaces/ConvexCurve/IRewards.sol +1 -4
  308. package/contracts/interfaces/Curve/ICrvPool.sol +12 -11
  309. package/contracts/interfaces/Curve/ITriCrvPool.sol +4 -4
  310. package/contracts/interfaces/GMX/IGMXVault.sol +4 -4
  311. package/contracts/interfaces/GMX/IRewardRouterV2.sol +4 -4
  312. package/contracts/interfaces/IApeStaking.sol +3 -4
  313. package/contracts/interfaces/IDiamondLoupe.sol +3 -1
  314. package/contracts/interfaces/IERC4626.sol +1 -5
  315. package/contracts/interfaces/IPActionAddRemoveLiq.sol +2 -15
  316. package/contracts/interfaces/IPActionInfoStatic.sol +43 -0
  317. package/contracts/interfaces/IPActionMarketAuxStatic.sol +34 -0
  318. package/contracts/interfaces/IPActionMarketCoreStatic.sol +335 -0
  319. package/contracts/interfaces/IPActionMintRedeemStatic.sol +55 -0
  320. package/contracts/interfaces/IPActionStorageStatic.sol +24 -0
  321. package/contracts/interfaces/IPActionVePendleStatic.sol +9 -0
  322. package/contracts/interfaces/IPBulkSellerSYCallback.sol +1 -5
  323. package/contracts/interfaces/IPFeeDistributor.sol +4 -3
  324. package/contracts/interfaces/IPGaugeController.sol +3 -9
  325. package/contracts/interfaces/IPInterestManagerYT.sol +3 -4
  326. package/contracts/interfaces/IPInterestManagerYTV2.sol +4 -6
  327. package/contracts/interfaces/IPMarket.sol +5 -16
  328. package/contracts/interfaces/IPMarketFactory.sol +3 -8
  329. package/contracts/interfaces/IPMarketSwapCallback.sol +1 -5
  330. package/contracts/interfaces/IPMiniDiamond.sol +12 -0
  331. package/contracts/interfaces/IPRouterStatic.sol +19 -0
  332. package/contracts/interfaces/IPVotingController.sol +5 -6
  333. package/contracts/interfaces/IPVotingEscrowMainchain.sol +8 -7
  334. package/contracts/interfaces/IPYieldToken.sol +4 -3
  335. package/contracts/interfaces/IPYieldTokenV2.sol +4 -3
  336. package/contracts/interfaces/IRewardManager.sol +4 -4
  337. package/contracts/interfaces/IStETH.sol +4 -3
  338. package/contracts/interfaces/IStandardizedYield.sol +10 -14
  339. package/contracts/interfaces/IStargateRouter.sol +1 -5
  340. package/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol +4 -1
  341. package/contracts/offchain-helpers/BulkSellerOffchain.sol +7 -11
  342. package/contracts/offchain-helpers/Multicall2.sol +14 -24
  343. package/contracts/offchain-helpers/router-static/PendleRouterStatic.sol +19 -0
  344. package/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol +122 -0
  345. package/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol +165 -0
  346. package/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol +780 -0
  347. package/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol +158 -0
  348. package/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol +76 -0
  349. package/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol +55 -0
  350. package/contracts/offchain-helpers/router-static/base/StorageLayout.sol +21 -0
  351. package/contracts/router/ActionAddRemoveLiq.sol +2 -17
  352. package/contracts/router/ActionSwapYT.sol +9 -3
  353. package/contracts/router/base/ActionBaseCallback.sol +2 -2
  354. package/contracts/router/base/ActionBaseMintRedeem.sol +4 -5
  355. package/contracts/router/base/CallbackHelper.sol +16 -27
  356. package/contracts/router/base/MarketApproxLib.sol +18 -82
  357. package/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol +4 -10
  358. package/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol +4 -5
  359. package/contracts/router/swap-aggregator/IPSwapAggregator.sol +1 -5
  360. package/contracts/router/swap-aggregator/PendleSwapAggregator.sol +1 -5
  361. package/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol +4 -5
  362. package/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol +9 -9
  363. package/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol +3 -4
  364. package/deployments/1-core.json +1 -1
  365. package/deployments/1-markets/BALANCER-LP-AURA-ANKRETH-WETH-MARCH-28-2024.json +11 -0
  366. package/deployments/42161-core.json +1 -1
  367. package/package.json +5 -4
  368. package/typechain-types/ActionMarketCoreStatic.ts +0 -4
  369. package/typechain-types/ActionStorageStatic.ts +5 -3
  370. package/typechain-types/IPActionMarketCoreStatic.ts +0 -4
  371. package/typechain-types/IPActionStorageStatic.ts +5 -3
  372. package/typechain-types/IPRouterStatic.ts +5 -7
  373. package/typechain-types/IStargateLP.ts +306 -0
  374. package/typechain-types/IStargateStaking.ts +232 -0
  375. package/typechain-types/PendleAuraWethAnkrethSY.ts +1523 -0
  376. package/typechain-types/PendlePtOracleBase.ts +139 -0
  377. package/typechain-types/PendleStargateLP.ts +1442 -0
  378. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1 -1
  379. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  380. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
  381. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -11
  382. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
  383. package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -1
  384. package/typechain-types/factories/ActionMisc__factory.ts +1 -1
  385. package/typechain-types/factories/ActionStorageStatic__factory.ts +3 -3
  386. package/typechain-types/factories/ActionSwapPT__factory.ts +1 -1
  387. package/typechain-types/factories/ActionSwapYT__factory.ts +1 -1
  388. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  389. package/typechain-types/factories/AddressProvider__factory.ts +1 -1
  390. package/typechain-types/factories/BaseSplitCodeFactoryContract__factory.ts +1 -1
  391. package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +1 -1
  392. package/typechain-types/factories/Broadcaster__factory.ts +1 -1
  393. package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
  394. package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
  395. package/typechain-types/factories/BulkSeller__factory.ts +1 -1
  396. package/typechain-types/factories/Errors__factory.ts +1 -1
  397. package/typechain-types/factories/IPActionMarketCoreStatic__factory.ts +0 -10
  398. package/typechain-types/factories/IPActionStorageStatic__factory.ts +2 -2
  399. package/typechain-types/factories/IPRouterStatic__factory.ts +2 -12
  400. package/typechain-types/factories/IStargateLP__factory.ts +212 -0
  401. package/typechain-types/factories/IStargateStaking__factory.ts +145 -0
  402. package/typechain-types/factories/MarketMathStatic__factory.ts +1 -1
  403. package/typechain-types/factories/MetaStableMath__factory.ts +1 -1
  404. package/typechain-types/factories/MetaStablePreview__factory.ts +1 -1
  405. package/typechain-types/factories/Multicall2__factory.ts +1 -1
  406. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  407. package/typechain-types/factories/PendleAuraWethAnkrethSY__factory.ts +1265 -0
  408. package/typechain-types/factories/PendleAuraWethRethSY__factory.ts +1 -1
  409. package/typechain-types/factories/PendleAuraWethWstethSY__factory.ts +1 -1
  410. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
  411. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
  412. package/typechain-types/factories/PendleERC20Permit__factory.ts +1 -1
  413. package/typechain-types/factories/PendleERC20__factory.ts +1 -1
  414. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  415. package/typechain-types/factories/PendleGDaiSY__factory.ts +1 -1
  416. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  417. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  418. package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
  419. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
  420. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  421. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  422. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  423. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  424. package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +1 -1
  425. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  426. package/typechain-types/factories/PendlePtOracleBase__factory.ts +78 -0
  427. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  428. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  429. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  430. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  431. package/typechain-types/factories/PendleStargateLP__factory.ts +1241 -0
  432. package/typechain-types/factories/PendleSwapAggregator__factory.ts +1 -1
  433. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  434. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  435. package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +1 -1
  436. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  437. package/typechain-types/factories/PendleYieldTokenV2__factory.ts +1 -1
  438. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  439. package/typechain-types/factories/RouterStatic__factory.ts +1 -1
  440. package/typechain-types/factories/SAPE__factory.ts +1 -1
  441. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  442. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  443. package/typechain-types/hardhat.d.ts +44 -17
  444. package/typechain-types/index.ts +12 -2
  445. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +0 -4
  446. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +0 -4
  447. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.json +0 -87
  448. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +0 -4
  449. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.json +0 -59
  450. package/build/artifacts/contracts/interfaces/IBoringOwnableUpgradeable.sol/IBoringOwnableUpgradeable.dbg.json +0 -4
  451. package/build/artifacts/contracts/interfaces/IBoringOwnableUpgradeable.sol/IBoringOwnableUpgradeable.json +0 -34
  452. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.dbg.json +0 -4
  453. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.json +0 -162
  454. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.dbg.json +0 -4
  455. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.json +0 -87
  456. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +0 -4
  457. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.json +0 -24
  458. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.dbg.json +0 -4
  459. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.json +0 -24
  460. package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.dbg.json +0 -4
  461. package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.json +0 -92
  462. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.dbg.json +0 -4
  463. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.json +0 -199
  464. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +0 -4
  465. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.json +0 -168
  466. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +0 -4
  467. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.json +0 -252
  468. package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.dbg.json +0 -4
  469. package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.json +0 -132
  470. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +0 -4
  471. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.json +0 -148
  472. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +0 -4
  473. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +0 -259
  474. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +0 -4
  475. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +0 -2825
  476. package/contracts/interfaces/IAToken.sol +0 -44
  477. package/contracts/interfaces/IAavePool.sol +0 -41
  478. package/contracts/interfaces/IAaveRewardsController.sol +0 -32
  479. package/contracts/interfaces/IBoringOwnableUpgradeable.sol +0 -10
  480. package/contracts/interfaces/IEulerEToken.sol +0 -60
  481. package/contracts/interfaces/IEulerMarkets.sol +0 -46
  482. package/contracts/interfaces/IPGovernanceManager.sol +0 -28
  483. package/contracts/interfaces/IPPermissionsV2Upg.sol +0 -28
  484. package/contracts/interfaces/IREDACTEDStaking.sol +0 -35
  485. package/contracts/interfaces/ISAvax.sol +0 -61
  486. package/contracts/interfaces/ISJoe.sol +0 -57
  487. package/contracts/interfaces/IWAvax.sol +0 -34
  488. package/contracts/interfaces/IWXBTRFLY.sol +0 -39
  489. package/contracts/interfaces/IYearnVault.sol +0 -46
  490. package/contracts/offchain-helpers/MarketMathStatic.sol +0 -572
  491. package/contracts/offchain-helpers/RouterStatic.sol +0 -929
@@ -8,9 +8,10 @@ interface IStETH {
8
8
 
9
9
  function submit(address referral) external payable returns (uint256 amount);
10
10
 
11
- function burnShares(address _account, uint256 _sharesAmount)
12
- external
13
- returns (uint256 newTotalShares);
11
+ function burnShares(
12
+ address _account,
13
+ uint256 _sharesAmount
14
+ ) external returns (uint256 newTotalShares);
14
15
 
15
16
  function sharesOf(address account) external view returns (uint256);
16
17
 
@@ -62,7 +62,7 @@ interface IStandardizedYield is IERC20Metadata {
62
62
  * @dev Emits a {Deposit} event
63
63
  *
64
64
  * Requirements:
65
- * - (`baseTokenIn`) must be a valid base token.
65
+ * - (`tokenIn`) must be a valid base token.
66
66
  */
67
67
  function deposit(
68
68
  address receiver,
@@ -146,15 +146,15 @@ interface IStandardizedYield is IERC20Metadata {
146
146
 
147
147
  function isValidTokenOut(address token) external view returns (bool);
148
148
 
149
- function previewDeposit(address tokenIn, uint256 amountTokenToDeposit)
150
- external
151
- view
152
- returns (uint256 amountSharesOut);
149
+ function previewDeposit(
150
+ address tokenIn,
151
+ uint256 amountTokenToDeposit
152
+ ) external view returns (uint256 amountSharesOut);
153
153
 
154
- function previewRedeem(address tokenOut, uint256 amountSharesToRedeem)
155
- external
156
- view
157
- returns (uint256 amountTokenOut);
154
+ function previewRedeem(
155
+ address tokenOut,
156
+ uint256 amountSharesToRedeem
157
+ ) external view returns (uint256 amountTokenOut);
158
158
 
159
159
  /**
160
160
  * @notice This function contains information to interpret what the asset is
@@ -165,9 +165,5 @@ interface IStandardizedYield is IERC20Metadata {
165
165
  function assetInfo()
166
166
  external
167
167
  view
168
- returns (
169
- AssetType assetType,
170
- address assetAddress,
171
- uint8 assetDecimals
172
- );
168
+ returns (AssetType assetType, address assetAddress, uint8 assetDecimals);
173
169
  }
@@ -23,11 +23,7 @@
23
23
  pragma solidity 0.8.17;
24
24
 
25
25
  interface IStargateRouter {
26
- function addLiquidity(
27
- uint256 _poolId,
28
- uint256 _amountLD,
29
- address _to
30
- ) external;
26
+ function addLiquidity(uint256 _poolId, uint256 _amountLD, address _to) external;
31
27
 
32
28
  function instantRedeemLocal(
33
29
  uint16 _srcPoolId,
@@ -17,7 +17,10 @@ contract BaseSplitCodeFactoryContract is BoringOwnableUpgradeable {
17
17
  __BoringOwnable_init();
18
18
  }
19
19
 
20
- function deploy(string memory name, bytes calldata creationCode)
20
+ function deploy(
21
+ string memory name,
22
+ bytes calldata creationCode
23
+ )
21
24
  external
22
25
  onlyOwner
23
26
  returns (
@@ -9,11 +9,9 @@ contract BulkSellerOffchain {
9
9
  using BulkSellerMathCore for BulkSellerState;
10
10
  using Math for uint256;
11
11
 
12
- function calcCurrentRates(IPBulkSeller bulk)
13
- external
14
- view
15
- returns (uint256 rateTokenToSy, uint256 rateSyToToken)
16
- {
12
+ function calcCurrentRates(
13
+ IPBulkSeller bulk
14
+ ) external view returns (uint256 rateTokenToSy, uint256 rateSyToToken) {
17
15
  BulkSellerState memory state = bulk.readState();
18
16
  address SY = bulk.SY();
19
17
  address token = bulk.token();
@@ -32,14 +30,12 @@ contract BulkSellerOffchain {
32
30
  }
33
31
  }
34
32
 
35
- function getCurrentState(IPBulkSeller bulk)
33
+ function getCurrentState(
34
+ IPBulkSeller bulk
35
+ )
36
36
  external
37
37
  view
38
- returns (
39
- BulkSellerState memory state,
40
- uint256 tokenProp,
41
- uint256 hypoTokenBal
42
- )
38
+ returns (BulkSellerState memory state, uint256 tokenProp, uint256 hypoTokenBal)
43
39
  {
44
40
  state = bulk.readState();
45
41
 
@@ -16,10 +16,9 @@ contract Multicall2 {
16
16
  bytes returnData;
17
17
  }
18
18
 
19
- function aggregate(Call[] memory calls)
20
- public
21
- returns (uint256 blockNumber, bytes[] memory returnData)
22
- {
19
+ function aggregate(
20
+ Call[] memory calls
21
+ ) public returns (uint256 blockNumber, bytes[] memory returnData) {
23
22
  blockNumber = block.number;
24
23
  returnData = new bytes[](calls.length);
25
24
  for (uint256 i = 0; i < calls.length; i++) {
@@ -29,14 +28,9 @@ contract Multicall2 {
29
28
  }
30
29
  }
31
30
 
32
- function blockAndAggregate(Call[] memory calls)
33
- public
34
- returns (
35
- uint256 blockNumber,
36
- bytes32 blockHash,
37
- Result[] memory returnData
38
- )
39
- {
31
+ function blockAndAggregate(
32
+ Call[] memory calls
33
+ ) public returns (uint256 blockNumber, bytes32 blockHash, Result[] memory returnData) {
40
34
  (blockNumber, blockHash, returnData) = tryBlockAndAggregate(true, calls);
41
35
  }
42
36
 
@@ -72,10 +66,10 @@ contract Multicall2 {
72
66
  blockHash = blockhash(block.number - 1);
73
67
  }
74
68
 
75
- function tryAggregate(bool requireSuccess, Call[] memory calls)
76
- public
77
- returns (Result[] memory returnData)
78
- {
69
+ function tryAggregate(
70
+ bool requireSuccess,
71
+ Call[] memory calls
72
+ ) public returns (Result[] memory returnData) {
79
73
  returnData = new Result[](calls.length);
80
74
  for (uint256 i = 0; i < calls.length; i++) {
81
75
  (bool success, bytes memory ret) = calls[i].target.call(calls[i].callData);
@@ -88,14 +82,10 @@ contract Multicall2 {
88
82
  }
89
83
  }
90
84
 
91
- function tryBlockAndAggregate(bool requireSuccess, Call[] memory calls)
92
- public
93
- returns (
94
- uint256 blockNumber,
95
- bytes32 blockHash,
96
- Result[] memory returnData
97
- )
98
- {
85
+ function tryBlockAndAggregate(
86
+ bool requireSuccess,
87
+ Call[] memory calls
88
+ ) public returns (uint256 blockNumber, bytes32 blockHash, Result[] memory returnData) {
99
89
  blockNumber = block.number;
100
90
  blockHash = blockhash(block.number);
101
91
  returnData = tryAggregate(requireSuccess, calls);
@@ -0,0 +1,19 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "@openzeppelin/contracts/proxy/Proxy.sol";
5
+ import "../../interfaces/IPRouterStatic.sol";
6
+ import "./base/StorageLayout.sol";
7
+
8
+ // solhint-disable no-empty-blocks
9
+ contract PendleRouterStatic is Proxy, StorageLayout {
10
+ constructor(address actionStorage) {
11
+ owner = msg.sender;
12
+ selectorToFacet[IPMiniDiamond.setFacetForSelectors.selector] = actionStorage;
13
+ }
14
+
15
+ function _implementation() internal view override returns (address res) {
16
+ res = selectorToFacet[msg.sig];
17
+ require(res != address(0), "selector not found");
18
+ }
19
+ }
@@ -0,0 +1,122 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "../../../interfaces/IPMarket.sol";
5
+ import "../../../interfaces/IPRouterStatic.sol";
6
+ import "../../../interfaces/IPYieldContractFactory.sol";
7
+ import "../../../interfaces/IPMarketFactory.sol";
8
+ import "../../../interfaces/IPBulkSellerFactory.sol";
9
+ import "../../../interfaces/IPBulkSeller.sol";
10
+
11
+ // solhint-disable no-empty-blocks
12
+ contract ActionInfoStatic is IPActionInfoStatic {
13
+ function getPY(address py) public view returns (address pt, address yt) {
14
+ try IPYieldToken(py).PT() returns (address _pt) {
15
+ pt = _pt;
16
+ yt = py;
17
+ } catch {
18
+ pt = py;
19
+ yt = IPPrincipalToken(py).YT();
20
+ }
21
+ }
22
+
23
+ /// can be SY, PY or Market
24
+ function getTokensInOut(
25
+ address token
26
+ ) external view returns (address[] memory tokensIn, address[] memory tokensOut) {
27
+ try IStandardizedYield(token).getTokensIn() returns (address[] memory res) {
28
+ return (res, IStandardizedYield(token).getTokensOut());
29
+ } catch {}
30
+
31
+ try IPYieldToken(token).SY() returns (address SY) {
32
+ return (IStandardizedYield(SY).getTokensIn(), IStandardizedYield(SY).getTokensOut());
33
+ } catch {}
34
+
35
+ try IPMarket(token).readTokens() returns (
36
+ IStandardizedYield SY,
37
+ IPPrincipalToken,
38
+ IPYieldToken
39
+ ) {
40
+ return (SY.getTokensIn(), SY.getTokensOut());
41
+ } catch {}
42
+
43
+ revert("invalid token");
44
+ }
45
+
46
+ function getUserSYInfo(address sy, address user) external returns (UserSYInfo memory res) {
47
+ IStandardizedYield SY = IStandardizedYield(sy);
48
+
49
+ // SY
50
+ res.syBalance = TokenAmount(sy, _balanceOf(sy, user));
51
+
52
+ // Rewards
53
+ uint256[] memory rewardsOut = SY.claimRewards(user);
54
+ address[] memory rewardTokens = SY.getRewardTokens();
55
+
56
+ res.unclaimedRewards = _zipTokenAmounts(rewardTokens, rewardsOut);
57
+ }
58
+
59
+ function getUserPYInfo(address py, address user) external returns (UserPYInfo memory res) {
60
+ (address _PT, address _YT) = getPY(py);
61
+ IPYieldToken YT = IPYieldToken(_YT);
62
+
63
+ // PT / YT
64
+ res.ytBalance = TokenAmount(_YT, _balanceOf(_YT, user));
65
+ res.ptBalance = TokenAmount(_PT, _balanceOf(_PT, user));
66
+
67
+ // interest
68
+ (uint256 interestOut, uint256[] memory rewardsOut) = YT.redeemDueInterestAndRewards(
69
+ user,
70
+ true,
71
+ true
72
+ );
73
+
74
+ res.unclaimedInterest = TokenAmount(YT.SY(), interestOut);
75
+
76
+ // Rewards
77
+ address[] memory rewardTokens = YT.getRewardTokens();
78
+ res.unclaimedRewards = _zipTokenAmounts(rewardTokens, rewardsOut);
79
+ }
80
+
81
+ function getUserMarketInfo(
82
+ address market,
83
+ address user
84
+ ) external returns (UserMarketInfo memory res) {
85
+ IPMarket _market = IPMarket(market);
86
+ MarketState memory state = _market.readState(address(this));
87
+
88
+ if (uint256(state.totalLp) == 0) return res; // market not initialized
89
+
90
+ // LP PT SY
91
+ (IStandardizedYield SY, IPPrincipalToken PT, ) = _market.readTokens();
92
+
93
+ uint256 userLp = _balanceOf(market, user);
94
+ uint256 userPt = (userLp * uint256(state.totalPt)) / uint256(state.totalLp);
95
+ uint256 userSy = (userLp * uint256(state.totalSy)) / uint256(state.totalLp);
96
+
97
+ res.lpBalance = TokenAmount(market, userLp);
98
+ res.ptBalance = TokenAmount(address(PT), userPt);
99
+ res.syBalance = TokenAmount(address(SY), userSy);
100
+
101
+ // Rewards
102
+ uint256[] memory rewardsOut = _market.redeemRewards(user);
103
+ address[] memory rewardTokens = _market.getRewardTokens();
104
+
105
+ res.unclaimedRewards = _zipTokenAmounts(rewardTokens, rewardsOut);
106
+ }
107
+
108
+ function _zipTokenAmounts(
109
+ address[] memory tokens,
110
+ uint256[] memory amounts
111
+ ) internal pure returns (TokenAmount[] memory res) {
112
+ res = new TokenAmount[](tokens.length);
113
+
114
+ for (uint256 i = 0; i < tokens.length; i++) {
115
+ res[i] = TokenAmount(tokens[i], amounts[i]);
116
+ }
117
+ }
118
+
119
+ function _balanceOf(address token, address user) internal view returns (uint256) {
120
+ return IERC20(token).balanceOf(user);
121
+ }
122
+ }
@@ -0,0 +1,165 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "../../../interfaces/IPMarket.sol";
5
+ import "../../../interfaces/IPRouterStatic.sol";
6
+ import "./StorageLayout.sol";
7
+
8
+ contract ActionMarketAuxStatic is IPActionMarketAuxStatic {
9
+ using MarketMathCore for MarketState;
10
+ using Math for int256;
11
+ using Math for uint256;
12
+ using LogExpMath for int256;
13
+ using PYIndexLib for PYIndex;
14
+ using PYIndexLib for IPYieldToken;
15
+
16
+ function getMarketState(
17
+ address market
18
+ )
19
+ public
20
+ returns (
21
+ address pt,
22
+ address yt,
23
+ address sy,
24
+ int256 impliedYield,
25
+ uint256 marketExchangeRateExcludeFee,
26
+ MarketState memory state
27
+ )
28
+ {
29
+ (IStandardizedYield SY, IPPrincipalToken PT, IPYieldToken YT) = IPMarket(market)
30
+ .readTokens();
31
+
32
+ pt = address(PT);
33
+ yt = address(YT);
34
+ sy = address(SY);
35
+ state = _readState(market);
36
+ impliedYield = _getPtImpliedYield(market);
37
+ marketExchangeRateExcludeFee = getTradeExchangeRateExcludeFee(market, state);
38
+ }
39
+
40
+ function getTradeExchangeRateExcludeFee(
41
+ address market,
42
+ MarketState memory state
43
+ ) public returns (uint256) {
44
+ if (IPMarket(market).isExpired()) return Math.ONE;
45
+
46
+ MarketPreCompute memory comp = state.getMarketPreCompute(
47
+ _pyIndex(market),
48
+ block.timestamp
49
+ );
50
+ int256 preFeeExchangeRate = MarketMathCore._getExchangeRate(
51
+ state.totalPt,
52
+ comp.totalAsset,
53
+ comp.rateScalar,
54
+ comp.rateAnchor,
55
+ 0
56
+ );
57
+ return preFeeExchangeRate.Uint();
58
+ }
59
+
60
+ function getTradeExchangeRateIncludeFee(
61
+ address market,
62
+ int256 netPtOut
63
+ ) public returns (uint256) {
64
+ if (IPMarket(market).isExpired()) return Math.ONE;
65
+
66
+ int256 netPtToAccount = netPtOut;
67
+ MarketState memory state = _readState(market);
68
+ MarketPreCompute memory comp = state.getMarketPreCompute(
69
+ _pyIndex(market),
70
+ block.timestamp
71
+ );
72
+
73
+ int256 preFeeExchangeRate = MarketMathCore._getExchangeRate(
74
+ state.totalPt,
75
+ comp.totalAsset,
76
+ comp.rateScalar,
77
+ comp.rateAnchor,
78
+ netPtToAccount
79
+ );
80
+
81
+ if (netPtToAccount > 0) {
82
+ int256 postFeeExchangeRate = preFeeExchangeRate.divDown(comp.feeRate);
83
+ if (postFeeExchangeRate < Math.IONE)
84
+ revert Errors.MarketExchangeRateBelowOne(postFeeExchangeRate);
85
+ return postFeeExchangeRate.Uint();
86
+ } else {
87
+ return preFeeExchangeRate.mulDown(comp.feeRate).Uint();
88
+ }
89
+ }
90
+
91
+ function calcPriceImpactPt(
92
+ address market,
93
+ int256 netPtOut
94
+ ) public returns (uint256 priceImpact) {
95
+ uint256 preTradeRate = getTradeExchangeRateIncludeFee(market, _getSign(netPtOut));
96
+ uint256 tradedRate = getTradeExchangeRateIncludeFee(market, netPtOut);
97
+ priceImpact = _calculateImpact(preTradeRate, tradedRate);
98
+ }
99
+
100
+ function calcPriceImpactYt(
101
+ address market,
102
+ int256 netPtOut
103
+ ) public returns (uint256 priceImpact) {
104
+ uint256 ytPreTradeRate = _calcVirtualYTPrice(
105
+ getTradeExchangeRateIncludeFee(market, _getSign(netPtOut))
106
+ );
107
+ uint256 ytTradedRate = _calcVirtualYTPrice(
108
+ getTradeExchangeRateIncludeFee(market, netPtOut)
109
+ );
110
+ priceImpact = _calculateImpact(ytPreTradeRate, ytTradedRate);
111
+ }
112
+
113
+ function calcPriceImpactPY(
114
+ address market,
115
+ int256 netPtOut
116
+ ) public returns (uint256 priceImpact) {
117
+ uint256 ptPreTradeRate = getTradeExchangeRateIncludeFee(market, _getSign(netPtOut));
118
+ uint256 ytPreTradeRate = _calcVirtualYTPrice(ptPreTradeRate);
119
+ uint256 ptTradeRate = getTradeExchangeRateIncludeFee(market, netPtOut);
120
+ uint256 ytTradeRate = _calcVirtualYTPrice(ptTradeRate);
121
+
122
+ uint256 pyPreTradeRate = ytPreTradeRate.divDown(ptPreTradeRate);
123
+ uint256 pyTradeRate = ytTradeRate.divDown(ptTradeRate);
124
+ priceImpact = _calculateImpact(pyPreTradeRate, pyTradeRate);
125
+ }
126
+
127
+ function _getPtImpliedYield(address market) internal view returns (int256) {
128
+ MarketState memory state = _readState(market);
129
+
130
+ int256 lnImpliedRate = (state.lastLnImpliedRate).Int();
131
+ return lnImpliedRate.exp();
132
+ }
133
+
134
+ function _calcVirtualYTPrice(
135
+ uint256 ptAssetExchangeRate
136
+ ) private pure returns (uint256 ytAssetExchangeRate) {
137
+ // 1 asset = EX pt
138
+ // 1 pt = 1/EX Asset
139
+ // 1 yt + 1/EX Asset = 1 Asset
140
+ // 1 yt = 1 Asset - 1/EX Asset
141
+ // 1 yt = (EX - 1) / EX Asset
142
+ return (ptAssetExchangeRate - Math.ONE).divDown(ptAssetExchangeRate);
143
+ }
144
+
145
+ function _readState(address market) internal view returns (MarketState memory) {
146
+ return IPMarket(market).readState(address(this));
147
+ }
148
+
149
+ function _getSign(int256 netPtOut) private pure returns (int256) {
150
+ return netPtOut > 0 ? int256(1) : int256(-1);
151
+ }
152
+
153
+ function _calculateImpact(
154
+ uint256 rateBefore,
155
+ uint256 rateTraded
156
+ ) private pure returns (uint256 impact) {
157
+ impact = (rateBefore.Int() - rateTraded.Int()).abs().divDown(rateBefore);
158
+ }
159
+
160
+ function _pyIndex(address market) internal returns (PYIndex index) {
161
+ (, , IPYieldToken YT) = IPMarket(market).readTokens();
162
+
163
+ return YT.newIndex();
164
+ }
165
+ }