@pendle/core-v2 2.1.2-mainnet → 2.3.0-mainnet
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/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/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/Errors.sol/Errors.json +2 -2
- 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 +4 -0
- package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.json +307 -0
- package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.json +269 -0
- package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.json +1260 -0
- package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/{IAToken.sol/IAToken.json → IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.json} +114 -93
- package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.json +184 -0
- 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 +4 -0
- package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.json +40 -0
- 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/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 +4 -0
- package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.json +55 -0
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +2322 -0
- 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 +4 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +30 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +307 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +333 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +1397 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +310 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +228 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +93 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.json +10 -0
- 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/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/PendleSwapAggregator.sol/PendleSwapAggregator.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwapAggregator.sol/PendleSwapAggregator.json +2 -2
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +1 -1
- 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/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 +20 -9
- package/contracts/core/libraries/BaseSplitCodeFactory.sol +5 -7
- package/contracts/core/libraries/BoringOwnableUpgradeable.sol +1 -5
- package/contracts/core/libraries/Errors.sol +0 -2
- 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 +43 -0
- package/contracts/interfaces/IPActionMarketAuxStatic.sol +34 -0
- package/contracts/interfaces/IPActionMarketCoreStatic.sol +335 -0
- package/contracts/interfaces/IPActionMintRedeemStatic.sol +55 -0
- package/contracts/interfaces/IPActionStorageStatic.sol +24 -0
- package/contracts/interfaces/IPActionVePendleStatic.sol +9 -0
- 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/IPMarket.sol +5 -16
- package/contracts/interfaces/IPMarketFactory.sol +3 -8
- package/contracts/interfaces/IPMarketSwapCallback.sol +1 -5
- package/contracts/interfaces/IPMiniDiamond.sol +12 -0
- package/contracts/interfaces/IPRouterStatic.sol +19 -0
- 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 +10 -14
- 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 +19 -0
- package/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol +122 -0
- package/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol +165 -0
- package/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol +780 -0
- package/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol +158 -0
- package/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol +76 -0
- package/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol +55 -0
- package/contracts/offchain-helpers/router-static/base/StorageLayout.sol +21 -0
- package/contracts/router/ActionAddRemoveLiq.sol +2 -17
- package/contracts/router/ActionSwapYT.sol +9 -3
- package/contracts/router/base/ActionBaseCallback.sol +2 -2
- package/contracts/router/base/ActionBaseMintRedeem.sol +4 -5
- 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 +1 -5
- package/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol +4 -5
- package/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol +9 -9
- package/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol +3 -4
- package/deployments/1-core.json +1 -1
- package/deployments/1-markets/BALANCER-LP-AURA-ANKRETH-WETH-MARCH-28-2024.json +11 -0
- package/deployments/42161-core.json +1 -1
- package/package.json +5 -4
- package/typechain-types/ActionMarketCoreStatic.ts +0 -4
- package/typechain-types/ActionStorageStatic.ts +5 -3
- package/typechain-types/IPActionMarketCoreStatic.ts +0 -4
- package/typechain-types/IPActionStorageStatic.ts +5 -3
- package/typechain-types/IPRouterStatic.ts +5 -7
- package/typechain-types/IStargateLP.ts +306 -0
- package/typechain-types/IStargateStaking.ts +232 -0
- package/typechain-types/PendleAuraWethAnkrethSY.ts +1523 -0
- package/typechain-types/PendlePtOracleBase.ts +139 -0
- package/typechain-types/PendleStargateLP.ts +1442 -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/Errors__factory.ts +1 -1
- package/typechain-types/factories/IPActionMarketCoreStatic__factory.ts +0 -10
- package/typechain-types/factories/IPActionStorageStatic__factory.ts +2 -2
- 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/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/PendleQiTokenHelper__factory.ts +1 -1
- package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
- 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/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/RouterStatic__factory.ts +1 -1
- package/typechain-types/factories/SAPE__factory.ts +1 -1
- package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
- package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
- package/typechain-types/hardhat.d.ts +44 -17
- package/typechain-types/index.ts +12 -2
- package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +0 -4
- 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/IBoringOwnableUpgradeable.sol/IBoringOwnableUpgradeable.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IBoringOwnableUpgradeable.sol/IBoringOwnableUpgradeable.json +0 -34
- 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/MarketMathStatic.sol/MarketMathStatic.dbg.json +0 -4
- package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +0 -259
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +0 -4
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +0 -2825
- package/contracts/interfaces/IAToken.sol +0 -44
- package/contracts/interfaces/IAavePool.sol +0 -41
- package/contracts/interfaces/IAaveRewardsController.sol +0 -32
- package/contracts/interfaces/IBoringOwnableUpgradeable.sol +0 -10
- 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/MarketMathStatic.sol +0 -572
- package/contracts/offchain-helpers/RouterStatic.sol +0 -929
|
@@ -8,9 +8,10 @@ interface IStETH {
|
|
|
8
8
|
|
|
9
9
|
function submit(address referral) external payable returns (uint256 amount);
|
|
10
10
|
|
|
11
|
-
function burnShares(
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
function burnShares(
|
|
12
|
+
address _account,
|
|
13
|
+
uint256 _sharesAmount
|
|
14
|
+
) external returns (uint256 newTotalShares);
|
|
14
15
|
|
|
15
16
|
function sharesOf(address account) external view returns (uint256);
|
|
16
17
|
|
|
@@ -62,7 +62,7 @@ interface IStandardizedYield is IERC20Metadata {
|
|
|
62
62
|
* @dev Emits a {Deposit} event
|
|
63
63
|
*
|
|
64
64
|
* Requirements:
|
|
65
|
-
* - (`
|
|
65
|
+
* - (`tokenIn`) must be a valid base token.
|
|
66
66
|
*/
|
|
67
67
|
function deposit(
|
|
68
68
|
address receiver,
|
|
@@ -146,15 +146,15 @@ interface IStandardizedYield is IERC20Metadata {
|
|
|
146
146
|
|
|
147
147
|
function isValidTokenOut(address token) external view returns (bool);
|
|
148
148
|
|
|
149
|
-
function previewDeposit(
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
149
|
+
function previewDeposit(
|
|
150
|
+
address tokenIn,
|
|
151
|
+
uint256 amountTokenToDeposit
|
|
152
|
+
) external view returns (uint256 amountSharesOut);
|
|
153
153
|
|
|
154
|
-
function previewRedeem(
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
154
|
+
function previewRedeem(
|
|
155
|
+
address tokenOut,
|
|
156
|
+
uint256 amountSharesToRedeem
|
|
157
|
+
) external view returns (uint256 amountTokenOut);
|
|
158
158
|
|
|
159
159
|
/**
|
|
160
160
|
* @notice This function contains information to interpret what the asset is
|
|
@@ -165,9 +165,5 @@ interface IStandardizedYield is IERC20Metadata {
|
|
|
165
165
|
function assetInfo()
|
|
166
166
|
external
|
|
167
167
|
view
|
|
168
|
-
returns (
|
|
169
|
-
AssetType assetType,
|
|
170
|
-
address assetAddress,
|
|
171
|
-
uint8 assetDecimals
|
|
172
|
-
);
|
|
168
|
+
returns (AssetType assetType, address assetAddress, uint8 assetDecimals);
|
|
173
169
|
}
|
|
@@ -23,11 +23,7 @@
|
|
|
23
23
|
pragma solidity 0.8.17;
|
|
24
24
|
|
|
25
25
|
interface IStargateRouter {
|
|
26
|
-
function addLiquidity(
|
|
27
|
-
uint256 _poolId,
|
|
28
|
-
uint256 _amountLD,
|
|
29
|
-
address _to
|
|
30
|
-
) external;
|
|
26
|
+
function addLiquidity(uint256 _poolId, uint256 _amountLD, address _to) external;
|
|
31
27
|
|
|
32
28
|
function instantRedeemLocal(
|
|
33
29
|
uint16 _srcPoolId,
|
|
@@ -17,7 +17,10 @@ contract BaseSplitCodeFactoryContract is BoringOwnableUpgradeable {
|
|
|
17
17
|
__BoringOwnable_init();
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
function deploy(
|
|
20
|
+
function deploy(
|
|
21
|
+
string memory name,
|
|
22
|
+
bytes calldata creationCode
|
|
23
|
+
)
|
|
21
24
|
external
|
|
22
25
|
onlyOwner
|
|
23
26
|
returns (
|
|
@@ -9,11 +9,9 @@ contract BulkSellerOffchain {
|
|
|
9
9
|
using BulkSellerMathCore for BulkSellerState;
|
|
10
10
|
using Math for uint256;
|
|
11
11
|
|
|
12
|
-
function calcCurrentRates(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
returns (uint256 rateTokenToSy, uint256 rateSyToToken)
|
|
16
|
-
{
|
|
12
|
+
function calcCurrentRates(
|
|
13
|
+
IPBulkSeller bulk
|
|
14
|
+
) external view returns (uint256 rateTokenToSy, uint256 rateSyToToken) {
|
|
17
15
|
BulkSellerState memory state = bulk.readState();
|
|
18
16
|
address SY = bulk.SY();
|
|
19
17
|
address token = bulk.token();
|
|
@@ -32,14 +30,12 @@ contract BulkSellerOffchain {
|
|
|
32
30
|
}
|
|
33
31
|
}
|
|
34
32
|
|
|
35
|
-
function getCurrentState(
|
|
33
|
+
function getCurrentState(
|
|
34
|
+
IPBulkSeller bulk
|
|
35
|
+
)
|
|
36
36
|
external
|
|
37
37
|
view
|
|
38
|
-
returns (
|
|
39
|
-
BulkSellerState memory state,
|
|
40
|
-
uint256 tokenProp,
|
|
41
|
-
uint256 hypoTokenBal
|
|
42
|
-
)
|
|
38
|
+
returns (BulkSellerState memory state, uint256 tokenProp, uint256 hypoTokenBal)
|
|
43
39
|
{
|
|
44
40
|
state = bulk.readState();
|
|
45
41
|
|
|
@@ -16,10 +16,9 @@ contract Multicall2 {
|
|
|
16
16
|
bytes returnData;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
function aggregate(
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
{
|
|
19
|
+
function aggregate(
|
|
20
|
+
Call[] memory calls
|
|
21
|
+
) public returns (uint256 blockNumber, bytes[] memory returnData) {
|
|
23
22
|
blockNumber = block.number;
|
|
24
23
|
returnData = new bytes[](calls.length);
|
|
25
24
|
for (uint256 i = 0; i < calls.length; i++) {
|
|
@@ -29,14 +28,9 @@ contract Multicall2 {
|
|
|
29
28
|
}
|
|
30
29
|
}
|
|
31
30
|
|
|
32
|
-
function blockAndAggregate(
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
uint256 blockNumber,
|
|
36
|
-
bytes32 blockHash,
|
|
37
|
-
Result[] memory returnData
|
|
38
|
-
)
|
|
39
|
-
{
|
|
31
|
+
function blockAndAggregate(
|
|
32
|
+
Call[] memory calls
|
|
33
|
+
) public returns (uint256 blockNumber, bytes32 blockHash, Result[] memory returnData) {
|
|
40
34
|
(blockNumber, blockHash, returnData) = tryBlockAndAggregate(true, calls);
|
|
41
35
|
}
|
|
42
36
|
|
|
@@ -72,10 +66,10 @@ contract Multicall2 {
|
|
|
72
66
|
blockHash = blockhash(block.number - 1);
|
|
73
67
|
}
|
|
74
68
|
|
|
75
|
-
function tryAggregate(
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
{
|
|
69
|
+
function tryAggregate(
|
|
70
|
+
bool requireSuccess,
|
|
71
|
+
Call[] memory calls
|
|
72
|
+
) public returns (Result[] memory returnData) {
|
|
79
73
|
returnData = new Result[](calls.length);
|
|
80
74
|
for (uint256 i = 0; i < calls.length; i++) {
|
|
81
75
|
(bool success, bytes memory ret) = calls[i].target.call(calls[i].callData);
|
|
@@ -88,14 +82,10 @@ contract Multicall2 {
|
|
|
88
82
|
}
|
|
89
83
|
}
|
|
90
84
|
|
|
91
|
-
function tryBlockAndAggregate(
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
bytes32 blockHash,
|
|
96
|
-
Result[] memory returnData
|
|
97
|
-
)
|
|
98
|
-
{
|
|
85
|
+
function tryBlockAndAggregate(
|
|
86
|
+
bool requireSuccess,
|
|
87
|
+
Call[] memory calls
|
|
88
|
+
) public returns (uint256 blockNumber, bytes32 blockHash, Result[] memory returnData) {
|
|
99
89
|
blockNumber = block.number;
|
|
100
90
|
blockHash = blockhash(block.number);
|
|
101
91
|
returnData = tryAggregate(requireSuccess, calls);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity 0.8.17;
|
|
3
|
+
|
|
4
|
+
import "@openzeppelin/contracts/proxy/Proxy.sol";
|
|
5
|
+
import "../../interfaces/IPRouterStatic.sol";
|
|
6
|
+
import "./base/StorageLayout.sol";
|
|
7
|
+
|
|
8
|
+
// solhint-disable no-empty-blocks
|
|
9
|
+
contract PendleRouterStatic is Proxy, StorageLayout {
|
|
10
|
+
constructor(address actionStorage) {
|
|
11
|
+
owner = msg.sender;
|
|
12
|
+
selectorToFacet[IPMiniDiamond.setFacetForSelectors.selector] = actionStorage;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function _implementation() internal view override returns (address res) {
|
|
16
|
+
res = selectorToFacet[msg.sig];
|
|
17
|
+
require(res != address(0), "selector not found");
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity 0.8.17;
|
|
3
|
+
|
|
4
|
+
import "../../../interfaces/IPMarket.sol";
|
|
5
|
+
import "../../../interfaces/IPRouterStatic.sol";
|
|
6
|
+
import "../../../interfaces/IPYieldContractFactory.sol";
|
|
7
|
+
import "../../../interfaces/IPMarketFactory.sol";
|
|
8
|
+
import "../../../interfaces/IPBulkSellerFactory.sol";
|
|
9
|
+
import "../../../interfaces/IPBulkSeller.sol";
|
|
10
|
+
|
|
11
|
+
// solhint-disable no-empty-blocks
|
|
12
|
+
contract ActionInfoStatic is IPActionInfoStatic {
|
|
13
|
+
function getPY(address py) public view returns (address pt, address yt) {
|
|
14
|
+
try IPYieldToken(py).PT() returns (address _pt) {
|
|
15
|
+
pt = _pt;
|
|
16
|
+
yt = py;
|
|
17
|
+
} catch {
|
|
18
|
+
pt = py;
|
|
19
|
+
yt = IPPrincipalToken(py).YT();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/// can be SY, PY or Market
|
|
24
|
+
function getTokensInOut(
|
|
25
|
+
address token
|
|
26
|
+
) external view returns (address[] memory tokensIn, address[] memory tokensOut) {
|
|
27
|
+
try IStandardizedYield(token).getTokensIn() returns (address[] memory res) {
|
|
28
|
+
return (res, IStandardizedYield(token).getTokensOut());
|
|
29
|
+
} catch {}
|
|
30
|
+
|
|
31
|
+
try IPYieldToken(token).SY() returns (address SY) {
|
|
32
|
+
return (IStandardizedYield(SY).getTokensIn(), IStandardizedYield(SY).getTokensOut());
|
|
33
|
+
} catch {}
|
|
34
|
+
|
|
35
|
+
try IPMarket(token).readTokens() returns (
|
|
36
|
+
IStandardizedYield SY,
|
|
37
|
+
IPPrincipalToken,
|
|
38
|
+
IPYieldToken
|
|
39
|
+
) {
|
|
40
|
+
return (SY.getTokensIn(), SY.getTokensOut());
|
|
41
|
+
} catch {}
|
|
42
|
+
|
|
43
|
+
revert("invalid token");
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function getUserSYInfo(address sy, address user) external returns (UserSYInfo memory res) {
|
|
47
|
+
IStandardizedYield SY = IStandardizedYield(sy);
|
|
48
|
+
|
|
49
|
+
// SY
|
|
50
|
+
res.syBalance = TokenAmount(sy, _balanceOf(sy, user));
|
|
51
|
+
|
|
52
|
+
// Rewards
|
|
53
|
+
uint256[] memory rewardsOut = SY.claimRewards(user);
|
|
54
|
+
address[] memory rewardTokens = SY.getRewardTokens();
|
|
55
|
+
|
|
56
|
+
res.unclaimedRewards = _zipTokenAmounts(rewardTokens, rewardsOut);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function getUserPYInfo(address py, address user) external returns (UserPYInfo memory res) {
|
|
60
|
+
(address _PT, address _YT) = getPY(py);
|
|
61
|
+
IPYieldToken YT = IPYieldToken(_YT);
|
|
62
|
+
|
|
63
|
+
// PT / YT
|
|
64
|
+
res.ytBalance = TokenAmount(_YT, _balanceOf(_YT, user));
|
|
65
|
+
res.ptBalance = TokenAmount(_PT, _balanceOf(_PT, user));
|
|
66
|
+
|
|
67
|
+
// interest
|
|
68
|
+
(uint256 interestOut, uint256[] memory rewardsOut) = YT.redeemDueInterestAndRewards(
|
|
69
|
+
user,
|
|
70
|
+
true,
|
|
71
|
+
true
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
res.unclaimedInterest = TokenAmount(YT.SY(), interestOut);
|
|
75
|
+
|
|
76
|
+
// Rewards
|
|
77
|
+
address[] memory rewardTokens = YT.getRewardTokens();
|
|
78
|
+
res.unclaimedRewards = _zipTokenAmounts(rewardTokens, rewardsOut);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function getUserMarketInfo(
|
|
82
|
+
address market,
|
|
83
|
+
address user
|
|
84
|
+
) external returns (UserMarketInfo memory res) {
|
|
85
|
+
IPMarket _market = IPMarket(market);
|
|
86
|
+
MarketState memory state = _market.readState(address(this));
|
|
87
|
+
|
|
88
|
+
if (uint256(state.totalLp) == 0) return res; // market not initialized
|
|
89
|
+
|
|
90
|
+
// LP PT SY
|
|
91
|
+
(IStandardizedYield SY, IPPrincipalToken PT, ) = _market.readTokens();
|
|
92
|
+
|
|
93
|
+
uint256 userLp = _balanceOf(market, user);
|
|
94
|
+
uint256 userPt = (userLp * uint256(state.totalPt)) / uint256(state.totalLp);
|
|
95
|
+
uint256 userSy = (userLp * uint256(state.totalSy)) / uint256(state.totalLp);
|
|
96
|
+
|
|
97
|
+
res.lpBalance = TokenAmount(market, userLp);
|
|
98
|
+
res.ptBalance = TokenAmount(address(PT), userPt);
|
|
99
|
+
res.syBalance = TokenAmount(address(SY), userSy);
|
|
100
|
+
|
|
101
|
+
// Rewards
|
|
102
|
+
uint256[] memory rewardsOut = _market.redeemRewards(user);
|
|
103
|
+
address[] memory rewardTokens = _market.getRewardTokens();
|
|
104
|
+
|
|
105
|
+
res.unclaimedRewards = _zipTokenAmounts(rewardTokens, rewardsOut);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
function _zipTokenAmounts(
|
|
109
|
+
address[] memory tokens,
|
|
110
|
+
uint256[] memory amounts
|
|
111
|
+
) internal pure returns (TokenAmount[] memory res) {
|
|
112
|
+
res = new TokenAmount[](tokens.length);
|
|
113
|
+
|
|
114
|
+
for (uint256 i = 0; i < tokens.length; i++) {
|
|
115
|
+
res[i] = TokenAmount(tokens[i], amounts[i]);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
function _balanceOf(address token, address user) internal view returns (uint256) {
|
|
120
|
+
return IERC20(token).balanceOf(user);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity 0.8.17;
|
|
3
|
+
|
|
4
|
+
import "../../../interfaces/IPMarket.sol";
|
|
5
|
+
import "../../../interfaces/IPRouterStatic.sol";
|
|
6
|
+
import "./StorageLayout.sol";
|
|
7
|
+
|
|
8
|
+
contract ActionMarketAuxStatic is IPActionMarketAuxStatic {
|
|
9
|
+
using MarketMathCore for MarketState;
|
|
10
|
+
using Math for int256;
|
|
11
|
+
using Math for uint256;
|
|
12
|
+
using LogExpMath for int256;
|
|
13
|
+
using PYIndexLib for PYIndex;
|
|
14
|
+
using PYIndexLib for IPYieldToken;
|
|
15
|
+
|
|
16
|
+
function getMarketState(
|
|
17
|
+
address market
|
|
18
|
+
)
|
|
19
|
+
public
|
|
20
|
+
returns (
|
|
21
|
+
address pt,
|
|
22
|
+
address yt,
|
|
23
|
+
address sy,
|
|
24
|
+
int256 impliedYield,
|
|
25
|
+
uint256 marketExchangeRateExcludeFee,
|
|
26
|
+
MarketState memory state
|
|
27
|
+
)
|
|
28
|
+
{
|
|
29
|
+
(IStandardizedYield SY, IPPrincipalToken PT, IPYieldToken YT) = IPMarket(market)
|
|
30
|
+
.readTokens();
|
|
31
|
+
|
|
32
|
+
pt = address(PT);
|
|
33
|
+
yt = address(YT);
|
|
34
|
+
sy = address(SY);
|
|
35
|
+
state = _readState(market);
|
|
36
|
+
impliedYield = _getPtImpliedYield(market);
|
|
37
|
+
marketExchangeRateExcludeFee = getTradeExchangeRateExcludeFee(market, state);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function getTradeExchangeRateExcludeFee(
|
|
41
|
+
address market,
|
|
42
|
+
MarketState memory state
|
|
43
|
+
) public returns (uint256) {
|
|
44
|
+
if (IPMarket(market).isExpired()) return Math.ONE;
|
|
45
|
+
|
|
46
|
+
MarketPreCompute memory comp = state.getMarketPreCompute(
|
|
47
|
+
_pyIndex(market),
|
|
48
|
+
block.timestamp
|
|
49
|
+
);
|
|
50
|
+
int256 preFeeExchangeRate = MarketMathCore._getExchangeRate(
|
|
51
|
+
state.totalPt,
|
|
52
|
+
comp.totalAsset,
|
|
53
|
+
comp.rateScalar,
|
|
54
|
+
comp.rateAnchor,
|
|
55
|
+
0
|
|
56
|
+
);
|
|
57
|
+
return preFeeExchangeRate.Uint();
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function getTradeExchangeRateIncludeFee(
|
|
61
|
+
address market,
|
|
62
|
+
int256 netPtOut
|
|
63
|
+
) public returns (uint256) {
|
|
64
|
+
if (IPMarket(market).isExpired()) return Math.ONE;
|
|
65
|
+
|
|
66
|
+
int256 netPtToAccount = netPtOut;
|
|
67
|
+
MarketState memory state = _readState(market);
|
|
68
|
+
MarketPreCompute memory comp = state.getMarketPreCompute(
|
|
69
|
+
_pyIndex(market),
|
|
70
|
+
block.timestamp
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
int256 preFeeExchangeRate = MarketMathCore._getExchangeRate(
|
|
74
|
+
state.totalPt,
|
|
75
|
+
comp.totalAsset,
|
|
76
|
+
comp.rateScalar,
|
|
77
|
+
comp.rateAnchor,
|
|
78
|
+
netPtToAccount
|
|
79
|
+
);
|
|
80
|
+
|
|
81
|
+
if (netPtToAccount > 0) {
|
|
82
|
+
int256 postFeeExchangeRate = preFeeExchangeRate.divDown(comp.feeRate);
|
|
83
|
+
if (postFeeExchangeRate < Math.IONE)
|
|
84
|
+
revert Errors.MarketExchangeRateBelowOne(postFeeExchangeRate);
|
|
85
|
+
return postFeeExchangeRate.Uint();
|
|
86
|
+
} else {
|
|
87
|
+
return preFeeExchangeRate.mulDown(comp.feeRate).Uint();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function calcPriceImpactPt(
|
|
92
|
+
address market,
|
|
93
|
+
int256 netPtOut
|
|
94
|
+
) public returns (uint256 priceImpact) {
|
|
95
|
+
uint256 preTradeRate = getTradeExchangeRateIncludeFee(market, _getSign(netPtOut));
|
|
96
|
+
uint256 tradedRate = getTradeExchangeRateIncludeFee(market, netPtOut);
|
|
97
|
+
priceImpact = _calculateImpact(preTradeRate, tradedRate);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
function calcPriceImpactYt(
|
|
101
|
+
address market,
|
|
102
|
+
int256 netPtOut
|
|
103
|
+
) public returns (uint256 priceImpact) {
|
|
104
|
+
uint256 ytPreTradeRate = _calcVirtualYTPrice(
|
|
105
|
+
getTradeExchangeRateIncludeFee(market, _getSign(netPtOut))
|
|
106
|
+
);
|
|
107
|
+
uint256 ytTradedRate = _calcVirtualYTPrice(
|
|
108
|
+
getTradeExchangeRateIncludeFee(market, netPtOut)
|
|
109
|
+
);
|
|
110
|
+
priceImpact = _calculateImpact(ytPreTradeRate, ytTradedRate);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
function calcPriceImpactPY(
|
|
114
|
+
address market,
|
|
115
|
+
int256 netPtOut
|
|
116
|
+
) public returns (uint256 priceImpact) {
|
|
117
|
+
uint256 ptPreTradeRate = getTradeExchangeRateIncludeFee(market, _getSign(netPtOut));
|
|
118
|
+
uint256 ytPreTradeRate = _calcVirtualYTPrice(ptPreTradeRate);
|
|
119
|
+
uint256 ptTradeRate = getTradeExchangeRateIncludeFee(market, netPtOut);
|
|
120
|
+
uint256 ytTradeRate = _calcVirtualYTPrice(ptTradeRate);
|
|
121
|
+
|
|
122
|
+
uint256 pyPreTradeRate = ytPreTradeRate.divDown(ptPreTradeRate);
|
|
123
|
+
uint256 pyTradeRate = ytTradeRate.divDown(ptTradeRate);
|
|
124
|
+
priceImpact = _calculateImpact(pyPreTradeRate, pyTradeRate);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
function _getPtImpliedYield(address market) internal view returns (int256) {
|
|
128
|
+
MarketState memory state = _readState(market);
|
|
129
|
+
|
|
130
|
+
int256 lnImpliedRate = (state.lastLnImpliedRate).Int();
|
|
131
|
+
return lnImpliedRate.exp();
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
function _calcVirtualYTPrice(
|
|
135
|
+
uint256 ptAssetExchangeRate
|
|
136
|
+
) private pure returns (uint256 ytAssetExchangeRate) {
|
|
137
|
+
// 1 asset = EX pt
|
|
138
|
+
// 1 pt = 1/EX Asset
|
|
139
|
+
// 1 yt + 1/EX Asset = 1 Asset
|
|
140
|
+
// 1 yt = 1 Asset - 1/EX Asset
|
|
141
|
+
// 1 yt = (EX - 1) / EX Asset
|
|
142
|
+
return (ptAssetExchangeRate - Math.ONE).divDown(ptAssetExchangeRate);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
function _readState(address market) internal view returns (MarketState memory) {
|
|
146
|
+
return IPMarket(market).readState(address(this));
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
function _getSign(int256 netPtOut) private pure returns (int256) {
|
|
150
|
+
return netPtOut > 0 ? int256(1) : int256(-1);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
function _calculateImpact(
|
|
154
|
+
uint256 rateBefore,
|
|
155
|
+
uint256 rateTraded
|
|
156
|
+
) private pure returns (uint256 impact) {
|
|
157
|
+
impact = (rateBefore.Int() - rateTraded.Int()).abs().divDown(rateBefore);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
function _pyIndex(address market) internal returns (PYIndex index) {
|
|
161
|
+
(, , IPYieldToken YT) = IPMarket(market).readTokens();
|
|
162
|
+
|
|
163
|
+
return YT.newIndex();
|
|
164
|
+
}
|
|
165
|
+
}
|