@pendle/core-v2 0.7.0 → 0.7.1-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/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.json +2 -39
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/WadRayMath.sol/WadRayMath.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/WadRayMath.sol/WadRayMath.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.json +2 -26
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleBtrflySCY.sol/PendleBtrflyScy.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleBtrflySCY.sol/PendleBtrflyScy.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleJoeLpSCY.sol/PendleJoeLpSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleJoeLpSCY.sol/PendleJoeLpSCY.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBase.sol/SCYBase.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.json +0 -24
- package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol/CelerReceiverUpg.dbg.json +4 -0
- package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/{CelerReceiver.sol/CelerReceiver.json → CelerReceiverUpg.sol/CelerReceiverUpg.json} +2 -2
- package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol/CelerSenderUpg.dbg.json +4 -0
- package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/{CelerSender.sol/CelerSender.json → CelerSenderUpg.sol/CelerSenderUpg.json} +15 -2
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +4 -0
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/{PendleGaugeController.sol/PendleGaugeController.json → PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.json} +2 -2
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchain.sol/PendleGaugeControllerMainchainUpg.dbg.json +4 -0
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchain.sol/PendleGaugeControllerMainchainUpg.json +255 -0
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechain.sol/PendleGaugeControllerSidechainUpg.dbg.json +4 -0
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechain.sol/PendleGaugeControllerSidechainUpg.json +318 -0
- package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.json +0 -24
- package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +4 -0
- package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +776 -0
- package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +4 -0
- package/build/artifacts/contracts/core/LiquidityMining/VotingController/{VotingControllerStorage.sol/VotingControllerStorage.json → VotingControllerStorageUpg.sol/VotingControllerStorageUpg.json} +16 -49
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +15 -43
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +4 -0
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/{VotingEscrowToken.sol/VotingEscrowToken.json → VotingEscrowTokenBase.sol/VotingEscrowTokenBase.json} +2 -2
- package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -26
- package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +13 -7
- package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.dbg.json +1 -1
- package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.json +2 -2
- package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
- package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.json +2 -2
- package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.dbg.json +1 -1
- package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.json +2 -2
- package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +4 -0
- package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.json +35 -0
- package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +15 -82
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +15 -7
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +77 -95
- package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.dbg.json +1 -1
- package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.json +2 -2
- package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.dbg.json +1 -1
- package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.json +2 -2
- package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.dbg.json +1 -1
- package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.json +2 -2
- package/build/artifacts/contracts/core/actions/base/ActionSCYAndPTBase.sol/ActionSCYAndPTBase.dbg.json +1 -1
- package/build/artifacts/contracts/core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.dbg.json +1 -1
- package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.dbg.json +1 -1
- package/build/artifacts/contracts/core/actions/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IJoePair.sol/IJoePair.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IJoeRouter01.sol/IJoeRouter01.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IJoeRouter02.sol/IJoeRouter02.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionYT.sol/IPActionYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.json +26 -0
- package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.json +26 -0
- package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.json +35 -0
- package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarketAddRemoveCallback.sol/IPMarketAddRemoveCallback.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarketAddRemoveCallback.sol/IPMarketAddRemoveCallback.json +2 -2
- package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.json +6 -0
- package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.json +13 -0
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.json +91 -43
- package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.json +7 -2
- package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/RewardManager.sol/RewardManager.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/RewardManager.sol/RewardManager.json +0 -24
- package/build/artifacts/contracts/libraries/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +4 -0
- package/build/artifacts/contracts/libraries/RewardManagerAbstract.sol/RewardManagerAbstract.json +40 -0
- package/build/artifacts/contracts/libraries/SCY/SCYIndex.sol/SCYIndexLib.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/SCY/SCYIndex.sol/SCYIndexLib.json +2 -2
- package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.json +2 -2
- package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
- package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +4 -0
- package/build/artifacts/contracts/libraries/{solmate/LibRLP.sol/LibRLP.json → VeHistoryLib.sol/Checkpoints.json} +4 -4
- package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.json +2 -2
- package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.json +2 -2
- package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.json +2 -2
- package/build/artifacts/contracts/libraries/helpers/SSTORE2Deployer.sol/SSTORE2Deployer.dbg.json +4 -0
- package/build/artifacts/contracts/libraries/helpers/SSTORE2Deployer.sol/SSTORE2Deployer.json +10 -0
- package/build/artifacts/contracts/libraries/helpers/TokenHelper.sol/TokenHelper.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.json +2 -2
- package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.json +2 -2
- package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.json +2 -2
- package/build/artifacts/contracts/libraries/math/Math.sol/Math.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/math/Math.sol/Math.json +2 -2
- package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.json +2 -2
- package/build/artifacts/contracts/libraries/solmate/Bytes32AddressLib.sol/Bytes32AddressLib.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/solmate/Bytes32AddressLib.sol/Bytes32AddressLib.json +2 -2
- package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.json +2 -2
- package/build/artifacts/contracts/libraries/traderjoe/JoeLibrary.sol/JoeLibrary.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/traderjoe/JoeLibrary.sol/JoeLibrary.json +2 -2
- package/build/artifacts/contracts/libraries/traderjoe/PendleJoeSwapHelperUpg.sol/PendleJoeSwapHelperUpg.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +3 -3
- package/build/artifacts/contracts/periphery/PendleGovernanceManager.sol/PendleGovernanceManager.dbg.json +1 -1
- package/build/artifacts/contracts/periphery/PendleGovernanceManager.sol/PendleGovernanceManager.json +2 -2
- package/build/artifacts/contracts/periphery/PermissionsV2Upg.sol/PermissionsV2Upg.dbg.json +1 -1
- package/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol +1 -1
- package/contracts/SuperComposableYield/SCY-implementations/AaveV3/WadRayMath.sol +1 -1
- package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol +1 -1
- package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol +1 -1
- package/contracts/SuperComposableYield/SCY-implementations/PendleBtrflySCY.sol +1 -1
- package/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol +1 -1
- package/contracts/SuperComposableYield/SCY-implementations/PendleJoeLpSCY.sol +1 -1
- package/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol +1 -1
- package/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol +1 -1
- package/contracts/SuperComposableYield/base-implementations/SCYBase.sol +1 -1
- package/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol +1 -1
- package/contracts/core/LiquidityMining/CelerAbstracts/{CelerReceiver.sol → CelerReceiverUpg.sol} +8 -2
- package/contracts/core/LiquidityMining/CelerAbstracts/{CelerSender.sol → CelerSenderUpg.sol} +10 -3
- package/contracts/core/LiquidityMining/GaugeController/{PendleGaugeController.sol → PendleGaugeControllerBaseUpg.sol} +9 -4
- package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchain.sol +7 -4
- package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechain.sol +9 -5
- package/contracts/core/LiquidityMining/PendleGauge.sol +1 -1
- package/contracts/core/LiquidityMining/VotingController/{PendleVotingController.sol → PendleVotingControllerUpg.sol} +19 -6
- package/contracts/core/LiquidityMining/VotingController/{VotingControllerStorage.sol → VotingControllerStorageUpg.sol} +14 -10
- package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +12 -8
- package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +5 -5
- package/contracts/core/LiquidityMining/VotingEscrow/{VotingEscrowToken.sol → VotingEscrowTokenBase.sol} +2 -3
- package/contracts/core/Market/PendleMarket.sol +4 -5
- package/contracts/core/Market/PendleMarketFactory.sol +17 -20
- package/contracts/core/PendleRouter.sol +1 -1
- package/contracts/core/YieldContracts/InterestManagerYT.sol +1 -1
- package/contracts/core/YieldContracts/PendlePrincipalToken.sol +15 -7
- package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +18 -19
- package/contracts/core/YieldContracts/PendleYieldToken.sol +37 -28
- package/contracts/core/actions/ActionCallback.sol +1 -1
- package/contracts/core/actions/ActionCore.sol +1 -1
- package/contracts/core/actions/ActionYT.sol +1 -1
- package/contracts/core/actions/base/ActionSCYAndPTBase.sol +1 -1
- package/contracts/core/actions/base/ActionSCYAndPYBase.sol +1 -1
- package/contracts/core/actions/base/ActionSCYAndYTBase.sol +1 -1
- package/contracts/core/actions/base/CallbackHelper.sol +1 -1
- package/contracts/interfaces/IAToken.sol +1 -1
- package/contracts/interfaces/IAavePool.sol +1 -1
- package/contracts/interfaces/IAaveRewardsController.sol +1 -1
- package/contracts/interfaces/IBenQiComptroller.sol +1 -1
- package/contracts/interfaces/IBenQiInterestRateModel.sol +1 -1
- package/contracts/interfaces/IERC4626.sol +1 -1
- package/contracts/interfaces/IJoeRouter01.sol +1 -1
- package/contracts/interfaces/IJoeRouter02.sol +1 -1
- package/contracts/interfaces/IPActionCore.sol +1 -1
- package/contracts/interfaces/IPActionYT.sol +1 -1
- package/contracts/interfaces/IPAllAction.sol +1 -1
- package/contracts/interfaces/IPGaugeController.sol +7 -1
- package/contracts/interfaces/IPGaugeControllerMainchain.sol +1 -1
- package/contracts/interfaces/IPGovernanceManager.sol +1 -1
- package/contracts/interfaces/IPInterestManagerYT.sol +1 -1
- package/contracts/interfaces/IPMarket.sol +1 -1
- package/contracts/interfaces/IPMarketAddRemoveCallback.sol +1 -1
- package/contracts/interfaces/IPMarketFactory.sol +7 -2
- package/contracts/interfaces/IPMarketSwapCallback.sol +1 -1
- package/contracts/interfaces/IPPermissionsV2Upg.sol +1 -1
- package/contracts/interfaces/IPPrincipalToken.sol +3 -1
- package/contracts/interfaces/IPRouterStatic.sol +1 -1
- package/contracts/interfaces/IPVeToken.sol +1 -1
- package/contracts/interfaces/IPVotingController.sol +1 -1
- package/contracts/interfaces/IPVotingEscrow.sol +1 -1
- package/contracts/interfaces/IPYieldContractFactory.sol +1 -1
- package/contracts/interfaces/IPYieldToken.sol +14 -4
- package/contracts/interfaces/IQiAvax.sol +1 -1
- package/contracts/interfaces/IQiErc20.sol +1 -1
- package/contracts/interfaces/IQiToken.sol +1 -1
- package/contracts/interfaces/IREDACTEDStaking.sol +1 -1
- package/contracts/interfaces/IRewardManager.sol +1 -1
- package/contracts/interfaces/ISuperComposableYield.sol +1 -1
- package/contracts/interfaces/IWETH.sol +1 -1
- package/contracts/interfaces/IWXBTRFLY.sol +1 -1
- package/contracts/interfaces/IWstETH.sol +1 -1
- package/contracts/interfaces/IYearnVault.sol +1 -1
- package/contracts/libraries/RewardManager.sol +1 -1
- package/contracts/libraries/RewardManagerAbstract.sol +6 -2
- package/contracts/libraries/SCY/SCYIndex.sol +1 -1
- package/contracts/libraries/SCY/SCYUtils.sol +1 -1
- package/contracts/libraries/VeBalanceLib.sol +1 -35
- package/contracts/libraries/VeHistoryLib.sol +60 -0
- package/contracts/libraries/helpers/ExpiryUtilsLib.sol +1 -1
- package/contracts/libraries/helpers/MiniHelpers.sol +1 -1
- package/contracts/libraries/helpers/SSTORE2Deployer.sol +30 -0
- package/contracts/libraries/helpers/TokenHelper.sol +1 -1
- package/contracts/libraries/math/LogExpMath.sol +1 -1
- package/contracts/libraries/math/MarketApproxLib.sol +1 -1
- package/contracts/libraries/math/MarketMathCore.sol +1 -1
- package/contracts/libraries/math/Math.sol +1 -1
- package/contracts/libraries/math/WeekMath.sol +1 -1
- package/contracts/libraries/traderjoe/JoeLibrary.sol +1 -1
- package/contracts/libraries/traderjoe/PendleJoeSwapHelperUpg.sol +1 -1
- package/contracts/offchain-helpers/RouterStatic.sol +3 -3
- package/contracts/periphery/PendleGovernanceManager.sol +1 -1
- package/contracts/periphery/PermissionsV2Upg.sol +7 -1
- package/deployments/43113-benqi.json +6 -0
- package/deployments/43113-core.json +14 -0
- package/deployments/43113-markets/benqi-market.json +7 -0
- package/deployments/80001-benqi.json +6 -0
- package/deployments/80001-core.json +13 -0
- package/deployments/80001-markets/benqi-market.json +7 -0
- package/package.json +2 -2
- package/typechain-types/{CelerReceiver.ts → CelerReceiverUpg.ts} +5 -5
- package/typechain-types/{CelerSender.ts → CelerSenderUpg.ts} +24 -5
- package/typechain-types/IPGaugeController.ts +63 -0
- package/typechain-types/IPGaugeControllerMainchain.ts +62 -0
- package/typechain-types/{IVePToken.ts → IPInterestManagerYT.ts} +38 -27
- package/typechain-types/IPMarketAddRemoveCallback.ts +10 -10
- package/typechain-types/IPMarketFactory.ts +11 -4
- package/typechain-types/IPPrincipalToken.ts +25 -0
- package/typechain-types/IPYieldToken.ts +106 -106
- package/typechain-types/IRewardManager.ts +15 -14
- package/typechain-types/{IPGauge.ts → InterestManagerYT.ts} +27 -28
- package/typechain-types/PendleAaveV3SCY.ts +0 -70
- package/typechain-types/PendleGauge.ts +0 -39
- package/typechain-types/{PendleGaugeController.ts → PendleGaugeControllerBaseUpg.ts} +5 -5
- package/typechain-types/{PendleGaugeControllerMainchain.ts → PendleGaugeControllerMainchainUpg.ts} +5 -5
- package/typechain-types/{PendleGaugeControllerSidechain.ts → PendleGaugeControllerSidechainUpg.ts} +5 -5
- package/typechain-types/PendleMarket.ts +0 -39
- package/typechain-types/PendleMarketFactory.ts +18 -6
- package/typechain-types/PendlePrincipalToken.ts +25 -104
- package/typechain-types/PendleQiTokenSCY.ts +0 -39
- package/typechain-types/{PendleVotingController.ts → PendleVotingControllerUpg.ts} +165 -62
- package/typechain-types/{PendleYearnVaultScy.ts → PendleYearnVaultSCY.ts} +0 -0
- package/typechain-types/PendleYieldContractFactory.ts +31 -0
- package/typechain-types/PendleYieldToken.ts +84 -177
- package/typechain-types/RewardManager.ts +0 -39
- package/typechain-types/{IBeacon.ts → RewardManagerAbstract.ts} +38 -17
- package/typechain-types/RouterStatic.ts +5 -11
- package/typechain-types/SCYBaseWithRewards.ts +0 -39
- package/typechain-types/{VotingControllerStorage.ts → VotingControllerStorageUpg.ts} +28 -68
- package/typechain-types/VotingEscrowPendleMainchain.ts +19 -54
- package/typechain-types/{VotingEscrowToken.ts → VotingEscrowTokenBase.ts} +5 -5
- package/typechain-types/factories/ActionCallback__factory.ts +1 -1
- package/typechain-types/factories/ActionCore__factory.ts +1 -1
- package/typechain-types/factories/ActionYT__factory.ts +1 -1
- package/typechain-types/factories/{CelerReceiver__factory.ts → CelerReceiverUpg__factory.ts} +9 -6
- package/typechain-types/factories/{CelerSender__factory.ts → CelerSenderUpg__factory.ts} +22 -6
- package/typechain-types/factories/ERC20__factory.ts +1 -1
- package/typechain-types/factories/IPGaugeControllerMainchain__factory.ts +26 -0
- package/typechain-types/factories/IPGaugeController__factory.ts +26 -0
- package/typechain-types/factories/IPInterestManagerYT__factory.ts +50 -0
- package/typechain-types/factories/IPMarketAddRemoveCallback__factory.ts +2 -2
- package/typechain-types/factories/IPMarketFactory__factory.ts +6 -0
- package/typechain-types/factories/IPPrincipalToken__factory.ts +13 -0
- package/typechain-types/factories/IPYieldToken__factory.ts +91 -43
- package/typechain-types/factories/IRewardManager__factory.ts +7 -2
- package/typechain-types/factories/InterestManagerYT__factory.ts +50 -0
- package/typechain-types/factories/PendleAaveV3SCY__factory.ts +1 -38
- package/typechain-types/factories/PendleBtrflyScy__factory.ts +1 -1
- package/typechain-types/factories/PendleERC20Permit__factory.ts +1 -1
- package/typechain-types/factories/PendleERC20__factory.ts +1 -1
- package/typechain-types/factories/PendleERC4626SCY__factory.ts +1 -1
- package/typechain-types/factories/{PendleGaugeController__factory.ts → PendleGaugeControllerBaseUpg__factory.ts} +8 -8
- package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +334 -0
- package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +393 -0
- package/typechain-types/factories/PendleGauge__factory.ts +0 -24
- package/typechain-types/factories/PendleGovernanceManager__factory.ts +1 -1
- package/typechain-types/factories/PendleJoeLpSCY__factory.ts +1 -1
- package/typechain-types/factories/PendleMarketFactory__factory.ts +12 -11
- package/typechain-types/factories/PendleMarket__factory.ts +1 -25
- package/typechain-types/factories/PendlePrincipalToken__factory.ts +14 -85
- package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
- package/typechain-types/factories/PendleQiTokenSCY__factory.ts +1 -25
- package/typechain-types/factories/PendleRouter__factory.ts +1 -1
- package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +845 -0
- package/typechain-types/factories/PendleWstEthSCY__factory.ts +1 -1
- package/typechain-types/factories/PendleYearnVaultSCY__factory.ts +691 -0
- package/typechain-types/factories/PendleYieldContractFactory__factory.ts +14 -11
- package/typechain-types/factories/PendleYieldToken__factory.ts +76 -94
- package/typechain-types/factories/RewardManagerAbstract__factory.ts +59 -0
- package/typechain-types/factories/RewardManager__factory.ts +0 -24
- package/typechain-types/factories/RouterStatic__factory.ts +2 -2
- package/typechain-types/factories/SCYBaseWithRewards__factory.ts +0 -24
- package/typechain-types/factories/{VotingControllerStorage__factory.ts → VotingControllerStorageUpg__factory.ts} +22 -55
- package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +14 -42
- package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
- package/typechain-types/factories/{VotingEscrowToken__factory.ts → VotingEscrowTokenBase__factory.ts} +12 -8
- package/typechain-types/hardhat.d.ts +54 -72
- package/typechain-types/index.ts +22 -26
- package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiver.sol/CelerReceiver.dbg.json +0 -4
- package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSender.sol/CelerSender.dbg.json +0 -4
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeController.sol/PendleGaugeController.dbg.json +0 -4
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchain.sol/PendleGaugeControllerMainchain.dbg.json +0 -4
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchain.sol/PendleGaugeControllerMainchain.json +0 -255
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechain.sol/PendleGaugeControllerSidechain.dbg.json +0 -4
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechain.sol/PendleGaugeControllerSidechain.json +0 -318
- package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingController.sol/PendleVotingController.dbg.json +0 -4
- package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingController.sol/PendleVotingController.json +0 -707
- package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorage.sol/VotingControllerStorage.dbg.json +0 -4
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowToken.sol/VotingEscrowToken.dbg.json +0 -4
- package/build/artifacts/contracts/libraries/RewardManagerMini.sol/RewardManagerMini.dbg.json +0 -4
- package/build/artifacts/contracts/libraries/RewardManagerMini.sol/RewardManagerMini.json +0 -101
- package/build/artifacts/contracts/libraries/helpers/MiniDeployer.sol/MiniDeployer.dbg.json +0 -4
- package/build/artifacts/contracts/libraries/helpers/MiniDeployer.sol/MiniDeployer.json +0 -10
- package/build/artifacts/contracts/libraries/solmate/LibRLP.sol/LibRLP.dbg.json +0 -4
- package/contracts/libraries/helpers/MiniDeployer.sol +0 -23
- package/contracts/libraries/solmate/LibRLP.sol +0 -30
- package/deployments/kovan.json +0 -31
- package/typechain-types/ActionRedeem.ts +0 -125
- package/typechain-types/BeaconProxy.ts +0 -97
- package/typechain-types/ERC1967Upgrade.ts +0 -97
- package/typechain-types/IERC1822Proxiable.ts +0 -87
- package/typechain-types/IPActionRedeem.ts +0 -125
- package/typechain-types/IPBaseToken.ts +0 -365
- package/typechain-types/IPVotingEscrowController.ts +0 -154
- package/typechain-types/IPendleGauge.ts +0 -241
- package/typechain-types/IVotingEscrowPendle.ts +0 -297
- package/typechain-types/PendleBaseToken.ts +0 -475
- package/typechain-types/PendleBenQiErc20SCY.ts +0 -1050
- package/typechain-types/PendleMarketRewards.ts +0 -1317
- package/typechain-types/PendleStEthSCY.ts +0 -872
- package/typechain-types/RewardManagerMini.ts +0 -200
- package/typechain-types/VotingEscrowController.ts +0 -154
- package/typechain-types/factories/ActionRedeem__factory.ts +0 -105
- package/typechain-types/factories/BeaconProxy__factory.ts +0 -141
- package/typechain-types/factories/ERC1967Upgrade__factory.ts +0 -71
- package/typechain-types/factories/IBeacon__factory.ts +0 -36
- package/typechain-types/factories/IERC1822Proxiable__factory.ts +0 -39
- package/typechain-types/factories/IPActionRedeem__factory.ts +0 -70
- package/typechain-types/factories/IPBaseToken__factory.ts +0 -271
- package/typechain-types/factories/IPGauge__factory.ts +0 -42
- package/typechain-types/factories/IPVotingEscrowController__factory.ts +0 -80
- package/typechain-types/factories/IPendleGauge__factory.ts +0 -125
- package/typechain-types/factories/IVePToken__factory.ts +0 -55
- package/typechain-types/factories/IVotingEscrowPendle__factory.ts +0 -182
- package/typechain-types/factories/PendleBaseToken__factory.ts +0 -348
- package/typechain-types/factories/PendleBenQiErc20SCY__factory.ts +0 -871
- package/typechain-types/factories/PendleGaugeControllerMainchain__factory.ts +0 -332
- package/typechain-types/factories/PendleGaugeControllerSidechain__factory.ts +0 -391
- package/typechain-types/factories/PendleMarketRewards__factory.ts +0 -1140
- package/typechain-types/factories/PendleStEthSCY__factory.ts +0 -716
- package/typechain-types/factories/PendleVotingController__factory.ts +0 -776
- package/typechain-types/factories/PendleYearnVaultScy__factory.ts +0 -691
- package/typechain-types/factories/RewardManagerMini__factory.ts +0 -116
- package/typechain-types/factories/VotingEscrowController__factory.ts +0 -80
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
|
-
pragma solidity 0.8.
|
|
24
|
+
pragma solidity 0.8.15;
|
|
25
25
|
|
|
26
26
|
import "../../interfaces/IPYieldContractFactory.sol";
|
|
27
27
|
|
|
@@ -29,8 +29,7 @@ import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
|
|
|
29
29
|
import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
|
30
30
|
|
|
31
31
|
import "../../libraries/helpers/ExpiryUtilsLib.sol";
|
|
32
|
-
import "../../libraries/
|
|
33
|
-
import "../../libraries/helpers/MiniDeployer.sol";
|
|
32
|
+
import "../../libraries/helpers/SSTORE2Deployer.sol";
|
|
34
33
|
import "../../libraries/helpers/MiniHelpers.sol";
|
|
35
34
|
|
|
36
35
|
import "../../periphery/PermissionsV2Upg.sol";
|
|
@@ -39,13 +38,13 @@ import "./PendlePrincipalToken.sol";
|
|
|
39
38
|
import "./PendleYieldToken.sol";
|
|
40
39
|
|
|
41
40
|
/// @dev If this contract is ever made upgradeable, please pay attention to the numContractDeployed variable
|
|
42
|
-
contract PendleYieldContractFactory is PermissionsV2Upg,
|
|
41
|
+
contract PendleYieldContractFactory is PermissionsV2Upg, Initializable, IPYieldContractFactory {
|
|
43
42
|
using ExpiryUtils for string;
|
|
44
43
|
|
|
45
44
|
string private constant PT_PREFIX = "PT";
|
|
46
45
|
string private constant YT_PREFIX = "YT";
|
|
47
46
|
|
|
48
|
-
address public
|
|
47
|
+
address public pendleYtCreationCodePointer;
|
|
49
48
|
|
|
50
49
|
uint256 public expiryDivisor;
|
|
51
50
|
uint256 public interestFeeRate;
|
|
@@ -65,16 +64,18 @@ contract PendleYieldContractFactory is PermissionsV2Upg, MiniDeployer, IPYieldCo
|
|
|
65
64
|
uint256 _expiryDivisor,
|
|
66
65
|
uint256 _interestFeeRate,
|
|
67
66
|
address _treasury,
|
|
68
|
-
address _governanceManager
|
|
69
|
-
bytes memory _pendleYtCreationCode
|
|
67
|
+
address _governanceManager
|
|
70
68
|
) PermissionsV2Upg(_governanceManager) {
|
|
71
69
|
setExpiryDivisor(_expiryDivisor);
|
|
72
70
|
setInterestFeeRate(_interestFeeRate);
|
|
73
71
|
setTreasury(_treasury);
|
|
74
|
-
pendleYtCreationCodePointer = _setCreationCode(_pendleYtCreationCode);
|
|
75
72
|
numContractDeployed++;
|
|
76
73
|
}
|
|
77
74
|
|
|
75
|
+
function initialize(bytes memory _pendleYtCreationCode) external initializer {
|
|
76
|
+
pendleYtCreationCodePointer = SSTORE2Deployer.setCreationCode(_pendleYtCreationCode);
|
|
77
|
+
}
|
|
78
|
+
|
|
78
79
|
/**
|
|
79
80
|
* @notice Create a pair of (PT, YT) from any SCY and valid expiry. Anyone can create a yield contract
|
|
80
81
|
* @dev It's intentional to make expiry an uint32 to guard against fat fingers. uint32.max is year 2106
|
|
@@ -93,13 +94,12 @@ contract PendleYieldContractFactory is PermissionsV2Upg, MiniDeployer, IPYieldCo
|
|
|
93
94
|
|
|
94
95
|
(, , uint8 assetDecimals) = _SCY.assetInfo();
|
|
95
96
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
97
|
+
// no need salt since PT (and also YT) existence has been checked before hand
|
|
98
|
+
PT = SSTORE2Deployer.create2(
|
|
99
|
+
type(PendlePrincipalToken).creationCode,
|
|
100
|
+
bytes32(0),
|
|
101
|
+
abi.encode(
|
|
101
102
|
SCY,
|
|
102
|
-
predictedYTAddress,
|
|
103
103
|
PT_PREFIX.concat(_SCY.name(), expiry, " "),
|
|
104
104
|
PT_PREFIX.concat(_SCY.symbol(), expiry, "-"),
|
|
105
105
|
assetDecimals,
|
|
@@ -107,13 +107,12 @@ contract PendleYieldContractFactory is PermissionsV2Upg, MiniDeployer, IPYieldCo
|
|
|
107
107
|
)
|
|
108
108
|
);
|
|
109
109
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
YT = _deployWithArgs(
|
|
110
|
+
YT = SSTORE2Deployer.create2(
|
|
113
111
|
pendleYtCreationCodePointer,
|
|
112
|
+
bytes32(0),
|
|
114
113
|
abi.encode(
|
|
115
114
|
SCY,
|
|
116
|
-
|
|
115
|
+
PT,
|
|
117
116
|
YT_PREFIX.concat(_SCY.name(), expiry, " "),
|
|
118
117
|
YT_PREFIX.concat(_SCY.symbol(), expiry, "-"),
|
|
119
118
|
assetDecimals,
|
|
@@ -121,7 +120,7 @@ contract PendleYieldContractFactory is PermissionsV2Upg, MiniDeployer, IPYieldCo
|
|
|
121
120
|
)
|
|
122
121
|
);
|
|
123
122
|
|
|
124
|
-
|
|
123
|
+
IPPrincipalToken(PT).initialize(YT);
|
|
125
124
|
|
|
126
125
|
getPT[SCY][expiry] = PT;
|
|
127
126
|
getYT[SCY][expiry] = YT;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
-
pragma solidity 0.8.
|
|
2
|
+
pragma solidity 0.8.15;
|
|
3
3
|
|
|
4
4
|
import "../../interfaces/ISuperComposableYield.sol";
|
|
5
5
|
import "../../interfaces/IPYieldToken.sol";
|
|
@@ -13,7 +13,7 @@ import "../../interfaces/IPYieldContractFactory.sol";
|
|
|
13
13
|
import "../../libraries/SCY/SCYUtils.sol";
|
|
14
14
|
import "../../libraries/helpers/MiniHelpers.sol";
|
|
15
15
|
import "../../libraries/RewardManagerAbstract.sol";
|
|
16
|
-
import "../
|
|
16
|
+
import "../PendleERC20.sol";
|
|
17
17
|
import "./InterestManagerYT.sol";
|
|
18
18
|
|
|
19
19
|
/*
|
|
@@ -26,7 +26,7 @@ Due to this, it is required to update users' accruedReward STRICTLY BEFORE redee
|
|
|
26
26
|
*/
|
|
27
27
|
contract PendleYieldToken is
|
|
28
28
|
IPYieldToken,
|
|
29
|
-
|
|
29
|
+
PendleERC20,
|
|
30
30
|
RewardManagerAbstract,
|
|
31
31
|
InterestManagerYT
|
|
32
32
|
{
|
|
@@ -45,7 +45,8 @@ contract PendleYieldToken is
|
|
|
45
45
|
address public immutable factory;
|
|
46
46
|
uint256 public immutable expiry;
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
uint128 public scyReserve;
|
|
49
|
+
uint128 internal _scyIndexStored;
|
|
49
50
|
|
|
50
51
|
AfterExpiryData public afterExpiry;
|
|
51
52
|
|
|
@@ -61,17 +62,14 @@ contract PendleYieldToken is
|
|
|
61
62
|
string memory _symbol,
|
|
62
63
|
uint8 __decimals,
|
|
63
64
|
uint256 _expiry
|
|
64
|
-
)
|
|
65
|
+
) PendleERC20(_name, _symbol, __decimals) {
|
|
65
66
|
SCY = _SCY;
|
|
66
67
|
PT = _PT;
|
|
67
68
|
expiry = _expiry;
|
|
68
69
|
factory = msg.sender;
|
|
69
70
|
}
|
|
70
71
|
|
|
71
|
-
|
|
72
|
-
* @notice this function splits scy into PT + YT of equal qty
|
|
73
|
-
* @dev the scy to tokenize has to be pre-transferred to this contract prior to the function call
|
|
74
|
-
*/
|
|
72
|
+
/// @notice Tokenize SCY into PT + YT of equal qty. Every unit of underlying of SCY will create 1 PT + 1 YT
|
|
75
73
|
function mintPY(address receiverPT, address receiverYT)
|
|
76
74
|
external
|
|
77
75
|
nonReentrant
|
|
@@ -87,6 +85,8 @@ contract PendleYieldToken is
|
|
|
87
85
|
_mint(receiverYT, amountPYOut);
|
|
88
86
|
|
|
89
87
|
IPPrincipalToken(PT).mintByYT(receiverPT, amountPYOut);
|
|
88
|
+
|
|
89
|
+
emit Mint(msg.sender, receiverPT, receiverYT, amountPYOut);
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
/// @dev this function converts PY tokens into scy, but interests & rewards are not redeemed at the same time
|
|
@@ -101,19 +101,24 @@ contract PendleYieldToken is
|
|
|
101
101
|
(receivers[0], amounts[0]) = (receiver, type(uint256).max);
|
|
102
102
|
|
|
103
103
|
(amountScyOut, ) = _redeemPY(receivers, amounts);
|
|
104
|
+
|
|
105
|
+
emit Redeem(msg.sender, receiver, amountScyOut);
|
|
104
106
|
}
|
|
105
107
|
|
|
106
|
-
function
|
|
108
|
+
/// @dev this function limit how much each receiver will receive. For example, if the totalOut is 100,
|
|
109
|
+
/// and the max are 50 30 INF, the first receiver will receive 50, the second will receive 30, and the third will receive 20.
|
|
110
|
+
/// @dev intended to mostly be used by Pendle router
|
|
111
|
+
function redeemPY(address[] memory receivers, uint256[] memory maxAmountScyOuts)
|
|
107
112
|
external
|
|
108
113
|
nonReentrant
|
|
109
114
|
updateScyReserve
|
|
110
|
-
returns (uint256
|
|
115
|
+
returns (uint256 totalAmountScyOut)
|
|
111
116
|
{
|
|
112
|
-
(
|
|
117
|
+
(totalAmountScyOut, ) = _redeemPY(receivers, maxAmountScyOuts);
|
|
113
118
|
}
|
|
114
119
|
|
|
115
120
|
/**
|
|
116
|
-
* @dev
|
|
121
|
+
* @dev _updateAndDistributeRewards must be called before every distributeInterest
|
|
117
122
|
*/
|
|
118
123
|
function redeemDueInterestAndRewards(address user)
|
|
119
124
|
external
|
|
@@ -121,7 +126,6 @@ contract PendleYieldToken is
|
|
|
121
126
|
updateScyReserve
|
|
122
127
|
returns (uint256 interestOut, uint256[] memory rewardsOut)
|
|
123
128
|
{
|
|
124
|
-
// redeemDueRewards before redeemDueInterest
|
|
125
129
|
_updateAndDistributeRewards(user);
|
|
126
130
|
_distributeInterest(user);
|
|
127
131
|
rewardsOut = _doTransferOutRewards(user, user);
|
|
@@ -181,20 +185,25 @@ contract PendleYieldToken is
|
|
|
181
185
|
function finalizeAfterExpiryData() public {
|
|
182
186
|
if (!isExpired() || afterExpiry.isFinalized) return;
|
|
183
187
|
afterExpiry.isFinalized = true;
|
|
184
|
-
afterExpiry.firstScyIndex =
|
|
188
|
+
afterExpiry.firstScyIndex = scyIndexCurrent().Uint128();
|
|
185
189
|
(, afterExpiry.firstRewardIndexes) = _updateRewardIndex();
|
|
186
190
|
}
|
|
187
191
|
|
|
188
|
-
/// @dev
|
|
189
|
-
function
|
|
190
|
-
|
|
192
|
+
/// @dev maximize the current rate with the previous rate to guarantee non-decreasing rate
|
|
193
|
+
function scyIndexCurrent() public returns (uint256 currentIndex) {
|
|
194
|
+
currentIndex = Math.max(ISuperComposableYield(SCY).exchangeRate(), _scyIndexStored);
|
|
195
|
+
_scyIndexStored = currentIndex.Uint128();
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
function scyIndexStored() public view returns (uint256) {
|
|
199
|
+
return _scyIndexStored;
|
|
191
200
|
}
|
|
192
201
|
|
|
193
202
|
function isExpired() public view returns (bool) {
|
|
194
203
|
return MiniHelpers.isCurrentlyExpired(expiry);
|
|
195
204
|
}
|
|
196
205
|
|
|
197
|
-
function _redeemPY(address[] memory receivers, uint256[] memory
|
|
206
|
+
function _redeemPY(address[] memory receivers, uint256[] memory maxAmountScyOuts)
|
|
198
207
|
internal
|
|
199
208
|
returns (uint256 totalScyToReceivers, uint256 scyInterestAfterExpiry)
|
|
200
209
|
{
|
|
@@ -209,12 +218,12 @@ contract PendleYieldToken is
|
|
|
209
218
|
_transferOut(SCY, treasury, scyInterestAfterExpiry);
|
|
210
219
|
}
|
|
211
220
|
|
|
212
|
-
_transferOutMaxMulti(SCY, totalScyToReceivers, receivers,
|
|
221
|
+
_transferOutMaxMulti(SCY, totalScyToReceivers, receivers, maxAmountScyOuts);
|
|
213
222
|
}
|
|
214
223
|
|
|
215
|
-
function _calcPYToMint(uint256 amountScy) internal
|
|
224
|
+
function _calcPYToMint(uint256 amountScy) internal returns (uint256 amountPY) {
|
|
216
225
|
// doesn't matter before or after expiry, since mintPY is only allowed before expiry
|
|
217
|
-
return SCYUtils.scyToAsset(
|
|
226
|
+
return SCYUtils.scyToAsset(scyIndexCurrent(), amountScy);
|
|
218
227
|
}
|
|
219
228
|
|
|
220
229
|
function _calcScyRedeemableFromPY(uint256 amountPY)
|
|
@@ -224,10 +233,10 @@ contract PendleYieldToken is
|
|
|
224
233
|
if (isExpired()) {
|
|
225
234
|
finalizeAfterExpiryData();
|
|
226
235
|
uint256 totalScyRedeemable = SCYUtils.assetToScy(afterExpiry.firstScyIndex, amountPY);
|
|
227
|
-
scyToUser = SCYUtils.assetToScy(
|
|
236
|
+
scyToUser = SCYUtils.assetToScy(scyIndexCurrent(), amountPY);
|
|
228
237
|
scyInterestAfterExpiry = totalScyRedeemable - scyToUser;
|
|
229
238
|
} else {
|
|
230
|
-
scyToUser = SCYUtils.assetToScy(
|
|
239
|
+
scyToUser = SCYUtils.assetToScy(scyIndexCurrent(), amountPY);
|
|
231
240
|
}
|
|
232
241
|
}
|
|
233
242
|
|
|
@@ -255,7 +264,7 @@ contract PendleYieldToken is
|
|
|
255
264
|
finalizeAfterExpiryData();
|
|
256
265
|
index = afterExpiry.firstScyIndex;
|
|
257
266
|
} else {
|
|
258
|
-
index =
|
|
267
|
+
index = scyIndexCurrent();
|
|
259
268
|
}
|
|
260
269
|
}
|
|
261
270
|
|
|
@@ -291,7 +300,7 @@ contract PendleYieldToken is
|
|
|
291
300
|
}
|
|
292
301
|
|
|
293
302
|
function _redeemExternalReward() internal virtual override {
|
|
294
|
-
ISuperComposableYield(SCY).claimRewards(address(this));
|
|
303
|
+
ISuperComposableYield(SCY).claimRewards(address(this));
|
|
295
304
|
}
|
|
296
305
|
|
|
297
306
|
/// @dev effectively returning the amount of SCY generating rewards for this user
|
|
@@ -320,11 +329,11 @@ contract PendleYieldToken is
|
|
|
320
329
|
// padding to handle the very extreme case of SCY adding reward tokens after expiry
|
|
321
330
|
indexes = afterExpiry.firstRewardIndexes.padZeroRight(tokens.length);
|
|
322
331
|
} else {
|
|
323
|
-
indexes =
|
|
332
|
+
indexes = rewardIndexesCurrent();
|
|
324
333
|
}
|
|
325
334
|
}
|
|
326
335
|
|
|
327
|
-
function rewardIndexesCurrent()
|
|
336
|
+
function rewardIndexesCurrent() public override returns (uint256[] memory) {
|
|
328
337
|
return ISuperComposableYield(SCY).rewardIndexesCurrent();
|
|
329
338
|
}
|
|
330
339
|
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
21
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
22
|
*/
|
|
23
|
-
pragma solidity 0.8.
|
|
23
|
+
pragma solidity 0.8.15;
|
|
24
24
|
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
25
25
|
|
|
26
26
|
interface IAToken is IERC20 {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
21
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
22
|
*/
|
|
23
|
-
pragma solidity 0.8.
|
|
23
|
+
pragma solidity 0.8.15;
|
|
24
24
|
|
|
25
25
|
interface IBenQiComptroller {
|
|
26
26
|
function claimReward(
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
|
-
pragma solidity 0.8.
|
|
24
|
+
pragma solidity 0.8.15;
|
|
25
25
|
import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
|
26
26
|
|
|
27
27
|
interface IERC4626 is IERC20Metadata {
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
-
pragma solidity 0.8.
|
|
2
|
+
pragma solidity 0.8.15;
|
|
3
3
|
|
|
4
4
|
interface IPGaugeController {
|
|
5
5
|
event MarketClaimReward(address indexed market, uint256 amount);
|
|
6
6
|
|
|
7
7
|
event ReceiveVotingResults(uint128 wTime, address[] markets, uint256[] pendleAmounts);
|
|
8
8
|
|
|
9
|
+
function fundPendle(uint256 amount) external;
|
|
10
|
+
|
|
11
|
+
function withdrawPendle(uint256 amount) external;
|
|
12
|
+
|
|
9
13
|
function pendle() external returns (address);
|
|
10
14
|
|
|
11
15
|
function claimMarketReward() external;
|
|
@@ -19,4 +23,6 @@ interface IPGaugeController {
|
|
|
19
23
|
uint128,
|
|
20
24
|
uint128
|
|
21
25
|
);
|
|
26
|
+
|
|
27
|
+
|
|
22
28
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
-
pragma solidity 0.8.
|
|
2
|
+
pragma solidity 0.8.15;
|
|
3
3
|
|
|
4
4
|
interface IPMarketFactory {
|
|
5
5
|
event NewMarketConfig(
|
|
@@ -9,7 +9,12 @@ interface IPMarketFactory {
|
|
|
9
9
|
uint8 reserveFeePercent
|
|
10
10
|
);
|
|
11
11
|
|
|
12
|
-
event CreateNewMarket(
|
|
12
|
+
event CreateNewMarket(
|
|
13
|
+
address indexed market,
|
|
14
|
+
address indexed PT,
|
|
15
|
+
int256 scalarRoot,
|
|
16
|
+
int256 initialAnchor
|
|
17
|
+
);
|
|
13
18
|
|
|
14
19
|
function isValidMarket(address market) external view returns (bool);
|
|
15
20
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
-
pragma solidity 0.8.
|
|
2
|
+
pragma solidity 0.8.15;
|
|
3
3
|
import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
|
4
4
|
|
|
5
5
|
interface IPPrincipalToken is IERC20Metadata {
|
|
@@ -7,6 +7,8 @@ interface IPPrincipalToken is IERC20Metadata {
|
|
|
7
7
|
|
|
8
8
|
function mintByYT(address user, uint256 amount) external;
|
|
9
9
|
|
|
10
|
+
function initialize(address _YT) external;
|
|
11
|
+
|
|
10
12
|
function SCY() external view returns (address);
|
|
11
13
|
|
|
12
14
|
function YT() external view returns (address);
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
|
-
pragma solidity 0.8.
|
|
24
|
+
pragma solidity 0.8.15;
|
|
25
25
|
|
|
26
26
|
interface IPYieldContractFactory {
|
|
27
27
|
event CreateYieldContract(address indexed SCY, address PT, address YT, uint256 expiry);
|