@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.
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/libraries/WeekMath.sol/WeekMath.dbg.json +1 -1
- package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
- package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +2 -2
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +2 -2
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +2 -2
- package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
- package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
- package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
- package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
- package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
- package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/SYUtils.sol/SYUtils.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.json +1189 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.json +10 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.json +322 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol/FixedPoint.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAPoolHelper.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAPoolHelper.json +24 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAWethHelper.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAWethHelper.json +24 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearMath.sol/LinearMath.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearMath.sol/LinearMath.json +10 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearPreview.sol/LinearPreview.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearPreview.sol/LinearPreview.json +234 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSYV2.sol/PendleAuraBalancerStableLPSYV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotRewardHelper.sol/CamelotRewardHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileCommon.sol/CamelotV1VolatileCommon.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileLpHelper.sol/CamelotV1VolatileLpHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatilePreview.sol/CamelotV1VolatilePreview.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
- package/build/artifacts/contracts/core/TradingBot/BotActionCallback.sol/BotActionCallback.dbg.json +4 -0
- package/build/artifacts/contracts/core/TradingBot/BotActionCallback.sol/BotActionCallback.json +631 -0
- package/build/artifacts/contracts/core/TradingBot/BotActionHelper.sol/BotActionHelper.dbg.json +4 -0
- package/build/artifacts/contracts/core/TradingBot/BotActionHelper.sol/BotActionHelper.json +631 -0
- package/build/artifacts/contracts/core/TradingBot/BotDecisionLib.sol/BotDecisionLib.dbg.json +4 -0
- package/build/artifacts/contracts/core/TradingBot/BotDecisionLib.sol/BotDecisionLib.json +10 -0
- package/build/artifacts/contracts/core/TradingBot/BotSimulationLib.sol/BotSimulationLib.dbg.json +4 -0
- package/build/artifacts/contracts/core/TradingBot/BotSimulationLib.sol/BotSimulationLib.json +10 -0
- package/build/artifacts/contracts/core/TradingBot/LongYieldTradingBot.sol/LongYieldTradingBot.dbg.json +4 -0
- package/build/artifacts/contracts/core/TradingBot/LongYieldTradingBot.sol/LongYieldTradingBot.json +1888 -0
- package/build/artifacts/contracts/core/TradingBot/MarketExtLib.sol/MarketExtLib.dbg.json +4 -0
- package/build/artifacts/contracts/core/TradingBot/MarketExtLib.sol/MarketExtLib.json +24 -0
- package/build/artifacts/contracts/core/TradingBot/TradingBotBase.sol/TradingBotBase.dbg.json +4 -0
- package/build/artifacts/contracts/core/TradingBot/TradingBotBase.sol/TradingBotBase.json +581 -0
- package/build/artifacts/contracts/core/TradingBot/TradingBotOffchain.sol/TradingBotOffchain.dbg.json +4 -0
- package/build/artifacts/contracts/core/TradingBot/TradingBotOffchain.sol/TradingBotOffchain.json +1071 -0
- package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
- package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +2 -2
- package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +2 -2
- package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +2 -2
- package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
- package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +151 -2
- package/build/artifacts/contracts/core/libraries/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/TokenAmountLib.sol/TokenAmountLib.dbg.json +4 -0
- package/build/artifacts/contracts/core/libraries/TokenAmountLib.sol/TokenAmountLib.json +10 -0
- package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IERC4626LinearPool.sol/IERC4626LinearPool.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/Balancer/IERC4626LinearPool.sol/IERC4626LinearPool.json +1172 -0
- package/build/artifacts/contracts/interfaces/Balancer/IGauge.sol/IGauge.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol/ILiquidityGaugeFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IRateProvider.sol/IRateProvider.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Camelot/ICamelotFactory.sol/ICamelotFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTFactory.sol/ICamelotNFTFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTHandler.sol/ICamelotNFTHandler.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTPool.sol/ICamelotNFTPool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Camelot/ICamelotNitroPool.sol/ICamelotNitroPool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Camelot/ICamelotNitroPoolFactory.sol/ICamelotNitroPoolFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Camelot/ICamelotPair.sol/ICamelotPair.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Camelot/ICamelotRouter.sol/ICamelotRouter.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Camelot/ICamelotYieldBooster.sol/ICamelotYieldBooster.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Camelot/IXGrail.sol/IXGrail.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ConvexCurve/ICrvDepositor.sol/ICrvDepositor.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ConvexCurve/ICvxCrv.sol/ICvxCrv.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Frax/IFrxEthMinter.sol/IFrxEthMinter.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IApeStaking.sol/IApeStaking.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ILooksFeeSharing.sol/ILooksFeeSharing.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ILooksStaking.sol/ILooksStaking.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPFeeDistributorV2.sol/IPFeeDistributorV2.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPtOracle.sol/IPPtOracle.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStargateLP.sol/IStargateLP.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStargateStaking.sol/IStargateStaking.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.json +874 -0
- package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.json +408 -0
- package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BoringLpSeller.sol/BoringLpSeller.dbg.json +4 -0
- package/build/artifacts/contracts/{router/swap-aggregator/kyberswap/arbitrum/KyberHelperArbitrum.sol/KyberHelperArbitrum.json → offchain-helpers/BoringLpSeller.sol/BoringLpSeller.json} +2 -2
- package/build/artifacts/contracts/offchain-helpers/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/EmptyUUPS.sol/EmptyUUPS.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.json +10 -0
- package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleMulticallV1.sol/PendleMulticallV1.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.json +2 -2
- package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.json +2 -2
- package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.json +2 -2
- package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.dbg.json +4 -0
- package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.json +166 -0
- package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.json +2 -2
- package/build/artifacts/contracts/oracles/samples/PendlePtUsdChainlinkOracle.sol/PendlePtUsdChainlinkOracle.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +2 -2
- package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +2 -2
- package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +2 -2
- package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +2 -2
- package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
- package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
- package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.json +2 -2
- package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
- package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.json +60 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{arbitrum/IAggregationExecutor.sol → IAggregationExecutor.sol}/IAggregationExecutor.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IExecutorHelper.sol/IExecutorHelper.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{arbitrum/IExecutorHelper1.sol/IExecutorHelper1.json → IExecutorHelper.sol/IExecutorHelper.json} +147 -2
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IHashflow.sol/IHashflow.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{ethereum/IHashflow.sol → IHashflow.sol}/IHashflow.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{arbitrum/IMetaAggregationRouterV2.sol → IMetaAggregationRouterV2.sol}/IMetaAggregationRouterV2.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberInputScalingHelper.sol/KyberInputScalingHelper.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{ethereum/KyberHelperEthereum.sol/KyberHelperEthereum.json → KyberInputScalingHelper.sol/KyberInputScalingHelper.json} +2 -2
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScalingDataLib.sol/ScalingDataLib.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScalingDataLib.sol/ScalingDataLib.json +10 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol +153 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol +289 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol +629 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol +113 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearMath.sol +381 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearPreview.sol +206 -0
- package/contracts/core/TradingBot/BotActionCallback.sol +112 -0
- package/contracts/core/TradingBot/BotActionHelper.sol +138 -0
- package/contracts/core/TradingBot/BotDecisionLib.sol +272 -0
- package/contracts/core/TradingBot/BotSimulationLib.sol +115 -0
- package/contracts/core/TradingBot/LongYieldTradingBot.sol +148 -0
- package/contracts/core/TradingBot/MarketExtLib.sol +246 -0
- package/contracts/core/TradingBot/README.md +151 -0
- package/contracts/core/TradingBot/TradingBotBase.sol +120 -0
- package/contracts/core/TradingBot/TradingBotOffchain.sol +131 -0
- package/contracts/core/libraries/Errors.sol +12 -0
- package/contracts/core/libraries/TokenAmountLib.sol +47 -0
- package/contracts/interfaces/Balancer/IERC4626LinearPool.sol +181 -0
- package/contracts/interfaces/Balancer/IVault.sol +13 -0
- package/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol +89 -0
- package/contracts/interfaces/TradingBot/ITradingBotBase.sol +40 -0
- package/contracts/offchain-helpers/BoringLpSeller.sol +47 -0
- package/contracts/oracles/samples/PendleLpGlpOracle.sol +49 -0
- package/deployments/1-markets/BALANCER-LP-AURA-BBAWETHSWETH-SEP-26-2024.json +10 -0
- package/deployments/1-markets/STETH-DEC2027.json +10 -0
- package/deployments/merkle-distribution/2023-05-25.json +3749 -0
- package/package.json +1 -1
- package/typechain-types/BbAPoolHelper.ts +89 -0
- package/typechain-types/BbAWethHelper.ts +89 -0
- package/typechain-types/BotActionCallback.ts +723 -0
- package/typechain-types/BotActionHelper.ts +723 -0
- package/typechain-types/CamelotV1LpHelper.ts +203 -0
- package/typechain-types/CamelotV1Preview.ts +431 -0
- package/typechain-types/ComposableStablePreview.ts +501 -0
- package/typechain-types/ICamelotSY.ts +100 -0
- package/typechain-types/IERC4626LinearPool.ts +1649 -0
- package/typechain-types/IExecutorHelper.ts +863 -0
- package/typechain-types/ILongYieldTradingBot.ts +644 -0
- package/typechain-types/IPendlePreviewHelper.ts +147 -0
- package/typechain-types/IThenaFactory.ts +245 -0
- package/typechain-types/IThenaGaugeV2.ts +206 -0
- package/typechain-types/IThenaPair.ts +579 -0
- package/typechain-types/IThenaRouter.ts +313 -0
- package/typechain-types/IThenaSY.ts +81 -0
- package/typechain-types/ITradingBotBase.ts +483 -0
- package/typechain-types/LinearPreview.ts +402 -0
- package/typechain-types/LongYieldTradingBot.ts +1482 -0
- package/typechain-types/MarketExtLib.ts +81 -0
- package/typechain-types/PendleArbitrumStakedEthSY.ts +1222 -0
- package/typechain-types/PendleAuraBbAWethSwethSY.ts +1532 -0
- package/typechain-types/PendleCamelotV1SY.ts +245 -0
- package/typechain-types/PendleLpGlpOracle.ts +145 -0
- package/typechain-types/PendleSwap.ts +126 -0
- package/typechain-types/PendleThenaSY.ts +1445 -0
- package/typechain-types/{PendleCamelotV1RouterHelper.ts → ThenaLpHelper.ts} +44 -5
- package/typechain-types/{CamelotV1PreviewHelper.ts → ThenaPreview.ts} +23 -63
- package/typechain-types/TradingBotBase.ts +679 -0
- package/typechain-types/TradingBotOffchain.ts +544 -0
- package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1 -1
- package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -1
- package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionSwapPT__factory.ts +1 -1
- package/typechain-types/factories/ActionSwapYT__factory.ts +1 -1
- package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
- package/typechain-types/factories/BbAPoolHelper__factory.ts +36 -0
- package/typechain-types/factories/BbAWethHelper__factory.ts +36 -0
- package/typechain-types/factories/BotActionCallback__factory.ts +646 -0
- package/typechain-types/factories/BotActionHelper__factory.ts +646 -0
- package/typechain-types/factories/Broadcaster__factory.ts +1 -1
- package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
- package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
- package/typechain-types/factories/BulkSeller__factory.ts +1 -1
- package/typechain-types/factories/CamelotV1LpHelper__factory.ts +143 -0
- package/typechain-types/factories/CamelotV1Preview__factory.ts +309 -0
- package/typechain-types/factories/ComposableStablePreview__factory.ts +379 -0
- package/typechain-types/factories/Errors__factory.ts +150 -1
- package/typechain-types/factories/ICamelotSY__factory.ts +49 -0
- package/typechain-types/factories/IERC4626LinearPool__factory.ts +1187 -0
- package/typechain-types/factories/IExecutorHelper__factory.ts +548 -0
- package/typechain-types/factories/ILongYieldTradingBot__factory.ts +893 -0
- package/typechain-types/factories/IPendlePreviewHelper__factory.ts +78 -0
- package/typechain-types/factories/IThenaFactory__factory.ts +164 -0
- package/typechain-types/factories/IThenaGaugeV2__factory.ts +83 -0
- package/typechain-types/factories/IThenaPair__factory.ts +421 -0
- package/typechain-types/factories/IThenaRouter__factory.ts +200 -0
- package/typechain-types/factories/IThenaSY__factory.ts +36 -0
- package/typechain-types/factories/ITradingBotBase__factory.ts +423 -0
- package/typechain-types/factories/LinearPreview__factory.ts +284 -0
- package/typechain-types/factories/LongYieldTradingBot__factory.ts +1958 -0
- package/typechain-types/factories/MarketExtLib__factory.ts +74 -0
- package/typechain-types/factories/MetaStablePreview__factory.ts +1 -1
- package/typechain-types/factories/OracleLib__factory.ts +1 -1
- package/typechain-types/factories/PendleArbitrumStakedEthSY__factory.ts +1068 -0
- package/typechain-types/factories/PendleAuraBbAWethSwethSY__factory.ts +1266 -0
- package/typechain-types/factories/PendleAuraWethAnkrethSYV2__factory.ts +1 -1
- package/typechain-types/factories/PendleAuraWethRocketEthSYV2__factory.ts +1 -1
- package/typechain-types/factories/PendleAuraWethStafiEthSY__factory.ts +1 -1
- package/typechain-types/factories/PendleAuraWethWstethSYV2__factory.ts +1 -1
- package/typechain-types/factories/PendleCamelotV1SY__factory.ts +156 -9
- package/typechain-types/factories/PendleCamelotV1VolatileSY__factory.ts +1 -1
- package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
- package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
- package/typechain-types/factories/PendleFeeDistributorV2__factory.ts +1 -1
- package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
- package/typechain-types/factories/PendleGDaiSY__factory.ts +1 -1
- package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
- package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
- package/typechain-types/factories/PendleLpGlpOracle__factory.ts +246 -0
- package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleMarket__factory.ts +1 -1
- package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
- package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +1 -1
- package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
- package/typechain-types/factories/PendlePtGlpOracle__factory.ts +1 -1
- package/typechain-types/factories/PendlePtOracle__factory.ts +1 -1
- package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
- package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
- package/typechain-types/factories/PendleRouterHelper__factory.ts +1 -1
- package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
- package/typechain-types/factories/PendleRouter__factory.ts +1 -1
- package/typechain-types/factories/PendleSfrxEthSY__factory.ts +1 -1
- package/typechain-types/factories/PendleStargateLPSY__factory.ts +1 -1
- package/typechain-types/factories/PendleSwap__factory.ts +110 -0
- package/typechain-types/factories/PendleThenaSY__factory.ts +1268 -0
- package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldTokenV2__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
- package/typechain-types/factories/SAPE__factory.ts +1 -1
- package/typechain-types/factories/{PendleCamelotV1RouterHelper__factory.ts → ThenaLpHelper__factory.ts} +45 -13
- package/typechain-types/factories/ThenaPreview__factory.ts +306 -0
- package/typechain-types/factories/TradingBotBase__factory.ts +596 -0
- package/typechain-types/factories/TradingBotOffchain__factory.ts +1124 -0
- package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
- package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
- package/typechain-types/hardhat.d.ts +143 -71
- package/typechain-types/index.ts +34 -12
- package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.json +0 -160
- package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.json +0 -10
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwapArbitrum.sol/PendleSwapArbitrum.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwapArbitrum.sol/PendleSwapArbitrum.json +0 -76
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwapEthereum.sol/PendleSwapEthereum.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwapEthereum.sol/PendleSwapEthereum.json +0 -76
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper1.sol/IExecutorHelper1.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper2.sol/IExecutorHelper2.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper2.sol/IExecutorHelper2.json +0 -40
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IHashflow.sol/IHashflow.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IHashflow.sol/IHashflow.json +0 -101
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/KyberHelperArbitrum.sol/KyberHelperArbitrum.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/ScaleDataHelperArbitrum.sol/ScaleDataHelperArbitrum.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/ScaleDataHelperArbitrum.sol/ScaleDataHelperArbitrum.json +0 -10
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IAggregationExecutor.sol/IAggregationExecutor.json +0 -65
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.json +0 -388
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IHashflow.sol/IHashflow.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json +0 -215
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/KyberHelperEthereum.sol/KyberHelperEthereum.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/ScaleDataHelperEthereum.sol/ScaleDataHelperEthereum.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/ScaleDataHelperEthereum.sol/ScaleDataHelperEthereum.json +0 -10
- package/typechain-types/IPVotingEscrowSidechain.ts +0 -155
- package/typechain-types/PendleCamelotRewardHelper.ts +0 -347
- package/typechain-types/factories/CamelotV1PreviewHelper__factory.ts +0 -400
- package/typechain-types/factories/IPVotingEscrowSidechain__factory.ts +0 -112
- package/typechain-types/factories/PendleCamelotRewardHelper__factory.ts +0 -317
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity 0.8.17;
|
|
3
|
+
|
|
4
|
+
import "./BotDecisionLib.sol";
|
|
5
|
+
import "../libraries/TokenAmountLib.sol";
|
|
6
|
+
|
|
7
|
+
contract TradingBotOffchain {
|
|
8
|
+
using TokenAmountLib for TokenAmount[];
|
|
9
|
+
using BotSimulationLib for BotState;
|
|
10
|
+
using MarketMathCore for MarketState;
|
|
11
|
+
using MarketApproxPtInLib for MarketState;
|
|
12
|
+
using PYIndexLib for PYIndex;
|
|
13
|
+
|
|
14
|
+
/// SY interest from YT is excluded
|
|
15
|
+
function claimForBot(
|
|
16
|
+
address bot,
|
|
17
|
+
address market
|
|
18
|
+
) external returns (TokenAmount[] memory rewards) {
|
|
19
|
+
(IStandardizedYield SY, , IPYieldToken YT) = IPMarket(market).readTokens();
|
|
20
|
+
|
|
21
|
+
address[] memory ytRewardTokens = YT.getRewardTokens();
|
|
22
|
+
(, uint256[] memory ytRewardAmounts) = YT.redeemDueInterestAndRewards(bot, true, true);
|
|
23
|
+
rewards = rewards.add(ytRewardTokens, ytRewardAmounts);
|
|
24
|
+
|
|
25
|
+
address[] memory syRewardTokens = SY.getRewardTokens();
|
|
26
|
+
uint256[] memory syRewardAmounts = SY.claimRewards(bot);
|
|
27
|
+
rewards = rewards.add(syRewardTokens, syRewardAmounts);
|
|
28
|
+
|
|
29
|
+
address[] memory lpRewardTokens = IPMarket(market).getRewardTokens();
|
|
30
|
+
uint256[] memory lpRewardAmounts = IPMarket(market).redeemRewards(bot);
|
|
31
|
+
rewards = rewards.add(lpRewardTokens, lpRewardAmounts);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function simulateAction(
|
|
35
|
+
BotState calldata botCalldata,
|
|
36
|
+
MarketExtState calldata marketExtCalldata,
|
|
37
|
+
ActionType action,
|
|
38
|
+
uint256 botParam,
|
|
39
|
+
ApproxParams memory swapApproxParams
|
|
40
|
+
) external pure returns (bool success, BotState memory bot, MarketExtState memory marketExt) {
|
|
41
|
+
bot = botCalldata;
|
|
42
|
+
marketExt = marketExtCalldata;
|
|
43
|
+
|
|
44
|
+
if (action == ActionType.SwapSyToYt) {
|
|
45
|
+
success = bot.swapSyToYt(marketExt, botParam);
|
|
46
|
+
} else if (action == ActionType.AddLiqKeepYt) {
|
|
47
|
+
success = bot.addLiqKeepYt(marketExt, botParam);
|
|
48
|
+
} else if (action == ActionType.AddLiqFromSy) {
|
|
49
|
+
success = bot.addLiqFromSy(marketExt, botParam);
|
|
50
|
+
} else if (action == ActionType.AddLiqFromYt) {
|
|
51
|
+
success = bot.addLiqFromYt(marketExt, botParam);
|
|
52
|
+
} else if (action == ActionType.RemoveLiqToYt) {
|
|
53
|
+
success = bot.removeLiqToYt(marketExt, botParam, swapApproxParams);
|
|
54
|
+
} else {
|
|
55
|
+
success = false;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function searchForBotParam(
|
|
60
|
+
BotState calldata bot,
|
|
61
|
+
MarketExtState calldata marketExt,
|
|
62
|
+
LongTradingSpecs calldata specs,
|
|
63
|
+
ActionType action,
|
|
64
|
+
StrategyState calldata initialState,
|
|
65
|
+
ApproxParams calldata botParams,
|
|
66
|
+
ApproxParams calldata intParams
|
|
67
|
+
) external pure returns (uint256) {
|
|
68
|
+
return
|
|
69
|
+
BotDecisionLib.binarySearchUntilSwitchState(
|
|
70
|
+
bot,
|
|
71
|
+
marketExt,
|
|
72
|
+
specs,
|
|
73
|
+
action,
|
|
74
|
+
initialState,
|
|
75
|
+
botParams,
|
|
76
|
+
intParams
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
function searchForIntParam(
|
|
81
|
+
MarketExtState calldata marketExt,
|
|
82
|
+
ActionType action,
|
|
83
|
+
uint256 botParam,
|
|
84
|
+
ApproxParams calldata intParams
|
|
85
|
+
) external pure returns (uint256) {
|
|
86
|
+
if (action == ActionType.RemoveLiqToYt) {
|
|
87
|
+
return _searchForIntParamRemoveLiqToYt(marketExt, botParam, intParams);
|
|
88
|
+
} else {
|
|
89
|
+
return 0;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
function strategyState(
|
|
94
|
+
BotState calldata bot,
|
|
95
|
+
MarketExtState calldata marketExt,
|
|
96
|
+
LongTradingSpecs calldata specs
|
|
97
|
+
) external pure returns (StrategyState memory) {
|
|
98
|
+
return BotDecisionLib.strategyState(bot, marketExt, specs);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
function actionToTake(StrategyState memory currentState) external pure returns (ActionType) {
|
|
102
|
+
return BotDecisionLib.actionToTake(currentState);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
function tvlInSy(
|
|
106
|
+
BotState calldata bot,
|
|
107
|
+
MarketExtState calldata marketExt
|
|
108
|
+
) external pure returns (uint256) {
|
|
109
|
+
return BotSimulationLib.tvlInSy(bot, marketExt);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
function _searchForIntParamRemoveLiqToYt(
|
|
113
|
+
MarketExtState memory marketExt,
|
|
114
|
+
uint256 netLpToRemove,
|
|
115
|
+
ApproxParams memory intParams
|
|
116
|
+
) private pure returns (uint256 totalPtToSwap) {
|
|
117
|
+
(uint256 netSyRemoved, uint256 netPtRemoved) = marketExt.state.removeLiquidity(
|
|
118
|
+
netLpToRemove
|
|
119
|
+
);
|
|
120
|
+
|
|
121
|
+
uint256 netYtFromSy = marketExt.index.syToAsset(netSyRemoved);
|
|
122
|
+
uint256 netPtToSwap = netPtRemoved + netYtFromSy;
|
|
123
|
+
|
|
124
|
+
(, totalPtToSwap, ) = marketExt.state.approxSwapExactPtForYt(
|
|
125
|
+
marketExt.index,
|
|
126
|
+
netPtToSwap,
|
|
127
|
+
marketExt.blockTime,
|
|
128
|
+
intParams
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
@@ -177,4 +177,16 @@ library Errors {
|
|
|
177
177
|
// Swap Aggregator
|
|
178
178
|
error SAInsufficientTokenIn(address tokenIn, uint256 amountExpected, uint256 amountActual);
|
|
179
179
|
error UnsupportedSelector(uint256 aggregatorType, bytes4 selector);
|
|
180
|
+
|
|
181
|
+
// Trading Bot
|
|
182
|
+
error BotBinarySearchInvalidRange(uint256 action, uint256 guessMin, uint256 guessMax);
|
|
183
|
+
error BotBinarySearchGuessMinInvalid(uint256 action, uint256 guessMin);
|
|
184
|
+
error BotBinarySearchFail();
|
|
185
|
+
error BotExceededLimitSyIn(uint256 actualSyIn, uint256 limitSyIn);
|
|
186
|
+
error BotExceededLimitYtIn(uint256 actualYtIn, uint256 limitYtIn);
|
|
187
|
+
error BotExceededLimitLpToRemove(uint256 actualLpToRemove, uint256 limitLpToRemove);
|
|
188
|
+
error BotInsufficientSyOut(uint256 actualSyOut, uint256 requiredSyOut);
|
|
189
|
+
error BotInsufficientYtOut(uint256 actualYtOut, uint256 requiredYtOut);
|
|
190
|
+
error BotInsufficientLpOut(uint256 actualLpOut, uint256 requiredLpOut);
|
|
191
|
+
error BotCallbackNotMarket(address caller);
|
|
180
192
|
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
struct TokenAmount {
|
|
5
|
+
address token;
|
|
6
|
+
uint256 amount;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
library TokenAmountLib {
|
|
10
|
+
function add(
|
|
11
|
+
TokenAmount[] memory list,
|
|
12
|
+
address token,
|
|
13
|
+
uint256 amount
|
|
14
|
+
) internal pure returns (TokenAmount[] memory newList) {
|
|
15
|
+
if (amount == 0) return list;
|
|
16
|
+
|
|
17
|
+
uint256 newTokenIndex = list.length;
|
|
18
|
+
for (uint256 i = 0; i < list.length; i++) {
|
|
19
|
+
if (list[i].token == token) {
|
|
20
|
+
newTokenIndex = i;
|
|
21
|
+
break;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
newList = new TokenAmount[](list.length + (newTokenIndex == list.length ? 1 : 0));
|
|
26
|
+
for (uint256 i = 0; i < list.length; i++) {
|
|
27
|
+
newList[i] = list[i];
|
|
28
|
+
}
|
|
29
|
+
newList[newTokenIndex] = TokenAmount(
|
|
30
|
+
token,
|
|
31
|
+
(newTokenIndex == list.length ? 0 : list[newTokenIndex].amount) + amount
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function add(
|
|
36
|
+
TokenAmount[] memory list,
|
|
37
|
+
address[] memory tokens,
|
|
38
|
+
uint256[] memory amounts
|
|
39
|
+
) internal pure returns (TokenAmount[] memory newList) {
|
|
40
|
+
newList = list;
|
|
41
|
+
require(tokens.length == amounts.length, "TokenAmountLib: length mismatch");
|
|
42
|
+
for (uint256 i = 0; i < tokens.length; i++) {
|
|
43
|
+
newList = add(newList, tokens[i], amounts[i]);
|
|
44
|
+
}
|
|
45
|
+
return newList;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity 0.8.17;
|
|
3
|
+
|
|
4
|
+
interface IERC4626LinearPool {
|
|
5
|
+
event Approval(address indexed owner, address indexed spender, uint256 value);
|
|
6
|
+
event PausedStateChanged(bool paused);
|
|
7
|
+
event RecoveryModeStateChanged(bool enabled);
|
|
8
|
+
event SwapFeePercentageChanged(uint256 swapFeePercentage);
|
|
9
|
+
event TargetsSet(address indexed token, uint256 lowerTarget, uint256 upperTarget);
|
|
10
|
+
event Transfer(address indexed from, address indexed to, uint256 value);
|
|
11
|
+
|
|
12
|
+
struct SwapRequest {
|
|
13
|
+
uint8 kind;
|
|
14
|
+
address tokenIn;
|
|
15
|
+
address tokenOut;
|
|
16
|
+
uint256 amount;
|
|
17
|
+
bytes32 poolId;
|
|
18
|
+
uint256 lastChangeBlock;
|
|
19
|
+
address from;
|
|
20
|
+
address to;
|
|
21
|
+
bytes userData;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function DOMAIN_SEPARATOR() external view returns (bytes32);
|
|
25
|
+
|
|
26
|
+
function allowance(address owner, address spender) external view returns (uint256);
|
|
27
|
+
|
|
28
|
+
function approve(address spender, uint256 amount) external returns (bool);
|
|
29
|
+
|
|
30
|
+
function balanceOf(address account) external view returns (uint256);
|
|
31
|
+
|
|
32
|
+
function decimals() external view returns (uint8);
|
|
33
|
+
|
|
34
|
+
function decreaseAllowance(address spender, uint256 amount) external returns (bool);
|
|
35
|
+
|
|
36
|
+
function disableRecoveryMode() external;
|
|
37
|
+
|
|
38
|
+
function enableRecoveryMode() external;
|
|
39
|
+
|
|
40
|
+
function getActionId(bytes4 selector) external view returns (bytes32);
|
|
41
|
+
|
|
42
|
+
function getAuthorizer() external view returns (address);
|
|
43
|
+
|
|
44
|
+
function getBptIndex() external pure returns (uint256);
|
|
45
|
+
|
|
46
|
+
function getDomainSeparator() external view returns (bytes32);
|
|
47
|
+
|
|
48
|
+
function getMainIndex() external view returns (uint256);
|
|
49
|
+
|
|
50
|
+
function getMainToken() external view returns (address);
|
|
51
|
+
|
|
52
|
+
function getNextNonce(address account) external view returns (uint256);
|
|
53
|
+
|
|
54
|
+
function getOwner() external view returns (address);
|
|
55
|
+
|
|
56
|
+
function getPausedState()
|
|
57
|
+
external
|
|
58
|
+
view
|
|
59
|
+
returns (
|
|
60
|
+
bool paused,
|
|
61
|
+
uint256 pauseWindowEndTime,
|
|
62
|
+
uint256 bufferPeriodEndTime
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
function getPoolId() external view returns (bytes32);
|
|
66
|
+
|
|
67
|
+
function getProtocolFeesCollector() external view returns (address);
|
|
68
|
+
|
|
69
|
+
function getRate() external view returns (uint256);
|
|
70
|
+
|
|
71
|
+
function getScalingFactors() external view returns (uint256[] memory);
|
|
72
|
+
|
|
73
|
+
function getSwapFeePercentage() external view returns (uint256);
|
|
74
|
+
|
|
75
|
+
function getTargets() external view returns (uint256 lowerTarget, uint256 upperTarget);
|
|
76
|
+
|
|
77
|
+
function getVault() external view returns (address);
|
|
78
|
+
|
|
79
|
+
function getVirtualSupply() external view returns (uint256);
|
|
80
|
+
|
|
81
|
+
function getWrappedIndex() external view returns (uint256);
|
|
82
|
+
|
|
83
|
+
function getWrappedToken() external view returns (address);
|
|
84
|
+
|
|
85
|
+
function getWrappedTokenRate() external view returns (uint256);
|
|
86
|
+
|
|
87
|
+
function inRecoveryMode() external view returns (bool);
|
|
88
|
+
|
|
89
|
+
function increaseAllowance(address spender, uint256 addedValue) external returns (bool);
|
|
90
|
+
|
|
91
|
+
function initialize() external;
|
|
92
|
+
|
|
93
|
+
function name() external view returns (string memory);
|
|
94
|
+
|
|
95
|
+
function nonces(address owner) external view returns (uint256);
|
|
96
|
+
|
|
97
|
+
function onExitPool(
|
|
98
|
+
bytes32 poolId,
|
|
99
|
+
address sender,
|
|
100
|
+
address,
|
|
101
|
+
uint256[] memory balances,
|
|
102
|
+
uint256,
|
|
103
|
+
uint256,
|
|
104
|
+
bytes memory userData
|
|
105
|
+
) external returns (uint256[] memory amountsOut, uint256[] memory dueProtocolFees);
|
|
106
|
+
|
|
107
|
+
function onJoinPool(
|
|
108
|
+
bytes32 poolId,
|
|
109
|
+
address sender,
|
|
110
|
+
address recipient,
|
|
111
|
+
uint256[] memory balances,
|
|
112
|
+
uint256,
|
|
113
|
+
uint256,
|
|
114
|
+
bytes memory userData
|
|
115
|
+
) external returns (uint256[] memory amountsIn, uint256[] memory dueProtocolFees);
|
|
116
|
+
|
|
117
|
+
function onSwap(
|
|
118
|
+
SwapRequest memory request,
|
|
119
|
+
uint256[] memory balances,
|
|
120
|
+
uint256 indexIn,
|
|
121
|
+
uint256 indexOut
|
|
122
|
+
) external returns (uint256);
|
|
123
|
+
|
|
124
|
+
function onSwap(
|
|
125
|
+
SwapRequest memory request,
|
|
126
|
+
uint256 balanceTokenIn,
|
|
127
|
+
uint256 balanceTokenOut
|
|
128
|
+
) external returns (uint256);
|
|
129
|
+
|
|
130
|
+
function pause() external;
|
|
131
|
+
|
|
132
|
+
function permit(
|
|
133
|
+
address owner,
|
|
134
|
+
address spender,
|
|
135
|
+
uint256 value,
|
|
136
|
+
uint256 deadline,
|
|
137
|
+
uint8 v,
|
|
138
|
+
bytes32 r,
|
|
139
|
+
bytes32 s
|
|
140
|
+
) external;
|
|
141
|
+
|
|
142
|
+
function queryExit(
|
|
143
|
+
bytes32,
|
|
144
|
+
address sender,
|
|
145
|
+
address,
|
|
146
|
+
uint256[] memory balances,
|
|
147
|
+
uint256,
|
|
148
|
+
uint256,
|
|
149
|
+
bytes memory userData
|
|
150
|
+
) external returns (uint256 bptIn, uint256[] memory amountsOut);
|
|
151
|
+
|
|
152
|
+
function queryJoin(
|
|
153
|
+
bytes32,
|
|
154
|
+
address sender,
|
|
155
|
+
address,
|
|
156
|
+
uint256[] memory balances,
|
|
157
|
+
uint256,
|
|
158
|
+
uint256,
|
|
159
|
+
bytes memory userData
|
|
160
|
+
) external returns (uint256 bptOut, uint256[] memory amountsIn);
|
|
161
|
+
|
|
162
|
+
function setSwapFeePercentage(uint256 swapFeePercentage) external;
|
|
163
|
+
|
|
164
|
+
function setTargets(uint256 newLowerTarget, uint256 newUpperTarget) external;
|
|
165
|
+
|
|
166
|
+
function symbol() external view returns (string memory);
|
|
167
|
+
|
|
168
|
+
function totalSupply() external view returns (uint256);
|
|
169
|
+
|
|
170
|
+
function transfer(address recipient, uint256 amount) external returns (bool);
|
|
171
|
+
|
|
172
|
+
function transferFrom(
|
|
173
|
+
address sender,
|
|
174
|
+
address recipient,
|
|
175
|
+
uint256 amount
|
|
176
|
+
) external returns (bool);
|
|
177
|
+
|
|
178
|
+
function unpause() external;
|
|
179
|
+
|
|
180
|
+
function version() external view returns (string memory);
|
|
181
|
+
}
|
|
@@ -27,6 +27,19 @@ interface IVault {
|
|
|
27
27
|
bool fromInternalBalance;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
+
struct SwapRequest {
|
|
31
|
+
IVault.SwapKind kind;
|
|
32
|
+
IERC20 tokenIn;
|
|
33
|
+
IERC20 tokenOut;
|
|
34
|
+
uint256 amount;
|
|
35
|
+
// Misc data
|
|
36
|
+
bytes32 poolId;
|
|
37
|
+
uint256 lastChangeBlock;
|
|
38
|
+
address from;
|
|
39
|
+
address to;
|
|
40
|
+
bytes userData;
|
|
41
|
+
}
|
|
42
|
+
|
|
30
43
|
function joinPool(
|
|
31
44
|
bytes32 poolId,
|
|
32
45
|
address sender,
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity 0.8.17;
|
|
3
|
+
|
|
4
|
+
import "./ITradingBotBase.sol";
|
|
5
|
+
import "../../core/TradingBot/BotDecisionLib.sol";
|
|
6
|
+
|
|
7
|
+
interface ILongYieldTradingBot {
|
|
8
|
+
function setSpecs(LongTradingSpecs calldata _specs) external;
|
|
9
|
+
|
|
10
|
+
event SwapSyToYt(
|
|
11
|
+
StrategyState state,
|
|
12
|
+
ApproxParams botParams,
|
|
13
|
+
uint256 maxSyIn,
|
|
14
|
+
uint256 exactYtOut,
|
|
15
|
+
uint256 netSyIn
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
event AddLiqKeepYt(
|
|
19
|
+
StrategyState state,
|
|
20
|
+
ApproxParams botParams,
|
|
21
|
+
uint256 maxSyIn,
|
|
22
|
+
uint256 netSyIn,
|
|
23
|
+
uint256 netLpOut,
|
|
24
|
+
uint256 netYtOut
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
event AddLiqFromSy(
|
|
28
|
+
StrategyState state,
|
|
29
|
+
ApproxParams botParams,
|
|
30
|
+
uint256 maxSyIn,
|
|
31
|
+
uint256 netSyIn,
|
|
32
|
+
uint256 netLpOut
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
event AddLiqFromYt(
|
|
36
|
+
StrategyState state,
|
|
37
|
+
ApproxParams botParams,
|
|
38
|
+
uint256 maxYtIn,
|
|
39
|
+
uint256 netYtIn,
|
|
40
|
+
uint256 netLpOut
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
event RemoveLiqToYt(
|
|
44
|
+
StrategyState state,
|
|
45
|
+
ApproxParams botParams,
|
|
46
|
+
uint256 maxLpRemoved,
|
|
47
|
+
uint256 netLpIn,
|
|
48
|
+
uint256 netYtOut
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
function swapSyToYt(
|
|
52
|
+
address router,
|
|
53
|
+
StrategyState memory oldState,
|
|
54
|
+
ApproxParams calldata botParams,
|
|
55
|
+
uint256 minYtOut,
|
|
56
|
+
uint256 maxSyIn
|
|
57
|
+
) external returns (uint256 exactYtOut, uint256 netSyIn);
|
|
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 returns (uint256 netSyIn, uint256 netLpOut, uint256 netYtOut);
|
|
67
|
+
|
|
68
|
+
function addLiqFromSy(
|
|
69
|
+
StrategyState memory oldState,
|
|
70
|
+
ApproxParams calldata botParams,
|
|
71
|
+
uint256 minLpOut,
|
|
72
|
+
uint256 maxSyIn
|
|
73
|
+
) external returns (uint256 netLpOut, uint256 netSyIn);
|
|
74
|
+
|
|
75
|
+
function addLiqFromYt(
|
|
76
|
+
StrategyState memory oldState,
|
|
77
|
+
ApproxParams calldata botParams,
|
|
78
|
+
uint256 minLpOut,
|
|
79
|
+
uint256 maxYtIn
|
|
80
|
+
) external returns (uint256 netLpOut, uint256 netYtIn);
|
|
81
|
+
|
|
82
|
+
function removeLiqToYt(
|
|
83
|
+
StrategyState memory oldState,
|
|
84
|
+
ApproxParams calldata botParams,
|
|
85
|
+
ApproxParams calldata guessTotalPtToSwap,
|
|
86
|
+
uint256 maxLpRemoved,
|
|
87
|
+
uint256 minYtOut
|
|
88
|
+
) external returns (uint256 netLpRemoved, uint256 netYtOut);
|
|
89
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity 0.8.17;
|
|
3
|
+
|
|
4
|
+
import "../IPAllAction.sol";
|
|
5
|
+
import "../../core/TradingBot/BotSimulationLib.sol";
|
|
6
|
+
|
|
7
|
+
interface ITradingBotBase {
|
|
8
|
+
event DepositSy(uint256 netSyIn);
|
|
9
|
+
|
|
10
|
+
event DepositToken(address indexed token, uint256 netTokenIn);
|
|
11
|
+
|
|
12
|
+
event WithdrawFunds(address indexed token, uint256 amount);
|
|
13
|
+
|
|
14
|
+
event ClaimAndCompound(
|
|
15
|
+
uint256 netSyOut,
|
|
16
|
+
uint256 netPendleOut
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
function depositSy(uint256 netSyIn) external;
|
|
20
|
+
|
|
21
|
+
function depositToken(
|
|
22
|
+
address router,
|
|
23
|
+
TokenInput calldata inp,
|
|
24
|
+
uint256 minSyOut
|
|
25
|
+
) external payable;
|
|
26
|
+
|
|
27
|
+
function withdrawFunds(address token, uint256 amount) external;
|
|
28
|
+
|
|
29
|
+
function approveInf(address token, address spender) external;
|
|
30
|
+
|
|
31
|
+
function claimAndCompound(
|
|
32
|
+
address router,
|
|
33
|
+
TokenInput[] calldata inps,
|
|
34
|
+
uint256 minSyOut
|
|
35
|
+
) external returns (uint256 netSyOut, uint256 netPendleOut);
|
|
36
|
+
|
|
37
|
+
function readMarketExtState(address router) external returns (MarketExtState memory marketExt);
|
|
38
|
+
|
|
39
|
+
function readBotState() external view returns (BotState memory botState);
|
|
40
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity 0.8.17;
|
|
3
|
+
import "../interfaces/IPMarket.sol";
|
|
4
|
+
|
|
5
|
+
abstract contract BoringLpSeller {
|
|
6
|
+
bytes internal constant EMPTY_BYTES = abi.encode();
|
|
7
|
+
|
|
8
|
+
constructor() {}
|
|
9
|
+
|
|
10
|
+
/// @dev slippage control should be done on a higher level with the returned parameter
|
|
11
|
+
/// @param market market address
|
|
12
|
+
/// @param netLpIn amount of Lp to sell
|
|
13
|
+
/// @param tokenOut should be included in SY.getTokensOut()
|
|
14
|
+
/// @return netTokenOut amount of token out
|
|
15
|
+
function _sellLpForToken(
|
|
16
|
+
address market,
|
|
17
|
+
uint256 netLpIn,
|
|
18
|
+
address tokenOut
|
|
19
|
+
) internal returns (uint256 netTokenOut) {
|
|
20
|
+
(IStandardizedYield SY, IPPrincipalToken PT, IPYieldToken YT) = IPMarket(market)
|
|
21
|
+
.readTokens();
|
|
22
|
+
|
|
23
|
+
IPMarket(market).transfer(market, netLpIn);
|
|
24
|
+
|
|
25
|
+
uint256 netSyToRedeem;
|
|
26
|
+
|
|
27
|
+
if (PT.isExpired()) {
|
|
28
|
+
(uint256 netSyRemoved, ) = IPMarket(market).burn(address(SY), address(YT), netLpIn);
|
|
29
|
+
uint256 netSyFromPt = YT.redeemPY(address(SY));
|
|
30
|
+
netSyToRedeem = netSyRemoved + netSyFromPt;
|
|
31
|
+
} else {
|
|
32
|
+
(uint256 netSyRemoved, uint256 netPtRemoved) = IPMarket(market).burn(
|
|
33
|
+
address(SY),
|
|
34
|
+
market,
|
|
35
|
+
netLpIn
|
|
36
|
+
);
|
|
37
|
+
(uint256 netSySwappedOut, ) = IPMarket(market).swapExactPtForSy(
|
|
38
|
+
address(SY),
|
|
39
|
+
netPtRemoved,
|
|
40
|
+
EMPTY_BYTES
|
|
41
|
+
);
|
|
42
|
+
netSyToRedeem = netSyRemoved + netSySwappedOut;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
netTokenOut = SY.redeem(address(this), netSyToRedeem, tokenOut, 0, true);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity 0.8.17;
|
|
3
|
+
|
|
4
|
+
import "../PendleLpOracleLib.sol";
|
|
5
|
+
import "../../interfaces/IPPtOracle.sol";
|
|
6
|
+
import "../../interfaces/GMX/IGlpManager.sol";
|
|
7
|
+
import "../../core/libraries/math/Math.sol";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @notice The LP/GLP price gotten from the market using the LpOracleLib is multiplied with the USD price of GLP read from
|
|
11
|
+
* GLPManager contract
|
|
12
|
+
*/
|
|
13
|
+
contract PendleLpGlpOracle {
|
|
14
|
+
using PendleLpOracleLib for IPMarket;
|
|
15
|
+
|
|
16
|
+
uint32 public immutable twapDuration;
|
|
17
|
+
address public immutable market;
|
|
18
|
+
address public immutable glpManager;
|
|
19
|
+
error OracleNotReady(bool increaseCardinalityRequired, bool oldestObservationSatisfied);
|
|
20
|
+
|
|
21
|
+
constructor(
|
|
22
|
+
address _ptOracle,
|
|
23
|
+
uint32 _twapDuration,
|
|
24
|
+
address _market,
|
|
25
|
+
address _glpManager
|
|
26
|
+
) {
|
|
27
|
+
twapDuration = _twapDuration;
|
|
28
|
+
market = _market;
|
|
29
|
+
glpManager = _glpManager;
|
|
30
|
+
|
|
31
|
+
(bool increaseCardinalityRequired, , bool oldestObservationSatisfied) = IPPtOracle(
|
|
32
|
+
_ptOracle
|
|
33
|
+
).getOracleState(market, twapDuration);
|
|
34
|
+
|
|
35
|
+
if (increaseCardinalityRequired || !oldestObservationSatisfied) {
|
|
36
|
+
revert OracleNotReady(increaseCardinalityRequired, oldestObservationSatisfied);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function getLpPrice() external view virtual returns (uint256) {
|
|
41
|
+
uint256 lpRate = IPMarket(market).getLpToAssetRate(twapDuration);
|
|
42
|
+
uint256 assetPrice = IGlpManager(glpManager).getPrice(true);
|
|
43
|
+
return (assetPrice * lpRate) / (10 ** 30);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function decimals() external pure virtual returns (uint8) {
|
|
47
|
+
return 18;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "SY swETH-BbAWeth_BalancerLP Aura",
|
|
3
|
+
"SY": "0xCb611D0BD02a74C491B75d51D6EA5558f1887Da3",
|
|
4
|
+
"YT": "0x9ddc69eB24329365e96Cdca508e37dDf1CD4478d",
|
|
5
|
+
"PT": "0xe82db015E01E93381991d14b5bAA30fE73bb3240",
|
|
6
|
+
"market": "0x8225dD26DdFaaa321E5388e0F4C090Ba16217c21",
|
|
7
|
+
"expiry": 1727308800,
|
|
8
|
+
"scalarRoot": "47978000000000000000",
|
|
9
|
+
"initAnchor": "1074162000000000000"
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "SY stETH",
|
|
3
|
+
"SY": "0xcbC72d92b2dc8187414F6734718563898740C0BC",
|
|
4
|
+
"YT": "0x04B7Fa1e727d7290D6E24fA9b426d0c940283a95",
|
|
5
|
+
"PT": "0xb253Eff1104802b97aC7E3aC9FdD73AecE295a2c",
|
|
6
|
+
"market": "0x34280882267ffa6383B363E278B027Be083bBe3b",
|
|
7
|
+
"expiry": 1830124800,
|
|
8
|
+
"scalarRoot": "86364560000000000000",
|
|
9
|
+
"initAnchor": "1262028000000000000"
|
|
10
|
+
}
|