@pendle/core-v2 6.5.0 → 6.6.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/LICENSE +12 -82
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
- 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/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/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerUpg.sol/PendleGaugeControllerUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerUpg.sol/PendleGaugeControllerUpg.json +58 -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/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
- 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/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/WeekMath.sol/WeekMath.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/sPendle/StakedPendle.sol/StakedPendle.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/sPendle/StakedPendle.sol/StakedPendle.json +2 -2
- package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarketFactoryV7Upg.sol/PendleMarketFactoryV7Upg.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarketV7.sol/PendleMarketV7.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarketV7.sol/PendleMarketV7.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/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/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/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeableV2.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
- 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/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
- 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/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/PMath.sol/PMath.dbg.json +1 -1
- package/build/artifacts/contracts/cross-chain/FixedPricePTAMMV2.sol/FixedPricePTAMMV2.dbg.json +4 -0
- package/build/artifacts/contracts/cross-chain/FixedPricePTAMMV2.sol/FixedPricePTAMMV2.json +766 -0
- package/build/artifacts/contracts/cross-chain/PendleSwapHelper.sol/PendleSwapHelper.dbg.json +4 -0
- package/build/artifacts/contracts/cross-chain/PendleSwapHelper.sol/PendleSwapHelper.json +99 -0
- package/build/artifacts/contracts/cross-chain/deposit-box/DepositBox.sol/DepositBox.dbg.json +4 -0
- package/build/artifacts/contracts/cross-chain/deposit-box/DepositBox.sol/DepositBox.json +170 -0
- package/build/artifacts/contracts/cross-chain/deposit-box/DepositBoxFactory.sol/DepositBoxFactory.dbg.json +4 -0
- package/build/artifacts/contracts/cross-chain/deposit-box/DepositBoxFactory.sol/DepositBoxFactory.json +124 -0
- package/build/artifacts/contracts/cross-chain/factory/hub/PendlePTOFTAdapterFactory.sol/PendlePTOFTAdapterFactory.dbg.json +1 -1
- package/build/artifacts/contracts/cross-chain/funder/BridgeFunder.sol/BridgeFunder.dbg.json +4 -0
- package/build/artifacts/contracts/cross-chain/funder/BridgeFunder.sol/BridgeFunder.json +210 -0
- package/build/artifacts/contracts/cross-chain/oftImpl/hub/OFTAdapterAltImpl.sol/OFTAdapterAltImpl.dbg.json +4 -0
- package/build/artifacts/contracts/cross-chain/oftImpl/hub/OFTAdapterAltImpl.sol/OFTAdapterAltImpl.json +1294 -0
- 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/PendleBridgedPrincipalTokenAlt.sol/PendleBridgedPrincipalTokenAlt.dbg.json +4 -0
- package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalTokenAlt.sol/PendleBridgedPrincipalTokenAlt.json +1602 -0
- package/build/artifacts/contracts/cross-chain/swap-hub/PendleCrossChainSwapHub.sol/PendleCrossChainSwapHub.dbg.json +4 -0
- package/build/artifacts/contracts/cross-chain/swap-hub/PendleCrossChainSwapHub.sol/PendleCrossChainSwapHub.json +1005 -0
- package/build/artifacts/contracts/cross-chain/swap-hub/SwapHubBase.sol/SwapHubBase.dbg.json +4 -0
- package/build/artifacts/contracts/cross-chain/swap-hub/SwapHubBase.sol/SwapHubBase.json +976 -0
- 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 +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/IPAllActionV3.sol/IPAllActionV3.json +0 -88
- 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/IPBridgeFunder.sol/IPBridgeFunder.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPBridgeFunder.sol/IPBridgeFunder.json +85 -0
- 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/IPCrossChainSwapHub.sol/IPCrossChainSwapHub.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPCrossChainSwapHub.sol/IPCrossChainSwapHub.json +813 -0
- package/build/artifacts/contracts/interfaces/IPDepositBox.sol/IPDepositBox.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPDepositBox.sol/IPDepositBox.json +124 -0
- package/build/artifacts/contracts/interfaces/IPDepositBoxFactory.sol/IPDepositBoxFactory.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPDepositBoxFactory.sol/IPDepositBoxFactory.json +108 -0
- 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/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPFeeDistributorV2.sol/IPFeeDistributorV2.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPFixedPricePTAMMV2.sol/IPFixedPricePTAMMSwapCallback.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/{IPFixedPricePTAMM.sol → IPFixedPricePTAMMV2.sol}/IPFixedPricePTAMMSwapCallback.json +1 -1
- package/build/artifacts/contracts/interfaces/IPFixedPricePTAMMV2.sol/IPFixedPricePTAMMV2.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/{IPFixedPricePTAMM.sol/IPFixedPricePTAMM.json → IPFixedPricePTAMMV2.sol/IPFixedPricePTAMMV2.json} +285 -93
- 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/IPGaugeController.sol/IPGaugeController.json +56 -0
- 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 +387 -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/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/IPStakedPendle.sol/IPStakedPendle.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPSwapHelper.sol/IPSwapHelper.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/{IPActionCrossChain.sol/IPActionCrossChain.json → IPSwapHelper.sol/IPSwapHelper.json} +2 -2
- 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/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/LimitRouterBase.sol/LimitRouterBase.json +473 -11
- package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.dbg.json +1 -1
- package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.json +480 -13
- package/build/artifacts/contracts/limit/helpers/MintSyHelper.sol/MintSyHelper.dbg.json +4 -0
- package/build/artifacts/contracts/limit/helpers/MintSyHelper.sol/MintSyHelper.json +156 -0
- 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/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/ILegacyMarket.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BytesLib.sol/BytesLib.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/EmptyUUPS.sol/EmptyUUPS.dbg.json +1 -1
- 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/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 +1 -1
- package/build/artifacts/contracts/offchain-helpers/MarketSweed.sol/MarketSweed.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleAPIFeeDepositor.sol/PendleAPIFeeDepositor.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleAPIFeeDepositor.sol/PendleAPIFeeDepositor.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/PendleExchangeRateOracle.sol/PendleExchangeRateOracle.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleFeeSetter.sol/PendleFeeSetter.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleFeeSetter.sol/PendleFeeSetter.json +33 -2
- package/build/artifacts/contracts/offchain-helpers/PendleGovernanceProxy.sol/PendleGovernanceProxy.dbg.json +1 -1
- 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/PendleMerkleDepositor.sol/PendleMerkleDepositor.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleMulticallOwnerV1.sol/PendleMulticallOwnerV1.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleMulticallV1.sol/PendleMulticallV1.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleMulticallV2.sol/PendleMulticallV2.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleOffchainStorage.sol/PendleOffchainStorage.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleProxyAdmin.sol/PendleProxyAdmin.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/PendleProxyAdmin.sol/PendleProxyAdmin.json +171 -0
- package/build/artifacts/contracts/offchain-helpers/PendleWstETHPriceFeed.sol/PendleWstETHPriceFeed.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/SimulateHelper.sol/SimulateHelper.dbg.json +1 -1
- 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/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/errors/SDKErrorsDirectory.sol/SDKErrorsDirectory.dbg.json +1 -1
- 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/exchangeRate/PendleExchangeRateOracleApp.sol/PendleExchangeRateOracleApp.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleV2.sol/PendleExchangeRateOracleV2.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/CrossChainOracle/libraries/ExchangeRateMsgCodec.sol/ExchangeRateMsgCodec.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYLpOracle.sol/PendlePYLpOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYOracleLib.sol/PendlePYOracleLib.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracle.sol/PendleChainlinkOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.dbg.json +1 -1
- 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/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.dbg.json +1 -1
- 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/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/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/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/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/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/GaugeController/PendleGaugeControllerUpg.sol +12 -2
- package/contracts/core/libraries/TokenHelper.sol +6 -2
- package/contracts/cross-chain/FixedPricePTAMMV2.sol +162 -0
- package/contracts/{router/ActionCrossChain.sol → cross-chain/PendleSwapHelper.sol} +11 -7
- package/contracts/cross-chain/deposit-box/DepositBox.sol +66 -0
- package/contracts/cross-chain/deposit-box/DepositBoxFactory.sol +44 -0
- package/contracts/cross-chain/funder/BridgeFunder.sol +61 -0
- package/contracts/cross-chain/oftImpl/hub/OFTAdapterAltImpl.sol +55 -0
- package/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalTokenAlt.sol +64 -0
- package/contracts/cross-chain/swap-hub/PendleCrossChainSwapHub.sol +101 -0
- package/contracts/cross-chain/swap-hub/SwapHubBase.sol +184 -0
- package/contracts/interfaces/IPAllActionTypeV3.sol +1 -0
- package/contracts/interfaces/IPAllActionV3.sol +1 -3
- package/contracts/interfaces/IPBridgeFunder.sol +17 -0
- package/contracts/interfaces/IPCrossChainSwapHub.sol +108 -0
- package/contracts/interfaces/IPDepositBox.sol +22 -0
- package/contracts/interfaces/IPDepositBoxFactory.sol +19 -0
- package/contracts/interfaces/IPFixedPricePTAMMV2.sol +58 -0
- package/contracts/interfaces/IPGaugeController.sol +7 -3
- package/contracts/interfaces/IPLimitRouter.sol +29 -0
- package/contracts/interfaces/{IPActionCrossChain.sol → IPSwapHelper.sol} +1 -1
- package/contracts/limit/LimitRouterBase.sol +100 -55
- package/contracts/limit/PendleLimitRouter.sol +24 -2
- package/contracts/limit/helpers/MintSyHelper.sol +114 -0
- package/contracts/offchain-helpers/PendleFeeSetter.sol +19 -1
- package/contracts/offchain-helpers/PendleProxyAdmin.sol +11 -0
- package/contracts/router/base/ActionBase.sol +16 -2
- package/deployments/1-core.json +11 -6
- package/deployments/1-offchain-helper.json +1 -1
- package/deployments/10-core.json +9 -4
- package/deployments/10-offchain-helper.json +1 -1
- package/deployments/130-core.json +9 -2
- package/deployments/143-core.json +19 -0
- package/deployments/146-core.json +9 -4
- package/deployments/146-offchain-helper.json +1 -1
- package/deployments/42161-core.json +9 -4
- package/deployments/42161-offchain-helper.json +1 -1
- package/deployments/4217-core.json +14 -0
- package/deployments/43114-core.json +6 -2
- package/deployments/43114-offchain-helper.json +3 -0
- package/deployments/5000-core.json +9 -4
- package/deployments/5000-offchain-helper.json +1 -1
- package/deployments/56-core.json +9 -4
- package/deployments/56-offchain-helper.json +1 -1
- package/deployments/57073-core.json +19 -0
- package/deployments/747474-core.json +19 -0
- package/deployments/80094-core.json +9 -4
- package/deployments/80094-offchain-helper.json +1 -1
- package/deployments/8453-core.json +9 -4
- package/deployments/8453-offchain-helper.json +1 -1
- package/deployments/9745-core.json +8 -3
- package/deployments/9745-offchain-helper.json +1 -1
- package/deployments/999-core.json +8 -3
- package/deployments/999-offchain-helper.json +1 -1
- package/package.json +2 -2
- package/typechain-types/BridgeFunder.ts +344 -0
- package/typechain-types/DepositBox.ts +260 -0
- package/typechain-types/DepositBoxFactory.ts +226 -0
- package/typechain-types/FixedPricePTAMMV2.ts +1104 -0
- package/typechain-types/IPAllActionV3.ts +0 -54
- package/typechain-types/IPBridgeFunder.ts +165 -0
- package/typechain-types/IPCrossChainSwapHub.ts +656 -0
- package/typechain-types/IPDepositBox.ts +213 -0
- package/typechain-types/IPDepositBoxFactory.ts +226 -0
- package/typechain-types/IPFixedPricePTAMMV2.ts +864 -0
- package/typechain-types/IPGaugeController.ts +86 -0
- package/typechain-types/IPLimitRouter.ts +187 -0
- package/typechain-types/IPSwapHelper.ts +161 -0
- package/typechain-types/LimitRouterBase.ts +295 -34
- package/typechain-types/MintSyHelper.ts +230 -0
- package/typechain-types/OFTAdapterAltImpl.ts +1350 -0
- package/typechain-types/PendleBridgedPrincipalTokenAlt.ts +1708 -0
- package/typechain-types/PendleCrossChainSwapHub.ts +911 -0
- package/typechain-types/PendleFeeSetter.ts +53 -0
- package/typechain-types/PendleGaugeControllerUpg.ts +86 -0
- package/typechain-types/PendleLimitRouter.ts +295 -34
- package/typechain-types/PendleProxyAdmin.ts +341 -0
- package/typechain-types/PendleSwapHelper.ts +161 -0
- package/typechain-types/ProxyAdmin.ts +341 -0
- package/typechain-types/SwapHubBase.ts +886 -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 +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/BridgeFunder__factory.ts +265 -0
- package/typechain-types/factories/DepositBoxFactory__factory.ts +189 -0
- package/typechain-types/factories/DepositBox__factory.ts +222 -0
- package/typechain-types/factories/ExpiredLpPtRedeemer__factory.ts +1 -1
- package/typechain-types/factories/FixedPricePTAMMV2__factory.ts +824 -0
- package/typechain-types/factories/FixedPricePTAMM__factory.ts +1 -1
- package/typechain-types/factories/IPAllActionV3__factory.ts +0 -88
- package/typechain-types/factories/IPBridgeFunder__factory.ts +100 -0
- package/typechain-types/factories/IPCrossChainSwapHub__factory.ts +828 -0
- package/typechain-types/factories/IPDepositBoxFactory__factory.ts +123 -0
- package/typechain-types/factories/IPDepositBox__factory.ts +136 -0
- package/typechain-types/factories/IPFixedPricePTAMMV2__factory.ts +621 -0
- package/typechain-types/factories/IPGaugeController__factory.ts +56 -0
- package/typechain-types/factories/IPLimitRouter__factory.ts +387 -0
- package/typechain-types/factories/IPSwapHelper__factory.ts +111 -0
- package/typechain-types/factories/LimitBackendHelperV2__factory.ts +1 -1
- package/typechain-types/factories/LimitRouterBase__factory.ts +473 -11
- package/typechain-types/factories/MarketSweed__factory.ts +1 -1
- package/typechain-types/factories/MintSyHelper__factory.ts +168 -0
- package/typechain-types/factories/OFTAdapterAltImpl__factory.ts +1363 -0
- package/typechain-types/factories/PendleAPIFeeDepositor__factory.ts +1 -1
- package/typechain-types/factories/PendleBridgedPrincipalTokenAlt__factory.ts +1702 -0
- package/typechain-types/factories/PendleCommonPoolDeployHelperV2__factory.ts +1 -1
- package/typechain-types/factories/PendleCrossChainSwapHub__factory.ts +1074 -0
- package/typechain-types/factories/PendleFeeDistributorV2__factory.ts +1 -1
- package/typechain-types/factories/PendleFeeSetter__factory.ts +36 -1
- package/typechain-types/factories/PendleGaugeControllerUpg__factory.ts +57 -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 +483 -13
- package/typechain-types/factories/PendleMarketV7__factory.ts +1 -1
- package/typechain-types/factories/PendleMerkleDistributor__factory.ts +1 -1
- package/typechain-types/factories/PendleMultiTokenMerkleDistributor__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/PendleProxyAdmin__factory.ts +229 -0
- package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
- package/typechain-types/factories/PendleRouterV4__factory.ts +1 -1
- package/typechain-types/factories/PendleSwapHelper__factory.ts +152 -0
- package/typechain-types/factories/PendleSwap__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/ProxyAdmin__factory.ts +210 -0
- package/typechain-types/factories/Reflector__factory.ts +1 -1
- package/typechain-types/factories/StakedPendle__factory.ts +1 -1
- package/typechain-types/factories/SwapHubBase__factory.ts +988 -0
- package/typechain-types/hardhat.d.ts +180 -9
- package/typechain-types/index.ts +36 -2
- package/build/artifacts/contracts/StPendle.sol/RoundDataLib.dbg.json +0 -4
- package/build/artifacts/contracts/StPendle.sol/RoundDataLib.json +0 -10
- package/build/artifacts/contracts/StPendle.sol/StPendle.dbg.json +0 -4
- package/build/artifacts/contracts/StPendle.sol/StPendle.json +0 -228
- package/build/artifacts/contracts/cross-chain/FixedPricePTAMM.sol/FixedPricePTAMM.dbg.json +0 -4
- package/build/artifacts/contracts/cross-chain/FixedPricePTAMM.sol/FixedPricePTAMM.json +0 -667
- package/build/artifacts/contracts/interfaces/IPActionCrossChain.sol/IPActionCrossChain.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPFixedPricePTAMM.sol/IPFixedPricePTAMM.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPFixedPricePTAMM.sol/IPFixedPricePTAMMSwapCallback.dbg.json +0 -4
- package/build/artifacts/contracts/router/ActionCrossChain.sol/ActionCrossChain.dbg.json +0 -4
- package/build/artifacts/contracts/router/ActionCrossChain.sol/ActionCrossChain.json +0 -99
- package/contracts/StPendle.sol +0 -121
- package/contracts/cross-chain/FixedPricePTAMM.sol +0 -200
- package/contracts/interfaces/IPFixedPricePTAMM.sol +0 -69
- package/typechain-types/StPendle.ts +0 -362
- package/typechain-types/factories/StPendle__factory.ts +0 -260
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
// SPDX-License-Identifier: SEE LICENSE IN LICENSE
|
|
2
|
+
pragma solidity ^0.8.19;
|
|
3
|
+
|
|
4
|
+
import {IPChainlinkOracleEssential} from "../interfaces/IPChainlinkOracleEssential.sol";
|
|
5
|
+
import {IPFixedPricePTAMMSwapCallback, IPFixedPricePTAMMV2} from "../interfaces/IPFixedPricePTAMMV2.sol";
|
|
6
|
+
|
|
7
|
+
import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol";
|
|
8
|
+
import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";
|
|
9
|
+
import {
|
|
10
|
+
IERC20MetadataUpgradeable
|
|
11
|
+
} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol";
|
|
12
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
|
13
|
+
|
|
14
|
+
import {BoringOwnableUpgradeableV2} from "../core/libraries/BoringOwnableUpgradeableV2.sol";
|
|
15
|
+
import {TokenHelper} from "../core/libraries/TokenHelper.sol";
|
|
16
|
+
import {PMath} from "../core/libraries/math/PMath.sol";
|
|
17
|
+
|
|
18
|
+
contract FixedPricePTAMMV2 is
|
|
19
|
+
IPFixedPricePTAMMV2,
|
|
20
|
+
BoringOwnableUpgradeableV2,
|
|
21
|
+
ERC20Upgradeable,
|
|
22
|
+
ReentrancyGuardUpgradeable,
|
|
23
|
+
TokenHelper
|
|
24
|
+
{
|
|
25
|
+
// cast index-erc7201 "pendle.FixedPricePTAMM.storage"
|
|
26
|
+
uint256 internal constant STORAGE_SLOT = 0xbbf04d9aae855c6bd76c8f4ba7a918994ad0d002f537323e58c83cbfe5249000;
|
|
27
|
+
|
|
28
|
+
using PMath for uint256;
|
|
29
|
+
using PMath for int256;
|
|
30
|
+
|
|
31
|
+
address public immutable outputToken;
|
|
32
|
+
|
|
33
|
+
constructor(address _outputToken) {
|
|
34
|
+
_disableInitializers();
|
|
35
|
+
outputToken = _outputToken;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function initialize(address _owner) external initializer {
|
|
39
|
+
__BoringOwnableV2_init(_owner);
|
|
40
|
+
__ERC20_init(
|
|
41
|
+
string.concat(IERC20Metadata(outputToken).name(), " receipt"),
|
|
42
|
+
string.concat(IERC20Metadata(outputToken).symbol(), "-receipt")
|
|
43
|
+
);
|
|
44
|
+
__ReentrancyGuard_init();
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function decimals() public view override(ERC20Upgradeable, IERC20MetadataUpgradeable) returns (uint8) {
|
|
48
|
+
return IERC20Metadata(outputToken).decimals();
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
struct OracleData {
|
|
52
|
+
bool isPaused;
|
|
53
|
+
address oracle;
|
|
54
|
+
// @notice This can be seen as the price at maturity.
|
|
55
|
+
// @notice This can help with decimals conversion.
|
|
56
|
+
uint256 multiplier;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
struct Storage {
|
|
60
|
+
mapping(address PT => OracleData) priceOracle;
|
|
61
|
+
mapping(address PT => uint256) totalPT;
|
|
62
|
+
mapping(address user => bool) isWhitelisted;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function $() internal pure returns (Storage storage res) {
|
|
66
|
+
assembly ("memory-safe") {
|
|
67
|
+
res.slot := STORAGE_SLOT
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
function priceOracle(address PT)
|
|
72
|
+
public
|
|
73
|
+
view
|
|
74
|
+
returns (bool isPaused, IPChainlinkOracleEssential oracle, uint256 multiplier)
|
|
75
|
+
{
|
|
76
|
+
OracleData memory data = $().priceOracle[PT];
|
|
77
|
+
isPaused = data.isPaused;
|
|
78
|
+
oracle = IPChainlinkOracleEssential(data.oracle);
|
|
79
|
+
multiplier = data.multiplier;
|
|
80
|
+
|
|
81
|
+
require(address(oracle) != address(0), "FixedPricePTAMMV2: oracle not set");
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function totalPt(address PT) external view returns (uint256) {
|
|
85
|
+
return $().totalPT[PT];
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function isWhitelisted(address user) external view returns (bool) {
|
|
89
|
+
return $().isWhitelisted[user];
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
function previewSwapExactPtForToken(address PT, uint256 exactPtIn) public view returns (uint256 amountTokenOut) {
|
|
93
|
+
(bool isPaused, IPChainlinkOracleEssential oracle, uint256 multiplier) = priceOracle(PT);
|
|
94
|
+
require(!isPaused, "FixedPricePTAMMV2: trading paused");
|
|
95
|
+
|
|
96
|
+
(, int256 rawPrice,,,) = oracle.latestRoundData();
|
|
97
|
+
|
|
98
|
+
// exactPtIn * rawPrice * multiplier
|
|
99
|
+
return (exactPtIn * rawPrice.Uint() * multiplier) / (PMath.ONE * PMath.ONE);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
function swapExactPtForToken(address receiver, address PT, uint256 exactPtIn, bytes calldata data)
|
|
103
|
+
external
|
|
104
|
+
nonReentrant
|
|
105
|
+
returns (uint256 netTokenOut)
|
|
106
|
+
{
|
|
107
|
+
netTokenOut = previewSwapExactPtForToken(PT, exactPtIn);
|
|
108
|
+
|
|
109
|
+
_transferOut(outputToken, receiver, netTokenOut);
|
|
110
|
+
|
|
111
|
+
if (data.length > 0) {
|
|
112
|
+
IPFixedPricePTAMMSwapCallback(msg.sender).swapCallback(netTokenOut, exactPtIn, data);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
$().totalPT[PT] += exactPtIn;
|
|
116
|
+
require(_selfBalance(PT) >= $().totalPT[PT], "FixedPricePTAMMV2: insufficient PT received");
|
|
117
|
+
|
|
118
|
+
emit Swap(msg.sender, receiver, PT, exactPtIn, netTokenOut);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// Add/remove funds
|
|
122
|
+
|
|
123
|
+
modifier onlyWhitelisted() {
|
|
124
|
+
require($().isWhitelisted[msg.sender], "FixedPricePTAMMV2: Not whitelisted");
|
|
125
|
+
_;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
function addFundWhitelisted(uint256 amount) external onlyWhitelisted nonReentrant {
|
|
129
|
+
_transferIn(outputToken, msg.sender, amount);
|
|
130
|
+
_mint(msg.sender, amount);
|
|
131
|
+
emit TokenFunded(msg.sender, amount);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
function removeFund(uint256 amount) external nonReentrant {
|
|
135
|
+
_burn(msg.sender, amount);
|
|
136
|
+
_transferOut(outputToken, msg.sender, amount);
|
|
137
|
+
emit TokenWithdrawn(msg.sender, amount);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
// Admin functions
|
|
141
|
+
|
|
142
|
+
function withdrawPt(address PT, uint256 amount) external onlyOwner {
|
|
143
|
+
_transferOut(PT, msg.sender, amount);
|
|
144
|
+
$().totalPT[PT] -= amount;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
function setWhitelist(address user, bool isWhitelisted_) external onlyOwner {
|
|
148
|
+
$().isWhitelisted[user] = isWhitelisted_;
|
|
149
|
+
emit WhitelistUpdated(user, isWhitelisted_);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
function setPriceOracle(address PT, address _priceOracle, uint256 _multiplier) external onlyOwner {
|
|
153
|
+
$().priceOracle[PT].oracle = _priceOracle;
|
|
154
|
+
$().priceOracle[PT].multiplier = _multiplier;
|
|
155
|
+
emit PriceOracleUpdated(PT, _priceOracle);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
function setPausePtTrading(address PT, bool isPaused) external onlyOwner {
|
|
159
|
+
$().priceOracle[PT].isPaused = isPaused;
|
|
160
|
+
emit PauseStatusUpdated(PT, isPaused);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
2
|
pragma solidity ^0.8.0;
|
|
3
3
|
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {IPSwapAggregator, SwapType} from "
|
|
4
|
+
import {TokenHelper} from "../core/libraries/TokenHelper.sol";
|
|
5
|
+
import {IPFixedPricePTAMMV2} from "../interfaces/IPFixedPricePTAMMV2.sol";
|
|
6
|
+
import {IPSwapHelper, TokenOutput} from "../interfaces/IPSwapHelper.sol";
|
|
7
|
+
import {IPSwapAggregator, SwapType} from "../router/swap-aggregator/IPSwapAggregator.sol";
|
|
8
8
|
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
9
9
|
|
|
10
|
-
contract
|
|
10
|
+
contract PendleSwapHelper is IPSwapHelper, TokenHelper {
|
|
11
11
|
function swapWithFixedPricePTAMM(
|
|
12
12
|
address receiver,
|
|
13
13
|
address fixedPricePTAMM,
|
|
@@ -15,9 +15,13 @@ contract ActionCrossChain is ActionBase, IPActionCrossChain {
|
|
|
15
15
|
uint256 exactPtIn,
|
|
16
16
|
TokenOutput calldata out
|
|
17
17
|
) external returns (uint256 netTokenOut) {
|
|
18
|
+
require(
|
|
19
|
+
out.tokenRedeemSy == IPFixedPricePTAMMV2(fixedPricePTAMM).outputToken(), "SwapHelper: INVALID_TOKEN_REDEEM"
|
|
20
|
+
);
|
|
21
|
+
|
|
18
22
|
_transferFrom(IERC20(PT), msg.sender, fixedPricePTAMM, exactPtIn);
|
|
19
|
-
uint256 tokenOut =
|
|
20
|
-
.swapExactPtForToken(__swapDestination(receiver, out), PT, exactPtIn,
|
|
23
|
+
uint256 tokenOut = IPFixedPricePTAMMV2(fixedPricePTAMM)
|
|
24
|
+
.swapExactPtForToken(__swapDestination(receiver, out), PT, exactPtIn, "");
|
|
21
25
|
return __handleTokenOutput(receiver, tokenOut, out);
|
|
22
26
|
}
|
|
23
27
|
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity ^0.8.30;
|
|
3
|
+
|
|
4
|
+
import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
|
|
5
|
+
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
6
|
+
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
7
|
+
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
8
|
+
import {TokenHelper} from "../../core/libraries/TokenHelper.sol";
|
|
9
|
+
import {ApprovedCall, IPDepositBox} from "../../interfaces/IPDepositBox.sol";
|
|
10
|
+
|
|
11
|
+
contract DepositBox is IPDepositBox, TokenHelper, Initializable {
|
|
12
|
+
using Address for address;
|
|
13
|
+
using SafeERC20 for IERC20;
|
|
14
|
+
|
|
15
|
+
address public immutable MANAGER;
|
|
16
|
+
address public OWNER;
|
|
17
|
+
uint32 public BOX_ID;
|
|
18
|
+
|
|
19
|
+
constructor(address manager_) {
|
|
20
|
+
_disableInitializers();
|
|
21
|
+
MANAGER = manager_;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
modifier onlyManager() {
|
|
25
|
+
require(msg.sender == MANAGER, "DepositBox: caller is not manager");
|
|
26
|
+
_;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function initialize(address owner_, uint32 boxId_) external initializer {
|
|
30
|
+
OWNER = owner_;
|
|
31
|
+
BOX_ID = boxId_;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function withdrawTo(address to, address token, uint256 amount) external onlyManager {
|
|
35
|
+
_transferOut(token, to, amount);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function approveAndCall(ApprovedCall memory call, address nativeRefund)
|
|
39
|
+
external
|
|
40
|
+
payable
|
|
41
|
+
onlyManager
|
|
42
|
+
returns (bytes memory result)
|
|
43
|
+
{
|
|
44
|
+
uint256 nativeAmount = call.token == NATIVE ? call.amount : 0;
|
|
45
|
+
uint256 nativeFee = msg.value;
|
|
46
|
+
|
|
47
|
+
uint256 initialNativeBalance = _selfBalance(NATIVE) - nativeAmount - nativeFee;
|
|
48
|
+
|
|
49
|
+
_approveForExtRouter(call.token, call.approveTo, call.amount);
|
|
50
|
+
result = call.callTo.functionCallWithValue(call.data, nativeAmount + nativeFee);
|
|
51
|
+
_approveForExtRouter(call.token, call.approveTo, 0);
|
|
52
|
+
|
|
53
|
+
uint256 finalNativeBalance = _selfBalance(NATIVE);
|
|
54
|
+
|
|
55
|
+
if (finalNativeBalance > initialNativeBalance) {
|
|
56
|
+
_transferOut(NATIVE, nativeRefund, finalNativeBalance - initialNativeBalance);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function _approveForExtRouter(address token, address extRouter, uint256 amount) internal {
|
|
61
|
+
if (token == NATIVE) return;
|
|
62
|
+
IERC20(token).forceApprove(extRouter, amount);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
receive() external payable {}
|
|
66
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity ^0.8.30;
|
|
3
|
+
|
|
4
|
+
import {Create2} from "@openzeppelin/contracts/utils/Create2.sol";
|
|
5
|
+
|
|
6
|
+
import {IPDepositBox} from "../../interfaces/IPDepositBox.sol";
|
|
7
|
+
import {IPDepositBoxFactory} from "../../interfaces/IPDepositBoxFactory.sol";
|
|
8
|
+
import {DepositBox} from "./DepositBox.sol";
|
|
9
|
+
|
|
10
|
+
contract DepositBoxFactory is IPDepositBoxFactory {
|
|
11
|
+
/// @dev creation code of OpenZeppelin's BeaconProxy
|
|
12
|
+
address public immutable BEACON_PROXY_CODE_CONTRACT;
|
|
13
|
+
address public immutable DEPOSIT_BOX_BEACON;
|
|
14
|
+
bytes32 public immutable DEPOSIT_BOX_CODE_HASH;
|
|
15
|
+
|
|
16
|
+
constructor(address beaconProxyCodeContract_, address depositBoxBeacon_) {
|
|
17
|
+
BEACON_PROXY_CODE_CONTRACT = beaconProxyCodeContract_;
|
|
18
|
+
DEPOSIT_BOX_BEACON = depositBoxBeacon_;
|
|
19
|
+
DEPOSIT_BOX_CODE_HASH =
|
|
20
|
+
keccak256(abi.encodePacked(beaconProxyCodeContract_.code, abi.encode(depositBoxBeacon_, "")));
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function computeDepositBox(address owner, uint32 boxId)
|
|
24
|
+
public
|
|
25
|
+
view
|
|
26
|
+
returns (address box, bytes32 salt, bool deployed)
|
|
27
|
+
{
|
|
28
|
+
salt = keccak256(abi.encode(owner, boxId));
|
|
29
|
+
box = Create2.computeAddress(salt, DEPOSIT_BOX_CODE_HASH);
|
|
30
|
+
deployed = box.code.length > 0;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function deployDepositBox(address owner, uint32 boxId) external returns (IPDepositBox) {
|
|
34
|
+
(address box, bytes32 salt, bool deployed) = computeDepositBox(owner, boxId);
|
|
35
|
+
if (deployed) {
|
|
36
|
+
return IPDepositBox(box);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
bytes memory bytecode = abi.encodePacked(BEACON_PROXY_CODE_CONTRACT.code, abi.encode(DEPOSIT_BOX_BEACON, ""));
|
|
40
|
+
assert(Create2.deploy(0, salt, bytecode) == box);
|
|
41
|
+
DepositBox(payable(box)).initialize(owner, boxId);
|
|
42
|
+
return IPDepositBox(box);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity ^0.8.30;
|
|
3
|
+
|
|
4
|
+
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
5
|
+
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
6
|
+
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
7
|
+
import {BoringOwnableUpgradeableV2} from "../../core/libraries/BoringOwnableUpgradeableV2.sol";
|
|
8
|
+
import {TokenHelper} from "../../core/libraries/TokenHelper.sol";
|
|
9
|
+
import {BridgeData, IPBridgeFunder} from "../../interfaces/IPBridgeFunder.sol";
|
|
10
|
+
import {IPDepositBox} from "../../interfaces/IPDepositBox.sol";
|
|
11
|
+
import {IPDepositBoxFactory} from "../../interfaces/IPDepositBoxFactory.sol";
|
|
12
|
+
|
|
13
|
+
contract BridgeFunder is IPBridgeFunder, BoringOwnableUpgradeableV2, TokenHelper {
|
|
14
|
+
using Address for address;
|
|
15
|
+
using SafeERC20 for IERC20;
|
|
16
|
+
|
|
17
|
+
IPDepositBoxFactory public immutable DEPOSIT_BOX_FACTORY;
|
|
18
|
+
|
|
19
|
+
constructor(address depositBoxFactory_) {
|
|
20
|
+
_disableInitializers();
|
|
21
|
+
DEPOSIT_BOX_FACTORY = IPDepositBoxFactory(depositBoxFactory_);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function initialize(address _owner) external initializer {
|
|
25
|
+
__BoringOwnableV2_init(_owner);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
modifier onlyDepositBox() {
|
|
29
|
+
IPDepositBox box = IPDepositBox(msg.sender);
|
|
30
|
+
address owner = box.OWNER();
|
|
31
|
+
uint32 boxId = box.BOX_ID();
|
|
32
|
+
|
|
33
|
+
(address computedBox,,) = DEPOSIT_BOX_FACTORY.computeDepositBox(owner, boxId);
|
|
34
|
+
require(computedBox == address(box), "BridgeFunder: caller is not deposit box");
|
|
35
|
+
_;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function bridge(BridgeData memory $) external onlyDepositBox returns (bytes memory result) {
|
|
39
|
+
require(
|
|
40
|
+
$.bridgeToken != $.feeToken && $.bridgeToken != NATIVE && $.feeToken != NATIVE,
|
|
41
|
+
"BridgeFunder: unsupported token"
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
_transferIn($.bridgeToken, msg.sender, $.bridgeAmount);
|
|
45
|
+
_approveForExtRouter($.bridgeToken, $.bridgeExtRouter, $.bridgeAmount);
|
|
46
|
+
_approveForExtRouter($.feeToken, $.bridgeExtRouter, $.feeAmount);
|
|
47
|
+
|
|
48
|
+
result = $.bridgeExtRouter.functionCall($.bridgeCalldata);
|
|
49
|
+
|
|
50
|
+
_approveForExtRouter($.bridgeToken, $.bridgeExtRouter, 0);
|
|
51
|
+
_approveForExtRouter($.feeToken, $.bridgeExtRouter, 0);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function withdraw(address receiver, address token, uint256 amount) external onlyOwner {
|
|
55
|
+
_transferOut(token, receiver, amount);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function _approveForExtRouter(address token, address extRouter, uint256 amount) internal {
|
|
59
|
+
IERC20(token).forceApprove(extRouter, amount);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
|
|
3
|
+
pragma solidity ^0.8.0;
|
|
4
|
+
|
|
5
|
+
import {OFTAdapterImpl} from "./OFTAdapterImpl.sol";
|
|
6
|
+
import {
|
|
7
|
+
MessagingParams,
|
|
8
|
+
MessagingFee,
|
|
9
|
+
MessagingReceipt
|
|
10
|
+
} from "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol";
|
|
11
|
+
import {IERC20, SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
12
|
+
|
|
13
|
+
// @notice Base OFT contract, without any additional functionality (like RateLimiter).
|
|
14
|
+
// @dev This contract inherits Ownable from OpenZeppelin v4.
|
|
15
|
+
// @dev Sender is set as the contract owner at deployment.
|
|
16
|
+
contract OFTAdapterAltImpl is OFTAdapterImpl {
|
|
17
|
+
using SafeERC20 for IERC20;
|
|
18
|
+
|
|
19
|
+
error MsgValueNotZero(uint256 msgValue);
|
|
20
|
+
error NativeTokenUnavailable();
|
|
21
|
+
|
|
22
|
+
address public immutable nativeToken;
|
|
23
|
+
|
|
24
|
+
constructor(address _token, address _endpoint, address _delegate) OFTAdapterImpl(_token, _endpoint, _delegate) {
|
|
25
|
+
nativeToken = endpoint.nativeToken();
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function _lzSend(
|
|
29
|
+
uint32 _dstEid,
|
|
30
|
+
bytes memory _message,
|
|
31
|
+
bytes memory _options,
|
|
32
|
+
MessagingFee memory _fee,
|
|
33
|
+
address _refundAddress
|
|
34
|
+
) internal override returns (MessagingReceipt memory receipt) {
|
|
35
|
+
// In Alt implementation, msg.value should always be 0 since we use ERC20 tokens for fees
|
|
36
|
+
if (msg.value > 0) revert MsgValueNotZero(msg.value);
|
|
37
|
+
|
|
38
|
+
// Push corresponding fees to the endpoint, any excess is sent back to the _refundAddress from the endpoint.
|
|
39
|
+
_payNative(_fee.nativeFee);
|
|
40
|
+
if (_fee.lzTokenFee > 0) _payLzToken(_fee.lzTokenFee);
|
|
41
|
+
|
|
42
|
+
return endpoint.send(
|
|
43
|
+
MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _fee.lzTokenFee > 0), _refundAddress
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function _payNative(uint256 _nativeFee) internal override returns (uint256 nativeFee) {
|
|
48
|
+
if (nativeToken == address(0)) revert NativeTokenUnavailable();
|
|
49
|
+
|
|
50
|
+
// Pay Native token fee by sending tokens to the endpoint.
|
|
51
|
+
IERC20(nativeToken).safeTransferFrom(msg.sender, address(endpoint), _nativeFee);
|
|
52
|
+
|
|
53
|
+
return _nativeFee;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity ^0.8.19;
|
|
3
|
+
|
|
4
|
+
import {PendleBridgedPrincipalToken} from "./PendleBridgedPrincipalToken.sol";
|
|
5
|
+
import {
|
|
6
|
+
MessagingParams,
|
|
7
|
+
MessagingFee,
|
|
8
|
+
MessagingReceipt
|
|
9
|
+
} from "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol";
|
|
10
|
+
import {IERC20, SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
11
|
+
|
|
12
|
+
contract PendleBridgedPrincipalTokenAlt is PendleBridgedPrincipalToken {
|
|
13
|
+
using SafeERC20 for IERC20;
|
|
14
|
+
|
|
15
|
+
error MsgValueNotZero(uint256 msgValue);
|
|
16
|
+
error NativeTokenUnavailable();
|
|
17
|
+
|
|
18
|
+
address public immutable nativeToken;
|
|
19
|
+
|
|
20
|
+
constructor(
|
|
21
|
+
string memory _name,
|
|
22
|
+
string memory _symbol,
|
|
23
|
+
address _lzEndpoint,
|
|
24
|
+
address _delegate,
|
|
25
|
+
uint256 _expiry,
|
|
26
|
+
uint8 _localDecimals,
|
|
27
|
+
uint8 _sharedDecimals,
|
|
28
|
+
address initialOwner
|
|
29
|
+
)
|
|
30
|
+
PendleBridgedPrincipalToken(
|
|
31
|
+
_name, _symbol, _lzEndpoint, _delegate, _expiry, _localDecimals, _sharedDecimals, initialOwner
|
|
32
|
+
)
|
|
33
|
+
{
|
|
34
|
+
nativeToken = endpoint.nativeToken();
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function _lzSend(
|
|
38
|
+
uint32 _dstEid,
|
|
39
|
+
bytes memory _message,
|
|
40
|
+
bytes memory _options,
|
|
41
|
+
MessagingFee memory _fee,
|
|
42
|
+
address _refundAddress
|
|
43
|
+
) internal override returns (MessagingReceipt memory receipt) {
|
|
44
|
+
// In Alt implementation, msg.value should always be 0 since we use ERC20 tokens for fees
|
|
45
|
+
if (msg.value > 0) revert MsgValueNotZero(msg.value);
|
|
46
|
+
|
|
47
|
+
// Push corresponding fees to the endpoint, any excess is sent back to the _refundAddress from the endpoint.
|
|
48
|
+
_payNative(_fee.nativeFee);
|
|
49
|
+
if (_fee.lzTokenFee > 0) _payLzToken(_fee.lzTokenFee);
|
|
50
|
+
|
|
51
|
+
return endpoint.send(
|
|
52
|
+
MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _fee.lzTokenFee > 0), _refundAddress
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function _payNative(uint256 _nativeFee) internal override returns (uint256 nativeFee) {
|
|
57
|
+
if (nativeToken == address(0)) revert NativeTokenUnavailable();
|
|
58
|
+
|
|
59
|
+
// Pay Native token fee by sending tokens to the endpoint.
|
|
60
|
+
IERC20(nativeToken).safeTransferFrom(msg.sender, address(endpoint), _nativeFee);
|
|
61
|
+
|
|
62
|
+
return _nativeFee;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity ^0.8.30;
|
|
3
|
+
|
|
4
|
+
import {ApprovedCall, IPDepositBox} from "../../interfaces/IPDepositBox.sol";
|
|
5
|
+
import {SwapHubBase} from "./SwapHubBase.sol";
|
|
6
|
+
|
|
7
|
+
contract PendleCrossChainSwapHub is SwapHubBase {
|
|
8
|
+
constructor(address treasury_, address depositBoxFactory_) SwapHubBase(treasury_, depositBoxFactory_) {
|
|
9
|
+
_disableInitializers();
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function initialize(address _owner) external initializer {
|
|
13
|
+
__EIP712_init("Pendle Cross Chain Swap Hub", "1");
|
|
14
|
+
__BoringOwnableV2_init(_owner);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function withdrawToken(WithdrawTokenMessage memory ms, bytes memory sig) external onlyExecutor {
|
|
18
|
+
IPDepositBox box = _checkBoxPermit(ms.permit, hashTypedData(ms), sig);
|
|
19
|
+
_payTreasury(box, ms.token, ms.amountFee);
|
|
20
|
+
_withdrawToken(ms, box);
|
|
21
|
+
|
|
22
|
+
emit WithdrawToken(
|
|
23
|
+
ms.permit.owner,
|
|
24
|
+
ms.permit.boxId,
|
|
25
|
+
ms.permit.requestId,
|
|
26
|
+
ms.permit.nonce,
|
|
27
|
+
ms.token,
|
|
28
|
+
ms.amountWithdraw,
|
|
29
|
+
ms.amountFee
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function bridgeToken(BridgeTokenMessage memory ms, bytes memory sig) external payable onlyExecutor {
|
|
34
|
+
IPDepositBox box = _checkBoxPermit(ms.permit, hashTypedData(ms), sig);
|
|
35
|
+
_payTreasury(box, ms.token, ms.amountFee);
|
|
36
|
+
_bridgeToken(ms, box, msg.value);
|
|
37
|
+
|
|
38
|
+
emit BridgeToken(
|
|
39
|
+
ms.permit.owner,
|
|
40
|
+
ms.permit.boxId,
|
|
41
|
+
ms.permit.requestId,
|
|
42
|
+
ms.permit.nonce,
|
|
43
|
+
ms.bridgeExtRouter,
|
|
44
|
+
ms.token,
|
|
45
|
+
ms.amountBridge,
|
|
46
|
+
ms.amountFee
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function swapToken(SwapTokenMessage memory ms, bytes memory sig) external onlyExecutor {
|
|
51
|
+
IPDepositBox box = _checkBoxPermit(ms.permit, hashTypedData(ms), sig);
|
|
52
|
+
// swapToken does not pay treasury
|
|
53
|
+
|
|
54
|
+
uint256 netTokenReceived = _swapToken(ms, box);
|
|
55
|
+
require(netTokenReceived >= ms.minReceived, InsufficientTokenReceived());
|
|
56
|
+
|
|
57
|
+
emit SwapToken(
|
|
58
|
+
ms.permit.owner,
|
|
59
|
+
ms.permit.boxId,
|
|
60
|
+
ms.permit.requestId,
|
|
61
|
+
ms.permit.nonce,
|
|
62
|
+
ms.tokenSpent,
|
|
63
|
+
ms.amountSpent,
|
|
64
|
+
ms.tokenReceived,
|
|
65
|
+
netTokenReceived
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function _payTreasury(IPDepositBox box, address token, uint256 amount) internal {
|
|
70
|
+
box.withdrawTo(TREASURY, token, amount);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function _withdrawToken(WithdrawTokenMessage memory ms, IPDepositBox box) internal {
|
|
74
|
+
box.withdrawTo(ms.permit.owner, ms.token, ms.amountWithdraw);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function _bridgeToken(BridgeTokenMessage memory ms, IPDepositBox box, uint256 nativeFee) internal {
|
|
78
|
+
ApprovedCall memory call = ApprovedCall({
|
|
79
|
+
token: ms.token,
|
|
80
|
+
amount: ms.amountBridge,
|
|
81
|
+
approveTo: ms.bridgeApprove,
|
|
82
|
+
callTo: ms.bridgeExtRouter,
|
|
83
|
+
data: ms.bridgeCalldata
|
|
84
|
+
});
|
|
85
|
+
box.approveAndCall{value: nativeFee}(call, msg.sender);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function _swapToken(SwapTokenMessage memory ms, IPDepositBox box) internal returns (uint256 rawTokenReceived) {
|
|
89
|
+
ApprovedCall memory call = ApprovedCall({
|
|
90
|
+
token: ms.tokenSpent,
|
|
91
|
+
amount: ms.amountSpent,
|
|
92
|
+
approveTo: ms.swapApprove,
|
|
93
|
+
callTo: ms.swapExtRouter,
|
|
94
|
+
data: ms.swapCalldata
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
uint256 preBalance = _balanceOf(address(box), ms.tokenReceived);
|
|
98
|
+
box.approveAndCall(call, address(box));
|
|
99
|
+
rawTokenReceived = _balanceOf(address(box), ms.tokenReceived) - preBalance;
|
|
100
|
+
}
|
|
101
|
+
}
|