@pendle/core-v2 0.15.0-mainnet → 0.15.2-mainnet

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 (431) 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 +110 -48
  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 +75 -21
  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 +39 -0
  8. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.dbg.json +4 -0
  9. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.json +10 -0
  10. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +4 -0
  11. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.json +10 -0
  12. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/EpochResultManager.sol/EpochResultManager.dbg.json +1 -1
  13. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  14. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +15 -2
  15. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.dbg.json +1 -1
  16. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.json +15 -2
  17. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  18. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.json +13 -0
  19. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  20. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +15 -2
  21. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  22. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +15 -2
  23. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  24. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +46 -2
  25. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  26. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  27. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +52 -8
  28. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  29. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +15 -2
  30. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  31. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  32. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  33. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  34. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  35. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  36. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  37. package/build/artifacts/contracts/LiquidityMining/libraries/WeekMath.sol/WeekMath.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +4 -0
  39. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +699 -0
  40. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +4 -0
  41. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +515 -0
  42. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +4 -0
  43. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +10 -0
  44. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  46. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  48. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  51. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +77 -17
  53. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  55. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.json +2 -2
  57. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  58. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +4 -0
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +1003 -0
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +4 -0
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +1068 -0
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +4 -0
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.json +10 -0
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +4 -0
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.json +10 -0
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +4 -0
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.json +10 -0
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +4 -0
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/{ConvexCurveLP → base}/PendleConvexLPSY.sol/PendleConvexLPSY.json +1 -1
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +4 -0
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +856 -0
  77. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  78. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  79. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  80. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  81. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +15 -2
  82. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  83. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +85 -4
  84. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  85. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +17 -4
  86. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  87. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.json +2 -2
  88. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
  89. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.json +2 -2
  90. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
  91. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.json +3 -38
  92. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
  93. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.json +2 -2
  94. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
  95. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.json +13 -0
  96. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
  97. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.json +2 -2
  98. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  99. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +319 -35
  100. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +4 -0
  101. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.json +10 -0
  102. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  103. package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
  104. package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.json +1 -1
  105. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
  106. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.json +39 -85
  107. package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.dbg.json +4 -0
  108. package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.json +213 -0
  109. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  111. package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.dbg.json +4 -0
  112. package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.json +119 -0
  113. package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +4 -0
  114. package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.json +39 -0
  115. package/build/artifacts/contracts/interfaces/ILooksFeeSharing.sol/ILooksFeeSharing.dbg.json +4 -0
  116. package/build/artifacts/contracts/interfaces/ILooksFeeSharing.sol/ILooksFeeSharing.json +30 -0
  117. package/build/artifacts/contracts/interfaces/ILooksStaking.sol/ILooksStaking.dbg.json +4 -0
  118. package/build/artifacts/contracts/interfaces/ILooksStaking.sol/ILooksStaking.json +76 -0
  119. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  120. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json +91 -17
  121. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  122. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json +50 -0
  123. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  124. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.json +20 -0
  125. package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +1 -1
  126. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  127. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.json +20 -0
  128. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  129. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +181 -17
  130. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +4 -0
  131. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.json +173 -0
  132. package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.dbg.json +4 -0
  133. package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.json +86 -0
  134. package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.dbg.json +4 -0
  135. package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.json +34 -0
  136. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  137. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  138. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.json +2 -2
  139. package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
  140. package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.json +12 -2
  141. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  142. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  143. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  144. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  145. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.json +1 -1
  146. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  147. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  148. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  149. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  150. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +1 -1
  151. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  152. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.json +45 -0
  153. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  154. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +1 -1
  155. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  156. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  157. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.json +15 -2
  158. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +4 -0
  159. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +35 -0
  160. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
  161. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +2 -80
  162. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  163. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +299 -60
  164. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  165. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +118 -41
  166. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +1 -1
  167. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.json +2 -2
  168. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  169. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +61 -24
  170. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  171. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +2 -2
  172. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  173. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +31 -24
  174. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +1 -1
  175. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +2 -2
  176. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  177. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +31 -24
  178. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  179. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +15 -2
  180. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  181. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json +1 -1
  182. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  183. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  184. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  185. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  186. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +1 -1
  187. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +191 -2
  188. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.dbg.json +4 -0
  189. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.json +35 -0
  190. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +1 -1
  191. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.json +1 -1
  192. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol +58 -27
  193. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol +46 -12
  194. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol +31 -7
  195. package/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol +133 -0
  196. package/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol +27 -0
  197. package/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +9 -10
  198. package/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +9 -23
  199. package/contracts/core/BulkSeller/BulkSeller.sol +259 -0
  200. package/contracts/core/BulkSeller/BulkSellerFactory.sol +88 -0
  201. package/contracts/core/BulkSeller/BulkSellerMathCore.sol +143 -0
  202. package/contracts/core/Market/PendleMarket.sol +18 -7
  203. package/contracts/core/Market/PendleMarketFactory.sol +15 -5
  204. package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol +102 -0
  205. package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol +160 -0
  206. package/contracts/core/StandardizedYield/implementations/Convex/README.md +29 -0
  207. package/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol +215 -0
  208. package/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol +127 -0
  209. package/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol +152 -0
  210. package/contracts/core/StandardizedYield/implementations/Convex/{ConvexCurveLP → base}/PendleConvexLPSY.sol +2 -4
  211. package/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol +122 -0
  212. package/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol +17 -8
  213. package/contracts/core/YieldContracts/PendlePrincipalToken.sol +3 -3
  214. package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +38 -11
  215. package/contracts/core/YieldContracts/PendleYieldToken.sol +54 -21
  216. package/contracts/core/erc20/PendleERC20.sol +4 -7
  217. package/contracts/core/libraries/BaseSplitCodeFactory.sol +1 -1
  218. package/contracts/core/libraries/BoringOwnableUpgradeable.sol +1 -1
  219. package/contracts/core/libraries/Errors.sol +32 -4
  220. package/contracts/core/libraries/StringLib.sol +782 -0
  221. package/contracts/core/libraries/TokenHelper.sol +9 -0
  222. package/contracts/interfaces/ConvexCurve/IBooster.sol +1 -1
  223. package/contracts/interfaces/Curve/ICrvPool.sol +12 -31
  224. package/contracts/interfaces/Curve/ITriCrvPool.sol +41 -0
  225. package/contracts/interfaces/ILayerZeroEndpoint.sol +39 -0
  226. package/contracts/interfaces/ILayerZeroReceiver.sol +12 -0
  227. package/contracts/interfaces/ILooksFeeSharing.sol +5 -0
  228. package/contracts/interfaces/ILooksStaking.sol +13 -0
  229. package/contracts/interfaces/IPActionAddRemoveLiq.sol +3 -5
  230. package/contracts/interfaces/IPActionMintRedeem.sol +2 -0
  231. package/contracts/interfaces/IPBulkSeller.sol +28 -0
  232. package/contracts/interfaces/IPBulkSellerFactory.sol +12 -0
  233. package/contracts/interfaces/IPBulkSellerSYCallback.sol +10 -0
  234. package/contracts/interfaces/IPMarketFactory.sol +1 -1
  235. package/contracts/interfaces/IPMsgSendEndpoint.sol +4 -2
  236. package/contracts/interfaces/IPYieldContractFactory.sol +1 -1
  237. package/contracts/interfaces/IStETH.sol +6 -0
  238. package/contracts/interfaces/IStandardizedYield.sol +15 -10
  239. package/contracts/offchain-helpers/BulkSellerOffchain.sol +43 -0
  240. package/contracts/offchain-helpers/MarketMathStatic.sol +0 -173
  241. package/contracts/offchain-helpers/RouterStatic.sol +189 -50
  242. package/contracts/router/ActionAddRemoveLiq.sol +71 -52
  243. package/contracts/router/ActionCallback.sol +4 -8
  244. package/contracts/router/ActionMintRedeem.sol +27 -18
  245. package/contracts/router/ActionSwapPT.sol +8 -9
  246. package/contracts/router/ActionSwapPTYT.sol +3 -7
  247. package/contracts/router/ActionSwapYT.sol +15 -10
  248. package/contracts/router/PendleRouter.sol +3 -0
  249. package/contracts/router/base/ActionBaseMintRedeem.sol +78 -83
  250. package/contracts/router/base/MarketApproxLib.sol +1 -1
  251. package/contracts/router/kyberswap/AggregationRouterHelper.sol +17 -1
  252. package/contracts/router/kyberswap/IAggregatorRouterHelper.sol +10 -0
  253. package/contracts/router/kyberswap/KyberSwapHelper.sol +21 -8
  254. package/deployments/1-markets/FRAX_30_MAR_23.json +8 -0
  255. package/deployments/1-markets/LOOKS_30_MAR_23.json +8 -0
  256. package/deployments/1-markets/STETH_MARCH_30.json +1 -1
  257. package/deployments/1-markets/USDD_MARCH_30.json +8 -0
  258. package/deployments/1-offchain-helper.json +3 -0
  259. package/package.json +3 -2
  260. package/typechain-types/AccessControl.ts +360 -0
  261. package/typechain-types/AccessControlUpgradeable.ts +369 -0
  262. package/typechain-types/ActionAddRemoveLiq.ts +64 -52
  263. package/typechain-types/ActionBaseMintRedeem.ts +8 -8
  264. package/typechain-types/ActionMintRedeem.ts +48 -16
  265. package/typechain-types/ActionSwapPT.ts +34 -12
  266. package/typechain-types/ActionSwapYT.ts +34 -12
  267. package/typechain-types/AggregationRouterHelper.ts +287 -3
  268. package/typechain-types/BaseSplitCodeFactoryContract.ts +9 -0
  269. package/typechain-types/BeaconProxy.ts +97 -0
  270. package/typechain-types/BoringOwnableUpgradeable.ts +9 -0
  271. package/typechain-types/BulkSeller.ts +777 -0
  272. package/typechain-types/BulkSellerFactory.ts +707 -0
  273. package/typechain-types/BulkSellerOffchain.ts +117 -0
  274. package/typechain-types/ContextUpgradeable.ts +68 -0
  275. package/typechain-types/Curve3CrvPoolHelper.ts +236 -0
  276. package/typechain-types/CurveFraxUsdcPoolHelper.ts +158 -0
  277. package/typechain-types/CurveUsdd3CrvPoolHelper.ts +184 -0
  278. package/typechain-types/ERC165.ts +102 -0
  279. package/typechain-types/ERC165Upgradeable.ts +113 -0
  280. package/typechain-types/IAccessControl.ts +305 -0
  281. package/typechain-types/IAccessControlUpgradeable.ts +305 -0
  282. package/typechain-types/IAggregationRouterHelper.ts +108 -0
  283. package/typechain-types/IBooster.ts +9 -3
  284. package/typechain-types/ICrvPool.ts +69 -172
  285. package/typechain-types/IERC165.ts +102 -0
  286. package/typechain-types/IERC165Upgradeable.ts +102 -0
  287. package/typechain-types/ILayerZeroEndpoint.ts +256 -0
  288. package/typechain-types/ILayerZeroReceiver.ts +117 -0
  289. package/typechain-types/ILooksFeeSharing.ts +102 -0
  290. package/typechain-types/ILooksStaking.ts +189 -0
  291. package/typechain-types/IPActionAddRemoveLiq.ts +56 -44
  292. package/typechain-types/IPActionMintRedeem.ts +40 -8
  293. package/typechain-types/IPActionSwapPT.ts +26 -4
  294. package/typechain-types/IPActionSwapYT.ts +26 -4
  295. package/typechain-types/IPAllAction.ts +76 -54
  296. package/typechain-types/IPBulkSeller.ts +290 -0
  297. package/typechain-types/IPBulkSellerCallback.ts +115 -0
  298. package/typechain-types/IPBulkSellerFactory.ts +147 -0
  299. package/typechain-types/IPMarketFactory.ts +2 -2
  300. package/typechain-types/IPMsgSendEndpoint.ts +24 -14
  301. package/typechain-types/IPYieldContractFactory.ts +3 -3
  302. package/typechain-types/IStETH.ts +56 -0
  303. package/typechain-types/ITriCrvPool.ts +345 -0
  304. package/typechain-types/ImplicitSwapfeeContract.ts +9 -17
  305. package/typechain-types/Initializable.ts +68 -0
  306. package/typechain-types/KyberSwapHelper.ts +8 -8
  307. package/typechain-types/MarketMathStatic.ts +0 -117
  308. package/typechain-types/PendleConvex2TokensSY.ts +1215 -0
  309. package/typechain-types/PendleCurveFraxUsdcSY.ts +1228 -0
  310. package/typechain-types/PendleCurveUsdd3CrvSY.ts +1299 -0
  311. package/typechain-types/PendleFeeDistributor.ts +9 -0
  312. package/typechain-types/PendleFeeDistributorFactory.ts +9 -0
  313. package/typechain-types/PendleGaugeControllerBaseUpg.ts +9 -0
  314. package/typechain-types/PendleGaugeControllerMainchainUpg.ts +9 -0
  315. package/typechain-types/PendleGaugeControllerSidechainUpg.ts +9 -0
  316. package/typechain-types/PendleLooksStaking.ts +1052 -0
  317. package/typechain-types/PendleLooksStakingSY.ts +1052 -0
  318. package/typechain-types/PendleMarketFactory.ts +51 -2
  319. package/typechain-types/PendleMsgReceiveEndpointUpg.ts +135 -68
  320. package/typechain-types/PendleMsgSendEndpointUpg.ts +108 -39
  321. package/typechain-types/PendleMsgSenderAppUpg.ts +64 -0
  322. package/typechain-types/PendlePrincipalToken.ts +9 -0
  323. package/typechain-types/PendleRouter.ts +9 -0
  324. package/typechain-types/PendleVotingControllerUpg.ts +64 -0
  325. package/typechain-types/PendleYieldContractFactory.ts +57 -8
  326. package/typechain-types/PendleYieldToken.ts +21 -0
  327. package/typechain-types/ReentrancyGuardUpgradeable.ts +68 -0
  328. package/typechain-types/RouterStatic.ts +302 -20
  329. package/typechain-types/VotingEscrowPendleMainchain.ts +70 -6
  330. package/typechain-types/VotingEscrowPendleSidechain.ts +9 -0
  331. package/typechain-types/factories/AccessControlUpgradeable__factory.ts +247 -0
  332. package/typechain-types/factories/AccessControl__factory.ts +227 -0
  333. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +122 -59
  334. package/typechain-types/factories/ActionBaseMintRedeem__factory.ts +1 -1
  335. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  336. package/typechain-types/factories/ActionMintRedeem__factory.ts +65 -42
  337. package/typechain-types/factories/ActionMisc__factory.ts +1 -1
  338. package/typechain-types/factories/ActionSwapPTYT__factory.ts +1 -1
  339. package/typechain-types/factories/ActionSwapPT__factory.ts +35 -42
  340. package/typechain-types/factories/ActionSwapYT__factory.ts +35 -42
  341. package/typechain-types/factories/AggregationRouterHelper__factory.ts +190 -1
  342. package/typechain-types/factories/BaseSplitCodeFactoryContract__factory.ts +14 -1
  343. package/typechain-types/factories/BaseSplitCodeFactory__factory.ts +1 -1
  344. package/typechain-types/factories/BeaconProxy__factory.ts +141 -0
  345. package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +1 -1
  346. package/typechain-types/factories/BoringOwnableUpgradeable__factory.ts +13 -0
  347. package/typechain-types/factories/BulkSellerFactory__factory.ts +568 -0
  348. package/typechain-types/factories/BulkSellerOffchain__factory.ts +88 -0
  349. package/typechain-types/factories/BulkSeller__factory.ts +749 -0
  350. package/typechain-types/factories/ContextUpgradeable__factory.ts +39 -0
  351. package/typechain-types/factories/Curve3CrvPoolHelper__factory.ts +220 -0
  352. package/typechain-types/factories/CurveFraxUsdcPoolHelper__factory.ts +146 -0
  353. package/typechain-types/factories/CurveUsdd3CrvPoolHelper__factory.ts +172 -0
  354. package/typechain-types/factories/ERC165Upgradeable__factory.ts +58 -0
  355. package/typechain-types/factories/ERC165__factory.ts +39 -0
  356. package/typechain-types/factories/ERC20__factory.ts +1 -1
  357. package/typechain-types/factories/Errors__factory.ts +318 -34
  358. package/typechain-types/factories/IAccessControlUpgradeable__factory.ts +202 -0
  359. package/typechain-types/factories/IAccessControl__factory.ts +198 -0
  360. package/typechain-types/factories/IAggregationRouterHelper__factory.ts +54 -0
  361. package/typechain-types/factories/IBooster__factory.ts +1 -1
  362. package/typechain-types/factories/ICrvPool__factory.ts +39 -85
  363. package/typechain-types/factories/IERC165Upgradeable__factory.ts +45 -0
  364. package/typechain-types/factories/IERC165__factory.ts +42 -0
  365. package/typechain-types/factories/ILayerZeroEndpoint__factory.ts +134 -0
  366. package/typechain-types/factories/ILayerZeroReceiver__factory.ts +54 -0
  367. package/typechain-types/factories/ILooksFeeSharing__factory.ts +45 -0
  368. package/typechain-types/factories/ILooksStaking__factory.ts +88 -0
  369. package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +91 -17
  370. package/typechain-types/factories/IPActionMintRedeem__factory.ts +50 -0
  371. package/typechain-types/factories/IPActionSwapPT__factory.ts +20 -0
  372. package/typechain-types/factories/IPActionSwapYT__factory.ts +20 -0
  373. package/typechain-types/factories/IPAllAction__factory.ts +181 -17
  374. package/typechain-types/factories/IPBulkSellerCallback__factory.ts +53 -0
  375. package/typechain-types/factories/IPBulkSellerFactory__factory.ts +101 -0
  376. package/typechain-types/factories/IPBulkSeller__factory.ts +185 -0
  377. package/typechain-types/factories/IPMarketFactory__factory.ts +2 -2
  378. package/typechain-types/factories/IPMsgSendEndpoint__factory.ts +12 -2
  379. package/typechain-types/factories/IPYieldContractFactory__factory.ts +1 -1
  380. package/typechain-types/factories/IStETH__factory.ts +45 -0
  381. package/typechain-types/factories/ITriCrvPool__factory.ts +225 -0
  382. package/typechain-types/factories/ImplicitSwapfeeContract__factory.ts +4 -12
  383. package/typechain-types/factories/Initializable__factory.ts +36 -0
  384. package/typechain-types/factories/KyberSwapHelper__factory.ts +1 -1
  385. package/typechain-types/factories/MarketMathStatic__factory.ts +1 -79
  386. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  387. package/typechain-types/factories/Pendle3CrvAndTokenSY__factory.ts +1 -1
  388. package/typechain-types/factories/PendleConvex2TokensSY__factory.ts +1093 -0
  389. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1068 -0
  390. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1133 -0
  391. package/typechain-types/factories/PendleERC20Permit__factory.ts +1 -1
  392. package/typechain-types/factories/PendleERC20__factory.ts +1 -1
  393. package/typechain-types/factories/PendleFeeDistributorFactory__factory.ts +14 -1
  394. package/typechain-types/factories/PendleFeeDistributor__factory.ts +14 -1
  395. package/typechain-types/factories/PendleGaugeControllerBaseUpg__factory.ts +13 -0
  396. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +14 -1
  397. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +14 -1
  398. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +937 -0
  399. package/typechain-types/factories/PendleLooksStaking__factory.ts +933 -0
  400. package/typechain-types/factories/PendleMarketFactory__factory.ts +76 -16
  401. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  402. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +113 -51
  403. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +84 -23
  404. package/typechain-types/factories/PendleMsgSenderAppUpg__factory.ts +39 -0
  405. package/typechain-types/factories/PendlePrincipalToken__factory.ts +14 -1
  406. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  407. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  408. package/typechain-types/factories/PendleRouter__factory.ts +14 -1
  409. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +57 -2
  410. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  411. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +84 -3
  412. package/typechain-types/factories/PendleYieldToken__factory.ts +16 -3
  413. package/typechain-types/factories/ReentrancyGuardUpgradeable__factory.ts +43 -0
  414. package/typechain-types/factories/RouterStatic__factory.ts +244 -1
  415. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +63 -8
  416. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +14 -1
  417. package/typechain-types/hardhat.d.ts +260 -35
  418. package/typechain-types/index.ts +56 -10
  419. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSY.sol/Pendle3CrvAndTokenSY.dbg.json +0 -4
  420. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSY.sol/Pendle3CrvAndTokenSY.json +0 -1018
  421. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +0 -4
  422. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/Pendle3CrvHelper.sol/Pendle3CrvHelper.dbg.json +0 -4
  423. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/Pendle3CrvHelper.sol/Pendle3CrvHelper.json +0 -76
  424. package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.dbg.json +0 -4
  425. package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.json +0 -53
  426. package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.dbg.json +0 -4
  427. package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.json +0 -45
  428. package/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSY.sol +0 -167
  429. package/contracts/core/StandardizedYield/implementations/Convex/Pendle3CrvHelper.sol +0 -83
  430. package/contracts/interfaces/ICelerMessageBus.sol +0 -28
  431. package/contracts/interfaces/ICelerMessageReceiverApp.sol +0 -25
@@ -17,6 +17,15 @@ abstract contract TokenHelper {
17
17
  else if (amount != 0) IERC20(token).safeTransferFrom(from, address(this), amount);
18
18
  }
19
19
 
20
+ function _transferFrom(
21
+ IERC20 token,
22
+ address from,
23
+ address to,
24
+ uint256 amount
25
+ ) internal {
26
+ if (amount != 0) token.safeTransferFrom(from, to, amount);
27
+ }
28
+
20
29
  function _transferOut(
21
30
  address token,
22
31
  address to,
@@ -10,7 +10,7 @@ interface IBooster {
10
10
  external
11
11
  view
12
12
  returns (
13
- address,
13
+ address lpToken,
14
14
  address,
15
15
  address,
16
16
  address,
@@ -6,6 +6,12 @@ interface ICrvPool {
6
6
 
7
7
  function get_virtual_price() external view returns (uint256);
8
8
 
9
+ function lp_token() external view returns (address);
10
+
11
+ function fee() external view returns (uint256);
12
+
13
+ function admin_fee() external view returns (uint256);
14
+
9
15
  function get_dy(
10
16
  int128 i,
11
17
  int128 j,
@@ -16,56 +22,31 @@ interface ICrvPool {
16
22
  int128 i,
17
23
  int128 j,
18
24
  uint256 dx,
19
- uint256 min_dy, // The amount of i being exchanged.
20
- address _receiver
21
- ) external returns (uint256);
22
-
23
- function add_liquidity(
24
- uint256[] memory _deposit_amount,
25
- uint256 _min_amount,
26
- address _receiver
25
+ uint256 min_dy // The amount of i being exchanged.
27
26
  ) external returns (uint256);
28
27
 
29
28
  function add_liquidity(
30
29
  uint256[2] memory _deposit_amount,
31
30
  uint256 _min_amount
32
- ) external;
33
-
34
- function add_liquidity(
35
- uint256[3] memory _deposit_amount,
36
- uint256 _min_amount
37
- ) external;
38
-
39
- function remove_liquidity(
40
- uint256 _burn_amount,
41
- uint256[] memory _min_amounts,
42
- address _receiver
43
- ) external returns (uint256[] memory);
31
+ ) external returns (uint256 lpOut);
44
32
 
45
33
  function remove_liquidity_one_coin(
46
34
  uint256 _burn_amount,
47
35
  int128 i,
48
36
  uint256 _min_amount
49
- ) external;
50
-
51
- function calc_token_amount(uint256[] memory _amounts, bool _is_deposit)
52
- external
53
- view
54
- returns (uint256);
37
+ ) external returns (uint256 tokenOut);
55
38
 
56
39
  function calc_token_amount(uint256[2] memory _amounts, bool _is_deposit)
57
40
  external
58
41
  view
59
42
  returns (uint256);
60
43
 
61
- function calc_token_amount(uint256[3] memory _amounts, bool _is_deposit)
44
+ function calc_withdraw_one_coin(uint256 _burn_amount, int128 i)
62
45
  external
63
46
  view
64
47
  returns (uint256);
65
48
 
49
+ function balances(uint256 i) external view returns (uint256);
66
50
 
67
- function calc_withdraw_one_coin(uint256 _burn_amount, int128 i)
68
- external
69
- view
70
- returns (uint256);
51
+ function A_precise() external view returns (uint256);
71
52
  }
@@ -0,0 +1,41 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ interface ITriCrvPool {
5
+ function coins(uint256 i) external view returns (address);
6
+
7
+ function get_virtual_price() external view returns (uint256);
8
+
9
+ function lp_token() external view returns (address);
10
+
11
+ function fee() external view returns (uint256);
12
+
13
+ function admin_fee() external view returns (uint256);
14
+
15
+ function exchange(
16
+ int128 i,
17
+ int128 j,
18
+ uint256 dx,
19
+ uint256 min_dy // The amount of i being exchanged.
20
+ ) external returns (uint256);
21
+
22
+ function add_liquidity(
23
+ uint256[3] memory _deposit_amount,
24
+ uint256 _min_amount
25
+ ) external;
26
+
27
+ function remove_liquidity_one_coin(
28
+ uint256 _burn_amount,
29
+ int128 i,
30
+ uint256 _min_amount
31
+ ) external;
32
+
33
+ function calc_withdraw_one_coin(uint256 _burn_amount, int128 i)
34
+ external
35
+ view
36
+ returns (uint256);
37
+
38
+ function balances(uint256 i) external view returns (uint256);
39
+
40
+ function A() external view returns (uint256);
41
+ }
@@ -0,0 +1,39 @@
1
+ // SPDX-License-Identifier: MIT
2
+
3
+ pragma solidity >=0.5.0;
4
+
5
+ interface ILayerZeroEndpoint {
6
+ // @notice send a LayerZero message to the specified address at a LayerZero endpoint.
7
+ // @param _dstChainId - the destination chain identifier
8
+ // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains
9
+ // @param _payload - a custom bytes payload to send to the destination contract
10
+ // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address
11
+ // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction
12
+ // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination
13
+ function send(
14
+ uint16 _dstChainId,
15
+ bytes calldata _destination,
16
+ bytes calldata _payload,
17
+ address payable _refundAddress,
18
+ address _zroPaymentAddress,
19
+ bytes calldata _adapterParams
20
+ ) external payable;
21
+
22
+ // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery
23
+ // @param _dstChainId - the destination chain identifier
24
+ // @param _userApplication - the user app address on this EVM chain
25
+ // @param _payload - the custom message to send over LayerZero
26
+ // @param _payInZRO - if false, user app pays the protocol fee in native token
27
+ // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain
28
+ function estimateFees(
29
+ uint16 _dstChainId,
30
+ address _userApplication,
31
+ bytes calldata _payload,
32
+ bool _payInZRO,
33
+ bytes calldata _adapterParam
34
+ ) external view returns (uint256 nativeFee, uint256 zroFee);
35
+
36
+ function setSendVersion(uint16 _newVersion) external;
37
+
38
+ function setReceiveVersion(uint16 _newVersion) external;
39
+ }
@@ -0,0 +1,12 @@
1
+ // SPDX-License-Identifier: BUSL-1.1
2
+
3
+ pragma solidity >=0.5.0;
4
+
5
+ interface ILayerZeroReceiver {
6
+ // @notice LayerZero endpoint will invoke this function to deliver the message on the destination
7
+ // @param _srcChainId - the source endpoint identifier
8
+ // @param _srcAddress - the source sending contract address from the source chain
9
+ // @param _nonce - the ordered message nonce
10
+ // @param _payload - the signed payload is the UA bytes has encoded to be sent
11
+ function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;
12
+ }
@@ -0,0 +1,5 @@
1
+ pragma solidity 0.8.17;
2
+
3
+ interface ILooksFeeSharing {
4
+ function calculateSharesValueInLOOKS(address user) external view returns (uint256);
5
+ }
@@ -0,0 +1,13 @@
1
+ pragma solidity 0.8.17;
2
+
3
+ interface ILooksStaking {
4
+ function totalShares() external view returns (uint256);
5
+
6
+ function deposit(uint256 amount) external;
7
+
8
+ function userInfo(address user) external view returns (uint256);
9
+
10
+ function withdraw(uint256 shares) external;
11
+
12
+ function harvestAndSellAndCompound() external;
13
+ }
@@ -19,7 +19,7 @@ interface IPActionAddRemoveLiq {
19
19
  address indexed market,
20
20
  address indexed receiver,
21
21
  address tokenIn,
22
- uint256 tokenUsed,
22
+ uint256 netTokenUsed,
23
23
  uint256 netPtUsed,
24
24
  uint256 netLpOut
25
25
  );
@@ -110,8 +110,7 @@ interface IPActionAddRemoveLiq {
110
110
  function addLiquidityDualTokenAndPt(
111
111
  address receiver,
112
112
  address market,
113
- address tokenIn,
114
- uint256 netTokenDesired,
113
+ TokenInput calldata input,
115
114
  uint256 netPtDesired,
116
115
  uint256 minLpOut
117
116
  )
@@ -159,8 +158,7 @@ interface IPActionAddRemoveLiq {
159
158
  address receiver,
160
159
  address market,
161
160
  uint256 netLpToRemove,
162
- address tokenOut,
163
- uint256 minTokenOut,
161
+ TokenOutput calldata output,
164
162
  uint256 minPtOut
165
163
  ) external returns (uint256 netTokenOut, uint256 netPtOut);
166
164
 
@@ -138,6 +138,7 @@ interface IPActionMintRedeem {
138
138
  // key-value pair
139
139
  address[] syAddrs;
140
140
  address[] tokenRedeemSys;
141
+ address[] bulks;
141
142
  //
142
143
  }
143
144
 
@@ -146,6 +147,7 @@ interface IPActionMintRedeem {
146
147
  address[] tokens;
147
148
  bytes[] kybercalls;
148
149
  //
150
+ address kyberRouter;
149
151
  address outputToken;
150
152
  uint256 minTokenOut;
151
153
  }
@@ -0,0 +1,28 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "../core/BulkSeller/BulkSellerMathCore.sol";
5
+
6
+ interface IPBulkSeller {
7
+ function swapExactSyForToken(
8
+ address receiver,
9
+ uint256 exactSyIn,
10
+ uint256 minTokenOut
11
+ ) external returns (uint256 netTokenOut);
12
+
13
+ function swapExactTokenForSy(
14
+ address receiver,
15
+ uint256 netTokenIn,
16
+ uint256 minSyOut
17
+ ) external returns (uint256 netSyOut);
18
+
19
+ function calcSwapExactTokenForSy(uint256 netTokenIn) external view returns (uint256 netSyOut);
20
+
21
+ function calcSwapExactSyForToken(uint256 netSyIn) external view returns (uint256 netTokenOut);
22
+
23
+ function SY() external view returns (address);
24
+
25
+ function token() external view returns (address);
26
+
27
+ function readState() external view returns (BulkSellerState memory);
28
+ }
@@ -0,0 +1,12 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ interface IPBulkSellerFactory {
5
+ event UpgradedBeacon(address indexed implementation);
6
+
7
+ function get(address token, address SY) external view returns (address);
8
+
9
+ function isMaintainer(address addr) external view returns (bool);
10
+
11
+ function isAdmin(address addr) external view returns (bool);
12
+ }
@@ -0,0 +1,10 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ interface IPBulkSellerCallback {
5
+ function swapCallback(
6
+ int256 ptToAccount,
7
+ int256 syToAccount,
8
+ bytes calldata data
9
+ ) external;
10
+ }
@@ -2,7 +2,7 @@
2
2
  pragma solidity 0.8.17;
3
3
 
4
4
  interface IPMarketFactory {
5
- event NewMarketConfig(address indexed treasury, uint96 lnFeeRateRoot, uint8 reserveFeePercent);
5
+ event NewMarketConfig(address indexed treasury, uint88 lnFeeRateRoot, uint8 reserveFeePercent);
6
6
 
7
7
  event CreateNewMarket(
8
8
  address indexed market,
@@ -6,12 +6,14 @@ interface IPMsgSendEndpoint {
6
6
  function calcFee(
7
7
  address dstAddress,
8
8
  uint256 dstChainId,
9
- bytes calldata message
9
+ bytes memory payload,
10
+ uint256 estimatedGasAmount
10
11
  ) external view returns (uint256);
11
12
 
12
13
  function sendMessage(
13
14
  address dstAddress,
14
15
  uint256 dstChainId,
15
- bytes calldata message
16
+ bytes calldata payload,
17
+ uint256 estimatedGasAmount
16
18
  ) external payable;
17
19
  }
@@ -30,7 +30,7 @@ interface IPYieldContractFactory {
30
30
 
31
31
  event SetInterestFeeRate(uint256 newInterestFeeRate);
32
32
 
33
- event SetRewardFeeRate(uint256 newInterestFeeRate);
33
+ event SetRewardFeeRate(uint256 newRewardFeeRate);
34
34
 
35
35
  event SetTreasury(address indexed treasury);
36
36
 
@@ -11,4 +11,10 @@ interface IStETH {
11
11
  function burnShares(address _account, uint256 _sharesAmount)
12
12
  external
13
13
  returns (uint256 newTotalShares);
14
+
15
+ function sharesOf(address account) external view returns (uint256);
16
+
17
+ function getTotalShares() external view returns (uint256);
18
+
19
+ function getTotalPooledEther() external view returns (uint256);
14
20
  }
@@ -43,7 +43,7 @@ interface IStandardizedYield is IERC20Metadata {
43
43
  uint256 amountTokenOut
44
44
  );
45
45
 
46
- /// @dev check assetInfo for more information
46
+ /// @dev check `assetInfo()` for more information
47
47
  enum AssetType {
48
48
  TOKEN,
49
49
  LIQUIDITY
@@ -74,9 +74,10 @@ interface IStandardizedYield is IERC20Metadata {
74
74
  /**
75
75
  * @notice redeems an amount of base tokens by burning some shares
76
76
  * @param receiver recipient address
77
- * @param amountSharesToRedeem amount of shares to be burned from (`msg.sender`)
77
+ * @param amountSharesToRedeem amount of shares to be burned
78
78
  * @param tokenOut address of the base token to be redeemed
79
79
  * @param minTokenOut reverts if amount of base token redeemed is lower than this
80
+ * @param burnFromInternalBalance if true, burns from balance of `address(this)`, otherwise burns from `msg.sender`
80
81
  * @return amountTokenOut amount of base tokens redeemed
81
82
  * @dev Emits a {Redeem} event
82
83
  *
@@ -105,7 +106,7 @@ interface IStandardizedYield is IERC20Metadata {
105
106
  * @param user the user receiving their rewards
106
107
  * @return rewardAmounts an array of reward amounts in the same order as `getRewardTokens`
107
108
  * @dev
108
- * Emits a `ClaimRewardss` event
109
+ * Emits a `ClaimRewards` event
109
110
  * See {getRewardTokens} for list of reward tokens
110
111
  */
111
112
  function claimRewards(address user) external returns (uint256[] memory rewardAmounts);
@@ -131,8 +132,14 @@ interface IStandardizedYield is IERC20Metadata {
131
132
  */
132
133
  function yieldToken() external view returns (address);
133
134
 
135
+ /**
136
+ * @notice returns all tokens that can mint this SY
137
+ */
134
138
  function getTokensIn() external view returns (address[] memory res);
135
139
 
140
+ /**
141
+ * @notice returns all tokens that can be redeemed by this SY
142
+ */
136
143
  function getTokensOut() external view returns (address[] memory res);
137
144
 
138
145
  function isValidTokenIn(address token) external view returns (bool);
@@ -150,13 +157,11 @@ interface IStandardizedYield is IERC20Metadata {
150
157
  returns (uint256 amountTokenOut);
151
158
 
152
159
  /**
153
- * @notice This function contains information to interpret what the asset is
154
- * @notice decimals is the decimals to format asset balances
155
- * @notice if asset is an ERC20 token, assetType = 0, assetAddress is the address of the token
156
- * @notice if asset is liquidity of an AMM (like sqrt(k) in UniswapV2 forks), assetType = 1,
157
- assetAddress is the address of the LP token
158
- * @notice assetDecimals is the decimals of the asset
159
- */
160
+ * @notice This function contains information to interpret what the asset is
161
+ * @return assetType the type of the asset (0 for ERC20 tokens, 1 for AMM liquidity tokens)
162
+ * @return assetAddress the address of the asset
163
+ * @return assetDecimals the decimals of the asset
164
+ */
160
165
  function assetInfo()
161
166
  external
162
167
  view
@@ -0,0 +1,43 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "../core/BulkSeller/BulkSellerMathCore.sol";
5
+ import "../core/BulkSeller/BulkSeller.sol";
6
+ import "hardhat/console.sol";
7
+
8
+ // upgradable bla bla
9
+ contract BulkSellerOffchain {
10
+ using BulkSellerMathCore for BulkSellerState;
11
+ using Math for uint256;
12
+
13
+ // rmb to add fee here
14
+ function calcCurrentRates(IPBulkSeller bulk)
15
+ external
16
+ view
17
+ returns (uint256 rateTokenToSy, uint256 rateSyToToken)
18
+ {
19
+ BulkSellerState memory state = bulk.readState();
20
+ address SY = bulk.SY();
21
+ address token = bulk.token();
22
+
23
+ {
24
+ uint256 hypoTotalToken = state.totalToken +
25
+ state.totalSy.mulDown(state.rateSyToToken);
26
+ uint256 netSyFromToken = IStandardizedYield(SY).previewDeposit(token, hypoTotalToken);
27
+
28
+ rateTokenToSy = netSyFromToken.divDown(hypoTotalToken);
29
+ }
30
+
31
+ {
32
+ uint256 hypoTotalSy = state.totalSy + state.totalToken.mulDown(state.rateTokenToSy);
33
+ uint256 netTokenFromSy = IStandardizedYield(SY).previewRedeem(token, hypoTotalSy);
34
+ rateSyToToken = netTokenFromSy.divDown(hypoTotalSy);
35
+ }
36
+ }
37
+
38
+ // TODO: pause contract when rate is bad compared to market
39
+ // TODO: Sound alarm if updates fail
40
+ // TODO: audit even the typescript code
41
+ // TODO: add a max with currentRate to guarantee no loss?
42
+ // TODO: pause immediately if lost enough money
43
+ }