@pendle/core-v2 1.2.1-testnet → 1.3.0-testnet

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 (550) 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/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +2 -2
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +2 -2
  77. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +1 -1
  78. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.json +2 -2
  79. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +1 -1
  80. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.json +2 -2
  81. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +1 -1
  82. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.json +2 -2
  83. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  84. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.dbg.json +1 -1
  85. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
  86. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +2 -2
  87. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
  88. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.json +2 -2
  89. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  90. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
  91. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  92. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  93. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  94. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  95. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  96. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  97. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  98. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  99. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  100. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +1 -1
  101. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +1 -1
  102. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +2 -2
  103. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +1 -1
  104. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +2 -2
  105. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +1 -1
  106. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +2 -2
  107. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  108. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.json +2 -2
  109. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
  110. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.json +2 -2
  111. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  112. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.json +2 -2
  113. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
  114. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.json +2 -2
  115. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
  116. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.json +2 -2
  117. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
  118. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
  119. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.json +2 -2
  120. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  121. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +1 -1
  122. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.json +2 -2
  123. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  124. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  125. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.json +2 -2
  126. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.dbg.json +1 -1
  127. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.json +2 -2
  128. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +1 -1
  129. package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.dbg.json +1 -1
  130. package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.dbg.json +1 -1
  131. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +1 -1
  132. package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
  133. package/build/artifacts/contracts/interfaces/ConvexCurve/ICrvDepositor.sol/ICrvDepositor.dbg.json +1 -1
  134. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
  135. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
  136. package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.dbg.json +1 -1
  137. package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.dbg.json +1 -1
  138. package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.dbg.json +1 -1
  139. package/build/artifacts/contracts/interfaces/IApeStaking.sol/IApeStaking.dbg.json +1 -1
  140. package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.dbg.json +1 -1
  141. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  142. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  143. package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +1 -1
  144. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  145. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
  146. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.json +0 -10
  147. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  148. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +1 -1
  149. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  150. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.json +2 -2
  151. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  152. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  153. package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.dbg.json +1 -1
  154. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  155. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  156. package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.dbg.json +1 -1
  157. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
  158. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  159. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  160. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  161. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +1 -1
  162. package/build/artifacts/contracts/interfaces/IPLiquidityMigrator.sol/IPLiquidityMigrator.dbg.json +4 -0
  163. package/build/artifacts/contracts/interfaces/IPLiquidityMigrator.sol/IPLiquidityMigrator.json +655 -0
  164. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  165. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  166. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  167. package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.dbg.json +1 -1
  168. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  169. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +2 -12
  170. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  171. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  172. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  173. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +1 -1
  174. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  175. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  176. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  177. package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +1 -1
  178. package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +1 -1
  179. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  180. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.dbg.json +1 -1
  181. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.json +2 -2
  182. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  183. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.json +2 -2
  184. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
  185. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +2 -2
  186. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  187. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
  188. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +1 -1
  189. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.json +2 -2
  190. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  191. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  192. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  193. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  194. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  195. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
  196. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  197. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -12
  198. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  199. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
  200. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  201. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +4 -4
  202. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  203. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  204. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +4 -0
  205. package/build/artifacts/contracts/{router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.json → offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.json} +2 -2
  206. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  207. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +2 -2
  208. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  209. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +2 -2
  210. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  211. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +2 -2
  212. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  213. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +2 -2
  214. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  215. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +2 -2
  216. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  217. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
  218. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +4 -0
  219. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.json +773 -0
  220. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
  221. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  222. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  223. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  224. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  225. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  226. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  227. package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.dbg.json +1 -1
  228. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +1 -1
  229. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
  230. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapArbitrum.sol/PendleSwapArbitrum.dbg.json +4 -0
  231. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapArbitrum.sol/PendleSwapArbitrum.json +76 -0
  232. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapEthereum.sol/PendleSwapEthereum.dbg.json +4 -0
  233. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapEthereum.sol/PendleSwapEthereum.json +76 -0
  234. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +4 -0
  235. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{interfaces → arbitrum}/IAggregationExecutor.sol/IAggregationExecutor.json +1 -1
  236. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper1.sol/IExecutorHelper1.dbg.json +4 -0
  237. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper1.sol/IExecutorHelper1.json +388 -0
  238. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper2.sol/IExecutorHelper2.dbg.json +4 -0
  239. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper2.sol/IExecutorHelper2.json +40 -0
  240. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IHashflow.sol/IHashflow.dbg.json +4 -0
  241. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{interfaces → arbitrum}/IHashflow.sol/IHashflow.json +1 -1
  242. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +4 -0
  243. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{interfaces → arbitrum}/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json +1 -1
  244. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/KyberHelperArbitrum.sol/KyberHelperArbitrum.dbg.json +4 -0
  245. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/KyberHelperArbitrum.sol/KyberHelperArbitrum.json +10 -0
  246. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/ScaleDataHelperArbitrum.sol/ScaleDataHelperArbitrum.dbg.json +4 -0
  247. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/ScaleDataHelperArbitrum.sol/ScaleDataHelperArbitrum.json +10 -0
  248. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +4 -0
  249. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IAggregationExecutor.sol/IAggregationExecutor.json +65 -0
  250. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +4 -0
  251. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{interfaces → ethereum}/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.json +1 -1
  252. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IHashflow.sol/IHashflow.dbg.json +4 -0
  253. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IHashflow.sol/IHashflow.json +101 -0
  254. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +4 -0
  255. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json +215 -0
  256. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/KyberHelperEthereum.sol/KyberHelperEthereum.dbg.json +4 -0
  257. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/KyberHelperEthereum.sol/KyberHelperEthereum.json +10 -0
  258. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/ScaleDataHelperEthereum.sol/ScaleDataHelperEthereum.dbg.json +4 -0
  259. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/ScaleDataHelperEthereum.sol/ScaleDataHelperEthereum.json +10 -0
  260. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol +4 -5
  261. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol +3 -5
  262. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol +7 -10
  263. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol +8 -10
  264. package/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol +16 -8
  265. package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +3 -5
  266. package/contracts/LiquidityMining/README.md +49 -46
  267. package/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol +9 -14
  268. package/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +4 -10
  269. package/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +23 -36
  270. package/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +18 -24
  271. package/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +3 -4
  272. package/contracts/LiquidityMining/libraries/VeBalanceLib.sol +20 -26
  273. package/contracts/core/BulkSeller/BulkSeller.sol +1 -5
  274. package/contracts/core/BulkSeller/BulkSellerFactory.sol +4 -5
  275. package/contracts/core/BulkSeller/BulkSellerMathCore.sol +20 -25
  276. package/contracts/core/Market/MarketMathCore.sol +23 -69
  277. package/contracts/core/Market/OracleLib.sol +4 -4
  278. package/contracts/core/Market/PendleGauge.sol +7 -20
  279. package/contracts/core/Market/PendleMarket.sol +5 -15
  280. package/contracts/core/Market/PendleMarketFactory.sol +3 -9
  281. package/contracts/core/RewardManager/RewardManager.sol +4 -6
  282. package/contracts/core/RewardManager/RewardManagerAbstract.sol +4 -4
  283. package/contracts/core/StandardizedYield/PYIndex.sol +7 -36
  284. package/contracts/core/StandardizedYield/SYBase.sol +20 -26
  285. package/contracts/core/StandardizedYield/SYBaseWithRewards.sol +7 -19
  286. package/contracts/core/StandardizedYield/SYUtils.sol +4 -5
  287. package/contracts/core/StandardizedYield/StEthHelper.sol +12 -16
  288. package/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol +14 -24
  289. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSY.sol +127 -0
  290. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol +12 -20
  291. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol +12 -20
  292. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol +1 -5
  293. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol +28 -44
  294. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol +28 -47
  295. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol +6 -10
  296. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol +6 -10
  297. package/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol +13 -22
  298. package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol +20 -27
  299. package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol +20 -27
  300. package/contracts/core/StandardizedYield/implementations/Convex/README.md +4 -4
  301. package/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol +32 -40
  302. package/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol +10 -12
  303. package/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol +14 -18
  304. package/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol +32 -48
  305. package/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol +6 -7
  306. package/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol +14 -24
  307. package/contracts/core/StandardizedYield/implementations/GLP/README.md +15 -13
  308. package/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol +12 -38
  309. package/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol +13 -23
  310. package/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol +13 -23
  311. package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +0 -10
  312. package/contracts/core/YieldContracts/PendleYieldToken.sol +28 -44
  313. package/contracts/core/YieldContractsV2/InterestManagerYTV2.sol +4 -4
  314. package/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol +1 -1
  315. package/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol +24 -38
  316. package/contracts/core/erc20/PendleERC20.sol +14 -44
  317. package/contracts/core/libraries/ArrayLib.sol +4 -5
  318. package/contracts/core/libraries/BaseSplitCodeFactory.sol +5 -7
  319. package/contracts/core/libraries/BoringOwnableUpgradeable.sol +1 -5
  320. package/contracts/core/libraries/StringLib.sol +14 -20
  321. package/contracts/core/libraries/TokenHelper.sol +6 -31
  322. package/contracts/core/libraries/math/LogExpMath.sol +2 -2
  323. package/contracts/core/libraries/math/Math.sol +3 -15
  324. package/contracts/interfaces/Balancer/IComposableStable.sol +4 -14
  325. package/contracts/interfaces/Balancer/IMetaStablePool.sol +4 -13
  326. package/contracts/interfaces/Balancer/IVault.sol +4 -6
  327. package/contracts/interfaces/ConvexCurve/IBooster.sol +4 -16
  328. package/contracts/interfaces/ConvexCurve/ICrvDepositor.sol +1 -5
  329. package/contracts/interfaces/ConvexCurve/IRewards.sol +1 -4
  330. package/contracts/interfaces/Curve/ICrvPool.sol +12 -11
  331. package/contracts/interfaces/Curve/ITriCrvPool.sol +4 -4
  332. package/contracts/interfaces/GMX/IGMXVault.sol +4 -4
  333. package/contracts/interfaces/GMX/IRewardRouterV2.sol +4 -4
  334. package/contracts/interfaces/IApeStaking.sol +3 -4
  335. package/contracts/interfaces/IDiamondLoupe.sol +3 -1
  336. package/contracts/interfaces/IERC4626.sol +1 -5
  337. package/contracts/interfaces/IPActionAddRemoveLiq.sol +2 -15
  338. package/contracts/interfaces/IPActionInfoStatic.sol +7 -7
  339. package/contracts/interfaces/IPActionMarketAuxStatic.sol +11 -7
  340. package/contracts/interfaces/IPActionMarketCoreStatic.sol +67 -49
  341. package/contracts/interfaces/IPActionMintRedeemStatic.sol +10 -15
  342. package/contracts/interfaces/IPActionStorageStatic.sol +5 -6
  343. package/contracts/interfaces/IPBulkSellerSYCallback.sol +1 -5
  344. package/contracts/interfaces/IPFeeDistributor.sol +4 -3
  345. package/contracts/interfaces/IPGaugeController.sol +3 -9
  346. package/contracts/interfaces/IPInterestManagerYT.sol +3 -4
  347. package/contracts/interfaces/IPInterestManagerYTV2.sol +4 -6
  348. package/contracts/interfaces/IPLiquidityMigrator.sol +130 -0
  349. package/contracts/interfaces/IPMarket.sol +5 -16
  350. package/contracts/interfaces/IPMarketFactory.sol +3 -8
  351. package/contracts/interfaces/IPMarketSwapCallback.sol +1 -5
  352. package/contracts/interfaces/IPVotingController.sol +5 -6
  353. package/contracts/interfaces/IPVotingEscrowMainchain.sol +8 -7
  354. package/contracts/interfaces/IPYieldToken.sol +4 -3
  355. package/contracts/interfaces/IPYieldTokenV2.sol +4 -3
  356. package/contracts/interfaces/IRewardManager.sol +4 -4
  357. package/contracts/interfaces/IStETH.sol +4 -3
  358. package/contracts/interfaces/IStandardizedYield.sol +9 -13
  359. package/contracts/interfaces/IStargateRouter.sol +1 -5
  360. package/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol +4 -1
  361. package/contracts/offchain-helpers/BulkSellerOffchain.sol +7 -11
  362. package/contracts/offchain-helpers/Multicall2.sol +14 -24
  363. package/contracts/offchain-helpers/router-static/PendleRouterStatic.sol +1 -1
  364. package/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol +11 -14
  365. package/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol +31 -32
  366. package/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol +76 -65
  367. package/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol +12 -20
  368. package/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol +13 -12
  369. package/contracts/offchain-helpers/router-static/{StorageLayout.sol → base/StorageLayout.sol} +3 -3
  370. package/contracts/router/ActionAddRemoveLiq.sol +2 -18
  371. package/contracts/router/ActionSwapYT.sol +9 -3
  372. package/contracts/router/PendleRouterHelper.sol +315 -0
  373. package/contracts/router/base/ActionBaseCallback.sol +2 -2
  374. package/contracts/router/base/ActionBaseMintRedeem.sol +8 -9
  375. package/contracts/router/base/CallbackHelper.sol +16 -27
  376. package/contracts/router/base/MarketApproxLib.sol +18 -82
  377. package/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol +4 -10
  378. package/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol +4 -5
  379. package/contracts/router/swap-aggregator/IPSwapAggregator.sol +1 -5
  380. package/contracts/router/swap-aggregator/{PendleSwapAggregator.sol → PendleSwapArbitrum.sol} +7 -8
  381. package/contracts/router/swap-aggregator/PendleSwapEthereum.sol +44 -0
  382. package/contracts/router/swap-aggregator/kyberswap/arbitrum/IAggregationExecutor.sol +17 -0
  383. package/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper1.sol +195 -0
  384. package/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper2.sol +10 -0
  385. package/contracts/router/swap-aggregator/kyberswap/arbitrum/IMetaAggregationRouterV2.sol +41 -0
  386. package/contracts/router/swap-aggregator/kyberswap/arbitrum/KyberHelperArbitrum.sol +200 -0
  387. package/contracts/router/swap-aggregator/kyberswap/arbitrum/ScaleDataHelperArbitrum.sol +135 -0
  388. package/contracts/router/swap-aggregator/kyberswap/ethereum/IAggregationExecutor.sol +17 -0
  389. package/contracts/router/swap-aggregator/kyberswap/ethereum/IHashflow.sol +30 -0
  390. package/contracts/router/swap-aggregator/kyberswap/{interfaces → ethereum}/IMetaAggregationRouterV2.sol +3 -4
  391. package/contracts/router/swap-aggregator/kyberswap/{KyberAggregationRouterHelper.sol → ethereum/KyberHelperEthereum.sol} +20 -33
  392. package/contracts/router/swap-aggregator/kyberswap/{ScaleDataHelperEthereum1.sol → ethereum/ScaleDataHelperEthereum.sol} +2 -2
  393. package/deployments/43113-core.json +1 -0
  394. package/deployments/80001-core.json +1 -0
  395. package/package.json +6 -5
  396. package/typechain-types/ActionMarketCoreStatic.ts +0 -4
  397. package/typechain-types/ActionStorageStatic.ts +5 -3
  398. package/typechain-types/IChainlinkAggregator.ts +246 -0
  399. package/typechain-types/IExecutorHelper1.ts +643 -0
  400. package/typechain-types/IExecutorHelper2.ts +115 -0
  401. package/typechain-types/IPActionMarketCoreStatic.ts +0 -4
  402. package/typechain-types/IPActionStorageStatic.ts +5 -3
  403. package/typechain-types/IPLiquidityMigrator.ts +565 -0
  404. package/typechain-types/IPRouterStatic.ts +5 -7
  405. package/typechain-types/IStargateLP.ts +306 -0
  406. package/typechain-types/IStargateStaking.ts +232 -0
  407. package/typechain-types/InputScalingHelper.ts +108 -0
  408. package/typechain-types/PendleAuraWethAnkrethSY.ts +1523 -0
  409. package/typechain-types/PendlePtOracleBase.ts +139 -0
  410. package/typechain-types/PendleRouterHelper.ts +647 -0
  411. package/typechain-types/PendleStargateLP.ts +1442 -0
  412. package/typechain-types/PendleSwapArbitrum.ts +126 -0
  413. package/typechain-types/PendleSwapEthereum.ts +126 -0
  414. package/typechain-types/PtFraxUsdcOracle.ts +176 -0
  415. package/typechain-types/PtStETHOracle.ts +163 -0
  416. package/typechain-types/RouterStatic.ts +92 -0
  417. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1 -1
  418. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  419. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
  420. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -11
  421. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
  422. package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -1
  423. package/typechain-types/factories/ActionMisc__factory.ts +1 -1
  424. package/typechain-types/factories/ActionStorageStatic__factory.ts +3 -3
  425. package/typechain-types/factories/ActionSwapPT__factory.ts +1 -1
  426. package/typechain-types/factories/ActionSwapYT__factory.ts +1 -1
  427. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  428. package/typechain-types/factories/AddressProvider__factory.ts +1 -1
  429. package/typechain-types/factories/BaseSplitCodeFactoryContract__factory.ts +1 -1
  430. package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +1 -1
  431. package/typechain-types/factories/Broadcaster__factory.ts +1 -1
  432. package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
  433. package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
  434. package/typechain-types/factories/BulkSeller__factory.ts +1 -1
  435. package/typechain-types/factories/IChainlinkAggregator__factory.ts +170 -0
  436. package/typechain-types/factories/IExecutorHelper1__factory.ts +403 -0
  437. package/typechain-types/factories/IExecutorHelper2__factory.ts +55 -0
  438. package/typechain-types/factories/IPActionMarketCoreStatic__factory.ts +0 -10
  439. package/typechain-types/factories/IPActionStorageStatic__factory.ts +2 -2
  440. package/typechain-types/factories/IPLiquidityMigrator__factory.ts +677 -0
  441. package/typechain-types/factories/IPRouterStatic__factory.ts +2 -12
  442. package/typechain-types/factories/IStargateLP__factory.ts +212 -0
  443. package/typechain-types/factories/IStargateStaking__factory.ts +145 -0
  444. package/typechain-types/factories/InputScalingHelper__factory.ts +88 -0
  445. package/typechain-types/factories/MarketMathStatic__factory.ts +1 -1
  446. package/typechain-types/factories/MetaStableMath__factory.ts +1 -1
  447. package/typechain-types/factories/MetaStablePreview__factory.ts +1 -1
  448. package/typechain-types/factories/Multicall2__factory.ts +1 -1
  449. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  450. package/typechain-types/factories/PendleAuraWethAnkrethSY__factory.ts +1265 -0
  451. package/typechain-types/factories/PendleAuraWethRethSY__factory.ts +1 -1
  452. package/typechain-types/factories/PendleAuraWethWstethSY__factory.ts +1 -1
  453. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
  454. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
  455. package/typechain-types/factories/PendleERC20Permit__factory.ts +1 -1
  456. package/typechain-types/factories/PendleERC20__factory.ts +1 -1
  457. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  458. package/typechain-types/factories/PendleGDaiSY__factory.ts +1 -1
  459. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  460. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  461. package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
  462. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
  463. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  464. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  465. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  466. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  467. package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +1 -1
  468. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  469. package/typechain-types/factories/PendlePtOracleBase__factory.ts +78 -0
  470. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  471. package/typechain-types/factories/PendleRouterHelper__factory.ts +841 -0
  472. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  473. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  474. package/typechain-types/factories/PendleStargateLP__factory.ts +1241 -0
  475. package/typechain-types/factories/PendleSwapAggregator__factory.ts +1 -1
  476. package/typechain-types/factories/PendleSwapArbitrum__factory.ts +129 -0
  477. package/typechain-types/factories/PendleSwapEthereum__factory.ts +129 -0
  478. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  479. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  480. package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +1 -1
  481. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  482. package/typechain-types/factories/PendleYieldTokenV2__factory.ts +1 -1
  483. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  484. package/typechain-types/factories/PtFraxUsdcOracle__factory.ts +226 -0
  485. package/typechain-types/factories/PtStETHOracle__factory.ts +201 -0
  486. package/typechain-types/factories/RouterStatic__factory.ts +72 -4
  487. package/typechain-types/factories/SAPE__factory.ts +1 -1
  488. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  489. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  490. package/typechain-types/hardhat.d.ts +146 -146
  491. package/typechain-types/index.ts +24 -34
  492. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +0 -4
  493. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.json +0 -252
  494. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +0 -4
  495. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.json +0 -87
  496. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +0 -4
  497. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.json +0 -59
  498. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.dbg.json +0 -4
  499. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.json +0 -162
  500. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.dbg.json +0 -4
  501. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.json +0 -87
  502. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +0 -4
  503. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.json +0 -24
  504. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.dbg.json +0 -4
  505. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.json +0 -24
  506. package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.dbg.json +0 -4
  507. package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.json +0 -92
  508. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.dbg.json +0 -4
  509. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.json +0 -199
  510. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +0 -4
  511. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.json +0 -168
  512. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +0 -4
  513. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.json +0 -252
  514. package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.dbg.json +0 -4
  515. package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.json +0 -132
  516. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +0 -4
  517. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.json +0 -148
  518. package/build/artifacts/contracts/offchain-helpers/legacy/MarketMathStatic.sol/MarketMathStatic.dbg.json +0 -4
  519. package/build/artifacts/contracts/offchain-helpers/legacy/MarketMathStatic.sol/MarketMathStatic.json +0 -259
  520. package/build/artifacts/contracts/offchain-helpers/legacy/RouterStatic.sol/RouterStatic.dbg.json +0 -4
  521. package/build/artifacts/contracts/offchain-helpers/legacy/RouterStatic.sol/RouterStatic.json +0 -2741
  522. package/build/artifacts/contracts/offchain-helpers/router-static/StorageLayout.sol/StorageLayout.dbg.json +0 -4
  523. package/build/artifacts/contracts/offchain-helpers/router-static/StorageLayout.sol/StorageLayout.json +0 -10
  524. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapAggregator.sol/PendleSwapAggregator.dbg.json +0 -4
  525. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapAggregator.sol/PendleSwapAggregator.json +0 -72
  526. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.dbg.json +0 -4
  527. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.dbg.json +0 -4
  528. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.json +0 -10
  529. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +0 -4
  530. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +0 -4
  531. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IHashflow.sol/IHashflow.dbg.json +0 -4
  532. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +0 -4
  533. package/contracts/interfaces/IAToken.sol +0 -44
  534. package/contracts/interfaces/IAavePool.sol +0 -41
  535. package/contracts/interfaces/IAaveRewardsController.sol +0 -32
  536. package/contracts/interfaces/IEulerEToken.sol +0 -60
  537. package/contracts/interfaces/IEulerMarkets.sol +0 -46
  538. package/contracts/interfaces/IPGovernanceManager.sol +0 -28
  539. package/contracts/interfaces/IPPermissionsV2Upg.sol +0 -28
  540. package/contracts/interfaces/IREDACTEDStaking.sol +0 -35
  541. package/contracts/interfaces/ISAvax.sol +0 -61
  542. package/contracts/interfaces/ISJoe.sol +0 -57
  543. package/contracts/interfaces/IWAvax.sol +0 -34
  544. package/contracts/interfaces/IWXBTRFLY.sol +0 -39
  545. package/contracts/interfaces/IYearnVault.sol +0 -46
  546. package/contracts/offchain-helpers/legacy/MarketMathStatic.sol +0 -557
  547. package/contracts/offchain-helpers/legacy/RouterStatic.sol +0 -903
  548. package/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol +0 -17
  549. /package/contracts/router/swap-aggregator/kyberswap/{interfaces → arbitrum}/IHashflow.sol +0 -0
  550. /package/contracts/router/swap-aggregator/kyberswap/{interfaces → ethereum}/IExecutorHelperEthereum1.sol +0 -0
@@ -1,903 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.17;
3
-
4
- import "../../interfaces/IPYieldContractFactory.sol";
5
- import "../../interfaces/IPMarketFactory.sol";
6
- import "../../interfaces/IPVotingEscrowMainchain.sol";
7
- import "../../interfaces/IPBulkSellerFactory.sol";
8
- import "../../interfaces/IPBulkSeller.sol";
9
-
10
- import "./MarketMathStatic.sol";
11
-
12
- import "../../core/libraries/BoringOwnableUpgradeable.sol";
13
- import "../../LiquidityMining/libraries/VeBalanceLib.sol";
14
-
15
- import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
16
- import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";
17
- import "@openzeppelin/contracts/proxy/Proxy.sol";
18
-
19
- /// EXCLUDED FROM ALL AUDITS, TO BE CALLED ONLY BY PENDLE's SDK
20
- contract RouterStatic is Initializable, Proxy, BoringOwnableUpgradeable, UUPSUpgradeable {
21
- using Math for uint256;
22
- using VeBalanceLib for VeBalance;
23
- using VeBalanceLib for LockedPosition;
24
- using BulkSellerMathCore for BulkSellerState;
25
-
26
- uint128 public constant MAX_LOCK_TIME = 104 weeks;
27
- uint128 public constant MIN_LOCK_TIME = 1 weeks;
28
-
29
- struct TokenAmount {
30
- address token;
31
- uint256 amount;
32
- }
33
-
34
- struct AssetAmount {
35
- IStandardizedYield.AssetType assetType;
36
- address assetAddress;
37
- uint256 amount;
38
- }
39
-
40
- struct RewardIndex {
41
- address rewardToken;
42
- uint256 index;
43
- }
44
-
45
- struct UserPYInfo {
46
- address yt;
47
- address pt;
48
- uint256 ytBalance;
49
- uint256 ptBalance;
50
- TokenAmount unclaimedInterest;
51
- TokenAmount[] unclaimedRewards;
52
- }
53
-
54
- struct UserMarketInfo {
55
- address market;
56
- uint256 lpBalance;
57
- TokenAmount ptBalance;
58
- TokenAmount syBalance;
59
- AssetAmount assetBalance;
60
- }
61
-
62
- IPYieldContractFactory internal immutable yieldContractFactory;
63
- IPMarketFactory internal immutable marketFactory;
64
- IPVotingEscrowMainchain internal immutable vePENDLE;
65
- IPBulkSellerFactory internal immutable bulkFactory;
66
- address internal immutable marketMathStaticLib;
67
-
68
- constructor(
69
- IPYieldContractFactory _yieldContractFactory,
70
- IPMarketFactory _marketFactory,
71
- IPVotingEscrowMainchain _vePENDLE,
72
- IPBulkSellerFactory _bulkFactory,
73
- address _marketMathStaticLib
74
- ) initializer {
75
- yieldContractFactory = _yieldContractFactory;
76
- marketFactory = _marketFactory;
77
- vePENDLE = _vePENDLE;
78
- bulkFactory = _bulkFactory;
79
- marketMathStaticLib = _marketMathStaticLib;
80
- }
81
-
82
- // all Market-related functions will go to MarketMathStaticLib
83
- function _implementation() internal view override returns (address) {
84
- return marketMathStaticLib;
85
- }
86
-
87
- function initialize() external initializer {
88
- __BoringOwnable_init();
89
- }
90
-
91
- function _authorizeUpgrade(address newImplementation) internal override onlyOwner {}
92
-
93
- // ============= SYSTEM INFO =============
94
-
95
- function getPYInfo(address py)
96
- external
97
- returns (
98
- uint256 exchangeRate,
99
- uint256 totalSupply,
100
- RewardIndex[] memory rewardIndexes
101
- )
102
- {
103
- (, address yt) = getPY(py);
104
- IPYieldToken YT = IPYieldToken(yt);
105
- exchangeRate = YT.pyIndexCurrent();
106
- totalSupply = YT.totalSupply();
107
- address[] memory rewardTokens = YT.getRewardTokens();
108
- rewardIndexes = new RewardIndex[](rewardTokens.length);
109
-
110
- uint256[] memory indexes = YT.rewardIndexesCurrent();
111
- for (uint256 i = 0; i < rewardTokens.length; ++i) {
112
- address rewardToken = rewardTokens[i];
113
- rewardIndexes[i].rewardToken = rewardToken;
114
- rewardIndexes[i].index = indexes[i];
115
- }
116
- }
117
-
118
- function getPendleTokenType(address token)
119
- external
120
- view
121
- returns (
122
- bool isPT,
123
- bool isYT,
124
- bool isMarket
125
- )
126
- {
127
- if (yieldContractFactory.isPT(token)) isPT = true;
128
- else if (yieldContractFactory.isYT(token)) isYT = true;
129
- else if (marketFactory.isValidMarket(token)) isMarket = true;
130
- }
131
-
132
- function getPY(address py) public view returns (address pt, address yt) {
133
- if (yieldContractFactory.isYT(py)) {
134
- pt = IPYieldToken(py).PT();
135
- yt = py;
136
- } else {
137
- pt = py;
138
- yt = IPPrincipalToken(py).YT();
139
- }
140
- }
141
-
142
- function getMarketInfo(address market)
143
- external
144
- returns (
145
- address pt,
146
- address sy,
147
- MarketState memory state,
148
- int256 impliedYield,
149
- uint256 exchangeRate
150
- )
151
- {
152
- IPMarket _market = IPMarket(market);
153
- (IStandardizedYield SY, IPPrincipalToken PT, ) = IPMarket(market).readTokens();
154
-
155
- pt = address(PT);
156
- sy = address(SY);
157
- state = _market.readState(address(this));
158
- impliedYield = getPtImpliedYield(market);
159
- exchangeRate = MarketMathStatic.getTradeExchangeRateExcludeFee(market);
160
- }
161
-
162
- // ============= USER INFO =============
163
-
164
- function getUserPYPositionsByPYs(address user, address[] calldata pys)
165
- external
166
- view
167
- returns (UserPYInfo[] memory userPYPositions)
168
- {
169
- userPYPositions = new UserPYInfo[](pys.length);
170
- for (uint256 i = 0; i < pys.length; ++i) {
171
- userPYPositions[i] = getUserPYInfo(pys[i], user);
172
- }
173
- }
174
-
175
- function getUserMarketPositions(address user, address[] calldata markets)
176
- external
177
- view
178
- returns (UserMarketInfo[] memory userMarketPositions)
179
- {
180
- userMarketPositions = new UserMarketInfo[](markets.length);
181
- for (uint256 i = 0; i < markets.length; ++i) {
182
- userMarketPositions[i] = getUserMarketInfo(markets[i], user);
183
- }
184
- }
185
-
186
- function getUserSYInfo(address sy, address user)
187
- external
188
- view
189
- returns (uint256 balance, TokenAmount[] memory rewards)
190
- {
191
- IStandardizedYield SY = IStandardizedYield(sy);
192
- balance = SY.balanceOf(sy);
193
- address[] memory rewardTokens = SY.getRewardTokens();
194
- rewards = new TokenAmount[](rewardTokens.length);
195
- for (uint256 i = 0; i < rewardTokens.length; ++i) {
196
- address rewardToken = rewardTokens[i];
197
- rewards[i].token = rewardToken;
198
- (, rewards[i].amount) = IRewardManager(sy).userReward(rewardToken, user);
199
- }
200
- }
201
-
202
- function getUserPYInfo(address py, address user)
203
- public
204
- view
205
- returns (UserPYInfo memory userPYInfo)
206
- {
207
- (userPYInfo.pt, userPYInfo.yt) = getPY(py);
208
- IPYieldToken YT = IPYieldToken(userPYInfo.yt);
209
- userPYInfo.ytBalance = YT.balanceOf(user);
210
- userPYInfo.ptBalance = IPPrincipalToken(userPYInfo.pt).balanceOf(user);
211
- userPYInfo.unclaimedInterest.token = YT.SY();
212
- (, userPYInfo.unclaimedInterest.amount) = YT.userInterest(user);
213
- address[] memory rewardTokens = YT.getRewardTokens();
214
- TokenAmount[] memory unclaimedRewards = new TokenAmount[](rewardTokens.length);
215
- uint256 length = 0;
216
- for (uint256 i = 0; i < rewardTokens.length; ++i) {
217
- address rewardToken = rewardTokens[i];
218
- (, uint256 amount) = YT.userReward(rewardToken, user);
219
- if (amount > 0) {
220
- unclaimedRewards[length].token = rewardToken;
221
- unclaimedRewards[length].amount = amount;
222
- ++length;
223
- }
224
- }
225
- userPYInfo.unclaimedRewards = new TokenAmount[](length);
226
- for (uint256 i = 0; i < length; ++i) {
227
- userPYInfo.unclaimedRewards[i] = unclaimedRewards[i];
228
- }
229
- }
230
-
231
- function getUserMarketInfo(address market, address user)
232
- public
233
- view
234
- returns (UserMarketInfo memory userMarketInfo)
235
- {
236
- IPMarket _market = IPMarket(market);
237
- uint256 userLp = _market.balanceOf(user);
238
-
239
- userMarketInfo.market = market;
240
- userMarketInfo.lpBalance = userLp;
241
-
242
- (IStandardizedYield SY, IPPrincipalToken PT, ) = _market.readTokens();
243
- (userMarketInfo.assetBalance.assetType, userMarketInfo.assetBalance.assetAddress, ) = SY
244
- .assetInfo();
245
-
246
- MarketState memory state = _market.readState(address(this));
247
- uint256 totalLp = uint256(state.totalLp);
248
-
249
- if (totalLp == 0) {
250
- return userMarketInfo;
251
- }
252
-
253
- uint256 userPt = (userLp * uint256(state.totalPt)) / totalLp;
254
- uint256 userSy = (userLp * uint256(state.totalSy)) / totalLp;
255
-
256
- userMarketInfo.ptBalance = TokenAmount(address(PT), userPt);
257
- userMarketInfo.syBalance = TokenAmount(address(SY), userSy);
258
- userMarketInfo.assetBalance.amount = (userSy * SY.exchangeRate()) / Math.ONE;
259
- }
260
-
261
- function hasPYPosition(UserPYInfo calldata userPYInfo) public pure returns (bool hasPosition) {
262
- hasPosition = (userPYInfo.ytBalance > 0 ||
263
- userPYInfo.ptBalance > 0 ||
264
- userPYInfo.unclaimedInterest.amount > 0 ||
265
- userPYInfo.unclaimedRewards.length > 0);
266
- }
267
-
268
- // ============= MARKET ACTIONS =============
269
-
270
- function addLiquidityDualSyAndPtStatic(
271
- address market,
272
- uint256 netSyDesired,
273
- uint256 netPtDesired
274
- )
275
- external
276
- view
277
- returns (
278
- uint256 netLpOut,
279
- uint256 netSyUsed,
280
- uint256 netPtUsed
281
- )
282
- {
283
- return MarketMathStatic.addLiquidityDualSyAndPtStatic(market, netSyDesired, netPtDesired);
284
- }
285
-
286
- function addLiquidityDualTokenAndPtStatic(
287
- address market,
288
- address tokenIn,
289
- uint256 netTokenDesired,
290
- address bulk,
291
- uint256 netPtDesired
292
- )
293
- external
294
- view
295
- returns (
296
- uint256 netLpOut,
297
- uint256 netTokenUsed,
298
- uint256 netPtUsed
299
- )
300
- {
301
- uint256 netSyDesired = previewDepositStatic(
302
- getSyMarket(market),
303
- tokenIn,
304
- netTokenDesired,
305
- bulk
306
- );
307
-
308
- uint256 netSyUsed;
309
- (netLpOut, netSyUsed, netPtUsed) = MarketMathStatic.addLiquidityDualSyAndPtStatic(
310
- market,
311
- netSyDesired,
312
- netPtDesired
313
- );
314
-
315
- if (netSyUsed != netSyDesired) revert Errors.RouterNotAllSyUsed(netSyDesired, netSyUsed);
316
-
317
- netTokenUsed = netTokenDesired;
318
- }
319
-
320
- function addLiquiditySinglePtStatic(address market, uint256 netPtIn)
321
- external
322
- returns (
323
- uint256 netLpOut,
324
- uint256 netPtToSwap,
325
- uint256 netSyFee,
326
- uint256 priceImpact,
327
- uint256 exchangeRateAfter
328
- )
329
- {
330
- return MarketMathStatic.addLiquiditySinglePtStatic(market, netPtIn);
331
- }
332
-
333
- function addLiquiditySingleSyStatic(address market, uint256 netSyIn)
334
- public
335
- returns (
336
- uint256 netLpOut,
337
- uint256 netPtFromSwap,
338
- uint256 netSyFee,
339
- uint256 priceImpact,
340
- uint256 exchangeRateAfter
341
- )
342
- {
343
- return MarketMathStatic.addLiquiditySingleSyStatic(market, netSyIn);
344
- }
345
-
346
- function addLiquiditySingleBaseTokenStatic(
347
- address market,
348
- address baseToken,
349
- uint256 netBaseTokenIn,
350
- address bulk
351
- )
352
- external
353
- returns (
354
- uint256 netLpOut,
355
- uint256 netPtFromSwap,
356
- uint256 netSyFee,
357
- uint256 priceImpact,
358
- uint256 exchangeRateAfter
359
- )
360
- {
361
- uint256 netSyIn = previewDepositStatic(
362
- getSyMarket(market),
363
- baseToken,
364
- netBaseTokenIn,
365
- bulk
366
- );
367
-
368
- return MarketMathStatic.addLiquiditySingleSyStatic(market, netSyIn);
369
- }
370
-
371
- function removeLiquidityDualSyAndPtStatic(address market, uint256 netLpToRemove)
372
- external
373
- view
374
- returns (uint256 netSyOut, uint256 netPtOut)
375
- {
376
- return MarketMathStatic.removeLiquidityDualSyAndPtStatic(market, netLpToRemove);
377
- }
378
-
379
- function removeLiquidityDualTokenAndPtStatic(
380
- address market,
381
- uint256 netLpToRemove,
382
- address tokenOut,
383
- address bulk
384
- ) external view returns (uint256 netTokenOut, uint256 netPtOut) {
385
- uint256 netSyOut;
386
-
387
- (netSyOut, netPtOut) = MarketMathStatic.removeLiquidityDualSyAndPtStatic(
388
- market,
389
- netLpToRemove
390
- );
391
-
392
- netTokenOut = previewRedeemStatic(getSyMarket(market), tokenOut, netSyOut, bulk);
393
- }
394
-
395
- function removeLiquiditySinglePtStatic(address market, uint256 netLpToRemove)
396
- external
397
- returns (
398
- uint256 netPtOut,
399
- uint256 netPtFromSwap,
400
- uint256 netSyFee,
401
- uint256 priceImpact,
402
- uint256 exchangeRateAfter
403
- )
404
- {
405
- return MarketMathStatic.removeLiquiditySinglePtStatic(market, netLpToRemove);
406
- }
407
-
408
- function removeLiquiditySingleSyStatic(address market, uint256 netLpToRemove)
409
- public
410
- returns (
411
- uint256 netSyOut,
412
- uint256 netSyFee,
413
- uint256 priceImpact,
414
- uint256 exchangeRateAfter
415
- )
416
- {
417
- return MarketMathStatic.removeLiquiditySingleSyStatic(market, netLpToRemove);
418
- }
419
-
420
- function removeLiquiditySingleBaseTokenStatic(
421
- address market,
422
- uint256 netLpToRemove,
423
- address baseToken,
424
- address bulk
425
- )
426
- external
427
- returns (
428
- uint256 netBaseTokenOut,
429
- uint256 netSyFee,
430
- uint256 priceImpact,
431
- uint256 exchangeRateAfter
432
- )
433
- {
434
- uint256 netSyOut;
435
-
436
- (netSyOut, netSyFee, priceImpact, exchangeRateAfter) = MarketMathStatic
437
- .removeLiquiditySingleSyStatic(market, netLpToRemove);
438
-
439
- netBaseTokenOut = previewRedeemStatic(getSyMarket(market), baseToken, netSyOut, bulk);
440
- }
441
-
442
- function swapExactPtForSyStatic(address market, uint256 exactPtIn)
443
- public
444
- returns (
445
- uint256 netSyOut,
446
- uint256 netSyFee,
447
- uint256 priceImpact,
448
- uint256 exchangeRateAfter
449
- )
450
- {
451
- return MarketMathStatic.swapExactPtForSyStatic(market, exactPtIn);
452
- }
453
-
454
- function swapSyForExactPtStatic(address market, uint256 exactPtOut)
455
- external
456
- returns (
457
- uint256 netSyIn,
458
- uint256 netSyFee,
459
- uint256 priceImpact,
460
- uint256 exchangeRateAfter
461
- )
462
- {
463
- return MarketMathStatic.swapSyForExactPtStatic(market, exactPtOut);
464
- }
465
-
466
- function swapExactSyForPtStatic(address market, uint256 exactSyIn)
467
- public
468
- returns (
469
- uint256 netPtOut,
470
- uint256 netSyFee,
471
- uint256 priceImpact,
472
- uint256 exchangeRateAfter
473
- )
474
- {
475
- return MarketMathStatic.swapExactSyForPtStatic(market, exactSyIn);
476
- }
477
-
478
- function swapPtForExactSyStatic(address market, uint256 exactSyOut)
479
- public
480
- returns (
481
- uint256 netPtIn,
482
- uint256 netSyFee,
483
- uint256 priceImpact,
484
- uint256 exchangeRateAfter
485
- )
486
- {
487
- return MarketMathStatic.swapPtForExactSyStatic(market, exactSyOut);
488
- }
489
-
490
- function swapExactBaseTokenForPtStatic(
491
- address market,
492
- address baseToken,
493
- uint256 amountBaseToken,
494
- address bulk
495
- )
496
- external
497
- returns (
498
- uint256 netPtOut,
499
- uint256 netSyFee,
500
- uint256 priceImpact,
501
- uint256 exchangeRateAfter
502
- )
503
- {
504
- uint256 netSyIn = previewDepositStatic(
505
- getSyMarket(market),
506
- baseToken,
507
- amountBaseToken,
508
- bulk
509
- );
510
- return MarketMathStatic.swapExactSyForPtStatic(market, netSyIn);
511
- }
512
-
513
- function swapExactPtForBaseTokenStatic(
514
- address market,
515
- uint256 exactPtIn,
516
- address baseToken,
517
- address bulk
518
- )
519
- external
520
- returns (
521
- uint256 netBaseTokenOut,
522
- uint256 netSyFee,
523
- uint256 priceImpact,
524
- uint256 exchangeRateAfter
525
- )
526
- {
527
- uint256 netSyOut;
528
- (netSyOut, netSyFee, priceImpact, exchangeRateAfter) = MarketMathStatic
529
- .swapExactPtForSyStatic(market, exactPtIn);
530
-
531
- netBaseTokenOut = previewRedeemStatic(getSyMarket(market), baseToken, netSyOut, bulk);
532
- }
533
-
534
- function swapSyForExactYtStatic(address market, uint256 exactYtOut)
535
- external
536
- returns (
537
- uint256 netSyIn,
538
- uint256 netSyFee,
539
- uint256 priceImpact,
540
- uint256 exchangeRateAfter
541
- )
542
- {
543
- return MarketMathStatic.swapSyForExactYtStatic(market, exactYtOut);
544
- }
545
-
546
- function swapExactSyForYtStatic(address market, uint256 exactSyIn)
547
- public
548
- returns (
549
- uint256 netYtOut,
550
- uint256 netSyFee,
551
- uint256 priceImpact,
552
- uint256 exchangeRateAfter
553
- )
554
- {
555
- return MarketMathStatic.swapExactSyForYtStatic(market, exactSyIn);
556
- }
557
-
558
- function swapExactYtForSyStatic(address market, uint256 exactYtIn)
559
- public
560
- returns (
561
- uint256 netSyOut,
562
- uint256 netSyFee,
563
- uint256 priceImpact,
564
- uint256 exchangeRateAfter
565
- )
566
- {
567
- return MarketMathStatic.swapExactYtForSyStatic(market, exactYtIn);
568
- }
569
-
570
- function swapYtForExactSyStatic(address market, uint256 exactSyOut)
571
- external
572
- returns (
573
- uint256 netYtIn,
574
- uint256 netSyFee,
575
- uint256 priceImpact,
576
- uint256 exchangeRateAfter
577
- )
578
- {
579
- return MarketMathStatic.swapYtForExactSyStatic(market, exactSyOut);
580
- }
581
-
582
- function swapExactYtForBaseTokenStatic(
583
- address market,
584
- uint256 exactYtIn,
585
- address baseToken,
586
- address bulk
587
- )
588
- external
589
- returns (
590
- uint256 netBaseTokenOut,
591
- uint256 netSyFee,
592
- uint256 priceImpact,
593
- uint256 exchangeRateAfter
594
- )
595
- {
596
- uint256 netSyOut;
597
- (netSyOut, netSyFee, priceImpact, exchangeRateAfter) = MarketMathStatic
598
- .swapExactYtForSyStatic(market, exactYtIn);
599
-
600
- netBaseTokenOut = previewRedeemStatic(getSyMarket(market), baseToken, netSyOut, bulk);
601
- }
602
-
603
- function swapExactBaseTokenForYtStatic(
604
- address market,
605
- address baseToken,
606
- uint256 amountBaseToken,
607
- address bulk
608
- )
609
- external
610
- returns (
611
- uint256 netYtOut,
612
- uint256 netSyFee,
613
- uint256 priceImpact,
614
- uint256 exchangeRateAfter
615
- )
616
- {
617
- uint256 netSyIn = previewDepositStatic(
618
- getSyMarket(market),
619
- baseToken,
620
- amountBaseToken,
621
- bulk
622
- );
623
-
624
- return MarketMathStatic.swapExactSyForYtStatic(market, netSyIn);
625
- }
626
-
627
- function swapExactPtForYtStatic(address market, uint256 exactPtIn)
628
- external
629
- returns (
630
- uint256 netYtOut,
631
- uint256 totalPtToSwap,
632
- uint256 netSyFee,
633
- uint256 priceImpact,
634
- uint256 exchangeRateAfter
635
- )
636
- {
637
- return MarketMathStatic.swapExactPtForYt(market, exactPtIn);
638
- }
639
-
640
- function swapExactYtForPtStatic(address market, uint256 exactYtIn)
641
- external
642
- returns (
643
- uint256 netPtOut,
644
- uint256 totalPtSwapped,
645
- uint256 netSyFee,
646
- uint256 priceImpact,
647
- uint256 exchangeRateAfter
648
- )
649
- {
650
- return MarketMathStatic.swapExactYtForPt(market, exactYtIn);
651
- }
652
-
653
- // ============= vePENDLE =============
654
-
655
- function increaseLockPositionStatic(
656
- address user,
657
- uint128 additionalAmountToLock,
658
- uint128 newExpiry
659
- ) external view returns (uint128 newVeBalance) {
660
- if (!WeekMath.isValidWTime(newExpiry)) revert Errors.InvalidWTime(newExpiry);
661
- if (MiniHelpers.isTimeInThePast(newExpiry)) revert Errors.ExpiryInThePast(newExpiry);
662
-
663
- if (newExpiry > block.timestamp + MAX_LOCK_TIME) revert Errors.VEExceededMaxLockTime();
664
- if (newExpiry < block.timestamp + MIN_LOCK_TIME) revert Errors.VEInsufficientLockTime();
665
-
666
- LockedPosition memory oldPosition;
667
-
668
- {
669
- (uint128 amount, uint128 expiry) = vePENDLE.positionData(user);
670
- oldPosition = LockedPosition(amount, expiry);
671
- }
672
-
673
- if (newExpiry < oldPosition.expiry) revert Errors.VENotAllowedReduceExpiry();
674
-
675
- uint128 newTotalAmountLocked = additionalAmountToLock + oldPosition.amount;
676
- if (newTotalAmountLocked == 0) revert Errors.VEZeroAmountLocked();
677
-
678
- uint128 additionalDurationToLock = newExpiry - oldPosition.expiry;
679
-
680
- LockedPosition memory newPosition = LockedPosition(
681
- oldPosition.amount + additionalAmountToLock,
682
- oldPosition.expiry + additionalDurationToLock
683
- );
684
-
685
- VeBalance memory newBalance = newPosition.convertToVeBalance();
686
- return newBalance.getCurrentValue();
687
- }
688
-
689
- // ============= OTHER HELPERS =============
690
-
691
- function mintPYFromSyStatic(address YT, uint256 amountSyToMint)
692
- public
693
- returns (uint256 amountPY)
694
- {
695
- IPYieldToken _YT = IPYieldToken(YT);
696
- if (_YT.isExpired()) revert Errors.YCExpired();
697
- return amountSyToMint.mulDown(_YT.pyIndexCurrent());
698
- }
699
-
700
- function redeemPYToSyStatic(address YT, uint256 amountPYToRedeem)
701
- public
702
- returns (uint256 amountPY)
703
- {
704
- IPYieldToken _YT = IPYieldToken(YT);
705
- return amountPYToRedeem.divDown(_YT.pyIndexCurrent());
706
- }
707
-
708
- function mintPYFromBaseStatic(
709
- address YT,
710
- address baseToken,
711
- uint256 amountBaseToken,
712
- address bulk
713
- ) external returns (uint256 amountPY) {
714
- IStandardizedYield SY = IStandardizedYield(IPYieldToken(YT).SY());
715
- uint256 amountSy = previewDepositStatic(SY, baseToken, amountBaseToken, bulk);
716
- return mintPYFromSyStatic(YT, amountSy);
717
- }
718
-
719
- function redeemPYToBaseStatic(
720
- address YT,
721
- uint256 amountPYToRedeem,
722
- address baseToken,
723
- address bulk
724
- ) external returns (uint256 amountBaseToken) {
725
- IStandardizedYield SY = IStandardizedYield(IPYieldToken(YT).SY());
726
- uint256 amountSy = redeemPYToSyStatic(YT, amountPYToRedeem);
727
- return previewRedeemStatic(SY, baseToken, amountSy, bulk);
728
- }
729
-
730
- function previewDepositStatic(
731
- IStandardizedYield SY,
732
- address baseToken,
733
- uint256 amountToken,
734
- address bulk
735
- ) public view returns (uint256 amountSy) {
736
- if (bulk != address(0)) {
737
- BulkSellerState memory state = IPBulkSeller(bulk).readState();
738
- return state.calcSwapExactTokenForSy(amountToken);
739
- } else {
740
- return SY.previewDeposit(baseToken, amountToken);
741
- }
742
- }
743
-
744
- function previewRedeemStatic(
745
- IStandardizedYield SY,
746
- address baseToken,
747
- uint256 amountSy,
748
- address bulk
749
- ) public view returns (uint256 amountBaseToken) {
750
- if (bulk != address(0)) {
751
- BulkSellerState memory state = IPBulkSeller(bulk).readState();
752
- return state.calcSwapExactSyForToken(amountSy);
753
- } else {
754
- return SY.previewRedeem(baseToken, amountSy);
755
- }
756
- }
757
-
758
- function getPtImpliedYield(address market) public view returns (int256) {
759
- return MarketMathStatic.getPtImpliedYield(market);
760
- }
761
-
762
- function pyIndex(address market) public returns (PYIndex index) {
763
- return MarketMathStatic.pyIndex(market);
764
- }
765
-
766
- function getExchangeRate(address market) public returns (uint256) {
767
- return getTradeExchangeRateIncludeFee(market, 0);
768
- }
769
-
770
- function getTradeExchangeRateIncludeFee(address market, int256 netPtOut)
771
- public
772
- returns (uint256)
773
- {
774
- return MarketMathStatic.getTradeExchangeRateIncludeFee(market, netPtOut);
775
- }
776
-
777
- function calcPriceImpact(address market, int256 netPtOut)
778
- public
779
- returns (uint256 priceImpact)
780
- {
781
- return MarketMathStatic.calcPriceImpactPt(market, netPtOut);
782
- }
783
-
784
- // either but not both pyToken or market must be != 0
785
- function getTokensInOut(address pyToken, address market)
786
- public
787
- view
788
- returns (address[] memory tokensIn, address[] memory tokensOut)
789
- {
790
- if (pyToken != address(0)) {
791
- // SY interface is shared between pt & yt
792
- IStandardizedYield SY = IStandardizedYield(IPPrincipalToken(pyToken).SY());
793
- return (SY.getTokensIn(), SY.getTokensOut());
794
- } else {
795
- (IStandardizedYield SY, , ) = IPMarket(market).readTokens();
796
- return (SY.getTokensIn(), SY.getTokensOut());
797
- }
798
- }
799
-
800
- function getAmountTokenToMintSy(
801
- IStandardizedYield SY,
802
- address tokenIn,
803
- address bulk,
804
- uint256 netSyOut
805
- ) public view returns (uint256 netTokenIn) {
806
- uint256 pivotAmount = 10**IERC20Metadata(tokenIn).decimals();
807
-
808
- uint256 low = pivotAmount;
809
- {
810
- while (true) {
811
- uint256 lowSyOut = previewDepositStatic(SY, tokenIn, low, bulk);
812
- if (lowSyOut >= netSyOut) low /= 10;
813
- else break;
814
- }
815
- }
816
-
817
- uint256 high = pivotAmount;
818
- {
819
- while (true) {
820
- uint256 highSyOut = previewDepositStatic(SY, tokenIn, high, bulk);
821
- if (highSyOut < netSyOut) high *= 10;
822
- else break;
823
- }
824
- }
825
-
826
- while (low <= high) {
827
- uint256 mid = (low + high) / 2;
828
- uint256 syOut = previewDepositStatic(SY, tokenIn, mid, bulk);
829
-
830
- if (syOut >= netSyOut) {
831
- netTokenIn = mid;
832
- high = mid - 1;
833
- } else {
834
- low = mid + 1;
835
- }
836
- }
837
-
838
- assert(netTokenIn > 0);
839
- }
840
-
841
- function getSyMarket(address market) public view returns (IStandardizedYield) {
842
- (IStandardizedYield SY, , ) = IPMarket(market).readTokens();
843
- return SY;
844
- }
845
-
846
- function getBulkSellerInfo(address token, address SY)
847
- external
848
- view
849
- returns (
850
- address bulk,
851
- uint256 totalToken,
852
- uint256 totalSy
853
- )
854
- {
855
- bulk = IPBulkSellerFactory(bulkFactory).get(token, SY);
856
- if (bulk != address(0)) {
857
- BulkSellerState memory state = IPBulkSeller(bulk).readState();
858
- if (state.rateTokenToSy != 0 || state.rateSyToToken != 0) {
859
- totalToken = state.totalToken;
860
- totalSy = state.totalSy;
861
- }
862
- }
863
- }
864
-
865
- function getBulkSellerInfo(
866
- address token,
867
- address SY,
868
- uint256 netTokenIn,
869
- uint256 netSyIn
870
- )
871
- external
872
- view
873
- returns (
874
- address bulk,
875
- uint256 totalToken,
876
- uint256 totalSy
877
- )
878
- {
879
- bulk = IPBulkSellerFactory(bulkFactory).get(token, SY);
880
- if (bulk != address(0)) {
881
- BulkSellerState memory state = IPBulkSeller(bulk).readState();
882
-
883
- // Paused check
884
- if (state.rateTokenToSy == 0 || state.rateSyToToken == 0) {
885
- return (address(0), 0, 0);
886
- }
887
-
888
- // Liquidity check
889
- uint256 postFeeRateTokenToSy = state.rateTokenToSy.mulDown(Math.ONE - state.feeRate);
890
- uint256 postFeeRateSyToToken = state.rateSyToToken.mulDown(Math.ONE - state.feeRate);
891
- if (
892
- netTokenIn.mulDown(postFeeRateTokenToSy) > state.totalSy ||
893
- netSyIn.mulDown(postFeeRateSyToToken) > state.totalToken
894
- ) {
895
- return (address(0), 0, 0);
896
- }
897
-
898
- // return...
899
- totalToken = state.totalToken;
900
- totalSy = state.totalSy;
901
- }
902
- }
903
- }