@pendle/core-v2 6.2.2 → 6.3.0-beta
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/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.json +13 -0
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +20 -2
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +20 -2
- package/build/artifacts/contracts/LiquidityMining/PendleMultiTokenMerkleDistributor.sol/PendleMultiTokenMerkleDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/PendleMultiTokenMerkleDistributor.sol/PendleMultiTokenMerkleDistributor.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +6 -24
- package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
- package/build/artifacts/contracts/core/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/PendleGauge.sol/PendleGauge.json +19 -0
- package/build/artifacts/contracts/core/Market/PendleMarketFactoryV6Upg.sol/PendleMarketFactoryV6Upg.dbg.json +4 -0
- package/build/artifacts/contracts/core/Market/PendleMarketFactoryV6Upg.sol/PendleMarketFactoryV6Upg.json +636 -0
- package/build/artifacts/contracts/core/Market/PendleMarketV6.sol/PendleMarketV6.dbg.json +4 -0
- package/build/artifacts/contracts/core/Market/PendleMarketV6.sol/PendleMarketV6.json +1181 -0
- 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/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 +28 -2
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactoryUpg.sol/PendleYieldContractFactoryUpg.dbg.json +4 -0
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactoryUpg.sol/PendleYieldContractFactoryUpg.json +608 -0
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +28 -2
- package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
- package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.json +15 -2
- package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +27 -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/deprecated/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/deprecated/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
- package/build/artifacts/contracts/deprecated/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.dbg.json +1 -1
- package/build/artifacts/contracts/deprecated/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.json +2 -2
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionCallbackV3.sol/IPActionCallbackV3.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/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/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/IPExchangeRateOracleApp.sol/IPExchangeRateOracleApp.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPExchangeRateOracleApp.sol/IPExchangeRateOracleApp.json +282 -0
- package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.json +19 -0
- 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/IPMarket.sol/IPMarket.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.json +58 -0
- package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.json +81 -19
- package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.json +26 -0
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.json +13 -0
- package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.json +26 -0
- 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/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/Broadcaster.sol/Broadcaster.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/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/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/PendleLPWrapper.sol/PendleLPWrapper.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleLPWrapper.sol/PendleLPWrapper.json +15 -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/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/deploy/PendleCommonPoolDeployHelperV2.sol/PendleCommonPoolDeployHelperV2.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol/PendleCommonPoolDeployHelperV2.json +7 -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/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 +4 -0
- package/build/artifacts/contracts/oracles/CrossChainOracle/base/PendleCrossChainOracleBaseApp_Init.sol/PendleCrossChainOracleBaseApp_Init.json +533 -0
- package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleApp.sol/PendleExchangeRateOracleApp.dbg.json +4 -0
- package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleApp.sol/PendleExchangeRateOracleApp.json +889 -0
- package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleV2.sol/PendleExchangeRateOracleV2.dbg.json +4 -0
- package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleV2.sol/PendleExchangeRateOracleV2.json +84 -0
- package/build/artifacts/contracts/oracles/CrossChainOracle/libraries/ExchangeRateMsgCodec.sol/ExchangeRateMsgCodec.dbg.json +4 -0
- package/build/artifacts/contracts/oracles/CrossChainOracle/libraries/ExchangeRateMsgCodec.sol/ExchangeRateMsgCodec.json +24 -0
- 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/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/PendleSparkLinearDiscountOracleFactory.sol/PendleSparkLinearDiscountOracleFactory.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol/PendleSparkLinearDiscountOracleFactory.json +2 -2
- package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.json +2 -2
- package/build/artifacts/contracts/router/ActionCallbackV3.sol/ActionCallbackV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionCallbackV3.sol/ActionCallbackV3.json +2 -2
- package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.json +2 -2
- package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.json +2 -2
- package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.json +2 -2
- package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.json +2 -2
- package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.json +2 -2
- package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.dbg.json +1 -1
- package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.json +2 -2
- package/build/artifacts/contracts/router/Reflector.sol/Reflector.dbg.json +1 -1
- package/build/artifacts/contracts/router/Reflector.sol/Reflector.json +2 -2
- package/build/artifacts/contracts/router/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/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/OKXScaleHelper.sol/OKXScaleHelper.json +15 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IKyberScalingHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IOdosRouterV2.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.json +22 -3
- package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +6 -2
- package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol +12 -2
- package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol +9 -1
- package/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +10 -14
- package/contracts/core/Market/PendleGauge.sol +2 -0
- package/contracts/core/Market/{v3/PendleMarketFactoryV3.sol → PendleMarketFactoryV6Upg.sol} +18 -14
- package/contracts/core/Market/{v3/PendleMarketV3.sol → PendleMarketV6.sol} +48 -13
- package/contracts/core/YieldContracts/PendlePrincipalToken.sol +6 -0
- package/contracts/core/YieldContracts/{PendleYieldContractFactory.sol → PendleYieldContractFactoryUpg.sol} +10 -13
- package/contracts/core/YieldContracts/PendleYieldToken.sol +6 -0
- package/contracts/core/erc20/PendleERC20.sol +12 -0
- package/contracts/core/libraries/Errors.sol +7 -0
- package/contracts/core/libraries/StringLib.sol +12 -0
- package/contracts/interfaces/IPExchangeRateOracleApp.sol +86 -0
- package/contracts/interfaces/IPGauge.sol +4 -3
- package/contracts/interfaces/IPMarket.sol +8 -2
- package/contracts/interfaces/IPMarketFactory.sol +22 -10
- package/contracts/interfaces/IPPrincipalToken.sol +4 -0
- package/contracts/interfaces/IPYieldContractFactory.sol +2 -0
- package/contracts/interfaces/IPYieldToken.sol +4 -0
- package/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol +10 -10
- package/contracts/offchain-helpers/deploy/PendlePoolDeployHelper.sol +6 -6
- package/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol +3 -3
- package/contracts/oracles/CrossChainOracle/base/PendleCrossChainOracleBaseApp_Init.sol +23 -0
- package/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleApp.sol +160 -0
- package/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleV2.sol +25 -0
- package/contracts/oracles/CrossChainOracle/libraries/ExchangeRateMsgCodec.sol +36 -0
- package/contracts/oracles/PtYtLpOracle/PendleLpOracleLib.sol +9 -0
- package/contracts/router/swap-aggregator/OKXScaleHelper.sol +14 -1
- package/contracts/router/swap-aggregator/PendleSwap.sol +1 -1
- package/deployments/1-core.json +1 -0
- package/deployments/10-core.json +1 -0
- package/deployments/146-core.json +4 -1
- package/deployments/42161-core.json +4 -1
- package/deployments/5000-core.json +4 -1
- package/deployments/56-core.json +5 -1
- package/deployments/80094-core.json +4 -1
- package/deployments/8453-core.json +4 -1
- package/deployments/9745-core.json +4 -1
- package/deployments/999-core.json +4 -1
- package/package.json +3 -2
- package/typechain-types/ExchangeRateMsgCodec.ts +89 -0
- package/typechain-types/IPExchangeRateOracleApp.ts +352 -0
- package/typechain-types/IPGauge.ts +19 -0
- package/typechain-types/IPMarket.ts +76 -0
- package/typechain-types/IPMarketFactory.ts +146 -46
- package/typechain-types/IPPrincipalToken.ts +34 -0
- package/typechain-types/IPYieldContractFactory.ts +13 -0
- package/typechain-types/IPYieldToken.ts +34 -0
- package/typechain-types/OAppCoreUpgradeable.ts +320 -0
- package/typechain-types/OAppOptionsType3Upgradeable.ts +319 -0
- package/typechain-types/OAppReceiverUpgradeable.ts +498 -0
- package/typechain-types/OAppSenderUpgradeable.ts +320 -0
- package/typechain-types/OAppUpgradeable.ts +498 -0
- package/typechain-types/OKXScaleHelper.ts +87 -0
- package/typechain-types/OwnableUpgradeable.ts +174 -0
- package/typechain-types/PendleCommonPoolDeployHelperV2.ts +7 -1
- package/typechain-types/PendleCrossChainOracleBaseApp_Init.ts +662 -0
- package/typechain-types/PendleERC20.ts +21 -0
- package/typechain-types/PendleExchangeRateOracleApp.ts +1012 -0
- package/typechain-types/PendleExchangeRateOracleV2.ts +142 -0
- package/typechain-types/PendleGauge.ts +19 -0
- package/typechain-types/PendleGaugeControllerBaseUpg.ts +19 -0
- package/typechain-types/PendleGaugeControllerMainchainUpg.ts +19 -0
- package/typechain-types/PendleGaugeControllerSidechainUpg.ts +19 -0
- package/typechain-types/PendleLPWrapper.ts +21 -0
- package/typechain-types/PendleMarketFactoryV6Upg.ts +773 -0
- package/typechain-types/PendleMarketV6.ts +1248 -0
- package/typechain-types/PendlePrincipalToken.ts +34 -0
- package/typechain-types/PendleSwap.ts +19 -0
- package/typechain-types/PendleVotingControllerUpg.ts +18 -48
- package/typechain-types/PendleYieldContractFactoryUpg.ts +820 -0
- package/typechain-types/PendleYieldToken.ts +34 -0
- package/typechain-types/factories/ActionAddRemoveLiqV3__factory.ts +1 -1
- package/typechain-types/factories/ActionCallbackV3__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/BalanceReader__factory.ts +1 -1
- package/typechain-types/factories/BoringPYUsdChainlinkAssetOracle__factory.ts +1 -1
- package/typechain-types/factories/BoringPYUsdChainlinkSYOracle__factory.ts +1 -1
- package/typechain-types/factories/Broadcaster__factory.ts +1 -1
- package/typechain-types/factories/Errors__factory.ts +26 -1
- package/typechain-types/factories/ExchangeRateMsgCodec__factory.ts +81 -0
- package/typechain-types/factories/ExpiredLpPtRedeemer__factory.ts +1 -1
- package/typechain-types/factories/IPExchangeRateOracleApp__factory.ts +301 -0
- package/typechain-types/factories/IPGauge__factory.ts +19 -0
- package/typechain-types/factories/IPMarketFactory__factory.ts +81 -19
- package/typechain-types/factories/IPMarket__factory.ts +58 -0
- package/typechain-types/factories/IPPrincipalToken__factory.ts +26 -0
- package/typechain-types/factories/IPYieldContractFactory__factory.ts +13 -0
- package/typechain-types/factories/IPYieldToken__factory.ts +26 -0
- package/typechain-types/factories/LimitBackendHelperV2__factory.ts +1 -1
- package/typechain-types/factories/OAppCoreUpgradeable__factory.ts +228 -0
- package/typechain-types/factories/OAppOptionsType3Upgradeable__factory.ts +219 -0
- package/typechain-types/factories/OAppReceiverUpgradeable__factory.ts +399 -0
- package/typechain-types/factories/OAppSenderUpgradeable__factory.ts +248 -0
- package/typechain-types/factories/OAppUpgradeable__factory.ts +411 -0
- package/typechain-types/factories/OKXScaleHelper__factory.ts +39 -0
- package/typechain-types/factories/OracleLib__factory.ts +1 -1
- package/typechain-types/factories/OwnableUpgradeable__factory.ts +91 -0
- 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 +6 -1
- package/typechain-types/factories/PendleCrossChainOracleBaseApp_Init__factory.ts +554 -0
- package/typechain-types/factories/PendleERC20__factory.ts +14 -1
- package/typechain-types/factories/PendleExchangeRateOracleApp__factory.ts +958 -0
- package/typechain-types/factories/PendleExchangeRateOracleV2__factory.ts +165 -0
- package/typechain-types/factories/PendleFeeDistributorV2__factory.ts +1 -1
- package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
- package/typechain-types/factories/PendleGaugeControllerBaseUpg__factory.ts +13 -0
- package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +23 -1
- package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +23 -1
- package/typechain-types/factories/PendleGauge__factory.ts +19 -0
- package/typechain-types/factories/PendleLPWrapperFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleLPWrapper__factory.ts +14 -1
- package/typechain-types/factories/PendleLimitRouter__factory.ts +1 -1
- package/typechain-types/factories/PendleMarketFactoryV6Upg__factory.ts +732 -0
- package/typechain-types/factories/PendleMarketV6__factory.ts +1261 -0
- 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/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 +27 -1
- package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
- package/typechain-types/factories/PendleRouterV4__factory.ts +1 -1
- package/typechain-types/factories/PendleSparkLinearDiscountOracleFactoryWrapper__factory.ts +1 -1
- package/typechain-types/factories/PendleSparkLinearDiscountOracleFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleSwap__factory.ts +31 -4
- package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +5 -23
- package/typechain-types/factories/PendleYieldContractFactoryUpg__factory.ts +692 -0
- package/typechain-types/factories/PendleYieldToken__factory.ts +27 -1
- package/typechain-types/factories/Reflector__factory.ts +1 -1
- package/typechain-types/factories/SimulateHelper__factory.ts +1 -1
- package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
- package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
- package/typechain-types/hardhat.d.ts +120 -57
- package/typechain-types/index.ts +30 -16
- package/build/artifacts/contracts/core/Market/v3/PendleMarketFactoryV3.sol/PendleMarketFactoryV3.dbg.json +0 -4
- package/build/artifacts/contracts/core/Market/v3/PendleMarketFactoryV3.sol/PendleMarketFactoryV3.json +0 -610
- package/build/artifacts/contracts/core/Market/v3/PendleMarketV3.sol/PendleMarketV3.dbg.json +0 -4
- package/build/artifacts/contracts/core/Market/v3/PendleMarketV3.sol/PendleMarketV3.json +0 -1131
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +0 -4
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +0 -590
- package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +0 -4
- package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.json +0 -394
- package/build/artifacts/contracts/core/erc20/PendleERC20PermitUpg.sol/PendleERC20PermitUpg.dbg.json +0 -4
- package/build/artifacts/contracts/core/erc20/PendleERC20PermitUpg.sol/PendleERC20PermitUpg.json +0 -370
- package/build/artifacts/contracts/core/erc20/PendleERC20Upg.sol/PendleERC20Upg.dbg.json +0 -4
- package/build/artifacts/contracts/core/erc20/PendleERC20Upg.sol/PendleERC20Upg.json +0 -246
- package/build/artifacts/contracts/interfaces/IPMarketFactoryV3.sol/IPMarketFactoryV3.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPMarketFactoryV3.sol/IPMarketFactoryV3.json +0 -202
- package/build/artifacts/contracts/interfaces/IPMarketV3.sol/IPMarketV3.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPMarketV3.sol/IPMarketV3.json +0 -833
- package/contracts/core/erc20/PendleERC20Permit.sol +0 -80
- package/contracts/core/erc20/PendleERC20PermitUpg.sol +0 -82
- package/contracts/core/erc20/PendleERC20Upg.sol +0 -334
- package/contracts/interfaces/IPMarketFactoryV3.sol +0 -33
- package/contracts/interfaces/IPMarketV3.sol +0 -8
|
@@ -2,17 +2,19 @@
|
|
|
2
2
|
pragma solidity ^0.8.17;
|
|
3
3
|
import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
|
4
4
|
|
|
5
|
-
import "
|
|
6
|
-
import "
|
|
7
|
-
import "
|
|
5
|
+
import "../../interfaces/IPMarket.sol";
|
|
6
|
+
import "../../interfaces/IPYieldContractFactory.sol";
|
|
7
|
+
import "../../interfaces/IPMarketFactory.sol";
|
|
8
8
|
|
|
9
|
-
import "
|
|
10
|
-
import "
|
|
11
|
-
import "
|
|
9
|
+
import "../libraries/BaseSplitCodeFactory.sol";
|
|
10
|
+
import "../libraries/Errors.sol";
|
|
11
|
+
import "../libraries/BoringOwnableUpgradeableV2.sol";
|
|
12
12
|
|
|
13
|
-
contract
|
|
13
|
+
contract PendleMarketFactoryV6Upg is BoringOwnableUpgradeableV2, IPMarketFactory {
|
|
14
14
|
using EnumerableSet for EnumerableSet.AddressSet;
|
|
15
15
|
|
|
16
|
+
uint256 public constant VERSION = 6;
|
|
17
|
+
|
|
16
18
|
address public immutable marketCreationCodeContractA;
|
|
17
19
|
uint256 public immutable marketCreationCodeSizeA;
|
|
18
20
|
address public immutable marketCreationCodeContractB;
|
|
@@ -42,11 +44,9 @@ contract PendleMarketFactoryV3 is BoringOwnableUpgradeableV2, IPMarketFactoryV3
|
|
|
42
44
|
uint256 _marketCreationCodeSizeA,
|
|
43
45
|
address _marketCreationCodeContractB,
|
|
44
46
|
uint256 _marketCreationCodeSizeB,
|
|
45
|
-
address _treasury,
|
|
46
|
-
uint8 _reserveFeePercent,
|
|
47
47
|
address _vePendle,
|
|
48
48
|
address _gaugeController
|
|
49
|
-
)
|
|
49
|
+
) {
|
|
50
50
|
yieldContractFactory = _yieldContractFactory;
|
|
51
51
|
maxLnFeeRateRoot = uint256(LogExpMath.ln(int256((105 * PMath.IONE) / 100))); // ln(1.05)
|
|
52
52
|
|
|
@@ -55,11 +55,15 @@ contract PendleMarketFactoryV3 is BoringOwnableUpgradeableV2, IPMarketFactoryV3
|
|
|
55
55
|
marketCreationCodeContractB = _marketCreationCodeContractB;
|
|
56
56
|
marketCreationCodeSizeB = _marketCreationCodeSizeB;
|
|
57
57
|
|
|
58
|
-
__BoringOwnableV2_init(msg.sender);
|
|
59
|
-
setTreasuryAndFeeReserve(_treasury, _reserveFeePercent);
|
|
60
|
-
|
|
61
58
|
vePendle = _vePendle;
|
|
62
59
|
gaugeController = _gaugeController;
|
|
60
|
+
|
|
61
|
+
_disableInitializers();
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function initialize(address _owner, address _treasury, uint8 _reserveFeePercent) external initializer {
|
|
65
|
+
__BoringOwnableV2_init(_owner);
|
|
66
|
+
setTreasuryAndFeeReserve(_treasury, _reserveFeePercent);
|
|
63
67
|
}
|
|
64
68
|
|
|
65
69
|
/**
|
|
@@ -127,7 +131,7 @@ contract PendleMarketFactoryV3 is BoringOwnableUpgradeableV2, IPMarketFactoryV3
|
|
|
127
131
|
function setOverriddenFee(address router, address market, uint80 newFee) public onlyOwner {
|
|
128
132
|
if (!allMarkets.contains(market)) revert Errors.MFNotPendleMarket(market);
|
|
129
133
|
|
|
130
|
-
uint80 marketFee =
|
|
134
|
+
uint80 marketFee = IPMarket(market).getNonOverrideLnFeeRateRoot();
|
|
131
135
|
if (newFee >= marketFee) revert Errors.MarketFactoryOverriddenFeeTooHigh(newFee, marketFee);
|
|
132
136
|
|
|
133
137
|
// NOTE: newFee = 0 allowed !!
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
2
|
pragma solidity ^0.8.17;
|
|
3
3
|
|
|
4
|
-
import "
|
|
5
|
-
import "
|
|
6
|
-
import "
|
|
4
|
+
import "../../interfaces/IPMarket.sol";
|
|
5
|
+
import "../../interfaces/IPMarketFactory.sol";
|
|
6
|
+
import "../../interfaces/IPMarketSwapCallback.sol";
|
|
7
7
|
|
|
8
|
-
import "
|
|
9
|
-
import "
|
|
10
|
-
import "
|
|
8
|
+
import "../erc20/PendleERC20.sol";
|
|
9
|
+
import "./PendleGauge.sol";
|
|
10
|
+
import "./OracleLib.sol";
|
|
11
|
+
import "../libraries/StringLib.sol";
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
Invariance to maintain:
|
|
@@ -15,13 +16,16 @@ Invariance to maintain:
|
|
|
15
16
|
- address(0) & address(this) should never have any rewards & activeBalance accounting done. This is
|
|
16
17
|
guaranteed by address(0) & address(this) check in each updateForTwo function
|
|
17
18
|
*/
|
|
18
|
-
contract
|
|
19
|
+
contract PendleMarketV6 is PendleERC20, PendleGauge, IPMarket {
|
|
19
20
|
using PMath for uint256;
|
|
20
21
|
using PMath for int256;
|
|
21
22
|
using MarketMathCore for MarketState;
|
|
22
23
|
using SafeERC20 for IERC20;
|
|
23
24
|
using PYIndexLib for IPYieldToken;
|
|
25
|
+
using PYIndexLib for PYIndex;
|
|
24
26
|
using OracleLib for OracleLib.Observation[65535];
|
|
27
|
+
using StringLib for string;
|
|
28
|
+
using StringLib for StringLib.slice;
|
|
25
29
|
|
|
26
30
|
struct MarketStorage {
|
|
27
31
|
int128 totalPt;
|
|
@@ -34,8 +38,13 @@ contract PendleMarketV3 is PendleERC20, PendleGauge, IPMarketV3 {
|
|
|
34
38
|
// 1 SLOT = 144 bits
|
|
35
39
|
}
|
|
36
40
|
|
|
37
|
-
string private constant
|
|
38
|
-
string private constant
|
|
41
|
+
string private constant PT_NAME_PREF = "PT ";
|
|
42
|
+
string private constant PT_SYMBOL_PREF = "PT-";
|
|
43
|
+
|
|
44
|
+
string private constant LP_NAME_PREF = "PLP ";
|
|
45
|
+
string private constant LP_SYMBOL_PREF = "PLP-";
|
|
46
|
+
|
|
47
|
+
uint256 public constant VERSION = 6;
|
|
39
48
|
|
|
40
49
|
IPPrincipalToken internal immutable PT;
|
|
41
50
|
IStandardizedYield internal immutable SY;
|
|
@@ -64,7 +73,10 @@ contract PendleMarketV3 is PendleERC20, PendleGauge, IPMarketV3 {
|
|
|
64
73
|
uint80 _lnFeeRateRoot,
|
|
65
74
|
address _vePendle,
|
|
66
75
|
address _gaugeController
|
|
67
|
-
)
|
|
76
|
+
)
|
|
77
|
+
PendleERC20(_getLPName(_PT), _getLPSymbol(_PT), 18)
|
|
78
|
+
PendleGauge(IPPrincipalToken(_PT).SY(), _vePendle, _gaugeController)
|
|
79
|
+
{
|
|
68
80
|
PT = IPPrincipalToken(_PT);
|
|
69
81
|
SY = IStandardizedYield(PT.SY());
|
|
70
82
|
YT = IPYieldToken(PT.YT());
|
|
@@ -82,6 +94,14 @@ contract PendleMarketV3 is PendleERC20, PendleGauge, IPMarketV3 {
|
|
|
82
94
|
factory = msg.sender;
|
|
83
95
|
}
|
|
84
96
|
|
|
97
|
+
function _getLPName(address _PT) internal view returns (string memory) {
|
|
98
|
+
return LP_NAME_PREF.toSlice().concat(IPPrincipalToken(_PT).name().stripPrefixSlice(PT_NAME_PREF));
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
function _getLPSymbol(address _PT) internal view returns (string memory) {
|
|
102
|
+
return LP_SYMBOL_PREF.toSlice().concat(IPPrincipalToken(_PT).symbol().stripPrefixSlice(PT_SYMBOL_PREF));
|
|
103
|
+
}
|
|
104
|
+
|
|
85
105
|
/**
|
|
86
106
|
* @notice PendleMarket allows users to provide in PT & SY in exchange for LPs, which
|
|
87
107
|
* will grant LP holders more exchange fee over time
|
|
@@ -164,9 +184,10 @@ contract PendleMarketV3 is PendleERC20, PendleGauge, IPMarketV3 {
|
|
|
164
184
|
bytes calldata data
|
|
165
185
|
) external nonReentrant notExpired returns (uint256 netSyOut, uint256 netSyFee) {
|
|
166
186
|
MarketState memory market = readState(msg.sender);
|
|
187
|
+
PYIndex index = YT.newIndex();
|
|
167
188
|
|
|
168
189
|
uint256 netSyToReserve;
|
|
169
|
-
(netSyOut, netSyFee, netSyToReserve) = market.swapExactPtForSy(
|
|
190
|
+
(netSyOut, netSyFee, netSyToReserve) = market.swapExactPtForSy(index, exactPtIn, block.timestamp);
|
|
170
191
|
|
|
171
192
|
if (receiver != address(this)) IERC20(SY).safeTransfer(receiver, netSyOut);
|
|
172
193
|
IERC20(SY).safeTransfer(market.treasury, netSyToReserve);
|
|
@@ -180,6 +201,10 @@ contract PendleMarketV3 is PendleERC20, PendleGauge, IPMarketV3 {
|
|
|
180
201
|
if (_selfBalance(PT) < market.totalPt.Uint())
|
|
181
202
|
revert Errors.MarketInsufficientPtReceived(_selfBalance(PT), market.totalPt.Uint());
|
|
182
203
|
|
|
204
|
+
if (index.syToAsset(netSyFee - netSyToReserve) == 0) {
|
|
205
|
+
revert Errors.MarketZeroNetLPFee();
|
|
206
|
+
}
|
|
207
|
+
|
|
183
208
|
emit Swap(msg.sender, receiver, exactPtIn.neg(), netSyOut.Int(), netSyFee, netSyToReserve);
|
|
184
209
|
}
|
|
185
210
|
|
|
@@ -200,8 +225,10 @@ contract PendleMarketV3 is PendleERC20, PendleGauge, IPMarketV3 {
|
|
|
200
225
|
) external nonReentrant notExpired returns (uint256 netSyIn, uint256 netSyFee) {
|
|
201
226
|
MarketState memory market = readState(msg.sender);
|
|
202
227
|
|
|
228
|
+
PYIndex index = YT.newIndex();
|
|
229
|
+
|
|
203
230
|
uint256 netSyToReserve;
|
|
204
|
-
(netSyIn, netSyFee, netSyToReserve) = market.swapSyForExactPt(
|
|
231
|
+
(netSyIn, netSyFee, netSyToReserve) = market.swapSyForExactPt(index, exactPtOut, block.timestamp);
|
|
205
232
|
|
|
206
233
|
if (receiver != address(this)) IERC20(PT).safeTransfer(receiver, exactPtOut);
|
|
207
234
|
IERC20(SY).safeTransfer(market.treasury, netSyToReserve);
|
|
@@ -216,6 +243,10 @@ contract PendleMarketV3 is PendleERC20, PendleGauge, IPMarketV3 {
|
|
|
216
243
|
if (_selfBalance(SY) < market.totalSy.Uint())
|
|
217
244
|
revert Errors.MarketInsufficientSyReceived(_selfBalance(SY), market.totalSy.Uint());
|
|
218
245
|
|
|
246
|
+
if (index.syToAsset(netSyFee - netSyToReserve) == 0) {
|
|
247
|
+
revert Errors.MarketZeroNetLPFee();
|
|
248
|
+
}
|
|
249
|
+
|
|
219
250
|
emit Swap(msg.sender, receiver, exactPtOut.Int(), netSyIn.neg(), netSyFee, netSyToReserve);
|
|
220
251
|
}
|
|
221
252
|
|
|
@@ -279,7 +310,7 @@ contract PendleMarketV3 is PendleERC20, PendleGauge, IPMarketV3 {
|
|
|
279
310
|
|
|
280
311
|
uint80 overriddenFee;
|
|
281
312
|
|
|
282
|
-
(market.treasury, overriddenFee, market.reserveFeePercent) =
|
|
313
|
+
(market.treasury, overriddenFee, market.reserveFeePercent) = IPMarketFactory(factory).getMarketConfig(
|
|
283
314
|
address(this),
|
|
284
315
|
router
|
|
285
316
|
);
|
|
@@ -332,6 +363,10 @@ contract PendleMarketV3 is PendleERC20, PendleGauge, IPMarketV3 {
|
|
|
332
363
|
return MiniHelpers.isCurrentlyExpired(expiry);
|
|
333
364
|
}
|
|
334
365
|
|
|
366
|
+
function reentrancyGuardEntered() external view override(PendleERC20, IPMarket) returns (bool) {
|
|
367
|
+
return _reentrancyGuardEntered();
|
|
368
|
+
}
|
|
369
|
+
|
|
335
370
|
/*///////////////////////////////////////////////////////////////
|
|
336
371
|
PENDLE GAUGE - RELATED
|
|
337
372
|
//////////////////////////////////////////////////////////////*/
|
|
@@ -12,6 +12,8 @@ import "../erc20/PendleERC20.sol";
|
|
|
12
12
|
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
|
13
13
|
|
|
14
14
|
contract PendlePrincipalToken is PendleERC20, Initializable, IPPrincipalToken {
|
|
15
|
+
uint256 public constant VERSION = 6;
|
|
16
|
+
|
|
15
17
|
address public immutable SY;
|
|
16
18
|
address public immutable factory;
|
|
17
19
|
uint256 public immutable expiry;
|
|
@@ -60,4 +62,8 @@ contract PendlePrincipalToken is PendleERC20, Initializable, IPPrincipalToken {
|
|
|
60
62
|
function isExpired() public view returns (bool) {
|
|
61
63
|
return MiniHelpers.isCurrentlyExpired(expiry);
|
|
62
64
|
}
|
|
65
|
+
|
|
66
|
+
function reentrancyGuardEntered() external view override(PendleERC20, IPPrincipalToken) returns (bool) {
|
|
67
|
+
return _reentrancyGuardEntered();
|
|
68
|
+
}
|
|
63
69
|
}
|
|
@@ -38,12 +38,13 @@ import "../libraries/StringLib.sol";
|
|
|
38
38
|
import "./PendlePrincipalToken.sol";
|
|
39
39
|
import "./PendleYieldToken.sol";
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
contract PendleYieldContractFactory is BoringOwnableUpgradeableV2, IPYieldContractFactory {
|
|
41
|
+
contract PendleYieldContractFactoryUpg is BoringOwnableUpgradeableV2, IPYieldContractFactory {
|
|
43
42
|
using ExpiryUtils for string;
|
|
44
43
|
using StringLib for string;
|
|
45
44
|
using StringLib for StringLib.slice;
|
|
46
45
|
|
|
46
|
+
uint256 public constant VERSION = 6;
|
|
47
|
+
|
|
47
48
|
string private constant PT_PREFIX = "PT";
|
|
48
49
|
string private constant YT_PREFIX = "YT";
|
|
49
50
|
string private constant SY_SYMBOL_PREF = "SY-";
|
|
@@ -82,15 +83,18 @@ contract PendleYieldContractFactory is BoringOwnableUpgradeableV2, IPYieldContra
|
|
|
82
83
|
ytCreationCodeSizeA = _ytCreationCodeSizeA;
|
|
83
84
|
ytCreationCodeContractB = _ytCreationCodeContractB;
|
|
84
85
|
ytCreationCodeSizeB = _ytCreationCodeSizeB;
|
|
86
|
+
|
|
87
|
+
_disableInitializers();
|
|
85
88
|
}
|
|
86
89
|
|
|
87
90
|
function initialize(
|
|
88
91
|
uint96 _expiryDivisor,
|
|
89
92
|
uint128 _interestFeeRate,
|
|
90
93
|
uint128 _rewardFeeRate,
|
|
91
|
-
address _treasury
|
|
94
|
+
address _treasury,
|
|
95
|
+
address _owner
|
|
92
96
|
) external initializer {
|
|
93
|
-
__BoringOwnableV2_init(
|
|
97
|
+
__BoringOwnableV2_init(_owner);
|
|
94
98
|
setExpiryDivisor(_expiryDivisor);
|
|
95
99
|
setInterestFeeRate(_interestFeeRate);
|
|
96
100
|
setRewardFeeRate(_rewardFeeRate);
|
|
@@ -114,8 +118,8 @@ contract PendleYieldContractFactory is BoringOwnableUpgradeableV2, IPYieldContra
|
|
|
114
118
|
|
|
115
119
|
(, , uint8 assetDecimals) = _SY.assetInfo();
|
|
116
120
|
|
|
117
|
-
string memory syCoreName =
|
|
118
|
-
string memory syCoreSymbol =
|
|
121
|
+
string memory syCoreName = _SY.name().stripPrefix(SY_NAME_PREF);
|
|
122
|
+
string memory syCoreSymbol = _SY.symbol().stripPrefix(SY_SYMBOL_PREF);
|
|
119
123
|
|
|
120
124
|
PT = Create2.deploy(
|
|
121
125
|
0,
|
|
@@ -189,11 +193,4 @@ contract PendleYieldContractFactory is BoringOwnableUpgradeableV2, IPYieldContra
|
|
|
189
193
|
treasury = newTreasury;
|
|
190
194
|
emit SetTreasury(newTreasury);
|
|
191
195
|
}
|
|
192
|
-
|
|
193
|
-
function _stripSYPrefix(string memory _str) internal pure returns (string memory) {
|
|
194
|
-
StringLib.slice memory str = _str.toSlice();
|
|
195
|
-
StringLib.slice memory delim_name = SY_NAME_PREF.toSlice();
|
|
196
|
-
StringLib.slice memory delim_symbol = SY_SYMBOL_PREF.toSlice();
|
|
197
|
-
return str.beyond(delim_name).beyond(delim_symbol).toString();
|
|
198
|
-
}
|
|
199
196
|
}
|
|
@@ -35,6 +35,8 @@ contract PendleYieldToken is IPYieldToken, PendleERC20, RewardManagerAbstract, I
|
|
|
35
35
|
mapping(address => uint256) userRewardOwed;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
+
uint256 public constant VERSION = 6;
|
|
39
|
+
|
|
38
40
|
address public immutable SY;
|
|
39
41
|
address public immutable PT;
|
|
40
42
|
address public immutable factory;
|
|
@@ -240,6 +242,10 @@ contract PendleYieldToken is IPYieldToken, PendleERC20, RewardManagerAbstract, I
|
|
|
240
242
|
return _pyIndexStored;
|
|
241
243
|
}
|
|
242
244
|
|
|
245
|
+
function reentrancyGuardEntered() external view override(PendleERC20, IPYieldToken) returns (bool) {
|
|
246
|
+
return _reentrancyGuardEntered();
|
|
247
|
+
}
|
|
248
|
+
|
|
243
249
|
/**
|
|
244
250
|
* @notice do a final rewards redeeming, and sets post-expiry data
|
|
245
251
|
* @dev has no effect if called pre-expiry
|
|
@@ -53,6 +53,18 @@ contract PendleERC20 is Context, IERC20, IERC20Metadata {
|
|
|
53
53
|
_status = _NOT_ENTERED;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
+
function reentrancyGuardEntered() external view virtual returns (bool) {
|
|
57
|
+
return _reentrancyGuardEntered();
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a
|
|
62
|
+
* `nonReentrant` function in the call stack.
|
|
63
|
+
*/
|
|
64
|
+
function _reentrancyGuardEntered() internal view returns (bool) {
|
|
65
|
+
return _status == _ENTERED;
|
|
66
|
+
}
|
|
67
|
+
|
|
56
68
|
/**
|
|
57
69
|
* @dev Sets the values for {name}, {symbol} and {decimals}.
|
|
58
70
|
*
|
|
@@ -30,6 +30,7 @@ library Errors {
|
|
|
30
30
|
error MarketZeroAmountsInput();
|
|
31
31
|
error MarketZeroAmountsOutput();
|
|
32
32
|
error MarketZeroLnImpliedRate();
|
|
33
|
+
error MarketZeroNetLPFee();
|
|
33
34
|
error MarketInsufficientPtForTrade(int256 currentAmount, int256 requiredAmount);
|
|
34
35
|
error MarketInsufficientPtReceived(uint256 actualBalance, uint256 requiredBalance);
|
|
35
36
|
error MarketInsufficientSyReceived(uint256 actualBalance, uint256 requiredBalance);
|
|
@@ -180,4 +181,10 @@ library Errors {
|
|
|
180
181
|
// Swap Aggregator
|
|
181
182
|
error SAInsufficientTokenIn(address tokenIn, uint256 amountExpected, uint256 amountActual);
|
|
182
183
|
error UnsupportedSelector(uint256 aggregatorType, bytes4 selector);
|
|
184
|
+
|
|
185
|
+
// Cross Chain Oracle App
|
|
186
|
+
error FeedNotInitialized();
|
|
187
|
+
error ExchangeRateCallFailed();
|
|
188
|
+
error InvalidDestinationEid();
|
|
189
|
+
error InvalidMsgType();
|
|
183
190
|
}
|
|
@@ -757,4 +757,16 @@ library StringLib {
|
|
|
757
757
|
|
|
758
758
|
return ret;
|
|
759
759
|
}
|
|
760
|
+
|
|
761
|
+
function stripPrefix(string memory _str, string memory _prefix) internal pure returns (string memory) {
|
|
762
|
+
slice memory s = toSlice(_str);
|
|
763
|
+
slice memory d = toSlice(_prefix);
|
|
764
|
+
return toString(beyond(s, d));
|
|
765
|
+
}
|
|
766
|
+
|
|
767
|
+
function stripPrefixSlice(string memory _str, string memory _delim) internal pure returns (slice memory) {
|
|
768
|
+
slice memory s = toSlice(_str);
|
|
769
|
+
slice memory d = toSlice(_delim);
|
|
770
|
+
return beyond(s, d);
|
|
771
|
+
}
|
|
760
772
|
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
import {MessagingFee, MessagingReceipt} from "@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppUpgradeable.sol";
|
|
5
|
+
|
|
6
|
+
interface IPExchangeRateOracleApp {
|
|
7
|
+
event ExchangeRateSent(
|
|
8
|
+
bytes32 indexed guid,
|
|
9
|
+
uint32 indexed dstEid,
|
|
10
|
+
address indexed exchangeRateSource,
|
|
11
|
+
uint256 exchangeRate
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
event ExchangeRateReceived(
|
|
15
|
+
bytes32 indexed guid,
|
|
16
|
+
uint32 indexed srcEid,
|
|
17
|
+
bytes32 indexed exchangeRateSource,
|
|
18
|
+
uint256 exchangeRate,
|
|
19
|
+
uint256 updatedAt,
|
|
20
|
+
bool rateAccepted
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
event AllowedSenderSet(address indexed sender);
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @dev Parameters for the send operation
|
|
27
|
+
* @param exchangeRateSource The address of the exchange rate source
|
|
28
|
+
* @param dstEid Destination endpoint ID
|
|
29
|
+
* @param extraOptions Additional LayerZero message options (e.g. gas limit configuration)
|
|
30
|
+
*/
|
|
31
|
+
struct SendExchangeRateParam {
|
|
32
|
+
address exchangeRateSource;
|
|
33
|
+
uint32 dstEid;
|
|
34
|
+
bytes extraOptions;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @dev Exchange rate data with timestamp information
|
|
39
|
+
* @param exchangeRate The exchange rate value
|
|
40
|
+
* @param updatedAt Timestamp when the exchange rate was last updated
|
|
41
|
+
*/
|
|
42
|
+
struct ExchangeRateData {
|
|
43
|
+
uint256 exchangeRate;
|
|
44
|
+
uint256 updatedAt;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* @dev Retrieves exchange rate from a data source on the specified chain
|
|
49
|
+
* @param _srcEid Endpoint ID of the source chain
|
|
50
|
+
* @param exchangeRateSource The exchange rate source identifier on the source chain
|
|
51
|
+
*/
|
|
52
|
+
function getExchangeRate(
|
|
53
|
+
uint32 _srcEid,
|
|
54
|
+
bytes32 exchangeRateSource
|
|
55
|
+
) external view returns (ExchangeRateData memory exchangeRateData);
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* @dev Quote the fee required for sendExchangeRate execution
|
|
59
|
+
* @param sendParam The parameters required for the sendExchangeRate execution operation
|
|
60
|
+
* @param payInLzToken Flag indicating whether the caller is paying in the LZ token
|
|
61
|
+
* @return fee The fee need to pay for sendExchangeRate operation request
|
|
62
|
+
* - nativeFee: the fee paid in native token
|
|
63
|
+
* - lzTokenFee: the fee paid in lzToken
|
|
64
|
+
*/
|
|
65
|
+
function quoteSendExchangeRate(
|
|
66
|
+
SendExchangeRateParam calldata sendParam,
|
|
67
|
+
bool payInLzToken
|
|
68
|
+
) external view returns (MessagingFee memory fee);
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* @dev Execute sending exchange rate to another chain
|
|
72
|
+
* @param sendParam The parameters required for the operation
|
|
73
|
+
* @param fee The calculated fee for the operation. This can be retrieved through quoteSendExchangeRate() for estimation
|
|
74
|
+
* - nativeFee: the fee paid in native token
|
|
75
|
+
* - lzTokenFee: the fee paid in lzToken
|
|
76
|
+
* @return receipt The message receipt for the send operation, contains guid, nonce and the actual fee required
|
|
77
|
+
*/
|
|
78
|
+
function sendExchangeRate(
|
|
79
|
+
SendExchangeRateParam calldata sendParam,
|
|
80
|
+
MessagingFee calldata fee
|
|
81
|
+
) external payable returns (MessagingReceipt memory receipt);
|
|
82
|
+
|
|
83
|
+
// ====== Admin functions ======
|
|
84
|
+
|
|
85
|
+
function setAllowedSender(address _allowedSender) external;
|
|
86
|
+
}
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
pragma solidity ^0.8.0;
|
|
3
3
|
|
|
4
4
|
interface IPGauge {
|
|
5
|
+
event RedeemRewards(address indexed user, uint256[] rewardsOut);
|
|
6
|
+
|
|
7
|
+
event UpdateActiveBalance(address indexed user, uint256 newActiveBalance);
|
|
8
|
+
|
|
5
9
|
function totalActiveSupply() external view returns (uint256);
|
|
6
10
|
|
|
7
11
|
function activeBalance(address user) external view returns (uint256);
|
|
8
|
-
|
|
9
|
-
// only available for newer factories. please check the verified contracts
|
|
10
|
-
event RedeemRewards(address indexed user, uint256[] rewardsOut);
|
|
11
12
|
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
2
|
pragma solidity ^0.8.0;
|
|
3
3
|
|
|
4
|
-
import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
|
4
|
+
// import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
|
5
5
|
import "./IPPrincipalToken.sol";
|
|
6
6
|
import "./IPYieldToken.sol";
|
|
7
7
|
import "./IStandardizedYield.sol";
|
|
8
8
|
import "./IPGauge.sol";
|
|
9
9
|
import "../core/Market/MarketMathCore.sol";
|
|
10
10
|
|
|
11
|
-
interface IPMarket is
|
|
11
|
+
interface IPMarket is IPGauge, IERC20Metadata {
|
|
12
12
|
event Mint(address indexed receiver, uint256 netLpMinted, uint256 netSyUsed, uint256 netPtUsed);
|
|
13
13
|
|
|
14
14
|
event Burn(
|
|
@@ -90,4 +90,10 @@ interface IPMarket is IERC20Metadata, IPGauge {
|
|
|
90
90
|
uint16 observationCardinality,
|
|
91
91
|
uint16 observationCardinalityNext
|
|
92
92
|
);
|
|
93
|
+
|
|
94
|
+
function getNonOverrideLnFeeRateRoot() external view returns (uint80);
|
|
95
|
+
|
|
96
|
+
function VERSION() external pure returns (uint256);
|
|
97
|
+
|
|
98
|
+
function reentrancyGuardEntered() external view returns (bool);
|
|
93
99
|
}
|
|
@@ -2,22 +2,34 @@
|
|
|
2
2
|
pragma solidity ^0.8.0;
|
|
3
3
|
|
|
4
4
|
interface IPMarketFactory {
|
|
5
|
-
|
|
6
|
-
uint80 lnFeeRateRoot;
|
|
7
|
-
uint8 reserveFeePercent;
|
|
8
|
-
bool active;
|
|
9
|
-
}
|
|
5
|
+
event SetOverriddenFee(address indexed router, address indexed market, uint80 lnFeeRateRoot);
|
|
10
6
|
|
|
11
|
-
event
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
event CreateNewMarket(
|
|
8
|
+
address indexed market,
|
|
9
|
+
address indexed PT,
|
|
10
|
+
int256 scalarRoot,
|
|
11
|
+
int256 initialAnchor,
|
|
12
|
+
uint256 lnFeeRateRoot
|
|
13
|
+
);
|
|
14
14
|
|
|
15
|
-
event
|
|
15
|
+
event NewTreasuryAndFeeReserve(address indexed treasury, uint8 reserveFeePercent);
|
|
16
|
+
|
|
17
|
+
function VERSION() external pure returns (uint256);
|
|
16
18
|
|
|
17
19
|
function isValidMarket(address market) external view returns (bool);
|
|
18
20
|
|
|
19
21
|
// If this is changed, change the readState function in market as well
|
|
20
22
|
function getMarketConfig(
|
|
23
|
+
address market,
|
|
21
24
|
address router
|
|
22
|
-
) external view returns (address treasury, uint80
|
|
25
|
+
) external view returns (address treasury, uint80 overriddenFee, uint8 reserveFeePercent);
|
|
26
|
+
|
|
27
|
+
function createNewMarket(
|
|
28
|
+
address PT,
|
|
29
|
+
int256 scalarRoot,
|
|
30
|
+
int256 initialAnchor,
|
|
31
|
+
uint80 lnFeeRateRoot
|
|
32
|
+
) external returns (address market);
|
|
33
|
+
|
|
34
|
+
function setOverriddenFee(address router, address market, uint80 newFee) external;
|
|
23
35
|
}
|
|
@@ -18,4 +18,8 @@ interface IPPrincipalToken is IERC20Metadata {
|
|
|
18
18
|
function expiry() external view returns (uint256);
|
|
19
19
|
|
|
20
20
|
function isExpired() external view returns (bool);
|
|
21
|
+
|
|
22
|
+
function VERSION() external pure returns (uint256);
|
|
23
|
+
|
|
24
|
+
function reentrancyGuardEntered() external view returns (bool);
|
|
21
25
|
}
|
|
@@ -34,6 +34,8 @@ interface IPYieldContractFactory {
|
|
|
34
34
|
|
|
35
35
|
event SetTreasury(address indexed treasury);
|
|
36
36
|
|
|
37
|
+
function VERSION() external pure returns (uint256);
|
|
38
|
+
|
|
37
39
|
function getPT(address SY, uint256 expiry) external view returns (address);
|
|
38
40
|
|
|
39
41
|
function getYT(address SY, uint256 expiry) external view returns (address);
|
|
@@ -59,4 +59,8 @@ interface IPYieldToken is IERC20Metadata, IRewardManager, IPInterestManagerYT {
|
|
|
59
59
|
function doCacheIndexSameBlock() external view returns (bool);
|
|
60
60
|
|
|
61
61
|
function pyIndexLastUpdatedBlock() external view returns (uint128);
|
|
62
|
+
|
|
63
|
+
function reentrancyGuardEntered() external view returns (bool);
|
|
64
|
+
|
|
65
|
+
function VERSION() external pure returns (uint256);
|
|
62
66
|
}
|
|
@@ -7,15 +7,14 @@ import "../../interfaces/IOwnable.sol";
|
|
|
7
7
|
import "../../core/libraries/BoringOwnableUpgradeableV2.sol";
|
|
8
8
|
|
|
9
9
|
contract PendleCommonPoolDeployHelperV2 is PendlePoolDeployHelperV2, BoringOwnableUpgradeableV2 {
|
|
10
|
-
|
|
11
|
-
bytes32 public constant
|
|
12
|
-
bytes32 public constant
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
bytes32 public constant
|
|
16
|
-
bytes32 public constant
|
|
17
|
-
bytes32 public constant
|
|
18
|
-
bytes32 public constant ERC4626_NO_DEPOSIT_NO_REDEEM = keccak256("PendleERC4626NoRedeemNoDepositUpgSY"); // 0x5c1cddc0128e0b02bb711f84a022bf1c13177d4ab028830b702f3a77280025ea
|
|
10
|
+
bytes32 public constant ERC4626_DEPLOY_ID = keccak256("PendleERC4626SYV2"); // 0x1278efc0e6754cd30fef2df25ff5ced072ebb194d348b0b1b9548166d24352ef
|
|
11
|
+
bytes32 public constant ERC4626_NOT_REDEEMABLE_DEPLOY_ID = keccak256("PendleERC4626NotRedeemableToAssetSYV2"); // 0x6f089cd4afdd945c5c26b3f4542d0c294d19ec0e339c6ce4f8eafa94d700d05d
|
|
12
|
+
bytes32 public constant ERC20_DEPLOY_ID = keccak256("PendleERC20SY"); // 0xfcf22a9a515753d83e4f2a81cf368c7226408c64f52411ae95241ebf5ed53304
|
|
13
|
+
|
|
14
|
+
bytes32 public constant ERC4626_WITH_ADAPTER_ID = keccak256("PendleERC4626WithAdapterSY"); // 0x73f41560741d6765943d3c955034291fe23d9141e3a4719bc97422d5bf019adc
|
|
15
|
+
bytes32 public constant ERC4626_NO_REDEEM_WITH_ADAPTER_ID = keccak256("PendleERC4626NoRedeemWithAdapterSY"); // 0x3b8dd2b992f773444e5422ba1db289c4657c57110d740dca7975dc095632ef23
|
|
16
|
+
bytes32 public constant ERC20_WITH_ADAPTER_ID = keccak256("PendleERC20WithAdapterSY"); // 0xe5cce2b1999bf8c2cc4cf6d96d0569a24d8b782ba1647c09a8e1aa8bbfb98996
|
|
17
|
+
bytes32 public constant ERC4626_NO_DEPOSIT_NO_REDEEM = keccak256("PendleERC4626NoRedeemNoDepositUpgSY"); // 0x5c1cddc0128e0b02bb711f84a022bf1c13177d4ab028830b702f3a77280025ea
|
|
19
18
|
|
|
20
19
|
address public immutable syFactory;
|
|
21
20
|
|
|
@@ -36,12 +35,13 @@ contract PendleCommonPoolDeployHelperV2 is PendlePoolDeployHelperV2, BoringOwnab
|
|
|
36
35
|
function deployCommonMarketById(
|
|
37
36
|
bytes32 id,
|
|
38
37
|
bytes memory constructorParams,
|
|
38
|
+
bytes memory initData,
|
|
39
39
|
PoolConfig memory config,
|
|
40
40
|
address tokenToSeedLiqudity,
|
|
41
41
|
uint256 amountToSeed,
|
|
42
42
|
address syOwner
|
|
43
43
|
) external returns (PoolDeploymentAddrs memory) {
|
|
44
|
-
address SY = IPCommonSYFactory(syFactory).
|
|
44
|
+
address SY = IPCommonSYFactory(syFactory).deployUpgradableSY(id, constructorParams, initData, syOwner);
|
|
45
45
|
return deploy5115MarketAndSeedLiquidity(SY, config, tokenToSeedLiqudity, amountToSeed);
|
|
46
46
|
}
|
|
47
47
|
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
pragma solidity ^0.8.17;
|
|
3
3
|
|
|
4
4
|
import "../../interfaces/IPAllActionV3.sol";
|
|
5
|
-
import "../../interfaces/
|
|
5
|
+
import "../../interfaces/IPMarketFactory.sol";
|
|
6
6
|
import "../../interfaces/IPYieldContractFactory.sol";
|
|
7
|
-
import "../../interfaces/
|
|
7
|
+
import "../../interfaces/IPMarket.sol";
|
|
8
8
|
// import "../core/StandardizedYield/implementations/PendleERC4626SY.sol";
|
|
9
9
|
import "../../core/libraries/TokenHelper.sol";
|
|
10
10
|
|
|
@@ -53,7 +53,7 @@ contract PendlePoolDeployHelper is TokenHelper {
|
|
|
53
53
|
params.expiry,
|
|
54
54
|
params.doCacheIndexSameBlock
|
|
55
55
|
);
|
|
56
|
-
market =
|
|
56
|
+
market = IPMarketFactory(marketFactory).createNewMarket(
|
|
57
57
|
PT,
|
|
58
58
|
params.scalarRoot,
|
|
59
59
|
params.initialRateAnchor,
|
|
@@ -120,15 +120,15 @@ contract PendlePoolDeployHelper is TokenHelper {
|
|
|
120
120
|
int256 initialRateAnchor
|
|
121
121
|
) external returns (address newMarket) {
|
|
122
122
|
(, IPPrincipalToken PT, ) = IPMarket(oldMarket).readTokens();
|
|
123
|
-
newMarket =
|
|
123
|
+
newMarket = IPMarketFactory(marketFactory).createNewMarket(
|
|
124
124
|
address(PT),
|
|
125
125
|
scalarRoot,
|
|
126
126
|
initialRateAnchor,
|
|
127
127
|
lnFeeRateRoot
|
|
128
128
|
);
|
|
129
129
|
_transferFrom(IERC20(oldMarket), msg.sender, oldMarket, amountLp);
|
|
130
|
-
(uint256 netSyOut, uint256 netPtOut) =
|
|
131
|
-
|
|
130
|
+
(uint256 netSyOut, uint256 netPtOut) = IPMarket(oldMarket).burn(newMarket, newMarket, amountLp);
|
|
131
|
+
IPMarket(newMarket).mint(msg.sender, netSyOut, netPtOut);
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
receive() external payable {}
|