@pendle/core-v2 0.20.0-testnet → 0.20.2-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 (311) hide show
  1. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
  2. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.json +2 -2
  3. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
  4. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +2 -2
  6. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  7. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.json +2 -2
  9. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  11. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  12. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  13. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  14. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  15. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
  16. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  18. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  19. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  20. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  21. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  22. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
  23. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  24. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  25. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  26. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  27. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  28. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  29. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  30. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +2 -2
  32. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +2 -2
  34. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +2 -2
  36. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  38. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  40. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  43. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  45. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +2 -2
  52. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol/PendleAura3EthSY.dbg.json +1 -1
  53. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol/PendleAura3EthSY.json +2 -2
  54. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol/PendleAuraCbethWstethSY.dbg.json +1 -1
  55. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol/PendleAuraCbethWstethSY.json +2 -2
  56. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.dbg.json +1 -1
  57. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.json +2 -2
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.dbg.json +1 -1
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.json +2 -2
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.dbg.json +1 -1
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol/FixedPoint.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.dbg.json +1 -1
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.dbg.json +1 -1
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol/PendleAuraBalancerStableLPSY.dbg.json +1 -1
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.dbg.json +1 -1
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.dbg.json +1 -1
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +2 -2
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +2 -2
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  77. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  78. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
  79. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  80. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  81. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  82. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  83. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  84. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  85. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  86. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  87. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  88. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  89. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +39 -2
  90. package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.dbg.json +1 -1
  91. package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.dbg.json +1 -1
  92. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +1 -1
  93. package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.dbg.json +1 -1
  94. package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.dbg.json +1 -1
  95. package/build/artifacts/contracts/interfaces/Balancer/IGauge.sol/IGauge.dbg.json +1 -1
  96. package/build/artifacts/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol/ILiquidityGaugeFactory.dbg.json +1 -1
  97. package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.dbg.json +1 -1
  98. package/build/artifacts/contracts/interfaces/Balancer/IRateProvider.sol/IRateProvider.dbg.json +1 -1
  99. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +1 -1
  100. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
  101. package/build/artifacts/contracts/interfaces/IApeStaking.sol/IApeStaking.dbg.json +1 -1
  102. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  103. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json +80 -32
  104. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  105. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json +100 -40
  106. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  107. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.json +40 -16
  108. package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +1 -1
  109. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.json +40 -16
  111. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  112. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +260 -104
  113. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  114. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
  115. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  116. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  117. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  118. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  119. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
  120. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
  121. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +2 -2
  122. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +1 -1
  123. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  124. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +2 -2
  125. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  126. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +96 -53
  127. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +1 -1
  128. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.json +2 -2
  129. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  130. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +116 -61
  131. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  132. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +2 -2
  133. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  134. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +44 -25
  135. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +1 -1
  136. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +2 -2
  137. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  138. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +44 -25
  139. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  140. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
  141. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  142. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json +1 -1
  143. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  144. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  145. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  146. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  147. package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.dbg.json +4 -0
  148. package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.json +160 -0
  149. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +4 -0
  150. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.json +10 -0
  151. package/build/artifacts/contracts/router/swap-aggregator/ISwapAggregator.sol/ISwapAggregator.dbg.json +4 -0
  152. package/build/artifacts/contracts/router/swap-aggregator/ISwapAggregator.sol/ISwapAggregator.json +51 -0
  153. package/build/artifacts/contracts/router/swap-aggregator/SwapAggregator.sol/SwapAggregator.dbg.json +4 -0
  154. package/build/artifacts/contracts/router/swap-aggregator/SwapAggregator.sol/SwapAggregator.json +256 -0
  155. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.dbg.json +4 -0
  156. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.json +10 -0
  157. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.dbg.json +4 -0
  158. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.json +10 -0
  159. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +4 -0
  160. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.json +65 -0
  161. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +4 -0
  162. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.json +359 -0
  163. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IHashflow.sol/IHashflow.dbg.json +4 -0
  164. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IHashflow.sol/IHashflow.json +101 -0
  165. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouter.sol/IMetaAggregationRouter.dbg.json +4 -0
  166. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouter.sol/IMetaAggregationRouter.json +183 -0
  167. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +4 -0
  168. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json +215 -0
  169. package/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol +7 -9
  170. package/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol +10 -0
  171. package/contracts/core/StandardizedYield/SYBase.sol +23 -5
  172. package/contracts/core/StandardizedYield/StEthHelper.sol +71 -0
  173. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol +170 -0
  174. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol +162 -0
  175. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol +134 -0
  176. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol +154 -0
  177. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol +289 -0
  178. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol +618 -0
  179. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol +68 -0
  180. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol +322 -0
  181. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol +390 -0
  182. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol +329 -0
  183. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol +30 -0
  184. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol +189 -0
  185. package/contracts/core/libraries/ArrayLib.sol +6 -3
  186. package/contracts/core/libraries/Errors.sol +8 -0
  187. package/contracts/interfaces/Balancer/IAsset.sol +4 -0
  188. package/contracts/interfaces/Balancer/IBalancerFees.sol +6 -0
  189. package/contracts/interfaces/Balancer/IBalancerStablePreview.sol +22 -0
  190. package/contracts/interfaces/Balancer/IBasePool.sol +30 -0
  191. package/contracts/interfaces/Balancer/IComposableStable.sol +39 -0
  192. package/contracts/interfaces/Balancer/IGauge.sol +10 -0
  193. package/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol +6 -0
  194. package/contracts/interfaces/Balancer/IMetaStablePool.sol +31 -0
  195. package/contracts/interfaces/Balancer/IRateProvider.sol +6 -0
  196. package/contracts/interfaces/Balancer/IVault.sol +78 -0
  197. package/contracts/interfaces/ConvexCurve/IRewards.sol +5 -0
  198. package/contracts/interfaces/IPActionAddRemoveLiq.sol +1 -1
  199. package/contracts/interfaces/IPActionMintRedeem.sol +2 -3
  200. package/contracts/interfaces/IPActionSwapPT.sol +1 -1
  201. package/contracts/interfaces/IPActionSwapPTYT.sol +1 -1
  202. package/contracts/interfaces/IPActionSwapYT.sol +1 -1
  203. package/contracts/interfaces/IPFeeDistributor.sol +2 -0
  204. package/contracts/offchain-helpers/Multicall2.sol +103 -0
  205. package/contracts/router/ActionAddRemoveLiq.sol +2 -2
  206. package/contracts/router/ActionMintRedeem.sol +7 -9
  207. package/contracts/router/ActionSwapPT.sol +2 -2
  208. package/contracts/router/ActionSwapYT.sol +2 -2
  209. package/contracts/router/base/ActionBaseMintRedeem.sol +51 -14
  210. package/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol +45 -0
  211. package/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol +71 -0
  212. package/contracts/router/swap-aggregator/ISwapAggregator.sol +21 -0
  213. package/contracts/router/swap-aggregator/SwapAggregator.sol +62 -0
  214. package/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol +302 -0
  215. package/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol +134 -0
  216. package/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol +17 -0
  217. package/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperEthereum1.sol +185 -0
  218. package/contracts/router/swap-aggregator/kyberswap/interfaces/IHashflow.sol +30 -0
  219. package/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouter.sol +33 -0
  220. package/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol +42 -0
  221. package/deployments/43113-core.json +1 -1
  222. package/deployments/80001-core.json +1 -1
  223. package/package.json +6 -6
  224. package/typechain-types/ActionAddRemoveLiq.ts +41 -35
  225. package/typechain-types/ActionBaseMintRedeem.ts +8 -8
  226. package/typechain-types/ActionMintRedeem.ts +45 -42
  227. package/typechain-types/ActionSwapPT.ts +28 -22
  228. package/typechain-types/ActionSwapYT.ts +28 -22
  229. package/typechain-types/I1inchAggregationRouterV5.ts +257 -0
  230. package/typechain-types/IAggregationExecutor.ts +182 -0
  231. package/typechain-types/IExecutorHelperEthereum1.ts +599 -0
  232. package/typechain-types/IHashflow.ts +159 -0
  233. package/typechain-types/IKyberSwapAggregationRouterHelper.ts +109 -0
  234. package/typechain-types/IMetaAggregationRouter.ts +213 -0
  235. package/typechain-types/IMetaAggregationRouterV2.ts +221 -0
  236. package/typechain-types/IPActionAddRemoveLiq.ts +22 -16
  237. package/typechain-types/IPActionMintRedeem.ts +26 -23
  238. package/typechain-types/IPActionSwapPT.ts +20 -14
  239. package/typechain-types/IPActionSwapYT.ts +20 -14
  240. package/typechain-types/IPAllAction.ts +34 -31
  241. package/typechain-types/ISwapAggregator.ts +124 -0
  242. package/typechain-types/SwapAggregator.ts +406 -0
  243. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +99 -56
  244. package/typechain-types/factories/ActionBaseMintRedeem__factory.ts +1 -1
  245. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  246. package/typechain-types/factories/ActionMintRedeem__factory.ts +119 -64
  247. package/typechain-types/factories/ActionMisc__factory.ts +1 -1
  248. package/typechain-types/factories/ActionSwapPTYT__factory.ts +1 -1
  249. package/typechain-types/factories/ActionSwapPT__factory.ts +47 -28
  250. package/typechain-types/factories/ActionSwapYT__factory.ts +47 -28
  251. package/typechain-types/factories/AggregationRouterHelper__factory.ts +1 -1
  252. package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
  253. package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
  254. package/typechain-types/factories/BulkSeller__factory.ts +1 -1
  255. package/typechain-types/factories/Errors__factory.ts +38 -1
  256. package/typechain-types/factories/I1inchAggregationRouterV5__factory.ts +179 -0
  257. package/typechain-types/factories/IAggregationExecutor__factory.ts +84 -0
  258. package/typechain-types/factories/IExecutorHelperEthereum1__factory.ts +378 -0
  259. package/typechain-types/factories/IHashflow__factory.ts +113 -0
  260. package/typechain-types/factories/IKyberSwapAggregationRouterHelper__factory.ts +56 -0
  261. package/typechain-types/factories/IMetaAggregationRouterV2__factory.ts +234 -0
  262. package/typechain-types/factories/IMetaAggregationRouter__factory.ts +202 -0
  263. package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +80 -32
  264. package/typechain-types/factories/IPActionMintRedeem__factory.ts +100 -40
  265. package/typechain-types/factories/IPActionSwapPT__factory.ts +40 -16
  266. package/typechain-types/factories/IPActionSwapYT__factory.ts +40 -16
  267. package/typechain-types/factories/IPAllAction__factory.ts +260 -104
  268. package/typechain-types/factories/ISwapAggregator__factory.ts +66 -0
  269. package/typechain-types/factories/MarketMathStatic__factory.ts +1 -1
  270. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  271. package/typechain-types/factories/PendleAura3EthSY__factory.ts +1 -1
  272. package/typechain-types/factories/PendleAuraCbethWstethSY__factory.ts +1 -1
  273. package/typechain-types/factories/PendleAuraWethRethSY__factory.ts +1 -1
  274. package/typechain-types/factories/PendleAuraWethWstethSY__factory.ts +1 -1
  275. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
  276. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
  277. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  278. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  279. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  280. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
  281. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  282. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  283. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  284. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  285. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  286. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  287. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  288. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  289. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  290. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  291. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  292. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  293. package/typechain-types/factories/RouterStatic__factory.ts +1 -1
  294. package/typechain-types/factories/SAPE__factory.ts +1 -1
  295. package/typechain-types/factories/SwapAggregator__factory.ts +309 -0
  296. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  297. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  298. package/typechain-types/hardhat.d.ts +56 -20
  299. package/typechain-types/index.ts +16 -8
  300. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +0 -4
  301. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +0 -224
  302. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.dbg.json +0 -4
  303. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.json +0 -35
  304. package/build/artifacts/contracts/router/kyberswap/IMultihopRouterEthereum.sol/IMultihopRouterEthereum.dbg.json +0 -4
  305. package/build/artifacts/contracts/router/kyberswap/IMultihopRouterEthereum.sol/IMultihopRouterEthereum.json +0 -136
  306. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +0 -4
  307. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.json +0 -24
  308. package/contracts/router/kyberswap/AggregationRouterHelper.sol +0 -331
  309. package/contracts/router/kyberswap/IAggregatorRouterHelper.sol +0 -10
  310. package/contracts/router/kyberswap/IMultihopRouterEthereum.sol +0 -141
  311. package/contracts/router/kyberswap/KyberSwapHelper.sol +0 -79
@@ -0,0 +1,162 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "./base/PendleAuraBalancerStableLPSY.sol";
5
+ import "../../StEthHelper.sol";
6
+ import "./base/ComposableStable/ComposableStablePreview.sol";
7
+
8
+ contract PendleAuraCbethWstethSY is PendleAuraBalancerStableLPSY, StEthHelper {
9
+ address public constant CBETH = 0xBe9895146f7AF43049ca1c1AE358B0541Ea49704;
10
+
11
+ uint256 internal constant AURA_PID = 37;
12
+ address internal constant LP = 0x4EdcB2B46377530Bc18BB4D2c7Fe46a992c73e10;
13
+
14
+ uint256 public constant BPT_INDEX = 0;
15
+ bool public constant NO_TOKENS_EXEMPT = true;
16
+ bool public constant ALL_TOKENS_EXEMPT = false;
17
+
18
+ constructor(
19
+ string memory _name,
20
+ string memory _symbol,
21
+ ComposableStablePreview _previewHelper
22
+ ) PendleAuraBalancerStableLPSY(_name, _symbol, LP, AURA_PID, _previewHelper) {}
23
+
24
+ function _deposit(address tokenIn, uint256 amount)
25
+ internal
26
+ virtual
27
+ override
28
+ returns (uint256 amountSharesOut)
29
+ {
30
+ if (tokenIn == NATIVE || tokenIn == WETH || tokenIn == STETH) {
31
+ uint256 amountWstETH = _depositWstETH(tokenIn, amount);
32
+ amountSharesOut = super._deposit(WSTETH, amountWstETH);
33
+ } else {
34
+ amountSharesOut = super._deposit(tokenIn, amount);
35
+ }
36
+ }
37
+
38
+ function _redeem(
39
+ address receiver,
40
+ address tokenOut,
41
+ uint256 amountSharesToRedeem
42
+ ) internal virtual override returns (uint256 amountTokenOut) {
43
+ if (tokenOut == STETH) {
44
+ uint256 amountWstETH = super._redeem(address(this), WSTETH, amountSharesToRedeem);
45
+ amountTokenOut = _redeemWstETH(receiver, amountWstETH);
46
+ } else {
47
+ amountTokenOut = super._redeem(receiver, tokenOut, amountSharesToRedeem);
48
+ }
49
+ }
50
+
51
+ function _previewDeposit(address tokenIn, uint256 amountTokenToDeposit)
52
+ internal
53
+ view
54
+ virtual
55
+ override
56
+ returns (uint256 amountSharesOut)
57
+ {
58
+ if (tokenIn == NATIVE || tokenIn == WETH || tokenIn == STETH) {
59
+ uint256 amountWstETH = _previewDepositWstETH(tokenIn, amountTokenToDeposit);
60
+ amountSharesOut = super._previewDeposit(WSTETH, amountWstETH);
61
+ } else {
62
+ amountSharesOut = super._previewDeposit(tokenIn, amountTokenToDeposit);
63
+ }
64
+ }
65
+
66
+ function _previewRedeem(address tokenOut, uint256 amountSharesToRedeem)
67
+ internal
68
+ view
69
+ virtual
70
+ override
71
+ returns (uint256 amountTokenOut)
72
+ {
73
+ if (tokenOut == STETH) {
74
+ uint256 amountWstETH = super._previewRedeem(WSTETH, amountSharesToRedeem);
75
+ amountTokenOut = _previewRedeemWstETH(amountWstETH);
76
+ } else {
77
+ amountTokenOut = super._previewRedeem(tokenOut, amountSharesToRedeem);
78
+ }
79
+ }
80
+
81
+ function _getImmutablePoolData() internal view virtual override returns (bytes memory ret) {
82
+ ComposableStablePreview.ImmutableData memory res;
83
+ res.poolTokens = _getPoolTokenAddresses();
84
+ res.rateProviders = _getRateProviders();
85
+ res.rawScalingFactors = _getRawScalingFactors();
86
+ res.isExemptFromYieldProtocolFee = _getExemption();
87
+ res.LP = LP;
88
+ res.noTokensExempt = NO_TOKENS_EXEMPT;
89
+ res.allTokensExempt = ALL_TOKENS_EXEMPT;
90
+ res.bptIndex = BPT_INDEX;
91
+ res.totalTokens = res.poolTokens.length;
92
+
93
+ return abi.encode(res);
94
+ }
95
+
96
+ function _getPoolTokenAddresses()
97
+ internal
98
+ view
99
+ virtual
100
+ override
101
+ returns (address[] memory res)
102
+ {
103
+ res = new address[](3);
104
+ res[0] = LP;
105
+ res[1] = WSTETH;
106
+ res[2] = CBETH;
107
+ }
108
+
109
+ function _getBPTIndex() internal view virtual override returns (uint256) {
110
+ return BPT_INDEX;
111
+ }
112
+
113
+ function _getRateProviders() internal view virtual returns (address[] memory res) {
114
+ res = new address[](3);
115
+ res[0] = 0x0000000000000000000000000000000000000000;
116
+ res[1] = 0x72D07D7DcA67b8A406aD1Ec34ce969c90bFEE768;
117
+ res[2] = 0x7311E4BB8a72e7B300c5B8BDE4de6CdaA822a5b1;
118
+ }
119
+
120
+ function _getRawScalingFactors() internal view virtual returns (uint256[] memory res) {
121
+ res = new uint256[](3);
122
+ res[0] = res[1] = res[2] = 1e18;
123
+ }
124
+
125
+ function _getExemption() internal view virtual returns (bool[] memory res) {
126
+ res = new bool[](3);
127
+ res[0] = res[1] = res[2] = false;
128
+ }
129
+
130
+ function getTokensIn() public view virtual override returns (address[] memory res) {
131
+ res = new address[](6);
132
+ res[0] = WSTETH;
133
+ res[1] = STETH;
134
+ res[2] = NATIVE;
135
+ res[3] = WETH;
136
+ // All 4 converted to WSTETH
137
+ res[4] = CBETH;
138
+ res[5] = LP;
139
+ }
140
+
141
+ function getTokensOut() public view virtual override returns (address[] memory res) {
142
+ res = new address[](4);
143
+ res[0] = WSTETH;
144
+ res[1] = STETH;
145
+ //
146
+ res[2] = CBETH;
147
+ res[3] = LP;
148
+ }
149
+
150
+ function isValidTokenIn(address token) public view virtual override returns (bool) {
151
+ return (token == WSTETH ||
152
+ token == STETH ||
153
+ token == NATIVE ||
154
+ token == WETH ||
155
+ token == CBETH ||
156
+ token == LP);
157
+ }
158
+
159
+ function isValidTokenOut(address token) public view virtual override returns (bool) {
160
+ return (token == WSTETH || token == STETH || token == CBETH || token == LP);
161
+ }
162
+ }
@@ -0,0 +1,134 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "./base/PendleAuraBalancerStableLPSY.sol";
5
+ import "../../../../interfaces/IWETH.sol";
6
+ import "./base/MetaStable/MetaStablePreview.sol";
7
+
8
+ contract PendleAuraWethRethSY is PendleAuraBalancerStableLPSY {
9
+ address public constant RETH = 0xae78736Cd615f374D3085123A210448E74Fc6393;
10
+ address public constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
11
+
12
+ uint256 internal constant AURA_PID = 15;
13
+ address internal constant LP = 0x1E19CF2D73a72Ef1332C882F20534B6519Be0276;
14
+
15
+ constructor(
16
+ string memory _name,
17
+ string memory _symbol,
18
+ MetaStablePreview _previewHelper
19
+ ) PendleAuraBalancerStableLPSY(_name, _symbol, LP, AURA_PID, _previewHelper) {}
20
+
21
+ function _deposit(address tokenIn, uint256 amount)
22
+ internal
23
+ virtual
24
+ override
25
+ returns (uint256 amountSharesOut)
26
+ {
27
+ if (tokenIn == NATIVE) {
28
+ IWETH(WETH).deposit{ value: amount }();
29
+ amountSharesOut = super._deposit(WETH, amount);
30
+ } else {
31
+ amountSharesOut = super._deposit(tokenIn, amount);
32
+ }
33
+ }
34
+
35
+ function _redeem(
36
+ address receiver,
37
+ address tokenOut,
38
+ uint256 amountSharesToRedeem
39
+ ) internal virtual override returns (uint256 amountTokenOut) {
40
+ if (tokenOut == NATIVE) {
41
+ amountTokenOut = super._redeem(address(this), WETH, amountSharesToRedeem);
42
+ IWETH(WETH).withdraw(amountTokenOut);
43
+ _transferOut(NATIVE, receiver, amountTokenOut);
44
+ } else {
45
+ amountTokenOut = super._redeem(receiver, tokenOut, amountSharesToRedeem);
46
+ }
47
+ }
48
+
49
+ function _previewDeposit(address tokenIn, uint256 amountTokenToDeposit)
50
+ internal
51
+ view
52
+ virtual
53
+ override
54
+ returns (uint256 amountSharesOut)
55
+ {
56
+ if (tokenIn == NATIVE) {
57
+ amountSharesOut = super._previewDeposit(WETH, amountTokenToDeposit);
58
+ } else {
59
+ amountSharesOut = super._previewDeposit(tokenIn, amountTokenToDeposit);
60
+ }
61
+ }
62
+
63
+ function _previewRedeem(address tokenOut, uint256 amountSharesToRedeem)
64
+ internal
65
+ view
66
+ virtual
67
+ override
68
+ returns (uint256 amountTokenOut)
69
+ {
70
+ if (tokenOut == NATIVE) {
71
+ amountTokenOut = super._previewRedeem(WETH, amountSharesToRedeem);
72
+ } else {
73
+ amountTokenOut = super._previewRedeem(tokenOut, amountSharesToRedeem);
74
+ }
75
+ }
76
+
77
+ function _getPoolTokenAddresses()
78
+ internal
79
+ view
80
+ virtual
81
+ override
82
+ returns (address[] memory res)
83
+ {
84
+ res = new address[](2);
85
+ res[0] = RETH;
86
+ res[1] = WETH;
87
+ }
88
+
89
+ function _getRateProviders() internal view virtual returns (address[] memory res) {
90
+ res = new address[](2);
91
+ res[0] = 0x1a8F81c256aee9C640e14bB0453ce247ea0DFE6F;
92
+ res[1] = 0x0000000000000000000000000000000000000000;
93
+ }
94
+
95
+ function _getRawScalingFactors() internal view virtual returns (uint256[] memory res) {
96
+ res = new uint256[](2);
97
+ res[0] = 1e18;
98
+ res[1] = 1e18;
99
+ }
100
+
101
+ function _getImmutablePoolData() internal view virtual override returns (bytes memory) {
102
+ MetaStablePreview.ImmutableData memory res;
103
+ res.LP = LP;
104
+ res.poolTokens = _getPoolTokenAddresses();
105
+ res.rateProviders = _getRateProviders();
106
+ res.rawScalingFactors = _getRawScalingFactors();
107
+
108
+ return abi.encode(res);
109
+ }
110
+
111
+ function getTokensIn() public view virtual override returns (address[] memory res) {
112
+ res = new address[](4);
113
+ res[0] = LP;
114
+ res[1] = RETH;
115
+ res[2] = WETH;
116
+ res[3] = NATIVE;
117
+ }
118
+
119
+ function getTokensOut() public view virtual override returns (address[] memory res) {
120
+ res = new address[](4);
121
+ res[0] = LP;
122
+ res[1] = RETH;
123
+ res[2] = WETH;
124
+ res[3] = NATIVE;
125
+ }
126
+
127
+ function isValidTokenIn(address token) public view virtual override returns (bool) {
128
+ return (token == LP || token == RETH || token == WETH || token == NATIVE);
129
+ }
130
+
131
+ function isValidTokenOut(address token) public view virtual override returns (bool) {
132
+ return (token == LP || token == RETH || token == WETH || token == NATIVE);
133
+ }
134
+ }
@@ -0,0 +1,154 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
5
+ import "./base/PendleAuraBalancerStableLPSY.sol";
6
+ import "../../StEthHelper.sol";
7
+ import "./base/MetaStable/MetaStablePreview.sol";
8
+
9
+ contract PendleAuraWethWstethSY is PendleAuraBalancerStableLPSY, StEthHelper {
10
+ uint256 internal constant AURA_PID = 29;
11
+ address internal constant LP = 0x32296969Ef14EB0c6d29669C550D4a0449130230;
12
+
13
+ constructor(
14
+ string memory _name,
15
+ string memory _symbol,
16
+ MetaStablePreview _previewHelper
17
+ ) PendleAuraBalancerStableLPSY(_name, _symbol, LP, AURA_PID, _previewHelper) StEthHelper() {}
18
+
19
+ function _deposit(address tokenIn, uint256 amount)
20
+ internal
21
+ virtual
22
+ override
23
+ returns (uint256 amountSharesOut)
24
+ {
25
+ if (tokenIn == NATIVE) {
26
+ IWETH(WETH).deposit{ value: amount }();
27
+ amountSharesOut = super._deposit(WETH, amount);
28
+ } else if (tokenIn == STETH) {
29
+ uint256 amountWstETH = _depositWstETH(STETH, amount);
30
+ amountSharesOut = super._deposit(WSTETH, amountWstETH);
31
+ } else {
32
+ amountSharesOut = super._deposit(tokenIn, amount);
33
+ }
34
+ }
35
+
36
+ function _redeem(
37
+ address receiver,
38
+ address tokenOut,
39
+ uint256 amountSharesToRedeem
40
+ ) internal virtual override returns (uint256 amountTokenOut) {
41
+ if (tokenOut == NATIVE) {
42
+ amountTokenOut = super._redeem(address(this), WETH, amountSharesToRedeem);
43
+ IWETH(WETH).withdraw(amountTokenOut);
44
+ _transferOut(NATIVE, receiver, amountTokenOut);
45
+ } else if (tokenOut == STETH) {
46
+ uint256 amountWstETH = super._redeem(address(this), WSTETH, amountSharesToRedeem);
47
+ amountTokenOut = _redeemWstETH(receiver, amountWstETH);
48
+ } else {
49
+ amountTokenOut = super._redeem(receiver, tokenOut, amountSharesToRedeem);
50
+ }
51
+ }
52
+
53
+ function _previewDeposit(address tokenIn, uint256 amountTokenToDeposit)
54
+ internal
55
+ view
56
+ virtual
57
+ override
58
+ returns (uint256 amountSharesOut)
59
+ {
60
+ if (tokenIn == NATIVE) {
61
+ amountSharesOut = super._previewDeposit(WETH, amountTokenToDeposit);
62
+ } else if (tokenIn == STETH) {
63
+ uint256 amountWstETH = _previewDepositWstETH(STETH, amountTokenToDeposit);
64
+ amountSharesOut = super._previewDeposit(WSTETH, amountWstETH);
65
+ } else {
66
+ amountSharesOut = super._previewDeposit(tokenIn, amountTokenToDeposit);
67
+ }
68
+ }
69
+
70
+ function _previewRedeem(address tokenOut, uint256 amountSharesToRedeem)
71
+ internal
72
+ view
73
+ virtual
74
+ override
75
+ returns (uint256 amountTokenOut)
76
+ {
77
+ if (tokenOut == NATIVE) {
78
+ amountTokenOut = super._previewRedeem(WETH, amountSharesToRedeem);
79
+ } else if (tokenOut == STETH) {
80
+ uint256 amountWstETH = super._previewRedeem(WSTETH, amountSharesToRedeem);
81
+ amountTokenOut = _previewRedeemWstETH(amountWstETH);
82
+ } else {
83
+ amountTokenOut = super._previewRedeem(tokenOut, amountSharesToRedeem);
84
+ }
85
+ }
86
+
87
+ function _getPoolTokenAddresses()
88
+ internal
89
+ view
90
+ virtual
91
+ override
92
+ returns (address[] memory res)
93
+ {
94
+ res = new address[](2);
95
+ res[0] = WSTETH;
96
+ res[1] = WETH;
97
+ }
98
+
99
+ function _getRateProviders() internal view virtual returns (address[] memory res) {
100
+ res = new address[](2);
101
+ res[0] = 0x72D07D7DcA67b8A406aD1Ec34ce969c90bFEE768;
102
+ res[1] = 0x0000000000000000000000000000000000000000;
103
+ }
104
+
105
+ function _getRawScalingFactors() internal view virtual returns (uint256[] memory res) {
106
+ res = new uint256[](2);
107
+ res[0] = 1e18;
108
+ res[1] = 1e18;
109
+ }
110
+
111
+ function _getImmutablePoolData() internal view virtual override returns (bytes memory) {
112
+ MetaStablePreview.ImmutableData memory res;
113
+ res.LP = LP;
114
+ res.poolTokens = _getPoolTokenAddresses();
115
+ res.rateProviders = _getRateProviders();
116
+ res.rawScalingFactors = _getRawScalingFactors();
117
+
118
+ return abi.encode(res);
119
+ }
120
+
121
+ function getTokensIn() public view virtual override returns (address[] memory res) {
122
+ res = new address[](5);
123
+ res[0] = LP;
124
+ res[1] = WSTETH;
125
+ res[2] = WETH;
126
+ res[3] = STETH;
127
+ res[4] = NATIVE;
128
+ }
129
+
130
+ function getTokensOut() public view virtual override returns (address[] memory res) {
131
+ res = new address[](5);
132
+ res[0] = LP;
133
+ res[1] = WSTETH;
134
+ res[2] = WETH;
135
+ res[3] = STETH;
136
+ res[4] = NATIVE;
137
+ }
138
+
139
+ function isValidTokenIn(address token) public view virtual override returns (bool) {
140
+ return (token == LP ||
141
+ token == WSTETH ||
142
+ token == WETH ||
143
+ token == STETH ||
144
+ token == NATIVE);
145
+ }
146
+
147
+ function isValidTokenOut(address token) public view virtual override returns (bool) {
148
+ return (token == LP ||
149
+ token == WSTETH ||
150
+ token == WETH ||
151
+ token == STETH ||
152
+ token == NATIVE);
153
+ }
154
+ }