@pendle/core-v2 0.21.0-testnet → 1.0.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/PendleGauge.sol/PendleGauge.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
- package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
- package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
- package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/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/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 -2
- 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 -2
- 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 -2
- 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/GMX/GMXPreviewHelper.sol/GMXPreviewHelper.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/GMX/GMXPreviewHelper.sol/GMXPreviewHelper.json +50 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/GMX/PendleGlpSY.sol/PendleGlpSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/GMX/PendleGlpSY.sol/PendleGlpSY.json +1163 -0
- 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/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
- package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +4 -0
- package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.json +66 -0
- package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +4 -0
- package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +476 -0
- package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +4 -0
- package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +590 -0
- package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +4 -0
- package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +1017 -0
- package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +50 -2
- package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.json +308 -0
- package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.json +43 -0
- package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.json +165 -0
- package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.json +45 -0
- package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.json +93 -0
- package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.json +87 -0
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json +338 -16
- package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json +105 -224
- package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.json +56 -12
- package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.json +52 -8
- package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.json +231 -8
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +675 -241
- package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.json +40 -0
- 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/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.json +679 -0
- 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 -28
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +144 -60
- package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +345 -62
- package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +107 -260
- package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +57 -18
- package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +54 -65
- package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +338 -45
- package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
- package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +76 -67
- package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +4 -0
- package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.json +141 -0
- package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json +1 -15
- package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
- package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.json +160 -0
- package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.json +10 -0
- package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.json +56 -0
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwapAggregator.sol/PendleSwapAggregator.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwapAggregator.sol/PendleSwapAggregator.json +97 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.json +10 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.dbg.json +4 -0
- package/build/artifacts/contracts/router/{kyberswap → swap-aggregator/kyberswap}/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.json +3 -3
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +4 -0
- package/build/artifacts/contracts/router/{kyberswap → swap-aggregator/kyberswap}/interfaces/IAggregationExecutor.sol/IAggregationExecutor.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +4 -0
- package/build/artifacts/contracts/router/{kyberswap → swap-aggregator/kyberswap}/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IHashflow.sol/IHashflow.dbg.json +4 -0
- package/build/artifacts/contracts/router/{kyberswap → swap-aggregator/kyberswap}/interfaces/IHashflow.sol/IHashflow.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +4 -0
- package/build/artifacts/contracts/router/{kyberswap → swap-aggregator/kyberswap}/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json +1 -1
- package/contracts/core/StandardizedYield/implementations/GMX/GMXPreviewHelper.sol +142 -0
- package/contracts/core/StandardizedYield/implementations/GMX/PendleGlpSY.sol +244 -0
- package/contracts/core/StandardizedYield/implementations/GMX/README.md +61 -0
- package/contracts/core/YieldContractsV2/InterestManagerYTV2.sol +114 -0
- package/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol +63 -0
- package/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol +200 -0
- package/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol +485 -0
- package/contracts/core/libraries/Errors.sol +5 -0
- package/contracts/core/libraries/TokenHelper.sol +10 -0
- package/contracts/interfaces/GMX/IGMXVault.sol +47 -0
- package/contracts/interfaces/GMX/IGlpManager.sol +8 -0
- package/contracts/interfaces/GMX/IRewardRouterV2.sol +35 -0
- package/contracts/interfaces/GMX/IVaultPriceFeed.sol +11 -0
- package/contracts/interfaces/IDiamondCut.sol +36 -0
- package/contracts/interfaces/IDiamondLoupe.sol +38 -0
- package/contracts/interfaces/IPActionAddRemoveLiq.sol +36 -1
- package/contracts/interfaces/IPActionMintRedeem.sol +2 -55
- package/contracts/interfaces/IPActionMisc.sol +20 -3
- package/contracts/interfaces/IPActionSwapPT.sol +1 -1
- package/contracts/interfaces/IPActionSwapYT.sol +28 -4
- package/contracts/interfaces/IPAllAction.sol +5 -3
- package/contracts/interfaces/IPInterestManagerYTV2.sol +13 -0
- package/contracts/interfaces/IPYieldTokenV2.sol +66 -0
- package/contracts/offchain-helpers/MarketMathStatic.sol +15 -0
- package/contracts/offchain-helpers/RouterStatic.sol +22 -0
- package/contracts/router/ActionAddRemoveLiq.sol +116 -6
- package/contracts/router/ActionMintRedeem.sol +12 -202
- package/contracts/router/ActionMisc.sol +45 -19
- package/contracts/router/ActionSwapPT.sol +0 -5
- package/contracts/router/ActionSwapYT.sol +98 -13
- package/contracts/router/PendleRouter.sol +211 -72
- package/contracts/router/{ActionCallback.sol → base/ActionBaseCallback.sol} +47 -47
- package/contracts/router/base/ActionBaseMintRedeem.sol +105 -60
- package/contracts/router/base/CallbackHelper.sol +137 -44
- package/contracts/router/base/MarketApproxLib.sol +227 -350
- package/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol +45 -0
- package/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol +69 -0
- package/contracts/router/swap-aggregator/IPSwapAggregator.sol +30 -0
- package/contracts/router/swap-aggregator/PendleSwapAggregator.sol +63 -0
- package/contracts/router/{kyberswap/AggregationRouterHelper.sol → swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol} +3 -108
- package/contracts/router/{kyberswap → swap-aggregator/kyberswap}/ScaleDataHelperEthereum1.sol +0 -0
- package/contracts/router/{kyberswap → swap-aggregator/kyberswap}/interfaces/IAggregationExecutor.sol +0 -0
- package/contracts/router/{kyberswap → swap-aggregator/kyberswap}/interfaces/IExecutorHelperEthereum1.sol +0 -0
- package/contracts/router/{kyberswap → swap-aggregator/kyberswap}/interfaces/IHashflow.sol +0 -0
- package/contracts/router/{kyberswap → swap-aggregator/kyberswap}/interfaces/IMetaAggregationRouterV2.sol +0 -0
- package/deployments/43113-core.json +2 -1
- package/deployments/{43113-helper.json → 43113-offchain-helper.json} +0 -0
- package/deployments/80001-core.json +2 -1
- package/deployments/80001-markets/GLP-DEC-8TH.json +10 -0
- package/deployments/{80001-helper.json → 80001-offchain-helper.json} +0 -0
- package/package.json +1 -1
- package/typechain-types/ActionAddRemoveLiq.ts +203 -23
- package/typechain-types/ActionBaseCallback.ts +115 -0
- package/typechain-types/ActionMintRedeem.ts +29 -230
- package/typechain-types/ActionMisc.ts +78 -27
- package/typechain-types/ActionSwapPT.ts +26 -31
- package/typechain-types/ActionSwapYT.ts +202 -21
- package/typechain-types/GMXPreviewHelper.ts +0 -13
- package/typechain-types/IDiamondCut.ts +152 -0
- package/typechain-types/IDiamondLoupe.ts +190 -0
- package/typechain-types/IPActionAddRemoveLiq.ts +213 -14
- package/typechain-types/IPActionMintRedeem.ts +29 -211
- package/typechain-types/IPActionMisc.ts +78 -27
- package/typechain-types/IPActionSwapPT.ts +26 -12
- package/typechain-types/IPActionSwapYT.ts +168 -12
- package/typechain-types/IPAllAction.ts +445 -227
- package/typechain-types/IPInterestManagerYTV2.ts +117 -0
- package/typechain-types/IPSwapAggregator.ts +126 -0
- package/typechain-types/IPYieldTokenV2.ts +9 -23
- package/typechain-types/InterestManagerYTV2.ts +36 -3
- package/typechain-types/PendleGlpSY.ts +27 -13
- package/typechain-types/PendleRouter.ts +109 -131
- package/typechain-types/PendleSwapAggregator.ts +167 -0
- package/typechain-types/PendleYieldTokenV2.ts +70 -76
- package/typechain-types/RouterStatic.ts +92 -0
- package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +346 -68
- package/typechain-types/factories/ActionBaseCallback__factory.ts +156 -0
- package/typechain-types/factories/ActionMintRedeem__factory.ts +108 -266
- package/typechain-types/factories/ActionMisc__factory.ts +56 -17
- package/typechain-types/factories/ActionSwapPT__factory.ts +55 -71
- package/typechain-types/factories/ActionSwapYT__factory.ts +341 -48
- 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 +49 -1
- package/typechain-types/factories/GMXPreviewHelper__factory.ts +0 -13
- package/typechain-types/factories/IDiamondCut__factory.ts +105 -0
- package/typechain-types/factories/IDiamondLoupe__factory.ts +99 -0
- package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +338 -16
- package/typechain-types/factories/IPActionMintRedeem__factory.ts +105 -224
- package/typechain-types/factories/IPActionMisc__factory.ts +55 -11
- package/typechain-types/factories/IPActionSwapPT__factory.ts +52 -8
- package/typechain-types/factories/IPActionSwapYT__factory.ts +231 -8
- package/typechain-types/factories/IPAllAction__factory.ts +675 -241
- package/typechain-types/factories/IPInterestManagerYTV2__factory.ts +59 -0
- package/typechain-types/factories/IPSwapAggregator__factory.ts +71 -0
- package/typechain-types/factories/IPYieldTokenV2__factory.ts +6 -14
- package/typechain-types/factories/InterestManagerYTV2__factory.ts +18 -0
- package/typechain-types/factories/MarketMathStatic__factory.ts +1 -27
- package/typechain-types/factories/OracleLib__factory.ts +1 -1
- package/typechain-types/factories/PendleAura3EthSY__factory.ts +1 -1
- package/typechain-types/factories/PendleAuraCbethWstethSY__factory.ts +1 -1
- package/typechain-types/factories/PendleAuraWethRethSY__factory.ts +1 -1
- package/typechain-types/factories/PendleAuraWethWstethSY__factory.ts +1 -1
- package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
- package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
- package/typechain-types/factories/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 +8 -14
- 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/PendlePrincipalTokenV2__factory.ts +1 -1
- 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 +75 -74
- package/typechain-types/factories/PendleSwapAggregator__factory.ts +154 -0
- package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldTokenV2__factory.ts +35 -48
- package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
- package/typechain-types/factories/RouterStatic__factory.ts +69 -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 +96 -60
- package/typechain-types/index.ts +26 -18
- package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.json +0 -190
- package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +0 -4
- package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.json +0 -165
- package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +0 -4
- package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +0 -343
- package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +0 -4
- package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +0 -224
- package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.dbg.json +0 -4
- package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.json +0 -35
- package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +0 -4
- package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.json +0 -24
- package/build/artifacts/contracts/router/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.dbg.json +0 -4
- package/build/artifacts/contracts/router/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +0 -4
- package/build/artifacts/contracts/router/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +0 -4
- package/build/artifacts/contracts/router/kyberswap/interfaces/IHashflow.sol/IHashflow.dbg.json +0 -4
- package/build/artifacts/contracts/router/kyberswap/interfaces/IMetaAggregationRouter.sol/IMetaAggregationRouter.dbg.json +0 -4
- package/build/artifacts/contracts/router/kyberswap/interfaces/IMetaAggregationRouter.sol/IMetaAggregationRouter.json +0 -183
- package/build/artifacts/contracts/router/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +0 -4
- package/contracts/interfaces/IPActionSwapPTYT.sol +0 -31
- package/contracts/router/ActionSwapPTYT.sol +0 -108
- package/contracts/router/kyberswap/IAggregatorRouterHelper.sol +0 -10
- package/contracts/router/kyberswap/KyberSwapHelper.sol +0 -79
- package/contracts/router/kyberswap/interfaces/IMetaAggregationRouter.sol +0 -33
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
pragma solidity 0.8.17;
|
|
3
3
|
import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
|
4
4
|
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
5
|
+
import "../../interfaces/IWETH.sol";
|
|
5
6
|
|
|
6
7
|
abstract contract TokenHelper {
|
|
7
8
|
using SafeERC20 for IERC20;
|
|
@@ -83,4 +84,13 @@ abstract contract TokenHelper {
|
|
|
83
84
|
_safeApprove(token, to, type(uint256).max);
|
|
84
85
|
}
|
|
85
86
|
}
|
|
87
|
+
|
|
88
|
+
function _wrap_unwrap_ETH(
|
|
89
|
+
address tokenIn,
|
|
90
|
+
address tokenOut,
|
|
91
|
+
uint256 netTokenIn
|
|
92
|
+
) internal {
|
|
93
|
+
if (tokenIn == NATIVE) IWETH(tokenOut).deposit{ value: netTokenIn }();
|
|
94
|
+
else IWETH(tokenIn).withdraw(netTokenIn);
|
|
95
|
+
}
|
|
86
96
|
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity 0.8.17;
|
|
3
|
+
|
|
4
|
+
interface IGMXVault {
|
|
5
|
+
function BASIS_POINTS_DIVISOR() external view returns (uint256);
|
|
6
|
+
|
|
7
|
+
function PRICE_PRECISION() external view returns (uint256);
|
|
8
|
+
|
|
9
|
+
function priceFeed() external view returns (address);
|
|
10
|
+
|
|
11
|
+
function usdg() external view returns (address);
|
|
12
|
+
|
|
13
|
+
function hasDynamicFees() external view returns (bool);
|
|
14
|
+
|
|
15
|
+
function totalTokenWeights() external view returns (uint256);
|
|
16
|
+
|
|
17
|
+
function tokenBalances(address) external view returns (uint256);
|
|
18
|
+
|
|
19
|
+
function usdgAmounts(address) external view returns (uint256);
|
|
20
|
+
|
|
21
|
+
function getMinPrice(address _token) external view returns (uint256);
|
|
22
|
+
|
|
23
|
+
function getRedemptionAmount(address _token, uint256 _usdgAmount)
|
|
24
|
+
external
|
|
25
|
+
view
|
|
26
|
+
returns (uint256);
|
|
27
|
+
|
|
28
|
+
function taxBasisPoints() external view returns (uint256);
|
|
29
|
+
|
|
30
|
+
function mintBurnFeeBasisPoints() external view returns (uint256);
|
|
31
|
+
|
|
32
|
+
function allWhitelistedTokensLength() external view returns (uint256);
|
|
33
|
+
|
|
34
|
+
function allWhitelistedTokens(uint256) external view returns (address);
|
|
35
|
+
|
|
36
|
+
function whitelistedTokens(address) external view returns (bool);
|
|
37
|
+
|
|
38
|
+
function whitelistedTokenCount() external view returns (uint256);
|
|
39
|
+
|
|
40
|
+
function tokenWeights(address _token) external view returns (uint256);
|
|
41
|
+
|
|
42
|
+
function adjustForDecimals(
|
|
43
|
+
uint256 _amount,
|
|
44
|
+
address _tokenDiv,
|
|
45
|
+
address _tokenMul
|
|
46
|
+
) external view returns (uint256);
|
|
47
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity 0.8.17;
|
|
3
|
+
|
|
4
|
+
interface IRewardRouterV2 {
|
|
5
|
+
function weth() external view returns (address);
|
|
6
|
+
|
|
7
|
+
function claim() external;
|
|
8
|
+
|
|
9
|
+
function glpManager() external view returns (address);
|
|
10
|
+
|
|
11
|
+
function mintAndStakeGlp(
|
|
12
|
+
address _token,
|
|
13
|
+
uint256 _amount,
|
|
14
|
+
uint256 _minUsdg,
|
|
15
|
+
uint256 _minGlp
|
|
16
|
+
) external returns (uint256);
|
|
17
|
+
|
|
18
|
+
function mintAndStakeGlpETH(uint256 _minUsdg, uint256 _minGlp)
|
|
19
|
+
external
|
|
20
|
+
payable
|
|
21
|
+
returns (uint256);
|
|
22
|
+
|
|
23
|
+
function unstakeAndRedeemGlp(
|
|
24
|
+
address _tokenOut,
|
|
25
|
+
uint256 _glpAmount,
|
|
26
|
+
uint256 _minOut,
|
|
27
|
+
address _receiver
|
|
28
|
+
) external returns (uint256);
|
|
29
|
+
|
|
30
|
+
function unstakeAndRedeemGlpETH(
|
|
31
|
+
uint256 _glpAmount,
|
|
32
|
+
uint256 _minOut,
|
|
33
|
+
address payable _receiver
|
|
34
|
+
) external returns (uint256);
|
|
35
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
/******************************************************************************\
|
|
5
|
+
* Author: Nick Mudge <nick@perfectabstractions.com> (https://twitter.com/mudgen)
|
|
6
|
+
* EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535
|
|
7
|
+
/******************************************************************************/
|
|
8
|
+
|
|
9
|
+
interface IDiamondCut {
|
|
10
|
+
enum FacetCutAction {
|
|
11
|
+
Add,
|
|
12
|
+
Replace,
|
|
13
|
+
Remove
|
|
14
|
+
}
|
|
15
|
+
// Add=0, Replace=1, Remove=2
|
|
16
|
+
|
|
17
|
+
struct FacetCut {
|
|
18
|
+
address facetAddress;
|
|
19
|
+
FacetCutAction action;
|
|
20
|
+
bytes4[] functionSelectors;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/// @notice Add/replace/remove any number of functions and optionally execute
|
|
24
|
+
/// a function with delegatecall
|
|
25
|
+
/// @param _diamondCut Contains the facet addresses and function selectors
|
|
26
|
+
/// @param _init The address of the contract or facet to execute _calldata
|
|
27
|
+
/// @param _calldata A function call, including function selector and arguments
|
|
28
|
+
/// _calldata is executed with delegatecall on _init
|
|
29
|
+
function diamondCut(
|
|
30
|
+
FacetCut[] calldata _diamondCut,
|
|
31
|
+
address _init,
|
|
32
|
+
bytes calldata _calldata
|
|
33
|
+
) external;
|
|
34
|
+
|
|
35
|
+
event DiamondCut(FacetCut[] _diamondCut, address _init, bytes _calldata);
|
|
36
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
/******************************************************************************\
|
|
5
|
+
* Author: Nick Mudge <nick@perfectabstractions.com> (https://twitter.com/mudgen)
|
|
6
|
+
* EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535
|
|
7
|
+
/******************************************************************************/
|
|
8
|
+
|
|
9
|
+
// A loupe is a small magnifying glass used to look at diamonds.
|
|
10
|
+
// These functions look at diamonds
|
|
11
|
+
interface IDiamondLoupe {
|
|
12
|
+
/// These functions are expected to be called frequently
|
|
13
|
+
/// by tools.
|
|
14
|
+
|
|
15
|
+
struct Facet {
|
|
16
|
+
address facetAddress;
|
|
17
|
+
bytes4[] functionSelectors;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/// @notice Gets all facet addresses and their four byte function selectors.
|
|
21
|
+
/// @return facets_ Facet
|
|
22
|
+
function facets() external view returns (Facet[] memory facets_);
|
|
23
|
+
|
|
24
|
+
/// @notice Gets all the function selectors supported by a specific facet.
|
|
25
|
+
/// @param _facet The facet address.
|
|
26
|
+
/// @return facetFunctionSelectors_
|
|
27
|
+
function facetFunctionSelectors(address _facet) external view returns (bytes4[] memory facetFunctionSelectors_);
|
|
28
|
+
|
|
29
|
+
/// @notice Get all the facet addresses used by a diamond.
|
|
30
|
+
/// @return facetAddresses_
|
|
31
|
+
function facetAddresses() external view returns (address[] memory facetAddresses_);
|
|
32
|
+
|
|
33
|
+
/// @notice Gets the facet that supports the given selector.
|
|
34
|
+
/// @dev If facet is not found return address(0).
|
|
35
|
+
/// @param _functionSelector The function selector.
|
|
36
|
+
/// @return facetAddress_ The facet address.
|
|
37
|
+
function facetAddress(bytes4 _functionSelector) external view returns (address facetAddress_);
|
|
38
|
+
}
|
|
@@ -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/base/ActionBaseMintRedeem.sol";
|
|
6
6
|
|
|
7
7
|
interface IPActionAddRemoveLiq {
|
|
8
8
|
event AddLiquidityDualSyAndPt(
|
|
@@ -49,6 +49,25 @@ interface IPActionAddRemoveLiq {
|
|
|
49
49
|
uint256 netLpOut
|
|
50
50
|
);
|
|
51
51
|
|
|
52
|
+
event AddLiquiditySingleSyKeepYt(
|
|
53
|
+
address indexed caller,
|
|
54
|
+
address indexed market,
|
|
55
|
+
address indexed receiver,
|
|
56
|
+
uint256 netSyIn,
|
|
57
|
+
uint256 netLpOut,
|
|
58
|
+
uint256 netYtOut
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
event AddLiquiditySingleTokenKeepYt(
|
|
62
|
+
address indexed caller,
|
|
63
|
+
address indexed market,
|
|
64
|
+
address indexed token,
|
|
65
|
+
address receiver,
|
|
66
|
+
uint256 netTokenIn,
|
|
67
|
+
uint256 netLpOut,
|
|
68
|
+
uint256 netYtOut
|
|
69
|
+
);
|
|
70
|
+
|
|
52
71
|
event RemoveLiquidityDualSyAndPt(
|
|
53
72
|
address indexed caller,
|
|
54
73
|
address indexed market,
|
|
@@ -146,6 +165,22 @@ interface IPActionAddRemoveLiq {
|
|
|
146
165
|
TokenInput calldata input
|
|
147
166
|
) external payable returns (uint256 netLpOut, uint256 netSyFee);
|
|
148
167
|
|
|
168
|
+
function addLiquiditySingleSyKeepYt(
|
|
169
|
+
address receiver,
|
|
170
|
+
address market,
|
|
171
|
+
uint256 netSyIn,
|
|
172
|
+
uint256 minLpOut,
|
|
173
|
+
uint256 minYtOut
|
|
174
|
+
) external returns (uint256 netLpOut, uint256 netYtOut);
|
|
175
|
+
|
|
176
|
+
function addLiquiditySingleTokenKeepYt(
|
|
177
|
+
address receiver,
|
|
178
|
+
address market,
|
|
179
|
+
uint256 minLpOut,
|
|
180
|
+
uint256 minYtOut,
|
|
181
|
+
TokenInput calldata input
|
|
182
|
+
) external returns (uint256 netLpOut, uint256 netYtOut);
|
|
183
|
+
|
|
149
184
|
function removeLiquidityDualSyAndPt(
|
|
150
185
|
address receiver,
|
|
151
186
|
address market,
|
|
@@ -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/base/ActionBaseMintRedeem.sol";
|
|
6
6
|
|
|
7
7
|
interface IPActionMintRedeem {
|
|
8
8
|
event MintSyFromToken(
|
|
@@ -57,26 +57,6 @@ interface IPActionMintRedeem {
|
|
|
57
57
|
uint256 netTokenOut
|
|
58
58
|
);
|
|
59
59
|
|
|
60
|
-
event RedeemDueInterestAndRewards(
|
|
61
|
-
address indexed user,
|
|
62
|
-
address[] sys,
|
|
63
|
-
address[] yts,
|
|
64
|
-
address[] markets,
|
|
65
|
-
uint256[][] syRewards,
|
|
66
|
-
uint256[] ytInterests,
|
|
67
|
-
uint256[][] ytRewards,
|
|
68
|
-
uint256[][] marketRewards
|
|
69
|
-
);
|
|
70
|
-
|
|
71
|
-
event RedeemDueInterestAndRewardsThenSwapAll(
|
|
72
|
-
address indexed user,
|
|
73
|
-
address[] sys,
|
|
74
|
-
address[] yts,
|
|
75
|
-
address[] markets,
|
|
76
|
-
address indexed tokenOut,
|
|
77
|
-
uint256 netTokenOut
|
|
78
|
-
);
|
|
79
|
-
|
|
80
60
|
function mintSyFromToken(
|
|
81
61
|
address receiver,
|
|
82
62
|
address SY,
|
|
@@ -124,38 +104,5 @@ interface IPActionMintRedeem {
|
|
|
124
104
|
address[] calldata sys,
|
|
125
105
|
address[] calldata yts,
|
|
126
106
|
address[] calldata markets
|
|
127
|
-
)
|
|
128
|
-
external
|
|
129
|
-
returns (
|
|
130
|
-
uint256[][] memory syRewards,
|
|
131
|
-
uint256[] memory ytInterests,
|
|
132
|
-
uint256[][] memory ytRewards,
|
|
133
|
-
uint256[][] memory marketRewards
|
|
134
|
-
);
|
|
135
|
-
|
|
136
|
-
struct RouterYtRedeemStruct {
|
|
137
|
-
address[] yts;
|
|
138
|
-
// key-value pair
|
|
139
|
-
address[] syAddrs;
|
|
140
|
-
address[] tokenRedeemSys;
|
|
141
|
-
address[] bulks;
|
|
142
|
-
//
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
struct RouterSwapAllStruct {
|
|
146
|
-
// key-value pair
|
|
147
|
-
address[] tokens;
|
|
148
|
-
bytes[] kybercalls;
|
|
149
|
-
//
|
|
150
|
-
address kyberRouter;
|
|
151
|
-
address outputToken;
|
|
152
|
-
uint256 minTokenOut;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
function redeemDueInterestAndRewardsThenSwapAll(
|
|
156
|
-
address[] calldata sys,
|
|
157
|
-
RouterYtRedeemStruct calldata dataYT,
|
|
158
|
-
address[] calldata markets,
|
|
159
|
-
RouterSwapAllStruct calldata dataSwap
|
|
160
|
-
) external returns (uint256 netTokenOut, uint256[] memory amountsSwapped);
|
|
107
|
+
) external;
|
|
161
108
|
}
|
|
@@ -2,8 +2,25 @@
|
|
|
2
2
|
pragma solidity 0.8.17;
|
|
3
3
|
|
|
4
4
|
interface IPActionMisc {
|
|
5
|
-
|
|
5
|
+
struct MultiApproval {
|
|
6
|
+
address[] tokens;
|
|
7
|
+
address spender;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
struct Call3 {
|
|
11
|
+
bool allowFailure;
|
|
12
|
+
bytes callData;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
struct Result {
|
|
16
|
+
bool success;
|
|
17
|
+
bytes returnData;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function approveInf(MultiApproval[] calldata) external;
|
|
21
|
+
|
|
22
|
+
function batchExec(Call3[] calldata calls)
|
|
6
23
|
external
|
|
7
|
-
|
|
8
|
-
returns (
|
|
24
|
+
payable
|
|
25
|
+
returns (Result[] memory returnData);
|
|
9
26
|
}
|
|
@@ -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/base/ActionBaseMintRedeem.sol";
|
|
6
6
|
|
|
7
7
|
interface IPActionSwapYT {
|
|
8
8
|
event SwapYtAndSy(
|
|
@@ -22,12 +22,20 @@ interface IPActionSwapYT {
|
|
|
22
22
|
int256 netTokenToAccount
|
|
23
23
|
);
|
|
24
24
|
|
|
25
|
+
event SwapPtAndYt(
|
|
26
|
+
address indexed caller,
|
|
27
|
+
address indexed market,
|
|
28
|
+
address indexed receiver,
|
|
29
|
+
int256 netPtToAccount,
|
|
30
|
+
int256 netYtToAccount
|
|
31
|
+
);
|
|
32
|
+
|
|
25
33
|
function swapExactSyForYt(
|
|
26
34
|
address receiver,
|
|
27
35
|
address market,
|
|
28
36
|
uint256 exactSyIn,
|
|
29
37
|
uint256 minYtOut,
|
|
30
|
-
ApproxParams
|
|
38
|
+
ApproxParams calldata guessYtOut
|
|
31
39
|
) external returns (uint256 netYtOut, uint256 netSyFee);
|
|
32
40
|
|
|
33
41
|
function swapExactYtForSy(
|
|
@@ -49,14 +57,14 @@ interface IPActionSwapYT {
|
|
|
49
57
|
address market,
|
|
50
58
|
uint256 exactSyOut,
|
|
51
59
|
uint256 maxYtIn,
|
|
52
|
-
ApproxParams
|
|
60
|
+
ApproxParams calldata guessYtIn
|
|
53
61
|
) external returns (uint256 netYtIn, uint256 netSyFee);
|
|
54
62
|
|
|
55
63
|
function swapExactTokenForYt(
|
|
56
64
|
address receiver,
|
|
57
65
|
address market,
|
|
58
66
|
uint256 minYtOut,
|
|
59
|
-
ApproxParams
|
|
67
|
+
ApproxParams calldata guessYtOut,
|
|
60
68
|
TokenInput calldata input
|
|
61
69
|
) external payable returns (uint256 netYtOut, uint256 netSyFee);
|
|
62
70
|
|
|
@@ -66,4 +74,20 @@ interface IPActionSwapYT {
|
|
|
66
74
|
uint256 netYtIn,
|
|
67
75
|
TokenOutput calldata output
|
|
68
76
|
) external returns (uint256 netTokenOut, uint256 netSyFee);
|
|
77
|
+
|
|
78
|
+
function swapExactPtForYt(
|
|
79
|
+
address receiver,
|
|
80
|
+
address market,
|
|
81
|
+
uint256 exactPtIn,
|
|
82
|
+
uint256 minYtOut,
|
|
83
|
+
ApproxParams calldata guessTotalPtToSwap
|
|
84
|
+
) external returns (uint256 netYtOut, uint256 netSyFee);
|
|
85
|
+
|
|
86
|
+
function swapExactYtForPt(
|
|
87
|
+
address receiver,
|
|
88
|
+
address market,
|
|
89
|
+
uint256 exactYtIn,
|
|
90
|
+
uint256 minPtOut,
|
|
91
|
+
ApproxParams calldata guessTotalPtSwapped
|
|
92
|
+
) external returns (uint256 netPtOut, uint256 netSyFee);
|
|
69
93
|
}
|
|
@@ -5,15 +5,17 @@ pragma solidity 0.8.17;
|
|
|
5
5
|
import "./IPActionAddRemoveLiq.sol";
|
|
6
6
|
import "./IPActionSwapPT.sol";
|
|
7
7
|
import "./IPActionSwapYT.sol";
|
|
8
|
-
import "./IPActionSwapPTYT.sol";
|
|
9
8
|
import "./IPActionMintRedeem.sol";
|
|
10
9
|
import "./IPActionMisc.sol";
|
|
10
|
+
import "./IPMarketSwapCallback.sol";
|
|
11
|
+
import "./IDiamondLoupe.sol";
|
|
11
12
|
|
|
12
13
|
interface IPAllAction is
|
|
13
14
|
IPActionAddRemoveLiq,
|
|
14
15
|
IPActionSwapPT,
|
|
15
16
|
IPActionSwapYT,
|
|
16
|
-
IPActionSwapPTYT,
|
|
17
17
|
IPActionMintRedeem,
|
|
18
|
-
IPActionMisc
|
|
18
|
+
IPActionMisc,
|
|
19
|
+
IPMarketSwapCallback,
|
|
20
|
+
IDiamondLoupe
|
|
19
21
|
{}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity 0.8.17;
|
|
3
|
+
|
|
4
|
+
interface IPInterestManagerYTV2 {
|
|
5
|
+
function userInterest(address user)
|
|
6
|
+
external
|
|
7
|
+
view
|
|
8
|
+
returns (
|
|
9
|
+
uint128 lastInterestIndex,
|
|
10
|
+
uint128 accruedInterest,
|
|
11
|
+
uint256 lastPYIndex
|
|
12
|
+
);
|
|
13
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity 0.8.17;
|
|
3
|
+
import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
|
4
|
+
import "./IRewardManager.sol";
|
|
5
|
+
import "./IPInterestManagerYTV2.sol";
|
|
6
|
+
|
|
7
|
+
interface IPYieldTokenV2 is IERC20Metadata, IRewardManager, IPInterestManagerYTV2 {
|
|
8
|
+
event Mint(
|
|
9
|
+
address indexed caller,
|
|
10
|
+
address indexed receiverPT,
|
|
11
|
+
address indexed receiverYT,
|
|
12
|
+
uint256 amountSyToMint,
|
|
13
|
+
uint256 amountPYOut
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
event Burn(
|
|
17
|
+
address indexed caller,
|
|
18
|
+
address indexed receiver,
|
|
19
|
+
uint256 amountPYToRedeem,
|
|
20
|
+
uint256 amountSyOut
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
event RedeemRewards(address indexed user, uint256[] amountRewardsOut);
|
|
24
|
+
|
|
25
|
+
event RedeemInterest(address indexed user, uint256 interestOut);
|
|
26
|
+
|
|
27
|
+
event WithdrawFeeToTreasury(uint256[] amountRewardsOut, uint256 syOut);
|
|
28
|
+
|
|
29
|
+
event CollectInterestFee(uint256 amountInterestFee);
|
|
30
|
+
|
|
31
|
+
event CollectRewardFee(address indexed rewardToken, uint256 amountRewardFee);
|
|
32
|
+
|
|
33
|
+
function mintPY(address receiverPT, address receiverYT) external returns (uint256 amountPYOut);
|
|
34
|
+
|
|
35
|
+
function redeemPY(address receiver) external returns (uint256 amountSyOut);
|
|
36
|
+
|
|
37
|
+
function redeemPYMulti(address[] calldata receivers, uint256[] calldata amountPYToRedeems)
|
|
38
|
+
external
|
|
39
|
+
returns (uint256[] memory amountSyOuts);
|
|
40
|
+
|
|
41
|
+
function redeemDueInterestAndRewards(
|
|
42
|
+
address user,
|
|
43
|
+
bool redeemInterest,
|
|
44
|
+
bool redeemRewards
|
|
45
|
+
) external returns (uint256 interestOut, uint256[] memory rewardsOut);
|
|
46
|
+
|
|
47
|
+
function rewardIndexesCurrent() external returns (uint256[] memory);
|
|
48
|
+
|
|
49
|
+
function pyIndexCurrent() external returns (uint256);
|
|
50
|
+
|
|
51
|
+
function pyIndexStored() external view returns (uint256);
|
|
52
|
+
|
|
53
|
+
function getRewardTokens() external view returns (address[] memory);
|
|
54
|
+
|
|
55
|
+
function SY() external view returns (address);
|
|
56
|
+
|
|
57
|
+
function PT() external view returns (address);
|
|
58
|
+
|
|
59
|
+
function factory() external view returns (address);
|
|
60
|
+
|
|
61
|
+
function expiry() external view returns (uint256);
|
|
62
|
+
|
|
63
|
+
function isExpired() external view returns (bool);
|
|
64
|
+
|
|
65
|
+
function doCacheIndexSameBlock() external view returns (bool);
|
|
66
|
+
}
|
|
@@ -118,6 +118,21 @@ library MarketMathStatic {
|
|
|
118
118
|
exchangeRateAfter = _getTradeExchangeRateExcludeFee(market, state);
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
+
function addLiquiditySingleSyKeepYtStatic(address market, uint256 netSyIn)
|
|
122
|
+
public
|
|
123
|
+
returns (uint256 netLpOut, uint256 netYtOut)
|
|
124
|
+
{
|
|
125
|
+
MarketState memory state = IPMarket(market).readState(address(this));
|
|
126
|
+
PYIndex index = pyIndex(market);
|
|
127
|
+
|
|
128
|
+
uint256 netSyToPt = (netSyIn * state.totalPt.Uint()) /
|
|
129
|
+
(state.totalPt.Uint() + index.syToAsset(state.totalSy.Uint()));
|
|
130
|
+
|
|
131
|
+
netYtOut = index.syToAsset(netSyToPt);
|
|
132
|
+
|
|
133
|
+
(, netLpOut, , ) = state.addLiquidity(netSyIn - netSyToPt, netYtOut, block.timestamp);
|
|
134
|
+
}
|
|
135
|
+
|
|
121
136
|
function removeLiquidityDualSyAndPtStatic(address market, uint256 netLpToRemove)
|
|
122
137
|
external
|
|
123
138
|
view
|
|
@@ -368,6 +368,28 @@ contract RouterStatic is Initializable, Proxy, BoringOwnableUpgradeable, UUPSUpg
|
|
|
368
368
|
return MarketMathStatic.addLiquiditySingleSyStatic(market, netSyIn);
|
|
369
369
|
}
|
|
370
370
|
|
|
371
|
+
function addLiquiditySingleSyKeepYtStatic(address market, uint256 netSyIn)
|
|
372
|
+
external
|
|
373
|
+
returns (uint256 netLpOut, uint256 netYtOut)
|
|
374
|
+
{
|
|
375
|
+
return MarketMathStatic.addLiquiditySingleSyKeepYtStatic(market, netSyIn);
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
function addLiquiditySingleTokenKeepYtStatic(
|
|
379
|
+
address market,
|
|
380
|
+
address baseToken,
|
|
381
|
+
uint256 netBaseTokenIn,
|
|
382
|
+
address bulk
|
|
383
|
+
) external returns (uint256 netLpOut, uint256 netYtOut) {
|
|
384
|
+
uint256 netSyIn = previewDepositStatic(
|
|
385
|
+
getSyMarket(market),
|
|
386
|
+
baseToken,
|
|
387
|
+
netBaseTokenIn,
|
|
388
|
+
bulk
|
|
389
|
+
);
|
|
390
|
+
return MarketMathStatic.addLiquiditySingleSyKeepYtStatic(market, netSyIn);
|
|
391
|
+
}
|
|
392
|
+
|
|
371
393
|
function removeLiquidityDualSyAndPtStatic(address market, uint256 netLpToRemove)
|
|
372
394
|
external
|
|
373
395
|
view
|