@pendle/core-v2 1.2.1-testnet → 1.3.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/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.json +2 -2
- 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/PYIndex.sol/PYIndexLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.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/SYUtils.sol/SYUtils.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/SYUtils.sol/SYUtils.json +2 -2
- 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/PendleAuraWethAnkrethSY.sol/PendleAuraWethAnkrethSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSY.sol/PendleAuraWethAnkrethSY.json +1192 -0
- 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/MetaStable/MetaStableMath.sol/MetaStableMath.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol/PendleAuraBalancerStableLPSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/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/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.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/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/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 +1 -1
- package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +2 -2
- package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +2 -2
- package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +2 -2
- package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
- package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.json +2 -2
- package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
- package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.json +2 -2
- package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.json +2 -2
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.json +2 -2
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.json +2 -2
- package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.json +2 -2
- package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.json +2 -2
- package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.json +2 -2
- package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.json +2 -2
- package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ConvexCurve/ICrvDepositor.sol/ICrvDepositor.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IApeStaking.sol/IApeStaking.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.json +0 -10
- package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.json +2 -2
- package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPLiquidityMigrator.sol/IPLiquidityMigrator.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPLiquidityMigrator.sol/IPLiquidityMigrator.json +655 -0
- package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +2 -12
- 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/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -12
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +4 -4
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +4 -0
- package/build/artifacts/contracts/{router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.json → offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.json} +2 -2
- package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +2 -2
- package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +2 -2
- package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
- package/build/artifacts/contracts/router/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 +2 -2
- package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +2 -2
- package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
- package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
- package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +4 -0
- package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.json +773 -0
- package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
- package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwapArbitrum.sol/PendleSwapArbitrum.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwapArbitrum.sol/PendleSwapArbitrum.json +76 -0
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwapEthereum.sol/PendleSwapEthereum.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwapEthereum.sol/PendleSwapEthereum.json +76 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{interfaces → arbitrum}/IAggregationExecutor.sol/IAggregationExecutor.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper1.sol/IExecutorHelper1.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper1.sol/IExecutorHelper1.json +388 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper2.sol/IExecutorHelper2.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper2.sol/IExecutorHelper2.json +40 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IHashflow.sol/IHashflow.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{interfaces → arbitrum}/IHashflow.sol/IHashflow.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{interfaces → arbitrum}/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/KyberHelperArbitrum.sol/KyberHelperArbitrum.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/KyberHelperArbitrum.sol/KyberHelperArbitrum.json +10 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/ScaleDataHelperArbitrum.sol/ScaleDataHelperArbitrum.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/ScaleDataHelperArbitrum.sol/ScaleDataHelperArbitrum.json +10 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IAggregationExecutor.sol/IAggregationExecutor.json +65 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{interfaces → ethereum}/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IHashflow.sol/IHashflow.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IHashflow.sol/IHashflow.json +101 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json +215 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/KyberHelperEthereum.sol/KyberHelperEthereum.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/KyberHelperEthereum.sol/KyberHelperEthereum.json +10 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/ScaleDataHelperEthereum.sol/ScaleDataHelperEthereum.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/ScaleDataHelperEthereum.sol/ScaleDataHelperEthereum.json +10 -0
- package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol +4 -5
- package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol +3 -5
- package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol +7 -10
- package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol +8 -10
- package/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol +16 -8
- package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +3 -5
- package/contracts/LiquidityMining/README.md +49 -46
- package/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol +9 -14
- package/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +4 -10
- package/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +23 -36
- package/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +18 -24
- package/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +3 -4
- package/contracts/LiquidityMining/libraries/VeBalanceLib.sol +20 -26
- package/contracts/core/BulkSeller/BulkSeller.sol +1 -5
- package/contracts/core/BulkSeller/BulkSellerFactory.sol +4 -5
- package/contracts/core/BulkSeller/BulkSellerMathCore.sol +20 -25
- package/contracts/core/Market/MarketMathCore.sol +23 -69
- package/contracts/core/Market/OracleLib.sol +4 -4
- package/contracts/core/Market/PendleGauge.sol +7 -20
- package/contracts/core/Market/PendleMarket.sol +5 -15
- package/contracts/core/Market/PendleMarketFactory.sol +3 -9
- package/contracts/core/RewardManager/RewardManager.sol +4 -6
- package/contracts/core/RewardManager/RewardManagerAbstract.sol +4 -4
- package/contracts/core/StandardizedYield/PYIndex.sol +7 -36
- package/contracts/core/StandardizedYield/SYBase.sol +20 -26
- package/contracts/core/StandardizedYield/SYBaseWithRewards.sol +7 -19
- package/contracts/core/StandardizedYield/SYUtils.sol +4 -5
- package/contracts/core/StandardizedYield/StEthHelper.sol +12 -16
- package/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol +14 -24
- package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSY.sol +127 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol +12 -20
- package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol +12 -20
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol +1 -5
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol +28 -44
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol +28 -47
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol +6 -10
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol +6 -10
- package/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol +13 -22
- package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol +20 -27
- package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol +20 -27
- package/contracts/core/StandardizedYield/implementations/Convex/README.md +4 -4
- package/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol +32 -40
- package/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol +10 -12
- package/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol +14 -18
- package/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol +32 -48
- package/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol +6 -7
- package/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol +14 -24
- package/contracts/core/StandardizedYield/implementations/GLP/README.md +15 -13
- package/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol +12 -38
- package/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol +13 -23
- package/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol +13 -23
- package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +0 -10
- package/contracts/core/YieldContracts/PendleYieldToken.sol +28 -44
- package/contracts/core/YieldContractsV2/InterestManagerYTV2.sol +4 -4
- package/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol +1 -1
- package/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol +24 -38
- package/contracts/core/erc20/PendleERC20.sol +14 -44
- package/contracts/core/libraries/ArrayLib.sol +4 -5
- package/contracts/core/libraries/BaseSplitCodeFactory.sol +5 -7
- package/contracts/core/libraries/BoringOwnableUpgradeable.sol +1 -5
- package/contracts/core/libraries/StringLib.sol +14 -20
- package/contracts/core/libraries/TokenHelper.sol +6 -31
- package/contracts/core/libraries/math/LogExpMath.sol +2 -2
- package/contracts/core/libraries/math/Math.sol +3 -15
- package/contracts/interfaces/Balancer/IComposableStable.sol +4 -14
- package/contracts/interfaces/Balancer/IMetaStablePool.sol +4 -13
- package/contracts/interfaces/Balancer/IVault.sol +4 -6
- package/contracts/interfaces/ConvexCurve/IBooster.sol +4 -16
- package/contracts/interfaces/ConvexCurve/ICrvDepositor.sol +1 -5
- package/contracts/interfaces/ConvexCurve/IRewards.sol +1 -4
- package/contracts/interfaces/Curve/ICrvPool.sol +12 -11
- package/contracts/interfaces/Curve/ITriCrvPool.sol +4 -4
- package/contracts/interfaces/GMX/IGMXVault.sol +4 -4
- package/contracts/interfaces/GMX/IRewardRouterV2.sol +4 -4
- package/contracts/interfaces/IApeStaking.sol +3 -4
- package/contracts/interfaces/IDiamondLoupe.sol +3 -1
- package/contracts/interfaces/IERC4626.sol +1 -5
- package/contracts/interfaces/IPActionAddRemoveLiq.sol +2 -15
- package/contracts/interfaces/IPActionInfoStatic.sol +7 -7
- package/contracts/interfaces/IPActionMarketAuxStatic.sol +11 -7
- package/contracts/interfaces/IPActionMarketCoreStatic.sol +67 -49
- package/contracts/interfaces/IPActionMintRedeemStatic.sol +10 -15
- package/contracts/interfaces/IPActionStorageStatic.sol +5 -6
- package/contracts/interfaces/IPBulkSellerSYCallback.sol +1 -5
- package/contracts/interfaces/IPFeeDistributor.sol +4 -3
- package/contracts/interfaces/IPGaugeController.sol +3 -9
- package/contracts/interfaces/IPInterestManagerYT.sol +3 -4
- package/contracts/interfaces/IPInterestManagerYTV2.sol +4 -6
- package/contracts/interfaces/IPLiquidityMigrator.sol +130 -0
- package/contracts/interfaces/IPMarket.sol +5 -16
- package/contracts/interfaces/IPMarketFactory.sol +3 -8
- package/contracts/interfaces/IPMarketSwapCallback.sol +1 -5
- package/contracts/interfaces/IPVotingController.sol +5 -6
- package/contracts/interfaces/IPVotingEscrowMainchain.sol +8 -7
- package/contracts/interfaces/IPYieldToken.sol +4 -3
- package/contracts/interfaces/IPYieldTokenV2.sol +4 -3
- package/contracts/interfaces/IRewardManager.sol +4 -4
- package/contracts/interfaces/IStETH.sol +4 -3
- package/contracts/interfaces/IStandardizedYield.sol +9 -13
- package/contracts/interfaces/IStargateRouter.sol +1 -5
- package/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol +4 -1
- package/contracts/offchain-helpers/BulkSellerOffchain.sol +7 -11
- package/contracts/offchain-helpers/Multicall2.sol +14 -24
- package/contracts/offchain-helpers/router-static/PendleRouterStatic.sol +1 -1
- package/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol +11 -14
- package/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol +31 -32
- package/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol +76 -65
- package/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol +12 -20
- package/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol +13 -12
- package/contracts/offchain-helpers/router-static/{StorageLayout.sol → base/StorageLayout.sol} +3 -3
- package/contracts/router/ActionAddRemoveLiq.sol +2 -18
- package/contracts/router/ActionSwapYT.sol +9 -3
- package/contracts/router/PendleRouterHelper.sol +315 -0
- package/contracts/router/base/ActionBaseCallback.sol +2 -2
- package/contracts/router/base/ActionBaseMintRedeem.sol +8 -9
- package/contracts/router/base/CallbackHelper.sol +16 -27
- package/contracts/router/base/MarketApproxLib.sol +18 -82
- package/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol +4 -10
- package/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol +4 -5
- package/contracts/router/swap-aggregator/IPSwapAggregator.sol +1 -5
- package/contracts/router/swap-aggregator/{PendleSwapAggregator.sol → PendleSwapArbitrum.sol} +7 -8
- package/contracts/router/swap-aggregator/PendleSwapEthereum.sol +44 -0
- package/contracts/router/swap-aggregator/kyberswap/arbitrum/IAggregationExecutor.sol +17 -0
- package/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper1.sol +195 -0
- package/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper2.sol +10 -0
- package/contracts/router/swap-aggregator/kyberswap/arbitrum/IMetaAggregationRouterV2.sol +41 -0
- package/contracts/router/swap-aggregator/kyberswap/arbitrum/KyberHelperArbitrum.sol +200 -0
- package/contracts/router/swap-aggregator/kyberswap/arbitrum/ScaleDataHelperArbitrum.sol +135 -0
- package/contracts/router/swap-aggregator/kyberswap/ethereum/IAggregationExecutor.sol +17 -0
- package/contracts/router/swap-aggregator/kyberswap/ethereum/IHashflow.sol +30 -0
- package/contracts/router/swap-aggregator/kyberswap/{interfaces → ethereum}/IMetaAggregationRouterV2.sol +3 -4
- package/contracts/router/swap-aggregator/kyberswap/{KyberAggregationRouterHelper.sol → ethereum/KyberHelperEthereum.sol} +20 -33
- package/contracts/router/swap-aggregator/kyberswap/{ScaleDataHelperEthereum1.sol → ethereum/ScaleDataHelperEthereum.sol} +2 -2
- package/deployments/43113-core.json +1 -0
- package/deployments/80001-core.json +1 -0
- package/package.json +6 -5
- package/typechain-types/ActionMarketCoreStatic.ts +0 -4
- package/typechain-types/ActionStorageStatic.ts +5 -3
- package/typechain-types/IChainlinkAggregator.ts +246 -0
- package/typechain-types/IExecutorHelper1.ts +643 -0
- package/typechain-types/IExecutorHelper2.ts +115 -0
- package/typechain-types/IPActionMarketCoreStatic.ts +0 -4
- package/typechain-types/IPActionStorageStatic.ts +5 -3
- package/typechain-types/IPLiquidityMigrator.ts +565 -0
- package/typechain-types/IPRouterStatic.ts +5 -7
- package/typechain-types/IStargateLP.ts +306 -0
- package/typechain-types/IStargateStaking.ts +232 -0
- package/typechain-types/InputScalingHelper.ts +108 -0
- package/typechain-types/PendleAuraWethAnkrethSY.ts +1523 -0
- package/typechain-types/PendlePtOracleBase.ts +139 -0
- package/typechain-types/PendleRouterHelper.ts +647 -0
- package/typechain-types/PendleStargateLP.ts +1442 -0
- package/typechain-types/PendleSwapArbitrum.ts +126 -0
- package/typechain-types/PendleSwapEthereum.ts +126 -0
- package/typechain-types/PtFraxUsdcOracle.ts +176 -0
- package/typechain-types/PtStETHOracle.ts +163 -0
- package/typechain-types/RouterStatic.ts +92 -0
- package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1 -1
- package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -11
- package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -1
- package/typechain-types/factories/ActionMisc__factory.ts +1 -1
- package/typechain-types/factories/ActionStorageStatic__factory.ts +3 -3
- package/typechain-types/factories/ActionSwapPT__factory.ts +1 -1
- package/typechain-types/factories/ActionSwapYT__factory.ts +1 -1
- package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
- package/typechain-types/factories/AddressProvider__factory.ts +1 -1
- package/typechain-types/factories/BaseSplitCodeFactoryContract__factory.ts +1 -1
- package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +1 -1
- package/typechain-types/factories/Broadcaster__factory.ts +1 -1
- package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
- package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
- package/typechain-types/factories/BulkSeller__factory.ts +1 -1
- package/typechain-types/factories/IChainlinkAggregator__factory.ts +170 -0
- package/typechain-types/factories/IExecutorHelper1__factory.ts +403 -0
- package/typechain-types/factories/IExecutorHelper2__factory.ts +55 -0
- package/typechain-types/factories/IPActionMarketCoreStatic__factory.ts +0 -10
- package/typechain-types/factories/IPActionStorageStatic__factory.ts +2 -2
- package/typechain-types/factories/IPLiquidityMigrator__factory.ts +677 -0
- package/typechain-types/factories/IPRouterStatic__factory.ts +2 -12
- package/typechain-types/factories/IStargateLP__factory.ts +212 -0
- package/typechain-types/factories/IStargateStaking__factory.ts +145 -0
- package/typechain-types/factories/InputScalingHelper__factory.ts +88 -0
- package/typechain-types/factories/MarketMathStatic__factory.ts +1 -1
- package/typechain-types/factories/MetaStableMath__factory.ts +1 -1
- package/typechain-types/factories/MetaStablePreview__factory.ts +1 -1
- package/typechain-types/factories/Multicall2__factory.ts +1 -1
- package/typechain-types/factories/OracleLib__factory.ts +1 -1
- package/typechain-types/factories/PendleAuraWethAnkrethSY__factory.ts +1265 -0
- 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/PendleERC20Permit__factory.ts +1 -1
- package/typechain-types/factories/PendleERC20__factory.ts +1 -1
- package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
- package/typechain-types/factories/PendleGDaiSY__factory.ts +1 -1
- package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
- package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
- package/typechain-types/factories/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/PendlePtOracleBase__factory.ts +78 -0
- package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
- package/typechain-types/factories/PendleRouterHelper__factory.ts +841 -0
- package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
- package/typechain-types/factories/PendleRouter__factory.ts +1 -1
- package/typechain-types/factories/PendleStargateLP__factory.ts +1241 -0
- package/typechain-types/factories/PendleSwapAggregator__factory.ts +1 -1
- package/typechain-types/factories/PendleSwapArbitrum__factory.ts +129 -0
- package/typechain-types/factories/PendleSwapEthereum__factory.ts +129 -0
- package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldTokenV2__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
- package/typechain-types/factories/PtFraxUsdcOracle__factory.ts +226 -0
- package/typechain-types/factories/PtStETHOracle__factory.ts +201 -0
- package/typechain-types/factories/RouterStatic__factory.ts +72 -4
- 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 +146 -146
- package/typechain-types/index.ts +24 -34
- package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.json +0 -252
- package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.json +0 -87
- package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.json +0 -59
- package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.json +0 -162
- package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.json +0 -87
- package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.json +0 -24
- package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.json +0 -24
- package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.json +0 -92
- package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.json +0 -199
- package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.json +0 -168
- package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.json +0 -252
- package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.json +0 -132
- package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.json +0 -148
- package/build/artifacts/contracts/offchain-helpers/legacy/MarketMathStatic.sol/MarketMathStatic.dbg.json +0 -4
- package/build/artifacts/contracts/offchain-helpers/legacy/MarketMathStatic.sol/MarketMathStatic.json +0 -259
- package/build/artifacts/contracts/offchain-helpers/legacy/RouterStatic.sol/RouterStatic.dbg.json +0 -4
- package/build/artifacts/contracts/offchain-helpers/legacy/RouterStatic.sol/RouterStatic.json +0 -2741
- package/build/artifacts/contracts/offchain-helpers/router-static/StorageLayout.sol/StorageLayout.dbg.json +0 -4
- package/build/artifacts/contracts/offchain-helpers/router-static/StorageLayout.sol/StorageLayout.json +0 -10
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwapAggregator.sol/PendleSwapAggregator.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwapAggregator.sol/PendleSwapAggregator.json +0 -72
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.json +0 -10
- 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/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +0 -4
- package/contracts/interfaces/IAToken.sol +0 -44
- package/contracts/interfaces/IAavePool.sol +0 -41
- package/contracts/interfaces/IAaveRewardsController.sol +0 -32
- package/contracts/interfaces/IEulerEToken.sol +0 -60
- package/contracts/interfaces/IEulerMarkets.sol +0 -46
- package/contracts/interfaces/IPGovernanceManager.sol +0 -28
- package/contracts/interfaces/IPPermissionsV2Upg.sol +0 -28
- package/contracts/interfaces/IREDACTEDStaking.sol +0 -35
- package/contracts/interfaces/ISAvax.sol +0 -61
- package/contracts/interfaces/ISJoe.sol +0 -57
- package/contracts/interfaces/IWAvax.sol +0 -34
- package/contracts/interfaces/IWXBTRFLY.sol +0 -39
- package/contracts/interfaces/IYearnVault.sol +0 -46
- package/contracts/offchain-helpers/legacy/MarketMathStatic.sol +0 -557
- package/contracts/offchain-helpers/legacy/RouterStatic.sol +0 -903
- package/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol +0 -17
- /package/contracts/router/swap-aggregator/kyberswap/{interfaces → arbitrum}/IHashflow.sol +0 -0
- /package/contracts/router/swap-aggregator/kyberswap/{interfaces → ethereum}/IExecutorHelperEthereum1.sol +0 -0
|
@@ -1,903 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
-
pragma solidity 0.8.17;
|
|
3
|
-
|
|
4
|
-
import "../../interfaces/IPYieldContractFactory.sol";
|
|
5
|
-
import "../../interfaces/IPMarketFactory.sol";
|
|
6
|
-
import "../../interfaces/IPVotingEscrowMainchain.sol";
|
|
7
|
-
import "../../interfaces/IPBulkSellerFactory.sol";
|
|
8
|
-
import "../../interfaces/IPBulkSeller.sol";
|
|
9
|
-
|
|
10
|
-
import "./MarketMathStatic.sol";
|
|
11
|
-
|
|
12
|
-
import "../../core/libraries/BoringOwnableUpgradeable.sol";
|
|
13
|
-
import "../../LiquidityMining/libraries/VeBalanceLib.sol";
|
|
14
|
-
|
|
15
|
-
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
|
16
|
-
import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";
|
|
17
|
-
import "@openzeppelin/contracts/proxy/Proxy.sol";
|
|
18
|
-
|
|
19
|
-
/// EXCLUDED FROM ALL AUDITS, TO BE CALLED ONLY BY PENDLE's SDK
|
|
20
|
-
contract RouterStatic is Initializable, Proxy, BoringOwnableUpgradeable, UUPSUpgradeable {
|
|
21
|
-
using Math for uint256;
|
|
22
|
-
using VeBalanceLib for VeBalance;
|
|
23
|
-
using VeBalanceLib for LockedPosition;
|
|
24
|
-
using BulkSellerMathCore for BulkSellerState;
|
|
25
|
-
|
|
26
|
-
uint128 public constant MAX_LOCK_TIME = 104 weeks;
|
|
27
|
-
uint128 public constant MIN_LOCK_TIME = 1 weeks;
|
|
28
|
-
|
|
29
|
-
struct TokenAmount {
|
|
30
|
-
address token;
|
|
31
|
-
uint256 amount;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
struct AssetAmount {
|
|
35
|
-
IStandardizedYield.AssetType assetType;
|
|
36
|
-
address assetAddress;
|
|
37
|
-
uint256 amount;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
struct RewardIndex {
|
|
41
|
-
address rewardToken;
|
|
42
|
-
uint256 index;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
struct UserPYInfo {
|
|
46
|
-
address yt;
|
|
47
|
-
address pt;
|
|
48
|
-
uint256 ytBalance;
|
|
49
|
-
uint256 ptBalance;
|
|
50
|
-
TokenAmount unclaimedInterest;
|
|
51
|
-
TokenAmount[] unclaimedRewards;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
struct UserMarketInfo {
|
|
55
|
-
address market;
|
|
56
|
-
uint256 lpBalance;
|
|
57
|
-
TokenAmount ptBalance;
|
|
58
|
-
TokenAmount syBalance;
|
|
59
|
-
AssetAmount assetBalance;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
IPYieldContractFactory internal immutable yieldContractFactory;
|
|
63
|
-
IPMarketFactory internal immutable marketFactory;
|
|
64
|
-
IPVotingEscrowMainchain internal immutable vePENDLE;
|
|
65
|
-
IPBulkSellerFactory internal immutable bulkFactory;
|
|
66
|
-
address internal immutable marketMathStaticLib;
|
|
67
|
-
|
|
68
|
-
constructor(
|
|
69
|
-
IPYieldContractFactory _yieldContractFactory,
|
|
70
|
-
IPMarketFactory _marketFactory,
|
|
71
|
-
IPVotingEscrowMainchain _vePENDLE,
|
|
72
|
-
IPBulkSellerFactory _bulkFactory,
|
|
73
|
-
address _marketMathStaticLib
|
|
74
|
-
) initializer {
|
|
75
|
-
yieldContractFactory = _yieldContractFactory;
|
|
76
|
-
marketFactory = _marketFactory;
|
|
77
|
-
vePENDLE = _vePENDLE;
|
|
78
|
-
bulkFactory = _bulkFactory;
|
|
79
|
-
marketMathStaticLib = _marketMathStaticLib;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
// all Market-related functions will go to MarketMathStaticLib
|
|
83
|
-
function _implementation() internal view override returns (address) {
|
|
84
|
-
return marketMathStaticLib;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
function initialize() external initializer {
|
|
88
|
-
__BoringOwnable_init();
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
function _authorizeUpgrade(address newImplementation) internal override onlyOwner {}
|
|
92
|
-
|
|
93
|
-
// ============= SYSTEM INFO =============
|
|
94
|
-
|
|
95
|
-
function getPYInfo(address py)
|
|
96
|
-
external
|
|
97
|
-
returns (
|
|
98
|
-
uint256 exchangeRate,
|
|
99
|
-
uint256 totalSupply,
|
|
100
|
-
RewardIndex[] memory rewardIndexes
|
|
101
|
-
)
|
|
102
|
-
{
|
|
103
|
-
(, address yt) = getPY(py);
|
|
104
|
-
IPYieldToken YT = IPYieldToken(yt);
|
|
105
|
-
exchangeRate = YT.pyIndexCurrent();
|
|
106
|
-
totalSupply = YT.totalSupply();
|
|
107
|
-
address[] memory rewardTokens = YT.getRewardTokens();
|
|
108
|
-
rewardIndexes = new RewardIndex[](rewardTokens.length);
|
|
109
|
-
|
|
110
|
-
uint256[] memory indexes = YT.rewardIndexesCurrent();
|
|
111
|
-
for (uint256 i = 0; i < rewardTokens.length; ++i) {
|
|
112
|
-
address rewardToken = rewardTokens[i];
|
|
113
|
-
rewardIndexes[i].rewardToken = rewardToken;
|
|
114
|
-
rewardIndexes[i].index = indexes[i];
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
function getPendleTokenType(address token)
|
|
119
|
-
external
|
|
120
|
-
view
|
|
121
|
-
returns (
|
|
122
|
-
bool isPT,
|
|
123
|
-
bool isYT,
|
|
124
|
-
bool isMarket
|
|
125
|
-
)
|
|
126
|
-
{
|
|
127
|
-
if (yieldContractFactory.isPT(token)) isPT = true;
|
|
128
|
-
else if (yieldContractFactory.isYT(token)) isYT = true;
|
|
129
|
-
else if (marketFactory.isValidMarket(token)) isMarket = true;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
function getPY(address py) public view returns (address pt, address yt) {
|
|
133
|
-
if (yieldContractFactory.isYT(py)) {
|
|
134
|
-
pt = IPYieldToken(py).PT();
|
|
135
|
-
yt = py;
|
|
136
|
-
} else {
|
|
137
|
-
pt = py;
|
|
138
|
-
yt = IPPrincipalToken(py).YT();
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
function getMarketInfo(address market)
|
|
143
|
-
external
|
|
144
|
-
returns (
|
|
145
|
-
address pt,
|
|
146
|
-
address sy,
|
|
147
|
-
MarketState memory state,
|
|
148
|
-
int256 impliedYield,
|
|
149
|
-
uint256 exchangeRate
|
|
150
|
-
)
|
|
151
|
-
{
|
|
152
|
-
IPMarket _market = IPMarket(market);
|
|
153
|
-
(IStandardizedYield SY, IPPrincipalToken PT, ) = IPMarket(market).readTokens();
|
|
154
|
-
|
|
155
|
-
pt = address(PT);
|
|
156
|
-
sy = address(SY);
|
|
157
|
-
state = _market.readState(address(this));
|
|
158
|
-
impliedYield = getPtImpliedYield(market);
|
|
159
|
-
exchangeRate = MarketMathStatic.getTradeExchangeRateExcludeFee(market);
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
// ============= USER INFO =============
|
|
163
|
-
|
|
164
|
-
function getUserPYPositionsByPYs(address user, address[] calldata pys)
|
|
165
|
-
external
|
|
166
|
-
view
|
|
167
|
-
returns (UserPYInfo[] memory userPYPositions)
|
|
168
|
-
{
|
|
169
|
-
userPYPositions = new UserPYInfo[](pys.length);
|
|
170
|
-
for (uint256 i = 0; i < pys.length; ++i) {
|
|
171
|
-
userPYPositions[i] = getUserPYInfo(pys[i], user);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
function getUserMarketPositions(address user, address[] calldata markets)
|
|
176
|
-
external
|
|
177
|
-
view
|
|
178
|
-
returns (UserMarketInfo[] memory userMarketPositions)
|
|
179
|
-
{
|
|
180
|
-
userMarketPositions = new UserMarketInfo[](markets.length);
|
|
181
|
-
for (uint256 i = 0; i < markets.length; ++i) {
|
|
182
|
-
userMarketPositions[i] = getUserMarketInfo(markets[i], user);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
function getUserSYInfo(address sy, address user)
|
|
187
|
-
external
|
|
188
|
-
view
|
|
189
|
-
returns (uint256 balance, TokenAmount[] memory rewards)
|
|
190
|
-
{
|
|
191
|
-
IStandardizedYield SY = IStandardizedYield(sy);
|
|
192
|
-
balance = SY.balanceOf(sy);
|
|
193
|
-
address[] memory rewardTokens = SY.getRewardTokens();
|
|
194
|
-
rewards = new TokenAmount[](rewardTokens.length);
|
|
195
|
-
for (uint256 i = 0; i < rewardTokens.length; ++i) {
|
|
196
|
-
address rewardToken = rewardTokens[i];
|
|
197
|
-
rewards[i].token = rewardToken;
|
|
198
|
-
(, rewards[i].amount) = IRewardManager(sy).userReward(rewardToken, user);
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
function getUserPYInfo(address py, address user)
|
|
203
|
-
public
|
|
204
|
-
view
|
|
205
|
-
returns (UserPYInfo memory userPYInfo)
|
|
206
|
-
{
|
|
207
|
-
(userPYInfo.pt, userPYInfo.yt) = getPY(py);
|
|
208
|
-
IPYieldToken YT = IPYieldToken(userPYInfo.yt);
|
|
209
|
-
userPYInfo.ytBalance = YT.balanceOf(user);
|
|
210
|
-
userPYInfo.ptBalance = IPPrincipalToken(userPYInfo.pt).balanceOf(user);
|
|
211
|
-
userPYInfo.unclaimedInterest.token = YT.SY();
|
|
212
|
-
(, userPYInfo.unclaimedInterest.amount) = YT.userInterest(user);
|
|
213
|
-
address[] memory rewardTokens = YT.getRewardTokens();
|
|
214
|
-
TokenAmount[] memory unclaimedRewards = new TokenAmount[](rewardTokens.length);
|
|
215
|
-
uint256 length = 0;
|
|
216
|
-
for (uint256 i = 0; i < rewardTokens.length; ++i) {
|
|
217
|
-
address rewardToken = rewardTokens[i];
|
|
218
|
-
(, uint256 amount) = YT.userReward(rewardToken, user);
|
|
219
|
-
if (amount > 0) {
|
|
220
|
-
unclaimedRewards[length].token = rewardToken;
|
|
221
|
-
unclaimedRewards[length].amount = amount;
|
|
222
|
-
++length;
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
userPYInfo.unclaimedRewards = new TokenAmount[](length);
|
|
226
|
-
for (uint256 i = 0; i < length; ++i) {
|
|
227
|
-
userPYInfo.unclaimedRewards[i] = unclaimedRewards[i];
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
function getUserMarketInfo(address market, address user)
|
|
232
|
-
public
|
|
233
|
-
view
|
|
234
|
-
returns (UserMarketInfo memory userMarketInfo)
|
|
235
|
-
{
|
|
236
|
-
IPMarket _market = IPMarket(market);
|
|
237
|
-
uint256 userLp = _market.balanceOf(user);
|
|
238
|
-
|
|
239
|
-
userMarketInfo.market = market;
|
|
240
|
-
userMarketInfo.lpBalance = userLp;
|
|
241
|
-
|
|
242
|
-
(IStandardizedYield SY, IPPrincipalToken PT, ) = _market.readTokens();
|
|
243
|
-
(userMarketInfo.assetBalance.assetType, userMarketInfo.assetBalance.assetAddress, ) = SY
|
|
244
|
-
.assetInfo();
|
|
245
|
-
|
|
246
|
-
MarketState memory state = _market.readState(address(this));
|
|
247
|
-
uint256 totalLp = uint256(state.totalLp);
|
|
248
|
-
|
|
249
|
-
if (totalLp == 0) {
|
|
250
|
-
return userMarketInfo;
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
uint256 userPt = (userLp * uint256(state.totalPt)) / totalLp;
|
|
254
|
-
uint256 userSy = (userLp * uint256(state.totalSy)) / totalLp;
|
|
255
|
-
|
|
256
|
-
userMarketInfo.ptBalance = TokenAmount(address(PT), userPt);
|
|
257
|
-
userMarketInfo.syBalance = TokenAmount(address(SY), userSy);
|
|
258
|
-
userMarketInfo.assetBalance.amount = (userSy * SY.exchangeRate()) / Math.ONE;
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
function hasPYPosition(UserPYInfo calldata userPYInfo) public pure returns (bool hasPosition) {
|
|
262
|
-
hasPosition = (userPYInfo.ytBalance > 0 ||
|
|
263
|
-
userPYInfo.ptBalance > 0 ||
|
|
264
|
-
userPYInfo.unclaimedInterest.amount > 0 ||
|
|
265
|
-
userPYInfo.unclaimedRewards.length > 0);
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
// ============= MARKET ACTIONS =============
|
|
269
|
-
|
|
270
|
-
function addLiquidityDualSyAndPtStatic(
|
|
271
|
-
address market,
|
|
272
|
-
uint256 netSyDesired,
|
|
273
|
-
uint256 netPtDesired
|
|
274
|
-
)
|
|
275
|
-
external
|
|
276
|
-
view
|
|
277
|
-
returns (
|
|
278
|
-
uint256 netLpOut,
|
|
279
|
-
uint256 netSyUsed,
|
|
280
|
-
uint256 netPtUsed
|
|
281
|
-
)
|
|
282
|
-
{
|
|
283
|
-
return MarketMathStatic.addLiquidityDualSyAndPtStatic(market, netSyDesired, netPtDesired);
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
function addLiquidityDualTokenAndPtStatic(
|
|
287
|
-
address market,
|
|
288
|
-
address tokenIn,
|
|
289
|
-
uint256 netTokenDesired,
|
|
290
|
-
address bulk,
|
|
291
|
-
uint256 netPtDesired
|
|
292
|
-
)
|
|
293
|
-
external
|
|
294
|
-
view
|
|
295
|
-
returns (
|
|
296
|
-
uint256 netLpOut,
|
|
297
|
-
uint256 netTokenUsed,
|
|
298
|
-
uint256 netPtUsed
|
|
299
|
-
)
|
|
300
|
-
{
|
|
301
|
-
uint256 netSyDesired = previewDepositStatic(
|
|
302
|
-
getSyMarket(market),
|
|
303
|
-
tokenIn,
|
|
304
|
-
netTokenDesired,
|
|
305
|
-
bulk
|
|
306
|
-
);
|
|
307
|
-
|
|
308
|
-
uint256 netSyUsed;
|
|
309
|
-
(netLpOut, netSyUsed, netPtUsed) = MarketMathStatic.addLiquidityDualSyAndPtStatic(
|
|
310
|
-
market,
|
|
311
|
-
netSyDesired,
|
|
312
|
-
netPtDesired
|
|
313
|
-
);
|
|
314
|
-
|
|
315
|
-
if (netSyUsed != netSyDesired) revert Errors.RouterNotAllSyUsed(netSyDesired, netSyUsed);
|
|
316
|
-
|
|
317
|
-
netTokenUsed = netTokenDesired;
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
function addLiquiditySinglePtStatic(address market, uint256 netPtIn)
|
|
321
|
-
external
|
|
322
|
-
returns (
|
|
323
|
-
uint256 netLpOut,
|
|
324
|
-
uint256 netPtToSwap,
|
|
325
|
-
uint256 netSyFee,
|
|
326
|
-
uint256 priceImpact,
|
|
327
|
-
uint256 exchangeRateAfter
|
|
328
|
-
)
|
|
329
|
-
{
|
|
330
|
-
return MarketMathStatic.addLiquiditySinglePtStatic(market, netPtIn);
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
function addLiquiditySingleSyStatic(address market, uint256 netSyIn)
|
|
334
|
-
public
|
|
335
|
-
returns (
|
|
336
|
-
uint256 netLpOut,
|
|
337
|
-
uint256 netPtFromSwap,
|
|
338
|
-
uint256 netSyFee,
|
|
339
|
-
uint256 priceImpact,
|
|
340
|
-
uint256 exchangeRateAfter
|
|
341
|
-
)
|
|
342
|
-
{
|
|
343
|
-
return MarketMathStatic.addLiquiditySingleSyStatic(market, netSyIn);
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
function addLiquiditySingleBaseTokenStatic(
|
|
347
|
-
address market,
|
|
348
|
-
address baseToken,
|
|
349
|
-
uint256 netBaseTokenIn,
|
|
350
|
-
address bulk
|
|
351
|
-
)
|
|
352
|
-
external
|
|
353
|
-
returns (
|
|
354
|
-
uint256 netLpOut,
|
|
355
|
-
uint256 netPtFromSwap,
|
|
356
|
-
uint256 netSyFee,
|
|
357
|
-
uint256 priceImpact,
|
|
358
|
-
uint256 exchangeRateAfter
|
|
359
|
-
)
|
|
360
|
-
{
|
|
361
|
-
uint256 netSyIn = previewDepositStatic(
|
|
362
|
-
getSyMarket(market),
|
|
363
|
-
baseToken,
|
|
364
|
-
netBaseTokenIn,
|
|
365
|
-
bulk
|
|
366
|
-
);
|
|
367
|
-
|
|
368
|
-
return MarketMathStatic.addLiquiditySingleSyStatic(market, netSyIn);
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
function removeLiquidityDualSyAndPtStatic(address market, uint256 netLpToRemove)
|
|
372
|
-
external
|
|
373
|
-
view
|
|
374
|
-
returns (uint256 netSyOut, uint256 netPtOut)
|
|
375
|
-
{
|
|
376
|
-
return MarketMathStatic.removeLiquidityDualSyAndPtStatic(market, netLpToRemove);
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
function removeLiquidityDualTokenAndPtStatic(
|
|
380
|
-
address market,
|
|
381
|
-
uint256 netLpToRemove,
|
|
382
|
-
address tokenOut,
|
|
383
|
-
address bulk
|
|
384
|
-
) external view returns (uint256 netTokenOut, uint256 netPtOut) {
|
|
385
|
-
uint256 netSyOut;
|
|
386
|
-
|
|
387
|
-
(netSyOut, netPtOut) = MarketMathStatic.removeLiquidityDualSyAndPtStatic(
|
|
388
|
-
market,
|
|
389
|
-
netLpToRemove
|
|
390
|
-
);
|
|
391
|
-
|
|
392
|
-
netTokenOut = previewRedeemStatic(getSyMarket(market), tokenOut, netSyOut, bulk);
|
|
393
|
-
}
|
|
394
|
-
|
|
395
|
-
function removeLiquiditySinglePtStatic(address market, uint256 netLpToRemove)
|
|
396
|
-
external
|
|
397
|
-
returns (
|
|
398
|
-
uint256 netPtOut,
|
|
399
|
-
uint256 netPtFromSwap,
|
|
400
|
-
uint256 netSyFee,
|
|
401
|
-
uint256 priceImpact,
|
|
402
|
-
uint256 exchangeRateAfter
|
|
403
|
-
)
|
|
404
|
-
{
|
|
405
|
-
return MarketMathStatic.removeLiquiditySinglePtStatic(market, netLpToRemove);
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
function removeLiquiditySingleSyStatic(address market, uint256 netLpToRemove)
|
|
409
|
-
public
|
|
410
|
-
returns (
|
|
411
|
-
uint256 netSyOut,
|
|
412
|
-
uint256 netSyFee,
|
|
413
|
-
uint256 priceImpact,
|
|
414
|
-
uint256 exchangeRateAfter
|
|
415
|
-
)
|
|
416
|
-
{
|
|
417
|
-
return MarketMathStatic.removeLiquiditySingleSyStatic(market, netLpToRemove);
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
function removeLiquiditySingleBaseTokenStatic(
|
|
421
|
-
address market,
|
|
422
|
-
uint256 netLpToRemove,
|
|
423
|
-
address baseToken,
|
|
424
|
-
address bulk
|
|
425
|
-
)
|
|
426
|
-
external
|
|
427
|
-
returns (
|
|
428
|
-
uint256 netBaseTokenOut,
|
|
429
|
-
uint256 netSyFee,
|
|
430
|
-
uint256 priceImpact,
|
|
431
|
-
uint256 exchangeRateAfter
|
|
432
|
-
)
|
|
433
|
-
{
|
|
434
|
-
uint256 netSyOut;
|
|
435
|
-
|
|
436
|
-
(netSyOut, netSyFee, priceImpact, exchangeRateAfter) = MarketMathStatic
|
|
437
|
-
.removeLiquiditySingleSyStatic(market, netLpToRemove);
|
|
438
|
-
|
|
439
|
-
netBaseTokenOut = previewRedeemStatic(getSyMarket(market), baseToken, netSyOut, bulk);
|
|
440
|
-
}
|
|
441
|
-
|
|
442
|
-
function swapExactPtForSyStatic(address market, uint256 exactPtIn)
|
|
443
|
-
public
|
|
444
|
-
returns (
|
|
445
|
-
uint256 netSyOut,
|
|
446
|
-
uint256 netSyFee,
|
|
447
|
-
uint256 priceImpact,
|
|
448
|
-
uint256 exchangeRateAfter
|
|
449
|
-
)
|
|
450
|
-
{
|
|
451
|
-
return MarketMathStatic.swapExactPtForSyStatic(market, exactPtIn);
|
|
452
|
-
}
|
|
453
|
-
|
|
454
|
-
function swapSyForExactPtStatic(address market, uint256 exactPtOut)
|
|
455
|
-
external
|
|
456
|
-
returns (
|
|
457
|
-
uint256 netSyIn,
|
|
458
|
-
uint256 netSyFee,
|
|
459
|
-
uint256 priceImpact,
|
|
460
|
-
uint256 exchangeRateAfter
|
|
461
|
-
)
|
|
462
|
-
{
|
|
463
|
-
return MarketMathStatic.swapSyForExactPtStatic(market, exactPtOut);
|
|
464
|
-
}
|
|
465
|
-
|
|
466
|
-
function swapExactSyForPtStatic(address market, uint256 exactSyIn)
|
|
467
|
-
public
|
|
468
|
-
returns (
|
|
469
|
-
uint256 netPtOut,
|
|
470
|
-
uint256 netSyFee,
|
|
471
|
-
uint256 priceImpact,
|
|
472
|
-
uint256 exchangeRateAfter
|
|
473
|
-
)
|
|
474
|
-
{
|
|
475
|
-
return MarketMathStatic.swapExactSyForPtStatic(market, exactSyIn);
|
|
476
|
-
}
|
|
477
|
-
|
|
478
|
-
function swapPtForExactSyStatic(address market, uint256 exactSyOut)
|
|
479
|
-
public
|
|
480
|
-
returns (
|
|
481
|
-
uint256 netPtIn,
|
|
482
|
-
uint256 netSyFee,
|
|
483
|
-
uint256 priceImpact,
|
|
484
|
-
uint256 exchangeRateAfter
|
|
485
|
-
)
|
|
486
|
-
{
|
|
487
|
-
return MarketMathStatic.swapPtForExactSyStatic(market, exactSyOut);
|
|
488
|
-
}
|
|
489
|
-
|
|
490
|
-
function swapExactBaseTokenForPtStatic(
|
|
491
|
-
address market,
|
|
492
|
-
address baseToken,
|
|
493
|
-
uint256 amountBaseToken,
|
|
494
|
-
address bulk
|
|
495
|
-
)
|
|
496
|
-
external
|
|
497
|
-
returns (
|
|
498
|
-
uint256 netPtOut,
|
|
499
|
-
uint256 netSyFee,
|
|
500
|
-
uint256 priceImpact,
|
|
501
|
-
uint256 exchangeRateAfter
|
|
502
|
-
)
|
|
503
|
-
{
|
|
504
|
-
uint256 netSyIn = previewDepositStatic(
|
|
505
|
-
getSyMarket(market),
|
|
506
|
-
baseToken,
|
|
507
|
-
amountBaseToken,
|
|
508
|
-
bulk
|
|
509
|
-
);
|
|
510
|
-
return MarketMathStatic.swapExactSyForPtStatic(market, netSyIn);
|
|
511
|
-
}
|
|
512
|
-
|
|
513
|
-
function swapExactPtForBaseTokenStatic(
|
|
514
|
-
address market,
|
|
515
|
-
uint256 exactPtIn,
|
|
516
|
-
address baseToken,
|
|
517
|
-
address bulk
|
|
518
|
-
)
|
|
519
|
-
external
|
|
520
|
-
returns (
|
|
521
|
-
uint256 netBaseTokenOut,
|
|
522
|
-
uint256 netSyFee,
|
|
523
|
-
uint256 priceImpact,
|
|
524
|
-
uint256 exchangeRateAfter
|
|
525
|
-
)
|
|
526
|
-
{
|
|
527
|
-
uint256 netSyOut;
|
|
528
|
-
(netSyOut, netSyFee, priceImpact, exchangeRateAfter) = MarketMathStatic
|
|
529
|
-
.swapExactPtForSyStatic(market, exactPtIn);
|
|
530
|
-
|
|
531
|
-
netBaseTokenOut = previewRedeemStatic(getSyMarket(market), baseToken, netSyOut, bulk);
|
|
532
|
-
}
|
|
533
|
-
|
|
534
|
-
function swapSyForExactYtStatic(address market, uint256 exactYtOut)
|
|
535
|
-
external
|
|
536
|
-
returns (
|
|
537
|
-
uint256 netSyIn,
|
|
538
|
-
uint256 netSyFee,
|
|
539
|
-
uint256 priceImpact,
|
|
540
|
-
uint256 exchangeRateAfter
|
|
541
|
-
)
|
|
542
|
-
{
|
|
543
|
-
return MarketMathStatic.swapSyForExactYtStatic(market, exactYtOut);
|
|
544
|
-
}
|
|
545
|
-
|
|
546
|
-
function swapExactSyForYtStatic(address market, uint256 exactSyIn)
|
|
547
|
-
public
|
|
548
|
-
returns (
|
|
549
|
-
uint256 netYtOut,
|
|
550
|
-
uint256 netSyFee,
|
|
551
|
-
uint256 priceImpact,
|
|
552
|
-
uint256 exchangeRateAfter
|
|
553
|
-
)
|
|
554
|
-
{
|
|
555
|
-
return MarketMathStatic.swapExactSyForYtStatic(market, exactSyIn);
|
|
556
|
-
}
|
|
557
|
-
|
|
558
|
-
function swapExactYtForSyStatic(address market, uint256 exactYtIn)
|
|
559
|
-
public
|
|
560
|
-
returns (
|
|
561
|
-
uint256 netSyOut,
|
|
562
|
-
uint256 netSyFee,
|
|
563
|
-
uint256 priceImpact,
|
|
564
|
-
uint256 exchangeRateAfter
|
|
565
|
-
)
|
|
566
|
-
{
|
|
567
|
-
return MarketMathStatic.swapExactYtForSyStatic(market, exactYtIn);
|
|
568
|
-
}
|
|
569
|
-
|
|
570
|
-
function swapYtForExactSyStatic(address market, uint256 exactSyOut)
|
|
571
|
-
external
|
|
572
|
-
returns (
|
|
573
|
-
uint256 netYtIn,
|
|
574
|
-
uint256 netSyFee,
|
|
575
|
-
uint256 priceImpact,
|
|
576
|
-
uint256 exchangeRateAfter
|
|
577
|
-
)
|
|
578
|
-
{
|
|
579
|
-
return MarketMathStatic.swapYtForExactSyStatic(market, exactSyOut);
|
|
580
|
-
}
|
|
581
|
-
|
|
582
|
-
function swapExactYtForBaseTokenStatic(
|
|
583
|
-
address market,
|
|
584
|
-
uint256 exactYtIn,
|
|
585
|
-
address baseToken,
|
|
586
|
-
address bulk
|
|
587
|
-
)
|
|
588
|
-
external
|
|
589
|
-
returns (
|
|
590
|
-
uint256 netBaseTokenOut,
|
|
591
|
-
uint256 netSyFee,
|
|
592
|
-
uint256 priceImpact,
|
|
593
|
-
uint256 exchangeRateAfter
|
|
594
|
-
)
|
|
595
|
-
{
|
|
596
|
-
uint256 netSyOut;
|
|
597
|
-
(netSyOut, netSyFee, priceImpact, exchangeRateAfter) = MarketMathStatic
|
|
598
|
-
.swapExactYtForSyStatic(market, exactYtIn);
|
|
599
|
-
|
|
600
|
-
netBaseTokenOut = previewRedeemStatic(getSyMarket(market), baseToken, netSyOut, bulk);
|
|
601
|
-
}
|
|
602
|
-
|
|
603
|
-
function swapExactBaseTokenForYtStatic(
|
|
604
|
-
address market,
|
|
605
|
-
address baseToken,
|
|
606
|
-
uint256 amountBaseToken,
|
|
607
|
-
address bulk
|
|
608
|
-
)
|
|
609
|
-
external
|
|
610
|
-
returns (
|
|
611
|
-
uint256 netYtOut,
|
|
612
|
-
uint256 netSyFee,
|
|
613
|
-
uint256 priceImpact,
|
|
614
|
-
uint256 exchangeRateAfter
|
|
615
|
-
)
|
|
616
|
-
{
|
|
617
|
-
uint256 netSyIn = previewDepositStatic(
|
|
618
|
-
getSyMarket(market),
|
|
619
|
-
baseToken,
|
|
620
|
-
amountBaseToken,
|
|
621
|
-
bulk
|
|
622
|
-
);
|
|
623
|
-
|
|
624
|
-
return MarketMathStatic.swapExactSyForYtStatic(market, netSyIn);
|
|
625
|
-
}
|
|
626
|
-
|
|
627
|
-
function swapExactPtForYtStatic(address market, uint256 exactPtIn)
|
|
628
|
-
external
|
|
629
|
-
returns (
|
|
630
|
-
uint256 netYtOut,
|
|
631
|
-
uint256 totalPtToSwap,
|
|
632
|
-
uint256 netSyFee,
|
|
633
|
-
uint256 priceImpact,
|
|
634
|
-
uint256 exchangeRateAfter
|
|
635
|
-
)
|
|
636
|
-
{
|
|
637
|
-
return MarketMathStatic.swapExactPtForYt(market, exactPtIn);
|
|
638
|
-
}
|
|
639
|
-
|
|
640
|
-
function swapExactYtForPtStatic(address market, uint256 exactYtIn)
|
|
641
|
-
external
|
|
642
|
-
returns (
|
|
643
|
-
uint256 netPtOut,
|
|
644
|
-
uint256 totalPtSwapped,
|
|
645
|
-
uint256 netSyFee,
|
|
646
|
-
uint256 priceImpact,
|
|
647
|
-
uint256 exchangeRateAfter
|
|
648
|
-
)
|
|
649
|
-
{
|
|
650
|
-
return MarketMathStatic.swapExactYtForPt(market, exactYtIn);
|
|
651
|
-
}
|
|
652
|
-
|
|
653
|
-
// ============= vePENDLE =============
|
|
654
|
-
|
|
655
|
-
function increaseLockPositionStatic(
|
|
656
|
-
address user,
|
|
657
|
-
uint128 additionalAmountToLock,
|
|
658
|
-
uint128 newExpiry
|
|
659
|
-
) external view returns (uint128 newVeBalance) {
|
|
660
|
-
if (!WeekMath.isValidWTime(newExpiry)) revert Errors.InvalidWTime(newExpiry);
|
|
661
|
-
if (MiniHelpers.isTimeInThePast(newExpiry)) revert Errors.ExpiryInThePast(newExpiry);
|
|
662
|
-
|
|
663
|
-
if (newExpiry > block.timestamp + MAX_LOCK_TIME) revert Errors.VEExceededMaxLockTime();
|
|
664
|
-
if (newExpiry < block.timestamp + MIN_LOCK_TIME) revert Errors.VEInsufficientLockTime();
|
|
665
|
-
|
|
666
|
-
LockedPosition memory oldPosition;
|
|
667
|
-
|
|
668
|
-
{
|
|
669
|
-
(uint128 amount, uint128 expiry) = vePENDLE.positionData(user);
|
|
670
|
-
oldPosition = LockedPosition(amount, expiry);
|
|
671
|
-
}
|
|
672
|
-
|
|
673
|
-
if (newExpiry < oldPosition.expiry) revert Errors.VENotAllowedReduceExpiry();
|
|
674
|
-
|
|
675
|
-
uint128 newTotalAmountLocked = additionalAmountToLock + oldPosition.amount;
|
|
676
|
-
if (newTotalAmountLocked == 0) revert Errors.VEZeroAmountLocked();
|
|
677
|
-
|
|
678
|
-
uint128 additionalDurationToLock = newExpiry - oldPosition.expiry;
|
|
679
|
-
|
|
680
|
-
LockedPosition memory newPosition = LockedPosition(
|
|
681
|
-
oldPosition.amount + additionalAmountToLock,
|
|
682
|
-
oldPosition.expiry + additionalDurationToLock
|
|
683
|
-
);
|
|
684
|
-
|
|
685
|
-
VeBalance memory newBalance = newPosition.convertToVeBalance();
|
|
686
|
-
return newBalance.getCurrentValue();
|
|
687
|
-
}
|
|
688
|
-
|
|
689
|
-
// ============= OTHER HELPERS =============
|
|
690
|
-
|
|
691
|
-
function mintPYFromSyStatic(address YT, uint256 amountSyToMint)
|
|
692
|
-
public
|
|
693
|
-
returns (uint256 amountPY)
|
|
694
|
-
{
|
|
695
|
-
IPYieldToken _YT = IPYieldToken(YT);
|
|
696
|
-
if (_YT.isExpired()) revert Errors.YCExpired();
|
|
697
|
-
return amountSyToMint.mulDown(_YT.pyIndexCurrent());
|
|
698
|
-
}
|
|
699
|
-
|
|
700
|
-
function redeemPYToSyStatic(address YT, uint256 amountPYToRedeem)
|
|
701
|
-
public
|
|
702
|
-
returns (uint256 amountPY)
|
|
703
|
-
{
|
|
704
|
-
IPYieldToken _YT = IPYieldToken(YT);
|
|
705
|
-
return amountPYToRedeem.divDown(_YT.pyIndexCurrent());
|
|
706
|
-
}
|
|
707
|
-
|
|
708
|
-
function mintPYFromBaseStatic(
|
|
709
|
-
address YT,
|
|
710
|
-
address baseToken,
|
|
711
|
-
uint256 amountBaseToken,
|
|
712
|
-
address bulk
|
|
713
|
-
) external returns (uint256 amountPY) {
|
|
714
|
-
IStandardizedYield SY = IStandardizedYield(IPYieldToken(YT).SY());
|
|
715
|
-
uint256 amountSy = previewDepositStatic(SY, baseToken, amountBaseToken, bulk);
|
|
716
|
-
return mintPYFromSyStatic(YT, amountSy);
|
|
717
|
-
}
|
|
718
|
-
|
|
719
|
-
function redeemPYToBaseStatic(
|
|
720
|
-
address YT,
|
|
721
|
-
uint256 amountPYToRedeem,
|
|
722
|
-
address baseToken,
|
|
723
|
-
address bulk
|
|
724
|
-
) external returns (uint256 amountBaseToken) {
|
|
725
|
-
IStandardizedYield SY = IStandardizedYield(IPYieldToken(YT).SY());
|
|
726
|
-
uint256 amountSy = redeemPYToSyStatic(YT, amountPYToRedeem);
|
|
727
|
-
return previewRedeemStatic(SY, baseToken, amountSy, bulk);
|
|
728
|
-
}
|
|
729
|
-
|
|
730
|
-
function previewDepositStatic(
|
|
731
|
-
IStandardizedYield SY,
|
|
732
|
-
address baseToken,
|
|
733
|
-
uint256 amountToken,
|
|
734
|
-
address bulk
|
|
735
|
-
) public view returns (uint256 amountSy) {
|
|
736
|
-
if (bulk != address(0)) {
|
|
737
|
-
BulkSellerState memory state = IPBulkSeller(bulk).readState();
|
|
738
|
-
return state.calcSwapExactTokenForSy(amountToken);
|
|
739
|
-
} else {
|
|
740
|
-
return SY.previewDeposit(baseToken, amountToken);
|
|
741
|
-
}
|
|
742
|
-
}
|
|
743
|
-
|
|
744
|
-
function previewRedeemStatic(
|
|
745
|
-
IStandardizedYield SY,
|
|
746
|
-
address baseToken,
|
|
747
|
-
uint256 amountSy,
|
|
748
|
-
address bulk
|
|
749
|
-
) public view returns (uint256 amountBaseToken) {
|
|
750
|
-
if (bulk != address(0)) {
|
|
751
|
-
BulkSellerState memory state = IPBulkSeller(bulk).readState();
|
|
752
|
-
return state.calcSwapExactSyForToken(amountSy);
|
|
753
|
-
} else {
|
|
754
|
-
return SY.previewRedeem(baseToken, amountSy);
|
|
755
|
-
}
|
|
756
|
-
}
|
|
757
|
-
|
|
758
|
-
function getPtImpliedYield(address market) public view returns (int256) {
|
|
759
|
-
return MarketMathStatic.getPtImpliedYield(market);
|
|
760
|
-
}
|
|
761
|
-
|
|
762
|
-
function pyIndex(address market) public returns (PYIndex index) {
|
|
763
|
-
return MarketMathStatic.pyIndex(market);
|
|
764
|
-
}
|
|
765
|
-
|
|
766
|
-
function getExchangeRate(address market) public returns (uint256) {
|
|
767
|
-
return getTradeExchangeRateIncludeFee(market, 0);
|
|
768
|
-
}
|
|
769
|
-
|
|
770
|
-
function getTradeExchangeRateIncludeFee(address market, int256 netPtOut)
|
|
771
|
-
public
|
|
772
|
-
returns (uint256)
|
|
773
|
-
{
|
|
774
|
-
return MarketMathStatic.getTradeExchangeRateIncludeFee(market, netPtOut);
|
|
775
|
-
}
|
|
776
|
-
|
|
777
|
-
function calcPriceImpact(address market, int256 netPtOut)
|
|
778
|
-
public
|
|
779
|
-
returns (uint256 priceImpact)
|
|
780
|
-
{
|
|
781
|
-
return MarketMathStatic.calcPriceImpactPt(market, netPtOut);
|
|
782
|
-
}
|
|
783
|
-
|
|
784
|
-
// either but not both pyToken or market must be != 0
|
|
785
|
-
function getTokensInOut(address pyToken, address market)
|
|
786
|
-
public
|
|
787
|
-
view
|
|
788
|
-
returns (address[] memory tokensIn, address[] memory tokensOut)
|
|
789
|
-
{
|
|
790
|
-
if (pyToken != address(0)) {
|
|
791
|
-
// SY interface is shared between pt & yt
|
|
792
|
-
IStandardizedYield SY = IStandardizedYield(IPPrincipalToken(pyToken).SY());
|
|
793
|
-
return (SY.getTokensIn(), SY.getTokensOut());
|
|
794
|
-
} else {
|
|
795
|
-
(IStandardizedYield SY, , ) = IPMarket(market).readTokens();
|
|
796
|
-
return (SY.getTokensIn(), SY.getTokensOut());
|
|
797
|
-
}
|
|
798
|
-
}
|
|
799
|
-
|
|
800
|
-
function getAmountTokenToMintSy(
|
|
801
|
-
IStandardizedYield SY,
|
|
802
|
-
address tokenIn,
|
|
803
|
-
address bulk,
|
|
804
|
-
uint256 netSyOut
|
|
805
|
-
) public view returns (uint256 netTokenIn) {
|
|
806
|
-
uint256 pivotAmount = 10**IERC20Metadata(tokenIn).decimals();
|
|
807
|
-
|
|
808
|
-
uint256 low = pivotAmount;
|
|
809
|
-
{
|
|
810
|
-
while (true) {
|
|
811
|
-
uint256 lowSyOut = previewDepositStatic(SY, tokenIn, low, bulk);
|
|
812
|
-
if (lowSyOut >= netSyOut) low /= 10;
|
|
813
|
-
else break;
|
|
814
|
-
}
|
|
815
|
-
}
|
|
816
|
-
|
|
817
|
-
uint256 high = pivotAmount;
|
|
818
|
-
{
|
|
819
|
-
while (true) {
|
|
820
|
-
uint256 highSyOut = previewDepositStatic(SY, tokenIn, high, bulk);
|
|
821
|
-
if (highSyOut < netSyOut) high *= 10;
|
|
822
|
-
else break;
|
|
823
|
-
}
|
|
824
|
-
}
|
|
825
|
-
|
|
826
|
-
while (low <= high) {
|
|
827
|
-
uint256 mid = (low + high) / 2;
|
|
828
|
-
uint256 syOut = previewDepositStatic(SY, tokenIn, mid, bulk);
|
|
829
|
-
|
|
830
|
-
if (syOut >= netSyOut) {
|
|
831
|
-
netTokenIn = mid;
|
|
832
|
-
high = mid - 1;
|
|
833
|
-
} else {
|
|
834
|
-
low = mid + 1;
|
|
835
|
-
}
|
|
836
|
-
}
|
|
837
|
-
|
|
838
|
-
assert(netTokenIn > 0);
|
|
839
|
-
}
|
|
840
|
-
|
|
841
|
-
function getSyMarket(address market) public view returns (IStandardizedYield) {
|
|
842
|
-
(IStandardizedYield SY, , ) = IPMarket(market).readTokens();
|
|
843
|
-
return SY;
|
|
844
|
-
}
|
|
845
|
-
|
|
846
|
-
function getBulkSellerInfo(address token, address SY)
|
|
847
|
-
external
|
|
848
|
-
view
|
|
849
|
-
returns (
|
|
850
|
-
address bulk,
|
|
851
|
-
uint256 totalToken,
|
|
852
|
-
uint256 totalSy
|
|
853
|
-
)
|
|
854
|
-
{
|
|
855
|
-
bulk = IPBulkSellerFactory(bulkFactory).get(token, SY);
|
|
856
|
-
if (bulk != address(0)) {
|
|
857
|
-
BulkSellerState memory state = IPBulkSeller(bulk).readState();
|
|
858
|
-
if (state.rateTokenToSy != 0 || state.rateSyToToken != 0) {
|
|
859
|
-
totalToken = state.totalToken;
|
|
860
|
-
totalSy = state.totalSy;
|
|
861
|
-
}
|
|
862
|
-
}
|
|
863
|
-
}
|
|
864
|
-
|
|
865
|
-
function getBulkSellerInfo(
|
|
866
|
-
address token,
|
|
867
|
-
address SY,
|
|
868
|
-
uint256 netTokenIn,
|
|
869
|
-
uint256 netSyIn
|
|
870
|
-
)
|
|
871
|
-
external
|
|
872
|
-
view
|
|
873
|
-
returns (
|
|
874
|
-
address bulk,
|
|
875
|
-
uint256 totalToken,
|
|
876
|
-
uint256 totalSy
|
|
877
|
-
)
|
|
878
|
-
{
|
|
879
|
-
bulk = IPBulkSellerFactory(bulkFactory).get(token, SY);
|
|
880
|
-
if (bulk != address(0)) {
|
|
881
|
-
BulkSellerState memory state = IPBulkSeller(bulk).readState();
|
|
882
|
-
|
|
883
|
-
// Paused check
|
|
884
|
-
if (state.rateTokenToSy == 0 || state.rateSyToToken == 0) {
|
|
885
|
-
return (address(0), 0, 0);
|
|
886
|
-
}
|
|
887
|
-
|
|
888
|
-
// Liquidity check
|
|
889
|
-
uint256 postFeeRateTokenToSy = state.rateTokenToSy.mulDown(Math.ONE - state.feeRate);
|
|
890
|
-
uint256 postFeeRateSyToToken = state.rateSyToToken.mulDown(Math.ONE - state.feeRate);
|
|
891
|
-
if (
|
|
892
|
-
netTokenIn.mulDown(postFeeRateTokenToSy) > state.totalSy ||
|
|
893
|
-
netSyIn.mulDown(postFeeRateSyToToken) > state.totalToken
|
|
894
|
-
) {
|
|
895
|
-
return (address(0), 0, 0);
|
|
896
|
-
}
|
|
897
|
-
|
|
898
|
-
// return...
|
|
899
|
-
totalToken = state.totalToken;
|
|
900
|
-
totalSy = state.totalSy;
|
|
901
|
-
}
|
|
902
|
-
}
|
|
903
|
-
}
|