@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
@@ -0,0 +1,780 @@
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 ActionMarketCoreStatic is StorageLayout, IPActionMarketCoreStatic {
9
+ using Math for uint256;
10
+ using Math for int256;
11
+
12
+ using LogExpMath for int256;
13
+ using PYIndexLib for PYIndex;
14
+ using PYIndexLib for IPYieldToken;
15
+ using MarketApproxPtInLib for MarketState;
16
+ using MarketApproxPtOutLib for MarketState;
17
+ using MarketMathCore for MarketState;
18
+
19
+ // ============ ADD REMOVE LIQUIDITY ============
20
+
21
+ function addLiquidityDualSyAndPtStatic(
22
+ address market,
23
+ uint256 netSyDesired,
24
+ uint256 netPtDesired
25
+ ) public view returns (uint256 netLpOut, uint256 netSyUsed, uint256 netPtUsed) {
26
+ MarketState memory state = _readState(market);
27
+ (, netLpOut, netSyUsed, netPtUsed) = state.addLiquidity(
28
+ netSyDesired,
29
+ netPtDesired,
30
+ block.timestamp
31
+ );
32
+ }
33
+
34
+ function addLiquidityDualTokenAndPtStatic(
35
+ address market,
36
+ address tokenIn,
37
+ uint256 netTokenDesired,
38
+ address bulk,
39
+ uint256 netPtDesired
40
+ )
41
+ public
42
+ view
43
+ returns (
44
+ uint256 netLpOut,
45
+ uint256 netTokenUsed,
46
+ uint256 netPtUsed,
47
+ // extra-info
48
+ uint256 netSyUsed,
49
+ uint256 netSyDesired
50
+ )
51
+ {
52
+ netSyDesired = _mintSyFromTokenStatic(market, tokenIn, netTokenDesired, bulk);
53
+
54
+ (netLpOut, netSyUsed, netPtUsed) = addLiquidityDualSyAndPtStatic(
55
+ market,
56
+ netSyDesired,
57
+ netPtDesired
58
+ );
59
+
60
+ if (netSyUsed != netSyDesired) revert Errors.RouterNotAllSyUsed(netSyDesired, netSyUsed);
61
+
62
+ netTokenUsed = netTokenDesired;
63
+ }
64
+
65
+ /// @dev netPtToSwap is the parameter to approx
66
+ function addLiquiditySinglePtStatic(
67
+ address market,
68
+ uint256 netPtIn
69
+ )
70
+ public
71
+ returns (
72
+ uint256 netLpOut,
73
+ uint256 netPtToSwap,
74
+ uint256 netSyFee,
75
+ uint256 priceImpact,
76
+ uint256 exchangeRateAfter,
77
+ // extra-info
78
+ uint256 netSyFromSwap
79
+ )
80
+ {
81
+ MarketState memory state = _readState(market);
82
+
83
+ (netPtToSwap, , ) = state.approxSwapPtToAddLiquidity(
84
+ _pyIndex(market),
85
+ netPtIn,
86
+ block.timestamp,
87
+ defaultApproxParams
88
+ );
89
+
90
+ state = _readState(market); // re-read
91
+
92
+ (netSyFromSwap, netSyFee, ) = state.swapExactPtForSy(
93
+ _pyIndex(market),
94
+ netPtToSwap,
95
+ block.timestamp
96
+ );
97
+ (, netLpOut, , ) = state.addLiquidity(
98
+ netSyFromSwap,
99
+ netPtIn - netPtToSwap,
100
+ block.timestamp
101
+ );
102
+
103
+ priceImpact = _calcPriceImpactPt(market, netPtToSwap.neg());
104
+ exchangeRateAfter = _getTradeExchangeRateExcludeFee(market, state);
105
+ }
106
+
107
+ /// @dev netPtFromSwap is the parameter to approx
108
+ function addLiquiditySingleSyStatic(
109
+ address market,
110
+ uint256 netSyIn
111
+ )
112
+ public
113
+ returns (
114
+ uint256 netLpOut,
115
+ uint256 netPtFromSwap,
116
+ uint256 netSyFee,
117
+ uint256 priceImpact,
118
+ uint256 exchangeRateAfter,
119
+ // extra-info
120
+ uint256 netSyToSwap
121
+ )
122
+ {
123
+ MarketState memory state = _readState(market);
124
+
125
+ (netPtFromSwap, , ) = state.approxSwapSyToAddLiquidity(
126
+ _pyIndex(market),
127
+ netSyIn,
128
+ block.timestamp,
129
+ defaultApproxParams
130
+ );
131
+
132
+ state = _readState(market); // re-read
133
+
134
+ (netSyToSwap, netSyFee, ) = state.swapSyForExactPt(
135
+ _pyIndex(market),
136
+ netPtFromSwap,
137
+ block.timestamp
138
+ );
139
+ (, netLpOut, , ) = state.addLiquidity(
140
+ netSyIn - netSyToSwap,
141
+ netPtFromSwap,
142
+ block.timestamp
143
+ );
144
+
145
+ priceImpact = _calcPriceImpactPt(market, netPtFromSwap.Int());
146
+ exchangeRateAfter = _getTradeExchangeRateExcludeFee(market, state);
147
+ }
148
+
149
+ function addLiquiditySingleTokenStatic(
150
+ address market,
151
+ address tokenIn,
152
+ uint256 netTokenIn,
153
+ address bulk
154
+ )
155
+ public
156
+ returns (
157
+ uint256 netLpOut,
158
+ uint256 netPtFromSwap,
159
+ uint256 netSyFee,
160
+ uint256 priceImpact,
161
+ uint256 exchangeRateAfter,
162
+ // extra-info
163
+ uint256 netSyMinted,
164
+ uint256 netSyToSwap
165
+ )
166
+ {
167
+ netSyMinted = _mintSyFromTokenStatic(market, tokenIn, netTokenIn, bulk);
168
+ (
169
+ netLpOut,
170
+ netPtFromSwap,
171
+ netSyFee,
172
+ priceImpact,
173
+ exchangeRateAfter,
174
+ netSyToSwap
175
+ ) = addLiquiditySingleSyStatic(market, netSyMinted);
176
+ }
177
+
178
+ function addLiquiditySingleTokenKeepYtStatic(
179
+ address market,
180
+ address tokenIn,
181
+ uint256 netTokenIn,
182
+ address bulk
183
+ )
184
+ public
185
+ returns (
186
+ uint256 netLpOut,
187
+ uint256 netYtOut,
188
+ // extra-info
189
+ uint256 netSyMinted,
190
+ uint256 netSyToPY
191
+ )
192
+ {
193
+ netSyMinted = _mintSyFromTokenStatic(market, tokenIn, netTokenIn, bulk);
194
+ (netLpOut, netYtOut, netSyToPY) = addLiquiditySingleSyKeepYtStatic(market, netSyMinted);
195
+ }
196
+
197
+ function addLiquiditySingleSyKeepYtStatic(
198
+ address market,
199
+ uint256 netSyIn
200
+ )
201
+ public
202
+ returns (
203
+ uint256 netLpOut,
204
+ uint256 netYtOut,
205
+ // extra-info
206
+ uint256 netSyToPY
207
+ )
208
+ {
209
+ MarketState memory state = _readState(market);
210
+ PYIndex index = _pyIndex(market);
211
+
212
+ netSyToPY =
213
+ (netSyIn * state.totalPt.Uint()) /
214
+ (state.totalPt.Uint() + index.syToAsset(state.totalSy.Uint()));
215
+
216
+ netYtOut = index.syToAsset(netSyToPY);
217
+
218
+ (, netLpOut, , ) = state.addLiquidity(netSyIn - netSyToPY, netYtOut, block.timestamp);
219
+ }
220
+
221
+ function removeLiquidityDualSyAndPtStatic(
222
+ address market,
223
+ uint256 netLpToRemove
224
+ ) public view returns (uint256 netSyOut, uint256 netPtOut) {
225
+ MarketState memory state = _readState(market);
226
+ (netSyOut, netPtOut) = state.removeLiquidity(netLpToRemove);
227
+ }
228
+
229
+ function removeLiquidityDualTokenAndPtStatic(
230
+ address market,
231
+ uint256 netLpToRemove,
232
+ address tokenOut,
233
+ address bulk
234
+ ) public view returns (uint256 netTokenOut, uint256 netPtOut, uint256 netSyToRedeem) {
235
+ (netSyToRedeem, netPtOut) = removeLiquidityDualSyAndPtStatic(market, netLpToRemove);
236
+ netTokenOut = _redeemSyToTokenStatic(market, tokenOut, netSyToRedeem, bulk);
237
+ }
238
+
239
+ /// @dev netPtFromSwap is the parameter to approx
240
+ /// @notice should revert post-expiry
241
+ function removeLiquiditySinglePtStatic(
242
+ address market,
243
+ uint256 netLpToRemove
244
+ )
245
+ public
246
+ returns (
247
+ uint256 netPtOut,
248
+ uint256 netPtFromSwap,
249
+ uint256 netSyFee,
250
+ uint256 priceImpact,
251
+ uint256 exchangeRateAfter,
252
+ // extra-info
253
+ uint256 netSyFromBurn,
254
+ uint256 netPtFromBurn
255
+ )
256
+ {
257
+ MarketState memory state = _readState(market);
258
+
259
+ (netSyFromBurn, netPtFromBurn) = state.removeLiquidity(netLpToRemove);
260
+ (netPtFromSwap, netSyFee) = state.approxSwapExactSyForPt(
261
+ _pyIndex(market),
262
+ netSyFromBurn,
263
+ block.timestamp,
264
+ defaultApproxParams
265
+ );
266
+
267
+ netPtOut = netPtFromBurn + netPtFromSwap;
268
+ priceImpact = _calcPriceImpactPt(market, netPtFromSwap.Int());
269
+
270
+ // Execute swap to calculate exchangeRateAfter
271
+ state.swapSyForExactPt(_pyIndex(market), netPtFromSwap, block.timestamp);
272
+ exchangeRateAfter = _getTradeExchangeRateExcludeFee(market, state);
273
+ }
274
+
275
+ function removeLiquiditySingleSyStatic(
276
+ address market,
277
+ uint256 netLpToRemove
278
+ )
279
+ public
280
+ returns (
281
+ uint256 netSyOut,
282
+ uint256 netSyFee,
283
+ uint256 priceImpact,
284
+ uint256 exchangeRateAfter,
285
+ // extra-info
286
+ uint256 netSyFromBurn,
287
+ uint256 netPtFromBurn,
288
+ uint256 netSyFromSwap
289
+ )
290
+ {
291
+ MarketState memory state = _readState(market);
292
+
293
+ (netSyFromBurn, netPtFromBurn) = state.removeLiquidity(netLpToRemove);
294
+
295
+ if (IPMarket(market).isExpired()) {
296
+ netSyOut = netSyFromBurn + _pyIndex(market).assetToSy(netPtFromBurn);
297
+ netSyFee = 0;
298
+ priceImpact = 0;
299
+ exchangeRateAfter = Math.ONE;
300
+ } else {
301
+ (netSyFromSwap, netSyFee, ) = state.swapExactPtForSy(
302
+ _pyIndex(market),
303
+ netPtFromBurn,
304
+ block.timestamp
305
+ );
306
+
307
+ netSyOut = netSyFromBurn + netSyFromSwap;
308
+ priceImpact = _calcPriceImpactPt(market, netPtFromBurn.neg());
309
+ exchangeRateAfter = _getTradeExchangeRateExcludeFee(market, state);
310
+ }
311
+ }
312
+
313
+ function removeLiquiditySingleTokenStatic(
314
+ address market,
315
+ uint256 netLpToRemove,
316
+ address tokenOut,
317
+ address bulk
318
+ )
319
+ public
320
+ returns (
321
+ uint256 netTokenOut,
322
+ uint256 netSyFee,
323
+ uint256 priceImpact,
324
+ uint256 exchangeRateAfter,
325
+ // extra-info
326
+ uint256 netSyOut,
327
+ uint256 netSyFromBurn,
328
+ uint256 netPtFromBurn,
329
+ uint256 netSyFromSwap
330
+ )
331
+ {
332
+ (
333
+ netSyOut,
334
+ netSyFee,
335
+ priceImpact,
336
+ exchangeRateAfter,
337
+ netSyFromBurn,
338
+ netPtFromBurn,
339
+ netSyFromSwap
340
+ ) = removeLiquiditySingleSyStatic(market, netLpToRemove);
341
+
342
+ netTokenOut = _redeemSyToTokenStatic(market, tokenOut, netSyOut, bulk);
343
+ }
344
+
345
+ // ============ SWAP PT ============
346
+
347
+ function swapExactPtForSyStatic(
348
+ address market,
349
+ uint256 exactPtIn
350
+ )
351
+ public
352
+ returns (
353
+ uint256 netSyOut,
354
+ uint256 netSyFee,
355
+ uint256 priceImpact,
356
+ uint256 exchangeRateAfter
357
+ )
358
+ {
359
+ MarketState memory state = _readState(market);
360
+ (netSyOut, netSyFee, ) = state.swapExactPtForSy(
361
+ _pyIndex(market),
362
+ exactPtIn,
363
+ block.timestamp
364
+ );
365
+ priceImpact = _calcPriceImpactPt(market, exactPtIn.neg());
366
+ exchangeRateAfter = _getTradeExchangeRateExcludeFee(market, state);
367
+ }
368
+
369
+ function swapSyForExactPtStatic(
370
+ address market,
371
+ uint256 exactPtOut
372
+ )
373
+ public
374
+ returns (uint256 netSyIn, uint256 netSyFee, uint256 priceImpact, uint256 exchangeRateAfter)
375
+ {
376
+ MarketState memory state = _readState(market);
377
+ (netSyIn, netSyFee, ) = state.swapSyForExactPt(
378
+ _pyIndex(market),
379
+ exactPtOut,
380
+ block.timestamp
381
+ );
382
+ priceImpact = _calcPriceImpactPt(market, exactPtOut.Int());
383
+ exchangeRateAfter = _getTradeExchangeRateExcludeFee(market, state);
384
+ }
385
+
386
+ /// @dev netPtOut is the parameter to approx
387
+ function swapExactSyForPtStatic(
388
+ address market,
389
+ uint256 exactSyIn
390
+ )
391
+ public
392
+ returns (
393
+ uint256 netPtOut,
394
+ uint256 netSyFee,
395
+ uint256 priceImpact,
396
+ uint256 exchangeRateAfter
397
+ )
398
+ {
399
+ MarketState memory state = _readState(market);
400
+ (netPtOut, netSyFee) = state.approxSwapExactSyForPt(
401
+ _pyIndex(market),
402
+ exactSyIn,
403
+ block.timestamp,
404
+ defaultApproxParams
405
+ );
406
+ priceImpact = _calcPriceImpactPt(market, netPtOut.Int());
407
+
408
+ // Execute swap to calculate exchangeRateAfter
409
+ state.swapSyForExactPt(_pyIndex(market), netPtOut, block.timestamp);
410
+ exchangeRateAfter = _getTradeExchangeRateExcludeFee(market, state);
411
+ }
412
+
413
+ /// @dev netPtIn is the parameter to approx
414
+ function swapPtForExactSyStatic(
415
+ address market,
416
+ uint256 exactSyOut
417
+ )
418
+ public
419
+ returns (uint256 netPtIn, uint256 netSyFee, uint256 priceImpact, uint256 exchangeRateAfter)
420
+ {
421
+ MarketState memory state = _readState(market);
422
+
423
+ (netPtIn, , netSyFee) = state.approxSwapPtForExactSy(
424
+ _pyIndex(market),
425
+ exactSyOut,
426
+ block.timestamp,
427
+ defaultApproxParams
428
+ );
429
+ priceImpact = _calcPriceImpactPt(market, netPtIn.neg());
430
+
431
+ // Execute swap to calculate exchangeRateAfter
432
+ state.swapExactPtForSy(_pyIndex(market), netPtIn, block.timestamp);
433
+ exchangeRateAfter = _getTradeExchangeRateExcludeFee(market, state);
434
+ }
435
+
436
+ function swapExactTokenForPtStatic(
437
+ address market,
438
+ address tokenIn,
439
+ uint256 amountTokenIn,
440
+ address bulk
441
+ )
442
+ public
443
+ returns (
444
+ uint256 netPtOut,
445
+ uint256 netSyMinted,
446
+ uint256 netSyFee,
447
+ uint256 priceImpact,
448
+ uint256 exchangeRateAfter
449
+ )
450
+ {
451
+ netSyMinted = _mintSyFromTokenStatic(market, tokenIn, amountTokenIn, bulk);
452
+
453
+ (netPtOut, netSyFee, priceImpact, exchangeRateAfter) = swapExactSyForPtStatic(
454
+ market,
455
+ netSyMinted
456
+ );
457
+ }
458
+
459
+ function swapExactPtForTokenStatic(
460
+ address market,
461
+ uint256 exactPtIn,
462
+ address tokenOut,
463
+ address bulk
464
+ )
465
+ public
466
+ returns (
467
+ uint256 netTokenOut,
468
+ uint256 netSyToRedeem,
469
+ uint256 netSyFee,
470
+ uint256 priceImpact,
471
+ uint256 exchangeRateAfter
472
+ )
473
+ {
474
+ (netSyToRedeem, netSyFee, priceImpact, exchangeRateAfter) = swapExactPtForSyStatic(
475
+ market,
476
+ exactPtIn
477
+ );
478
+
479
+ netTokenOut = _redeemSyToTokenStatic(market, tokenOut, netSyToRedeem, bulk);
480
+ }
481
+
482
+ // ============ SWAP YT ============
483
+
484
+ function swapSyForExactYtStatic(
485
+ address market,
486
+ uint256 exactYtOut
487
+ )
488
+ public
489
+ returns (
490
+ uint256 netSyIn,
491
+ uint256 netSyFee,
492
+ uint256 priceImpact,
493
+ uint256 exchangeRateAfter,
494
+ // extra-info
495
+ uint256 netSyReceivedInt,
496
+ uint256 totalSyNeedInt
497
+ )
498
+ {
499
+ priceImpact = _calcPriceImpactYt(market, exactYtOut.neg());
500
+
501
+ MarketState memory state = _readState(market);
502
+ PYIndex index = _pyIndex(market);
503
+
504
+ (netSyReceivedInt, netSyFee, ) = state.swapExactPtForSy(
505
+ _pyIndex(market),
506
+ exactYtOut,
507
+ block.timestamp
508
+ );
509
+
510
+ totalSyNeedInt = index.assetToSyUp(exactYtOut);
511
+ netSyIn = totalSyNeedInt.subMax0(netSyReceivedInt);
512
+
513
+ exchangeRateAfter = _getTradeExchangeRateExcludeFee(market, state);
514
+ }
515
+
516
+ /// @dev netYtOut is the parameter to approx
517
+ function swapExactSyForYtStatic(
518
+ address market,
519
+ uint256 exactSyIn
520
+ )
521
+ public
522
+ returns (
523
+ uint256 netYtOut,
524
+ uint256 netSyFee,
525
+ uint256 priceImpact,
526
+ uint256 exchangeRateAfter
527
+ )
528
+ {
529
+ MarketState memory state = _readState(market);
530
+ PYIndex index = _pyIndex(market);
531
+
532
+ (netYtOut, netSyFee) = state.approxSwapExactSyForYt(
533
+ index,
534
+ exactSyIn,
535
+ block.timestamp,
536
+ defaultApproxParams
537
+ );
538
+
539
+ priceImpact = _calcPriceImpactYt(market, netYtOut.neg());
540
+
541
+ // Execute swap to calculate exchangeRateAfter
542
+ state.swapExactPtForSy(index, netYtOut, block.timestamp);
543
+ exchangeRateAfter = _getTradeExchangeRateExcludeFee(market, state);
544
+ }
545
+
546
+ function swapExactYtForSyStatic(
547
+ address market,
548
+ uint256 exactYtIn
549
+ )
550
+ public
551
+ returns (
552
+ uint256 netSyOut,
553
+ uint256 netSyFee,
554
+ uint256 priceImpact,
555
+ uint256 exchangeRateAfter,
556
+ // extra-info
557
+ uint256 netSyOwedInt,
558
+ uint256 netPYToRepaySyOwedInt,
559
+ uint256 netPYToRedeemSyOutInt
560
+ )
561
+ {
562
+ priceImpact = _calcPriceImpactYt(market, exactYtIn.Int());
563
+
564
+ MarketState memory state = _readState(market);
565
+
566
+ PYIndex index = _pyIndex(market);
567
+
568
+ (netSyOwedInt, netSyFee, ) = state.swapSyForExactPt(index, exactYtIn, block.timestamp);
569
+
570
+ netPYToRepaySyOwedInt = index.syToAssetUp(netSyOwedInt);
571
+ netPYToRedeemSyOutInt = exactYtIn - netPYToRepaySyOwedInt;
572
+
573
+ netSyOut = index.assetToSy(netPYToRedeemSyOutInt);
574
+ exchangeRateAfter = _getTradeExchangeRateExcludeFee(market, state);
575
+ }
576
+
577
+ function swapExactYtForTokenStatic(
578
+ address market,
579
+ uint256 exactYtIn,
580
+ address tokenOut,
581
+ address bulk
582
+ )
583
+ public
584
+ returns (
585
+ uint256 netTokenOut,
586
+ uint256 netSyFee,
587
+ uint256 priceImpact,
588
+ uint256 exchangeRateAfter,
589
+ // extra-info
590
+ uint256 netSyOut,
591
+ uint256 netSyOwedInt,
592
+ uint256 netPYToRepaySyOwedInt,
593
+ uint256 netPYToRedeemSyOutInt
594
+ )
595
+ {
596
+ (
597
+ netSyOut,
598
+ netSyFee,
599
+ priceImpact,
600
+ exchangeRateAfter,
601
+ netSyOwedInt,
602
+ netPYToRepaySyOwedInt,
603
+ netPYToRedeemSyOutInt
604
+ ) = swapExactYtForSyStatic(market, exactYtIn);
605
+
606
+ netTokenOut = _redeemSyToTokenStatic(market, tokenOut, netSyOut, bulk);
607
+ }
608
+
609
+ /// @dev netYtIn is the parameter to approx
610
+ function swapYtForExactSyStatic(
611
+ address market,
612
+ uint256 exactSyOut
613
+ )
614
+ public
615
+ returns (uint256 netYtIn, uint256 netSyFee, uint256 priceImpact, uint256 exchangeRateAfter)
616
+ {
617
+ MarketState memory state = _readState(market);
618
+
619
+ PYIndex index = _pyIndex(market);
620
+
621
+ (netYtIn, , netSyFee) = state.approxSwapYtForExactSy(
622
+ index,
623
+ exactSyOut,
624
+ block.timestamp,
625
+ defaultApproxParams
626
+ );
627
+ priceImpact = _calcPriceImpactYt(market, netYtIn.Int());
628
+
629
+ // Execute swap to calculate exchangeRateAfter
630
+ state.swapSyForExactPt(index, netYtIn, block.timestamp);
631
+ exchangeRateAfter = _getTradeExchangeRateExcludeFee(market, state);
632
+ }
633
+
634
+ function swapExactTokenForYtStatic(
635
+ address market,
636
+ address tokenIn,
637
+ uint256 amountTokenIn,
638
+ address bulk
639
+ )
640
+ public
641
+ returns (
642
+ uint256 netYtOut,
643
+ uint256 netSyMinted,
644
+ uint256 netSyFee,
645
+ uint256 priceImpact,
646
+ uint256 exchangeRateAfter
647
+ )
648
+ {
649
+ netSyMinted = _mintSyFromTokenStatic(market, tokenIn, amountTokenIn, bulk);
650
+ (netYtOut, netSyFee, priceImpact, exchangeRateAfter) = swapExactSyForYtStatic(
651
+ market,
652
+ netSyMinted
653
+ );
654
+ }
655
+
656
+ // totalPtToSwap is the param to approx
657
+ function swapExactPtForYtStatic(
658
+ address market,
659
+ uint256 exactPtIn
660
+ )
661
+ public
662
+ returns (
663
+ uint256 netYtOut,
664
+ uint256 totalPtToSwap,
665
+ uint256 netSyFee,
666
+ uint256 priceImpact,
667
+ uint256 exchangeRateAfter
668
+ )
669
+ {
670
+ MarketState memory state = _readState(market);
671
+ PYIndex index = _pyIndex(market);
672
+
673
+ (netYtOut, totalPtToSwap, netSyFee) = state.approxSwapExactPtForYt(
674
+ index,
675
+ exactPtIn,
676
+ block.timestamp,
677
+ defaultApproxParams
678
+ );
679
+ priceImpact = _calcPriceImpactPY(market, totalPtToSwap.neg());
680
+
681
+ // Execute swap to calculate exchangeRateAfter
682
+ state.swapExactPtForSy(index, totalPtToSwap, block.timestamp);
683
+ exchangeRateAfter = _getTradeExchangeRateExcludeFee(market, state);
684
+ }
685
+
686
+ // totalPtSwapped is the param to approx
687
+ function swapExactYtForPtStatic(
688
+ address market,
689
+ uint256 exactYtIn
690
+ )
691
+ public
692
+ returns (
693
+ uint256 netPtOut,
694
+ uint256 totalPtSwapped,
695
+ uint256 netSyFee,
696
+ uint256 priceImpact,
697
+ uint256 exchangeRateAfter
698
+ )
699
+ {
700
+ MarketState memory state = _readState(market);
701
+ PYIndex index = _pyIndex(market);
702
+
703
+ (netPtOut, totalPtSwapped, netSyFee) = state.approxSwapExactYtForPt(
704
+ index,
705
+ exactYtIn,
706
+ block.timestamp,
707
+ defaultApproxParams
708
+ );
709
+
710
+ priceImpact = _calcPriceImpactPY(market, totalPtSwapped.Int());
711
+
712
+ // Execute swap to calculate exchangeRateAfter
713
+ state.swapSyForExactPt(index, totalPtSwapped, block.timestamp);
714
+ exchangeRateAfter = _getTradeExchangeRateExcludeFee(market, state);
715
+ }
716
+
717
+ function _calcPriceImpactPY(address market, int256 netPtOut) internal returns (uint256) {
718
+ return IPRouterStatic(address(this)).calcPriceImpactPY(market, netPtOut);
719
+ }
720
+
721
+ function _calcPriceImpactPt(address market, int256 netPtOut) internal returns (uint256) {
722
+ return IPRouterStatic(address(this)).calcPriceImpactPt(market, netPtOut);
723
+ }
724
+
725
+ function _calcPriceImpactYt(address market, int256 netPtOut) internal returns (uint256) {
726
+ return IPRouterStatic(address(this)).calcPriceImpactYt(market, netPtOut);
727
+ }
728
+
729
+ function _mintSyFromTokenStatic(
730
+ address market,
731
+ address tokenIn,
732
+ uint256 netTokenToDeposit,
733
+ address bulk
734
+ ) internal view returns (uint256) {
735
+ return
736
+ IPRouterStatic(address(this)).mintSyFromTokenStatic(
737
+ _getSyMarket(market),
738
+ tokenIn,
739
+ netTokenToDeposit,
740
+ bulk
741
+ );
742
+ }
743
+
744
+ function _redeemSyToTokenStatic(
745
+ address market,
746
+ address tokenOut,
747
+ uint256 netSyToRedeem,
748
+ address bulk
749
+ ) internal view returns (uint256) {
750
+ return
751
+ IPRouterStatic(address(this)).redeemSyToTokenStatic(
752
+ _getSyMarket(market),
753
+ tokenOut,
754
+ netSyToRedeem,
755
+ bulk
756
+ );
757
+ }
758
+
759
+ function _getTradeExchangeRateExcludeFee(
760
+ address market,
761
+ MarketState memory state
762
+ ) internal returns (uint256) {
763
+ return IPRouterStatic(address(this)).getTradeExchangeRateExcludeFee(market, state);
764
+ }
765
+
766
+ function _readState(address market) internal view returns (MarketState memory) {
767
+ return IPMarket(market).readState(address(this));
768
+ }
769
+
770
+ function _pyIndex(address market) internal returns (PYIndex index) {
771
+ (, , IPYieldToken YT) = IPMarket(market).readTokens();
772
+
773
+ return YT.newIndex();
774
+ }
775
+
776
+ function _getSyMarket(address market) internal view returns (address) {
777
+ (IStandardizedYield SY, , ) = IPMarket(market).readTokens();
778
+ return address(SY);
779
+ }
780
+ }