@pendle/core-v2 1.4.0-mainnet → 2.0.1-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 (357) 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/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  11. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  12. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +3 -3
  13. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  14. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
  15. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  16. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  17. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  18. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  19. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  20. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  21. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +3 -3
  22. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  23. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  24. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  25. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  26. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  27. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  28. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  29. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  30. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +2 -2
  31. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  32. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +2 -2
  33. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +2 -2
  35. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  37. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  39. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  42. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  44. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +2 -2
  51. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol/PendleAura3EthSY.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol/PendleAura3EthSY.json +2 -2
  53. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol/PendleAuraCbethWstethSY.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol/PendleAuraCbethWstethSY.json +2 -2
  55. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.json +2 -2
  57. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.dbg.json +1 -1
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.json +2 -2
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol/PendleAuraBalancerStableLPSY.dbg.json +1 -1
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +2 -2
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +2 -2
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.dbg.json +4 -0
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.json +50 -0
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +4 -0
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +1163 -0
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  77. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  78. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  79. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  80. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  81. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  82. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  83. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  84. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +4 -0
  85. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.json +66 -0
  86. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +4 -0
  87. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +476 -0
  88. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +4 -0
  89. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +590 -0
  90. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +4 -0
  91. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +1017 -0
  92. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  93. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +50 -2
  94. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  95. package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.dbg.json +4 -0
  96. package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.json +308 -0
  97. package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.dbg.json +4 -0
  98. package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.json +43 -0
  99. package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.dbg.json +4 -0
  100. package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.json +201 -0
  101. package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.dbg.json +4 -0
  102. package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.json +45 -0
  103. package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.dbg.json +4 -0
  104. package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.json +48 -0
  105. package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.dbg.json +4 -0
  106. package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.json +93 -0
  107. package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.dbg.json +4 -0
  108. package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.json +87 -0
  109. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json +338 -16
  111. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  112. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json +105 -224
  113. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
  114. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.json +56 -12
  115. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  116. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.json +52 -8
  117. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  118. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.json +231 -8
  119. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  120. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +675 -241
  121. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  122. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +4 -0
  123. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.json +40 -0
  124. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  125. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
  126. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.json +1 -1
  127. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  128. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  129. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +4 -0
  130. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.json +679 -0
  131. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.dbg.json +4 -0
  132. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.json +143 -0
  133. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  134. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
  135. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
  136. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +2 -28
  137. package/build/artifacts/contracts/offchain-helpers/PendleMulticall.sol/PendleMulticall.dbg.json +1 -1
  138. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  139. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +144 -60
  140. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  141. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +345 -62
  142. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  143. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +107 -260
  144. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  145. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +57 -18
  146. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  147. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +54 -65
  148. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  149. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +342 -44
  150. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  151. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +76 -67
  152. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +4 -0
  153. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.json +141 -0
  154. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  155. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json +1 -15
  156. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  157. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  158. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  159. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  160. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  161. package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.dbg.json +4 -0
  162. package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.json +160 -0
  163. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +4 -0
  164. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.json +10 -0
  165. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +4 -0
  166. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.json +56 -0
  167. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapAggregator.sol/PendleSwapAggregator.dbg.json +4 -0
  168. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapAggregator.sol/PendleSwapAggregator.json +72 -0
  169. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.dbg.json +4 -0
  170. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.json +10 -0
  171. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.dbg.json +4 -0
  172. package/build/artifacts/contracts/router/{kyberswap → swap-aggregator/kyberswap}/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.json +3 -3
  173. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +4 -0
  174. package/build/artifacts/contracts/router/{kyberswap → swap-aggregator/kyberswap}/interfaces/IAggregationExecutor.sol/IAggregationExecutor.json +1 -1
  175. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +4 -0
  176. package/build/artifacts/contracts/router/{kyberswap → swap-aggregator/kyberswap}/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.json +30 -1
  177. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IHashflow.sol/IHashflow.dbg.json +4 -0
  178. package/build/artifacts/contracts/router/{kyberswap → swap-aggregator/kyberswap}/interfaces/IHashflow.sol/IHashflow.json +1 -1
  179. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +4 -0
  180. package/build/artifacts/contracts/router/{kyberswap → swap-aggregator/kyberswap}/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json +1 -1
  181. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol +0 -1
  182. package/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol +142 -0
  183. package/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol +224 -0
  184. package/contracts/core/StandardizedYield/implementations/GLP/README.md +61 -0
  185. package/contracts/core/YieldContractsV2/InterestManagerYTV2.sol +114 -0
  186. package/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol +63 -0
  187. package/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol +200 -0
  188. package/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol +485 -0
  189. package/contracts/core/libraries/Errors.sol +5 -0
  190. package/contracts/core/libraries/TokenHelper.sol +10 -0
  191. package/contracts/interfaces/GMX/IGMXVault.sol +47 -0
  192. package/contracts/interfaces/GMX/IGlpManager.sol +8 -0
  193. package/contracts/interfaces/GMX/IRewardRouterV2.sol +43 -0
  194. package/contracts/interfaces/GMX/IVaultPriceFeed.sol +11 -0
  195. package/contracts/interfaces/IAddressProvider.sol +7 -0
  196. package/contracts/interfaces/IDiamondCut.sol +36 -0
  197. package/contracts/interfaces/IDiamondLoupe.sol +38 -0
  198. package/contracts/interfaces/IPActionAddRemoveLiq.sol +36 -1
  199. package/contracts/interfaces/IPActionMintRedeem.sol +2 -55
  200. package/contracts/interfaces/IPActionMisc.sol +18 -4
  201. package/contracts/interfaces/IPActionSwapPT.sol +1 -1
  202. package/contracts/interfaces/IPActionSwapYT.sol +28 -4
  203. package/contracts/interfaces/IPAllAction.sol +5 -3
  204. package/contracts/interfaces/IPInterestManagerYTV2.sol +13 -0
  205. package/contracts/interfaces/IPMsgReceiverApp.sol +1 -1
  206. package/contracts/interfaces/IPYieldTokenV2.sol +66 -0
  207. package/contracts/offchain-helpers/AddressProvider.sol +16 -0
  208. package/contracts/offchain-helpers/MarketMathStatic.sol +15 -0
  209. package/contracts/offchain-helpers/RouterStatic.sol +22 -0
  210. package/contracts/router/ActionAddRemoveLiq.sol +116 -6
  211. package/contracts/router/ActionMintRedeem.sol +12 -202
  212. package/contracts/router/ActionMisc.sol +45 -19
  213. package/contracts/router/ActionSwapPT.sol +0 -5
  214. package/contracts/router/ActionSwapYT.sol +103 -13
  215. package/contracts/router/PendleRouter.sol +211 -72
  216. package/contracts/router/{ActionCallback.sol → base/ActionBaseCallback.sol} +47 -47
  217. package/contracts/router/base/ActionBaseMintRedeem.sol +105 -60
  218. package/contracts/router/base/CallbackHelper.sol +137 -44
  219. package/contracts/router/base/MarketApproxLib.sol +227 -350
  220. package/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol +45 -0
  221. package/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol +69 -0
  222. package/contracts/router/swap-aggregator/IPSwapAggregator.sol +25 -0
  223. package/contracts/router/swap-aggregator/PendleSwapAggregator.sol +47 -0
  224. package/contracts/router/{kyberswap/AggregationRouterHelper.sol → swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol} +5 -108
  225. package/contracts/router/{kyberswap → swap-aggregator/kyberswap}/ScaleDataHelperEthereum1.sol +13 -0
  226. package/contracts/router/{kyberswap → swap-aggregator/kyberswap}/interfaces/IAggregationExecutor.sol +0 -0
  227. package/contracts/router/{kyberswap → swap-aggregator/kyberswap}/interfaces/IExecutorHelperEthereum1.sol +6 -0
  228. package/contracts/router/{kyberswap → swap-aggregator/kyberswap}/interfaces/IHashflow.sol +0 -0
  229. package/contracts/router/{kyberswap → swap-aggregator/kyberswap}/interfaces/IMetaAggregationRouterV2.sol +0 -0
  230. package/deployments/1-core.json +2 -1
  231. package/deployments/1-markets/BALANCER-LP-AURA-WSTETH-WETH-JUN272024.json +2 -1
  232. package/deployments/42161-core.json +26 -0
  233. package/deployments/42161-markets/GLP-28MARCH2024.json +10 -0
  234. package/deployments/42161-offchain-helper.json +4 -0
  235. package/package.json +1 -1
  236. package/typechain-types/ActionAddRemoveLiq.ts +203 -23
  237. package/typechain-types/ActionBaseCallback.ts +115 -0
  238. package/typechain-types/ActionMintRedeem.ts +29 -230
  239. package/typechain-types/ActionMisc.ts +77 -27
  240. package/typechain-types/ActionSwapPT.ts +26 -31
  241. package/typechain-types/ActionSwapYT.ts +202 -21
  242. package/typechain-types/AddressProvider.ts +280 -0
  243. package/typechain-types/GLPPreviewHelper.ts +121 -0
  244. package/typechain-types/GMXPreviewHelper.ts +40 -0
  245. package/typechain-types/IAddressProvider.ts +123 -0
  246. package/typechain-types/IDiamondCut.ts +152 -0
  247. package/typechain-types/IDiamondLoupe.ts +190 -0
  248. package/typechain-types/IExecutorHelperEthereum1.ts +44 -0
  249. package/typechain-types/IPActionAddRemoveLiq.ts +213 -14
  250. package/typechain-types/IPActionMintRedeem.ts +29 -211
  251. package/typechain-types/IPActionMisc.ts +77 -27
  252. package/typechain-types/IPActionSwapPT.ts +26 -12
  253. package/typechain-types/IPActionSwapYT.ts +168 -12
  254. package/typechain-types/IPAllAction.ts +445 -227
  255. package/typechain-types/IPInterestManagerYTV2.ts +117 -0
  256. package/typechain-types/IPMsgReceiverApp.ts +5 -5
  257. package/typechain-types/IPSwapAggregator.ts +126 -0
  258. package/typechain-types/IPYieldTokenV2.ts +9 -23
  259. package/typechain-types/IRewardRouterV2.ts +60 -17
  260. package/typechain-types/InterestManagerYTV2.ts +36 -3
  261. package/typechain-types/PendleGaugeControllerSidechainUpg.ts +4 -4
  262. package/typechain-types/PendleGlpSY.ts +67 -0
  263. package/typechain-types/PendleMsgReceiverAppUpg.ts +5 -5
  264. package/typechain-types/PendleRouter.ts +109 -131
  265. package/typechain-types/PendleSwapAggregator.ts +126 -0
  266. package/typechain-types/PendleYieldTokenV2.ts +70 -76
  267. package/typechain-types/RouterStatic.ts +92 -0
  268. package/typechain-types/VotingEscrowPendleSidechain.ts +4 -5
  269. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +346 -68
  270. package/typechain-types/factories/ActionBaseCallback__factory.ts +156 -0
  271. package/typechain-types/factories/ActionMintRedeem__factory.ts +108 -266
  272. package/typechain-types/factories/ActionMisc__factory.ts +56 -17
  273. package/typechain-types/factories/ActionSwapPT__factory.ts +55 -71
  274. package/typechain-types/factories/ActionSwapYT__factory.ts +356 -48
  275. package/typechain-types/factories/AddressProvider__factory.ts +196 -0
  276. package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
  277. package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
  278. package/typechain-types/factories/BulkSeller__factory.ts +1 -1
  279. package/typechain-types/factories/Errors__factory.ts +49 -1
  280. package/typechain-types/factories/GLPPreviewHelper__factory.ts +65 -0
  281. package/typechain-types/factories/GMXPreviewHelper__factory.ts +26 -0
  282. package/typechain-types/factories/IAddressProvider__factory.ts +63 -0
  283. package/typechain-types/factories/IDiamondCut__factory.ts +105 -0
  284. package/typechain-types/factories/IDiamondLoupe__factory.ts +99 -0
  285. package/typechain-types/factories/IExecutorHelperEthereum1__factory.ts +29 -0
  286. package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +338 -16
  287. package/typechain-types/factories/IPActionMintRedeem__factory.ts +105 -224
  288. package/typechain-types/factories/IPActionMisc__factory.ts +55 -11
  289. package/typechain-types/factories/IPActionSwapPT__factory.ts +52 -8
  290. package/typechain-types/factories/IPActionSwapYT__factory.ts +231 -8
  291. package/typechain-types/factories/IPAllAction__factory.ts +675 -241
  292. package/typechain-types/factories/IPInterestManagerYTV2__factory.ts +59 -0
  293. package/typechain-types/factories/IPMsgReceiverApp__factory.ts +1 -1
  294. package/typechain-types/factories/IPSwapAggregator__factory.ts +71 -0
  295. package/typechain-types/factories/IPYieldTokenV2__factory.ts +6 -14
  296. package/typechain-types/factories/IRewardRouterV2__factory.ts +43 -7
  297. package/typechain-types/factories/InterestManagerYTV2__factory.ts +18 -0
  298. package/typechain-types/factories/MarketMathStatic__factory.ts +1 -27
  299. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  300. package/typechain-types/factories/PendleAura3EthSY__factory.ts +1 -1
  301. package/typechain-types/factories/PendleAuraCbethWstethSY__factory.ts +1 -1
  302. package/typechain-types/factories/PendleAuraWethRethSY__factory.ts +1 -1
  303. package/typechain-types/factories/PendleAuraWethWstethSY__factory.ts +1 -1
  304. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
  305. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
  306. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  307. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  308. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +2 -2
  309. package/typechain-types/factories/PendleGlpSY__factory.ts +34 -1
  310. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
  311. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  312. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  313. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  314. package/typechain-types/factories/PendleMsgReceiverAppUpg__factory.ts +1 -1
  315. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  316. package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +1 -1
  317. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  318. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  319. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  320. package/typechain-types/factories/PendleRouter__factory.ts +75 -74
  321. package/typechain-types/factories/PendleSwapAggregator__factory.ts +129 -0
  322. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  323. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  324. package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +1 -1
  325. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  326. package/typechain-types/factories/PendleYieldTokenV2__factory.ts +35 -48
  327. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  328. package/typechain-types/factories/RouterStatic__factory.ts +69 -1
  329. package/typechain-types/factories/SAPE__factory.ts +1 -1
  330. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  331. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +2 -2
  332. package/typechain-types/hardhat.d.ts +118 -64
  333. package/typechain-types/index.ts +32 -20
  334. package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +0 -4
  335. package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.json +0 -190
  336. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +0 -4
  337. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.json +0 -165
  338. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +0 -4
  339. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +0 -343
  340. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +0 -4
  341. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +0 -224
  342. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.dbg.json +0 -4
  343. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.json +0 -35
  344. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +0 -4
  345. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.json +0 -24
  346. package/build/artifacts/contracts/router/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.dbg.json +0 -4
  347. package/build/artifacts/contracts/router/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +0 -4
  348. package/build/artifacts/contracts/router/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +0 -4
  349. package/build/artifacts/contracts/router/kyberswap/interfaces/IHashflow.sol/IHashflow.dbg.json +0 -4
  350. package/build/artifacts/contracts/router/kyberswap/interfaces/IMetaAggregationRouter.sol/IMetaAggregationRouter.dbg.json +0 -4
  351. package/build/artifacts/contracts/router/kyberswap/interfaces/IMetaAggregationRouter.sol/IMetaAggregationRouter.json +0 -183
  352. package/build/artifacts/contracts/router/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +0 -4
  353. package/contracts/interfaces/IPActionSwapPTYT.sol +0 -31
  354. package/contracts/router/ActionSwapPTYT.sol +0 -108
  355. package/contracts/router/kyberswap/IAggregatorRouterHelper.sol +0 -10
  356. package/contracts/router/kyberswap/KyberSwapHelper.sol +0 -79
  357. package/contracts/router/kyberswap/interfaces/IMetaAggregationRouter.sol +0 -33
@@ -2,6 +2,7 @@
2
2
  pragma solidity 0.8.17;
3
3
  import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
4
4
  import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
5
+ import "../../interfaces/IWETH.sol";
5
6
 
6
7
  abstract contract TokenHelper {
7
8
  using SafeERC20 for IERC20;
@@ -83,4 +84,13 @@ abstract contract TokenHelper {
83
84
  _safeApprove(token, to, type(uint256).max);
84
85
  }
85
86
  }
87
+
88
+ function _wrap_unwrap_ETH(
89
+ address tokenIn,
90
+ address tokenOut,
91
+ uint256 netTokenIn
92
+ ) internal {
93
+ if (tokenIn == NATIVE) IWETH(tokenOut).deposit{ value: netTokenIn }();
94
+ else IWETH(tokenIn).withdraw(netTokenIn);
95
+ }
86
96
  }
@@ -0,0 +1,47 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ interface IGMXVault {
5
+ function BASIS_POINTS_DIVISOR() external view returns (uint256);
6
+
7
+ function PRICE_PRECISION() external view returns (uint256);
8
+
9
+ function priceFeed() external view returns (address);
10
+
11
+ function usdg() external view returns (address);
12
+
13
+ function hasDynamicFees() external view returns (bool);
14
+
15
+ function totalTokenWeights() external view returns (uint256);
16
+
17
+ function tokenBalances(address) external view returns (uint256);
18
+
19
+ function usdgAmounts(address) external view returns (uint256);
20
+
21
+ function getMinPrice(address _token) external view returns (uint256);
22
+
23
+ function getRedemptionAmount(address _token, uint256 _usdgAmount)
24
+ external
25
+ view
26
+ returns (uint256);
27
+
28
+ function taxBasisPoints() external view returns (uint256);
29
+
30
+ function mintBurnFeeBasisPoints() external view returns (uint256);
31
+
32
+ function allWhitelistedTokensLength() external view returns (uint256);
33
+
34
+ function allWhitelistedTokens(uint256) external view returns (address);
35
+
36
+ function whitelistedTokens(address) external view returns (bool);
37
+
38
+ function whitelistedTokenCount() external view returns (uint256);
39
+
40
+ function tokenWeights(address _token) external view returns (uint256);
41
+
42
+ function adjustForDecimals(
43
+ uint256 _amount,
44
+ address _tokenDiv,
45
+ address _tokenMul
46
+ ) external view returns (uint256);
47
+ }
@@ -0,0 +1,8 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity 0.8.17;
3
+
4
+ interface IGlpManager {
5
+ function getAumInUsdg(bool maximise) external view returns (uint256);
6
+
7
+ function vault() external view returns (address);
8
+ }
@@ -0,0 +1,43 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ interface IRewardRouterV2 {
5
+ function weth() external view returns (address);
6
+
7
+ function handleRewards(
8
+ bool _shouldClaimGmx,
9
+ bool _shouldStakeGmx,
10
+ bool _shouldClaimEsGmx,
11
+ bool _shouldStakeEsGmx,
12
+ bool _shouldStakeMultiplierPoints,
13
+ bool _shouldClaimWeth,
14
+ bool _shouldConvertWethToEth
15
+ ) external;
16
+
17
+ function glpManager() external view returns (address);
18
+
19
+ function mintAndStakeGlp(
20
+ address _token,
21
+ uint256 _amount,
22
+ uint256 _minUsdg,
23
+ uint256 _minGlp
24
+ ) external returns (uint256);
25
+
26
+ function mintAndStakeGlpETH(uint256 _minUsdg, uint256 _minGlp)
27
+ external
28
+ payable
29
+ returns (uint256);
30
+
31
+ function unstakeAndRedeemGlp(
32
+ address _tokenOut,
33
+ uint256 _glpAmount,
34
+ uint256 _minOut,
35
+ address _receiver
36
+ ) external returns (uint256);
37
+
38
+ function unstakeAndRedeemGlpETH(
39
+ uint256 _glpAmount,
40
+ uint256 _minOut,
41
+ address payable _receiver
42
+ ) external returns (uint256);
43
+ }
@@ -0,0 +1,11 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity 0.8.17;
3
+
4
+ interface IVaultPriceFeed {
5
+ function getPrice(
6
+ address _token,
7
+ bool _maximise,
8
+ bool _includeAmmPrice,
9
+ bool _useSwapPricing
10
+ ) external view returns (uint256);
11
+ }
@@ -0,0 +1,7 @@
1
+ pragma solidity 0.8.17;
2
+
3
+ interface IAddressProvider {
4
+ function get(uint256) external view returns (address);
5
+
6
+ function set(uint256 id, address addr) external;
7
+ }
@@ -0,0 +1,36 @@
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
+ interface IDiamondCut {
10
+ enum FacetCutAction {
11
+ Add,
12
+ Replace,
13
+ Remove
14
+ }
15
+ // Add=0, Replace=1, Remove=2
16
+
17
+ struct FacetCut {
18
+ address facetAddress;
19
+ FacetCutAction action;
20
+ bytes4[] functionSelectors;
21
+ }
22
+
23
+ /// @notice Add/replace/remove any number of functions and optionally execute
24
+ /// a function with delegatecall
25
+ /// @param _diamondCut Contains the facet addresses and function selectors
26
+ /// @param _init The address of the contract or facet to execute _calldata
27
+ /// @param _calldata A function call, including function selector and arguments
28
+ /// _calldata is executed with delegatecall on _init
29
+ function diamondCut(
30
+ FacetCut[] calldata _diamondCut,
31
+ address _init,
32
+ bytes calldata _calldata
33
+ ) external;
34
+
35
+ event DiamondCut(FacetCut[] _diamondCut, address _init, bytes _calldata);
36
+ }
@@ -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
@@ -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