@pendle/core-v2 6.7.1 → 6.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerUpg.sol/PendleGaugeControllerUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerUpg.sol/PendleGaugeControllerUpg.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/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/LiquidityMining/libraries/WeekMath.sol/WeekMath.json +2 -2
- 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/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/PendleMarketFactoryV7Upg.sol/PendleMarketFactoryV7Upg.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarketFactoryV7Upg.sol/PendleMarketFactoryV7Upg.json +2 -2
- package/build/artifacts/contracts/core/Market/PendleMarketV7.sol/PendleMarketV7.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarketV7.sol/PendleMarketV7.json +5 -5
- 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/StandardizedYield/SYUtils.sol/SYUtils.json +2 -2
- package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
- package/build/artifacts/contracts/core/YieldContracts/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 +2 -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/MiniHelpers.sol/MiniHelpers.json +2 -2
- package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.json +2 -2
- package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.json +2 -2
- package/build/artifacts/contracts/core/libraries/math/PMath.sol/PMath.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/math/PMath.sol/PMath.json +2 -2
- package/build/artifacts/contracts/cross-chain/FixedPricePTAMMV2.sol/FixedPricePTAMMV2.dbg.json +1 -1
- package/build/artifacts/contracts/cross-chain/FixedPricePTAMMV2.sol/FixedPricePTAMMV2.json +2 -2
- package/build/artifacts/contracts/cross-chain/OFTPTSwapper.sol/OFTPTSwapper.dbg.json +1 -1
- package/build/artifacts/contracts/cross-chain/OFTPTSwapper.sol/OFTPTSwapper.json +2 -2
- package/build/artifacts/contracts/cross-chain/deposit-box/DepositBox.sol/DepositBox.dbg.json +1 -1
- package/build/artifacts/contracts/cross-chain/deposit-box/DepositBox.sol/DepositBox.json +2 -2
- package/build/artifacts/contracts/cross-chain/deposit-box/DepositBoxFactory.sol/DepositBoxFactory.dbg.json +1 -1
- package/build/artifacts/contracts/cross-chain/deposit-box/DepositBoxFactory.sol/DepositBoxFactory.json +2 -2
- package/build/artifacts/contracts/cross-chain/factory/PendleBridgePTFactory.sol/PendleBridgePTFactory.dbg.json +1 -1
- package/build/artifacts/contracts/cross-chain/factory/PendleBridgePTFactory.sol/PendleBridgePTFactory.json +2 -2
- package/build/artifacts/contracts/cross-chain/funder/BridgeFunder.sol/BridgeFunder.dbg.json +1 -1
- package/build/artifacts/contracts/cross-chain/funder/BridgeFunder.sol/BridgeFunder.json +2 -2
- package/build/artifacts/contracts/cross-chain/oftImpl/hub/OFTAdapterAltImpl.sol/OFTAdapterAltImpl.dbg.json +1 -1
- package/build/artifacts/contracts/cross-chain/oftImpl/hub/OFTAdapterAltImpl.sol/OFTAdapterAltImpl.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/hub/OFTAdapterImpl.sol/OFTAdapterImpl.json +2 -2
- package/build/artifacts/contracts/cross-chain/oftImpl/pendleOft/PendleOFT.sol/PendleOFT.dbg.json +1 -1
- package/build/artifacts/contracts/cross-chain/oftImpl/pendleOft/PendleOFT.sol/PendleOFT.json +2 -2
- package/build/artifacts/contracts/cross-chain/oftImpl/pendleOft/PendleOFTAlt.sol/PendleOFTAlt.dbg.json +1 -1
- package/build/artifacts/contracts/cross-chain/oftImpl/pendleOft/PendleOFTAlt.sol/PendleOFTAlt.json +2 -2
- 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/cross-chain/oftImpl/spoke/PendleBridgedPrincipalTokenAlt.sol/PendleBridgedPrincipalTokenAlt.dbg.json +1 -1
- package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalTokenAlt.sol/PendleBridgedPrincipalTokenAlt.json +2 -2
- package/build/artifacts/contracts/cross-chain/swap-hub/PendleCrossChainSwapHub.sol/PendleCrossChainSwapHub.dbg.json +1 -1
- package/build/artifacts/contracts/cross-chain/swap-hub/PendleCrossChainSwapHub.sol/PendleCrossChainSwapHub.json +2 -2
- package/build/artifacts/contracts/cross-chain/swap-hub/SwapHubBase.sol/SwapHubBase.dbg.json +1 -1
- 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/IMoneyMarket.sol/IMoneyMarket.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IMoneyMarket.sol/IMoneyMarket.json +578 -0
- package/build/artifacts/contracts/interfaces/IMoneyMarket.sol/IMoneyMarketEvents.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IMoneyMarket.sol/IMoneyMarketEvents.json +160 -0
- package/build/artifacts/contracts/interfaces/IMoneyMarketView.sol/IMoneyMarketView.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IMoneyMarketView.sol/IMoneyMarketView.json +238 -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/IPBridgeDataVerifier.sol/IPBridgeDataVerifier.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPBridgeDataVerifier.sol/IPBridgeDataVerifier.json +81 -0
- package/build/artifacts/contracts/interfaces/IPBridgeFunder.sol/IPBridgeFunder.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPBridgePTFactory.sol/IPBridgePTFactory.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/IPCrossChainSwapHub.sol/IPCrossChainSwapHub.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPDepositBox.sol/IPDepositBox.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPDepositBoxFactory.sol/IPDepositBoxFactory.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/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 +1 -1
- package/build/artifacts/contracts/interfaces/IPFixedPricePTAMMV2.sol/IPFixedPricePTAMMV2.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/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/IPLimitRouterCallback.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPLoopPositionBox.sol/IPLoopPositionBox.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPLoopPositionBox.sol/IPLoopPositionBox.json +170 -0
- package/build/artifacts/contracts/interfaces/IPLoopPositionBoxFactory.sol/IPLoopPositionBoxFactory.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPLoopPositionBoxFactory.sol/IPLoopPositionBoxFactory.json +377 -0
- package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/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/IPOFTPTSwapper.sol/IPOFTPTSwapper.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/IPPTLooper.sol/IPPTLooper.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPPTLooper.sol/IPPTLooper.json +2476 -0
- package/build/artifacts/contracts/interfaces/IPPTLooper.sol/IPPTLooperEIP712Types.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPPTLooper.sol/IPPTLooperEIP712Types.json +10 -0
- package/build/artifacts/contracts/interfaces/IPPTLooperView.sol/IPPTLooperView.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPPTLooperView.sol/IPPTLooperView.json +209 -0
- 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/IPPostPtLoopStateChecker.sol/IPPostPtLoopStateChecker.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPPostPtLoopStateChecker.sol/IPPostPtLoopStateChecker.json +29 -0
- 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/IPStaticQuoter.sol/IPStaticQuoter.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPStaticQuoter.sol/IPStaticQuoter.json +55 -0
- 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/PendleLimitRouter.sol/PendleLimitRouter.dbg.json +1 -1
- package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.json +2 -2
- package/build/artifacts/contracts/limit/helpers/MintSyHelper.sol/MintSyHelper.dbg.json +1 -1
- package/build/artifacts/contracts/limit/helpers/NonceManager.sol/NonceManager.dbg.json +1 -1
- package/build/artifacts/contracts/limit/helpers/NonceManager.sol/NonceManager.json +2 -2
- 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/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/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.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 +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/Multicall2.sol/Multicall2.json +2 -2
- 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/PendleExchangeRateOracle.sol/PendleExchangeRateOracle.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/PendleFeeSetter.sol/PendleFeeSetter.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleFeeSetter.sol/PendleFeeSetter.json +2 -2
- 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/PendleMerkleDepositor.sol/PendleMerkleDepositor.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleMerkleDepositor.sol/PendleMerkleDepositor.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/PendleProxyAdmin.sol/PendleProxyAdmin.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleProxyAdmin.sol/PendleProxyAdmin.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/SupplyCapReader.sol/SupplyCapReader.json +2 -2
- 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/exchangeRate/PendleExchangeRateOracleApp.sol/PendleExchangeRateOracleApp.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleApp.sol/PendleExchangeRateOracleApp.json +2 -2
- 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/PendleLinearDiscountOracleWrapper.sol/PendleLinearDiscountOracleWrapper.json +2 -2
- 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/PendleBoringOneracle.sol/PendleBoringOneracle.json +2 -2
- package/build/artifacts/contracts/oracles/internal/PendleBoringSolvBTCOneracle.sol/PendleBoringSolvBTCOneracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/internal/PendleBoringSolvBTCOneracle.sol/PendleBoringSolvBTCOneracle.json +2 -2
- 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/PendleLpLinearDiscountOracle.sol/PendleLpLinearDiscountOracle.json +2 -2
- package/build/artifacts/contracts/oracles/internal/PendleLpLinearDiscountOracleFactory.sol/PendleLpLinearDiscountOracleFactory.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/internal/PendleLpLinearDiscountOracleFactory.sol/PendleLpLinearDiscountOracleFactory.json +2 -2
- package/build/artifacts/contracts/oracles/internal/PendleRedStoneRateOracleAdapter.sol/PendleRedStoneRateOracleAdapter.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/internal/PendleRedStoneRateOracleAdapter.sol/PendleRedStoneRateOracleAdapter.json +2 -2
- 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/PendleSparkLinearDiscountOracle.sol/PendleSparkLinearDiscountOracle.json +2 -2
- 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/pt-looping/BridgeDataVerifier.sol/BridgeDataVerifier.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/BridgeDataVerifier.sol/BridgeDataVerifier.json +405 -0
- package/build/artifacts/contracts/pt-looping/PTLooperBase.sol/PTLooperBase.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/PTLooperBase.sol/PTLooperBase.json +2626 -0
- package/build/artifacts/contracts/pt-looping/PTLooperEIP712TypesEncodeDataLib.sol/PTLooperEIP712TypesEncodeDataLib.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/PTLooperEIP712TypesEncodeDataLib.sol/PTLooperEIP712TypesEncodeDataLib.json +10 -0
- package/build/artifacts/contracts/pt-looping/PendlePTLooper.sol/PendlePTLooper.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/PendlePTLooper.sol/PendlePTLooper.json +2660 -0
- package/build/artifacts/contracts/pt-looping/PendlePTLooperView.sol/PendlePTLooperView.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/PendlePTLooperView.sol/PendlePTLooperView.json +334 -0
- package/build/artifacts/contracts/pt-looping/PostPtLoopStateChecker.sol/PostPtLoopStateChecker.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/PostPtLoopStateChecker.sol/PostPtLoopStateChecker.json +79 -0
- package/build/artifacts/contracts/pt-looping/StaticStableQuoter.sol/StaticStableQuoter.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/StaticStableQuoter.sol/StaticStableQuoter.json +233 -0
- package/build/artifacts/contracts/pt-looping/loop-position-box/LoopPositionBox.sol/LoopPositionBox.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/loop-position-box/LoopPositionBox.sol/LoopPositionBox.json +198 -0
- package/build/artifacts/contracts/pt-looping/loop-position-box/LoopPositionBoxFactory.sol/LoopPositionBoxFactory.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/loop-position-box/LoopPositionBoxFactory.sol/LoopPositionBoxFactory.json +555 -0
- package/build/artifacts/contracts/pt-looping/money-market/BaseMoneyMarket.sol/BaseMoneyMarket.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/BaseMoneyMarket.sol/BaseMoneyMarket.json +604 -0
- package/build/artifacts/contracts/pt-looping/money-market/BaseMoneyMarketView.sol/BaseMoneyMarketView.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/BaseMoneyMarketView.sol/BaseMoneyMarketView.json +264 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/AaveMMPayloadLib.sol/AaveMMPayloadLib.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/AaveMMPayloadLib.sol/AaveMMPayloadLib.json +10 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/AaveMoneyMarket.sol/AaveMoneyMarket.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/AaveMoneyMarket.sol/AaveMoneyMarket.json +659 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/AaveMoneyMarketView.sol/AaveMoneyMarketView.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/AaveMoneyMarketView.sol/AaveMoneyMarketView.json +355 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/dependencies/AaveDataTypes.sol/AaveDataTypes.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/dependencies/AaveDataTypes.sol/AaveDataTypes.json +10 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/dependencies/IAToken.sol/IAToken.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/dependencies/IAToken.sol/IAToken.json +246 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/dependencies/IAaveOracle.sol/IAaveOracle.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/dependencies/IAaveOracle.sol/IAaveOracle.json +120 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/dependencies/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/dependencies/IAaveRewardsController.sol/IAaveRewardsController.json +724 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/dependencies/IPool.sol/IPool.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/dependencies/IPool.sol/IPool.json +1600 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/dependencies/IPoolAddressesProvider.sol/IPoolAddressesProvider.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/dependencies/IPoolAddressesProvider.sol/IPoolAddressesProvider.json +507 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/dependencies/IPoolDataProviderV3.sol/IPoolDataProviderV3.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/dependencies/IPoolDataProviderV3.sol/IPoolDataProviderV3.json +577 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/dependencies/IPriceOracleGetter.sol/IPriceOracleGetter.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/dependencies/IPriceOracleGetter.sol/IPriceOracleGetter.json +56 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/morpho/MorphoBlueMoneyMarket.sol/MorphoBlueMoneyMarket.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/morpho/MorphoBlueMoneyMarket.sol/MorphoBlueMoneyMarket.json +633 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/morpho/MorphoBlueMoneyMarketView.sol/MorphoBlueMoneyMarketView.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/morpho/MorphoBlueMoneyMarketView.sol/MorphoBlueMoneyMarketView.json +298 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/morpho/dependencies/IMorpho.sol/IIrm.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/morpho/dependencies/IMorpho.sol/IIrm.json +234 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/morpho/dependencies/IMorpho.sol/IMorpho.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/morpho/dependencies/IMorpho.sol/IMorpho.json +1033 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/morpho/dependencies/IMorphoOracle.sol/IMorphoOracle.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/morpho/dependencies/IMorphoOracle.sol/IMorphoOracle.json +24 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/morpho/dependencies/MathLib.sol/MathLib.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/morpho/dependencies/MathLib.sol/MathLib.json +10 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/morpho/dependencies/SharesMathLib.sol/SharesMathLib.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/morpho/dependencies/SharesMathLib.sol/SharesMathLib.json +10 -0
- package/build/artifacts/contracts/pt-looping/vendor/bungee/IBungeeInbox.sol/IBungeeSORInbox.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/vendor/bungee/IBungeeInbox.sol/IBungeeSORInbox.json +143 -0
- 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/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/interfaces/IMoneyMarket.sol +60 -0
- package/contracts/interfaces/IMoneyMarketView.sol +42 -0
- package/contracts/interfaces/IPBridgeDataVerifier.sol +23 -0
- package/contracts/interfaces/IPLoopPositionBox.sol +38 -0
- package/contracts/interfaces/IPLoopPositionBoxFactory.sol +37 -0
- package/contracts/interfaces/IPPTLooper.sol +301 -0
- package/contracts/interfaces/IPPTLooperView.sol +35 -0
- package/contracts/interfaces/IPPostPtLoopStateChecker.sol +8 -0
- package/contracts/interfaces/IPStaticQuoter.sol +13 -0
- package/contracts/pt-looping/BridgeDataVerifier.sol +158 -0
- package/contracts/pt-looping/PTLooperBase.sol +236 -0
- package/contracts/pt-looping/PTLooperEIP712TypesEncodeDataLib.sol +210 -0
- package/contracts/pt-looping/PendlePTLooper.sol +318 -0
- package/contracts/pt-looping/PendlePTLooperView.sol +42 -0
- package/contracts/pt-looping/PostPtLoopStateChecker.sol +79 -0
- package/contracts/pt-looping/StaticStableQuoter.sol +46 -0
- package/contracts/pt-looping/loop-position-box/LoopPositionBox.sol +85 -0
- package/contracts/pt-looping/loop-position-box/LoopPositionBoxFactory.sol +123 -0
- package/contracts/pt-looping/money-market/BaseMoneyMarket.sol +129 -0
- package/contracts/pt-looping/money-market/BaseMoneyMarketView.sol +123 -0
- package/contracts/pt-looping/money-market/implementations/aave/AaveMMPayloadLib.sol +16 -0
- package/contracts/pt-looping/money-market/implementations/aave/AaveMoneyMarket.sol +123 -0
- package/contracts/pt-looping/money-market/implementations/aave/AaveMoneyMarketView.sol +200 -0
- package/contracts/pt-looping/money-market/implementations/aave/dependencies/AaveDataTypes.sol +259 -0
- package/contracts/pt-looping/money-market/implementations/aave/dependencies/IAToken.sol +8 -0
- package/contracts/pt-looping/money-market/implementations/aave/dependencies/IAaveOracle.sol +33 -0
- package/contracts/pt-looping/money-market/implementations/aave/dependencies/IAaveRewardsController.sol +68 -0
- package/contracts/pt-looping/money-market/implementations/aave/dependencies/IPool.sol +664 -0
- package/contracts/pt-looping/money-market/implementations/aave/dependencies/IPoolAddressesProvider.sol +227 -0
- package/contracts/pt-looping/money-market/implementations/aave/dependencies/IPoolDataProviderV3.sol +228 -0
- package/contracts/pt-looping/money-market/implementations/aave/dependencies/IPriceOracleGetter.sol +32 -0
- package/contracts/pt-looping/money-market/implementations/morpho/MorphoBlueMoneyMarket.sol +123 -0
- package/contracts/pt-looping/money-market/implementations/morpho/MorphoBlueMoneyMarketView.sol +66 -0
- package/contracts/pt-looping/money-market/implementations/morpho/dependencies/IMorpho.sol +300 -0
- package/contracts/pt-looping/money-market/implementations/morpho/dependencies/IMorphoOracle.sol +14 -0
- package/contracts/pt-looping/money-market/implementations/morpho/dependencies/MathLib.sol +35 -0
- package/contracts/pt-looping/money-market/implementations/morpho/dependencies/SharesMathLib.sol +42 -0
- package/contracts/pt-looping/vendor/bungee/IBungeeInbox.sol +36 -0
- package/contracts/router/swap-aggregator/OKXScaleHelper.sol +4 -1
- package/deployments/1-core.json +6 -1
- package/deployments/4217-core.json +3 -0
- package/deployments/9745-core.json +4 -1
- package/package.json +2 -1
- package/typechain-types/AaveMoneyMarket.ts +620 -0
- package/typechain-types/AaveMoneyMarketView.ts +447 -0
- package/typechain-types/BaseMoneyMarket.ts +573 -0
- package/typechain-types/BaseMoneyMarketView.ts +362 -0
- package/typechain-types/BridgeDataVerifier.ts +564 -0
- package/typechain-types/IAToken.ts +358 -0
- package/typechain-types/IAaveOracle.ts +235 -0
- package/typechain-types/IAaveRewardsController.ts +1186 -0
- package/typechain-types/IBungeeSORInbox.ts +192 -0
- package/typechain-types/IDefaultReserveInterestRateStrategyV3.ts +431 -0
- package/typechain-types/IDefaultReserveInterestRateStrategyV31.ts +606 -0
- package/typechain-types/IDssPsm.ts +194 -0
- package/typechain-types/IERC4626.ts +864 -0
- package/typechain-types/IFlashLoanReceiver.ts +125 -0
- package/typechain-types/IIrm.ts +260 -0
- package/typechain-types/IMoneyMarket.ts +542 -0
- package/typechain-types/IMoneyMarketEvents.ts +171 -0
- package/typechain-types/IMoneyMarketView.ts +331 -0
- package/typechain-types/IMorpho.ts +1147 -0
- package/typechain-types/IMorphoOracle.ts +81 -0
- package/typechain-types/IMulticall.ts +117 -0
- package/typechain-types/IPBridgeDataVerifier.ts +148 -0
- package/typechain-types/IPLoopPositionBox.ts +285 -0
- package/typechain-types/IPLoopPositionBoxFactory.ts +400 -0
- package/typechain-types/IPPTLooper.ts +1513 -0
- package/typechain-types/IPPTLooperView.ts +273 -0
- package/typechain-types/IPPostPtLoopStateChecker.ts +106 -0
- package/typechain-types/IPStaticQuoter.ts +132 -0
- package/typechain-types/IPool.ts +2220 -0
- package/typechain-types/IPoolAddressesProvider.ts +789 -0
- package/typechain-types/IPoolDataProviderV3.ts +933 -0
- package/typechain-types/IPoolDataProviderV31.ts +933 -0
- package/typechain-types/IPot.ts +181 -0
- package/typechain-types/IPriceOracleGetter.ts +133 -0
- package/typechain-types/ISDAI.ts +877 -0
- package/typechain-types/LoopPositionBox.ts +296 -0
- package/typechain-types/LoopPositionBoxFactory.ts +575 -0
- package/typechain-types/MorphoBlueMoneyMarket.ts +586 -0
- package/typechain-types/MorphoBlueMoneyMarketView.ts +375 -0
- package/typechain-types/Multicall.ts +117 -0
- package/typechain-types/PTLooperBase.ts +1722 -0
- package/typechain-types/PTLooperView.ts +618 -0
- package/typechain-types/PendlePTLooper.ts +1747 -0
- package/typechain-types/PendlePTLooperView.ts +453 -0
- package/typechain-types/PostPtLoopStateChecker.ts +151 -0
- package/typechain-types/StaticStableQuoter.ts +395 -0
- package/typechain-types/UUPSUpgradeable.ts +0 -9
- package/typechain-types/factories/AaveMoneyMarketView__factory.ts +428 -0
- package/typechain-types/factories/AaveMoneyMarket__factory.ts +724 -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/AddressCast__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/BaseMoneyMarketView__factory.ts +279 -0
- package/typechain-types/factories/BaseMoneyMarket__factory.ts +619 -0
- package/typechain-types/factories/BaseSplitCodeFactoryContract__factory.ts +1 -1
- package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +1 -1
- package/typechain-types/factories/BoringPYUsdChainlinkAssetOracle__factory.ts +1 -1
- package/typechain-types/factories/BoringPYUsdChainlinkSYOracle__factory.ts +1 -1
- package/typechain-types/factories/BridgeDataVerifier__factory.ts +463 -0
- package/typechain-types/factories/BridgeFunder__factory.ts +1 -1
- package/typechain-types/factories/DVNOptions__factory.ts +1 -1
- package/typechain-types/factories/DepositBoxFactory__factory.ts +1 -1
- package/typechain-types/factories/DepositBox__factory.ts +1 -1
- package/typechain-types/factories/ERC1967Proxy__factory.ts +1 -1
- package/typechain-types/factories/ERC20Upgradeable__factory.ts +1 -1
- package/typechain-types/factories/ERC20__factory.ts +1 -1
- package/typechain-types/factories/EmptyUUPS__factory.ts +1 -1
- package/typechain-types/factories/Errors__factory.ts +1 -1
- package/typechain-types/factories/ExchangeRateMsgCodec__factory.ts +1 -1
- package/typechain-types/factories/ExecutorOptions__factory.ts +1 -1
- package/typechain-types/factories/ExpiredLpPtRedeemer__factory.ts +1 -1
- package/typechain-types/factories/FixedPricePTAMMV2__factory.ts +1 -1
- package/typechain-types/factories/FixedPricePTAMM__factory.ts +1 -1
- package/typechain-types/factories/IAToken__factory.ts +258 -0
- package/typechain-types/factories/IAaveOracle__factory.ts +132 -0
- package/typechain-types/factories/IAaveRewardsController__factory.ts +743 -0
- package/typechain-types/factories/IBungeeSORInbox__factory.ts +158 -0
- package/typechain-types/factories/IDefaultReserveInterestRateStrategyV31__factory.ts +441 -0
- package/typechain-types/factories/IDefaultReserveInterestRateStrategyV3__factory.ts +278 -0
- package/typechain-types/factories/IDssPsm__factory.ts +122 -0
- package/typechain-types/factories/IERC4626__factory.ts +635 -0
- package/typechain-types/factories/IFlashLoanReceiver__factory.ts +65 -0
- package/typechain-types/factories/IIrm__factory.ts +243 -0
- package/typechain-types/factories/IMoneyMarketEvents__factory.ts +175 -0
- package/typechain-types/factories/IMoneyMarketView__factory.ts +253 -0
- package/typechain-types/factories/IMoneyMarket__factory.ts +590 -0
- package/typechain-types/factories/IMorphoOracle__factory.ts +36 -0
- package/typechain-types/factories/IMorpho__factory.ts +1045 -0
- package/typechain-types/factories/IMulticall__factory.ts +66 -0
- package/typechain-types/factories/IPBridgeDataVerifier__factory.ts +100 -0
- package/typechain-types/factories/IPLoopPositionBoxFactory__factory.ts +396 -0
- package/typechain-types/factories/IPLoopPositionBox__factory.ts +185 -0
- package/typechain-types/factories/IPPTLooperView__factory.ts +224 -0
- package/typechain-types/factories/IPPTLooper__factory.ts +2493 -0
- package/typechain-types/factories/IPPostPtLoopStateChecker__factory.ts +48 -0
- package/typechain-types/factories/IPStaticQuoter__factory.ts +70 -0
- package/typechain-types/factories/IPoolAddressesProvider__factory.ts +526 -0
- package/typechain-types/factories/IPoolDataProviderV31__factory.ts +596 -0
- package/typechain-types/factories/IPoolDataProviderV3__factory.ts +592 -0
- package/typechain-types/factories/IPool__factory.ts +1609 -0
- package/typechain-types/factories/IPot__factory.ts +98 -0
- package/typechain-types/factories/IPriceOracleGetter__factory.ts +71 -0
- package/typechain-types/factories/ISDAI__factory.ts +645 -0
- package/typechain-types/factories/LegacyNFTHelper__factory.ts +1 -1
- package/typechain-types/factories/LimitBackendHelperV2__factory.ts +1 -1
- package/typechain-types/factories/LoopPositionBoxFactory__factory.ts +624 -0
- package/typechain-types/factories/LoopPositionBox__factory.ts +253 -0
- package/typechain-types/factories/MarketSweed__factory.ts +1 -1
- package/typechain-types/factories/MorphoBlueMoneyMarketView__factory.ts +371 -0
- package/typechain-types/factories/MorphoBlueMoneyMarket__factory.ts +698 -0
- package/typechain-types/factories/Multicall2__factory.ts +1 -1
- package/typechain-types/factories/Multicall__factory.ts +104 -0
- package/typechain-types/factories/NonceManager__factory.ts +1 -1
- package/typechain-types/factories/OFTAdapterAltImpl__factory.ts +1 -1
- package/typechain-types/factories/OFTAdapterImpl__factory.ts +1 -1
- package/typechain-types/factories/OFTAdapter__factory.ts +0 -11
- package/typechain-types/factories/OFTPTSwapper__factory.ts +1 -1
- package/typechain-types/factories/OptionsBuilder__factory.ts +1 -1
- package/typechain-types/factories/OracleLib__factory.ts +1 -1
- package/typechain-types/factories/PTLooperBase__factory.ts +2643 -0
- package/typechain-types/factories/PTLooperView__factory.ts +467 -0
- package/typechain-types/factories/PendleAPIFeeDepositor__factory.ts +1 -1
- package/typechain-types/factories/PendleBoringOneracle__factory.ts +1 -1
- package/typechain-types/factories/PendleBoringSolvBTCOneracle__factory.ts +1 -1
- package/typechain-types/factories/PendleBridgePTFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleBridgedPrincipalTokenAlt__factory.ts +1 -1
- 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/PendleCrossChainSwapHub__factory.ts +1 -1
- package/typechain-types/factories/PendleERC20__factory.ts +1 -1
- package/typechain-types/factories/PendleExchangeRateOracleApp__factory.ts +1 -1
- 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/PendleFeeSetter__factory.ts +1 -1
- package/typechain-types/factories/PendleGaugeControllerUpg__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/PendleLinearDiscountOracleWrapper__factory.ts +1 -1
- package/typechain-types/factories/PendleLpLinearDiscountOracleFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleLpLinearDiscountOracle__factory.ts +1 -1
- package/typechain-types/factories/PendleMarketFactoryV7Upg__factory.ts +1 -1
- package/typechain-types/factories/PendleMarketV7__factory.ts +1 -1
- package/typechain-types/factories/PendleMerkleDepositor__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/PendleOFTAlt__factory.ts +1 -1
- package/typechain-types/factories/PendleOFT__factory.ts +1 -1
- package/typechain-types/factories/PendleOffchainStorage__factory.ts +1 -1
- package/typechain-types/factories/PendlePTLooperView__factory.ts +392 -0
- package/typechain-types/factories/PendlePTLooper__factory.ts +2734 -0
- 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/PendleProxyAdmin__factory.ts +1 -1
- package/typechain-types/factories/PendleRedStoneRateOracleAdapter__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/PendleSparkLinearDiscountOracle__factory.ts +1 -1
- package/typechain-types/factories/PendleSwapHelper__factory.ts +1 -1
- package/typechain-types/factories/PendleSwap__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/PostPtLoopStateChecker__factory.ts +141 -0
- package/typechain-types/factories/ProxyAdmin__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/StakedPendle__factory.ts +1 -1
- package/typechain-types/factories/StaticStableQuoter__factory.ts +286 -0
- package/typechain-types/factories/SupplyCapReader__factory.ts +1 -1
- package/typechain-types/factories/TransparentUpgradeableProxy__factory.ts +1 -1
- package/typechain-types/factories/UUPSUpgradeable__factory.ts +0 -13
- package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
- package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
- package/typechain-types/hardhat.d.ts +360 -0
- package/typechain-types/index.ts +80 -0
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity ^0.8.30;
|
|
3
|
+
|
|
4
|
+
import {PMath} from "../core/libraries/math/PMath.sol";
|
|
5
|
+
import {MarketCtx, createMarketCtx} from "../interfaces/IMoneyMarket.sol";
|
|
6
|
+
import {ApprovedCall, BoxData, IPLoopPositionBox} from "../interfaces/IPLoopPositionBox.sol";
|
|
7
|
+
import {PTLooperBase} from "./PTLooperBase.sol";
|
|
8
|
+
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
9
|
+
import {IPPrincipalToken} from "../interfaces/IPPrincipalToken.sol";
|
|
10
|
+
import {IPPostPtLoopStateChecker} from "../interfaces/IPPostPtLoopStateChecker.sol";
|
|
11
|
+
|
|
12
|
+
contract PendlePTLooper is PTLooperBase {
|
|
13
|
+
using PMath for uint256;
|
|
14
|
+
|
|
15
|
+
IPPostPtLoopStateChecker public immutable POST_LOOP_STATE_CHECKER;
|
|
16
|
+
|
|
17
|
+
constructor(address treasury, address positionBoxFactory, address postStateChecker)
|
|
18
|
+
PTLooperBase(treasury, positionBoxFactory)
|
|
19
|
+
{
|
|
20
|
+
_disableInitializers();
|
|
21
|
+
POST_LOOP_STATE_CHECKER = IPPostPtLoopStateChecker(postStateChecker);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function initialize(address _owner) external initializer {
|
|
25
|
+
__EIP712_init("Pendle PT Looper", "1");
|
|
26
|
+
__BoringOwnableV2_init(_owner);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/// @dev `requestHash` must match the currently-open session — caller proves *which* session
|
|
30
|
+
/// is being closed, not blindly clearing the slot.
|
|
31
|
+
function terminateSession(address owner, bytes32 boxId, bytes32 requestHash)
|
|
32
|
+
external
|
|
33
|
+
onlyExecutorOrBoxOwner(owner)
|
|
34
|
+
{
|
|
35
|
+
UserRequestInfo storage userReq = _userRequest[owner][boxId];
|
|
36
|
+
require(userReq.requestHash != bytes32(0), "PTLooper: no open session");
|
|
37
|
+
require(userReq.requestHash == requestHash, "PTLooper: requestHash mismatch");
|
|
38
|
+
|
|
39
|
+
uint32 newSessionNonce = ++userReq.sessionNonce;
|
|
40
|
+
delete userReq.requestHash;
|
|
41
|
+
|
|
42
|
+
emit SessionTerminated(owner, boxId, requestHash, newSessionNonce);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function increaseLoopPosition(
|
|
46
|
+
IncreasePositionMessage memory ms,
|
|
47
|
+
bytes memory proposerSig,
|
|
48
|
+
IncreasePositionRequest memory req,
|
|
49
|
+
bytes memory ownerSigIfFirstCall
|
|
50
|
+
) external payable onlyExecutor {
|
|
51
|
+
(Session memory s, bytes32 requestHash) = _ensureSessionAndAuth(ms, req, proposerSig, ownerSigIfFirstCall);
|
|
52
|
+
|
|
53
|
+
uint256 preInBalance;
|
|
54
|
+
uint256 netPtToMM;
|
|
55
|
+
uint256 postDebtBal;
|
|
56
|
+
|
|
57
|
+
if (_onHub(s.bd)) {
|
|
58
|
+
(preInBalance, netPtToMM) = _runHubIncrease(ms, req, s);
|
|
59
|
+
} else {
|
|
60
|
+
netPtToMM = _boxBal(s.box, s.bd.spokePt);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
if (_onSpoke(s.bd)) {
|
|
64
|
+
postDebtBal = _runSpokeIncrease(ms, req, s, netPtToMM);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
POST_LOOP_STATE_CHECKER.check(s.box, ms.postStateCheckData);
|
|
68
|
+
|
|
69
|
+
emit PositionIncreased(
|
|
70
|
+
ms.permit.owner, ms.permit.boxId, requestHash, ms.permit.nonce, preInBalance, netPtToMM, postDebtBal
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
function _runHubIncrease(IncreasePositionMessage memory ms, IncreasePositionRequest memory req, Session memory s)
|
|
75
|
+
internal
|
|
76
|
+
returns (uint256 preInBalance, uint256 netPtToMM)
|
|
77
|
+
{
|
|
78
|
+
(address tokenIn, uint256 minSwapRate) = ms.permit.nonce == 0
|
|
79
|
+
? (req.initTokenIn, req.initMinToPtSwapRate)
|
|
80
|
+
: (s.bd.hubDebtToken, req.minDebtToPtSwapRate);
|
|
81
|
+
|
|
82
|
+
preInBalance = _boxBal(s.box, tokenIn);
|
|
83
|
+
|
|
84
|
+
require(ms.fee <= preInBalance.mulDown(req.maxFeeRate), "PTLooper: fee exceeds maxFeeRate");
|
|
85
|
+
_boxWithdraw(s.box, TREASURY, tokenIn, ms.fee);
|
|
86
|
+
|
|
87
|
+
uint256 netIn = preInBalance - ms.fee;
|
|
88
|
+
|
|
89
|
+
uint256 netPtSwappedOut;
|
|
90
|
+
(netPtToMM, netPtSwappedOut) = _boxSwapToken(s.box, tokenIn, netIn, s.bd.hubPt, minSwapRate, ms.swap);
|
|
91
|
+
if (req.isZeroPriceImpact) {
|
|
92
|
+
_boxWithdraw(s.box, ms.permit.owner, IPPrincipalToken(s.bd.hubPt).YT(), netPtSwappedOut);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
if (_isCrossChain(s.bd)) {
|
|
96
|
+
_boxBridgeToken(s, ms.bridge, s.bd.hubPt, netPtToMM, s.bd.spokePt, req.header.swapBridgeSlippage, false);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
function _runSpokeIncrease(
|
|
101
|
+
IncreasePositionMessage memory ms,
|
|
102
|
+
IncreasePositionRequest memory req,
|
|
103
|
+
Session memory s,
|
|
104
|
+
uint256 netPtToMM
|
|
105
|
+
) internal returns (uint256 postDebtBal) {
|
|
106
|
+
_lendBorrowWithLTV(req, s, netPtToMM, ms.amountDebtBorrowed);
|
|
107
|
+
|
|
108
|
+
postDebtBal = _boxBal(s.box, s.bd.spokeDebtToken);
|
|
109
|
+
if (_isCrossChain(s.bd)) {
|
|
110
|
+
_boxBridgeToken(
|
|
111
|
+
s, ms.bridge, s.bd.spokeDebtToken, postDebtBal, s.bd.hubDebtToken, req.header.swapBridgeSlippage, false
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
function decreaseLoopPosition(
|
|
117
|
+
DecreasePositionMessage memory ms,
|
|
118
|
+
bytes memory proposerSig,
|
|
119
|
+
DecreasePositionRequest memory req,
|
|
120
|
+
bytes memory ownerSigIfFirstCall
|
|
121
|
+
) external payable onlyExecutor {
|
|
122
|
+
(Session memory s, bytes32 requestHash) = _ensureSessionAndAuth(ms, req, proposerSig, ownerSigIfFirstCall);
|
|
123
|
+
|
|
124
|
+
uint256 preDebtBal;
|
|
125
|
+
uint256 netPtToSwap;
|
|
126
|
+
uint256 postDebtBal;
|
|
127
|
+
|
|
128
|
+
if (_onSpoke(s.bd)) {
|
|
129
|
+
(preDebtBal, netPtToSwap) = _runSpokeDecrease(ms, req, s);
|
|
130
|
+
} else {
|
|
131
|
+
netPtToSwap = _boxBal(s.box, s.bd.hubPt);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
if (_onHub(s.bd)) {
|
|
135
|
+
postDebtBal = _runHubDecrease(ms, req, s, netPtToSwap);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
POST_LOOP_STATE_CHECKER.check(s.box, ms.postStateCheckData);
|
|
139
|
+
|
|
140
|
+
emit PositionDecreased(
|
|
141
|
+
ms.permit.owner, ms.permit.boxId, requestHash, ms.permit.nonce, preDebtBal, netPtToSwap, postDebtBal
|
|
142
|
+
);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
function _runSpokeDecrease(DecreasePositionMessage memory ms, DecreasePositionRequest memory req, Session memory s)
|
|
146
|
+
internal
|
|
147
|
+
returns (uint256 preDebtBal, uint256 netPtToSwap)
|
|
148
|
+
{
|
|
149
|
+
preDebtBal = _boxBal(s.box, s.bd.spokeDebtToken);
|
|
150
|
+
_repayWithdrawWithLTV(req, s, preDebtBal, ms.amountPtWithdrawn);
|
|
151
|
+
|
|
152
|
+
netPtToSwap = _boxBal(s.box, s.bd.spokePt);
|
|
153
|
+
if (_isCrossChain(s.bd)) {
|
|
154
|
+
_boxBridgeToken(s, ms.bridge, s.bd.spokePt, netPtToSwap, s.bd.hubPt, req.header.swapBridgeSlippage, false);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
function _runHubDecrease(
|
|
159
|
+
DecreasePositionMessage memory ms,
|
|
160
|
+
DecreasePositionRequest memory req,
|
|
161
|
+
Session memory s,
|
|
162
|
+
uint256 netPtToSwap
|
|
163
|
+
) internal returns (uint256 postDebtBal) {
|
|
164
|
+
(postDebtBal,) = _boxSwapToken(
|
|
165
|
+
s.box, s.bd.hubPt, netPtToSwap, s.bd.hubDebtToken, req.minPtToDebtSwapRate, ms.swap
|
|
166
|
+
);
|
|
167
|
+
|
|
168
|
+
if (_isCrossChain(s.bd)) {
|
|
169
|
+
_boxBridgeToken(
|
|
170
|
+
s, ms.bridge, s.bd.hubDebtToken, postDebtBal, s.bd.spokeDebtToken, req.header.swapBridgeSlippage, false
|
|
171
|
+
);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
function swapBridgeWithdrawAll(
|
|
176
|
+
SwapBridgeWithdrawAllMessage memory ms,
|
|
177
|
+
bytes memory proposerSig,
|
|
178
|
+
SwapBridgeWithdrawAllRequest memory req,
|
|
179
|
+
bytes memory ownerSigIfFirstCall
|
|
180
|
+
) external payable onlyExecutor {
|
|
181
|
+
(Session memory s, bytes32 requestHash) = _ensureSessionAndAuth(ms, req, proposerSig, ownerSigIfFirstCall);
|
|
182
|
+
|
|
183
|
+
address tokenOutHere = _onHub(s.bd) ? req.hubTokenOut : req.dstTokenOut;
|
|
184
|
+
|
|
185
|
+
uint256 postBal;
|
|
186
|
+
{
|
|
187
|
+
address tokenIn = _debtTokenHere(s.bd);
|
|
188
|
+
(postBal,) = _boxSwapToken(s.box, tokenIn, _boxBal(s.box, tokenIn), tokenOutHere, 0, ms.swap);
|
|
189
|
+
}
|
|
190
|
+
require(postBal >= req.minTokenWithdrawn, "PTLooper: insufficient token out");
|
|
191
|
+
|
|
192
|
+
uint32 destChainId = req.receiveOnSpoke ? s.bd.spokeChainId : s.bd.hubChainId;
|
|
193
|
+
if (destChainId != block.chainid) {
|
|
194
|
+
_boxBridgeToken(s, ms.bridge, tokenOutHere, postBal, req.dstTokenOut, req.header.swapBridgeSlippage, false);
|
|
195
|
+
} else {
|
|
196
|
+
_boxWithdraw(s.box, ms.permit.owner, tokenOutHere, postBal);
|
|
197
|
+
emit Withdrawn(ms.permit.owner, ms.permit.boxId, requestHash, ms.permit.nonce, tokenOutHere, postBal);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
POST_LOOP_STATE_CHECKER.check(s.box, ms.postStateCheckData);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/// @param tokenInBal the box's `tokenIn` whole balance (`_boxBal(box, tokenIn)`) right **before** this function is called.
|
|
204
|
+
/// @return postTokenOutBal the box's `tokenOut` whole balance (`_boxBal(box, tokenOut)`) right **after** this function is called.
|
|
205
|
+
/// @return netSwappedOut the net amount of `tokenOut` swapped. If no swap occurs, returns 0.
|
|
206
|
+
/// @dev `minSwapRate` check is performed only when an actual swap occurs.
|
|
207
|
+
function _boxSwapToken(
|
|
208
|
+
IPLoopPositionBox box,
|
|
209
|
+
address tokenIn,
|
|
210
|
+
uint256 tokenInBal,
|
|
211
|
+
address tokenOut,
|
|
212
|
+
uint256 minSwapRate,
|
|
213
|
+
BoxApprovedCall memory swap
|
|
214
|
+
) internal returns (uint256 postTokenOutBal, uint256 netSwappedOut) {
|
|
215
|
+
if (tokenIn == tokenOut) {
|
|
216
|
+
return (tokenInBal, 0);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
uint256 preTokenOutBal = _boxBal(box, tokenOut);
|
|
220
|
+
if (swap.extRouter == address(0)) {
|
|
221
|
+
return (preTokenOutBal, 0);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
box.approveAndCall(
|
|
225
|
+
ApprovedCall({ //
|
|
226
|
+
token: tokenIn,
|
|
227
|
+
amount: tokenInBal,
|
|
228
|
+
approveTo: swap.approve,
|
|
229
|
+
callTo: swap.extRouter,
|
|
230
|
+
data: swap.callData
|
|
231
|
+
}),
|
|
232
|
+
address(box)
|
|
233
|
+
);
|
|
234
|
+
postTokenOutBal = _boxBal(box, tokenOut);
|
|
235
|
+
netSwappedOut = postTokenOutBal - preTokenOutBal;
|
|
236
|
+
|
|
237
|
+
require(netSwappedOut * PMath.ONE >= tokenInBal * minSwapRate, "PTLooper: swap below minSwapRate");
|
|
238
|
+
emit TokenSwapped(box, tokenIn, tokenInBal, tokenOut, netSwappedOut);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/// @notice Only bridge between hubChain and spokeChain.
|
|
242
|
+
function _boxBridgeToken(Session memory, BridgeData memory, address, uint256, address, uint256, bool)
|
|
243
|
+
internal
|
|
244
|
+
pure
|
|
245
|
+
{
|
|
246
|
+
revert("PTLooper: bridging not supported");
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
function _boxBal(IPLoopPositionBox box, address token) internal view returns (uint256) {
|
|
250
|
+
return _balanceOf(address(box), token);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
function _boxWithdraw(IPLoopPositionBox box, address to, address token, uint256 amount) internal {
|
|
254
|
+
box.withdrawTo(to, token, amount);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
function _onHub(BoxData memory bd) internal view returns (bool) {
|
|
258
|
+
return bd.hubChainId == block.chainid;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
function _onSpoke(BoxData memory bd) internal view returns (bool) {
|
|
262
|
+
return bd.spokeChainId == block.chainid;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
function _isCrossChain(BoxData memory bd) internal pure returns (bool) {
|
|
266
|
+
return bd.hubChainId != bd.spokeChainId;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
function _debtTokenHere(BoxData memory bd) internal view returns (address) {
|
|
270
|
+
if (_onHub(bd)) return bd.hubDebtToken;
|
|
271
|
+
if (_onSpoke(bd)) return bd.spokeDebtToken;
|
|
272
|
+
revert("PTLooper: unsupported chainid");
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
function _ltvCheck(uint256 mmPtBal, uint256 mmDebtBal, uint256 mmOraclePtDebtRate, uint256 maxLTV) internal pure {
|
|
276
|
+
require(mmDebtBal <= mmPtBal.mulDown(mmOraclePtDebtRate).mulDown(maxLTV), "PTLooper: maxLTV exceeded");
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
function _lendBorrowWithLTV(IncreasePositionRequest memory req, Session memory s, uint256 ptIn, uint256 debtOut)
|
|
280
|
+
internal
|
|
281
|
+
{
|
|
282
|
+
MarketCtx memory ctx = _marketCtx(s);
|
|
283
|
+
(uint256 netLent, uint256 mmPtBal) = s.spokeMM.lend(ctx, ptIn);
|
|
284
|
+
(uint256 netBorrowed, uint256 mmDebtBal) = s.spokeMM.borrow(ctx, debtOut);
|
|
285
|
+
uint256 rate = s.spokeMM.oraclePtDebtRate(ctx);
|
|
286
|
+
_ltvCheck(mmPtBal, mmDebtBal, rate, req.postBorrowMaxLTV);
|
|
287
|
+
emit MoneyMarketLentThenBorrowed(s.box, netLent, netBorrowed);
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
function _repayWithdrawWithLTV(DecreasePositionRequest memory req, Session memory s, uint256 debtIn, uint256 ptOut)
|
|
291
|
+
internal
|
|
292
|
+
{
|
|
293
|
+
MarketCtx memory ctx = _marketCtx(s);
|
|
294
|
+
(uint256 netRepaid, uint256 mmDebtBal) = s.spokeMM.repay(ctx, debtIn);
|
|
295
|
+
(uint256 netWithdrawn, uint256 mmPtBal) = s.spokeMM.withdraw(ctx, ptOut);
|
|
296
|
+
uint256 rate = s.spokeMM.oraclePtDebtRate(ctx);
|
|
297
|
+
_ltvCheck(mmPtBal, mmDebtBal, rate, req.postWithdrawMaxLTV);
|
|
298
|
+
emit MoneyMarketRepaidThenWithdrawn(s.box, netRepaid, netWithdrawn);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
function claimMMRewards(
|
|
302
|
+
ClaimMMRewardsMessage memory ms,
|
|
303
|
+
bytes memory proposerSig,
|
|
304
|
+
ClaimMMRewardsRequest memory req,
|
|
305
|
+
bytes memory ownerSigIfFirstCall
|
|
306
|
+
) external onlyExecutor {
|
|
307
|
+
(Session memory s, bytes32 requestHash) = _ensureSessionAndAuth(ms, req, proposerSig, ownerSigIfFirstCall);
|
|
308
|
+
uint256[] memory claimedAmounts =
|
|
309
|
+
s.spokeMM.claimRewards(_marketCtx(s), req.extRewardController, req.data, req.rewardTokens);
|
|
310
|
+
emit RewardsClaimed(
|
|
311
|
+
ms.permit.owner, ms.permit.boxId, requestHash, ms.permit.nonce, req.rewardTokens, claimedAmounts
|
|
312
|
+
);
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
function _marketCtx(Session memory s) internal pure returns (MarketCtx memory) {
|
|
316
|
+
return createMarketCtx(s.box, s.bd);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
//SPDX-License-Identifier: BUSL-1.1
|
|
2
|
+
pragma solidity ^0.8.20;
|
|
3
|
+
|
|
4
|
+
import {IPLoopPositionBoxFactory} from "../interfaces/IPLoopPositionBoxFactory.sol";
|
|
5
|
+
import {IMoneyMarketView} from "../interfaces/IMoneyMarketView.sol";
|
|
6
|
+
import {BoringOwnableUpgradeableV2} from "../core/libraries/BoringOwnableUpgradeableV2.sol";
|
|
7
|
+
import {IPLoopPositionBox, BoxData} from "../interfaces/IPLoopPositionBox.sol";
|
|
8
|
+
import {IPPTLooperView, PositionView} from "../interfaces/IPPTLooperView.sol";
|
|
9
|
+
|
|
10
|
+
contract PendlePTLooperView is IPPTLooperView, BoringOwnableUpgradeableV2 {
|
|
11
|
+
IPLoopPositionBoxFactory public immutable POSITION_BOX_FACTORY;
|
|
12
|
+
|
|
13
|
+
mapping(address spokeMMBeacon => IMoneyMarketView) public moneyMarketView;
|
|
14
|
+
|
|
15
|
+
constructor(address _positionBoxFactory) {
|
|
16
|
+
_disableInitializers();
|
|
17
|
+
POSITION_BOX_FACTORY = IPLoopPositionBoxFactory(_positionBoxFactory);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function initialize(address _owner) external initializer {
|
|
21
|
+
__BoringOwnableV2_init(_owner);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function getAll(address owner, bytes32 boxId) external returns (PositionView memory v) {
|
|
25
|
+
(IPLoopPositionBox box,, BoxData memory bd) = POSITION_BOX_FACTORY.deployPositionBoxAndMoneyMarket(owner, boxId);
|
|
26
|
+
IMoneyMarketView mmView = moneyMarketView[bd.spokeMMBeacon];
|
|
27
|
+
|
|
28
|
+
(v.mmPtBalance, v.mmDebtBalance) = mmView.moneyMarketBalances(box);
|
|
29
|
+
(v.ltv, v.liquidationThreshold) = mmView.thresholds(box);
|
|
30
|
+
(v.borrowingLiquidity, v.lendingLiquidity) = mmView.liquidity(box);
|
|
31
|
+
(v.borrowingRewards, v.lendingRewards) = mmView.rewards(box);
|
|
32
|
+
v.limits = mmView.limits(box);
|
|
33
|
+
(v.borrowingRate, v.lendingRate) = mmView.rates(box);
|
|
34
|
+
v.ptDebtRateWad = mmView.ptDebtRate(box);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// ========== Admin functions ==========
|
|
38
|
+
function registerMoneyMarketView(address spokeMM, address mmView) external onlyOwner {
|
|
39
|
+
moneyMarketView[spokeMM] = IMoneyMarketView(mmView);
|
|
40
|
+
emit MoneyMarketViewRegistered(spokeMM, mmView);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
import {IPPostPtLoopStateChecker} from "../interfaces/IPPostPtLoopStateChecker.sol";
|
|
5
|
+
import {IPLoopPositionBox, BoxData} from "../interfaces/IPLoopPositionBox.sol";
|
|
6
|
+
import {IPLoopPositionBoxFactory} from "../interfaces/IPLoopPositionBoxFactory.sol";
|
|
7
|
+
import {IMoneyMarket, MarketCtx, createMarketCtx} from "../interfaces/IMoneyMarket.sol";
|
|
8
|
+
import {TokenHelper} from "../core/libraries/TokenHelper.sol";
|
|
9
|
+
|
|
10
|
+
contract PostPtLoopStateChecker is IPPostPtLoopStateChecker, TokenHelper {
|
|
11
|
+
IPLoopPositionBoxFactory public immutable BOX_FACTORY;
|
|
12
|
+
|
|
13
|
+
constructor(address boxFactory) {
|
|
14
|
+
BOX_FACTORY = IPLoopPositionBoxFactory(boxFactory);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
struct BalanceCheck {
|
|
18
|
+
address token;
|
|
19
|
+
uint256 lowerBound;
|
|
20
|
+
uint256 upperBound;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
struct StateCheck {
|
|
24
|
+
BalanceCheck[] boxBalances;
|
|
25
|
+
BalanceCheck[] ownerBalances;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/// @dev MM collateral/debt balances, resolved once per `check`. `valid` is false when the box has
|
|
29
|
+
/// no spoke money market on this chain; `MM_COLAT`/`MM_DEBT` checks then fall through to a raw
|
|
30
|
+
/// token balance read, exactly as the prior `withMMBalances` flag did.
|
|
31
|
+
struct MMBalances {
|
|
32
|
+
bool valid;
|
|
33
|
+
uint256 colat;
|
|
34
|
+
uint256 debt;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
address public constant MM_COLAT = address(1);
|
|
38
|
+
address public constant MM_DEBT = address(2);
|
|
39
|
+
|
|
40
|
+
/// @notice non-view, as `collateralBalance` and `debtBalance` are non-view
|
|
41
|
+
function check(IPLoopPositionBox box, bytes calldata data) external {
|
|
42
|
+
StateCheck memory stateCheck = abi.decode(data, (StateCheck));
|
|
43
|
+
|
|
44
|
+
MMBalances memory mm; // valid == false until a spoke MM is found
|
|
45
|
+
address spokeMM = box.SPOKE_MONEY_MARKET();
|
|
46
|
+
if (spokeMM != address(0)) {
|
|
47
|
+
BoxData memory boxData = BOX_FACTORY.boxData(box.BOX_ID());
|
|
48
|
+
MarketCtx memory mctx = createMarketCtx(box, boxData);
|
|
49
|
+
mm = MMBalances({
|
|
50
|
+
valid: true,
|
|
51
|
+
colat: IMoneyMarket(spokeMM).collateralBalance(mctx),
|
|
52
|
+
debt: IMoneyMarket(spokeMM).debtBalance(mctx)
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
_checkBalances(address(box), stateCheck.boxBalances, mm);
|
|
56
|
+
|
|
57
|
+
if (stateCheck.ownerBalances.length > 0) {
|
|
58
|
+
_checkBalances(box.OWNER(), stateCheck.ownerBalances, MMBalances(false, 0, 0));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function _checkBalances(address acc, BalanceCheck[] memory checks, MMBalances memory mm) internal view {
|
|
63
|
+
for (uint256 i = 0; i < checks.length; i++) {
|
|
64
|
+
address token = checks[i].token;
|
|
65
|
+
uint256 bal;
|
|
66
|
+
if (token == MM_COLAT && mm.valid) {
|
|
67
|
+
bal = mm.colat;
|
|
68
|
+
} else if (token == MM_DEBT && mm.valid) {
|
|
69
|
+
bal = mm.debt;
|
|
70
|
+
} else {
|
|
71
|
+
bal = _balanceOf(acc, token);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
require(
|
|
75
|
+
bal >= checks[i].lowerBound && bal <= checks[i].upperBound, "LoopStateChecker: balance check failed"
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity ^0.8.30;
|
|
3
|
+
|
|
4
|
+
import {IPStaticQuoter} from "../interfaces/IPStaticQuoter.sol";
|
|
5
|
+
import {PMath} from "../core/libraries/math/PMath.sol";
|
|
6
|
+
import {BoringOwnableUpgradeableV2} from "../core/libraries/BoringOwnableUpgradeableV2.sol";
|
|
7
|
+
|
|
8
|
+
contract StaticStableQuoter is IPStaticQuoter, BoringOwnableUpgradeableV2 {
|
|
9
|
+
using PMath for uint256;
|
|
10
|
+
|
|
11
|
+
event WeiUSDPriceSet(uint256 chainId, address indexed token, uint256 wad);
|
|
12
|
+
|
|
13
|
+
/// example: for USDC with 6 decimals, _weiUSDPrice[USDC] = 1e12
|
|
14
|
+
mapping(uint256 chainId => mapping(address token => uint256 wad)) internal _weiUSDPrice;
|
|
15
|
+
|
|
16
|
+
constructor() {
|
|
17
|
+
_disableInitializers();
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function initialize(address owner) external initializer {
|
|
21
|
+
__BoringOwnableV2_init(owner);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function weiUSDPrice(uint256 chainId, address token) public view returns (uint256 res) {
|
|
25
|
+
res = _weiUSDPrice[chainId][token];
|
|
26
|
+
require(res != 0, "StaticStableQuoter: token not supported");
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function quote(
|
|
30
|
+
uint256 chainIdIn,
|
|
31
|
+
address tokenIn,
|
|
32
|
+
uint256 amountIn,
|
|
33
|
+
uint256 chainIdOut,
|
|
34
|
+
address tokenOut,
|
|
35
|
+
uint256 slippage
|
|
36
|
+
) external view returns (uint256 minAmountOut) {
|
|
37
|
+
return (amountIn * weiUSDPrice(chainIdIn, tokenIn) / weiUSDPrice(chainIdOut, tokenOut)).tweakDown(slippage);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/// ========== Admin functions ==========
|
|
41
|
+
|
|
42
|
+
function setWeiUSDPrice(uint256 chainId, address token, uint256 wad) external onlyOwner {
|
|
43
|
+
_weiUSDPrice[chainId][token] = wad;
|
|
44
|
+
emit WeiUSDPriceSet(chainId, token, wad);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity ^0.8.30;
|
|
3
|
+
|
|
4
|
+
import {TokenHelper} from "../../core/libraries/TokenHelper.sol";
|
|
5
|
+
import {ApprovedCall, IPLoopPositionBox} from "../../interfaces/IPLoopPositionBox.sol";
|
|
6
|
+
import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
|
|
7
|
+
import {IERC20Metadata as IERC20} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
|
8
|
+
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
9
|
+
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
10
|
+
|
|
11
|
+
contract LoopPositionBox is IPLoopPositionBox, TokenHelper, Initializable {
|
|
12
|
+
using Address for address;
|
|
13
|
+
using SafeERC20 for IERC20;
|
|
14
|
+
|
|
15
|
+
address public immutable MANAGER;
|
|
16
|
+
|
|
17
|
+
/// @dev `OWNER` / `BOX_ID` / `SPOKE_MONEY_MARKET` are written once in `initialize` and never
|
|
18
|
+
/// mutated again. Named in ALL-CAPS to match `MANAGER` and signal "set-once" intent at the
|
|
19
|
+
/// callsite, even though they live in storage (BeaconProxy delegatecall rules out true
|
|
20
|
+
/// `immutable`). Renaming would break `IPLoopPositionBox` ABI consumers.
|
|
21
|
+
address public OWNER;
|
|
22
|
+
bytes32 public BOX_ID;
|
|
23
|
+
address public SPOKE_MONEY_MARKET;
|
|
24
|
+
|
|
25
|
+
constructor(address _manager) {
|
|
26
|
+
MANAGER = _manager;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
modifier onlyManager() {
|
|
30
|
+
require(msg.sender == MANAGER, "LoopPositionBox: caller is not manager");
|
|
31
|
+
_;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function initialize(
|
|
35
|
+
address _owner,
|
|
36
|
+
bytes32 _boxId,
|
|
37
|
+
address _spokeMoneyMarket,
|
|
38
|
+
address _ptToApprove,
|
|
39
|
+
address _debtTokenToApprove
|
|
40
|
+
) external initializer {
|
|
41
|
+
OWNER = _owner;
|
|
42
|
+
BOX_ID = _boxId;
|
|
43
|
+
SPOKE_MONEY_MARKET = _spokeMoneyMarket;
|
|
44
|
+
|
|
45
|
+
if (_spokeMoneyMarket != address(0)) {
|
|
46
|
+
_safeApproveInf(_ptToApprove, _spokeMoneyMarket);
|
|
47
|
+
_safeApproveInf(_debtTokenToApprove, _spokeMoneyMarket);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function withdrawTo(address to, address token, uint256 amount) external onlyManager {
|
|
52
|
+
_transferOut(token, to, amount);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function approveAndCall(ApprovedCall memory call, address nativeRefund)
|
|
56
|
+
external
|
|
57
|
+
payable
|
|
58
|
+
onlyManager
|
|
59
|
+
returns (bytes memory result)
|
|
60
|
+
{
|
|
61
|
+
uint256 nativeAmount = call.token == NATIVE ? call.amount : 0;
|
|
62
|
+
uint256 nativeFee = msg.value;
|
|
63
|
+
|
|
64
|
+
// Back out the native the manager just sent in (call.amount if NATIVE, plus the msg.value fee)
|
|
65
|
+
// so the post-call diff refunds only router-returned surplus, not the box's pre-existing native.
|
|
66
|
+
uint256 initialNativeBalance = _selfBalance(NATIVE) - nativeAmount - nativeFee;
|
|
67
|
+
|
|
68
|
+
_approveForExtRouter(call.token, call.approveTo, call.amount);
|
|
69
|
+
result = call.callTo.functionCallWithValue(call.data, nativeAmount + nativeFee);
|
|
70
|
+
_approveForExtRouter(call.token, call.approveTo, 0);
|
|
71
|
+
|
|
72
|
+
uint256 finalNativeBalance = _selfBalance(NATIVE);
|
|
73
|
+
|
|
74
|
+
if (finalNativeBalance > initialNativeBalance) {
|
|
75
|
+
_transferOut(NATIVE, nativeRefund, finalNativeBalance - initialNativeBalance);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function _approveForExtRouter(address token, address extRouter, uint256 amount) internal {
|
|
80
|
+
if (token == NATIVE || extRouter == SPOKE_MONEY_MARKET) return;
|
|
81
|
+
IERC20(token).forceApprove(extRouter, amount);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
receive() external payable {}
|
|
85
|
+
}
|