@pendle/core-v2 6.3.0 → 6.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/artifacts/contracts/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/ExcessivelySafeCall.sol/ExcessivelySafeCall.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.json +2 -2
- 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/PendleMerkleDistributor.sol/PendleMerkleDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/PendleMerkleDistributor.sol/PendleMerkleDistributor.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/PendleMultiTokenMerkleDistributor.sol/PendleMultiTokenMerkleDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/PendleMultiTokenMerkleDistributor.sol/PendleMultiTokenMerkleDistributor.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/LiquidityMining/libraries/WeekMath.sol/WeekMath.dbg.json +1 -1
- 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/PendleMarketFactoryV6Upg.sol/PendleMarketFactoryV6Upg.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarketFactoryV6Upg.sol/PendleMarketFactoryV6Upg.json +2 -2
- package/build/artifacts/contracts/core/Market/PendleMarketV6.sol/PendleMarketV6.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarketV6.sol/PendleMarketV6.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/SYUtils.sol/SYUtils.dbg.json +1 -1
- 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/PendleYieldContractFactoryUpg.sol/PendleYieldContractFactoryUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactoryUpg.sol/PendleYieldContractFactoryUpg.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/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/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/BoringOwnableUpgradeableV2.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeableV2.sol/BoringOwnableUpgradeableData.json +2 -2
- package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeableV2.sol/BoringOwnableUpgradeableV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +18 -2
- package/build/artifacts/contracts/core/libraries/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/ExpiryUtilsLib.sol/ExpiryUtils.json +2 -2
- package/build/artifacts/contracts/core/libraries/MiniHelpers.sol/MiniHelpers.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/PMath.sol/PMath.dbg.json +1 -1
- package/build/artifacts/contracts/cross-chain/FixedPricePTAMM.sol/FixedPricePTAMM.dbg.json +1 -1
- package/build/artifacts/contracts/cross-chain/FixedPricePTAMM.sol/FixedPricePTAMM.json +2 -2
- package/build/artifacts/contracts/cross-chain/factory/hub/PendlePTOFTAdapterFactory.sol/PendlePTOFTAdapterFactory.dbg.json +1 -1
- package/build/artifacts/contracts/cross-chain/factory/hub/PendlePTOFTAdapterFactory.sol/PendlePTOFTAdapterFactory.json +2 -2
- package/build/artifacts/contracts/cross-chain/oftImpl/hub/OFTAdapterImpl.sol/OFTAdapterImpl.dbg.json +1 -1
- package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken.dbg.json +1 -1
- package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken.json +2 -2
- package/build/artifacts/contracts/deprecated/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/deprecated/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
- package/build/artifacts/contracts/deprecated/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.dbg.json +1 -1
- package/build/artifacts/contracts/deprecated/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.json +2 -2
- package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ILPWrapper.sol/ILPWrapper.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IOwnable.sol/IOwnable.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionCallbackV3.sol/IPActionCallbackV3.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/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSimple.sol/IPActionSimple.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionAddRemoveLiqV3Events.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionMiscV3Events.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionStorageEvents.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapPTV3Events.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapYTV3Events.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPAllEventsV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPBridgedPrincipalToken.sol/IPBridgedPrincipalToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPChainlinkOracle.sol/IPChainlinkOracle.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPChainlinkOracleEssential.sol/IPChainlinkOracleEssential.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPChainlinkOracleFactory.sol/IPChainlinkOracleFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPChainlinkOracleWithQuote.sol/IPChainlinkOracleWithQuote.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPCommonPoolDeployHelperV2.sol/IPCommonPoolDeployHelperV2.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPCommonSYFactory.sol/IPCommonSYFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPExchangeRateOracle.sol/IPExchangeRateOracle.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPExchangeRateOracleApp.sol/IPExchangeRateOracleApp.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPExchangeRateOracleApp.sol/IPExchangeRateOracleApp.json +135 -0
- package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPFeeDistributorV2.sol/IPFeeDistributorV2.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPFixedPricePTAMM.sol/IPFixedPricePTAMM.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPFixedPricePTAMM.sol/IPFixedPricePTAMMSwapCallback.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.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/IPGovernanceProxy.sol/IPGovernanceProxy.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/IPLPWrapperFactory.sol/IPLPWrapperFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitOrderType.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouter.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouter.json +42 -0
- package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouterCallback.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.json +13 -0
- 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/IPMerkleDistributor.sol/IPMerkleDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMultiTokenMerkleDistributor.sol/IPMultiTokenMerkleDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPOffchainStorage.sol/IPOffchainStorage.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPOracleForSy.sol/IPOracleForSy.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPTOFTAdapterFactory.sol/IPPTOFTAdapterFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPYLpOracle.sol/IPPYLpOracle.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPausingInterface.sol/IPPausingInterface.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPoolDeployHelperV2.sol/IPPoolDeployHelperV2.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPriceFeed.sol/IPPriceFeed.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPReflector.sol/IPReflector.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPTokenWithSupplyCap.sol/IPTokenWithSupplyCap.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.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/IRedstonePriceFeed.sol/IRedstonePriceFeed.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
- package/build/artifacts/contracts/limit/LimitMathCore.sol/LimitMathCore.dbg.json +1 -1
- package/build/artifacts/contracts/limit/LimitMathCore.sol/LimitMathCore.json +2 -2
- package/build/artifacts/contracts/limit/LimitRouterBase.sol/LimitRouterBase.dbg.json +1 -1
- package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.dbg.json +1 -1
- package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.json +2 -2
- package/build/artifacts/contracts/limit/helpers/NonceManager.sol/NonceManager.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/AutomateReady.sol/AutomateReady.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/AutomateReady.sol/IAutomate.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/AutomateReady.sol/IOpsProxyFactory.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/AutomateReady.sol/ITaskTreasuryUpgradable.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BalanceReader.sol/BalanceReader.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BalanceReader.sol/BalanceReader.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/BytesLib.sol/BytesLib.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BytesLib.sol/BytesLib.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/EmptyUUPS.sol/EmptyUUPS.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/EmptyUUPS.sol/EmptyUUPS.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/ExpiredLpPtRedeemer.sol/ExpiredLpPtRedeemer.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/ExpiredLpPtRedeemer.sol/ExpiredLpPtRedeemer.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/LegacyNFTHelper.sol/LegacyNFTHelper.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/LegacyNFTHelper.sol/LegacyNFTHelper.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/LegacyNFTHelper.sol/StarNFTV1.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/LimitBackendHelperV2.sol/LimitBackendHelperV2.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/LimitBackendHelperV2.sol/LimitBackendHelperV2.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/PendleExchangeRateOracle.sol/PendleExchangeRateOracle.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleExchangeRateOracle.sol/PendleExchangeRateOracle.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/PendleFeeSetter.sol/PendleFeeSetter.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/PendleFeeSetter.sol/PendleFeeSetter.json +326 -0
- package/build/artifacts/contracts/offchain-helpers/PendleGovernanceProxy.sol/PendleGovernanceProxy.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleGovernanceProxy.sol/PendleGovernanceProxy.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/PendleLPWrapper.sol/PendleLPWrapper.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleLPWrapper.sol/PendleLPWrapper.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/PendleLPWrapperFactory.sol/PendleLPWrapperFactory.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleLPWrapperFactory.sol/PendleLPWrapperFactory.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/PendleMulticallOwnerV1.sol/PendleMulticallOwnerV1.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleMulticallOwnerV1.sol/PendleMulticallOwnerV1.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/PendleMulticallV1.sol/PendleMulticallV1.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleMulticallV1.sol/PendleMulticallV1.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/PendleMulticallV2.sol/PendleMulticallV2.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleMulticallV2.sol/PendleMulticallV2.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/PendleOffchainStorage.sol/PendleOffchainStorage.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleOffchainStorage.sol/PendleOffchainStorage.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/PendleWstETHPriceFeed.sol/PendleWstETHPriceFeed.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleWstETHPriceFeed.sol/PendleWstETHPriceFeed.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/SimulateHelper.sol/SimulateHelper.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/SimulateHelper.sol/SimulateHelper.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/SupplyCapReader.sol/IPossibleSupplyCapInterface.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/SupplyCapReader.sol/SupplyCapReader.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol/PendleCommonPoolDeployHelperV2.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol/PendleCommonPoolDeployHelperV2.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonSYFactory.sol/PendleCommonSYFactory.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonSYFactory.sol/PendleCommonSYFactory.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol/PendlePoolDeployHelperV2.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol/PendlePoolDeployHelperV2.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/deploy/lib/MarketDeployLib.sol/MarketDeployLib.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/deploy/lib/MarketDeployLib.sol/MarketDeployLib.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol/SDKErrorsDirectory.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol/SDKErrorsDirectory.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtInLibV1.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtInLibV1.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtOutLibV1.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtOutLibV1.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/CrossChainOracle/base/PendleCrossChainOracleBaseApp_Init.sol/PendleCrossChainOracleBaseApp_Init.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/CrossChainOracle/base/PendleCrossChainOracleBaseApp_Init.sol/PendleCrossChainOracleBaseApp_Init.json +13 -13
- package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleApp.sol/PendleExchangeRateOracleApp.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleApp.sol/PendleExchangeRateOracleApp.json +150 -12
- package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleV2.sol/PendleExchangeRateOracleV2.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleV2.sol/PendleExchangeRateOracleV2.json +2 -2
- package/build/artifacts/contracts/oracles/CrossChainOracle/libraries/ExchangeRateMsgCodec.sol/ExchangeRateMsgCodec.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/CrossChainOracle/libraries/ExchangeRateMsgCodec.sol/ExchangeRateMsgCodec.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/PendleLpOracleLib.sol/PendleLpOracleLib.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYLpOracle.sol/PendlePYLpOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYLpOracle.sol/PendlePYLpOracle.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYOracleLib.sol/PendlePYOracleLib.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYOracleLib.sol/PendlePYOracleLib.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracle.sol/PendleChainlinkOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracle.sol/PendleChainlinkOracle.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringLpSeller.sol/BoringLpSeller.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/StatelessWrapper/PendleLinearDiscountOracleWrapper.sol/PendleLinearDiscountOracleWrapper.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/StatelessWrapper/PendleSparkLinearDiscountOracleFactoryWrapper.sol/PendleSparkLinearDiscountOracleFactoryWrapper.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/StatelessWrapper/PendleSparkLinearDiscountOracleFactoryWrapper.sol/PendleSparkLinearDiscountOracleFactoryWrapper.json +2 -2
- package/build/artifacts/contracts/oracles/internal/PendleBoringOneracle.sol/PendleBoringOneracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/internal/PendleBoringSolvBTCOneracle.sol/PendleBoringSolvBTCOneracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/internal/PendleLpLinearDiscountOracle.sol/LPExpiry.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/internal/PendleLpLinearDiscountOracle.sol/PendleLpLinearDiscountOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/internal/PendleLpLinearDiscountOracleFactory.sol/PendleLpLinearDiscountOracleFactory.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/internal/PendleRedStoneRateOracleAdapter.sol/PendleRedStoneRateOracleAdapter.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracle.sol/PTExpiry.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracle.sol/PendleSparkLinearDiscountOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol/PendleSparkLinearDiscountOracleFactory.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol/PendleSparkLinearDiscountOracleFactory.json +2 -2
- package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.json +2 -2
- package/build/artifacts/contracts/router/ActionCallbackV3.sol/ActionCallbackV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionCallbackV3.sol/ActionCallbackV3.json +2 -2
- package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.json +2 -2
- package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.json +2 -2
- package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.json +2 -2
- package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.json +2 -2
- package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.json +2 -2
- package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.dbg.json +1 -1
- package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.json +2 -2
- package/build/artifacts/contracts/router/Reflector.sol/Reflector.dbg.json +1 -1
- package/build/artifacts/contracts/router/Reflector.sol/Reflector.json +2 -2
- package/build/artifacts/contracts/router/RouterStorage.sol/RouterStorage.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.json +2 -2
- package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.json +2 -2
- package/build/artifacts/contracts/router/math/MarketApproxEstimateLib.sol/MarketApproxEstimateLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxEstimateLib.sol/MarketApproxEstimateLib.json +2 -2
- package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.json +2 -2
- package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.json +2 -2
- package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtInLibV2.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtInLibV2.json +2 -2
- package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtOutLibV2.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtOutLibV2.json +2 -2
- package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/IOKXDexRouter.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/IOKXDexRouter.json +171 -0
- package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/OKXScaleHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/ParaswapScaleHelper.sol/IAugustusV6.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/ParaswapScaleHelper.sol/ParaswapScaleHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/ParaswapScaleHelper.sol/ParaswapScaleHelper.json +2 -2
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IKyberScalingHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IOdosRouterV2.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.json +2 -2
- package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol +15 -17
- package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol +1 -1
- package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol +14 -16
- package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol +2 -3
- package/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol +9 -12
- package/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol +12 -12
- package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +8 -10
- package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol +6 -12
- package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol +4 -11
- package/contracts/LiquidityMining/PendleMerkleDistributor.sol +11 -13
- package/contracts/LiquidityMining/PendleMultiTokenMerkleDistributor.sol +17 -22
- package/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +21 -28
- package/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +31 -27
- package/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +19 -23
- package/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +7 -8
- package/contracts/LiquidityMining/libraries/VeBalanceLib.sol +6 -5
- package/contracts/core/Market/MarketMathCore.sol +78 -112
- package/contracts/core/Market/OracleLib.sol +34 -41
- package/contracts/core/Market/PendleGauge.sol +8 -8
- package/contracts/core/Market/PendleMarketFactoryV6Upg.sol +19 -16
- package/contracts/core/Market/PendleMarketV6.sol +63 -65
- package/contracts/core/RewardManager/RewardManager.sol +8 -8
- package/contracts/core/RewardManager/RewardManagerAbstract.sol +6 -5
- package/contracts/core/StandardizedYield/PYIndex.sol +2 -2
- package/contracts/core/YieldContracts/InterestManagerYT.sol +8 -9
- package/contracts/core/YieldContracts/PendlePrincipalToken.sol +4 -8
- package/contracts/core/YieldContracts/PendleYieldContractFactoryUpg.sol +15 -12
- package/contracts/core/YieldContracts/PendleYieldToken.sol +54 -41
- package/contracts/core/erc20/PendleERC20.sol +9 -6
- package/contracts/core/libraries/ArrayLib.sol +11 -13
- package/contracts/core/libraries/BaseSplitCodeFactory.sol +22 -29
- package/contracts/core/libraries/BoringOwnableUpgradeableV2.sol +2 -1
- package/contracts/core/libraries/Errors.sol +2 -4
- package/contracts/core/libraries/ExpiryUtilsLib.sol +10 -10
- package/contracts/core/libraries/StringLib.sol +13 -13
- package/contracts/core/libraries/TokenHelper.sol +3 -3
- package/contracts/core/libraries/math/LogExpMath.sol +77 -67
- package/contracts/cross-chain/FixedPricePTAMM.sol +38 -39
- package/contracts/cross-chain/factory/hub/PendlePTOFTAdapterFactory.sol +1 -1
- package/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol +1 -1
- package/contracts/deprecated/VeDistributor/PendleFeeDistributor.sol +15 -12
- package/contracts/deprecated/VeDistributor/PendleFeeDistributorV2.sol +21 -24
- package/contracts/interfaces/ILayerZeroEndpoint.sol +5 -3
- package/contracts/interfaces/IPActionCallbackV3.sol +1 -1
- package/contracts/interfaces/IPActionInfoStatic.sol +1 -3
- package/contracts/interfaces/IPActionMarketAuxStatic.sol +11 -15
- package/contracts/interfaces/IPActionMarketCoreStatic.sol +58 -109
- package/contracts/interfaces/IPActionMintRedeemStatic.sol +21 -26
- package/contracts/interfaces/IPActionMiscV3.sol +24 -44
- package/contracts/interfaces/IPActionSimple.sol +24 -43
- package/contracts/interfaces/IPActionVePendleStatic.sol +4 -5
- package/contracts/interfaces/IPAllActionTypeV3.sol +14 -16
- package/contracts/interfaces/IPAllActionV3.sol +4 -4
- package/contracts/interfaces/IPAllEventsV3.sol +5 -21
- package/contracts/interfaces/IPBridgedPrincipalToken.sol +2 -2
- package/contracts/interfaces/IPCommonSYFactory.sol +3 -6
- package/contracts/interfaces/IPExchangeRateOracleApp.sol +44 -17
- package/contracts/interfaces/IPFeeDistributorV2.sol +13 -16
- package/contracts/interfaces/IPFixedPricePTAMM.sol +22 -34
- package/contracts/interfaces/IPGovernanceProxy.sol +2 -6
- package/contracts/interfaces/IPInterestManagerYTV2.sol +4 -3
- package/contracts/interfaces/IPLimitRouter.sol +16 -16
- package/contracts/interfaces/IPMarket.sol +25 -35
- package/contracts/interfaces/IPMarketFactory.sol +9 -16
- package/contracts/interfaces/IPMerkleDistributor.sol +6 -10
- package/contracts/interfaces/IPMsgSendEndpoint.sol +7 -12
- package/contracts/interfaces/IPMultiTokenMerkleDistributor.sol +6 -12
- package/contracts/interfaces/IPPYLpOracle.sol +1 -4
- package/contracts/interfaces/IPRouterStatic.sol +3 -3
- package/contracts/interfaces/IPVotingController.sol +4 -4
- package/contracts/interfaces/IPVotingEscrowMainchain.sol +1 -1
- package/contracts/interfaces/IPYieldContractFactory.sol +3 -5
- package/contracts/interfaces/IPYieldToken.sol +8 -11
- package/contracts/interfaces/IPYieldTokenV2.sol +8 -11
- package/contracts/interfaces/IStandardizedYield.sol +16 -17
- package/contracts/limit/LimitMathCore.sol +38 -56
- package/contracts/limit/LimitRouterBase.sol +66 -88
- package/contracts/limit/PendleLimitRouter.sol +11 -7
- package/contracts/offchain-helpers/AddressProvider.sol +1 -1
- package/contracts/offchain-helpers/AutomateReady.sol +2 -2
- package/contracts/offchain-helpers/BalanceReader.sol +21 -9
- package/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol +5 -7
- package/contracts/offchain-helpers/Broadcaster.sol +3 -3
- package/contracts/offchain-helpers/BytesLib.sol +3 -5
- package/contracts/offchain-helpers/EmptyUUPS.sol +2 -2
- package/contracts/offchain-helpers/ExpiredLpPtRedeemer.sol +5 -8
- package/contracts/offchain-helpers/LegacyNFTHelper.sol +1 -5
- package/contracts/offchain-helpers/LimitBackendHelperV2.sol +12 -12
- package/contracts/offchain-helpers/Multicall2.sol +9 -7
- package/contracts/offchain-helpers/PendleExchangeRateOracle.sol +4 -8
- package/contracts/offchain-helpers/PendleFeeSetter.sol +149 -0
- package/contracts/offchain-helpers/PendleGovernanceProxy.sol +7 -10
- package/contracts/offchain-helpers/PendleLPWrapper.sol +12 -3
- package/contracts/offchain-helpers/PendleLPWrapperFactory.sol +2 -2
- package/contracts/offchain-helpers/PendleMulticallV1.sol +7 -7
- package/contracts/offchain-helpers/PendleMulticallV2.sol +13 -12
- package/contracts/offchain-helpers/PendleOffchainStorage.sol +1 -1
- package/contracts/offchain-helpers/PendleWstETHPriceFeed.sol +4 -2
- package/contracts/offchain-helpers/SimulateHelper.sol +7 -6
- package/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol +13 -32
- package/contracts/offchain-helpers/deploy/PendleCommonSYFactory.sol +7 -11
- package/contracts/offchain-helpers/deploy/PendlePoolDeployHelper.sol +16 -35
- package/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol +15 -35
- package/contracts/offchain-helpers/deploy/lib/MarketDeployLib.sol +12 -13
- package/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol +1 -4
- package/contracts/offchain-helpers/router-static/PendleRouterStatic.sol +1 -1
- package/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol +12 -9
- package/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol +60 -91
- package/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol +103 -190
- package/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol +26 -26
- package/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol +3 -3
- package/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol +8 -10
- package/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol +100 -40
- package/contracts/oracles/CrossChainOracle/base/PendleCrossChainOracleBaseApp_Init.sol +18 -9
- package/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleApp.sol +118 -52
- package/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleV2.sol +2 -3
- package/contracts/oracles/CrossChainOracle/libraries/ExchangeRateMsgCodec.sol +12 -12
- package/contracts/oracles/PtYtLpOracle/PendleLpOracleLib.sol +17 -20
- package/contracts/oracles/PtYtLpOracle/PendlePYLpOracle.sol +15 -19
- package/contracts/oracles/PtYtLpOracle/PendlePYOracleLib.sol +7 -6
- package/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracle.sol +13 -9
- package/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleFactory.sol +20 -21
- package/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleWithQuote.sol +4 -7
- package/contracts/oracles/PtYtLpOracle/samples/BoringLpSeller.sol +2 -2
- package/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkAssetOracle.sol +13 -10
- package/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkSYOracle.sol +13 -10
- package/contracts/oracles/PtYtLpOracle/samples/BoringPtSeller.sol +6 -5
- package/contracts/oracles/StatelessWrapper/PendleSparkLinearDiscountOracleFactoryWrapper.sol +1 -1
- package/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol +3 -3
- package/contracts/router/ActionAddRemoveLiqV3.sol +55 -150
- package/contracts/router/ActionCallbackV3.sol +20 -13
- package/contracts/router/ActionMiscV3.sol +54 -78
- package/contracts/router/ActionSimple.sol +76 -128
- package/contracts/router/ActionSwapPTV3.sol +7 -19
- package/contracts/router/ActionSwapYTV3.sol +8 -20
- package/contracts/router/PendleRouterV4.sol +1 -1
- package/contracts/router/Reflector.sol +15 -21
- package/contracts/router/base/ActionBase.sol +61 -105
- package/contracts/router/base/ActionDelegateBase.sol +39 -38
- package/contracts/router/base/CallbackHelper.sol +21 -19
- package/contracts/router/math/ApproxStateLib.sol +28 -28
- package/contracts/router/math/MarketApproxEstimateLib.sol +11 -13
- package/contracts/router/math/MarketApproxLibOnchain.sol +47 -24
- package/contracts/router/math/MarketApproxLibV2.sol +63 -44
- package/contracts/router/swap-aggregator/OKXScaleHelper.sol +191 -55
- package/contracts/router/swap-aggregator/ParaswapScaleHelper.sol +34 -48
- package/contracts/router/swap-aggregator/PendleSwap.sol +26 -28
- package/deployments/1-offchain-helper.json +2 -1
- package/deployments/10-offchain-helper.json +2 -1
- package/deployments/146-offchain-helper.json +2 -1
- package/deployments/42161-offchain-helper.json +2 -1
- package/deployments/5000-offchain-helper.json +2 -1
- package/deployments/56-offchain-helper.json +2 -1
- package/deployments/80094-offchain-helper.json +2 -1
- package/deployments/8453-offchain-helper.json +2 -1
- package/deployments/9745-offchain-helper.json +2 -1
- package/deployments/999-offchain-helper.json +2 -1
- package/package.json +3 -5
- package/typechain-types/ActionCrossChain.ts +161 -0
- package/typechain-types/BasePendleBridgedPrincipalToken.ts +1689 -0
- package/typechain-types/IOKXDexRouter.ts +99 -0
- package/typechain-types/IPActionCrossChain.ts +161 -0
- package/typechain-types/IPExchangeRateOracleApp.ts +83 -0
- package/typechain-types/IPLimitRouter.ts +69 -0
- package/typechain-types/IPMarket.ts +13 -0
- package/typechain-types/LimitBackendHelper.ts +287 -0
- package/typechain-types/PendleBridgedPrincipalToken_18Decimals.ts +1689 -0
- package/typechain-types/PendleBridgedPrincipalToken_6Decimals.ts +1689 -0
- package/typechain-types/PendleBridgedPrincipalToken_8Decimals.ts +1689 -0
- package/typechain-types/PendleCrossChainOracleBaseApp_Init.ts +13 -19
- package/typechain-types/PendleExchangeRateOracleApp.ts +73 -9
- package/typechain-types/PendleFeeSetter.ts +522 -0
- package/typechain-types/factories/ActionAddRemoveLiqV3__factory.ts +1 -1
- package/typechain-types/factories/ActionCallbackV3__factory.ts +1 -1
- package/typechain-types/factories/ActionCrossChain__factory.ts +152 -0
- package/typechain-types/factories/ActionDelegateBase__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 -1
- package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionMiscV3__factory.ts +1 -1
- package/typechain-types/factories/ActionSimple__factory.ts +1 -1
- package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionStorageV4__factory.ts +1 -1
- package/typechain-types/factories/ActionSwapPTV3__factory.ts +1 -1
- package/typechain-types/factories/ActionSwapYTV3__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/BalanceReader__factory.ts +1 -1
- package/typechain-types/factories/BasePendleBridgedPrincipalToken__factory.ts +1548 -0
- package/typechain-types/factories/BaseSplitCodeFactoryContract__factory.ts +1 -1
- package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +1 -1
- package/typechain-types/factories/BoringPYUsdChainlinkAssetOracle__factory.ts +1 -1
- package/typechain-types/factories/BoringPYUsdChainlinkSYOracle__factory.ts +1 -1
- package/typechain-types/factories/Broadcaster__factory.ts +1 -1
- package/typechain-types/factories/EmptyUUPS__factory.ts +1 -1
- package/typechain-types/factories/Errors__factory.ts +17 -1
- package/typechain-types/factories/ExchangeRateMsgCodec__factory.ts +1 -1
- package/typechain-types/factories/ExpiredLpPtRedeemer__factory.ts +1 -1
- package/typechain-types/factories/FixedPricePTAMM__factory.ts +1 -1
- package/typechain-types/factories/IOKXDexRouter__factory.ts +171 -0
- package/typechain-types/factories/{IMarketSweed__factory.ts → IPActionCrossChain__factory.ts} +22 -61
- package/typechain-types/factories/IPExchangeRateOracleApp__factory.ts +135 -0
- package/typechain-types/factories/IPLimitRouter__factory.ts +42 -0
- package/typechain-types/factories/IPMarket__factory.ts +13 -0
- package/typechain-types/factories/LegacyNFTHelper__factory.ts +1 -1
- package/typechain-types/factories/LimitBackendHelperV2__factory.ts +1 -1
- package/typechain-types/factories/LimitBackendHelper__factory.ts +232 -0
- package/typechain-types/factories/Multicall2__factory.ts +1 -1
- package/typechain-types/factories/OracleLib__factory.ts +1 -1
- package/typechain-types/factories/OverfillMathLib__factory.ts +1 -1
- package/typechain-types/factories/PendleBridgedPrincipalToken_18Decimals__factory.ts +1652 -0
- package/typechain-types/factories/PendleBridgedPrincipalToken_6Decimals__factory.ts +1650 -0
- package/typechain-types/factories/PendleBridgedPrincipalToken_8Decimals__factory.ts +1650 -0
- package/typechain-types/factories/PendleBridgedPrincipalToken__factory.ts +1 -1
- package/typechain-types/factories/PendleChainlinkOracleFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleChainlinkOracleWithQuote__factory.ts +1 -1
- package/typechain-types/factories/PendleChainlinkOracle__factory.ts +1 -1
- package/typechain-types/factories/PendleCommonPoolDeployHelperV2__factory.ts +1 -1
- package/typechain-types/factories/PendleCommonSYFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleCrossChainOracleBaseApp_Init__factory.ts +13 -13
- package/typechain-types/factories/PendleERC20__factory.ts +1 -1
- package/typechain-types/factories/PendleExchangeRateOracleApp__factory.ts +150 -19
- package/typechain-types/factories/PendleExchangeRateOracleV2__factory.ts +1 -1
- package/typechain-types/factories/PendleExchangeRateOracle__factory.ts +1 -1
- package/typechain-types/factories/PendleFeeDistributorV2__factory.ts +1 -1
- package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
- package/typechain-types/factories/PendleFeeSetter__factory.ts +395 -0
- package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleGovernanceProxy__factory.ts +1 -1
- package/typechain-types/factories/PendleLPWrapperFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleLPWrapper__factory.ts +1 -1
- package/typechain-types/factories/PendleLimitRouter__factory.ts +1 -1
- package/typechain-types/factories/PendleMarketFactoryV6Upg__factory.ts +1 -1
- package/typechain-types/factories/PendleMarketV6__factory.ts +1 -1
- package/typechain-types/factories/PendleMerkleDistributor__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/PendleMultiTokenMerkleDistributor__factory.ts +1 -1
- package/typechain-types/factories/PendleMulticallOwnerV1__factory.ts +1 -1
- package/typechain-types/factories/PendleMulticallV1__factory.ts +1 -1
- package/typechain-types/factories/PendleMulticallV2__factory.ts +1 -1
- package/typechain-types/factories/PendleOffchainStorage__factory.ts +1 -1
- package/typechain-types/factories/PendlePTOFTAdapterFactory__factory.ts +1 -1
- package/typechain-types/factories/PendlePYLpOracle__factory.ts +1 -1
- package/typechain-types/factories/PendlePoolDeployHelperV2__factory.ts +1 -1
- package/typechain-types/factories/PendlePoolDeployHelper__factory.ts +1 -1
- package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
- package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
- package/typechain-types/factories/PendleRouterV4__factory.ts +1 -1
- package/typechain-types/factories/PendleSparkLinearDiscountOracleFactoryWrapper__factory.ts +1 -1
- package/typechain-types/factories/PendleSparkLinearDiscountOracleFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleSwap__factory.ts +1 -1
- package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleWstETHPriceFeed__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldContractFactoryUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
- package/typechain-types/factories/Reflector__factory.ts +1 -1
- package/typechain-types/factories/SDKErrorsDirectory__factory.ts +1 -1
- package/typechain-types/factories/SimulateHelper__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 +27 -27
- package/typechain-types/index.ts +6 -6
- package/typechain-types/IMarketSweed.ts +0 -203
- package/typechain-types/LimitMathCore.ts +0 -102
- package/typechain-types/MarketSweed.ts +0 -255
- package/typechain-types/factories/LimitMathCore__factory.ts +0 -87
- package/typechain-types/factories/MarketSweed__factory.ts +0 -385
|
@@ -6,16 +6,16 @@ import "../../interfaces/IPMarketFactory.sol";
|
|
|
6
6
|
import "../../interfaces/IPMarketSwapCallback.sol";
|
|
7
7
|
|
|
8
8
|
import "../erc20/PendleERC20.sol";
|
|
9
|
-
import "./PendleGauge.sol";
|
|
10
|
-
import "./OracleLib.sol";
|
|
11
9
|
import "../libraries/StringLib.sol";
|
|
10
|
+
import "./OracleLib.sol";
|
|
11
|
+
import "./PendleGauge.sol";
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
|
-
Invariance to maintain:
|
|
15
|
-
- Internal balances totalPt & totalSy not interfered by people transferring tokens in directly
|
|
16
|
-
- address(0) & address(this) should never have any rewards & activeBalance accounting done. This is
|
|
17
|
-
|
|
18
|
-
*/
|
|
14
|
+
* Invariance to maintain:
|
|
15
|
+
* - Internal balances totalPt & totalSy not interfered by people transferring tokens in directly
|
|
16
|
+
* - address(0) & address(this) should never have any rewards & activeBalance accounting done. This is
|
|
17
|
+
* guaranteed by address(0) & address(this) check in each updateForTwo function
|
|
18
|
+
*/
|
|
19
19
|
contract PendleMarketV6 is PendleERC20, PendleGauge, IPMarket {
|
|
20
20
|
using PMath for uint256;
|
|
21
21
|
using PMath for int256;
|
|
@@ -23,7 +23,7 @@ contract PendleMarketV6 is PendleERC20, PendleGauge, IPMarket {
|
|
|
23
23
|
using SafeERC20 for IERC20;
|
|
24
24
|
using PYIndexLib for IPYieldToken;
|
|
25
25
|
using PYIndexLib for PYIndex;
|
|
26
|
-
using OracleLib for OracleLib.Observation[
|
|
26
|
+
using OracleLib for OracleLib.Observation[65_535];
|
|
27
27
|
using StringLib for string;
|
|
28
28
|
using StringLib for StringLib.slice;
|
|
29
29
|
|
|
@@ -59,7 +59,7 @@ contract PendleMarketV6 is PendleERC20, PendleGauge, IPMarket {
|
|
|
59
59
|
|
|
60
60
|
MarketStorage public _storage;
|
|
61
61
|
|
|
62
|
-
OracleLib.Observation[
|
|
62
|
+
OracleLib.Observation[65_535] public observations;
|
|
63
63
|
|
|
64
64
|
modifier notExpired() {
|
|
65
65
|
if (isExpired()) revert Errors.MarketExpired();
|
|
@@ -81,9 +81,8 @@ contract PendleMarketV6 is PendleERC20, PendleGauge, IPMarket {
|
|
|
81
81
|
SY = IStandardizedYield(PT.SY());
|
|
82
82
|
YT = IPYieldToken(PT.YT());
|
|
83
83
|
|
|
84
|
-
(_storage.observationCardinality, _storage.observationCardinalityNext) =
|
|
85
|
-
uint32(block.timestamp)
|
|
86
|
-
);
|
|
84
|
+
(_storage.observationCardinality, _storage.observationCardinalityNext) =
|
|
85
|
+
observations.initialize(uint32(block.timestamp));
|
|
87
86
|
|
|
88
87
|
if (_scalarRoot <= 0) revert Errors.MarketScalarRootBelowZero(_scalarRoot);
|
|
89
88
|
|
|
@@ -110,21 +109,18 @@ contract PendleMarketV6 is PendleERC20, PendleGauge, IPMarket {
|
|
|
110
109
|
* @dev PT and SY should be transferred to this contract prior to calling
|
|
111
110
|
* @dev will revert if PT is expired
|
|
112
111
|
*/
|
|
113
|
-
function mint(
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
112
|
+
function mint(address receiver, uint256 netSyDesired, uint256 netPtDesired)
|
|
113
|
+
external
|
|
114
|
+
nonReentrant
|
|
115
|
+
notExpired
|
|
116
|
+
returns (uint256 netLpOut, uint256 netSyUsed, uint256 netPtUsed)
|
|
117
|
+
{
|
|
118
118
|
MarketState memory market = readState(msg.sender);
|
|
119
119
|
PYIndex index = YT.newIndex();
|
|
120
120
|
|
|
121
121
|
uint256 lpToReserve;
|
|
122
122
|
|
|
123
|
-
(lpToReserve, netLpOut, netSyUsed, netPtUsed) = market.addLiquidity(
|
|
124
|
-
netSyDesired,
|
|
125
|
-
netPtDesired,
|
|
126
|
-
block.timestamp
|
|
127
|
-
);
|
|
123
|
+
(lpToReserve, netLpOut, netSyUsed, netPtUsed) = market.addLiquidity(netSyDesired, netPtDesired, block.timestamp);
|
|
128
124
|
|
|
129
125
|
// initializing the market
|
|
130
126
|
if (lpToReserve != 0) {
|
|
@@ -136,10 +132,12 @@ contract PendleMarketV6 is PendleERC20, PendleGauge, IPMarket {
|
|
|
136
132
|
|
|
137
133
|
_writeState(market);
|
|
138
134
|
|
|
139
|
-
if (_selfBalance(SY) < market.totalSy.Uint())
|
|
135
|
+
if (_selfBalance(SY) < market.totalSy.Uint()) {
|
|
140
136
|
revert Errors.MarketInsufficientSyReceived(_selfBalance(SY), market.totalSy.Uint());
|
|
141
|
-
|
|
137
|
+
}
|
|
138
|
+
if (_selfBalance(PT) < market.totalPt.Uint()) {
|
|
142
139
|
revert Errors.MarketInsufficientPtReceived(_selfBalance(PT), market.totalPt.Uint());
|
|
140
|
+
}
|
|
143
141
|
|
|
144
142
|
emit Mint(receiver, netLpOut, netSyUsed, netPtUsed);
|
|
145
143
|
}
|
|
@@ -148,11 +146,11 @@ contract PendleMarketV6 is PendleERC20, PendleGauge, IPMarket {
|
|
|
148
146
|
* @notice LP Holders can burn their LP to receive back SY & PT proportionally
|
|
149
147
|
* to their share of the market
|
|
150
148
|
*/
|
|
151
|
-
function burn(
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
uint256
|
|
155
|
-
|
|
149
|
+
function burn(address receiverSy, address receiverPt, uint256 netLpToBurn)
|
|
150
|
+
external
|
|
151
|
+
nonReentrant
|
|
152
|
+
returns (uint256 netSyOut, uint256 netPtOut)
|
|
153
|
+
{
|
|
156
154
|
MarketState memory market = readState(msg.sender);
|
|
157
155
|
|
|
158
156
|
_burn(address(this), netLpToBurn);
|
|
@@ -171,18 +169,19 @@ contract PendleMarketV6 is PendleERC20, PendleGauge, IPMarket {
|
|
|
171
169
|
* @notice Pendle Market allows swaps between PT & SY it is holding. This function
|
|
172
170
|
* aims to swap an exact amount of PT to SY.
|
|
173
171
|
* @dev steps working of this contract
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
172
|
+
* - The outcome amount of SY will be precomputed by MarketMathLib
|
|
173
|
+
* - Release the calculated amount of SY to receiver
|
|
174
|
+
* - Callback to msg.sender if data.length > 0
|
|
175
|
+
* - Ensure exactPtIn amount of PT has been transferred to this address
|
|
178
176
|
* @dev will revert if PT is expired
|
|
179
177
|
* @param data bytes data to be sent in the callback (if any)
|
|
180
178
|
*/
|
|
181
|
-
function swapExactPtForSy(
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
179
|
+
function swapExactPtForSy(address receiver, uint256 exactPtIn, bytes calldata data)
|
|
180
|
+
external
|
|
181
|
+
nonReentrant
|
|
182
|
+
notExpired
|
|
183
|
+
returns (uint256 netSyOut, uint256 netSyFee)
|
|
184
|
+
{
|
|
186
185
|
MarketState memory market = readState(msg.sender);
|
|
187
186
|
PYIndex index = YT.newIndex();
|
|
188
187
|
|
|
@@ -198,8 +197,9 @@ contract PendleMarketV6 is PendleERC20, PendleGauge, IPMarket {
|
|
|
198
197
|
IPMarketSwapCallback(msg.sender).swapCallback(exactPtIn.neg(), netSyOut.Int(), data);
|
|
199
198
|
}
|
|
200
199
|
|
|
201
|
-
if (_selfBalance(PT) < market.totalPt.Uint())
|
|
200
|
+
if (_selfBalance(PT) < market.totalPt.Uint()) {
|
|
202
201
|
revert Errors.MarketInsufficientPtReceived(_selfBalance(PT), market.totalPt.Uint());
|
|
202
|
+
}
|
|
203
203
|
|
|
204
204
|
if (index.syToAsset(netSyFee - netSyToReserve) == 0) {
|
|
205
205
|
revert Errors.MarketZeroNetLPFee();
|
|
@@ -212,17 +212,18 @@ contract PendleMarketV6 is PendleERC20, PendleGauge, IPMarket {
|
|
|
212
212
|
* @notice Pendle Market allows swaps between PT & SY it is holding. This function
|
|
213
213
|
* aims to swap SY for an exact amount of PT.
|
|
214
214
|
* @dev steps working of this function
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
215
|
+
* - The exact outcome amount of PT will be transferred to receiver
|
|
216
|
+
* - Callback to msg.sender if data.length > 0
|
|
217
|
+
* - Ensure the calculated required amount of SY is transferred to this address
|
|
218
218
|
* @dev will revert if PT is expired
|
|
219
219
|
* @param data bytes data to be sent in the callback (if any)
|
|
220
220
|
*/
|
|
221
|
-
function swapSyForExactPt(
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
221
|
+
function swapSyForExactPt(address receiver, uint256 exactPtOut, bytes calldata data)
|
|
222
|
+
external
|
|
223
|
+
nonReentrant
|
|
224
|
+
notExpired
|
|
225
|
+
returns (uint256 netSyIn, uint256 netSyFee)
|
|
226
|
+
{
|
|
226
227
|
MarketState memory market = readState(msg.sender);
|
|
227
228
|
|
|
228
229
|
PYIndex index = YT.newIndex();
|
|
@@ -240,8 +241,9 @@ contract PendleMarketV6 is PendleERC20, PendleGauge, IPMarket {
|
|
|
240
241
|
}
|
|
241
242
|
|
|
242
243
|
// have received enough SY
|
|
243
|
-
if (_selfBalance(SY) < market.totalSy.Uint())
|
|
244
|
+
if (_selfBalance(SY) < market.totalSy.Uint()) {
|
|
244
245
|
revert Errors.MarketInsufficientSyReceived(_selfBalance(SY), market.totalSy.Uint());
|
|
246
|
+
}
|
|
245
247
|
|
|
246
248
|
if (index.syToAsset(netSyFee - netSyToReserve) == 0) {
|
|
247
249
|
revert Errors.MarketZeroNetLPFee();
|
|
@@ -277,14 +279,13 @@ contract PendleMarketV6 is PendleERC20, PendleGauge, IPMarket {
|
|
|
277
279
|
//////////////////////////////////////////////////////////////*/
|
|
278
280
|
|
|
279
281
|
function observe(uint32[] memory secondsAgos) external view returns (uint216[] memory lnImpliedRateCumulative) {
|
|
280
|
-
return
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
);
|
|
282
|
+
return observations.observe(
|
|
283
|
+
uint32(block.timestamp),
|
|
284
|
+
secondsAgos,
|
|
285
|
+
_storage.lastLnImpliedRate,
|
|
286
|
+
_storage.observationIndex,
|
|
287
|
+
_storage.observationCardinality
|
|
288
|
+
);
|
|
288
289
|
}
|
|
289
290
|
|
|
290
291
|
function increaseObservationsCardinalityNext(uint16 cardinalityNext) external nonReentrant {
|
|
@@ -310,10 +311,8 @@ contract PendleMarketV6 is PendleERC20, PendleGauge, IPMarket {
|
|
|
310
311
|
|
|
311
312
|
uint80 overriddenFee;
|
|
312
313
|
|
|
313
|
-
(market.treasury, overriddenFee, market.reserveFeePercent) =
|
|
314
|
-
address(this),
|
|
315
|
-
router
|
|
316
|
-
);
|
|
314
|
+
(market.treasury, overriddenFee, market.reserveFeePercent) =
|
|
315
|
+
IPMarketFactory(factory).getMarketConfig(address(this), router);
|
|
317
316
|
|
|
318
317
|
market.lnFeeRateRoot = overriddenFee == 0 ? lnFeeRateRoot : overriddenFee;
|
|
319
318
|
market.scalarRoot = scalarRoot;
|
|
@@ -380,11 +379,10 @@ contract PendleMarketV6 is PendleERC20, PendleGauge, IPMarket {
|
|
|
380
379
|
}
|
|
381
380
|
|
|
382
381
|
// solhint-disable-next-line ordering
|
|
383
|
-
function _beforeTokenTransfer(
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
) internal override(PendleERC20, PendleGauge) {
|
|
382
|
+
function _beforeTokenTransfer(address from, address to, uint256 amount)
|
|
383
|
+
internal
|
|
384
|
+
override(PendleERC20, PendleGauge)
|
|
385
|
+
{
|
|
388
386
|
PendleGauge._beforeTokenTransfer(from, to, amount);
|
|
389
387
|
}
|
|
390
388
|
|
|
@@ -45,10 +45,8 @@ abstract contract RewardManager is RewardManagerAbstract {
|
|
|
45
45
|
if (index == 0) index = INITIAL_REWARD_INDEX;
|
|
46
46
|
if (totalShares != 0) index += accrued.divDown(totalShares);
|
|
47
47
|
|
|
48
|
-
rewardState[token] =
|
|
49
|
-
index: index.Uint128(),
|
|
50
|
-
lastBalance: (lastBalance + accrued).Uint128()
|
|
51
|
-
});
|
|
48
|
+
rewardState[token] =
|
|
49
|
+
RewardState({index: index.Uint128(), lastBalance: (lastBalance + accrued).Uint128()});
|
|
52
50
|
indexes[i] = index;
|
|
53
51
|
}
|
|
54
52
|
} else {
|
|
@@ -60,10 +58,12 @@ abstract contract RewardManager is RewardManagerAbstract {
|
|
|
60
58
|
|
|
61
59
|
/// @dev this function doesn't need redeemExternal since redeemExternal is bundled in updateRewardIndex
|
|
62
60
|
/// @dev this function also has to update rewardState.lastBalance
|
|
63
|
-
function _doTransferOutRewards(
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
61
|
+
function _doTransferOutRewards(address user, address receiver)
|
|
62
|
+
internal
|
|
63
|
+
virtual
|
|
64
|
+
override
|
|
65
|
+
returns (uint256[] memory rewardAmounts)
|
|
66
|
+
{
|
|
67
67
|
address[] memory tokens = _getRewardTokens();
|
|
68
68
|
rewardAmounts = new uint256[](tokens.length);
|
|
69
69
|
for (uint256 i = 0; i < tokens.length; i++) {
|
|
@@ -40,7 +40,8 @@ abstract contract RewardManagerAbstract is IRewardManager, TokenHelper {
|
|
|
40
40
|
if (user2 != address(0) && user2 != address(this)) _distributeRewardsPrivate(user2, tokens, indexes);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
// should only be callable from `_updateAndDistributeRewardsForTwo` to guarantee user != address(0) && user !=
|
|
43
|
+
// should only be callable from `_updateAndDistributeRewardsForTwo` to guarantee user != address(0) && user !=
|
|
44
|
+
// address(this)
|
|
44
45
|
function _distributeRewardsPrivate(address user, address[] memory tokens, uint256[] memory indexes) private {
|
|
45
46
|
assert(user != address(0) && user != address(this));
|
|
46
47
|
|
|
@@ -69,10 +70,10 @@ abstract contract RewardManagerAbstract is IRewardManager, TokenHelper {
|
|
|
69
70
|
|
|
70
71
|
function _redeemExternalReward() internal virtual;
|
|
71
72
|
|
|
72
|
-
function _doTransferOutRewards(
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
73
|
+
function _doTransferOutRewards(address user, address receiver)
|
|
74
|
+
internal
|
|
75
|
+
virtual
|
|
76
|
+
returns (uint256[] memory rewardAmounts);
|
|
76
77
|
|
|
77
78
|
function _rewardSharesUser(address user) internal view virtual returns (uint256);
|
|
78
79
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
2
|
pragma solidity ^0.8.0;
|
|
3
|
-
import "../../interfaces/IPYieldToken.sol";
|
|
4
3
|
import "../../interfaces/IPPrincipalToken.sol";
|
|
4
|
+
import "../../interfaces/IPYieldToken.sol";
|
|
5
5
|
|
|
6
|
-
import "./SYUtils.sol";
|
|
7
6
|
import "../libraries/math/PMath.sol";
|
|
7
|
+
import "./SYUtils.sol";
|
|
8
8
|
|
|
9
9
|
type PYIndex is uint256;
|
|
10
10
|
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
2
|
pragma solidity ^0.8.17;
|
|
3
3
|
|
|
4
|
-
import "../../interfaces/IPYieldToken.sol";
|
|
5
|
-
import "../../interfaces/IPPrincipalToken.sol";
|
|
6
4
|
import "../../interfaces/IPInterestManagerYT.sol";
|
|
5
|
+
import "../../interfaces/IPPrincipalToken.sol";
|
|
7
6
|
import "../../interfaces/IPYieldContractFactory.sol";
|
|
7
|
+
import "../../interfaces/IPYieldToken.sol";
|
|
8
8
|
|
|
9
9
|
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
10
10
|
|
|
11
|
-
import "../libraries/math/PMath.sol";
|
|
12
|
-
import "../libraries/TokenHelper.sol";
|
|
13
11
|
import "../StandardizedYield/SYUtils.sol";
|
|
12
|
+
import "../libraries/TokenHelper.sol";
|
|
13
|
+
import "../libraries/math/PMath.sol";
|
|
14
14
|
|
|
15
15
|
/*
|
|
16
16
|
With YT yielding more SYs overtime, which is allowed to be redeemed by users, the reward distribution should
|
|
@@ -40,11 +40,10 @@ abstract contract InterestManagerYT is TokenHelper, IPInterestManagerYT {
|
|
|
40
40
|
if (user2 != address(0) && user2 != address(this)) _distributeInterestPrivate(user2, index);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
function _doTransferOutInterest(
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
) internal returns (uint256 interestAmount) {
|
|
43
|
+
function _doTransferOutInterest(address user, address SY, address factory)
|
|
44
|
+
internal
|
|
45
|
+
returns (uint256 interestAmount)
|
|
46
|
+
{
|
|
48
47
|
address treasury = IPYieldContractFactory(factory).treasury();
|
|
49
48
|
uint256 feeRate = IPYieldContractFactory(factory).interestFeeRate();
|
|
50
49
|
|
|
@@ -4,8 +4,8 @@ pragma solidity ^0.8.17;
|
|
|
4
4
|
import "../../interfaces/IPPrincipalToken.sol";
|
|
5
5
|
import "../../interfaces/IPYieldToken.sol";
|
|
6
6
|
|
|
7
|
-
import "../libraries/MiniHelpers.sol";
|
|
8
7
|
import "../libraries/Errors.sol";
|
|
8
|
+
import "../libraries/MiniHelpers.sol";
|
|
9
9
|
|
|
10
10
|
import "../erc20/PendleERC20.sol";
|
|
11
11
|
|
|
@@ -29,13 +29,9 @@ contract PendlePrincipalToken is PendleERC20, Initializable, IPPrincipalToken {
|
|
|
29
29
|
_;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
constructor(
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
string memory _symbol,
|
|
36
|
-
uint8 __decimals,
|
|
37
|
-
uint256 _expiry
|
|
38
|
-
) PendleERC20(_name, _symbol, __decimals) {
|
|
32
|
+
constructor(address _SY, string memory _name, string memory _symbol, uint8 __decimals, uint256 _expiry)
|
|
33
|
+
PendleERC20(_name, _symbol, __decimals)
|
|
34
|
+
{
|
|
39
35
|
SY = _SY;
|
|
40
36
|
expiry = _expiry;
|
|
41
37
|
factory = msg.sender;
|
|
@@ -28,11 +28,11 @@ import "../../interfaces/IPYieldContractFactory.sol";
|
|
|
28
28
|
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
|
|
29
29
|
import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
|
30
30
|
|
|
31
|
-
import "../libraries/ExpiryUtilsLib.sol";
|
|
32
31
|
import "../libraries/BaseSplitCodeFactory.sol";
|
|
33
|
-
import "../libraries/MiniHelpers.sol";
|
|
34
|
-
import "../libraries/Errors.sol";
|
|
35
32
|
import "../libraries/BoringOwnableUpgradeableV2.sol";
|
|
33
|
+
import "../libraries/Errors.sol";
|
|
34
|
+
import "../libraries/ExpiryUtilsLib.sol";
|
|
35
|
+
import "../libraries/MiniHelpers.sol";
|
|
36
36
|
import "../libraries/StringLib.sol";
|
|
37
37
|
|
|
38
38
|
import "./PendlePrincipalToken.sol";
|
|
@@ -105,18 +105,19 @@ contract PendleYieldContractFactoryUpg is BoringOwnableUpgradeableV2, IPYieldCon
|
|
|
105
105
|
* @notice Create a pair of (PT, YT) from any SY and valid expiry. Anyone can create a yield contract
|
|
106
106
|
* @dev It's intentional to make expiry an uint32 to guard against fat fingers. uint32.max is year 2106
|
|
107
107
|
*/
|
|
108
|
-
function createYieldContract(
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
108
|
+
function createYieldContract(address SY, uint32 expiry, bool doCacheIndexSameBlock)
|
|
109
|
+
external
|
|
110
|
+
returns (address PT, address YT)
|
|
111
|
+
{
|
|
112
|
+
if (MiniHelpers.isTimeInThePast(expiry) || expiry % expiryDivisor != 0) {
|
|
113
|
+
revert Errors.YCFactoryInvalidExpiry();
|
|
114
|
+
}
|
|
114
115
|
|
|
115
116
|
if (getPT[SY][expiry] != address(0)) revert Errors.YCFactoryYieldContractExisted();
|
|
116
117
|
|
|
117
118
|
IStandardizedYield _SY = IStandardizedYield(SY);
|
|
118
119
|
|
|
119
|
-
(
|
|
120
|
+
(,, uint8 assetDecimals) = _SY.assetInfo();
|
|
120
121
|
|
|
121
122
|
string memory syCoreName = _SY.name().stripPrefix(SY_NAME_PREF);
|
|
122
123
|
string memory syCoreSymbol = _SY.symbol().stripPrefix(SY_SYMBOL_PREF);
|
|
@@ -172,16 +173,18 @@ contract PendleYieldContractFactoryUpg is BoringOwnableUpgradeableV2, IPYieldCon
|
|
|
172
173
|
}
|
|
173
174
|
|
|
174
175
|
function setInterestFeeRate(uint128 newInterestFeeRate) public onlyOwner {
|
|
175
|
-
if (newInterestFeeRate > maxInterestFeeRate)
|
|
176
|
+
if (newInterestFeeRate > maxInterestFeeRate) {
|
|
176
177
|
revert Errors.YCFactoryInterestFeeRateTooHigh(newInterestFeeRate, maxInterestFeeRate);
|
|
178
|
+
}
|
|
177
179
|
|
|
178
180
|
interestFeeRate = newInterestFeeRate;
|
|
179
181
|
emit SetInterestFeeRate(newInterestFeeRate);
|
|
180
182
|
}
|
|
181
183
|
|
|
182
184
|
function setRewardFeeRate(uint128 newRewardFeeRate) public onlyOwner {
|
|
183
|
-
if (newRewardFeeRate > maxRewardFeeRate)
|
|
185
|
+
if (newRewardFeeRate > maxRewardFeeRate) {
|
|
184
186
|
revert Errors.YCFactoryRewardFeeRateTooHigh(newRewardFeeRate, maxRewardFeeRate);
|
|
187
|
+
}
|
|
185
188
|
|
|
186
189
|
rewardFeeRate = newRewardFeeRate;
|
|
187
190
|
emit SetRewardFeeRate(newRewardFeeRate);
|
|
@@ -3,26 +3,26 @@ pragma solidity ^0.8.17;
|
|
|
3
3
|
|
|
4
4
|
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
5
5
|
|
|
6
|
-
import "../../interfaces/IStandardizedYield.sol";
|
|
7
|
-
import "../../interfaces/IPYieldToken.sol";
|
|
8
6
|
import "../../interfaces/IPPrincipalToken.sol";
|
|
7
|
+
import "../../interfaces/IPYieldToken.sol";
|
|
8
|
+
import "../../interfaces/IStandardizedYield.sol";
|
|
9
9
|
|
|
10
|
-
import "../libraries/math/PMath.sol";
|
|
11
|
-
import "../libraries/ArrayLib.sol";
|
|
12
10
|
import "../../interfaces/IPYieldContractFactory.sol";
|
|
13
11
|
import "../StandardizedYield/SYUtils.sol";
|
|
12
|
+
import "../libraries/ArrayLib.sol";
|
|
14
13
|
import "../libraries/Errors.sol";
|
|
15
14
|
import "../libraries/MiniHelpers.sol";
|
|
15
|
+
import "../libraries/math/PMath.sol";
|
|
16
16
|
|
|
17
17
|
import "../RewardManager/RewardManagerAbstract.sol";
|
|
18
18
|
import "../erc20/PendleERC20.sol";
|
|
19
19
|
import "./InterestManagerYT.sol";
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
|
-
Invariance to maintain:
|
|
23
|
-
- address(0) & address(this) should never have any rewards & activeBalance accounting done. This is
|
|
24
|
-
|
|
25
|
-
*/
|
|
22
|
+
* Invariance to maintain:
|
|
23
|
+
* - address(0) & address(this) should never have any rewards & activeBalance accounting done. This is
|
|
24
|
+
* guaranteed by address(0) & address(this) check in each updateForTwo function
|
|
25
|
+
*/
|
|
26
26
|
contract PendleYieldToken is IPYieldToken, PendleERC20, RewardManagerAbstract, InterestManagerYT {
|
|
27
27
|
using PMath for uint256;
|
|
28
28
|
using SafeERC20 for IERC20;
|
|
@@ -87,10 +87,13 @@ contract PendleYieldToken is IPYieldToken, PendleERC20, RewardManagerAbstract, I
|
|
|
87
87
|
* @notice Tokenize SY into PT + YT of equal qty. Every unit of asset of SY will create 1 PT + 1 YT
|
|
88
88
|
* @dev SY must be transferred to this contract prior to calling
|
|
89
89
|
*/
|
|
90
|
-
function mintPY(
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
90
|
+
function mintPY(address receiverPT, address receiverYT)
|
|
91
|
+
external
|
|
92
|
+
nonReentrant
|
|
93
|
+
notExpired
|
|
94
|
+
updateData
|
|
95
|
+
returns (uint256 amountPYOut)
|
|
96
|
+
{
|
|
94
97
|
address[] memory receiverPTs = new address[](1);
|
|
95
98
|
address[] memory receiverYTs = new address[](1);
|
|
96
99
|
uint256[] memory amountSyToMints = new uint256[](1);
|
|
@@ -113,8 +116,9 @@ contract PendleYieldToken is IPYieldToken, PendleERC20, RewardManagerAbstract, I
|
|
|
113
116
|
if (receiverYTs.length != length || amountSyToMints.length != length) revert Errors.ArrayLengthMismatch();
|
|
114
117
|
|
|
115
118
|
uint256 totalSyToMint = amountSyToMints.sum();
|
|
116
|
-
if (totalSyToMint > _getFloatingSyAmount())
|
|
119
|
+
if (totalSyToMint > _getFloatingSyAmount()) {
|
|
117
120
|
revert Errors.YieldContractInsufficientSy(totalSyToMint, _getFloatingSyAmount());
|
|
121
|
+
}
|
|
118
122
|
|
|
119
123
|
amountPYOuts = _mintPY(receiverPTs, receiverYTs, amountSyToMints);
|
|
120
124
|
}
|
|
@@ -140,10 +144,12 @@ contract PendleYieldToken is IPYieldToken, PendleERC20, RewardManagerAbstract, I
|
|
|
140
144
|
* @dev PT/YT must be transferred to this contract prior to calling
|
|
141
145
|
* @dev fails if unable to redeem the total PY amount in `amountPYToRedeems`
|
|
142
146
|
*/
|
|
143
|
-
function redeemPYMulti(
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
+
function redeemPYMulti(address[] calldata receivers, uint256[] calldata amountPYToRedeems)
|
|
148
|
+
external
|
|
149
|
+
nonReentrant
|
|
150
|
+
updateData
|
|
151
|
+
returns (uint256[] memory amountSyOuts)
|
|
152
|
+
{
|
|
147
153
|
if (receivers.length != amountPYToRedeems.length) revert Errors.ArrayLengthMismatch();
|
|
148
154
|
if (receivers.length == 0) revert Errors.ArrayEmpty();
|
|
149
155
|
amountSyOuts = _redeemPY(receivers, amountPYToRedeems);
|
|
@@ -159,11 +165,12 @@ contract PendleYieldToken is IPYieldToken, PendleERC20, RewardManagerAbstract, I
|
|
|
159
165
|
* time, unless users redeem their dueInterest or redeemPY. Due to this, it is required to
|
|
160
166
|
* update users' accruedReward STRICTLY BEFORE transferring out their interest.
|
|
161
167
|
*/
|
|
162
|
-
function redeemDueInterestAndRewards(
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
168
|
+
function redeemDueInterestAndRewards(address user, bool redeemInterest, bool redeemRewards)
|
|
169
|
+
external
|
|
170
|
+
nonReentrant
|
|
171
|
+
updateData
|
|
172
|
+
returns (uint256 interestOut, uint256[] memory rewardsOut)
|
|
173
|
+
{
|
|
167
174
|
if (!redeemInterest && !redeemRewards) revert Errors.YCNothingToRedeem();
|
|
168
175
|
|
|
169
176
|
// if redeemRewards == true, this line must be here for obvious reason
|
|
@@ -274,7 +281,9 @@ contract PendleYieldToken is IPYieldToken, PendleERC20, RewardManagerAbstract, I
|
|
|
274
281
|
uint256[] memory userRewardOwed
|
|
275
282
|
)
|
|
276
283
|
{
|
|
277
|
-
if (postExpiry.firstPYIndex == 0)
|
|
284
|
+
if (postExpiry.firstPYIndex == 0) {
|
|
285
|
+
revert Errors.YCPostExpiryDataNotSet();
|
|
286
|
+
}
|
|
278
287
|
|
|
279
288
|
firstPYIndex = postExpiry.firstPYIndex;
|
|
280
289
|
totalSyInterestForTreasury = postExpiry.totalSyInterestForTreasury;
|
|
@@ -289,11 +298,10 @@ contract PendleYieldToken is IPYieldToken, PendleERC20, RewardManagerAbstract, I
|
|
|
289
298
|
}
|
|
290
299
|
}
|
|
291
300
|
|
|
292
|
-
function _mintPY(
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
) internal returns (uint256[] memory amountPYOuts) {
|
|
301
|
+
function _mintPY(address[] memory receiverPTs, address[] memory receiverYTs, uint256[] memory amountSyToMints)
|
|
302
|
+
internal
|
|
303
|
+
returns (uint256[] memory amountPYOuts)
|
|
304
|
+
{
|
|
297
305
|
amountPYOuts = new uint256[](amountSyToMints.length);
|
|
298
306
|
|
|
299
307
|
uint256 index = _pyIndexCurrent();
|
|
@@ -312,10 +320,10 @@ contract PendleYieldToken is IPYieldToken, PendleERC20, RewardManagerAbstract, I
|
|
|
312
320
|
return MiniHelpers.isCurrentlyExpired(expiry);
|
|
313
321
|
}
|
|
314
322
|
|
|
315
|
-
function _redeemPY(
|
|
316
|
-
|
|
317
|
-
uint256[] memory
|
|
318
|
-
|
|
323
|
+
function _redeemPY(address[] memory receivers, uint256[] memory amountPYToRedeems)
|
|
324
|
+
internal
|
|
325
|
+
returns (uint256[] memory amountSyOuts)
|
|
326
|
+
{
|
|
319
327
|
uint256 totalAmountPYToRedeem = amountPYToRedeems.sum();
|
|
320
328
|
IPPrincipalToken(PT).burnByYT(address(this), totalAmountPYToRedeem);
|
|
321
329
|
if (!isExpired()) _burn(address(this), totalAmountPYToRedeem);
|
|
@@ -342,10 +350,11 @@ contract PendleYieldToken is IPYieldToken, PendleERC20, RewardManagerAbstract, I
|
|
|
342
350
|
return SYUtils.syToAsset(indexCurrent, amountSy);
|
|
343
351
|
}
|
|
344
352
|
|
|
345
|
-
function _calcSyRedeemableFromPY(
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
353
|
+
function _calcSyRedeemableFromPY(uint256 amountPY, uint256 indexCurrent)
|
|
354
|
+
internal
|
|
355
|
+
view
|
|
356
|
+
returns (uint256 syToUser, uint256 syInterestPostExpiry)
|
|
357
|
+
{
|
|
349
358
|
syToUser = SYUtils.assetToSy(indexCurrent, amountPY);
|
|
350
359
|
if (isExpired()) {
|
|
351
360
|
uint256 totalSyRedeemable = SYUtils.assetToSy(postExpiry.firstPYIndex, amountPY);
|
|
@@ -415,10 +424,12 @@ contract PendleYieldToken is IPYieldToken, PendleERC20, RewardManagerAbstract, I
|
|
|
415
424
|
return IStandardizedYield(SY).getRewardTokens();
|
|
416
425
|
}
|
|
417
426
|
|
|
418
|
-
function _doTransferOutRewards(
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
427
|
+
function _doTransferOutRewards(address user, address receiver)
|
|
428
|
+
internal
|
|
429
|
+
virtual
|
|
430
|
+
override
|
|
431
|
+
returns (uint256[] memory rewardAmounts)
|
|
432
|
+
{
|
|
422
433
|
address[] memory tokens = getRewardTokens();
|
|
423
434
|
|
|
424
435
|
if (isExpired()) {
|
|
@@ -482,7 +493,9 @@ contract PendleYieldToken is IPYieldToken, PendleERC20, RewardManagerAbstract, I
|
|
|
482
493
|
tokens = getRewardTokens();
|
|
483
494
|
if (isExpired()) {
|
|
484
495
|
indexes = new uint256[](tokens.length);
|
|
485
|
-
for (uint256 i = 0; i < tokens.length; i++)
|
|
496
|
+
for (uint256 i = 0; i < tokens.length; i++) {
|
|
497
|
+
indexes[i] = postExpiry.firstRewardIndex[tokens[i]];
|
|
498
|
+
}
|
|
486
499
|
} else {
|
|
487
500
|
indexes = IStandardizedYield(SY).rewardIndexesCurrent();
|
|
488
501
|
}
|
|
@@ -160,11 +160,13 @@ contract PendleERC20 is Context, IERC20, IERC20Metadata {
|
|
|
160
160
|
* - the caller must have allowance for ``from``'s tokens of at least
|
|
161
161
|
* `amount`.
|
|
162
162
|
*/
|
|
163
|
-
function transferFrom(
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
163
|
+
function transferFrom(address from, address to, uint256 amount)
|
|
164
|
+
external
|
|
165
|
+
virtual
|
|
166
|
+
override
|
|
167
|
+
nonReentrant
|
|
168
|
+
returns (bool)
|
|
169
|
+
{
|
|
168
170
|
address spender = _msgSender();
|
|
169
171
|
_spendAllowance(from, spender, amount);
|
|
170
172
|
_transfer(from, to, amount);
|
|
@@ -204,7 +206,8 @@ contract PendleERC20 is Context, IERC20, IERC20Metadata {
|
|
|
204
206
|
_afterTokenTransfer(from, to, amount);
|
|
205
207
|
}
|
|
206
208
|
|
|
207
|
-
/**
|
|
209
|
+
/**
|
|
210
|
+
* @dev Creates `amount` tokens and assigns them to `account`, increasing
|
|
208
211
|
* the total supply.
|
|
209
212
|
*
|
|
210
213
|
* Emits a {Transfer} event with `from` set to the zero address.
|