@pendle/core-v2 5.6.0 → 5.7.0
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/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
- package/build/artifacts/contracts/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/PendleGauge.sol/PendleGauge.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/v1/PendleMarket.sol/PendleMarket.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/v1/PendleMarket.sol/PendleMarket.json +2 -2
- package/build/artifacts/contracts/core/Market/v1/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/v1/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
- package/build/artifacts/contracts/core/Market/v3/PendleMarketFactoryV3.sol/PendleMarketFactoryV3.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/v3/PendleMarketFactoryV3.sol/PendleMarketFactoryV3.json +2 -2
- package/build/artifacts/contracts/core/Market/v3/PendleMarketV3.sol/PendleMarketV3.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/v3/PendleMarketV3.sol/PendleMarketV3.json +2 -2
- package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
- package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.json +2 -2
- package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.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/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/interfaces/IOwnable.sol/IOwnable.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IOwnable.sol/IOwnable.json +34 -0
- 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/IPCommonSYFactory.sol/IPCommonSYFactory.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPCommonSYFactory.sol/IPCommonSYFactory.json +40 -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/IPMarketV3.sol/IPMarketV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPoolDeployHelperV2.sol/IPPoolDeployHelperV2.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPPoolDeployHelperV2.sol/IPPoolDeployHelperV2.json +162 -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/IPendleCommonPoolDeployHelperV2.sol/IPendleCommonPoolDeployHelperV2.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPendleCommonPoolDeployHelperV2.sol/IPendleCommonPoolDeployHelperV2.json +426 -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/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/LimitBackendHelper.sol/LimitBackendHelper.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/LimitBackendHelper.sol/LimitBackendHelper.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/deploy/PendleCommonPoolDeployHelperV2.sol/PendleCommonPoolDeployHelperV2.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol/PendleCommonPoolDeployHelperV2.json +651 -0
- package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonSYFactory.sol/PendleCommonSYFactory.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonSYFactory.sol/PendleCommonSYFactory.json +329 -0
- package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/{PendlePoolDeployHelper.sol → deploy/PendlePoolDeployHelper.sol}/PendlePoolDeployHelper.json +3 -3
- package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol/PendlePoolDeployHelperV2.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol/PendlePoolDeployHelperV2.json +235 -0
- package/build/artifacts/contracts/offchain-helpers/deploy/lib/MarketDeployLib.sol/MarketDeployLib.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/deploy/lib/MarketDeployLib.sol/MarketDeployLib.json +10 -0
- 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/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/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/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/PendleSparkLinearDiscountOracleFactory.sol/PendleSparkLinearDiscountOracleFactory.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol/PendleSparkLinearDiscountOracleFactory.json +29 -5
- 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/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/contracts/core/libraries/math/PMath.sol +5 -0
- package/contracts/interfaces/IOwnable.sol +6 -0
- package/contracts/interfaces/IPCommonSYFactory.sol +6 -0
- package/contracts/interfaces/IPPoolDeployHelperV2.sol +36 -0
- package/contracts/interfaces/IPendleCommonPoolDeployHelperV2.sol +30 -0
- package/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol +68 -0
- package/contracts/offchain-helpers/deploy/PendleCommonSYFactory.sol +67 -0
- package/contracts/offchain-helpers/{PendlePoolDeployHelper.sol → deploy/PendlePoolDeployHelper.sol} +5 -5
- package/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol +159 -0
- package/contracts/offchain-helpers/deploy/lib/MarketDeployLib.sol +70 -0
- package/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol +9 -2
- package/deployments/146-core.json +47 -0
- package/deployments/146-offchain-helper.json +6 -0
- package/package.json +1 -1
- package/typechain-types/BoringPYUsdChainlinkAssetOracle.ts +244 -0
- package/typechain-types/BoringPYUsdChainlinkSYOracle.ts +243 -0
- package/typechain-types/Broadcaster.ts +454 -0
- package/typechain-types/IOwnable.ts +114 -0
- package/typechain-types/IPActionMarketCoreStatic.ts +1974 -0
- package/typechain-types/IPCommonSYFactory.ts +111 -0
- package/typechain-types/IPMarket.ts +1045 -0
- package/typechain-types/IPMarketV3.ts +1068 -0
- package/typechain-types/IPPoolDeployHelperV2.ts +209 -0
- package/typechain-types/IPVotingController.ts +510 -0
- package/typechain-types/IPVotingEscrowMainchain.ts +461 -0
- package/typechain-types/IPendleCommonPoolDeployHelperV2.ts +391 -0
- package/typechain-types/InterestManagerYT.ts +120 -0
- package/typechain-types/PendleBoringOneracle.ts +87 -0
- package/typechain-types/PendleBoringSolvBTCOneracle.ts +87 -0
- package/typechain-types/PendleChainlinkOracle.ts +299 -0
- package/typechain-types/PendleChainlinkOracleFactory.ts +468 -0
- package/typechain-types/PendleChainlinkOracleWithQuote.ts +335 -0
- package/typechain-types/PendleCommonPoolDeployHelperV2.ts +698 -0
- package/typechain-types/PendleCommonSYFactory.ts +420 -0
- package/typechain-types/PendleExchangeRateOracle.ts +393 -0
- package/typechain-types/PendleFeeDistributor.ts +745 -0
- package/typechain-types/PendleGauge.ts +225 -0
- package/typechain-types/PendleGaugeControllerBaseUpg.ts +670 -0
- package/typechain-types/PendleGaugeControllerMainchainUpg.ts +758 -0
- package/typechain-types/PendleGaugeControllerSidechainUpg.ts +750 -0
- package/typechain-types/PendleMarket.ts +1207 -0
- package/typechain-types/PendleMarketFactory.ts +906 -0
- package/typechain-types/PendlePYLpOracle.ts +619 -0
- package/typechain-types/PendlePoolDeployHelperV2.ts +283 -0
- package/typechain-types/PendleRedStoneRateOracleAdapter.ts +133 -0
- package/typechain-types/PendleSparkLinearDiscountOracleFactory.ts +60 -18
- package/typechain-types/PendleVotingControllerUpg.ts +1621 -0
- package/typechain-types/PendleYieldContractFactory.ts +801 -0
- package/typechain-types/PendleYieldToken.ts +1107 -0
- package/typechain-types/RewardManager.ts +161 -0
- package/typechain-types/RewardManagerAbstract.ts +108 -0
- package/typechain-types/VotingControllerStorageUpg.ts +915 -0
- package/typechain-types/VotingEscrowPendleMainchain.ts +1045 -0
- package/typechain-types/VotingEscrowPendleSidechain.ts +558 -0
- package/typechain-types/VotingEscrowTokenBase.ts +252 -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/BoringPYUsdChainlinkAssetOracle__factory.ts +269 -0
- package/typechain-types/factories/BoringPYUsdChainlinkSYOracle__factory.ts +267 -0
- package/typechain-types/factories/Broadcaster__factory.ts +311 -0
- package/typechain-types/factories/IOwnable__factory.ts +46 -0
- package/typechain-types/factories/IPActionMarketCoreStatic__factory.ts +1300 -0
- package/typechain-types/factories/IPCommonSYFactory__factory.ts +55 -0
- package/typechain-types/factories/IPMarketV3__factory.ts +845 -0
- package/typechain-types/factories/IPMarket__factory.ts +832 -0
- package/typechain-types/factories/IPPoolDeployHelperV2__factory.ts +181 -0
- package/typechain-types/factories/IPVotingController__factory.ts +363 -0
- package/typechain-types/factories/IPVotingEscrowMainchain__factory.ts +340 -0
- package/typechain-types/factories/IPendleCommonPoolDeployHelperV2__factory.ts +447 -0
- package/typechain-types/factories/InterestManagerYT__factory.ts +63 -0
- package/typechain-types/factories/LimitBackendHelper__factory.ts +1 -1
- package/typechain-types/factories/PendleBoringOneracle__factory.ts +81 -0
- package/typechain-types/factories/PendleBoringSolvBTCOneracle__factory.ts +83 -0
- package/typechain-types/factories/PendleChainlinkOracleFactory__factory.ts +405 -0
- package/typechain-types/factories/PendleChainlinkOracleWithQuote__factory.ts +341 -0
- package/typechain-types/factories/PendleChainlinkOracle__factory.ts +306 -0
- package/typechain-types/factories/PendleCommonPoolDeployHelperV2__factory.ts +728 -0
- package/typechain-types/factories/PendleCommonSYFactory__factory.ts +386 -0
- package/typechain-types/factories/PendleExchangeRateOracle__factory.ts +379 -0
- package/typechain-types/factories/PendleFeeDistributor__factory.ts +665 -0
- package/typechain-types/factories/PendleGaugeControllerBaseUpg__factory.ts +457 -0
- package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +620 -0
- package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +610 -0
- package/typechain-types/factories/PendleGauge__factory.ts +140 -0
- package/typechain-types/factories/PendleLimitRouter__factory.ts +1 -1
- package/typechain-types/factories/PendleMarketFactoryV3__factory.ts +1 -1
- package/typechain-types/factories/PendleMarketFactory__factory.ts +748 -0
- package/typechain-types/factories/PendleMarketV3__factory.ts +1 -1
- package/typechain-types/factories/PendleMarket__factory.ts +1212 -0
- package/typechain-types/factories/PendlePYLpOracle__factory.ts +475 -0
- package/typechain-types/factories/PendlePoolDeployHelperV2__factory.ts +308 -0
- package/typechain-types/factories/PendlePoolDeployHelper__factory.ts +1 -1
- package/typechain-types/factories/PendleRedStoneRateOracleAdapter__factory.ts +157 -0
- package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
- package/typechain-types/factories/PendleRouterV4__factory.ts +1 -1
- package/typechain-types/factories/PendleSparkLinearDiscountOracleFactory__factory.ts +28 -4
- package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1278 -0
- package/typechain-types/factories/PendleYieldContractFactory__factory.ts +674 -0
- package/typechain-types/factories/PendleYieldToken__factory.ts +978 -0
- package/typechain-types/factories/Reflector__factory.ts +1 -1
- package/typechain-types/factories/RewardManagerAbstract__factory.ts +59 -0
- package/typechain-types/factories/RewardManager__factory.ts +89 -0
- package/typechain-types/factories/VotingControllerStorageUpg__factory.ts +700 -0
- package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +856 -0
- package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +455 -0
- package/typechain-types/factories/VotingEscrowTokenBase__factory.ts +162 -0
- package/typechain-types/hardhat.d.ts +72 -9
- package/typechain-types/index.ts +16 -2
- package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +0 -4
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"contractName": "MarketApproxPtInLibOnchain",
|
|
4
4
|
"sourceName": "contracts/router/math/MarketApproxLibOnchain.sol",
|
|
5
5
|
"abi": [],
|
|
6
|
-
"bytecode": "
|
|
7
|
-
"deployedBytecode": "
|
|
6
|
+
"bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220db58a967387c96ef256ca85026693abcc2eda68d78b98c1e8b09b7b9e5ccc7d464736f6c63430008170033",
|
|
7
|
+
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220db58a967387c96ef256ca85026693abcc2eda68d78b98c1e8b09b7b9e5ccc7d464736f6c63430008170033",
|
|
8
8
|
"linkReferences": {},
|
|
9
9
|
"deployedLinkReferences": {}
|
|
10
10
|
}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"contractName": "MarketApproxPtOutLibOnchain",
|
|
4
4
|
"sourceName": "contracts/router/math/MarketApproxLibOnchain.sol",
|
|
5
5
|
"abi": [],
|
|
6
|
-
"bytecode": "
|
|
7
|
-
"deployedBytecode": "
|
|
6
|
+
"bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b01d830ebc55a8101440a48133846bc45b73a5760f470f9d9e71a9bcbb9da5ca64736f6c63430008170033",
|
|
7
|
+
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b01d830ebc55a8101440a48133846bc45b73a5760f470f9d9e71a9bcbb9da5ca64736f6c63430008170033",
|
|
8
8
|
"linkReferences": {},
|
|
9
9
|
"deployedLinkReferences": {}
|
|
10
10
|
}
|
package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtInLibV2.json
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"contractName": "MarketApproxPtInLibV2",
|
|
4
4
|
"sourceName": "contracts/router/math/MarketApproxLibV2.sol",
|
|
5
5
|
"abi": [],
|
|
6
|
-
"bytecode": "
|
|
7
|
-
"deployedBytecode": "
|
|
6
|
+
"bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200745ab83bec35c6cb543bd00729e05a3d8d559995343acab0afc082338b1eef464736f6c63430008170033",
|
|
7
|
+
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200745ab83bec35c6cb543bd00729e05a3d8d559995343acab0afc082338b1eef464736f6c63430008170033",
|
|
8
8
|
"linkReferences": {},
|
|
9
9
|
"deployedLinkReferences": {}
|
|
10
10
|
}
|
package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtOutLibV2.json
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"contractName": "MarketApproxPtOutLibV2",
|
|
4
4
|
"sourceName": "contracts/router/math/MarketApproxLibV2.sol",
|
|
5
5
|
"abi": [],
|
|
6
|
-
"bytecode": "
|
|
7
|
-
"deployedBytecode": "
|
|
6
|
+
"bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cab98746dcd717d1857c86a735c91e23176716c3fac175ac2c8a5e4806d36b0e64736f6c63430008170033",
|
|
7
|
+
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cab98746dcd717d1857c86a735c91e23176716c3fac175ac2c8a5e4806d36b0e64736f6c63430008170033",
|
|
8
8
|
"linkReferences": {},
|
|
9
9
|
"deployedLinkReferences": {}
|
|
10
10
|
}
|
|
@@ -206,6 +206,11 @@ library PMath {
|
|
|
206
206
|
return uint192(x);
|
|
207
207
|
}
|
|
208
208
|
|
|
209
|
+
function Uint80(uint256 x) internal pure returns (uint80) {
|
|
210
|
+
require(x <= type(uint80).max);
|
|
211
|
+
return uint80(x);
|
|
212
|
+
}
|
|
213
|
+
|
|
209
214
|
function isAApproxB(uint256 a, uint256 b, uint256 eps) internal pure returns (bool) {
|
|
210
215
|
return mulDown(b, ONE - eps) <= a && a <= mulDown(b, ONE + eps);
|
|
211
216
|
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
interface IPPoolDeployHelperV2 {
|
|
5
|
+
struct PoolDeploymentParams {
|
|
6
|
+
uint32 expiry;
|
|
7
|
+
uint80 lnFeeRateRoot;
|
|
8
|
+
int256 scalarRoot;
|
|
9
|
+
int256 initialRateAnchor;
|
|
10
|
+
bool doCacheIndexSameBlock;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
struct PoolDeploymentAddrs {
|
|
14
|
+
address SY;
|
|
15
|
+
address PT;
|
|
16
|
+
address YT;
|
|
17
|
+
address market;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
struct PoolConfig {
|
|
21
|
+
uint32 expiry;
|
|
22
|
+
uint256 rateMin;
|
|
23
|
+
uint256 rateMax;
|
|
24
|
+
uint256 desiredImpliedRate;
|
|
25
|
+
uint256 fee;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
event MarketDeployment(PoolDeploymentAddrs addrs, PoolDeploymentParams params);
|
|
29
|
+
|
|
30
|
+
function deploy5115MarketAndSeedLiquidity(
|
|
31
|
+
address SY,
|
|
32
|
+
PoolConfig memory config,
|
|
33
|
+
address tokenToSeedLiqudity,
|
|
34
|
+
uint256 amountToSeed
|
|
35
|
+
) external payable returns (PoolDeploymentAddrs memory);
|
|
36
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
import "./IPPoolDeployHelperV2.sol";
|
|
5
|
+
|
|
6
|
+
interface IPendleCommonPoolDeployHelperV2 is IPPoolDeployHelperV2 {
|
|
7
|
+
function deployERC4626Market(
|
|
8
|
+
bytes memory constructorParams,
|
|
9
|
+
PoolConfig memory config,
|
|
10
|
+
address tokenToSeedLiqudity,
|
|
11
|
+
uint256 amountToSeed,
|
|
12
|
+
address syOwner
|
|
13
|
+
) external returns (PoolDeploymentAddrs memory);
|
|
14
|
+
|
|
15
|
+
function deployERC4626NotRedeemableMarket(
|
|
16
|
+
bytes memory constructorParams,
|
|
17
|
+
PoolConfig memory config,
|
|
18
|
+
address tokenToSeedLiqudity,
|
|
19
|
+
uint256 amountToSeed,
|
|
20
|
+
address syOwner
|
|
21
|
+
) external returns (PoolDeploymentAddrs memory);
|
|
22
|
+
|
|
23
|
+
function deployERC20Market(
|
|
24
|
+
bytes memory constructorParams,
|
|
25
|
+
PoolConfig memory config,
|
|
26
|
+
address tokenToSeedLiqudity,
|
|
27
|
+
uint256 amountToSeed,
|
|
28
|
+
address syOwner
|
|
29
|
+
) external returns (PoolDeploymentAddrs memory);
|
|
30
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity ^0.8.17;
|
|
3
|
+
|
|
4
|
+
import "./PendlePoolDeployHelperV2.sol";
|
|
5
|
+
import "../../interfaces/IPCommonSYFactory.sol";
|
|
6
|
+
import "../../interfaces/IOwnable.sol";
|
|
7
|
+
import "../../core/libraries/BoringOwnableUpgradeable.sol";
|
|
8
|
+
|
|
9
|
+
contract PendleCommonPoolDeployHelperV2 is PendlePoolDeployHelperV2, BoringOwnableUpgradeable {
|
|
10
|
+
bytes32 public constant ERC4626_DEPLOY_ID = keccak256("PendleERC4626SYV2");
|
|
11
|
+
bytes32 public constant ERC4626_NOT_REDEEMABLE_DEPLOY_ID = keccak256("PendleERC4626NotRedeemableToAssetSYV2");
|
|
12
|
+
bytes32 public constant ERC20_DEPLOY_ID = keccak256("PendleERC20SY");
|
|
13
|
+
|
|
14
|
+
address public immutable syFactory;
|
|
15
|
+
|
|
16
|
+
constructor(
|
|
17
|
+
address _syFactory,
|
|
18
|
+
address _router,
|
|
19
|
+
address _yieldContractFactory,
|
|
20
|
+
address _marketFactory
|
|
21
|
+
) PendlePoolDeployHelperV2(_router, _yieldContractFactory, _marketFactory) {
|
|
22
|
+
syFactory = _syFactory;
|
|
23
|
+
_disableInitializers();
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function initialize() external initializer {
|
|
27
|
+
__BoringOwnable_init();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Those 3 are all not payable as they should not accept tokenIn as native
|
|
31
|
+
|
|
32
|
+
function deployERC4626Market(
|
|
33
|
+
bytes memory constructorParams,
|
|
34
|
+
PoolConfig memory config,
|
|
35
|
+
address tokenToSeedLiqudity,
|
|
36
|
+
uint256 amountToSeed,
|
|
37
|
+
address syOwner
|
|
38
|
+
) external returns (PoolDeploymentAddrs memory) {
|
|
39
|
+
address SY = IPCommonSYFactory(syFactory).deploySY(ERC4626_DEPLOY_ID, constructorParams, syOwner);
|
|
40
|
+
return deploy5115MarketAndSeedLiquidity(SY, config, tokenToSeedLiqudity, amountToSeed);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function deployERC4626NotRedeemableMarket(
|
|
44
|
+
bytes memory constructorParams,
|
|
45
|
+
PoolConfig memory config,
|
|
46
|
+
address tokenToSeedLiqudity,
|
|
47
|
+
uint256 amountToSeed,
|
|
48
|
+
address syOwner
|
|
49
|
+
) external returns (PoolDeploymentAddrs memory) {
|
|
50
|
+
address SY = IPCommonSYFactory(syFactory).deploySY(
|
|
51
|
+
ERC4626_NOT_REDEEMABLE_DEPLOY_ID,
|
|
52
|
+
constructorParams,
|
|
53
|
+
syOwner
|
|
54
|
+
);
|
|
55
|
+
return deploy5115MarketAndSeedLiquidity(SY, config, tokenToSeedLiqudity, amountToSeed);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function deployERC20Market(
|
|
59
|
+
bytes memory constructorParams,
|
|
60
|
+
PoolConfig memory config,
|
|
61
|
+
address tokenToSeedLiqudity,
|
|
62
|
+
uint256 amountToSeed,
|
|
63
|
+
address syOwner
|
|
64
|
+
) external returns (PoolDeploymentAddrs memory) {
|
|
65
|
+
address SY = IPCommonSYFactory(syFactory).deploySY(ERC20_DEPLOY_ID, constructorParams, syOwner);
|
|
66
|
+
return deploy5115MarketAndSeedLiquidity(SY, config, tokenToSeedLiqudity, amountToSeed);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity ^0.8.17;
|
|
3
|
+
|
|
4
|
+
import "../../core/libraries/BoringOwnableUpgradeable.sol";
|
|
5
|
+
import "../../core/libraries/BaseSplitCodeFactory.sol";
|
|
6
|
+
import "../../interfaces/IOwnable.sol";
|
|
7
|
+
|
|
8
|
+
contract PendleCommonSYFactory is BoringOwnableUpgradeable {
|
|
9
|
+
error InvalidCreationCode(bytes32 id, CreationCode code);
|
|
10
|
+
|
|
11
|
+
error InvalidSYId(bytes32 id);
|
|
12
|
+
|
|
13
|
+
struct CreationCode {
|
|
14
|
+
address creationCodeContractA;
|
|
15
|
+
uint256 creationCodeSizeA;
|
|
16
|
+
address creationCodeContractB;
|
|
17
|
+
uint256 creationCodeSizeB;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
event SetSYCreationCode(bytes32 id, CreationCode code);
|
|
21
|
+
|
|
22
|
+
event DeployedSY(bytes32 id, bytes constructorParams, address SY);
|
|
23
|
+
|
|
24
|
+
mapping(bytes32 => CreationCode) public creationCodes;
|
|
25
|
+
|
|
26
|
+
constructor() {
|
|
27
|
+
_disableInitializers();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function initialize() external initializer {
|
|
31
|
+
__BoringOwnable_init();
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function setSYCreationCode(bytes32 id, CreationCode memory code) external onlyOwner {
|
|
35
|
+
if (
|
|
36
|
+
code.creationCodeContractA == address(0) ||
|
|
37
|
+
code.creationCodeContractB == address(0) ||
|
|
38
|
+
code.creationCodeSizeA == 0 ||
|
|
39
|
+
code.creationCodeSizeB == 0
|
|
40
|
+
) {
|
|
41
|
+
revert InvalidCreationCode(id, code);
|
|
42
|
+
}
|
|
43
|
+
creationCodes[id] = code;
|
|
44
|
+
emit SetSYCreationCode(id, code);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function deploySY(bytes32 id, bytes memory constructorParams, address syOwner) external returns (address SY) {
|
|
48
|
+
CreationCode memory code = creationCodes[id];
|
|
49
|
+
|
|
50
|
+
if (code.creationCodeContractA == address(0)) {
|
|
51
|
+
revert InvalidSYId(id);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
SY = BaseSplitCodeFactory._create2(
|
|
55
|
+
0,
|
|
56
|
+
bytes32(block.chainid),
|
|
57
|
+
constructorParams,
|
|
58
|
+
code.creationCodeContractA,
|
|
59
|
+
code.creationCodeSizeA,
|
|
60
|
+
code.creationCodeContractB,
|
|
61
|
+
code.creationCodeSizeB
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
emit DeployedSY(id, constructorParams, SY);
|
|
65
|
+
IOwnable(SY).transferOwnership(syOwner, true, false);
|
|
66
|
+
}
|
|
67
|
+
}
|
package/contracts/offchain-helpers/{PendlePoolDeployHelper.sol → deploy/PendlePoolDeployHelper.sol}
RENAMED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity ^0.8.17;
|
|
3
3
|
|
|
4
|
-
import "
|
|
5
|
-
import "
|
|
6
|
-
import "
|
|
7
|
-
import "
|
|
4
|
+
import "../../interfaces/IPAllActionV3.sol";
|
|
5
|
+
import "../../interfaces/IPMarketFactoryV3.sol";
|
|
6
|
+
import "../../interfaces/IPYieldContractFactory.sol";
|
|
7
|
+
import "../../interfaces/IPMarketV3.sol";
|
|
8
8
|
// import "../core/StandardizedYield/implementations/PendleERC4626SY.sol";
|
|
9
|
-
import "
|
|
9
|
+
import "../../core/libraries/TokenHelper.sol";
|
|
10
10
|
|
|
11
11
|
contract PendlePoolDeployHelper is TokenHelper {
|
|
12
12
|
address public immutable router;
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.17;
|
|
3
|
+
|
|
4
|
+
import "../../core/libraries/TokenHelper.sol";
|
|
5
|
+
import "../../interfaces/IPAllActionV3.sol";
|
|
6
|
+
import "../../interfaces/IPMarketFactoryV3.sol";
|
|
7
|
+
import "../../interfaces/IPYieldContractFactory.sol";
|
|
8
|
+
import "../../interfaces/IPMarketV3.sol";
|
|
9
|
+
import "./lib/MarketDeployLib.sol";
|
|
10
|
+
|
|
11
|
+
contract PendlePoolDeployHelperV2 is TokenHelper {
|
|
12
|
+
using PMath for uint256;
|
|
13
|
+
using PMath for int256;
|
|
14
|
+
|
|
15
|
+
struct PoolDeploymentParams {
|
|
16
|
+
uint32 expiry;
|
|
17
|
+
uint80 lnFeeRateRoot;
|
|
18
|
+
int256 scalarRoot;
|
|
19
|
+
int256 initialRateAnchor;
|
|
20
|
+
bool doCacheIndexSameBlock;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
struct PoolDeploymentAddrs {
|
|
24
|
+
address SY;
|
|
25
|
+
address PT;
|
|
26
|
+
address YT;
|
|
27
|
+
address market;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
struct PoolConfig {
|
|
31
|
+
uint32 expiry;
|
|
32
|
+
uint256 rateMin;
|
|
33
|
+
uint256 rateMax;
|
|
34
|
+
uint256 desiredImpliedRate;
|
|
35
|
+
uint256 fee;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
event MarketDeployment(PoolDeploymentAddrs addrs, PoolDeploymentParams params);
|
|
39
|
+
|
|
40
|
+
// solhint-disable immutable-vars-naming
|
|
41
|
+
address public immutable router;
|
|
42
|
+
address public immutable yieldContractFactory;
|
|
43
|
+
address public immutable marketFactory;
|
|
44
|
+
bool public immutable doCacheIndexSameBlock;
|
|
45
|
+
|
|
46
|
+
constructor(address _router, address _yieldContractFactory, address _marketFactory) {
|
|
47
|
+
doCacheIndexSameBlock = block.chainid == 1;
|
|
48
|
+
router = _router;
|
|
49
|
+
yieldContractFactory = _yieldContractFactory;
|
|
50
|
+
marketFactory = _marketFactory;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function deploy5115MarketAndSeedLiquidity(
|
|
54
|
+
address SY,
|
|
55
|
+
PoolConfig memory config,
|
|
56
|
+
address tokenToSeedLiqudity,
|
|
57
|
+
uint256 amountToSeed
|
|
58
|
+
) public payable returns (PoolDeploymentAddrs memory) {
|
|
59
|
+
(PoolDeploymentParams memory params, PoolDeploymentAddrs memory addrs) = _deployPYAndMarket(SY, config);
|
|
60
|
+
_seedLiquidity(params, addrs, tokenToSeedLiqudity, amountToSeed, config.desiredImpliedRate);
|
|
61
|
+
return addrs;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function _deployPYAndMarket(
|
|
65
|
+
address SY,
|
|
66
|
+
PoolConfig memory config
|
|
67
|
+
) internal returns (PoolDeploymentParams memory params, PoolDeploymentAddrs memory addrs) {
|
|
68
|
+
(uint256 scalarRoot, uint256 initialRateAnchor) = MarketDeployLib.calcParams(
|
|
69
|
+
config.rateMin,
|
|
70
|
+
config.rateMax,
|
|
71
|
+
config.expiry
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
params = PoolDeploymentParams({
|
|
75
|
+
expiry: config.expiry,
|
|
76
|
+
lnFeeRateRoot: MarketDeployLib.calcFee(config.fee),
|
|
77
|
+
scalarRoot: scalarRoot.Int(),
|
|
78
|
+
initialRateAnchor: initialRateAnchor.Int(),
|
|
79
|
+
doCacheIndexSameBlock: doCacheIndexSameBlock
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
addrs.SY = SY;
|
|
83
|
+
(addrs.PT, addrs.YT) = IPYieldContractFactory(yieldContractFactory).createYieldContract(
|
|
84
|
+
SY,
|
|
85
|
+
params.expiry,
|
|
86
|
+
params.doCacheIndexSameBlock
|
|
87
|
+
);
|
|
88
|
+
|
|
89
|
+
addrs.market = IPMarketFactoryV3(marketFactory).createNewMarket(
|
|
90
|
+
addrs.PT,
|
|
91
|
+
params.scalarRoot,
|
|
92
|
+
params.initialRateAnchor,
|
|
93
|
+
params.lnFeeRateRoot
|
|
94
|
+
);
|
|
95
|
+
|
|
96
|
+
emit MarketDeployment(addrs, params);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
function _seedLiquidity(
|
|
100
|
+
PoolDeploymentParams memory params,
|
|
101
|
+
PoolDeploymentAddrs memory addrs,
|
|
102
|
+
address token,
|
|
103
|
+
uint256 amountToSeed,
|
|
104
|
+
uint256 desiredImpliedRate
|
|
105
|
+
) internal {
|
|
106
|
+
_transferIn(token, msg.sender, amountToSeed);
|
|
107
|
+
|
|
108
|
+
// Approval
|
|
109
|
+
_safeApproveInf(token, router);
|
|
110
|
+
if (token != addrs.SY) {
|
|
111
|
+
_safeApproveInf(addrs.SY, router);
|
|
112
|
+
}
|
|
113
|
+
_safeApproveInf(addrs.PT, router);
|
|
114
|
+
|
|
115
|
+
// Mint SY
|
|
116
|
+
uint256 amountSY;
|
|
117
|
+
if (token != addrs.SY) {
|
|
118
|
+
uint256 netNative = (token == NATIVE ? amountToSeed : 0);
|
|
119
|
+
amountSY = IPAllActionV3(router).mintSyFromToken{value: netNative}(
|
|
120
|
+
address(this),
|
|
121
|
+
addrs.SY,
|
|
122
|
+
0,
|
|
123
|
+
TokenInput({
|
|
124
|
+
tokenIn: token,
|
|
125
|
+
netTokenIn: amountToSeed,
|
|
126
|
+
tokenMintSy: token,
|
|
127
|
+
pendleSwap: address(0),
|
|
128
|
+
swapData: SwapData({
|
|
129
|
+
swapType: SwapType.NONE,
|
|
130
|
+
extRouter: address(0),
|
|
131
|
+
extCalldata: abi.encode(),
|
|
132
|
+
needScale: false
|
|
133
|
+
})
|
|
134
|
+
})
|
|
135
|
+
);
|
|
136
|
+
} else {
|
|
137
|
+
amountSY = amountToSeed;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
uint256 initialProportion = MarketDeployLib.calcInitialProportion(
|
|
141
|
+
params.expiry,
|
|
142
|
+
params.scalarRoot.Uint(),
|
|
143
|
+
params.initialRateAnchor.Uint(),
|
|
144
|
+
desiredImpliedRate
|
|
145
|
+
);
|
|
146
|
+
|
|
147
|
+
// mint PY
|
|
148
|
+
uint256 amountPY = IPAllActionV3(router).mintPyFromSy(
|
|
149
|
+
address(this),
|
|
150
|
+
addrs.YT,
|
|
151
|
+
amountSY.mulDown(initialProportion),
|
|
152
|
+
0
|
|
153
|
+
);
|
|
154
|
+
|
|
155
|
+
// mint LP
|
|
156
|
+
IPAllActionV3(router).addLiquidityDualSyAndPt(msg.sender, addrs.market, _selfBalance(addrs.SY), amountPY, 0);
|
|
157
|
+
_transferOut(addrs.YT, msg.sender, amountPY);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity ^0.8.17;
|
|
3
|
+
|
|
4
|
+
import "../../../core/libraries/math/PMath.sol";
|
|
5
|
+
import "../../../core/libraries/math/LogExpMath.sol";
|
|
6
|
+
|
|
7
|
+
library MarketDeployLib {
|
|
8
|
+
using PMath for uint256;
|
|
9
|
+
using PMath for int256;
|
|
10
|
+
using LogExpMath for uint256;
|
|
11
|
+
using LogExpMath for int256;
|
|
12
|
+
|
|
13
|
+
uint256 internal constant YEAR = 365 days;
|
|
14
|
+
uint256 internal constant LN_9 = 2197224577336219648;
|
|
15
|
+
|
|
16
|
+
struct CalcParamsArgs {
|
|
17
|
+
uint256 yearsToExpiry;
|
|
18
|
+
uint256 rateMinScaled;
|
|
19
|
+
uint256 rateMaxScaled;
|
|
20
|
+
uint256 rateDiff;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function calcParams(
|
|
24
|
+
uint256 rateMin,
|
|
25
|
+
uint256 rateMax,
|
|
26
|
+
uint256 expiry
|
|
27
|
+
) internal view returns (uint256 scalarRoot, uint256 initialRateAnchor) {
|
|
28
|
+
CalcParamsArgs memory args;
|
|
29
|
+
|
|
30
|
+
args.yearsToExpiry = (expiry - block.timestamp).divDown(YEAR);
|
|
31
|
+
args.rateMinScaled = (rateMin + PMath.ONE).pow(args.yearsToExpiry);
|
|
32
|
+
args.rateMaxScaled = (rateMax + PMath.ONE).pow(args.yearsToExpiry);
|
|
33
|
+
|
|
34
|
+
// [initRateAnchor]
|
|
35
|
+
initialRateAnchor = (args.rateMinScaled + args.rateMaxScaled) / 2;
|
|
36
|
+
|
|
37
|
+
args.rateDiff = args.rateMaxScaled - initialRateAnchor;
|
|
38
|
+
|
|
39
|
+
// [scalarRoot]
|
|
40
|
+
scalarRoot = (LN_9 * args.yearsToExpiry) / args.rateDiff;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
struct CalcInitialProportionArgs {
|
|
44
|
+
uint256 timeToExpiry;
|
|
45
|
+
uint256 lnImpliedRate;
|
|
46
|
+
int256 desiredExchangeRate;
|
|
47
|
+
uint256 lnProportion;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function calcInitialProportion(
|
|
51
|
+
uint256 expiry,
|
|
52
|
+
uint256 scalarRoot,
|
|
53
|
+
uint256 rateAnchor,
|
|
54
|
+
uint256 desiredImpliedRate
|
|
55
|
+
) internal view returns (uint256 initialProportion) {
|
|
56
|
+
CalcInitialProportionArgs memory args;
|
|
57
|
+
|
|
58
|
+
args.timeToExpiry = expiry - block.timestamp;
|
|
59
|
+
args.lnImpliedRate = LogExpMath.ln(PMath.IONE + desiredImpliedRate.Int()).Uint();
|
|
60
|
+
args.desiredExchangeRate = ((args.lnImpliedRate * args.timeToExpiry) / YEAR).Int().exp();
|
|
61
|
+
|
|
62
|
+
uint256 rateScalar = (scalarRoot * YEAR) / args.timeToExpiry;
|
|
63
|
+
int256 logitP = (args.desiredExchangeRate - rateAnchor.Int()).mulDown(rateScalar.Int()).exp();
|
|
64
|
+
initialProportion = (logitP.divDown(PMath.IONE + logitP)).Uint();
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function calcFee(uint256 fee) internal pure returns (uint80 lnFeeRateRoot) {
|
|
68
|
+
return (PMath.ONE + fee).Int().ln().Uint().Uint80();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -2,9 +2,16 @@
|
|
|
2
2
|
pragma solidity ^0.8.19;
|
|
3
3
|
|
|
4
4
|
import {PendleSparkLinearDiscountOracle} from "./PendleSparkLinearDiscountOracle.sol";
|
|
5
|
+
import "../../interfaces/IPPrincipalToken.sol";
|
|
6
|
+
import "../../interfaces/IPMarket.sol";
|
|
5
7
|
|
|
6
8
|
contract PendleSparkLinearDiscountOracleFactory {
|
|
7
|
-
function
|
|
8
|
-
return address(new PendleSparkLinearDiscountOracle(
|
|
9
|
+
function createWithPt(address pt, uint256 baseDiscountPerYear) external returns (address) {
|
|
10
|
+
return address(new PendleSparkLinearDiscountOracle(pt, baseDiscountPerYear));
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function createWithMarket(address market, uint256 baseDiscountPerYear) external returns (address) {
|
|
14
|
+
(, IPPrincipalToken PT, ) = IPMarket(market).readTokens();
|
|
15
|
+
return address(new PendleSparkLinearDiscountOracle(address(PT), baseDiscountPerYear));
|
|
9
16
|
}
|
|
10
17
|
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"deployer": "0x1FcCC097db89A86Bfc474A1028F93958295b1Fb7",
|
|
3
|
+
"network": {
|
|
4
|
+
"chainId": 146,
|
|
5
|
+
"treasury": "0xCbcb48e22622a3778b6F14C2f5d258Ba026b05e6",
|
|
6
|
+
"governance": "0x7877adfaded756f3248a0ebfe8ac2e2ef87b75ac",
|
|
7
|
+
"devMultisig": "0x7877adfaded756f3248a0ebfe8ac2e2ef87b75ac",
|
|
8
|
+
"pendle": "0xf1eF7d2D4C0c881cd634481e0586ed5d2871A74B",
|
|
9
|
+
"lzEndpoint": "0xb6319cC6c8c27A8F5dAF0dD3DF91EA35C4720dd7",
|
|
10
|
+
"wrappedNative": "0x039e2fb66102314ce7b64ce5ce3e5183bc94ad38",
|
|
11
|
+
"initialRewardFee": "30000000000000000",
|
|
12
|
+
"initialInterestFee": "30000000000000000",
|
|
13
|
+
"initialReserveFeePercent": "80",
|
|
14
|
+
"safeWaitTime": 15000,
|
|
15
|
+
"hardwareDeployer": "0xeea6F790F18563E91b18DF00B89d9f79b2E6761F"
|
|
16
|
+
},
|
|
17
|
+
"baseCodeSplitter": "0x6952Eb0c152D683ea2F2B8B90a5E888c1550B69D",
|
|
18
|
+
"PENDLE": "0xf1eF7d2D4C0c881cd634481e0586ed5d2871A74B",
|
|
19
|
+
"governanceProxy": "0x2aD631F72fB16d91c4953A7f4260A97C2fE2f31e",
|
|
20
|
+
"yieldContractFactoryV5": "0x0582D93FD9c9d42f26bE5D86a5f75291F92102C2",
|
|
21
|
+
"marketFactoryV5": "0xFeE31A6eC6eBefa0b5A594Bf5b1139e3c6fAA0fB",
|
|
22
|
+
"router": "0x888888888889758F76e7103c6CbF23ABbF58F946",
|
|
23
|
+
"routerFacets": {
|
|
24
|
+
"ActionAddRemoveLiqV3": "0x663C21103915B68e9dA797CfdF3cAb01a037D5Ff",
|
|
25
|
+
"ActionSwapPTV3": "0xd8D200d9A713A1c71cF1e7F694B14E5F1D948b15",
|
|
26
|
+
"ActionSwapYTV3": "0x4a03Ce0a268951d04E187B1CF48075eE69266e27",
|
|
27
|
+
"ActionMiscV3": "0x373Dba2055Ad40cb4815148bC47cd1DC16e92E44",
|
|
28
|
+
"ActionSimple": "0x852e59252c94716F0df19B52b36512f6C9297a96",
|
|
29
|
+
"ActionCallbackV3": "0x7b78F36aBf6cF3C6C0dd54716dFeF0607ae17846",
|
|
30
|
+
"ActionStorageV4": "0xdED51dca2ECED7a0BAab3D9711A87f214769Da0f"
|
|
31
|
+
},
|
|
32
|
+
"routerStatic": "0x0013ACc071f732fd6BF8210AB46A3794a7D8945e",
|
|
33
|
+
"pendleSwap": "0x313e7Ef7d52f5C10aC04ebaa4d33CDc68634c212",
|
|
34
|
+
"pyYtLpOracle": "0x9a9fa8338dd5e5b2188006f1cd2ef26d921650c2",
|
|
35
|
+
"reflector": "0x5039Da22E5126e7c4e9284376116716A91782faF",
|
|
36
|
+
"receiverEndpoint": "0x3209E9412cca80B18338f2a56ADA59c484c39644",
|
|
37
|
+
"limitRouter": "0x0000000000000000000000000000000000000000",
|
|
38
|
+
"proxyAdmin": "0xA28c08f165116587D4F3E708743B4dEe155c5E64",
|
|
39
|
+
"vePendle": "0xE017CCC08505Ac8fbb5a364680e459d9fBaEE74d",
|
|
40
|
+
"gaugeController": "0xeE708FC793a02F1eDd5BB9DBD7fD13010D1F7136",
|
|
41
|
+
"sparkLinearDiscountOracleFactory": "0xA9A924A4BB95509F77868E086154C25e934F6171",
|
|
42
|
+
"vePendleAirdropDistributor": "0x3942F7B55094250644cFfDa7160226Caa349A38E",
|
|
43
|
+
"externalRewardsDistributor": "0xae898a7d07f8e27f25e13d0f351a7401f9a5bf9d",
|
|
44
|
+
"beta": {
|
|
45
|
+
"PendleChainlinkOracleFactory": "0x0000000000000000000000000000000000000000"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"pendleMulticallV2": "0x1ca3352a55A3D69cA8e5aB06006e08aaF2bD09f1",
|
|
3
|
+
"implicitSwapfeeContract": "0x82Fae57b2A79D893D88488A7D8BdF2AC6bd2C463",
|
|
4
|
+
"simulateHelper": "0xc23Dd2807e51dd1D317e1321CBeEb9ace98531EE",
|
|
5
|
+
"supplyCapReader": "0x251CfB4E84CefecA6c1e6a4D8a0cb9c524e7484f"
|
|
6
|
+
}
|