@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
package/contracts/core/LiquidityMining/CelerAbstracts/{CelerReceiver.sol → CelerReceiverUpg.sol}
RENAMED
|
@@ -1,15 +1,21 @@
|
|
|
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/ICelerMessageReceiverApp.sol";
|
|
5
5
|
import "../../../periphery/PermissionsV2Upg.sol";
|
|
6
6
|
|
|
7
7
|
// solhint-disable no-empty-blocks
|
|
8
|
-
|
|
8
|
+
/// This contract is upgradable because
|
|
9
|
+
/// - its constructor only sets immutable variables
|
|
10
|
+
/// - it has storage gaps for safe addition of future variables
|
|
11
|
+
/// - it inherits only upgradable contract
|
|
12
|
+
abstract contract CelerReceiverUpg is ICelerMessageReceiverApp, PermissionsV2Upg {
|
|
9
13
|
address public celerMessageBus;
|
|
10
14
|
address public originAddress;
|
|
11
15
|
uint256 public originChainId;
|
|
12
16
|
|
|
17
|
+
uint256[100] private __gap;
|
|
18
|
+
|
|
13
19
|
constructor(address _governanceManager) PermissionsV2Upg(_governanceManager) {}
|
|
14
20
|
|
|
15
21
|
modifier onlyCelerOrGov() {
|
package/contracts/core/LiquidityMining/CelerAbstracts/{CelerSender.sol → CelerSenderUpg.sol}
RENAMED
|
@@ -1,17 +1,24 @@
|
|
|
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/ICelerMessageBus.sol";
|
|
5
5
|
import "../../../periphery/PermissionsV2Upg.sol";
|
|
6
6
|
import "@openzeppelin/contracts/utils/structs/EnumerableMap.sol";
|
|
7
7
|
|
|
8
8
|
// solhint-disable no-empty-blocks
|
|
9
|
-
|
|
9
|
+
/// This contract is upgradable because
|
|
10
|
+
/// - its constructor only sets immutable variables
|
|
11
|
+
/// - it has storage gaps for safe addition of future variables
|
|
12
|
+
/// - it inherits only upgradable contract
|
|
13
|
+
abstract contract CelerSenderUpg is PermissionsV2Upg {
|
|
10
14
|
using EnumerableMap for EnumerableMap.UintToAddressMap;
|
|
11
15
|
|
|
12
|
-
ICelerMessageBus
|
|
16
|
+
ICelerMessageBus public celerMessageBus;
|
|
17
|
+
|
|
13
18
|
EnumerableMap.UintToAddressMap internal sidechainContracts;
|
|
14
19
|
|
|
20
|
+
uint256[100] private __gap;
|
|
21
|
+
|
|
15
22
|
constructor(address _governanceManager) PermissionsV2Upg(_governanceManager) {}
|
|
16
23
|
|
|
17
24
|
function setCelerMessageBus(address _celerMessageBus) external onlyGovernance {
|
|
@@ -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/IPGaugeController.sol";
|
|
5
5
|
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
@@ -17,10 +17,13 @@ import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
|
|
17
17
|
*
|
|
18
18
|
* @dev All of the core data in this function will be set to private to prevent unintended assignments
|
|
19
19
|
* on inheritting contracts
|
|
20
|
-
*
|
|
21
|
-
* @dev no more pause
|
|
22
20
|
*/
|
|
23
|
-
|
|
21
|
+
|
|
22
|
+
/// This contract is upgradable because
|
|
23
|
+
/// - its constructor only sets immutable variables
|
|
24
|
+
/// - it has storage gaps for safe addition of future variables
|
|
25
|
+
/// - it inherits only upgradable contract
|
|
26
|
+
abstract contract PendleGaugeControllerBaseUpg is IPGaugeController, PermissionsV2Upg {
|
|
24
27
|
using SafeERC20 for IERC20;
|
|
25
28
|
using Math for uint256;
|
|
26
29
|
using EnumerableSet for EnumerableSet.AddressSet;
|
|
@@ -40,6 +43,8 @@ abstract contract PendleGaugeController is IPGaugeController, PermissionsV2Upg {
|
|
|
40
43
|
mapping(address => MarketRewardData) public rewardData;
|
|
41
44
|
mapping(uint128 => bool) public epochRewardReceived;
|
|
42
45
|
|
|
46
|
+
uint256[100] private __gap;
|
|
47
|
+
|
|
43
48
|
modifier onlyPendleMarket() {
|
|
44
49
|
require(marketFactory.isValidMarket(msg.sender), "invalid market");
|
|
45
50
|
_;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
-
pragma solidity 0.8.
|
|
2
|
+
pragma solidity 0.8.15;
|
|
3
3
|
|
|
4
|
-
import "./
|
|
4
|
+
import "./PendleGaugeControllerBaseUpg.sol";
|
|
5
5
|
|
|
6
|
-
contract
|
|
6
|
+
/// This contract is upgradable because
|
|
7
|
+
/// - its constructor only sets immutable variables
|
|
8
|
+
/// - it inherits only upgradable contract
|
|
9
|
+
contract PendleGaugeControllerMainchainUpg is PendleGaugeControllerBaseUpg {
|
|
7
10
|
address public immutable votingController;
|
|
8
11
|
|
|
9
12
|
modifier onlyVotingController() {
|
|
@@ -16,7 +19,7 @@ contract PendleGaugeControllerMainchain is PendleGaugeController {
|
|
|
16
19
|
address _pendle,
|
|
17
20
|
address _marketFactory,
|
|
18
21
|
address _governanceManager
|
|
19
|
-
)
|
|
22
|
+
) PendleGaugeControllerBaseUpg(_pendle, _marketFactory) PermissionsV2Upg(_governanceManager) {
|
|
20
23
|
votingController = _votingController;
|
|
21
24
|
}
|
|
22
25
|
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
-
pragma solidity 0.8.
|
|
2
|
+
pragma solidity 0.8.15;
|
|
3
3
|
|
|
4
|
-
import "./
|
|
5
|
-
import "../CelerAbstracts/
|
|
4
|
+
import "./PendleGaugeControllerBaseUpg.sol";
|
|
5
|
+
import "../CelerAbstracts/CelerReceiverUpg.sol";
|
|
6
6
|
|
|
7
7
|
// solhint-disable no-empty-blocks
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
/// This contract is upgradable because
|
|
10
|
+
/// - its constructor only sets immutable variables
|
|
11
|
+
/// - it inherits only upgradable contract
|
|
12
|
+
contract PendleGaugeControllerSidechainUpg is PendleGaugeControllerBaseUpg, CelerReceiverUpg {
|
|
9
13
|
constructor(
|
|
10
14
|
address _pendle,
|
|
11
15
|
address _marketFactory,
|
|
12
16
|
address _governanceManager
|
|
13
|
-
)
|
|
17
|
+
) PendleGaugeControllerBaseUpg(_pendle, _marketFactory) CelerReceiverUpg(_governanceManager) {}
|
|
14
18
|
|
|
15
19
|
function _executeMessage(bytes memory message) internal virtual override {
|
|
16
20
|
(uint128 wTime, address[] memory markets, uint256[] memory pendleAmounts) = abi.decode(
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
-
pragma solidity 0.8.
|
|
2
|
+
pragma solidity 0.8.15;
|
|
3
3
|
|
|
4
|
-
import "./
|
|
5
|
-
import "../CelerAbstracts/
|
|
4
|
+
import "./VotingControllerStorageUpg.sol";
|
|
5
|
+
import "../CelerAbstracts/CelerSenderUpg.sol";
|
|
6
6
|
import "../../../libraries/VeBalanceLib.sol";
|
|
7
7
|
import "../../../libraries/math/Math.sol";
|
|
8
8
|
import "../../../interfaces/IPGaugeControllerMainchain.sol";
|
|
9
9
|
import "../../../interfaces/IPVotingController.sol";
|
|
10
|
+
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
|
11
|
+
import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
|
|
10
12
|
|
|
11
13
|
/*
|
|
12
14
|
Voting accounting:
|
|
@@ -31,7 +33,16 @@ Cons:
|
|
|
31
33
|
- Does not guarantee the reward will be distributed on epoch start and end
|
|
32
34
|
*/
|
|
33
35
|
|
|
34
|
-
contract
|
|
36
|
+
/// This contract is upgradable because
|
|
37
|
+
/// - its constructor only sets immutable variables
|
|
38
|
+
/// - it has storage gaps for safe addition of future variables
|
|
39
|
+
/// - it inherits only upgradable contract
|
|
40
|
+
contract PendleVotingControllerUpg is
|
|
41
|
+
CelerSenderUpg,
|
|
42
|
+
VotingControllerStorageUpg,
|
|
43
|
+
UUPSUpgradeable,
|
|
44
|
+
IPVotingController
|
|
45
|
+
{
|
|
35
46
|
using VeBalanceLib for VeBalance;
|
|
36
47
|
using Math for uint256;
|
|
37
48
|
using Math for int256;
|
|
@@ -39,8 +50,8 @@ contract PendleVotingController is CelerSender, VotingControllerStorage, IPVotin
|
|
|
39
50
|
using EnumerableSet for EnumerableSet.AddressSet;
|
|
40
51
|
|
|
41
52
|
constructor(address _vePendle, address _governanceManager)
|
|
42
|
-
|
|
43
|
-
|
|
53
|
+
VotingControllerStorageUpg(_vePendle) // constructor only set immutable variables
|
|
54
|
+
CelerSenderUpg(_governanceManager) // constructor only set immutable variables
|
|
44
55
|
{}
|
|
45
56
|
|
|
46
57
|
/*///////////////////////////////////////////////////////////////
|
|
@@ -320,4 +331,6 @@ contract PendleVotingController is CelerSender, VotingControllerStorage, IPVotin
|
|
|
320
331
|
expiry
|
|
321
332
|
);
|
|
322
333
|
}
|
|
334
|
+
|
|
335
|
+
function _authorizeUpgrade(address newImplementation) internal override onlyGovernance {}
|
|
323
336
|
}
|
|
@@ -1,17 +1,21 @@
|
|
|
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/IPVeToken.sol";
|
|
5
5
|
import "../../../libraries/VeBalanceLib.sol";
|
|
6
6
|
import "../../../libraries/math/WeekMath.sol";
|
|
7
7
|
import "../../../libraries/helpers/MiniHelpers.sol";
|
|
8
|
+
import "../../../libraries/VeHistoryLib.sol";
|
|
8
9
|
import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
/// This contract is upgradable because
|
|
12
|
+
/// - its constructor only sets immutable variables
|
|
13
|
+
/// - it has storage gaps for safe addition of future variables
|
|
14
|
+
/// - it inherits only upgradable contract
|
|
15
|
+
abstract contract VotingControllerStorageUpg {
|
|
13
16
|
using VeBalanceLib for VeBalance;
|
|
14
17
|
using EnumerableSet for EnumerableSet.AddressSet;
|
|
18
|
+
using Checkpoints for Checkpoints.History;
|
|
15
19
|
|
|
16
20
|
struct PoolInfo {
|
|
17
21
|
uint64 chainId;
|
|
@@ -36,7 +40,7 @@ abstract contract VotingControllerStorage {
|
|
|
36
40
|
mapping(address => uint128) poolVotes;
|
|
37
41
|
}
|
|
38
42
|
|
|
39
|
-
uint128
|
|
43
|
+
uint128 public constant MAX_LOCK_TIME = 104 weeks;
|
|
40
44
|
uint64 public constant USER_VOTE_MAX_WEIGHT = 10**18;
|
|
41
45
|
uint128 public constant WEEK = 1 weeks;
|
|
42
46
|
uint128 public constant GOVERNANCE_PENDLE_VOTE = 10**24;
|
|
@@ -65,7 +69,9 @@ abstract contract VotingControllerStorage {
|
|
|
65
69
|
mapping(uint128 => bool) public isEpochFinalized;
|
|
66
70
|
|
|
67
71
|
// [user][pool] => checkpoint
|
|
68
|
-
mapping(address => mapping(address =>
|
|
72
|
+
mapping(address => mapping(address => Checkpoints.History)) internal userPoolHistory;
|
|
73
|
+
|
|
74
|
+
uint256[100] private __gap;
|
|
69
75
|
|
|
70
76
|
constructor(address _vePendle) {
|
|
71
77
|
vePendle = IPVeToken(_vePendle);
|
|
@@ -104,7 +110,7 @@ abstract contract VotingControllerStorage {
|
|
|
104
110
|
address pool,
|
|
105
111
|
uint128 timestamp
|
|
106
112
|
) external view returns (uint128) {
|
|
107
|
-
return
|
|
113
|
+
return userPoolHistory[user][pool].getAtTimestamp(timestamp);
|
|
108
114
|
}
|
|
109
115
|
|
|
110
116
|
/*///////////////////////////////////////////////////////////////
|
|
@@ -198,9 +204,7 @@ abstract contract VotingControllerStorage {
|
|
|
198
204
|
address pool,
|
|
199
205
|
VeBalance memory vote
|
|
200
206
|
) internal {
|
|
201
|
-
|
|
202
|
-
Checkpoint({ balance: vote, timestamp: uint128(block.timestamp) })
|
|
203
|
-
);
|
|
207
|
+
userPoolHistory[user][pool].push(vote);
|
|
204
208
|
}
|
|
205
209
|
|
|
206
210
|
function _setAllPastEpochsAsFinalized() internal {
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
-
pragma solidity 0.8.
|
|
2
|
+
pragma solidity 0.8.15;
|
|
3
3
|
import "../../../interfaces/IPVotingEscrow.sol";
|
|
4
4
|
import "../../../libraries/helpers/MiniHelpers.sol";
|
|
5
|
-
import "./
|
|
6
|
-
import "../CelerAbstracts/
|
|
5
|
+
import "./VotingEscrowTokenBase.sol";
|
|
6
|
+
import "../CelerAbstracts/CelerSenderUpg.sol";
|
|
7
|
+
import "../../../libraries/VeHistoryLib.sol";
|
|
7
8
|
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
8
9
|
import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
|
9
10
|
|
|
10
|
-
contract VotingEscrowPendleMainchain is
|
|
11
|
+
contract VotingEscrowPendleMainchain is IPVotingEscrow, VotingEscrowTokenBase, CelerSenderUpg {
|
|
11
12
|
using SafeERC20 for IERC20;
|
|
12
13
|
using VeBalanceLib for VeBalance;
|
|
13
14
|
using VeBalanceLib for LockedPosition;
|
|
15
|
+
using Checkpoints for Checkpoints.History;
|
|
14
16
|
using EnumerableMap for EnumerableMap.UintToAddressMap;
|
|
15
17
|
|
|
16
18
|
bytes private constant EMPTY_BYTES = abi.encode();
|
|
@@ -26,9 +28,11 @@ contract VotingEscrowPendleMainchain is VotingEscrowToken, IPVotingEscrow, Celer
|
|
|
26
28
|
|
|
27
29
|
// Saving VeBalance checkpoint for users of each week, can later use binary search
|
|
28
30
|
// to ask for their vePendle balance at any wTime
|
|
29
|
-
mapping(address =>
|
|
31
|
+
mapping(address => Checkpoints.History) internal userHistory;
|
|
30
32
|
|
|
31
|
-
constructor(IERC20 _pendle, address _governanceManager)
|
|
33
|
+
constructor(IERC20 _pendle, address _governanceManager)
|
|
34
|
+
CelerSenderUpg(_governanceManager) // only sets immutable variables
|
|
35
|
+
{
|
|
32
36
|
pendle = _pendle;
|
|
33
37
|
}
|
|
34
38
|
|
|
@@ -132,7 +136,7 @@ contract VotingEscrowPendleMainchain is VotingEscrowToken, IPVotingEscrow, Celer
|
|
|
132
136
|
|
|
133
137
|
/// @notice binary search to find balance at a timestamp. This timestamp does not need to be divisible by week
|
|
134
138
|
function getUserVeBalanceAt(address user, uint128 timestamp) external view returns (uint128) {
|
|
135
|
-
return
|
|
139
|
+
return userHistory[user].getAtTimestamp(timestamp);
|
|
136
140
|
}
|
|
137
141
|
|
|
138
142
|
/**
|
|
@@ -173,7 +177,7 @@ contract VotingEscrowPendleMainchain is VotingEscrowToken, IPVotingEscrow, Celer
|
|
|
173
177
|
|
|
174
178
|
_totalSupply = newSupply;
|
|
175
179
|
positionData[user] = newPosition;
|
|
176
|
-
|
|
180
|
+
userHistory[user].push(newBalance);
|
|
177
181
|
return newBalance.getCurrentValue();
|
|
178
182
|
}
|
|
179
183
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
2
|
|
|
3
|
-
pragma solidity 0.8.
|
|
3
|
+
pragma solidity 0.8.15;
|
|
4
4
|
|
|
5
5
|
import "../../../libraries/VeBalanceLib.sol";
|
|
6
6
|
import "../../../libraries/math/WeekMath.sol";
|
|
7
|
-
import "./
|
|
8
|
-
import "../CelerAbstracts/
|
|
7
|
+
import "./VotingEscrowTokenBase.sol";
|
|
8
|
+
import "../CelerAbstracts/CelerReceiverUpg.sol";
|
|
9
9
|
|
|
10
10
|
// solhint-disable no-empty-blocks
|
|
11
|
-
contract VotingEscrowPendleSidechain is
|
|
11
|
+
contract VotingEscrowPendleSidechain is VotingEscrowTokenBase, CelerReceiverUpg {
|
|
12
12
|
mapping(address => address) internal delegatorOf;
|
|
13
13
|
|
|
14
14
|
event SetNewDelegator(address delegator, address receiver);
|
|
@@ -17,7 +17,7 @@ contract VotingEscrowPendleSidechain is VotingEscrowToken, CelerReceiver {
|
|
|
17
17
|
|
|
18
18
|
event SetNewUserPosition(LockedPosition position);
|
|
19
19
|
|
|
20
|
-
constructor(address _governanceManager)
|
|
20
|
+
constructor(address _governanceManager) CelerReceiverUpg(_governanceManager) {}
|
|
21
21
|
|
|
22
22
|
function totalSupplyCurrent() external view virtual override returns (uint128) {
|
|
23
23
|
return totalSupplyStored();
|
|
@@ -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/IPVeToken.sol";
|
|
5
5
|
import "../../../libraries/VeBalanceLib.sol";
|
|
@@ -19,8 +19,7 @@ import "../../../libraries/helpers/MiniHelpers.sol";
|
|
|
19
19
|
* + No other transaction is allowed to write on sidechain storage
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
-
abstract contract
|
|
23
|
-
// wrong name, should be VotingEscrowPendle
|
|
22
|
+
abstract contract VotingEscrowTokenBase is IPVeToken {
|
|
24
23
|
using VeBalanceLib for VeBalance;
|
|
25
24
|
using VeBalanceLib for LockedPosition;
|
|
26
25
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
-
pragma solidity 0.8.
|
|
2
|
+
pragma solidity 0.8.15;
|
|
3
3
|
|
|
4
|
-
import "../PendleERC20.sol";
|
|
5
4
|
import "../../interfaces/IPPrincipalToken.sol";
|
|
6
5
|
import "../../interfaces/ISuperComposableYield.sol";
|
|
7
6
|
import "../../interfaces/IPMarket.sol";
|
|
@@ -14,13 +13,13 @@ import "../../libraries/math/Math.sol";
|
|
|
14
13
|
import "../../libraries/helpers/MiniHelpers.sol";
|
|
15
14
|
|
|
16
15
|
import "../LiquidityMining/PendleGauge.sol";
|
|
17
|
-
import "../
|
|
16
|
+
import "../PendleERC20.sol";
|
|
18
17
|
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
19
18
|
|
|
20
19
|
// solhint-disable reason-string
|
|
21
20
|
/// Invariances to maintain:
|
|
22
21
|
/// - Internal balances totalPt & totalScy not interferred by people transferring tokens in directly
|
|
23
|
-
contract PendleMarket is
|
|
22
|
+
contract PendleMarket is PendleERC20, PendleGauge, IPMarket {
|
|
24
23
|
using Math for uint256;
|
|
25
24
|
using Math for int256;
|
|
26
25
|
using MarketMathCore for MarketState;
|
|
@@ -66,7 +65,7 @@ contract PendleMarket is PendleERC20Permit, PendleGauge, IPMarket {
|
|
|
66
65
|
address _vePendle,
|
|
67
66
|
address _gaugeController
|
|
68
67
|
)
|
|
69
|
-
|
|
68
|
+
PendleERC20(NAME, SYMBOL, 18)
|
|
70
69
|
PendleGauge(IPPrincipalToken(_PT).SCY(), _vePendle, _gaugeController)
|
|
71
70
|
{
|
|
72
71
|
PT = IPPrincipalToken(_PT);
|
|
@@ -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/utils/structs/EnumerableSet.sol";
|
|
4
4
|
import "@openzeppelin/contracts/proxy/utils/Initializable.sol";
|
|
5
5
|
|
|
@@ -7,13 +7,13 @@ import "../../interfaces/IPMarket.sol";
|
|
|
7
7
|
import "../../interfaces/IPYieldContractFactory.sol";
|
|
8
8
|
import "../../interfaces/IPMarketFactory.sol";
|
|
9
9
|
|
|
10
|
-
import "../../libraries/helpers/
|
|
10
|
+
import "../../libraries/helpers/SSTORE2Deployer.sol";
|
|
11
11
|
import "../../periphery/PermissionsV2Upg.sol";
|
|
12
12
|
|
|
13
13
|
import "./PendleMarket.sol";
|
|
14
14
|
import "../LiquidityMining/PendleGauge.sol";
|
|
15
15
|
|
|
16
|
-
contract PendleMarketFactory is PermissionsV2Upg,
|
|
16
|
+
contract PendleMarketFactory is PermissionsV2Upg, Initializable, IPMarketFactory {
|
|
17
17
|
using EnumerableSet for EnumerableSet.AddressSet;
|
|
18
18
|
|
|
19
19
|
struct MarketConfig {
|
|
@@ -28,7 +28,7 @@ contract PendleMarketFactory is PermissionsV2Upg, MiniDeployer, Initializable, I
|
|
|
28
28
|
uint256 private constant MIN_RATE_ORACLE_TIME_WINDOW = 300 seconds;
|
|
29
29
|
|
|
30
30
|
address public immutable yieldContractFactory;
|
|
31
|
-
address public
|
|
31
|
+
address public marketCreationCodePointer;
|
|
32
32
|
uint256 public immutable maxLnFeeRateRoot;
|
|
33
33
|
|
|
34
34
|
// PT -> scalarRoot -> initialAnchor
|
|
@@ -46,8 +46,7 @@ contract PendleMarketFactory is PermissionsV2Upg, MiniDeployer, Initializable, I
|
|
|
46
46
|
address _treasury,
|
|
47
47
|
uint96 _lnFeeRateRoot,
|
|
48
48
|
uint32 _rateOracleTimeWindow,
|
|
49
|
-
uint8 _reserveFeePercent
|
|
50
|
-
bytes memory _marketCreationCode
|
|
49
|
+
uint8 _reserveFeePercent
|
|
51
50
|
) PermissionsV2Upg(_governanceManager) {
|
|
52
51
|
require(_yieldContractFactory != address(0), "zero address");
|
|
53
52
|
yieldContractFactory = _yieldContractFactory;
|
|
@@ -57,17 +56,17 @@ contract PendleMarketFactory is PermissionsV2Upg, MiniDeployer, Initializable, I
|
|
|
57
56
|
setlnFeeRateRoot(_lnFeeRateRoot);
|
|
58
57
|
setRateOracleTimeWindow(_rateOracleTimeWindow);
|
|
59
58
|
setReserveFeePercent(_reserveFeePercent);
|
|
60
|
-
marketCreationCodePointer = _setCreationCode(_marketCreationCode);
|
|
61
59
|
}
|
|
62
60
|
|
|
63
|
-
function initialize(
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
{
|
|
61
|
+
function initialize(
|
|
62
|
+
address newVePendle,
|
|
63
|
+
address newGaugeController,
|
|
64
|
+
bytes memory _marketCreationCode
|
|
65
|
+
) external onlyGovernance initializer {
|
|
68
66
|
require(newVePendle != address(0) && newGaugeController != address(0), "zero address");
|
|
69
67
|
vePendle = newVePendle;
|
|
70
68
|
gaugeController = newGaugeController;
|
|
69
|
+
marketCreationCodePointer = SSTORE2Deployer.setCreationCode(_marketCreationCode);
|
|
71
70
|
}
|
|
72
71
|
|
|
73
72
|
/**
|
|
@@ -80,24 +79,22 @@ contract PendleMarketFactory is PermissionsV2Upg, MiniDeployer, Initializable, I
|
|
|
80
79
|
int256 initialAnchor
|
|
81
80
|
) external returns (address market) {
|
|
82
81
|
require(IPYieldContractFactory(yieldContractFactory).isPT(PT), "Invalid PT");
|
|
83
|
-
require(
|
|
84
|
-
require(gaugeController != address(0), "gaugeController unset");
|
|
85
|
-
require(
|
|
86
|
-
markets[PT][scalarRoot][initialAnchor] == address(0),
|
|
87
|
-
"duplicated creation params"
|
|
88
|
-
);
|
|
82
|
+
require(markets[PT][scalarRoot][initialAnchor] == address(0), "market already created");
|
|
89
83
|
|
|
90
|
-
market
|
|
84
|
+
// no need salt since market's existence has been checked before hand
|
|
85
|
+
market = SSTORE2Deployer.create2(
|
|
91
86
|
marketCreationCodePointer,
|
|
87
|
+
bytes32(0),
|
|
92
88
|
abi.encode(PT, scalarRoot, initialAnchor, vePendle, gaugeController)
|
|
93
89
|
);
|
|
94
90
|
|
|
95
91
|
markets[PT][scalarRoot][initialAnchor] = market;
|
|
96
92
|
require(allMarkets.add(market), "IE market can't be added");
|
|
97
93
|
|
|
98
|
-
emit CreateNewMarket(PT, scalarRoot, initialAnchor);
|
|
94
|
+
emit CreateNewMarket(market, PT, scalarRoot, initialAnchor);
|
|
99
95
|
}
|
|
100
96
|
|
|
97
|
+
/// @dev for gas-efficient verification of market
|
|
101
98
|
function isValidMarket(address market) external view returns (bool) {
|
|
102
99
|
return allMarkets.contains(market);
|
|
103
100
|
}
|
|
@@ -1,37 +1,45 @@
|
|
|
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/IPPrincipalToken.sol";
|
|
5
5
|
import "../../interfaces/IPYieldToken.sol";
|
|
6
6
|
|
|
7
|
-
import "../
|
|
7
|
+
import "../PendleERC20.sol";
|
|
8
8
|
import "../../libraries/helpers/MiniHelpers.sol";
|
|
9
|
+
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
|
9
10
|
|
|
10
|
-
contract PendlePrincipalToken is
|
|
11
|
+
contract PendlePrincipalToken is PendleERC20, Initializable, IPPrincipalToken {
|
|
11
12
|
address public immutable SCY;
|
|
12
|
-
address public immutable YT;
|
|
13
13
|
address public immutable factory;
|
|
14
14
|
uint256 public immutable expiry;
|
|
15
|
+
address public YT;
|
|
15
16
|
|
|
16
17
|
modifier onlyYT() {
|
|
17
18
|
require(msg.sender == address(YT), "ONLY_YT");
|
|
18
19
|
_;
|
|
19
20
|
}
|
|
20
21
|
|
|
22
|
+
modifier onlyFactory() {
|
|
23
|
+
require(msg.sender == factory, "ONLY_FACTORY");
|
|
24
|
+
_;
|
|
25
|
+
}
|
|
26
|
+
|
|
21
27
|
constructor(
|
|
22
28
|
address _SCY,
|
|
23
|
-
address _YT,
|
|
24
29
|
string memory _name,
|
|
25
30
|
string memory _symbol,
|
|
26
31
|
uint8 __decimals,
|
|
27
32
|
uint256 _expiry
|
|
28
|
-
)
|
|
33
|
+
) PendleERC20(_name, _symbol, __decimals) {
|
|
29
34
|
SCY = _SCY;
|
|
30
|
-
YT = _YT;
|
|
31
35
|
expiry = _expiry;
|
|
32
36
|
factory = msg.sender;
|
|
33
37
|
}
|
|
34
38
|
|
|
39
|
+
function initialize(address _YT) external initializer onlyFactory {
|
|
40
|
+
YT = _YT;
|
|
41
|
+
}
|
|
42
|
+
|
|
35
43
|
/**
|
|
36
44
|
* @dev only callable by the YT correspond to this PT
|
|
37
45
|
*/
|