@pendle/core-v2 6.3.0-beta → 6.3.0-sweedtest
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/IMarketSweed.sol/IMarketSweed.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IMarketSweed.sol/IMarketSweed.json +141 -0
- 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/MarketSweed.sol/MarketSweed.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/MarketSweed.sol/MarketSweed.json +314 -0
- 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/IMarketSweed.sol +23 -0
- 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/MarketSweed.sol +246 -0
- 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-core.json +5 -2
- package/deployments/1-offchain-helper.json +2 -1
- package/deployments/10-core.json +5 -2
- package/deployments/10-offchain-helper.json +2 -1
- package/deployments/146-core.json +5 -2
- package/deployments/146-offchain-helper.json +2 -1
- package/deployments/42161-core.json +7 -3
- package/deployments/42161-offchain-helper.json +2 -1
- package/deployments/5000-core.json +5 -2
- package/deployments/5000-offchain-helper.json +2 -1
- package/deployments/56-core.json +5 -2
- package/deployments/56-offchain-helper.json +2 -1
- package/deployments/80094-core.json +5 -2
- package/deployments/80094-offchain-helper.json +2 -1
- package/deployments/8453-core.json +5 -2
- package/deployments/8453-offchain-helper.json +2 -1
- package/deployments/9745-core.json +5 -2
- package/deployments/9745-offchain-helper.json +2 -1
- package/deployments/999-core.json +5 -2
- package/deployments/999-offchain-helper.json +2 -1
- package/package.json +4 -6
- package/typechain-types/IMarketSweed.ts +203 -0
- package/typechain-types/IOKXDexRouter.ts +99 -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/LimitMathCore.ts +102 -0
- package/typechain-types/MarketSweed.ts +242 -0
- package/typechain-types/OverfillMathLib.ts +81 -0
- package/typechain-types/PendleCrossChainOracleBaseApp_Init.ts +13 -19
- package/typechain-types/PendleExchangeRateOracleApp.ts +73 -9
- package/typechain-types/PendleFeeSetter.ts +188 -3
- package/typechain-types/factories/ActionAddRemoveLiqV3__factory.ts +1 -1
- package/typechain-types/factories/ActionCallbackV3__factory.ts +1 -1
- 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/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/{IPActionCrossChain__factory.ts → IMarketSweed__factory.ts} +61 -22
- package/typechain-types/factories/IOKXDexRouter__factory.ts +171 -0
- 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/LimitMathCore__factory.ts +87 -0
- package/typechain-types/factories/MarketSweed__factory.ts +364 -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 +77 -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 +140 -2
- 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 -0
- package/typechain-types/index.ts +6 -0
- package/typechain-types/ActionCrossChain.ts +0 -161
- package/typechain-types/BasePendleBridgedPrincipalToken.ts +0 -1689
- package/typechain-types/IPActionCrossChain.ts +0 -161
- package/typechain-types/LimitBackendHelper.ts +0 -287
- package/typechain-types/PendleBridgedPrincipalToken_18Decimals.ts +0 -1689
- package/typechain-types/PendleBridgedPrincipalToken_6Decimals.ts +0 -1689
- package/typechain-types/PendleBridgedPrincipalToken_8Decimals.ts +0 -1689
- package/typechain-types/factories/ActionCrossChain__factory.ts +0 -152
- package/typechain-types/factories/BasePendleBridgedPrincipalToken__factory.ts +0 -1548
- package/typechain-types/factories/LimitBackendHelper__factory.ts +0 -232
- package/typechain-types/factories/PendleBridgedPrincipalToken_18Decimals__factory.ts +0 -1652
- package/typechain-types/factories/PendleBridgedPrincipalToken_6Decimals__factory.ts +0 -1650
- package/typechain-types/factories/PendleBridgedPrincipalToken_8Decimals__factory.ts +0 -1650
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
2
|
pragma solidity ^0.8.17;
|
|
3
3
|
|
|
4
|
+
import "../../../LiquidityMining/libraries/VeBalanceLib.sol";
|
|
4
5
|
import "../../../core/libraries/MiniHelpers.sol";
|
|
5
6
|
import "../../../interfaces/IPRouterStatic.sol";
|
|
6
7
|
import "../../../interfaces/IPVotingEscrowMainchain.sol";
|
|
7
|
-
import "../../../LiquidityMining/libraries/VeBalanceLib.sol";
|
|
8
8
|
|
|
9
9
|
contract ActionVePendleStatic is IPActionVePendleStatic {
|
|
10
10
|
using VeBalanceLib for VeBalance;
|
|
@@ -19,11 +19,11 @@ contract ActionVePendleStatic is IPActionVePendleStatic {
|
|
|
19
19
|
vePENDLE = _vePENDLE;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
function increaseLockPositionStatic(
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
uint128
|
|
26
|
-
|
|
22
|
+
function increaseLockPositionStatic(address user, uint128 additionalAmountToLock, uint128 newExpiry)
|
|
23
|
+
external
|
|
24
|
+
view
|
|
25
|
+
returns (uint128 newVeBalance)
|
|
26
|
+
{
|
|
27
27
|
if (!WeekMath.isValidWTime(newExpiry)) revert Errors.InvalidWTime(newExpiry);
|
|
28
28
|
if (MiniHelpers.isTimeInThePast(newExpiry)) revert Errors.ExpiryInThePast(newExpiry);
|
|
29
29
|
|
|
@@ -44,10 +44,8 @@ contract ActionVePendleStatic is IPActionVePendleStatic {
|
|
|
44
44
|
|
|
45
45
|
uint128 additionalDurationToLock = newExpiry - oldPosition.expiry;
|
|
46
46
|
|
|
47
|
-
LockedPosition memory newPosition =
|
|
48
|
-
oldPosition.amount + additionalAmountToLock,
|
|
49
|
-
oldPosition.expiry + additionalDurationToLock
|
|
50
|
-
);
|
|
47
|
+
LockedPosition memory newPosition =
|
|
48
|
+
LockedPosition(oldPosition.amount + additionalAmountToLock, oldPosition.expiry + additionalDurationToLock);
|
|
51
49
|
|
|
52
50
|
VeBalance memory newBalance = newPosition.convertToVeBalance();
|
|
53
51
|
return newBalance.getCurrentValue();
|
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
2
|
pragma solidity ^0.8.0;
|
|
3
3
|
|
|
4
|
-
import "../../../core/libraries/math/PMath.sol";
|
|
5
4
|
import "../../../core/Market/MarketMathCore.sol";
|
|
5
|
+
import "../../../core/libraries/math/PMath.sol";
|
|
6
6
|
import {ApproxParams} from "../../../interfaces/IPAllActionTypeV3.sol";
|
|
7
7
|
|
|
8
|
-
/// Further explanation of the eps. Take swapExactSyForPt for example. To calc the corresponding amount of Pt to swap
|
|
9
|
-
/// it's necessary to run an approximation algorithm, because by default there only exists the Pt to Sy formula
|
|
8
|
+
/// Further explanation of the eps. Take swapExactSyForPt for example. To calc the corresponding amount of Pt to swap
|
|
9
|
+
/// out, it's necessary to run an approximation algorithm, because by default there only exists the Pt to Sy formula
|
|
10
10
|
/// To approx, the 5 values above will have to be provided, and the approx process will run as follows:
|
|
11
11
|
/// mid = (guessMin + guessMax) / 2 // mid here is the current guess of the amount of Pt out
|
|
12
12
|
/// netSyNeed = calcSwapSyForExactPt(mid)
|
|
13
13
|
/// if (netSyNeed > exactSyIn) guessMax = mid - 1 // since the maximum Sy in can't exceed the exactSyIn
|
|
14
14
|
/// else guessMin = mid (1)
|
|
15
15
|
/// For the (1), since netSyNeed <= exactSyIn, the result might be usable. If the netSyNeed is within eps of
|
|
16
|
-
/// exactSyIn (ex eps=0.1% => we have used 99.9% the amount of Sy specified), mid will be chosen as the final guess
|
|
16
|
+
/// exactSyIn (ex eps=0.1% => we have used 99.9% the amount of Sy specified), mid will be chosen as the final guess
|
|
17
|
+
/// result
|
|
17
18
|
|
|
18
19
|
/// for guessOffchain, this is to provide a shortcut to guessing. The offchain SDK can precalculate the exact result
|
|
19
|
-
/// before the tx is sent. When the tx reaches the contract, the guessOffchain will be checked first, and if it
|
|
20
|
-
/// approximation, it will be used (and save all the guessing). It's expected that this shortcut will be
|
|
20
|
+
/// before the tx is sent. When the tx reaches the contract, the guessOffchain will be checked first, and if it
|
|
21
|
+
/// satisfies the approximation, it will be used (and save all the guessing). It's expected that this shortcut will be
|
|
22
|
+
/// used in most cases
|
|
21
23
|
/// except in cases that there is a trade in the same market right before the tx
|
|
22
24
|
|
|
23
25
|
library MarketApproxPtInLibV1 {
|
|
@@ -40,7 +42,15 @@ library MarketApproxPtInLibV1 {
|
|
|
40
42
|
uint256 minSyOut,
|
|
41
43
|
uint256 blockTime,
|
|
42
44
|
ApproxParams memory approx
|
|
43
|
-
)
|
|
45
|
+
)
|
|
46
|
+
internal
|
|
47
|
+
pure
|
|
48
|
+
returns (
|
|
49
|
+
uint256, /*netPtIn*/
|
|
50
|
+
uint256, /*netSyOut*/
|
|
51
|
+
uint256 /*netSyFee*/
|
|
52
|
+
)
|
|
53
|
+
{
|
|
44
54
|
MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
|
|
45
55
|
if (approx.guessOffchain == 0) {
|
|
46
56
|
// no limit on min
|
|
@@ -50,7 +60,7 @@ library MarketApproxPtInLibV1 {
|
|
|
50
60
|
|
|
51
61
|
for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
|
|
52
62
|
uint256 guess = nextGuess(approx, iter);
|
|
53
|
-
(uint256 netSyOut, uint256 netSyFee,
|
|
63
|
+
(uint256 netSyOut, uint256 netSyFee,) = calcSyOut(market, comp, index, guess);
|
|
54
64
|
|
|
55
65
|
if (netSyOut >= minSyOut) {
|
|
56
66
|
if (PMath.isAGreaterApproxB(netSyOut, minSyOut, approx.eps)) {
|
|
@@ -79,7 +89,15 @@ library MarketApproxPtInLibV1 {
|
|
|
79
89
|
uint256 exactSyIn,
|
|
80
90
|
uint256 blockTime,
|
|
81
91
|
ApproxParams memory approx
|
|
82
|
-
)
|
|
92
|
+
)
|
|
93
|
+
internal
|
|
94
|
+
pure
|
|
95
|
+
returns (
|
|
96
|
+
uint256, /*netYtOut*/
|
|
97
|
+
uint256, /*netSyFee*/
|
|
98
|
+
uint256 /*iter*/
|
|
99
|
+
)
|
|
100
|
+
{
|
|
83
101
|
MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
|
|
84
102
|
if (approx.guessOffchain == 0) {
|
|
85
103
|
approx.guessMin = PMath.max(approx.guessMin, index.syToAsset(exactSyIn));
|
|
@@ -92,7 +110,7 @@ library MarketApproxPtInLibV1 {
|
|
|
92
110
|
for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
|
|
93
111
|
uint256 guess = nextGuess(approx, iter);
|
|
94
112
|
|
|
95
|
-
(uint256 netSyOut, uint256 netSyFee,
|
|
113
|
+
(uint256 netSyOut, uint256 netSyFee,) = calcSyOut(market, comp, index, guess);
|
|
96
114
|
|
|
97
115
|
uint256 netSyToTokenizePt = index.assetToSyUp(guess);
|
|
98
116
|
|
|
@@ -135,7 +153,16 @@ library MarketApproxPtInLibV1 {
|
|
|
135
153
|
uint256 _netSyHolding,
|
|
136
154
|
uint256 _blockTime,
|
|
137
155
|
ApproxParams memory approx
|
|
138
|
-
)
|
|
156
|
+
)
|
|
157
|
+
internal
|
|
158
|
+
pure
|
|
159
|
+
returns (
|
|
160
|
+
uint256, /*netPtSwap*/
|
|
161
|
+
uint256, /*netSyFromSwap*/
|
|
162
|
+
uint256, /*netSyFee*/
|
|
163
|
+
uint256 /*iter*/
|
|
164
|
+
)
|
|
165
|
+
{
|
|
139
166
|
Args5 memory a = Args5(_market, _index, _totalPtIn, _netSyHolding, _blockTime, approx);
|
|
140
167
|
MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
|
|
141
168
|
if (approx.guessOffchain == 0) {
|
|
@@ -149,14 +176,8 @@ library MarketApproxPtInLibV1 {
|
|
|
149
176
|
for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
|
|
150
177
|
uint256 guess = nextGuess(approx, iter);
|
|
151
178
|
|
|
152
|
-
(uint256 syNumerator, uint256 ptNumerator, uint256 netSyOut, uint256 netSyFee,
|
|
153
|
-
a.market,
|
|
154
|
-
a.index,
|
|
155
|
-
a.totalPtIn,
|
|
156
|
-
a.netSyHolding,
|
|
157
|
-
comp,
|
|
158
|
-
guess
|
|
159
|
-
);
|
|
179
|
+
(uint256 syNumerator, uint256 ptNumerator, uint256 netSyOut, uint256 netSyFee,) =
|
|
180
|
+
calcNumerators(a.market, a.index, a.totalPtIn, a.netSyHolding, comp, guess);
|
|
160
181
|
|
|
161
182
|
if (PMath.isAApproxB(syNumerator, ptNumerator, approx.eps)) {
|
|
162
183
|
return (guess, netSyOut, netSyFee, iter);
|
|
@@ -214,7 +235,15 @@ library MarketApproxPtInLibV1 {
|
|
|
214
235
|
uint256 exactPtIn,
|
|
215
236
|
uint256 blockTime,
|
|
216
237
|
ApproxParams memory approx
|
|
217
|
-
)
|
|
238
|
+
)
|
|
239
|
+
internal
|
|
240
|
+
pure
|
|
241
|
+
returns (
|
|
242
|
+
uint256, /*netYtOut*/
|
|
243
|
+
uint256, /*totalPtToSwap*/
|
|
244
|
+
uint256 /*netSyFee*/
|
|
245
|
+
)
|
|
246
|
+
{
|
|
218
247
|
MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
|
|
219
248
|
if (approx.guessOffchain == 0) {
|
|
220
249
|
approx.guessMin = PMath.max(approx.guessMin, exactPtIn);
|
|
@@ -225,7 +254,7 @@ library MarketApproxPtInLibV1 {
|
|
|
225
254
|
for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
|
|
226
255
|
uint256 guess = nextGuess(approx, iter);
|
|
227
256
|
|
|
228
|
-
(uint256 netSyOut, uint256 netSyFee,
|
|
257
|
+
(uint256 netSyOut, uint256 netSyFee,) = calcSyOut(market, comp, index, guess);
|
|
229
258
|
|
|
230
259
|
uint256 netAssetOut = index.syToAsset(netSyOut);
|
|
231
260
|
|
|
@@ -246,12 +275,11 @@ library MarketApproxPtInLibV1 {
|
|
|
246
275
|
|
|
247
276
|
////////////////////////////////////////////////////////////////////////////////
|
|
248
277
|
|
|
249
|
-
function calcSyOut(
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
) internal pure returns (uint256 netSyOut, uint256 netSyFee, uint256 netSyToReserve) {
|
|
278
|
+
function calcSyOut(MarketState memory market, MarketPreCompute memory comp, PYIndex index, uint256 netPtIn)
|
|
279
|
+
internal
|
|
280
|
+
pure
|
|
281
|
+
returns (uint256 netSyOut, uint256 netSyFee, uint256 netSyToReserve)
|
|
282
|
+
{
|
|
255
283
|
(int256 _netSyOut, int256 _netSyFee, int256 _netSyToReserve) = market.calcTrade(comp, index, -int256(netPtIn));
|
|
256
284
|
netSyOut = uint256(_netSyOut);
|
|
257
285
|
netSyFee = uint256(_netSyFee);
|
|
@@ -323,7 +351,15 @@ library MarketApproxPtOutLibV1 {
|
|
|
323
351
|
uint256 exactSyIn,
|
|
324
352
|
uint256 blockTime,
|
|
325
353
|
ApproxParams memory approx
|
|
326
|
-
)
|
|
354
|
+
)
|
|
355
|
+
internal
|
|
356
|
+
pure
|
|
357
|
+
returns (
|
|
358
|
+
uint256, /*netPtOut*/
|
|
359
|
+
uint256, /*netSyFee*/
|
|
360
|
+
uint256 /*iter*/
|
|
361
|
+
)
|
|
362
|
+
{
|
|
327
363
|
MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
|
|
328
364
|
if (approx.guessOffchain == 0) {
|
|
329
365
|
// no limit on min
|
|
@@ -334,7 +370,7 @@ library MarketApproxPtOutLibV1 {
|
|
|
334
370
|
for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
|
|
335
371
|
uint256 guess = nextGuess(approx, iter);
|
|
336
372
|
|
|
337
|
-
(uint256 netSyIn, uint256 netSyFee,
|
|
373
|
+
(uint256 netSyIn, uint256 netSyFee,) = calcSyIn(market, comp, index, guess);
|
|
338
374
|
|
|
339
375
|
if (netSyIn <= exactSyIn) {
|
|
340
376
|
if (PMath.isASmallerApproxB(netSyIn, exactSyIn, approx.eps)) {
|
|
@@ -363,7 +399,15 @@ library MarketApproxPtOutLibV1 {
|
|
|
363
399
|
uint256 minSyOut,
|
|
364
400
|
uint256 blockTime,
|
|
365
401
|
ApproxParams memory approx
|
|
366
|
-
)
|
|
402
|
+
)
|
|
403
|
+
internal
|
|
404
|
+
pure
|
|
405
|
+
returns (
|
|
406
|
+
uint256, /*netYtIn*/
|
|
407
|
+
uint256, /*netSyOut*/
|
|
408
|
+
uint256 /*netSyFee*/
|
|
409
|
+
)
|
|
410
|
+
{
|
|
367
411
|
MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
|
|
368
412
|
if (approx.guessOffchain == 0) {
|
|
369
413
|
// no limit on min
|
|
@@ -374,7 +418,7 @@ library MarketApproxPtOutLibV1 {
|
|
|
374
418
|
for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
|
|
375
419
|
uint256 guess = nextGuess(approx, iter);
|
|
376
420
|
|
|
377
|
-
(uint256 netSyOwed, uint256 netSyFee,
|
|
421
|
+
(uint256 netSyOwed, uint256 netSyFee,) = calcSyIn(market, comp, index, guess);
|
|
378
422
|
|
|
379
423
|
uint256 netAssetToRepay = index.syToAssetUp(netSyOwed);
|
|
380
424
|
uint256 netSyOut = index.assetToSy(guess - netAssetToRepay);
|
|
@@ -415,7 +459,16 @@ library MarketApproxPtOutLibV1 {
|
|
|
415
459
|
uint256 _netPtHolding,
|
|
416
460
|
uint256 _blockTime,
|
|
417
461
|
ApproxParams memory _approx
|
|
418
|
-
)
|
|
462
|
+
)
|
|
463
|
+
internal
|
|
464
|
+
pure
|
|
465
|
+
returns (
|
|
466
|
+
uint256, /*netPtFromSwap*/
|
|
467
|
+
uint256, /*netSySwap*/
|
|
468
|
+
uint256, /*netSyFee*/
|
|
469
|
+
uint256 /*iter*/
|
|
470
|
+
)
|
|
471
|
+
{
|
|
419
472
|
Args6 memory a = Args6(_market, _index, _totalSyIn, _netPtHolding, _blockTime, _approx);
|
|
420
473
|
|
|
421
474
|
MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
|
|
@@ -482,7 +535,15 @@ library MarketApproxPtOutLibV1 {
|
|
|
482
535
|
uint256 exactYtIn,
|
|
483
536
|
uint256 blockTime,
|
|
484
537
|
ApproxParams memory approx
|
|
485
|
-
)
|
|
538
|
+
)
|
|
539
|
+
internal
|
|
540
|
+
pure
|
|
541
|
+
returns (
|
|
542
|
+
uint256, /*netPtOut*/
|
|
543
|
+
uint256, /*totalPtSwapped*/
|
|
544
|
+
uint256 /*netSyFee*/
|
|
545
|
+
)
|
|
546
|
+
{
|
|
486
547
|
MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
|
|
487
548
|
if (approx.guessOffchain == 0) {
|
|
488
549
|
approx.guessMin = PMath.max(approx.guessMin, exactYtIn);
|
|
@@ -493,7 +554,7 @@ library MarketApproxPtOutLibV1 {
|
|
|
493
554
|
for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
|
|
494
555
|
uint256 guess = nextGuess(approx, iter);
|
|
495
556
|
|
|
496
|
-
(uint256 netSyOwed, uint256 netSyFee,
|
|
557
|
+
(uint256 netSyOwed, uint256 netSyFee,) = calcSyIn(market, comp, index, guess);
|
|
497
558
|
|
|
498
559
|
uint256 netYtToPull = index.syToAssetUp(netSyOwed);
|
|
499
560
|
|
|
@@ -511,12 +572,11 @@ library MarketApproxPtOutLibV1 {
|
|
|
511
572
|
|
|
512
573
|
////////////////////////////////////////////////////////////////////////////////
|
|
513
574
|
|
|
514
|
-
function calcSyIn(
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
) internal pure returns (uint256 netSyIn, uint256 netSyFee, uint256 netSyToReserve) {
|
|
575
|
+
function calcSyIn(MarketState memory market, MarketPreCompute memory comp, PYIndex index, uint256 netPtOut)
|
|
576
|
+
internal
|
|
577
|
+
pure
|
|
578
|
+
returns (uint256 netSyIn, uint256 netSyFee, uint256 netSyToReserve)
|
|
579
|
+
{
|
|
520
580
|
(int256 _netSyIn, int256 _netSyFee, int256 _netSyToReserve) = market.calcTrade(comp, index, int256(netPtOut));
|
|
521
581
|
|
|
522
582
|
// all safe since totalPt and totalSy is int128
|
|
@@ -1,22 +1,31 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity ^0.8.0;
|
|
3
3
|
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import {ILayerZeroEndpointV2} from "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol";
|
|
5
|
+
import {
|
|
6
|
+
MessagingFee,
|
|
7
|
+
MessagingReceipt,
|
|
8
|
+
OAppUpgradeable,
|
|
9
|
+
Origin
|
|
10
|
+
} from "@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppUpgradeable.sol";
|
|
11
|
+
import {
|
|
12
|
+
OAppOptionsType3Upgradeable
|
|
13
|
+
} from "@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/libs/OAppOptionsType3Upgradeable.sol";
|
|
6
14
|
|
|
7
15
|
abstract contract PendleCrossChainOracleBaseApp_Init is OAppUpgradeable, OAppOptionsType3Upgradeable {
|
|
8
|
-
|
|
16
|
+
uint32 public immutable eid;
|
|
9
17
|
|
|
10
18
|
uint256[100] private __gap;
|
|
11
19
|
|
|
12
|
-
constructor(address _endpoint
|
|
13
|
-
|
|
20
|
+
constructor(address _endpoint) OAppUpgradeable(_endpoint) {
|
|
21
|
+
eid = ILayerZeroEndpointV2(_endpoint).eid();
|
|
14
22
|
}
|
|
15
23
|
|
|
16
|
-
function __PendleCrossChainOracleBaseApp_initialize(
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
24
|
+
function __PendleCrossChainOracleBaseApp_initialize(address _owner, address _delegate)
|
|
25
|
+
internal
|
|
26
|
+
virtual
|
|
27
|
+
onlyInitializing
|
|
28
|
+
{
|
|
20
29
|
__OApp_init(_delegate);
|
|
21
30
|
_transferOwnership(_owner);
|
|
22
31
|
}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity ^0.8.0;
|
|
3
3
|
|
|
4
|
-
import "
|
|
5
|
-
import {ILayerZeroEndpointV2} from "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol";
|
|
4
|
+
import {Errors} from "../../../core/libraries/Errors.sol";
|
|
6
5
|
import "../../../interfaces/IPExchangeRateOracleApp.sol";
|
|
7
6
|
import {IStandardizedYield} from "../../../interfaces/IStandardizedYield.sol";
|
|
7
|
+
import "../base/PendleCrossChainOracleBaseApp_Init.sol";
|
|
8
8
|
import {ExchangeRateMsgCodec} from "../libraries/ExchangeRateMsgCodec.sol";
|
|
9
|
-
import {Errors} from "../../../core/libraries/Errors.sol";
|
|
10
9
|
|
|
11
10
|
/**
|
|
12
11
|
* @title PendleExchangeRateOracleApp
|
|
@@ -16,27 +15,17 @@ contract PendleExchangeRateOracleApp is PendleCrossChainOracleBaseApp_Init, IPEx
|
|
|
16
15
|
using ExchangeRateMsgCodec for bytes;
|
|
17
16
|
using ExchangeRateMsgCodec for bytes32;
|
|
18
17
|
|
|
19
|
-
uint32 public immutable eid;
|
|
20
18
|
mapping(uint32 srcEid => mapping(bytes32 source => ExchangeRateData)) private feedData;
|
|
21
19
|
|
|
22
20
|
address public allowedSender;
|
|
23
21
|
|
|
24
|
-
modifier validateDstEid(uint32 dstEid) {
|
|
25
|
-
if (dstEid == eid) revert Errors.InvalidDestinationEid();
|
|
26
|
-
_;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
22
|
modifier onlyOwnerOrAllowedSender() {
|
|
30
23
|
require(msg.sender == owner() || msg.sender == allowedSender, "Not authorized");
|
|
31
24
|
_;
|
|
32
25
|
}
|
|
33
26
|
|
|
34
|
-
constructor(
|
|
35
|
-
address _endpoint,
|
|
36
|
-
address payable _refundAddress
|
|
37
|
-
) PendleCrossChainOracleBaseApp_Init(_endpoint, _refundAddress) {
|
|
27
|
+
constructor(address _endpoint) PendleCrossChainOracleBaseApp_Init(_endpoint) {
|
|
38
28
|
_disableInitializers();
|
|
39
|
-
eid = ILayerZeroEndpointV2(_endpoint).eid();
|
|
40
29
|
}
|
|
41
30
|
|
|
42
31
|
function initialize(address _owner, address _delegate, address _allowedSender) external initializer {
|
|
@@ -45,40 +34,65 @@ contract PendleExchangeRateOracleApp is PendleCrossChainOracleBaseApp_Init, IPEx
|
|
|
45
34
|
}
|
|
46
35
|
|
|
47
36
|
/// @inheritdoc IPExchangeRateOracleApp
|
|
48
|
-
function
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
(
|
|
37
|
+
function quoteSendExchangeRateBatch(SendExchangeRateParam[] calldata sendParams, bool[] calldata payInLzTokens)
|
|
38
|
+
external
|
|
39
|
+
view
|
|
40
|
+
returns (MessagingFee[] memory fees)
|
|
41
|
+
{
|
|
42
|
+
if (sendParams.length != payInLzTokens.length) revert Errors.ArrayLengthMismatch();
|
|
54
43
|
|
|
55
|
-
|
|
44
|
+
uint256 length = sendParams.length;
|
|
45
|
+
fees = new MessagingFee[](length);
|
|
46
|
+
|
|
47
|
+
for (uint256 i = 0; i < length; ++i) {
|
|
48
|
+
fees[i] = _quoteSendExchangeRate(sendParams[i], payInLzTokens[i]);
|
|
49
|
+
}
|
|
56
50
|
}
|
|
57
51
|
|
|
58
52
|
/// @inheritdoc IPExchangeRateOracleApp
|
|
59
|
-
function
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
53
|
+
function quoteSendExchangeRate(SendExchangeRateParam calldata sendParam, bool payInLzToken)
|
|
54
|
+
external
|
|
55
|
+
view
|
|
56
|
+
returns (MessagingFee memory fee)
|
|
57
|
+
{
|
|
58
|
+
return _quoteSendExchangeRate(sendParam, payInLzToken);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/// @inheritdoc IPExchangeRateOracleApp
|
|
62
|
+
function sendExchangeRateBatch(SendExchangeRateParam[] calldata sendParams, MessagingFee[] calldata fees)
|
|
63
63
|
external
|
|
64
64
|
payable
|
|
65
65
|
onlyOwnerOrAllowedSender
|
|
66
|
-
|
|
67
|
-
returns (MessagingReceipt memory receipt)
|
|
66
|
+
returns (MessagingReceipt[] memory receipts)
|
|
68
67
|
{
|
|
69
|
-
|
|
70
|
-
(
|
|
68
|
+
if (sendParams.length != fees.length) revert Errors.ArrayLengthMismatch();
|
|
69
|
+
_validateNativeFees(fees);
|
|
71
70
|
|
|
72
|
-
|
|
71
|
+
uint256 length = sendParams.length;
|
|
72
|
+
receipts = new MessagingReceipt[](length);
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
for (uint256 i = 0; i < length; ++i) {
|
|
75
|
+
receipts[i] = _sendExchangeRate(sendParams[i], fees[i]);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/// @inheritdoc IPExchangeRateOracleApp
|
|
80
|
+
function sendExchangeRate(SendExchangeRateParam calldata sendParam, MessagingFee calldata fee)
|
|
81
|
+
external
|
|
82
|
+
payable
|
|
83
|
+
onlyOwnerOrAllowedSender
|
|
84
|
+
returns (MessagingReceipt memory receipt)
|
|
85
|
+
{
|
|
86
|
+
_validateNativeFee(fee);
|
|
87
|
+
return _sendExchangeRate(sendParam, fee);
|
|
75
88
|
}
|
|
76
89
|
|
|
77
90
|
/// @inheritdoc IPExchangeRateOracleApp
|
|
78
|
-
function getExchangeRate(
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
91
|
+
function getExchangeRate(uint32 _srcEid, bytes32 exchangeRateSource)
|
|
92
|
+
external
|
|
93
|
+
view
|
|
94
|
+
returns (ExchangeRateData memory exchangeRateData)
|
|
95
|
+
{
|
|
82
96
|
if (_srcEid == eid) {
|
|
83
97
|
uint256 exchangeRate = _getExchangeRateFromSource(exchangeRateSource.bytes32ToAddress());
|
|
84
98
|
return ExchangeRateData(exchangeRate, block.timestamp);
|
|
@@ -89,13 +103,42 @@ contract PendleExchangeRateOracleApp is PendleCrossChainOracleBaseApp_Init, IPEx
|
|
|
89
103
|
if (exchangeRateData.updatedAt == 0) revert Errors.FeedNotInitialized();
|
|
90
104
|
}
|
|
91
105
|
|
|
106
|
+
function _quoteSendExchangeRate(SendExchangeRateParam calldata sendParam, bool payInLzToken)
|
|
107
|
+
internal
|
|
108
|
+
view
|
|
109
|
+
returns (MessagingFee memory fee)
|
|
110
|
+
{
|
|
111
|
+
_validateDstEid(sendParam.dstEid);
|
|
112
|
+
uint256 exchangeRate = _getExchangeRateFromSource(sendParam.exchangeRateSource);
|
|
113
|
+
(bytes memory message, bytes memory options) = _buildMsgAndOptions(sendParam, exchangeRate);
|
|
114
|
+
|
|
115
|
+
fee = _quote(sendParam.dstEid, message, options, payInLzToken);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function _sendExchangeRate(SendExchangeRateParam calldata sendParam, MessagingFee calldata fee)
|
|
119
|
+
internal
|
|
120
|
+
returns (MessagingReceipt memory receipt)
|
|
121
|
+
{
|
|
122
|
+
_validateDstEid(sendParam.dstEid);
|
|
123
|
+
uint256 exchangeRate = _getExchangeRateFromSource(sendParam.exchangeRateSource);
|
|
124
|
+
(bytes memory message, bytes memory options) = _buildMsgAndOptions(sendParam, exchangeRate);
|
|
125
|
+
|
|
126
|
+
receipt = _lzSend(sendParam.dstEid, message, options, fee, msg.sender);
|
|
127
|
+
|
|
128
|
+
emit ExchangeRateSent(receipt.guid, sendParam.dstEid, sendParam.exchangeRateSource, exchangeRate);
|
|
129
|
+
}
|
|
130
|
+
|
|
92
131
|
function _lzReceive(
|
|
93
132
|
Origin calldata _origin,
|
|
94
133
|
bytes32 _guid,
|
|
95
134
|
bytes calldata _message,
|
|
96
|
-
address
|
|
135
|
+
address,
|
|
136
|
+
/*_executor*/
|
|
97
137
|
bytes calldata /*_extraData*/
|
|
98
|
-
)
|
|
138
|
+
)
|
|
139
|
+
internal
|
|
140
|
+
override
|
|
141
|
+
{
|
|
99
142
|
(bytes32 exchangeRateSource, uint256 exchangeRate, uint256 updatedAt) = _message.decodeMessage();
|
|
100
143
|
|
|
101
144
|
bool rateAccepted = _updateExchangeRate(_origin.srcEid, exchangeRateSource, exchangeRate, updatedAt);
|
|
@@ -103,17 +146,15 @@ contract PendleExchangeRateOracleApp is PendleCrossChainOracleBaseApp_Init, IPEx
|
|
|
103
146
|
emit ExchangeRateReceived(_guid, _origin.srcEid, exchangeRateSource, exchangeRate, updatedAt, rateAccepted);
|
|
104
147
|
}
|
|
105
148
|
|
|
106
|
-
function _buildMsgAndOptions(
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
149
|
+
function _buildMsgAndOptions(SendExchangeRateParam calldata sendParam, uint256 exchangeRate)
|
|
150
|
+
internal
|
|
151
|
+
view
|
|
152
|
+
returns (bytes memory message, bytes memory options)
|
|
153
|
+
{
|
|
110
154
|
uint16 msgType;
|
|
111
155
|
|
|
112
|
-
(msgType, message) =
|
|
113
|
-
sendParam.exchangeRateSource,
|
|
114
|
-
exchangeRate,
|
|
115
|
-
block.timestamp
|
|
116
|
-
);
|
|
156
|
+
(msgType, message) =
|
|
157
|
+
ExchangeRateMsgCodec.encodeExchangeRateMessage(sendParam.exchangeRateSource, exchangeRate, block.timestamp);
|
|
117
158
|
|
|
118
159
|
options = combineOptions(sendParam.dstEid, msgType, sendParam.extraOptions);
|
|
119
160
|
}
|
|
@@ -132,12 +173,10 @@ contract PendleExchangeRateOracleApp is PendleCrossChainOracleBaseApp_Init, IPEx
|
|
|
132
173
|
}
|
|
133
174
|
}
|
|
134
175
|
|
|
135
|
-
function _updateExchangeRate(
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
uint256 updatedAt
|
|
140
|
-
) internal returns (bool rateAccepted) {
|
|
176
|
+
function _updateExchangeRate(uint32 _srcEid, bytes32 exchangeRateSource, uint256 exchangeRate, uint256 updatedAt)
|
|
177
|
+
internal
|
|
178
|
+
returns (bool rateAccepted)
|
|
179
|
+
{
|
|
141
180
|
ExchangeRateData storage currentFeedData = feedData[_srcEid][exchangeRateSource];
|
|
142
181
|
|
|
143
182
|
if (updatedAt > currentFeedData.updatedAt) {
|
|
@@ -147,6 +186,33 @@ contract PendleExchangeRateOracleApp is PendleCrossChainOracleBaseApp_Init, IPEx
|
|
|
147
186
|
}
|
|
148
187
|
}
|
|
149
188
|
|
|
189
|
+
function _validateDstEid(uint32 dstEid) internal view {
|
|
190
|
+
if (dstEid == eid) revert Errors.InvalidDestinationEid();
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* @dev Override of base _payNative function.
|
|
195
|
+
* The original implementation enforced msg.value == _nativeFee, which is incompatible with
|
|
196
|
+
* batching multiple messages. Fee checks are performed by _validateNativeFees / _validateNativeFee,
|
|
197
|
+
* so this implementation simply returns the provided native fee.
|
|
198
|
+
*/
|
|
199
|
+
function _payNative(uint256 _nativeFee) internal pure override returns (uint256 nativeFee) {
|
|
200
|
+
return _nativeFee;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
function _validateNativeFees(MessagingFee[] calldata fees) internal {
|
|
204
|
+
uint256 totalFee = 0;
|
|
205
|
+
for (uint256 i = 0; i < fees.length; ++i) {
|
|
206
|
+
totalFee += fees[i].nativeFee;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
if (totalFee != msg.value) revert Errors.NotEnoughNativeFee(msg.value, totalFee);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
function _validateNativeFee(MessagingFee calldata fee) internal {
|
|
213
|
+
if (fee.nativeFee != msg.value) revert Errors.NotEnoughNativeFee(msg.value, fee.nativeFee);
|
|
214
|
+
}
|
|
215
|
+
|
|
150
216
|
// ====== Admin functions ======
|
|
151
217
|
|
|
152
218
|
function setAllowedSender(address _allowedSender) external onlyOwner {
|
|
@@ -16,9 +16,8 @@ contract PendleExchangeRateOracleV2 is IPExchangeRateOracle {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
function getExchangeRate() external view returns (uint256) {
|
|
19
|
-
IPExchangeRateOracleApp.ExchangeRateData memory exchangeRateData =
|
|
20
|
-
exchangeRateOracleApp
|
|
21
|
-
).getExchangeRate(srcEid, exchangeRateSource);
|
|
19
|
+
IPExchangeRateOracleApp.ExchangeRateData memory exchangeRateData =
|
|
20
|
+
IPExchangeRateOracleApp(exchangeRateOracleApp).getExchangeRate(srcEid, exchangeRateSource);
|
|
22
21
|
|
|
23
22
|
return exchangeRateData.exchangeRate;
|
|
24
23
|
}
|
|
@@ -6,23 +6,23 @@ import {Errors} from "../../../core/libraries/Errors.sol";
|
|
|
6
6
|
library ExchangeRateMsgCodec {
|
|
7
7
|
uint16 public constant SEND_EXCHANGE_RATE = 1;
|
|
8
8
|
|
|
9
|
-
function encodeExchangeRateMessage(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
function encodeExchangeRateMessage(address exchangeRateSource, uint256 exchangeRate, uint256 updatedAt)
|
|
10
|
+
internal
|
|
11
|
+
pure
|
|
12
|
+
returns (uint16 msgType, bytes memory message)
|
|
13
|
+
{
|
|
14
14
|
msgType = SEND_EXCHANGE_RATE;
|
|
15
15
|
message = abi.encode(msgType, exchangeRateSource, exchangeRate, updatedAt);
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
function decodeMessage(
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
function decodeMessage(bytes calldata message)
|
|
19
|
+
internal
|
|
20
|
+
pure
|
|
21
|
+
returns (bytes32 exchangeRateSource, uint256 exchangeRate, uint256 updatedAt)
|
|
22
|
+
{
|
|
21
23
|
uint16 msgType;
|
|
22
|
-
(msgType, exchangeRateSource, exchangeRate, updatedAt) =
|
|
23
|
-
message,
|
|
24
|
-
(uint16, bytes32, uint256, uint256)
|
|
25
|
-
);
|
|
24
|
+
(msgType, exchangeRateSource, exchangeRate, updatedAt) =
|
|
25
|
+
abi.decode(message, (uint16, bytes32, uint256, uint256));
|
|
26
26
|
if (msgType != SEND_EXCHANGE_RATE) revert Errors.InvalidMsgType();
|
|
27
27
|
}
|
|
28
28
|
|