@pendle/core-v2 1.3.0-mainnet → 2.0.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 (413) 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/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  6. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +2 -2
  7. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.json +2 -2
  10. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  11. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  12. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  13. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  14. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +3 -3
  15. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  16. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
  17. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  18. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  19. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  20. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  21. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  22. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  23. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +3 -3
  24. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  25. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  26. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  27. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  28. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  29. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  30. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  31. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  32. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +2 -2
  33. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +2 -2
  35. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +2 -2
  37. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  39. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  41. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  44. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  46. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.json +1 -41
  52. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  53. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +2 -2
  54. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol/PendleAura3EthSY.dbg.json +1 -1
  55. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol/PendleAura3EthSY.json +2 -41
  56. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol/PendleAuraCbethWstethSY.dbg.json +1 -1
  57. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol/PendleAuraCbethWstethSY.json +2 -41
  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 -41
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.dbg.json +1 -1
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol/FixedPoint.dbg.json +1 -1
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.dbg.json +1 -1
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.dbg.json +1 -1
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol/PendleAuraBalancerStableLPSY.dbg.json +1 -1
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.dbg.json +1 -1
  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/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  79. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.dbg.json +4 -0
  80. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.json +50 -0
  81. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +4 -0
  82. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +1163 -0
  83. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  84. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
  85. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  86. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  87. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  88. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  89. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  90. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  91. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  92. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  93. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  94. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +4 -0
  95. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.json +66 -0
  96. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +4 -0
  97. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +476 -0
  98. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +4 -0
  99. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +590 -0
  100. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +4 -0
  101. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +1017 -0
  102. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  103. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  104. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +50 -2
  105. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  106. package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.dbg.json +1 -1
  107. package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.dbg.json +1 -1
  108. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +1 -1
  109. package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.dbg.json +1 -1
  111. package/build/artifacts/contracts/interfaces/Balancer/IGauge.sol/IGauge.dbg.json +1 -1
  112. package/build/artifacts/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol/ILiquidityGaugeFactory.dbg.json +1 -1
  113. package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.dbg.json +1 -1
  114. package/build/artifacts/contracts/interfaces/Balancer/IRateProvider.sol/IRateProvider.dbg.json +1 -1
  115. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +1 -1
  116. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
  117. package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.dbg.json +4 -0
  118. package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.json +308 -0
  119. package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.dbg.json +4 -0
  120. package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.json +43 -0
  121. package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.dbg.json +4 -0
  122. package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.json +201 -0
  123. package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.dbg.json +4 -0
  124. package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.json +45 -0
  125. package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.dbg.json +4 -0
  126. package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.json +48 -0
  127. package/build/artifacts/contracts/interfaces/IApeStaking.sol/IApeStaking.dbg.json +1 -1
  128. package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.dbg.json +4 -0
  129. package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.json +93 -0
  130. package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.dbg.json +4 -0
  131. package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.json +87 -0
  132. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  133. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json +338 -16
  134. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  135. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json +105 -224
  136. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
  137. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.json +56 -12
  138. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  139. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.json +52 -8
  140. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  141. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.json +231 -8
  142. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  143. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +675 -241
  144. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  145. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
  146. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +4 -0
  147. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.json +40 -0
  148. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  149. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
  150. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.json +1 -1
  151. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  152. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  153. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +4 -0
  154. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.json +679 -0
  155. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.dbg.json +4 -0
  156. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.json +143 -0
  157. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  158. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
  159. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
  160. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +2 -28
  161. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +1 -1
  162. package/build/artifacts/contracts/offchain-helpers/PendleMulticall.sol/PendleMulticall.dbg.json +4 -0
  163. package/build/artifacts/contracts/offchain-helpers/PendleMulticall.sol/PendleMulticall.json +47 -0
  164. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  165. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +144 -60
  166. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  167. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +345 -62
  168. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  169. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +107 -260
  170. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  171. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +57 -18
  172. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  173. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +54 -65
  174. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  175. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +342 -44
  176. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  177. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +76 -67
  178. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +4 -0
  179. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.json +141 -0
  180. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  181. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json +1 -15
  182. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  183. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  184. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  185. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  186. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  187. package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.dbg.json +4 -0
  188. package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.json +160 -0
  189. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +4 -0
  190. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.json +10 -0
  191. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +4 -0
  192. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.json +56 -0
  193. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapAggregator.sol/PendleSwapAggregator.dbg.json +4 -0
  194. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapAggregator.sol/PendleSwapAggregator.json +72 -0
  195. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.dbg.json +4 -0
  196. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.json +10 -0
  197. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.dbg.json +4 -0
  198. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.json +10 -0
  199. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +4 -0
  200. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.json +65 -0
  201. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +4 -0
  202. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.json +388 -0
  203. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IHashflow.sol/IHashflow.dbg.json +4 -0
  204. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IHashflow.sol/IHashflow.json +101 -0
  205. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +4 -0
  206. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json +215 -0
  207. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol +0 -1
  208. package/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol +7 -9
  209. package/contracts/core/StandardizedYield/StEthHelper.sol +4 -4
  210. package/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol +142 -0
  211. package/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol +222 -0
  212. package/contracts/core/StandardizedYield/implementations/GLP/README.md +61 -0
  213. package/contracts/core/YieldContractsV2/InterestManagerYTV2.sol +114 -0
  214. package/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol +63 -0
  215. package/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol +200 -0
  216. package/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol +485 -0
  217. package/contracts/core/libraries/Errors.sol +5 -0
  218. package/contracts/core/libraries/TokenHelper.sol +10 -0
  219. package/contracts/interfaces/GMX/IGMXVault.sol +47 -0
  220. package/contracts/interfaces/GMX/IGlpManager.sol +8 -0
  221. package/contracts/interfaces/GMX/IRewardRouterV2.sol +43 -0
  222. package/contracts/interfaces/GMX/IVaultPriceFeed.sol +11 -0
  223. package/contracts/interfaces/IAddressProvider.sol +7 -0
  224. package/contracts/interfaces/IDiamondCut.sol +36 -0
  225. package/contracts/interfaces/IDiamondLoupe.sol +38 -0
  226. package/contracts/interfaces/IPActionAddRemoveLiq.sol +36 -1
  227. package/contracts/interfaces/IPActionMintRedeem.sol +2 -55
  228. package/contracts/interfaces/IPActionMisc.sol +18 -4
  229. package/contracts/interfaces/IPActionSwapPT.sol +1 -1
  230. package/contracts/interfaces/IPActionSwapYT.sol +28 -4
  231. package/contracts/interfaces/IPAllAction.sol +5 -3
  232. package/contracts/interfaces/IPInterestManagerYTV2.sol +13 -0
  233. package/contracts/interfaces/IPMsgReceiverApp.sol +1 -1
  234. package/contracts/interfaces/IPYieldTokenV2.sol +66 -0
  235. package/contracts/offchain-helpers/AddressProvider.sol +16 -0
  236. package/contracts/offchain-helpers/MarketMathStatic.sol +15 -0
  237. package/contracts/offchain-helpers/PendleMulticall.sol +26 -0
  238. package/contracts/offchain-helpers/RouterStatic.sol +22 -0
  239. package/contracts/router/ActionAddRemoveLiq.sol +116 -6
  240. package/contracts/router/ActionMintRedeem.sol +12 -202
  241. package/contracts/router/ActionMisc.sol +45 -19
  242. package/contracts/router/ActionSwapPT.sol +0 -5
  243. package/contracts/router/ActionSwapYT.sol +103 -13
  244. package/contracts/router/PendleRouter.sol +211 -72
  245. package/contracts/router/{ActionCallback.sol → base/ActionBaseCallback.sol} +47 -47
  246. package/contracts/router/base/ActionBaseMintRedeem.sol +105 -60
  247. package/contracts/router/base/CallbackHelper.sol +137 -44
  248. package/contracts/router/base/MarketApproxLib.sol +227 -350
  249. package/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol +45 -0
  250. package/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol +69 -0
  251. package/contracts/router/swap-aggregator/IPSwapAggregator.sol +25 -0
  252. package/contracts/router/swap-aggregator/PendleSwapAggregator.sol +47 -0
  253. package/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol +214 -0
  254. package/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol +147 -0
  255. package/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol +17 -0
  256. package/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperEthereum1.sol +191 -0
  257. package/contracts/router/swap-aggregator/kyberswap/interfaces/IHashflow.sol +30 -0
  258. package/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol +42 -0
  259. package/deployments/1-core.json +2 -1
  260. package/deployments/1-markets/BALANCER-LP-AURA-WSTETH-WETH-JUN272024.json +11 -0
  261. package/deployments/1-offchain-helper.json +4 -0
  262. package/deployments/42161-core.json +26 -0
  263. package/deployments/42161-markets/GLP-28MARCH2024.json +10 -0
  264. package/deployments/42161-offchain-helper.json +4 -0
  265. package/package.json +1 -1
  266. package/typechain-types/ActionAddRemoveLiq.ts +203 -23
  267. package/typechain-types/ActionBaseCallback.ts +115 -0
  268. package/typechain-types/ActionMintRedeem.ts +29 -230
  269. package/typechain-types/ActionMisc.ts +77 -27
  270. package/typechain-types/ActionSwapPT.ts +26 -31
  271. package/typechain-types/ActionSwapYT.ts +202 -21
  272. package/typechain-types/AddressProvider.ts +280 -0
  273. package/typechain-types/GLPPreviewHelper.ts +121 -0
  274. package/typechain-types/GMXPreviewHelper.ts +121 -0
  275. package/typechain-types/I1inchAggregationRouterV5.ts +257 -0
  276. package/typechain-types/IAddressProvider.ts +123 -0
  277. package/typechain-types/IAggregationExecutor.ts +182 -0
  278. package/typechain-types/IDiamondCut.ts +152 -0
  279. package/typechain-types/IDiamondLoupe.ts +190 -0
  280. package/typechain-types/IExecutorHelperEthereum1.ts +643 -0
  281. package/typechain-types/IGMXVault.ts +494 -0
  282. package/typechain-types/IGlpManager.ts +115 -0
  283. package/typechain-types/IHashflow.ts +159 -0
  284. package/typechain-types/IKyberSwapAggregationRouterHelper.ts +109 -0
  285. package/typechain-types/IMetaAggregationRouter.ts +213 -0
  286. package/typechain-types/IMetaAggregationRouterV2.ts +221 -0
  287. package/typechain-types/IPActionAddRemoveLiq.ts +213 -14
  288. package/typechain-types/IPActionMintRedeem.ts +29 -211
  289. package/typechain-types/IPActionMisc.ts +77 -27
  290. package/typechain-types/IPActionSwapPT.ts +26 -12
  291. package/typechain-types/IPActionSwapYT.ts +168 -12
  292. package/typechain-types/IPAllAction.ts +445 -227
  293. package/typechain-types/IPInterestManagerYTV2.ts +117 -0
  294. package/typechain-types/IPMsgReceiverApp.ts +5 -5
  295. package/typechain-types/IPSwapAggregator.ts +126 -0
  296. package/typechain-types/IPYieldTokenV2.ts +901 -0
  297. package/typechain-types/IRewardRouterV2.ts +346 -0
  298. package/typechain-types/ISwapAggregator.ts +124 -0
  299. package/typechain-types/IVaultPriceFeed.ts +114 -0
  300. package/typechain-types/InterestManagerYTV2.ts +157 -0
  301. package/typechain-types/PendleAura3EthSY.ts +0 -39
  302. package/typechain-types/PendleAuraCbethWstethSY.ts +0 -39
  303. package/typechain-types/PendleAuraWethWstethSY.ts +0 -39
  304. package/typechain-types/PendleGaugeControllerSidechainUpg.ts +4 -4
  305. package/typechain-types/PendleGlpSY.ts +1463 -0
  306. package/typechain-types/PendleMsgReceiverAppUpg.ts +5 -5
  307. package/typechain-types/PendleMulticall.ts +110 -0
  308. package/typechain-types/PendlePrincipalTokenV2.ts +614 -0
  309. package/typechain-types/PendleRouter.ts +109 -131
  310. package/typechain-types/PendleSwapAggregator.ts +126 -0
  311. package/typechain-types/PendleYieldContractFactoryV2.ts +801 -0
  312. package/typechain-types/PendleYieldTokenV2.ts +1298 -0
  313. package/typechain-types/RouterStatic.ts +92 -0
  314. package/typechain-types/SwapAggregator.ts +406 -0
  315. package/typechain-types/VotingEscrowPendleSidechain.ts +4 -5
  316. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +346 -68
  317. package/typechain-types/factories/ActionBaseCallback__factory.ts +156 -0
  318. package/typechain-types/factories/ActionMintRedeem__factory.ts +108 -266
  319. package/typechain-types/factories/ActionMisc__factory.ts +56 -17
  320. package/typechain-types/factories/ActionSwapPT__factory.ts +55 -71
  321. package/typechain-types/factories/ActionSwapYT__factory.ts +356 -48
  322. package/typechain-types/factories/AddressProvider__factory.ts +196 -0
  323. package/typechain-types/factories/AggregationRouterHelper__factory.ts +1 -1
  324. package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
  325. package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
  326. package/typechain-types/factories/BulkSeller__factory.ts +1 -1
  327. package/typechain-types/factories/Errors__factory.ts +49 -1
  328. package/typechain-types/factories/GLPPreviewHelper__factory.ts +65 -0
  329. package/typechain-types/factories/GMXPreviewHelper__factory.ts +65 -0
  330. package/typechain-types/factories/I1inchAggregationRouterV5__factory.ts +179 -0
  331. package/typechain-types/factories/IAddressProvider__factory.ts +63 -0
  332. package/typechain-types/factories/IAggregationExecutor__factory.ts +84 -0
  333. package/typechain-types/factories/IDiamondCut__factory.ts +105 -0
  334. package/typechain-types/factories/IDiamondLoupe__factory.ts +99 -0
  335. package/typechain-types/factories/IExecutorHelperEthereum1__factory.ts +407 -0
  336. package/typechain-types/factories/IGMXVault__factory.ts +320 -0
  337. package/typechain-types/factories/IGlpManager__factory.ts +55 -0
  338. package/typechain-types/factories/IHashflow__factory.ts +113 -0
  339. package/typechain-types/factories/IKyberSwapAggregationRouterHelper__factory.ts +56 -0
  340. package/typechain-types/factories/IMetaAggregationRouterV2__factory.ts +234 -0
  341. package/typechain-types/factories/IMetaAggregationRouter__factory.ts +202 -0
  342. package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +338 -16
  343. package/typechain-types/factories/IPActionMintRedeem__factory.ts +105 -224
  344. package/typechain-types/factories/IPActionMisc__factory.ts +55 -11
  345. package/typechain-types/factories/IPActionSwapPT__factory.ts +52 -8
  346. package/typechain-types/factories/IPActionSwapYT__factory.ts +231 -8
  347. package/typechain-types/factories/IPAllAction__factory.ts +675 -241
  348. package/typechain-types/factories/IPInterestManagerYTV2__factory.ts +59 -0
  349. package/typechain-types/factories/IPMsgReceiverApp__factory.ts +1 -1
  350. package/typechain-types/factories/IPSwapAggregator__factory.ts +71 -0
  351. package/typechain-types/factories/IPYieldTokenV2__factory.ts +694 -0
  352. package/typechain-types/factories/IRewardRouterV2__factory.ts +216 -0
  353. package/typechain-types/factories/ISwapAggregator__factory.ts +66 -0
  354. package/typechain-types/factories/IVaultPriceFeed__factory.ts +60 -0
  355. package/typechain-types/factories/InterestManagerYTV2__factory.ts +81 -0
  356. package/typechain-types/factories/MarketMathStatic__factory.ts +1 -27
  357. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  358. package/typechain-types/factories/PendleAura3EthSY__factory.ts +1 -40
  359. package/typechain-types/factories/PendleAuraCbethWstethSY__factory.ts +1 -40
  360. package/typechain-types/factories/PendleAuraWethRethSY__factory.ts +1 -1
  361. package/typechain-types/factories/PendleAuraWethWstethSY__factory.ts +1 -40
  362. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
  363. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
  364. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  365. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  366. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +2 -2
  367. package/typechain-types/factories/PendleGlpSY__factory.ts +1249 -0
  368. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
  369. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  370. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  371. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  372. package/typechain-types/factories/PendleMsgReceiverAppUpg__factory.ts +1 -1
  373. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  374. package/typechain-types/factories/PendleMulticall__factory.ts +100 -0
  375. package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +564 -0
  376. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  377. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  378. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  379. package/typechain-types/factories/PendleRouter__factory.ts +75 -74
  380. package/typechain-types/factories/PendleSwapAggregator__factory.ts +129 -0
  381. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  382. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  383. package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +674 -0
  384. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  385. package/typechain-types/factories/PendleYieldTokenV2__factory.ts +1109 -0
  386. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  387. package/typechain-types/factories/RouterStatic__factory.ts +69 -1
  388. package/typechain-types/factories/SAPE__factory.ts +1 -1
  389. package/typechain-types/factories/SwapAggregator__factory.ts +309 -0
  390. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  391. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +2 -2
  392. package/typechain-types/hardhat.d.ts +203 -59
  393. package/typechain-types/index.ts +50 -18
  394. package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +0 -4
  395. package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.json +0 -190
  396. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +0 -4
  397. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.json +0 -165
  398. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +0 -4
  399. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +0 -343
  400. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +0 -4
  401. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +0 -224
  402. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.dbg.json +0 -4
  403. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.json +0 -35
  404. package/build/artifacts/contracts/router/kyberswap/IMultihopRouterEthereum.sol/IMultihopRouterEthereum.dbg.json +0 -4
  405. package/build/artifacts/contracts/router/kyberswap/IMultihopRouterEthereum.sol/IMultihopRouterEthereum.json +0 -136
  406. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +0 -4
  407. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.json +0 -24
  408. package/contracts/interfaces/IPActionSwapPTYT.sol +0 -31
  409. package/contracts/router/ActionSwapPTYT.sol +0 -108
  410. package/contracts/router/kyberswap/AggregationRouterHelper.sol +0 -341
  411. package/contracts/router/kyberswap/IAggregatorRouterHelper.sol +0 -10
  412. package/contracts/router/kyberswap/IMultihopRouterEthereum.sol +0 -141
  413. package/contracts/router/kyberswap/KyberSwapHelper.sol +0 -79
@@ -0,0 +1,38 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.0;
3
+
4
+ /******************************************************************************\
5
+ * Author: Nick Mudge <nick@perfectabstractions.com> (https://twitter.com/mudgen)
6
+ * EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535
7
+ /******************************************************************************/
8
+
9
+ // A loupe is a small magnifying glass used to look at diamonds.
10
+ // These functions look at diamonds
11
+ interface IDiamondLoupe {
12
+ /// These functions are expected to be called frequently
13
+ /// by tools.
14
+
15
+ struct Facet {
16
+ address facetAddress;
17
+ bytes4[] functionSelectors;
18
+ }
19
+
20
+ /// @notice Gets all facet addresses and their four byte function selectors.
21
+ /// @return facets_ Facet
22
+ function facets() external view returns (Facet[] memory facets_);
23
+
24
+ /// @notice Gets all the function selectors supported by a specific facet.
25
+ /// @param _facet The facet address.
26
+ /// @return facetFunctionSelectors_
27
+ function facetFunctionSelectors(address _facet) external view returns (bytes4[] memory facetFunctionSelectors_);
28
+
29
+ /// @notice Get all the facet addresses used by a diamond.
30
+ /// @return facetAddresses_
31
+ function facetAddresses() external view returns (address[] memory facetAddresses_);
32
+
33
+ /// @notice Gets the facet that supports the given selector.
34
+ /// @dev If facet is not found return address(0).
35
+ /// @param _functionSelector The function selector.
36
+ /// @return facetAddress_ The facet address.
37
+ function facetAddress(bytes4 _functionSelector) external view returns (address facetAddress_);
38
+ }
@@ -2,7 +2,7 @@
2
2
  pragma solidity 0.8.17;
3
3
 
4
4
  import "../router/base/MarketApproxLib.sol";
5
- import "../router/kyberswap/KyberSwapHelper.sol";
5
+ import "../router/base/ActionBaseMintRedeem.sol";
6
6
 
7
7
  interface IPActionAddRemoveLiq {
8
8
  event AddLiquidityDualSyAndPt(
@@ -49,6 +49,25 @@ interface IPActionAddRemoveLiq {
49
49
  uint256 netLpOut
50
50
  );
51
51
 
52
+ event AddLiquiditySingleSyKeepYt(
53
+ address indexed caller,
54
+ address indexed market,
55
+ address indexed receiver,
56
+ uint256 netSyIn,
57
+ uint256 netLpOut,
58
+ uint256 netYtOut
59
+ );
60
+
61
+ event AddLiquiditySingleTokenKeepYt(
62
+ address indexed caller,
63
+ address indexed market,
64
+ address indexed token,
65
+ address receiver,
66
+ uint256 netTokenIn,
67
+ uint256 netLpOut,
68
+ uint256 netYtOut
69
+ );
70
+
52
71
  event RemoveLiquidityDualSyAndPt(
53
72
  address indexed caller,
54
73
  address indexed market,
@@ -146,6 +165,22 @@ interface IPActionAddRemoveLiq {
146
165
  TokenInput calldata input
147
166
  ) external payable returns (uint256 netLpOut, uint256 netSyFee);
148
167
 
168
+ function addLiquiditySingleSyKeepYt(
169
+ address receiver,
170
+ address market,
171
+ uint256 netSyIn,
172
+ uint256 minLpOut,
173
+ uint256 minYtOut
174
+ ) external returns (uint256 netLpOut, uint256 netYtOut);
175
+
176
+ function addLiquiditySingleTokenKeepYt(
177
+ address receiver,
178
+ address market,
179
+ uint256 minLpOut,
180
+ uint256 minYtOut,
181
+ TokenInput calldata input
182
+ ) external returns (uint256 netLpOut, uint256 netYtOut);
183
+
149
184
  function removeLiquidityDualSyAndPt(
150
185
  address receiver,
151
186
  address market,
@@ -2,7 +2,7 @@
2
2
  pragma solidity 0.8.17;
3
3
 
4
4
  import "../router/base/MarketApproxLib.sol";
5
- import "../router/kyberswap/KyberSwapHelper.sol";
5
+ import "../router/base/ActionBaseMintRedeem.sol";
6
6
 
7
7
  interface IPActionMintRedeem {
8
8
  event MintSyFromToken(
@@ -57,26 +57,6 @@ interface IPActionMintRedeem {
57
57
  uint256 netTokenOut
58
58
  );
59
59
 
60
- event RedeemDueInterestAndRewards(
61
- address indexed user,
62
- address[] sys,
63
- address[] yts,
64
- address[] markets,
65
- uint256[][] syRewards,
66
- uint256[] ytInterests,
67
- uint256[][] ytRewards,
68
- uint256[][] marketRewards
69
- );
70
-
71
- event RedeemDueInterestAndRewardsThenSwapAll(
72
- address indexed user,
73
- address[] sys,
74
- address[] yts,
75
- address[] markets,
76
- address indexed tokenOut,
77
- uint256 netTokenOut
78
- );
79
-
80
60
  function mintSyFromToken(
81
61
  address receiver,
82
62
  address SY,
@@ -124,38 +104,5 @@ interface IPActionMintRedeem {
124
104
  address[] calldata sys,
125
105
  address[] calldata yts,
126
106
  address[] calldata markets
127
- )
128
- external
129
- returns (
130
- uint256[][] memory syRewards,
131
- uint256[] memory ytInterests,
132
- uint256[][] memory ytRewards,
133
- uint256[][] memory marketRewards
134
- );
135
-
136
- struct RouterYtRedeemStruct {
137
- address[] yts;
138
- // key-value pair
139
- address[] syAddrs;
140
- address[] tokenRedeemSys;
141
- address[] bulks;
142
- //
143
- }
144
-
145
- struct RouterSwapAllStruct {
146
- // key-value pair
147
- address[] tokens;
148
- bytes[] kybercalls;
149
- //
150
- address kyberRouter;
151
- address outputToken;
152
- uint256 minTokenOut;
153
- }
154
-
155
- function redeemDueInterestAndRewardsThenSwapAll(
156
- address[] calldata sys,
157
- RouterYtRedeemStruct calldata dataYT,
158
- address[] calldata markets,
159
- RouterSwapAllStruct calldata dataSwap
160
- ) external returns (uint256 netTokenOut, uint256[] memory amountsSwapped);
107
+ ) external;
161
108
  }
@@ -2,8 +2,22 @@
2
2
  pragma solidity 0.8.17;
3
3
 
4
4
  interface IPActionMisc {
5
- function consult(address market, uint32 secondsAgo)
6
- external
7
- view
8
- returns (uint96 lnImpliedRateMean);
5
+ struct MultiApproval {
6
+ address[] tokens;
7
+ address spender;
8
+ }
9
+
10
+ struct Call3 {
11
+ bool allowFailure;
12
+ bytes callData;
13
+ }
14
+
15
+ struct Result {
16
+ bool success;
17
+ bytes returnData;
18
+ }
19
+
20
+ function approveInf(MultiApproval[] calldata) external;
21
+
22
+ function batchExec(Call3[] calldata calls) external returns (Result[] memory returnData);
9
23
  }
@@ -2,7 +2,7 @@
2
2
  pragma solidity 0.8.17;
3
3
 
4
4
  import "../router/base/MarketApproxLib.sol";
5
- import "../router/kyberswap/KyberSwapHelper.sol";
5
+ import "../router/base/ActionBaseMintRedeem.sol";
6
6
 
7
7
  interface IPActionSwapPT {
8
8
  event SwapPtAndSy(
@@ -2,7 +2,7 @@
2
2
  pragma solidity 0.8.17;
3
3
 
4
4
  import "../router/base/MarketApproxLib.sol";
5
- import "../router/kyberswap/KyberSwapHelper.sol";
5
+ import "../router/base/ActionBaseMintRedeem.sol";
6
6
 
7
7
  interface IPActionSwapYT {
8
8
  event SwapYtAndSy(
@@ -22,12 +22,20 @@ interface IPActionSwapYT {
22
22
  int256 netTokenToAccount
23
23
  );
24
24
 
25
+ event SwapPtAndYt(
26
+ address indexed caller,
27
+ address indexed market,
28
+ address indexed receiver,
29
+ int256 netPtToAccount,
30
+ int256 netYtToAccount
31
+ );
32
+
25
33
  function swapExactSyForYt(
26
34
  address receiver,
27
35
  address market,
28
36
  uint256 exactSyIn,
29
37
  uint256 minYtOut,
30
- ApproxParams memory guessYtOut
38
+ ApproxParams calldata guessYtOut
31
39
  ) external returns (uint256 netYtOut, uint256 netSyFee);
32
40
 
33
41
  function swapExactYtForSy(
@@ -49,14 +57,14 @@ interface IPActionSwapYT {
49
57
  address market,
50
58
  uint256 exactSyOut,
51
59
  uint256 maxYtIn,
52
- ApproxParams memory guessYtIn
60
+ ApproxParams calldata guessYtIn
53
61
  ) external returns (uint256 netYtIn, uint256 netSyFee);
54
62
 
55
63
  function swapExactTokenForYt(
56
64
  address receiver,
57
65
  address market,
58
66
  uint256 minYtOut,
59
- ApproxParams memory guessYtOut,
67
+ ApproxParams calldata guessYtOut,
60
68
  TokenInput calldata input
61
69
  ) external payable returns (uint256 netYtOut, uint256 netSyFee);
62
70
 
@@ -66,4 +74,20 @@ interface IPActionSwapYT {
66
74
  uint256 netYtIn,
67
75
  TokenOutput calldata output
68
76
  ) external returns (uint256 netTokenOut, uint256 netSyFee);
77
+
78
+ function swapExactPtForYt(
79
+ address receiver,
80
+ address market,
81
+ uint256 exactPtIn,
82
+ uint256 minYtOut,
83
+ ApproxParams calldata guessTotalPtToSwap
84
+ ) external returns (uint256 netYtOut, uint256 netSyFee);
85
+
86
+ function swapExactYtForPt(
87
+ address receiver,
88
+ address market,
89
+ uint256 exactYtIn,
90
+ uint256 minPtOut,
91
+ ApproxParams calldata guessTotalPtSwapped
92
+ ) external returns (uint256 netPtOut, uint256 netSyFee);
69
93
  }
@@ -5,15 +5,17 @@ pragma solidity 0.8.17;
5
5
  import "./IPActionAddRemoveLiq.sol";
6
6
  import "./IPActionSwapPT.sol";
7
7
  import "./IPActionSwapYT.sol";
8
- import "./IPActionSwapPTYT.sol";
9
8
  import "./IPActionMintRedeem.sol";
10
9
  import "./IPActionMisc.sol";
10
+ import "./IPMarketSwapCallback.sol";
11
+ import "./IDiamondLoupe.sol";
11
12
 
12
13
  interface IPAllAction is
13
14
  IPActionAddRemoveLiq,
14
15
  IPActionSwapPT,
15
16
  IPActionSwapYT,
16
- IPActionSwapPTYT,
17
17
  IPActionMintRedeem,
18
- IPActionMisc
18
+ IPActionMisc,
19
+ IPMarketSwapCallback,
20
+ IDiamondLoupe
19
21
  {}
@@ -0,0 +1,13 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ interface IPInterestManagerYTV2 {
5
+ function userInterest(address user)
6
+ external
7
+ view
8
+ returns (
9
+ uint128 lastInterestIndex,
10
+ uint128 accruedInterest,
11
+ uint256 lastPYIndex
12
+ );
13
+ }
@@ -3,5 +3,5 @@
3
3
  pragma solidity >=0.8.0;
4
4
 
5
5
  interface IPMsgReceiverApp {
6
- function executeMessage(bytes calldata message) external payable;
6
+ function executeMessage(bytes calldata message) external;
7
7
  }
@@ -0,0 +1,66 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+ import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
4
+ import "./IRewardManager.sol";
5
+ import "./IPInterestManagerYTV2.sol";
6
+
7
+ interface IPYieldTokenV2 is IERC20Metadata, IRewardManager, IPInterestManagerYTV2 {
8
+ event Mint(
9
+ address indexed caller,
10
+ address indexed receiverPT,
11
+ address indexed receiverYT,
12
+ uint256 amountSyToMint,
13
+ uint256 amountPYOut
14
+ );
15
+
16
+ event Burn(
17
+ address indexed caller,
18
+ address indexed receiver,
19
+ uint256 amountPYToRedeem,
20
+ uint256 amountSyOut
21
+ );
22
+
23
+ event RedeemRewards(address indexed user, uint256[] amountRewardsOut);
24
+
25
+ event RedeemInterest(address indexed user, uint256 interestOut);
26
+
27
+ event WithdrawFeeToTreasury(uint256[] amountRewardsOut, uint256 syOut);
28
+
29
+ event CollectInterestFee(uint256 amountInterestFee);
30
+
31
+ event CollectRewardFee(address indexed rewardToken, uint256 amountRewardFee);
32
+
33
+ function mintPY(address receiverPT, address receiverYT) external returns (uint256 amountPYOut);
34
+
35
+ function redeemPY(address receiver) external returns (uint256 amountSyOut);
36
+
37
+ function redeemPYMulti(address[] calldata receivers, uint256[] calldata amountPYToRedeems)
38
+ external
39
+ returns (uint256[] memory amountSyOuts);
40
+
41
+ function redeemDueInterestAndRewards(
42
+ address user,
43
+ bool redeemInterest,
44
+ bool redeemRewards
45
+ ) external returns (uint256 interestOut, uint256[] memory rewardsOut);
46
+
47
+ function rewardIndexesCurrent() external returns (uint256[] memory);
48
+
49
+ function pyIndexCurrent() external returns (uint256);
50
+
51
+ function pyIndexStored() external view returns (uint256);
52
+
53
+ function getRewardTokens() external view returns (address[] memory);
54
+
55
+ function SY() external view returns (address);
56
+
57
+ function PT() external view returns (address);
58
+
59
+ function factory() external view returns (address);
60
+
61
+ function expiry() external view returns (uint256);
62
+
63
+ function isExpired() external view returns (bool);
64
+
65
+ function doCacheIndexSameBlock() external view returns (bool);
66
+ }
@@ -0,0 +1,16 @@
1
+ pragma solidity 0.8.17;
2
+
3
+ import "../interfaces/IAddressProvider.sol";
4
+ import "../core/libraries/BoringOwnableUpgradeable.sol";
5
+
6
+ contract AddressProvider is IAddressProvider, BoringOwnableUpgradeable {
7
+ mapping(uint256 => address) public get;
8
+
9
+ function initialize() external initializer {
10
+ __BoringOwnable_init();
11
+ }
12
+
13
+ function set(uint256 id, address addr) external onlyOwner {
14
+ get[id] = addr;
15
+ }
16
+ }
@@ -118,6 +118,21 @@ library MarketMathStatic {
118
118
  exchangeRateAfter = _getTradeExchangeRateExcludeFee(market, state);
119
119
  }
120
120
 
121
+ function addLiquiditySingleSyKeepYtStatic(address market, uint256 netSyIn)
122
+ public
123
+ returns (uint256 netLpOut, uint256 netYtOut)
124
+ {
125
+ MarketState memory state = IPMarket(market).readState(address(this));
126
+ PYIndex index = pyIndex(market);
127
+
128
+ uint256 netSyToPt = (netSyIn * state.totalPt.Uint()) /
129
+ (state.totalPt.Uint() + index.syToAsset(state.totalSy.Uint()));
130
+
131
+ netYtOut = index.syToAsset(netSyToPt);
132
+
133
+ (, netLpOut, , ) = state.addLiquidity(netSyIn - netSyToPt, netYtOut, block.timestamp);
134
+ }
135
+
121
136
  function removeLiquidityDualSyAndPtStatic(address market, uint256 netLpToRemove)
122
137
  external
123
138
  view
@@ -0,0 +1,26 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity 0.8.17;
3
+
4
+ /// @title PendleMulticall - A more gas-efficient version of Multicall3 (~700 gas saved for each call)
5
+ /// @author UncleGrandpa925 <longvh@pendle.finance>
6
+ contract PendleMulticall {
7
+ error MulticallFailed(uint256 index);
8
+
9
+ struct Call {
10
+ address target;
11
+ bytes callData;
12
+ }
13
+
14
+ function aggregate(Call[] calldata calls) external payable {
15
+ uint256 length = calls.length;
16
+ Call calldata call;
17
+ for (uint256 i = 0; i < length; ) {
18
+ call = calls[i];
19
+ (bool success, ) = call.target.call(call.callData);
20
+ if (!success) revert MulticallFailed(i);
21
+ unchecked {
22
+ ++i;
23
+ }
24
+ }
25
+ }
26
+ }
@@ -368,6 +368,28 @@ contract RouterStatic is Initializable, Proxy, BoringOwnableUpgradeable, UUPSUpg
368
368
  return MarketMathStatic.addLiquiditySingleSyStatic(market, netSyIn);
369
369
  }
370
370
 
371
+ function addLiquiditySingleSyKeepYtStatic(address market, uint256 netSyIn)
372
+ external
373
+ returns (uint256 netLpOut, uint256 netYtOut)
374
+ {
375
+ return MarketMathStatic.addLiquiditySingleSyKeepYtStatic(market, netSyIn);
376
+ }
377
+
378
+ function addLiquiditySingleTokenKeepYtStatic(
379
+ address market,
380
+ address baseToken,
381
+ uint256 netBaseTokenIn,
382
+ address bulk
383
+ ) external returns (uint256 netLpOut, uint256 netYtOut) {
384
+ uint256 netSyIn = previewDepositStatic(
385
+ getSyMarket(market),
386
+ baseToken,
387
+ netBaseTokenIn,
388
+ bulk
389
+ );
390
+ return MarketMathStatic.addLiquiditySingleSyKeepYtStatic(market, netSyIn);
391
+ }
392
+
371
393
  function removeLiquidityDualSyAndPtStatic(address market, uint256 netLpToRemove)
372
394
  external
373
395
  view
@@ -21,13 +21,9 @@ contract ActionAddRemoveLiq is IPActionAddRemoveLiq, ActionBaseMintRedeem {
21
21
  using MarketApproxPtInLib for MarketState;
22
22
  using MarketApproxPtOutLib for MarketState;
23
23
  using PYIndexLib for IPYieldToken;
24
+ using PYIndexLib for PYIndex;
24
25
  using BulkSellerMathCore for BulkSellerState;
25
26
 
26
- /// @dev since this contract will be proxied, it must not contains non-immutable variables
27
- constructor(address _kyberScalingLib)
28
- ActionBaseMintRedeem(_kyberScalingLib) //solhint-disable-next-line no-empty-blocks
29
- {}
30
-
31
27
  /**
32
28
  * @notice Adds liquidity to the SY/PT market, granting LP tokens in return
33
29
  * @dev Will mint as much LP as possible given no more than `netSyDesired` and `netPtDesired`,
@@ -258,6 +254,78 @@ contract ActionAddRemoveLiq is IPActionAddRemoveLiq, ActionBaseMintRedeem {
258
254
  );
259
255
  }
260
256
 
257
+ /**
258
+ * @notice Mints partial SY to PT+YT, returns YT to user, then uses PT+SY to add liquidity
259
+ * @param netSyIn amount of SY to be transferred in from caller
260
+ * @return netLpOut actual LP output, will not be lower than `minLpOut`
261
+ * @return netYtOut actual YT output, will not be lower than `minYtOut`
262
+ * @dev Reverts if market is expired
263
+ */
264
+ function addLiquiditySingleSyKeepYt(
265
+ address receiver,
266
+ address market,
267
+ uint256 netSyIn,
268
+ uint256 minLpOut,
269
+ uint256 minYtOut
270
+ ) external returns (uint256 netLpOut, uint256 netYtOut) {
271
+ (IStandardizedYield SY, , IPYieldToken YT) = IPMarket(market).readTokens();
272
+
273
+ _transferIn(address(SY), msg.sender, netSyIn);
274
+
275
+ (netLpOut, netYtOut) = _addLiquiditySingleSyKeepYt(
276
+ receiver,
277
+ market,
278
+ SY,
279
+ YT,
280
+ netSyIn,
281
+ minLpOut,
282
+ minYtOut
283
+ );
284
+
285
+ emit AddLiquiditySingleSyKeepYt(msg.sender, market, receiver, netSyIn, netLpOut, netYtOut);
286
+ }
287
+
288
+ /**
289
+ * @notice Adds liquidity and returns leftover YT using a single token input. The input token
290
+ * is first swapped through Kyberswap to a SY-mintable token, the rest is the same as
291
+ * `addLiquiditySingleSyKeepYt()`
292
+ * @param input data for input token, see {`./kyberswap/KyberSwapHelper.sol`}
293
+ * @return netLpOut actual LP output, will not be lower than `minLpOut`
294
+ * @return netYtOut actual YT output, will not be lower than `minYtOut`
295
+ * @dev Reverts if market is expired
296
+ */
297
+ function addLiquiditySingleTokenKeepYt(
298
+ address receiver,
299
+ address market,
300
+ uint256 minLpOut,
301
+ uint256 minYtOut,
302
+ TokenInput calldata input
303
+ ) external returns (uint256 netLpOut, uint256 netYtOut) {
304
+ (IStandardizedYield SY, , IPYieldToken YT) = IPMarket(market).readTokens();
305
+
306
+ uint256 netSyUsed = _mintSyFromToken(address(this), address(SY), 1, input);
307
+
308
+ (netLpOut, netYtOut) = _addLiquiditySingleSyKeepYt(
309
+ receiver,
310
+ market,
311
+ SY,
312
+ YT,
313
+ netSyUsed,
314
+ minLpOut,
315
+ minYtOut
316
+ );
317
+
318
+ emit AddLiquiditySingleTokenKeepYt(
319
+ msg.sender,
320
+ market,
321
+ input.tokenIn,
322
+ receiver,
323
+ input.netTokenIn,
324
+ netLpOut,
325
+ netYtOut
326
+ );
327
+ }
328
+
261
329
  /**
262
330
  * @notice Burns LP token to remove SY/PT liquidity
263
331
  * @param netLpToRemove amount of LP to be burned from caller
@@ -473,6 +541,48 @@ contract ActionAddRemoveLiq is IPActionAddRemoveLiq, ActionBaseMintRedeem {
473
541
  if (netLpOut < minLpOut) revert Errors.RouterInsufficientLpOut(netLpOut, minLpOut);
474
542
  }
475
543
 
544
+ /**
545
+ * @dev algorithm:
546
+ - Split SY into a SY and b SY (with a + b = netSyIn)
547
+ - Mint PY with a SY ---> gives (a * pyIndex / ONE) PT + YT
548
+ - Mint LP with (a * pyIndex / ONE) PT and b SY
549
+
550
+ -> We want (a * pyIndex / ONE) / totalPt = b / totalSy
551
+ -> a * (1 + pyIndex * totalSy / ONE / totalPt) = netSyIn
552
+ -> a = (netSyIn * totalPt) / (totalPt + (pyIndex * totalSy / ONE))
553
+ -> a = (netSyIn * totalPt) / (totalPt + totalAsset)
554
+ */
555
+ function _addLiquiditySingleSyKeepYt(
556
+ address receiver,
557
+ address market,
558
+ IStandardizedYield SY,
559
+ IPYieldToken YT,
560
+ uint256 netSyIn,
561
+ uint256 minLpOut,
562
+ uint256 minYtOut
563
+ ) internal returns (uint256 netLpOut, uint256 netYtOut) {
564
+ MarketState memory state = IPMarket(market).readState(address(this));
565
+
566
+ PYIndex pyIndex = YT.newIndex();
567
+
568
+ uint256 netSyToPt = (netSyIn * state.totalPt.Uint()) /
569
+ (state.totalPt.Uint() + pyIndex.syToAsset(state.totalSy.Uint()));
570
+
571
+ // transfer SY to mint PY
572
+ _transferOut(address(SY), address(YT), netSyToPt);
573
+
574
+ // the rest of SY goes to market
575
+ _transferOut(address(SY), market, netSyIn - netSyToPt);
576
+
577
+ // PT goes to market, YT goes to receiver
578
+ netYtOut = YT.mintPY(market, receiver);
579
+
580
+ (netLpOut, , ) = IPMarket(market).mint(receiver, netSyIn - netSyToPt, netYtOut);
581
+
582
+ if (netLpOut < minLpOut) revert Errors.RouterInsufficientLpOut(netLpOut, minLpOut);
583
+ if (netYtOut < minYtOut) revert Errors.RouterInsufficientYtOut(netYtOut, minYtOut);
584
+ }
585
+
476
586
  /// @dev removes SY/PT liquidity, then converts PT to SY
477
587
  function _removeLiquiditySingleSy(
478
588
  address receiver,
@@ -497,7 +607,7 @@ contract ActionAddRemoveLiq is IPActionAddRemoveLiq, ActionBaseMintRedeem {
497
607
  ) internal returns (uint256 netSyOut) {
498
608
  (, , IPYieldToken YT) = IPMarket(market).readTokens();
499
609
  (uint256 syFromBurn, ) = IPMarket(market).burn(receiver, address(YT), netLpToRemove);
500
- netSyOut = syFromBurn + IPYieldToken(YT).redeemPY(receiver);
610
+ netSyOut = syFromBurn + YT.redeemPY(receiver);
501
611
  }
502
612
 
503
613
  /// @dev swaps PT to SY pre-expiry