@pendle/core-v2 2.19.1-tradingbot → 2.20.0-tradingbot

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 (503) hide show
  1. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
  2. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
  3. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  4. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.dbg.json +1 -1
  6. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
  7. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  10. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  11. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  12. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  13. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.dbg.json +1 -1
  14. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  15. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  16. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  18. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  19. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  20. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  21. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  22. package/build/artifacts/contracts/LiquidityMining/libraries/WeekMath.sol/WeekMath.dbg.json +1 -1
  23. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  24. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  25. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  26. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  27. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  28. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  29. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  30. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  32. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  34. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.json +2 -2
  38. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/StandardizedYield/SYUtils.sol/SYUtils.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol/FixedPoint.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAPoolHelper.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAWethHelper.dbg.json +1 -1
  53. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearMath.sol/LinearMath.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearPreview.sol/LinearPreview.dbg.json +1 -1
  55. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.dbg.json +1 -1
  57. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSYV2.sol/PendleAuraBalancerStableLPSYV2.dbg.json +1 -1
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.dbg.json +1 -1
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.dbg.json +1 -1
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotRewardHelper.sol/CamelotRewardHelper.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileCommon.sol/CamelotV1VolatileCommon.dbg.json +1 -1
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileLpHelper.sol/CamelotV1VolatileLpHelper.dbg.json +1 -1
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatilePreview.sol/CamelotV1VolatilePreview.dbg.json +1 -1
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.dbg.json +1 -1
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +1 -1
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +1 -1
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +1 -1
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.dbg.json +1 -1
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  77. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.dbg.json +1 -1
  78. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.dbg.json +1 -1
  79. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  80. package/build/artifacts/contracts/core/TradingBot/DecisionHelper/BotDecisionHelperBase.sol/BotDecisionHelperBase.dbg.json +4 -0
  81. package/build/artifacts/contracts/core/TradingBot/{base → DecisionHelper}/BotDecisionHelperBase.sol/BotDecisionHelperBase.json +93 -66
  82. package/build/artifacts/contracts/core/TradingBot/DecisionHelper/LongYieldDecisionHelper.sol/LongYieldDecisionHelper.dbg.json +4 -0
  83. package/build/artifacts/contracts/core/TradingBot/DecisionHelper/LongYieldDecisionHelper.sol/LongYieldDecisionHelper.json +1411 -0
  84. package/build/artifacts/contracts/core/TradingBot/LongYieldTradingBot.sol/LongYieldTradingBot.dbg.json +4 -0
  85. package/build/artifacts/contracts/core/TradingBot/LongYieldTradingBot.sol/LongYieldTradingBot.json +2332 -0
  86. package/build/artifacts/contracts/core/TradingBot/TradingBotBase.sol/TradingBotBase.dbg.json +4 -0
  87. package/build/artifacts/contracts/core/TradingBot/TradingBotBase.sol/TradingBotBase.json +1641 -0
  88. package/build/artifacts/contracts/core/TradingBot/libraries/BotSimulationLib.sol/BotSimulationLib.dbg.json +1 -1
  89. package/build/artifacts/contracts/core/TradingBot/libraries/BotSimulationLib.sol/BotSimulationLib.json +2 -2
  90. package/build/artifacts/contracts/core/TradingBot/libraries/LongYieldActionLib.sol/LongYieldActionLib.dbg.json +4 -0
  91. package/build/artifacts/contracts/core/TradingBot/libraries/LongYieldActionLib.sol/LongYieldActionLib.json +154 -0
  92. package/build/artifacts/contracts/core/TradingBot/libraries/MarketExtLib.sol/MarketExtLib.dbg.json +1 -1
  93. package/build/artifacts/contracts/core/TradingBot/libraries/MarketExtLib.sol/MarketExtLib.json +2 -2
  94. package/build/artifacts/contracts/core/TradingBot/libraries/SpecSegmentLib.sol/SpecSegmentLib.dbg.json +1 -1
  95. package/build/artifacts/contracts/core/TradingBot/libraries/SpecSegmentLib.sol/SpecSegmentLib.json +2 -2
  96. package/build/artifacts/contracts/core/TradingBot/libraries/TvlLib.sol/TvlLib.dbg.json +4 -0
  97. package/build/artifacts/contracts/core/TradingBot/libraries/TvlLib.sol/TvlLib.json +262 -0
  98. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  99. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  100. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  101. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  102. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +1 -1
  103. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +1 -1
  104. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +1 -1
  105. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +1 -1
  106. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  107. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
  108. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  109. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
  110. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
  111. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
  112. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
  113. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  114. package/build/artifacts/contracts/core/libraries/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  115. package/build/artifacts/contracts/core/libraries/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  116. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +1 -1
  117. package/build/artifacts/contracts/core/libraries/TokenAmountLib.sol/TokenAmountLib.dbg.json +1 -1
  118. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  119. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  120. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.dbg.json +1 -1
  121. package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.dbg.json +1 -1
  122. package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.dbg.json +1 -1
  123. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +1 -1
  124. package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.dbg.json +1 -1
  125. package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.dbg.json +1 -1
  126. package/build/artifacts/contracts/interfaces/Balancer/IERC4626LinearPool.sol/IERC4626LinearPool.dbg.json +1 -1
  127. package/build/artifacts/contracts/interfaces/Balancer/IGauge.sol/IGauge.dbg.json +1 -1
  128. package/build/artifacts/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol/ILiquidityGaugeFactory.dbg.json +1 -1
  129. package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.dbg.json +1 -1
  130. package/build/artifacts/contracts/interfaces/Balancer/IRateProvider.sol/IRateProvider.dbg.json +1 -1
  131. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +1 -1
  132. package/build/artifacts/contracts/interfaces/Camelot/ICamelotFactory.sol/ICamelotFactory.dbg.json +1 -1
  133. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTFactory.sol/ICamelotNFTFactory.dbg.json +1 -1
  134. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTHandler.sol/ICamelotNFTHandler.dbg.json +1 -1
  135. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTPool.sol/ICamelotNFTPool.dbg.json +1 -1
  136. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNitroPool.sol/ICamelotNitroPool.dbg.json +1 -1
  137. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNitroPoolFactory.sol/ICamelotNitroPoolFactory.dbg.json +1 -1
  138. package/build/artifacts/contracts/interfaces/Camelot/ICamelotPair.sol/ICamelotPair.dbg.json +1 -1
  139. package/build/artifacts/contracts/interfaces/Camelot/ICamelotRouter.sol/ICamelotRouter.dbg.json +1 -1
  140. package/build/artifacts/contracts/interfaces/Camelot/ICamelotYieldBooster.sol/ICamelotYieldBooster.dbg.json +1 -1
  141. package/build/artifacts/contracts/interfaces/Camelot/IXGrail.sol/IXGrail.dbg.json +1 -1
  142. package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
  143. package/build/artifacts/contracts/interfaces/ConvexCurve/ICrvDepositor.sol/ICrvDepositor.dbg.json +1 -1
  144. package/build/artifacts/contracts/interfaces/ConvexCurve/ICvxCrv.sol/ICvxCrv.dbg.json +1 -1
  145. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
  146. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
  147. package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.dbg.json +1 -1
  148. package/build/artifacts/contracts/interfaces/Frax/IFrxEthMinter.sol/IFrxEthMinter.dbg.json +1 -1
  149. package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.dbg.json +1 -1
  150. package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.dbg.json +1 -1
  151. package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.dbg.json +1 -1
  152. package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.dbg.json +1 -1
  153. package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.dbg.json +1 -1
  154. package/build/artifacts/contracts/interfaces/IApeStaking.sol/IApeStaking.dbg.json +1 -1
  155. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  156. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  157. package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.dbg.json +1 -1
  158. package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.dbg.json +1 -1
  159. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  160. package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.dbg.json +1 -1
  161. package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +1 -1
  162. package/build/artifacts/contracts/interfaces/ILooksFeeSharing.sol/ILooksFeeSharing.dbg.json +1 -1
  163. package/build/artifacts/contracts/interfaces/ILooksStaking.sol/ILooksStaking.dbg.json +1 -1
  164. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  165. package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +1 -1
  166. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  167. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
  168. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  169. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +1 -1
  170. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
  171. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  172. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  173. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  174. package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.dbg.json +1 -1
  175. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  176. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  177. package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.dbg.json +1 -1
  178. package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.dbg.json +1 -1
  179. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
  180. package/build/artifacts/contracts/interfaces/IPFeeDistributorV2.sol/IPFeeDistributorV2.dbg.json +1 -1
  181. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
  182. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  183. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  184. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  185. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +1 -1
  186. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  187. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  188. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  189. package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.dbg.json +1 -1
  190. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
  191. package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
  192. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  193. package/build/artifacts/contracts/interfaces/IPPtOracle.sol/IPPtOracle.dbg.json +1 -1
  194. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +1 -1
  195. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  196. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  197. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  198. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  199. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  200. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  201. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +1 -1
  202. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  203. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  204. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  205. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  206. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  207. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  208. package/build/artifacts/contracts/interfaces/IStargateLP.sol/IStargateLP.dbg.json +1 -1
  209. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  210. package/build/artifacts/contracts/interfaces/IStargateStaking.sol/IStargateStaking.dbg.json +1 -1
  211. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  212. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  213. package/build/artifacts/contracts/interfaces/TradingBot/IBotDecisionHelper.sol/IBotDecisionHelper.dbg.json +1 -1
  214. package/build/artifacts/contracts/interfaces/TradingBot/IBotDecisionHelper.sol/IBotDecisionHelper.json +91 -64
  215. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldDecisionHelper.sol/ILongYieldDecisionHelper.dbg.json +1 -1
  216. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldDecisionHelper.sol/ILongYieldDecisionHelper.json +110 -83
  217. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.dbg.json +1 -1
  218. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.json +7 -171
  219. package/build/artifacts/contracts/interfaces/TradingBot/IShortYieldDecisionHelper.sol/IShortYieldDecisionHelper.dbg.json +1 -1
  220. package/build/artifacts/contracts/interfaces/TradingBot/IShortYieldDecisionHelper.sol/IShortYieldDecisionHelper.json +91 -64
  221. package/build/artifacts/contracts/interfaces/TradingBot/IShortYieldTradingBot.sol/IShortYieldTradingBot.dbg.json +1 -1
  222. package/build/artifacts/contracts/interfaces/TradingBot/IShortYieldTradingBot.sol/IShortYieldTradingBot.json +7 -171
  223. package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.dbg.json +1 -1
  224. package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.json +7 -171
  225. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.dbg.json +1 -1
  226. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  227. package/build/artifacts/contracts/offchain-helpers/BoringLpSeller.sol/BoringLpSeller.dbg.json +1 -1
  228. package/build/artifacts/contracts/offchain-helpers/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
  229. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
  230. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  231. package/build/artifacts/contracts/offchain-helpers/EmptyUUPS.sol/EmptyUUPS.dbg.json +1 -1
  232. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.dbg.json +1 -1
  233. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.json +2 -2
  234. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +1 -1
  235. package/build/artifacts/contracts/offchain-helpers/PendleMulticallV1.sol/PendleMulticallV1.dbg.json +1 -1
  236. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  237. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  238. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  239. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  240. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  241. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
  242. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  243. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -2
  244. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  245. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
  246. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  247. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -2
  248. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  249. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  250. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  251. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
  252. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.json +2 -2
  253. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.dbg.json +1 -1
  254. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.json +2 -2
  255. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.dbg.json +1 -1
  256. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.json +2 -2
  257. package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.dbg.json +1 -1
  258. package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.json +2 -2
  259. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.dbg.json +1 -1
  260. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.json +2 -2
  261. package/build/artifacts/contracts/oracles/samples/PendlePtUsdChainlinkOracle.sol/PendlePtUsdChainlinkOracle.dbg.json +1 -1
  262. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  263. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +2 -2
  264. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  265. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +2 -2
  266. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  267. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  268. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +2 -2
  269. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  270. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +2 -2
  271. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  272. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
  273. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +1 -1
  274. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.json +2 -2
  275. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
  276. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  277. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  278. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  279. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  280. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  281. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  282. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
  283. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +1 -1
  284. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +1 -1
  285. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IExecutorHelper.sol/IExecutorHelper.dbg.json +1 -1
  286. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IHashflow.sol/IHashflow.dbg.json +1 -1
  287. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +1 -1
  288. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberInputScalingHelper.sol/KyberInputScalingHelper.dbg.json +1 -1
  289. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScalingDataLib.sol/ScalingDataLib.dbg.json +1 -1
  290. package/contracts/core/StandardizedYield/PYIndex.sol +14 -0
  291. package/contracts/core/TradingBot/{base → DecisionHelper}/BotDecisionHelperBase.sol +60 -35
  292. package/contracts/core/TradingBot/{LongYield → DecisionHelper}/LongYieldDecisionHelper.sol +116 -41
  293. package/contracts/core/TradingBot/{LongYield/LongYieldTradingBot.sol → LongYieldTradingBot.sol} +41 -10
  294. package/contracts/core/TradingBot/TradingBotBase.sol +254 -0
  295. package/contracts/core/TradingBot/libraries/LongYieldActionLib.sol +279 -0
  296. package/contracts/core/TradingBot/libraries/SpecSegmentLib.sol +1 -1
  297. package/contracts/core/TradingBot/libraries/TvlLib.sol +57 -0
  298. package/contracts/interfaces/TradingBot/IBotDecisionHelper.sol +37 -19
  299. package/contracts/interfaces/TradingBot/ITradingBotBase.sol +6 -16
  300. package/contracts/oracles/PendleLpOracleLib.sol +1 -1
  301. package/deployments/core.ts +29 -0
  302. package/deployments/index.ts +4 -0
  303. package/deployments/markets/ape-june-29-2023.ts +3 -0
  304. package/deployments/markets/balancer-reth-dec-28-2023.ts +3 -0
  305. package/deployments/markets/balancer-wsteth-jun-27-2024.ts +3 -0
  306. package/deployments/markets/curve-fraxusdc-march-30-2023.ts +3 -0
  307. package/deployments/markets/index.ts +17 -0
  308. package/deployments/markets/looks-march-30-2023.ts +3 -0
  309. package/deployments/markets/steth-june-29-2023.ts +3 -0
  310. package/deployments/markets/steth-march-30-2023.ts +3 -0
  311. package/deployments/markets/types.ts +9 -0
  312. package/deployments/misc.ts +23 -0
  313. package/package.json +1 -1
  314. package/typechain-types/{PendleCamelotV1SY.ts → AuraEthxBbAWethSY.ts} +170 -599
  315. package/typechain-types/AuraSwEthBbAWethSYV2.ts +1532 -0
  316. package/typechain-types/AuraWethVethSY.ts +1598 -0
  317. package/typechain-types/AutomateReady.ts +102 -0
  318. package/typechain-types/AutomationBase.ts +57 -0
  319. package/typechain-types/AutomationCompatible.ts +140 -0
  320. package/typechain-types/AutomationCompatibleInterface.ts +141 -0
  321. package/typechain-types/BotActionCallbackLib.ts +57 -0
  322. package/typechain-types/BotDecisionHelperBase.ts +93 -69
  323. package/typechain-types/ChainlinkRelayerAutomation.ts +305 -0
  324. package/typechain-types/ChainlinkRelayerGelato.ts +311 -0
  325. package/typechain-types/{CamelotV1Preview.ts → ComposableStablePreviewProxy.ts} +5 -84
  326. package/typechain-types/ComposableStablePreviewV4.ts +217 -0
  327. package/typechain-types/ComposableStablePreviewV5.ts +217 -0
  328. package/typechain-types/IAutomate.ts +203 -0
  329. package/typechain-types/IBotDecisionHelper.ts +93 -69
  330. package/typechain-types/IFluxErc20.ts +298 -0
  331. package/typechain-types/{IExecutorHelper2.ts → IFluxInterestRateModel.ts} +35 -37
  332. package/typechain-types/ILongYieldDecisionHelper.ts +112 -86
  333. package/typechain-types/ILongYieldTradingBot.ts +28 -224
  334. package/typechain-types/IOpsProxyFactory.ts +93 -0
  335. package/typechain-types/IPComposableStablePreview.ts +217 -0
  336. package/typechain-types/IPExternalRewardDistributor.ts +38 -32
  337. package/typechain-types/{ICamelotSY.ts → IPOracleForSy.ts} +13 -26
  338. package/typechain-types/IShortYieldDecisionHelper.ts +93 -69
  339. package/typechain-types/IShortYieldTradingBot.ts +28 -224
  340. package/typechain-types/ITaskTreasuryUpgradable.ts +160 -0
  341. package/typechain-types/ITradingBotBase.ts +28 -224
  342. package/typechain-types/IVersion.ts +81 -0
  343. package/typechain-types/LegacyNFTHelper.ts +87 -0
  344. package/typechain-types/LongYieldActionLib.ts +57 -0
  345. package/typechain-types/LongYieldDecisionHelper.ts +139 -77
  346. package/typechain-types/LongYieldTradingBot.ts +1210 -154
  347. package/typechain-types/PendleAuraBalancerStableLPSYV3.ts +1599 -0
  348. package/typechain-types/PendleAuraWethVethSY.ts +1511 -0
  349. package/typechain-types/PendleBridgedLSDSY.ts +1222 -0
  350. package/typechain-types/PendleChainlinkReceiver.ts +239 -0
  351. package/typechain-types/PendleChainlinkRelayer.ts +158 -0
  352. package/typechain-types/PendleERC20PermitUpgradable.ts +452 -0
  353. package/typechain-types/PendleERC20Upgradable.ts +348 -0
  354. package/typechain-types/{PendleBinanceEth.ts → PendleERC4626SY.ts} +18 -31
  355. package/typechain-types/PendleExternalRewardDistributor.ts +136 -86
  356. package/typechain-types/PendleFluxLendingSY.ts +1232 -0
  357. package/typechain-types/PendleMantleStakedEthSY.ts +1222 -0
  358. package/typechain-types/PendleMarketFactoryV2.ts +26 -24
  359. package/typechain-types/PendleOracleForSyProxy.ts +275 -0
  360. package/typechain-types/SDKErrorsDirectory.ts +57 -0
  361. package/typechain-types/SYBaseUpgradable.ts +1132 -0
  362. package/typechain-types/SYBaseWithRewardsUpgradable.ts +1225 -0
  363. package/typechain-types/StarNFTV1.ts +880 -0
  364. package/typechain-types/{PendleSwETH.ts → SwETHSY.ts} +5 -5
  365. package/typechain-types/TradingBotBase.ts +1132 -151
  366. package/typechain-types/TvlLib.ts +215 -0
  367. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1 -1
  368. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  369. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
  370. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -1
  371. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
  372. package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -1
  373. package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
  374. package/typechain-types/factories/ActionSwapPT__factory.ts +1 -1
  375. package/typechain-types/factories/ActionSwapYT__factory.ts +1 -1
  376. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  377. package/typechain-types/factories/AuraEthxBbAWethSY__factory.ts +1240 -0
  378. package/typechain-types/factories/AuraSwEthBbAWethSYV2__factory.ts +1244 -0
  379. package/typechain-types/factories/AuraWethVethSY__factory.ts +1270 -0
  380. package/typechain-types/factories/{ICamelotSY__factory.ts → AutomateReady__factory.ts} +9 -9
  381. package/typechain-types/factories/AutomationBase__factory.ts +69 -0
  382. package/typechain-types/factories/AutomationCompatibleInterface__factory.ts +67 -0
  383. package/typechain-types/factories/AutomationCompatible__factory.ts +72 -0
  384. package/typechain-types/factories/BotActionCallbackLib__factory.ts +84 -0
  385. package/typechain-types/factories/BotDecisionHelperBase__factory.ts +91 -64
  386. package/typechain-types/factories/ChainlinkRelayerAutomation__factory.ts +238 -0
  387. package/typechain-types/factories/ChainlinkRelayerGelato__factory.ts +263 -0
  388. package/typechain-types/factories/ComposableStablePreviewProxy__factory.ts +288 -0
  389. package/typechain-types/factories/ComposableStablePreviewV4__factory.ts +190 -0
  390. package/typechain-types/factories/ComposableStablePreviewV5__factory.ts +190 -0
  391. package/typechain-types/factories/IAutomate__factory.ts +126 -0
  392. package/typechain-types/factories/IBotDecisionHelper__factory.ts +90 -63
  393. package/typechain-types/factories/{CamelotV1LpHelper__factory.ts → IFluxErc20__factory.ts} +66 -31
  394. package/typechain-types/factories/{IExecutorHelper2__factory.ts → IFluxInterestRateModel__factory.ts} +19 -15
  395. package/typechain-types/factories/ILongYieldDecisionHelper__factory.ts +109 -82
  396. package/typechain-types/factories/ILongYieldTradingBot__factory.ts +7 -171
  397. package/typechain-types/factories/IOpsProxyFactory__factory.ts +50 -0
  398. package/typechain-types/factories/IPComposableStablePreview__factory.ts +152 -0
  399. package/typechain-types/factories/IPExternalRewardDistributor__factory.ts +32 -32
  400. package/typechain-types/factories/IPOracleForSy__factory.ts +36 -0
  401. package/typechain-types/factories/IShortYieldDecisionHelper__factory.ts +90 -63
  402. package/typechain-types/factories/IShortYieldTradingBot__factory.ts +7 -171
  403. package/typechain-types/factories/ITaskTreasuryUpgradable__factory.ts +76 -0
  404. package/typechain-types/factories/ITradingBotBase__factory.ts +7 -171
  405. package/typechain-types/factories/IVersion__factory.ts +36 -0
  406. package/typechain-types/factories/LegacyNFTHelper__factory.ts +83 -0
  407. package/typechain-types/factories/LongYieldActionLib__factory.ts +207 -0
  408. package/typechain-types/factories/LongYieldDecisionHelper__factory.ts +265 -69
  409. package/typechain-types/factories/LongYieldTradingBot__factory.ts +967 -271
  410. package/typechain-types/factories/MarketExtLib__factory.ts +1 -1
  411. package/typechain-types/factories/PendleAnkrBNBSY__factory.ts +1 -1
  412. package/typechain-types/factories/PendleArbitrumStakedEthSY__factory.ts +1 -1
  413. package/typechain-types/factories/PendleAuraBalancerStableLPSYV3__factory.ts +1212 -0
  414. package/typechain-types/factories/PendleAuraWethVethSY__factory.ts +1231 -0
  415. package/typechain-types/factories/PendleAuraWstethAnkreth__factory.ts +1 -1
  416. package/typechain-types/factories/PendleBridgedLSDSY__factory.ts +1064 -0
  417. package/typechain-types/factories/PendleChainlinkReceiver__factory.ts +216 -0
  418. package/typechain-types/factories/PendleChainlinkRelayer__factory.ts +180 -0
  419. package/typechain-types/factories/PendleERC20PermitUpgradable__factory.ts +401 -0
  420. package/typechain-types/factories/PendleERC20Upgradable__factory.ts +326 -0
  421. package/typechain-types/factories/PendleERC4626SY__factory.ts +1030 -0
  422. package/typechain-types/factories/PendleExternalRewardDistributor__factory.ts +91 -68
  423. package/typechain-types/factories/PendleFluxLendingSY__factory.ts +1038 -0
  424. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  425. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  426. package/typechain-types/factories/PendleLpGlpOracle__factory.ts +1 -1
  427. package/typechain-types/factories/PendleMantleStakedEthSY__factory.ts +1068 -0
  428. package/typechain-types/factories/PendleMarketFactoryV2__factory.ts +15 -15
  429. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  430. package/typechain-types/factories/PendleMarketV2__factory.ts +10 -1
  431. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  432. package/typechain-types/factories/PendleOracleForSyProxy__factory.ts +211 -0
  433. package/typechain-types/factories/PendlePtGlpOracle__factory.ts +1 -1
  434. package/typechain-types/factories/PendlePtOracle__factory.ts +1 -1
  435. package/typechain-types/factories/PendleRouterHelper__factory.ts +1 -1
  436. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  437. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  438. package/typechain-types/factories/PendleThenaSY__factory.ts +1 -1
  439. package/typechain-types/factories/PendleWbEthSY__factory.ts +1 -1
  440. package/typechain-types/factories/PtAndLpToAsset__factory.ts +1 -1
  441. package/typechain-types/factories/SDKErrorsDirectory__factory.ts +1596 -0
  442. package/typechain-types/factories/SYBaseUpgradable__factory.ts +889 -0
  443. package/typechain-types/factories/SYBaseWithRewardsUpgradable__factory.ts +959 -0
  444. package/typechain-types/factories/StarNFTV1__factory.ts +584 -0
  445. package/typechain-types/factories/{PendleSwETH__factory.ts → SwETHSY__factory.ts} +19 -19
  446. package/typechain-types/factories/ThenaPreview__factory.ts +1 -1
  447. package/typechain-types/factories/TradingBotBase__factory.ts +1020 -144
  448. package/typechain-types/factories/TvlLib__factory.ts +309 -0
  449. package/typechain-types/hardhat.d.ts +56 -56
  450. package/typechain-types/index.ts +14 -16
  451. package/build/artifacts/contracts/core/TradingBot/LongYield/LongYieldActionHelper.sol/LongYieldActionHelper.dbg.json +0 -4
  452. package/build/artifacts/contracts/core/TradingBot/LongYield/LongYieldActionHelper.sol/LongYieldActionHelper.json +0 -815
  453. package/build/artifacts/contracts/core/TradingBot/LongYield/LongYieldDecisionHelper.sol/LongYieldDecisionHelper.dbg.json +0 -4
  454. package/build/artifacts/contracts/core/TradingBot/LongYield/LongYieldDecisionHelper.sol/LongYieldDecisionHelper.json +0 -1215
  455. package/build/artifacts/contracts/core/TradingBot/LongYield/LongYieldTradingBot.sol/LongYieldTradingBot.dbg.json +0 -4
  456. package/build/artifacts/contracts/core/TradingBot/LongYield/LongYieldTradingBot.sol/LongYieldTradingBot.json +0 -1564
  457. package/build/artifacts/contracts/core/TradingBot/ShortYield/ShortYieldActionHelper.sol/ShortYieldActionHelper.dbg.json +0 -4
  458. package/build/artifacts/contracts/core/TradingBot/ShortYield/ShortYieldActionHelper.sol/ShortYieldActionHelper.json +0 -765
  459. package/build/artifacts/contracts/core/TradingBot/ShortYield/ShortYieldDecisionHelper.sol/ShortYieldDecisionHelper.dbg.json +0 -4
  460. package/build/artifacts/contracts/core/TradingBot/ShortYield/ShortYieldDecisionHelper.sol/ShortYieldDecisionHelper.json +0 -1215
  461. package/build/artifacts/contracts/core/TradingBot/ShortYield/ShortYieldTradingBot.sol/ShortYieldTradingBot.dbg.json +0 -4
  462. package/build/artifacts/contracts/core/TradingBot/ShortYield/ShortYieldTradingBot.sol/ShortYieldTradingBot.json +0 -1368
  463. package/build/artifacts/contracts/core/TradingBot/base/BotActionCallback.sol/BotActionCallback.dbg.json +0 -4
  464. package/build/artifacts/contracts/core/TradingBot/base/BotActionCallback.sol/BotActionCallback.json +0 -815
  465. package/build/artifacts/contracts/core/TradingBot/base/BotDecisionHelperBase.sol/BotDecisionHelperBase.dbg.json +0 -4
  466. package/build/artifacts/contracts/core/TradingBot/base/TradingBotBase.sol/TradingBotBase.dbg.json +0 -4
  467. package/build/artifacts/contracts/core/TradingBot/base/TradingBotBase.sol/TradingBotBase.json +0 -765
  468. package/contracts/core/TradingBot/LongYield/LongYieldActionHelper.sol +0 -101
  469. package/contracts/core/TradingBot/ShortYield/ShortYieldActionHelper.sol +0 -54
  470. package/contracts/core/TradingBot/ShortYield/ShortYieldDecisionHelper.sol +0 -198
  471. package/contracts/core/TradingBot/ShortYield/ShortYieldTradingBot.sol +0 -101
  472. package/contracts/core/TradingBot/base/BotActionCallback.sol +0 -112
  473. package/contracts/core/TradingBot/base/TradingBotBase.sol +0 -184
  474. package/typechain-types/BotActionCallback.ts +0 -900
  475. package/typechain-types/BotActionHelper.ts +0 -950
  476. package/typechain-types/BotDecisionHelper.ts +0 -561
  477. package/typechain-types/BotDecisionLib.ts +0 -335
  478. package/typechain-types/CamelotV1LpHelper.ts +0 -203
  479. package/typechain-types/IExecutorHelper1.ts +0 -643
  480. package/typechain-types/IExecutorHelperEthereum1.ts +0 -643
  481. package/typechain-types/LongYieldActionHelper.ts +0 -900
  482. package/typechain-types/PendleSwapArbitrum.ts +0 -126
  483. package/typechain-types/PendleSwapEthereum.ts +0 -126
  484. package/typechain-types/ShortYieldActionHelper.ts +0 -856
  485. package/typechain-types/ShortYieldDecisionHelper.ts +0 -601
  486. package/typechain-types/ShortYieldTradingBot.ts +0 -1212
  487. package/typechain-types/TradingBotOffchain.ts +0 -568
  488. package/typechain-types/factories/BotActionCallback__factory.ts +0 -830
  489. package/typechain-types/factories/BotActionHelper__factory.ts +0 -947
  490. package/typechain-types/factories/BotDecisionHelper__factory.ts +0 -1192
  491. package/typechain-types/factories/BotDecisionLib__factory.ts +0 -642
  492. package/typechain-types/factories/CamelotV1Preview__factory.ts +0 -309
  493. package/typechain-types/factories/IExecutorHelper1__factory.ts +0 -403
  494. package/typechain-types/factories/IExecutorHelperEthereum1__factory.ts +0 -407
  495. package/typechain-types/factories/LongYieldActionHelper__factory.ts +0 -834
  496. package/typechain-types/factories/PendleBinanceEth__factory.ts +0 -1052
  497. package/typechain-types/factories/PendleCamelotV1SY__factory.ts +0 -1595
  498. package/typechain-types/factories/PendleSwapArbitrum__factory.ts +0 -129
  499. package/typechain-types/factories/PendleSwapEthereum__factory.ts +0 -129
  500. package/typechain-types/factories/ShortYieldActionHelper__factory.ts +0 -784
  501. package/typechain-types/factories/ShortYieldDecisionHelper__factory.ts +0 -1272
  502. package/typechain-types/factories/ShortYieldTradingBot__factory.ts +0 -1445
  503. package/typechain-types/factories/TradingBotOffchain__factory.ts +0 -1133
@@ -0,0 +1,279 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ // import "../base/TradingBotBase.sol";
5
+ import "../../../router/base/MarketApproxLib.sol";
6
+ import "../../../interfaces/IPAllAction.sol";
7
+ import "../../../interfaces/IPMarket.sol";
8
+ import "../../../interfaces/TradingBot/IBotDecisionHelper.sol";
9
+ import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
10
+ import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
11
+
12
+ library LongYieldActionLib {
13
+ using PYIndexLib for IPYieldToken;
14
+ using PYIndexLib for PYIndex;
15
+ using MarketMathCore for MarketState;
16
+ using MarketApproxPtInLib for MarketState;
17
+ using Math for int256;
18
+ using SafeERC20 for IERC20;
19
+
20
+ bytes internal constant EMPTY_BYTES = abi.encode();
21
+
22
+ address internal constant ROUTER = 0x0000000001E4ef00d069e71d6bA041b0A16F7eA0;
23
+
24
+ function removeLiquidityToSy(
25
+ address market,
26
+ uint256 netLpToRemove,
27
+ uint256 minSyOut
28
+ ) public returns (uint256 netSyOut) {
29
+ (uint256 netSyFromLp, uint256 netPtOut) = IPAllAction(ROUTER).removeLiquidityDualSyAndPt(
30
+ address(this),
31
+ market,
32
+ netLpToRemove,
33
+ 0,
34
+ 0
35
+ );
36
+
37
+ (, , IPYieldToken YT) = IPMarket(market).readTokens();
38
+ uint256 netSyFromRedeemPY = IPAllAction(ROUTER).redeemPyToSy(
39
+ address(this),
40
+ address(YT),
41
+ Math.min(netPtOut, YT.balanceOf(address(this))),
42
+ 0
43
+ );
44
+
45
+ netSyOut = netSyFromLp + netSyFromRedeemPY;
46
+ require(netSyOut > minSyOut, "removeLiquidityToSy: insufficient sy out");
47
+ }
48
+
49
+ function swapYtToSy(
50
+ address market,
51
+ uint256 netYtIn,
52
+ uint256 minSyOut
53
+ ) public returns (uint256 netSyOut) {
54
+ (netSyOut, ) = IPAllAction(ROUTER).swapExactYtForSy(
55
+ address(this),
56
+ market,
57
+ netYtIn,
58
+ minSyOut
59
+ );
60
+ }
61
+
62
+ function addLiqKeepYt(
63
+ address market,
64
+ uint256 netSyIn,
65
+ uint256 minLpOut,
66
+ uint256 minYtOut
67
+ ) public returns (uint256 /*netLpOut*/, uint256 /*netYtOut*/) {
68
+ return
69
+ IPAllAction(ROUTER).addLiquiditySingleSyKeepYt(
70
+ address(this),
71
+ market,
72
+ netSyIn,
73
+ minLpOut,
74
+ minYtOut
75
+ );
76
+ }
77
+
78
+ function addLiqFromYt(
79
+ address market,
80
+ uint256 netPtFromSwap,
81
+ uint256 minLpOut
82
+ ) public returns (uint256 netLpOut, uint256 netYtIn) {
83
+ MarketState memory state = IPMarket(market).readState(address(this));
84
+ (, , IPYieldToken YT) = IPMarket(market).readTokens();
85
+
86
+ PYIndex index = YT.newIndex();
87
+
88
+ (uint256 netSyToSwap, , ) = state.swapSyForExactPt(index, netPtFromSwap, block.timestamp);
89
+
90
+ // (1) --> netPtRedeemSy = netPtFromSwap - netPtToAdd
91
+ // (2) --> (netPtRedeemSy * ONE / pyIndex) = (netPtToAdd * totalSy / totalPt) + netSyToSwap
92
+ // (2) * pyIndex / ONE --> netPtRedeemSy = (netPtToAdd * totalSy / totalPt * pyIndex / ONE) + netSyToSwap * pyIndex / ONE
93
+ // ==> netPtFromSwap - netPtToAdd = (netPtToAdd * totalSy / totalPt * pyIndex / ONE) + netSyToSwap * pyIndex / ONE
94
+ // ==> netPtToAdd * (ONE + totalSy * pyIndex / totalPt) = netPtFromSwap * ONE - netSyToSwap * pyIndex
95
+
96
+ uint256 pyIndex = PYIndex.unwrap(index);
97
+ uint256 netPtToAddNumerator = (netPtFromSwap * Math.ONE - netSyToSwap * pyIndex);
98
+ uint256 netPtToAddDenominator = (Math.ONE +
99
+ (state.totalSy.Uint() * pyIndex) /
100
+ state.totalPt.Uint());
101
+ uint256 netPtToAdd = netPtToAddNumerator / netPtToAddDenominator;
102
+
103
+ netYtIn = netPtFromSwap - netPtToAdd; // = netPtRedeemSy
104
+
105
+ IPMarket(market).swapSyForExactPt(
106
+ address(this),
107
+ netPtFromSwap,
108
+ _encodeAddLiqFromYt(netYtIn)
109
+ );
110
+
111
+ uint256 netSyFromPy = index.assetToSy(netYtIn);
112
+ uint256 netSyToAdd = netSyFromPy - netSyToSwap;
113
+
114
+ (netLpOut, , ) = IPMarket(market).mint(address(this), netSyToAdd, netPtToAdd);
115
+ if (netLpOut < minLpOut) revert Errors.BotInsufficientLpOut(netLpOut, minLpOut);
116
+ }
117
+
118
+ /// @dev Behaves like PendleRouter's removeLiquidityDualSyAndPt then swapExactPtForYt
119
+ /// @param guessTotalPtToSwap Same like for PendleRouter's swapExactPtForYt
120
+ function removeLiqToYt(
121
+ address market,
122
+ uint256 netLpToRemove,
123
+ ApproxParams memory guessTotalPtToSwap,
124
+ uint256 minYtOut
125
+ ) public returns (uint256 netYtOut, uint256 totalPtToSwap) {
126
+ IERC20(market).safeTransfer(market, netLpToRemove);
127
+ (, , IPYieldToken YT) = IPMarket(market).readTokens();
128
+ (uint256 netSyFromLp, uint256 netPtFromLp) = IPMarket(market).burn(
129
+ address(YT),
130
+ market,
131
+ netLpToRemove
132
+ ); // SY goes to YT to mint PY, PT goes to market to swap
133
+
134
+ MarketState memory state = IPMarket(market).readState(address(this));
135
+ PYIndex index = IPYieldToken(YT).newIndex();
136
+
137
+ uint256 netPtFromSy = index.syToAsset(netSyFromLp);
138
+
139
+ uint256 netYtFromSwap;
140
+ (netYtFromSwap, totalPtToSwap, ) = state.approxSwapExactPtForYt(
141
+ index,
142
+ netPtFromLp + netPtFromSy,
143
+ block.timestamp,
144
+ guessTotalPtToSwap
145
+ );
146
+
147
+ netYtOut = netYtFromSwap + netPtFromSy;
148
+ if (netYtOut < minYtOut) revert Errors.BotInsufficientYtOut(netYtOut, minYtOut);
149
+
150
+ IPMarket(market).swapExactPtForSy(
151
+ address(YT),
152
+ totalPtToSwap,
153
+ _encodeRemoveLiqToYt(minYtOut)
154
+ ); // SY goes to YT to mint PY
155
+ }
156
+
157
+ /*///////////////////////////////////////////////////////////////
158
+ Callback
159
+ //////////////////////////////////////////////////////////////*/
160
+
161
+ function swapCallback(
162
+ address market,
163
+ int256 ptToAccount,
164
+ int256 syToAccount,
165
+ bytes calldata data
166
+ ) public {
167
+ TradeActionType swapType = _getActionType(data);
168
+
169
+ (, IPPrincipalToken PT, IPYieldToken YT) = IPMarket(market).readTokens();
170
+
171
+ if (swapType == TradeActionType.AddLiqFromYt) {
172
+ _callbackAddLiqFromYt(
173
+ market,
174
+ address(PT),
175
+ address(YT),
176
+ ptToAccount,
177
+ syToAccount,
178
+ data
179
+ );
180
+ } else if (swapType == TradeActionType.RemoveLiqToYt) {
181
+ _callbackRemoveLiqToYt(
182
+ market,
183
+ address(PT),
184
+ address(YT),
185
+ ptToAccount,
186
+ syToAccount,
187
+ data
188
+ );
189
+ } else {
190
+ assert(false);
191
+ }
192
+ }
193
+
194
+ /// ------------------------------------------------------------
195
+ /// AddLiqFromYt
196
+ /// ------------------------------------------------------------
197
+
198
+ function _callbackAddLiqFromYt(
199
+ address market,
200
+ address PT,
201
+ address YT,
202
+ int256 ptToAccount,
203
+ int256 /*syToAccount*/,
204
+ bytes calldata data
205
+ ) internal {
206
+ uint256 netPyRedeemSy = _decodeAddLiqFromYt(data);
207
+ IERC20(PT).safeTransfer(address(YT), netPyRedeemSy);
208
+
209
+ bool needToBurnYt = (!IPYieldToken(YT).isExpired());
210
+ if (needToBurnYt) IERC20(YT).safeTransfer(YT, netPyRedeemSy);
211
+
212
+ IPYieldToken(YT).redeemPY(market); // all SY goes to market to repay and mint LP
213
+ IERC20(PT).safeTransfer(market, ptToAccount.Uint() - netPyRedeemSy); // remaining PT goes to market to mint LP
214
+ }
215
+
216
+ function _decodeAddLiqFromYt(
217
+ bytes calldata data
218
+ ) internal pure returns (uint256 netPyRedeemSy) {
219
+ assembly {
220
+ // first 32 bytes is ActionType
221
+ netPyRedeemSy := calldataload(add(data.offset, 32))
222
+ }
223
+ }
224
+
225
+ /// ------------------------------------------------------------
226
+ /// RemoveLiqToYt
227
+ /// ------------------------------------------------------------
228
+
229
+ function _callbackRemoveLiqToYt(
230
+ address market,
231
+ address /*PT*/,
232
+ address YT,
233
+ int256 /*ptToAccount*/,
234
+ int256 /*syToAccount*/,
235
+ bytes calldata data
236
+ ) internal {
237
+ uint256 minYtOut = _decodeRemoveLiqToYt(data);
238
+
239
+ uint256 netYtOut = IPYieldToken(YT).mintPY(market, address(this)); // PT goes to market to repay
240
+ if (netYtOut < minYtOut) revert Errors.BotInsufficientYtOut(netYtOut, minYtOut); // 2nd check
241
+ }
242
+
243
+ /// ------------------------------------------------------------
244
+ /// Misc functions
245
+ /// ------------------------------------------------------------
246
+
247
+ function _getActionType(bytes calldata data) internal pure returns (TradeActionType actionType) {
248
+ assembly {
249
+ actionType := calldataload(data.offset)
250
+ }
251
+ }
252
+
253
+ function _decodeRemoveLiqToYt(bytes calldata data) internal pure returns (uint256 minYtOut) {
254
+ assembly {
255
+ // first 32 bytes is ActionType
256
+ minYtOut := calldataload(add(data.offset, 32))
257
+ }
258
+ }
259
+
260
+ function _encodeRemoveLiqToYt(uint256 minYtOut) internal pure returns (bytes memory res) {
261
+ res = new bytes(64);
262
+ uint256 actionType = uint256(TradeActionType.RemoveLiqToYt);
263
+
264
+ assembly {
265
+ mstore(add(res, 32), actionType)
266
+ mstore(add(res, 64), minYtOut)
267
+ }
268
+ }
269
+
270
+ function _encodeAddLiqFromYt(uint256 netPyRedeemSy) internal pure returns (bytes memory res) {
271
+ res = new bytes(64);
272
+ uint256 actionType = uint256(TradeActionType.AddLiqFromYt);
273
+
274
+ assembly {
275
+ mstore(add(res, 32), actionType)
276
+ mstore(add(res, 64), netPyRedeemSy)
277
+ }
278
+ }
279
+ }
@@ -16,7 +16,7 @@ library SpecSegmentLib {
16
16
  TradingSpecs memory specs,
17
17
  uint256 segId
18
18
  ) internal pure returns (uint256) {
19
- assert(segId != 0 && segId != specs.numOfBins * 2);
19
+ assert(segId != 0 && segId != specs.numOfBins * 2 + 1);
20
20
  uint256 length = getSegLength(specs);
21
21
  return specs.buyYtIy + length * (segId - 1) + length / 2;
22
22
  }
@@ -0,0 +1,57 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.0;
3
+
4
+ import "./MarketExtLib.sol";
5
+ import "../../../interfaces/TradingBot/IBotDecisionHelper.sol";
6
+ import "../../../oracles/PendleLpOracleLib.sol";
7
+
8
+ library TvlLib {
9
+ using MarketMathCore for MarketState;
10
+ using MarketExtLib for MarketExtState;
11
+ using Math for uint256;
12
+ using Math for int256;
13
+ using PendleLpOracleLib for IPMarket;
14
+ using PendlePtOracleLib for IPMarket;
15
+ using PYIndexLib for PYIndex;
16
+
17
+ uint32 internal constant ORACLE_DURATION = 1800;
18
+
19
+ function getOracleTvl(address market, BotState memory bot) public view returns (uint256) {
20
+ PYIndex index = IPMarket(market)._getPYIndexCurrent();
21
+
22
+ uint256 tvlInAsset;
23
+ if (bot.lpBalance > 0) {
24
+ tvlInAsset += bot.lpBalance.mulDown(
25
+ IPMarket(market).getLpToAssetRate(ORACLE_DURATION)
26
+ );
27
+ }
28
+
29
+ if (bot.ptBalance + bot.ytBalance > 0) {
30
+ uint256 ptPrice = IPMarket(market).getPtToAssetRate(ORACLE_DURATION);
31
+ uint256 ytPrice = Math.ONE - ptPrice;
32
+ tvlInAsset += bot.ptBalance.mulDown(ptPrice) + bot.ytBalance.mulDown(ytPrice);
33
+ }
34
+
35
+ return index.assetToSy(tvlInAsset) + bot.syBalance;
36
+ }
37
+
38
+ function getLiquidateTvl(
39
+ BotState memory bot,
40
+ MarketExtState memory marketExt
41
+ ) public pure returns (uint256) {
42
+ MarketExtState memory marketExtClone = marketExt.clone();
43
+
44
+ (uint256 syInLp, uint256 ptInLp) = marketExtClone.removeLiqDual(bot.lpBalance);
45
+ uint256 totalValue = bot.syBalance + syInLp;
46
+
47
+ uint256 totalPt = ptInLp + bot.ptBalance;
48
+ if (totalPt <= bot.ytBalance) {
49
+ totalValue += marketExtClone.previewPyToSy(totalPt);
50
+ totalValue += marketExtClone.swapYtToSy(bot.ytBalance - totalPt);
51
+ } else {
52
+ totalValue += marketExtClone.previewPyToSy(bot.ytBalance);
53
+ totalValue += marketExtClone.swapPtToSy(totalPt - bot.ytBalance);
54
+ }
55
+ return totalValue;
56
+ }
57
+ }
@@ -3,29 +3,41 @@ pragma solidity 0.8.17;
3
3
 
4
4
  import "./ITradingBotBase.sol";
5
5
 
6
- enum ActionType {
6
+ enum TradeActionType {
7
7
  NONE,
8
8
  AddLiqFromYt, // Sell YT for LP
9
- RemoveLiqToYt, // Zap out to YT,
10
- SwapPtForYt,
11
- SwapYtForPt
9
+ RemoveLiqToYt // Zap out to YT,
10
+ }
11
+
12
+ enum RebalanceType {
13
+ NONE,
14
+ AddLiqKeepYt,
15
+ RemoveLpAndYt,
16
+ SellYt
12
17
  }
13
18
 
14
19
  interface IBotDecisionHelper {
15
- enum RebalanceResult {
20
+ enum TradeActionResult {
16
21
  TARGET_NOT_REACHED,
17
22
  SUCCESS,
18
23
  FAIL_OR_TARGET_EXCEED
19
24
  }
20
25
 
21
- struct RebalanceDetails {
26
+ struct RebalanceOutput {
27
+ RebalanceType rebalanceType;
28
+ uint256 amountIn;
29
+ uint256 amountOut;
30
+ uint256 amountOut2;
31
+ }
32
+
33
+ struct TradeParams {
22
34
  StrategyData strategyData;
23
- ActionType action;
35
+ TradeActionType action;
24
36
  uint256 targetIy;
25
37
  }
26
38
 
27
- struct ActionToTakeResult {
28
- ActionType action;
39
+ struct TradeResult {
40
+ TradeActionType action;
29
41
  int currentBin;
30
42
  uint256 targetIy;
31
43
  uint256 guessBotParams;
@@ -35,23 +47,29 @@ interface IBotDecisionHelper {
35
47
 
36
48
  function getCurrentBin(StrategyData memory strategyData) external view returns (int256);
37
49
 
38
- function botExtStats(
39
- StrategyData memory strategyData
40
- )
41
- external
42
- view
43
- returns (uint256 tvlInSy, uint256 iy, uint256 currentSyRatio, uint256 currentYtPtRatio);
44
-
45
50
  function searchForBotParam(
46
51
  StrategyData memory strategyData,
47
- ActionType action,
52
+ TradeActionType action,
48
53
  uint256 targetIy,
49
54
  uint256 rebalanceAdditionalCheck,
50
55
  ApproxParams memory botParams,
51
56
  ApproxParams memory intParams
52
57
  ) external view returns (uint256);
53
58
 
54
- function getFloatingSyAmount(address botAddress) external returns (uint256 floatingSyAmount);
59
+ function getRebalanceAction(address botAddress) external view returns (RebalanceOutput memory);
60
+
61
+ function getTradeAction(address botAddress) external view returns (TradeResult memory res);
55
62
 
56
- function getActionDetails(address botAddress) external returns (ActionToTakeResult memory res);
63
+ function getBotPosition(
64
+ address botAddress
65
+ )
66
+ external
67
+ view
68
+ returns (
69
+ StrategyData memory strategyData,
70
+ uint256 tvlInSy,
71
+ uint256 iy,
72
+ uint256 currentSyRatio,
73
+ uint256 currentYtPtRatio
74
+ );
57
75
  }
@@ -17,7 +17,7 @@ struct TradingSpecs {
17
17
  uint256 buyYtIy;
18
18
  uint256 sellYtIy;
19
19
  uint256 targetSyRatio;
20
- uint256 maxSyRatio;
20
+ uint256 bufferSyRatio;
21
21
  uint256 targetYtPtRatio;
22
22
  uint256 numOfBins;
23
23
  }
@@ -40,24 +40,14 @@ interface ITradingBotBase {
40
40
 
41
41
  event WithdrawFunds(address indexed token, uint256 amount);
42
42
 
43
- event ClaimAndCompound(uint256 netSyOut, uint256 netPendleOut);
43
+ event ClaimAndCompound(uint256 netSyOut);
44
44
 
45
- function approveInf(MultiApproval[] calldata arr) external;
46
-
47
- function depositSy(uint256 netSyIn) external;
48
-
49
- function depositToken(TokenInput calldata inp, uint256 minSyOut) external payable;
50
-
51
- function withdrawFunds(address token, uint256 amount) external;
52
-
53
- function claimAndCompound(
54
- TokenInput[] calldata inps,
45
+ function compound(
46
+ TokenInput calldata inp,
55
47
  uint256 minSyOut
56
- ) external returns (uint256 netSyOut, uint256 netPendleOut);
57
-
58
- function claimWithoutCompound() external returns (TokenAmount[] memory rewards);
48
+ ) external returns (uint256 netSyOut);
59
49
 
60
- function readStrategyData() external returns (StrategyData memory strategyData);
50
+ function readStrategyData() external view returns (StrategyData memory strategyData);
61
51
 
62
52
  function setSpecs(TradingSpecs calldata _specs) external;
63
53
  }
@@ -55,7 +55,7 @@ library PendleLpOracleLib {
55
55
  return state.getMarketPreCompute(_getPYIndexCurrent(market), block.timestamp);
56
56
  }
57
57
 
58
- function _getPYIndexCurrent(IPMarket market) private view returns (PYIndex) {
58
+ function _getPYIndexCurrent(IPMarket market) internal view returns (PYIndex) {
59
59
  (IStandardizedYield SY, , IPYieldToken YT) = market.readTokens();
60
60
  uint256 ytIndex = YT.pyIndexStored();
61
61
  uint256 pyIndexCurrent;
@@ -0,0 +1,29 @@
1
+ import ethCoreJSON from './1-core.json';
2
+
3
+ export interface PendleCore {
4
+ PENDLE: string;
5
+ yieldContractFactory: string;
6
+ marketFactory: string;
7
+ bulkSellerFactory: string;
8
+ bulkSellerOffchain: string;
9
+ router: string;
10
+ routerStatic: string;
11
+ vePendle: string;
12
+ gaugeController: string;
13
+ }
14
+
15
+ export interface PendleCoreMainchain extends PendleCore {
16
+ senderEndpoint: string;
17
+ votingController: string;
18
+ feeDistributor: string;
19
+ }
20
+
21
+ export interface PendleCoreSidechain extends PendleCore {
22
+ receiverEndpoint: string;
23
+ }
24
+
25
+ const ethCore: PendleCoreMainchain = ethCoreJSON;
26
+
27
+ export const pendleCore = {
28
+ ethereum: ethCore,
29
+ };
@@ -0,0 +1,4 @@
1
+ export * from './core';
2
+ export * from './markets';
3
+ export * from './misc';
4
+ export * from '../typechain-types';
@@ -0,0 +1,3 @@
1
+ import { MarketDeployment } from './types';
2
+ import marketApeJune292022JSON from '../1-markets/APE-JUNE-29.json';
3
+ export const apeJune292022: MarketDeployment = marketApeJune292022JSON;
@@ -0,0 +1,3 @@
1
+ import { MarketDeployment } from './types';
2
+ import marketBalancerRethDec282023JSON from '../1-markets/BALANCER-LP-AURA-RETH-WETH-28DEC.json';
3
+ export const balancerRethDec282023: MarketDeployment = marketBalancerRethDec282023JSON;
@@ -0,0 +1,3 @@
1
+ import { MarketDeployment } from './types';
2
+ import marketBalancerWstEthJun272024JSON from '../1-markets/BALANCER-LP-AURA-WSTETH-WETH-JUN272024.json';
3
+ export const balancerWstEthJun272024: MarketDeployment = marketBalancerWstEthJun272024JSON;
@@ -0,0 +1,3 @@
1
+ import { MarketDeployment } from './types';
2
+ import marketCurveFraxUsdcMarch302023JSON from '../1-markets/FRAXUSDC-CURVELP-MARCH30.json';
3
+ export const curveFraxUsdcMarch302023: MarketDeployment = marketCurveFraxUsdcMarch302023JSON;
@@ -0,0 +1,17 @@
1
+ import { apeJune292022 } from './ape-june-29-2023';
2
+ import { balancerRethDec282023 } from './balancer-reth-dec-28-2023';
3
+ import { balancerWstEthJun272024 } from './balancer-wsteth-jun-27-2024';
4
+ import { curveFraxUsdcMarch302023 } from './curve-fraxusdc-march-30-2023';
5
+ import { looksMarch302023 } from './looks-march-30-2023';
6
+ import { stEthJune292023 } from './steth-june-29-2023';
7
+ import { stEthMarch302023 } from './steth-march-30-2023';
8
+
9
+ export const markets = {
10
+ apeJune292022,
11
+ balancerRethDec282023,
12
+ balancerWstEthJun272024,
13
+ curveFraxUsdcMarch302023,
14
+ looksMarch302023,
15
+ stEthJune292023,
16
+ stEthMarch302023,
17
+ };
@@ -0,0 +1,3 @@
1
+ import { MarketDeployment } from './types';
2
+ import marketLooksMarch302023JSON from '../1-markets/LOOKS-STAKING-MARCH30.json';
3
+ export const looksMarch302023: MarketDeployment = marketLooksMarch302023JSON;
@@ -0,0 +1,3 @@
1
+ import { MarketDeployment } from './types';
2
+ import marketStEthJune292023JSON from '../1-markets/STETH-JUNE29.json';
3
+ export const stEthJune292023: MarketDeployment = marketStEthJune292023JSON;
@@ -0,0 +1,3 @@
1
+ import { MarketDeployment } from './types';
2
+ import marketStEthMarch302023JSON from '../1-markets/STETH-MARCH30.json';
3
+ export const stEthMarch302023: MarketDeployment = marketStEthMarch302023JSON;
@@ -0,0 +1,9 @@
1
+ export interface MarketDeployment {
2
+ name: string;
3
+ SY: string;
4
+ YT: string;
5
+ PT: string;
6
+ market: string;
7
+ expiry: number;
8
+ bulkSeller?: string;
9
+ }
@@ -0,0 +1,23 @@
1
+ import { BigNumber as BN, utils } from 'ethers';
2
+
3
+ export const MISC_CONSTS = {
4
+ RONE: BN.from(2).pow(40),
5
+ ONE_E_12: BN.from(10).pow(12),
6
+ ONE_E_18: BN.from(10).pow(18),
7
+ INF: BN.from(2).pow(256).sub(1),
8
+ ZERO_BYTES: utils.formatBytes32String(''),
9
+ ZERO_ADDRESS: '0x0000000000000000000000000000000000000000',
10
+ DUMMY_ADDRESS: '0xDEADbeEfEEeEEEeEEEeEEeeeeeEeEEeeeeEEEEeE',
11
+ ONE_HOUR: BN.from(3600),
12
+ ONE_DAY: BN.from(86400),
13
+ ONE_WEEK: BN.from(86400 * 7),
14
+ FIFTEEN_DAY: BN.from(86400 * 15),
15
+ ONE_MONTH: BN.from(2592000),
16
+ THREE_MONTH: BN.from(2592000 * 3),
17
+ FIVE_MONTH: BN.from(2592000 * 5),
18
+ SIX_MONTH: BN.from(2592000 * 6),
19
+ ONE_QUARTER: BN.from(7884000),
20
+ ONE_YEAR: BN.from(31536000),
21
+ END_OF_2023: BN.from(1703721600),
22
+ JUNE_OF_2022: BN.from(1656547200),
23
+ };
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@pendle/core-v2",
3
3
  "description": "Core smart contracts of Pendle Protocol.",
4
4
  "license": "BUSL-1.1",
5
- "version": "2.19.1-tradingbot",
5
+ "version": "2.20.0-tradingbot",
6
6
  "homepage": "https://pendle.finance",
7
7
  "keywords": [
8
8
  "pendle",