@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
@@ -1,35 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "BulkSellerOffchain",
4
- "sourceName": "contracts/offchain-helpers/BulkSellerOffchain.sol",
5
- "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "contract IPBulkSeller",
10
- "name": "bulk",
11
- "type": "address"
12
- }
13
- ],
14
- "name": "calcCurrentRates",
15
- "outputs": [
16
- {
17
- "internalType": "uint256",
18
- "name": "rateTokenToSy",
19
- "type": "uint256"
20
- },
21
- {
22
- "internalType": "uint256",
23
- "name": "rateSyToToken",
24
- "type": "uint256"
25
- }
26
- ],
27
- "stateMutability": "view",
28
- "type": "function"
29
- }
30
- ],
31
- "bytecode": "0x608060405234801561001057600080fd5b506104cd806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c307974d14610030575b600080fd5b61004361003e366004610351565b61005c565b6040805192835260208301919091520160405180910390f35b6000806000836001600160a01b0316632778c3346040518163ffffffff1660e01b815260040160a060405180830381865afa15801561009f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100c39190610375565b90506000846001600160a01b031663afd27bf56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610105573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012991906103f2565b90506000856001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561016b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061018f91906103f2565b905060006101ae846020015185606001516102ee90919063ffffffff16565b84604001516101bd9190610425565b90506000836001600160a01b031663b8f82b2684846040518363ffffffff1660e01b81526004016101ef929190610438565b602060405180830381865afa15801561020c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102309190610451565b905061023c8183610313565b855160408701519198506000935061025492506102ee565b84606001516102639190610425565b90506000836001600160a01b031663cbe52ae384846040518363ffffffff1660e01b8152600401610295929190610438565b602060405180830381865afa1580156102b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d69190610451565b90506102e28183610313565b95505050505050915091565b6000806102fb838561046a565b9050670de0b6b3a7640000815b049150505b92915050565b600080610328670de0b6b3a76400008561046a565b905082818161030857610308610481565b6001600160a01b038116811461034e57600080fd5b50565b60006020828403121561036357600080fd5b813561036e81610339565b9392505050565b600060a0828403121561038757600080fd5b60405160a081016001600160401b03811182821017156103b757634e487b7160e01b600052604160045260246000fd5b806040525082518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b60006020828403121561040457600080fd5b815161036e81610339565b634e487b7160e01b600052601160045260246000fd5b8082018082111561030d5761030d61040f565b6001600160a01b03929092168252602082015260400190565b60006020828403121561046357600080fd5b5051919050565b808202811582820484141761030d5761030d61040f565b634e487b7160e01b600052601260045260246000fdfea264697066735822122035b8e09de0ea554e568eb1df3a9f98eaf9b4e3a4992f28409f4c399fded48ffa64736f6c63430008110033",
32
- "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c307974d14610030575b600080fd5b61004361003e366004610351565b61005c565b6040805192835260208301919091520160405180910390f35b6000806000836001600160a01b0316632778c3346040518163ffffffff1660e01b815260040160a060405180830381865afa15801561009f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100c39190610375565b90506000846001600160a01b031663afd27bf56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610105573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012991906103f2565b90506000856001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561016b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061018f91906103f2565b905060006101ae846020015185606001516102ee90919063ffffffff16565b84604001516101bd9190610425565b90506000836001600160a01b031663b8f82b2684846040518363ffffffff1660e01b81526004016101ef929190610438565b602060405180830381865afa15801561020c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102309190610451565b905061023c8183610313565b855160408701519198506000935061025492506102ee565b84606001516102639190610425565b90506000836001600160a01b031663cbe52ae384846040518363ffffffff1660e01b8152600401610295929190610438565b602060405180830381865afa1580156102b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d69190610451565b90506102e28183610313565b95505050505050915091565b6000806102fb838561046a565b9050670de0b6b3a7640000815b049150505b92915050565b600080610328670de0b6b3a76400008561046a565b905082818161030857610308610481565b6001600160a01b038116811461034e57600080fd5b50565b60006020828403121561036357600080fd5b813561036e81610339565b9392505050565b600060a0828403121561038757600080fd5b60405160a081016001600160401b03811182821017156103b757634e487b7160e01b600052604160045260246000fd5b806040525082518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b60006020828403121561040457600080fd5b815161036e81610339565b634e487b7160e01b600052601160045260246000fd5b8082018082111561030d5761030d61040f565b6001600160a01b03929092168252602082015260400190565b60006020828403121561046357600080fd5b5051919050565b808202811582820484141761030d5761030d61040f565b634e487b7160e01b600052601260045260246000fdfea264697066735822122035b8e09de0ea554e568eb1df3a9f98eaf9b4e3a4992f28409f4c399fded48ffa64736f6c63430008110033",
33
- "linkReferences": {},
34
- "deployedLinkReferences": {}
35
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/347045efedb8b8a2870de8acc734e696.json"
4
- }
@@ -1,35 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "IAggregationRouterHelper",
4
- "sourceName": "contracts/router/kyberswap/IAggregatorRouterHelper.sol",
5
- "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "bytes",
10
- "name": "kybercall",
11
- "type": "bytes"
12
- },
13
- {
14
- "internalType": "uint256",
15
- "name": "newAmount",
16
- "type": "uint256"
17
- }
18
- ],
19
- "name": "getScaledInputData",
20
- "outputs": [
21
- {
22
- "internalType": "bytes",
23
- "name": "",
24
- "type": "bytes"
25
- }
26
- ],
27
- "stateMutability": "pure",
28
- "type": "function"
29
- }
30
- ],
31
- "bytecode": "0x",
32
- "deployedBytecode": "0x",
33
- "linkReferences": {},
34
- "deployedLinkReferences": {}
35
- }
@@ -1,259 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.17;
3
-
4
- import "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol";
5
-
6
- import "../../interfaces/IStandardizedYield.sol";
7
- import "../../interfaces/IPBulkSellerFactory.sol";
8
- import "../../interfaces/IPBulkSeller.sol";
9
-
10
- import "../libraries/TokenHelper.sol";
11
- import "../libraries/math/Math.sol";
12
- import "../libraries/Errors.sol";
13
-
14
- import "./BulkSellerMathCore.sol";
15
-
16
- contract BulkSeller is IPBulkSeller, Initializable, TokenHelper, ReentrancyGuardUpgradeable {
17
- using Math for uint256;
18
- using SafeERC20 for IERC20;
19
- using BulkSellerMathCore for BulkSellerState;
20
-
21
- event SwapExactTokenForSy(address receiver, uint256 netTokenIn, uint256 netSyOut);
22
- event SwapExactSyForToken(address receiver, uint256 netSyIn, uint256 netTokenOut);
23
- event RateUpdated(
24
- uint256 newRateTokenToSy,
25
- uint256 newRateSyToToken,
26
- uint256 oldRateTokenToSy,
27
- uint256 oldRateSyToToken
28
- );
29
- event ReBalanceTokenToSy(
30
- uint256 netTokenDeposit,
31
- uint256 netSyFromToken,
32
- uint256 newTokenProp,
33
- uint256 oldTokenProp
34
- );
35
- event ReBalanceSyToToken(
36
- uint256 netSyRedeem,
37
- uint256 netTokenFromSy,
38
- uint256 newTokenProp,
39
- uint256 oldTokenProp
40
- );
41
- event ReserveUpdated(uint256 totalToken, uint256 totalSy);
42
- event FeeRateUpdated(uint256 newFeeRate, uint256 oldFeeRate);
43
-
44
- struct BulkSellerStorage {
45
- uint128 rateTokenToSy;
46
- uint128 rateSyToToken;
47
- uint128 totalSy;
48
- uint128 totalToken;
49
- }
50
-
51
- address public token;
52
- address public SY;
53
- uint64 public feeRate;
54
-
55
- address public factory;
56
- BulkSellerStorage public _storage;
57
-
58
- modifier onlyMaintainer() {
59
- if (!IPBulkSellerFactory(factory).isMaintainer(msg.sender))
60
- revert Errors.BulkNotMaintainer();
61
- _;
62
- }
63
-
64
- modifier onlyAdmin() {
65
- if (!IPBulkSellerFactory(factory).isAdmin(msg.sender)) revert Errors.BulkNotAdmin();
66
- _;
67
- }
68
-
69
- // Since this contract is a beacon contract, no constructor should be defined.
70
- function initialize(
71
- address _token,
72
- address _SY,
73
- address _factory
74
- ) external initializer {
75
- __ReentrancyGuard_init();
76
- token = _token;
77
- SY = _SY;
78
- factory = _factory;
79
- }
80
-
81
- function swapExactTokenForSy(
82
- address receiver,
83
- uint256 netTokenIn,
84
- uint256 minSyOut
85
- ) external nonReentrant returns (uint256 netSyOut) {
86
- BulkSellerState memory state = readState();
87
-
88
- netSyOut = state.swapExactTokenForSy(netTokenIn);
89
-
90
- if (netSyOut < minSyOut) revert Errors.BulkInSufficientSyOut(netSyOut, minSyOut);
91
-
92
- if (receiver != address(this)) _transferOut(SY, receiver, netSyOut);
93
-
94
- _writeState(state);
95
-
96
- if (_selfBalance(token) < state.totalToken)
97
- revert Errors.BulkInsufficientTokenReceived(_selfBalance(token), state.totalToken);
98
-
99
- emit SwapExactTokenForSy(receiver, netTokenIn, netSyOut);
100
- }
101
-
102
- function swapExactSyForToken(
103
- address receiver,
104
- uint256 exactSyIn,
105
- uint256 minTokenOut
106
- ) external nonReentrant returns (uint256 netTokenOut) {
107
- BulkSellerState memory state = readState();
108
-
109
- netTokenOut = state.swapExactSyForToken(exactSyIn);
110
-
111
- if (netTokenOut < minTokenOut)
112
- revert Errors.BulkInSufficientTokenOut(netTokenOut, minTokenOut);
113
- if (receiver != address(this)) _transferOut(token, receiver, netTokenOut);
114
-
115
- _writeState(state);
116
-
117
- if (_selfBalance(SY) < state.totalSy)
118
- revert Errors.BulkInsufficientSyReceived(_selfBalance(SY), state.totalSy);
119
-
120
- emit SwapExactSyForToken(receiver, exactSyIn, netTokenOut);
121
- }
122
-
123
- function calcSwapExactTokenForSy(uint256 netTokenIn) external view returns (uint256 netSyOut) {
124
- assert(_storage.rateTokenToSy != 0);
125
- netSyOut = netTokenIn.mulDown(_storage.rateTokenToSy);
126
- }
127
-
128
- function calcSwapExactSyForToken(uint256 netSyIn) external view returns (uint256 netTokenOut) {
129
- assert(_storage.rateSyToToken != 0);
130
- netTokenOut = netSyIn.mulDown(_storage.rateSyToToken);
131
- }
132
-
133
- function readState() public view returns (BulkSellerState memory state) {
134
- BulkSellerStorage storage s = _storage;
135
-
136
- state = BulkSellerState({
137
- rateTokenToSy: s.rateTokenToSy,
138
- rateSyToToken: s.rateSyToToken,
139
- totalToken: s.totalToken,
140
- totalSy: s.totalSy,
141
- feeRate: feeRate
142
- });
143
- }
144
-
145
- function _writeState(BulkSellerState memory state) internal {
146
- BulkSellerStorage memory tmp = BulkSellerStorage({
147
- rateTokenToSy: state.rateTokenToSy.Uint128(),
148
- rateSyToToken: state.rateSyToToken.Uint128(),
149
- totalSy: state.totalSy.Uint128(),
150
- totalToken: state.totalToken.Uint128()
151
- });
152
-
153
- _storage = tmp;
154
- }
155
-
156
- // ----------------- BulkSeller management -----------------
157
-
158
- function increaseReserve(uint256 netTokenIn, uint256 netSyIn) external payable onlyMaintainer {
159
- BulkSellerState memory state = readState();
160
-
161
- state.totalToken += netTokenIn;
162
- state.totalSy += netSyIn;
163
-
164
- _transferIn(token, msg.sender, netTokenIn);
165
- _transferIn(SY, msg.sender, netSyIn);
166
-
167
- emit ReserveUpdated(state.totalToken, state.totalSy);
168
-
169
- _writeState(state);
170
- }
171
-
172
- function decreaseReserve(uint256 netTokenOut, uint256 netSyOut) external onlyAdmin {
173
- BulkSellerState memory state = readState();
174
-
175
- if (netTokenOut == type(uint256).max) netTokenOut = state.totalToken;
176
- if (netSyOut == type(uint256).max) netSyOut = state.totalSy;
177
-
178
- state.totalToken -= netTokenOut;
179
- state.totalSy -= netSyOut;
180
-
181
- _transferOut(token, msg.sender, netTokenOut);
182
- _transferOut(SY, msg.sender, netSyOut);
183
-
184
- emit ReserveUpdated(state.totalToken, state.totalSy);
185
-
186
- _writeState(state);
187
- }
188
-
189
- function reBalance(uint256 targetProp, uint256 maxDiff) external onlyMaintainer {
190
- BulkSellerState memory state = readState();
191
- uint256 oldTokenProp = state.getTokenProp();
192
-
193
- (uint256 netTokenDeposit, uint256 netSyRedeem) = state.getReBalanceParams(targetProp);
194
-
195
- if (netTokenDeposit > 0) {
196
- uint256 netSyFromToken = _depositToken(netTokenDeposit);
197
- state.reBalanceTokenToSy(netTokenDeposit, netSyFromToken, maxDiff);
198
-
199
- uint256 newTokenProp = state.getTokenProp();
200
- emit ReBalanceTokenToSy(netTokenDeposit, netSyFromToken, newTokenProp, oldTokenProp);
201
- } else {
202
- uint256 netTokenFromSy = _redeemSy(netSyRedeem);
203
- state.reBalanceSyToToken(netSyRedeem, netTokenFromSy, maxDiff);
204
-
205
- uint256 newTokenProp = state.getTokenProp();
206
- emit ReBalanceSyToToken(netSyRedeem, netTokenFromSy, newTokenProp, oldTokenProp);
207
- }
208
-
209
- _writeState(state);
210
- }
211
-
212
- function setRate(
213
- uint256 newRateSyToToken,
214
- uint256 newRateTokenToSy,
215
- uint256 maxDiff
216
- ) external onlyMaintainer {
217
- BulkSellerState memory state = readState();
218
-
219
- emit RateUpdated(
220
- newRateTokenToSy,
221
- newRateSyToToken,
222
- state.rateTokenToSy,
223
- state.rateSyToToken
224
- );
225
-
226
- state.setRate(newRateSyToToken, newRateTokenToSy, maxDiff);
227
-
228
- _writeState(state);
229
- }
230
-
231
- function setFeeRate(uint64 newFeeRate) external onlyMaintainer {
232
- emit FeeRateUpdated(newFeeRate, feeRate);
233
- feeRate = newFeeRate;
234
- }
235
-
236
- function getTokenProp() external view returns (uint256) {
237
- BulkSellerState memory state = readState();
238
- return state.getTokenProp();
239
- }
240
-
241
- function _depositToken(uint256 netTokenDeposit) internal returns (uint256 netSyFromToken) {
242
- _safeApprove(token, SY, netTokenDeposit);
243
- uint256 nativeToDeposit = token == NATIVE ? netTokenDeposit : 0;
244
- return
245
- IStandardizedYield(SY).deposit{ value: nativeToDeposit }(
246
- address(this),
247
- token,
248
- netTokenDeposit,
249
- 0
250
- );
251
- }
252
-
253
- function _redeemSy(uint256 netSyRedeem) internal returns (uint256 netTokenFromSy) {
254
- _transferOut(SY, SY, netSyRedeem);
255
- return IStandardizedYield(SY).redeem(address(this), netSyRedeem, token, 0, true);
256
- }
257
-
258
- receive() external payable {}
259
- }
@@ -1,88 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.17;
3
-
4
- import "@openzeppelin/contracts/proxy/beacon/IBeacon.sol";
5
- import "@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol";
6
- import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";
7
-
8
- import "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
9
- import "../libraries/BoringOwnableUpgradeable.sol";
10
-
11
- import "../../interfaces/IStandardizedYield.sol";
12
- import "../../interfaces/IPBulkSellerFactory.sol";
13
- import "../libraries/Errors.sol";
14
-
15
- contract BulkSellerFactory is
16
- IBeacon,
17
- IPBulkSellerFactory,
18
- Initializable,
19
- AccessControlUpgradeable,
20
- UUPSUpgradeable
21
- {
22
- bytes32 public constant MAINTAINER = keccak256("MAINTAINER");
23
-
24
- address public implementation;
25
-
26
- mapping(address => mapping(address => address)) internal syToBulkSeller;
27
-
28
- modifier onlyAdmin() {
29
- if (!isAdmin(msg.sender)) revert Errors.BulkNotAdmin();
30
- _;
31
- }
32
-
33
- constructor() initializer {}
34
-
35
- function initialize(address implementation_) external initializer {
36
- _grantRole(DEFAULT_ADMIN_ROLE, msg.sender);
37
- upgradeBeacon(implementation_);
38
- }
39
-
40
- function createBulkSeller(address token, address SY)
41
- external
42
- onlyAdmin
43
- returns (address bulk)
44
- {
45
- IStandardizedYield _SY = IStandardizedYield(SY);
46
- if (syToBulkSeller[token][SY] != address(0))
47
- revert Errors.BulkSellerAlreadyExisted(token, SY, syToBulkSeller[token][SY]);
48
- if (_SY.isValidTokenIn(token) == false || _SY.isValidTokenOut(token) == false)
49
- revert Errors.BulkSellerInvalidToken(token, SY);
50
-
51
- bytes memory data = abi.encodeWithSignature(
52
- "initialize(address,address,address)",
53
- token,
54
- SY,
55
- address(this)
56
- );
57
-
58
- bulk = address(new BeaconProxy(address(this), data));
59
-
60
- syToBulkSeller[token][SY] = bulk;
61
-
62
- return bulk;
63
- }
64
-
65
- function get(address token, address SY) external view override returns (address) {
66
- return syToBulkSeller[token][SY];
67
- }
68
-
69
- function isMaintainer(address addr) public view override returns (bool) {
70
- return (hasRole(DEFAULT_ADMIN_ROLE, addr) || hasRole(MAINTAINER, addr));
71
- }
72
-
73
- function isAdmin(address addr) public view override returns (bool) {
74
- return hasRole(DEFAULT_ADMIN_ROLE, addr);
75
- }
76
-
77
- // ----------------- upgrade-related -----------------
78
- function upgradeBeacon(address newImplementation) public onlyAdmin {
79
- require(
80
- AddressUpgradeable.isContract(newImplementation),
81
- "UpgradeableBeacon: implementation is not a contract"
82
- );
83
- implementation = newImplementation;
84
- emit UpgradedBeacon(newImplementation);
85
- }
86
-
87
- function _authorizeUpgrade(address) internal override onlyAdmin {}
88
- }
@@ -1,143 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.17;
3
-
4
- import "../libraries/TokenHelper.sol";
5
- import "../libraries/math/Math.sol";
6
- import "../libraries/Errors.sol";
7
-
8
- struct BulkSellerState {
9
- uint256 rateTokenToSy;
10
- uint256 rateSyToToken;
11
- uint256 totalToken;
12
- uint256 totalSy;
13
- uint256 feeRate;
14
- }
15
-
16
- library BulkSellerMathCore {
17
- using Math for uint256;
18
-
19
- function swapExactTokenForSy(BulkSellerState memory state, uint256 netTokenIn)
20
- internal
21
- pure
22
- returns (uint256 netSyOut)
23
- {
24
- netSyOut = calcSwapExactTokenForSy(state, netTokenIn);
25
- state.totalToken += netTokenIn;
26
- state.totalSy -= netSyOut;
27
- }
28
-
29
- function swapExactSyForToken(BulkSellerState memory state, uint256 netSyIn)
30
- internal
31
- pure
32
- returns (uint256 netTokenOut)
33
- {
34
- netTokenOut = calcSwapExactSyForToken(state, netSyIn);
35
- state.totalSy += netSyIn;
36
- state.totalToken -= netTokenOut;
37
- }
38
-
39
- function calcSwapExactTokenForSy(BulkSellerState memory state, uint256 netTokenIn)
40
- internal
41
- pure
42
- returns (uint256 netSyOut)
43
- {
44
- uint256 postFeeRate = state.rateTokenToSy.mulDown(Math.ONE - state.feeRate);
45
- assert(postFeeRate != 0);
46
-
47
- netSyOut = netTokenIn.mulDown(postFeeRate);
48
- if (netSyOut > state.totalSy)
49
- revert Errors.BulkInsufficientSyForTrade(state.totalSy, netSyOut);
50
- }
51
-
52
- function calcSwapExactSyForToken(BulkSellerState memory state, uint256 netSyIn)
53
- internal
54
- pure
55
- returns (uint256 netTokenOut)
56
- {
57
- uint256 postFeeRate = state.rateSyToToken.mulDown(Math.ONE - state.feeRate);
58
- assert(postFeeRate != 0);
59
-
60
- netTokenOut = netSyIn.mulDown(postFeeRate);
61
- if (netTokenOut > state.totalToken)
62
- revert Errors.BulkInsufficientTokenForTrade(state.totalToken, netTokenOut);
63
- }
64
-
65
- function getTokenProp(BulkSellerState memory state) internal pure returns (uint256) {
66
- uint256 totalToken = state.totalToken;
67
- uint256 totalTokenFromSy = state.totalSy.mulDown(state.rateSyToToken);
68
- return totalToken.divDown(totalToken + totalTokenFromSy);
69
- }
70
-
71
- function getReBalanceParams(BulkSellerState memory state, uint256 targetTokenProp)
72
- internal
73
- pure
74
- returns (uint256 netTokenToDeposit, uint256 netSyToRedeem)
75
- {
76
- uint256 currentTokenProp = getTokenProp(state);
77
-
78
- if (currentTokenProp > targetTokenProp) {
79
- netTokenToDeposit = state.totalToken.mulDown(
80
- (currentTokenProp - targetTokenProp).divDown(currentTokenProp)
81
- );
82
- } else {
83
- uint256 currentSyProp = Math.ONE - currentTokenProp;
84
- netSyToRedeem = state.totalSy.mulDown(
85
- (targetTokenProp - currentTokenProp).divDown(currentSyProp)
86
- );
87
- }
88
- }
89
-
90
- function reBalanceTokenToSy(
91
- BulkSellerState memory state,
92
- uint256 netTokenToDeposit,
93
- uint256 netSyFromToken,
94
- uint256 maxDiff
95
- ) internal pure {
96
- uint256 rate = netSyFromToken.divDown(netTokenToDeposit);
97
-
98
- if (!Math.isAApproxB(rate, state.rateTokenToSy, maxDiff))
99
- revert Errors.BulkBadRateTokenToSy(rate, state.rateTokenToSy, maxDiff);
100
-
101
- state.totalToken -= netTokenToDeposit;
102
- state.totalSy += netSyFromToken;
103
- }
104
-
105
- function reBalanceSyToToken(
106
- BulkSellerState memory state,
107
- uint256 netSyToRedeem,
108
- uint256 netTokenFromSy,
109
- uint256 maxDiff
110
- ) internal pure {
111
- uint256 rate = netTokenFromSy.divDown(netSyToRedeem);
112
-
113
- if (!Math.isAApproxB(rate, state.rateSyToToken, maxDiff))
114
- revert Errors.BulkBadRateSyToToken(rate, state.rateSyToToken, maxDiff);
115
-
116
- state.totalToken += netTokenFromSy;
117
- state.totalSy -= netSyToRedeem;
118
- }
119
-
120
- function setRate(
121
- BulkSellerState memory state,
122
- uint256 rateSyToToken,
123
- uint256 rateTokenToSy,
124
- uint256 maxDiff
125
- ) internal pure {
126
- if (
127
- state.rateTokenToSy != 0 &&
128
- !Math.isAApproxB(rateTokenToSy, state.rateTokenToSy, maxDiff)
129
- ) {
130
- revert Errors.BulkBadRateTokenToSy(rateTokenToSy, state.rateTokenToSy, maxDiff);
131
- }
132
-
133
- if (
134
- state.rateSyToToken != 0 &&
135
- !Math.isAApproxB(rateSyToToken, state.rateSyToToken, maxDiff)
136
- ) {
137
- revert Errors.BulkBadRateSyToToken(rateSyToToken, state.rateSyToToken, maxDiff);
138
- }
139
-
140
- state.rateTokenToSy = rateTokenToSy;
141
- state.rateSyToToken = rateSyToToken;
142
- }
143
- }
@@ -1,102 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.17;
3
-
4
- import "./base/PendleConvexLPSY.sol";
5
- import "./base/CurveFraxUsdcPoolHelper.sol";
6
- import "../../../libraries/ArrayLib.sol";
7
-
8
- contract PendleCurveFraxUsdcSY is PendleConvexLPSY {
9
- using ArrayLib for address[];
10
-
11
- uint256 public constant PID = 100;
12
-
13
- address public constant FRAX = CurveFraxUsdcPoolHelper.FRAX;
14
- address public constant USDC = CurveFraxUsdcPoolHelper.USDC;
15
-
16
- constructor(string memory _name, string memory _symbol)
17
- PendleConvexLPSY(
18
- _name,
19
- _symbol,
20
- PID,
21
- CurveFraxUsdcPoolHelper.LP,
22
- CurveFraxUsdcPoolHelper.POOL
23
- )
24
- {
25
- _safeApproveInf(FRAX, crvPool);
26
- _safeApproveInf(USDC, crvPool);
27
- }
28
-
29
- function _depositToCurve(address tokenIn, uint256 amountTokenToDeposit)
30
- internal
31
- virtual
32
- override
33
- returns (uint256 amountLpOut)
34
- {
35
- uint256[2] memory amounts;
36
- amounts[_getIndex(tokenIn)] = amountTokenToDeposit;
37
- amountLpOut = ICrvPool(crvPool).add_liquidity(amounts, 0);
38
- }
39
-
40
- function _redeemFromCurve(address tokenOut, uint256 amountLpToRedeem)
41
- internal
42
- virtual
43
- override
44
- returns (uint256 amountTokenOut)
45
- {
46
- amountTokenOut = ICrvPool(crvPool).remove_liquidity_one_coin(
47
- amountLpToRedeem,
48
- Math.Int128(_getIndex(tokenOut)),
49
- 0
50
- );
51
- }
52
-
53
- function _previewDepositToCurve(address tokenIn, uint256 amountTokenToDeposit)
54
- internal
55
- view
56
- virtual
57
- override
58
- returns (uint256)
59
- {
60
- return CurveFraxUsdcPoolHelper.previewAddLiquidity(tokenIn, amountTokenToDeposit);
61
- }
62
-
63
- function _previewRedeemFromCurve(address tokenOut, uint256 amountLpToRedeem)
64
- internal
65
- view
66
- virtual
67
- override
68
- returns (uint256)
69
- {
70
- return
71
- ICrvPool(crvPool).calc_withdraw_one_coin(
72
- amountLpToRedeem,
73
- Math.Int128(_getIndex(tokenOut))
74
- );
75
- }
76
-
77
- function _getIndex(address token) internal pure returns (uint256) {
78
- return (token == FRAX ? 0 : 1);
79
- }
80
-
81
- function getTokensIn() public view virtual override returns (address[] memory res) {
82
- res = new address[](3);
83
- res[0] = crvLp;
84
- res[1] = FRAX;
85
- res[2] = USDC;
86
- }
87
-
88
- function getTokensOut() public view virtual override returns (address[] memory res) {
89
- res = new address[](3);
90
- res[0] = crvLp;
91
- res[1] = FRAX;
92
- res[2] = USDC;
93
- }
94
-
95
- function isValidTokenIn(address token) public view virtual override returns (bool res) {
96
- res = (token == crvLp || token == FRAX || token == USDC);
97
- }
98
-
99
- function isValidTokenOut(address token) public view override returns (bool res) {
100
- res = (token == crvLp || token == FRAX || token == USDC);
101
- }
102
- }