@pendle/core-v2 1.2.0-mainnet → 1.2.1-testnet

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (692) 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/ExcessivelySafeCall.sol/ExcessivelySafeCall.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.json +2 -2
  11. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  12. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  13. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  14. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  15. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +3 -3
  16. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +34 -2
  18. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  19. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  20. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  21. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.json +39 -0
  22. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  23. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  24. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  25. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +3 -3
  26. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  27. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  28. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  29. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  30. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  31. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  32. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  33. package/build/artifacts/contracts/LiquidityMining/libraries/WeekMath.sol/WeekMath.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +2 -2
  36. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +2 -2
  38. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +2 -2
  40. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  42. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  44. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  47. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  49. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  53. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.json +141 -0
  54. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  55. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.json +141 -0
  56. package/build/artifacts/contracts/core/StandardizedYield/SYUtils.sol/SYUtils.dbg.json +1 -1
  57. package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.dbg.json +4 -0
  58. package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.json +10 -0
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +143 -2
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.dbg.json +4 -0
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.json +1218 -0
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.dbg.json +4 -0
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.json +1192 -0
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol/FixedPoint.dbg.json +4 -0
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol/FixedPoint.json +10 -0
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.dbg.json +4 -0
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.json +40 -0
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.dbg.json +4 -0
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.json +322 -0
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol/PendleAuraBalancerStableLPSY.dbg.json +4 -0
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol/PendleAuraBalancerStableLPSY.json +1171 -0
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.dbg.json +4 -0
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.json +10 -0
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.dbg.json +4 -0
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.json +133 -0
  77. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  78. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  79. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  80. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +143 -2
  81. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  82. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +143 -2
  83. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  84. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +143 -2
  85. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +1 -1
  86. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +1 -1
  87. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +1 -1
  88. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  89. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.json +141 -0
  90. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.dbg.json +4 -0
  91. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.json +50 -0
  92. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +4 -0
  93. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +1163 -0
  94. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +4 -0
  95. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.json +974 -0
  96. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  97. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +143 -2
  98. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  99. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +143 -2
  100. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  101. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  102. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  103. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  104. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  105. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  106. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  107. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +4 -0
  108. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.json +66 -0
  109. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +4 -0
  110. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +476 -0
  111. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +4 -0
  112. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +590 -0
  113. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +4 -0
  114. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +1017 -0
  115. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  116. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
  117. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  118. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.json +2 -2
  119. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
  120. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
  121. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
  122. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
  123. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  124. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +87 -2
  125. package/build/artifacts/contracts/core/libraries/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  126. package/build/artifacts/contracts/core/libraries/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  127. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +1 -1
  128. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  129. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  130. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.dbg.json +1 -1
  131. package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.dbg.json +4 -0
  132. package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.json +10 -0
  133. package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.dbg.json +4 -0
  134. package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.json +24 -0
  135. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +4 -0
  136. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.json +133 -0
  137. package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.dbg.json +4 -0
  138. package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.json +328 -0
  139. package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.dbg.json +4 -0
  140. package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.json +467 -0
  141. package/build/artifacts/contracts/interfaces/Balancer/IGauge.sol/IGauge.dbg.json +4 -0
  142. package/build/artifacts/contracts/interfaces/Balancer/IGauge.sol/IGauge.json +61 -0
  143. package/build/artifacts/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol/ILiquidityGaugeFactory.dbg.json +4 -0
  144. package/build/artifacts/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol/ILiquidityGaugeFactory.json +30 -0
  145. package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.dbg.json +4 -0
  146. package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.json +398 -0
  147. package/build/artifacts/contracts/interfaces/Balancer/IRateProvider.sol/IRateProvider.dbg.json +4 -0
  148. package/build/artifacts/contracts/{router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.json → interfaces/Balancer/IRateProvider.sol/IRateProvider.json} +5 -5
  149. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +4 -0
  150. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.json +278 -0
  151. package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
  152. package/build/artifacts/contracts/interfaces/ConvexCurve/ICrvDepositor.sol/ICrvDepositor.dbg.json +1 -1
  153. package/build/artifacts/contracts/interfaces/ConvexCurve/ICvxCrv.sol/ICvxCrv.dbg.json +1 -1
  154. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
  155. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.json +18 -0
  156. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
  157. package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.dbg.json +1 -1
  158. package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.dbg.json +4 -0
  159. package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.json +308 -0
  160. package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.dbg.json +4 -0
  161. package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.json +69 -0
  162. package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.dbg.json +4 -0
  163. package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.json +201 -0
  164. package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.dbg.json +4 -0
  165. package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.json +45 -0
  166. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
  167. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +1 -1
  168. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +1 -1
  169. package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.dbg.json +4 -0
  170. package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.json +48 -0
  171. package/build/artifacts/contracts/interfaces/IApeStaking.sol/IApeStaking.dbg.json +1 -1
  172. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  173. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  174. package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.dbg.json +4 -0
  175. package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.json +93 -0
  176. package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.dbg.json +4 -0
  177. package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.json +87 -0
  178. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  179. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.json +19 -0
  180. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.dbg.json +1 -1
  181. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.dbg.json +1 -1
  182. package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.dbg.json +1 -1
  183. package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +1 -1
  184. package/build/artifacts/contracts/interfaces/ILooksFeeSharing.sol/ILooksFeeSharing.dbg.json +1 -1
  185. package/build/artifacts/contracts/interfaces/ILooksStaking.sol/ILooksStaking.dbg.json +1 -1
  186. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  187. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json +338 -16
  188. package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +4 -0
  189. package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.json +307 -0
  190. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +4 -0
  191. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.json +269 -0
  192. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +4 -0
  193. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.json +1270 -0
  194. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  195. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json +105 -224
  196. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +4 -0
  197. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.json +273 -0
  198. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
  199. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.json +56 -12
  200. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +4 -0
  201. package/build/artifacts/contracts/interfaces/{IPActionSwapPTYT.sol/IPActionSwapPTYT.json → IPActionStorageStatic.sol/IPActionStorageStatic.json} +70 -76
  202. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  203. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.json +52 -8
  204. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  205. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.json +231 -8
  206. package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.dbg.json +4 -0
  207. package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.json +40 -0
  208. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  209. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +675 -241
  210. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  211. package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.dbg.json +1 -1
  212. package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.dbg.json +1 -1
  213. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
  214. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.json +19 -0
  215. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
  216. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  217. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  218. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +1 -1
  219. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  220. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +4 -0
  221. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.json +40 -0
  222. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  223. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  224. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  225. package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.dbg.json +4 -0
  226. package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.json +55 -0
  227. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
  228. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.json +1 -1
  229. package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
  230. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.dbg.json +1 -1
  231. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  232. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +4 -0
  233. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +2332 -0
  234. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  235. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  236. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.json +39 -0
  237. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  238. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  239. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  240. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +4 -0
  241. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.json +679 -0
  242. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  243. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  244. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  245. package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.dbg.json +1 -1
  246. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  247. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.dbg.json +1 -1
  248. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +1 -1
  249. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  250. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  251. package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +1 -1
  252. package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +1 -1
  253. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  254. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +1 -1
  255. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  256. package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.dbg.json +1 -1
  257. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  258. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +1 -1
  259. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.dbg.json +4 -0
  260. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.json +143 -0
  261. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  262. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +4 -0
  263. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +256 -0
  264. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  265. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
  266. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +4 -0
  267. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.json +322 -0
  268. package/build/artifacts/contracts/offchain-helpers/PendleMulticall.sol/PendleMulticall.dbg.json +4 -0
  269. package/build/artifacts/contracts/offchain-helpers/PendleMulticall.sol/PendleMulticall.json +47 -0
  270. package/build/artifacts/contracts/offchain-helpers/legacy/MarketMathStatic.sol/MarketMathStatic.dbg.json +4 -0
  271. package/build/artifacts/contracts/offchain-helpers/legacy/MarketMathStatic.sol/MarketMathStatic.json +259 -0
  272. package/build/artifacts/contracts/offchain-helpers/legacy/RouterStatic.sol/RouterStatic.dbg.json +4 -0
  273. package/build/artifacts/contracts/offchain-helpers/{RouterStatic.sol → legacy/RouterStatic.sol}/RouterStatic.json +5 -5
  274. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +4 -0
  275. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +30 -0
  276. package/build/artifacts/contracts/offchain-helpers/router-static/StorageLayout.sol/StorageLayout.dbg.json +4 -0
  277. package/build/artifacts/contracts/offchain-helpers/router-static/StorageLayout.sol/StorageLayout.json +10 -0
  278. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +4 -0
  279. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +307 -0
  280. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +4 -0
  281. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +333 -0
  282. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +4 -0
  283. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +1407 -0
  284. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +4 -0
  285. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +310 -0
  286. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +4 -0
  287. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +228 -0
  288. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +4 -0
  289. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +93 -0
  290. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  291. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +345 -62
  292. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  293. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +107 -260
  294. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  295. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +57 -18
  296. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  297. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +54 -65
  298. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  299. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +342 -44
  300. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  301. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +76 -67
  302. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +4 -0
  303. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.json +141 -0
  304. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  305. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json +1 -15
  306. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  307. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  308. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  309. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  310. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  311. package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.dbg.json +4 -0
  312. package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.json +160 -0
  313. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +4 -0
  314. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.json +10 -0
  315. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +4 -0
  316. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.json +56 -0
  317. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapAggregator.sol/PendleSwapAggregator.dbg.json +4 -0
  318. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapAggregator.sol/PendleSwapAggregator.json +72 -0
  319. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.dbg.json +4 -0
  320. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.json +10 -0
  321. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.dbg.json +4 -0
  322. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.json +10 -0
  323. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +4 -0
  324. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.json +65 -0
  325. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +4 -0
  326. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.json +388 -0
  327. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IHashflow.sol/IHashflow.dbg.json +4 -0
  328. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IHashflow.sol/IHashflow.json +101 -0
  329. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +4 -0
  330. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json +215 -0
  331. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol +0 -1
  332. package/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol +9 -9
  333. package/contracts/core/RewardManager/RewardManager.sol +1 -1
  334. package/contracts/core/StandardizedYield/SYBase.sol +23 -5
  335. package/contracts/core/StandardizedYield/StEthHelper.sol +71 -0
  336. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol +134 -0
  337. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol +154 -0
  338. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol +68 -0
  339. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol +322 -0
  340. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol +390 -0
  341. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol +329 -0
  342. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol +30 -0
  343. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol +189 -0
  344. package/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol +142 -0
  345. package/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol +224 -0
  346. package/contracts/core/StandardizedYield/implementations/GLP/README.md +61 -0
  347. package/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol +138 -0
  348. package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +10 -0
  349. package/contracts/core/YieldContractsV2/InterestManagerYTV2.sol +114 -0
  350. package/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol +63 -0
  351. package/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol +200 -0
  352. package/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol +485 -0
  353. package/contracts/core/libraries/ArrayLib.sol +27 -12
  354. package/contracts/core/libraries/Errors.sol +8 -2
  355. package/contracts/core/libraries/TokenHelper.sol +10 -0
  356. package/contracts/interfaces/Balancer/IAsset.sol +4 -0
  357. package/contracts/interfaces/Balancer/IBalancerFees.sol +6 -0
  358. package/contracts/interfaces/Balancer/IBalancerStablePreview.sol +22 -0
  359. package/contracts/interfaces/Balancer/IBasePool.sol +30 -0
  360. package/contracts/interfaces/Balancer/IComposableStable.sol +39 -0
  361. package/contracts/interfaces/Balancer/IGauge.sol +10 -0
  362. package/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol +6 -0
  363. package/contracts/interfaces/Balancer/IMetaStablePool.sol +31 -0
  364. package/contracts/interfaces/Balancer/IRateProvider.sol +6 -0
  365. package/contracts/interfaces/Balancer/IVault.sol +78 -0
  366. package/contracts/interfaces/ConvexCurve/IRewards.sol +5 -0
  367. package/contracts/interfaces/GMX/IGMXVault.sol +47 -0
  368. package/contracts/interfaces/GMX/IGlpManager.sol +12 -0
  369. package/contracts/interfaces/GMX/IRewardRouterV2.sol +43 -0
  370. package/contracts/interfaces/GMX/IVaultPriceFeed.sol +11 -0
  371. package/contracts/interfaces/IAddressProvider.sol +7 -0
  372. package/contracts/interfaces/IDiamondCut.sol +36 -0
  373. package/contracts/interfaces/IDiamondLoupe.sol +38 -0
  374. package/contracts/interfaces/IERC4626.sol +2 -0
  375. package/contracts/interfaces/IPActionAddRemoveLiq.sol +36 -1
  376. package/contracts/interfaces/IPActionInfoStatic.sol +43 -0
  377. package/contracts/interfaces/IPActionMarketAuxStatic.sol +30 -0
  378. package/contracts/interfaces/IPActionMarketCoreStatic.sol +317 -0
  379. package/contracts/interfaces/IPActionMintRedeem.sol +2 -55
  380. package/contracts/interfaces/IPActionMintRedeemStatic.sol +60 -0
  381. package/contracts/interfaces/IPActionMisc.sol +18 -4
  382. package/contracts/interfaces/IPActionStorageStatic.sol +25 -0
  383. package/contracts/interfaces/IPActionSwapPT.sol +1 -1
  384. package/contracts/interfaces/IPActionSwapYT.sol +28 -4
  385. package/contracts/interfaces/IPActionVePendleStatic.sol +9 -0
  386. package/contracts/interfaces/IPAllAction.sol +5 -3
  387. package/contracts/interfaces/IPInterestManagerYTV2.sol +13 -0
  388. package/contracts/interfaces/IPMiniDiamond.sol +12 -0
  389. package/contracts/interfaces/IPMsgReceiverApp.sol +1 -1
  390. package/contracts/interfaces/IPRouterStatic.sol +19 -0
  391. package/contracts/interfaces/IPVotingController.sol +6 -0
  392. package/contracts/interfaces/IPYieldTokenV2.sol +66 -0
  393. package/contracts/interfaces/IStandardizedYield.sol +1 -1
  394. package/contracts/offchain-helpers/AddressProvider.sol +16 -0
  395. package/contracts/offchain-helpers/Broadcaster.sol +48 -0
  396. package/contracts/offchain-helpers/PendleMulticall.sol +26 -0
  397. package/contracts/offchain-helpers/{MarketMathStatic.sol → legacy/MarketMathStatic.sol} +2 -2
  398. package/contracts/offchain-helpers/{RouterStatic.sol → legacy/RouterStatic.sol} +7 -7
  399. package/contracts/offchain-helpers/router-static/PendleRouterStatic.sol +19 -0
  400. package/contracts/offchain-helpers/router-static/StorageLayout.sol +21 -0
  401. package/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol +125 -0
  402. package/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol +166 -0
  403. package/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol +769 -0
  404. package/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol +166 -0
  405. package/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol +75 -0
  406. package/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol +55 -0
  407. package/contracts/router/ActionAddRemoveLiq.sol +116 -6
  408. package/contracts/router/ActionMintRedeem.sol +12 -202
  409. package/contracts/router/ActionMisc.sol +45 -19
  410. package/contracts/router/ActionSwapPT.sol +0 -5
  411. package/contracts/router/ActionSwapYT.sol +103 -13
  412. package/contracts/router/PendleRouter.sol +211 -72
  413. package/contracts/router/{ActionCallback.sol → base/ActionBaseCallback.sol} +47 -47
  414. package/contracts/router/base/ActionBaseMintRedeem.sol +105 -60
  415. package/contracts/router/base/CallbackHelper.sol +137 -44
  416. package/contracts/router/base/MarketApproxLib.sol +227 -350
  417. package/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol +45 -0
  418. package/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol +69 -0
  419. package/contracts/router/swap-aggregator/IPSwapAggregator.sol +25 -0
  420. package/contracts/router/swap-aggregator/PendleSwapAggregator.sol +46 -0
  421. package/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol +214 -0
  422. package/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol +147 -0
  423. package/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol +17 -0
  424. package/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperEthereum1.sol +191 -0
  425. package/contracts/router/swap-aggregator/kyberswap/interfaces/IHashflow.sol +30 -0
  426. package/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol +42 -0
  427. package/deployments/43113-core.json +30 -0
  428. package/deployments/43113-markets/APE-30-MARCH.json +10 -0
  429. package/deployments/43113-markets/USDC-FEB-2ND-2024.json +10 -0
  430. package/deployments/43113-markets/USDC-FEB-2ND.json +10 -0
  431. package/deployments/43113-markets/USDC-FEB-4TH.json +10 -0
  432. package/deployments/43113-markets/WETH-FEB-2ND.json +11 -0
  433. package/deployments/43113-markets/WETH-FEB-4TH.json +11 -0
  434. package/deployments/43113-offchain-helper.json +4 -0
  435. package/deployments/43113-testenv.json +22 -0
  436. package/deployments/80001-core.json +29 -0
  437. package/deployments/80001-markets/GLP-DEC-8TH.json +10 -0
  438. package/deployments/80001-markets/USDC-DEC-8TH.json +10 -0
  439. package/deployments/80001-markets/USDC-FEB-4TH.json +10 -0
  440. package/deployments/80001-markets/WETH-FEB-4TH.json +11 -0
  441. package/deployments/80001-offchain-helper.json +4 -0
  442. package/deployments/80001-testenv.json +22 -0
  443. package/package.json +9 -10
  444. package/typechain-types/ActionAddRemoveLiq.ts +203 -23
  445. package/typechain-types/ActionBaseCallback.ts +115 -0
  446. package/typechain-types/ActionInfoStatic.ts +310 -0
  447. package/typechain-types/ActionMarketAuxStatic.ts +350 -0
  448. package/typechain-types/ActionMarketCoreStatic.ts +1489 -0
  449. package/typechain-types/ActionMintRedeem.ts +29 -230
  450. package/typechain-types/ActionMintRedeemStatic.ts +461 -0
  451. package/typechain-types/ActionMisc.ts +77 -27
  452. package/typechain-types/ActionStorageStatic.ts +403 -0
  453. package/typechain-types/ActionSwapPT.ts +26 -31
  454. package/typechain-types/ActionSwapYT.ts +202 -21
  455. package/typechain-types/ActionVePendleStatic.ts +113 -0
  456. package/typechain-types/AddressProvider.ts +280 -0
  457. package/typechain-types/Broadcaster.ts +454 -0
  458. package/typechain-types/ComposableStablePreview.ts +217 -0
  459. package/typechain-types/GLPPreviewHelper.ts +121 -0
  460. package/typechain-types/GMXPreviewHelper.ts +121 -0
  461. package/typechain-types/I1inchAggregationRouterV5.ts +257 -0
  462. package/typechain-types/IAddressProvider.ts +123 -0
  463. package/typechain-types/IAggregationExecutor.ts +182 -0
  464. package/typechain-types/IBalancerFees.ts +89 -0
  465. package/typechain-types/IBalancerStablePreview.ts +217 -0
  466. package/typechain-types/IBasePool.ts +482 -0
  467. package/typechain-types/IComposableStable.ts +730 -0
  468. package/typechain-types/IDiamondCut.ts +152 -0
  469. package/typechain-types/IDiamondLoupe.ts +190 -0
  470. package/typechain-types/IERC4626.ts +34 -0
  471. package/typechain-types/IExecutorHelperEthereum1.ts +643 -0
  472. package/typechain-types/IGMXVault.ts +494 -0
  473. package/typechain-types/IGauge.ts +160 -0
  474. package/typechain-types/IGlpManager.ts +165 -0
  475. package/typechain-types/IHashflow.ts +159 -0
  476. package/typechain-types/IKyberSwapAggregationRouterHelper.ts +109 -0
  477. package/typechain-types/ILiquidityGaugeFactory.ts +99 -0
  478. package/typechain-types/IMetaAggregationRouter.ts +213 -0
  479. package/typechain-types/IMetaAggregationRouterV2.ts +221 -0
  480. package/typechain-types/IMetaStablePool.ts +619 -0
  481. package/typechain-types/IPActionAddRemoveLiq.ts +213 -14
  482. package/typechain-types/IPActionInfoStatic.ts +310 -0
  483. package/typechain-types/IPActionMarketAuxStatic.ts +350 -0
  484. package/typechain-types/IPActionMarketCoreStatic.ts +1489 -0
  485. package/typechain-types/IPActionMintRedeem.ts +29 -211
  486. package/typechain-types/IPActionMintRedeemStatic.ts +461 -0
  487. package/typechain-types/IPActionMisc.ts +77 -27
  488. package/typechain-types/IPActionStorageStatic.ts +326 -0
  489. package/typechain-types/IPActionSwapPT.ts +26 -12
  490. package/typechain-types/IPActionSwapYT.ts +168 -12
  491. package/typechain-types/IPActionVePendleStatic.ts +113 -0
  492. package/typechain-types/IPAllAction.ts +445 -227
  493. package/typechain-types/IPFeeDistributor.ts +18 -0
  494. package/typechain-types/IPInterestManagerYTV2.ts +117 -0
  495. package/typechain-types/IPMiniDiamond.ts +147 -0
  496. package/typechain-types/IPMsgReceiverApp.ts +5 -5
  497. package/typechain-types/IPRouterStatic.ts +2394 -509
  498. package/typechain-types/IPSwapAggregator.ts +126 -0
  499. package/typechain-types/IPVotingController.ts +96 -0
  500. package/typechain-types/IPYieldTokenV2.ts +901 -0
  501. package/typechain-types/IRateProvider.ts +81 -0
  502. package/typechain-types/IRewardRouterV2.ts +346 -0
  503. package/typechain-types/IRewards.ts +35 -5
  504. package/typechain-types/ISwapAggregator.ts +124 -0
  505. package/typechain-types/IVault.ts +410 -0
  506. package/typechain-types/IVaultPriceFeed.ts +114 -0
  507. package/typechain-types/InterestManagerYTV2.ts +157 -0
  508. package/typechain-types/MetaStableMath.ts +113 -0
  509. package/typechain-types/MetaStablePreview.ts +501 -0
  510. package/typechain-types/Multicall2.ts +437 -0
  511. package/typechain-types/PendleAura3EthSY.ts +1600 -0
  512. package/typechain-types/PendleAuraBalancerStableLPSY.ts +1523 -0
  513. package/typechain-types/PendleAuraCbethWstethSY.ts +1587 -0
  514. package/typechain-types/PendleAuraWethRethSY.ts +1549 -0
  515. package/typechain-types/PendleAuraWethWstethSY.ts +1523 -0
  516. package/typechain-types/PendleConvexLPSY.ts +204 -0
  517. package/typechain-types/PendleCurveFraxUsdcSY.ts +204 -0
  518. package/typechain-types/PendleCurveUsdd3CrvSY.ts +204 -0
  519. package/typechain-types/PendleFeeDistributor.ts +37 -0
  520. package/typechain-types/PendleGDaiSY.ts +1229 -0
  521. package/typechain-types/PendleGaugeControllerSidechainUpg.ts +4 -4
  522. package/typechain-types/PendleGlpSY.ts +1463 -0
  523. package/typechain-types/PendleLooksStakingSY.ts +204 -0
  524. package/typechain-types/PendleMsgReceiverAppUpg.ts +5 -5
  525. package/typechain-types/PendleMulticall.ts +110 -0
  526. package/typechain-types/PendlePrincipalTokenV2.ts +614 -0
  527. package/typechain-types/PendleQiTokenSY.ts +204 -0
  528. package/typechain-types/PendleRouter.ts +109 -131
  529. package/typechain-types/PendleRouterStatic.ts +57 -0
  530. package/typechain-types/PendleSwapAggregator.ts +126 -0
  531. package/typechain-types/PendleWstEthSY.ts +204 -0
  532. package/typechain-types/PendleYieldContractFactoryV2.ts +801 -0
  533. package/typechain-types/PendleYieldTokenV2.ts +1298 -0
  534. package/typechain-types/SAPE.ts +204 -0
  535. package/typechain-types/SYBase.ts +204 -0
  536. package/typechain-types/SYBaseWithRewards.ts +204 -0
  537. package/typechain-types/StEthHelper.ts +107 -0
  538. package/typechain-types/StablePreviewBase.ts +217 -0
  539. package/typechain-types/SwapAggregator.ts +406 -0
  540. package/typechain-types/VotingControllerStorageUpg.ts +96 -0
  541. package/typechain-types/VotingEscrowPendleSidechain.ts +4 -5
  542. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +346 -68
  543. package/typechain-types/factories/ActionBaseCallback__factory.ts +156 -0
  544. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  545. package/typechain-types/factories/ActionInfoStatic__factory.ts +360 -0
  546. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +390 -0
  547. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1464 -0
  548. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +367 -0
  549. package/typechain-types/factories/ActionMintRedeem__factory.ts +108 -266
  550. package/typechain-types/factories/ActionMisc__factory.ts +56 -17
  551. package/typechain-types/factories/ActionStorageStatic__factory.ts +281 -0
  552. package/typechain-types/factories/ActionSwapPTYT__factory.ts +1 -1
  553. package/typechain-types/factories/ActionSwapPT__factory.ts +55 -71
  554. package/typechain-types/factories/ActionSwapYT__factory.ts +356 -48
  555. package/typechain-types/factories/ActionVePendleStatic__factory.ts +155 -0
  556. package/typechain-types/factories/AddressProvider__factory.ts +196 -0
  557. package/typechain-types/factories/AggregationRouterHelper__factory.ts +1 -1
  558. package/typechain-types/factories/Broadcaster__factory.ts +311 -0
  559. package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
  560. package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
  561. package/typechain-types/factories/BulkSeller__factory.ts +1 -1
  562. package/typechain-types/factories/ComposableStablePreview__factory.ts +190 -0
  563. package/typechain-types/factories/Errors__factory.ts +86 -1
  564. package/typechain-types/factories/GLPPreviewHelper__factory.ts +65 -0
  565. package/typechain-types/factories/GMXPreviewHelper__factory.ts +65 -0
  566. package/typechain-types/factories/I1inchAggregationRouterV5__factory.ts +179 -0
  567. package/typechain-types/factories/IAddressProvider__factory.ts +63 -0
  568. package/typechain-types/factories/IAggregationExecutor__factory.ts +84 -0
  569. package/typechain-types/factories/IBalancerFees__factory.ts +36 -0
  570. package/typechain-types/factories/IBalancerStablePreview__factory.ts +152 -0
  571. package/typechain-types/factories/IBasePool__factory.ts +340 -0
  572. package/typechain-types/factories/IComposableStable__factory.ts +482 -0
  573. package/typechain-types/factories/IDiamondCut__factory.ts +105 -0
  574. package/typechain-types/factories/IDiamondLoupe__factory.ts +99 -0
  575. package/typechain-types/factories/IERC4626__factory.ts +19 -0
  576. package/typechain-types/factories/IExecutorHelperEthereum1__factory.ts +407 -0
  577. package/typechain-types/factories/IGMXVault__factory.ts +320 -0
  578. package/typechain-types/factories/IGauge__factory.ts +70 -0
  579. package/typechain-types/factories/IGlpManager__factory.ts +81 -0
  580. package/typechain-types/factories/IHashflow__factory.ts +113 -0
  581. package/typechain-types/factories/IKyberSwapAggregationRouterHelper__factory.ts +56 -0
  582. package/typechain-types/factories/ILiquidityGaugeFactory__factory.ts +49 -0
  583. package/typechain-types/factories/IMetaAggregationRouterV2__factory.ts +234 -0
  584. package/typechain-types/factories/IMetaAggregationRouter__factory.ts +202 -0
  585. package/typechain-types/factories/IMetaStablePool__factory.ts +413 -0
  586. package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +338 -16
  587. package/typechain-types/factories/IPActionInfoStatic__factory.ts +322 -0
  588. package/typechain-types/factories/IPActionMarketAuxStatic__factory.ts +288 -0
  589. package/typechain-types/factories/IPActionMarketCoreStatic__factory.ts +1289 -0
  590. package/typechain-types/factories/IPActionMintRedeemStatic__factory.ts +292 -0
  591. package/typechain-types/factories/IPActionMintRedeem__factory.ts +105 -224
  592. package/typechain-types/factories/IPActionMisc__factory.ts +55 -11
  593. package/typechain-types/factories/IPActionStorageStatic__factory.ts +203 -0
  594. package/typechain-types/factories/IPActionSwapPT__factory.ts +52 -8
  595. package/typechain-types/factories/IPActionSwapYT__factory.ts +231 -8
  596. package/typechain-types/factories/IPActionVePendleStatic__factory.ts +59 -0
  597. package/typechain-types/factories/IPAllAction__factory.ts +675 -241
  598. package/typechain-types/factories/IPFeeDistributor__factory.ts +19 -0
  599. package/typechain-types/factories/IPInterestManagerYTV2__factory.ts +59 -0
  600. package/typechain-types/factories/IPMiniDiamond__factory.ts +67 -0
  601. package/typechain-types/factories/IPMsgReceiverApp__factory.ts +1 -1
  602. package/typechain-types/factories/IPRouterStatic__factory.ts +1952 -494
  603. package/typechain-types/factories/IPSwapAggregator__factory.ts +71 -0
  604. package/typechain-types/factories/IPVotingController__factory.ts +39 -0
  605. package/typechain-types/factories/IPYieldTokenV2__factory.ts +694 -0
  606. package/typechain-types/factories/IRateProvider__factory.ts +36 -0
  607. package/typechain-types/factories/IRewardRouterV2__factory.ts +216 -0
  608. package/typechain-types/factories/IRewards__factory.ts +18 -0
  609. package/typechain-types/factories/ISwapAggregator__factory.ts +66 -0
  610. package/typechain-types/factories/IVaultPriceFeed__factory.ts +60 -0
  611. package/typechain-types/factories/IVault__factory.ts +287 -0
  612. package/typechain-types/factories/InterestManagerYTV2__factory.ts +81 -0
  613. package/typechain-types/factories/MarketMathStatic__factory.ts +1 -27
  614. package/typechain-types/factories/MetaStableMath__factory.ts +93 -0
  615. package/typechain-types/factories/MetaStablePreview__factory.ts +375 -0
  616. package/typechain-types/factories/Multicall2__factory.ts +372 -0
  617. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  618. package/typechain-types/factories/PendleAura3EthSY__factory.ts +1326 -0
  619. package/typechain-types/factories/PendleAuraBalancerStableLPSY__factory.ts +1190 -0
  620. package/typechain-types/factories/PendleAuraCbethWstethSY__factory.ts +1317 -0
  621. package/typechain-types/factories/PendleAuraWethRethSY__factory.ts +1291 -0
  622. package/typechain-types/factories/PendleAuraWethWstethSY__factory.ts +1265 -0
  623. package/typechain-types/factories/PendleConvexLPSY__factory.ts +141 -0
  624. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +142 -1
  625. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +142 -1
  626. package/typechain-types/factories/PendleFeeDistributor__factory.ts +33 -1
  627. package/typechain-types/factories/PendleGDaiSY__factory.ts +1035 -0
  628. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  629. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +2 -2
  630. package/typechain-types/factories/PendleGlpSY__factory.ts +1249 -0
  631. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +142 -1
  632. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  633. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  634. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  635. package/typechain-types/factories/PendleMsgReceiverAppUpg__factory.ts +1 -1
  636. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  637. package/typechain-types/factories/PendleMulticall__factory.ts +100 -0
  638. package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +564 -0
  639. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  640. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  641. package/typechain-types/factories/PendleQiTokenSY__factory.ts +142 -1
  642. package/typechain-types/factories/PendleRouterStatic__factory.ts +88 -0
  643. package/typechain-types/factories/PendleRouter__factory.ts +75 -74
  644. package/typechain-types/factories/PendleSwapAggregator__factory.ts +129 -0
  645. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  646. package/typechain-types/factories/PendleWstEthSY__factory.ts +142 -1
  647. package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +674 -0
  648. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  649. package/typechain-types/factories/PendleYieldTokenV2__factory.ts +1109 -0
  650. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  651. package/typechain-types/factories/RouterStatic__factory.ts +4 -4
  652. package/typechain-types/factories/SAPE__factory.ts +142 -1
  653. package/typechain-types/factories/SYBaseWithRewards__factory.ts +141 -0
  654. package/typechain-types/factories/SYBase__factory.ts +141 -0
  655. package/typechain-types/factories/StEthHelper__factory.ts +62 -0
  656. package/typechain-types/factories/StablePreviewBase__factory.ts +148 -0
  657. package/typechain-types/factories/SwapAggregator__factory.ts +309 -0
  658. package/typechain-types/factories/VotingControllerStorageUpg__factory.ts +39 -0
  659. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  660. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +2 -2
  661. package/typechain-types/hardhat.d.ts +511 -52
  662. package/typechain-types/index.ts +116 -18
  663. package/build/artifacts/contracts/interfaces/IBoringOwnableUpgradeable.sol/IBoringOwnableUpgradeable.dbg.json +0 -4
  664. package/build/artifacts/contracts/interfaces/IBoringOwnableUpgradeable.sol/IBoringOwnableUpgradeable.json +0 -34
  665. package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +0 -4
  666. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +0 -4
  667. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +0 -285
  668. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +0 -4
  669. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +0 -4
  670. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.json +0 -165
  671. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +0 -4
  672. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +0 -343
  673. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +0 -4
  674. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +0 -224
  675. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.dbg.json +0 -4
  676. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.json +0 -35
  677. package/build/artifacts/contracts/router/kyberswap/IMultihopRouterEthereum.sol/IMultihopRouterEthereum.dbg.json +0 -4
  678. package/build/artifacts/contracts/router/kyberswap/IMultihopRouterEthereum.sol/IMultihopRouterEthereum.json +0 -136
  679. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +0 -4
  680. package/contracts/interfaces/IBoringOwnableUpgradeable.sol +0 -10
  681. package/contracts/interfaces/IPActionSwapPTYT.sol +0 -31
  682. package/contracts/router/ActionSwapPTYT.sol +0 -108
  683. package/contracts/router/kyberswap/AggregationRouterHelper.sol +0 -331
  684. package/contracts/router/kyberswap/IAggregatorRouterHelper.sol +0 -10
  685. package/contracts/router/kyberswap/IMultihopRouterEthereum.sol +0 -141
  686. package/contracts/router/kyberswap/KyberSwapHelper.sol +0 -79
  687. package/deployments/1-core.json +0 -30
  688. package/deployments/1-markets/APE-JUNE-29.json +0 -8
  689. package/deployments/1-markets/FRAXUSDC-CURVELP-MARCH30.json +0 -11
  690. package/deployments/1-markets/LOOKS-STAKING-MARCH30.json +0 -10
  691. package/deployments/1-markets/STETH-JUNE29.json +0 -10
  692. package/deployments/1-markets/STETH-MARCH30.json +0 -10
@@ -0,0 +1,166 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "../../../interfaces/IPRouterStatic.sol";
5
+ import "../../../interfaces/IPBulkSeller.sol";
6
+ import "../../../interfaces/IPBulkSellerFactory.sol";
7
+ import "../StorageLayout.sol";
8
+
9
+ contract ActionMintRedeemStatic is StorageLayout, IPActionMintRedeemStatic {
10
+ using Math for uint256;
11
+ using BulkSellerMathCore for BulkSellerState;
12
+
13
+ function mintPyFromSyStatic(address YT, uint256 netSyToMint)
14
+ public
15
+ returns (uint256 netPYOut)
16
+ {
17
+ if (IPYieldToken(YT).isExpired()) revert Errors.YCExpired();
18
+ return netSyToMint.mulDown(IPYieldToken(YT).pyIndexCurrent());
19
+ }
20
+
21
+ function redeemPyToSyStatic(address YT, uint256 netPYToRedeem)
22
+ public
23
+ returns (uint256 netSyOut)
24
+ {
25
+ return netPYToRedeem.divDown(IPYieldToken(YT).pyIndexCurrent());
26
+ }
27
+
28
+ function mintPyFromTokenStatic(
29
+ address YT,
30
+ address tokenIn,
31
+ uint256 netTokenIn,
32
+ address bulk
33
+ ) external returns (uint256 netPyOut) {
34
+ address SY = IPYieldToken(YT).SY();
35
+ uint256 netSyReceived = mintSyFromTokenStatic(SY, tokenIn, netTokenIn, bulk);
36
+ netPyOut = mintPyFromSyStatic(YT, netSyReceived);
37
+ }
38
+
39
+ function redeemPyToTokenStatic(
40
+ address YT,
41
+ uint256 netPYToRedeem,
42
+ address tokenOut,
43
+ address bulk
44
+ ) external returns (uint256 netTokenOut) {
45
+ address SY = IPYieldToken(YT).SY();
46
+ uint256 netSyReceived = redeemPyToSyStatic(YT, netPYToRedeem);
47
+ netTokenOut = redeemSyToTokenStatic(SY, tokenOut, netSyReceived, bulk);
48
+ }
49
+
50
+ function mintSyFromTokenStatic(
51
+ address SY,
52
+ address tokenIn,
53
+ uint256 netTokenIn,
54
+ address bulk
55
+ ) public view returns (uint256 netSyOut) {
56
+ if (bulk != address(0)) {
57
+ BulkSellerState memory state = _readBulkSellerState(bulk);
58
+ return state.calcSwapExactTokenForSy(netTokenIn);
59
+ } else {
60
+ return IStandardizedYield(SY).previewDeposit(tokenIn, netTokenIn);
61
+ }
62
+ }
63
+
64
+ function redeemSyToTokenStatic(
65
+ address SY,
66
+ address tokenOut,
67
+ uint256 netSyIn,
68
+ address bulk
69
+ ) public view returns (uint256 netTokenOut) {
70
+ if (bulk != address(0)) {
71
+ BulkSellerState memory state = _readBulkSellerState(bulk);
72
+ return state.calcSwapExactSyForToken(netSyIn);
73
+ } else {
74
+ return IStandardizedYield(SY).previewRedeem(tokenOut, netSyIn);
75
+ }
76
+ }
77
+
78
+ function getAmountTokenToMintSy(
79
+ address SY,
80
+ address tokenIn,
81
+ address bulk,
82
+ uint256 netSyOut
83
+ ) public view returns (uint256 netTokenIn) {
84
+ uint256 pivotAmount;
85
+
86
+ if (tokenIn == address(0)) pivotAmount = 1e18;
87
+ else pivotAmount = 10**IStandardizedYield(SY).decimals();
88
+
89
+ uint256 low = pivotAmount;
90
+ {
91
+ while (true) {
92
+ uint256 lowSyOut = mintSyFromTokenStatic(SY, tokenIn, low, bulk);
93
+ if (lowSyOut >= netSyOut) low /= 10;
94
+ else break;
95
+ }
96
+ }
97
+
98
+ uint256 high = pivotAmount;
99
+ {
100
+ while (true) {
101
+ uint256 highSyOut = mintSyFromTokenStatic(SY, tokenIn, high, bulk);
102
+ if (highSyOut < netSyOut) high *= 10;
103
+ else break;
104
+ }
105
+ }
106
+
107
+ while (low <= high) {
108
+ uint256 mid = (low + high) / 2;
109
+ uint256 syOut = mintSyFromTokenStatic(SY, tokenIn, mid, bulk);
110
+
111
+ if (syOut >= netSyOut) {
112
+ netTokenIn = mid;
113
+ high = mid - 1;
114
+ } else {
115
+ low = mid + 1;
116
+ }
117
+ }
118
+
119
+ assert(netTokenIn > 0);
120
+ }
121
+
122
+ function getBulkSellerInfo(
123
+ address token,
124
+ address SY,
125
+ uint256 netTokenIn,
126
+ uint256 netSyIn
127
+ )
128
+ public
129
+ view
130
+ returns (
131
+ address bulk,
132
+ uint256 totalToken,
133
+ uint256 totalSy
134
+ )
135
+ {
136
+ if (address(bulkSellerFactory) == address(0)) return (address(0), 0, 0);
137
+
138
+ bulk = bulkSellerFactory.get(token, SY);
139
+ if (bulk == address(0)) return (address(0), 0, 0);
140
+
141
+ BulkSellerState memory state = _readBulkSellerState(bulk);
142
+
143
+ // Paused check
144
+ if (state.rateTokenToSy == 0 || state.rateSyToToken == 0) {
145
+ return (address(0), 0, 0);
146
+ }
147
+
148
+ // Liquidity check
149
+ uint256 postFeeRateTokenToSy = state.rateTokenToSy.mulDown(Math.ONE - state.feeRate);
150
+ uint256 postFeeRateSyToToken = state.rateSyToToken.mulDown(Math.ONE - state.feeRate);
151
+ if (
152
+ netTokenIn.mulDown(postFeeRateTokenToSy) > state.totalSy ||
153
+ netSyIn.mulDown(postFeeRateSyToToken) > state.totalToken
154
+ ) {
155
+ return (address(0), 0, 0);
156
+ }
157
+
158
+ // return...
159
+ totalToken = state.totalToken;
160
+ totalSy = state.totalSy;
161
+ }
162
+
163
+ function _readBulkSellerState(address bulk) internal view returns (BulkSellerState memory) {
164
+ return IPBulkSeller(bulk).readState();
165
+ }
166
+ }
@@ -0,0 +1,75 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "../StorageLayout.sol";
5
+ import "../../../interfaces/IPActionStorageStatic.sol";
6
+ import "../../../interfaces/IPMiniDiamond.sol";
7
+
8
+ contract ActionStorageStatic is StorageLayout, IPActionStorageStatic, IPMiniDiamond {
9
+ function setDefaultApproxParams(ApproxParams memory params) public onlyOwner {
10
+ defaultApproxParams = params;
11
+ }
12
+
13
+ function setBulkSellerFactory(address _bulkSellerFactory) external onlyOwner {
14
+ bulkSellerFactory = IPBulkSellerFactory(_bulkSellerFactory);
15
+ }
16
+
17
+ function getDefaultApproxParams() public view returns (ApproxParams memory) {
18
+ return defaultApproxParams;
19
+ }
20
+
21
+ function getBulkSellerFactory() external view returns (address) {
22
+ return address(bulkSellerFactory);
23
+ }
24
+
25
+ function getOwnerAndPendingOwner() external view returns (address, address) {
26
+ return (owner, pendingOwner);
27
+ }
28
+
29
+ function setFacetForSelectors(SelectorsToFacet[] calldata arr) external onlyOwner {
30
+ for (uint256 i = 0; i < arr.length; ) {
31
+ SelectorsToFacet memory s = arr[i];
32
+ for (uint256 j = 0; j < s.selectors.length; ) {
33
+ selectorToFacet[s.selectors[j]] = s.facet;
34
+ unchecked {
35
+ j++;
36
+ }
37
+ }
38
+ unchecked {
39
+ i++;
40
+ }
41
+ }
42
+ }
43
+
44
+ function facetAddress(bytes4 selector) public view returns (address res) {
45
+ res = selectorToFacet[selector];
46
+ require(res != address(0), "selector not found");
47
+ }
48
+
49
+ // Ownable
50
+ function transferOwnership(
51
+ address newOwner,
52
+ bool direct,
53
+ bool renounce
54
+ ) public onlyOwner {
55
+ if (direct) {
56
+ require(newOwner != address(0) || renounce, "Ownable: zero address");
57
+
58
+ emit OwnershipTransferred(owner, newOwner);
59
+ owner = newOwner;
60
+ pendingOwner = address(0);
61
+ } else {
62
+ pendingOwner = newOwner;
63
+ }
64
+ }
65
+
66
+ function claimOwnership() public {
67
+ address _pendingOwner = pendingOwner;
68
+
69
+ require(msg.sender == _pendingOwner, "Ownable: caller != pending owner");
70
+
71
+ emit OwnershipTransferred(owner, _pendingOwner);
72
+ owner = _pendingOwner;
73
+ pendingOwner = address(0);
74
+ }
75
+ }
@@ -0,0 +1,55 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "../../../core/libraries/MiniHelpers.sol";
5
+ import "../../../interfaces/IPRouterStatic.sol";
6
+ import "../../../interfaces/IPVotingEscrowMainchain.sol";
7
+ import "../../../LiquidityMining/libraries/VeBalanceLib.sol";
8
+
9
+ contract ActionVePendleStatic is IPActionVePendleStatic {
10
+ using VeBalanceLib for VeBalance;
11
+ using VeBalanceLib for LockedPosition;
12
+
13
+ uint128 private constant MAX_LOCK_TIME = 104 weeks;
14
+ uint128 private constant MIN_LOCK_TIME = 1 weeks;
15
+
16
+ IPVotingEscrowMainchain private immutable vePENDLE;
17
+
18
+ constructor(IPVotingEscrowMainchain _vePENDLE) {
19
+ vePENDLE = _vePENDLE;
20
+ }
21
+
22
+ function increaseLockPositionStatic(
23
+ address user,
24
+ uint128 additionalAmountToLock,
25
+ uint128 newExpiry
26
+ ) external view returns (uint128 newVeBalance) {
27
+ if (!WeekMath.isValidWTime(newExpiry)) revert Errors.InvalidWTime(newExpiry);
28
+ if (MiniHelpers.isTimeInThePast(newExpiry)) revert Errors.ExpiryInThePast(newExpiry);
29
+
30
+ if (newExpiry > block.timestamp + MAX_LOCK_TIME) revert Errors.VEExceededMaxLockTime();
31
+ if (newExpiry < block.timestamp + MIN_LOCK_TIME) revert Errors.VEInsufficientLockTime();
32
+
33
+ LockedPosition memory oldPosition;
34
+
35
+ {
36
+ (uint128 amount, uint128 expiry) = vePENDLE.positionData(user);
37
+ oldPosition = LockedPosition(amount, expiry);
38
+ }
39
+
40
+ if (newExpiry < oldPosition.expiry) revert Errors.VENotAllowedReduceExpiry();
41
+
42
+ uint128 newTotalAmountLocked = additionalAmountToLock + oldPosition.amount;
43
+ if (newTotalAmountLocked == 0) revert Errors.VEZeroAmountLocked();
44
+
45
+ uint128 additionalDurationToLock = newExpiry - oldPosition.expiry;
46
+
47
+ LockedPosition memory newPosition = LockedPosition(
48
+ oldPosition.amount + additionalAmountToLock,
49
+ oldPosition.expiry + additionalDurationToLock
50
+ );
51
+
52
+ VeBalance memory newBalance = newPosition.convertToVeBalance();
53
+ return newBalance.getCurrentValue();
54
+ }
55
+ }
@@ -21,13 +21,9 @@ contract ActionAddRemoveLiq is IPActionAddRemoveLiq, ActionBaseMintRedeem {
21
21
  using MarketApproxPtInLib for MarketState;
22
22
  using MarketApproxPtOutLib for MarketState;
23
23
  using PYIndexLib for IPYieldToken;
24
+ using PYIndexLib for PYIndex;
24
25
  using BulkSellerMathCore for BulkSellerState;
25
26
 
26
- /// @dev since this contract will be proxied, it must not contains non-immutable variables
27
- constructor(address _kyberScalingLib)
28
- ActionBaseMintRedeem(_kyberScalingLib) //solhint-disable-next-line no-empty-blocks
29
- {}
30
-
31
27
  /**
32
28
  * @notice Adds liquidity to the SY/PT market, granting LP tokens in return
33
29
  * @dev Will mint as much LP as possible given no more than `netSyDesired` and `netPtDesired`,
@@ -258,6 +254,78 @@ contract ActionAddRemoveLiq is IPActionAddRemoveLiq, ActionBaseMintRedeem {
258
254
  );
259
255
  }
260
256
 
257
+ /**
258
+ * @notice Mints partial SY to PT+YT, returns YT to user, then uses PT+SY to add liquidity
259
+ * @param netSyIn amount of SY to be transferred in from caller
260
+ * @return netLpOut actual LP output, will not be lower than `minLpOut`
261
+ * @return netYtOut actual YT output, will not be lower than `minYtOut`
262
+ * @dev Reverts if market is expired
263
+ */
264
+ function addLiquiditySingleSyKeepYt(
265
+ address receiver,
266
+ address market,
267
+ uint256 netSyIn,
268
+ uint256 minLpOut,
269
+ uint256 minYtOut
270
+ ) external returns (uint256 netLpOut, uint256 netYtOut) {
271
+ (IStandardizedYield SY, , IPYieldToken YT) = IPMarket(market).readTokens();
272
+
273
+ _transferIn(address(SY), msg.sender, netSyIn);
274
+
275
+ (netLpOut, netYtOut) = _addLiquiditySingleSyKeepYt(
276
+ receiver,
277
+ market,
278
+ SY,
279
+ YT,
280
+ netSyIn,
281
+ minLpOut,
282
+ minYtOut
283
+ );
284
+
285
+ emit AddLiquiditySingleSyKeepYt(msg.sender, market, receiver, netSyIn, netLpOut, netYtOut);
286
+ }
287
+
288
+ /**
289
+ * @notice Adds liquidity and returns leftover YT using a single token input. The input token
290
+ * is first swapped through Kyberswap to a SY-mintable token, the rest is the same as
291
+ * `addLiquiditySingleSyKeepYt()`
292
+ * @param input data for input token, see {`./kyberswap/KyberSwapHelper.sol`}
293
+ * @return netLpOut actual LP output, will not be lower than `minLpOut`
294
+ * @return netYtOut actual YT output, will not be lower than `minYtOut`
295
+ * @dev Reverts if market is expired
296
+ */
297
+ function addLiquiditySingleTokenKeepYt(
298
+ address receiver,
299
+ address market,
300
+ uint256 minLpOut,
301
+ uint256 minYtOut,
302
+ TokenInput calldata input
303
+ ) external returns (uint256 netLpOut, uint256 netYtOut) {
304
+ (IStandardizedYield SY, , IPYieldToken YT) = IPMarket(market).readTokens();
305
+
306
+ uint256 netSyUsed = _mintSyFromToken(address(this), address(SY), 1, input);
307
+
308
+ (netLpOut, netYtOut) = _addLiquiditySingleSyKeepYt(
309
+ receiver,
310
+ market,
311
+ SY,
312
+ YT,
313
+ netSyUsed,
314
+ minLpOut,
315
+ minYtOut
316
+ );
317
+
318
+ emit AddLiquiditySingleTokenKeepYt(
319
+ msg.sender,
320
+ market,
321
+ input.tokenIn,
322
+ receiver,
323
+ input.netTokenIn,
324
+ netLpOut,
325
+ netYtOut
326
+ );
327
+ }
328
+
261
329
  /**
262
330
  * @notice Burns LP token to remove SY/PT liquidity
263
331
  * @param netLpToRemove amount of LP to be burned from caller
@@ -473,6 +541,48 @@ contract ActionAddRemoveLiq is IPActionAddRemoveLiq, ActionBaseMintRedeem {
473
541
  if (netLpOut < minLpOut) revert Errors.RouterInsufficientLpOut(netLpOut, minLpOut);
474
542
  }
475
543
 
544
+ /**
545
+ * @dev algorithm:
546
+ - Split SY into a SY and b SY (with a + b = netSyIn)
547
+ - Mint PY with a SY ---> gives (a * pyIndex / ONE) PT + YT
548
+ - Mint LP with (a * pyIndex / ONE) PT and b SY
549
+
550
+ -> We want (a * pyIndex / ONE) / totalPt = b / totalSy
551
+ -> a * (1 + pyIndex * totalSy / ONE / totalPt) = netSyIn
552
+ -> a = (netSyIn * totalPt) / (totalPt + (pyIndex * totalSy / ONE))
553
+ -> a = (netSyIn * totalPt) / (totalPt + totalAsset)
554
+ */
555
+ function _addLiquiditySingleSyKeepYt(
556
+ address receiver,
557
+ address market,
558
+ IStandardizedYield SY,
559
+ IPYieldToken YT,
560
+ uint256 netSyIn,
561
+ uint256 minLpOut,
562
+ uint256 minYtOut
563
+ ) internal returns (uint256 netLpOut, uint256 netYtOut) {
564
+ MarketState memory state = IPMarket(market).readState(address(this));
565
+
566
+ PYIndex pyIndex = YT.newIndex();
567
+
568
+ uint256 netSyToPt = (netSyIn * state.totalPt.Uint()) /
569
+ (state.totalPt.Uint() + pyIndex.syToAsset(state.totalSy.Uint()));
570
+
571
+ // transfer SY to mint PY
572
+ _transferOut(address(SY), address(YT), netSyToPt);
573
+
574
+ // the rest of SY goes to market
575
+ _transferOut(address(SY), market, netSyIn - netSyToPt);
576
+
577
+ // PT goes to market, YT goes to receiver
578
+ netYtOut = YT.mintPY(market, receiver);
579
+
580
+ (netLpOut, , ) = IPMarket(market).mint(receiver, netSyIn - netSyToPt, netYtOut);
581
+
582
+ if (netLpOut < minLpOut) revert Errors.RouterInsufficientLpOut(netLpOut, minLpOut);
583
+ if (netYtOut < minYtOut) revert Errors.RouterInsufficientYtOut(netYtOut, minYtOut);
584
+ }
585
+
476
586
  /// @dev removes SY/PT liquidity, then converts PT to SY
477
587
  function _removeLiquiditySingleSy(
478
588
  address receiver,
@@ -497,7 +607,7 @@ contract ActionAddRemoveLiq is IPActionAddRemoveLiq, ActionBaseMintRedeem {
497
607
  ) internal returns (uint256 netSyOut) {
498
608
  (, , IPYieldToken YT) = IPMarket(market).readTokens();
499
609
  (uint256 syFromBurn, ) = IPMarket(market).burn(receiver, address(YT), netLpToRemove);
500
- netSyOut = syFromBurn + IPYieldToken(YT).redeemPY(receiver);
610
+ netSyOut = syFromBurn + YT.redeemPY(receiver);
501
611
  }
502
612
 
503
613
  /// @dev swaps PT to SY pre-expiry
@@ -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
  }