@pendle/core-v2 2.17.7-tradingbot → 2.18.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/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/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.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/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
- 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/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
- 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/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
- package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
- 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/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
- 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/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAPoolHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAWethHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearMath.sol/LinearMath.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearPreview.sol/LinearPreview.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/PendleAuraBalancerStableLPSYV2.sol/PendleAuraBalancerStableLPSYV2.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/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
- 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/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
- 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/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/TradingBot/BotActionCallback.sol/BotActionCallback.dbg.json +1 -1
- package/build/artifacts/contracts/core/TradingBot/BotActionCallback.sol/BotActionCallback.json +32 -17
- package/build/artifacts/contracts/core/TradingBot/BotActionHelper.sol/BotActionHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/TradingBot/BotActionHelper.sol/BotActionHelper.json +32 -17
- package/build/artifacts/contracts/core/TradingBot/BotSimulationLib.sol/BotSimulationLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/TradingBot/BotSimulationLib.sol/BotSimulationLib.json +2 -2
- package/build/artifacts/contracts/core/TradingBot/LongYieldDecisionHelper.sol/LongYieldDecisionHelper.dbg.json +4 -0
- package/build/artifacts/contracts/core/TradingBot/LongYieldDecisionHelper.sol/LongYieldDecisionHelper.json +1190 -0
- package/build/artifacts/contracts/core/TradingBot/LongYieldTradingBot.sol/LongYieldTradingBot.dbg.json +1 -1
- package/build/artifacts/contracts/core/TradingBot/LongYieldTradingBot.sol/LongYieldTradingBot.json +301 -397
- package/build/artifacts/contracts/core/TradingBot/MarketExtLib.sol/MarketExtLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/TradingBot/SpecSegmentLib.sol/SpecSegmentLib.dbg.json +4 -0
- package/build/artifacts/contracts/core/TradingBot/SpecSegmentLib.sol/SpecSegmentLib.json +10 -0
- package/build/artifacts/contracts/core/TradingBot/TradingBotBase.sol/TradingBotBase.dbg.json +1 -1
- package/build/artifacts/contracts/core/TradingBot/TradingBotBase.sol/TradingBotBase.json +32 -17
- 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/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
- 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/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/TokenAmountLib.sol/TokenAmountLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IERC4626LinearPool.sol/IERC4626LinearPool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.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/ICamelotPair.sol/ICamelotPair.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/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/IPAllAction.sol/IPAllAction.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.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/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/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/TradingBot/IBotDecisionHelper.sol/IBotDecisionHelper.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/TradingBot/IBotDecisionHelper.sol/IBotDecisionHelper.json +542 -581
- package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.json +256 -325
- package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.json +6 -17
- package/build/artifacts/contracts/offchain-helpers/BoringLpSeller.sol/BoringLpSeller.dbg.json +1 -1
- 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/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.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/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
- 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/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
- 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/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
- 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/StorageLayout.sol/StorageLayout.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.dbg.json +1 -1
- 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/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
- package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
- package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +1 -1
- 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/MarketApproxPtOutLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IExecutorHelper.sol/IExecutorHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IHashflow.sol/IHashflow.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberInputScalingHelper.sol/KyberInputScalingHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScalingDataLib.sol/ScalingDataLib.dbg.json +1 -1
- package/contracts/core/TradingBot/BotActionCallback.sol +1 -1
- package/contracts/core/TradingBot/BotActionHelper.sol +1 -3
- package/contracts/core/TradingBot/BotSimulationLib.sol +2 -1
- package/contracts/core/TradingBot/LongYieldDecisionHelper.sol +413 -0
- package/contracts/core/TradingBot/LongYieldTradingBot.sol +63 -91
- package/contracts/core/TradingBot/SpecSegmentLib.sol +62 -0
- package/contracts/core/TradingBot/TradingBotBase.sol +14 -9
- package/contracts/interfaces/TradingBot/IBotDecisionHelper.sol +41 -57
- package/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol +24 -34
- package/contracts/interfaces/TradingBot/ITradingBotBase.sol +1 -3
- package/package.json +1 -1
- package/typechain-types/BotActionCallback.ts +40 -22
- package/typechain-types/BotActionHelper.ts +40 -22
- package/typechain-types/BotDecisionHelper.ts +221 -187
- package/typechain-types/IAnkrBNB.ts +150 -0
- package/typechain-types/IAnkrLiquidStaking.ts +253 -0
- package/typechain-types/IBotDecisionHelper.ts +142 -212
- package/typechain-types/ILongYieldTradingBot.ts +147 -230
- package/typechain-types/ISwETH.ts +123 -0
- package/typechain-types/ITradingBotBase.ts +14 -22
- package/typechain-types/LongYieldDecisionHelper.ts +598 -0
- package/typechain-types/LongYieldTradingBot.ts +191 -248
- package/typechain-types/PendleAnkrBNBSY.ts +1235 -0
- package/typechain-types/PendleAuraWstethAnkreth.ts +1511 -0
- package/typechain-types/PendleSwETH.ts +1216 -0
- package/typechain-types/PendleThenaSY.ts +153 -0
- package/typechain-types/PendleWbEthSY.ts +1229 -0
- package/typechain-types/ThenaLpHelper.ts +19 -0
- package/typechain-types/ThenaMath.ts +87 -0
- package/typechain-types/ThenaPreview.ts +19 -0
- package/typechain-types/TradingBotBase.ts +40 -22
- package/typechain-types/factories/BotActionCallback__factory.ts +31 -16
- package/typechain-types/factories/BotActionHelper__factory.ts +31 -16
- package/typechain-types/factories/BotDecisionHelper__factory.ts +490 -421
- package/typechain-types/factories/IAnkrBNB__factory.ts +74 -0
- package/typechain-types/factories/IAnkrLiquidStaking__factory.ts +123 -0
- package/typechain-types/factories/IBotDecisionHelper__factory.ts +540 -579
- package/typechain-types/factories/ILongYieldTradingBot__factory.ts +255 -324
- package/typechain-types/factories/ISwETH__factory.ts +53 -0
- package/typechain-types/factories/ITradingBotBase__factory.ts +6 -17
- package/typechain-types/factories/LongYieldDecisionHelper__factory.ts +1247 -0
- package/typechain-types/factories/LongYieldTradingBot__factory.ts +301 -393
- package/typechain-types/factories/PendleAnkrBNBSY__factory.ts +1100 -0
- package/typechain-types/factories/PendleAuraWstethAnkreth__factory.ts +1244 -0
- package/typechain-types/factories/PendleSwETH__factory.ts +1022 -0
- package/typechain-types/factories/PendleThenaSY__factory.ts +85 -1
- package/typechain-types/factories/PendleWbEthSY__factory.ts +1049 -0
- package/typechain-types/factories/PtAndLpToAsset__factory.ts +1 -1
- package/typechain-types/factories/ThenaLpHelper__factory.ts +13 -0
- package/typechain-types/factories/ThenaMath__factory.ts +36 -0
- package/typechain-types/factories/ThenaPreview__factory.ts +14 -1
- package/typechain-types/factories/TradingBotBase__factory.ts +31 -16
- package/typechain-types/hardhat.d.ts +4 -40
- package/typechain-types/index.ts +2 -10
- package/build/artifacts/contracts/core/TradingBot/BotDecisionHelper.sol/BotDecisionHelper.dbg.json +0 -4
- package/build/artifacts/contracts/core/TradingBot/BotDecisionHelper.sol/BotDecisionHelper.json +0 -1070
- package/contracts/core/TradingBot/BotDecisionHelper.sol +0 -306
|
@@ -40,22 +40,6 @@ const _abi = [
|
|
|
40
40
|
name: "BotBinarySearchFail",
|
|
41
41
|
type: "error",
|
|
42
42
|
},
|
|
43
|
-
{
|
|
44
|
-
inputs: [
|
|
45
|
-
{
|
|
46
|
-
internalType: "uint256",
|
|
47
|
-
name: "action",
|
|
48
|
-
type: "uint256",
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
internalType: "uint256",
|
|
52
|
-
name: "guessMin",
|
|
53
|
-
type: "uint256",
|
|
54
|
-
},
|
|
55
|
-
],
|
|
56
|
-
name: "BotBinarySearchGuessMinInvalid",
|
|
57
|
-
type: "error",
|
|
58
|
-
},
|
|
59
43
|
{
|
|
60
44
|
inputs: [
|
|
61
45
|
{
|
|
@@ -163,202 +147,33 @@ const _abi = [
|
|
|
163
147
|
type: "error",
|
|
164
148
|
},
|
|
165
149
|
{
|
|
166
|
-
inputs: [
|
|
167
|
-
|
|
168
|
-
components: [
|
|
169
|
-
{
|
|
170
|
-
internalType: "uint256",
|
|
171
|
-
name: "lpBalance",
|
|
172
|
-
type: "uint256",
|
|
173
|
-
},
|
|
174
|
-
{
|
|
175
|
-
internalType: "uint256",
|
|
176
|
-
name: "ytBalance",
|
|
177
|
-
type: "uint256",
|
|
178
|
-
},
|
|
179
|
-
{
|
|
180
|
-
internalType: "uint256",
|
|
181
|
-
name: "syBalance",
|
|
182
|
-
type: "uint256",
|
|
183
|
-
},
|
|
184
|
-
],
|
|
185
|
-
internalType: "struct BotState",
|
|
186
|
-
name: "botState",
|
|
187
|
-
type: "tuple",
|
|
188
|
-
},
|
|
189
|
-
{
|
|
190
|
-
components: [
|
|
191
|
-
{
|
|
192
|
-
internalType: "enum StrategyFlag",
|
|
193
|
-
name: "iyFlag",
|
|
194
|
-
type: "uint8",
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
internalType: "enum StrategyFlag",
|
|
198
|
-
name: "syRatioFlag",
|
|
199
|
-
type: "uint8",
|
|
200
|
-
},
|
|
201
|
-
],
|
|
202
|
-
internalType: "struct StrategyState",
|
|
203
|
-
name: "currentState",
|
|
204
|
-
type: "tuple",
|
|
205
|
-
},
|
|
206
|
-
],
|
|
207
|
-
name: "actionToTake",
|
|
150
|
+
inputs: [],
|
|
151
|
+
name: "INF",
|
|
208
152
|
outputs: [
|
|
209
153
|
{
|
|
210
|
-
internalType: "
|
|
154
|
+
internalType: "uint256",
|
|
211
155
|
name: "",
|
|
212
|
-
type: "
|
|
156
|
+
type: "uint256",
|
|
213
157
|
},
|
|
214
158
|
],
|
|
215
|
-
stateMutability: "
|
|
159
|
+
stateMutability: "view",
|
|
216
160
|
type: "function",
|
|
217
161
|
},
|
|
218
162
|
{
|
|
219
|
-
inputs: [
|
|
220
|
-
|
|
221
|
-
components: [
|
|
222
|
-
{
|
|
223
|
-
internalType: "uint256",
|
|
224
|
-
name: "lpBalance",
|
|
225
|
-
type: "uint256",
|
|
226
|
-
},
|
|
227
|
-
{
|
|
228
|
-
internalType: "uint256",
|
|
229
|
-
name: "ytBalance",
|
|
230
|
-
type: "uint256",
|
|
231
|
-
},
|
|
232
|
-
{
|
|
233
|
-
internalType: "uint256",
|
|
234
|
-
name: "syBalance",
|
|
235
|
-
type: "uint256",
|
|
236
|
-
},
|
|
237
|
-
],
|
|
238
|
-
internalType: "struct BotState",
|
|
239
|
-
name: "bot",
|
|
240
|
-
type: "tuple",
|
|
241
|
-
},
|
|
242
|
-
{
|
|
243
|
-
components: [
|
|
244
|
-
{
|
|
245
|
-
components: [
|
|
246
|
-
{
|
|
247
|
-
internalType: "int256",
|
|
248
|
-
name: "totalPt",
|
|
249
|
-
type: "int256",
|
|
250
|
-
},
|
|
251
|
-
{
|
|
252
|
-
internalType: "int256",
|
|
253
|
-
name: "totalSy",
|
|
254
|
-
type: "int256",
|
|
255
|
-
},
|
|
256
|
-
{
|
|
257
|
-
internalType: "int256",
|
|
258
|
-
name: "totalLp",
|
|
259
|
-
type: "int256",
|
|
260
|
-
},
|
|
261
|
-
{
|
|
262
|
-
internalType: "address",
|
|
263
|
-
name: "treasury",
|
|
264
|
-
type: "address",
|
|
265
|
-
},
|
|
266
|
-
{
|
|
267
|
-
internalType: "int256",
|
|
268
|
-
name: "scalarRoot",
|
|
269
|
-
type: "int256",
|
|
270
|
-
},
|
|
271
|
-
{
|
|
272
|
-
internalType: "uint256",
|
|
273
|
-
name: "expiry",
|
|
274
|
-
type: "uint256",
|
|
275
|
-
},
|
|
276
|
-
{
|
|
277
|
-
internalType: "uint256",
|
|
278
|
-
name: "lnFeeRateRoot",
|
|
279
|
-
type: "uint256",
|
|
280
|
-
},
|
|
281
|
-
{
|
|
282
|
-
internalType: "uint256",
|
|
283
|
-
name: "reserveFeePercent",
|
|
284
|
-
type: "uint256",
|
|
285
|
-
},
|
|
286
|
-
{
|
|
287
|
-
internalType: "uint256",
|
|
288
|
-
name: "lastLnImpliedRate",
|
|
289
|
-
type: "uint256",
|
|
290
|
-
},
|
|
291
|
-
],
|
|
292
|
-
internalType: "struct MarketState",
|
|
293
|
-
name: "state",
|
|
294
|
-
type: "tuple",
|
|
295
|
-
},
|
|
296
|
-
{
|
|
297
|
-
internalType: "PYIndex",
|
|
298
|
-
name: "index",
|
|
299
|
-
type: "uint256",
|
|
300
|
-
},
|
|
301
|
-
{
|
|
302
|
-
internalType: "uint256",
|
|
303
|
-
name: "blockTime",
|
|
304
|
-
type: "uint256",
|
|
305
|
-
},
|
|
306
|
-
],
|
|
307
|
-
internalType: "struct MarketExtState",
|
|
308
|
-
name: "marketExt",
|
|
309
|
-
type: "tuple",
|
|
310
|
-
},
|
|
311
|
-
],
|
|
312
|
-
name: "botExtStats",
|
|
163
|
+
inputs: [],
|
|
164
|
+
name: "MINIMAL_EPS",
|
|
313
165
|
outputs: [
|
|
314
166
|
{
|
|
315
167
|
internalType: "uint256",
|
|
316
|
-
name: "
|
|
317
|
-
type: "uint256",
|
|
318
|
-
},
|
|
319
|
-
{
|
|
320
|
-
internalType: "uint256",
|
|
321
|
-
name: "iy",
|
|
322
|
-
type: "uint256",
|
|
323
|
-
},
|
|
324
|
-
{
|
|
325
|
-
internalType: "uint256",
|
|
326
|
-
name: "currentSyRatio",
|
|
327
|
-
type: "uint256",
|
|
328
|
-
},
|
|
329
|
-
{
|
|
330
|
-
internalType: "uint256",
|
|
331
|
-
name: "currentYtPtRatio",
|
|
168
|
+
name: "",
|
|
332
169
|
type: "uint256",
|
|
333
170
|
},
|
|
334
171
|
],
|
|
335
|
-
stateMutability: "
|
|
172
|
+
stateMutability: "view",
|
|
336
173
|
type: "function",
|
|
337
174
|
},
|
|
338
175
|
{
|
|
339
176
|
inputs: [
|
|
340
|
-
{
|
|
341
|
-
components: [
|
|
342
|
-
{
|
|
343
|
-
internalType: "uint256",
|
|
344
|
-
name: "lpBalance",
|
|
345
|
-
type: "uint256",
|
|
346
|
-
},
|
|
347
|
-
{
|
|
348
|
-
internalType: "uint256",
|
|
349
|
-
name: "ytBalance",
|
|
350
|
-
type: "uint256",
|
|
351
|
-
},
|
|
352
|
-
{
|
|
353
|
-
internalType: "uint256",
|
|
354
|
-
name: "syBalance",
|
|
355
|
-
type: "uint256",
|
|
356
|
-
},
|
|
357
|
-
],
|
|
358
|
-
internalType: "struct BotState",
|
|
359
|
-
name: "botData",
|
|
360
|
-
type: "tuple",
|
|
361
|
-
},
|
|
362
177
|
{
|
|
363
178
|
components: [
|
|
364
179
|
{
|
|
@@ -425,7 +240,7 @@ const _abi = [
|
|
|
425
240
|
},
|
|
426
241
|
],
|
|
427
242
|
internalType: "struct MarketExtState",
|
|
428
|
-
name: "
|
|
243
|
+
name: "marketExt",
|
|
429
244
|
type: "tuple",
|
|
430
245
|
},
|
|
431
246
|
{
|
|
@@ -467,17 +282,23 @@ const _abi = [
|
|
|
467
282
|
},
|
|
468
283
|
],
|
|
469
284
|
internalType: "struct ApproxParams",
|
|
470
|
-
name: "
|
|
285
|
+
name: "intParams",
|
|
471
286
|
type: "tuple",
|
|
472
287
|
},
|
|
473
288
|
],
|
|
474
|
-
name: "
|
|
289
|
+
name: "_searchForIntParam",
|
|
475
290
|
outputs: [
|
|
476
291
|
{
|
|
477
|
-
internalType: "
|
|
478
|
-
name: "
|
|
479
|
-
type: "
|
|
292
|
+
internalType: "uint256",
|
|
293
|
+
name: "",
|
|
294
|
+
type: "uint256",
|
|
480
295
|
},
|
|
296
|
+
],
|
|
297
|
+
stateMutability: "pure",
|
|
298
|
+
type: "function",
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
inputs: [
|
|
481
302
|
{
|
|
482
303
|
components: [
|
|
483
304
|
{
|
|
@@ -495,9 +316,14 @@ const _abi = [
|
|
|
495
316
|
name: "syBalance",
|
|
496
317
|
type: "uint256",
|
|
497
318
|
},
|
|
319
|
+
{
|
|
320
|
+
internalType: "uint256",
|
|
321
|
+
name: "buyBins",
|
|
322
|
+
type: "uint256",
|
|
323
|
+
},
|
|
498
324
|
],
|
|
499
325
|
internalType: "struct BotState",
|
|
500
|
-
name: "
|
|
326
|
+
name: "botState",
|
|
501
327
|
type: "tuple",
|
|
502
328
|
},
|
|
503
329
|
{
|
|
@@ -570,220 +396,222 @@ const _abi = [
|
|
|
570
396
|
type: "tuple",
|
|
571
397
|
},
|
|
572
398
|
],
|
|
399
|
+
name: "botExtStats",
|
|
400
|
+
outputs: [
|
|
401
|
+
{
|
|
402
|
+
internalType: "uint256",
|
|
403
|
+
name: "tvlInSy",
|
|
404
|
+
type: "uint256",
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
internalType: "uint256",
|
|
408
|
+
name: "iy",
|
|
409
|
+
type: "uint256",
|
|
410
|
+
},
|
|
411
|
+
{
|
|
412
|
+
internalType: "uint256",
|
|
413
|
+
name: "currentSyRatio",
|
|
414
|
+
type: "uint256",
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
internalType: "uint256",
|
|
418
|
+
name: "currentYtPtRatio",
|
|
419
|
+
type: "uint256",
|
|
420
|
+
},
|
|
421
|
+
],
|
|
573
422
|
stateMutability: "pure",
|
|
574
423
|
type: "function",
|
|
575
424
|
},
|
|
576
425
|
{
|
|
577
426
|
inputs: [
|
|
427
|
+
{
|
|
428
|
+
internalType: "address",
|
|
429
|
+
name: "botAddress",
|
|
430
|
+
type: "address",
|
|
431
|
+
},
|
|
432
|
+
],
|
|
433
|
+
name: "getActionDetails",
|
|
434
|
+
outputs: [
|
|
578
435
|
{
|
|
579
436
|
components: [
|
|
580
437
|
{
|
|
581
|
-
internalType: "
|
|
582
|
-
name: "
|
|
583
|
-
type: "
|
|
438
|
+
internalType: "enum ActionType",
|
|
439
|
+
name: "action",
|
|
440
|
+
type: "uint8",
|
|
441
|
+
},
|
|
442
|
+
{
|
|
443
|
+
internalType: "int256",
|
|
444
|
+
name: "currentBin",
|
|
445
|
+
type: "int256",
|
|
584
446
|
},
|
|
585
447
|
{
|
|
586
448
|
internalType: "uint256",
|
|
587
|
-
name: "
|
|
449
|
+
name: "guessBotParams",
|
|
588
450
|
type: "uint256",
|
|
589
451
|
},
|
|
590
452
|
{
|
|
591
453
|
internalType: "uint256",
|
|
592
|
-
name: "
|
|
454
|
+
name: "guessIntParams",
|
|
593
455
|
type: "uint256",
|
|
594
456
|
},
|
|
595
457
|
],
|
|
596
|
-
internalType: "struct
|
|
597
|
-
name: "
|
|
458
|
+
internalType: "struct IBotDecisionHelper.ActionToTakeResult",
|
|
459
|
+
name: "res",
|
|
598
460
|
type: "tuple",
|
|
599
461
|
},
|
|
462
|
+
],
|
|
463
|
+
stateMutability: "nonpayable",
|
|
464
|
+
type: "function",
|
|
465
|
+
},
|
|
466
|
+
{
|
|
467
|
+
inputs: [
|
|
600
468
|
{
|
|
601
469
|
components: [
|
|
602
470
|
{
|
|
603
471
|
components: [
|
|
604
472
|
{
|
|
605
|
-
internalType: "
|
|
606
|
-
name: "
|
|
607
|
-
type: "
|
|
473
|
+
internalType: "uint256",
|
|
474
|
+
name: "lpBalance",
|
|
475
|
+
type: "uint256",
|
|
608
476
|
},
|
|
609
477
|
{
|
|
610
|
-
internalType: "
|
|
611
|
-
name: "
|
|
612
|
-
type: "
|
|
478
|
+
internalType: "uint256",
|
|
479
|
+
name: "ytBalance",
|
|
480
|
+
type: "uint256",
|
|
613
481
|
},
|
|
614
482
|
{
|
|
615
|
-
internalType: "
|
|
616
|
-
name: "
|
|
617
|
-
type: "
|
|
483
|
+
internalType: "uint256",
|
|
484
|
+
name: "syBalance",
|
|
485
|
+
type: "uint256",
|
|
618
486
|
},
|
|
619
487
|
{
|
|
620
|
-
internalType: "
|
|
621
|
-
name: "
|
|
622
|
-
type: "
|
|
488
|
+
internalType: "uint256",
|
|
489
|
+
name: "buyBins",
|
|
490
|
+
type: "uint256",
|
|
623
491
|
},
|
|
492
|
+
],
|
|
493
|
+
internalType: "struct BotState",
|
|
494
|
+
name: "botState",
|
|
495
|
+
type: "tuple",
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
components: [
|
|
624
499
|
{
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
500
|
+
components: [
|
|
501
|
+
{
|
|
502
|
+
internalType: "int256",
|
|
503
|
+
name: "totalPt",
|
|
504
|
+
type: "int256",
|
|
505
|
+
},
|
|
506
|
+
{
|
|
507
|
+
internalType: "int256",
|
|
508
|
+
name: "totalSy",
|
|
509
|
+
type: "int256",
|
|
510
|
+
},
|
|
511
|
+
{
|
|
512
|
+
internalType: "int256",
|
|
513
|
+
name: "totalLp",
|
|
514
|
+
type: "int256",
|
|
515
|
+
},
|
|
516
|
+
{
|
|
517
|
+
internalType: "address",
|
|
518
|
+
name: "treasury",
|
|
519
|
+
type: "address",
|
|
520
|
+
},
|
|
521
|
+
{
|
|
522
|
+
internalType: "int256",
|
|
523
|
+
name: "scalarRoot",
|
|
524
|
+
type: "int256",
|
|
525
|
+
},
|
|
526
|
+
{
|
|
527
|
+
internalType: "uint256",
|
|
528
|
+
name: "expiry",
|
|
529
|
+
type: "uint256",
|
|
530
|
+
},
|
|
531
|
+
{
|
|
532
|
+
internalType: "uint256",
|
|
533
|
+
name: "lnFeeRateRoot",
|
|
534
|
+
type: "uint256",
|
|
535
|
+
},
|
|
536
|
+
{
|
|
537
|
+
internalType: "uint256",
|
|
538
|
+
name: "reserveFeePercent",
|
|
539
|
+
type: "uint256",
|
|
540
|
+
},
|
|
541
|
+
{
|
|
542
|
+
internalType: "uint256",
|
|
543
|
+
name: "lastLnImpliedRate",
|
|
544
|
+
type: "uint256",
|
|
545
|
+
},
|
|
546
|
+
],
|
|
547
|
+
internalType: "struct MarketState",
|
|
548
|
+
name: "state",
|
|
549
|
+
type: "tuple",
|
|
550
|
+
},
|
|
551
|
+
{
|
|
552
|
+
internalType: "PYIndex",
|
|
553
|
+
name: "index",
|
|
554
|
+
type: "uint256",
|
|
628
555
|
},
|
|
629
556
|
{
|
|
630
557
|
internalType: "uint256",
|
|
631
|
-
name: "
|
|
558
|
+
name: "blockTime",
|
|
632
559
|
type: "uint256",
|
|
633
560
|
},
|
|
561
|
+
],
|
|
562
|
+
internalType: "struct MarketExtState",
|
|
563
|
+
name: "marketExt",
|
|
564
|
+
type: "tuple",
|
|
565
|
+
},
|
|
566
|
+
{
|
|
567
|
+
components: [
|
|
634
568
|
{
|
|
635
569
|
internalType: "uint256",
|
|
636
|
-
name: "
|
|
570
|
+
name: "buyYtIy",
|
|
637
571
|
type: "uint256",
|
|
638
572
|
},
|
|
639
573
|
{
|
|
640
574
|
internalType: "uint256",
|
|
641
|
-
name: "
|
|
575
|
+
name: "sellYtIy",
|
|
642
576
|
type: "uint256",
|
|
643
577
|
},
|
|
644
578
|
{
|
|
645
579
|
internalType: "uint256",
|
|
646
|
-
name: "
|
|
580
|
+
name: "targetSyRatio",
|
|
581
|
+
type: "uint256",
|
|
582
|
+
},
|
|
583
|
+
{
|
|
584
|
+
internalType: "uint256",
|
|
585
|
+
name: "maxSyRatio",
|
|
586
|
+
type: "uint256",
|
|
587
|
+
},
|
|
588
|
+
{
|
|
589
|
+
internalType: "uint256",
|
|
590
|
+
name: "minYtPtRatio",
|
|
591
|
+
type: "uint256",
|
|
592
|
+
},
|
|
593
|
+
{
|
|
594
|
+
internalType: "uint256",
|
|
595
|
+
name: "numOfBins",
|
|
647
596
|
type: "uint256",
|
|
648
597
|
},
|
|
649
598
|
],
|
|
650
|
-
internalType: "struct
|
|
651
|
-
name: "
|
|
599
|
+
internalType: "struct LongTradingSpecs",
|
|
600
|
+
name: "specs",
|
|
652
601
|
type: "tuple",
|
|
653
602
|
},
|
|
654
|
-
{
|
|
655
|
-
internalType: "PYIndex",
|
|
656
|
-
name: "index",
|
|
657
|
-
type: "uint256",
|
|
658
|
-
},
|
|
659
|
-
{
|
|
660
|
-
internalType: "uint256",
|
|
661
|
-
name: "blockTime",
|
|
662
|
-
type: "uint256",
|
|
663
|
-
},
|
|
664
|
-
],
|
|
665
|
-
internalType: "struct MarketExtState",
|
|
666
|
-
name: "marketExt",
|
|
667
|
-
type: "tuple",
|
|
668
|
-
},
|
|
669
|
-
{
|
|
670
|
-
components: [
|
|
671
|
-
{
|
|
672
|
-
internalType: "uint256",
|
|
673
|
-
name: "lowerIyLimit",
|
|
674
|
-
type: "uint256",
|
|
675
|
-
},
|
|
676
|
-
{
|
|
677
|
-
internalType: "uint256",
|
|
678
|
-
name: "upperIyLimit",
|
|
679
|
-
type: "uint256",
|
|
680
|
-
},
|
|
681
|
-
{
|
|
682
|
-
internalType: "uint256",
|
|
683
|
-
name: "floatingSyRatioLimit",
|
|
684
|
-
type: "uint256",
|
|
685
|
-
},
|
|
686
|
-
{
|
|
687
|
-
internalType: "uint256",
|
|
688
|
-
name: "floatingSyRatioTarget",
|
|
689
|
-
type: "uint256",
|
|
690
|
-
},
|
|
691
|
-
{
|
|
692
|
-
internalType: "uint256",
|
|
693
|
-
name: "ytPtRatioLimit",
|
|
694
|
-
type: "uint256",
|
|
695
|
-
},
|
|
696
|
-
{
|
|
697
|
-
internalType: "uint256",
|
|
698
|
-
name: "ytPtRatioTarget",
|
|
699
|
-
type: "uint256",
|
|
700
|
-
},
|
|
701
603
|
],
|
|
702
|
-
internalType: "struct
|
|
703
|
-
name: "
|
|
704
|
-
type: "tuple",
|
|
705
|
-
},
|
|
706
|
-
{
|
|
707
|
-
internalType: "enum ActionType",
|
|
708
|
-
name: "action",
|
|
709
|
-
type: "uint8",
|
|
710
|
-
},
|
|
711
|
-
{
|
|
712
|
-
components: [
|
|
713
|
-
{
|
|
714
|
-
internalType: "uint256",
|
|
715
|
-
name: "guessMin",
|
|
716
|
-
type: "uint256",
|
|
717
|
-
},
|
|
718
|
-
{
|
|
719
|
-
internalType: "uint256",
|
|
720
|
-
name: "guessMax",
|
|
721
|
-
type: "uint256",
|
|
722
|
-
},
|
|
723
|
-
{
|
|
724
|
-
internalType: "uint256",
|
|
725
|
-
name: "guessOffchain",
|
|
726
|
-
type: "uint256",
|
|
727
|
-
},
|
|
728
|
-
{
|
|
729
|
-
internalType: "uint256",
|
|
730
|
-
name: "maxIteration",
|
|
731
|
-
type: "uint256",
|
|
732
|
-
},
|
|
733
|
-
{
|
|
734
|
-
internalType: "uint256",
|
|
735
|
-
name: "eps",
|
|
736
|
-
type: "uint256",
|
|
737
|
-
},
|
|
738
|
-
],
|
|
739
|
-
internalType: "struct ApproxParams",
|
|
740
|
-
name: "botParams",
|
|
741
|
-
type: "tuple",
|
|
742
|
-
},
|
|
743
|
-
{
|
|
744
|
-
components: [
|
|
745
|
-
{
|
|
746
|
-
internalType: "uint256",
|
|
747
|
-
name: "guessMin",
|
|
748
|
-
type: "uint256",
|
|
749
|
-
},
|
|
750
|
-
{
|
|
751
|
-
internalType: "uint256",
|
|
752
|
-
name: "guessMax",
|
|
753
|
-
type: "uint256",
|
|
754
|
-
},
|
|
755
|
-
{
|
|
756
|
-
internalType: "uint256",
|
|
757
|
-
name: "guessOffchain",
|
|
758
|
-
type: "uint256",
|
|
759
|
-
},
|
|
760
|
-
{
|
|
761
|
-
internalType: "uint256",
|
|
762
|
-
name: "maxIteration",
|
|
763
|
-
type: "uint256",
|
|
764
|
-
},
|
|
765
|
-
{
|
|
766
|
-
internalType: "uint256",
|
|
767
|
-
name: "eps",
|
|
768
|
-
type: "uint256",
|
|
769
|
-
},
|
|
770
|
-
],
|
|
771
|
-
internalType: "struct ApproxParams",
|
|
772
|
-
name: "intParams",
|
|
604
|
+
internalType: "struct StrategyData",
|
|
605
|
+
name: "strategyData",
|
|
773
606
|
type: "tuple",
|
|
774
607
|
},
|
|
775
608
|
],
|
|
776
|
-
name: "
|
|
609
|
+
name: "getCurrentBin",
|
|
777
610
|
outputs: [
|
|
778
611
|
{
|
|
779
|
-
internalType: "
|
|
780
|
-
name: "",
|
|
781
|
-
type: "uint256",
|
|
782
|
-
},
|
|
783
|
-
{
|
|
784
|
-
internalType: "enum IBotDecisionHelper.RebalanceResult",
|
|
612
|
+
internalType: "int256",
|
|
785
613
|
name: "",
|
|
786
|
-
type: "
|
|
614
|
+
type: "int256",
|
|
787
615
|
},
|
|
788
616
|
],
|
|
789
617
|
stateMutability: "pure",
|
|
@@ -796,68 +624,139 @@ const _abi = [
|
|
|
796
624
|
{
|
|
797
625
|
components: [
|
|
798
626
|
{
|
|
799
|
-
internalType: "
|
|
800
|
-
name: "
|
|
801
|
-
type: "
|
|
627
|
+
internalType: "uint256",
|
|
628
|
+
name: "lpBalance",
|
|
629
|
+
type: "uint256",
|
|
802
630
|
},
|
|
803
631
|
{
|
|
804
|
-
internalType: "
|
|
805
|
-
name: "
|
|
806
|
-
type: "
|
|
632
|
+
internalType: "uint256",
|
|
633
|
+
name: "ytBalance",
|
|
634
|
+
type: "uint256",
|
|
807
635
|
},
|
|
808
636
|
{
|
|
809
|
-
internalType: "
|
|
810
|
-
name: "
|
|
811
|
-
type: "
|
|
637
|
+
internalType: "uint256",
|
|
638
|
+
name: "syBalance",
|
|
639
|
+
type: "uint256",
|
|
812
640
|
},
|
|
813
641
|
{
|
|
814
|
-
internalType: "
|
|
815
|
-
name: "
|
|
816
|
-
type: "
|
|
642
|
+
internalType: "uint256",
|
|
643
|
+
name: "buyBins",
|
|
644
|
+
type: "uint256",
|
|
817
645
|
},
|
|
646
|
+
],
|
|
647
|
+
internalType: "struct BotState",
|
|
648
|
+
name: "botState",
|
|
649
|
+
type: "tuple",
|
|
650
|
+
},
|
|
651
|
+
{
|
|
652
|
+
components: [
|
|
818
653
|
{
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
654
|
+
components: [
|
|
655
|
+
{
|
|
656
|
+
internalType: "int256",
|
|
657
|
+
name: "totalPt",
|
|
658
|
+
type: "int256",
|
|
659
|
+
},
|
|
660
|
+
{
|
|
661
|
+
internalType: "int256",
|
|
662
|
+
name: "totalSy",
|
|
663
|
+
type: "int256",
|
|
664
|
+
},
|
|
665
|
+
{
|
|
666
|
+
internalType: "int256",
|
|
667
|
+
name: "totalLp",
|
|
668
|
+
type: "int256",
|
|
669
|
+
},
|
|
670
|
+
{
|
|
671
|
+
internalType: "address",
|
|
672
|
+
name: "treasury",
|
|
673
|
+
type: "address",
|
|
674
|
+
},
|
|
675
|
+
{
|
|
676
|
+
internalType: "int256",
|
|
677
|
+
name: "scalarRoot",
|
|
678
|
+
type: "int256",
|
|
679
|
+
},
|
|
680
|
+
{
|
|
681
|
+
internalType: "uint256",
|
|
682
|
+
name: "expiry",
|
|
683
|
+
type: "uint256",
|
|
684
|
+
},
|
|
685
|
+
{
|
|
686
|
+
internalType: "uint256",
|
|
687
|
+
name: "lnFeeRateRoot",
|
|
688
|
+
type: "uint256",
|
|
689
|
+
},
|
|
690
|
+
{
|
|
691
|
+
internalType: "uint256",
|
|
692
|
+
name: "reserveFeePercent",
|
|
693
|
+
type: "uint256",
|
|
694
|
+
},
|
|
695
|
+
{
|
|
696
|
+
internalType: "uint256",
|
|
697
|
+
name: "lastLnImpliedRate",
|
|
698
|
+
type: "uint256",
|
|
699
|
+
},
|
|
700
|
+
],
|
|
701
|
+
internalType: "struct MarketState",
|
|
702
|
+
name: "state",
|
|
703
|
+
type: "tuple",
|
|
704
|
+
},
|
|
705
|
+
{
|
|
706
|
+
internalType: "PYIndex",
|
|
707
|
+
name: "index",
|
|
708
|
+
type: "uint256",
|
|
822
709
|
},
|
|
823
710
|
{
|
|
824
711
|
internalType: "uint256",
|
|
825
|
-
name: "
|
|
712
|
+
name: "blockTime",
|
|
826
713
|
type: "uint256",
|
|
827
714
|
},
|
|
715
|
+
],
|
|
716
|
+
internalType: "struct MarketExtState",
|
|
717
|
+
name: "marketExt",
|
|
718
|
+
type: "tuple",
|
|
719
|
+
},
|
|
720
|
+
{
|
|
721
|
+
components: [
|
|
828
722
|
{
|
|
829
723
|
internalType: "uint256",
|
|
830
|
-
name: "
|
|
724
|
+
name: "buyYtIy",
|
|
831
725
|
type: "uint256",
|
|
832
726
|
},
|
|
833
727
|
{
|
|
834
728
|
internalType: "uint256",
|
|
835
|
-
name: "
|
|
729
|
+
name: "sellYtIy",
|
|
836
730
|
type: "uint256",
|
|
837
731
|
},
|
|
838
732
|
{
|
|
839
733
|
internalType: "uint256",
|
|
840
|
-
name: "
|
|
734
|
+
name: "targetSyRatio",
|
|
735
|
+
type: "uint256",
|
|
736
|
+
},
|
|
737
|
+
{
|
|
738
|
+
internalType: "uint256",
|
|
739
|
+
name: "maxSyRatio",
|
|
740
|
+
type: "uint256",
|
|
741
|
+
},
|
|
742
|
+
{
|
|
743
|
+
internalType: "uint256",
|
|
744
|
+
name: "minYtPtRatio",
|
|
745
|
+
type: "uint256",
|
|
746
|
+
},
|
|
747
|
+
{
|
|
748
|
+
internalType: "uint256",
|
|
749
|
+
name: "numOfBins",
|
|
841
750
|
type: "uint256",
|
|
842
751
|
},
|
|
843
752
|
],
|
|
844
|
-
internalType: "struct
|
|
845
|
-
name: "
|
|
753
|
+
internalType: "struct LongTradingSpecs",
|
|
754
|
+
name: "specs",
|
|
846
755
|
type: "tuple",
|
|
847
756
|
},
|
|
848
|
-
{
|
|
849
|
-
internalType: "PYIndex",
|
|
850
|
-
name: "index",
|
|
851
|
-
type: "uint256",
|
|
852
|
-
},
|
|
853
|
-
{
|
|
854
|
-
internalType: "uint256",
|
|
855
|
-
name: "blockTime",
|
|
856
|
-
type: "uint256",
|
|
857
|
-
},
|
|
858
757
|
],
|
|
859
|
-
internalType: "struct
|
|
860
|
-
name: "
|
|
758
|
+
internalType: "struct StrategyData",
|
|
759
|
+
name: "strategyData",
|
|
861
760
|
type: "tuple",
|
|
862
761
|
},
|
|
863
762
|
{
|
|
@@ -899,23 +798,17 @@ const _abi = [
|
|
|
899
798
|
},
|
|
900
799
|
],
|
|
901
800
|
internalType: "struct ApproxParams",
|
|
902
|
-
name: "
|
|
801
|
+
name: "swapApproxParams",
|
|
903
802
|
type: "tuple",
|
|
904
803
|
},
|
|
905
804
|
],
|
|
906
|
-
name: "
|
|
805
|
+
name: "previewAction",
|
|
907
806
|
outputs: [
|
|
908
807
|
{
|
|
909
|
-
internalType: "
|
|
910
|
-
name: "",
|
|
911
|
-
type: "
|
|
808
|
+
internalType: "bool",
|
|
809
|
+
name: "success",
|
|
810
|
+
type: "bool",
|
|
912
811
|
},
|
|
913
|
-
],
|
|
914
|
-
stateMutability: "pure",
|
|
915
|
-
type: "function",
|
|
916
|
-
},
|
|
917
|
-
{
|
|
918
|
-
inputs: [
|
|
919
812
|
{
|
|
920
813
|
components: [
|
|
921
814
|
{
|
|
@@ -933,6 +826,11 @@ const _abi = [
|
|
|
933
826
|
name: "syBalance",
|
|
934
827
|
type: "uint256",
|
|
935
828
|
},
|
|
829
|
+
{
|
|
830
|
+
internalType: "uint256",
|
|
831
|
+
name: "buyBins",
|
|
832
|
+
type: "uint256",
|
|
833
|
+
},
|
|
936
834
|
],
|
|
937
835
|
internalType: "struct BotState",
|
|
938
836
|
name: "bot",
|
|
@@ -1007,71 +905,242 @@ const _abi = [
|
|
|
1007
905
|
name: "marketExt",
|
|
1008
906
|
type: "tuple",
|
|
1009
907
|
},
|
|
908
|
+
],
|
|
909
|
+
stateMutability: "pure",
|
|
910
|
+
type: "function",
|
|
911
|
+
},
|
|
912
|
+
{
|
|
913
|
+
inputs: [
|
|
1010
914
|
{
|
|
1011
915
|
components: [
|
|
1012
916
|
{
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
917
|
+
components: [
|
|
918
|
+
{
|
|
919
|
+
internalType: "uint256",
|
|
920
|
+
name: "lpBalance",
|
|
921
|
+
type: "uint256",
|
|
922
|
+
},
|
|
923
|
+
{
|
|
924
|
+
internalType: "uint256",
|
|
925
|
+
name: "ytBalance",
|
|
926
|
+
type: "uint256",
|
|
927
|
+
},
|
|
928
|
+
{
|
|
929
|
+
internalType: "uint256",
|
|
930
|
+
name: "syBalance",
|
|
931
|
+
type: "uint256",
|
|
932
|
+
},
|
|
933
|
+
{
|
|
934
|
+
internalType: "uint256",
|
|
935
|
+
name: "buyBins",
|
|
936
|
+
type: "uint256",
|
|
937
|
+
},
|
|
938
|
+
],
|
|
939
|
+
internalType: "struct BotState",
|
|
940
|
+
name: "botState",
|
|
941
|
+
type: "tuple",
|
|
1016
942
|
},
|
|
943
|
+
{
|
|
944
|
+
components: [
|
|
945
|
+
{
|
|
946
|
+
components: [
|
|
947
|
+
{
|
|
948
|
+
internalType: "int256",
|
|
949
|
+
name: "totalPt",
|
|
950
|
+
type: "int256",
|
|
951
|
+
},
|
|
952
|
+
{
|
|
953
|
+
internalType: "int256",
|
|
954
|
+
name: "totalSy",
|
|
955
|
+
type: "int256",
|
|
956
|
+
},
|
|
957
|
+
{
|
|
958
|
+
internalType: "int256",
|
|
959
|
+
name: "totalLp",
|
|
960
|
+
type: "int256",
|
|
961
|
+
},
|
|
962
|
+
{
|
|
963
|
+
internalType: "address",
|
|
964
|
+
name: "treasury",
|
|
965
|
+
type: "address",
|
|
966
|
+
},
|
|
967
|
+
{
|
|
968
|
+
internalType: "int256",
|
|
969
|
+
name: "scalarRoot",
|
|
970
|
+
type: "int256",
|
|
971
|
+
},
|
|
972
|
+
{
|
|
973
|
+
internalType: "uint256",
|
|
974
|
+
name: "expiry",
|
|
975
|
+
type: "uint256",
|
|
976
|
+
},
|
|
977
|
+
{
|
|
978
|
+
internalType: "uint256",
|
|
979
|
+
name: "lnFeeRateRoot",
|
|
980
|
+
type: "uint256",
|
|
981
|
+
},
|
|
982
|
+
{
|
|
983
|
+
internalType: "uint256",
|
|
984
|
+
name: "reserveFeePercent",
|
|
985
|
+
type: "uint256",
|
|
986
|
+
},
|
|
987
|
+
{
|
|
988
|
+
internalType: "uint256",
|
|
989
|
+
name: "lastLnImpliedRate",
|
|
990
|
+
type: "uint256",
|
|
991
|
+
},
|
|
992
|
+
],
|
|
993
|
+
internalType: "struct MarketState",
|
|
994
|
+
name: "state",
|
|
995
|
+
type: "tuple",
|
|
996
|
+
},
|
|
997
|
+
{
|
|
998
|
+
internalType: "PYIndex",
|
|
999
|
+
name: "index",
|
|
1000
|
+
type: "uint256",
|
|
1001
|
+
},
|
|
1002
|
+
{
|
|
1003
|
+
internalType: "uint256",
|
|
1004
|
+
name: "blockTime",
|
|
1005
|
+
type: "uint256",
|
|
1006
|
+
},
|
|
1007
|
+
],
|
|
1008
|
+
internalType: "struct MarketExtState",
|
|
1009
|
+
name: "marketExt",
|
|
1010
|
+
type: "tuple",
|
|
1011
|
+
},
|
|
1012
|
+
{
|
|
1013
|
+
components: [
|
|
1014
|
+
{
|
|
1015
|
+
internalType: "uint256",
|
|
1016
|
+
name: "buyYtIy",
|
|
1017
|
+
type: "uint256",
|
|
1018
|
+
},
|
|
1019
|
+
{
|
|
1020
|
+
internalType: "uint256",
|
|
1021
|
+
name: "sellYtIy",
|
|
1022
|
+
type: "uint256",
|
|
1023
|
+
},
|
|
1024
|
+
{
|
|
1025
|
+
internalType: "uint256",
|
|
1026
|
+
name: "targetSyRatio",
|
|
1027
|
+
type: "uint256",
|
|
1028
|
+
},
|
|
1029
|
+
{
|
|
1030
|
+
internalType: "uint256",
|
|
1031
|
+
name: "maxSyRatio",
|
|
1032
|
+
type: "uint256",
|
|
1033
|
+
},
|
|
1034
|
+
{
|
|
1035
|
+
internalType: "uint256",
|
|
1036
|
+
name: "minYtPtRatio",
|
|
1037
|
+
type: "uint256",
|
|
1038
|
+
},
|
|
1039
|
+
{
|
|
1040
|
+
internalType: "uint256",
|
|
1041
|
+
name: "numOfBins",
|
|
1042
|
+
type: "uint256",
|
|
1043
|
+
},
|
|
1044
|
+
],
|
|
1045
|
+
internalType: "struct LongTradingSpecs",
|
|
1046
|
+
name: "specs",
|
|
1047
|
+
type: "tuple",
|
|
1048
|
+
},
|
|
1049
|
+
],
|
|
1050
|
+
internalType: "struct StrategyData",
|
|
1051
|
+
name: "strategyData",
|
|
1052
|
+
type: "tuple",
|
|
1053
|
+
},
|
|
1054
|
+
{
|
|
1055
|
+
internalType: "enum ActionType",
|
|
1056
|
+
name: "action",
|
|
1057
|
+
type: "uint8",
|
|
1058
|
+
},
|
|
1059
|
+
{
|
|
1060
|
+
internalType: "uint256",
|
|
1061
|
+
name: "targetIy",
|
|
1062
|
+
type: "uint256",
|
|
1063
|
+
},
|
|
1064
|
+
{
|
|
1065
|
+
components: [
|
|
1017
1066
|
{
|
|
1018
1067
|
internalType: "uint256",
|
|
1019
|
-
name: "
|
|
1068
|
+
name: "guessMin",
|
|
1020
1069
|
type: "uint256",
|
|
1021
1070
|
},
|
|
1022
1071
|
{
|
|
1023
1072
|
internalType: "uint256",
|
|
1024
|
-
name: "
|
|
1073
|
+
name: "guessMax",
|
|
1025
1074
|
type: "uint256",
|
|
1026
1075
|
},
|
|
1027
1076
|
{
|
|
1028
1077
|
internalType: "uint256",
|
|
1029
|
-
name: "
|
|
1078
|
+
name: "guessOffchain",
|
|
1030
1079
|
type: "uint256",
|
|
1031
1080
|
},
|
|
1032
1081
|
{
|
|
1033
1082
|
internalType: "uint256",
|
|
1034
|
-
name: "
|
|
1083
|
+
name: "maxIteration",
|
|
1035
1084
|
type: "uint256",
|
|
1036
1085
|
},
|
|
1037
1086
|
{
|
|
1038
1087
|
internalType: "uint256",
|
|
1039
|
-
name: "
|
|
1088
|
+
name: "eps",
|
|
1040
1089
|
type: "uint256",
|
|
1041
1090
|
},
|
|
1042
1091
|
],
|
|
1043
|
-
internalType: "struct
|
|
1044
|
-
name: "
|
|
1092
|
+
internalType: "struct ApproxParams",
|
|
1093
|
+
name: "botParams",
|
|
1045
1094
|
type: "tuple",
|
|
1046
1095
|
},
|
|
1047
|
-
],
|
|
1048
|
-
name: "strategyState",
|
|
1049
|
-
outputs: [
|
|
1050
1096
|
{
|
|
1051
1097
|
components: [
|
|
1052
1098
|
{
|
|
1053
|
-
internalType: "
|
|
1054
|
-
name: "
|
|
1055
|
-
type: "
|
|
1099
|
+
internalType: "uint256",
|
|
1100
|
+
name: "guessMin",
|
|
1101
|
+
type: "uint256",
|
|
1056
1102
|
},
|
|
1057
1103
|
{
|
|
1058
|
-
internalType: "
|
|
1059
|
-
name: "
|
|
1060
|
-
type: "
|
|
1104
|
+
internalType: "uint256",
|
|
1105
|
+
name: "guessMax",
|
|
1106
|
+
type: "uint256",
|
|
1107
|
+
},
|
|
1108
|
+
{
|
|
1109
|
+
internalType: "uint256",
|
|
1110
|
+
name: "guessOffchain",
|
|
1111
|
+
type: "uint256",
|
|
1112
|
+
},
|
|
1113
|
+
{
|
|
1114
|
+
internalType: "uint256",
|
|
1115
|
+
name: "maxIteration",
|
|
1116
|
+
type: "uint256",
|
|
1117
|
+
},
|
|
1118
|
+
{
|
|
1119
|
+
internalType: "uint256",
|
|
1120
|
+
name: "eps",
|
|
1121
|
+
type: "uint256",
|
|
1061
1122
|
},
|
|
1062
1123
|
],
|
|
1063
|
-
internalType: "struct
|
|
1064
|
-
name: "
|
|
1124
|
+
internalType: "struct ApproxParams",
|
|
1125
|
+
name: "intParams",
|
|
1065
1126
|
type: "tuple",
|
|
1066
1127
|
},
|
|
1067
1128
|
],
|
|
1129
|
+
name: "searchForBotParam",
|
|
1130
|
+
outputs: [
|
|
1131
|
+
{
|
|
1132
|
+
internalType: "uint256",
|
|
1133
|
+
name: "",
|
|
1134
|
+
type: "uint256",
|
|
1135
|
+
},
|
|
1136
|
+
],
|
|
1068
1137
|
stateMutability: "pure",
|
|
1069
1138
|
type: "function",
|
|
1070
1139
|
},
|
|
1071
1140
|
];
|
|
1072
1141
|
|
|
1073
1142
|
const _bytecode =
|
|
1074
|
-
"0x608060405234801561001057600080fd5b506135e2806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063124fdedb1461006757806333cace2a1461013e578063675ea12b1461015e578063896d88d31461017f578063914185af1461019f578063b3a332eb146101c0575b600080fd5b61007a6100753660046130c5565b6101f3565b6040516101359392919060006101e0820190508415158252835160208301526020840151604083015260408401516060830152825180516080840152602081015160a0840152604081015160c084015260018060a01b0360608201511660e08401526080810151610100818186015260a083015161012086015260c083015161014086015260e08301516101608601528083015161018086015250505060208301516101a083015260408301516101c0830152949350505050565b60405180910390f35b61015161014c366004613139565b6102e7565b60405161013591906131df565b61017161016c3660046131f9565b610407565b604051908152602001610135565b61019261018d3660046132d3565b61044f565b604051610135919061332b565b6101b26101ad366004613358565b6104f6565b6040516101359291906133d6565b6101d36101ce3660046133f3565b610802565b604080519485526020850193909352918301526060820152608001610135565b60006101fd612e30565b610205612e51565b61020e88610876565b9150610219876108a2565b9050600086600581111561022f5761022f6131c9565b036102465761023f8282876108e0565b92506102dc565b600186600581111561025a5761025a6131c9565b0361026a5761023f82828761093e565b600286600581111561027e5761027e6131c9565b0361028e5761023f8282876109b1565b60038660058111156102a2576102a26131c9565b036102b25761023f828287610a00565b60048660058111156102c6576102c66131c9565b036102d75761023f82828787610a3b565b600092505b955095509592505050565b60006001825160028111156102fe576102fe6131c9565b036103555760028260200151600281111561031b5761031b6131c9565b0361033c57826040015160000361033457506005610401565b506000610401565b825160000361034d57506005610401565b506004610401565b60008251600281111561036a5761036a6131c9565b036103b057600282602001516002811115610387576103876131c9565b036103a85782604001516000036103a057506005610401565b506001610401565b506005610401565b6002826020015160028111156103c8576103c86131c9565b036103e95782604001516000036103e157506005610401565b506002610401565b82602001516000036103fd57506005610401565b5060035b92915050565b6000600484600581111561041d5761041d6131c9565b036104435760006104398484610432896108a2565b9190610a71565b9250610447915050565b5060005b949350505050565b604080518082019091526000808252602082015260008060006104728787610802565b9350935093505084600001518310156104a4578360015b9081600281111561049c5761049c6131c9565b9052506104cc565b8285602001511080156104ba5750846080015181115b156104c757836002610489565b600084525b84604001518211156104e457600260208501526104ec565b600060208501525b5050509392505050565b600080600060405180608001604052808a815260200189815260200188815260200187600581111561052a5761052a6131c9565b90526040860151909150156105c45760006105618660800151670de0b6b3a7640000610556919061343f565b604088015190610b0e565b9050600161057483886040015188610b31565b6002811115610585576105856131c9565b1480156105ad5750600261059a838388610b31565b60028111156105ab576105ab6131c9565b145b156105c25750505050604082015160016107f7565b505b60006105d18a8a89610b99565b905080866020015111156105e757602086018190525b60208601518651111561063257866005811115610606576106066131c9565b8651602088015160405163f25ccea360e01b815261062993929190600401613452565b60405180910390fd5b600261064383886020015188610b31565b6002811115610654576106546131c9565b036106695750505050602082015160026107f7565b50600061067b82876000015187610b31565b90506000816002811115610691576106916131c9565b036106c5578660058111156106a8576106a86131c9565b8651604051630cf4fb5360e31b8152610629929190600401613468565b60018160028111156106d9576106d96131c9565b036106ed57505083519150600190506107f7565b5060005b85606001518110156107dd576000600287600001518860200151610715919061343f565b61071f919061348c565b875161072b91906134a0565b9050600261073a848389610b31565b600281111561074b5761074b6131c9565b0361075857808752610760565b602087018190525b610777876000015188602001518960800151610c54565b156107cc57600061078d84896000015189610b31565b600281111561079e5761079e6131c9565b036107bc5786516107b0848289610b31565b945094505050506107f7565b60208701516107b0848289610b31565b506107d6816134b3565b90506106f1565b5060405163fef33c9d60e01b815260040160405180910390fd5b965096945050505050565b60008080806108118686610c87565b935061081c85610d60565b604087015190935061082e9085610dad565b915060006108498760000151610843886108a2565b90610dd3565b91505080156108665760208701516108619082610dad565b61086a565b6000195b91505092959194509250565b61087e612e30565b50604080516060810182528251815260208084015190820152918101519082015290565b6108aa612e51565b60405180606001604052806108c28460000151610e8a565b81526020018360200151815260200183604001518152509050919050565b6000806108ed8484610f07565b90508460400151811115610905576000915050610937565b8085604001818151610917919061343f565b90525060208501805184919061092e9083906134a0565b90525060019150505b9392505050565b6000836040015182111561095457506000610937565b6000806109618585610f57565b915091508386604001818151610977919061343f565b90525085518290879061098b9083906134a0565b9052506020860180518291906109a29083906134a0565b90525060019695505050505050565b600080806109bf8585610fe3565b9150915085604001518111156109da57600092505050610937565b80866040018181516109ec919061343f565b9052508551829087906109a29083906134a0565b60008080610a0e8585611066565b915091508560200151811115610a2957600092505050610937565b80866020018181516109ec919061343f565b8351600090831115610a4f57506000610447565b6000610a5c858585610a71565b509050838660000181815161098b919061343f565b600080600080610a818787610dd3565b915091506000610a9e83896020015161116a90919063ffffffff16565b90506000610aac82846134a0565b90506000610ad28a60200151838c60400151610ac78c611176565b8e51939291906111ea565b5060208c015160408d01518d51929950929350610af0928990611300565b5050508083610aff91906134a0565b96505050505050935093915050565b600080610b1b83856134cc565b9050670de0b6b3a7640000815b04949350505050565b600080600080610b5087600001518860200151896060015189896101f3565b92509250925082610b675760009350505050610937565b610b7b828289604001518a60600151611351565b15610b8c5760019350505050610937565b5060029695505050505050565b600080826005811115610bae57610bae6131c9565b03610bc357610bbc8361149d565b9050610937565b6001826005811115610bd757610bd76131c9565b03610be757506040830151610937565b6002826005811115610bfb57610bfb6131c9565b03610c0957610bbc836114d8565b6003826005811115610c1d57610c1d6131c9565b03610c2b57610bbc836114d8565b6004826005811115610c3f57610c3f6131c9565b03610c4c57508251610937565b506000610937565b60008284111580156104475750610c7c83610c7784670de0b6b3a764000061343f565b610b0e565b841015949350505050565b600080610c93836108a2565b9050600080610caf866000015184610dd390919063ffffffff16565b915091506000828760400151610cc591906134a0565b905086602001518211610d1357610cdc84836114fe565b610ce690826134a0565b9050610d02828860200151610cfb919061343f565b8590611510565b610d0c90826134a0565b9050610d56565b6020870151610d239085906114fe565b610d2d90826134a0565b9050610d49876020015183610d42919061343f565b859061156b565b610d5390826134a0565b90505b9695505050505050565b6000670de0b6b3a7640000610da3610d948460400151856000015160a00151610d89919061343f565b6301e1338090610dad565b610d9d8561158f565b906115dc565b610401919061343f565b600080610dc2670de0b6b3a7640000856134cc565b9050828181610b2857610b28613476565b6000806000610de184611785565b85516040810151602090910151919250600091610dfe90846134e3565b610e089190613513565b865160408101519051919250600091610e2190856134e3565b610e2b9190613513565b875160400151909150610e3e908461179f565b875160400152865151610e51908261179f565b875152865160200151610e64908361179f565b875160200152610e73826117e6565b610e7c826117e6565b945094505050509250929050565b610e92612e78565b60405180610120016040528083600001518152602001836020015181526020018360400151815260200183606001516001600160a01b03168152602001836080015181526020018360a0015181526020018360c0015181526020018360e0015181526020018361010001518152509050919050565b6020820151604083015183516000928392610f259291908690611300565b505090506000610f428486602001516117f590919063ffffffff16565b9050610f4e8183611801565b95945050505050565b6000806000610f7b610f708660000151602001516117e6565b60208701519061116a565b855151610f87906117e6565b610f9191906134a0565b855151610f9d906117e6565b610fa790866134cc565b610fb1919061348c565b6020860151909150610fc3908261116a565b9150610fd985610fd3838761343f565b84611818565b9250509250929050565b600080600061100b856020015185876040015188600001516119ee909392919063ffffffff16565b505085515190915060009061101f906117e6565b86516020015161102e906117e6565b61103890876134cc565b611042919061348c565b905061104f868287611818565b935061105b81836134a0565b925050509250929050565b600080600061108e856020015185876040015188600001516119ee909392919063ffffffff16565b5050602086015190915060006110a482846134cc565b6110b6670de0b6b3a7640000886134cc565b6110c0919061343f565b8751519091506000906110d2906117e6565b836110e48a60000151602001516117e6565b6110ee91906134cc565b6110f8919061348c565b61110a90670de0b6b3a76400006134a0565b90506000611118828461348c565b9050611124818961343f565b9550600061113f878b60200151611a1c90919063ffffffff16565b9050600061114d878361343f565b905061115a8b8285611818565b9850505050505050509250929050565b60006109378383611a28565b6111a86040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060a001604052808360000151815260200183602001518152602001836040015181526020018360600151815260200183608001518152509050919050565b60008080806111fa898988611a47565b9050846040015160000361123c5784516112149088611b41565b8552602085015161122e906112298b84611b57565b611bdb565b602086015261123c85611bea565b60005b85606001518110156112e65760006112578783611c38565b90506000806112688d868e86611ca4565b509092509050600061127a8d8461116a565b90506000611288828661343f565b90508c81116112bf576112a0818e8d60800151610c54565b156112b7575097509195509093506102dc92505050565b848b526112d0565b6112ca60018661343f565b60208c01525b5050505050806112df906134b3565b905061123f565b50604051637d388ed960e11b815260040160405180910390fd5b60008060008060008061131d8a8a6113178b611cd5565b8a611cec565b92509250925061132c836117e6565b9550611337826117e6565b9450611342816117e6565b93505050509450945094915050565b60008060028460200151856000015161136a91906134a0565b611374919061348c565b905060008060006113858989610802565b91955093509150600090508660058111156113a2576113a26131c9565b036113c55783831015806113ba575086606001518211155b945050505050610447565b60018660058111156113d9576113d96131c9565b036113f1578660600151821115945050505050610447565b6002866005811115611405576114056131c9565b0361143657838311158061141d575086606001518211155b806113ba57508660a00151811115945050505050610447565b600386600581111561144a5761144a6131c9565b0361146c5783831115806113ba57508660a00151811115945050505050610447565b6004866005811115611480576114806131c9565b0361149057505010159050610447565b6001945050505050610447565b805160208201516040830151600092600a926114c3926114be918391611a47565b611b57565b6114ce9060096134cc565b610401919061348c565b602081015160408201518251600092610401926114f6929190611a47565b835151611d7f565b60208201516000906109379083611a1c565b602082015160408301518351600092839261152e92919086906119ee565b50509050600061154b828660200151611e1e90919063ffffffff16565b90506000611559828661343f565b6020870151909150610d569082611a1c565b602082015160408301518351600092611585928590611300565b5090949350505050565b60208101516040820151825160009283926115ab929190611a47565b905060006115d18460000151600001518360200151846000015185604001516000611e2b565b9050610447816117e6565b6000816000036115f55750670de0b6b3a7640000610401565b8260000361160557506000610401565b600160ff1b831061164a5760405162461bcd60e51b815260206004820152600f60248201526e78206f7574206f6620626f756e647360881b6044820152606401610629565b82770bce5086492111aea88f4bb1ca6bcf584181ea8059f7653283106116a45760405162461bcd60e51b815260206004820152600f60248201526e79206f7574206f6620626f756e647360881b6044820152606401610629565b826000670c7d713b49da0000831380156116c55750670f43fc2c04ee000083125b156116fc5760006116d584611edc565b9050670de0b6b3a764000080820784020583670de0b6b3a76400008305020191505061170a565b8161170684611ffb565b0290505b670de0b6b3a76400009005680238fd42c5cf03ffff198112801590611738575068070c1cc73b00c800008113155b61177c5760405162461bcd60e51b815260206004820152601560248201527470726f64756374206f7574206f6620626f756e647360581b6044820152606401610629565b610d568161239e565b60006001600160ff1b0382111561179b57600080fd5b5090565b6000818312156117dc5760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b6044820152606401610629565b6109378284613541565b60008082121561179b57600080fd5b600061093783836127b3565b600081831015611812576000610937565b50900390565b825160a001516040840151600091116118725760405162461bcd60e51b815260206004820152601c60248201527b13585c9ad95d115e1d131a588e88195e1c1a5c9959081b585c9ad95d60221b6044820152606401610629565b8351604001516000126118be5760405162461bcd60e51b815260206004820152601460248201527304d61726b65744578744c69623a204c50203c20360641b6044820152606401610629565b60006118c984611785565b905060006118d684611785565b90506000806000808960000151600001518a6000015160400151866118fb91906134e3565b6119059190613513565b8a51602081015160409091015191925060009161192290896134e3565b61192c9190613513565b905080821215611967578a51604081015160209091015192955086945085926119569084906134e3565b6119609190613513565b9250611990565b8a516040810151905191955087935085916119839083906134e3565b61198d9190613513565b93505b828b600001516020018181516119a69190613568565b9052508a5180518591906119bb908390613568565b9052508a5160400180518691906119d3908390613568565b9052506119df856117e6565b9b9a5050505050505050505050565b600080600080600080611a058a8a6113178b611785565b92509250925061132c611a17846127df565b6117e6565b600061093783836127ed565b6000670de0b6b3a7640000611a3d84846134cc565b610937919061348c565b611a726040518060800160405280600081526020016000815260200160008152602001600081525090565b60a08401518210611a965760405163b2094b5960e01b815260040160405180910390fd5b6000828560a00151611aa8919061343f565b9050611ab48582612802565b82526020850151611ac6908590612863565b602083015284511580611adb57506020820151155b15611b02578451602083015160405163b1c4aefb60e01b8152610629929190600401613468565b611b208560000151866101000151846020015185600001518561289a565b604083015260c0850151611b34908261291b565b6060830152509392505050565b6000818311611b505781610937565b5090919050565b60008060009050600060018460200151611b71919061343f565b90505b808214611bd35760006002611b8983856134a0565b611b949060016134a0565b611b9e919061348c565b90506000611bb18688600001518461294f565b1215611bc957611bc260018261343f565b9150611bcd565b8092505b50611b74565b509392505050565b6000818310611b505781610937565b602081015181511180611c085750670de0b6b3a76400008160800151115b15611c3557805160208201516080830151604051632cc06bc160e21b815261062993929190600401613452565b50565b600081158015611c4b5750604083015115155b15611c5b57506040820151610401565b6020830151835111611c8b5760208301518351600291611c7a916134a0565b611c84919061348c565b9050610401565b604051637d388ed960e11b815260040160405180910390fd5b60008080808080611cc28989611cb98a613590565b8d929190612a41565b919c909b50909950975050505050505050565b6000611ce082611785565b610401906000196134e3565b6000806000611cff8760a0015185101590565b15611d1d5760405163b2094b5960e01b815260040160405180910390fd5b86518512611d43578651604051632185509b60e21b815261062991908790600401613468565b6000611d50888887611a47565b9050611d5e88828989612a41565b91955093509150611d748882898988878b612b95565b509450945094915050565b600080611dac611da7856000015186604001518760600151611da19190613541565b90612c27565b61239e565b90506000611dcc611dc5670de0b6b3a764000084613568565b8390612c4a565b90506000611dea866020015186611de39190613568565b8390612c27565b90506000611df88287613541565b90506103e8611e09826103e76134cc565b611e13919061348c565b979650505050505050565b6000826104478184612c70565b600080611e38878461179f565b90506000611e49611dc5888a613568565b9050670d529ae9e8600000811315611e805780670d529ae9e8600000604051637e34684f60e11b8152600401610629929190613468565b6000611e8b82612c88565b905085611e988289612c4a565b611ea29190613568565b9350670de0b6b3a7640000841215611ed05760405163329e322960e21b815260048101859052602401610629565b50505095945050505050565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281611f1d57611f1d613476565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a764000082121561203c57612033826a0c097ce7bc90715b34b9f160241b8161202d5761202d613476565b05611ffb565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b83126120875772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b83126120be576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312612106576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312612141576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf850831261217857693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e283126121af57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d0383126121e45768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb41746121110831261220f57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312612244576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312612279576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b28660383126122ad576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac83126122e1576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d63100000808603028161230a5761230a613476565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6000680238fd42c5cf03ffff1982121580156123c3575068070c1cc73b00c800008213155b6124025760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610629565b600082121561243a576124178260000361239e565b6a0c097ce7bc90715b34b9f160241b8161243357612433613476565b0592915050565b60006806f05b59d3b2000000831261247857506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b6124ae565b6803782dace9d900000083126124aa57506803782dace9d8ffffff19909101906b1425982cf597cd205cef73806124ae565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126124fe5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d631000000841261253a576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261257457682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126125ae576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac620000084126125e757680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126126205768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412612659576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126126925768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6000826001816127cb670de0b6b3a7640000866134cc565b6127d591906134a0565b611a3d919061343f565b6000610401826000196134e3565b600082611a3d670de0b6b3a7640000846134cc565b600061280d82611785565b61282461281f6201518061016d6134cc565b611785565b846080015161283391906134e3565b61283d9190613513565b90506000811361040157604051630e520c3b60e11b815260048101829052602401610629565b60008060008312612875576001612879565b6000195b905061289061281f8561288b86612cdb565b611a28565b61044790826134e3565b6000806128a7868461291b565b9050670de0b6b3a76400008112156128d55760405163329e322960e21b815260048101829052602401610629565b60006128eb6128e4878a613568565b8990612c4a565b905060006128f882612c88565b90506129048187612c4a565b61290e9084613541565b9998505050505050505050565b60008061292d6201518061016d6134cc565b61293784866134cc565b612941919061348c565b9050610447611da782611785565b6000808285602001516129629190613541565b905060006129708585613568565b90506000821380156129825750600081135b6129c35760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b6044820152606401610629565b60006129f16129d284846134e3565b60208901516129e19089613568565b6129eb90886134e3565b90612c4a565b90506000612a07612a028486612c4a565b612cf2565b8851909150600090612a2290670de0b6b3a764000090612c4a565b9050612a3281611da18486613541565b896040015161290e9190613541565b600080600080612a648860000151886020015189600001518a6040015189611e2b565b90506000612a7a612a758784612c4a565b6127df565b60608901519091506000871315612ae9576000612a978483612c4a565b9050670de0b6b3a7640000811215612ac55760405163329e322960e21b815260048101829052602401610629565b612ae1612ada83670de0b6b3a7640000613541565b8490612c27565b915050612b16565b612b1381612aff81670de0b6b3a7640000613541565b612b0990856134e3565b612a759190613513565b90505b60006064612b278c60e00151611785565b612b3190846134e3565b612b3b9190613513565b90506000612b498385613541565b905060008112612b6257612b5d8a82612d83565b612b6c565b612b6c8a82612db0565b9750612b788a84612d83565b9650612b848a83612d83565b955050505050509450945094915050565b6000818860a00151612ba7919061343f565b8851909150612bb6908661179f565b8852612bd0612bc58486613568565b60208a01519061179f565b602089018190528851612bf591612be8908990612863565b895160408b015185612ddd565b6101008901819052600003612c1d57604051635534d70f60e11b815260040160405180910390fd5b5050505050505050565b600080612c3483856134e3565b9050670de0b6b3a7640000815b05949350505050565b600080612c5f670de0b6b3a7640000856134e3565b9050828181612c4157612c41613476565b6000670de0b6b3a76400006001816127cb86866134cc565b6000670de0b6b3a76400008203612cb25760405163a9c8b14d60e01b815260040160405180910390fd5b6000612cd0612cc984670de0b6b3a7640000613541565b8490612c4a565b905061093781612cf2565b600080821361179b57612ced82613590565b610401565b6000808213612d335760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606401610629565b670c7d713b49da000082138015612d515750670f43fc2c04ee000082125b15612d7557670de0b6b3a7640000612d6883611edc565b8161243357612433613476565b61040182611ffb565b919050565b60008060008312612d95576001612d99565b6000195b905061289061281f85612dab86612cdb565b6127ed565b60008060008312612dc2576001612dc6565b6000195b905061289061281f85612dd886612cdb565b6127b3565b600080612dee878787876000611e2b565b90506000612dfe611a1783612cf2565b905083612e106201518061016d6134cc565b612e1a90836134cc565b612e24919061348c565b98975050505050505050565b60405180606001604052806000815260200160008152602001600081525090565b6040518060600160405280612e64612e78565b815260200160008152602001600081525090565b60405180610120016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051606081016001600160401b0381118282101715612efd57634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b0381118282101715612efd57634e487b7160e01b600052604160045260246000fd5b600060608284031215612f4657600080fd5b612f4e612ecd565b905081358152602082013560208201526040820135604082015292915050565b80356001600160a01b0381168114612d7e57600080fd5b6000818303610160811215612f9957600080fd5b612fa1612ecd565b915061012080821215612fb357600080fd5b612fbb612f03565b9150833582526020840135602083015260408401356040830152612fe160608501612f6e565b60608301526080840135608083015260a084013560a083015260c084013560c083015260e084013560e08301526101008085013581840152508183528084013560208401525050610140820135604082015292915050565b803560068110612d7e57600080fd5b600060a0828403121561305a57600080fd5b60405160a081016001600160401b038111828210171561308a57634e487b7160e01b600052604160045260246000fd5b806040525080915082358152602083013560208201526040830135604082015260608301356060820152608083013560808201525092915050565b60008060008060006102a086880312156130de57600080fd5b6130e88787612f34565b94506130f78760608801612f85565b93506131066101c08701613039565b92506101e0860135915061311e876102008801613048565b90509295509295909350565b803560038110612d7e57600080fd5b60008082840360a081121561314d57600080fd5b6131578585612f34565b92506040605f198201121561316b57600080fd5b50604080519081016001600160401b038111828210171561319c57634e487b7160e01b600052604160045260246000fd5b6040526131ab6060850161312a565b81526131b96080850161312a565b6020820152809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600683106131f3576131f36131c9565b91905290565b600080600080610240858703121561321057600080fd5b61321a8686612f85565b93506132296101608601613039565b92506101808501359150613241866101a08701613048565b905092959194509250565b600060c0828403121561325e57600080fd5b60405160c081016001600160401b038111828210171561328e57634e487b7160e01b600052604160045260246000fd5b8060405250809150823581526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a08201525092915050565b600080600061028084860312156132e957600080fd5b6132f38585612f34565b92506133028560608601612f85565b9150613312856101c0860161324c565b90509250925092565b60038110611c3557611c356131c9565b8151604082019061333b8161331b565b8252602083015161334b8161331b565b8060208401525092915050565b6000806000806000806103e0878903121561337257600080fd5b61337c8888612f34565b955061338b8860608901612f85565b945061339b886101c0890161324c565b93506133aa6102808801613039565b92506133ba886102a08901613048565b91506133ca886103408901613048565b90509295509295509295565b828152604081016133e68361331b565b8260208301529392505050565b6000806101c0838503121561340757600080fd5b6134118484612f34565b91506134208460608501612f85565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561040157610401613429565b9283526020830191909152604082015260600190565b918252602082015260400190565b634e487b7160e01b600052601260045260246000fd5b60008261349b5761349b613476565b500490565b8082018082111561040157610401613429565b6000600182016134c5576134c5613429565b5060010190565b808202811582820484141761040157610401613429565b80820260008212600160ff1b841416156134ff576134ff613429565b818105831482151761040157610401613429565b60008261352257613522613476565b600160ff1b82146000198414161561353c5761353c613429565b500590565b818103600083128015838313168383128216171561356157613561613429565b5092915050565b808201828112600083128015821682158216171561358857613588613429565b505092915050565b6000600160ff1b82016135a5576135a5613429565b506000039056fea2646970667358221220ac9ca2b8ff0c6b372d5d03bdc3a20671c07c3a53f062c1972d206973a5bf6cb864736f6c63430008110033";
|
|
1143
|
+
"0x608060405234801561001057600080fd5b506135d4806100206000396000f3fe608060405234801561001057600080fd5b50600436106100785760003560e01c80631cd7e2011461007d578063329fea081461015f5780638e7274461461018057806397491860146101a05780639d2a679f146101d3578063ac4c7e84146101dc578063c2d38e62146101e9578063d8b88a1a146101fc575b600080fd5b61009061008b366004613079565b61020f565b604051610156939291906000610200820190508415158252835160208301526020840151604083015260408401516060830152606084015160808301528251805160a0840152602081015160c0840152604081015160e0840152606081015161010060018060a01b03821681860152608083015161012086015260a083015161014086015260c083015161016086015260e0830151610180860152808301516101a086015250505060208301516101c083015260408301516101e0830152949350505050565b60405180910390f35b61017261016d3660046130cc565b61029c565b604051908152602001610156565b61019361018e366004613114565b6102e4565b6040516101569190613147565b6101b36101ae366004613194565b610485565b604080519485526020850193909352918301526060820152608001610156565b61017260001981565b610172655af3107a400081565b6101726101f73660046131ca565b6104f9565b61017261020a366004613230565b6106f1565b6000610219612c97565b610221612cbf565b865161022c90610718565b915061023b8760200151610758565b9050600086600281111561025157610251613131565b0361026857610261828287610796565b9250610292565b600186600281111561027c5761027c613131565b0361028d57610261828287876107f6565b600092505b9450945094915050565b600060018460028111156102b2576102b2613131565b036102d85760006102ce84846102c789610758565b9190610852565b92506102dc915050565b5060005b949350505050565b610310604080516080810190915280600081526020016000815260200160008152602001600081525090565b6000826001600160a01b031663eb983ce56040518163ffffffff1660e01b81526004016102a0604051808303816000875af1158015610353573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037791906132b0565b9050600061038882602001516108ef565b905061039d826000015183604001518361093c565b602084018190526000036103b657505060028152919050565b600080846020015112156103f25760018452825180516020860151606090920151604086015160a001516103eb939190610949565b9050610426565b6000808552610400846109e9565b9050610422818660200151866000015160600151876040015160a00151610949565b9150505b61045a838560000151610446866000015187604001518960200151610acd565b61044f85610b21565b6101f7600019610b21565b60408501819052602084015185516104779261016d600019610b21565b606085015250919392505050565b60008080806104948686610b61565b935061049f856108ef565b60408701519093506104b19085610c3a565b915060006104cc87600001516104c688610758565b90610c69565b91505080156104e95760208701516104e49082610c3a565b6104ed565b6000195b91505092959194509250565b600080604051806060016040528088815260200187600281111561051f5761051f613131565b815260200186905260408501519091501561056c57600161054a828660400151876080015187610d20565b600281111561055b5761055b613131565b0361056c57505060408201516106e8565b60006105818860000151896020015189610db3565b9050808560200151111561059757602085018190525b6020850151855111156105e2578660028111156105b6576105b6613131565b8551602087015160405163f25ccea360e01b81526105d9939291906004016133de565b60405180910390fd5b5060026105f9828660200151876080015187610d20565b600281111561060a5761060a613131565b1461061b57505060208201516106e8565b60005b84606001518110156106ce576000600286600001518760200151610642919061340a565b61064c9190613433565b86516106589190613447565b9050600061066c8483896080015189610d20565b9050600181600281111561068257610682613131565b03610692575092506106e8915050565b60008160028111156106a6576106a6613131565b036106b3578187526106bb565b602087018290525b5050806106c79061345a565b905061061e565b5060405163fef33c9d60e01b815260040160405180910390fd5b95945050505050565b60006107128260000151836040015161070d85602001516108ef565b61093c565b92915050565b610720612c97565b604051806080016040528083600001518152602001836020015181526020018360400151815260200183606001518152509050919050565b610760612cbf565b60405180606001604052806107788460000151610e06565b81526020018360200151815260200183604001518152509050919050565b600080806107a48585610e83565b9150915085602001518111156107bf576000925050506107ef565b80866020018181516107d1919061340a565b9052508551829087906107e5908390613447565b9052506001925050505b9392505050565b835160009083111561080a575060006102dc565b6000610817858585610852565b509050838660000181815161082c919061340a565b905250602086018051829190610843908390613447565b90525060019695505050505050565b6000806000806108628787610c69565b91509150600061087f838960200151610f8790919063ffffffff16565b9050600061088d8284613447565b905060006108b38a60200151838c604001516108a88c610f93565b8e5193929190610fdd565b5060208c015160408d01518d519299509293506108d19289906110fe565b50505080836108e09190613447565b96505050505050935093915050565b6000670de0b6b3a76400006109326109238460400151856000015160a00151610918919061340a565b6301e1338090610c3a565b61092c8561114f565b9061119c565b610712919061340a565b60006102dc838584611345565b60008360000361095b5761095b613473565b600080851261097f5783610970846002613489565b61097a919061340a565b610981565b835b9050600081670de0b6b3a76400006109988861135a565b6109a29190613489565b6109ac9190613433565b90506000670de0b6b3a76400006109c78361092c8184613447565b6109d1919061340a565b90506109dd8882611375565b98975050505050505050565b6000806109fd836000015160200151610b21565b90506000610a0c600019610b21565b90505b8151602083015114610ac5576000600283600001518460200151610a33919061340a565b610a3d9190613433565b8351610a499190613447565b90506000806000610a5d886000868861020f565b92509250925082610a8257610a7360018561340a565b602087015250610a0f92505050565b6000610a8e8383610485565b93505050508860400151608001518110610aaa57848752610abb565b610ab560018661340a565b60208801525b5050505050610a0f565b505192915050565b600081600003610adf57610adf613473565b6000610aeb8584611393565b90506000831215610b1357610b0b610b04826001613447565b85906113da565b9150506107ef565b610b0b610b0460018361340a565b610b29612ce6565b6040518060a0016040528060008152602001838152602001600081526020016101008152602001655af3107a40008152509050919050565b600080610b6d83610758565b9050600080610b89866000015184610c6990919063ffffffff16565b915091506000828760400151610b9f9190613447565b905086602001518211610bed57610bb6848361143e565b610bc09082613447565b9050610bdc828860200151610bd5919061340a565b8590611450565b610be69082613447565b9050610c30565b6020870151610bfd90859061143e565b610c079082613447565b9050610c23876020015183610c1c919061340a565b85906114ab565b610c2d9082613447565b90505b9695505050505050565b600080610c4f670de0b6b3a764000085613489565b9050828181610c6057610c6061341d565b04949350505050565b6000806000610c77846114cf565b85516040810151602090910151919250600091610c9490846134a0565b610c9e91906134d0565b865160408101519051919250600091610cb790856134a0565b610cc191906134d0565b875160400151909150610cd490846114e5565b875160400152865151610ce790826114e5565b875152865160200151610cfa90836114e5565b875160200152610d098261152c565b610d128261152c565b945094505050509250929050565b6000806000610d3987600001518860200151888761020f565b925050915081610d4e576002925050506102dc565b6000610d59826108ef565b9050600088602001516002811115610d7357610d73613131565b03610da457610d878189604001518861153b565b15610d9857600193505050506102dc565b600293505050506102dc565b610d878189604001518861156e565b600080826002811115610dc857610dc8613131565b03610ddd57610dd68361159c565b90506107ef565b6001826002811115610df157610df1613131565b03610dfe575082516107ef565b5060006107ef565b610e0e612d15565b60405180610120016040528083600001518152602001836020015181526020018360400151815260200183606001516001600160a01b03168152602001836080015181526020018360a0015181526020018360c0015181526020018360e0015181526020018361010001518152509050919050565b6000806000610eab856020015185876040015188600001516115c2909392919063ffffffff16565b505060208601519091506000610ec18284613489565b610ed3670de0b6b3a764000088613489565b610edd919061340a565b875151909150600090610eef9061152c565b83610f018a600001516020015161152c565b610f0b9190613489565b610f159190613433565b610f2790670de0b6b3a7640000613447565b90506000610f358284613433565b9050610f41818961340a565b95506000610f5c878b602001516115eb90919063ffffffff16565b90506000610f6a878361340a565b9050610f778b82856115f7565b9850505050505050509250929050565b60006107ef83836117cd565b610f9b612ce6565b6040518060a001604052808360000151815260200183602001518152602001836040015181526020018360600151815260200183608001518152509050919050565b6000808080610fed8989886117ec565b9050846040015160000361102f57845161100790886118ed565b855260208501516110219061101c8b84611903565b611987565b602086015261102f85611996565b60005b85606001518110156110d957600061104a87836119e4565b905060008061105b8d868e86611a50565b509092509050600061106d8d84610f87565b9050600061107b828661340a565b90508c81116110b257611093818e8d6080015161156e565b156110aa575097509195509093506110f392505050565b848b526110c3565b6110bd60018661340a565b60208c01525b5050505050806110d29061345a565b9050611032565b50604051637d388ed960e11b815260040160405180910390fd5b955095509592505050565b60008060008060008061111b8a8a6111158b611a81565b8a611a98565b92509250925061112a8361152c565b95506111358261152c565b94506111408161152c565b93505050509450945094915050565b602081015160408201518251600092839261116b9291906117ec565b905060006111918460000151600001518360200151846000015185604001516000611b33565b90506102dc8161152c565b6000816000036111b55750670de0b6b3a7640000610712565b826000036111c557506000610712565b600160ff1b831061120a5760405162461bcd60e51b815260206004820152600f60248201526e78206f7574206f6620626f756e647360881b60448201526064016105d9565b82770bce5086492111aea88f4bb1ca6bcf584181ea8059f7653283106112645760405162461bcd60e51b815260206004820152600f60248201526e79206f7574206f6620626f756e647360881b60448201526064016105d9565b826000670c7d713b49da0000831380156112855750670f43fc2c04ee000083125b156112bc57600061129584611bf0565b9050670de0b6b3a764000080820784020583670de0b6b3a7640000830502019150506112ca565b816112c684611d0f565b0290505b670de0b6b3a76400009005680238fd42c5cf03ffff1981128015906112f8575068070c1cc73b00c800008113155b61133c5760405162461bcd60e51b815260206004820152601560248201527470726f64756374206f7574206f6620626f756e647360581b60448201526064016105d9565b610c30816120b2565b60006102dc8361135586856124c7565b61252c565b60008082136113715761136c826134fe565b610712565b5090565b6000806113828385613489565b9050670de0b6b3a764000081610c60565b6000816000036113a5576113a5613473565b600182126113bb57816113b78161351a565b9250505b6107ef6113cb84606001516114cf565b6113d59084613532565b61152c565b600081158015906113fa575060a08301516113f6906002613489565b8214155b61140657611406613473565b600061141184612563565b905061141e600282613433565b6114288483613489565b85516114349190613447565b6102dc9190613447565b60208201516000906107ef90836115eb565b602082015160408301518351600092839261146e92919086906115c2565b50509050600061148b82866020015161259490919063ffffffff16565b90506000611499828661340a565b6020870151909150610c3090826115eb565b6020820151604083015183516000926114c59285906110fe565b5090949350505050565b60006001600160ff1b0382111561137157600080fd5b6000818312156115225760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b60448201526064016105d9565b6107ef828461355a565b60008082121561137157600080fd5b60008284101580156102dc57506115638361155e84670de0b6b3a7640000613447565b611375565b909311159392505050565b60008284111580156102dc57506115918361155e84670de0b6b3a764000061340a565b909310159392505050565b602081015160408201518251600092610712926115ba9291906117ec565b8351516125a1565b6000806000806000806115d98a8a6111158b6114cf565b92509250925061112a6113d584612639565b60006107ef8383612647565b825160a001516040840151600091116116515760405162461bcd60e51b815260206004820152601c60248201527b13585c9ad95d115e1d131a588e88195e1c1a5c9959081b585c9ad95d60221b60448201526064016105d9565b83516040015160001261169d5760405162461bcd60e51b815260206004820152601460248201527304d61726b65744578744c69623a204c50203c20360641b60448201526064016105d9565b60006116a8846114cf565b905060006116b5846114cf565b90506000806000808960000151600001518a6000015160400151866116da91906134a0565b6116e491906134d0565b8a51602081015160409091015191925060009161170190896134a0565b61170b91906134d0565b905080821215611746578a51604081015160209091015192955086945085926117359084906134a0565b61173f91906134d0565b925061176f565b8a516040810151905191955087935085916117629083906134a0565b61176c91906134d0565b93505b828b600001516020018181516117859190613532565b9052508a51805185919061179a908390613532565b9052508a5160400180518691906117b2908390613532565b9052506117be8561152c565b9b9a5050505050505050505050565b6000670de0b6b3a76400006117e28484613489565b6107ef9190613433565b6118176040518060800160405280600081526020016000815260200160008152602001600081525090565b60a0840151821061183b5760405163b2094b5960e01b815260040160405180910390fd5b6000828560a0015161184d919061340a565b9050611859858261265c565b8252602085015161186b9085906126bd565b60208301528451158061188057506020820151155b156118ae578451602083015160405163b1c4aefb60e01b8152600481019290925260248201526044016105d9565b6118cc856000015186610100015184602001518560000151856126f4565b604083015260c08501516118e09082612775565b6060830152509392505050565b60008183116118fc57816107ef565b5090919050565b6000806000905060006001846020015161191d919061340a565b90505b80821461197f57600060026119358385613447565b611940906001613447565b61194a9190613433565b9050600061195d868860000151846127a9565b12156119755761196e60018261340a565b9150611979565b8092505b50611920565b509392505050565b60008183106118fc57816107ef565b6020810151815111806119b45750670de0b6b3a76400008160800151115b156119e157805160208201516080830151604051632cc06bc160e21b81526105d9939291906004016133de565b50565b6000811580156119f75750604083015115155b15611a0757506040820151610712565b6020830151835111611a375760208301518351600291611a2691613447565b611a309190613433565b9050610712565b604051637d388ed960e11b815260040160405180910390fd5b60008080808080611a6e8989611a658a6134fe565b8d92919061289b565b919c909b50909950975050505050505050565b6000611a8c826114cf565b610712906000196134a0565b6000806000611aab8760a0015185101590565b15611ac95760405163b2094b5960e01b815260040160405180910390fd5b86518512611af7578651604051632185509b60e21b81526004810191909152602481018690526044016105d9565b6000611b048888876117ec565b9050611b128882898961289b565b91955093509150611b288882898988878b6129ef565b509450945094915050565b600080611b4087846114e5565b90506000611b58611b51888a613532565b8390612a81565b9050670d529ae9e8600000811315611b9457604051637e34684f60e11b815260048101829052670d529ae9e860000060248201526044016105d9565b6000611b9f82612ab0565b905085611bac8289612a81565b611bb69190613532565b9350670de0b6b3a7640000841215611be45760405163329e322960e21b8152600481018590526024016105d9565b50505095945050505050565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281611c3157611c3161341d565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a7640000821215611d5057611d47826a0c097ce7bc90715b34b9f160241b81611d4157611d4161341d565b05611d0f565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b8312611d9b5772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b8312611dd2576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312611e1a576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312611e55576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf8508312611e8c57693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e28312611ec357690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312611ef85768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312611f2357680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312611f58576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312611f8d576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b2866038312611fc1576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac8312611ff5576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d63100000808603028161201e5761201e61341d565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6000680238fd42c5cf03ffff1982121580156120d7575068070c1cc73b00c800008213155b6121165760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b60448201526064016105d9565b600082121561214e5761212b826000036120b2565b6a0c097ce7bc90715b34b9f160241b816121475761214761341d565b0592915050565b60006806f05b59d3b2000000831261218c57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b6121c2565b6803782dace9d900000083126121be57506803782dace9d8ffffff19909101906b1425982cf597cd205cef73806121c2565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126122125768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d631000000841261224e576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261228857682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126122c2576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac620000084126122fb57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126123345768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b1880000841261236d576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126123a65768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b81516000908210156124db57506000610712565b82602001518211156125025760a08301516124f7906002613489565b611a30906001613447565b61250b83612563565b8351612517908461340a565b6125219190613433565b6107ef906001613447565b60008061253c84606001516114cf565b612545846114cf565b61254f919061355a565b9050600181126107ef57806106e881613581565b60008160a00151600283600001518460200151612580919061340a565b61258a9190613433565b6107129190613489565b6000826102dc8184612b03565b6000806125ce6125c98560000151866040015187606001516125c3919061355a565b90612b2f565b6120b2565b905060006125e7611b51670de0b6b3a764000084613532565b905060006126058660200151866125fe9190613532565b8390612b2f565b90506000612613828761355a565b90506103e8612624826103e7613489565b61262e9190613433565b979650505050505050565b6000610712826000196134a0565b6000826117e2670de0b6b3a764000084613489565b6000612667826114cf565b61267e6126796201518061016d613489565b6114cf565b846080015161268d91906134a0565b61269791906134d0565b90506000811361071257604051630e520c3b60e11b8152600481018290526024016105d9565b600080600083126126cf5760016126d3565b6000195b90506126ea612679856126e58661135a565b6117cd565b6102dc90826134a0565b6000806127018684612775565b9050670de0b6b3a764000081121561272f5760405163329e322960e21b8152600481018290526024016105d9565b600061274561273e878a613532565b8990612a81565b9050600061275282612ab0565b905061275e8187612a81565b612768908461355a565b9998505050505050505050565b6000806127876201518061016d613489565b6127918486613489565b61279b9190613433565b90506102dc6125c9826114cf565b6000808285602001516127bc919061355a565b905060006127ca8585613532565b90506000821380156127dc5750600081135b61281d5760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b60448201526064016105d9565b600061284b61282c84846134a0565b602089015161283b9089613532565b61284590886134a0565b90612a81565b9050600061286161285c8486612a81565b612b4d565b885190915060009061287c90670de0b6b3a764000090612a81565b905061288c816125c3848661355a565b8960400151612768919061355a565b6000806000806128be8860000151886020015189600001518a6040015189611b33565b905060006128d46128cf8784612a81565b612639565b606089015190915060008713156129435760006128f18483612a81565b9050670de0b6b3a764000081121561291f5760405163329e322960e21b8152600481018290526024016105d9565b61293b61293483670de0b6b3a764000061355a565b8490612b2f565b915050612970565b61296d8161295981670de0b6b3a764000061355a565b61296390856134a0565b6128cf91906134d0565b90505b600060646129818c60e001516114cf565b61298b90846134a0565b61299591906134d0565b905060006129a3838561355a565b9050600081126129bc576129b78a82612bde565b6129c6565b6129c68a82612c0b565b97506129d28a84612bde565b96506129de8a83612bde565b955050505050509450945094915050565b6000818860a00151612a01919061340a565b8851909150612a1090866114e5565b8852612a2a612a1f8486613532565b60208a0151906114e5565b602089018190528851612a4f91612a429089906126bd565b895160408b015185612c38565b6101008901819052600003612a7757604051635534d70f60e11b815260040160405180910390fd5b5050505050505050565b600080612a96670de0b6b3a7640000856134a0565b9050828181612aa757612aa761341d565b05949350505050565b6000670de0b6b3a76400008203612ada5760405163a9c8b14d60e01b815260040160405180910390fd5b6000612af8612af184670de0b6b3a764000061355a565b8490612a81565b90506107ef81612b4d565b6000670de0b6b3a7640000600181612b1b8686613489565b612b259190613447565b6117e2919061340a565b600080612b3c83856134a0565b9050670de0b6b3a764000081612aa7565b6000808213612b8e5760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b60448201526064016105d9565b670c7d713b49da000082138015612bac5750670f43fc2c04ee000082125b15612bd057670de0b6b3a7640000612bc383611bf0565b816121475761214761341d565b61071282611d0f565b919050565b60008060008312612bf0576001612bf4565b6000195b90506126ea61267985612c068661135a565b612647565b60008060008312612c1d576001612c21565b6000195b90506126ea61267985612c338661135a565b612c7f565b600080612c49878787876000611b33565b90506000612c596113d583612b4d565b905083612c6b6201518061016d613489565b612c759083613489565b6109dd9190613433565b600082600181612b1b670de0b6b3a764000086613489565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b6040518060600160405280612cd2612d15565b815260200160008152602001600081525090565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b60405180610120016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051608081016001600160401b0381118282101715612d9a57634e487b7160e01b600052604160045260246000fd5b60405290565b604051606081016001600160401b0381118282101715612d9a57634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715612d9a57634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715612d9a57634e487b7160e01b600052604160045260246000fd5b600060808284031215612e4357600080fd5b612e4b612d6a565b90508135815260208201356020820152604082013560408201526060820135606082015292915050565b6001600160a01b03811681146119e157600080fd5b8035612bd981612e75565b6000818303610160811215612ea957600080fd5b612eb1612da0565b915061012080821215612ec357600080fd5b612ecb612dd0565b9150833582526020840135602083015260408401356040830152612ef160608501612e8a565b60608301526080840135608083015260a084013560a083015260c084013560c083015260e084013560e08301526101008085013581840152508183528084013560208401525050610140820135604082015292915050565b60008183036102a0811215612f5d57600080fd5b612f65612da0565b9150612f718484612e31565b8252612f808460808501612e95565b602083015260c06101df1982011215612f9857600080fd5b50612fa1612e01565b6101e08301358152610200830135602082015261022083013560408201526102408301356060820152610260830135608082015261028083013560a08201528060408301525092915050565b803560038110612bd957600080fd5b600060a0828403121561300e57600080fd5b60405160a081016001600160401b038111828210171561303e57634e487b7160e01b600052604160045260246000fd5b806040525080915082358152602083013560208201526040830135604082015260608301356060820152608083013560808201525092915050565b600080600080610380858703121561309057600080fd5b61309a8686612f49565b93506130a96102a08601612fed565b92506102c085013591506130c1866102e08701612ffc565b905092959194509250565b60008060008061024085870312156130e357600080fd5b6130ed8686612e95565b93506130fc6101608601612fed565b925061018085013591506130c1866101a08701612ffc565b60006020828403121561312657600080fd5b81356107ef81612e75565b634e487b7160e01b600052602160045260246000fd5b815160808201906003811061316c57634e487b7160e01b600052602160045260246000fd5b8083525060208301516020830152604083015160408301526060830151606083015292915050565b6000806101e083850312156131a857600080fd5b6131b28484612e31565b91506131c18460808501612e95565b90509250929050565b600080600080600061042086880312156131e357600080fd5b6131ed8787612f49565b94506131fc6102a08701612fed565b93506102c08601359250613214876102e08801612ffc565b9150613224876103808801612ffc565b90509295509295909350565b60006102a0828403121561324357600080fd5b6107ef8383612f49565b8051612bd981612e75565b600060c0828403121561326a57600080fd5b613272612e01565b9050815181526020820151602082015260408201516040820152606082015160608201526080820151608082015260a082015160a082015292915050565b60008183036102a08112156132c457600080fd5b6132cc612da0565b60808212156132da57600080fd5b6132e2612d6a565b8451815260208501516020820152604085015160408201526060850151606082015280825250607f19820191506101608083121561331f57600080fd5b613327612da0565b6101208085121561333757600080fd5b61333f612dd0565b94506080870151855260a0870151602086015260c0870151604086015261336860e0880161324d565b60608601526101008088015160808701528188015160a087015261014088015160c08701528388015160e08701526101808801518187015250508381526101a086015160208201526101c0860151604082015280602084015250506133d1856101e08601613258565b6040820152949350505050565b9283526020830191909152604082015260600190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610712576107126133f4565b634e487b7160e01b600052601260045260246000fd5b6000826134425761344261341d565b500490565b80820180821115610712576107126133f4565b60006001820161346c5761346c6133f4565b5060010190565b634e487b7160e01b600052600160045260246000fd5b8082028115828204841417610712576107126133f4565b80820260008212600160ff1b841416156134bc576134bc6133f4565b8181058314821517610712576107126133f4565b6000826134df576134df61341d565b600160ff1b8214600019841416156134f9576134f96133f4565b500590565b6000600160ff1b8201613513576135136133f4565b5060000390565b60006001600160ff1b01820161346c5761346c6133f4565b8082018281126000831280158216821582161715613552576135526133f4565b505092915050565b818103600083128015838313168383128216171561357a5761357a6133f4565b5092915050565b6000600160ff1b8201613596576135966133f4565b50600019019056fea26469706673582212206b14e8332aa1741158eb23a791a6e1d3a2e1b3ac6096d642d49b11fe8a5a00b764736f6c63430008110033";
|
|
1075
1144
|
|
|
1076
1145
|
type BotDecisionHelperConstructorParams =
|
|
1077
1146
|
| [signer?: Signer]
|