@pendle/core-v2 2.19.0 → 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 (617) hide show
  1. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
  2. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.json +2 -2
  3. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
  4. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +2 -2
  6. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  7. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  11. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  12. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  13. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  14. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  15. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
  16. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.dbg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.json +2 -2
  18. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  19. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  20. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  21. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  22. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  23. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  24. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
  25. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  26. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  27. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  28. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  29. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  30. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  31. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  32. package/build/artifacts/contracts/LiquidityMining/libraries/WeekMath.sol/WeekMath.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +2 -2
  35. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +2 -2
  37. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +2 -2
  39. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  41. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  43. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  46. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  48. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.json +2 -2
  52. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  53. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/StandardizedYield/SYUtils.sol/SYUtils.dbg.json +1 -1
  55. package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  57. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +2 -2
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.dbg.json +1 -1
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.json +2 -2
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.dbg.json +1 -1
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.json +2 -2
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.json +2 -2
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.dbg.json +1 -1
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.json +2 -2
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.dbg.json +1 -1
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.json +2 -2
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.dbg.json +1 -1
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.dbg.json +1 -1
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol/FixedPoint.dbg.json +1 -1
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAPoolHelper.dbg.json +1 -1
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAWethHelper.dbg.json +1 -1
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearMath.sol/LinearMath.dbg.json +1 -1
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearPreview.sol/LinearPreview.dbg.json +1 -1
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.dbg.json +1 -1
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.dbg.json +1 -1
  77. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSYV2.sol/PendleAuraBalancerStableLPSYV2.dbg.json +1 -1
  78. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.dbg.json +1 -1
  79. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.dbg.json +1 -1
  80. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  81. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  82. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  83. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
  84. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotRewardHelper.sol/CamelotRewardHelper.dbg.json +1 -1
  85. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileCommon.sol/CamelotV1VolatileCommon.dbg.json +1 -1
  86. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileLpHelper.sol/CamelotV1VolatileLpHelper.dbg.json +1 -1
  87. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatilePreview.sol/CamelotV1VolatilePreview.dbg.json +1 -1
  88. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.dbg.json +1 -1
  89. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.json +2 -2
  90. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  91. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +2 -2
  92. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  93. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +2 -2
  94. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +1 -1
  95. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +1 -1
  96. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +1 -1
  97. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  98. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.dbg.json +1 -1
  99. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
  100. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +2 -2
  101. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
  102. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.json +2 -2
  103. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  104. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
  105. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.dbg.json +1 -1
  106. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.json +2 -2
  107. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.dbg.json +1 -1
  108. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.json +2 -2
  109. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  110. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  111. package/build/artifacts/contracts/core/TradingBot/DecisionHelper/BotDecisionHelperBase.sol/BotDecisionHelperBase.dbg.json +4 -0
  112. package/build/artifacts/contracts/core/TradingBot/DecisionHelper/BotDecisionHelperBase.sol/BotDecisionHelperBase.json +816 -0
  113. package/build/artifacts/contracts/core/TradingBot/DecisionHelper/LongYieldDecisionHelper.sol/LongYieldDecisionHelper.dbg.json +4 -0
  114. package/build/artifacts/contracts/core/TradingBot/DecisionHelper/LongYieldDecisionHelper.sol/LongYieldDecisionHelper.json +1411 -0
  115. package/build/artifacts/contracts/core/TradingBot/LongYieldTradingBot.sol/LongYieldTradingBot.dbg.json +4 -0
  116. package/build/artifacts/contracts/core/TradingBot/LongYieldTradingBot.sol/LongYieldTradingBot.json +2332 -0
  117. package/build/artifacts/contracts/core/TradingBot/TradingBotBase.sol/TradingBotBase.dbg.json +4 -0
  118. package/build/artifacts/contracts/core/TradingBot/TradingBotBase.sol/TradingBotBase.json +1641 -0
  119. package/build/artifacts/contracts/core/TradingBot/libraries/BotSimulationLib.sol/BotSimulationLib.dbg.json +4 -0
  120. package/build/artifacts/contracts/core/TradingBot/libraries/BotSimulationLib.sol/BotSimulationLib.json +10 -0
  121. package/build/artifacts/contracts/core/TradingBot/libraries/LongYieldActionLib.sol/LongYieldActionLib.dbg.json +4 -0
  122. package/build/artifacts/contracts/core/TradingBot/libraries/LongYieldActionLib.sol/LongYieldActionLib.json +154 -0
  123. package/build/artifacts/contracts/core/TradingBot/libraries/MarketExtLib.sol/MarketExtLib.dbg.json +4 -0
  124. package/build/artifacts/contracts/core/TradingBot/libraries/MarketExtLib.sol/MarketExtLib.json +24 -0
  125. package/build/artifacts/contracts/core/TradingBot/libraries/SpecSegmentLib.sol/SpecSegmentLib.dbg.json +4 -0
  126. package/build/artifacts/contracts/core/TradingBot/libraries/SpecSegmentLib.sol/SpecSegmentLib.json +10 -0
  127. package/build/artifacts/contracts/core/TradingBot/libraries/TvlLib.sol/TvlLib.dbg.json +4 -0
  128. package/build/artifacts/contracts/core/TradingBot/libraries/TvlLib.sol/TvlLib.json +262 -0
  129. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  130. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  131. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  132. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  133. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  134. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  135. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  136. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +1 -1
  137. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +1 -1
  138. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +2 -2
  139. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +1 -1
  140. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +2 -2
  141. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +1 -1
  142. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +2 -2
  143. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  144. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
  145. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  146. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
  147. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
  148. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
  149. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
  150. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  151. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +151 -2
  152. package/build/artifacts/contracts/core/libraries/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  153. package/build/artifacts/contracts/core/libraries/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  154. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +1 -1
  155. package/build/artifacts/contracts/core/libraries/TokenAmountLib.sol/TokenAmountLib.dbg.json +4 -0
  156. package/build/artifacts/contracts/core/libraries/TokenAmountLib.sol/TokenAmountLib.json +10 -0
  157. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  158. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  159. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.dbg.json +1 -1
  160. package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.dbg.json +1 -1
  161. package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.dbg.json +1 -1
  162. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +1 -1
  163. package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.dbg.json +1 -1
  164. package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.dbg.json +1 -1
  165. package/build/artifacts/contracts/interfaces/Balancer/IERC4626LinearPool.sol/IERC4626LinearPool.dbg.json +1 -1
  166. package/build/artifacts/contracts/interfaces/Balancer/IGauge.sol/IGauge.dbg.json +1 -1
  167. package/build/artifacts/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol/ILiquidityGaugeFactory.dbg.json +1 -1
  168. package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.dbg.json +1 -1
  169. package/build/artifacts/contracts/interfaces/Balancer/IRateProvider.sol/IRateProvider.dbg.json +1 -1
  170. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +1 -1
  171. package/build/artifacts/contracts/interfaces/Camelot/ICamelotFactory.sol/ICamelotFactory.dbg.json +1 -1
  172. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTFactory.sol/ICamelotNFTFactory.dbg.json +1 -1
  173. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTHandler.sol/ICamelotNFTHandler.dbg.json +1 -1
  174. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTPool.sol/ICamelotNFTPool.dbg.json +1 -1
  175. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNitroPool.sol/ICamelotNitroPool.dbg.json +1 -1
  176. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNitroPoolFactory.sol/ICamelotNitroPoolFactory.dbg.json +1 -1
  177. package/build/artifacts/contracts/interfaces/Camelot/ICamelotPair.sol/ICamelotPair.dbg.json +1 -1
  178. package/build/artifacts/contracts/interfaces/Camelot/ICamelotRouter.sol/ICamelotRouter.dbg.json +1 -1
  179. package/build/artifacts/contracts/interfaces/Camelot/ICamelotYieldBooster.sol/ICamelotYieldBooster.dbg.json +1 -1
  180. package/build/artifacts/contracts/interfaces/Camelot/IXGrail.sol/IXGrail.dbg.json +1 -1
  181. package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
  182. package/build/artifacts/contracts/interfaces/ConvexCurve/ICrvDepositor.sol/ICrvDepositor.dbg.json +1 -1
  183. package/build/artifacts/contracts/interfaces/ConvexCurve/ICvxCrv.sol/ICvxCrv.dbg.json +1 -1
  184. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
  185. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
  186. package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.dbg.json +1 -1
  187. package/build/artifacts/contracts/interfaces/Frax/IFrxEthMinter.sol/IFrxEthMinter.dbg.json +1 -1
  188. package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.dbg.json +1 -1
  189. package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.dbg.json +1 -1
  190. package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.dbg.json +1 -1
  191. package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.dbg.json +1 -1
  192. package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.dbg.json +1 -1
  193. package/build/artifacts/contracts/interfaces/IApeStaking.sol/IApeStaking.dbg.json +1 -1
  194. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  195. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  196. package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.dbg.json +1 -1
  197. package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.dbg.json +1 -1
  198. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  199. package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.dbg.json +1 -1
  200. package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +1 -1
  201. package/build/artifacts/contracts/interfaces/ILooksFeeSharing.sol/ILooksFeeSharing.dbg.json +1 -1
  202. package/build/artifacts/contracts/interfaces/ILooksStaking.sol/ILooksStaking.dbg.json +1 -1
  203. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  204. package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +1 -1
  205. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  206. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.json +6 -82
  207. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
  208. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.json +22 -22
  209. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  210. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +1 -1
  211. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.json +4 -42
  212. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
  213. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  214. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  215. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  216. package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.dbg.json +1 -1
  217. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  218. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  219. package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.dbg.json +1 -1
  220. package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.dbg.json +1 -1
  221. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
  222. package/build/artifacts/contracts/interfaces/IPFeeDistributorV2.sol/IPFeeDistributorV2.dbg.json +1 -1
  223. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
  224. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  225. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  226. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  227. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +1 -1
  228. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  229. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  230. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  231. package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.dbg.json +1 -1
  232. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
  233. package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
  234. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  235. package/build/artifacts/contracts/interfaces/IPPtOracle.sol/IPPtOracle.dbg.json +1 -1
  236. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +1 -1
  237. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  238. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +32 -146
  239. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  240. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  241. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  242. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  243. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  244. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +1 -1
  245. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  246. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  247. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  248. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  249. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  250. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  251. package/build/artifacts/contracts/interfaces/IStargateLP.sol/IStargateLP.dbg.json +1 -1
  252. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  253. package/build/artifacts/contracts/interfaces/IStargateStaking.sol/IStargateStaking.dbg.json +1 -1
  254. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  255. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  256. package/build/artifacts/contracts/interfaces/TradingBot/IBotDecisionHelper.sol/IBotDecisionHelper.dbg.json +4 -0
  257. package/build/artifacts/contracts/interfaces/TradingBot/IBotDecisionHelper.sol/IBotDecisionHelper.json +679 -0
  258. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldDecisionHelper.sol/ILongYieldDecisionHelper.dbg.json +4 -0
  259. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldDecisionHelper.sol/ILongYieldDecisionHelper.json +698 -0
  260. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.dbg.json +4 -0
  261. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.json +813 -0
  262. package/build/artifacts/contracts/interfaces/TradingBot/IShortYieldDecisionHelper.sol/IShortYieldDecisionHelper.dbg.json +4 -0
  263. package/build/artifacts/contracts/interfaces/TradingBot/IShortYieldDecisionHelper.sol/IShortYieldDecisionHelper.json +679 -0
  264. package/build/artifacts/contracts/interfaces/TradingBot/IShortYieldTradingBot.sol/IShortYieldTradingBot.dbg.json +4 -0
  265. package/build/artifacts/contracts/interfaces/TradingBot/IShortYieldTradingBot.sol/IShortYieldTradingBot.json +794 -0
  266. package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.dbg.json +4 -0
  267. package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.json +351 -0
  268. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.dbg.json +1 -1
  269. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  270. package/build/artifacts/contracts/offchain-helpers/BoringLpSeller.sol/BoringLpSeller.dbg.json +1 -1
  271. package/build/artifacts/contracts/offchain-helpers/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
  272. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
  273. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +2 -2
  274. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  275. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
  276. package/build/artifacts/contracts/offchain-helpers/EmptyUUPS.sol/EmptyUUPS.dbg.json +1 -1
  277. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.dbg.json +1 -1
  278. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.json +2 -2
  279. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +1 -1
  280. package/build/artifacts/contracts/offchain-helpers/PendleMulticallV1.sol/PendleMulticallV1.dbg.json +1 -1
  281. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  282. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  283. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  284. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  285. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  286. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +8 -84
  287. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  288. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +24 -24
  289. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  290. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +6 -44
  291. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  292. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -2
  293. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  294. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  295. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  296. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
  297. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.json +2 -2
  298. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.dbg.json +1 -1
  299. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.json +2 -2
  300. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.dbg.json +1 -1
  301. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.json +2 -2
  302. package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.dbg.json +1 -1
  303. package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.json +2 -2
  304. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.dbg.json +1 -1
  305. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.json +2 -2
  306. package/build/artifacts/contracts/oracles/samples/PendlePtUsdChainlinkOracle.sol/PendlePtUsdChainlinkOracle.dbg.json +1 -1
  307. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  308. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +2 -2
  309. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  310. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +2 -2
  311. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  312. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  313. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +2 -2
  314. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  315. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +2 -2
  316. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  317. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
  318. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +1 -1
  319. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.json +2 -2
  320. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
  321. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  322. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  323. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  324. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  325. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  326. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  327. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
  328. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +1 -1
  329. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +1 -1
  330. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IExecutorHelper.sol/IExecutorHelper.dbg.json +1 -1
  331. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IHashflow.sol/IHashflow.dbg.json +1 -1
  332. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +1 -1
  333. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberInputScalingHelper.sol/KyberInputScalingHelper.dbg.json +1 -1
  334. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScalingDataLib.sol/ScalingDataLib.dbg.json +1 -1
  335. package/contracts/core/StandardizedYield/PYIndex.sol +14 -0
  336. package/contracts/core/TradingBot/DecisionHelper/BotDecisionHelperBase.sol +260 -0
  337. package/contracts/core/TradingBot/DecisionHelper/LongYieldDecisionHelper.sol +291 -0
  338. package/contracts/core/TradingBot/LongYieldTradingBot.sol +128 -0
  339. package/contracts/core/TradingBot/README.md +153 -0
  340. package/contracts/core/TradingBot/TradingBotBase.sol +254 -0
  341. package/contracts/core/TradingBot/libraries/BotSimulationLib.sol +155 -0
  342. package/contracts/core/TradingBot/libraries/LongYieldActionLib.sol +279 -0
  343. package/contracts/core/TradingBot/libraries/MarketExtLib.sol +310 -0
  344. package/contracts/core/TradingBot/libraries/SpecSegmentLib.sol +62 -0
  345. package/contracts/core/TradingBot/libraries/TvlLib.sol +57 -0
  346. package/contracts/core/libraries/Errors.sol +12 -0
  347. package/contracts/core/libraries/TokenAmountLib.sol +47 -0
  348. package/contracts/interfaces/IPActionInfoStatic.sol +7 -8
  349. package/contracts/interfaces/IPActionMarketAuxStatic.sol +14 -21
  350. package/contracts/interfaces/IPActionMarketCoreStatic.sol +67 -70
  351. package/contracts/interfaces/IPActionMintRedeemStatic.sol +11 -23
  352. package/contracts/interfaces/IPRouterStatic.sol +1 -5
  353. package/contracts/interfaces/IStandardizedYield.sol +10 -15
  354. package/contracts/interfaces/TradingBot/IBotDecisionHelper.sol +75 -0
  355. package/contracts/interfaces/TradingBot/ILongYieldDecisionHelper.sol +8 -0
  356. package/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol +51 -0
  357. package/contracts/interfaces/TradingBot/IShortYieldDecisionHelper.sol +7 -0
  358. package/contracts/interfaces/TradingBot/IShortYieldTradingBot.sol +27 -0
  359. package/contracts/interfaces/TradingBot/ITradingBotBase.sol +53 -0
  360. package/contracts/offchain-helpers/BulkSellerOffchain.sol +8 -11
  361. package/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol +11 -14
  362. package/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol +37 -96
  363. package/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol +80 -88
  364. package/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol +14 -43
  365. package/contracts/oracles/PendleLpOracleLib.sol +1 -1
  366. package/deployments/core.ts +29 -0
  367. package/deployments/index.ts +4 -0
  368. package/deployments/markets/ape-june-29-2023.ts +3 -0
  369. package/deployments/markets/balancer-reth-dec-28-2023.ts +3 -0
  370. package/deployments/markets/balancer-wsteth-jun-27-2024.ts +3 -0
  371. package/deployments/markets/curve-fraxusdc-march-30-2023.ts +3 -0
  372. package/deployments/markets/index.ts +17 -0
  373. package/deployments/markets/looks-march-30-2023.ts +3 -0
  374. package/deployments/markets/steth-june-29-2023.ts +3 -0
  375. package/deployments/markets/steth-march-30-2023.ts +3 -0
  376. package/deployments/markets/types.ts +9 -0
  377. package/deployments/misc.ts +23 -0
  378. package/package.json +1 -1
  379. package/typechain-types/ActionMarketAuxStatic.ts +38 -191
  380. package/typechain-types/ActionMarketCoreStatic.ts +134 -600
  381. package/typechain-types/ActionMintRedeemStatic.ts +26 -92
  382. package/typechain-types/AuraEthxBbAWethSY.ts +1532 -0
  383. package/typechain-types/AuraSwEthBbAWethSYV2.ts +1532 -0
  384. package/typechain-types/AuraWethVethSY.ts +1598 -0
  385. package/typechain-types/AutomateReady.ts +102 -0
  386. package/typechain-types/AutomationBase.ts +57 -0
  387. package/typechain-types/AutomationCompatible.ts +140 -0
  388. package/typechain-types/AutomationCompatibleInterface.ts +141 -0
  389. package/typechain-types/BotActionCallbackLib.ts +57 -0
  390. package/typechain-types/BotDecisionHelperBase.ts +508 -0
  391. package/typechain-types/ChainlinkRelayerAutomation.ts +305 -0
  392. package/typechain-types/ChainlinkRelayerGelato.ts +311 -0
  393. package/typechain-types/ComposableStablePreviewProxy.ts +352 -0
  394. package/typechain-types/ComposableStablePreviewV4.ts +217 -0
  395. package/typechain-types/ComposableStablePreviewV5.ts +217 -0
  396. package/typechain-types/IAnkrBNB.ts +150 -0
  397. package/typechain-types/IAnkrLiquidStaking.ts +253 -0
  398. package/typechain-types/IAutomate.ts +203 -0
  399. package/typechain-types/IBotDecisionHelper.ts +476 -0
  400. package/typechain-types/IFluxErc20.ts +298 -0
  401. package/typechain-types/IFluxInterestRateModel.ts +113 -0
  402. package/typechain-types/ILongYieldDecisionHelper.ts +512 -0
  403. package/typechain-types/ILongYieldTradingBot.ts +682 -0
  404. package/typechain-types/IOpsProxyFactory.ts +93 -0
  405. package/typechain-types/IPActionMarketAuxStatic.ts +38 -191
  406. package/typechain-types/IPActionMarketCoreStatic.ts +134 -600
  407. package/typechain-types/IPActionMintRedeemStatic.ts +26 -92
  408. package/typechain-types/IPComposableStablePreview.ts +217 -0
  409. package/typechain-types/IPExternalRewardDistributor.ts +198 -0
  410. package/typechain-types/IPMarketFactoryV2.ts +253 -0
  411. package/typechain-types/IPOracleForSy.ts +87 -0
  412. package/typechain-types/IPRouterStatic.ts +197 -888
  413. package/typechain-types/IPendlePreviewHelper.ts +147 -0
  414. package/typechain-types/IShortYieldDecisionHelper.ts +476 -0
  415. package/typechain-types/IShortYieldTradingBot.ts +574 -0
  416. package/typechain-types/{IExecutorHelper2.ts → ISwETH.ts} +40 -32
  417. package/typechain-types/ITaskTreasuryUpgradable.ts +160 -0
  418. package/typechain-types/IThenaFactory.ts +245 -0
  419. package/typechain-types/IThenaGaugeV2.ts +206 -0
  420. package/typechain-types/IThenaPair.ts +579 -0
  421. package/typechain-types/IThenaRouter.ts +313 -0
  422. package/typechain-types/IThenaSY.ts +81 -0
  423. package/typechain-types/ITradingBotBase.ts +373 -0
  424. package/typechain-types/IVersion.ts +81 -0
  425. package/typechain-types/{PendleSwapArbitrum.ts → IWBETH.ts} +50 -48
  426. package/typechain-types/LegacyNFTHelper.ts +87 -0
  427. package/typechain-types/LongYieldActionLib.ts +57 -0
  428. package/typechain-types/LongYieldDecisionHelper.ts +663 -0
  429. package/typechain-types/LongYieldTradingBot.ts +2420 -0
  430. package/typechain-types/MarketExtLib.ts +81 -0
  431. package/typechain-types/PendleAnkrBNBSY.ts +1235 -0
  432. package/typechain-types/PendleAuraBalancerStableLPSYV3.ts +1599 -0
  433. package/typechain-types/PendleAuraWethVethSY.ts +1511 -0
  434. package/typechain-types/PendleAuraWstethAnkreth.ts +1511 -0
  435. package/typechain-types/PendleBridgedLSDSY.ts +1222 -0
  436. package/typechain-types/PendleChainlinkReceiver.ts +239 -0
  437. package/typechain-types/PendleChainlinkRelayer.ts +158 -0
  438. package/typechain-types/PendleERC20PermitUpgradable.ts +452 -0
  439. package/typechain-types/PendleERC20Upgradable.ts +348 -0
  440. package/typechain-types/PendleERC4626SY.ts +1216 -0
  441. package/typechain-types/PendleExternalRewardDistributor.ts +596 -0
  442. package/typechain-types/PendleFluxLendingSY.ts +1232 -0
  443. package/typechain-types/PendleGaugeV2.ts +225 -0
  444. package/typechain-types/PendleMantleStakedEthSY.ts +1222 -0
  445. package/typechain-types/PendleMarketFactoryV2.ts +932 -0
  446. package/typechain-types/PendleMarketV2.ts +1311 -0
  447. package/typechain-types/PendleOracleForSyProxy.ts +275 -0
  448. package/typechain-types/{PendleCamelotV1SY.ts → PendleThenaSY.ts} +214 -332
  449. package/typechain-types/PendleWbEthSY.ts +1229 -0
  450. package/typechain-types/SDKErrorsDirectory.ts +57 -0
  451. package/typechain-types/SYBaseUpgradable.ts +1132 -0
  452. package/typechain-types/SYBaseWithRewardsUpgradable.ts +1225 -0
  453. package/typechain-types/StarNFTV1.ts +880 -0
  454. package/typechain-types/SwETHSY.ts +1216 -0
  455. package/typechain-types/{PendleCamelotV1RouterHelper.ts → ThenaLpHelper.ts} +63 -5
  456. package/typechain-types/ThenaMath.ts +87 -0
  457. package/typechain-types/{CamelotV1PreviewHelper.ts → ThenaPreview.ts} +42 -63
  458. package/typechain-types/TradingBotBase.ts +1837 -0
  459. package/typechain-types/TvlLib.ts +215 -0
  460. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1 -1
  461. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  462. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +7 -83
  463. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +23 -23
  464. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +5 -43
  465. package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -1
  466. package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
  467. package/typechain-types/factories/ActionSwapPT__factory.ts +1 -1
  468. package/typechain-types/factories/ActionSwapYT__factory.ts +1 -1
  469. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  470. package/typechain-types/factories/AuraEthxBbAWethSY__factory.ts +1240 -0
  471. package/typechain-types/factories/AuraSwEthBbAWethSYV2__factory.ts +1244 -0
  472. package/typechain-types/factories/AuraWethVethSY__factory.ts +1270 -0
  473. package/typechain-types/factories/AutomateReady__factory.ts +49 -0
  474. package/typechain-types/factories/AutomationBase__factory.ts +69 -0
  475. package/typechain-types/factories/AutomationCompatibleInterface__factory.ts +67 -0
  476. package/typechain-types/factories/AutomationCompatible__factory.ts +72 -0
  477. package/typechain-types/factories/BotActionCallbackLib__factory.ts +84 -0
  478. package/typechain-types/factories/BotDecisionHelperBase__factory.ts +835 -0
  479. package/typechain-types/factories/Broadcaster__factory.ts +1 -1
  480. package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
  481. package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
  482. package/typechain-types/factories/BulkSeller__factory.ts +1 -1
  483. package/typechain-types/factories/ChainlinkRelayerAutomation__factory.ts +238 -0
  484. package/typechain-types/factories/ChainlinkRelayerGelato__factory.ts +263 -0
  485. package/typechain-types/factories/ComposableStablePreviewProxy__factory.ts +288 -0
  486. package/typechain-types/factories/ComposableStablePreviewV4__factory.ts +190 -0
  487. package/typechain-types/factories/ComposableStablePreviewV5__factory.ts +190 -0
  488. package/typechain-types/factories/Errors__factory.ts +150 -1
  489. package/typechain-types/factories/IAnkrBNB__factory.ts +74 -0
  490. package/typechain-types/factories/IAnkrLiquidStaking__factory.ts +123 -0
  491. package/typechain-types/factories/IAutomate__factory.ts +126 -0
  492. package/typechain-types/factories/IBotDecisionHelper__factory.ts +694 -0
  493. package/typechain-types/factories/IFluxErc20__factory.ts +178 -0
  494. package/typechain-types/factories/{IExecutorHelper2__factory.ts → IFluxInterestRateModel__factory.ts} +19 -15
  495. package/typechain-types/factories/ILongYieldDecisionHelper__factory.ts +717 -0
  496. package/typechain-types/factories/ILongYieldTradingBot__factory.ts +832 -0
  497. package/typechain-types/factories/IOpsProxyFactory__factory.ts +50 -0
  498. package/typechain-types/factories/IPActionMarketAuxStatic__factory.ts +6 -82
  499. package/typechain-types/factories/IPActionMarketCoreStatic__factory.ts +22 -22
  500. package/typechain-types/factories/IPActionMintRedeemStatic__factory.ts +4 -42
  501. package/typechain-types/factories/IPComposableStablePreview__factory.ts +152 -0
  502. package/typechain-types/factories/{IPVotingEscrowSidechain__factory.ts → IPExternalRewardDistributor__factory.ts} +60 -44
  503. package/typechain-types/factories/IPMarketFactoryV2__factory.ts +181 -0
  504. package/typechain-types/factories/IPOracleForSy__factory.ts +36 -0
  505. package/typechain-types/factories/IPRouterStatic__factory.ts +32 -146
  506. package/typechain-types/factories/IPendlePreviewHelper__factory.ts +78 -0
  507. package/typechain-types/factories/IShortYieldDecisionHelper__factory.ts +698 -0
  508. package/typechain-types/factories/IShortYieldTradingBot__factory.ts +813 -0
  509. package/typechain-types/factories/ISwETH__factory.ts +53 -0
  510. package/typechain-types/factories/ITaskTreasuryUpgradable__factory.ts +76 -0
  511. package/typechain-types/factories/IThenaFactory__factory.ts +164 -0
  512. package/typechain-types/factories/IThenaGaugeV2__factory.ts +83 -0
  513. package/typechain-types/factories/IThenaPair__factory.ts +421 -0
  514. package/typechain-types/factories/IThenaRouter__factory.ts +200 -0
  515. package/typechain-types/factories/IThenaSY__factory.ts +36 -0
  516. package/typechain-types/factories/ITradingBotBase__factory.ts +366 -0
  517. package/typechain-types/factories/IVersion__factory.ts +36 -0
  518. package/typechain-types/factories/IWBETH__factory.ts +51 -0
  519. package/typechain-types/factories/LegacyNFTHelper__factory.ts +83 -0
  520. package/typechain-types/factories/LongYieldActionLib__factory.ts +207 -0
  521. package/typechain-types/factories/LongYieldDecisionHelper__factory.ts +1468 -0
  522. package/typechain-types/factories/LongYieldTradingBot__factory.ts +2333 -0
  523. package/typechain-types/factories/MarketExtLib__factory.ts +74 -0
  524. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  525. package/typechain-types/factories/PendleAnkrBNBSY__factory.ts +1100 -0
  526. package/typechain-types/factories/PendleArbitrumStakedEthSY__factory.ts +1 -1
  527. package/typechain-types/factories/PendleAuraBalancerStableLPSYV3__factory.ts +1212 -0
  528. package/typechain-types/factories/PendleAuraBbAWethSwethSY__factory.ts +1 -1
  529. package/typechain-types/factories/PendleAuraWethAnkrethSYV2__factory.ts +1 -1
  530. package/typechain-types/factories/PendleAuraWethRocketEthSYV2__factory.ts +1 -1
  531. package/typechain-types/factories/PendleAuraWethStafiEthSY__factory.ts +1 -1
  532. package/typechain-types/factories/PendleAuraWethVethSY__factory.ts +1231 -0
  533. package/typechain-types/factories/PendleAuraWethWstethSYV2__factory.ts +1 -1
  534. package/typechain-types/factories/PendleAuraWstethAnkreth__factory.ts +1244 -0
  535. package/typechain-types/factories/PendleBridgedLSDSY__factory.ts +1064 -0
  536. package/typechain-types/factories/PendleCamelotV1VolatileSY__factory.ts +1 -1
  537. package/typechain-types/factories/PendleChainlinkReceiver__factory.ts +216 -0
  538. package/typechain-types/factories/PendleChainlinkRelayer__factory.ts +180 -0
  539. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
  540. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
  541. package/typechain-types/factories/PendleERC20PermitUpgradable__factory.ts +401 -0
  542. package/typechain-types/factories/PendleERC20Upgradable__factory.ts +326 -0
  543. package/typechain-types/factories/PendleERC4626SY__factory.ts +1030 -0
  544. package/typechain-types/factories/PendleExternalRewardDistributor__factory.ts +437 -0
  545. package/typechain-types/factories/PendleFeeDistributorV2__factory.ts +1 -1
  546. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  547. package/typechain-types/factories/PendleFluxLendingSY__factory.ts +1038 -0
  548. package/typechain-types/factories/PendleGDaiSY__factory.ts +1 -1
  549. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  550. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  551. package/typechain-types/factories/PendleGaugeV2__factory.ts +140 -0
  552. package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
  553. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
  554. package/typechain-types/factories/PendleLpGlpOracle__factory.ts +1 -1
  555. package/typechain-types/factories/PendleMantleStakedEthSY__factory.ts +1068 -0
  556. package/typechain-types/factories/PendleMarketFactoryV2__factory.ts +770 -0
  557. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  558. package/typechain-types/factories/PendleMarketV2__factory.ts +1299 -0
  559. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  560. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  561. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  562. package/typechain-types/factories/PendleOracleForSyProxy__factory.ts +211 -0
  563. package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +1 -1
  564. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  565. package/typechain-types/factories/PendlePtGlpOracle__factory.ts +1 -1
  566. package/typechain-types/factories/PendlePtOracle__factory.ts +1 -1
  567. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  568. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  569. package/typechain-types/factories/PendleRouterHelper__factory.ts +1 -1
  570. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  571. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  572. package/typechain-types/factories/PendleSfrxEthSY__factory.ts +1 -1
  573. package/typechain-types/factories/PendleStargateLPSY__factory.ts +1 -1
  574. package/typechain-types/factories/PendleThenaSY__factory.ts +1352 -0
  575. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  576. package/typechain-types/factories/PendleWbEthSY__factory.ts +1049 -0
  577. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  578. package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +1 -1
  579. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  580. package/typechain-types/factories/PendleYieldTokenV2__factory.ts +1 -1
  581. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  582. package/typechain-types/factories/PtAndLpToAsset__factory.ts +1 -1
  583. package/typechain-types/factories/SAPE__factory.ts +1 -1
  584. package/typechain-types/factories/SDKErrorsDirectory__factory.ts +1596 -0
  585. package/typechain-types/factories/SYBaseUpgradable__factory.ts +889 -0
  586. package/typechain-types/factories/SYBaseWithRewardsUpgradable__factory.ts +959 -0
  587. package/typechain-types/factories/StarNFTV1__factory.ts +584 -0
  588. package/typechain-types/factories/SwETHSY__factory.ts +1022 -0
  589. package/typechain-types/factories/{PendleCamelotV1RouterHelper__factory.ts → ThenaLpHelper__factory.ts} +58 -13
  590. package/typechain-types/factories/ThenaMath__factory.ts +36 -0
  591. package/typechain-types/factories/ThenaPreview__factory.ts +319 -0
  592. package/typechain-types/factories/TradingBotBase__factory.ts +1656 -0
  593. package/typechain-types/factories/TvlLib__factory.ts +309 -0
  594. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  595. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  596. package/typechain-types/hardhat.d.ts +153 -126
  597. package/typechain-types/index.ts +34 -18
  598. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleArbitrumStakedEthSY.sol/PendleArbitrumStakedEthSY.dbg.json +0 -4
  599. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleArbitrumStakedEthSY.sol/PendleArbitrumStakedEthSY.json +0 -976
  600. package/build/artifacts/contracts/offchain-helpers/PtAndLpToAsset.sol/PtAndLpToAsset.dbg.json +0 -4
  601. package/build/artifacts/contracts/offchain-helpers/PtAndLpToAsset.sol/PtAndLpToAsset.json +0 -97
  602. package/contracts/core/StandardizedYield/implementations/PendleArbitrumStakedEthSY.sol +0 -120
  603. package/contracts/offchain-helpers/PtAndLpToAsset.sol +0 -62
  604. package/deployments/42161-markets/RETH-ARBITRUM-JUNE2024.json +0 -10
  605. package/deployments/42161-markets/WSTETH-ARBITRUM-JUNE2024.json +0 -10
  606. package/typechain-types/IExecutorHelper1.ts +0 -643
  607. package/typechain-types/IExecutorHelperEthereum1.ts +0 -643
  608. package/typechain-types/IPVotingEscrowSidechain.ts +0 -155
  609. package/typechain-types/PendleCamelotRewardHelper.ts +0 -347
  610. package/typechain-types/PendleSwapEthereum.ts +0 -126
  611. package/typechain-types/factories/CamelotV1PreviewHelper__factory.ts +0 -400
  612. package/typechain-types/factories/IExecutorHelper1__factory.ts +0 -403
  613. package/typechain-types/factories/IExecutorHelperEthereum1__factory.ts +0 -407
  614. package/typechain-types/factories/PendleCamelotRewardHelper__factory.ts +0 -317
  615. package/typechain-types/factories/PendleCamelotV1SY__factory.ts +0 -1448
  616. package/typechain-types/factories/PendleSwapArbitrum__factory.ts +0 -129
  617. package/typechain-types/factories/PendleSwapEthereum__factory.ts +0 -129
@@ -0,0 +1,291 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.0;
3
+
4
+ import "./../libraries/BotSimulationLib.sol";
5
+ import "../../libraries/Errors.sol";
6
+ import "../libraries/SpecSegmentLib.sol";
7
+ import "./BotDecisionHelperBase.sol";
8
+ import "../../../interfaces/TradingBot/IBotDecisionHelper.sol";
9
+ import "../../../interfaces/TradingBot/ILongYieldTradingBot.sol";
10
+
11
+ contract LongYieldDecisionHelper is BotDecisionHelperBase {
12
+ using MarketExtLib for MarketExtState;
13
+ using MarketExtLib for ApproxParams;
14
+ using MarketMathCore for MarketState;
15
+ using MarketApproxPtInLib for MarketState;
16
+ using BotSimulationLib for BotState;
17
+ using PYIndexLib for PYIndex;
18
+ using Math for uint256;
19
+ using Math for int256;
20
+ using LogExpMath for uint256;
21
+ using SpecSegmentLib for TradingSpecs;
22
+
23
+ function getRebalanceAction(
24
+ address botAddress
25
+ ) public view returns (RebalanceOutput memory output) {
26
+ StrategyData memory strategyData = ITradingBotBase(botAddress).readStrategyData();
27
+ (uint256 tvlInSy, , uint256 syRatio, ) = _calcBotExtStats(
28
+ strategyData.botState,
29
+ strategyData.marketExt
30
+ );
31
+
32
+ uint256 lowerBound = strategyData.specs.targetSyRatio.mulDown(
33
+ Math.ONE - strategyData.specs.bufferSyRatio
34
+ );
35
+
36
+ uint256 upperBound = strategyData.specs.targetSyRatio.mulDown(
37
+ Math.ONE + strategyData.specs.bufferSyRatio
38
+ );
39
+
40
+ if (syRatio > upperBound) {
41
+ output.rebalanceType = RebalanceType.AddLiqKeepYt;
42
+ (output.amountIn, output.amountOut, output.amountOut2) = _getSyAmountForZPI(
43
+ strategyData.marketExt,
44
+ tvlInSy,
45
+ syRatio,
46
+ strategyData.specs.targetSyRatio
47
+ );
48
+ } else if (syRatio < lowerBound) {
49
+ (output.rebalanceType, output.amountIn, output.amountOut) = _getRemoveRebalance(
50
+ strategyData,
51
+ tvlInSy
52
+ );
53
+ }
54
+ }
55
+
56
+ // We dont care about AddLiqKeepYt here
57
+ function getTradeAction(address botAddress) public view returns (TradeResult memory res) {
58
+ StrategyData memory strategyData = ILongYieldTradingBot(botAddress).readStrategyData();
59
+ uint256 iy = strategyData.marketExt.impliedYield();
60
+
61
+ res.currentBin = _getCurrentBin(strategyData.botState, strategyData.specs, iy);
62
+ if (res.currentBin == 0) {
63
+ res.action = TradeActionType.NONE;
64
+ return res;
65
+ }
66
+ res.targetIy = _getTargetImpliedYieldForBin(
67
+ strategyData.botState,
68
+ strategyData.specs,
69
+ res.currentBin
70
+ );
71
+
72
+ uint256 maxAmountForAction = INF;
73
+ uint256 rebalanceAdditionalCheck;
74
+
75
+ if (res.currentBin < 0) {
76
+ res.action = TradeActionType.RemoveLiqToYt;
77
+ maxAmountForAction = _calcTradeActionMaxAmount(
78
+ strategyData.botState.lpBalance,
79
+ res.currentBin,
80
+ strategyData.botState.buyBins,
81
+ strategyData.specs.numOfBins
82
+ );
83
+
84
+ if (maxAmountForAction == 0) {
85
+ res.action = TradeActionType.NONE;
86
+ return res;
87
+ }
88
+ } else {
89
+ res.action = TradeActionType.AddLiqFromYt;
90
+ uint256 maxYtToAddLiq = searchMaxYtToAddLiq(strategyData);
91
+
92
+ rebalanceAdditionalCheck = _calcTradeActionMaxAmount(
93
+ maxYtToAddLiq,
94
+ res.currentBin,
95
+ strategyData.botState.buyBins,
96
+ strategyData.specs.numOfBins
97
+ );
98
+
99
+ if (rebalanceAdditionalCheck == 0) {
100
+ res.action = TradeActionType.NONE;
101
+ return res;
102
+ }
103
+ }
104
+
105
+ res.guessBotParams = searchForBotParam(
106
+ strategyData,
107
+ res.action,
108
+ res.targetIy,
109
+ rebalanceAdditionalCheck,
110
+ _getMockApproxParamsWithGuessMax(maxAmountForAction),
111
+ _getMockApproxParams()
112
+ );
113
+ (res.amountOut, res.guessIntParams) = _calcTradeActionAmountOutAndIntParams(
114
+ strategyData.marketExt,
115
+ res.action,
116
+ res.guessBotParams
117
+ );
118
+ }
119
+
120
+ /**
121
+ * Given the rebalancing action and its `botParam`, binary search for the optimal internal
122
+ * parameter `intParam` for the internal action's approximation (e.g. for router's swap)
123
+ */
124
+ function _calcTradeActionAmountOutAndIntParams(
125
+ MarketExtState memory marketExt,
126
+ TradeActionType action,
127
+ uint256 botParam
128
+ ) public pure returns (uint256 amountOut, uint256 intParams) {
129
+ if (action == TradeActionType.RemoveLiqToYt) {
130
+ (amountOut, intParams) = marketExt.clone().removeLiqToYt(
131
+ botParam,
132
+ _getMockApproxParams()
133
+ );
134
+ } else {
135
+ (amountOut, ) = marketExt.clone().addLiqFromYt(botParam);
136
+ }
137
+ }
138
+
139
+ function searchMaxYtToAddLiq(
140
+ StrategyData memory strategyData
141
+ ) public view returns (uint256 maxYtToAddLiq) {
142
+ (, , , uint256 ytPtRatioAfter) = _calcBotExtStats(
143
+ strategyData.botState,
144
+ strategyData.marketExt
145
+ );
146
+ if (ytPtRatioAfter < strategyData.specs.targetYtPtRatio) {
147
+ return 0;
148
+ }
149
+
150
+ ApproxParams memory guessParams = _getMockApproxParamsWithGuessMax(
151
+ _weakUpperBound(
152
+ strategyData.botState,
153
+ strategyData.marketExt,
154
+ TradeActionType.AddLiqFromYt
155
+ )
156
+ );
157
+ ApproxParams memory mockSwapParams = _getMockApproxParams();
158
+ while (guessParams.guessMax > guessParams.guessMin + 1) {
159
+ uint256 guess = guessParams.guessMin +
160
+ (guessParams.guessMax - guessParams.guessMin) /
161
+ 2;
162
+ (
163
+ bool success,
164
+ BotState memory botStateAfter,
165
+ MarketExtState memory marketExtAfter
166
+ ) = previewAction(strategyData, TradeActionType.AddLiqFromYt, guess, mockSwapParams);
167
+
168
+ if (!success) {
169
+ guessParams.guessMax = guess - 1;
170
+ continue;
171
+ }
172
+
173
+ (, , , ytPtRatioAfter) = _calcBotExtStats(botStateAfter, marketExtAfter);
174
+ if (ytPtRatioAfter >= strategyData.specs.targetYtPtRatio) {
175
+ guessParams.guessMin = guess;
176
+ maxYtToAddLiq = strategyData.botState.ytBalance - botStateAfter.ytBalance;
177
+ } else {
178
+ guessParams.guessMax = guess - 1;
179
+ }
180
+ }
181
+ return maxYtToAddLiq;
182
+ }
183
+
184
+ /// @dev Does not modify params, structs are cloned before simulation
185
+ function previewAction(
186
+ StrategyData memory strategyData,
187
+ TradeActionType action,
188
+ uint256 botParam,
189
+ ApproxParams memory intParams
190
+ ) public pure returns (bool success, BotState memory bot, MarketExtState memory marketExt) {
191
+ bot = strategyData.botState.clone();
192
+ marketExt = strategyData.marketExt.clone();
193
+
194
+ if (action == TradeActionType.AddLiqFromYt) {
195
+ success = bot.addLiqFromYt(marketExt, botParam);
196
+ } else if (action == TradeActionType.RemoveLiqToYt) {
197
+ success = bot.removeLiqToYt(marketExt, botParam, intParams);
198
+ } else {
199
+ success = false;
200
+ }
201
+ }
202
+
203
+ /// @dev Gives a weak upper bound so that MarketExtLib's simulation doesn't revert
204
+ function _weakUpperBound(
205
+ BotState memory bot,
206
+ MarketExtState memory marketExt,
207
+ TradeActionType action
208
+ ) internal pure override returns (uint256) {
209
+ if (action == TradeActionType.AddLiqFromYt) {
210
+ return marketExt.calcMaxPtOut();
211
+ } else {
212
+ return bot.lpBalance;
213
+ }
214
+ }
215
+
216
+ function _getTradeActionResult(
217
+ TradeParams memory params,
218
+ uint256 botParam,
219
+ uint256 rebalanceAdditionalCheck,
220
+ uint256 eps,
221
+ ApproxParams memory intParams
222
+ ) internal pure override returns (TradeActionResult) {
223
+ (
224
+ bool success,
225
+ BotState memory newBotState,
226
+ MarketExtState memory marketExt
227
+ ) = previewAction(params.strategyData, params.action, botParam, intParams);
228
+
229
+ if (!success) return TradeActionResult.FAIL_OR_TARGET_EXCEED;
230
+
231
+ uint256 iy = marketExt.impliedYield();
232
+ if (params.action == TradeActionType.AddLiqFromYt) {
233
+ uint256 netYtSwapped = params.strategyData.botState.ytBalance - newBotState.ytBalance;
234
+
235
+ if (netYtSwapped > rebalanceAdditionalCheck) {
236
+ return TradeActionResult.FAIL_OR_TARGET_EXCEED;
237
+ }
238
+ if (Math.isAGreaterApproxB(iy, params.targetIy, eps)) {
239
+ return TradeActionResult.SUCCESS;
240
+ } else {
241
+ if (iy < params.targetIy) return TradeActionResult.FAIL_OR_TARGET_EXCEED;
242
+ else return TradeActionResult.TARGET_NOT_REACHED;
243
+ }
244
+ } else {
245
+ if (Math.isASmallerApproxB(iy, params.targetIy, eps)) {
246
+ return TradeActionResult.SUCCESS;
247
+ } else {
248
+ if (iy > params.targetIy) return TradeActionResult.FAIL_OR_TARGET_EXCEED;
249
+ else return TradeActionResult.TARGET_NOT_REACHED;
250
+ }
251
+ }
252
+ }
253
+
254
+ function _getRemoveRebalance(
255
+ StrategyData memory strategyData,
256
+ uint256 tvl
257
+ ) internal pure returns (RebalanceType rebalanceType, uint256 amountIn, uint256 amountOut) {
258
+ uint256 totalSyRequired = tvl.mulDown(strategyData.specs.targetSyRatio) -
259
+ strategyData.botState.syBalance;
260
+
261
+ if (strategyData.botState.lpBalance > 0) {
262
+ (int256 syFromLp, int256 ptFromLp) = strategyData
263
+ .marketExt
264
+ .clone()
265
+ .state
266
+ .removeLiquidityCore(strategyData.botState.lpBalance.Int());
267
+
268
+ uint256 availablePYToRedeem = Math.min(
269
+ strategyData.botState.ytBalance,
270
+ ptFromLp.Uint()
271
+ );
272
+
273
+ // PT should be zpi redeemed together with YT
274
+ uint256 totalSyZpi = syFromLp.Uint() +
275
+ strategyData.marketExt.index.assetToSyUp(availablePYToRedeem);
276
+
277
+ rebalanceType = RebalanceType.RemoveLpAndYt;
278
+ amountOut = Math.min(totalSyZpi, totalSyRequired);
279
+ amountIn = (strategyData.botState.lpBalance * amountOut) / totalSyZpi;
280
+ } else {
281
+ // Position now should only consist of SY & YT
282
+ uint256 syFromYT = strategyData.marketExt.clone().swapYtToSy(
283
+ strategyData.botState.ytBalance
284
+ );
285
+
286
+ rebalanceType = RebalanceType.SellYt;
287
+ amountIn = (totalSyRequired * strategyData.botState.ytBalance) / syFromYT;
288
+ amountOut = strategyData.marketExt.clone().swapYtToSy(amountIn);
289
+ }
290
+ }
291
+ }
@@ -0,0 +1,128 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "./TradingBotBase.sol";
5
+ import "./libraries/LongYieldActionLib.sol";
6
+ import "../../interfaces/TradingBot/ILongYieldTradingBot.sol";
7
+ import "../../interfaces/IPMarketSwapCallback.sol";
8
+ import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";
9
+
10
+ contract LongYieldTradingBot is
11
+ TradingBotBase,
12
+ UUPSUpgradeable,
13
+ ILongYieldTradingBot,
14
+ IPMarketSwapCallback
15
+ {
16
+ using MarketExtLib for MarketExtState;
17
+ using Math for uint256;
18
+ using Math for int256;
19
+
20
+ constructor(
21
+ address _market,
22
+ address _router,
23
+ address _PENDLE,
24
+ address _decisionHelper
25
+ ) TradingBotBase(_market, _router, _PENDLE, _decisionHelper) {}
26
+
27
+ function _authorizeUpgrade(address) internal override onlyOwner {}
28
+
29
+ function initialize(TradingSpecs memory _specs) external initializer {
30
+ _setSpecs(_specs);
31
+ __BoringOwnable_init();
32
+ }
33
+
34
+ function removeLiquidityToSy(
35
+ uint256 netLpToRemove,
36
+ uint256 minSyOut
37
+ ) external onlyOwner returns (uint256 netSyOut) {
38
+ return LongYieldActionLib.removeLiquidityToSy(market, netLpToRemove, minSyOut);
39
+ }
40
+
41
+
42
+ function swapYtToSy(
43
+ uint256 netYtToSell,
44
+ uint256 minSyOut
45
+ ) external onlyOwner returns (uint256 netSyOut) {
46
+ return LongYieldActionLib.swapYtToSy(market, netYtToSell, minSyOut);
47
+ }
48
+
49
+ function addLiqKeepYt(
50
+ uint256 netSyIn,
51
+ uint256 minLpOut,
52
+ uint256 minYtOut
53
+ ) external onlyOwner returns (uint256 netLpOut, uint256 netYtOut) {
54
+ (netLpOut, netYtOut) = LongYieldActionLib.addLiqKeepYt(
55
+ market,
56
+ netSyIn,
57
+ minLpOut,
58
+ minYtOut
59
+ );
60
+ emit AddLiqKeepYt(netSyIn, netLpOut, netYtOut);
61
+ }
62
+
63
+ function addLiqFromYt(
64
+ AddLiqFromYtInput calldata inputParams
65
+ ) external onlyOwner returns (uint256 netPtFromSwap, uint256 netLpOut, uint256 netYtIn) {
66
+ StrategyData memory strategyData = readStrategyData();
67
+
68
+ require(
69
+ IBotDecisionHelper(decisionHelper).getCurrentBin(strategyData) ==
70
+ inputParams.currentBin,
71
+ "addLiqFromYt: bin state expired"
72
+ );
73
+ netPtFromSwap = decisionHelper.searchForBotParam(
74
+ readStrategyData(),
75
+ TradeActionType.AddLiqFromYt,
76
+ inputParams.targetIy,
77
+ type(uint256).max,
78
+ inputParams.botParams,
79
+ inputParams.botParams // only placeholder, value doesn't matter
80
+ );
81
+ (netLpOut, netYtIn) = LongYieldActionLib.addLiqFromYt(
82
+ market,
83
+ netPtFromSwap,
84
+ inputParams.minLpOut
85
+ );
86
+
87
+ _updateSellBinAfterTrade();
88
+
89
+ emit AddLiqFromYt(inputParams.botParams, netYtIn, netLpOut);
90
+ }
91
+
92
+ function removeLiqToYt(
93
+ RemoveLiqToYtInput calldata inputParams
94
+ ) external onlyOwner returns (uint256 netLpRemoved, uint256 netYtOut) {
95
+ StrategyData memory strategyData = readStrategyData();
96
+
97
+ require(
98
+ IBotDecisionHelper(decisionHelper).getCurrentBin(strategyData) ==
99
+ inputParams.currentBin,
100
+ "removeLiqToYt: bin state expired"
101
+ );
102
+
103
+ netLpRemoved = decisionHelper.searchForBotParam(
104
+ strategyData,
105
+ TradeActionType.RemoveLiqToYt,
106
+ inputParams.targetIy,
107
+ type(uint256).max,
108
+ inputParams.botParams,
109
+ inputParams.guessTotalPtToSwap // value DOES matter
110
+ );
111
+
112
+ (netYtOut, ) = LongYieldActionLib.removeLiqToYt(
113
+ market,
114
+ netLpRemoved,
115
+ inputParams.guessTotalPtToSwap,
116
+ inputParams.minYtOut
117
+ );
118
+
119
+ _updateSellBinAfterTrade();
120
+
121
+ emit RemoveLiqToYt(inputParams.botParams, netLpRemoved, netYtOut);
122
+ }
123
+
124
+ function swapCallback(int256 ptToAccount, int256 syToAccount, bytes calldata data) external {
125
+ require(msg.sender == market, "not market");
126
+ LongYieldActionLib.swapCallback(market, ptToAccount, syToAccount, data);
127
+ }
128
+ }
@@ -0,0 +1,153 @@
1
+ # Trading Bot
2
+
3
+ ## Structs and enums
4
+
5
+ ### MarketExtState
6
+
7
+ Struct for external market state.
8
+
9
+ - `state`: MarketState
10
+ - `index`: YT's index
11
+ - `blockTime`: timestamp
12
+
13
+ ### BotState
14
+
15
+ Struct for bot's balances: `lpBalance`, `ytBalance`, `syBalance`.
16
+
17
+ ### TradingSpecs
18
+
19
+ Struct for bot's trading limits:
20
+
21
+ - `lowerIyLimit`: apeYtApy
22
+ - `upperIyLimit`: sellYtApy
23
+ - `floatingSyRatioLimit`: h_r - f/TVL limit, TVL calculated in number of SY.
24
+ - `floatingSyRatioTarget`: l_r - f/TVL target.
25
+ - `ytPtRatioLimit`: h_x - limit for YT/PT
26
+ - `ytPtRatioTarget`: l_x - target for YT/PT
27
+
28
+ ### ActionType
29
+
30
+ Enum for action.
31
+
32
+ - 0: SwapSyToYt - Buy YT with SY
33
+ - 1: AddLiqKeepYt - ZPI Zap
34
+ - 2: AddLiqFromSy - Single sided LP
35
+ - 3: AddLiqFromYt - Sell YT for LP
36
+ - 4: RemoveLiqToYt - Zap out to YT
37
+ - 5: NONE
38
+
39
+ ### StrategyFlag
40
+
41
+ Enum for strategy state.
42
+
43
+ - 0: GOOD
44
+ - 1: TOO_LOW
45
+ - 2: TOO_HIGH
46
+
47
+ ### StrategyState
48
+
49
+ Struct for strategy state.
50
+
51
+ - `iyFlag`: StrategyFlag for IY compared to ape/sellYtApy
52
+ - `syRatioFlag`: StrategyFlag for f/TVL compared to given limit \(r\)
53
+
54
+ ## TradingBotBase.sol
55
+
56
+ ### 1. depositSy
57
+
58
+ Deposit SY into the bot.
59
+ - SY approval needed.
60
+
61
+ ### 2. depositToken
62
+
63
+ Deposit funds into the bot, which are then compounded into SY.
64
+ - `inp`: Token input data to swap deposited token to SY.
65
+ - If `inp.netTokenIn` is set to `2**256 - 1` then it will be set to `_selfBalance()` internally.`
66
+ - Needs sender's approval to bot & bot's approval to router.
67
+
68
+ ### 3. withdrawFunds
69
+
70
+ Withdraw funds back to sender (only owner).
71
+
72
+ ### 4. approveInf
73
+
74
+ Infinite approve token to spender.
75
+
76
+ ### 5. claimAndCompound
77
+
78
+ Claim rewards from SY, YT, market. Then compound the rewards into SY.
79
+
80
+ - `inps`: Token input data to swap claimed rewards into SY
81
+ - If `inp.netTokenIn` is set to `2**256 - 1` then it will be set to `_selfBalance()` internally.
82
+ - Needs sender's approval to bot & bot's approval to router for tokens.
83
+
84
+ ### 6. claimWithoutCompound
85
+ Intended to be static called from offchain. Claim rewards from SY, YT, market, then return amounts of tokens claimed.
86
+
87
+ ### 7. readMarketExtState
88
+ Return the current `MarketExtState`: state of market, YT's index, current block timestamp.
89
+
90
+ ### 8. readBotState
91
+ Return the current `BotState`: The bot's balance in LP, SY, YT.
92
+
93
+
94
+ ## LongYieldTradingBot.sol
95
+
96
+ There are 5 functions for rebalancing actions.
97
+ - For all of them, `botParams` is ApproxParams to find the optimal internal trade parameter.
98
+ - For functions interacting with the router, approval is needed.
99
+
100
+ ### 1. setSpecs
101
+
102
+ Set the bot's specs: apeYtApy, sellYtApy, h_r (f/TVL limit), l_r (f/TVL target), h_x (YT/PT ratio limit), l_x (YT/PT ratio target).
103
+
104
+ ### 2. swapSyToYt
105
+
106
+ Rebalance by buying YT with SY.
107
+
108
+ ### 3. addLiqKeepYt
109
+
110
+ Rebalance by ZPI zap.
111
+
112
+ ### 4. addLiqFromSy
113
+
114
+ Rebalance by adding single sided LP from SY.
115
+
116
+ ### 5. addLiqFromYt
117
+
118
+ Rebalance by selling YT to LP.
119
+
120
+ ### 6. removeLiqToYt
121
+
122
+ Rebalance by zapping out LP to YT.
123
+
124
+ - `intParams`: ApproxParams for internal approx function (approxSwapExactPtForYt).
125
+ - Zapping LP to YT can lose a few percent of the `tvlInSy`, the estimated TVL of bot in SY. Zapping out too much can cause a significant change in `tvlInSy`, which can unintentionally increase the estimated f/TVL.
126
+
127
+ ## BotDecisionHelper.sol
128
+
129
+ Offchain helper for trading bot.
130
+
131
+ ### 1. searchForBotParam
132
+ Binary search for the optimal `botParam` for the rebalancing action. To be used in bot's actual rebalancing actions.
133
+
134
+ - Searches for the minimum `botParam` so that the bot trades just "target" is met.
135
+ - Target to meet is calculated based on the `action` (desired f/TVL, YT/PT, IY).
136
+ - `botParam`: The parameter for the rebalancing function (e.g. `netPtFromSwap` for addLiqFromSy).
137
+
138
+ ### 2. searchForIntParam
139
+ (Only useful for `removeLiqToYt`)
140
+ Given `botParam`, binary search for the optimal `intParam` for the internal calculations (e.g. `approxSwapExactPtForYt`).
141
+
142
+ ### 3. strategyState
143
+ Calculate the strategy state from BotState, MarketExtState, TradingSpecs.
144
+
145
+ ### 4. actionToTake
146
+ Return optimal action to take based on the BotState and StrategyState.
147
+
148
+ ### 5. previewAction
149
+ Simulate rebalancing action (swap/add/remove) from BotState and MarketExtState.
150
+
151
+ ### 6. botExtStats
152
+ Calculate the external stats for the bot: Estimated TVL in equivalent SY amount, current IY, current f/TVL ratio, current YT/PT ratio
153
+