@pendle/core-v2 0.20.2-testnet → 0.21.0-testnet
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
- package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
- package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +2 -2
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +2 -2
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +2 -2
- package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
- package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
- package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
- package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
- package/build/artifacts/contracts/core/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/StEthHelper.sol/StEthHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.json +1 -41
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol/PendleAura3EthSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol/PendleAura3EthSY.json +2 -41
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol/PendleAuraCbethWstethSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol/PendleAuraCbethWstethSY.json +2 -41
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.json +2 -41
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol/PendleAuraBalancerStableLPSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.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/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
- package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
- package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +2 -39
- package/build/artifacts/contracts/interfaces/IApeStaking.sol/IApeStaking.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json +32 -80
- package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json +40 -100
- package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.json +16 -40
- package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.json +16 -40
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +104 -260
- package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.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/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/PendleMulticall.sol/PendleMulticall.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/PendleMulticall.sol/PendleMulticall.json +47 -0
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +2 -2
- package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +53 -96
- package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.json +2 -2
- package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +61 -116
- package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +2 -2
- package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +25 -44
- package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +2 -2
- package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +25 -44
- package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
- package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
- package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json +1 -1
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
- package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +4 -0
- package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +224 -0
- package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.dbg.json +4 -0
- package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.json +35 -0
- package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +4 -0
- package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.json +24 -0
- package/build/artifacts/contracts/router/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.dbg.json +4 -0
- package/build/artifacts/contracts/router/{swap-aggregator/kyberswap → kyberswap}/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.json +3 -3
- package/build/artifacts/contracts/router/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +4 -0
- package/build/artifacts/contracts/router/{swap-aggregator/kyberswap → kyberswap}/interfaces/IAggregationExecutor.sol/IAggregationExecutor.json +1 -1
- package/build/artifacts/contracts/router/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +4 -0
- package/build/artifacts/contracts/router/{swap-aggregator/kyberswap → kyberswap}/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.json +30 -1
- package/build/artifacts/contracts/router/kyberswap/interfaces/IHashflow.sol/IHashflow.dbg.json +4 -0
- package/build/artifacts/contracts/router/{swap-aggregator/kyberswap → kyberswap}/interfaces/IHashflow.sol/IHashflow.json +1 -1
- package/build/artifacts/contracts/router/kyberswap/interfaces/IMetaAggregationRouter.sol/IMetaAggregationRouter.dbg.json +4 -0
- package/build/artifacts/contracts/router/{swap-aggregator/kyberswap → kyberswap}/interfaces/IMetaAggregationRouter.sol/IMetaAggregationRouter.json +1 -1
- package/build/artifacts/contracts/router/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +4 -0
- package/build/artifacts/contracts/router/{swap-aggregator/kyberswap → kyberswap}/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json +1 -1
- package/contracts/core/StandardizedYield/StEthHelper.sol +4 -4
- package/contracts/core/libraries/Errors.sol +0 -4
- package/contracts/interfaces/IApeStaking.sol +1 -1
- package/contracts/interfaces/IPActionAddRemoveLiq.sol +1 -1
- package/contracts/interfaces/IPActionMintRedeem.sol +3 -2
- package/contracts/interfaces/IPActionSwapPT.sol +1 -1
- package/contracts/interfaces/IPActionSwapPTYT.sol +1 -1
- package/contracts/interfaces/IPActionSwapYT.sol +1 -1
- package/contracts/offchain-helpers/PendleMulticall.sol +26 -0
- package/contracts/router/ActionAddRemoveLiq.sol +2 -2
- package/contracts/router/ActionMintRedeem.sol +9 -7
- package/contracts/router/ActionSwapPT.sol +2 -2
- package/contracts/router/ActionSwapYT.sol +2 -2
- package/contracts/router/base/ActionBaseMintRedeem.sol +14 -51
- package/contracts/router/{swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol → kyberswap/AggregationRouterHelper.sol} +22 -5
- package/contracts/router/kyberswap/IAggregatorRouterHelper.sol +10 -0
- package/contracts/router/kyberswap/KyberSwapHelper.sol +79 -0
- package/contracts/router/{swap-aggregator/kyberswap → kyberswap}/ScaleDataHelperEthereum1.sol +13 -0
- package/contracts/router/{swap-aggregator/kyberswap → kyberswap}/interfaces/IAggregationExecutor.sol +0 -0
- package/contracts/router/{swap-aggregator/kyberswap → kyberswap}/interfaces/IExecutorHelperEthereum1.sol +6 -0
- package/contracts/router/{swap-aggregator/kyberswap → kyberswap}/interfaces/IHashflow.sol +0 -0
- package/contracts/router/{swap-aggregator/kyberswap → kyberswap}/interfaces/IMetaAggregationRouter.sol +0 -0
- package/contracts/router/{swap-aggregator/kyberswap → kyberswap}/interfaces/IMetaAggregationRouterV2.sol +0 -0
- package/deployments/43113-core.json +1 -1
- package/deployments/43113-helper.json +2 -1
- package/deployments/80001-core.json +1 -1
- package/deployments/80001-helper.json +2 -1
- package/deployments/80001-markets/USDC-DEC-8TH.json +10 -0
- package/package.json +1 -1
- package/typechain-types/ActionAddRemoveLiq.ts +35 -41
- package/typechain-types/ActionBaseMintRedeem.ts +8 -8
- package/typechain-types/ActionMintRedeem.ts +42 -45
- package/typechain-types/ActionSwapPT.ts +22 -28
- package/typechain-types/ActionSwapYT.ts +22 -28
- package/typechain-types/GMXPreviewHelper.ts +134 -0
- package/typechain-types/IExecutorHelperEthereum1.ts +44 -0
- package/typechain-types/IGMXVault.ts +494 -0
- package/typechain-types/IGlpManager.ts +115 -0
- package/typechain-types/IPActionAddRemoveLiq.ts +16 -22
- package/typechain-types/IPActionMintRedeem.ts +23 -26
- package/typechain-types/IPActionSwapPT.ts +14 -20
- package/typechain-types/IPActionSwapYT.ts +14 -20
- package/typechain-types/IPAllAction.ts +31 -34
- package/typechain-types/IPYieldTokenV2.ts +915 -0
- package/typechain-types/IRewardRouterV2.ts +303 -0
- package/typechain-types/IVaultPriceFeed.ts +114 -0
- package/typechain-types/InterestManagerYTV2.ts +124 -0
- package/typechain-types/PendleAura3EthSY.ts +0 -39
- package/typechain-types/PendleAuraCbethWstethSY.ts +0 -39
- package/typechain-types/PendleAuraWethWstethSY.ts +0 -39
- package/typechain-types/PendleGlpSY.ts +1449 -0
- package/typechain-types/PendleMulticall.ts +110 -0
- package/typechain-types/PendlePrincipalTokenV2.ts +614 -0
- package/typechain-types/PendleYieldContractFactoryV2.ts +801 -0
- package/typechain-types/PendleYieldTokenV2.ts +1304 -0
- package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +56 -99
- package/typechain-types/factories/ActionBaseMintRedeem__factory.ts +1 -1
- package/typechain-types/factories/ActionCallback__factory.ts +1 -1
- package/typechain-types/factories/ActionMintRedeem__factory.ts +64 -119
- package/typechain-types/factories/ActionMisc__factory.ts +1 -1
- package/typechain-types/factories/ActionSwapPTYT__factory.ts +1 -1
- package/typechain-types/factories/ActionSwapPT__factory.ts +28 -47
- package/typechain-types/factories/ActionSwapYT__factory.ts +28 -47
- package/typechain-types/factories/AggregationRouterHelper__factory.ts +1 -1
- package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
- package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
- package/typechain-types/factories/BulkSeller__factory.ts +1 -1
- package/typechain-types/factories/Errors__factory.ts +1 -38
- package/typechain-types/factories/GMXPreviewHelper__factory.ts +78 -0
- package/typechain-types/factories/IExecutorHelperEthereum1__factory.ts +29 -0
- package/typechain-types/factories/IGMXVault__factory.ts +320 -0
- package/typechain-types/factories/IGlpManager__factory.ts +55 -0
- package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +32 -80
- package/typechain-types/factories/IPActionMintRedeem__factory.ts +40 -100
- package/typechain-types/factories/IPActionSwapPT__factory.ts +16 -40
- package/typechain-types/factories/IPActionSwapYT__factory.ts +16 -40
- package/typechain-types/factories/IPAllAction__factory.ts +104 -260
- package/typechain-types/factories/IPYieldTokenV2__factory.ts +702 -0
- package/typechain-types/factories/IRewardRouterV2__factory.ts +180 -0
- package/typechain-types/factories/IVaultPriceFeed__factory.ts +60 -0
- package/typechain-types/factories/InterestManagerYTV2__factory.ts +63 -0
- package/typechain-types/factories/MarketMathStatic__factory.ts +1 -1
- package/typechain-types/factories/OracleLib__factory.ts +1 -1
- package/typechain-types/factories/PendleAura3EthSY__factory.ts +1 -40
- package/typechain-types/factories/PendleAuraCbethWstethSY__factory.ts +1 -40
- package/typechain-types/factories/PendleAuraWethRethSY__factory.ts +1 -1
- package/typechain-types/factories/PendleAuraWethWstethSY__factory.ts +1 -40
- package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
- package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
- package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
- package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleGlpSY__factory.ts +1255 -0
- package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
- package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleMarket__factory.ts +1 -1
- package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleMulticall__factory.ts +100 -0
- package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +564 -0
- package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
- package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
- package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
- package/typechain-types/factories/PendleRouter__factory.ts +1 -1
- package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +674 -0
- package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldTokenV2__factory.ts +1122 -0
- package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
- package/typechain-types/factories/RouterStatic__factory.ts +1 -1
- package/typechain-types/factories/SAPE__factory.ts +1 -1
- package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
- package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
- package/typechain-types/hardhat.d.ts +84 -30
- package/typechain-types/index.ts +22 -10
- package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.json +0 -160
- package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.json +0 -10
- package/build/artifacts/contracts/router/swap-aggregator/ISwapAggregator.sol/ISwapAggregator.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/ISwapAggregator.sol/ISwapAggregator.json +0 -51
- package/build/artifacts/contracts/router/swap-aggregator/SwapAggregator.sol/SwapAggregator.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/SwapAggregator.sol/SwapAggregator.json +0 -256
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.json +0 -10
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.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/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IHashflow.sol/IHashflow.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouter.sol/IMetaAggregationRouter.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +0 -4
- package/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol +0 -45
- package/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol +0 -71
- package/contracts/router/swap-aggregator/ISwapAggregator.sol +0 -21
- package/contracts/router/swap-aggregator/SwapAggregator.sol +0 -62
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_format": "hh-sol-artifact-1",
|
|
3
3
|
"contractName": "IMetaAggregationRouter",
|
|
4
|
-
"sourceName": "contracts/router/
|
|
4
|
+
"sourceName": "contracts/router/kyberswap/interfaces/IMetaAggregationRouter.sol",
|
|
5
5
|
"abi": [
|
|
6
6
|
{
|
|
7
7
|
"inputs": [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_format": "hh-sol-artifact-1",
|
|
3
3
|
"contractName": "IMetaAggregationRouterV2",
|
|
4
|
-
"sourceName": "contracts/router/
|
|
4
|
+
"sourceName": "contracts/router/kyberswap/interfaces/IMetaAggregationRouterV2.sol",
|
|
5
5
|
"abi": [
|
|
6
6
|
{
|
|
7
7
|
"inputs": [
|
|
@@ -7,9 +7,9 @@ import "../../interfaces/IStETH.sol";
|
|
|
7
7
|
import "../libraries/TokenHelper.sol";
|
|
8
8
|
|
|
9
9
|
abstract contract StEthHelper is TokenHelper {
|
|
10
|
-
address
|
|
11
|
-
address
|
|
12
|
-
address
|
|
10
|
+
address internal constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
|
|
11
|
+
address internal constant WSTETH = 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0;
|
|
12
|
+
address internal constant STETH = 0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84;
|
|
13
13
|
|
|
14
14
|
constructor() {
|
|
15
15
|
_safeApproveInf(STETH, WSTETH);
|
|
@@ -39,7 +39,7 @@ abstract contract StEthHelper is TokenHelper {
|
|
|
39
39
|
returns (uint256 amountTokenOut)
|
|
40
40
|
{
|
|
41
41
|
amountTokenOut = IWstETH(WSTETH).unwrap(amountRedeem);
|
|
42
|
-
_transferOut(STETH, receiver, amountTokenOut);
|
|
42
|
+
if (receiver != address(this)) _transferOut(STETH, receiver, amountTokenOut);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
/// @dev tokenIn must be either ETH, WETH or STETH
|
|
@@ -169,8 +169,4 @@ library Errors {
|
|
|
169
169
|
error OnlyYT();
|
|
170
170
|
error OnlyYCFactory();
|
|
171
171
|
error OnlyWhitelisted();
|
|
172
|
-
|
|
173
|
-
// Swap Aggregator
|
|
174
|
-
error SAInsufficientTokenIn(address tokenIn, uint256 amountExpected, uint256 amountActual);
|
|
175
|
-
error UnsupportedSelector(uint256 aggregatorType, bytes4 selector);
|
|
176
172
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
pragma solidity 0.8.17;
|
|
3
3
|
|
|
4
4
|
import "../router/base/MarketApproxLib.sol";
|
|
5
|
-
import "../router/
|
|
5
|
+
import "../router/kyberswap/KyberSwapHelper.sol";
|
|
6
6
|
|
|
7
7
|
interface IPActionMintRedeem {
|
|
8
8
|
event MintSyFromToken(
|
|
@@ -145,8 +145,9 @@ interface IPActionMintRedeem {
|
|
|
145
145
|
struct RouterSwapAllStruct {
|
|
146
146
|
// key-value pair
|
|
147
147
|
address[] tokens;
|
|
148
|
-
|
|
148
|
+
bytes[] kybercalls;
|
|
149
149
|
//
|
|
150
|
+
address kyberRouter;
|
|
150
151
|
address outputToken;
|
|
151
152
|
uint256 minTokenOut;
|
|
152
153
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity 0.8.17;
|
|
3
|
+
|
|
4
|
+
/// @title PendleMulticall - A more gas-efficient version of Multicall3 (~700 gas saved for each call)
|
|
5
|
+
/// @author UncleGrandpa925 <longvh@pendle.finance>
|
|
6
|
+
contract PendleMulticall {
|
|
7
|
+
error MulticallFailed(uint256 index);
|
|
8
|
+
|
|
9
|
+
struct Call {
|
|
10
|
+
address target;
|
|
11
|
+
bytes callData;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function aggregate(Call[] calldata calls) external payable {
|
|
15
|
+
uint256 length = calls.length;
|
|
16
|
+
Call calldata call;
|
|
17
|
+
for (uint256 i = 0; i < length; ) {
|
|
18
|
+
call = calls[i];
|
|
19
|
+
(bool success, ) = call.target.call(call.callData);
|
|
20
|
+
if (!success) revert MulticallFailed(i);
|
|
21
|
+
unchecked {
|
|
22
|
+
++i;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -24,8 +24,8 @@ contract ActionAddRemoveLiq is IPActionAddRemoveLiq, ActionBaseMintRedeem {
|
|
|
24
24
|
using BulkSellerMathCore for BulkSellerState;
|
|
25
25
|
|
|
26
26
|
/// @dev since this contract will be proxied, it must not contains non-immutable variables
|
|
27
|
-
constructor(address
|
|
28
|
-
ActionBaseMintRedeem(
|
|
27
|
+
constructor(address _kyberScalingLib)
|
|
28
|
+
ActionBaseMintRedeem(_kyberScalingLib) //solhint-disable-next-line no-empty-blocks
|
|
29
29
|
{}
|
|
30
30
|
|
|
31
31
|
/**
|
|
@@ -12,8 +12,8 @@ contract ActionMintRedeem is IPActionMintRedeem, ActionBaseMintRedeem {
|
|
|
12
12
|
using Math for int256;
|
|
13
13
|
|
|
14
14
|
/// @dev since this contract will be proxied, it must not contains non-immutable variables
|
|
15
|
-
constructor(address
|
|
16
|
-
ActionBaseMintRedeem(
|
|
15
|
+
constructor(address _kyberScalingLib)
|
|
16
|
+
ActionBaseMintRedeem(_kyberScalingLib) //solhint-disable-next-line no-empty-blocks
|
|
17
17
|
{}
|
|
18
18
|
|
|
19
19
|
/**
|
|
@@ -180,7 +180,8 @@ contract ActionMintRedeem is IPActionMintRedeem, ActionBaseMintRedeem {
|
|
|
180
180
|
address[] calldata markets,
|
|
181
181
|
RouterSwapAllStruct calldata dataSwap
|
|
182
182
|
) external returns (uint256 netTokenOut, uint256[] memory amountsSwapped) {
|
|
183
|
-
if (dataSwap.tokens.length != dataSwap.
|
|
183
|
+
if (dataSwap.tokens.length != dataSwap.kybercalls.length)
|
|
184
|
+
revert Errors.ArrayLengthMismatch();
|
|
184
185
|
|
|
185
186
|
if (dataYT.tokenRedeemSys.length != dataYT.syAddrs.length)
|
|
186
187
|
revert Errors.ArrayLengthMismatch();
|
|
@@ -225,7 +226,7 @@ contract ActionMintRedeem is IPActionMintRedeem, ActionBaseMintRedeem {
|
|
|
225
226
|
_transferFrom(
|
|
226
227
|
IERC20(tokensOut.tokens[i]),
|
|
227
228
|
msg.sender,
|
|
228
|
-
|
|
229
|
+
address(this),
|
|
229
230
|
tokensOut.amounts[i]
|
|
230
231
|
);
|
|
231
232
|
}
|
|
@@ -269,7 +270,7 @@ contract ActionMintRedeem is IPActionMintRedeem, ActionBaseMintRedeem {
|
|
|
269
270
|
|
|
270
271
|
TokenOutput memory output = _wrapTokenOutput(tokenRedeemSys[i], 1, bulks[i]);
|
|
271
272
|
uint256 amountOut = _redeemSyToToken(
|
|
272
|
-
|
|
273
|
+
address(this),
|
|
273
274
|
sys.tokens[i],
|
|
274
275
|
sys.amounts[i],
|
|
275
276
|
output,
|
|
@@ -286,10 +287,11 @@ contract ActionMintRedeem is IPActionMintRedeem, ActionBaseMintRedeem {
|
|
|
286
287
|
) internal returns (uint256 netTokenOut) {
|
|
287
288
|
for (uint256 i = 0; i < tokens.tokens.length; ++i) {
|
|
288
289
|
if (tokens.amounts[i] == 0) continue;
|
|
289
|
-
|
|
290
|
+
_kyberswap(
|
|
290
291
|
tokens.tokens[i],
|
|
291
292
|
tokens.amounts[i],
|
|
292
|
-
dataSwap.
|
|
293
|
+
dataSwap.kyberRouter,
|
|
294
|
+
dataSwap.kybercalls[i]
|
|
293
295
|
);
|
|
294
296
|
}
|
|
295
297
|
netTokenOut = _selfBalance(dataSwap.outputToken);
|
|
@@ -16,8 +16,8 @@ contract ActionSwapPT is IPActionSwapPT, ActionBaseMintRedeem {
|
|
|
16
16
|
using PYIndexLib for IPYieldToken;
|
|
17
17
|
|
|
18
18
|
/// @dev since this contract will be proxied, it must not contains non-immutable variables
|
|
19
|
-
constructor(address
|
|
20
|
-
ActionBaseMintRedeem(
|
|
19
|
+
constructor(address _kyberScalingLib)
|
|
20
|
+
ActionBaseMintRedeem(_kyberScalingLib) //solhint-disable-next-line no-empty-blocks
|
|
21
21
|
{}
|
|
22
22
|
|
|
23
23
|
/**
|
|
@@ -17,8 +17,8 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
|
|
|
17
17
|
using PYIndexLib for IPYieldToken;
|
|
18
18
|
|
|
19
19
|
/// @dev since this contract will be proxied, it must not contains non-immutable variables
|
|
20
|
-
constructor(address
|
|
21
|
-
ActionBaseMintRedeem(
|
|
20
|
+
constructor(address _kyberScalingLib)
|
|
21
|
+
ActionBaseMintRedeem(_kyberScalingLib) //solhint-disable-next-line no-empty-blocks
|
|
22
22
|
{}
|
|
23
23
|
|
|
24
24
|
/**
|
|
@@ -1,43 +1,19 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
2
|
pragma solidity 0.8.17;
|
|
3
3
|
|
|
4
|
+
import "../kyberswap/KyberSwapHelper.sol";
|
|
4
5
|
import "../../core/libraries/TokenHelper.sol";
|
|
5
6
|
import "../../interfaces/IStandardizedYield.sol";
|
|
6
7
|
import "../../interfaces/IPYieldToken.sol";
|
|
7
8
|
import "../../interfaces/IPBulkSeller.sol";
|
|
8
9
|
import "../../core/libraries/Errors.sol";
|
|
9
|
-
import "../swap-aggregator/ISwapAggregator.sol";
|
|
10
|
-
|
|
11
|
-
struct TokenInput {
|
|
12
|
-
// Token/Sy data
|
|
13
|
-
address tokenIn;
|
|
14
|
-
uint256 netTokenIn;
|
|
15
|
-
address tokenMintSy;
|
|
16
|
-
address bulk;
|
|
17
|
-
// aggregator data
|
|
18
|
-
SwapData data;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
struct TokenOutput {
|
|
22
|
-
// Token/Sy data
|
|
23
|
-
address tokenOut;
|
|
24
|
-
uint256 minTokenOut;
|
|
25
|
-
address tokenRedeemSy;
|
|
26
|
-
address bulk;
|
|
27
|
-
// Kyber data
|
|
28
|
-
SwapData data;
|
|
29
|
-
}
|
|
30
10
|
|
|
31
11
|
// solhint-disable no-empty-blocks
|
|
32
|
-
abstract contract ActionBaseMintRedeem is TokenHelper {
|
|
12
|
+
abstract contract ActionBaseMintRedeem is TokenHelper, KyberSwapHelper {
|
|
33
13
|
bytes internal constant EMPTY_BYTES = abi.encode();
|
|
34
14
|
|
|
35
|
-
address public immutable swapAggregator;
|
|
36
|
-
|
|
37
15
|
/// @dev since this contract will be proxied, it must not contains non-immutable variables
|
|
38
|
-
constructor(address
|
|
39
|
-
swapAggregator = _swapAggregator;
|
|
40
|
-
}
|
|
16
|
+
constructor(address _kyberScalingLib) KyberSwapHelper(_kyberScalingLib) {}
|
|
41
17
|
|
|
42
18
|
function _mintSyFromToken(
|
|
43
19
|
address receiver,
|
|
@@ -45,23 +21,14 @@ abstract contract ActionBaseMintRedeem is TokenHelper {
|
|
|
45
21
|
uint256 minSyOut,
|
|
46
22
|
TokenInput calldata input
|
|
47
23
|
) internal returns (uint256 netSyOut) {
|
|
24
|
+
_transferIn(input.tokenIn, msg.sender, input.netTokenIn);
|
|
25
|
+
|
|
48
26
|
bool requireSwap = input.tokenIn != input.tokenMintSy;
|
|
49
27
|
|
|
50
28
|
uint256 netTokenMintSy;
|
|
51
29
|
|
|
52
|
-
if (input.tokenIn != NATIVE) {
|
|
53
|
-
_transferFrom(
|
|
54
|
-
IERC20(input.tokenIn),
|
|
55
|
-
msg.sender,
|
|
56
|
-
requireSwap ? swapAggregator : address(this),
|
|
57
|
-
input.netTokenIn
|
|
58
|
-
);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
30
|
if (requireSwap) {
|
|
62
|
-
|
|
63
|
-
value: input.tokenIn == NATIVE ? input.netTokenIn : 0
|
|
64
|
-
}(input.tokenIn, input.netTokenIn, input.data);
|
|
31
|
+
_kyberswap(input.tokenIn, input.netTokenIn, input.kyberRouter, input.kybercall);
|
|
65
32
|
netTokenMintSy = _selfBalance(input.tokenMintSy);
|
|
66
33
|
} else {
|
|
67
34
|
netTokenMintSy = input.netTokenIn;
|
|
@@ -99,7 +66,7 @@ abstract contract ActionBaseMintRedeem is TokenHelper {
|
|
|
99
66
|
}
|
|
100
67
|
|
|
101
68
|
bool requireSwap = output.tokenRedeemSy != output.tokenOut;
|
|
102
|
-
address receiverRedeemSy = requireSwap ?
|
|
69
|
+
address receiverRedeemSy = requireSwap ? address(this) : receiver;
|
|
103
70
|
uint256 netTokenRedeemed;
|
|
104
71
|
|
|
105
72
|
if (output.bulk != address(0)) {
|
|
@@ -120,9 +87,12 @@ abstract contract ActionBaseMintRedeem is TokenHelper {
|
|
|
120
87
|
}
|
|
121
88
|
|
|
122
89
|
if (requireSwap) {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
90
|
+
_kyberswap(
|
|
91
|
+
output.tokenRedeemSy,
|
|
92
|
+
netTokenRedeemed,
|
|
93
|
+
output.kyberRouter,
|
|
94
|
+
output.kybercall
|
|
95
|
+
);
|
|
126
96
|
|
|
127
97
|
netTokenOut = _selfBalance(output.tokenOut);
|
|
128
98
|
|
|
@@ -183,13 +153,6 @@ abstract contract ActionBaseMintRedeem is TokenHelper {
|
|
|
183
153
|
uint256 minTokenOut,
|
|
184
154
|
address bulk
|
|
185
155
|
) internal pure returns (TokenOutput memory) {
|
|
186
|
-
return
|
|
187
|
-
TokenOutput(
|
|
188
|
-
tokenOut,
|
|
189
|
-
minTokenOut,
|
|
190
|
-
tokenOut,
|
|
191
|
-
bulk,
|
|
192
|
-
SwapData(AGGREGATOR.KYBERSWAP, address(0), EMPTY_BYTES)
|
|
193
|
-
);
|
|
156
|
+
return TokenOutput(tokenOut, minTokenOut, tokenOut, bulk, address(0), EMPTY_BYTES);
|
|
194
157
|
}
|
|
195
158
|
}
|
|
@@ -2,17 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
pragma solidity 0.8.17;
|
|
4
4
|
import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";
|
|
5
|
-
import "
|
|
5
|
+
import "../../core/libraries/BoringOwnableUpgradeable.sol";
|
|
6
6
|
|
|
7
|
-
import "
|
|
7
|
+
import "../../interfaces/IWETH.sol";
|
|
8
8
|
|
|
9
9
|
import "./interfaces/IMetaAggregationRouter.sol";
|
|
10
10
|
import "./interfaces/IMetaAggregationRouterV2.sol";
|
|
11
11
|
import "./interfaces/IHashflow.sol";
|
|
12
12
|
import "./interfaces/IExecutorHelperEthereum1.sol";
|
|
13
|
+
|
|
14
|
+
import "./IAggregatorRouterHelper.sol";
|
|
13
15
|
import "./ScaleDataHelperEthereum1.sol";
|
|
14
16
|
|
|
15
|
-
|
|
17
|
+
contract AggregationRouterHelper is
|
|
18
|
+
IAggregationRouterHelper,
|
|
19
|
+
Initializable,
|
|
20
|
+
UUPSUpgradeable,
|
|
21
|
+
BoringOwnableUpgradeable
|
|
22
|
+
{
|
|
16
23
|
uint256 private constant _PARTIAL_FILL = 0x01;
|
|
17
24
|
uint256 private constant _REQUIRES_EXTRA_ETH = 0x02;
|
|
18
25
|
uint256 private constant _SHOULD_CLAIM = 0x04;
|
|
@@ -20,6 +27,14 @@ abstract contract KyberAggregationRouterHelper {
|
|
|
20
27
|
uint256 private constant _BURN_FROM_TX_ORIGIN = 0x10;
|
|
21
28
|
uint256 private constant _SIMPLE_SWAP = 0x20;
|
|
22
29
|
|
|
30
|
+
constructor() initializer {}
|
|
31
|
+
|
|
32
|
+
function initialize() external initializer {
|
|
33
|
+
__BoringOwnable_init();
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function _authorizeUpgrade(address newImplementation) internal override onlyOwner {}
|
|
37
|
+
|
|
23
38
|
struct Swap {
|
|
24
39
|
bytes data;
|
|
25
40
|
bytes4 selector;
|
|
@@ -43,8 +58,8 @@ abstract contract KyberAggregationRouterHelper {
|
|
|
43
58
|
bytes destTokenFeeData;
|
|
44
59
|
}
|
|
45
60
|
|
|
46
|
-
function
|
|
47
|
-
|
|
61
|
+
function getScaledInputData(bytes calldata kybercall, uint256 newAmount)
|
|
62
|
+
external
|
|
48
63
|
pure
|
|
49
64
|
returns (bytes memory)
|
|
50
65
|
{
|
|
@@ -265,6 +280,8 @@ abstract contract KyberAggregationRouterHelper {
|
|
|
265
280
|
swap.data = ScaleDataHelperEthereum1.newPSM(swap.data, oldAmount, newAmount);
|
|
266
281
|
} else if (selector == IExecutorHelperEthereum1.executeHashflowSwap.selector) {
|
|
267
282
|
revert("InputScalingHelper: Can not scale RFQ swap");
|
|
283
|
+
} else if (selector == IExecutorHelperEthereum1.executeFraxSwap.selector) {
|
|
284
|
+
swap.data = ScaleDataHelperEthereum1.newFrax(swap.data, oldAmount, newAmount);
|
|
268
285
|
} else revert("AggregationExecutor: Dex type not supported");
|
|
269
286
|
}
|
|
270
287
|
return abi.encode(executorDesc);
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
/*
|
|
3
|
+
* MIT License
|
|
4
|
+
* ===========
|
|
5
|
+
*
|
|
6
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
* in the Software without restriction, including without limitation the rights
|
|
9
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
* furnished to do so, subject to the following conditions:
|
|
12
|
+
*
|
|
13
|
+
* The above copyright notice and this permission notice shall be included in all
|
|
14
|
+
* copies or substantial portions of the Software.
|
|
15
|
+
*
|
|
16
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
pragma solidity 0.8.17;
|
|
25
|
+
|
|
26
|
+
import "@openzeppelin/contracts/utils/Address.sol";
|
|
27
|
+
import "../../core/libraries/TokenHelper.sol";
|
|
28
|
+
import "./IAggregatorRouterHelper.sol";
|
|
29
|
+
import "../../core/libraries/Errors.sol";
|
|
30
|
+
|
|
31
|
+
struct TokenInput {
|
|
32
|
+
// Token/Sy data
|
|
33
|
+
address tokenIn;
|
|
34
|
+
uint256 netTokenIn;
|
|
35
|
+
address tokenMintSy;
|
|
36
|
+
address bulk;
|
|
37
|
+
// Kyber data
|
|
38
|
+
address kyberRouter;
|
|
39
|
+
bytes kybercall;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
struct TokenOutput {
|
|
43
|
+
// Token/Sy data
|
|
44
|
+
address tokenOut;
|
|
45
|
+
uint256 minTokenOut;
|
|
46
|
+
address tokenRedeemSy;
|
|
47
|
+
address bulk;
|
|
48
|
+
// Kyber data
|
|
49
|
+
address kyberRouter;
|
|
50
|
+
bytes kybercall;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
abstract contract KyberSwapHelper is TokenHelper {
|
|
54
|
+
using Address for address;
|
|
55
|
+
|
|
56
|
+
address public immutable kyberScalingLib;
|
|
57
|
+
|
|
58
|
+
constructor(address _kyberScalingLib) {
|
|
59
|
+
kyberScalingLib = _kyberScalingLib;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function _kyberswap(
|
|
63
|
+
address tokenIn,
|
|
64
|
+
uint256 amountIn,
|
|
65
|
+
address kyberRouter,
|
|
66
|
+
bytes memory rawKybercall
|
|
67
|
+
) internal {
|
|
68
|
+
if (kyberRouter == address(0) || rawKybercall.length == 0)
|
|
69
|
+
revert Errors.RouterKyberSwapDataZero();
|
|
70
|
+
|
|
71
|
+
_safeApproveInf(tokenIn, kyberRouter);
|
|
72
|
+
|
|
73
|
+
bytes memory kybercall = IAggregationRouterHelper(kyberScalingLib).getScaledInputData(
|
|
74
|
+
rawKybercall,
|
|
75
|
+
amountIn
|
|
76
|
+
);
|
|
77
|
+
kyberRouter.functionCallWithValue(kybercall, tokenIn == NATIVE ? amountIn : 0);
|
|
78
|
+
}
|
|
79
|
+
}
|
package/contracts/router/{swap-aggregator/kyberswap → kyberswap}/ScaleDataHelperEthereum1.sol
RENAMED
|
@@ -131,4 +131,17 @@ library ScaleDataHelperEthereum1 {
|
|
|
131
131
|
psm.amountIn = (psm.amountIn * newAmount) / oldAmount;
|
|
132
132
|
return abi.encode(psm);
|
|
133
133
|
}
|
|
134
|
+
|
|
135
|
+
function newFrax(
|
|
136
|
+
bytes memory data,
|
|
137
|
+
uint256 oldAmount,
|
|
138
|
+
uint256 newAmount
|
|
139
|
+
) internal pure returns (bytes memory) {
|
|
140
|
+
IExecutorHelperEthereum1.UniSwap memory frax = abi.decode(
|
|
141
|
+
data,
|
|
142
|
+
(IExecutorHelperEthereum1.UniSwap)
|
|
143
|
+
);
|
|
144
|
+
frax.collectAmount = (frax.collectAmount * newAmount) / oldAmount;
|
|
145
|
+
return abi.encode(frax);
|
|
146
|
+
}
|
|
134
147
|
}
|
package/contracts/router/{swap-aggregator/kyberswap → kyberswap}/interfaces/IAggregationExecutor.sol
RENAMED
|
File without changes
|
|
@@ -182,4 +182,10 @@ interface IExecutorHelperEthereum1 {
|
|
|
182
182
|
bytes memory data,
|
|
183
183
|
uint256 previousAmountOut
|
|
184
184
|
) external payable returns (uint256);
|
|
185
|
+
|
|
186
|
+
function executeFraxSwap(
|
|
187
|
+
uint256 index,
|
|
188
|
+
bytes memory data,
|
|
189
|
+
uint256 previousAmountOut
|
|
190
|
+
) external payable returns (uint256);
|
|
185
191
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"marketFactory": "0x24265d37C87d3ffE64D6B0274c168945d44D1ba2",
|
|
20
20
|
"bulkSellerFactory": "0x137404E334a80fa741AD03d8965ee4b5b8A20259",
|
|
21
21
|
"bulkSellerOffchain": "0x85C369B1aD9A981DCf4Fd8F00F74cB783cacec34",
|
|
22
|
-
"router": "
|
|
22
|
+
"router": "0x17ae363f142517b593d9A71282BAb8CA6bb4eA51",
|
|
23
23
|
"routerStatic": "0xBf98D54D05907f3F576602e8Be7fEaF8891c787F",
|
|
24
24
|
"vePendle": "0xB20E3c268C993BC3c9Bc1C1cc5D7491F2268cD91",
|
|
25
25
|
"senderEndpoint": "0x86bD575c36e236386284C035ffeBE66CB6ecd2DD",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"marketFactory": "0xeB2AEd0aE414c76e4f9D4d43cD01064Fec010dfB",
|
|
21
21
|
"bulkSellerFactory": "0x4707f0CC2Ad4211172EdBAFc453E60DBd1C9D854",
|
|
22
22
|
"bulkSellerOffchain": "0x7Fb3626D95449d69f991a37e304b8C9A0a5D0e0c",
|
|
23
|
-
"router": "
|
|
23
|
+
"router": "0x5141Ad90AafB0D45e9F19Bd9F861362d56f2CF79",
|
|
24
24
|
"routerStatic": "0xc7F8F9F1DdE1104664b6fC8F33E49b169C12F41E",
|
|
25
25
|
"receiverEndpoint": "0x256752c851EDB92c97377C93232A9034c835F376",
|
|
26
26
|
"vePendle": "0xC0BC61112D9fD7bA5809047a86EC245593BA0e1E",
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "SY Benqi USDC",
|
|
3
|
+
"SY": "0x2b6891918CE19e854daB4fce31a1246ECef575E6",
|
|
4
|
+
"YT": "0x38692a41E857Fcc28Cf7e5782F6245Cd54a04C7E",
|
|
5
|
+
"PT": "0x721036540c0Ca715e546286df70c2Be6196d0561",
|
|
6
|
+
"market": "0x9D6913b06d7B42d921e812c46A63cFb580F5cCfc",
|
|
7
|
+
"expiry": 1701993600,
|
|
8
|
+
"scalarRoot": "62000000000000000000",
|
|
9
|
+
"initAnchor": "1012600000000000000"
|
|
10
|
+
}
|
package/package.json
CHANGED