@pendle/core-v2 0.15.3-mainnet → 0.16.0-testnet-daily

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 (408) 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 -15
  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 -15
  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 -13
  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 -15
  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 +2 -15
  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/LiquidityMining/libraries/WeekMath.sol/WeekMath.json +2 -2
  35. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  37. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  39. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  42. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +17 -77
  44. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.json +2 -2
  48. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  52. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  53. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
  54. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSY.sol/Pendle3CrvAndTokenSY.dbg.json +4 -0
  55. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSY.sol/Pendle3CrvAndTokenSY.json +1018 -0
  56. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +4 -0
  57. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/{base → ConvexCurveLP}/PendleConvexLPSY.sol/PendleConvexLPSY.json +1 -1
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/Pendle3CrvHelper.sol/Pendle3CrvHelper.dbg.json +4 -0
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/Pendle3CrvHelper.sol/Pendle3CrvHelper.json +76 -0
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  62. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  64. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -15
  65. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  66. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +4 -85
  67. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  68. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +4 -17
  69. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  70. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.json +2 -2
  71. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
  72. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.json +2 -2
  73. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
  74. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.json +38 -3
  75. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
  76. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.json +2 -2
  77. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
  78. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.json +0 -13
  79. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
  80. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.json +2 -2
  81. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  82. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +31 -300
  83. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  84. package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
  85. package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.json +1 -1
  86. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
  87. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.json +85 -39
  88. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
  89. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  90. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  91. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json +17 -91
  92. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  93. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json +0 -50
  94. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  95. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.json +0 -20
  96. package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +1 -1
  97. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  98. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.json +0 -20
  99. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  100. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +17 -181
  101. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  102. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  103. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.json +2 -2
  104. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  105. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  106. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  107. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  108. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.json +1 -1
  109. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  111. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  112. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  113. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +1 -1
  114. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  115. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.json +0 -45
  116. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  117. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +1 -1
  118. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  119. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  120. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.json +2 -15
  121. package/build/artifacts/contracts/offchain-helpers/ImplicitSwapfeeContract.sol/ImplicitSwapfeeContract.dbg.json +4 -0
  122. package/build/artifacts/contracts/offchain-helpers/ImplicitSwapfeeContract.sol/ImplicitSwapfeeContract.json +182 -0
  123. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
  124. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +80 -2
  125. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  126. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +60 -299
  127. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  128. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +41 -118
  129. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +1 -1
  130. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.json +2 -2
  131. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  132. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +24 -61
  133. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  134. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +2 -2
  135. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  136. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +24 -31
  137. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +1 -1
  138. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +2 -2
  139. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  140. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +24 -31
  141. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  142. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -15
  143. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  144. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json +1 -1
  145. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  146. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  147. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  148. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  149. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +1 -1
  150. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +2 -191
  151. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +1 -1
  152. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.json +1 -1
  153. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol +1 -1
  154. package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +1 -1
  155. package/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +1 -1
  156. package/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol +3 -3
  157. package/contracts/LiquidityMining/libraries/WeekMath.sol +1 -1
  158. package/contracts/core/Market/PendleMarket.sol +7 -18
  159. package/contracts/core/Market/PendleMarketFactory.sol +5 -15
  160. package/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSY.sol +167 -0
  161. package/contracts/core/StandardizedYield/implementations/Convex/{base → ConvexCurveLP}/PendleConvexLPSY.sol +4 -2
  162. package/contracts/core/StandardizedYield/implementations/Convex/Pendle3CrvHelper.sol +83 -0
  163. package/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol +4 -19
  164. package/contracts/core/YieldContracts/PendlePrincipalToken.sol +3 -3
  165. package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +7 -21
  166. package/contracts/core/YieldContracts/PendleYieldToken.sol +21 -54
  167. package/contracts/core/erc20/PendleERC20.sol +7 -4
  168. package/contracts/core/libraries/BaseSplitCodeFactory.sol +1 -1
  169. package/contracts/core/libraries/BoringOwnableUpgradeable.sol +1 -1
  170. package/contracts/core/libraries/Errors.sol +2 -28
  171. package/contracts/core/libraries/TokenHelper.sol +0 -9
  172. package/contracts/interfaces/ConvexCurve/IBooster.sol +1 -1
  173. package/contracts/interfaces/Curve/ICrvPool.sol +31 -12
  174. package/contracts/interfaces/IPActionAddRemoveLiq.sol +5 -3
  175. package/contracts/interfaces/IPActionMintRedeem.sol +0 -2
  176. package/contracts/interfaces/IPMarketFactory.sol +1 -1
  177. package/contracts/interfaces/IPYieldContractFactory.sol +1 -1
  178. package/contracts/interfaces/IStETH.sol +0 -6
  179. package/contracts/interfaces/IStandardizedYield.sol +10 -15
  180. package/contracts/offchain-helpers/ImplicitSwapfeeContract.sol +30 -0
  181. package/contracts/offchain-helpers/MarketMathStatic.sol +173 -0
  182. package/contracts/offchain-helpers/RouterStatic.sol +51 -190
  183. package/contracts/router/ActionAddRemoveLiq.sol +52 -71
  184. package/contracts/router/ActionCallback.sol +8 -4
  185. package/contracts/router/ActionMintRedeem.sol +18 -27
  186. package/contracts/router/ActionSwapPT.sol +9 -8
  187. package/contracts/router/ActionSwapPTYT.sol +7 -3
  188. package/contracts/router/ActionSwapYT.sol +10 -15
  189. package/contracts/router/PendleRouter.sol +0 -3
  190. package/contracts/router/base/ActionBaseMintRedeem.sol +83 -78
  191. package/contracts/router/base/MarketApproxLib.sol +1 -1
  192. package/contracts/router/kyberswap/AggregationRouterHelper.sol +1 -17
  193. package/contracts/router/kyberswap/KyberSwapHelper.sol +8 -21
  194. package/deployments/43113-core.json +16 -0
  195. package/deployments/43113-helper.json +3 -0
  196. package/deployments/43113-markets/benqi-market-QI-USDC-FEB-2ND.json +8 -0
  197. package/deployments/43113-markets/benqi-market-QI-WETH-DEC-1ST.json +8 -0
  198. package/deployments/43113-testenv.json +22 -0
  199. package/deployments/80001-core.json +15 -0
  200. package/deployments/80001-testenv.json +22 -0
  201. package/package.json +2 -3
  202. package/typechain-types/ActionAddRemoveLiq.ts +52 -64
  203. package/typechain-types/ActionBaseMintRedeem.ts +8 -8
  204. package/typechain-types/ActionMintRedeem.ts +16 -48
  205. package/typechain-types/ActionSwapPT.ts +12 -34
  206. package/typechain-types/ActionSwapYT.ts +12 -34
  207. package/typechain-types/AggregationRouterHelper.ts +3 -287
  208. package/typechain-types/BaseSplitCodeFactoryContract.ts +0 -9
  209. package/typechain-types/BoringOwnableUpgradeable.ts +0 -9
  210. package/typechain-types/IBooster.ts +3 -9
  211. package/typechain-types/ICrvPool.ts +172 -69
  212. package/typechain-types/ILooksStaking.ts +0 -27
  213. package/typechain-types/IPActionAddRemoveLiq.ts +44 -56
  214. package/typechain-types/IPActionMintRedeem.ts +8 -40
  215. package/typechain-types/IPActionSwapPT.ts +4 -26
  216. package/typechain-types/IPActionSwapYT.ts +4 -26
  217. package/typechain-types/IPAllAction.ts +54 -76
  218. package/typechain-types/IPMarketFactory.ts +2 -2
  219. package/typechain-types/IPYieldContractFactory.ts +3 -3
  220. package/typechain-types/IStETH.ts +0 -56
  221. package/typechain-types/KyberSwapHelper.ts +8 -8
  222. package/typechain-types/MarketMathStatic.ts +117 -0
  223. package/typechain-types/PendleFeeDistributor.ts +0 -9
  224. package/typechain-types/PendleFeeDistributorFactory.ts +0 -9
  225. package/typechain-types/PendleGaugeControllerBaseUpg.ts +0 -9
  226. package/typechain-types/PendleGaugeControllerMainchainUpg.ts +0 -9
  227. package/typechain-types/PendleGaugeControllerSidechainUpg.ts +0 -9
  228. package/typechain-types/PendleMarketFactory.ts +2 -51
  229. package/typechain-types/PendleMsgReceiveEndpointUpg.ts +0 -9
  230. package/typechain-types/PendleMsgSendEndpointUpg.ts +0 -9
  231. package/typechain-types/PendleMsgSenderAppUpg.ts +0 -9
  232. package/typechain-types/PendlePrincipalToken.ts +0 -9
  233. package/typechain-types/PendleRouter.ts +0 -9
  234. package/typechain-types/PendleVotingControllerUpg.ts +0 -9
  235. package/typechain-types/PendleYieldContractFactory.ts +8 -57
  236. package/typechain-types/PendleYieldToken.ts +0 -21
  237. package/typechain-types/RouterStatic.ts +20 -302
  238. package/typechain-types/VotingEscrowPendleMainchain.ts +0 -9
  239. package/typechain-types/VotingEscrowPendleSidechain.ts +0 -9
  240. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +59 -122
  241. package/typechain-types/factories/ActionBaseMintRedeem__factory.ts +1 -1
  242. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  243. package/typechain-types/factories/ActionMintRedeem__factory.ts +42 -65
  244. package/typechain-types/factories/ActionMisc__factory.ts +1 -1
  245. package/typechain-types/factories/ActionSwapPTYT__factory.ts +1 -1
  246. package/typechain-types/factories/ActionSwapPT__factory.ts +42 -35
  247. package/typechain-types/factories/ActionSwapYT__factory.ts +42 -35
  248. package/typechain-types/factories/AggregationRouterHelper__factory.ts +1 -190
  249. package/typechain-types/factories/BaseSplitCodeFactoryContract__factory.ts +1 -14
  250. package/typechain-types/factories/BaseSplitCodeFactory__factory.ts +1 -1
  251. package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +1 -1
  252. package/typechain-types/factories/BoringOwnableUpgradeable__factory.ts +0 -13
  253. package/typechain-types/factories/ERC20__factory.ts +1 -1
  254. package/typechain-types/factories/Errors__factory.ts +30 -299
  255. package/typechain-types/factories/IBooster__factory.ts +1 -1
  256. package/typechain-types/factories/ICrvPool__factory.ts +85 -39
  257. package/typechain-types/factories/ILooksStaking__factory.ts +0 -7
  258. package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +17 -91
  259. package/typechain-types/factories/IPActionMintRedeem__factory.ts +0 -50
  260. package/typechain-types/factories/IPActionSwapPT__factory.ts +0 -20
  261. package/typechain-types/factories/IPActionSwapYT__factory.ts +0 -20
  262. package/typechain-types/factories/IPAllAction__factory.ts +17 -181
  263. package/typechain-types/factories/IPMarketFactory__factory.ts +2 -2
  264. package/typechain-types/factories/IPYieldContractFactory__factory.ts +1 -1
  265. package/typechain-types/factories/IStETH__factory.ts +0 -45
  266. package/typechain-types/factories/ImplicitSwapfeeContract__factory.ts +1 -1
  267. package/typechain-types/factories/KyberSwapHelper__factory.ts +1 -1
  268. package/typechain-types/factories/MarketMathStatic__factory.ts +79 -1
  269. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  270. package/typechain-types/factories/Pendle3CrvAndTokenSY__factory.ts +1 -1
  271. package/typechain-types/factories/PendleERC20Permit__factory.ts +1 -1
  272. package/typechain-types/factories/PendleERC20__factory.ts +1 -1
  273. package/typechain-types/factories/PendleFeeDistributorFactory__factory.ts +1 -14
  274. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -14
  275. package/typechain-types/factories/PendleGaugeControllerBaseUpg__factory.ts +0 -13
  276. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -14
  277. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -14
  278. package/typechain-types/factories/PendleMarketFactory__factory.ts +16 -76
  279. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  280. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -14
  281. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -14
  282. package/typechain-types/factories/PendleMsgSenderAppUpg__factory.ts +0 -13
  283. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -14
  284. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  285. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  286. package/typechain-types/factories/PendleRouter__factory.ts +1 -14
  287. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -14
  288. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  289. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +3 -84
  290. package/typechain-types/factories/PendleYieldToken__factory.ts +3 -16
  291. package/typechain-types/factories/RouterStatic__factory.ts +1 -244
  292. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -14
  293. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -14
  294. package/typechain-types/hardhat.d.ts +17 -233
  295. package/typechain-types/index.ts +6 -50
  296. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +0 -4
  297. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +0 -699
  298. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +0 -4
  299. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +0 -515
  300. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +0 -4
  301. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +0 -10
  302. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +0 -4
  303. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +0 -1003
  304. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +0 -4
  305. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +0 -1068
  306. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +0 -4
  307. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.json +0 -10
  308. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +0 -4
  309. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.json +0 -10
  310. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +0 -4
  311. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.json +0 -10
  312. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +0 -4
  313. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +0 -4
  314. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +0 -856
  315. package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.dbg.json +0 -4
  316. package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.json +0 -213
  317. package/build/artifacts/contracts/interfaces/ILooksFeeSharing.sol/ILooksFeeSharing.dbg.json +0 -4
  318. package/build/artifacts/contracts/interfaces/ILooksFeeSharing.sol/ILooksFeeSharing.json +0 -30
  319. package/build/artifacts/contracts/interfaces/ILooksStaking.sol/ILooksStaking.dbg.json +0 -4
  320. package/build/artifacts/contracts/interfaces/ILooksStaking.sol/ILooksStaking.json +0 -76
  321. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +0 -4
  322. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.json +0 -173
  323. package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.dbg.json +0 -4
  324. package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.json +0 -86
  325. package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.dbg.json +0 -4
  326. package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.json +0 -34
  327. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +0 -4
  328. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +0 -35
  329. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.dbg.json +0 -4
  330. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.json +0 -35
  331. package/contracts/core/BulkSeller/BulkSeller.sol +0 -259
  332. package/contracts/core/BulkSeller/BulkSellerFactory.sol +0 -88
  333. package/contracts/core/BulkSeller/BulkSellerMathCore.sol +0 -143
  334. package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol +0 -102
  335. package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol +0 -160
  336. package/contracts/core/StandardizedYield/implementations/Convex/README.md +0 -29
  337. package/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol +0 -215
  338. package/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol +0 -127
  339. package/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol +0 -152
  340. package/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol +0 -122
  341. package/contracts/interfaces/Curve/ITriCrvPool.sol +0 -41
  342. package/contracts/interfaces/ILooksFeeSharing.sol +0 -5
  343. package/contracts/interfaces/ILooksStaking.sol +0 -13
  344. package/contracts/interfaces/IPBulkSeller.sol +0 -28
  345. package/contracts/interfaces/IPBulkSellerFactory.sol +0 -12
  346. package/contracts/interfaces/IPBulkSellerSYCallback.sol +0 -10
  347. package/contracts/offchain-helpers/BulkSellerOffchain.sol +0 -43
  348. package/contracts/router/kyberswap/IAggregatorRouterHelper.sol +0 -10
  349. package/deployments/1-core.json +0 -17
  350. package/deployments/1-markets/FRAX_30_MAR_23.json +0 -9
  351. package/deployments/1-markets/LOOKS_30_MAR_23.json +0 -8
  352. package/deployments/1-markets/STETH_MARCH_30.json +0 -8
  353. package/deployments/1-markets/USDD_MARCH_30.json +0 -9
  354. package/deployments/1-offchain-helper.json +0 -3
  355. package/typechain-types/AccessControl.ts +0 -360
  356. package/typechain-types/AccessControlUpgradeable.ts +0 -369
  357. package/typechain-types/BeaconProxy.ts +0 -97
  358. package/typechain-types/BulkSeller.ts +0 -777
  359. package/typechain-types/BulkSellerFactory.ts +0 -707
  360. package/typechain-types/BulkSellerOffchain.ts +0 -117
  361. package/typechain-types/ContextUpgradeable.ts +0 -68
  362. package/typechain-types/Curve3CrvPoolHelper.ts +0 -236
  363. package/typechain-types/CurveFraxUsdcPoolHelper.ts +0 -158
  364. package/typechain-types/CurveUsdd3CrvPoolHelper.ts +0 -184
  365. package/typechain-types/ERC165.ts +0 -102
  366. package/typechain-types/ERC165Upgradeable.ts +0 -113
  367. package/typechain-types/IAccessControl.ts +0 -305
  368. package/typechain-types/IAccessControlUpgradeable.ts +0 -305
  369. package/typechain-types/IAggregationRouterHelper.ts +0 -108
  370. package/typechain-types/IERC165.ts +0 -102
  371. package/typechain-types/IERC165Upgradeable.ts +0 -102
  372. package/typechain-types/IPBulkSeller.ts +0 -290
  373. package/typechain-types/IPBulkSellerCallback.ts +0 -115
  374. package/typechain-types/IPBulkSellerFactory.ts +0 -147
  375. package/typechain-types/ITriCrvPool.ts +0 -345
  376. package/typechain-types/Initializable.ts +0 -68
  377. package/typechain-types/PendleConvex2TokensSY.ts +0 -1215
  378. package/typechain-types/PendleCurveFraxUsdcSY.ts +0 -1228
  379. package/typechain-types/PendleCurveUsdd3CrvSY.ts +0 -1299
  380. package/typechain-types/PendleLooksStakingSY.ts +0 -1052
  381. package/typechain-types/ReentrancyGuardUpgradeable.ts +0 -68
  382. package/typechain-types/factories/AccessControlUpgradeable__factory.ts +0 -247
  383. package/typechain-types/factories/AccessControl__factory.ts +0 -227
  384. package/typechain-types/factories/BeaconProxy__factory.ts +0 -141
  385. package/typechain-types/factories/BulkSellerFactory__factory.ts +0 -568
  386. package/typechain-types/factories/BulkSellerOffchain__factory.ts +0 -88
  387. package/typechain-types/factories/BulkSeller__factory.ts +0 -749
  388. package/typechain-types/factories/ContextUpgradeable__factory.ts +0 -39
  389. package/typechain-types/factories/Curve3CrvPoolHelper__factory.ts +0 -220
  390. package/typechain-types/factories/CurveFraxUsdcPoolHelper__factory.ts +0 -146
  391. package/typechain-types/factories/CurveUsdd3CrvPoolHelper__factory.ts +0 -172
  392. package/typechain-types/factories/ERC165Upgradeable__factory.ts +0 -58
  393. package/typechain-types/factories/ERC165__factory.ts +0 -39
  394. package/typechain-types/factories/IAccessControlUpgradeable__factory.ts +0 -202
  395. package/typechain-types/factories/IAccessControl__factory.ts +0 -198
  396. package/typechain-types/factories/IAggregationRouterHelper__factory.ts +0 -54
  397. package/typechain-types/factories/IERC165Upgradeable__factory.ts +0 -45
  398. package/typechain-types/factories/IERC165__factory.ts +0 -42
  399. package/typechain-types/factories/IPBulkSellerCallback__factory.ts +0 -53
  400. package/typechain-types/factories/IPBulkSellerFactory__factory.ts +0 -101
  401. package/typechain-types/factories/IPBulkSeller__factory.ts +0 -185
  402. package/typechain-types/factories/ITriCrvPool__factory.ts +0 -225
  403. package/typechain-types/factories/Initializable__factory.ts +0 -36
  404. package/typechain-types/factories/PendleConvex2TokensSY__factory.ts +0 -1093
  405. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +0 -1068
  406. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +0 -1133
  407. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +0 -937
  408. 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": "0xfD5EDf66bf3A2E5c2fBd5d4be243c5802e699b6a",
9
+ "marketFactory": "0x6aE219f9B761D8D94780FE0F3EC7Ab4151842dBD",
10
+ "router": "0x86E983e99402663bBd50eA6F7e77FaA9219305CC",
11
+ "routerStatic": "0xaB0Aa804291f7090F423D27e3eaEB5E4434CC731",
12
+ "vePendle": "0x8391B95F016FFE2a4c32F69B4363ca55470fDfe1",
13
+ "senderEndpoint": "0x8E7E8bdbaA68bDCcAFC3586d7fDa43bb1310Ec71",
14
+ "votingController": "0xD6d778846B2d4A013d44fAF346FcdFa34b58E222",
15
+ "gaugeController": "0x2324819386c3867494c7654Bdc0B6D93B6FecD13"
16
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "implicitSwapfeeContract": "0x6d247b1c044fA1E22e6B04fA9F71Baf99EB29A9f"
3
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "symbol": "SY-qiUSDC",
3
+ "SY": "0xFFc4208cC825baD56909C7fbff63BB43286D4c67",
4
+ "expiry": 1675382400,
5
+ "PT": "0x7354104DCE0cED4Bbf6c7798a9D52Adb1340B1c0",
6
+ "YT": "0x869BD2A765c43a9811cc9a8B2ABCE5C78a0aa004",
7
+ "market": "0x3Ca64162AD9A6D25B37c67FF4b474cb925d2cCA9"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "symbol": "SY-qiWETH",
3
+ "SY": "0xC4907BBd480F53Ae5dA80F723975F8c2125783eC",
4
+ "expiry": 1669852800,
5
+ "PT": "0xa1da6AFaE358135b1e9E43aCF0C00d0E2A501F84",
6
+ "YT": "0x818dd5ad650B064A5314F6df60CDdC2a63272b58",
7
+ "market": "0xAc92B8B795f9DBb784e97fC69cDBF4167621D458"
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": "0x335289ccb76C1A11aDB82E2aa2ab39a83DdcC49a",
5
+ "lzEndpoint": "0xf69186dfBa60DdB133E91E9A4B5673624293d8F8",
6
+ "treasury": "0xdC1b3B6b2091a3bB2c7439005A24F33a9A4f87Be",
7
+ "PENDLE": "0x7b5b5105dFBacc2A84d00406FEa5B454a73979a4",
8
+ "yieldContractFactory": "0xeC1AF9aA4801E44879c5cB800887478d98De37c0",
9
+ "marketFactory": "0xA91817a07A7A8020972E5115196f59E347C35b99",
10
+ "router": "0xa96527ddb4353559132db1CB347978fc552ce1FF",
11
+ "routerStatic": "0x00Da82d7B30D39B896380EDf460425F7556BfDb6",
12
+ "receiverEndpoint": "0xa0c3840e5FD27f3C51bda5f0b6a75738ddeB6062",
13
+ "vePendle": "0x1367c812418c67895C2474169F6753272be8B5f4",
14
+ "gaugeController": "0x98F5Ff866AAfF8A4109380CE2dC02CA6644AD81d"
15
+ }
@@ -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.3-mainnet",
5
+ "version": "0.16.0-testnet-daily",
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
  }