@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,215 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "IMetaAggregationRouterV2",
4
+ "sourceName": "contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "components": [
10
+ {
11
+ "internalType": "address",
12
+ "name": "callTarget",
13
+ "type": "address"
14
+ },
15
+ {
16
+ "internalType": "address",
17
+ "name": "approveTarget",
18
+ "type": "address"
19
+ },
20
+ {
21
+ "internalType": "bytes",
22
+ "name": "targetData",
23
+ "type": "bytes"
24
+ },
25
+ {
26
+ "components": [
27
+ {
28
+ "internalType": "contract IERC20",
29
+ "name": "srcToken",
30
+ "type": "address"
31
+ },
32
+ {
33
+ "internalType": "contract IERC20",
34
+ "name": "dstToken",
35
+ "type": "address"
36
+ },
37
+ {
38
+ "internalType": "address[]",
39
+ "name": "srcReceivers",
40
+ "type": "address[]"
41
+ },
42
+ {
43
+ "internalType": "uint256[]",
44
+ "name": "srcAmounts",
45
+ "type": "uint256[]"
46
+ },
47
+ {
48
+ "internalType": "address[]",
49
+ "name": "feeReceivers",
50
+ "type": "address[]"
51
+ },
52
+ {
53
+ "internalType": "uint256[]",
54
+ "name": "feeAmounts",
55
+ "type": "uint256[]"
56
+ },
57
+ {
58
+ "internalType": "address",
59
+ "name": "dstReceiver",
60
+ "type": "address"
61
+ },
62
+ {
63
+ "internalType": "uint256",
64
+ "name": "amount",
65
+ "type": "uint256"
66
+ },
67
+ {
68
+ "internalType": "uint256",
69
+ "name": "minReturnAmount",
70
+ "type": "uint256"
71
+ },
72
+ {
73
+ "internalType": "uint256",
74
+ "name": "flags",
75
+ "type": "uint256"
76
+ },
77
+ {
78
+ "internalType": "bytes",
79
+ "name": "permit",
80
+ "type": "bytes"
81
+ }
82
+ ],
83
+ "internalType": "struct IMetaAggregationRouterV2.SwapDescriptionV2",
84
+ "name": "desc",
85
+ "type": "tuple"
86
+ },
87
+ {
88
+ "internalType": "bytes",
89
+ "name": "clientData",
90
+ "type": "bytes"
91
+ }
92
+ ],
93
+ "internalType": "struct IMetaAggregationRouterV2.SwapExecutionParams",
94
+ "name": "execution",
95
+ "type": "tuple"
96
+ }
97
+ ],
98
+ "name": "swap",
99
+ "outputs": [
100
+ {
101
+ "internalType": "uint256",
102
+ "name": "",
103
+ "type": "uint256"
104
+ },
105
+ {
106
+ "internalType": "uint256",
107
+ "name": "",
108
+ "type": "uint256"
109
+ }
110
+ ],
111
+ "stateMutability": "payable",
112
+ "type": "function"
113
+ },
114
+ {
115
+ "inputs": [
116
+ {
117
+ "internalType": "contract IAggregationExecutor",
118
+ "name": "caller",
119
+ "type": "address"
120
+ },
121
+ {
122
+ "components": [
123
+ {
124
+ "internalType": "contract IERC20",
125
+ "name": "srcToken",
126
+ "type": "address"
127
+ },
128
+ {
129
+ "internalType": "contract IERC20",
130
+ "name": "dstToken",
131
+ "type": "address"
132
+ },
133
+ {
134
+ "internalType": "address[]",
135
+ "name": "srcReceivers",
136
+ "type": "address[]"
137
+ },
138
+ {
139
+ "internalType": "uint256[]",
140
+ "name": "srcAmounts",
141
+ "type": "uint256[]"
142
+ },
143
+ {
144
+ "internalType": "address[]",
145
+ "name": "feeReceivers",
146
+ "type": "address[]"
147
+ },
148
+ {
149
+ "internalType": "uint256[]",
150
+ "name": "feeAmounts",
151
+ "type": "uint256[]"
152
+ },
153
+ {
154
+ "internalType": "address",
155
+ "name": "dstReceiver",
156
+ "type": "address"
157
+ },
158
+ {
159
+ "internalType": "uint256",
160
+ "name": "amount",
161
+ "type": "uint256"
162
+ },
163
+ {
164
+ "internalType": "uint256",
165
+ "name": "minReturnAmount",
166
+ "type": "uint256"
167
+ },
168
+ {
169
+ "internalType": "uint256",
170
+ "name": "flags",
171
+ "type": "uint256"
172
+ },
173
+ {
174
+ "internalType": "bytes",
175
+ "name": "permit",
176
+ "type": "bytes"
177
+ }
178
+ ],
179
+ "internalType": "struct IMetaAggregationRouterV2.SwapDescriptionV2",
180
+ "name": "desc",
181
+ "type": "tuple"
182
+ },
183
+ {
184
+ "internalType": "bytes",
185
+ "name": "executorData",
186
+ "type": "bytes"
187
+ },
188
+ {
189
+ "internalType": "bytes",
190
+ "name": "clientData",
191
+ "type": "bytes"
192
+ }
193
+ ],
194
+ "name": "swapSimpleMode",
195
+ "outputs": [
196
+ {
197
+ "internalType": "uint256",
198
+ "name": "",
199
+ "type": "uint256"
200
+ },
201
+ {
202
+ "internalType": "uint256",
203
+ "name": "",
204
+ "type": "uint256"
205
+ }
206
+ ],
207
+ "stateMutability": "nonpayable",
208
+ "type": "function"
209
+ }
210
+ ],
211
+ "bytecode": "0x",
212
+ "deployedBytecode": "0x",
213
+ "linkReferences": {},
214
+ "deployedLinkReferences": {}
215
+ }
@@ -5,20 +5,18 @@ library LayerZeroHelper {
5
5
  uint256 constant EVM_ADDRESS_SIZE = 20;
6
6
 
7
7
  function _getLayerZeroChainIds(uint256 chainId) internal pure returns (uint16) {
8
- if (chainId == 43113) return 10106;
9
- // fuji testnet
10
- else if (chainId == 80001) return 10109;
11
- // mumbai testnet
12
- else if (chainId == 43114) return 106; // avax mainnet
8
+ if (chainId == 43113) return 10106; // fuji testnet
9
+ else if (chainId == 80001) return 10109; // mumbai testnet
10
+ else if (chainId == 43114) return 106; // avax mainnet
11
+ else if (chainId == 42161) return 110; // arbitrum one
13
12
  assert(false);
14
13
  }
15
14
 
16
15
  function _getOriginalChainIds(uint16 chainId) internal pure returns (uint256) {
17
- if (chainId == 10106) return 43113;
18
- // fuji testnet
19
- else if (chainId == 10109) return 80001;
20
- // mumbai testnet
16
+ if (chainId == 10106) return 43113; // fuji testnet
17
+ else if (chainId == 10109) return 80001; // mumbai testnet
21
18
  else if (chainId == 106) return 43114; // avax mainnet
19
+ else if (chainId == 110) return 42161; // arbitrum one
22
20
  assert(false);
23
21
  }
24
22
 
@@ -55,6 +55,8 @@ contract PendleFeeDistributor is UUPSUpgradeable, BoringOwnableUpgradeable, IPFe
55
55
 
56
56
  lastFundedWeek[pool] = _startWeek - WeekMath.WEEK;
57
57
  allPools.push(pool);
58
+
59
+ emit PoolAdded(pool, _startWeek);
58
60
  }
59
61
 
60
62
  function getAllPools() external view returns (address[] memory) {
@@ -92,6 +94,8 @@ contract PendleFeeDistributor is UUPSUpgradeable, BoringOwnableUpgradeable, IPFe
92
94
 
93
95
  uint256 lastFunded = lastFundedWeek[pool];
94
96
 
97
+ uint256 curWeek = WeekMath.getCurrentWeekStart();
98
+
95
99
  for (uint256 i = 0; i < amounts.length; ++i) {
96
100
  uint256 wTime = wTimes[i];
97
101
  uint256 amount = amounts[i];
@@ -105,6 +109,8 @@ contract PendleFeeDistributor is UUPSUpgradeable, BoringOwnableUpgradeable, IPFe
105
109
  emit UpdateFee(pool, wTime, amount);
106
110
  }
107
111
 
112
+ if (lastFunded >= curWeek) revert Errors.FDInvalidWTimeFund(lastFunded, curWeek);
113
+
108
114
  lastFundedWeek[pool] = lastFunded;
109
115
  }
110
116
 
@@ -122,6 +128,10 @@ contract PendleFeeDistributor is UUPSUpgradeable, BoringOwnableUpgradeable, IPFe
122
128
  IERC20(token).safeTransfer(user, amountRewardOut.sum());
123
129
  }
124
130
 
131
+ function getAllActivePools() external view returns (address[] memory) {
132
+ return allPools;
133
+ }
134
+
125
135
  function _accumulateUserReward(address pool, address user)
126
136
  internal
127
137
  ensureValidPool(pool)
@@ -1,13 +1,22 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity 0.8.17;
3
-
4
3
  import "../../interfaces/IStandardizedYield.sol";
4
+
5
5
  import "../erc20/PendleERC20Permit.sol";
6
+
6
7
  import "../libraries/math/Math.sol";
7
8
  import "../libraries/TokenHelper.sol";
8
9
  import "../libraries/Errors.sol";
9
-
10
- abstract contract SYBase is IStandardizedYield, PendleERC20Permit, TokenHelper {
10
+ import "../libraries/BoringOwnableUpgradeable.sol";
11
+ import "@openzeppelin/contracts/security/Pausable.sol";
12
+
13
+ abstract contract SYBase is
14
+ IStandardizedYield,
15
+ PendleERC20Permit,
16
+ TokenHelper,
17
+ BoringOwnableUpgradeable,
18
+ Pausable
19
+ {
11
20
  using Math for uint256;
12
21
 
13
22
  address public immutable yieldToken;
@@ -16,8 +25,9 @@ abstract contract SYBase is IStandardizedYield, PendleERC20Permit, TokenHelper {
16
25
  string memory _name,
17
26
  string memory _symbol,
18
27
  address _yieldToken
19
- ) PendleERC20Permit(_name, _symbol, IERC20Metadata(_yieldToken).decimals()) {
28
+ ) PendleERC20Permit(_name, _symbol, IERC20Metadata(_yieldToken).decimals()) initializer {
20
29
  yieldToken = _yieldToken;
30
+ __BoringOwnable_init();
21
31
  }
22
32
 
23
33
  // solhint-disable no-empty-blocks
@@ -179,11 +189,19 @@ abstract contract SYBase is IStandardizedYield, PendleERC20Permit, TokenHelper {
179
189
  return _previewRedeem(tokenOut, amountSharesToRedeem);
180
190
  }
181
191
 
192
+ function pause() external onlyOwner {
193
+ _pause();
194
+ }
195
+
196
+ function unpause() external onlyOwner {
197
+ _unpause();
198
+ }
199
+
182
200
  function _beforeTokenTransfer(
183
201
  address,
184
202
  address,
185
203
  uint256
186
- ) internal virtual override {}
204
+ ) internal virtual override whenNotPaused {}
187
205
 
188
206
  function _previewDeposit(address tokenIn, uint256 amountTokenToDeposit)
189
207
  internal
@@ -0,0 +1,71 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "../../interfaces/IWstETH.sol";
5
+ import "../../interfaces/IWETH.sol";
6
+ import "../../interfaces/IStETH.sol";
7
+ import "../libraries/TokenHelper.sol";
8
+
9
+ abstract contract StEthHelper is TokenHelper {
10
+ address public constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
11
+ address public constant WSTETH = 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0;
12
+ address public constant STETH = 0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84;
13
+
14
+ constructor() {
15
+ _safeApproveInf(STETH, WSTETH);
16
+ }
17
+
18
+ /// @dev tokenIn must be either ETH, WETH or STETH
19
+ function _depositWstETH(address tokenIn, uint256 amountDep)
20
+ internal
21
+ virtual
22
+ returns (uint256 amountOut)
23
+ {
24
+ uint256 amountStETH;
25
+ if (tokenIn == STETH) {
26
+ amountStETH = amountDep;
27
+ } else {
28
+ if (tokenIn == WETH) IWETH(WETH).withdraw(amountDep);
29
+
30
+ uint256 amountStEthSharesOut = IStETH(STETH).submit{ value: amountDep }(address(0));
31
+ amountStETH = IStETH(STETH).getPooledEthByShares(amountStEthSharesOut);
32
+ }
33
+ amountOut = IWstETH(WSTETH).wrap(amountStETH);
34
+ }
35
+
36
+ function _redeemWstETH(address receiver, uint256 amountRedeem)
37
+ internal
38
+ virtual
39
+ returns (uint256 amountTokenOut)
40
+ {
41
+ amountTokenOut = IWstETH(WSTETH).unwrap(amountRedeem);
42
+ _transferOut(STETH, receiver, amountTokenOut);
43
+ }
44
+
45
+ /// @dev tokenIn must be either ETH, WETH or STETH
46
+ function _previewDepositWstETH(address tokenIn, uint256 amountDep)
47
+ internal
48
+ view
49
+ virtual
50
+ returns (uint256 amountOut)
51
+ {
52
+ if (tokenIn != STETH) {
53
+ assert(tokenIn == WETH || tokenIn == NATIVE);
54
+ uint256 totalShares = IStETH(STETH).getTotalShares();
55
+ uint256 totalPooledEth = IStETH(STETH).getTotalPooledEther();
56
+ uint256 amountStEthSharesOut = IStETH(STETH).getSharesByPooledEth(amountDep);
57
+
58
+ totalShares += amountStEthSharesOut;
59
+ totalPooledEth += amountDep;
60
+
61
+ uint256 stEthBalance = (amountStEthSharesOut * totalPooledEth) / totalShares;
62
+ amountOut = (stEthBalance * totalShares) / totalPooledEth;
63
+ } else {
64
+ amountOut = IStETH(STETH).getSharesByPooledEth(amountDep);
65
+ }
66
+ }
67
+
68
+ function _previewRedeemWstETH(uint256 amountRedeem) internal view returns (uint256 amountOut) {
69
+ amountOut = IStETH(STETH).getPooledEthByShares(amountRedeem);
70
+ }
71
+ }
@@ -0,0 +1,170 @@
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 PendleAura3EthSY is PendleAuraBalancerStableLPSY, StEthHelper {
9
+ address public constant SFRXETH = 0xac3E018457B222d93114458476f3E3416Abbe38F;
10
+ address public constant RETH = 0xae78736Cd615f374D3085123A210448E74Fc6393;
11
+
12
+ uint256 internal constant AURA_PID = 13;
13
+ address internal constant LP = 0x8e85e97ed19C0fa13B2549309965291fbbc0048b;
14
+
15
+ uint256 public constant BPT_INDEX = 1;
16
+ bool public constant NO_TOKENS_EXEMPT = true;
17
+ bool public constant ALL_TOKENS_EXEMPT = false;
18
+
19
+ constructor(
20
+ string memory _name,
21
+ string memory _symbol,
22
+ ComposableStablePreview _previewHelper
23
+ ) PendleAuraBalancerStableLPSY(_name, _symbol, LP, AURA_PID, _previewHelper) {}
24
+
25
+ function _deposit(address tokenIn, uint256 amount)
26
+ internal
27
+ virtual
28
+ override
29
+ returns (uint256 amountSharesOut)
30
+ {
31
+ if (tokenIn == NATIVE || tokenIn == WETH || tokenIn == STETH) {
32
+ uint256 amountWstETH = _depositWstETH(tokenIn, amount);
33
+ amountSharesOut = super._deposit(WSTETH, amountWstETH);
34
+ } else {
35
+ amountSharesOut = super._deposit(tokenIn, amount);
36
+ }
37
+ }
38
+
39
+ function _redeem(
40
+ address receiver,
41
+ address tokenOut,
42
+ uint256 amountSharesToRedeem
43
+ ) internal virtual override returns (uint256 amountTokenOut) {
44
+ if (tokenOut == STETH) {
45
+ uint256 amountWstETH = super._redeem(address(this), WSTETH, amountSharesToRedeem);
46
+ amountTokenOut = _redeemWstETH(receiver, amountWstETH);
47
+ } else {
48
+ amountTokenOut = super._redeem(receiver, tokenOut, amountSharesToRedeem);
49
+ }
50
+ }
51
+
52
+ function _previewDeposit(address tokenIn, uint256 amountTokenToDeposit)
53
+ internal
54
+ view
55
+ virtual
56
+ override
57
+ returns (uint256 amountSharesOut)
58
+ {
59
+ if (tokenIn == NATIVE || tokenIn == WETH || tokenIn == STETH) {
60
+ uint256 amountWstETH = _previewDepositWstETH(tokenIn, amountTokenToDeposit);
61
+ amountSharesOut = super._previewDeposit(WSTETH, amountWstETH);
62
+ } else {
63
+ amountSharesOut = super._previewDeposit(tokenIn, amountTokenToDeposit);
64
+ }
65
+ }
66
+
67
+ function _previewRedeem(address tokenOut, uint256 amountSharesToRedeem)
68
+ internal
69
+ view
70
+ virtual
71
+ override
72
+ returns (uint256 amountTokenOut)
73
+ {
74
+ if (tokenOut == STETH) {
75
+ uint256 amountWstETH = super._previewRedeem(WSTETH, amountSharesToRedeem);
76
+ amountTokenOut = _previewRedeemWstETH(amountWstETH);
77
+ } else {
78
+ amountTokenOut = super._previewRedeem(tokenOut, amountSharesToRedeem);
79
+ }
80
+ }
81
+
82
+ function _getImmutablePoolData() internal view virtual override returns (bytes memory ret) {
83
+ ComposableStablePreview.ImmutableData memory res;
84
+ res.poolTokens = _getPoolTokenAddresses();
85
+ res.rateProviders = _getRateProviders();
86
+ res.rawScalingFactors = _getRawScalingFactors();
87
+ res.isExemptFromYieldProtocolFee = _getExemption();
88
+ res.LP = LP;
89
+ res.noTokensExempt = NO_TOKENS_EXEMPT;
90
+ res.allTokensExempt = ALL_TOKENS_EXEMPT;
91
+ res.bptIndex = BPT_INDEX;
92
+ res.totalTokens = res.poolTokens.length;
93
+
94
+ return abi.encode(res);
95
+ }
96
+
97
+ function _getPoolTokenAddresses()
98
+ internal
99
+ view
100
+ virtual
101
+ override
102
+ returns (address[] memory res)
103
+ {
104
+ res = new address[](4);
105
+ res[0] = WSTETH;
106
+ res[1] = LP;
107
+ res[2] = SFRXETH;
108
+ res[3] = RETH;
109
+ }
110
+
111
+ function _getBPTIndex() internal view virtual override returns (uint256) {
112
+ return BPT_INDEX;
113
+ }
114
+
115
+ function _getRateProviders() internal view virtual returns (address[] memory res) {
116
+ res = new address[](4);
117
+ res[0] = 0x72D07D7DcA67b8A406aD1Ec34ce969c90bFEE768;
118
+ res[1] = 0x0000000000000000000000000000000000000000;
119
+ res[2] = 0x302013E7936a39c358d07A3Df55dc94EC417E3a1;
120
+ res[3] = 0x1a8F81c256aee9C640e14bB0453ce247ea0DFE6F;
121
+ }
122
+
123
+ function _getRawScalingFactors() internal view virtual returns (uint256[] memory res) {
124
+ res = new uint256[](4);
125
+ res[0] = res[1] = res[2] = res[3] = 1e18;
126
+ }
127
+
128
+ function _getExemption() internal view virtual returns (bool[] memory res) {
129
+ res = new bool[](4);
130
+ res[0] = res[1] = res[2] = res[3] = false;
131
+ }
132
+
133
+ function getTokensIn() public view virtual override returns (address[] memory res) {
134
+ res = new address[](7);
135
+ res[0] = WSTETH;
136
+ res[1] = LP;
137
+ res[2] = SFRXETH;
138
+ res[3] = RETH;
139
+ res[4] = NATIVE;
140
+ res[5] = WETH;
141
+ res[6] = STETH;
142
+ }
143
+
144
+ function getTokensOut() public view virtual override returns (address[] memory res) {
145
+ res = new address[](5);
146
+ res[0] = WSTETH;
147
+ res[1] = LP;
148
+ res[2] = SFRXETH;
149
+ res[3] = RETH;
150
+ res[4] = STETH;
151
+ }
152
+
153
+ function isValidTokenIn(address token) public view virtual override returns (bool) {
154
+ return (token == WSTETH ||
155
+ token == LP ||
156
+ token == SFRXETH ||
157
+ token == RETH ||
158
+ token == NATIVE ||
159
+ token == WETH ||
160
+ token == STETH);
161
+ }
162
+
163
+ function isValidTokenOut(address token) public view virtual override returns (bool) {
164
+ return (token == WSTETH ||
165
+ token == LP ||
166
+ token == SFRXETH ||
167
+ token == RETH ||
168
+ token == STETH);
169
+ }
170
+ }