@pendle/core-v2 2.19.0 → 2.19.1-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 (554) 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/SYBase.sol/SYBase.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  53. package/build/artifacts/contracts/core/StandardizedYield/SYUtils.sol/SYUtils.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.dbg.json +1 -1
  55. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +2 -2
  57. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.dbg.json +1 -1
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.json +2 -2
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.dbg.json +1 -1
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.json +2 -2
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.json +2 -2
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.dbg.json +1 -1
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.json +2 -2
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.dbg.json +1 -1
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.json +2 -2
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.dbg.json +1 -1
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.dbg.json +1 -1
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol/FixedPoint.dbg.json +1 -1
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAPoolHelper.dbg.json +1 -1
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAWethHelper.dbg.json +1 -1
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearMath.sol/LinearMath.dbg.json +1 -1
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearPreview.sol/LinearPreview.dbg.json +1 -1
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.dbg.json +1 -1
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.dbg.json +1 -1
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSYV2.sol/PendleAuraBalancerStableLPSYV2.dbg.json +1 -1
  77. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.dbg.json +1 -1
  78. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.dbg.json +1 -1
  79. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  80. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  81. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  82. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
  83. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotRewardHelper.sol/CamelotRewardHelper.dbg.json +1 -1
  84. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileCommon.sol/CamelotV1VolatileCommon.dbg.json +1 -1
  85. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileLpHelper.sol/CamelotV1VolatileLpHelper.dbg.json +1 -1
  86. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatilePreview.sol/CamelotV1VolatilePreview.dbg.json +1 -1
  87. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.dbg.json +1 -1
  88. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.json +2 -2
  89. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  90. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +2 -2
  91. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  92. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +2 -2
  93. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +1 -1
  94. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +1 -1
  95. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +1 -1
  96. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  97. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.dbg.json +1 -1
  98. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
  99. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +2 -2
  100. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
  101. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.json +2 -2
  102. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  103. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
  104. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.dbg.json +1 -1
  105. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.json +2 -2
  106. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.dbg.json +1 -1
  107. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.json +2 -2
  108. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  109. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  110. package/build/artifacts/contracts/core/TradingBot/LongYield/LongYieldActionHelper.sol/LongYieldActionHelper.dbg.json +4 -0
  111. package/build/artifacts/contracts/core/TradingBot/LongYield/LongYieldActionHelper.sol/LongYieldActionHelper.json +815 -0
  112. package/build/artifacts/contracts/core/TradingBot/LongYield/LongYieldDecisionHelper.sol/LongYieldDecisionHelper.dbg.json +4 -0
  113. package/build/artifacts/contracts/core/TradingBot/LongYield/LongYieldDecisionHelper.sol/LongYieldDecisionHelper.json +1215 -0
  114. package/build/artifacts/contracts/core/TradingBot/LongYield/LongYieldTradingBot.sol/LongYieldTradingBot.dbg.json +4 -0
  115. package/build/artifacts/contracts/core/TradingBot/LongYield/LongYieldTradingBot.sol/LongYieldTradingBot.json +1564 -0
  116. package/build/artifacts/contracts/core/TradingBot/ShortYield/ShortYieldActionHelper.sol/ShortYieldActionHelper.dbg.json +4 -0
  117. package/build/artifacts/contracts/core/TradingBot/ShortYield/ShortYieldActionHelper.sol/ShortYieldActionHelper.json +765 -0
  118. package/build/artifacts/contracts/core/TradingBot/ShortYield/ShortYieldDecisionHelper.sol/ShortYieldDecisionHelper.dbg.json +4 -0
  119. package/build/artifacts/contracts/core/TradingBot/ShortYield/ShortYieldDecisionHelper.sol/ShortYieldDecisionHelper.json +1215 -0
  120. package/build/artifacts/contracts/core/TradingBot/ShortYield/ShortYieldTradingBot.sol/ShortYieldTradingBot.dbg.json +4 -0
  121. package/build/artifacts/contracts/core/TradingBot/ShortYield/ShortYieldTradingBot.sol/ShortYieldTradingBot.json +1368 -0
  122. package/build/artifacts/contracts/core/TradingBot/base/BotActionCallback.sol/BotActionCallback.dbg.json +4 -0
  123. package/build/artifacts/contracts/core/TradingBot/base/BotActionCallback.sol/BotActionCallback.json +815 -0
  124. package/build/artifacts/contracts/core/TradingBot/base/BotDecisionHelperBase.sol/BotDecisionHelperBase.dbg.json +4 -0
  125. package/build/artifacts/contracts/core/TradingBot/base/BotDecisionHelperBase.sol/BotDecisionHelperBase.json +789 -0
  126. package/build/artifacts/contracts/core/TradingBot/base/TradingBotBase.sol/TradingBotBase.dbg.json +4 -0
  127. package/build/artifacts/contracts/core/TradingBot/base/TradingBotBase.sol/TradingBotBase.json +765 -0
  128. package/build/artifacts/contracts/core/TradingBot/libraries/BotSimulationLib.sol/BotSimulationLib.dbg.json +4 -0
  129. package/build/artifacts/contracts/core/TradingBot/libraries/BotSimulationLib.sol/BotSimulationLib.json +10 -0
  130. package/build/artifacts/contracts/core/TradingBot/libraries/MarketExtLib.sol/MarketExtLib.dbg.json +4 -0
  131. package/build/artifacts/contracts/core/TradingBot/libraries/MarketExtLib.sol/MarketExtLib.json +24 -0
  132. package/build/artifacts/contracts/core/TradingBot/libraries/SpecSegmentLib.sol/SpecSegmentLib.dbg.json +4 -0
  133. package/build/artifacts/contracts/core/TradingBot/libraries/SpecSegmentLib.sol/SpecSegmentLib.json +10 -0
  134. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  135. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  136. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  137. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  138. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  139. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  140. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  141. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +1 -1
  142. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +1 -1
  143. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +2 -2
  144. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +1 -1
  145. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +2 -2
  146. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +1 -1
  147. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +2 -2
  148. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  149. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
  150. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  151. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
  152. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
  153. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
  154. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
  155. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  156. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +151 -2
  157. package/build/artifacts/contracts/core/libraries/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  158. package/build/artifacts/contracts/core/libraries/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  159. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +1 -1
  160. package/build/artifacts/contracts/core/libraries/TokenAmountLib.sol/TokenAmountLib.dbg.json +4 -0
  161. package/build/artifacts/contracts/core/libraries/TokenAmountLib.sol/TokenAmountLib.json +10 -0
  162. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  163. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  164. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.dbg.json +1 -1
  165. package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.dbg.json +1 -1
  166. package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.dbg.json +1 -1
  167. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +1 -1
  168. package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.dbg.json +1 -1
  169. package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.dbg.json +1 -1
  170. package/build/artifacts/contracts/interfaces/Balancer/IERC4626LinearPool.sol/IERC4626LinearPool.dbg.json +1 -1
  171. package/build/artifacts/contracts/interfaces/Balancer/IGauge.sol/IGauge.dbg.json +1 -1
  172. package/build/artifacts/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol/ILiquidityGaugeFactory.dbg.json +1 -1
  173. package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.dbg.json +1 -1
  174. package/build/artifacts/contracts/interfaces/Balancer/IRateProvider.sol/IRateProvider.dbg.json +1 -1
  175. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +1 -1
  176. package/build/artifacts/contracts/interfaces/Camelot/ICamelotFactory.sol/ICamelotFactory.dbg.json +1 -1
  177. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTFactory.sol/ICamelotNFTFactory.dbg.json +1 -1
  178. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTHandler.sol/ICamelotNFTHandler.dbg.json +1 -1
  179. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTPool.sol/ICamelotNFTPool.dbg.json +1 -1
  180. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNitroPool.sol/ICamelotNitroPool.dbg.json +1 -1
  181. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNitroPoolFactory.sol/ICamelotNitroPoolFactory.dbg.json +1 -1
  182. package/build/artifacts/contracts/interfaces/Camelot/ICamelotPair.sol/ICamelotPair.dbg.json +1 -1
  183. package/build/artifacts/contracts/interfaces/Camelot/ICamelotRouter.sol/ICamelotRouter.dbg.json +1 -1
  184. package/build/artifacts/contracts/interfaces/Camelot/ICamelotYieldBooster.sol/ICamelotYieldBooster.dbg.json +1 -1
  185. package/build/artifacts/contracts/interfaces/Camelot/IXGrail.sol/IXGrail.dbg.json +1 -1
  186. package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
  187. package/build/artifacts/contracts/interfaces/ConvexCurve/ICrvDepositor.sol/ICrvDepositor.dbg.json +1 -1
  188. package/build/artifacts/contracts/interfaces/ConvexCurve/ICvxCrv.sol/ICvxCrv.dbg.json +1 -1
  189. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
  190. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
  191. package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.dbg.json +1 -1
  192. package/build/artifacts/contracts/interfaces/Frax/IFrxEthMinter.sol/IFrxEthMinter.dbg.json +1 -1
  193. package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.dbg.json +1 -1
  194. package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.dbg.json +1 -1
  195. package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.dbg.json +1 -1
  196. package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.dbg.json +1 -1
  197. package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.dbg.json +1 -1
  198. package/build/artifacts/contracts/interfaces/IApeStaking.sol/IApeStaking.dbg.json +1 -1
  199. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  200. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  201. package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.dbg.json +1 -1
  202. package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.dbg.json +1 -1
  203. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  204. package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.dbg.json +1 -1
  205. package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +1 -1
  206. package/build/artifacts/contracts/interfaces/ILooksFeeSharing.sol/ILooksFeeSharing.dbg.json +1 -1
  207. package/build/artifacts/contracts/interfaces/ILooksStaking.sol/ILooksStaking.dbg.json +1 -1
  208. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  209. package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +1 -1
  210. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  211. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.json +6 -82
  212. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
  213. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.json +22 -22
  214. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  215. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +1 -1
  216. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.json +4 -42
  217. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
  218. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  219. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  220. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  221. package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.dbg.json +1 -1
  222. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  223. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  224. package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.dbg.json +1 -1
  225. package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.dbg.json +1 -1
  226. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
  227. package/build/artifacts/contracts/interfaces/IPFeeDistributorV2.sol/IPFeeDistributorV2.dbg.json +1 -1
  228. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
  229. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  230. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  231. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  232. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +1 -1
  233. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  234. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  235. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  236. package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.dbg.json +1 -1
  237. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
  238. package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
  239. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  240. package/build/artifacts/contracts/interfaces/IPPtOracle.sol/IPPtOracle.dbg.json +1 -1
  241. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +1 -1
  242. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  243. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +32 -146
  244. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  245. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  246. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  247. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  248. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  249. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +1 -1
  250. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  251. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  252. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  253. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  254. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  255. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  256. package/build/artifacts/contracts/interfaces/IStargateLP.sol/IStargateLP.dbg.json +1 -1
  257. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  258. package/build/artifacts/contracts/interfaces/IStargateStaking.sol/IStargateStaking.dbg.json +1 -1
  259. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  260. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  261. package/build/artifacts/contracts/interfaces/TradingBot/IBotDecisionHelper.sol/IBotDecisionHelper.dbg.json +4 -0
  262. package/build/artifacts/contracts/interfaces/TradingBot/IBotDecisionHelper.sol/IBotDecisionHelper.json +652 -0
  263. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldDecisionHelper.sol/ILongYieldDecisionHelper.dbg.json +4 -0
  264. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldDecisionHelper.sol/ILongYieldDecisionHelper.json +671 -0
  265. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.dbg.json +4 -0
  266. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.json +977 -0
  267. package/build/artifacts/contracts/interfaces/TradingBot/IShortYieldDecisionHelper.sol/IShortYieldDecisionHelper.dbg.json +4 -0
  268. package/build/artifacts/contracts/interfaces/TradingBot/IShortYieldDecisionHelper.sol/IShortYieldDecisionHelper.json +652 -0
  269. package/build/artifacts/contracts/interfaces/TradingBot/IShortYieldTradingBot.sol/IShortYieldTradingBot.dbg.json +4 -0
  270. package/build/artifacts/contracts/interfaces/TradingBot/IShortYieldTradingBot.sol/IShortYieldTradingBot.json +958 -0
  271. package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.dbg.json +4 -0
  272. package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.json +515 -0
  273. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.dbg.json +1 -1
  274. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  275. package/build/artifacts/contracts/offchain-helpers/BoringLpSeller.sol/BoringLpSeller.dbg.json +1 -1
  276. package/build/artifacts/contracts/offchain-helpers/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
  277. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
  278. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +2 -2
  279. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  280. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
  281. package/build/artifacts/contracts/offchain-helpers/EmptyUUPS.sol/EmptyUUPS.dbg.json +1 -1
  282. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.dbg.json +1 -1
  283. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.json +2 -2
  284. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +1 -1
  285. package/build/artifacts/contracts/offchain-helpers/PendleMulticallV1.sol/PendleMulticallV1.dbg.json +1 -1
  286. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  287. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  288. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  289. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  290. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  291. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +8 -84
  292. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  293. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +24 -24
  294. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  295. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +6 -44
  296. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  297. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -2
  298. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  299. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  300. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  301. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
  302. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.json +2 -2
  303. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.dbg.json +1 -1
  304. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.json +2 -2
  305. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.dbg.json +1 -1
  306. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.json +2 -2
  307. package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.dbg.json +1 -1
  308. package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.json +2 -2
  309. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.dbg.json +1 -1
  310. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.json +2 -2
  311. package/build/artifacts/contracts/oracles/samples/PendlePtUsdChainlinkOracle.sol/PendlePtUsdChainlinkOracle.dbg.json +1 -1
  312. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  313. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +2 -2
  314. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  315. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +2 -2
  316. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  317. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  318. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +2 -2
  319. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  320. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +2 -2
  321. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  322. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
  323. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +1 -1
  324. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.json +2 -2
  325. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
  326. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  327. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  328. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  329. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  330. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  331. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  332. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
  333. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +1 -1
  334. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +1 -1
  335. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IExecutorHelper.sol/IExecutorHelper.dbg.json +1 -1
  336. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IHashflow.sol/IHashflow.dbg.json +1 -1
  337. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +1 -1
  338. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberInputScalingHelper.sol/KyberInputScalingHelper.dbg.json +1 -1
  339. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScalingDataLib.sol/ScalingDataLib.dbg.json +1 -1
  340. package/contracts/core/TradingBot/LongYield/LongYieldActionHelper.sol +101 -0
  341. package/contracts/core/TradingBot/LongYield/LongYieldDecisionHelper.sol +216 -0
  342. package/contracts/core/TradingBot/LongYield/LongYieldTradingBot.sol +97 -0
  343. package/contracts/core/TradingBot/README.md +153 -0
  344. package/contracts/core/TradingBot/ShortYield/ShortYieldActionHelper.sol +54 -0
  345. package/contracts/core/TradingBot/ShortYield/ShortYieldDecisionHelper.sol +198 -0
  346. package/contracts/core/TradingBot/ShortYield/ShortYieldTradingBot.sol +101 -0
  347. package/contracts/core/TradingBot/base/BotActionCallback.sol +112 -0
  348. package/contracts/core/TradingBot/base/BotDecisionHelperBase.sol +235 -0
  349. package/contracts/core/TradingBot/base/TradingBotBase.sol +184 -0
  350. package/contracts/core/TradingBot/libraries/BotSimulationLib.sol +155 -0
  351. package/contracts/core/TradingBot/libraries/MarketExtLib.sol +310 -0
  352. package/contracts/core/TradingBot/libraries/SpecSegmentLib.sol +62 -0
  353. package/contracts/core/libraries/Errors.sol +12 -0
  354. package/contracts/core/libraries/TokenAmountLib.sol +47 -0
  355. package/contracts/interfaces/IPActionInfoStatic.sol +7 -8
  356. package/contracts/interfaces/IPActionMarketAuxStatic.sol +14 -21
  357. package/contracts/interfaces/IPActionMarketCoreStatic.sol +67 -70
  358. package/contracts/interfaces/IPActionMintRedeemStatic.sol +11 -23
  359. package/contracts/interfaces/IPRouterStatic.sol +1 -5
  360. package/contracts/interfaces/IStandardizedYield.sol +10 -15
  361. package/contracts/interfaces/TradingBot/IBotDecisionHelper.sol +57 -0
  362. package/contracts/interfaces/TradingBot/ILongYieldDecisionHelper.sol +8 -0
  363. package/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol +51 -0
  364. package/contracts/interfaces/TradingBot/IShortYieldDecisionHelper.sol +7 -0
  365. package/contracts/interfaces/TradingBot/IShortYieldTradingBot.sol +27 -0
  366. package/contracts/interfaces/TradingBot/ITradingBotBase.sol +63 -0
  367. package/contracts/offchain-helpers/BulkSellerOffchain.sol +8 -11
  368. package/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol +11 -14
  369. package/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol +37 -96
  370. package/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol +80 -88
  371. package/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol +14 -43
  372. package/package.json +1 -1
  373. package/typechain-types/ActionMarketAuxStatic.ts +38 -191
  374. package/typechain-types/ActionMarketCoreStatic.ts +134 -600
  375. package/typechain-types/ActionMintRedeemStatic.ts +26 -92
  376. package/typechain-types/BotActionCallback.ts +900 -0
  377. package/typechain-types/BotActionHelper.ts +950 -0
  378. package/typechain-types/BotDecisionHelper.ts +561 -0
  379. package/typechain-types/BotDecisionHelperBase.ts +484 -0
  380. package/typechain-types/BotDecisionLib.ts +335 -0
  381. package/typechain-types/CamelotV1LpHelper.ts +203 -0
  382. package/typechain-types/CamelotV1Preview.ts +431 -0
  383. package/typechain-types/IAnkrBNB.ts +150 -0
  384. package/typechain-types/IAnkrLiquidStaking.ts +253 -0
  385. package/typechain-types/IBotDecisionHelper.ts +452 -0
  386. package/typechain-types/ICamelotSY.ts +100 -0
  387. package/typechain-types/ILongYieldDecisionHelper.ts +486 -0
  388. package/typechain-types/ILongYieldTradingBot.ts +878 -0
  389. package/typechain-types/IPActionMarketAuxStatic.ts +38 -191
  390. package/typechain-types/IPActionMarketCoreStatic.ts +134 -600
  391. package/typechain-types/IPActionMintRedeemStatic.ts +26 -92
  392. package/typechain-types/IPExternalRewardDistributor.ts +192 -0
  393. package/typechain-types/IPMarketFactoryV2.ts +253 -0
  394. package/typechain-types/IPRouterStatic.ts +197 -888
  395. package/typechain-types/IPendlePreviewHelper.ts +147 -0
  396. package/typechain-types/IShortYieldDecisionHelper.ts +452 -0
  397. package/typechain-types/IShortYieldTradingBot.ts +770 -0
  398. package/typechain-types/ISwETH.ts +123 -0
  399. package/typechain-types/IThenaFactory.ts +245 -0
  400. package/typechain-types/IThenaGaugeV2.ts +206 -0
  401. package/typechain-types/IThenaPair.ts +579 -0
  402. package/typechain-types/IThenaRouter.ts +313 -0
  403. package/typechain-types/IThenaSY.ts +81 -0
  404. package/typechain-types/ITradingBotBase.ts +569 -0
  405. package/typechain-types/IWBETH.ts +128 -0
  406. package/typechain-types/LongYieldActionHelper.ts +900 -0
  407. package/typechain-types/LongYieldDecisionHelper.ts +601 -0
  408. package/typechain-types/LongYieldTradingBot.ts +1364 -0
  409. package/typechain-types/MarketExtLib.ts +81 -0
  410. package/typechain-types/PendleAnkrBNBSY.ts +1235 -0
  411. package/typechain-types/PendleAuraWstethAnkreth.ts +1511 -0
  412. package/typechain-types/PendleBinanceEth.ts +1229 -0
  413. package/typechain-types/PendleCamelotV1SY.ts +245 -0
  414. package/typechain-types/PendleExternalRewardDistributor.ts +546 -0
  415. package/typechain-types/PendleGaugeV2.ts +225 -0
  416. package/typechain-types/PendleMarketFactoryV2.ts +930 -0
  417. package/typechain-types/PendleMarketV2.ts +1311 -0
  418. package/typechain-types/PendleSwETH.ts +1216 -0
  419. package/typechain-types/PendleThenaSY.ts +1598 -0
  420. package/typechain-types/PendleWbEthSY.ts +1229 -0
  421. package/typechain-types/ShortYieldActionHelper.ts +856 -0
  422. package/typechain-types/ShortYieldDecisionHelper.ts +601 -0
  423. package/typechain-types/ShortYieldTradingBot.ts +1212 -0
  424. package/typechain-types/{PendleCamelotV1RouterHelper.ts → ThenaLpHelper.ts} +63 -5
  425. package/typechain-types/ThenaMath.ts +87 -0
  426. package/typechain-types/{CamelotV1PreviewHelper.ts → ThenaPreview.ts} +42 -63
  427. package/typechain-types/TradingBotBase.ts +856 -0
  428. package/typechain-types/TradingBotOffchain.ts +568 -0
  429. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1 -1
  430. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  431. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +7 -83
  432. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +23 -23
  433. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +5 -43
  434. package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -1
  435. package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
  436. package/typechain-types/factories/ActionSwapPT__factory.ts +1 -1
  437. package/typechain-types/factories/ActionSwapYT__factory.ts +1 -1
  438. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  439. package/typechain-types/factories/BotActionCallback__factory.ts +830 -0
  440. package/typechain-types/factories/BotActionHelper__factory.ts +947 -0
  441. package/typechain-types/factories/BotDecisionHelperBase__factory.ts +808 -0
  442. package/typechain-types/factories/BotDecisionHelper__factory.ts +1192 -0
  443. package/typechain-types/factories/BotDecisionLib__factory.ts +642 -0
  444. package/typechain-types/factories/Broadcaster__factory.ts +1 -1
  445. package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
  446. package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
  447. package/typechain-types/factories/BulkSeller__factory.ts +1 -1
  448. package/typechain-types/factories/CamelotV1LpHelper__factory.ts +143 -0
  449. package/typechain-types/factories/CamelotV1Preview__factory.ts +309 -0
  450. package/typechain-types/factories/Errors__factory.ts +150 -1
  451. package/typechain-types/factories/IAnkrBNB__factory.ts +74 -0
  452. package/typechain-types/factories/IAnkrLiquidStaking__factory.ts +123 -0
  453. package/typechain-types/factories/IBotDecisionHelper__factory.ts +667 -0
  454. package/typechain-types/factories/ICamelotSY__factory.ts +49 -0
  455. package/typechain-types/factories/ILongYieldDecisionHelper__factory.ts +690 -0
  456. package/typechain-types/factories/ILongYieldTradingBot__factory.ts +996 -0
  457. package/typechain-types/factories/IPActionMarketAuxStatic__factory.ts +6 -82
  458. package/typechain-types/factories/IPActionMarketCoreStatic__factory.ts +22 -22
  459. package/typechain-types/factories/IPActionMintRedeemStatic__factory.ts +4 -42
  460. package/typechain-types/factories/IPExternalRewardDistributor__factory.ts +128 -0
  461. package/typechain-types/factories/IPMarketFactoryV2__factory.ts +181 -0
  462. package/typechain-types/factories/IPRouterStatic__factory.ts +32 -146
  463. package/typechain-types/factories/IPendlePreviewHelper__factory.ts +78 -0
  464. package/typechain-types/factories/IShortYieldDecisionHelper__factory.ts +671 -0
  465. package/typechain-types/factories/IShortYieldTradingBot__factory.ts +977 -0
  466. package/typechain-types/factories/ISwETH__factory.ts +53 -0
  467. package/typechain-types/factories/IThenaFactory__factory.ts +164 -0
  468. package/typechain-types/factories/IThenaGaugeV2__factory.ts +83 -0
  469. package/typechain-types/factories/IThenaPair__factory.ts +421 -0
  470. package/typechain-types/factories/IThenaRouter__factory.ts +200 -0
  471. package/typechain-types/factories/IThenaSY__factory.ts +36 -0
  472. package/typechain-types/factories/ITradingBotBase__factory.ts +530 -0
  473. package/typechain-types/factories/IWBETH__factory.ts +51 -0
  474. package/typechain-types/factories/LongYieldActionHelper__factory.ts +834 -0
  475. package/typechain-types/factories/LongYieldDecisionHelper__factory.ts +1272 -0
  476. package/typechain-types/factories/LongYieldTradingBot__factory.ts +1637 -0
  477. package/typechain-types/factories/MarketExtLib__factory.ts +74 -0
  478. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  479. package/typechain-types/factories/PendleAnkrBNBSY__factory.ts +1100 -0
  480. package/typechain-types/factories/PendleArbitrumStakedEthSY__factory.ts +1 -1
  481. package/typechain-types/factories/PendleAuraBbAWethSwethSY__factory.ts +1 -1
  482. package/typechain-types/factories/PendleAuraWethAnkrethSYV2__factory.ts +1 -1
  483. package/typechain-types/factories/PendleAuraWethRocketEthSYV2__factory.ts +1 -1
  484. package/typechain-types/factories/PendleAuraWethStafiEthSY__factory.ts +1 -1
  485. package/typechain-types/factories/PendleAuraWethWstethSYV2__factory.ts +1 -1
  486. package/typechain-types/factories/PendleAuraWstethAnkreth__factory.ts +1244 -0
  487. package/typechain-types/factories/PendleBinanceEth__factory.ts +1052 -0
  488. package/typechain-types/factories/PendleCamelotV1SY__factory.ts +156 -9
  489. package/typechain-types/factories/PendleCamelotV1VolatileSY__factory.ts +1 -1
  490. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
  491. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
  492. package/typechain-types/factories/PendleExternalRewardDistributor__factory.ts +414 -0
  493. package/typechain-types/factories/PendleFeeDistributorV2__factory.ts +1 -1
  494. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  495. package/typechain-types/factories/PendleGDaiSY__factory.ts +1 -1
  496. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  497. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  498. package/typechain-types/factories/PendleGaugeV2__factory.ts +140 -0
  499. package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
  500. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
  501. package/typechain-types/factories/PendleLpGlpOracle__factory.ts +1 -1
  502. package/typechain-types/factories/PendleMarketFactoryV2__factory.ts +770 -0
  503. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  504. package/typechain-types/factories/PendleMarketV2__factory.ts +1290 -0
  505. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  506. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  507. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  508. package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +1 -1
  509. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  510. package/typechain-types/factories/PendlePtGlpOracle__factory.ts +1 -1
  511. package/typechain-types/factories/PendlePtOracle__factory.ts +1 -1
  512. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  513. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  514. package/typechain-types/factories/PendleRouterHelper__factory.ts +1 -1
  515. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  516. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  517. package/typechain-types/factories/PendleSfrxEthSY__factory.ts +1 -1
  518. package/typechain-types/factories/PendleStargateLPSY__factory.ts +1 -1
  519. package/typechain-types/factories/PendleSwETH__factory.ts +1022 -0
  520. package/typechain-types/factories/PendleThenaSY__factory.ts +1352 -0
  521. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  522. package/typechain-types/factories/PendleWbEthSY__factory.ts +1049 -0
  523. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  524. package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +1 -1
  525. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  526. package/typechain-types/factories/PendleYieldTokenV2__factory.ts +1 -1
  527. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  528. package/typechain-types/factories/PtAndLpToAsset__factory.ts +1 -1
  529. package/typechain-types/factories/SAPE__factory.ts +1 -1
  530. package/typechain-types/factories/ShortYieldActionHelper__factory.ts +784 -0
  531. package/typechain-types/factories/ShortYieldDecisionHelper__factory.ts +1272 -0
  532. package/typechain-types/factories/ShortYieldTradingBot__factory.ts +1445 -0
  533. package/typechain-types/factories/{PendleCamelotV1RouterHelper__factory.ts → ThenaLpHelper__factory.ts} +58 -13
  534. package/typechain-types/factories/ThenaMath__factory.ts +36 -0
  535. package/typechain-types/factories/ThenaPreview__factory.ts +319 -0
  536. package/typechain-types/factories/TradingBotBase__factory.ts +780 -0
  537. package/typechain-types/factories/TradingBotOffchain__factory.ts +1133 -0
  538. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  539. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  540. package/typechain-types/hardhat.d.ts +153 -126
  541. package/typechain-types/index.ts +36 -18
  542. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleArbitrumStakedEthSY.sol/PendleArbitrumStakedEthSY.dbg.json +0 -4
  543. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleArbitrumStakedEthSY.sol/PendleArbitrumStakedEthSY.json +0 -976
  544. package/build/artifacts/contracts/offchain-helpers/PtAndLpToAsset.sol/PtAndLpToAsset.dbg.json +0 -4
  545. package/build/artifacts/contracts/offchain-helpers/PtAndLpToAsset.sol/PtAndLpToAsset.json +0 -97
  546. package/contracts/core/StandardizedYield/implementations/PendleArbitrumStakedEthSY.sol +0 -120
  547. package/contracts/offchain-helpers/PtAndLpToAsset.sol +0 -62
  548. package/deployments/42161-markets/RETH-ARBITRUM-JUNE2024.json +0 -10
  549. package/deployments/42161-markets/WSTETH-ARBITRUM-JUNE2024.json +0 -10
  550. package/typechain-types/IPVotingEscrowSidechain.ts +0 -155
  551. package/typechain-types/PendleCamelotRewardHelper.ts +0 -347
  552. package/typechain-types/factories/CamelotV1PreviewHelper__factory.ts +0 -400
  553. package/typechain-types/factories/IPVotingEscrowSidechain__factory.ts +0 -112
  554. package/typechain-types/factories/PendleCamelotRewardHelper__factory.ts +0 -317
@@ -0,0 +1,97 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "../base/TradingBotBase.sol";
5
+ import "./LongYieldActionHelper.sol";
6
+ import "../../../interfaces/TradingBot/ILongYieldTradingBot.sol";
7
+ import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";
8
+
9
+ contract LongYieldTradingBot is
10
+ TradingBotBase,
11
+ LongYieldActionHelper,
12
+ ILongYieldTradingBot,
13
+ UUPSUpgradeable
14
+ {
15
+ using MarketExtLib for MarketExtState;
16
+ using Math for uint256;
17
+ using Math for int256;
18
+
19
+ constructor(
20
+ address _market,
21
+ address _router,
22
+ address _PENDLE,
23
+ address _decisionHelper
24
+ ) TradingBotBase(_market, _router, _PENDLE, _decisionHelper) {}
25
+
26
+ function _authorizeUpgrade(address) internal override onlyOwner {}
27
+
28
+ function initialize(TradingSpecs memory _specs) external initializer {
29
+ _setSpecs(_specs);
30
+ __BoringOwnable_init();
31
+ }
32
+
33
+ function addLiqKeepYt(
34
+ uint256 netSyIn,
35
+ uint256 minLpOut,
36
+ uint256 minYtOut
37
+ ) external onlyOwner returns (uint256 netLpOut, uint256 netYtOut) {
38
+ (netLpOut, netYtOut) = _addLiqKeepYt(router, netSyIn, minLpOut, minYtOut);
39
+ emit AddLiqKeepYt(netSyIn, netLpOut, netYtOut);
40
+ }
41
+
42
+ function addLiqFromYt(
43
+ AddLiqFromYtInput calldata inputParams
44
+ ) external onlyOwner returns (uint256 netPtFromSwap, uint256 netLpOut, uint256 netYtIn) {
45
+ StrategyData memory strategyData = readStrategyData();
46
+
47
+ require(
48
+ IBotDecisionHelper(decisionHelper).getCurrentBin(strategyData) ==
49
+ inputParams.currentBin,
50
+ "addLiqFromYt: bin state expired"
51
+ );
52
+ netPtFromSwap = decisionHelper.searchForBotParam(
53
+ readStrategyData(),
54
+ ActionType.AddLiqFromYt,
55
+ inputParams.targetIy,
56
+ type(uint256).max,
57
+ inputParams.botParams,
58
+ inputParams.botParams // only placeholder, value doesn't matter
59
+ );
60
+ (netLpOut, netYtIn) = _addLiqFromYt(netPtFromSwap, inputParams.minLpOut);
61
+
62
+ _updateSellBinAfterTrade();
63
+
64
+ emit AddLiqFromYt(inputParams.botParams, netYtIn, netLpOut);
65
+ }
66
+
67
+ function removeLiqToYt(
68
+ RemoveLiqToYtInput calldata inputParams
69
+ ) external onlyOwner returns (uint256 netLpRemoved, uint256 netYtOut) {
70
+ StrategyData memory strategyData = readStrategyData();
71
+
72
+ require(
73
+ IBotDecisionHelper(decisionHelper).getCurrentBin(strategyData) ==
74
+ inputParams.currentBin,
75
+ "removeLiqToYt: bin state expired"
76
+ );
77
+
78
+ netLpRemoved = decisionHelper.searchForBotParam(
79
+ strategyData,
80
+ ActionType.RemoveLiqToYt,
81
+ inputParams.targetIy,
82
+ type(uint256).max,
83
+ inputParams.botParams,
84
+ inputParams.guessTotalPtToSwap // value DOES matter
85
+ );
86
+
87
+ (netYtOut, ) = _removeLiqToYt(
88
+ netLpRemoved,
89
+ inputParams.guessTotalPtToSwap,
90
+ inputParams.minYtOut
91
+ );
92
+
93
+ _updateSellBinAfterTrade();
94
+
95
+ emit RemoveLiqToYt(inputParams.botParams, netLpRemoved, netYtOut);
96
+ }
97
+ }
@@ -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
+
@@ -0,0 +1,54 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "../base/TradingBotBase.sol";
5
+
6
+ abstract contract ShortYieldActionHelper is TradingBotBase {
7
+ using PYIndexLib for IPYieldToken;
8
+ using PYIndexLib for PYIndex;
9
+ using MarketMathCore for MarketState;
10
+ using MarketApproxPtInLib for MarketState;
11
+ using Math for int256;
12
+
13
+ bytes internal constant EMPTY_BYTES = abi.encode();
14
+
15
+ function _mintPY(
16
+ uint256 netSyIn,
17
+ uint256 minPyOut
18
+ ) internal returns (uint256 netPyOut) {
19
+ return IPAllAction(router).mintPyFromSy(
20
+ address(this),
21
+ YT,
22
+ netSyIn,
23
+ minPyOut
24
+ );
25
+ }
26
+
27
+ function _swapPtForYt(
28
+ uint256 netPtToSwap,
29
+ ApproxParams memory guessTotalPtToSwap,
30
+ uint256 minYtOut
31
+ ) internal returns (uint256 netYtOut) {
32
+ (netYtOut, ) = IPAllAction(router).swapExactPtForYt(
33
+ address(this),
34
+ market,
35
+ netPtToSwap,
36
+ minYtOut,
37
+ guessTotalPtToSwap
38
+ );
39
+ }
40
+
41
+ function _swapYtForPt(
42
+ uint256 netYtToSwap,
43
+ ApproxParams memory guessTotalYtToSwap,
44
+ uint256 minPtOut
45
+ ) internal returns (uint256 netPtOut) {
46
+ (netPtOut, ) = IPAllAction(router).swapExactYtForPt(
47
+ address(this),
48
+ market,
49
+ netYtToSwap,
50
+ minPtOut,
51
+ guessTotalYtToSwap
52
+ );
53
+ }
54
+ }
@@ -0,0 +1,198 @@
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 "../base/BotDecisionHelperBase.sol";
8
+ import "../../../interfaces/TradingBot/IShortYieldDecisionHelper.sol";
9
+ import "../../../interfaces/TradingBot/IShortYieldTradingBot.sol";
10
+
11
+ contract ShortYieldDecisionHelper is BotDecisionHelperBase, IShortYieldDecisionHelper {
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
+ // We dont care about AddLiqKeepYt here
24
+ function getActionDetails(address botAddress) public returns (ActionToTakeResult memory res) {
25
+ StrategyData memory strategyData = IShortYieldTradingBot(botAddress).readStrategyData();
26
+ uint256 iy = strategyData.marketExt.impliedYield();
27
+
28
+ res.currentBin = _getCurrentBin(strategyData.botState, strategyData.specs, iy);
29
+ if (res.currentBin == 0) {
30
+ res.action = ActionType.NONE;
31
+ return res;
32
+ }
33
+ res.targetIy = _getTargetImpliedYieldForBin(
34
+ strategyData.botState,
35
+ strategyData.specs,
36
+ res.currentBin
37
+ );
38
+
39
+ uint256 maxAmountForAction = INF;
40
+
41
+ if (res.currentBin < 0) {
42
+ res.action = ActionType.SwapPtForYt;
43
+ uint256 maxPtToSwap = _searchMaxPtToSwap(strategyData);
44
+ maxAmountForAction = _calcMaxAmountForAction(
45
+ maxPtToSwap,
46
+ res.currentBin,
47
+ strategyData.botState.buyBins,
48
+ strategyData.specs.numOfBins
49
+ );
50
+ } else {
51
+ res.action = ActionType.SwapYtForPt;
52
+ maxAmountForAction = _calcMaxAmountForAction(
53
+ strategyData.botState.ytBalance,
54
+ res.currentBin,
55
+ strategyData.botState.buyBins,
56
+ strategyData.specs.numOfBins
57
+ );
58
+ }
59
+
60
+ if (maxAmountForAction == 0) {
61
+ return res;
62
+ }
63
+
64
+ res.guessBotParams = searchForBotParam(
65
+ strategyData,
66
+ res.action,
67
+ res.targetIy,
68
+ 0,
69
+ _getMockApproxParamsWithGuessMax(maxAmountForAction),
70
+ _getMockApproxParams()
71
+ );
72
+ (res.amountOut, res.guessIntParams) = _calcAmountOutAndIntParams(
73
+ strategyData.marketExt,
74
+ res.action,
75
+ res.guessBotParams
76
+ );
77
+ }
78
+
79
+ /**
80
+ * Given the rebalancing action and its `botParam`, binary search for the optimal internal
81
+ * parameter `intParam` for the internal action's approximation (e.g. for router's swap)
82
+ */
83
+ function _calcAmountOutAndIntParams(
84
+ MarketExtState memory marketExt,
85
+ ActionType action,
86
+ uint256 botParam
87
+ ) public pure returns (uint256 amountOut, uint256 intParams) {
88
+ if (action == ActionType.SwapPtForYt) {
89
+ (amountOut, intParams) = marketExt.clone().swapPtToYt(
90
+ botParam,
91
+ _getMockApproxParams()
92
+ );
93
+ } else {
94
+ (amountOut, intParams) = marketExt.clone().swapYtToPt(
95
+ botParam,
96
+ _getMockApproxParams()
97
+ );
98
+ }
99
+ }
100
+
101
+ function _searchMaxPtToSwap(StrategyData memory strategyData) internal pure returns (uint256) {
102
+ (, , , uint256 ytPtRatio) = _calcBotExtStats(
103
+ strategyData.botState,
104
+ strategyData.marketExt
105
+ );
106
+ if (ytPtRatio > strategyData.specs.targetYtPtRatio) {
107
+ return 0;
108
+ }
109
+
110
+ ApproxParams memory guessParams = _getMockApproxParamsWithGuessMax(
111
+ strategyData.botState.ptBalance
112
+ );
113
+ ApproxParams memory mockSwapParams = _getMockApproxParams();
114
+ while (guessParams.guessMax > guessParams.guessMin + 1) {
115
+ uint256 guess = guessParams.guessMin +
116
+ (guessParams.guessMax - guessParams.guessMin) /
117
+ 2;
118
+
119
+ (
120
+ bool success,
121
+ BotState memory botStateAfter,
122
+ MarketExtState memory marketExtAfter
123
+ ) = previewAction(strategyData, ActionType.SwapPtForYt, guess, mockSwapParams);
124
+
125
+ if (!success) {
126
+ guessParams.guessMax = guess - 1;
127
+ continue;
128
+ }
129
+
130
+ (, , , uint256 ytPtRatioAfter) = _calcBotExtStats(botStateAfter, marketExtAfter);
131
+ if (ytPtRatioAfter <= strategyData.specs.targetYtPtRatio) {
132
+ guessParams.guessMin = guess;
133
+ } else {
134
+ guessParams.guessMax = guess - 1;
135
+ }
136
+ }
137
+ return guessParams.guessMin;
138
+ }
139
+
140
+ /// @dev Does not modify params, structs are cloned before simulation
141
+ function previewAction(
142
+ StrategyData memory strategyData,
143
+ ActionType action,
144
+ uint256 botParam,
145
+ ApproxParams memory intParams
146
+ ) public pure returns (bool success, BotState memory bot, MarketExtState memory marketExt) {
147
+ bot = strategyData.botState.clone();
148
+ marketExt = strategyData.marketExt.clone();
149
+
150
+ if (action == ActionType.SwapPtForYt) {
151
+ success = bot.swapPtToYt(marketExt, botParam, intParams);
152
+ } else if (action == ActionType.SwapYtForPt) {
153
+ success = bot.swapYtToPt(marketExt, botParam, intParams);
154
+ } else {
155
+ success = false;
156
+ }
157
+ }
158
+
159
+ /// @dev Gives a weak upper bound so that MarketExtLib's simulation doesn't revert
160
+ function _weakUpperBound(
161
+ BotState memory bot,
162
+ MarketExtState memory,
163
+ ActionType action
164
+ ) internal pure override returns (uint256) {
165
+ if (action == ActionType.SwapPtForYt) {
166
+ return bot.ptBalance;
167
+ } else {
168
+ return bot.ytBalance;
169
+ }
170
+ }
171
+
172
+ function _rebalanceResult(
173
+ RebalanceDetails memory rebalance,
174
+ uint256 botParam,
175
+ uint256,
176
+ uint256 eps,
177
+ ApproxParams memory intParams
178
+ ) internal pure override returns (RebalanceResult) {
179
+ (bool success, , MarketExtState memory marketExt) = previewAction(
180
+ rebalance.strategyData,
181
+ rebalance.action,
182
+ botParam,
183
+ intParams
184
+ );
185
+
186
+ if (!success) return RebalanceResult.FAIL_OR_TARGET_EXCEED;
187
+
188
+ uint256 iy = marketExt.impliedYield();
189
+ if (rebalance.action == ActionType.SwapPtForYt) {
190
+ if (iy > rebalance.targetIy) return RebalanceResult.FAIL_OR_TARGET_EXCEED;
191
+ } else {
192
+ if (iy < rebalance.targetIy) return RebalanceResult.FAIL_OR_TARGET_EXCEED;
193
+ }
194
+
195
+ if (Math.isAApproxB(iy, rebalance.targetIy, eps)) return RebalanceResult.SUCCESS;
196
+ else return RebalanceResult.TARGET_NOT_REACHED;
197
+ }
198
+ }
@@ -0,0 +1,101 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "../base/TradingBotBase.sol";
5
+ import "./ShortYieldActionHelper.sol";
6
+ import "../../../interfaces/TradingBot/IShortYieldTradingBot.sol";
7
+ import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";
8
+
9
+ contract ShortYieldTradingBot is
10
+ TradingBotBase,
11
+ ShortYieldActionHelper,
12
+ IShortYieldTradingBot,
13
+ UUPSUpgradeable
14
+ {
15
+ using MarketExtLib for MarketExtState;
16
+ using Math for uint256;
17
+ using Math for int256;
18
+
19
+ constructor(
20
+ address _market,
21
+ address _router,
22
+ address _PENDLE,
23
+ address _decisionHelper
24
+ ) TradingBotBase(_market, _router, _PENDLE, _decisionHelper) {}
25
+
26
+ function _authorizeUpgrade(address) internal override onlyOwner {}
27
+
28
+ function initialize(TradingSpecs memory _specs) external initializer {
29
+ _setSpecs(_specs);
30
+ __BoringOwnable_init();
31
+ }
32
+
33
+ function mintPY(
34
+ uint256 netSyIn,
35
+ uint256 minPyOut
36
+ ) external onlyOwner returns (uint256 netPyOut) {
37
+ netPyOut = _mintPY(netSyIn, minPyOut);
38
+ emit MintPy(netSyIn, minPyOut);
39
+ }
40
+
41
+ function swapPtForYt(
42
+ SwapInput calldata inputParams
43
+ ) external onlyOwner returns (uint256 netYtOut) {
44
+ StrategyData memory strategyData = readStrategyData();
45
+
46
+ require(
47
+ IBotDecisionHelper(decisionHelper).getCurrentBin(strategyData) ==
48
+ inputParams.currentBin,
49
+ "removeLiqToYt: bin state expired"
50
+ );
51
+
52
+ uint256 netPtToSwap = decisionHelper.searchForBotParam(
53
+ strategyData,
54
+ ActionType.SwapPtForYt,
55
+ inputParams.targetIy,
56
+ type(uint256).max,
57
+ inputParams.botParams,
58
+ inputParams.guessTotalPtToSwap
59
+ );
60
+
61
+ netYtOut = _swapPtForYt(
62
+ netPtToSwap,
63
+ inputParams.guessTotalPtToSwap,
64
+ inputParams.minAmountOut
65
+ );
66
+
67
+ _updateSellBinAfterTrade();
68
+
69
+ emit SwapPtForYt(inputParams, netYtOut);
70
+ }
71
+
72
+ function swapYtForPt(
73
+ SwapInput calldata inputParams
74
+ ) external onlyOwner returns (uint256 netPtOut) {
75
+ StrategyData memory strategyData = readStrategyData();
76
+
77
+ require(
78
+ IBotDecisionHelper(decisionHelper).getCurrentBin(strategyData) ==
79
+ inputParams.currentBin,
80
+ "removeLiqToYt: bin state expired"
81
+ );
82
+
83
+ uint256 netYtToSwap = decisionHelper.searchForBotParam(
84
+ strategyData,
85
+ ActionType.SwapYtForPt,
86
+ inputParams.targetIy,
87
+ type(uint256).max,
88
+ inputParams.botParams,
89
+ inputParams.guessTotalPtToSwap
90
+ );
91
+
92
+ netPtOut = _swapYtForPt(
93
+ netYtToSwap,
94
+ inputParams.guessTotalPtToSwap,
95
+ inputParams.minAmountOut
96
+ );
97
+
98
+ _updateSellBinAfterTrade();
99
+ emit SwapYtForPt(inputParams, netPtOut);
100
+ }
101
+ }