@pendle/core-v2 2.18.1 → 2.19.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 (497) 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/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  11. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  12. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  13. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  14. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
  15. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.dbg.json +1 -1
  16. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.json +2 -2
  17. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  18. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  19. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  20. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  21. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  22. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  23. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
  24. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  25. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  26. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  27. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  28. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  29. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  30. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  31. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  32. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +2 -2
  33. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +2 -2
  35. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +2 -2
  37. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  39. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  41. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  44. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  46. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.json +2 -2
  50. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  53. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +2 -2
  54. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.dbg.json +4 -0
  55. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.json +1189 -0
  56. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.dbg.json +1 -1
  57. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.json +2 -2
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.dbg.json +1 -1
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.json +2 -2
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.dbg.json +1 -1
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.json +2 -2
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.json +2 -2
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.dbg.json +4 -0
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.json +10 -0
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.dbg.json +4 -0
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.json +322 -0
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAPoolHelper.dbg.json +4 -0
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/{Thena/ThenaPreview.sol/IThenaSY.json → BalancerStable/base/Linear/BbAPoolHelper.sol/BbAPoolHelper.json} +4 -4
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAWethHelper.dbg.json +4 -0
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/{CamelotV1Volatile/CamelotV1Preview.sol/ICamelotSY.json → BalancerStable/base/Linear/BbAPoolHelper.sol/BbAWethHelper.json} +4 -17
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearMath.sol/LinearMath.dbg.json +4 -0
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearMath.sol/LinearMath.json +10 -0
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearPreview.sol/LinearPreview.dbg.json +4 -0
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearPreview.sol/LinearPreview.json +234 -0
  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/MetaStable/MetaStablePreview.sol/MetaStablePreview.json +2 -2
  78. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSYV2.sol/PendleAuraBalancerStableLPSYV2.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/CamelotRewardHelper.sol/CamelotRewardHelper.json +2 -28
  86. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileCommon.sol/CamelotV1VolatileCommon.dbg.json +4 -0
  87. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileCommon.sol/CamelotV1VolatileCommon.json +10 -0
  88. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileLpHelper.sol/CamelotV1VolatileLpHelper.dbg.json +4 -0
  89. package/build/artifacts/contracts/core/StandardizedYield/implementations/{Thena/ThenaLpHelper.sol/ThenaLpHelper.json → CamelotV1Volatile/CamelotV1VolatileLpHelper.sol/CamelotV1VolatileLpHelper.json} +2 -54
  90. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatilePreview.sol/CamelotV1VolatilePreview.dbg.json +4 -0
  91. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatilePreview.sol/CamelotV1VolatilePreview.json +338 -0
  92. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.dbg.json +4 -0
  93. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.json +1433 -0
  94. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  95. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +2 -2
  96. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  97. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +2 -2
  98. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +1 -1
  99. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.json +2 -2
  100. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +1 -1
  101. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.json +2 -2
  102. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +1 -1
  103. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.json +2 -2
  104. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  105. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
  106. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +2 -2
  107. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
  108. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.json +2 -2
  109. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  110. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
  111. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.dbg.json +1 -1
  112. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.json +2 -2
  113. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.dbg.json +1 -1
  114. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.json +2 -2
  115. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  116. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  117. package/build/artifacts/contracts/core/TradingBot/LongYield/LongYieldDecisionHelper.sol/LongYieldDecisionHelper.dbg.json +4 -0
  118. package/build/artifacts/contracts/core/TradingBot/LongYield/LongYieldDecisionHelper.sol/LongYieldDecisionHelper.json +1215 -0
  119. package/build/artifacts/contracts/core/TradingBot/LongYield/LongYieldTradingBot.sol/LongYieldTradingBot.dbg.json +4 -0
  120. package/build/artifacts/contracts/core/TradingBot/LongYield/LongYieldTradingBot.sol/LongYieldTradingBot.json +1681 -0
  121. package/build/artifacts/contracts/core/TradingBot/ShortYield/ShortYieldDecisionHelper.sol/ShortYieldDecisionHelper.dbg.json +4 -0
  122. package/build/artifacts/contracts/core/TradingBot/ShortYield/ShortYieldDecisionHelper.sol/ShortYieldDecisionHelper.json +1215 -0
  123. package/build/artifacts/contracts/core/TradingBot/ShortYield/ShortYieldTradingBot.sol/ShortYieldTradingBot.dbg.json +4 -0
  124. package/build/artifacts/contracts/core/TradingBot/ShortYield/ShortYieldTradingBot.sol/ShortYieldTradingBot.json +1535 -0
  125. package/build/artifacts/contracts/core/TradingBot/base/BotActionCallback.sol/BotActionCallback.dbg.json +4 -0
  126. package/build/artifacts/contracts/core/TradingBot/base/BotActionCallback.sol/BotActionCallback.json +932 -0
  127. package/build/artifacts/contracts/core/TradingBot/base/BotActionHelper.sol/BotActionHelper.dbg.json +4 -0
  128. package/build/artifacts/contracts/core/TradingBot/base/BotActionHelper.sol/BotActionHelper.json +932 -0
  129. package/build/artifacts/contracts/core/TradingBot/base/BotDecisionHelperBase.sol/BotDecisionHelperBase.dbg.json +4 -0
  130. package/build/artifacts/contracts/core/TradingBot/base/BotDecisionHelperBase.sol/BotDecisionHelperBase.json +789 -0
  131. package/build/artifacts/contracts/core/TradingBot/base/TradingBotBase.sol/TradingBotBase.dbg.json +4 -0
  132. package/build/artifacts/contracts/core/TradingBot/base/TradingBotBase.sol/TradingBotBase.json +882 -0
  133. package/build/artifacts/contracts/core/TradingBot/libraries/BotSimulationLib.sol/BotSimulationLib.dbg.json +4 -0
  134. package/build/artifacts/contracts/core/TradingBot/libraries/BotSimulationLib.sol/BotSimulationLib.json +10 -0
  135. package/build/artifacts/contracts/core/TradingBot/libraries/MarketExtLib.sol/MarketExtLib.dbg.json +4 -0
  136. package/build/artifacts/contracts/core/TradingBot/libraries/MarketExtLib.sol/MarketExtLib.json +24 -0
  137. package/build/artifacts/contracts/core/TradingBot/libraries/SpecSegmentLib.sol/SpecSegmentLib.dbg.json +4 -0
  138. package/build/artifacts/contracts/core/TradingBot/libraries/SpecSegmentLib.sol/SpecSegmentLib.json +10 -0
  139. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  140. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  141. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  142. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  143. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  144. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  145. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  146. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +1 -1
  147. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +1 -1
  148. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +2 -2
  149. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +1 -1
  150. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +2 -2
  151. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +1 -1
  152. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +2 -2
  153. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  154. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  155. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +151 -2
  156. package/build/artifacts/contracts/core/libraries/TokenAmountLib.sol/TokenAmountLib.dbg.json +4 -0
  157. package/build/artifacts/contracts/core/libraries/TokenAmountLib.sol/TokenAmountLib.json +10 -0
  158. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.dbg.json +1 -1
  159. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.json +2 -2
  160. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +1 -1
  161. package/build/artifacts/contracts/interfaces/Balancer/IERC4626LinearPool.sol/IERC4626LinearPool.dbg.json +4 -0
  162. package/build/artifacts/contracts/interfaces/Balancer/IERC4626LinearPool.sol/IERC4626LinearPool.json +1172 -0
  163. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +1 -1
  164. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTPool.sol/ICamelotNFTPool.dbg.json +1 -1
  165. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTPool.sol/ICamelotNFTPool.json +0 -13
  166. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNitroPool.sol/ICamelotNitroPool.dbg.json +1 -1
  167. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNitroPool.sol/ICamelotNitroPool.json +0 -13
  168. package/build/artifacts/contracts/interfaces/Camelot/ICamelotPair.sol/ICamelotPair.dbg.json +1 -1
  169. package/build/artifacts/contracts/interfaces/Camelot/ICamelotPair.sol/ICamelotPair.json +0 -26
  170. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  171. package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +1 -1
  172. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  173. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
  174. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  175. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +1 -1
  176. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  177. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  178. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  179. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  180. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  181. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
  182. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  183. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +1 -1
  184. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  185. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  186. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  187. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  188. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  189. package/build/artifacts/contracts/interfaces/TradingBot/IBotDecisionHelper.sol/IBotDecisionHelper.dbg.json +4 -0
  190. package/build/artifacts/contracts/interfaces/TradingBot/IBotDecisionHelper.sol/IBotDecisionHelper.json +652 -0
  191. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldDecisionHelper.sol/ILongYieldDecisionHelper.dbg.json +4 -0
  192. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldDecisionHelper.sol/ILongYieldDecisionHelper.json +671 -0
  193. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.dbg.json +4 -0
  194. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.json +1094 -0
  195. package/build/artifacts/contracts/interfaces/TradingBot/IShortYieldDecisionHelper.sol/IShortYieldDecisionHelper.dbg.json +4 -0
  196. package/build/artifacts/contracts/interfaces/TradingBot/IShortYieldDecisionHelper.sol/IShortYieldDecisionHelper.json +652 -0
  197. package/build/artifacts/contracts/interfaces/TradingBot/IShortYieldTradingBot.sol/IShortYieldTradingBot.dbg.json +4 -0
  198. package/build/artifacts/contracts/interfaces/TradingBot/IShortYieldTradingBot.sol/IShortYieldTradingBot.json +1075 -0
  199. package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.dbg.json +4 -0
  200. package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.json +632 -0
  201. package/build/artifacts/contracts/offchain-helpers/BoringLpSeller.sol/BoringLpSeller.dbg.json +4 -0
  202. package/build/artifacts/contracts/{core/StandardizedYield/implementations/Thena/ThenaMath.sol/ThenaMath.json → offchain-helpers/BoringLpSeller.sol/BoringLpSeller.json} +2 -2
  203. package/build/artifacts/contracts/offchain-helpers/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
  204. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
  205. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +2 -2
  206. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  207. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
  208. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.dbg.json +4 -0
  209. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.json +10 -0
  210. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  211. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  212. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  213. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  214. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  215. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
  216. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  217. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -2
  218. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  219. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
  220. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  221. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -2
  222. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  223. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  224. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  225. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +4 -0
  226. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.json +10 -0
  227. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.dbg.json +1 -1
  228. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.json +2 -2
  229. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.dbg.json +1 -1
  230. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.json +2 -2
  231. package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.dbg.json +4 -0
  232. package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.json +166 -0
  233. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.dbg.json +1 -1
  234. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.json +2 -2
  235. package/build/artifacts/contracts/oracles/samples/PendlePtUsdChainlinkOracle.sol/PendlePtUsdChainlinkOracle.dbg.json +1 -1
  236. package/build/artifacts/contracts/oracles/samples/PendlePtUsdChainlinkOracle.sol/PendlePtUsdChainlinkOracle.json +2 -2
  237. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  238. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +2 -2
  239. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  240. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +2 -2
  241. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  242. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +2 -2
  243. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  244. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +2 -2
  245. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  246. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
  247. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +1 -1
  248. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.json +2 -2
  249. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
  250. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  251. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  252. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  253. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  254. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  255. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  256. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +4 -0
  257. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.json +60 -0
  258. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +4 -0
  259. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{ethereum/IAggregationExecutor.sol → IAggregationExecutor.sol}/IAggregationExecutor.json +1 -1
  260. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IExecutorHelper.sol/IExecutorHelper.dbg.json +4 -0
  261. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{arbitrum/IExecutorHelper1.sol/IExecutorHelper1.json → IExecutorHelper.sol/IExecutorHelper.json} +147 -2
  262. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IHashflow.sol/IHashflow.dbg.json +4 -0
  263. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{ethereum/IHashflow.sol → IHashflow.sol}/IHashflow.json +1 -1
  264. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +4 -0
  265. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{arbitrum/IMetaAggregationRouterV2.sol → IMetaAggregationRouterV2.sol}/IMetaAggregationRouterV2.json +1 -1
  266. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberInputScalingHelper.sol/KyberInputScalingHelper.dbg.json +4 -0
  267. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{arbitrum/KyberHelperArbitrum.sol/KyberHelperArbitrum.json → KyberInputScalingHelper.sol/KyberInputScalingHelper.json} +2 -2
  268. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScalingDataLib.sol/ScalingDataLib.dbg.json +4 -0
  269. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScalingDataLib.sol/ScalingDataLib.json +10 -0
  270. package/contracts/core/TradingBot/LongYield/LongYieldDecisionHelper.sol +216 -0
  271. package/contracts/core/TradingBot/LongYield/LongYieldTradingBot.sol +97 -0
  272. package/contracts/core/TradingBot/README.md +153 -0
  273. package/contracts/core/TradingBot/ShortYield/ShortYieldDecisionHelper.sol +198 -0
  274. package/contracts/core/TradingBot/ShortYield/ShortYieldTradingBot.sol +101 -0
  275. package/contracts/core/TradingBot/base/BotActionCallback.sol +112 -0
  276. package/contracts/core/TradingBot/base/BotActionHelper.sol +178 -0
  277. package/contracts/core/TradingBot/base/BotDecisionHelperBase.sol +235 -0
  278. package/contracts/core/TradingBot/base/TradingBotBase.sol +184 -0
  279. package/contracts/core/TradingBot/libraries/BotSimulationLib.sol +155 -0
  280. package/contracts/core/TradingBot/libraries/MarketExtLib.sol +310 -0
  281. package/contracts/core/TradingBot/libraries/SpecSegmentLib.sol +62 -0
  282. package/contracts/core/libraries/Errors.sol +12 -0
  283. package/contracts/core/libraries/TokenAmountLib.sol +47 -0
  284. package/contracts/interfaces/IStandardizedYield.sol +10 -15
  285. package/contracts/interfaces/TradingBot/IBotDecisionHelper.sol +57 -0
  286. package/contracts/interfaces/TradingBot/ILongYieldDecisionHelper.sol +8 -0
  287. package/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol +51 -0
  288. package/contracts/interfaces/TradingBot/IShortYieldDecisionHelper.sol +7 -0
  289. package/contracts/interfaces/TradingBot/IShortYieldTradingBot.sol +27 -0
  290. package/contracts/interfaces/TradingBot/ITradingBotBase.sol +67 -0
  291. package/contracts/offchain-helpers/BoringLpSeller.sol +47 -0
  292. package/contracts/oracles/samples/PendleLpGlpOracle.sol +49 -0
  293. package/package.json +1 -1
  294. package/typechain-types/BotActionCallback.ts +950 -0
  295. package/typechain-types/BotActionHelper.ts +950 -0
  296. package/typechain-types/BotDecisionHelper.ts +561 -0
  297. package/typechain-types/BotDecisionHelperBase.ts +484 -0
  298. package/typechain-types/BotDecisionLib.ts +335 -0
  299. package/typechain-types/CamelotRewardHelper.ts +0 -60
  300. package/typechain-types/IAnkrBNB.ts +150 -0
  301. package/typechain-types/IAnkrLiquidStaking.ts +253 -0
  302. package/typechain-types/IBotDecisionHelper.ts +452 -0
  303. package/typechain-types/ICamelotNFTPool.ts +0 -19
  304. package/typechain-types/ICamelotNitroPool.ts +0 -19
  305. package/typechain-types/ICamelotPair.ts +0 -42
  306. package/typechain-types/ILongYieldDecisionHelper.ts +486 -0
  307. package/typechain-types/ILongYieldTradingBot.ts +928 -0
  308. package/typechain-types/IPExternalRewardDistributor.ts +192 -0
  309. package/typechain-types/IPMarketFactoryV2.ts +253 -0
  310. package/typechain-types/IShortYieldDecisionHelper.ts +452 -0
  311. package/typechain-types/IShortYieldTradingBot.ts +820 -0
  312. package/typechain-types/ISwETH.ts +123 -0
  313. package/typechain-types/ITradingBotBase.ts +619 -0
  314. package/typechain-types/IWBETH.ts +128 -0
  315. package/typechain-types/LongYieldDecisionHelper.ts +601 -0
  316. package/typechain-types/LongYieldTradingBot.ts +1414 -0
  317. package/typechain-types/MarketExtLib.ts +81 -0
  318. package/typechain-types/PendleAnkrBNBSY.ts +1235 -0
  319. package/typechain-types/PendleAuraWstethAnkreth.ts +1511 -0
  320. package/typechain-types/PendleBinanceEth.ts +1229 -0
  321. package/typechain-types/PendleExternalRewardDistributor.ts +546 -0
  322. package/typechain-types/PendleGaugeV2.ts +225 -0
  323. package/typechain-types/PendleLpGlpOracle.ts +145 -0
  324. package/typechain-types/PendleMarketFactoryV2.ts +930 -0
  325. package/typechain-types/PendleMarketV2.ts +1311 -0
  326. package/typechain-types/PendleSwETH.ts +1216 -0
  327. package/typechain-types/PendleThenaSY.ts +153 -0
  328. package/typechain-types/PendleWbEthSY.ts +1229 -0
  329. package/typechain-types/PtAndLpToAsset.ts +136 -0
  330. package/typechain-types/ShortYieldDecisionHelper.ts +601 -0
  331. package/typechain-types/ShortYieldTradingBot.ts +1306 -0
  332. package/typechain-types/ThenaLpHelper.ts +19 -0
  333. package/typechain-types/ThenaMath.ts +87 -0
  334. package/typechain-types/ThenaPreview.ts +19 -0
  335. package/typechain-types/TradingBotBase.ts +906 -0
  336. package/typechain-types/TradingBotOffchain.ts +568 -0
  337. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1 -1
  338. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  339. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
  340. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -1
  341. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
  342. package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -1
  343. package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
  344. package/typechain-types/factories/ActionSwapPT__factory.ts +1 -1
  345. package/typechain-types/factories/ActionSwapYT__factory.ts +1 -1
  346. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  347. package/typechain-types/factories/BotActionCallback__factory.ts +947 -0
  348. package/typechain-types/factories/BotActionHelper__factory.ts +947 -0
  349. package/typechain-types/factories/BotDecisionHelperBase__factory.ts +808 -0
  350. package/typechain-types/factories/BotDecisionHelper__factory.ts +1192 -0
  351. package/typechain-types/factories/BotDecisionLib__factory.ts +642 -0
  352. package/typechain-types/factories/Broadcaster__factory.ts +1 -1
  353. package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
  354. package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
  355. package/typechain-types/factories/BulkSeller__factory.ts +1 -1
  356. package/typechain-types/factories/CamelotRewardHelper__factory.ts +1 -27
  357. package/typechain-types/factories/Errors__factory.ts +150 -1
  358. package/typechain-types/factories/IAnkrBNB__factory.ts +74 -0
  359. package/typechain-types/factories/IAnkrLiquidStaking__factory.ts +123 -0
  360. package/typechain-types/factories/IBotDecisionHelper__factory.ts +667 -0
  361. package/typechain-types/factories/ICamelotNFTPool__factory.ts +0 -13
  362. package/typechain-types/factories/ICamelotNitroPool__factory.ts +0 -13
  363. package/typechain-types/factories/ICamelotPair__factory.ts +0 -26
  364. package/typechain-types/factories/ILongYieldDecisionHelper__factory.ts +690 -0
  365. package/typechain-types/factories/ILongYieldTradingBot__factory.ts +1113 -0
  366. package/typechain-types/factories/IPExternalRewardDistributor__factory.ts +128 -0
  367. package/typechain-types/factories/IPMarketFactoryV2__factory.ts +181 -0
  368. package/typechain-types/factories/IShortYieldDecisionHelper__factory.ts +671 -0
  369. package/typechain-types/factories/IShortYieldTradingBot__factory.ts +1094 -0
  370. package/typechain-types/factories/ISwETH__factory.ts +53 -0
  371. package/typechain-types/factories/ITradingBotBase__factory.ts +647 -0
  372. package/typechain-types/factories/IWBETH__factory.ts +51 -0
  373. package/typechain-types/factories/LongYieldDecisionHelper__factory.ts +1272 -0
  374. package/typechain-types/factories/LongYieldTradingBot__factory.ts +1754 -0
  375. package/typechain-types/factories/MarketExtLib__factory.ts +74 -0
  376. package/typechain-types/factories/MetaStablePreview__factory.ts +1 -1
  377. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  378. package/typechain-types/factories/PendleAnkrBNBSY__factory.ts +1100 -0
  379. package/typechain-types/factories/PendleArbitrumStakedEthSY__factory.ts +27 -2
  380. package/typechain-types/factories/PendleAuraBbAWethSwethSY__factory.ts +1 -1
  381. package/typechain-types/factories/PendleAuraWethAnkrethSYV2__factory.ts +1 -1
  382. package/typechain-types/factories/PendleAuraWethRocketEthSYV2__factory.ts +1 -1
  383. package/typechain-types/factories/PendleAuraWethStafiEthSY__factory.ts +1 -1
  384. package/typechain-types/factories/PendleAuraWethWstethSYV2__factory.ts +1 -1
  385. package/typechain-types/factories/PendleAuraWstethAnkreth__factory.ts +1244 -0
  386. package/typechain-types/factories/PendleBinanceEth__factory.ts +1052 -0
  387. package/typechain-types/factories/PendleCamelotV1VolatileSY__factory.ts +1 -1
  388. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
  389. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
  390. package/typechain-types/factories/PendleExternalRewardDistributor__factory.ts +414 -0
  391. package/typechain-types/factories/PendleFeeDistributorV2__factory.ts +1 -1
  392. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  393. package/typechain-types/factories/PendleGDaiSY__factory.ts +1 -1
  394. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  395. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  396. package/typechain-types/factories/PendleGaugeV2__factory.ts +140 -0
  397. package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
  398. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
  399. package/typechain-types/factories/PendleLpGlpOracle__factory.ts +246 -0
  400. package/typechain-types/factories/PendleMarketFactoryV2__factory.ts +770 -0
  401. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  402. package/typechain-types/factories/PendleMarketV2__factory.ts +1290 -0
  403. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  404. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  405. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  406. package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +1 -1
  407. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  408. package/typechain-types/factories/PendlePtGlpOracle__factory.ts +1 -1
  409. package/typechain-types/factories/PendlePtOracle__factory.ts +1 -1
  410. package/typechain-types/factories/PendlePtUsdChainlinkOracle__factory.ts +1 -1
  411. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  412. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  413. package/typechain-types/factories/PendleRouterHelper__factory.ts +1 -1
  414. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  415. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  416. package/typechain-types/factories/PendleSfrxEthSY__factory.ts +1 -1
  417. package/typechain-types/factories/PendleStargateLPSY__factory.ts +1 -1
  418. package/typechain-types/factories/PendleSwETH__factory.ts +1022 -0
  419. package/typechain-types/factories/PendleThenaSY__factory.ts +85 -1
  420. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  421. package/typechain-types/factories/PendleWbEthSY__factory.ts +1049 -0
  422. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  423. package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +1 -1
  424. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  425. package/typechain-types/factories/PendleYieldTokenV2__factory.ts +1 -1
  426. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  427. package/typechain-types/factories/PtAndLpToAsset__factory.ts +150 -0
  428. package/typechain-types/factories/SAPE__factory.ts +1 -1
  429. package/typechain-types/factories/ShortYieldDecisionHelper__factory.ts +1272 -0
  430. package/typechain-types/factories/ShortYieldTradingBot__factory.ts +1612 -0
  431. package/typechain-types/factories/ThenaLpHelper__factory.ts +13 -0
  432. package/typechain-types/factories/ThenaMath__factory.ts +36 -0
  433. package/typechain-types/factories/ThenaPreview__factory.ts +14 -1
  434. package/typechain-types/factories/TradingBotBase__factory.ts +897 -0
  435. package/typechain-types/factories/TradingBotOffchain__factory.ts +1133 -0
  436. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  437. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  438. package/typechain-types/hardhat.d.ts +112 -202
  439. package/typechain-types/index.ts +34 -42
  440. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1LpHelper.sol/CamelotV1LpHelper.dbg.json +0 -4
  441. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1LpHelper.sol/CamelotV1LpHelper.json +0 -128
  442. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1Math.sol/CamelotV1Math.dbg.json +0 -4
  443. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1Math.sol/CamelotV1Math.json +0 -10
  444. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1Preview.sol/CamelotV1Preview.dbg.json +0 -4
  445. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1Preview.sol/CamelotV1Preview.json +0 -254
  446. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1Preview.sol/ICamelotSY.dbg.json +0 -4
  447. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1SY.sol/PendleCamelotV1SY.dbg.json +0 -4
  448. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1SY.sol/PendleCamelotV1SY.json +0 -1495
  449. package/build/artifacts/contracts/core/StandardizedYield/implementations/Thena/PendleThenaSY.sol/PendleThenaSY.dbg.json +0 -4
  450. package/build/artifacts/contracts/core/StandardizedYield/implementations/Thena/PendleThenaSY.sol/PendleThenaSY.json +0 -1182
  451. package/build/artifacts/contracts/core/StandardizedYield/implementations/Thena/ThenaLpHelper.sol/ThenaLpHelper.dbg.json +0 -4
  452. package/build/artifacts/contracts/core/StandardizedYield/implementations/Thena/ThenaMath.sol/ThenaMath.dbg.json +0 -4
  453. package/build/artifacts/contracts/core/StandardizedYield/implementations/Thena/ThenaPreview.sol/IThenaSY.dbg.json +0 -4
  454. package/build/artifacts/contracts/core/StandardizedYield/implementations/Thena/ThenaPreview.sol/ThenaPreview.dbg.json +0 -4
  455. package/build/artifacts/contracts/core/StandardizedYield/implementations/Thena/ThenaPreview.sol/ThenaPreview.json +0 -254
  456. package/build/artifacts/contracts/interfaces/IPendlePreviewHelper.sol/IPendlePreviewHelper.dbg.json +0 -4
  457. package/build/artifacts/contracts/interfaces/IPendlePreviewHelper.sol/IPendlePreviewHelper.json +0 -59
  458. package/build/artifacts/contracts/interfaces/Thena/IThenaFactory.sol/IThenaFactory.dbg.json +0 -4
  459. package/build/artifacts/contracts/interfaces/Thena/IThenaFactory.sol/IThenaFactory.json +0 -152
  460. package/build/artifacts/contracts/interfaces/Thena/IThenaGaugeV2.sol/IThenaGaugeV2.dbg.json +0 -4
  461. package/build/artifacts/contracts/interfaces/Thena/IThenaGaugeV2.sol/IThenaGaugeV2.json +0 -71
  462. package/build/artifacts/contracts/interfaces/Thena/IThenaPair.sol/IThenaPair.dbg.json +0 -4
  463. package/build/artifacts/contracts/interfaces/Thena/IThenaPair.sol/IThenaPair.json +0 -409
  464. package/build/artifacts/contracts/interfaces/Thena/IThenaRouter.sol/IThenaRouter.dbg.json +0 -4
  465. package/build/artifacts/contracts/interfaces/Thena/IThenaRouter.sol/IThenaRouter.json +0 -188
  466. package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.dbg.json +0 -4
  467. package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.json +0 -160
  468. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +0 -4
  469. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.json +0 -10
  470. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapArbitrum.sol/PendleSwapArbitrum.dbg.json +0 -4
  471. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapArbitrum.sol/PendleSwapArbitrum.json +0 -76
  472. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapEthereum.sol/PendleSwapEthereum.dbg.json +0 -4
  473. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapEthereum.sol/PendleSwapEthereum.json +0 -76
  474. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +0 -4
  475. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IAggregationExecutor.sol/IAggregationExecutor.json +0 -65
  476. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper1.sol/IExecutorHelper1.dbg.json +0 -4
  477. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper2.sol/IExecutorHelper2.dbg.json +0 -4
  478. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper2.sol/IExecutorHelper2.json +0 -40
  479. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IHashflow.sol/IHashflow.dbg.json +0 -4
  480. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IHashflow.sol/IHashflow.json +0 -101
  481. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +0 -4
  482. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/KyberHelperArbitrum.sol/KyberHelperArbitrum.dbg.json +0 -4
  483. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/ScaleDataHelperArbitrum.sol/ScaleDataHelperArbitrum.dbg.json +0 -4
  484. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/ScaleDataHelperArbitrum.sol/ScaleDataHelperArbitrum.json +0 -10
  485. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +0 -4
  486. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +0 -4
  487. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.json +0 -388
  488. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IHashflow.sol/IHashflow.dbg.json +0 -4
  489. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +0 -4
  490. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json +0 -215
  491. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/KyberHelperEthereum.sol/KyberHelperEthereum.dbg.json +0 -4
  492. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/KyberHelperEthereum.sol/KyberHelperEthereum.json +0 -10
  493. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/ScaleDataHelperEthereum.sol/ScaleDataHelperEthereum.dbg.json +0 -4
  494. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/ScaleDataHelperEthereum.sol/ScaleDataHelperEthereum.json +0 -10
  495. package/contracts/core/StandardizedYield/implementations/PendleArbitrumStakedEthSY.sol +0 -120
  496. package/deployments/42161-markets/RETH-ARBITRUM-JUNE2024.json +0 -10
  497. package/deployments/42161-markets/WSTETH-ARBITRUM-JUNE2024.json +0 -10
@@ -0,0 +1,235 @@
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 "../../../interfaces/TradingBot/IBotDecisionHelper.sol";
8
+ import "../../../interfaces/TradingBot/ITradingBotBase.sol";
9
+
10
+ abstract contract BotDecisionHelperBase is IBotDecisionHelper {
11
+ using MarketExtLib for MarketExtState;
12
+ using MarketExtLib for ApproxParams;
13
+ using MarketMathCore for MarketState;
14
+ using MarketApproxPtInLib for MarketState;
15
+ using BotSimulationLib for BotState;
16
+ using PYIndexLib for PYIndex;
17
+ using Math for uint256;
18
+ using Math for int256;
19
+ using LogExpMath for uint256;
20
+ using SpecSegmentLib for TradingSpecs;
21
+
22
+ uint256 public constant MINIMAL_EPS = 100000000000000;
23
+ uint256 public constant INF = type(uint256).max;
24
+
25
+ function getFloatingSyAmount(address botAddress) public returns (uint256 floatingSyAmount) {
26
+ StrategyData memory strategyData = ITradingBotBase(botAddress).readStrategyData();
27
+ (uint256 tvlInSy, , uint256 syRatio, ) = _calcBotExtStats(
28
+ strategyData.botState,
29
+ strategyData.marketExt
30
+ );
31
+ if (syRatio < strategyData.specs.maxSyRatio) return 0;
32
+
33
+ return strategyData.botState.syBalance - tvlInSy.mulDown(strategyData.specs.targetSyRatio);
34
+ }
35
+
36
+ function botExtStats(
37
+ StrategyData memory strategyData
38
+ )
39
+ external
40
+ pure
41
+ returns (uint256 tvlInSy, uint256 iy, uint256 currentSyRatio, uint256 currentYtPtRatio)
42
+ {
43
+ return _calcBotExtStats(strategyData.botState, strategyData.marketExt);
44
+ }
45
+
46
+ /**
47
+ * Return the current bin corresponds to market state
48
+ *
49
+ * Negative value -> buy bin, b_abs(currentBin)
50
+ * Positive value -> sell bin, s_abs(currentBin)
51
+ * Zero -> Do nothing
52
+ */
53
+ function getCurrentBin(StrategyData memory strategyData) public pure returns (int256) {
54
+ return
55
+ _getCurrentBin(
56
+ strategyData.botState,
57
+ strategyData.specs,
58
+ strategyData.marketExt.impliedYield()
59
+ );
60
+ }
61
+
62
+ /**
63
+ * Binary search for the smallest parameter `botParam` for the corresponding rebalancing action
64
+ * such that the bot reaches desired target, otherwise give the largest `botParam` possible
65
+ * that action doesn't revert.
66
+ *
67
+ * @param action Action to take, from which target is derived
68
+ * @param botParams ApproxParams for `botParam`
69
+ * @param intParams ApproxParams for internal action's approximation (e.g. for router's swap)
70
+ *
71
+ * For `botParams`, eps = the precision such that slightly lower
72
+ * (param = (return value) * (1 - eps)) does not reach target
73
+ *
74
+ * - Returns `botParams.guessOffchain` if it reaches target, and slightly lower does not
75
+ * - Reverts if `botParams.guessMin` is invalid, or returns `botParams.guessMin` if reaches
76
+ * target
77
+ * - Returns `botParams.guessMax` if it is valid & does not reach target
78
+ * - Otherwise, binary search for `guess` such that it reaches target, and slightly lower does
79
+ * not
80
+ *
81
+ */
82
+ function searchForBotParam(
83
+ StrategyData memory strategyData,
84
+ ActionType action,
85
+ uint256 targetIy,
86
+ uint256 rebalanceAdditionalCheck,
87
+ ApproxParams memory botParams,
88
+ ApproxParams memory intParams
89
+ ) public pure returns (uint256) {
90
+ RebalanceDetails memory rebalance = RebalanceDetails(strategyData, action, targetIy);
91
+ if (botParams.guessOffchain != 0) {
92
+ // guessoffchain is good
93
+ if (
94
+ _rebalanceResult(
95
+ rebalance,
96
+ botParams.guessOffchain,
97
+ rebalanceAdditionalCheck,
98
+ botParams.eps,
99
+ intParams
100
+ ) == RebalanceResult.SUCCESS
101
+ ) return botParams.guessOffchain;
102
+ }
103
+
104
+ {
105
+ // invalid range
106
+ uint256 guessUpperBound = _weakUpperBound(
107
+ strategyData.botState,
108
+ strategyData.marketExt,
109
+ action
110
+ );
111
+ if (botParams.guessMax > guessUpperBound) botParams.guessMax = guessUpperBound;
112
+ if (botParams.guessMin > botParams.guessMax)
113
+ revert Errors.BotBinarySearchInvalidRange(
114
+ uint256(action),
115
+ botParams.guessMin,
116
+ botParams.guessMax
117
+ );
118
+ }
119
+
120
+ {
121
+ // if botParams.guessMax is either success or unsatisfied (target_not_reached), then we'll just go with it
122
+ if (
123
+ _rebalanceResult(
124
+ rebalance,
125
+ botParams.guessMax,
126
+ rebalanceAdditionalCheck,
127
+ botParams.eps,
128
+ intParams
129
+ ) != RebalanceResult.FAIL_OR_TARGET_EXCEED
130
+ ) {
131
+ return botParams.guessMax;
132
+ }
133
+ }
134
+
135
+ for (uint256 iter = 0; iter < botParams.maxIteration; ++iter) {
136
+ uint256 guess = botParams.guessMin + (botParams.guessMax - botParams.guessMin) / 2;
137
+
138
+ RebalanceResult res = _rebalanceResult(
139
+ rebalance,
140
+ guess,
141
+ rebalanceAdditionalCheck,
142
+ botParams.eps,
143
+ intParams
144
+ );
145
+
146
+ if (res == RebalanceResult.SUCCESS) {
147
+ return guess;
148
+ } else if (res == RebalanceResult.TARGET_NOT_REACHED) {
149
+ botParams.guessMin = guess;
150
+ } else {
151
+ botParams.guessMax = guess;
152
+ }
153
+ }
154
+
155
+ revert Errors.BotBinarySearchFail();
156
+ }
157
+
158
+ function _calcBotExtStats(
159
+ BotState memory botState,
160
+ MarketExtState memory marketExt
161
+ )
162
+ internal
163
+ pure
164
+ returns (uint256 tvlInSy, uint256 iy, uint256 currentSyRatio, uint256 currentYtPtRatio)
165
+ {
166
+ tvlInSy = botState.tvlInSy(marketExt);
167
+ iy = marketExt.impliedYield();
168
+ currentSyRatio = botState.syBalance.divDown(tvlInSy);
169
+ (, uint256 ptInLp) = marketExt.clone().removeLiqDual(botState.lpBalance);
170
+
171
+ uint256 totalPt = ptInLp + botState.ptBalance;
172
+ currentYtPtRatio = (totalPt == 0 ? type(uint256).max : botState.ytBalance.divDown(totalPt));
173
+ }
174
+
175
+ function _getMockApproxParamsWithGuessMax(
176
+ uint256 guessMax
177
+ ) internal pure returns (ApproxParams memory) {
178
+ return ApproxParams(1, guessMax, 0, 256, MINIMAL_EPS);
179
+ }
180
+
181
+ function _getMockApproxParams() internal pure returns (ApproxParams memory) {
182
+ return ApproxParams(1, INF, 0, 256, MINIMAL_EPS);
183
+ }
184
+
185
+ function _getCurrentBin(
186
+ BotState memory botState,
187
+ TradingSpecs memory specs,
188
+ uint256 iy
189
+ ) internal pure returns (int256) {
190
+ return specs.getBinIdForIy(botState, iy);
191
+ }
192
+
193
+ function _getTargetImpliedYieldForBin(
194
+ BotState memory botState,
195
+ TradingSpecs memory specs,
196
+ int256 binId
197
+ ) internal pure returns (uint256) {
198
+ assert(binId != 0); // No action should be taken
199
+
200
+ uint256 segId = SpecSegmentLib.convertBinIdToSegId(botState, binId);
201
+
202
+ if (binId < 0) {
203
+ return specs.getMidIyOfSeg(segId + 1);
204
+ } else {
205
+ return specs.getMidIyOfSeg(segId - 1);
206
+ }
207
+ }
208
+
209
+ function _weakUpperBound(
210
+ BotState memory bot,
211
+ MarketExtState memory marketExt,
212
+ ActionType action
213
+ ) internal pure virtual returns (uint256);
214
+
215
+ function _rebalanceResult(
216
+ RebalanceDetails memory rebalance,
217
+ uint256 botParam,
218
+ uint256 rebalanceAdditionalCheck,
219
+ uint256 eps,
220
+ ApproxParams memory intParams
221
+ ) internal pure virtual returns (RebalanceResult);
222
+
223
+ function _calcMaxAmountForAction(
224
+ uint256 amount,
225
+ int256 currentBin,
226
+ uint256 buyBins,
227
+ uint256 numOfBins
228
+ ) internal pure returns (uint256) {
229
+ assert(currentBin != 0);
230
+ uint256 pressureDenom = currentBin < 0 ? buyBins : numOfBins * 2 - buyBins;
231
+ uint256 actionPressure = (currentBin.abs() * Math.ONE) / pressureDenom;
232
+ uint256 proportion = (Math.ONE + actionPressure).pow(actionPressure) - Math.ONE;
233
+ return amount.mulDown(proportion);
234
+ }
235
+ }
@@ -0,0 +1,184 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "../../libraries/BoringOwnableUpgradeable.sol";
5
+ import "../../libraries/TokenHelper.sol";
6
+ import "../../../interfaces/TradingBot/ITradingBotBase.sol";
7
+ import "../libraries/BotSimulationLib.sol";
8
+
9
+ abstract contract TradingBotBase is BoringOwnableUpgradeable, TokenHelper, ITradingBotBase {
10
+ using TokenAmountLib for TokenAmount[];
11
+ using PYIndexLib for IPYieldToken;
12
+ using MarketExtLib for MarketExtState;
13
+ using Math for uint256;
14
+ using Math for int256;
15
+
16
+ IBotDecisionHelper public immutable decisionHelper;
17
+ address public immutable market;
18
+ address public immutable router;
19
+ address public immutable SY;
20
+ address public immutable PT;
21
+ address public immutable YT;
22
+ address public immutable PENDLE;
23
+
24
+ TradingSpecs public specs;
25
+ uint256 public buyBins;
26
+
27
+ constructor(
28
+ address _market,
29
+ address _router,
30
+ address _PENDLE,
31
+ address _decisionHelper
32
+ ) initializer {
33
+ (IStandardizedYield _SY, IPPrincipalToken _PT, IPYieldToken _YT) = IPMarket(_market)
34
+ .readTokens();
35
+
36
+ market = _market;
37
+ router = _router;
38
+ SY = address(_SY);
39
+ PT = address(_PT);
40
+ YT = address(_YT);
41
+ PENDLE = _PENDLE;
42
+ decisionHelper = IBotDecisionHelper(_decisionHelper);
43
+
44
+ __BoringOwnable_init();
45
+ }
46
+
47
+ function approveInf(MultiApproval[] calldata arr) external onlyOwner {
48
+ for (uint256 i = 0; i < arr.length; ) {
49
+ MultiApproval calldata ele = arr[i];
50
+ for (uint256 j = 0; j < ele.tokens.length; ) {
51
+ _safeApproveInf(ele.tokens[j], ele.spender);
52
+ unchecked {
53
+ j++;
54
+ }
55
+ }
56
+ unchecked {
57
+ i++;
58
+ }
59
+ }
60
+ }
61
+
62
+ function depositSy(uint256 netSyIn) external onlyOwner {
63
+ _transferIn(SY, msg.sender, netSyIn);
64
+ emit DepositSy(netSyIn);
65
+ }
66
+
67
+ /// @dev Receives token and compound to SY
68
+ function depositToken(TokenInput calldata inp, uint256 minSyOut) external payable onlyOwner {
69
+ _transferIn(inp.tokenIn, msg.sender, inp.netTokenIn);
70
+ _compoundSingle(inp, minSyOut);
71
+ emit DepositToken(inp.tokenIn, inp.netTokenIn);
72
+ }
73
+
74
+ function withdrawFunds(address token, uint256 amount) external onlyOwner {
75
+ if (amount == type(uint256).max) amount = _selfBalance(token);
76
+ _transferOut(token, msg.sender, amount);
77
+ emit WithdrawFunds(token, amount);
78
+ }
79
+
80
+ function claimAndCompound(
81
+ TokenInput[] calldata inps,
82
+ uint256 minSyOut
83
+ ) external onlyOwner returns (uint256 netSyOut, uint256 netPendleOut) {
84
+ _claimRewards();
85
+
86
+ netSyOut = _compound(inps, minSyOut);
87
+
88
+ netPendleOut = _selfBalance(PENDLE);
89
+ _transferOut(PENDLE, owner, netPendleOut);
90
+ emit ClaimAndCompound(netSyOut, netPendleOut);
91
+ }
92
+
93
+ /// Claim without compound, intended for offchain usage
94
+ /// @dev SY interest from YT is excluded
95
+ function claimWithoutCompound() external onlyOwner returns (TokenAmount[] memory rewards) {
96
+ address[] memory ytRewardTokens = IPYieldToken(YT).getRewardTokens();
97
+ (, uint256[] memory ytRewardAmounts) = IPYieldToken(YT).redeemDueInterestAndRewards(
98
+ address(this),
99
+ true,
100
+ true
101
+ );
102
+ rewards = rewards.add(ytRewardTokens, ytRewardAmounts);
103
+
104
+ address[] memory syRewardTokens = IStandardizedYield(SY).getRewardTokens();
105
+ uint256[] memory syRewardAmounts = IStandardizedYield(SY).claimRewards(address(this));
106
+ rewards = rewards.add(syRewardTokens, syRewardAmounts);
107
+
108
+ address[] memory lpRewardTokens = IPMarket(market).getRewardTokens();
109
+ uint256[] memory lpRewardAmounts = IPMarket(market).redeemRewards(address(this));
110
+ rewards = rewards.add(lpRewardTokens, lpRewardAmounts);
111
+ }
112
+
113
+ function readMarketExtState() public returns (MarketExtState memory marketExt) {
114
+ marketExt.state = IPMarket(market).readState(router);
115
+ marketExt.index = IPYieldToken(YT).newIndex();
116
+ marketExt.blockTime = block.timestamp;
117
+ }
118
+
119
+ function readBotState() public view returns (BotState memory botState) {
120
+ botState.lpBalance = _selfBalance(market);
121
+ botState.syBalance = _selfBalance(SY);
122
+ botState.ytBalance = _selfBalance(YT);
123
+ botState.ptBalance = _selfBalance(PT);
124
+ botState.buyBins = buyBins;
125
+ }
126
+
127
+ receive() external payable {}
128
+
129
+ function _setBuyBins(uint256 _buyBins) internal {
130
+ buyBins = _buyBins;
131
+ }
132
+
133
+ function _claimRewards() internal {
134
+ IPYieldToken(YT).redeemDueInterestAndRewards(address(this), true, true);
135
+ IStandardizedYield(SY).claimRewards(address(this));
136
+ IPMarket(market).redeemRewards(address(this));
137
+ }
138
+
139
+ function _compound(
140
+ TokenInput[] calldata inps,
141
+ uint256 minSyOut
142
+ ) internal returns (uint256 netSyOut) {
143
+ netSyOut = 0;
144
+
145
+ for (uint256 i = 0; i < inps.length; ++i) {
146
+ netSyOut += _compoundSingle(inps[i], 0);
147
+ }
148
+
149
+ if (netSyOut < minSyOut) revert Errors.BotInsufficientSyOut(netSyOut, minSyOut);
150
+ return netSyOut;
151
+ }
152
+
153
+ function _compoundSingle(
154
+ TokenInput memory inp,
155
+ uint256 minSyOut
156
+ ) internal returns (uint256 /*netSyOut*/) {
157
+ if (inp.netTokenIn == type(uint256).max) inp.netTokenIn = _selfBalance(inp.tokenIn);
158
+
159
+ return
160
+ IPAllAction(router).mintSyFromToken{
161
+ value: inp.tokenIn == NATIVE ? inp.netTokenIn : 0
162
+ }(address(this), SY, minSyOut, inp);
163
+ }
164
+
165
+ function setSpecs(TradingSpecs calldata _specs) external onlyOwner {
166
+ _setSpecs(_specs);
167
+ }
168
+
169
+ function _setSpecs(TradingSpecs memory _specs) internal {
170
+ specs = _specs;
171
+ _setBuyBins(specs.numOfBins);
172
+ }
173
+
174
+ function readStrategyData() public returns (StrategyData memory strategyData) {
175
+ strategyData.botState = readBotState();
176
+ strategyData.marketExt = readMarketExtState();
177
+ strategyData.specs = specs;
178
+ }
179
+
180
+ function _updateSellBinAfterTrade() internal {
181
+ int256 binShift = IBotDecisionHelper(decisionHelper).getCurrentBin(readStrategyData());
182
+ _setBuyBins((buyBins.Int() + binShift).Uint());
183
+ }
184
+ }
@@ -0,0 +1,155 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.0;
3
+
4
+ import "./MarketExtLib.sol";
5
+ import "../../../interfaces/TradingBot/IBotDecisionHelper.sol";
6
+
7
+ library BotSimulationLib {
8
+ using MarketMathCore for MarketState;
9
+ using MarketExtLib for MarketExtState;
10
+ using Math for uint256;
11
+ using Math for int256;
12
+
13
+ function swapSyToYt(
14
+ BotState memory bot,
15
+ MarketExtState memory marketExt,
16
+ uint256 exactYtOut
17
+ ) internal pure returns (bool /*success*/) {
18
+ uint256 netSyIn = marketExt.swapSyToYt(exactYtOut);
19
+
20
+ if (netSyIn > bot.syBalance) return false;
21
+
22
+ bot.syBalance -= netSyIn;
23
+ bot.ytBalance += exactYtOut;
24
+
25
+ return true;
26
+ }
27
+
28
+ function addLiqKeepYt(
29
+ BotState memory bot,
30
+ MarketExtState memory marketExt,
31
+ uint256 netSyIn
32
+ ) internal pure returns (bool /*success*/) {
33
+ if (netSyIn > bot.syBalance) return false;
34
+
35
+ (uint256 netLpOut, uint256 netYtOut) = marketExt.addLiqKeepYt(netSyIn);
36
+
37
+ bot.syBalance -= netSyIn;
38
+ bot.lpBalance += netLpOut;
39
+ bot.ytBalance += netYtOut;
40
+
41
+ return true;
42
+ }
43
+
44
+ function addLiqFromSy(
45
+ BotState memory bot,
46
+ MarketExtState memory marketExt,
47
+ uint256 netPtFromSwap
48
+ ) internal pure returns (bool /*success*/) {
49
+ (uint256 netLpOut, uint256 netSyIn) = marketExt.addLiqFromSy(netPtFromSwap);
50
+
51
+ if (netSyIn > bot.syBalance) return false;
52
+
53
+ bot.syBalance -= netSyIn;
54
+ bot.lpBalance += netLpOut;
55
+
56
+ return true;
57
+ }
58
+
59
+ function addLiqFromYt(
60
+ BotState memory bot,
61
+ MarketExtState memory marketExt,
62
+ uint256 netPtFromSwap
63
+ ) internal pure returns (bool /*success*/) {
64
+ (uint256 netLpOut, uint256 netYtIn) = marketExt.addLiqFromYt(netPtFromSwap);
65
+
66
+ if (netYtIn > bot.ytBalance) return false;
67
+
68
+ bot.ytBalance -= netYtIn;
69
+ bot.lpBalance += netLpOut;
70
+
71
+ return true;
72
+ }
73
+
74
+ function removeLiqToYt(
75
+ BotState memory bot,
76
+ MarketExtState memory marketExt,
77
+ uint256 netLpToRemove,
78
+ ApproxParams memory approxParams
79
+ ) internal pure returns (bool /*success*/) {
80
+ if (netLpToRemove > bot.lpBalance) return false;
81
+
82
+ (uint256 netYtOut, ) = marketExt.removeLiqToYt(
83
+ netLpToRemove,
84
+ cloneApproxParams(approxParams)
85
+ );
86
+
87
+ bot.lpBalance -= netLpToRemove;
88
+ bot.ytBalance += netYtOut;
89
+
90
+ return true;
91
+ }
92
+
93
+ function swapPtToYt(
94
+ BotState memory bot,
95
+ MarketExtState memory marketExt,
96
+ uint256 netPtToSwap,
97
+ ApproxParams memory approxParams
98
+ ) internal pure returns (bool /*success*/) {
99
+ if (netPtToSwap > bot.ptBalance) return false;
100
+ (uint256 netYtOut, ) = marketExt.swapPtToYt(netPtToSwap, cloneApproxParams(approxParams));
101
+ bot.ptBalance -= netPtToSwap;
102
+ bot.ytBalance += netYtOut;
103
+ return true;
104
+ }
105
+
106
+ function swapYtToPt(
107
+ BotState memory bot,
108
+ MarketExtState memory marketExt,
109
+ uint256 netYtToSwap,
110
+ ApproxParams memory approxParams
111
+ ) internal pure returns (bool /*success*/) {
112
+ if (netYtToSwap > bot.ytBalance) return false;
113
+ (uint256 netPtOut, ) = marketExt.swapYtToPt(netYtToSwap, cloneApproxParams(approxParams));
114
+ bot.ptBalance += netPtOut;
115
+ bot.ytBalance -= netYtToSwap;
116
+ return true;
117
+ }
118
+
119
+ function tvlInSy(
120
+ BotState memory bot,
121
+ MarketExtState memory marketExt
122
+ ) internal pure returns (uint256) {
123
+ MarketExtState memory marketExtClone = marketExt.clone();
124
+
125
+ (uint256 syInLp, uint256 ptInLp) = marketExtClone.removeLiqDual(bot.lpBalance);
126
+ uint256 totalValue = bot.syBalance + syInLp;
127
+
128
+ uint256 totalPt = ptInLp + bot.ptBalance;
129
+ if (totalPt <= bot.ytBalance) {
130
+ totalValue += marketExtClone.previewPyToSy(totalPt);
131
+ totalValue += marketExtClone.swapYtToSy(bot.ytBalance - totalPt);
132
+ } else {
133
+ totalValue += marketExtClone.previewPyToSy(bot.ytBalance);
134
+ totalValue += marketExtClone.swapPtToSy(totalPt - bot.ytBalance);
135
+ }
136
+ return totalValue;
137
+ }
138
+
139
+ function clone(BotState memory bot) internal pure returns (BotState memory) {
140
+ return BotState(bot.lpBalance, bot.ytBalance, bot.ptBalance, bot.syBalance, bot.buyBins);
141
+ }
142
+
143
+ function cloneApproxParams(
144
+ ApproxParams memory params
145
+ ) internal pure returns (ApproxParams memory) {
146
+ return
147
+ ApproxParams(
148
+ params.guessMin,
149
+ params.guessMax,
150
+ params.guessOffchain,
151
+ params.maxIteration,
152
+ params.eps
153
+ );
154
+ }
155
+ }