@pendle/core-v2 5.3.1 → 5.4.1
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/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.json +0 -37
- package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.json +0 -115
- package/build/artifacts/contracts/interfaces/IPActionSimple.sol/IPActionSimple.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSimple.sol/IPActionSimple.json +0 -37
- package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.json +0 -37
- package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.json +0 -37
- package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.json +0 -37
- package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.json +0 -179
- package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.json +0 -257
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionAddRemoveLiqV3Events.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionMiscV3Events.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionStorageEvents.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapPTV3Events.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapYTV3Events.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapYTV3Events.json +0 -37
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPAllEventsV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPAllEventsV3.json +0 -37
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +0 -37
- package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -39
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtInLibV1.dbg.json +4 -0
- package/build/artifacts/contracts/{router/swap-aggregator/kyberswap/l1-contracts/ScalingDataLib.sol/ScalingDataLib.json → offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtInLibV1.json} +4 -4
- package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtOutLibV1.dbg.json +4 -0
- package/build/artifacts/contracts/{router/swap-aggregator/kyberswap/l2-contracts/BytesHelper.sol/BytesHelper.json → offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtOutLibV1.json} +4 -4
- package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol/PendleSparkLinearDiscountOracleFactory.dbg.json +4 -0
- package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol/PendleSparkLinearDiscountOracleFactory.json +35 -0
- package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.json +2 -39
- package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.json +2 -117
- package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.json +2 -39
- package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.json +2 -39
- package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.json +2 -39
- package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.json +2 -181
- package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.dbg.json +1 -1
- package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.json +2 -2
- package/build/artifacts/contracts/router/Reflector.sol/Reflector.dbg.json +1 -1
- package/build/artifacts/contracts/router/Reflector.sol/Reflector.json +2 -2
- package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.json +2 -2
- package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.json +2 -2
- package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.json +2 -2
- package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.json +2 -2
- package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtInLibV2.dbg.json +4 -0
- package/build/artifacts/contracts/router/math/{MarketApproxLib.sol/MarketApproxPtInLib.json → MarketApproxLibV2.sol/MarketApproxPtInLibV2.json} +4 -4
- package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtOutLibV2.dbg.json +4 -0
- package/build/artifacts/contracts/router/math/{MarketApproxLib.sol/MarketApproxPtOutLib.json → MarketApproxLibV2.sol/MarketApproxPtOutLibV2.json} +4 -4
- package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IKyberScalingHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IOdosRouterV2.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/PendleSwap.sol/PendleSwap.json +2 -2
- package/contracts/interfaces/IPActionAddRemoveLiqV3.sol +1 -1
- package/contracts/interfaces/IPActionMarketAuxStatic.sol +2 -1
- package/contracts/interfaces/IPActionMiscV3.sol +1 -7
- package/contracts/interfaces/IPActionStorageStatic.sol +1 -1
- package/contracts/interfaces/IPActionSwapPTV3.sol +1 -1
- package/contracts/interfaces/IPActionSwapYTV3.sol +1 -17
- package/contracts/interfaces/IPActionVePendleStatic.sol +1 -0
- package/contracts/interfaces/IPAllEventsV3.sol +0 -8
- package/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol +2 -2
- package/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol +8 -7
- package/contracts/{router/math/MarketApproxLib.sol → offchain-helpers/router-static/base/MarketApproxLibV1.sol} +13 -13
- package/contracts/offchain-helpers/router-static/base/StorageLayout.sol +1 -1
- package/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol +10 -0
- package/contracts/router/ActionAddRemoveLiqV3.sol +4 -4
- package/contracts/router/ActionMiscV3.sol +0 -14
- package/contracts/router/ActionSwapYTV3.sol +2 -65
- package/contracts/router/base/ActionBase.sol +5 -6
- package/contracts/router/math/MarketApproxLibV2.sol +479 -0
- package/contracts/router/swap-aggregator/IPSwapAggregator.sol +8 -1
- package/contracts/router/swap-aggregator/PendleSwap.sol +0 -2
- package/deployments/1-core.json +6 -5
- package/deployments/10-core.json +1 -0
- package/deployments/42161-core.json +1 -0
- package/deployments/5000-core.json +1 -0
- package/deployments/56-core.json +1 -0
- package/deployments/8453-core.json +1 -0
- package/package.json +1 -1
- package/typechain-types/ActionAddRemoveLiqV3.ts +2000 -0
- package/typechain-types/ActionInfoStatic.ts +310 -0
- package/typechain-types/ActionMarketAuxStatic.ts +903 -0
- package/typechain-types/ActionMarketCoreStatic.ts +1974 -0
- package/typechain-types/ActionMintRedeemStatic.ts +435 -0
- package/typechain-types/ActionMiscV3.ts +2213 -0
- package/typechain-types/ActionSimple.ts +1544 -0
- package/typechain-types/ActionStorageStatic.ts +1345 -0
- package/typechain-types/ActionStorageV4.ts +1270 -0
- package/typechain-types/ActionSwapPTV3.ts +1507 -0
- package/typechain-types/ActionSwapYTV3.ts +1507 -0
- package/typechain-types/ActionVePendleStatic.ts +113 -0
- package/typechain-types/IKyberScalingHelper.ts +108 -0
- package/typechain-types/IOdosRouterV2.ts +147 -0
- package/typechain-types/IPActionAddRemoveLiqV3.ts +2000 -0
- package/typechain-types/IPActionAddRemoveLiqV3Events.ts +499 -0
- package/typechain-types/IPActionMarketAuxStatic.ts +859 -0
- package/typechain-types/IPActionMiscV3.ts +2213 -0
- package/typechain-types/IPActionMiscV3Events.ts +463 -0
- package/typechain-types/IPActionSimple.ts +1544 -0
- package/typechain-types/IPActionStorageEvents.ts +97 -0
- package/typechain-types/IPActionStorageStatic.ts +1268 -0
- package/typechain-types/IPActionStorageV4.ts +1270 -0
- package/typechain-types/IPActionSwapPTV3.ts +1507 -0
- package/typechain-types/IPActionSwapPTV3Events.ts +125 -0
- package/typechain-types/IPActionSwapYTV3.ts +1507 -0
- package/typechain-types/IPActionSwapYTV3Events.ts +125 -0
- package/typechain-types/IPActionVePendleStatic.ts +113 -0
- package/typechain-types/IPAllActionV3.ts +4210 -0
- package/typechain-types/IPAllEventsV3.ts +1080 -0
- package/typechain-types/IPRouterStatic.ts +4633 -0
- package/typechain-types/IPSwapAggregator.ts +187 -0
- package/typechain-types/PendlePoolDeployHelper.ts +342 -0
- package/typechain-types/PendleRouterStatic.ts +57 -0
- package/typechain-types/PendleRouterV4.ts +57 -0
- package/typechain-types/PendleSparkLinearDiscountOracleFactory.ts +108 -0
- package/typechain-types/PendleSwap.ts +208 -0
- package/typechain-types/Reflector.ts +95 -0
- package/typechain-types/factories/ActionAddRemoveLiqV3__factory.ts +3533 -0
- package/typechain-types/factories/ActionInfoStatic__factory.ts +360 -0
- package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +780 -0
- package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1449 -0
- package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +304 -0
- package/typechain-types/factories/ActionMiscV3__factory.ts +3056 -0
- package/typechain-types/factories/ActionSimple__factory.ts +1939 -0
- package/typechain-types/factories/ActionStorageStatic__factory.ts +1576 -0
- package/typechain-types/factories/ActionStorageV4__factory.ts +1504 -0
- package/typechain-types/factories/ActionSwapPTV3__factory.ts +2556 -0
- package/typechain-types/factories/ActionSwapYTV3__factory.ts +2556 -0
- package/typechain-types/factories/ActionVePendleStatic__factory.ts +155 -0
- package/typechain-types/factories/IKyberScalingHelper__factory.ts +55 -0
- package/typechain-types/factories/IOdosRouterV2__factory.ts +94 -0
- package/typechain-types/factories/IPActionAddRemoveLiqV3Events__factory.ts +582 -0
- package/typechain-types/factories/IPActionAddRemoveLiqV3__factory.ts +3421 -0
- package/typechain-types/factories/IPActionMarketAuxStatic__factory.ts +622 -0
- package/typechain-types/factories/IPActionMiscV3Events__factory.ts +608 -0
- package/typechain-types/factories/IPActionMiscV3__factory.ts +3005 -0
- package/typechain-types/factories/IPActionSimple__factory.ts +1840 -0
- package/typechain-types/factories/IPActionStorageEvents__factory.ts +68 -0
- package/typechain-types/factories/IPActionStorageStatic__factory.ts +1498 -0
- package/typechain-types/factories/IPActionStorageV4__factory.ts +1466 -0
- package/typechain-types/factories/IPActionSwapPTV3Events__factory.ts +116 -0
- package/typechain-types/factories/IPActionSwapPTV3__factory.ts +2454 -0
- package/typechain-types/factories/IPActionSwapYTV3Events__factory.ts +116 -0
- package/typechain-types/factories/IPActionSwapYTV3__factory.ts +2454 -0
- package/typechain-types/factories/IPActionVePendleStatic__factory.ts +59 -0
- package/typechain-types/factories/IPAllActionV3__factory.ts +7860 -0
- package/typechain-types/factories/IPAllEventsV3__factory.ts +1363 -0
- package/typechain-types/factories/IPRouterStatic__factory.ts +3956 -0
- package/typechain-types/factories/IPSwapAggregator__factory.ts +136 -0
- package/typechain-types/factories/PendlePoolDeployHelper__factory.ts +345 -0
- package/typechain-types/factories/PendleRouterStatic__factory.ts +88 -0
- package/typechain-types/factories/PendleRouterV4__factory.ts +96 -0
- package/typechain-types/factories/PendleSparkLinearDiscountOracleFactory__factory.ts +100 -0
- package/typechain-types/factories/PendleSwap__factory.ts +188 -0
- package/typechain-types/factories/Reflector__factory.ts +84 -0
- package/typechain-types/hardhat.d.ts +9 -45
- package/typechain-types/index.ts +2 -10
- package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +0 -4
- package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.json +0 -65
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutorOptimistic.sol/IAggregationExecutorOptimistic.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutorOptimistic.sol/IAggregationExecutorOptimistic.json +0 -194
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelper.sol/IExecutorHelper.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelper.sol/IExecutorHelper.json +0 -1787
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperL2.sol/IExecutorHelperL2.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperL2.sol/IExecutorHelperL2.json +0 -2873
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperL2Struct.sol/IExecutorHelperL2Struct.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperL2Struct.sol/IExecutorHelperL2Struct.json +0 -10
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperStruct.sol/IExecutorHelperStruct.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperStruct.sol/IExecutorHelperStruct.json +0 -10
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json +0 -215
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/pools/IBebopV3.sol/IBebopV3.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/pools/IBebopV3.sol/IBebopV3.json +0 -10
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/pools/IKyberDSLO.sol/IKyberDSLO.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/pools/IKyberDSLO.sol/IKyberDSLO.json +0 -10
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/pools/IKyberLO.sol/IKyberLO.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/pools/IKyberLO.sol/IKyberLO.json +0 -10
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l1-contracts/InputScalingHelper.sol/InputScalingHelper.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l1-contracts/InputScalingHelper.sol/InputScalingHelper.json +0 -10
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l1-contracts/ScalingDataLib.sol/ScalingDataLib.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/BytesHelper.sol/BytesHelper.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/CalldataReader.sol/CalldataReader.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/CalldataReader.sol/CalldataReader.json +0 -10
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/CalldataWriter.sol/CalldataWriter.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/CalldataWriter.sol/CalldataWriter.json +0 -10
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/Common.sol/Common.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/Common.sol/Common.json +0 -10
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/DexScaler.sol/DexScaler.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/DexScaler.sol/DexScaler.json +0 -10
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/ExecutorReader.sol/ExecutorReader.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/ExecutorReader.sol/ExecutorReader.json +0 -10
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/InputScalingHelperL2.sol/InputScalingHelperL2.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/InputScalingHelperL2.sol/InputScalingHelperL2.json +0 -10
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/ScalingDataL2Lib.sol/ScalingDataL2Lib.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/ScalingDataL2Lib.sol/ScalingDataL2Lib.json +0 -10
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/libraries/BytesHelper.sol/BytesHelper.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/libraries/BytesHelper.sol/BytesHelper.json +0 -10
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/libraries/RevertReasonParser.sol/RevertReasonParser.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/libraries/RevertReasonParser.sol/RevertReasonParser.json +0 -10
- package/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol +0 -31
- package/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutorOptimistic.sol +0 -63
- package/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelper.sol +0 -164
- package/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperL2.sol +0 -483
- package/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperL2Struct.sol +0 -412
- package/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperStruct.sol +0 -459
- package/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol +0 -47
- package/contracts/router/swap-aggregator/kyberswap/interfaces/pools/IBebopV3.sol +0 -23
- package/contracts/router/swap-aggregator/kyberswap/interfaces/pools/IKyberDSLO.sol +0 -36
- package/contracts/router/swap-aggregator/kyberswap/interfaces/pools/IKyberLO.sol +0 -32
- package/contracts/router/swap-aggregator/kyberswap/l1-contracts/InputScalingHelper.sol +0 -354
- package/contracts/router/swap-aggregator/kyberswap/l1-contracts/ScalingDataLib.sol +0 -521
- package/contracts/router/swap-aggregator/kyberswap/l2-contracts/BytesHelper.sol +0 -93
- package/contracts/router/swap-aggregator/kyberswap/l2-contracts/CalldataReader.sol +0 -404
- package/contracts/router/swap-aggregator/kyberswap/l2-contracts/CalldataWriter.sol +0 -118
- package/contracts/router/swap-aggregator/kyberswap/l2-contracts/Common.sol +0 -41
- package/contracts/router/swap-aggregator/kyberswap/l2-contracts/DexScaler.sol +0 -684
- package/contracts/router/swap-aggregator/kyberswap/l2-contracts/ExecutorReader.sol +0 -61
- package/contracts/router/swap-aggregator/kyberswap/l2-contracts/InputScalingHelperL2.sol +0 -373
- package/contracts/router/swap-aggregator/kyberswap/l2-contracts/ScalingDataL2Lib.sol +0 -273
- package/contracts/router/swap-aggregator/kyberswap/libraries/BytesHelper.sol +0 -32
- package/contracts/router/swap-aggregator/kyberswap/libraries/RevertReasonParser.sol +0 -75
|
@@ -1,404 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: MIT
|
|
2
|
-
pragma solidity ^0.8.0;
|
|
3
|
-
|
|
4
|
-
import {IExecutorHelperL2Struct as L2Struct} from "../interfaces/IExecutorHelperL2Struct.sol";
|
|
5
|
-
import {IKyberDSLO} from "../interfaces/pools/IKyberDSLO.sol";
|
|
6
|
-
import {IKyberLO} from "../interfaces/pools/IKyberLO.sol";
|
|
7
|
-
|
|
8
|
-
library CalldataReader {
|
|
9
|
-
/// @notice read the bytes value of data from a starting position and length
|
|
10
|
-
/// @param data bytes array of data
|
|
11
|
-
/// @param startByte starting position to read
|
|
12
|
-
/// @param length length from starting position
|
|
13
|
-
/// @return retVal value of the bytes
|
|
14
|
-
/// @return (the next position to read from)
|
|
15
|
-
function _calldataVal(
|
|
16
|
-
bytes memory data,
|
|
17
|
-
uint256 startByte,
|
|
18
|
-
uint256 length
|
|
19
|
-
) internal pure returns (bytes memory retVal, uint256) {
|
|
20
|
-
require(length + startByte <= data.length, "calldataVal trying to read beyond data size");
|
|
21
|
-
uint256 loops = (length + 31) / 32;
|
|
22
|
-
assembly {
|
|
23
|
-
let m := mload(0x40)
|
|
24
|
-
mstore(m, length)
|
|
25
|
-
for {
|
|
26
|
-
let i := 0
|
|
27
|
-
} lt(i, loops) {
|
|
28
|
-
i := add(1, i)
|
|
29
|
-
} {
|
|
30
|
-
mstore(add(m, mul(32, add(1, i))), mload(add(data, add(mul(32, add(1, i)), startByte))))
|
|
31
|
-
}
|
|
32
|
-
mstore(0x40, add(m, add(32, length)))
|
|
33
|
-
retVal := m
|
|
34
|
-
}
|
|
35
|
-
return (retVal, length + startByte);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
function _readRFQTQuote(
|
|
39
|
-
bytes memory data,
|
|
40
|
-
uint256 startByte
|
|
41
|
-
) internal pure returns (L2Struct.RFQTQuote memory rfqQuote, uint256, uint256 ebtaStartByte) {
|
|
42
|
-
(rfqQuote.pool, startByte) = _readAddress(data, startByte);
|
|
43
|
-
(rfqQuote.externalAccount, startByte) = _readAddress(data, startByte);
|
|
44
|
-
(rfqQuote.trader, startByte) = _readAddress(data, startByte);
|
|
45
|
-
(rfqQuote.effectiveTrader, startByte) = _readAddress(data, startByte);
|
|
46
|
-
// (rfqQuote.baseToken, startByte) = _readAddress(data, startByte);
|
|
47
|
-
(rfqQuote.quoteToken, startByte) = _readAddress(data, startByte);
|
|
48
|
-
ebtaStartByte = startByte;
|
|
49
|
-
(rfqQuote.effectiveBaseTokenAmount, startByte) = _readUint128AsUint256(data, startByte);
|
|
50
|
-
(rfqQuote.baseTokenAmount, startByte) = _readUint128AsUint256(data, startByte);
|
|
51
|
-
(rfqQuote.quoteTokenAmount, startByte) = _readUint128AsUint256(data, startByte);
|
|
52
|
-
(rfqQuote.quoteExpiry, startByte) = _readUint128AsUint256(data, startByte);
|
|
53
|
-
(rfqQuote.nonce, startByte) = _readUint128AsUint256(data, startByte);
|
|
54
|
-
(rfqQuote.txid, startByte) = _readBytes32(data, startByte);
|
|
55
|
-
(rfqQuote.signature, startByte) = _readBytes(data, startByte);
|
|
56
|
-
return (rfqQuote, startByte, ebtaStartByte);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
function _readOrderRFQ(
|
|
60
|
-
bytes memory data,
|
|
61
|
-
uint256 startByte
|
|
62
|
-
) internal pure returns (L2Struct.OrderRFQ memory orderRfq, uint256) {
|
|
63
|
-
(orderRfq.info, startByte) = _readUint256(data, startByte);
|
|
64
|
-
|
|
65
|
-
(orderRfq.makerAsset, startByte) = _readAddress(data, startByte);
|
|
66
|
-
|
|
67
|
-
(orderRfq.takerAsset, startByte) = _readAddress(data, startByte);
|
|
68
|
-
|
|
69
|
-
(orderRfq.maker, startByte) = _readAddress(data, startByte);
|
|
70
|
-
|
|
71
|
-
(orderRfq.allowedSender, startByte) = _readAddress(data, startByte);
|
|
72
|
-
|
|
73
|
-
(orderRfq.makingAmount, startByte) = _readUint128AsUint256(data, startByte);
|
|
74
|
-
|
|
75
|
-
(orderRfq.takingAmount, startByte) = _readUint128AsUint256(data, startByte);
|
|
76
|
-
|
|
77
|
-
return (orderRfq, startByte);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
function _readDSLOFillBatchOrdersParams(
|
|
81
|
-
bytes memory data,
|
|
82
|
-
uint256 startByte
|
|
83
|
-
)
|
|
84
|
-
internal
|
|
85
|
-
pure
|
|
86
|
-
returns (
|
|
87
|
-
IKyberDSLO.FillBatchOrdersParams memory params,
|
|
88
|
-
uint256,
|
|
89
|
-
uint256 takingAmountStartByte,
|
|
90
|
-
uint256 thresholdStartByte
|
|
91
|
-
)
|
|
92
|
-
{
|
|
93
|
-
(params.orders, startByte) = _readDSLOOrderArray(data, startByte);
|
|
94
|
-
|
|
95
|
-
(params.signatures, startByte) = _readDSLOSignatureArray(data, startByte);
|
|
96
|
-
|
|
97
|
-
(params.opExpireTimes, startByte) = _readUint32Array(data, startByte);
|
|
98
|
-
|
|
99
|
-
// read taking amount and start byte to scale
|
|
100
|
-
takingAmountStartByte = startByte;
|
|
101
|
-
(params.takingAmount, startByte) = _readUint128AsUint256(data, startByte);
|
|
102
|
-
|
|
103
|
-
// read threshold amount and start byte to update if scale dơn
|
|
104
|
-
thresholdStartByte = startByte;
|
|
105
|
-
(params.thresholdAmount, startByte) = _readUint128AsUint256(data, startByte);
|
|
106
|
-
|
|
107
|
-
(params.target, startByte) = _readAddress(data, startByte);
|
|
108
|
-
return (params, startByte, takingAmountStartByte, thresholdStartByte);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
function _readLOFillBatchOrdersParams(
|
|
112
|
-
bytes memory data,
|
|
113
|
-
uint256 startByte
|
|
114
|
-
)
|
|
115
|
-
internal
|
|
116
|
-
pure
|
|
117
|
-
returns (
|
|
118
|
-
IKyberLO.FillBatchOrdersParams memory params,
|
|
119
|
-
uint256,
|
|
120
|
-
uint256 takingAmountStartByte,
|
|
121
|
-
uint256 thresholdStartByte
|
|
122
|
-
)
|
|
123
|
-
{
|
|
124
|
-
(params.orders, startByte) = _readLOOrderArray(data, startByte);
|
|
125
|
-
|
|
126
|
-
(params.signatures, startByte) = _readLOSignatureArray(data, startByte);
|
|
127
|
-
|
|
128
|
-
takingAmountStartByte = startByte;
|
|
129
|
-
(params.takingAmount, startByte) = _readUint128AsUint256(data, startByte);
|
|
130
|
-
|
|
131
|
-
thresholdStartByte = startByte;
|
|
132
|
-
(params.thresholdAmount, startByte) = _readUint128AsUint256(data, startByte);
|
|
133
|
-
|
|
134
|
-
(params.target, startByte) = _readAddress(data, startByte);
|
|
135
|
-
return (params, startByte, takingAmountStartByte, thresholdStartByte);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
function _readLOSignatureArray(
|
|
139
|
-
bytes memory data,
|
|
140
|
-
uint256 startByte
|
|
141
|
-
) internal pure returns (bytes[] memory signatures, uint256) {
|
|
142
|
-
bytes memory ret;
|
|
143
|
-
|
|
144
|
-
(ret, startByte) = _calldataVal(data, startByte, 1);
|
|
145
|
-
uint256 length = uint256(uint8(bytes1(ret)));
|
|
146
|
-
|
|
147
|
-
signatures = new bytes[](length);
|
|
148
|
-
for (uint8 i = 0; i < length; ++i) {
|
|
149
|
-
(signatures[i], startByte) = _readBytes(data, startByte);
|
|
150
|
-
}
|
|
151
|
-
return (signatures, startByte);
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
function _readDSLOSignatureArray(
|
|
155
|
-
bytes memory data,
|
|
156
|
-
uint256 startByte
|
|
157
|
-
) internal pure returns (IKyberDSLO.Signature[] memory signatures, uint256) {
|
|
158
|
-
bytes memory ret;
|
|
159
|
-
|
|
160
|
-
(ret, startByte) = _calldataVal(data, startByte, 1);
|
|
161
|
-
uint256 length = uint256(uint8(bytes1(ret)));
|
|
162
|
-
|
|
163
|
-
signatures = new IKyberDSLO.Signature[](length);
|
|
164
|
-
for (uint8 i = 0; i < length; ++i) {
|
|
165
|
-
(signatures[i], startByte) = _readDSLOSignature(data, startByte);
|
|
166
|
-
}
|
|
167
|
-
return (signatures, startByte);
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
function _readDSLOSignature(
|
|
171
|
-
bytes memory data,
|
|
172
|
-
uint256 startByte
|
|
173
|
-
) internal pure returns (IKyberDSLO.Signature memory signature, uint256) {
|
|
174
|
-
(signature.orderSignature, startByte) = _readBytes(data, startByte);
|
|
175
|
-
(signature.opSignature, startByte) = _readBytes(data, startByte);
|
|
176
|
-
return (signature, startByte);
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
function _readLOOrderArray(
|
|
180
|
-
bytes memory data,
|
|
181
|
-
uint256 startByte
|
|
182
|
-
) internal pure returns (IKyberLO.Order[] memory orders, uint256) {
|
|
183
|
-
bytes memory ret;
|
|
184
|
-
|
|
185
|
-
(ret, startByte) = _calldataVal(data, startByte, 1);
|
|
186
|
-
uint256 length = uint256(uint8(bytes1(ret)));
|
|
187
|
-
|
|
188
|
-
orders = new IKyberLO.Order[](length);
|
|
189
|
-
for (uint8 i = 0; i < length; ++i) {
|
|
190
|
-
(orders[i], startByte) = _readLOOrder(data, startByte);
|
|
191
|
-
}
|
|
192
|
-
return (orders, startByte);
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
function _readDSLOOrderArray(
|
|
196
|
-
bytes memory data,
|
|
197
|
-
uint256 startByte
|
|
198
|
-
) internal pure returns (IKyberDSLO.Order[] memory orders, uint256) {
|
|
199
|
-
bytes memory ret;
|
|
200
|
-
|
|
201
|
-
(ret, startByte) = _calldataVal(data, startByte, 1);
|
|
202
|
-
uint256 length = uint256(uint8(bytes1(ret)));
|
|
203
|
-
|
|
204
|
-
orders = new IKyberDSLO.Order[](length);
|
|
205
|
-
for (uint8 i = 0; i < length; ++i) {
|
|
206
|
-
(orders[i], startByte) = _readDSLOOrder(data, startByte);
|
|
207
|
-
}
|
|
208
|
-
return (orders, startByte);
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
function _readDSLOOrder(
|
|
212
|
-
bytes memory data,
|
|
213
|
-
uint256 startByte
|
|
214
|
-
) internal pure returns (IKyberDSLO.Order memory orders, uint256) {
|
|
215
|
-
(orders.salt, startByte) = _readUint128AsUint256(data, startByte);
|
|
216
|
-
(orders.makerAsset, startByte) = _readAddress(data, startByte);
|
|
217
|
-
(orders.takerAsset, startByte) = _readAddress(data, startByte);
|
|
218
|
-
(orders.maker, startByte) = _readAddress(data, startByte);
|
|
219
|
-
(orders.receiver, startByte) = _readAddress(data, startByte);
|
|
220
|
-
(orders.allowedSender, startByte) = _readAddress(data, startByte);
|
|
221
|
-
(orders.makingAmount, startByte) = _readUint128AsUint256(data, startByte);
|
|
222
|
-
(orders.takingAmount, startByte) = _readUint128AsUint256(data, startByte);
|
|
223
|
-
(orders.feeConfig, startByte) = _readUint200(data, startByte);
|
|
224
|
-
(orders.makerAssetData, startByte) = _readBytes(data, startByte);
|
|
225
|
-
(orders.takerAssetData, startByte) = _readBytes(data, startByte);
|
|
226
|
-
(orders.getMakerAmount, startByte) = _readBytes(data, startByte);
|
|
227
|
-
(orders.getTakerAmount, startByte) = _readBytes(data, startByte);
|
|
228
|
-
(orders.predicate, startByte) = _readBytes(data, startByte);
|
|
229
|
-
(orders.interaction, startByte) = _readBytes(data, startByte);
|
|
230
|
-
return (orders, startByte);
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
function _readLOOrder(
|
|
234
|
-
bytes memory data,
|
|
235
|
-
uint256 startByte
|
|
236
|
-
) internal pure returns (IKyberLO.Order memory orders, uint256) {
|
|
237
|
-
(orders.salt, startByte) = _readUint128AsUint256(data, startByte);
|
|
238
|
-
(orders.makerAsset, startByte) = _readAddress(data, startByte);
|
|
239
|
-
(orders.takerAsset, startByte) = _readAddress(data, startByte);
|
|
240
|
-
(orders.maker, startByte) = _readAddress(data, startByte);
|
|
241
|
-
(orders.receiver, startByte) = _readAddress(data, startByte);
|
|
242
|
-
(orders.allowedSender, startByte) = _readAddress(data, startByte);
|
|
243
|
-
(orders.makingAmount, startByte) = _readUint128AsUint256(data, startByte);
|
|
244
|
-
(orders.takingAmount, startByte) = _readUint128AsUint256(data, startByte);
|
|
245
|
-
(orders.feeRecipient, startByte) = _readAddress(data, startByte);
|
|
246
|
-
(orders.makerTokenFeePercent, startByte) = _readUint32(data, startByte);
|
|
247
|
-
(orders.makerAssetData, startByte) = _readBytes(data, startByte);
|
|
248
|
-
(orders.takerAssetData, startByte) = _readBytes(data, startByte);
|
|
249
|
-
(orders.getMakerAmount, startByte) = _readBytes(data, startByte);
|
|
250
|
-
(orders.getTakerAmount, startByte) = _readBytes(data, startByte);
|
|
251
|
-
(orders.predicate, startByte) = _readBytes(data, startByte);
|
|
252
|
-
(orders.permit, startByte) = _readBytes(data, startByte);
|
|
253
|
-
(orders.interaction, startByte) = _readBytes(data, startByte);
|
|
254
|
-
return (orders, startByte);
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
function _readBool(bytes memory data, uint256 startByte) internal pure returns (bool, uint256) {
|
|
258
|
-
bytes memory ret;
|
|
259
|
-
(ret, startByte) = _calldataVal(data, startByte, 1);
|
|
260
|
-
return (bytes1(ret) > 0, startByte);
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
function _readUint8(bytes memory data, uint256 startByte) internal pure returns (uint8, uint256) {
|
|
264
|
-
bytes memory ret;
|
|
265
|
-
(ret, startByte) = _calldataVal(data, startByte, 1);
|
|
266
|
-
return (uint8(bytes1(ret)), startByte);
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
function _readUint24(bytes memory data, uint256 startByte) internal pure returns (uint24, uint256) {
|
|
270
|
-
bytes memory ret;
|
|
271
|
-
(ret, startByte) = _calldataVal(data, startByte, 3);
|
|
272
|
-
return (uint24(bytes3(ret)), startByte);
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
function _readUint32(bytes memory data, uint256 startByte) internal pure returns (uint32, uint256) {
|
|
276
|
-
bytes memory ret;
|
|
277
|
-
(ret, startByte) = _calldataVal(data, startByte, 4);
|
|
278
|
-
return (uint32(bytes4(ret)), startByte);
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
function _readUint128(bytes memory data, uint256 startByte) internal pure returns (uint128, uint256) {
|
|
282
|
-
bytes memory ret;
|
|
283
|
-
(ret, startByte) = _calldataVal(data, startByte, 16);
|
|
284
|
-
return (uint128(bytes16(ret)), startByte);
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
function _readUint160(bytes memory data, uint256 startByte) internal pure returns (uint160, uint256) {
|
|
288
|
-
bytes memory ret;
|
|
289
|
-
(ret, startByte) = _calldataVal(data, startByte, 20);
|
|
290
|
-
return (uint160(bytes20(ret)), startByte);
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
function _readUint200(bytes memory data, uint256 startByte) internal pure returns (uint200, uint256) {
|
|
294
|
-
bytes memory ret;
|
|
295
|
-
(ret, startByte) = _calldataVal(data, startByte, 25);
|
|
296
|
-
return (uint200(bytes25(ret)), startByte);
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
function _readUint256(bytes memory data, uint256 startByte) internal pure returns (uint256, uint256) {
|
|
300
|
-
bytes memory ret;
|
|
301
|
-
(ret, startByte) = _calldataVal(data, startByte, 32);
|
|
302
|
-
return (uint256(bytes32(ret)), startByte);
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
/// @dev only when sure that the value of uint256 never exceed uint128
|
|
306
|
-
function _readUint128AsUint256(bytes memory data, uint256 startByte) internal pure returns (uint256, uint256) {
|
|
307
|
-
bytes memory ret;
|
|
308
|
-
(ret, startByte) = _calldataVal(data, startByte, 16);
|
|
309
|
-
return (uint256(uint128(bytes16(ret))), startByte);
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
function _readAddress(bytes memory data, uint256 startByte) internal pure returns (address, uint256) {
|
|
313
|
-
bytes memory ret;
|
|
314
|
-
(ret, startByte) = _calldataVal(data, startByte, 20);
|
|
315
|
-
return (address(bytes20(ret)), startByte);
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
function _readBytes1(bytes memory data, uint256 startByte) internal pure returns (bytes1, uint256) {
|
|
319
|
-
bytes memory ret;
|
|
320
|
-
(ret, startByte) = _calldataVal(data, startByte, 1);
|
|
321
|
-
return (bytes1(ret), startByte);
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
function _readBytes4(bytes memory data, uint256 startByte) internal pure returns (bytes4, uint256) {
|
|
325
|
-
bytes memory ret;
|
|
326
|
-
(ret, startByte) = _calldataVal(data, startByte, 4);
|
|
327
|
-
return (bytes4(ret), startByte);
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
function _readBytes32(bytes memory data, uint256 startByte) internal pure returns (bytes32, uint256) {
|
|
331
|
-
bytes memory ret;
|
|
332
|
-
(ret, startByte) = _calldataVal(data, startByte, 32);
|
|
333
|
-
return (bytes32(ret), startByte);
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
/// @dev length of bytes is currently limited to uint32
|
|
337
|
-
function _readBytes(bytes memory data, uint256 startByte) internal pure returns (bytes memory b, uint256) {
|
|
338
|
-
bytes memory ret;
|
|
339
|
-
(ret, startByte) = _calldataVal(data, startByte, 4);
|
|
340
|
-
uint256 length = uint256(uint32(bytes4(ret)));
|
|
341
|
-
(b, startByte) = _calldataVal(data, startByte, length);
|
|
342
|
-
return (b, startByte);
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
/// @dev length of bytes array is currently limited to uint8
|
|
346
|
-
function _readBytesArray(
|
|
347
|
-
bytes memory data,
|
|
348
|
-
uint256 startByte
|
|
349
|
-
) internal pure returns (bytes[] memory bytesArray, uint256) {
|
|
350
|
-
bytes memory ret;
|
|
351
|
-
(ret, startByte) = _calldataVal(data, startByte, 1);
|
|
352
|
-
uint256 length = uint256(uint8(bytes1(ret)));
|
|
353
|
-
bytesArray = new bytes[](length);
|
|
354
|
-
for (uint8 i = 0; i < length; ++i) {
|
|
355
|
-
(bytesArray[i], startByte) = _readBytes(data, startByte);
|
|
356
|
-
}
|
|
357
|
-
return (bytesArray, startByte);
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
/// @dev length of address array is currently limited to uint8 to save bytes
|
|
361
|
-
function _readAddressArray(
|
|
362
|
-
bytes memory data,
|
|
363
|
-
uint256 startByte
|
|
364
|
-
) internal pure returns (address[] memory addrs, uint256) {
|
|
365
|
-
bytes memory ret;
|
|
366
|
-
(ret, startByte) = _calldataVal(data, startByte, 1);
|
|
367
|
-
uint256 length = uint256(uint8(bytes1(ret)));
|
|
368
|
-
addrs = new address[](length);
|
|
369
|
-
for (uint8 i = 0; i < length; ++i) {
|
|
370
|
-
(addrs[i], startByte) = _readAddress(data, startByte);
|
|
371
|
-
}
|
|
372
|
-
return (addrs, startByte);
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
/// @dev length of uint array is currently limited to uint8 to save bytes
|
|
376
|
-
/// @dev same as _readUint128AsUint256, only use when sure that value never exceed uint128
|
|
377
|
-
function _readUint128ArrayAsUint256Array(
|
|
378
|
-
bytes memory data,
|
|
379
|
-
uint256 startByte
|
|
380
|
-
) internal pure returns (uint256[] memory, uint256) {
|
|
381
|
-
bytes memory ret;
|
|
382
|
-
(ret, startByte) = _calldataVal(data, startByte, 1);
|
|
383
|
-
uint256 length = uint256(uint8(bytes1(ret)));
|
|
384
|
-
uint256[] memory us = new uint256[](length);
|
|
385
|
-
for (uint8 i = 0; i < length; ++i) {
|
|
386
|
-
(us[i], startByte) = _readUint128AsUint256(data, startByte);
|
|
387
|
-
}
|
|
388
|
-
return (us, startByte);
|
|
389
|
-
}
|
|
390
|
-
|
|
391
|
-
function _readUint32Array(
|
|
392
|
-
bytes memory data,
|
|
393
|
-
uint256 startByte
|
|
394
|
-
) internal pure returns (uint32[] memory arr, uint256) {
|
|
395
|
-
bytes memory ret;
|
|
396
|
-
(ret, startByte) = _calldataVal(data, startByte, 1);
|
|
397
|
-
uint256 length = uint256(uint8(bytes1(ret)));
|
|
398
|
-
arr = new uint32[](length);
|
|
399
|
-
for (uint8 i = 0; i < length; ++i) {
|
|
400
|
-
(arr[i], startByte) = _readUint32(data, startByte);
|
|
401
|
-
}
|
|
402
|
-
return (arr, startByte);
|
|
403
|
-
}
|
|
404
|
-
}
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: MIT
|
|
2
|
-
pragma solidity ^0.8.0;
|
|
3
|
-
|
|
4
|
-
import {IMetaAggregationRouterV2} from "../interfaces/IMetaAggregationRouterV2.sol";
|
|
5
|
-
import {IAggregationExecutorOptimistic as IExecutorHelperL2} from "../interfaces/IAggregationExecutorOptimistic.sol";
|
|
6
|
-
import {IExecutorHelper as IExecutorHelperL1} from "../interfaces/IExecutorHelper.sol";
|
|
7
|
-
|
|
8
|
-
library CalldataWriter {
|
|
9
|
-
function writeSimpleSwapData(
|
|
10
|
-
IMetaAggregationRouterV2.SimpleSwapData memory simpleSwapData
|
|
11
|
-
) internal pure returns (bytes memory shortData) {
|
|
12
|
-
shortData = bytes.concat(shortData, _writeAddressArray(simpleSwapData.firstPools));
|
|
13
|
-
shortData = bytes.concat(shortData, _writeUint256ArrayAsUint128Array(simpleSwapData.firstSwapAmounts));
|
|
14
|
-
shortData = bytes.concat(shortData, _writeBytesArray(simpleSwapData.swapDatas));
|
|
15
|
-
shortData = bytes.concat(shortData, bytes16(uint128(simpleSwapData.deadline)));
|
|
16
|
-
shortData = bytes.concat(shortData, _writeBytes(simpleSwapData.positiveSlippageData));
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/*
|
|
20
|
-
************************ AggregationExecutor ************************
|
|
21
|
-
*/
|
|
22
|
-
function writeSwapExecutorDescription(
|
|
23
|
-
IExecutorHelperL2.SwapExecutorDescription memory desc
|
|
24
|
-
) internal pure returns (bytes memory shortData) {
|
|
25
|
-
// write Swap array
|
|
26
|
-
uint8 lX = uint8(desc.swapSequences.length);
|
|
27
|
-
shortData = bytes.concat(shortData, bytes1(lX));
|
|
28
|
-
for (uint8 i = 0; i < lX; ++i) {
|
|
29
|
-
uint8 lY = uint8(desc.swapSequences[i].length);
|
|
30
|
-
shortData = bytes.concat(shortData, bytes1(lY));
|
|
31
|
-
for (uint8 j = 0; j < lY; ++j) {
|
|
32
|
-
shortData = bytes.concat(shortData, _writeSwap(desc.swapSequences[i][j]));
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// basic members
|
|
37
|
-
shortData = bytes.concat(shortData, bytes20(desc.tokenIn));
|
|
38
|
-
shortData = bytes.concat(shortData, bytes20(desc.tokenOut));
|
|
39
|
-
shortData = bytes.concat(shortData, bytes20(desc.to));
|
|
40
|
-
shortData = bytes.concat(shortData, bytes16(uint128(desc.deadline)));
|
|
41
|
-
shortData = bytes.concat(shortData, _writeBytes(desc.positiveSlippageData));
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
function writeSimpleModeSwapDatas(
|
|
45
|
-
bytes[] memory swapDatas,
|
|
46
|
-
address tokenIn
|
|
47
|
-
) internal pure returns (bytes[] memory shortData) {
|
|
48
|
-
uint8 len = uint8(swapDatas.length);
|
|
49
|
-
for (uint8 i = 0; i < len; ++i) {
|
|
50
|
-
swapDatas[i] = _writeSwapSingleSequence(swapDatas[i], tokenIn);
|
|
51
|
-
}
|
|
52
|
-
return (swapDatas);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
function _writeSwapSingleSequence(
|
|
56
|
-
bytes memory data,
|
|
57
|
-
address tokenIn
|
|
58
|
-
) internal pure returns (bytes memory shortData) {
|
|
59
|
-
IExecutorHelperL2.Swap[] memory swaps = abi.decode(data, (IExecutorHelperL2.Swap[]));
|
|
60
|
-
|
|
61
|
-
uint8 len = uint8(swaps.length);
|
|
62
|
-
shortData = bytes.concat(shortData, bytes1(len));
|
|
63
|
-
for (uint8 i = 0; i < len; ++i) {
|
|
64
|
-
shortData = bytes.concat(shortData, _writeSwap(swaps[i]));
|
|
65
|
-
}
|
|
66
|
-
shortData = bytes.concat(shortData, bytes20(tokenIn));
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
function _writeAddressArray(address[] memory addrs) internal pure returns (bytes memory data) {
|
|
70
|
-
uint8 length = uint8(addrs.length);
|
|
71
|
-
data = bytes.concat(data, bytes1(length));
|
|
72
|
-
for (uint8 i = 0; i < length; ++i) {
|
|
73
|
-
data = bytes.concat(data, bytes20(addrs[i]));
|
|
74
|
-
}
|
|
75
|
-
return data;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
function _writeUint256ArrayAsUint128Array(uint256[] memory us) internal pure returns (bytes memory data) {
|
|
79
|
-
uint8 length = uint8(us.length);
|
|
80
|
-
data = bytes.concat(data, bytes1(length));
|
|
81
|
-
for (uint8 i = 0; i < length; ++i) {
|
|
82
|
-
data = bytes.concat(data, bytes16(uint128(us[i])));
|
|
83
|
-
}
|
|
84
|
-
return data;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
function _writeBytes(bytes memory b) internal pure returns (bytes memory data) {
|
|
88
|
-
uint32 length = uint32(b.length);
|
|
89
|
-
data = bytes.concat(data, bytes4(length));
|
|
90
|
-
data = bytes.concat(data, b);
|
|
91
|
-
return data;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
function _writeBytesArray(bytes[] memory bytesArray) internal pure returns (bytes memory data) {
|
|
95
|
-
uint8 x = uint8(bytesArray.length);
|
|
96
|
-
data = bytes.concat(data, bytes1(x));
|
|
97
|
-
for (uint8 i; i < x; ++i) {
|
|
98
|
-
uint32 length = uint32(bytesArray[i].length);
|
|
99
|
-
data = bytes.concat(data, bytes4(length));
|
|
100
|
-
data = bytes.concat(data, bytesArray[i]);
|
|
101
|
-
}
|
|
102
|
-
return data;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
function _writeBytes32Array(bytes32[] memory bytesArray) internal pure returns (bytes memory data) {
|
|
106
|
-
uint8 x = uint8(bytesArray.length);
|
|
107
|
-
data = bytes.concat(data, bytes1(x));
|
|
108
|
-
for (uint8 i; i < x; ++i) {
|
|
109
|
-
data = bytes.concat(data, bytesArray[i]);
|
|
110
|
-
}
|
|
111
|
-
return data;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
function _writeSwap(IExecutorHelperL2.Swap memory swap) internal pure returns (bytes memory shortData) {
|
|
115
|
-
shortData = bytes.concat(shortData, _writeBytes(swap.data));
|
|
116
|
-
shortData = bytes.concat(shortData, bytes1(uint8(uint32(swap.functionSelector))));
|
|
117
|
-
}
|
|
118
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
pragma solidity ^0.8.0;
|
|
2
|
-
|
|
3
|
-
import "./CalldataReader.sol";
|
|
4
|
-
|
|
5
|
-
library Common {
|
|
6
|
-
using CalldataReader for bytes;
|
|
7
|
-
|
|
8
|
-
function _readPool(bytes memory data, uint256 startByte) internal pure returns (address, uint256) {
|
|
9
|
-
uint24 poolId;
|
|
10
|
-
address poolAddress;
|
|
11
|
-
(poolId, startByte) = data._readUint24(startByte);
|
|
12
|
-
if (poolId == 0) {
|
|
13
|
-
(poolAddress, startByte) = data._readAddress(startByte);
|
|
14
|
-
}
|
|
15
|
-
return (poolAddress, startByte);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
function _readRecipient(bytes memory data, uint256 startByte) internal pure returns (address, uint256) {
|
|
19
|
-
uint8 recipientFlag;
|
|
20
|
-
address recipient;
|
|
21
|
-
(recipientFlag, startByte) = data._readUint8(startByte);
|
|
22
|
-
if (recipientFlag != 2 && recipientFlag != 1) {
|
|
23
|
-
(recipient, startByte) = data._readAddress(startByte);
|
|
24
|
-
}
|
|
25
|
-
return (recipient, startByte);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
function _readBytes32Array(
|
|
29
|
-
bytes memory data,
|
|
30
|
-
uint256 startByte
|
|
31
|
-
) internal pure returns (bytes32[] memory bytesArray, uint256) {
|
|
32
|
-
bytes memory ret;
|
|
33
|
-
(ret, startByte) = data._calldataVal(startByte, 1);
|
|
34
|
-
uint256 length = uint256(uint8(bytes1(ret)));
|
|
35
|
-
bytesArray = new bytes32[](length);
|
|
36
|
-
for (uint8 i = 0; i < length; ++i) {
|
|
37
|
-
(bytesArray[i], startByte) = data._readBytes32(startByte);
|
|
38
|
-
}
|
|
39
|
-
return (bytesArray, startByte);
|
|
40
|
-
}
|
|
41
|
-
}
|