@pendle/core-v2 0.15.2-mainnet → 0.16.0-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 (420) 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 +48 -110
  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 +21 -75
  6. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  7. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.json +0 -39
  8. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/EpochResultManager.sol/EpochResultManager.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -15
  11. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.dbg.json +1 -1
  12. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.json +2 -15
  13. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  14. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.json +0 -13
  15. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  16. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -15
  17. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  18. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -15
  19. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  20. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -46
  21. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  22. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  23. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +8 -52
  24. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  25. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -15
  26. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  27. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  28. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  29. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  30. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  31. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  32. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  33. package/build/artifacts/contracts/LiquidityMining/libraries/WeekMath.sol/WeekMath.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  36. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  38. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  41. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +17 -77
  43. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.json +2 -2
  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/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  51. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
  53. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSY.sol/Pendle3CrvAndTokenSY.dbg.json +4 -0
  54. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSY.sol/Pendle3CrvAndTokenSY.json +1018 -0
  55. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +4 -0
  56. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/{base → ConvexCurveLP}/PendleConvexLPSY.sol/PendleConvexLPSY.json +1 -1
  57. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/Pendle3CrvHelper.sol/Pendle3CrvHelper.dbg.json +4 -0
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/Pendle3CrvHelper.sol/Pendle3CrvHelper.json +76 -0
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStaking.sol/PendleLooksStaking.dbg.json +4 -0
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/{PendleLooksStakingSY.sol/PendleLooksStakingSY.json → PendleLooksStaking.sol/PendleLooksStaking.json} +4 -4
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  63. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  64. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  65. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -15
  66. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  67. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +4 -85
  68. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  69. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +4 -17
  70. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  71. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.json +2 -2
  72. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
  73. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.json +2 -2
  74. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
  75. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.json +38 -3
  76. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
  77. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.json +2 -2
  78. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
  79. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.json +0 -13
  80. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
  81. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.json +2 -2
  82. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  83. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +35 -319
  84. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  85. package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
  86. package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.json +1 -1
  87. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
  88. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.json +85 -39
  89. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
  90. package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.dbg.json +4 -0
  91. package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.json +53 -0
  92. package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.dbg.json +4 -0
  93. package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.json +45 -0
  94. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  95. package/build/artifacts/contracts/interfaces/ILooksFeeSharing.sol/ILooksFeeSharing.dbg.json +1 -1
  96. package/build/artifacts/contracts/interfaces/ILooksStaking.sol/ILooksStaking.dbg.json +1 -1
  97. package/build/artifacts/contracts/interfaces/ILooksStaking.sol/ILooksStaking.json +0 -7
  98. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  99. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json +17 -91
  100. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  101. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json +0 -50
  102. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  103. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.json +0 -20
  104. package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +1 -1
  105. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  106. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.json +0 -20
  107. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  108. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +17 -181
  109. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  111. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.json +2 -2
  112. package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
  113. package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.json +2 -12
  114. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  115. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  116. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  117. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  118. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.json +1 -1
  119. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  120. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  121. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  122. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  123. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +1 -1
  124. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  125. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.json +0 -45
  126. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  127. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +1 -1
  128. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  129. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  130. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.json +2 -15
  131. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
  132. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +80 -2
  133. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  134. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +60 -299
  135. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  136. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +41 -118
  137. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +1 -1
  138. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.json +2 -2
  139. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  140. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +24 -61
  141. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  142. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +2 -2
  143. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  144. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +24 -31
  145. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +1 -1
  146. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +2 -2
  147. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  148. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +24 -31
  149. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  150. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -15
  151. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  152. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json +1 -1
  153. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  154. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  155. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  156. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  157. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +1 -1
  158. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +2 -191
  159. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +1 -1
  160. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.json +1 -1
  161. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol +1 -1
  162. package/contracts/core/Market/PendleMarket.sol +7 -18
  163. package/contracts/core/Market/PendleMarketFactory.sol +5 -15
  164. package/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSY.sol +167 -0
  165. package/contracts/core/StandardizedYield/implementations/Convex/{base → ConvexCurveLP}/PendleConvexLPSY.sol +4 -2
  166. package/contracts/core/StandardizedYield/implementations/Convex/Pendle3CrvHelper.sol +83 -0
  167. package/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol +4 -19
  168. package/contracts/core/YieldContracts/PendlePrincipalToken.sol +3 -3
  169. package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +7 -21
  170. package/contracts/core/YieldContracts/PendleYieldToken.sol +21 -54
  171. package/contracts/core/erc20/PendleERC20.sol +7 -4
  172. package/contracts/core/libraries/BaseSplitCodeFactory.sol +1 -1
  173. package/contracts/core/libraries/BoringOwnableUpgradeable.sol +1 -1
  174. package/contracts/core/libraries/Errors.sol +2 -28
  175. package/contracts/core/libraries/TokenHelper.sol +0 -9
  176. package/contracts/interfaces/ConvexCurve/IBooster.sol +1 -1
  177. package/contracts/interfaces/Curve/ICrvPool.sol +31 -12
  178. package/contracts/interfaces/IPActionAddRemoveLiq.sol +5 -3
  179. package/contracts/interfaces/IPActionMintRedeem.sol +0 -2
  180. package/contracts/interfaces/IPMarketFactory.sol +1 -1
  181. package/contracts/interfaces/IPYieldContractFactory.sol +1 -1
  182. package/contracts/interfaces/IStETH.sol +0 -6
  183. package/contracts/interfaces/IStandardizedYield.sol +10 -15
  184. package/contracts/offchain-helpers/ImplicitSwapfeeContract.sol +30 -0
  185. package/contracts/offchain-helpers/MarketMathStatic.sol +173 -0
  186. package/contracts/offchain-helpers/RouterStatic.sol +50 -189
  187. package/contracts/router/ActionAddRemoveLiq.sol +52 -71
  188. package/contracts/router/ActionCallback.sol +8 -4
  189. package/contracts/router/ActionMintRedeem.sol +18 -27
  190. package/contracts/router/ActionSwapPT.sol +9 -8
  191. package/contracts/router/ActionSwapPTYT.sol +7 -3
  192. package/contracts/router/ActionSwapYT.sol +10 -15
  193. package/contracts/router/PendleRouter.sol +0 -3
  194. package/contracts/router/base/ActionBaseMintRedeem.sol +83 -78
  195. package/contracts/router/base/MarketApproxLib.sol +1 -1
  196. package/contracts/router/kyberswap/AggregationRouterHelper.sol +1 -17
  197. package/contracts/router/kyberswap/KyberSwapHelper.sol +8 -21
  198. package/deployments/43113-core.json +16 -0
  199. package/deployments/43113-helper.json +3 -0
  200. package/deployments/43113-markets/benqi-market-QI-USDC-FEB-2ND.json +8 -0
  201. package/deployments/43113-markets/benqi-market-QI-WETH-DEC-1ST.json +8 -0
  202. package/deployments/43113-testenv.json +22 -0
  203. package/deployments/80001-core.json +15 -0
  204. package/deployments/80001-markets/benqi-market-QI-USDC-FEB-2ND.json +8 -0
  205. package/deployments/80001-markets/benqi-market-QI-WETH-DEC-1ST.json +8 -0
  206. package/deployments/80001-testenv.json +22 -0
  207. package/package.json +2 -3
  208. package/typechain-types/ActionAddRemoveLiq.ts +52 -64
  209. package/typechain-types/ActionBaseMintRedeem.ts +8 -8
  210. package/typechain-types/ActionMintRedeem.ts +16 -48
  211. package/typechain-types/ActionSwapPT.ts +12 -34
  212. package/typechain-types/ActionSwapYT.ts +12 -34
  213. package/typechain-types/AggregationRouterHelper.ts +3 -287
  214. package/typechain-types/BaseSplitCodeFactoryContract.ts +0 -9
  215. package/typechain-types/BoringOwnableUpgradeable.ts +0 -9
  216. package/typechain-types/IBooster.ts +3 -9
  217. package/typechain-types/ICrvPool.ts +172 -69
  218. package/typechain-types/ILooksStaking.ts +0 -27
  219. package/typechain-types/IPActionAddRemoveLiq.ts +44 -56
  220. package/typechain-types/IPActionMintRedeem.ts +8 -40
  221. package/typechain-types/IPActionSwapPT.ts +4 -26
  222. package/typechain-types/IPActionSwapYT.ts +4 -26
  223. package/typechain-types/IPAllAction.ts +54 -76
  224. package/typechain-types/IPMarketFactory.ts +2 -2
  225. package/typechain-types/IPMsgSendEndpoint.ts +14 -24
  226. package/typechain-types/IPYieldContractFactory.ts +3 -3
  227. package/typechain-types/IStETH.ts +0 -56
  228. package/typechain-types/ImplicitSwapfeeContract.ts +17 -9
  229. package/typechain-types/KyberSwapHelper.ts +8 -8
  230. package/typechain-types/MarketMathStatic.ts +117 -0
  231. package/typechain-types/PendleFeeDistributor.ts +0 -9
  232. package/typechain-types/PendleFeeDistributorFactory.ts +0 -9
  233. package/typechain-types/PendleGaugeControllerBaseUpg.ts +0 -9
  234. package/typechain-types/PendleGaugeControllerMainchainUpg.ts +0 -9
  235. package/typechain-types/PendleGaugeControllerSidechainUpg.ts +0 -9
  236. package/typechain-types/PendleMarketFactory.ts +2 -51
  237. package/typechain-types/PendleMsgReceiveEndpointUpg.ts +68 -135
  238. package/typechain-types/PendleMsgSendEndpointUpg.ts +39 -108
  239. package/typechain-types/PendleMsgSenderAppUpg.ts +0 -64
  240. package/typechain-types/PendlePrincipalToken.ts +0 -9
  241. package/typechain-types/PendleRouter.ts +0 -9
  242. package/typechain-types/PendleVotingControllerUpg.ts +0 -64
  243. package/typechain-types/PendleYieldContractFactory.ts +8 -57
  244. package/typechain-types/PendleYieldToken.ts +0 -21
  245. package/typechain-types/RouterStatic.ts +20 -302
  246. package/typechain-types/VotingEscrowPendleMainchain.ts +6 -70
  247. package/typechain-types/VotingEscrowPendleSidechain.ts +0 -9
  248. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +59 -122
  249. package/typechain-types/factories/ActionBaseMintRedeem__factory.ts +1 -1
  250. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  251. package/typechain-types/factories/ActionMintRedeem__factory.ts +42 -65
  252. package/typechain-types/factories/ActionMisc__factory.ts +1 -1
  253. package/typechain-types/factories/ActionSwapPTYT__factory.ts +1 -1
  254. package/typechain-types/factories/ActionSwapPT__factory.ts +42 -35
  255. package/typechain-types/factories/ActionSwapYT__factory.ts +42 -35
  256. package/typechain-types/factories/AggregationRouterHelper__factory.ts +1 -190
  257. package/typechain-types/factories/BaseSplitCodeFactoryContract__factory.ts +1 -14
  258. package/typechain-types/factories/BaseSplitCodeFactory__factory.ts +1 -1
  259. package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +1 -1
  260. package/typechain-types/factories/BoringOwnableUpgradeable__factory.ts +0 -13
  261. package/typechain-types/factories/ERC20__factory.ts +1 -1
  262. package/typechain-types/factories/Errors__factory.ts +34 -318
  263. package/typechain-types/factories/IBooster__factory.ts +1 -1
  264. package/typechain-types/factories/ICrvPool__factory.ts +85 -39
  265. package/typechain-types/factories/ILooksStaking__factory.ts +0 -7
  266. package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +17 -91
  267. package/typechain-types/factories/IPActionMintRedeem__factory.ts +0 -50
  268. package/typechain-types/factories/IPActionSwapPT__factory.ts +0 -20
  269. package/typechain-types/factories/IPActionSwapYT__factory.ts +0 -20
  270. package/typechain-types/factories/IPAllAction__factory.ts +17 -181
  271. package/typechain-types/factories/IPMarketFactory__factory.ts +2 -2
  272. package/typechain-types/factories/IPMsgSendEndpoint__factory.ts +2 -12
  273. package/typechain-types/factories/IPYieldContractFactory__factory.ts +1 -1
  274. package/typechain-types/factories/IStETH__factory.ts +0 -45
  275. package/typechain-types/factories/ImplicitSwapfeeContract__factory.ts +12 -4
  276. package/typechain-types/factories/KyberSwapHelper__factory.ts +1 -1
  277. package/typechain-types/factories/MarketMathStatic__factory.ts +79 -1
  278. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  279. package/typechain-types/factories/Pendle3CrvAndTokenSY__factory.ts +1 -1
  280. package/typechain-types/factories/PendleERC20Permit__factory.ts +1 -1
  281. package/typechain-types/factories/PendleERC20__factory.ts +1 -1
  282. package/typechain-types/factories/PendleFeeDistributorFactory__factory.ts +1 -14
  283. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -14
  284. package/typechain-types/factories/PendleGaugeControllerBaseUpg__factory.ts +0 -13
  285. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -14
  286. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -14
  287. package/typechain-types/factories/PendleMarketFactory__factory.ts +16 -76
  288. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  289. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +51 -113
  290. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +23 -84
  291. package/typechain-types/factories/PendleMsgSenderAppUpg__factory.ts +0 -39
  292. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -14
  293. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  294. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  295. package/typechain-types/factories/PendleRouter__factory.ts +1 -14
  296. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +2 -57
  297. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  298. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +3 -84
  299. package/typechain-types/factories/PendleYieldToken__factory.ts +3 -16
  300. package/typechain-types/factories/RouterStatic__factory.ts +1 -244
  301. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +8 -63
  302. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -14
  303. package/typechain-types/hardhat.d.ts +39 -219
  304. package/typechain-types/index.ts +12 -48
  305. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.dbg.json +0 -4
  306. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.json +0 -10
  307. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +0 -4
  308. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.json +0 -10
  309. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +0 -4
  310. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +0 -699
  311. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +0 -4
  312. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +0 -515
  313. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +0 -4
  314. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +0 -10
  315. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +0 -4
  316. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +0 -1003
  317. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +0 -4
  318. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +0 -1068
  319. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +0 -4
  320. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.json +0 -10
  321. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +0 -4
  322. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.json +0 -10
  323. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +0 -4
  324. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.json +0 -10
  325. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +0 -4
  326. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +0 -4
  327. package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.dbg.json +0 -4
  328. package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.json +0 -213
  329. package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.dbg.json +0 -4
  330. package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.json +0 -119
  331. package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +0 -4
  332. package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.json +0 -39
  333. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +0 -4
  334. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.json +0 -173
  335. package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.dbg.json +0 -4
  336. package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.json +0 -86
  337. package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.dbg.json +0 -4
  338. package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.json +0 -34
  339. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +0 -4
  340. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +0 -35
  341. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.dbg.json +0 -4
  342. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.json +0 -35
  343. package/contracts/core/BulkSeller/BulkSeller.sol +0 -259
  344. package/contracts/core/BulkSeller/BulkSellerFactory.sol +0 -88
  345. package/contracts/core/BulkSeller/BulkSellerMathCore.sol +0 -143
  346. package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol +0 -102
  347. package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol +0 -160
  348. package/contracts/core/StandardizedYield/implementations/Convex/README.md +0 -29
  349. package/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol +0 -215
  350. package/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol +0 -127
  351. package/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol +0 -152
  352. package/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol +0 -122
  353. package/contracts/interfaces/Curve/ITriCrvPool.sol +0 -41
  354. package/contracts/interfaces/ILooksFeeSharing.sol +0 -5
  355. package/contracts/interfaces/ILooksStaking.sol +0 -13
  356. package/contracts/interfaces/IPBulkSeller.sol +0 -28
  357. package/contracts/interfaces/IPBulkSellerFactory.sol +0 -12
  358. package/contracts/interfaces/IPBulkSellerSYCallback.sol +0 -10
  359. package/contracts/offchain-helpers/BulkSellerOffchain.sol +0 -43
  360. package/contracts/router/kyberswap/IAggregatorRouterHelper.sol +0 -10
  361. package/deployments/1-core.json +0 -16
  362. package/deployments/1-markets/FRAX_30_MAR_23.json +0 -8
  363. package/deployments/1-markets/LOOKS_30_MAR_23.json +0 -8
  364. package/deployments/1-markets/STETH_MARCH_30.json +0 -8
  365. package/deployments/1-markets/USDD_MARCH_30.json +0 -8
  366. package/deployments/1-offchain-helper.json +0 -3
  367. package/typechain-types/AccessControl.ts +0 -360
  368. package/typechain-types/AccessControlUpgradeable.ts +0 -369
  369. package/typechain-types/BeaconProxy.ts +0 -97
  370. package/typechain-types/BulkSeller.ts +0 -777
  371. package/typechain-types/BulkSellerFactory.ts +0 -707
  372. package/typechain-types/BulkSellerOffchain.ts +0 -117
  373. package/typechain-types/ContextUpgradeable.ts +0 -68
  374. package/typechain-types/Curve3CrvPoolHelper.ts +0 -236
  375. package/typechain-types/CurveFraxUsdcPoolHelper.ts +0 -158
  376. package/typechain-types/CurveUsdd3CrvPoolHelper.ts +0 -184
  377. package/typechain-types/ERC165.ts +0 -102
  378. package/typechain-types/ERC165Upgradeable.ts +0 -113
  379. package/typechain-types/IAccessControl.ts +0 -305
  380. package/typechain-types/IAccessControlUpgradeable.ts +0 -305
  381. package/typechain-types/IAggregationRouterHelper.ts +0 -108
  382. package/typechain-types/IERC165.ts +0 -102
  383. package/typechain-types/IERC165Upgradeable.ts +0 -102
  384. package/typechain-types/IPBulkSeller.ts +0 -290
  385. package/typechain-types/IPBulkSellerCallback.ts +0 -115
  386. package/typechain-types/IPBulkSellerFactory.ts +0 -147
  387. package/typechain-types/ITriCrvPool.ts +0 -345
  388. package/typechain-types/Initializable.ts +0 -68
  389. package/typechain-types/PendleConvex2TokensSY.ts +0 -1215
  390. package/typechain-types/PendleCurveFraxUsdcSY.ts +0 -1228
  391. package/typechain-types/PendleCurveUsdd3CrvSY.ts +0 -1299
  392. package/typechain-types/PendleLooksStakingSY.ts +0 -1052
  393. package/typechain-types/ReentrancyGuardUpgradeable.ts +0 -68
  394. package/typechain-types/factories/AccessControlUpgradeable__factory.ts +0 -247
  395. package/typechain-types/factories/AccessControl__factory.ts +0 -227
  396. package/typechain-types/factories/BeaconProxy__factory.ts +0 -141
  397. package/typechain-types/factories/BulkSellerFactory__factory.ts +0 -568
  398. package/typechain-types/factories/BulkSellerOffchain__factory.ts +0 -88
  399. package/typechain-types/factories/BulkSeller__factory.ts +0 -749
  400. package/typechain-types/factories/ContextUpgradeable__factory.ts +0 -39
  401. package/typechain-types/factories/Curve3CrvPoolHelper__factory.ts +0 -220
  402. package/typechain-types/factories/CurveFraxUsdcPoolHelper__factory.ts +0 -146
  403. package/typechain-types/factories/CurveUsdd3CrvPoolHelper__factory.ts +0 -172
  404. package/typechain-types/factories/ERC165Upgradeable__factory.ts +0 -58
  405. package/typechain-types/factories/ERC165__factory.ts +0 -39
  406. package/typechain-types/factories/IAccessControlUpgradeable__factory.ts +0 -202
  407. package/typechain-types/factories/IAccessControl__factory.ts +0 -198
  408. package/typechain-types/factories/IAggregationRouterHelper__factory.ts +0 -54
  409. package/typechain-types/factories/IERC165Upgradeable__factory.ts +0 -45
  410. package/typechain-types/factories/IERC165__factory.ts +0 -42
  411. package/typechain-types/factories/IPBulkSellerCallback__factory.ts +0 -53
  412. package/typechain-types/factories/IPBulkSellerFactory__factory.ts +0 -101
  413. package/typechain-types/factories/IPBulkSeller__factory.ts +0 -185
  414. package/typechain-types/factories/ITriCrvPool__factory.ts +0 -225
  415. package/typechain-types/factories/Initializable__factory.ts +0 -36
  416. package/typechain-types/factories/PendleConvex2TokensSY__factory.ts +0 -1093
  417. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +0 -1068
  418. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +0 -1133
  419. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +0 -937
  420. package/typechain-types/factories/ReentrancyGuardUpgradeable__factory.ts +0 -43
@@ -5,16 +5,20 @@ import "../kyberswap/KyberSwapHelper.sol";
5
5
  import "../../core/libraries/TokenHelper.sol";
6
6
  import "../../interfaces/IStandardizedYield.sol";
7
7
  import "../../interfaces/IPYieldToken.sol";
8
- import "../../interfaces/IPBulkSeller.sol";
9
8
  import "../../core/libraries/Errors.sol";
10
9
 
11
10
  // solhint-disable no-empty-blocks
12
11
  abstract contract ActionBaseMintRedeem is TokenHelper, KyberSwapHelper {
12
+ using SafeERC20 for IERC20;
13
+
13
14
  bytes internal constant EMPTY_BYTES = abi.encode();
14
15
 
15
16
  /// @dev since this contract will be proxied, it must not contains non-immutable variables
16
- constructor(address _kyberScalingLib) KyberSwapHelper(_kyberScalingLib) {}
17
+ constructor(address _kyberSwapRouter) KyberSwapHelper(_kyberSwapRouter) {}
17
18
 
19
+ /**
20
+ * @notice swap token to baseToken through Uniswap's forks & use it to mint SY
21
+ */
18
22
  function _mintSyFromToken(
19
23
  address receiver,
20
24
  address SY,
@@ -22,89 +26,104 @@ abstract contract ActionBaseMintRedeem is TokenHelper, KyberSwapHelper {
22
26
  TokenInput calldata input
23
27
  ) internal returns (uint256 netSyOut) {
24
28
  _transferIn(input.tokenIn, msg.sender, input.netTokenIn);
25
-
26
- bool requireSwap = input.tokenIn != input.tokenMintSy;
27
-
28
- uint256 netTokenMintSy;
29
-
30
- if (requireSwap) {
31
- _kyberswap(input.tokenIn, input.netTokenIn, input.kyberRouter, input.kybercall);
32
- netTokenMintSy = _selfBalance(input.tokenMintSy);
33
- } else {
34
- netTokenMintSy = input.netTokenIn;
29
+ if (input.tokenIn != input.tokenMintSy) {
30
+ _kyberswap(input.tokenIn, input.netTokenIn, input.kybercall);
35
31
  }
36
32
 
37
- if (input.bulk != address(0)) {
38
- _transferOut(input.tokenMintSy, input.bulk, netTokenMintSy);
39
-
40
- netSyOut = IPBulkSeller(input.bulk).swapExactTokenForSy(
41
- receiver,
42
- netTokenMintSy,
43
- minSyOut
44
- );
45
- } else {
46
- uint256 netNative = input.tokenMintSy == NATIVE ? netTokenMintSy : 0;
33
+ _safeApproveInf(input.tokenMintSy, SY);
47
34
 
48
- _safeApproveInf(input.tokenMintSy, SY);
35
+ uint256 tokenMintSyBal = _selfBalance(input.tokenMintSy);
36
+ uint256 nativeAmountToAttach = input.tokenMintSy == NATIVE ? tokenMintSyBal : 0;
49
37
 
50
- netSyOut = IStandardizedYield(SY).deposit{ value: netNative }(
51
- receiver,
52
- input.tokenMintSy,
53
- netTokenMintSy,
54
- minSyOut
55
- );
56
- }
38
+ netSyOut = IStandardizedYield(SY).deposit{ value: nativeAmountToAttach }(
39
+ receiver,
40
+ input.tokenMintSy,
41
+ tokenMintSyBal,
42
+ minSyOut
43
+ );
57
44
  }
58
45
 
46
+ /**
47
+ * @notice redeem SY to baseToken -> swap baseToken to token through Uniswap's forks
48
+ */
59
49
  function _redeemSyToToken(
60
50
  address receiver,
61
51
  address SY,
62
52
  uint256 netSyIn,
63
- TokenOutput memory output,
53
+ TokenOutput calldata output,
64
54
  bool doPull
65
55
  ) internal returns (uint256 netTokenOut) {
66
56
  if (doPull) {
67
- _transferFrom(IERC20(SY), msg.sender, _syOrBulk(SY, output), netSyIn);
57
+ IERC20(SY).safeTransferFrom(msg.sender, SY, netSyIn);
68
58
  }
69
59
 
70
- bool requireSwap = output.tokenRedeemSy != output.tokenOut;
71
- address receiverRedeemSy = requireSwap ? address(this) : receiver;
72
- uint256 netTokenRedeemed;
73
-
74
- if (output.bulk != address(0)) {
75
- netTokenRedeemed = IPBulkSeller(output.bulk).swapExactSyForToken(
76
- receiverRedeemSy,
60
+ if (output.tokenRedeemSy == output.tokenOut) {
61
+ netTokenOut = IStandardizedYield(SY).redeem(
62
+ receiver,
77
63
  netSyIn,
78
- 0
64
+ output.tokenRedeemSy,
65
+ output.minTokenOut,
66
+ true
79
67
  );
80
68
  } else {
81
- netTokenRedeemed = IStandardizedYield(SY).redeem(
82
- receiverRedeemSy,
69
+ uint256 netTokenRedeemed = IStandardizedYield(SY).redeem(
70
+ address(this),
83
71
  netSyIn,
84
72
  output.tokenRedeemSy,
85
- 0,
73
+ 1,
86
74
  true
87
75
  );
88
- }
89
-
90
- if (requireSwap) {
91
- _kyberswap(
92
- output.tokenRedeemSy,
93
- netTokenRedeemed,
94
- output.kyberRouter,
95
- output.kybercall
96
- );
76
+ _kyberswap(output.tokenRedeemSy, netTokenRedeemed, output.kybercall);
97
77
 
98
78
  netTokenOut = _selfBalance(output.tokenOut);
99
79
 
80
+ if (netTokenOut < output.minTokenOut)
81
+ revert Errors.RouterInsufficientTokenOut(netTokenOut, output.minTokenOut);
82
+
100
83
  _transferOut(output.tokenOut, receiver, netTokenOut);
101
- } else {
102
- netTokenOut = netTokenRedeemed;
103
84
  }
85
+ }
104
86
 
105
- if (netTokenOut < output.minTokenOut) {
106
- revert Errors.RouterInsufficientTokenOut(netTokenOut, output.minTokenOut);
87
+ /**
88
+ * @notice swap token to baseToken through Uniswap's forks -> convert to SY -> convert to PT + YT
89
+ */
90
+ function _mintPyFromToken(
91
+ address receiver,
92
+ address YT,
93
+ uint256 minPyOut,
94
+ TokenInput calldata input
95
+ ) internal returns (uint256 netPyOut) {
96
+ address SY = IPYieldToken(YT).SY();
97
+
98
+ _mintSyFromToken(YT, SY, 1, input);
99
+
100
+ netPyOut = IPYieldToken(YT).mintPY(receiver, receiver);
101
+ if (netPyOut < minPyOut) revert Errors.RouterInsufficientPYOut(netPyOut, minPyOut);
102
+ }
103
+
104
+ /**
105
+ * @notice redeem PT + YT to SY -> redeem SY to baseToken -> swap baseToken to token through Uniswap's forks.
106
+ If the YT hasn't expired, both PT & YT will be needed to redeem. Else, only PT is needed
107
+ */
108
+ function _redeemPyToToken(
109
+ address receiver,
110
+ address YT,
111
+ uint256 netPyIn,
112
+ TokenOutput calldata output,
113
+ bool doPull
114
+ ) internal returns (uint256 netTokenOut) {
115
+ address PT = IPYieldToken(YT).PT();
116
+ address SY = IPYieldToken(YT).SY();
117
+
118
+ if (doPull) {
119
+ bool needToBurnYt = (!IPYieldToken(YT).isExpired());
120
+ IERC20(PT).safeTransferFrom(msg.sender, YT, netPyIn);
121
+ if (needToBurnYt) IERC20(YT).safeTransferFrom(msg.sender, YT, netPyIn);
107
122
  }
123
+
124
+ uint256 amountSyOut = IPYieldToken(YT).redeemPY(SY); // ignore return
125
+
126
+ netTokenOut = _redeemSyToToken(receiver, SY, amountSyOut, output, false);
108
127
  }
109
128
 
110
129
  function _mintPyFromSy(
@@ -117,7 +136,7 @@ abstract contract ActionBaseMintRedeem is TokenHelper, KyberSwapHelper {
117
136
  address SY = IPYieldToken(YT).SY();
118
137
 
119
138
  if (doPull) {
120
- _transferFrom(IERC20(SY), msg.sender, YT, netSyIn);
139
+ IERC20(SY).safeTransferFrom(msg.sender, YT, netSyIn);
121
140
  }
122
141
 
123
142
  netPyOut = IPYieldToken(YT).mintPY(receiver, receiver);
@@ -128,32 +147,18 @@ abstract contract ActionBaseMintRedeem is TokenHelper, KyberSwapHelper {
128
147
  address receiver,
129
148
  address YT,
130
149
  uint256 netPyIn,
131
- uint256 minSyOut
150
+ uint256 minSyOut,
151
+ bool doPull
132
152
  ) internal returns (uint256 netSyOut) {
133
153
  address PT = IPYieldToken(YT).PT();
134
154
 
135
- _transferFrom(IERC20(PT), msg.sender, YT, netPyIn);
136
-
137
- bool needToBurnYt = (!IPYieldToken(YT).isExpired());
138
- if (needToBurnYt) _transferFrom(IERC20(YT), msg.sender, YT, netPyIn);
155
+ if (doPull) {
156
+ bool needToBurnYt = (!IPYieldToken(YT).isExpired());
157
+ IERC20(PT).safeTransferFrom(msg.sender, YT, netPyIn);
158
+ if (needToBurnYt) IERC20(YT).safeTransferFrom(msg.sender, YT, netPyIn);
159
+ }
139
160
 
140
161
  netSyOut = IPYieldToken(YT).redeemPY(receiver);
141
162
  if (netSyOut < minSyOut) revert Errors.RouterInsufficientSyOut(netSyOut, minSyOut);
142
163
  }
143
-
144
- function _syOrBulk(address SY, TokenOutput memory output)
145
- internal
146
- pure
147
- returns (address addr)
148
- {
149
- return output.bulk != address(0) ? output.bulk : SY;
150
- }
151
-
152
- function _wrapTokenOutput(
153
- address tokenOut,
154
- uint256 minTokenOut,
155
- address bulk
156
- ) internal pure returns (TokenOutput memory) {
157
- return TokenOutput(tokenOut, minTokenOut, tokenOut, bulk, address(0), EMPTY_BYTES);
158
- }
159
164
  }
@@ -575,7 +575,7 @@ library MarketApproxPtOutLib {
575
575
  {
576
576
  uint256 netSyRemaining = a.totalSyIn - netSyIn;
577
577
  uint256 newTotalPt = a.market.totalPt.Uint() - guess;
578
- uint256 netTotalSy = a.market.totalSy.Uint() + netSyIn - netSyFee;
578
+ uint256 netTotalSy = comp.totalAsset.Uint() + netSyIn - netSyFee;
579
579
 
580
580
  // it is desired that
581
581
  // netPtFromSwap / newTotalPt = netSyRemaining / netTotalSy
@@ -3,16 +3,8 @@
3
3
  pragma solidity 0.8.17;
4
4
  import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
5
5
  import "./IMultihopRouter.sol";
6
- import "./IAggregatorRouterHelper.sol";
7
- import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";
8
- import "../../core/libraries/BoringOwnableUpgradeable.sol";
9
6
 
10
- contract AggregationRouterHelper is
11
- IAggregationRouterHelper,
12
- Initializable,
13
- UUPSUpgradeable,
14
- BoringOwnableUpgradeable
15
- {
7
+ library AggregationRouterHelper {
16
8
  uint256 private constant _PARTIAL_FILL = 0x01;
17
9
  uint256 private constant _REQUIRES_EXTRA_ETH = 0x02;
18
10
  uint256 private constant _SHOULD_CLAIM = 0x04;
@@ -22,14 +14,6 @@ contract AggregationRouterHelper is
22
14
 
23
15
  uint256 private constant SLIPPAGE_RANGE = 10; // over 100
24
16
 
25
- constructor() initializer {}
26
-
27
- function initialize() external initializer {
28
- __BoringOwnable_init();
29
- }
30
-
31
- function _authorizeUpgrade(address newImplementation) internal override onlyOwner {}
32
-
33
17
  enum DexType {
34
18
  UNI,
35
19
  STABLESWAP,
@@ -25,55 +25,42 @@ pragma solidity 0.8.17;
25
25
 
26
26
  import "@openzeppelin/contracts/utils/Address.sol";
27
27
  import "../../core/libraries/TokenHelper.sol";
28
- import "./IAggregatorRouterHelper.sol";
29
- import "../../core/libraries/Errors.sol";
28
+ import "./AggregationRouterHelper.sol";
30
29
 
31
30
  struct TokenInput {
32
- // Token/Sy data
33
31
  address tokenIn;
34
32
  uint256 netTokenIn;
35
33
  address tokenMintSy;
36
- address bulk;
37
- // Kyber data
38
- address kyberRouter;
39
34
  bytes kybercall;
40
35
  }
41
36
 
42
37
  struct TokenOutput {
43
- // Token/Sy data
44
38
  address tokenOut;
45
39
  uint256 minTokenOut;
46
40
  address tokenRedeemSy;
47
- address bulk;
48
- // Kyber data
49
- address kyberRouter;
50
41
  bytes kybercall;
51
42
  }
52
43
 
53
44
  abstract contract KyberSwapHelper is TokenHelper {
54
45
  using Address for address;
46
+ address public immutable kyberSwapRouter;
55
47
 
56
- address public immutable kyberScalingLib;
57
-
58
- constructor(address _kyberScalingLib) {
59
- kyberScalingLib = _kyberScalingLib;
48
+ /// @dev since this contract will be proxied, it must not contains non-immutable variables
49
+ constructor(address _kyberSwapRouter) {
50
+ kyberSwapRouter = _kyberSwapRouter;
60
51
  }
61
52
 
62
53
  function _kyberswap(
63
54
  address tokenIn,
64
55
  uint256 amountIn,
65
- address kyberRouter,
66
56
  bytes memory rawKybercall
67
57
  ) internal {
68
- if (kyberRouter == address(0) || rawKybercall.length == 0)
69
- revert Errors.RouterKyberSwapDataZero();
70
-
71
- _safeApproveInf(tokenIn, kyberRouter);
58
+ _safeApproveInf(tokenIn, kyberSwapRouter);
72
59
 
73
- bytes memory kybercall = IAggregationRouterHelper(kyberScalingLib).getScaledInputData(
60
+ bytes memory kybercall = AggregationRouterHelper.getScaledInputData(
74
61
  rawKybercall,
75
62
  amountIn
76
63
  );
77
- kyberRouter.functionCallWithValue(kybercall, tokenIn == NATIVE ? amountIn : 0);
64
+ kyberSwapRouter.functionCallWithValue(kybercall, tokenIn == NATIVE ? amountIn : 0);
78
65
  }
79
66
  }
@@ -0,0 +1,16 @@
1
+ {
2
+ "deployer": "0x1FcCC097db89A86Bfc474A1028F93958295b1Fb7",
3
+ "network": 43113,
4
+ "splitter": "0x81357A3D4F023745a518E4F07b8714e141f84E0a",
5
+ "lzEndpoint": "0x93f54D755A063cE7bB9e6Ac47Eccc8e33411d706",
6
+ "treasury": "0x243b7CFD29AcAF9cDe98C1958902FAA3B1F095D5",
7
+ "PENDLE": "0xB7609dec1C926204c3B67345cbCd54bc4aa7a940",
8
+ "yieldContractFactory": "0xC39Efc7bb273B75B75471167Cb0EB4D3D41398a8",
9
+ "marketFactory": "0xa28B2445C8e1751733e75e6794971AEEA4806F45",
10
+ "router": "0x37e0018919832abC3EDfbfE700df5bb15ed0682D",
11
+ "routerStatic": "0xFE1129fFa39A2660f5A99eF96343F06D472f781B",
12
+ "vePendle": "0x74E578b27aD53f23387b9Dcb7902F7Def6D4dB7c",
13
+ "senderEndpoint": "0xa87c479d77040d1c5433b9cD3b88b2B562A7cb10",
14
+ "votingController": "0x0b24c845feF83f8403EEF3922F3B53a05182512A",
15
+ "gaugeController": "0xf0cFb8781F17d51523922Ace5eB69a4b42e35a15"
16
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "implicitSwapfeeContract": "0x6d247b1c044fA1E22e6B04fA9F71Baf99EB29A9f"
3
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "symbol": "SY-qiUSDC",
3
+ "SY": "0x922FD937e7C59E58F2E425260fb21Ddc8486BcDE",
4
+ "expiry": 1675382400,
5
+ "PT": "0x3cBf269875C4eFf9374AF93e736f3c3487cEA993",
6
+ "YT": "0x8700D3bb93E21dEAcB84c006106B3b914Cca32e2",
7
+ "market": "0x20A564b60A21c107eAC5FbFea54D4Aad6db452A1"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "symbol": "SY-qiWETH",
3
+ "SY": "0xF82E799c78B53c814dBf101431cC24F121Fa1098",
4
+ "expiry": 1669852800,
5
+ "PT": "0xEAa59b2532D7e49b6f8CAC1b4AdAb6a6F868C7eB",
6
+ "YT": "0xb899c25fF3c73127F0B96aDAb9997a703C3Fd88D",
7
+ "market": "0xA9905Bd9d4813a78c4F9Ed4Ba285b49DE50F7406"
8
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "tokens": {
3
+ "fundKeeper": "0x45e03eB183962884d50eC0Af39B03970333426cb",
4
+ "faucet": "0xf9d2A793b446D200deC9FBB6f29a9DadcD0521cC",
5
+ "WAVAX": "0xe43a7aD7C09d8fAE3ADe7361f0b847b23adD5094",
6
+ "DAI": "0xCd3748CE3Bf75A01D99Bf301668E0748558a592C",
7
+ "USDC": "0xc2A6b8d7d0FAB3749A6Bda84cEdb58D2d58f045e",
8
+ "USDT": "0x9BE875cdBB8409DbC1a553c8ddc1FC05cdDF80Ce",
9
+ "WBTC": "0x82c18D07253603D04d25C8B1F1E60134a59C39ce",
10
+ "WETH": "0x1e2e40697603CA5b5ffc102c9D7A3310EA3f2Aa3",
11
+ "qiUSDC": "0xEE3a174F1478198fBc669132B1e2cc13B5686F94",
12
+ "qiWETH": "0xE5710EC5e4CeB255fb14d2c2BFC93E64d0c30A2c",
13
+ "qiAVAX": "0xf9aEd3b927dce44C6d53B334Cb759f4D230D9b9c"
14
+ },
15
+ "benqi": {
16
+ "comptroller": "0x4Af3e9CA6f86E655C01f03C13519BcAF867286EE",
17
+ "QI": "0x63554C4d2038c9B7973190f3E41f5158939Fe972",
18
+ "interestRateModel": "0xd66C253151539b3bE0a0C11699fB024E054227d4",
19
+ "qiErc20Impl": "0x184622Dd7B63299F87CBf21f11FF25c9c302fd5d",
20
+ "oracle": "0x44b789cBC190b7888d438cEb58f1Eb8A3Ae2d897"
21
+ }
22
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "deployer": "0x1FcCC097db89A86Bfc474A1028F93958295b1Fb7",
3
+ "network": 80001,
4
+ "splitter": "0x07D39E2025Fd0B1F0065FE39172df246f063BB15",
5
+ "lzEndpoint": "0xf69186dfBa60DdB133E91E9A4B5673624293d8F8",
6
+ "treasury": "0x47F77E3fAC652E05FFEB7E8E1cEf69E775628B24",
7
+ "PENDLE": "0x5FDA5b3b05B2884F9f028550069B9D321E84814A",
8
+ "yieldContractFactory": "0x8B3C5BD39E6B82272eCf0d6828D458536dc44dea",
9
+ "marketFactory": "0xf963474FAe462B06B026DE500f605B3578B66c66",
10
+ "router": "0x7cD7cc0990A0F61532410fE11f884f2caD7e59D3",
11
+ "routerStatic": "0xc9132D222e681c86A522120B41585B87992D61b9",
12
+ "receiverEndpoint": "0x57D55237374b0D1AFdac5E25F16A4EE5C57A627c",
13
+ "vePendle": "0x89Cec94a14FAB1cb27C1A5cd32af05ef448d9829",
14
+ "gaugeController": "0x8a6c59A80aA3Bbf32E7b3F0C359Eb528Cf6f7288"
15
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "symbol": "SY-qiUSDC",
3
+ "SY": "0x95867d15D0a6F77E32c684022D97e882A71Bd630",
4
+ "expiry": 1675382400,
5
+ "PT": "0x9d9381D466e46525eDDac3a3dC71EC64C3c3d87c",
6
+ "YT": "0xa693a38f9261Ee45040EB2b8125D8B718b83f491",
7
+ "market": "0x90326785175652D74a0AA35Af8fb86819513D939"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "symbol": "SY-qiWETH",
3
+ "SY": "0x501E089e6BD6b78e6E435C15118E52c665931850",
4
+ "expiry": 1669852800,
5
+ "PT": "0x5a6049e6dB4032Dfa7A27b4071DB6C4a5A9A4707",
6
+ "YT": "0x885AdC68FC7F5715A32eb03eA1c6F17F396c715A",
7
+ "market": "0xc86283109a074E8021a50717e3d86D3f78184b18"
8
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "tokens": {
3
+ "fundKeeper": "0x7D301Cc4F91A9eDd8EDE1801344bd6516b5FA3d2",
4
+ "faucet": "0x35AC4A286F1f1234f09Ff43f42B1f7767c6fAA91",
5
+ "WAVAX": "0xdF3601014686674e53d1Fa52F7602525483F9122",
6
+ "DAI": "0x829bF32457394D1f1fA8C1b151cE5017bb04C17D",
7
+ "USDC": "0x5Ea8c8e02c2D413165C1ADcBb6916B0851f6cd73",
8
+ "USDT": "0xAFC1ac698E9b54C240e6Ebc7d64200BB84f2E4cd",
9
+ "WBTC": "0x4d89990738A071B9E597Ea442f2ba58e6EA97184",
10
+ "WETH": "0x1A6fCc85557BC4fB7B534ed835a03EF056552D52",
11
+ "qiUSDC": "0x76818c92936662e9b24f74395f38634C35604720",
12
+ "qiWETH": "0x0b9d0756AeaD1cBc6bC4e9f30FeEa377a73d407F",
13
+ "qiAVAX": "0x98030D8f342aA21424B07059Cb1405A179A1F668"
14
+ },
15
+ "benqi": {
16
+ "comptroller": "0x0d18d7a0B27CB5C2F33cDc0a087B7182a72e0fAb",
17
+ "QI": "0x9F10C77EF63a5706e53D82B249D9195BeB5774fd",
18
+ "interestRateModel": "0xfF334644479e70ae5C9545218574B17e9aF7A5DD",
19
+ "qiErc20Impl": "0xA3972f97074552de27cF747A126b2c5F36935818",
20
+ "oracle": "0x324D838b26Eb73786bDBBc53bb0682F1EBB50603"
21
+ }
22
+ }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@pendle/core-v2",
3
3
  "description": "Core smart contracts of Pendle Protocol.",
4
4
  "license": "BUSL-1.1",
5
- "version": "0.15.2-mainnet",
5
+ "version": "0.16.0-testnet",
6
6
  "homepage": "https://pendle.finance",
7
7
  "keywords": [
8
8
  "pendle",
@@ -44,7 +44,6 @@
44
44
  },
45
45
  "packageManager": "yarn@3.2.2",
46
46
  "dependencies": {
47
- "@openzeppelin/contracts": "^4.7.3",
48
- "@openzeppelin/contracts-upgradeable": "^4.7.3"
47
+ "@openzeppelin/contracts": "^4.7.3"
49
48
  }
50
49
  }