@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,39 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "./IBasePool.sol";
5
+ import "./IRateProvider.sol";
6
+
7
+ interface IComposableStable is IBasePool {
8
+ function getLastJoinExitData()
9
+ external
10
+ view
11
+ returns (uint256 lastJoinExitAmplification, uint256 lastPostJoinExitInvariant);
12
+
13
+ function getAmplificationParameter()
14
+ external
15
+ view
16
+ returns (
17
+ uint256 value,
18
+ bool isUpdating,
19
+ uint256 precision
20
+ );
21
+
22
+ function getProtocolFeePercentageCache(uint256 feeType) external view returns (uint256);
23
+
24
+ function isTokenExemptFromYieldProtocolFee(IERC20 token) external view returns (bool);
25
+
26
+ function getTokenRateCache(IERC20 token)
27
+ external
28
+ view
29
+ returns (
30
+ uint256 rate,
31
+ uint256 oldRate,
32
+ uint256 duration,
33
+ uint256 expires
34
+ );
35
+
36
+ function getRateProviders() external view returns (IRateProvider[] memory);
37
+
38
+ function getBptIndex() external view returns (uint256);
39
+ }
@@ -0,0 +1,10 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ interface IGauge {
5
+ function claim_rewards(address _addr, address _receiver) external;
6
+
7
+ function reward_count() external view returns (uint256);
8
+
9
+ function reward_tokens(uint256 arg0) external view returns (address);
10
+ }
@@ -0,0 +1,6 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ interface ILiquidityGaugeFactory {
5
+ function getPoolGauge(address poolAddress) external view returns (address);
6
+ }
@@ -0,0 +1,31 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "./IBasePool.sol";
5
+
6
+ interface IMetaStablePool is IBasePool {
7
+ function getLastInvariant()
8
+ external
9
+ view
10
+ returns (uint256 lastInvariant, uint256 lastInvariantAmp);
11
+
12
+ function getAmplificationParameter()
13
+ external
14
+ view
15
+ returns (
16
+ uint256 value,
17
+ bool isUpdating,
18
+ uint256 precision
19
+ );
20
+
21
+ function getSwapFeePercentage() external view returns (uint256);
22
+
23
+ function getPriceRateCache(IERC20 token)
24
+ external
25
+ view
26
+ returns (
27
+ uint256 rate,
28
+ uint256 duration,
29
+ uint256 expires
30
+ );
31
+ }
@@ -0,0 +1,6 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ interface IRateProvider {
5
+ function getRate() external view returns (uint256);
6
+ }
@@ -0,0 +1,78 @@
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 "./IAsset.sol";
6
+
7
+ interface IVault {
8
+ struct JoinPoolRequest {
9
+ address[] assets;
10
+ uint256[] maxAmountsIn;
11
+ bytes userData;
12
+ bool fromInternalBalance;
13
+ }
14
+
15
+ function joinPool(
16
+ bytes32 poolId,
17
+ address sender,
18
+ address recipient,
19
+ JoinPoolRequest memory request
20
+ ) external payable;
21
+
22
+ struct ExitPoolRequest {
23
+ address[] assets;
24
+ uint256[] minAmountsOut;
25
+ bytes userData;
26
+ bool toInternalBalance;
27
+ }
28
+
29
+ function exitPool(
30
+ bytes32 poolId,
31
+ address sender,
32
+ address payable recipient,
33
+ ExitPoolRequest memory request
34
+ ) external;
35
+
36
+ enum SwapKind {
37
+ GIVEN_IN,
38
+ GIVEN_OUT
39
+ }
40
+
41
+ struct SingleSwap {
42
+ bytes32 poolId;
43
+ SwapKind kind;
44
+ IAsset assetIn;
45
+ IAsset assetOut;
46
+ uint256 amount;
47
+ bytes userData;
48
+ }
49
+
50
+ struct FundManagement {
51
+ address sender;
52
+ bool fromInternalBalance;
53
+ address payable recipient;
54
+ bool toInternalBalance;
55
+ }
56
+
57
+ function swap(
58
+ SingleSwap memory singleSwap,
59
+ FundManagement memory funds,
60
+ uint256 limit,
61
+ uint256 deadline
62
+ ) external payable returns (uint256);
63
+
64
+ function getPoolTokens(bytes32 poolId)
65
+ external
66
+ view
67
+ returns (
68
+ IERC20[] memory tokens,
69
+ uint256[] memory balances,
70
+ uint256 lastChangeBlock
71
+ );
72
+
73
+ function WETH() external view returns (IERC20);
74
+
75
+ function getPool(bytes32 poolId) external view returns (address, uint8);
76
+
77
+ function getProtocolFeesCollector() external view returns (address);
78
+ }
@@ -14,6 +14,11 @@ interface IRewards {
14
14
 
15
15
  function exit(address) external;
16
16
 
17
+ function getReward(
18
+ address, /*_account*/
19
+ bool /*_claimExtras*/
20
+ ) external;
21
+
17
22
  function getReward() external;
18
23
 
19
24
  function queueNewRewards(uint256) external;
@@ -2,7 +2,7 @@
2
2
  pragma solidity 0.8.17;
3
3
 
4
4
  import "../router/base/MarketApproxLib.sol";
5
- import "../router/kyberswap/KyberSwapHelper.sol";
5
+ import "../router/base/ActionBaseMintRedeem.sol";
6
6
 
7
7
  interface IPActionAddRemoveLiq {
8
8
  event AddLiquidityDualSyAndPt(
@@ -2,7 +2,7 @@
2
2
  pragma solidity 0.8.17;
3
3
 
4
4
  import "../router/base/MarketApproxLib.sol";
5
- import "../router/kyberswap/KyberSwapHelper.sol";
5
+ import "../router/base/ActionBaseMintRedeem.sol";
6
6
 
7
7
  interface IPActionMintRedeem {
8
8
  event MintSyFromToken(
@@ -145,9 +145,8 @@ interface IPActionMintRedeem {
145
145
  struct RouterSwapAllStruct {
146
146
  // key-value pair
147
147
  address[] tokens;
148
- bytes[] kybercalls;
148
+ SwapData[] data;
149
149
  //
150
- address kyberRouter;
151
150
  address outputToken;
152
151
  uint256 minTokenOut;
153
152
  }
@@ -2,7 +2,7 @@
2
2
  pragma solidity 0.8.17;
3
3
 
4
4
  import "../router/base/MarketApproxLib.sol";
5
- import "../router/kyberswap/KyberSwapHelper.sol";
5
+ import "../router/base/ActionBaseMintRedeem.sol";
6
6
 
7
7
  interface IPActionSwapPT {
8
8
  event SwapPtAndSy(
@@ -2,7 +2,7 @@
2
2
  pragma solidity 0.8.17;
3
3
 
4
4
  import "../router/base/MarketApproxLib.sol";
5
- import "../router/kyberswap/KyberSwapHelper.sol";
5
+ import "../router/base/ActionBaseMintRedeem.sol";
6
6
 
7
7
  interface IPActionSwapPTYT {
8
8
  event SwapPtAndYt(
@@ -2,7 +2,7 @@
2
2
  pragma solidity 0.8.17;
3
3
 
4
4
  import "../router/base/MarketApproxLib.sol";
5
- import "../router/kyberswap/KyberSwapHelper.sol";
5
+ import "../router/base/ActionBaseMintRedeem.sol";
6
6
 
7
7
  interface IPActionSwapYT {
8
8
  event SwapYtAndSy(
@@ -6,6 +6,8 @@ interface IPFeeDistributor {
6
6
 
7
7
  event ClaimReward(address indexed pool, address indexed user, uint256 wTime, uint256 amount);
8
8
 
9
+ event PoolAdded(address indexed pool, uint256 indexed startWeek);
10
+
9
11
  struct UserInfo {
10
12
  uint128 firstUnclaimedWeek;
11
13
  uint128 iter;
@@ -0,0 +1,103 @@
1
+ pragma solidity >=0.5.0;
2
+ pragma experimental ABIEncoderV2;
3
+
4
+ /// @title Multicall2 - Aggregate results from multiple read-only function calls
5
+ /// @author Michael Elliot <mike@makerdao.com>
6
+ /// @author Joshua Levine <joshua@makerdao.com>
7
+ /// @author Nick Johnson <arachnid@notdot.net>
8
+
9
+ contract Multicall2 {
10
+ struct Call {
11
+ address target;
12
+ bytes callData;
13
+ }
14
+ struct Result {
15
+ bool success;
16
+ bytes returnData;
17
+ }
18
+
19
+ function aggregate(Call[] memory calls)
20
+ public
21
+ returns (uint256 blockNumber, bytes[] memory returnData)
22
+ {
23
+ blockNumber = block.number;
24
+ returnData = new bytes[](calls.length);
25
+ for (uint256 i = 0; i < calls.length; i++) {
26
+ (bool success, bytes memory ret) = calls[i].target.call(calls[i].callData);
27
+ require(success, "Multicall aggregate: call failed");
28
+ returnData[i] = ret;
29
+ }
30
+ }
31
+
32
+ function blockAndAggregate(Call[] memory calls)
33
+ public
34
+ returns (
35
+ uint256 blockNumber,
36
+ bytes32 blockHash,
37
+ Result[] memory returnData
38
+ )
39
+ {
40
+ (blockNumber, blockHash, returnData) = tryBlockAndAggregate(true, calls);
41
+ }
42
+
43
+ function getBlockHash(uint256 blockNumber) public view returns (bytes32 blockHash) {
44
+ blockHash = blockhash(blockNumber);
45
+ }
46
+
47
+ function getBlockNumber() public view returns (uint256 blockNumber) {
48
+ blockNumber = block.number;
49
+ }
50
+
51
+ function getCurrentBlockCoinbase() public view returns (address coinbase) {
52
+ coinbase = block.coinbase;
53
+ }
54
+
55
+ function getCurrentBlockDifficulty() public view returns (uint256 difficulty) {
56
+ difficulty = block.difficulty;
57
+ }
58
+
59
+ function getCurrentBlockGasLimit() public view returns (uint256 gaslimit) {
60
+ gaslimit = block.gaslimit;
61
+ }
62
+
63
+ function getCurrentBlockTimestamp() public view returns (uint256 timestamp) {
64
+ timestamp = block.timestamp;
65
+ }
66
+
67
+ function getEthBalance(address addr) public view returns (uint256 balance) {
68
+ balance = addr.balance;
69
+ }
70
+
71
+ function getLastBlockHash() public view returns (bytes32 blockHash) {
72
+ blockHash = blockhash(block.number - 1);
73
+ }
74
+
75
+ function tryAggregate(bool requireSuccess, Call[] memory calls)
76
+ public
77
+ returns (Result[] memory returnData)
78
+ {
79
+ returnData = new Result[](calls.length);
80
+ for (uint256 i = 0; i < calls.length; i++) {
81
+ (bool success, bytes memory ret) = calls[i].target.call(calls[i].callData);
82
+
83
+ if (requireSuccess) {
84
+ require(success, "Multicall2 aggregate: call failed");
85
+ }
86
+
87
+ returnData[i] = Result(success, ret);
88
+ }
89
+ }
90
+
91
+ function tryBlockAndAggregate(bool requireSuccess, Call[] memory calls)
92
+ public
93
+ returns (
94
+ uint256 blockNumber,
95
+ bytes32 blockHash,
96
+ Result[] memory returnData
97
+ )
98
+ {
99
+ blockNumber = block.number;
100
+ blockHash = blockhash(block.number);
101
+ returnData = tryAggregate(requireSuccess, calls);
102
+ }
103
+ }
@@ -24,8 +24,8 @@ contract ActionAddRemoveLiq is IPActionAddRemoveLiq, ActionBaseMintRedeem {
24
24
  using BulkSellerMathCore for BulkSellerState;
25
25
 
26
26
  /// @dev since this contract will be proxied, it must not contains non-immutable variables
27
- constructor(address _kyberScalingLib)
28
- ActionBaseMintRedeem(_kyberScalingLib) //solhint-disable-next-line no-empty-blocks
27
+ constructor(address _swapAggregator)
28
+ ActionBaseMintRedeem(_swapAggregator) //solhint-disable-next-line no-empty-blocks
29
29
  {}
30
30
 
31
31
  /**
@@ -12,8 +12,8 @@ contract ActionMintRedeem is IPActionMintRedeem, ActionBaseMintRedeem {
12
12
  using Math for int256;
13
13
 
14
14
  /// @dev since this contract will be proxied, it must not contains non-immutable variables
15
- constructor(address _kyberScalingLib)
16
- ActionBaseMintRedeem(_kyberScalingLib) //solhint-disable-next-line no-empty-blocks
15
+ constructor(address _swapAggregator)
16
+ ActionBaseMintRedeem(_swapAggregator) //solhint-disable-next-line no-empty-blocks
17
17
  {}
18
18
 
19
19
  /**
@@ -180,8 +180,7 @@ contract ActionMintRedeem is IPActionMintRedeem, ActionBaseMintRedeem {
180
180
  address[] calldata markets,
181
181
  RouterSwapAllStruct calldata dataSwap
182
182
  ) external returns (uint256 netTokenOut, uint256[] memory amountsSwapped) {
183
- if (dataSwap.tokens.length != dataSwap.kybercalls.length)
184
- revert Errors.ArrayLengthMismatch();
183
+ if (dataSwap.tokens.length != dataSwap.data.length) revert Errors.ArrayLengthMismatch();
185
184
 
186
185
  if (dataYT.tokenRedeemSys.length != dataYT.syAddrs.length)
187
186
  revert Errors.ArrayLengthMismatch();
@@ -226,7 +225,7 @@ contract ActionMintRedeem is IPActionMintRedeem, ActionBaseMintRedeem {
226
225
  _transferFrom(
227
226
  IERC20(tokensOut.tokens[i]),
228
227
  msg.sender,
229
- address(this),
228
+ swapAggregator,
230
229
  tokensOut.amounts[i]
231
230
  );
232
231
  }
@@ -270,7 +269,7 @@ contract ActionMintRedeem is IPActionMintRedeem, ActionBaseMintRedeem {
270
269
 
271
270
  TokenOutput memory output = _wrapTokenOutput(tokenRedeemSys[i], 1, bulks[i]);
272
271
  uint256 amountOut = _redeemSyToToken(
273
- address(this),
272
+ swapAggregator,
274
273
  sys.tokens[i],
275
274
  sys.amounts[i],
276
275
  output,
@@ -287,11 +286,10 @@ contract ActionMintRedeem is IPActionMintRedeem, ActionBaseMintRedeem {
287
286
  ) internal returns (uint256 netTokenOut) {
288
287
  for (uint256 i = 0; i < tokens.tokens.length; ++i) {
289
288
  if (tokens.amounts[i] == 0) continue;
290
- _kyberswap(
289
+ ISwapAggregator(swapAggregator).swap(
291
290
  tokens.tokens[i],
292
291
  tokens.amounts[i],
293
- dataSwap.kyberRouter,
294
- dataSwap.kybercalls[i]
292
+ dataSwap.data[i]
295
293
  );
296
294
  }
297
295
  netTokenOut = _selfBalance(dataSwap.outputToken);
@@ -16,8 +16,8 @@ contract ActionSwapPT is IPActionSwapPT, ActionBaseMintRedeem {
16
16
  using PYIndexLib for IPYieldToken;
17
17
 
18
18
  /// @dev since this contract will be proxied, it must not contains non-immutable variables
19
- constructor(address _kyberScalingLib)
20
- ActionBaseMintRedeem(_kyberScalingLib) //solhint-disable-next-line no-empty-blocks
19
+ constructor(address _swapAggregator)
20
+ ActionBaseMintRedeem(_swapAggregator) //solhint-disable-next-line no-empty-blocks
21
21
  {}
22
22
 
23
23
  /**
@@ -17,8 +17,8 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
17
17
  using PYIndexLib for IPYieldToken;
18
18
 
19
19
  /// @dev since this contract will be proxied, it must not contains non-immutable variables
20
- constructor(address _kyberScalingLib)
21
- ActionBaseMintRedeem(_kyberScalingLib) //solhint-disable-next-line no-empty-blocks
20
+ constructor(address _swapAggregator)
21
+ ActionBaseMintRedeem(_swapAggregator) //solhint-disable-next-line no-empty-blocks
22
22
  {}
23
23
 
24
24
  /**
@@ -1,19 +1,43 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity 0.8.17;
3
3
 
4
- import "../kyberswap/KyberSwapHelper.sol";
5
4
  import "../../core/libraries/TokenHelper.sol";
6
5
  import "../../interfaces/IStandardizedYield.sol";
7
6
  import "../../interfaces/IPYieldToken.sol";
8
7
  import "../../interfaces/IPBulkSeller.sol";
9
8
  import "../../core/libraries/Errors.sol";
9
+ import "../swap-aggregator/ISwapAggregator.sol";
10
+
11
+ struct TokenInput {
12
+ // Token/Sy data
13
+ address tokenIn;
14
+ uint256 netTokenIn;
15
+ address tokenMintSy;
16
+ address bulk;
17
+ // aggregator data
18
+ SwapData data;
19
+ }
20
+
21
+ struct TokenOutput {
22
+ // Token/Sy data
23
+ address tokenOut;
24
+ uint256 minTokenOut;
25
+ address tokenRedeemSy;
26
+ address bulk;
27
+ // Kyber data
28
+ SwapData data;
29
+ }
10
30
 
11
31
  // solhint-disable no-empty-blocks
12
- abstract contract ActionBaseMintRedeem is TokenHelper, KyberSwapHelper {
32
+ abstract contract ActionBaseMintRedeem is TokenHelper {
13
33
  bytes internal constant EMPTY_BYTES = abi.encode();
14
34
 
35
+ address public immutable swapAggregator;
36
+
15
37
  /// @dev since this contract will be proxied, it must not contains non-immutable variables
16
- constructor(address _kyberScalingLib) KyberSwapHelper(_kyberScalingLib) {}
38
+ constructor(address _swapAggregator) {
39
+ swapAggregator = _swapAggregator;
40
+ }
17
41
 
18
42
  function _mintSyFromToken(
19
43
  address receiver,
@@ -21,14 +45,23 @@ abstract contract ActionBaseMintRedeem is TokenHelper, KyberSwapHelper {
21
45
  uint256 minSyOut,
22
46
  TokenInput calldata input
23
47
  ) internal returns (uint256 netSyOut) {
24
- _transferIn(input.tokenIn, msg.sender, input.netTokenIn);
25
-
26
48
  bool requireSwap = input.tokenIn != input.tokenMintSy;
27
49
 
28
50
  uint256 netTokenMintSy;
29
51
 
52
+ if (input.tokenIn != NATIVE) {
53
+ _transferFrom(
54
+ IERC20(input.tokenIn),
55
+ msg.sender,
56
+ requireSwap ? swapAggregator : address(this),
57
+ input.netTokenIn
58
+ );
59
+ }
60
+
30
61
  if (requireSwap) {
31
- _kyberswap(input.tokenIn, input.netTokenIn, input.kyberRouter, input.kybercall);
62
+ ISwapAggregator(swapAggregator).swap{
63
+ value: input.tokenIn == NATIVE ? input.netTokenIn : 0
64
+ }(input.tokenIn, input.netTokenIn, input.data);
32
65
  netTokenMintSy = _selfBalance(input.tokenMintSy);
33
66
  } else {
34
67
  netTokenMintSy = input.netTokenIn;
@@ -66,7 +99,7 @@ abstract contract ActionBaseMintRedeem is TokenHelper, KyberSwapHelper {
66
99
  }
67
100
 
68
101
  bool requireSwap = output.tokenRedeemSy != output.tokenOut;
69
- address receiverRedeemSy = requireSwap ? address(this) : receiver;
102
+ address receiverRedeemSy = requireSwap ? swapAggregator : receiver;
70
103
  uint256 netTokenRedeemed;
71
104
 
72
105
  if (output.bulk != address(0)) {
@@ -87,12 +120,9 @@ abstract contract ActionBaseMintRedeem is TokenHelper, KyberSwapHelper {
87
120
  }
88
121
 
89
122
  if (requireSwap) {
90
- _kyberswap(
91
- output.tokenRedeemSy,
92
- netTokenRedeemed,
93
- output.kyberRouter,
94
- output.kybercall
95
- );
123
+ ISwapAggregator(swapAggregator).swap{
124
+ value: output.tokenRedeemSy == NATIVE ? netTokenRedeemed : 0
125
+ }(output.tokenRedeemSy, netTokenRedeemed, output.data);
96
126
 
97
127
  netTokenOut = _selfBalance(output.tokenOut);
98
128
 
@@ -153,6 +183,13 @@ abstract contract ActionBaseMintRedeem is TokenHelper, KyberSwapHelper {
153
183
  uint256 minTokenOut,
154
184
  address bulk
155
185
  ) internal pure returns (TokenOutput memory) {
156
- return TokenOutput(tokenOut, minTokenOut, tokenOut, bulk, address(0), EMPTY_BYTES);
186
+ return
187
+ TokenOutput(
188
+ tokenOut,
189
+ minTokenOut,
190
+ tokenOut,
191
+ bulk,
192
+ SwapData(AGGREGATOR.KYBERSWAP, address(0), EMPTY_BYTES)
193
+ );
157
194
  }
158
195
  }
@@ -0,0 +1,45 @@
1
+ // SPDX-License-Identifier: MIT
2
+
3
+ pragma solidity 0.8.17;
4
+
5
+ import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
6
+
7
+ interface I1inchAggregationRouterV5 {
8
+ struct SwapDescription {
9
+ IERC20 srcToken;
10
+ IERC20 dstToken;
11
+ address payable srcReceiver;
12
+ address payable dstReceiver;
13
+ uint256 amount;
14
+ uint256 minReturnAmount;
15
+ uint256 flags;
16
+ }
17
+
18
+ function uniswapV3SwapTo(
19
+ address payable recipient,
20
+ uint256 amount,
21
+ uint256 minReturn,
22
+ uint256[] calldata pools
23
+ ) external payable returns(uint256 returnAmount);
24
+
25
+ function swap(
26
+ address executor,
27
+ SwapDescription calldata desc,
28
+ bytes calldata permit,
29
+ bytes calldata data
30
+ )
31
+ external
32
+ payable
33
+ returns (
34
+ uint256 returnAmount,
35
+ uint256 spentAmount
36
+ );
37
+
38
+ function unoswapTo(
39
+ address payable recipient,
40
+ address srcToken,
41
+ uint256 amount,
42
+ uint256 minReturn,
43
+ uint256[] calldata pools
44
+ ) external payable returns(uint256 returnAmount);
45
+ }
@@ -0,0 +1,71 @@
1
+ // SPDX-License-Identifier: MIT
2
+
3
+ pragma solidity 0.8.17;
4
+
5
+ import "./I1inchAggregationRouterV5.sol";
6
+ import "../../../core/libraries/Errors.sol";
7
+
8
+ abstract contract OneInchAggregationRouterHelper {
9
+ constructor() {}
10
+
11
+ function _rescaleMinAmount(
12
+ uint256 minAmount,
13
+ uint256 oldAmount,
14
+ uint256 newAmount
15
+ ) internal pure returns (uint256) {
16
+ return (minAmount * newAmount) / oldAmount;
17
+ }
18
+
19
+ function _get1inchScaledInputData(bytes calldata rawCallData, uint256 newAmount)
20
+ internal
21
+ pure
22
+ returns (bytes memory)
23
+ {
24
+ bytes4 selector = bytes4(rawCallData[:4]);
25
+ bytes memory args = rawCallData[4:];
26
+
27
+ if (selector == I1inchAggregationRouterV5.uniswapV3SwapTo.selector) {
28
+ (
29
+ address payable recipient,
30
+ uint256 amount,
31
+ uint256 minReturn,
32
+ uint256[] memory pools
33
+ ) = abi.decode(args, (address, uint256, uint256, uint256[]));
34
+
35
+ minReturn = _rescaleMinAmount(minReturn, amount, newAmount);
36
+ amount = newAmount;
37
+ return abi.encodeWithSelector(selector, recipient, amount, minReturn, pools);
38
+ }
39
+
40
+ if (selector == I1inchAggregationRouterV5.swap.selector) {
41
+ (
42
+ address executor,
43
+ I1inchAggregationRouterV5.SwapDescription memory desc,
44
+ bytes memory permit,
45
+ bytes memory data
46
+ ) = abi.decode(
47
+ args,
48
+ (address, I1inchAggregationRouterV5.SwapDescription, bytes, bytes)
49
+ );
50
+
51
+ desc.minReturnAmount = _rescaleMinAmount(desc.minReturnAmount, desc.amount, newAmount);
52
+ desc.amount = newAmount;
53
+ return abi.encodeWithSelector(selector, executor, desc, permit, data);
54
+ }
55
+
56
+ if (selector == I1inchAggregationRouterV5.unoswapTo.selector) {
57
+ (
58
+ address payable recipient,
59
+ address srcToken,
60
+ uint256 amount,
61
+ uint256 minReturn,
62
+ uint256[] memory pools
63
+ ) = abi.decode(args, (address, address, uint256, uint256, uint256[]));
64
+
65
+ minReturn = _rescaleMinAmount(minReturn, amount, newAmount);
66
+ amount = newAmount;
67
+ return abi.encodeWithSelector(selector, recipient, srcToken, amount, minReturn, pools);
68
+ }
69
+ revert Errors.UnsupportedSelector(1, selector);
70
+ }
71
+ }