@pendle/core-v2 2.15.2 → 2.17.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 (514) 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 +4 -0
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.json +1189 -0
  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 +4 -0
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.json +10 -0
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.dbg.json +4 -0
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.json +322 -0
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol/FixedPoint.dbg.json +1 -1
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAPoolHelper.dbg.json +4 -0
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAPoolHelper.json +24 -0
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAWethHelper.dbg.json +4 -0
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAWethHelper.json +24 -0
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearMath.sol/LinearMath.dbg.json +4 -0
  77. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearMath.sol/LinearMath.json +10 -0
  78. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearPreview.sol/LinearPreview.dbg.json +4 -0
  79. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearPreview.sol/LinearPreview.json +234 -0
  80. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.dbg.json +1 -1
  81. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.dbg.json +1 -1
  82. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.json +2 -2
  83. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSYV2.sol/PendleAuraBalancerStableLPSYV2.dbg.json +1 -1
  84. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.dbg.json +1 -1
  85. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.dbg.json +1 -1
  86. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  87. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  88. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  89. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
  90. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotRewardHelper.sol/CamelotRewardHelper.dbg.json +1 -1
  91. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileCommon.sol/CamelotV1VolatileCommon.dbg.json +1 -1
  92. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileLpHelper.sol/CamelotV1VolatileLpHelper.dbg.json +1 -1
  93. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatilePreview.sol/CamelotV1VolatilePreview.dbg.json +1 -1
  94. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.dbg.json +1 -1
  95. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.json +2 -2
  96. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  97. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +2 -2
  98. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  99. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +2 -2
  100. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +1 -1
  101. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +1 -1
  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/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  104. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.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/BotActionCallback.sol/BotActionCallback.dbg.json +4 -0
  118. package/build/artifacts/contracts/core/TradingBot/BotActionCallback.sol/BotActionCallback.json +631 -0
  119. package/build/artifacts/contracts/core/TradingBot/BotActionHelper.sol/BotActionHelper.dbg.json +4 -0
  120. package/build/artifacts/contracts/core/TradingBot/BotActionHelper.sol/BotActionHelper.json +631 -0
  121. package/build/artifacts/contracts/core/TradingBot/BotDecisionLib.sol/BotDecisionLib.dbg.json +4 -0
  122. package/build/artifacts/contracts/core/TradingBot/BotDecisionLib.sol/BotDecisionLib.json +10 -0
  123. package/build/artifacts/contracts/core/TradingBot/BotSimulationLib.sol/BotSimulationLib.dbg.json +4 -0
  124. package/build/artifacts/contracts/core/TradingBot/BotSimulationLib.sol/BotSimulationLib.json +10 -0
  125. package/build/artifacts/contracts/core/TradingBot/LongYieldTradingBot.sol/LongYieldTradingBot.dbg.json +4 -0
  126. package/build/artifacts/contracts/core/TradingBot/LongYieldTradingBot.sol/LongYieldTradingBot.json +1888 -0
  127. package/build/artifacts/contracts/core/TradingBot/MarketExtLib.sol/MarketExtLib.dbg.json +4 -0
  128. package/build/artifacts/contracts/core/TradingBot/MarketExtLib.sol/MarketExtLib.json +24 -0
  129. package/build/artifacts/contracts/core/TradingBot/TradingBotBase.sol/TradingBotBase.dbg.json +4 -0
  130. package/build/artifacts/contracts/core/TradingBot/TradingBotBase.sol/TradingBotBase.json +581 -0
  131. package/build/artifacts/contracts/core/TradingBot/TradingBotOffchain.sol/TradingBotOffchain.dbg.json +4 -0
  132. package/build/artifacts/contracts/core/TradingBot/TradingBotOffchain.sol/TradingBotOffchain.json +1071 -0
  133. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  134. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  135. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  136. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  137. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  138. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  139. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  140. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +1 -1
  141. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +1 -1
  142. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +2 -2
  143. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +1 -1
  144. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +2 -2
  145. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +1 -1
  146. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +2 -2
  147. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  148. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
  149. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  150. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
  151. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
  152. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
  153. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.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/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  157. package/build/artifacts/contracts/core/libraries/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  158. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +1 -1
  159. package/build/artifacts/contracts/core/libraries/TokenAmountLib.sol/TokenAmountLib.dbg.json +4 -0
  160. package/build/artifacts/contracts/core/libraries/TokenAmountLib.sol/TokenAmountLib.json +10 -0
  161. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  162. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  163. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.dbg.json +1 -1
  164. package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.dbg.json +1 -1
  165. package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.dbg.json +1 -1
  166. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +1 -1
  167. package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.dbg.json +1 -1
  168. package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.dbg.json +1 -1
  169. package/build/artifacts/contracts/interfaces/Balancer/IERC4626LinearPool.sol/IERC4626LinearPool.dbg.json +4 -0
  170. package/build/artifacts/contracts/interfaces/Balancer/IERC4626LinearPool.sol/IERC4626LinearPool.json +1172 -0
  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/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
  212. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  213. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +1 -1
  214. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
  215. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  216. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  217. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  218. package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.dbg.json +1 -1
  219. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  220. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  221. package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.dbg.json +1 -1
  222. package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.dbg.json +1 -1
  223. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
  224. package/build/artifacts/contracts/interfaces/IPFeeDistributorV2.sol/IPFeeDistributorV2.dbg.json +1 -1
  225. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
  226. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  227. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  228. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  229. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +1 -1
  230. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  231. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  232. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  233. package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.dbg.json +1 -1
  234. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
  235. package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
  236. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  237. package/build/artifacts/contracts/interfaces/IPPtOracle.sol/IPPtOracle.dbg.json +1 -1
  238. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +1 -1
  239. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  240. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  241. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  242. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  243. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  244. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  245. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +1 -1
  246. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  247. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  248. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  249. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  250. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  251. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  252. package/build/artifacts/contracts/interfaces/IStargateLP.sol/IStargateLP.dbg.json +1 -1
  253. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  254. package/build/artifacts/contracts/interfaces/IStargateStaking.sol/IStargateStaking.dbg.json +1 -1
  255. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  256. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  257. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.dbg.json +4 -0
  258. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.json +874 -0
  259. package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.dbg.json +4 -0
  260. package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.json +408 -0
  261. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.dbg.json +1 -1
  262. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  263. package/build/artifacts/contracts/offchain-helpers/BoringLpSeller.sol/BoringLpSeller.dbg.json +4 -0
  264. package/build/artifacts/contracts/{router/swap-aggregator/kyberswap/arbitrum/KyberHelperArbitrum.sol/KyberHelperArbitrum.json → offchain-helpers/BoringLpSeller.sol/BoringLpSeller.json} +2 -2
  265. package/build/artifacts/contracts/offchain-helpers/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
  266. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
  267. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +2 -2
  268. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  269. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
  270. package/build/artifacts/contracts/offchain-helpers/EmptyUUPS.sol/EmptyUUPS.dbg.json +1 -1
  271. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.dbg.json +4 -0
  272. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.json +10 -0
  273. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +1 -1
  274. package/build/artifacts/contracts/offchain-helpers/PendleMulticallV1.sol/PendleMulticallV1.dbg.json +1 -1
  275. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  276. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  277. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  278. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  279. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  280. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
  281. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  282. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -2
  283. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  284. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
  285. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  286. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -2
  287. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  288. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  289. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  290. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
  291. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.json +2 -2
  292. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.dbg.json +1 -1
  293. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.json +2 -2
  294. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.dbg.json +1 -1
  295. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.json +2 -2
  296. package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.dbg.json +4 -0
  297. package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.json +166 -0
  298. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.dbg.json +1 -1
  299. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.json +2 -2
  300. package/build/artifacts/contracts/oracles/samples/PendlePtUsdChainlinkOracle.sol/PendlePtUsdChainlinkOracle.dbg.json +1 -1
  301. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  302. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +2 -2
  303. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  304. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +2 -2
  305. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  306. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  307. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +2 -2
  308. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  309. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +2 -2
  310. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  311. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
  312. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +1 -1
  313. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.json +2 -2
  314. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
  315. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  316. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  317. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  318. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  319. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  320. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  321. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
  322. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +4 -0
  323. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.json +60 -0
  324. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +4 -0
  325. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{arbitrum/IAggregationExecutor.sol → IAggregationExecutor.sol}/IAggregationExecutor.json +1 -1
  326. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IExecutorHelper.sol/IExecutorHelper.dbg.json +4 -0
  327. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{arbitrum/IExecutorHelper1.sol/IExecutorHelper1.json → IExecutorHelper.sol/IExecutorHelper.json} +147 -2
  328. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IHashflow.sol/IHashflow.dbg.json +4 -0
  329. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{ethereum/IHashflow.sol → IHashflow.sol}/IHashflow.json +1 -1
  330. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +4 -0
  331. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{arbitrum/IMetaAggregationRouterV2.sol → IMetaAggregationRouterV2.sol}/IMetaAggregationRouterV2.json +1 -1
  332. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberInputScalingHelper.sol/KyberInputScalingHelper.dbg.json +4 -0
  333. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{ethereum/KyberHelperEthereum.sol/KyberHelperEthereum.json → KyberInputScalingHelper.sol/KyberInputScalingHelper.json} +2 -2
  334. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScalingDataLib.sol/ScalingDataLib.dbg.json +4 -0
  335. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScalingDataLib.sol/ScalingDataLib.json +10 -0
  336. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol +153 -0
  337. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol +289 -0
  338. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol +629 -0
  339. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol +113 -0
  340. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearMath.sol +381 -0
  341. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearPreview.sol +206 -0
  342. package/contracts/core/TradingBot/BotActionCallback.sol +112 -0
  343. package/contracts/core/TradingBot/BotActionHelper.sol +138 -0
  344. package/contracts/core/TradingBot/BotDecisionLib.sol +272 -0
  345. package/contracts/core/TradingBot/BotSimulationLib.sol +115 -0
  346. package/contracts/core/TradingBot/LongYieldTradingBot.sol +148 -0
  347. package/contracts/core/TradingBot/MarketExtLib.sol +246 -0
  348. package/contracts/core/TradingBot/README.md +151 -0
  349. package/contracts/core/TradingBot/TradingBotBase.sol +120 -0
  350. package/contracts/core/TradingBot/TradingBotOffchain.sol +131 -0
  351. package/contracts/core/libraries/Errors.sol +12 -0
  352. package/contracts/core/libraries/TokenAmountLib.sol +47 -0
  353. package/contracts/interfaces/Balancer/IERC4626LinearPool.sol +181 -0
  354. package/contracts/interfaces/Balancer/IVault.sol +13 -0
  355. package/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol +89 -0
  356. package/contracts/interfaces/TradingBot/ITradingBotBase.sol +40 -0
  357. package/contracts/offchain-helpers/BoringLpSeller.sol +47 -0
  358. package/contracts/oracles/samples/PendleLpGlpOracle.sol +49 -0
  359. package/deployments/1-markets/BALANCER-LP-AURA-BBAWETHSWETH-SEP-26-2024.json +10 -0
  360. package/deployments/1-markets/STETH-DEC2027.json +10 -0
  361. package/deployments/merkle-distribution/2023-05-25.json +3749 -0
  362. package/package.json +1 -1
  363. package/typechain-types/BbAPoolHelper.ts +89 -0
  364. package/typechain-types/BbAWethHelper.ts +89 -0
  365. package/typechain-types/BotActionCallback.ts +723 -0
  366. package/typechain-types/BotActionHelper.ts +723 -0
  367. package/typechain-types/CamelotV1LpHelper.ts +203 -0
  368. package/typechain-types/CamelotV1Preview.ts +431 -0
  369. package/typechain-types/ComposableStablePreview.ts +501 -0
  370. package/typechain-types/ICamelotSY.ts +100 -0
  371. package/typechain-types/IERC4626LinearPool.ts +1649 -0
  372. package/typechain-types/IExecutorHelper.ts +863 -0
  373. package/typechain-types/ILongYieldTradingBot.ts +644 -0
  374. package/typechain-types/IPendlePreviewHelper.ts +147 -0
  375. package/typechain-types/IThenaFactory.ts +245 -0
  376. package/typechain-types/IThenaGaugeV2.ts +206 -0
  377. package/typechain-types/IThenaPair.ts +579 -0
  378. package/typechain-types/IThenaRouter.ts +313 -0
  379. package/typechain-types/IThenaSY.ts +81 -0
  380. package/typechain-types/ITradingBotBase.ts +483 -0
  381. package/typechain-types/LinearPreview.ts +402 -0
  382. package/typechain-types/LongYieldTradingBot.ts +1482 -0
  383. package/typechain-types/MarketExtLib.ts +81 -0
  384. package/typechain-types/PendleArbitrumStakedEthSY.ts +1222 -0
  385. package/typechain-types/PendleAuraBbAWethSwethSY.ts +1532 -0
  386. package/typechain-types/PendleCamelotV1SY.ts +245 -0
  387. package/typechain-types/PendleLpGlpOracle.ts +145 -0
  388. package/typechain-types/PendleSwap.ts +126 -0
  389. package/typechain-types/PendleThenaSY.ts +1445 -0
  390. package/typechain-types/{PendleCamelotV1RouterHelper.ts → ThenaLpHelper.ts} +44 -5
  391. package/typechain-types/{CamelotV1PreviewHelper.ts → ThenaPreview.ts} +23 -63
  392. package/typechain-types/TradingBotBase.ts +679 -0
  393. package/typechain-types/TradingBotOffchain.ts +544 -0
  394. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1 -1
  395. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  396. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
  397. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -1
  398. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
  399. package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -1
  400. package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
  401. package/typechain-types/factories/ActionSwapPT__factory.ts +1 -1
  402. package/typechain-types/factories/ActionSwapYT__factory.ts +1 -1
  403. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  404. package/typechain-types/factories/BbAPoolHelper__factory.ts +36 -0
  405. package/typechain-types/factories/BbAWethHelper__factory.ts +36 -0
  406. package/typechain-types/factories/BotActionCallback__factory.ts +646 -0
  407. package/typechain-types/factories/BotActionHelper__factory.ts +646 -0
  408. package/typechain-types/factories/Broadcaster__factory.ts +1 -1
  409. package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
  410. package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
  411. package/typechain-types/factories/BulkSeller__factory.ts +1 -1
  412. package/typechain-types/factories/CamelotV1LpHelper__factory.ts +143 -0
  413. package/typechain-types/factories/CamelotV1Preview__factory.ts +309 -0
  414. package/typechain-types/factories/ComposableStablePreview__factory.ts +379 -0
  415. package/typechain-types/factories/Errors__factory.ts +150 -1
  416. package/typechain-types/factories/ICamelotSY__factory.ts +49 -0
  417. package/typechain-types/factories/IERC4626LinearPool__factory.ts +1187 -0
  418. package/typechain-types/factories/IExecutorHelper__factory.ts +548 -0
  419. package/typechain-types/factories/ILongYieldTradingBot__factory.ts +893 -0
  420. package/typechain-types/factories/IPendlePreviewHelper__factory.ts +78 -0
  421. package/typechain-types/factories/IThenaFactory__factory.ts +164 -0
  422. package/typechain-types/factories/IThenaGaugeV2__factory.ts +83 -0
  423. package/typechain-types/factories/IThenaPair__factory.ts +421 -0
  424. package/typechain-types/factories/IThenaRouter__factory.ts +200 -0
  425. package/typechain-types/factories/IThenaSY__factory.ts +36 -0
  426. package/typechain-types/factories/ITradingBotBase__factory.ts +423 -0
  427. package/typechain-types/factories/LinearPreview__factory.ts +284 -0
  428. package/typechain-types/factories/LongYieldTradingBot__factory.ts +1958 -0
  429. package/typechain-types/factories/MarketExtLib__factory.ts +74 -0
  430. package/typechain-types/factories/MetaStablePreview__factory.ts +1 -1
  431. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  432. package/typechain-types/factories/PendleArbitrumStakedEthSY__factory.ts +1068 -0
  433. package/typechain-types/factories/PendleAuraBbAWethSwethSY__factory.ts +1266 -0
  434. package/typechain-types/factories/PendleAuraWethAnkrethSYV2__factory.ts +1 -1
  435. package/typechain-types/factories/PendleAuraWethRocketEthSYV2__factory.ts +1 -1
  436. package/typechain-types/factories/PendleAuraWethStafiEthSY__factory.ts +1 -1
  437. package/typechain-types/factories/PendleAuraWethWstethSYV2__factory.ts +1 -1
  438. package/typechain-types/factories/PendleCamelotV1SY__factory.ts +156 -9
  439. package/typechain-types/factories/PendleCamelotV1VolatileSY__factory.ts +1 -1
  440. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
  441. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
  442. package/typechain-types/factories/PendleFeeDistributorV2__factory.ts +1 -1
  443. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  444. package/typechain-types/factories/PendleGDaiSY__factory.ts +1 -1
  445. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  446. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  447. package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
  448. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
  449. package/typechain-types/factories/PendleLpGlpOracle__factory.ts +246 -0
  450. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  451. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  452. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  453. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  454. package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +1 -1
  455. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  456. package/typechain-types/factories/PendlePtGlpOracle__factory.ts +1 -1
  457. package/typechain-types/factories/PendlePtOracle__factory.ts +1 -1
  458. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  459. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  460. package/typechain-types/factories/PendleRouterHelper__factory.ts +1 -1
  461. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  462. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  463. package/typechain-types/factories/PendleSfrxEthSY__factory.ts +1 -1
  464. package/typechain-types/factories/PendleStargateLPSY__factory.ts +1 -1
  465. package/typechain-types/factories/PendleSwap__factory.ts +110 -0
  466. package/typechain-types/factories/PendleThenaSY__factory.ts +1268 -0
  467. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  468. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  469. package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +1 -1
  470. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  471. package/typechain-types/factories/PendleYieldTokenV2__factory.ts +1 -1
  472. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  473. package/typechain-types/factories/SAPE__factory.ts +1 -1
  474. package/typechain-types/factories/{PendleCamelotV1RouterHelper__factory.ts → ThenaLpHelper__factory.ts} +45 -13
  475. package/typechain-types/factories/ThenaPreview__factory.ts +306 -0
  476. package/typechain-types/factories/TradingBotBase__factory.ts +596 -0
  477. package/typechain-types/factories/TradingBotOffchain__factory.ts +1124 -0
  478. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  479. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  480. package/typechain-types/hardhat.d.ts +143 -71
  481. package/typechain-types/index.ts +34 -12
  482. package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.dbg.json +0 -4
  483. package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.json +0 -160
  484. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +0 -4
  485. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.json +0 -10
  486. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapArbitrum.sol/PendleSwapArbitrum.dbg.json +0 -4
  487. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapArbitrum.sol/PendleSwapArbitrum.json +0 -76
  488. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapEthereum.sol/PendleSwapEthereum.dbg.json +0 -4
  489. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapEthereum.sol/PendleSwapEthereum.json +0 -76
  490. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +0 -4
  491. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper1.sol/IExecutorHelper1.dbg.json +0 -4
  492. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper2.sol/IExecutorHelper2.dbg.json +0 -4
  493. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper2.sol/IExecutorHelper2.json +0 -40
  494. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IHashflow.sol/IHashflow.dbg.json +0 -4
  495. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IHashflow.sol/IHashflow.json +0 -101
  496. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +0 -4
  497. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/KyberHelperArbitrum.sol/KyberHelperArbitrum.dbg.json +0 -4
  498. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/ScaleDataHelperArbitrum.sol/ScaleDataHelperArbitrum.dbg.json +0 -4
  499. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/ScaleDataHelperArbitrum.sol/ScaleDataHelperArbitrum.json +0 -10
  500. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +0 -4
  501. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IAggregationExecutor.sol/IAggregationExecutor.json +0 -65
  502. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +0 -4
  503. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.json +0 -388
  504. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IHashflow.sol/IHashflow.dbg.json +0 -4
  505. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +0 -4
  506. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json +0 -215
  507. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/KyberHelperEthereum.sol/KyberHelperEthereum.dbg.json +0 -4
  508. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/ScaleDataHelperEthereum.sol/ScaleDataHelperEthereum.dbg.json +0 -4
  509. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/ScaleDataHelperEthereum.sol/ScaleDataHelperEthereum.json +0 -10
  510. package/typechain-types/IPVotingEscrowSidechain.ts +0 -155
  511. package/typechain-types/PendleCamelotRewardHelper.ts +0 -347
  512. package/typechain-types/factories/CamelotV1PreviewHelper__factory.ts +0 -400
  513. package/typechain-types/factories/IPVotingEscrowSidechain__factory.ts +0 -112
  514. package/typechain-types/factories/PendleCamelotRewardHelper__factory.ts +0 -317
@@ -0,0 +1,148 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "./TradingBotBase.sol";
5
+ import "./BotActionHelper.sol";
6
+ import "./BotDecisionLib.sol";
7
+ import "../../interfaces/TradingBot/ILongYieldTradingBot.sol";
8
+ import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";
9
+
10
+ contract LongYieldTradingBot is
11
+ TradingBotBase,
12
+ BotActionHelper,
13
+ ILongYieldTradingBot,
14
+ UUPSUpgradeable
15
+ {
16
+ LongTradingSpecs public specs;
17
+
18
+ constructor(
19
+ address _market,
20
+ address _PENDLE,
21
+ LongTradingSpecs memory _specs
22
+ ) TradingBotBase(_market, _PENDLE) {
23
+ specs = _specs;
24
+ }
25
+
26
+ function _authorizeUpgrade(address) internal override onlyOwner {}
27
+
28
+ function initialize() external initializer {
29
+ __BoringOwnable_init();
30
+ }
31
+
32
+ function setSpecs(LongTradingSpecs calldata _specs) external onlyOwner {
33
+ specs = _specs;
34
+ }
35
+
36
+ function swapSyToYt(
37
+ address router,
38
+ StrategyState memory oldState,
39
+ ApproxParams calldata botParams,
40
+ uint256 minYtOut,
41
+ uint256 maxSyIn
42
+ ) external onlyOwner returns (uint256 exactYtOut, uint256 netSyIn) {
43
+ exactYtOut = BotDecisionLib.binarySearchUntilSwitchState(
44
+ readBotState(),
45
+ readMarketExtState(router),
46
+ specs,
47
+ ActionType.SwapSyToYt,
48
+ oldState,
49
+ botParams,
50
+ botParams // only placeholder, value doesn't matter
51
+ );
52
+
53
+ if (exactYtOut < minYtOut) revert Errors.BotInsufficientYtOut(exactYtOut, minYtOut);
54
+ netSyIn = _swapSyToYt(router, exactYtOut, maxSyIn);
55
+
56
+ emit SwapSyToYt(oldState, botParams, maxSyIn, exactYtOut, netSyIn);
57
+ }
58
+
59
+ function addLiqKeepYt(
60
+ address router,
61
+ StrategyState memory oldState,
62
+ ApproxParams calldata botParams,
63
+ uint256 maxSyIn,
64
+ uint256 minLpOut,
65
+ uint256 minYtOut
66
+ ) external onlyOwner returns (uint256 netSyIn, uint256 netLpOut, uint256 netYtOut) {
67
+ netSyIn = BotDecisionLib.binarySearchUntilSwitchState(
68
+ readBotState(),
69
+ readMarketExtState(router),
70
+ specs,
71
+ ActionType.AddLiqKeepYt,
72
+ oldState,
73
+ botParams,
74
+ botParams // only placeholder, value doesn't matter
75
+ );
76
+
77
+ if (netSyIn > maxSyIn) revert Errors.BotExceededLimitSyIn(netSyIn, maxSyIn);
78
+ (netLpOut, netYtOut) = _addLiqKeepYt(router, netSyIn, minLpOut, minYtOut);
79
+
80
+ emit AddLiqKeepYt(oldState, botParams, maxSyIn, netSyIn, netLpOut, netYtOut);
81
+ }
82
+
83
+ function addLiqFromSy(
84
+ StrategyState memory oldState,
85
+ ApproxParams calldata botParams,
86
+ uint256 minLpOut,
87
+ uint256 maxSyIn
88
+ ) external onlyOwner returns (uint256 netLpOut, uint256 netSyIn) {
89
+ uint256 netPtFromSwap = BotDecisionLib.binarySearchUntilSwitchState(
90
+ readBotState(),
91
+ readMarketExtState(address(this)),
92
+ specs,
93
+ ActionType.AddLiqFromSy,
94
+ oldState,
95
+ botParams,
96
+ botParams // only placeholder, value doesn't matter
97
+ );
98
+
99
+ (netLpOut, netSyIn) = _addLiqFromSy(netPtFromSwap, minLpOut, maxSyIn);
100
+
101
+ emit AddLiqFromSy(oldState, botParams, maxSyIn, netSyIn, netLpOut);
102
+ }
103
+
104
+ function addLiqFromYt(
105
+ StrategyState memory oldState,
106
+ ApproxParams calldata botParams,
107
+ uint256 minLpOut,
108
+ uint256 maxYtIn
109
+ ) external onlyOwner returns (uint256 netLpOut, uint256 netYtIn) {
110
+ uint256 netPtFromSwap = BotDecisionLib.binarySearchUntilSwitchState(
111
+ readBotState(),
112
+ readMarketExtState(address(this)),
113
+ specs,
114
+ ActionType.AddLiqFromYt,
115
+ oldState,
116
+ botParams,
117
+ botParams // only placeholder, value doesn't matter
118
+ );
119
+ (netLpOut, netYtIn) = _addLiqFromYt(netPtFromSwap, minLpOut, maxYtIn);
120
+
121
+ emit AddLiqFromYt(oldState, botParams, maxYtIn, netYtIn, netLpOut);
122
+ }
123
+
124
+ function removeLiqToYt(
125
+ StrategyState memory oldState,
126
+ ApproxParams calldata botParams,
127
+ ApproxParams calldata guessTotalPtToSwap,
128
+ uint256 maxLpRemoved,
129
+ uint256 minYtOut
130
+ ) external onlyOwner returns (uint256 netLpRemoved, uint256 netYtOut) {
131
+ netLpRemoved = BotDecisionLib.binarySearchUntilSwitchState(
132
+ readBotState(),
133
+ readMarketExtState(address(this)),
134
+ specs,
135
+ ActionType.RemoveLiqToYt,
136
+ oldState,
137
+ botParams,
138
+ guessTotalPtToSwap // value DOES matter
139
+ );
140
+
141
+ if (netLpRemoved > maxLpRemoved)
142
+ revert Errors.BotExceededLimitLpToRemove(netLpRemoved, maxLpRemoved);
143
+
144
+ netYtOut = _removeLiqToYt(netLpRemoved, guessTotalPtToSwap, minYtOut);
145
+
146
+ emit RemoveLiqToYt(oldState, botParams, maxLpRemoved, netLpRemoved, netYtOut);
147
+ }
148
+ }
@@ -0,0 +1,246 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.0;
3
+
4
+ import "../../interfaces/IPMarket.sol";
5
+ import "../StandardizedYield/PYIndex.sol";
6
+ import "../../router/base/MarketApproxLib.sol";
7
+
8
+ struct MarketExtState {
9
+ MarketState state;
10
+ PYIndex index;
11
+ uint256 blockTime;
12
+ }
13
+
14
+ library MarketExtLib {
15
+ using MarketMathCore for MarketState;
16
+ using MarketApproxPtInLib for MarketState;
17
+ using PYIndexLib for PYIndex;
18
+ using PYIndexLib for IPYieldToken;
19
+ using LogExpMath for uint256;
20
+ using Math for uint256;
21
+ using Math for int256;
22
+
23
+ uint256 public constant ONE_YEAR = 31536000;
24
+
25
+ /// @dev Simulates PendleRouter's swapExactYtForSy
26
+ function swapYtToSy(
27
+ MarketExtState memory marketExt,
28
+ uint256 exactYtIn
29
+ ) internal pure returns (uint256 /*netSyOut*/) {
30
+ (uint256 netSyOwedInt, , ) = marketExt.state.swapSyForExactPt(
31
+ marketExt.index,
32
+ exactYtIn,
33
+ marketExt.blockTime
34
+ );
35
+
36
+ uint256 netPYToRepaySyOwedInt = marketExt.index.syToAssetUp(netSyOwedInt);
37
+ uint256 netPYToRedeemSyOutInt = exactYtIn - netPYToRepaySyOwedInt;
38
+
39
+ return marketExt.index.assetToSy(netPYToRedeemSyOutInt);
40
+ }
41
+
42
+ /// @dev Simulates PendleRouter's swapSyForExactYt
43
+ function swapSyToYt(
44
+ MarketExtState memory marketExt,
45
+ uint256 exactYtOut
46
+ ) internal pure returns (uint256 /*netSyIn*/) {
47
+ (uint256 netSyReceivedInt, , ) = marketExt.state.swapExactPtForSy(
48
+ marketExt.index,
49
+ exactYtOut,
50
+ marketExt.blockTime
51
+ );
52
+
53
+ uint256 totalSyNeedInt = marketExt.index.assetToSyUp(exactYtOut);
54
+ return totalSyNeedInt.subMax0(netSyReceivedInt);
55
+ }
56
+
57
+ /// @dev Simulates PendleRouter's swapExactPtForSy
58
+ function swapPtToSy(
59
+ MarketExtState memory marketExt,
60
+ uint256 exactPtIn
61
+ ) internal pure returns (uint256 netSyOut) {
62
+ (netSyOut, , ) = marketExt.state.swapExactPtForSy(
63
+ marketExt.index,
64
+ exactPtIn,
65
+ marketExt.blockTime
66
+ );
67
+ }
68
+
69
+ /// @dev Simulates PendleRouter's addLiquiditySingleSyKeepYt
70
+ function addLiqKeepYt(
71
+ MarketExtState memory marketExt,
72
+ uint256 netSyIn
73
+ ) internal pure returns (uint256 netLpOut, uint256 netYtOut) {
74
+ uint256 netSyToPt = (netSyIn * marketExt.state.totalPt.Uint()) /
75
+ (marketExt.state.totalPt.Uint() +
76
+ marketExt.index.syToAsset(marketExt.state.totalSy.Uint()));
77
+
78
+ netYtOut = marketExt.index.syToAsset(netSyToPt);
79
+
80
+ (, netLpOut, , ) = marketExt.state.addLiquidity(
81
+ netSyIn - netSyToPt,
82
+ netYtOut,
83
+ marketExt.blockTime
84
+ );
85
+ }
86
+
87
+ function addLiqFromSy(
88
+ MarketExtState memory marketExt,
89
+ uint256 netPtFromSwap
90
+ ) internal pure returns (uint256 netLpOut, uint256 netSyIn) {
91
+ (uint256 netSyToSwap, , ) = marketExt.state.swapSyForExactPt(
92
+ marketExt.index,
93
+ netPtFromSwap,
94
+ marketExt.blockTime
95
+ );
96
+ uint256 netSyToAdd = (netPtFromSwap * marketExt.state.totalSy.Uint()) /
97
+ marketExt.state.totalPt.Uint();
98
+
99
+ (, netLpOut, , ) = marketExt.state.addLiquidity(
100
+ netSyToAdd,
101
+ netPtFromSwap,
102
+ marketExt.blockTime
103
+ );
104
+ netSyIn = netSyToSwap + netSyToAdd;
105
+ }
106
+
107
+ function addLiqFromYt(
108
+ MarketExtState memory marketExt,
109
+ uint256 netPtFromSwap
110
+ ) internal pure returns (uint256 netLpOut, uint256 netYtIn) {
111
+ (uint256 netSyToSwap, , ) = marketExt.state.swapSyForExactPt(
112
+ marketExt.index,
113
+ netPtFromSwap,
114
+ marketExt.blockTime
115
+ );
116
+
117
+ uint256 pyIndex = PYIndex.unwrap(marketExt.index);
118
+ uint256 netPtToAddNumerator = (netPtFromSwap * Math.ONE - netSyToSwap * pyIndex);
119
+ uint256 netPtToAddDenominator = (Math.ONE +
120
+ (marketExt.state.totalSy.Uint() * pyIndex) /
121
+ marketExt.state.totalPt.Uint());
122
+ uint256 netPtToAdd = netPtToAddNumerator / netPtToAddDenominator;
123
+
124
+ netYtIn = netPtFromSwap - netPtToAdd;
125
+
126
+ uint256 netSyFromPy = marketExt.index.assetToSy(netYtIn);
127
+ uint256 netSyToAdd = netSyFromPy - netSyToSwap;
128
+
129
+ (, netLpOut, , ) = marketExt.state.addLiquidity(
130
+ netSyToAdd,
131
+ netPtToAdd,
132
+ marketExt.blockTime
133
+ );
134
+ }
135
+
136
+ /// @dev Simulates PendleRouter's removeLiquidityDualSyAndPt then swapExactPtForYt
137
+ function removeLiqToYt(
138
+ MarketExtState memory marketExt,
139
+ uint256 netLpToRemove,
140
+ ApproxParams memory approxParams
141
+ ) internal pure returns (uint256 /*netYtOut*/) {
142
+ (uint256 netSyRemoved, uint256 netPtRemoved) = marketExt.state.removeLiquidity(
143
+ netLpToRemove
144
+ );
145
+
146
+ uint256 netYtFromSy = marketExt.index.syToAsset(netSyRemoved);
147
+ uint256 netPtToSwap = netPtRemoved + netYtFromSy;
148
+
149
+ (uint256 netYtFromSwap, uint256 totalPtToSwap, ) = marketExt.state.approxSwapExactPtForYt(
150
+ marketExt.index,
151
+ netPtToSwap,
152
+ marketExt.blockTime,
153
+ clone(approxParams)
154
+ );
155
+
156
+ marketExt.state.swapExactPtForSy(marketExt.index, totalPtToSwap, marketExt.blockTime);
157
+
158
+ return netYtFromSy + netYtFromSwap;
159
+ }
160
+
161
+ function previewPyToSy(
162
+ MarketExtState memory marketExt,
163
+ uint256 netPYToRedeem
164
+ ) internal pure returns (uint256) {
165
+ return marketExt.index.assetToSy(netPYToRedeem);
166
+ }
167
+
168
+ function previewAssetsFromLp(
169
+ MarketExtState memory marketExt,
170
+ uint256 lpBalance
171
+ ) internal pure returns (uint256 syInLp, uint256 ptInLp) {
172
+ syInLp = (lpBalance * marketExt.state.totalSy.Uint()) / marketExt.state.totalLp.Uint();
173
+ ptInLp = (lpBalance * marketExt.state.totalPt.Uint()) / marketExt.state.totalLp.Uint();
174
+ }
175
+
176
+ /// @notice Returns the trade exchange rate, fee excluded
177
+ function exchangeRate(MarketExtState memory marketExt) internal pure returns (uint256) {
178
+ MarketPreCompute memory comp = marketExt.state.getMarketPreCompute(
179
+ marketExt.index,
180
+ marketExt.blockTime
181
+ );
182
+
183
+ int256 preFeeExchangeRate = MarketMathCore._getExchangeRate(
184
+ marketExt.state.totalPt,
185
+ comp.totalAsset,
186
+ comp.rateScalar,
187
+ comp.rateAnchor,
188
+ 0
189
+ );
190
+
191
+ return preFeeExchangeRate.Uint();
192
+ }
193
+
194
+ function impliedYield(MarketExtState memory marketExt) internal pure returns (uint256) {
195
+ return
196
+ exchangeRate(marketExt).pow(
197
+ ONE_YEAR.divDown(marketExt.state.expiry - marketExt.blockTime)
198
+ ) - Math.ONE;
199
+ }
200
+
201
+ function clone(MarketState memory state) internal pure returns (MarketState memory) {
202
+ return
203
+ MarketState(
204
+ state.totalPt,
205
+ state.totalSy,
206
+ state.totalLp,
207
+ state.treasury,
208
+ state.scalarRoot,
209
+ state.expiry,
210
+ state.lnFeeRateRoot,
211
+ state.reserveFeePercent,
212
+ state.lastLnImpliedRate
213
+ );
214
+ }
215
+
216
+ function clone(MarketExtState memory marketExt) internal pure returns (MarketExtState memory) {
217
+ return MarketExtState(clone(marketExt.state), marketExt.index, marketExt.blockTime);
218
+ }
219
+
220
+ function clone(ApproxParams memory params) internal pure returns (ApproxParams memory) {
221
+ return
222
+ ApproxParams(
223
+ params.guessMin,
224
+ params.guessMax,
225
+ params.guessOffchain,
226
+ params.maxIteration,
227
+ params.eps
228
+ );
229
+ }
230
+
231
+ function calcMaxPtIn(MarketExtState memory marketExt) internal pure returns (uint256) {
232
+ return
233
+ MarketApproxPtInLib.calcMaxPtIn(
234
+ marketExt.state,
235
+ marketExt.state.getMarketPreCompute(marketExt.index, marketExt.blockTime)
236
+ ) * 9 / 10;
237
+ }
238
+
239
+ function calcMaxPtOut(MarketExtState memory marketExt) internal pure returns (uint256) {
240
+ return
241
+ MarketApproxPtOutLib.calcMaxPtOut(
242
+ marketExt.state.getMarketPreCompute(marketExt.index, marketExt.blockTime),
243
+ marketExt.state.totalPt
244
+ );
245
+ }
246
+ }
@@ -0,0 +1,151 @@
1
+ # Trading Bot
2
+
3
+ ## Structs and enums
4
+
5
+ ### MarketExtLib
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
+ ### LongTradingSpecs
18
+
19
+ Struct for bot's trading limits:
20
+
21
+ - `lowerIyLimit`: apeYtApy
22
+ - `upperIyLimit`: sellYtApy
23
+ - `floatingSyRatioLimit`: f/TVL limit, TVL calculated in number of SY.
24
+ - `ytPtRatioLimit`: limit for YT/PT
25
+
26
+ ### ActionType
27
+
28
+ Enum for action.
29
+
30
+ - 0: SwapSyToYt - Buy YT with SY
31
+ - 1: AddLiqKeepYt - ZPI Zap
32
+ - 2: AddLiqFromSy - Single sided LP
33
+ - 3: AddLiqFromYt - Sell YT for LP
34
+ - 4: RemoveLiqToYt - Zap out to YT
35
+ - 5: NONE
36
+
37
+ ### StrategyFlag
38
+
39
+ Enum for strategy state.
40
+
41
+ - 0: GOOD
42
+ - 1: TOO_LOW
43
+ - 2: TOO_HIGH
44
+
45
+ ### StrategyState
46
+
47
+ Struct for strategy state.
48
+
49
+ - `iyFlag`: StrategyFlag for IY compared to ape/sellYtApy
50
+ - `syRatioFlag`: StrategyFlag for f/TVL compared to given limit \(r\)
51
+
52
+ ## TradingBotBase.sol
53
+
54
+ ### 1. depositSy
55
+
56
+ Deposit SY into the bot.
57
+ - SY approval needed.
58
+
59
+ ### 2. depositToken
60
+
61
+ Deposit funds into the bot, which are then compounded into SY.
62
+ - `inp`: Token input data to swap deposited token to SY.
63
+ - If `inp.netTokenIn` is set to `2**256 - 1` then it will be set to `_selfBalance()` internally.`
64
+ - Needs sender's approval to bot & bot's approval to router.
65
+
66
+ ### 3. withdrawFunds
67
+
68
+ Withdraw funds back to sender (only owner).
69
+
70
+ ### 4. approveInf
71
+
72
+ Infinite approve token to spender.
73
+
74
+ ### 5. claimAndCompound
75
+
76
+ Claim rewards from SY, YT, market. Then compound the rewards into SY.
77
+
78
+ - `inps`: Token input data to swap claimed rewards into SY
79
+ - If `inp.netTokenIn` is set to `2**256 - 1` then it will be set to `_selfBalance()` internally.
80
+ - Needs sender's approval to bot & bot's approval to router for tokens.
81
+
82
+ ### 6. readMarketExtState
83
+ Return the current `MarketExtState`: state of market, YT's index, current block timestamp.
84
+
85
+ ### 7. readBotState
86
+ Return the current `BotState`: The bot's balance in LP, SY, YT.
87
+
88
+
89
+ ## LongYieldTradingBot.sol
90
+
91
+ There are 5 functions for rebalancing actions.
92
+ - For all of them, `botParams` is ApproxParams to find the optimal internal trade parameter.
93
+ - For functions interacting with the router, approval is needed.
94
+
95
+ ### 1. setSpecs
96
+
97
+ Set the bot's specs: apeYtApy, sellYtApy, r (f/TVL limit), x (YT/PT ratio).
98
+
99
+ ### 2. swapSyToYt
100
+
101
+ Rebalance by buying YT with SY.
102
+
103
+ ### 3. addLiqKeepYt
104
+
105
+ Rebalance by ZPI zap.
106
+
107
+ ### 4. addLiqFromSy
108
+
109
+ Rebalance by adding single sided LP from SY.
110
+
111
+ ### 5. addLiqFromYt
112
+
113
+ Rebalance by selling YT to LP.
114
+
115
+ ### 6. removeLiqToYt
116
+
117
+ Rebalance by zapping out LP to YT.
118
+
119
+ - `intParams`: ApproxParams for internal approx function (approxSwapExactPtForYt).
120
+ - Zapping LP to YT can lose a few percent of trading value. Zapping out too much can cause a significant change in TVL, so the resulting strategy state can differ from expected, which can cause unintended behaviour.
121
+
122
+ ## TradingBotOffchain.sol
123
+
124
+ Offchain helper for trading bot.
125
+
126
+ ### 1. claimForBot
127
+ Claim rewards for bot, return the list of reward tokens and amounts claimed.
128
+
129
+ ### 2. simulateAction
130
+ Simulate rebalancing action (swap/add/remove) from BotState and MarketExtState.
131
+
132
+ ### 3. searchForBotParam
133
+ Binary search for the optimal `botParam` for the rebalancing action. Simulate the same process used in the bot's rebalancing functions.
134
+
135
+ - Searches for the minimum `botParam` so that the bot trades just until the bot's new strategy state would differ from `initialState`.
136
+ - `botParam`: The parameter for the rebalancing function (e.g. `netPtFromSwap` for addLiqFromSy).
137
+
138
+ ### 4. searchForIntParam
139
+ (Only useful for `removeLiqToYt`).
140
+ Given the `botParam`, binary search for the optimal `intParam` for the internal calculations (for `approxSwapExactPtForYt`).
141
+
142
+ ### 5. strategyState
143
+ Calculate the strategy state from BotState, MarketExtState, LongTradingSpecs.
144
+
145
+ ### 6. actionToTake
146
+ Return optimal action to take based on the strategy state.
147
+
148
+ ### 7. tvlInSy
149
+
150
+ Calculate the TVL in equivalent SY amount.
151
+
@@ -0,0 +1,120 @@
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/IPAllAction.sol";
7
+ import "../../interfaces/TradingBot/ITradingBotBase.sol";
8
+
9
+ import "./BotSimulationLib.sol";
10
+
11
+ abstract contract TradingBotBase is BoringOwnableUpgradeable, TokenHelper, ITradingBotBase {
12
+ using PYIndexLib for IPYieldToken;
13
+
14
+ address public immutable market;
15
+ address public immutable SY;
16
+ address public immutable PT;
17
+ address public immutable YT;
18
+ address public immutable PENDLE;
19
+
20
+ constructor(address _market, address _PENDLE) initializer {
21
+ (IStandardizedYield _SY, IPPrincipalToken _PT, IPYieldToken _YT) = IPMarket(_market)
22
+ .readTokens();
23
+
24
+ market = _market;
25
+ SY = address(_SY);
26
+ PT = address(_PT);
27
+ YT = address(_YT);
28
+ PENDLE = _PENDLE;
29
+
30
+ __BoringOwnable_init();
31
+ }
32
+
33
+ function depositSy(uint256 netSyIn) external onlyOwner {
34
+ _transferIn(SY, msg.sender, netSyIn);
35
+ emit DepositSy(netSyIn);
36
+ }
37
+
38
+ /// @dev Receives token and compound to SY
39
+ function depositToken(
40
+ address router,
41
+ TokenInput calldata inp,
42
+ uint256 minSyOut
43
+ ) external payable onlyOwner {
44
+ _transferIn(inp.tokenIn, msg.sender, inp.netTokenIn);
45
+ _compoundSingle(router, inp, minSyOut);
46
+ emit DepositToken(inp.tokenIn, inp.netTokenIn);
47
+ }
48
+
49
+ function withdrawFunds(address token, uint256 amount) external onlyOwner {
50
+ if (amount == type(uint256).max) amount = _selfBalance(token);
51
+ _transferOut(token, msg.sender, amount);
52
+ emit WithdrawFunds(token, amount);
53
+ }
54
+
55
+ function approveInf(address token, address spender) external onlyOwner {
56
+ _safeApproveInf(token, spender);
57
+ }
58
+
59
+ function claimAndCompound(
60
+ address router,
61
+ TokenInput[] calldata inps,
62
+ uint256 minSyOut
63
+ ) external onlyOwner returns (uint256 netSyOut, uint256 netPendleOut) {
64
+ _claimRewards();
65
+
66
+ netSyOut = _compound(router, inps, minSyOut);
67
+
68
+ netPendleOut = _selfBalance(PENDLE);
69
+ _transferOut(PENDLE, owner, netPendleOut);
70
+ emit ClaimAndCompound(netSyOut, netPendleOut);
71
+ }
72
+
73
+ function readMarketExtState(address router) public returns (MarketExtState memory marketExt) {
74
+ marketExt.state = IPMarket(market).readState(router);
75
+ marketExt.index = IPYieldToken(YT).newIndex();
76
+ marketExt.blockTime = block.timestamp;
77
+ }
78
+
79
+ function readBotState() public view returns (BotState memory botState) {
80
+ botState.lpBalance = _selfBalance(market);
81
+ botState.syBalance = _selfBalance(SY);
82
+ botState.ytBalance = _selfBalance(YT);
83
+ }
84
+
85
+ receive() external payable {}
86
+
87
+ function _claimRewards() internal {
88
+ IPYieldToken(YT).redeemDueInterestAndRewards(address(this), true, true);
89
+ IStandardizedYield(SY).claimRewards(address(this));
90
+ IPMarket(market).redeemRewards(address(this));
91
+ }
92
+
93
+ function _compound(
94
+ address router,
95
+ TokenInput[] calldata inps,
96
+ uint256 minSyOut
97
+ ) internal returns (uint256 netSyOut) {
98
+ netSyOut = 0;
99
+
100
+ for (uint256 i = 0; i < inps.length; ++i) {
101
+ netSyOut += _compoundSingle(router, inps[i], 0);
102
+ }
103
+
104
+ if (netSyOut < minSyOut) revert Errors.BotInsufficientSyOut(netSyOut, minSyOut);
105
+ return netSyOut;
106
+ }
107
+
108
+ function _compoundSingle(
109
+ address router,
110
+ TokenInput memory inp,
111
+ uint256 minSyOut
112
+ ) internal returns (uint256 /*netSyOut*/) {
113
+ if (inp.netTokenIn == type(uint256).max) inp.netTokenIn = _selfBalance(inp.tokenIn);
114
+
115
+ return
116
+ IPAllAction(router).mintSyFromToken{
117
+ value: inp.tokenIn == NATIVE ? inp.netTokenIn : 0
118
+ }(address(this), SY, minSyOut, inp);
119
+ }
120
+ }