@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
@@ -11,11 +11,6 @@ contract ActionMintRedeem is IPActionMintRedeem, ActionBaseMintRedeem {
11
11
  using Math for uint256;
12
12
  using Math for int256;
13
13
 
14
- /// @dev since this contract will be proxied, it must not contains non-immutable variables
15
- constructor(address _kyberScalingLib)
16
- ActionBaseMintRedeem(_kyberScalingLib) //solhint-disable-next-line no-empty-blocks
17
- {}
18
-
19
14
  /**
20
15
  * @notice swaps input token for SY-mintable tokens (if needed), then mints SY from such
21
16
  * @param input data for input token, see {`./kyberswap/KyberSwapHelper.sol`}
@@ -61,7 +56,7 @@ contract ActionMintRedeem is IPActionMintRedeem, ActionBaseMintRedeem {
61
56
  address SY = IPYieldToken(YT).SY();
62
57
 
63
58
  uint256 netSyToMint = _mintSyFromToken(YT, SY, 0, input);
64
- netPyOut = _mintPyFromSy(receiver, YT, netSyToMint, minPyOut, false);
59
+ netPyOut = _mintPyFromSy(receiver, SY, YT, netSyToMint, minPyOut, false);
65
60
 
66
61
  emit MintPyFromToken(msg.sender, input.tokenIn, YT, receiver, input.netTokenIn, netPyOut);
67
62
  }
@@ -96,7 +91,7 @@ contract ActionMintRedeem is IPActionMintRedeem, ActionBaseMintRedeem {
96
91
  uint256 netSyIn,
97
92
  uint256 minPyOut
98
93
  ) external returns (uint256 netPyOut) {
99
- netPyOut = _mintPyFromSy(receiver, YT, netSyIn, minPyOut, true);
94
+ netPyOut = _mintPyFromSy(receiver, IPYieldToken(YT).SY(), YT, netSyIn, minPyOut, true);
100
95
  emit MintPyFromSy(msg.sender, receiver, YT, netSyIn, netPyOut);
101
96
  }
102
97
 
@@ -121,204 +116,19 @@ contract ActionMintRedeem is IPActionMintRedeem, ActionBaseMintRedeem {
121
116
  address[] calldata sys,
122
117
  address[] calldata yts,
123
118
  address[] calldata markets
124
- )
125
- external
126
- returns (
127
- uint256[][] memory syRewards,
128
- uint256[] memory ytInterests,
129
- uint256[][] memory ytRewards,
130
- uint256[][] memory marketRewards
131
- )
132
- {
133
- syRewards = new uint256[][](sys.length);
134
- for (uint256 i = 0; i < sys.length; ++i) {
135
- syRewards[i] = IStandardizedYield(sys[i]).claimRewards(user);
136
- }
137
-
138
- ytInterests = new uint256[](yts.length);
139
- ytRewards = new uint256[][](yts.length);
140
- for (uint256 i = 0; i < yts.length; ++i) {
141
- (ytInterests[i], ytRewards[i]) = IPYieldToken(yts[i]).redeemDueInterestAndRewards(
142
- user,
143
- true,
144
- true
145
- );
146
- }
147
-
148
- marketRewards = new uint256[][](markets.length);
149
- for (uint256 i = 0; i < markets.length; ++i) {
150
- marketRewards[i] = IPMarket(markets[i]).redeemRewards(user);
151
- }
152
- emit RedeemDueInterestAndRewards(
153
- user,
154
- sys,
155
- yts,
156
- markets,
157
- syRewards,
158
- ytInterests,
159
- ytRewards,
160
- marketRewards
161
- );
162
- }
163
-
164
- struct RouterTokenAmounts {
165
- address[] tokens;
166
- uint256[] amounts;
167
- }
168
-
169
- /**
170
- * @notice A function to:
171
- - Redeem all of caller's due interest and rewards in SYs, YTs, and markets
172
- - Redeem SYs themselves
173
- - Finally swaps all resulting tokens to `dataSwap.outputToken`
174
- * @return netTokenOut total token output amount, will not be lower than `dataSwap.minTokenOut`
175
- * @return amountsSwapped the amounts swapped for each token defined in `dataSwap.tokens`
176
- */
177
- function redeemDueInterestAndRewardsThenSwapAll(
178
- address[] calldata sys,
179
- RouterYtRedeemStruct calldata dataYT,
180
- address[] calldata markets,
181
- RouterSwapAllStruct calldata dataSwap
182
- ) external returns (uint256 netTokenOut, uint256[] memory amountsSwapped) {
183
- if (dataSwap.tokens.length != dataSwap.kybercalls.length)
184
- revert Errors.ArrayLengthMismatch();
185
-
186
- if (dataYT.tokenRedeemSys.length != dataYT.syAddrs.length)
187
- revert Errors.ArrayLengthMismatch();
188
-
189
- RouterTokenAmounts memory tokensOut = _newRouterTokenAmounts(dataSwap.tokens);
190
- RouterTokenAmounts memory sysOut = _newRouterTokenAmounts(dataYT.syAddrs);
191
-
192
- // redeem SY
193
- for (uint256 i = 0; i < sys.length; ++i) {
194
- IStandardizedYield SY = IStandardizedYield(sys[i]);
195
-
196
- address[] memory rewardTokens = SY.getRewardTokens();
197
- uint256[] memory rewardAmounts = SY.claimRewards(msg.sender);
198
- _addTokenAmounts(tokensOut, rewardTokens, rewardAmounts);
199
- }
200
-
201
- // redeem YT
202
- for (uint256 i = 0; i < dataYT.yts.length; ++i) {
203
- IPYieldToken YT = IPYieldToken(dataYT.yts[i]);
204
-
205
- (uint256 interestAmount, uint256[] memory rewardAmounts) = YT
206
- .redeemDueInterestAndRewards(msg.sender, true, true);
207
-
208
- address syAddr = YT.SY();
209
- address[] memory rewardTokens = YT.getRewardTokens();
210
-
211
- _addTokenAmount(sysOut, syAddr, interestAmount);
212
- _addTokenAmounts(tokensOut, rewardTokens, rewardAmounts);
213
- }
214
-
215
- // redeem market
216
- for (uint256 i = 0; i < markets.length; ++i) {
217
- IPMarket market = IPMarket(markets[i]);
218
-
219
- address[] memory rewardTokens = market.getRewardTokens();
220
- uint256[] memory rewardAmounts = market.redeemRewards(msg.sender);
221
- _addTokenAmounts(tokensOut, rewardTokens, rewardAmounts);
222
- }
223
-
224
- // guaranteed no ETH, all rewards are ERC20
225
- for (uint256 i = 0; i < tokensOut.tokens.length; ++i) {
226
- _transferFrom(
227
- IERC20(tokensOut.tokens[i]),
228
- msg.sender,
229
- address(this),
230
- tokensOut.amounts[i]
231
- );
232
- }
233
- _redeemAllSys(sysOut, dataYT.bulks, dataYT.tokenRedeemSys, tokensOut);
234
-
235
- // now swap all to outputToken
236
- netTokenOut = _swapAllToOutputToken(tokensOut, dataSwap);
237
-
238
- if (netTokenOut < dataSwap.minTokenOut)
239
- revert Errors.RouterInsufficientTokenOut(netTokenOut, dataSwap.minTokenOut);
240
-
241
- amountsSwapped = tokensOut.amounts;
242
-
243
- emit RedeemDueInterestAndRewardsThenSwapAll(
244
- msg.sender,
245
- sys,
246
- dataYT.yts,
247
- markets,
248
- dataSwap.outputToken,
249
- netTokenOut
250
- );
251
- }
252
-
253
- function _newRouterTokenAmounts(address[] memory tokens)
254
- internal
255
- pure
256
- returns (RouterTokenAmounts memory)
257
- {
258
- return RouterTokenAmounts(tokens, new uint256[](tokens.length));
259
- }
260
-
261
- /// @dev pull SYs from users & redeem them, then add to tokensOut
262
- function _redeemAllSys(
263
- RouterTokenAmounts memory sys,
264
- address[] calldata bulks,
265
- address[] calldata tokenRedeemSys,
266
- RouterTokenAmounts memory tokensOut
267
- ) internal {
268
- for (uint256 i = 0; i < sys.tokens.length; ++i) {
269
- if (sys.amounts[i] == 0) continue;
270
-
271
- TokenOutput memory output = _wrapTokenOutput(tokenRedeemSys[i], 1, bulks[i]);
272
- uint256 amountOut = _redeemSyToToken(
273
- address(this),
274
- sys.tokens[i],
275
- sys.amounts[i],
276
- output,
277
- true
278
- );
279
-
280
- _addTokenAmount(tokensOut, tokenRedeemSys[i], amountOut);
281
- }
282
- }
283
-
284
- function _swapAllToOutputToken(
285
- RouterTokenAmounts memory tokens,
286
- RouterSwapAllStruct memory dataSwap
287
- ) internal returns (uint256 netTokenOut) {
288
- for (uint256 i = 0; i < tokens.tokens.length; ++i) {
289
- if (tokens.amounts[i] == 0) continue;
290
- _kyberswap(
291
- tokens.tokens[i],
292
- tokens.amounts[i],
293
- dataSwap.kyberRouter,
294
- dataSwap.kybercalls[i]
295
- );
296
- }
297
- netTokenOut = _selfBalance(dataSwap.outputToken);
298
- _transferOut(dataSwap.outputToken, msg.sender, netTokenOut);
299
- }
119
+ ) external {
120
+ unchecked {
121
+ for (uint256 i = 0; i < sys.length; ++i) {
122
+ IStandardizedYield(sys[i]).claimRewards(user);
123
+ }
300
124
 
301
- function _addTokenAmount(
302
- RouterTokenAmounts memory data,
303
- address token,
304
- uint256 amount
305
- ) internal pure {
306
- for (uint256 j = 0; j < data.tokens.length; j++) {
307
- if (data.tokens[j] == token) {
308
- data.amounts[j] += amount;
309
- return;
125
+ for (uint256 i = 0; i < yts.length; ++i) {
126
+ IPYieldToken(yts[i]).redeemDueInterestAndRewards(user, true, true);
310
127
  }
311
- }
312
- revert("token not found");
313
- }
314
128
 
315
- function _addTokenAmounts(
316
- RouterTokenAmounts memory data,
317
- address[] memory tokens,
318
- uint256[] memory amounts
319
- ) internal pure {
320
- for (uint256 i = 0; i < tokens.length; i++) {
321
- _addTokenAmount(data, tokens[i], amounts[i]);
129
+ for (uint256 i = 0; i < markets.length; ++i) {
130
+ IPMarket(markets[i]).redeemRewards(user);
131
+ }
322
132
  }
323
133
  }
324
134
  }
@@ -1,25 +1,51 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity 0.8.17;
3
3
 
4
- import "../interfaces/IPMarket.sol";
5
4
  import "../interfaces/IPActionMisc.sol";
6
- import "../core/libraries/Errors.sol";
7
-
8
- contract ActionMisc is IPActionMisc {
9
- using Math for uint256;
10
-
11
- function consult(address market, uint32 secondsAgo)
12
- external
13
- view
14
- returns (uint96 lnImpliedRateMean)
15
- {
16
- if (secondsAgo == 0) revert Errors.RouterTimeRangeZero();
17
- uint32[] memory secondsAgos = new uint32[](2);
18
- secondsAgos[0] = secondsAgo;
19
- secondsAgos[1] = 0;
20
- uint216[] memory lnImpliedRateCumulatives = IPMarket(market).observe(secondsAgos);
21
- return
22
- (uint256(lnImpliedRateCumulatives[1] - lnImpliedRateCumulatives[0]) / secondsAgo)
23
- .Uint96();
5
+ import "../core/libraries/TokenHelper.sol";
6
+
7
+ contract ActionMisc is IPActionMisc, TokenHelper {
8
+ function approveInf(MultiApproval[] calldata arr) external {
9
+ for (uint256 i = 0; i < arr.length; ) {
10
+ MultiApproval calldata ele = arr[i];
11
+ for (uint256 j = 0; j < ele.tokens.length; ) {
12
+ _safeApproveInf(ele.tokens[j], ele.spender);
13
+ unchecked {
14
+ j++;
15
+ }
16
+ }
17
+ unchecked {
18
+ i++;
19
+ }
20
+ }
21
+ }
22
+
23
+ function batchExec(Call3[] calldata calls) external returns (Result[] memory res) {
24
+ uint256 length = calls.length;
25
+
26
+ res = new Result[](length);
27
+
28
+ Call3 calldata calli;
29
+
30
+ for (uint256 i = 0; i < length; ) {
31
+ calli = calls[i];
32
+
33
+ // delegatecall to itself, it turns allowing invoking functions from other actions
34
+ (bool success, bytes memory result) = address(this).delegatecall(calli.callData);
35
+
36
+ if (!success && !calli.allowFailure) {
37
+ assembly {
38
+ // We use Yul's revert() to bubble up errors from the target contract.
39
+ revert(add(32, result), mload(result))
40
+ }
41
+ }
42
+
43
+ res[i].success = success;
44
+ res[i].returnData = result;
45
+
46
+ unchecked {
47
+ ++i;
48
+ }
49
+ }
24
50
  }
25
51
  }
@@ -15,11 +15,6 @@ contract ActionSwapPT is IPActionSwapPT, ActionBaseMintRedeem {
15
15
  using Math for int256;
16
16
  using PYIndexLib for IPYieldToken;
17
17
 
18
- /// @dev since this contract will be proxied, it must not contains non-immutable variables
19
- constructor(address _kyberScalingLib)
20
- ActionBaseMintRedeem(_kyberScalingLib) //solhint-disable-next-line no-empty-blocks
21
- {}
22
-
23
18
  /**
24
19
  * @notice swaps exact amount of PT for SY
25
20
  * @param exactPtIn will always consume this exact amount of PT for as much SY as possible
@@ -4,11 +4,14 @@ pragma solidity 0.8.17;
4
4
  import "./base/ActionBaseMintRedeem.sol";
5
5
  import "./base/CallbackHelper.sol";
6
6
  import "../interfaces/IPActionSwapYT.sol";
7
+ import "../interfaces/IAddressProvider.sol";
7
8
  import "../interfaces/IPMarket.sol";
8
9
  import "../core/libraries/Errors.sol";
9
10
 
11
+ import "./base/ActionBaseCallback.sol";
12
+
10
13
  /// @dev All swap actions will revert if market is expired
11
- contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
14
+ contract ActionSwapYT is ActionBaseCallback, IPActionSwapYT, ActionBaseMintRedeem {
12
15
  using Math for uint256;
13
16
  using Math for int256;
14
17
  using MarketMathCore for MarketState;
@@ -16,10 +19,11 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
16
19
  using MarketApproxPtOutLib for MarketState;
17
20
  using PYIndexLib for IPYieldToken;
18
21
 
19
- /// @dev since this contract will be proxied, it must not contains non-immutable variables
20
- constructor(address _kyberScalingLib)
21
- ActionBaseMintRedeem(_kyberScalingLib) //solhint-disable-next-line no-empty-blocks
22
- {}
22
+ constructor(IAddressProvider provider, uint256 providerId) ActionBaseCallback(_getMarketFactory(provider,providerId)) {}
23
+
24
+ function _getMarketFactory(IAddressProvider provider, uint256 providerId) internal view returns (address) {
25
+ return provider.get(providerId);
26
+ }
23
27
 
24
28
  /**
25
29
  * @notice swap exact SY to YT with the help of flashswaps & YT tokenization / redemption
@@ -38,7 +42,7 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
38
42
  address market,
39
43
  uint256 exactSyIn,
40
44
  uint256 minYtOut,
41
- ApproxParams memory guessYtOut
45
+ ApproxParams calldata guessYtOut
42
46
  ) external returns (uint256 netYtOut, uint256 netSyFee) {
43
47
  (IStandardizedYield SY, , IPYieldToken YT) = IPMarket(market).readTokens();
44
48
 
@@ -105,7 +109,7 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
105
109
  (, netSyFee) = IPMarket(market).swapExactPtForSy(
106
110
  address(YT),
107
111
  exactYtOut, // exactPtIn = exactYtOut
108
- _encodeSwapSyForExactYt(msg.sender, receiver, maxSyIn)
112
+ _encodeSwapSyForExactYt(msg.sender, receiver, maxSyIn, SY, YT)
109
113
  );
110
114
 
111
115
  netSyIn = preSyBalance - SY.balanceOf(msg.sender);
@@ -129,7 +133,7 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
129
133
  address market,
130
134
  uint256 exactSyOut,
131
135
  uint256 maxYtIn,
132
- ApproxParams memory guessYtIn
136
+ ApproxParams calldata guessYtIn
133
137
  ) external returns (uint256 netYtIn, uint256 netSyFee) {
134
138
  MarketState memory state = IPMarket(market).readState(address(this));
135
139
  (, , IPYieldToken YT) = IPMarket(market).readTokens();
@@ -148,7 +152,7 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
148
152
  (, netSyFee) = IPMarket(market).swapSyForExactPt(
149
153
  address(YT),
150
154
  netYtIn, // exactPtOut = netYtIn
151
- _encodeSwapYtForSy(receiver, exactSyOut)
155
+ _encodeSwapYtForSy(receiver, exactSyOut, YT)
152
156
  );
153
157
 
154
158
  emit SwapYtAndSy(msg.sender, market, receiver, netYtIn.neg(), exactSyOut.Int());
@@ -163,7 +167,7 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
163
167
  address receiver,
164
168
  address market,
165
169
  uint256 minYtOut,
166
- ApproxParams memory guessYtOut,
170
+ ApproxParams calldata guessYtOut,
167
171
  TokenInput calldata input
168
172
  ) external payable returns (uint256 netYtOut, uint256 netSyFee) {
169
173
  (IStandardizedYield SY, , IPYieldToken YT) = IPMarket(market).readTokens();
@@ -227,13 +231,99 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
227
231
  );
228
232
  }
229
233
 
234
+ /**
235
+ * @notice swap exact PT to YT with the help of flashswaps & YT tokenization / redemption
236
+ * @dev inner working of this function:
237
+ - `exactPtIn` PT is transferred to market contract
238
+ - `market.swapExactPtForSy` is called, which will transfer SY directly to YT contract & callback is invoked.
239
+ Note that we will owe PT, the amount before is not sufficient
240
+ - in callback, all SY in YT contract is used to mint PT + YT, with PT used to pay the rest of the loan, and YT
241
+ transferred to the receiver
242
+ * @param exactPtIn will always consume this amount of PT for as much YT as possible
243
+ * @param guessTotalPtToSwap approximation data for PT used for the PT-to-SY flashswap
244
+ * @dev this function works in conjunction with ActionCallback
245
+ */
246
+ function swapExactPtForYt(
247
+ address receiver,
248
+ address market,
249
+ uint256 exactPtIn,
250
+ uint256 minYtOut,
251
+ ApproxParams calldata guessTotalPtToSwap
252
+ ) external returns (uint256 netYtOut, uint256 netSyFee) {
253
+ (, IPPrincipalToken PT, IPYieldToken YT) = IPMarket(market).readTokens();
254
+ MarketState memory state = IPMarket(market).readState(address(this));
255
+
256
+ _transferFrom(IERC20(PT), msg.sender, market, exactPtIn);
257
+
258
+ uint256 totalPtToSwap;
259
+ (netYtOut, totalPtToSwap, netSyFee) = state.approxSwapExactPtForYt(
260
+ YT.newIndex(),
261
+ exactPtIn,
262
+ block.timestamp,
263
+ guessTotalPtToSwap
264
+ );
265
+
266
+ if (netYtOut < minYtOut) revert Errors.RouterInsufficientYtOut(netYtOut, minYtOut);
267
+
268
+ IPMarket(market).swapExactPtForSy(
269
+ address(YT),
270
+ totalPtToSwap,
271
+ _encodeSwapExactPtForYt(receiver, exactPtIn, minYtOut, YT)
272
+ );
273
+
274
+ emit SwapPtAndYt(msg.sender, market, receiver, exactPtIn.neg(), netYtOut.Int());
275
+ }
276
+
277
+ /**
278
+ * @notice swap exact YT to PT with the help of flashswaps & YT tokenization / redemption
279
+ * @dev inner working of this function:
280
+ - `exactYtIn` YT is transferred to yield contract
281
+ - `market.swapSyForExactPt` is called, which will transfer PT directly to this contract & callback is invoked.
282
+ Note that we now owe SY
283
+ - in callback, a portion of PT + YT is used to redeem SY, which is then used to payback the loan. The rest of
284
+ of the PT is transferred to `receiver`
285
+ * @param exactYtIn will always consume this amount of YT for as much PT as possible
286
+ * @param guessTotalPtFromSwap approximation data for PT output of the SY-to-PT flashswap
287
+ * @dev this function works in conjunction with ActionCallback
288
+ */
289
+ function swapExactYtForPt(
290
+ address receiver,
291
+ address market,
292
+ uint256 exactYtIn,
293
+ uint256 minPtOut,
294
+ ApproxParams calldata guessTotalPtFromSwap
295
+ ) external returns (uint256 netPtOut, uint256 netSyFee) {
296
+ (, IPPrincipalToken PT, IPYieldToken YT) = IPMarket(market).readTokens();
297
+ MarketState memory state = IPMarket(market).readState(address(this));
298
+
299
+ _transferFrom(IERC20(YT), msg.sender, address(YT), exactYtIn);
300
+
301
+ uint256 totalPtFromSwap;
302
+ (netPtOut, totalPtFromSwap, netSyFee) = state.approxSwapExactYtForPt(
303
+ YT.newIndex(),
304
+ exactYtIn,
305
+ block.timestamp,
306
+ guessTotalPtFromSwap
307
+ );
308
+
309
+ if (netPtOut < minPtOut) revert Errors.RouterInsufficientPtOut(netPtOut, minPtOut);
310
+
311
+ IPMarket(market).swapSyForExactPt(
312
+ address(this),
313
+ totalPtFromSwap,
314
+ _encodeSwapExactYtForPt(receiver, exactYtIn, minPtOut, PT, YT)
315
+ );
316
+
317
+ emit SwapPtAndYt(msg.sender, market, receiver, netPtOut.Int(), exactYtIn.neg());
318
+ }
319
+
230
320
  function _swapExactSyForYt(
231
321
  address receiver,
232
322
  address market,
233
323
  IPYieldToken YT,
234
324
  uint256 exactSyIn,
235
325
  uint256 minYtOut,
236
- ApproxParams memory guessYtOut
326
+ ApproxParams calldata guessYtOut
237
327
  ) internal returns (uint256 netYtOut, uint256 netSyFee) {
238
328
  MarketState memory state = IPMarket(market).readState(address(this));
239
329
 
@@ -250,7 +340,7 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
250
340
  (, netSyFee) = IPMarket(market).swapExactPtForSy(
251
341
  address(YT),
252
342
  netYtOut, // exactPtIn = netYtOut
253
- _encodeSwapExactSyForYt(receiver, minYtOut)
343
+ _encodeSwapExactSyForYt(receiver, minYtOut, YT)
254
344
  );
255
345
  }
256
346
 
@@ -267,7 +357,7 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
267
357
  (, netSyFee) = IPMarket(market).swapSyForExactPt(
268
358
  address(YT),
269
359
  exactYtIn, // exactPtOut = exactYtIn
270
- _encodeSwapYtForSy(receiver, minSyOut)
360
+ _encodeSwapYtForSy(receiver, minSyOut, YT)
271
361
  );
272
362
 
273
363
  netSyOut = SY.balanceOf(receiver) - preSyBalance;