@pendle/core-v2 0.9.3-beta → 0.10.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 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/WadRayMath.sol/WadRayMath.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol/PendleQiSAvaxSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol/PendleQiSAvaxSCY.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/PendleQiTokenSCY.sol/PendleQiTokenSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol/PendleSAvaxSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol/PendleSAvaxSCY.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.json +7 -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/PendleStargateSCY.sol/PendleStargateSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol/PendleStargateSCY.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 +4 -0
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/{PendleYearnVaultScy.sol → PendleYearnVaultSCY.sol}/PendleYearnVaultSCY.json +3 -3
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol/PendleSJoeSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol/PendleSJoeSCY.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/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol/CelerReceiverUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol/CelerReceiverUpg.json +67 -5
- package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol/CelerSenderUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol/CelerSenderUpg.json +63 -1
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.json +65 -3
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +74 -10
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +79 -15
- package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +204 -123
- package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.json +127 -73
- 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 +93 -34
- 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 +90 -14
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.json +14 -1
- package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +139 -37
- package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +84 -56
- package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.dbg.json +1 -1
- package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.dbg.json +1 -1
- package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.json +122 -11
- package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +96 -40
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
- package/build/artifacts/contracts/core/actions/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +4 -0
- package/build/artifacts/contracts/core/actions/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +1025 -0
- 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/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +4 -0
- package/build/artifacts/contracts/core/actions/ActionMintRedeem.sol/ActionMintRedeem.json +622 -0
- package/build/artifacts/contracts/core/actions/ActionMisc.sol/ActionMisc.dbg.json +4 -0
- package/build/artifacts/contracts/core/actions/ActionMisc.sol/ActionMisc.json +35 -0
- package/build/artifacts/contracts/core/actions/ActionSwapPT.sol/ActionSwapPT.dbg.json +4 -0
- package/build/artifacts/contracts/core/actions/ActionSwapPT.sol/ActionSwapPT.json +459 -0
- package/build/artifacts/contracts/core/actions/ActionSwapYT.sol/ActionSwapYT.dbg.json +4 -0
- package/build/artifacts/contracts/core/actions/ActionSwapYT.sol/ActionSwapYT.json +459 -0
- package/build/artifacts/contracts/core/actions/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +4 -0
- package/build/artifacts/contracts/core/actions/base/{ActionSCYAndPTBase.sol/ActionSCYAndPTBase.json → ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json} +2 -2
- 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/IBenQiComptroller.sol/IBenQiComptroller.json +24 -0
- 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/IEulerEToken.sol/IEulerEToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/{IPActionCore.sol/IPActionCore.json → IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json} +154 -909
- package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json +598 -0
- package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.json +35 -0
- package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.json +435 -0
- package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/{IPActionYT.sol/IPActionYT.json → IPActionSwapYT.sol/IPActionSwapYT.json} +23 -11
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +349 -57
- package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +4 -0
- package/build/artifacts/contracts/{core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.json → interfaces/IPGauge.sol/IPGauge.json} +5 -5
- package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.json +72 -29
- package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.json +0 -11
- 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/IPVeToken.sol/IPVeToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.json +0 -37
- 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 +1 -1
- 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 +1 -1
- package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.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/OracleLib.sol/OracleLib.dbg.json +4 -0
- package/build/artifacts/contracts/libraries/OracleLib.sol/OracleLib.json +74 -0
- package/build/artifacts/contracts/libraries/RewardManager.sol/RewardManager.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/PYIndex.sol/PYIndexLib.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/PYIndex.sol/PYIndexLib.json +2 -2
- package/build/artifacts/contracts/libraries/helpers/SSTORE2Deployer.sol/SSTORE2Deployer.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/TokenHelper.sol/TokenHelper.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
- 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/WeekMath.sol/WeekMath.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +93 -0
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +447 -49
- package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +4 -0
- package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.json +86 -0
- package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +4 -0
- package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.json +37 -0
- package/build/artifacts/contracts/periphery/PendleGovernanceManager.sol/PendleGovernanceManager.dbg.json +1 -1
- package/build/artifacts/contracts/periphery/PermissionsV2Upg.sol/PermissionsV2Upg.dbg.json +1 -1
- package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol +8 -0
- package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol +1 -1
- package/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol +11 -5
- package/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol +0 -1
- package/contracts/SuperComposableYield/SCY-implementations/{PendleYearnVaultScy.sol → PendleYearnVaultSCY.sol} +0 -0
- package/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol +1 -0
- package/contracts/SuperComposableYield/base-implementations/SCYBase.sol +1 -1
- package/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol +1 -1
- package/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol +7 -7
- package/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol +7 -6
- package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +4 -5
- package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol +6 -3
- package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol +6 -3
- package/contracts/core/LiquidityMining/PendleGauge.sol +3 -2
- package/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +22 -28
- package/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +71 -13
- package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +7 -4
- package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +6 -2
- package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol +4 -3
- package/contracts/core/Market/PendleMarket.sol +91 -55
- package/contracts/core/Market/PendleMarketFactory.sol +18 -33
- package/contracts/core/PendleRouter.sol +60 -52
- package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +12 -12
- package/contracts/core/YieldContracts/PendleYieldToken.sol +1 -1
- package/contracts/core/actions/ActionAddRemoveLiq.sol +366 -0
- package/contracts/core/actions/ActionCallback.sol +6 -6
- package/contracts/core/actions/ActionMintRedeem.sol +124 -0
- package/contracts/core/actions/ActionMisc.sol +24 -0
- package/contracts/core/actions/ActionSwapPT.sol +199 -0
- package/contracts/core/actions/{base/ActionSCYAndYTBase.sol → ActionSwapYT.sol} +109 -74
- package/contracts/core/actions/base/{ActionSCYAndPYBase.sol → ActionBaseMintRedeem.sol} +9 -8
- package/contracts/interfaces/IBenQiComptroller.sol +2 -0
- package/contracts/interfaces/IPActionAddRemoveLiq.sol +188 -0
- package/contracts/interfaces/IPActionMintRedeem.sol +115 -0
- package/contracts/interfaces/IPActionMisc.sol +9 -0
- package/contracts/interfaces/IPActionSwapPT.sol +69 -0
- package/contracts/interfaces/{IPActionYT.sol → IPActionSwapYT.sol} +12 -10
- package/contracts/interfaces/IPAllAction.sol +12 -3
- package/contracts/interfaces/IPGauge.sol +6 -0
- package/contracts/interfaces/IPGaugeController.sol +0 -2
- package/contracts/interfaces/IPMarket.sol +28 -10
- package/contracts/interfaces/IPMarketFactory.sol +1 -7
- package/contracts/interfaces/IPVeToken.sol +1 -1
- package/contracts/interfaces/IPVotingController.sol +0 -2
- package/contracts/interfaces/IRewardManager.sol +1 -1
- package/contracts/libraries/OracleLib.sol +214 -0
- package/contracts/libraries/RewardManagerAbstract.sol +1 -1
- package/contracts/libraries/math/MarketApproxLib.sol +227 -14
- package/contracts/libraries/math/MarketMathCore.sol +0 -33
- package/contracts/offchain-helpers/MarketMathStatic.sol +565 -0
- package/contracts/offchain-helpers/RouterStatic.sol +196 -262
- package/contracts/periphery/BoringOwnableUpgradeable.sol +62 -0
- package/deployments/43113-benqi.json +2 -2
- package/deployments/43113-core.json +7 -8
- package/deployments/43113-markets/benqi-market-6440d6.json +8 -0
- package/deployments/43113-markets/benqi-market-Dc7592.json +8 -0
- package/deployments/80001-core.json +6 -7
- package/deployments/80001-markets/benqi-market-1542e0.json +8 -0
- package/deployments/80001-markets/benqi-market-2b6D02.json +8 -0
- package/package.json +11 -11
- package/typechain-types/ActionAddRemoveLiq.ts +1037 -0
- package/typechain-types/ActionBaseMintRedeem.ts +87 -0
- package/typechain-types/ActionCore.ts +116 -104
- package/typechain-types/ActionMintRedeem.ts +665 -0
- package/typechain-types/ActionMisc.ts +105 -0
- package/typechain-types/ActionSwapPT.ts +515 -0
- package/typechain-types/ActionSwapYT.ts +515 -0
- package/typechain-types/ActionYT.ts +5 -4
- package/typechain-types/BoringOwnable.ts +194 -0
- package/typechain-types/BoringOwnableData.ts +100 -0
- package/typechain-types/BoringOwnableUpgradeable.ts +194 -0
- package/typechain-types/BoringOwnableUpgradeableData.ts +100 -0
- package/typechain-types/CelerReceiverUpg.ts +124 -19
- package/typechain-types/CelerSenderUpg.ts +116 -11
- package/typechain-types/IBenQiComptroller.ts +39 -0
- package/typechain-types/IPActionAddRemoveLiq.ts +1018 -0
- package/typechain-types/IPActionCore.ts +116 -104
- package/typechain-types/IPActionMintRedeem.ts +646 -0
- package/typechain-types/IPActionMisc.ts +105 -0
- package/typechain-types/IPActionSwapPT.ts +496 -0
- package/typechain-types/IPActionSwapYT.ts +496 -0
- package/typechain-types/IPActionYT.ts +5 -4
- package/typechain-types/IPAllAction.ts +499 -250
- package/typechain-types/IPGauge.ts +87 -0
- package/typechain-types/IPMarket.ts +133 -50
- package/typechain-types/IPMarketFactory.ts +7 -17
- package/typechain-types/IPVeToken.ts +8 -8
- package/typechain-types/IPVotingController.ts +0 -20
- package/typechain-types/IPYieldToken.ts +3 -3
- package/typechain-types/IRewardManager.ts +3 -3
- package/typechain-types/MarketMathStatic.ts +198 -0
- package/typechain-types/OracleLib.ts +124 -0
- package/typechain-types/PendleGaugeControllerBaseUpg.ts +118 -15
- package/typechain-types/PendleGaugeControllerMainchainUpg.ts +136 -9
- package/typechain-types/PendleGaugeControllerSidechainUpg.ts +138 -11
- package/typechain-types/PendleMarket.ts +178 -59
- package/typechain-types/PendleMarketFactory.ts +135 -61
- package/typechain-types/PendleRouter.ts +201 -31
- package/typechain-types/PendleVotingControllerUpg.ts +325 -149
- package/typechain-types/PendleYieldContractFactory.ts +144 -21
- package/typechain-types/RouterStatic.ts +404 -114
- package/typechain-types/VotingControllerStorageUpg.ts +182 -113
- package/typechain-types/VotingEscrowPendleMainchain.ts +170 -63
- package/typechain-types/VotingEscrowPendleSidechain.ts +163 -17
- package/typechain-types/VotingEscrowTokenBase.ts +27 -8
- package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1083 -0
- package/typechain-types/factories/ActionBaseMintRedeem__factory.ts +43 -0
- package/typechain-types/factories/ActionCallback__factory.ts +1 -1
- package/typechain-types/factories/ActionCore__factory.ts +39 -23
- package/typechain-types/factories/ActionMintRedeem__factory.ts +680 -0
- package/typechain-types/factories/ActionMisc__factory.ts +85 -0
- package/typechain-types/factories/ActionSwapPT__factory.ts +514 -0
- package/typechain-types/factories/ActionSwapYT__factory.ts +514 -0
- package/typechain-types/factories/ActionYT__factory.ts +2 -2
- package/typechain-types/factories/BoringOwnableData__factory.ts +90 -0
- package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +96 -0
- package/typechain-types/factories/BoringOwnableUpgradeable__factory.ts +143 -0
- package/typechain-types/factories/BoringOwnable__factory.ts +141 -0
- package/typechain-types/factories/CelerReceiverUpg__factory.ts +67 -5
- package/typechain-types/factories/CelerSenderUpg__factory.ts +63 -1
- package/typechain-types/factories/IBenQiComptroller__factory.ts +24 -0
- package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +1020 -0
- package/typechain-types/factories/IPActionCore__factory.ts +38 -22
- package/typechain-types/factories/IPActionMintRedeem__factory.ts +613 -0
- package/typechain-types/factories/IPActionMisc__factory.ts +47 -0
- package/typechain-types/factories/IPActionSwapPT__factory.ts +450 -0
- package/typechain-types/factories/IPActionSwapYT__factory.ts +450 -0
- package/typechain-types/factories/IPActionYT__factory.ts +1 -1
- package/typechain-types/factories/IPAllAction__factory.ts +349 -57
- package/typechain-types/factories/IPGauge__factory.ts +36 -0
- package/typechain-types/factories/IPMarketFactory__factory.ts +0 -11
- package/typechain-types/factories/IPMarket__factory.ts +72 -29
- package/typechain-types/factories/IPVeToken__factory.ts +1 -1
- package/typechain-types/factories/IPVotingController__factory.ts +0 -37
- package/typechain-types/factories/IPYieldToken__factory.ts +1 -1
- package/typechain-types/factories/IRewardManager__factory.ts +1 -1
- package/typechain-types/factories/MarketMathStatic__factory.ts +146 -0
- package/typechain-types/factories/OracleLib__factory.ts +124 -0
- package/typechain-types/factories/PendleAaveV3SCY__factory.ts +1 -1
- package/typechain-types/factories/PendleERC4626SCY__factory.ts +1 -1
- package/typechain-types/factories/PendleEulerSCY__factory.ts +10 -1
- package/typechain-types/factories/PendleGaugeControllerBaseUpg__factory.ts +65 -3
- package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +73 -13
- package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +79 -23
- package/typechain-types/factories/PendleMarketFactory__factory.ts +84 -86
- package/typechain-types/factories/PendleMarket__factory.ts +131 -37
- package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
- package/typechain-types/factories/PendleQiSAvaxSCY__factory.ts +1 -1
- package/typechain-types/factories/PendleQiTokenSCY__factory.ts +1 -1
- package/typechain-types/factories/PendleRouter__factory.ts +141 -22
- package/typechain-types/factories/PendleSAvaxSCY__factory.ts +1 -1
- package/typechain-types/factories/PendleSJoeSCY__factory.ts +1 -1
- package/typechain-types/factories/PendleStargateSCY__factory.ts +1 -1
- package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +203 -129
- package/typechain-types/factories/PendleWstEthSCY__factory.ts +1 -1
- package/typechain-types/factories/PendleYearnVaultSCY__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldContractFactory__factory.ts +97 -72
- package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
- package/typechain-types/factories/RouterStatic__factory.ts +253 -49
- package/typechain-types/factories/VotingControllerStorageUpg__factory.ts +126 -72
- package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +93 -41
- package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +90 -17
- package/typechain-types/factories/VotingEscrowTokenBase__factory.ts +14 -1
- package/typechain-types/hardhat.d.ts +162 -0
- package/typechain-types/index.ts +36 -0
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.dbg.json +0 -4
- package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.dbg.json +0 -4
- package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.json +0 -1785
- package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.dbg.json +0 -4
- package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.json +0 -447
- package/build/artifacts/contracts/core/actions/base/ActionSCYAndPTBase.sol/ActionSCYAndPTBase.dbg.json +0 -4
- package/build/artifacts/contracts/core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.dbg.json +0 -4
- package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.dbg.json +0 -4
- package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.json +0 -24
- package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPActionYT.sol/IPActionYT.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +0 -874
- package/contracts/core/actions/ActionCore.sol +0 -377
- package/contracts/core/actions/ActionYT.sol +0 -93
- package/contracts/core/actions/base/ActionSCYAndPTBase.sol +0 -303
- package/contracts/interfaces/IPActionCore.sol +0 -305
- package/contracts/interfaces/IPRouterStatic.sol +0 -152
- package/deployments/43113-markets/benqi-market-599408.json +0 -7
- package/deployments/43113-markets/benqi-market-93bbf0.json +0 -7
- package/deployments/80001-markets/benqi-market-007811.json +0 -7
- package/deployments/80001-markets/benqi-market-3fe528.json +0 -7
- package/typechain-types/FeeDistributorAbstract.ts +0 -164
- package/typechain-types/IPVotingControllerStorage.ts +0 -169
- package/typechain-types/factories/FeeDistributorAbstract__factory.ts +0 -90
- package/typechain-types/factories/IPVotingControllerStorage__factory.ts +0 -107
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_format": "hh-sol-artifact-1",
|
|
3
|
+
"contractName": "BoringOwnableUpgradeable",
|
|
4
|
+
"sourceName": "contracts/periphery/BoringOwnableUpgradeable.sol",
|
|
5
|
+
"abi": [
|
|
6
|
+
{
|
|
7
|
+
"anonymous": false,
|
|
8
|
+
"inputs": [
|
|
9
|
+
{
|
|
10
|
+
"indexed": true,
|
|
11
|
+
"internalType": "address",
|
|
12
|
+
"name": "previousOwner",
|
|
13
|
+
"type": "address"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"indexed": true,
|
|
17
|
+
"internalType": "address",
|
|
18
|
+
"name": "newOwner",
|
|
19
|
+
"type": "address"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"name": "OwnershipTransferred",
|
|
23
|
+
"type": "event"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"inputs": [],
|
|
27
|
+
"name": "claimOwnership",
|
|
28
|
+
"outputs": [],
|
|
29
|
+
"stateMutability": "nonpayable",
|
|
30
|
+
"type": "function"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"inputs": [],
|
|
34
|
+
"name": "owner",
|
|
35
|
+
"outputs": [
|
|
36
|
+
{
|
|
37
|
+
"internalType": "address",
|
|
38
|
+
"name": "",
|
|
39
|
+
"type": "address"
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"stateMutability": "view",
|
|
43
|
+
"type": "function"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"inputs": [],
|
|
47
|
+
"name": "pendingOwner",
|
|
48
|
+
"outputs": [
|
|
49
|
+
{
|
|
50
|
+
"internalType": "address",
|
|
51
|
+
"name": "",
|
|
52
|
+
"type": "address"
|
|
53
|
+
}
|
|
54
|
+
],
|
|
55
|
+
"stateMutability": "view",
|
|
56
|
+
"type": "function"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"inputs": [
|
|
60
|
+
{
|
|
61
|
+
"internalType": "address",
|
|
62
|
+
"name": "newOwner",
|
|
63
|
+
"type": "address"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"internalType": "bool",
|
|
67
|
+
"name": "direct",
|
|
68
|
+
"type": "bool"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"internalType": "bool",
|
|
72
|
+
"name": "renounce",
|
|
73
|
+
"type": "bool"
|
|
74
|
+
}
|
|
75
|
+
],
|
|
76
|
+
"name": "transferOwnership",
|
|
77
|
+
"outputs": [],
|
|
78
|
+
"stateMutability": "nonpayable",
|
|
79
|
+
"type": "function"
|
|
80
|
+
}
|
|
81
|
+
],
|
|
82
|
+
"bytecode": "0x608060405234801561001057600080fd5b50610349806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063078dfbe7146100515780634e71e0c8146100665780638da5cb5b1461006e578063e30c39781461009d575b600080fd5b61006461005f3660046102a2565b6100b0565b005b6100646101e2565b600054610081906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b600154610081906001600160a01b031681565b6000546001600160a01b0316331461010f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b81156101c0576001600160a01b0383161515806101295750805b61016d5760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b6044820152606401610106565b600080546040516001600160a01b03808716939216916000805160206102f483398151915291a3600080546001600160a01b0385166001600160a01b031991821617909155600180549091169055505050565b600180546001600160a01b0385166001600160a01b0319909116179055505050565b6001546001600160a01b031633811461023d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152606401610106565b600080546040516001600160a01b03808516939216916000805160206102f483398151915291a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b8035801515811461029d57600080fd5b919050565b6000806000606084860312156102b757600080fd5b83356001600160a01b03811681146102ce57600080fd5b92506102dc6020850161028d565b91506102ea6040850161028d565b9050925092509256fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a264697066735822122037e9efeed25db56e2246dd9c1ed17d806cc69d8ee958a6529f57b44e748be7ce64736f6c634300080f0033",
|
|
83
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c8063078dfbe7146100515780634e71e0c8146100665780638da5cb5b1461006e578063e30c39781461009d575b600080fd5b61006461005f3660046102a2565b6100b0565b005b6100646101e2565b600054610081906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b600154610081906001600160a01b031681565b6000546001600160a01b0316331461010f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b81156101c0576001600160a01b0383161515806101295750805b61016d5760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b6044820152606401610106565b600080546040516001600160a01b03808716939216916000805160206102f483398151915291a3600080546001600160a01b0385166001600160a01b031991821617909155600180549091169055505050565b600180546001600160a01b0385166001600160a01b0319909116179055505050565b6001546001600160a01b031633811461023d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152606401610106565b600080546040516001600160a01b03808516939216916000805160206102f483398151915291a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b8035801515811461029d57600080fd5b919050565b6000806000606084860312156102b757600080fd5b83356001600160a01b03811681146102ce57600080fd5b92506102dc6020850161028d565b91506102ea6040850161028d565b9050925092509256fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a264697066735822122037e9efeed25db56e2246dd9c1ed17d806cc69d8ee958a6529f57b44e748be7ce64736f6c634300080f0033",
|
|
84
|
+
"linkReferences": {},
|
|
85
|
+
"deployedLinkReferences": {}
|
|
86
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_format": "hh-sol-artifact-1",
|
|
3
|
+
"contractName": "BoringOwnableUpgradeableData",
|
|
4
|
+
"sourceName": "contracts/periphery/BoringOwnableUpgradeable.sol",
|
|
5
|
+
"abi": [
|
|
6
|
+
{
|
|
7
|
+
"inputs": [],
|
|
8
|
+
"name": "owner",
|
|
9
|
+
"outputs": [
|
|
10
|
+
{
|
|
11
|
+
"internalType": "address",
|
|
12
|
+
"name": "",
|
|
13
|
+
"type": "address"
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"stateMutability": "view",
|
|
17
|
+
"type": "function"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"inputs": [],
|
|
21
|
+
"name": "pendingOwner",
|
|
22
|
+
"outputs": [
|
|
23
|
+
{
|
|
24
|
+
"internalType": "address",
|
|
25
|
+
"name": "",
|
|
26
|
+
"type": "address"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"stateMutability": "view",
|
|
30
|
+
"type": "function"
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
"bytecode": "0x6080604052348015600f57600080fd5b5060ad8061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c80638da5cb5b146037578063e30c3978146065575b600080fd5b6000546049906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6001546049906001600160a01b03168156fea2646970667358221220803cd87cbcfbd2eb2588b597af5f32cd7788dfbf5e4a039fd21501fbef36d99c64736f6c634300080f0033",
|
|
34
|
+
"deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060325760003560e01c80638da5cb5b146037578063e30c3978146065575b600080fd5b6000546049906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6001546049906001600160a01b03168156fea2646970667358221220803cd87cbcfbd2eb2588b597af5f32cd7788dfbf5e4a039fd21501fbef36d99c64736f6c634300080f0033",
|
|
35
|
+
"linkReferences": {},
|
|
36
|
+
"deployedLinkReferences": {}
|
|
37
|
+
}
|
|
@@ -139,6 +139,14 @@ contract PendleQiTokenSCY is SCYBaseWithRewards, PendleQiTokenHelper {
|
|
|
139
139
|
IBenQiComptroller(comptroller).claimReward(0, holders, qiTokens, false, true);
|
|
140
140
|
IBenQiComptroller(comptroller).claimReward(1, holders, qiTokens, false, true);
|
|
141
141
|
|
|
142
|
+
require(
|
|
143
|
+
Math.max(
|
|
144
|
+
IBenQiComptroller(comptroller).rewardAccrued(0, address(this)),
|
|
145
|
+
IBenQiComptroller(comptroller).rewardAccrued(1, address(this))
|
|
146
|
+
) == 0,
|
|
147
|
+
"BENQI: redeem reward failed"
|
|
148
|
+
);
|
|
149
|
+
|
|
142
150
|
if (address(this).balance != 0) IWETH(WAVAX).deposit{ value: address(this).balance }();
|
|
143
151
|
}
|
|
144
152
|
|
|
@@ -35,7 +35,7 @@ contract PendleSAvaxSCY is SCYBase {
|
|
|
35
35
|
/**
|
|
36
36
|
* @dev See {SCYBase-_deposit}
|
|
37
37
|
*
|
|
38
|
-
* The underlying yield token is sAvax. Tokens accepted for deposit are NATIVE,
|
|
38
|
+
* The underlying yield token is sAvax. Tokens accepted for deposit are NATIVE, WAVAX, and sAVAX.
|
|
39
39
|
*
|
|
40
40
|
*If the base token deposited is native AVAX, the function converts it into sAVAX first. Then the corresponding amount of shares is returned.
|
|
41
41
|
*
|
|
@@ -18,7 +18,8 @@ contract PendleEulerSCY is SCYBase {
|
|
|
18
18
|
string memory _name,
|
|
19
19
|
string memory _symbol,
|
|
20
20
|
address _eToken,
|
|
21
|
-
address _eulerMarkets // pass eulerMarkets to double check both eToken & underlying
|
|
21
|
+
address _eulerMarkets, // pass eulerMarkets to double check both eToken & underlying
|
|
22
|
+
address _euler // need to approve spending by euler
|
|
22
23
|
) SCYBase(_name, _symbol, _eToken) {
|
|
23
24
|
require(_eToken != address(0), "zero address");
|
|
24
25
|
require(_eulerMarkets != address(0), "zero address");
|
|
@@ -27,7 +28,7 @@ contract PendleEulerSCY is SCYBase {
|
|
|
27
28
|
|
|
28
29
|
underlying = IEulerMarkets(_eulerMarkets).eTokenToUnderlying(eToken);
|
|
29
30
|
|
|
30
|
-
_safeApprove(underlying,
|
|
31
|
+
_safeApprove(underlying, _euler, type(uint256).max);
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
/*///////////////////////////////////////////////////////////////
|
|
@@ -86,7 +87,10 @@ contract PendleEulerSCY is SCYBase {
|
|
|
86
87
|
uint256 preBalanceUnderlying = _selfBalance(underlying);
|
|
87
88
|
|
|
88
89
|
// Swap EToken for underlying base tokens
|
|
89
|
-
IEulerEToken(eToken).withdraw(
|
|
90
|
+
IEulerEToken(eToken).withdraw(
|
|
91
|
+
0,
|
|
92
|
+
IEulerEToken(eToken).convertBalanceToUnderlying(amountSharesToRedeem)
|
|
93
|
+
);
|
|
90
94
|
|
|
91
95
|
// Since 'withdraw' function doesn't return the amount of underlying tokens swapped from eTokens, calculate change in underlying balance to find the amount of shares out
|
|
92
96
|
amountTokenOut = _selfBalance(underlying) - preBalanceUnderlying;
|
|
@@ -118,7 +122,9 @@ contract PendleEulerSCY is SCYBase {
|
|
|
118
122
|
if (tokenIn == eToken) {
|
|
119
123
|
amountSharesOut = amountTokenToDeposit;
|
|
120
124
|
} else {
|
|
121
|
-
amountSharesOut = (
|
|
125
|
+
amountSharesOut = IEulerEToken(eToken).convertUnderlyingToBalance(
|
|
126
|
+
amountTokenToDeposit
|
|
127
|
+
);
|
|
122
128
|
}
|
|
123
129
|
}
|
|
124
130
|
|
|
@@ -131,7 +137,7 @@ contract PendleEulerSCY is SCYBase {
|
|
|
131
137
|
if (tokenOut == eToken) {
|
|
132
138
|
amountTokenOut = amountSharesToRedeem;
|
|
133
139
|
} else {
|
|
134
|
-
amountTokenOut = (amountSharesToRedeem
|
|
140
|
+
amountTokenOut = IEulerEToken(eToken).convertBalanceToUnderlying(amountSharesToRedeem);
|
|
135
141
|
}
|
|
136
142
|
}
|
|
137
143
|
|
|
@@ -26,7 +26,6 @@ contract PendleStargateSCY is SCYBaseWithRewards {
|
|
|
26
26
|
) SCYBaseWithRewards(_name, _symbol, _stgPool) {
|
|
27
27
|
stgRouter = _stgRouter;
|
|
28
28
|
|
|
29
|
-
// I dont think we need safecast for a trusted call like this
|
|
30
29
|
stgRouterPoolId = uint16(IStargatePool(_stgPool).poolId());
|
|
31
30
|
|
|
32
31
|
stgStakingLP = _stgStakingLP;
|
|
File without changes
|
|
@@ -149,7 +149,7 @@ abstract contract SCYBase is ISuperComposableYield, PendleERC20, TokenHelper {
|
|
|
149
149
|
}
|
|
150
150
|
|
|
151
151
|
/**
|
|
152
|
-
* @dev See {ISuperComposableYield-
|
|
152
|
+
* @dev See {ISuperComposableYield-accruedRewards}
|
|
153
153
|
*/
|
|
154
154
|
function accruedRewards(
|
|
155
155
|
address /*user*/
|
|
@@ -65,7 +65,7 @@ abstract contract SCYBaseWithRewards is SCYBase, RewardManager {
|
|
|
65
65
|
address[] memory rewardTokens = _getRewardTokens();
|
|
66
66
|
rewardAmounts = new uint256[](rewardTokens.length);
|
|
67
67
|
for (uint256 i = 0; i < rewardTokens.length; ) {
|
|
68
|
-
rewardAmounts[i] = userReward[
|
|
68
|
+
rewardAmounts[i] = userReward[rewardTokens[i]][user].accrued;
|
|
69
69
|
unchecked {
|
|
70
70
|
i++;
|
|
71
71
|
}
|
|
@@ -2,36 +2,36 @@
|
|
|
2
2
|
pragma solidity 0.8.15;
|
|
3
3
|
|
|
4
4
|
import "../../../interfaces/ICelerMessageReceiverApp.sol";
|
|
5
|
-
import "../../../periphery/
|
|
5
|
+
import "../../../periphery/BoringOwnableUpgradeable.sol";
|
|
6
6
|
|
|
7
7
|
// solhint-disable no-empty-blocks
|
|
8
8
|
/// This contract is upgradable because
|
|
9
9
|
/// - its constructor only sets immutable variables
|
|
10
10
|
/// - it has storage gaps for safe addition of future variables
|
|
11
11
|
/// - it inherits only upgradable contract
|
|
12
|
-
abstract contract CelerReceiverUpg is ICelerMessageReceiverApp,
|
|
12
|
+
abstract contract CelerReceiverUpg is ICelerMessageReceiverApp, BoringOwnableUpgradeable {
|
|
13
13
|
address public celerMessageBus;
|
|
14
14
|
address public originAddress;
|
|
15
15
|
uint256 public originChainId;
|
|
16
16
|
|
|
17
17
|
uint256[100] private __gap;
|
|
18
18
|
|
|
19
|
-
constructor(
|
|
19
|
+
constructor() {}
|
|
20
20
|
|
|
21
21
|
modifier onlyCelerOrGov() {
|
|
22
22
|
require(
|
|
23
|
-
msg.sender == celerMessageBus || msg.sender ==
|
|
23
|
+
msg.sender == celerMessageBus || msg.sender == owner,
|
|
24
24
|
"only celer message bus or gov"
|
|
25
25
|
);
|
|
26
26
|
_;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
function setOrigin(address _addr, uint256 _chainId) external
|
|
29
|
+
function setOrigin(address _addr, uint256 _chainId) external onlyOwner {
|
|
30
30
|
originAddress = _addr;
|
|
31
31
|
originChainId = _chainId;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
function setCelerMessageBus(address _celerMessageBus) external
|
|
34
|
+
function setCelerMessageBus(address _celerMessageBus) external onlyOwner {
|
|
35
35
|
celerMessageBus = _celerMessageBus;
|
|
36
36
|
}
|
|
37
37
|
|
|
@@ -41,7 +41,7 @@ abstract contract CelerReceiverUpg is ICelerMessageReceiverApp, PermissionsV2Upg
|
|
|
41
41
|
bytes calldata _message,
|
|
42
42
|
address /* executor */
|
|
43
43
|
) external payable onlyCelerOrGov returns (ExecutionStatus) {
|
|
44
|
-
// if the message sender is not celer bus, there is no harm to have the
|
|
44
|
+
// if the message sender is not celer bus, there is no harm to have the transaction failed
|
|
45
45
|
if (_sender != originAddress || _srcChainId != originChainId) {
|
|
46
46
|
return ExecutionStatus.Fail;
|
|
47
47
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
pragma solidity 0.8.15;
|
|
3
3
|
|
|
4
4
|
import "../../../interfaces/ICelerMessageBus.sol";
|
|
5
|
-
import "../../../periphery/
|
|
5
|
+
import "../../../periphery/BoringOwnableUpgradeable.sol";
|
|
6
6
|
import "@openzeppelin/contracts/utils/Address.sol";
|
|
7
7
|
import "@openzeppelin/contracts/utils/structs/EnumerableMap.sol";
|
|
8
8
|
|
|
@@ -11,7 +11,7 @@ import "@openzeppelin/contracts/utils/structs/EnumerableMap.sol";
|
|
|
11
11
|
/// - its constructor only sets immutable variables
|
|
12
12
|
/// - it has storage gaps for safe addition of future variables
|
|
13
13
|
/// - it inherits only upgradable contract
|
|
14
|
-
abstract contract CelerSenderUpg is
|
|
14
|
+
abstract contract CelerSenderUpg is BoringOwnableUpgradeable {
|
|
15
15
|
using EnumerableMap for EnumerableMap.UintToAddressMap;
|
|
16
16
|
|
|
17
17
|
ICelerMessageBus public celerMessageBus;
|
|
@@ -28,9 +28,9 @@ abstract contract CelerSenderUpg is PermissionsV2Upg {
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
constructor(
|
|
31
|
+
constructor() {}
|
|
32
32
|
|
|
33
|
-
function setCelerMessageBus(address _celerMessageBus) external
|
|
33
|
+
function setCelerMessageBus(address _celerMessageBus) external onlyOwner {
|
|
34
34
|
celerMessageBus = ICelerMessageBus(_celerMessageBus);
|
|
35
35
|
}
|
|
36
36
|
|
|
@@ -38,7 +38,8 @@ abstract contract CelerSenderUpg is PermissionsV2Upg {
|
|
|
38
38
|
assert(destinationContracts.contains(chainId));
|
|
39
39
|
address toAddr = destinationContracts.get(chainId);
|
|
40
40
|
uint256 fee = celerMessageBus.calcFee(message);
|
|
41
|
-
|
|
41
|
+
// LM contracts won't hold ETH on its own so this is fine
|
|
42
|
+
require(address(this).balance >= fee, "Insufficient celer fee");
|
|
42
43
|
celerMessageBus.sendMessage{ value: fee }(toAddr, chainId, message);
|
|
43
44
|
}
|
|
44
45
|
|
|
@@ -47,7 +48,7 @@ abstract contract CelerSenderUpg is PermissionsV2Upg {
|
|
|
47
48
|
function addDestinationContract(address _address, uint256 _chainId)
|
|
48
49
|
external
|
|
49
50
|
payable
|
|
50
|
-
|
|
51
|
+
onlyOwner
|
|
51
52
|
{
|
|
52
53
|
destinationContracts.set(_chainId, _address);
|
|
53
54
|
_afterAddDestinationContract(_address, _chainId);
|
|
@@ -8,7 +8,7 @@ import "../../../libraries/math/WeekMath.sol";
|
|
|
8
8
|
import "../../../interfaces/IPGaugeController.sol";
|
|
9
9
|
import "../../../interfaces/IPMarketFactory.sol";
|
|
10
10
|
import "../../../interfaces/IPMarket.sol";
|
|
11
|
-
import "../../../periphery/
|
|
11
|
+
import "../../../periphery/BoringOwnableUpgradeable.sol";
|
|
12
12
|
import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
|
13
13
|
|
|
14
14
|
/**
|
|
@@ -17,17 +17,16 @@ import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
|
|
17
17
|
* set it directly to contract state
|
|
18
18
|
*
|
|
19
19
|
* @dev All of the core data in this function will be set to private to prevent unintended assignments
|
|
20
|
-
* on
|
|
20
|
+
* on inheriting contracts
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
23
|
/// This contract is upgradable because
|
|
24
24
|
/// - its constructor only sets immutable variables
|
|
25
25
|
/// - it has storage gaps for safe addition of future variables
|
|
26
26
|
/// - it inherits only upgradable contract
|
|
27
|
-
abstract contract PendleGaugeControllerBaseUpg is IPGaugeController,
|
|
27
|
+
abstract contract PendleGaugeControllerBaseUpg is IPGaugeController, BoringOwnableUpgradeable {
|
|
28
28
|
using SafeERC20 for IERC20;
|
|
29
29
|
using Math for uint256;
|
|
30
|
-
using EnumerableSet for EnumerableSet.AddressSet;
|
|
31
30
|
|
|
32
31
|
struct MarketRewardData {
|
|
33
32
|
uint128 pendlePerSec;
|
|
@@ -80,7 +79,7 @@ abstract contract PendleGaugeControllerBaseUpg is IPGaugeController, Permissions
|
|
|
80
79
|
IERC20(pendle).safeTransferFrom(msg.sender, address(this), amount);
|
|
81
80
|
}
|
|
82
81
|
|
|
83
|
-
function withdrawPendle(uint256 amount) external
|
|
82
|
+
function withdrawPendle(uint256 amount) external onlyOwner {
|
|
84
83
|
IERC20(pendle).safeTransfer(msg.sender, amount);
|
|
85
84
|
}
|
|
86
85
|
|
package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol
CHANGED
|
@@ -17,12 +17,15 @@ contract PendleGaugeControllerMainchainUpg is PendleGaugeControllerBaseUpg {
|
|
|
17
17
|
constructor(
|
|
18
18
|
address _votingController,
|
|
19
19
|
address _pendle,
|
|
20
|
-
address _marketFactory
|
|
21
|
-
|
|
22
|
-
) PendleGaugeControllerBaseUpg(_pendle, _marketFactory) PermissionsV2Upg(_governanceManager) {
|
|
20
|
+
address _marketFactory
|
|
21
|
+
) PendleGaugeControllerBaseUpg(_pendle, _marketFactory) initializer {
|
|
23
22
|
votingController = _votingController;
|
|
24
23
|
}
|
|
25
24
|
|
|
25
|
+
function initialize() external initializer {
|
|
26
|
+
__BoringOwnable_init();
|
|
27
|
+
}
|
|
28
|
+
|
|
26
29
|
function updateVotingResults(
|
|
27
30
|
uint128 wTime,
|
|
28
31
|
address[] memory markets,
|
package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol
CHANGED
|
@@ -12,9 +12,12 @@ import "../CelerAbstracts/CelerReceiverUpg.sol";
|
|
|
12
12
|
contract PendleGaugeControllerSidechainUpg is PendleGaugeControllerBaseUpg, CelerReceiverUpg {
|
|
13
13
|
constructor(
|
|
14
14
|
address _pendle,
|
|
15
|
-
address _marketFactory
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
address _marketFactory
|
|
16
|
+
) PendleGaugeControllerBaseUpg(_pendle, _marketFactory) initializer {}
|
|
17
|
+
|
|
18
|
+
function initialize() external initializer {
|
|
19
|
+
__BoringOwnable_init();
|
|
20
|
+
}
|
|
18
21
|
|
|
19
22
|
function _executeMessage(bytes memory message) internal virtual override {
|
|
20
23
|
(uint128 wTime, address[] memory markets, uint256[] memory pendleAmounts) = abi.decode(
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
2
|
pragma solidity 0.8.15;
|
|
3
3
|
|
|
4
|
+
import "../../interfaces/IPGauge.sol";
|
|
4
5
|
import "../../interfaces/IPGaugeController.sol";
|
|
5
6
|
import "../../interfaces/IPVeToken.sol";
|
|
6
7
|
import "../../interfaces/ISuperComposableYield.sol";
|
|
@@ -13,7 +14,7 @@ import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
|
13
14
|
Invariants to maintain:
|
|
14
15
|
- before any changes to active balance, updateAndDistributeRewards() must be called
|
|
15
16
|
*/
|
|
16
|
-
abstract contract PendleGauge is RewardManager {
|
|
17
|
+
abstract contract PendleGauge is RewardManager, IPGauge {
|
|
17
18
|
using Math for uint256;
|
|
18
19
|
using SafeERC20 for IERC20;
|
|
19
20
|
using ArrayLib for address[];
|
|
@@ -80,7 +81,7 @@ abstract contract PendleGauge is RewardManager {
|
|
|
80
81
|
virtual
|
|
81
82
|
returns (uint256)
|
|
82
83
|
{
|
|
83
|
-
(uint256
|
|
84
|
+
(uint256 vePendleSupply, uint256 vePendleBalance) = vePENDLE.totalSupplyAndBalanceCurrent(
|
|
84
85
|
user
|
|
85
86
|
);
|
|
86
87
|
// Inspired by Curve's Gauge
|
|
@@ -49,11 +49,15 @@ contract PendleVotingControllerUpg is
|
|
|
49
49
|
using EnumerableMap for EnumerableMap.UintToAddressMap;
|
|
50
50
|
using EnumerableSet for EnumerableSet.AddressSet;
|
|
51
51
|
|
|
52
|
-
constructor(address _vePendle
|
|
52
|
+
constructor(address _vePendle)
|
|
53
53
|
VotingControllerStorageUpg(_vePendle) // constructor only set immutable variables
|
|
54
|
-
|
|
54
|
+
initializer
|
|
55
55
|
{}
|
|
56
56
|
|
|
57
|
+
function initialize() external initializer {
|
|
58
|
+
__BoringOwnable_init();
|
|
59
|
+
}
|
|
60
|
+
|
|
57
61
|
/*///////////////////////////////////////////////////////////////
|
|
58
62
|
FUNCTIONS CAN BE CALLED BY ANYONE
|
|
59
63
|
//////////////////////////////////////////////////////////////*/
|
|
@@ -69,26 +73,16 @@ contract PendleVotingControllerUpg is
|
|
|
69
73
|
function vote(address[] calldata pools, uint64[] calldata weights) external {
|
|
70
74
|
address user = msg.sender;
|
|
71
75
|
|
|
72
|
-
require(weights.length == pools.length, "
|
|
73
|
-
require(vePendle.balanceOf(user) > 0, "zero
|
|
76
|
+
require(weights.length == pools.length, "invalid array length");
|
|
77
|
+
require(vePendle.balanceOf(user) > 0 || user == owner, "zero vePENDLE balance");
|
|
74
78
|
|
|
75
79
|
UserData storage uData = userData[user];
|
|
76
80
|
LockedPosition memory userPosition = _getUserVePendlePosition(user);
|
|
77
81
|
|
|
78
82
|
for (uint256 i = 0; i < pools.length; ++i) {
|
|
79
83
|
if (_isPoolActive(pools[i])) applyPoolSlopeChanges(pools[i]);
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
// Process weight-decrease pools first
|
|
83
|
-
for (uint256 i = 0; i < pools.length; ++i) {
|
|
84
|
-
if (uData.voteForPools[pools[i]].weight > weights[i])
|
|
85
|
-
_modifyVoteWeight(user, pools[i], userPosition, weights[i]);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
// Process weight-increase pools
|
|
89
|
-
for (uint256 i = 0; i < pools.length; ++i) {
|
|
90
|
-
if (uData.voteForPools[pools[i]].weight <= weights[i])
|
|
91
|
-
_modifyVoteWeight(user, pools[i], userPosition, weights[i]);
|
|
84
|
+
VeBalance memory newVote = _modifyVoteWeight(user, pools[i], userPosition, weights[i]);
|
|
85
|
+
emit Vote(user, pools[i], weights[i], newVote);
|
|
92
86
|
}
|
|
93
87
|
|
|
94
88
|
require(
|
|
@@ -163,12 +157,12 @@ contract PendleVotingControllerUpg is
|
|
|
163
157
|
* @dev pre-condition: pool must not have been added before
|
|
164
158
|
* @dev assumption: chainId is valid, pool does exist on the chain (guaranteed by gov)
|
|
165
159
|
* @dev state changes expected:
|
|
166
|
-
- add to allActivePools &
|
|
160
|
+
- add to allActivePools & activeChainPools
|
|
167
161
|
- set params in poolData
|
|
168
162
|
* @dev NOTE TO GOV: previous week's results should have been broadcasted prior to calling
|
|
169
163
|
this function
|
|
170
164
|
*/
|
|
171
|
-
function addPool(uint64 chainId, address pool) external
|
|
165
|
+
function addPool(uint64 chainId, address pool) external onlyOwner {
|
|
172
166
|
require(!_isPoolActive(pool), "pool already added");
|
|
173
167
|
require(!allRemovedPools.contains(pool), "not allowed to add a removed pool");
|
|
174
168
|
|
|
@@ -181,12 +175,12 @@ contract PendleVotingControllerUpg is
|
|
|
181
175
|
* @dev pre-condition: pool must have been added before
|
|
182
176
|
* @dev state changes expected:
|
|
183
177
|
- update weekData (if any)
|
|
184
|
-
- remove from allActivePools &
|
|
178
|
+
- remove from allActivePools & activeChainPools
|
|
185
179
|
- clear data in poolData
|
|
186
180
|
* @dev NOTE TO GOV: previous week's results should have been broadcasted prior to calling
|
|
187
181
|
this function
|
|
188
182
|
*/
|
|
189
|
-
function removePool(address pool) external
|
|
183
|
+
function removePool(address pool) external onlyOwner {
|
|
190
184
|
require(_isPoolActive(pool), "invalid pool");
|
|
191
185
|
|
|
192
186
|
uint64 chainId = poolData[pool].chainId;
|
|
@@ -200,7 +194,7 @@ contract PendleVotingControllerUpg is
|
|
|
200
194
|
/**
|
|
201
195
|
* @notice use the gov-privilege to force broadcast a message in case there are issues with Celer
|
|
202
196
|
* @dev it's intentional for this function to have minimal checks since we assume gov has done the
|
|
203
|
-
due
|
|
197
|
+
due diligence
|
|
204
198
|
* @dev gov should always call finalizeEpoch beforehand
|
|
205
199
|
* @dev state changes expected:
|
|
206
200
|
- the gaugeController receives the new pendle allocation
|
|
@@ -209,7 +203,7 @@ contract PendleVotingControllerUpg is
|
|
|
209
203
|
uint64 chainId,
|
|
210
204
|
uint128 wTime,
|
|
211
205
|
uint128 forcedPendlePerSec
|
|
212
|
-
) external payable
|
|
206
|
+
) external payable onlyOwner refundUnusedEth {
|
|
213
207
|
_broadcastResults(chainId, wTime, forcedPendlePerSec);
|
|
214
208
|
}
|
|
215
209
|
|
|
@@ -220,7 +214,7 @@ contract PendleVotingControllerUpg is
|
|
|
220
214
|
* @dev NOTE TO GOV: This should be done mid-week, well before the next broadcast to avoid
|
|
221
215
|
race condition
|
|
222
216
|
*/
|
|
223
|
-
function setPendlePerSec(uint128 newPendlePerSec) external
|
|
217
|
+
function setPendlePerSec(uint128 newPendlePerSec) external onlyOwner {
|
|
224
218
|
pendlePerSec = newPendlePerSec;
|
|
225
219
|
emit SetPendlePerSec(newPendlePerSec);
|
|
226
220
|
}
|
|
@@ -228,7 +222,7 @@ contract PendleVotingControllerUpg is
|
|
|
228
222
|
function getBroadcastResultFee(uint64 chainId) external view returns (uint256) {
|
|
229
223
|
if (chainId == block.chainid) return 0; // Mainchain broadcast
|
|
230
224
|
|
|
231
|
-
uint256 length =
|
|
225
|
+
uint256 length = activeChainPools[chainId].length();
|
|
232
226
|
if (length == 0) return 0;
|
|
233
227
|
|
|
234
228
|
address[] memory pools = new address[](length);
|
|
@@ -255,10 +249,10 @@ contract PendleVotingControllerUpg is
|
|
|
255
249
|
uint256 totalVotes = weekData[wTime].totalVotes;
|
|
256
250
|
if (totalVotes == 0) return;
|
|
257
251
|
|
|
258
|
-
uint256 length =
|
|
252
|
+
uint256 length = activeChainPools[chainId].length();
|
|
259
253
|
if (length == 0) return;
|
|
260
254
|
|
|
261
|
-
address[] memory pools =
|
|
255
|
+
address[] memory pools = activeChainPools[chainId].values();
|
|
262
256
|
uint256[] memory totalPendleAmounts = new uint256[](length);
|
|
263
257
|
|
|
264
258
|
for (uint256 i = 0; i < length; ++i) {
|
|
@@ -285,7 +279,7 @@ contract PendleVotingControllerUpg is
|
|
|
285
279
|
view
|
|
286
280
|
returns (LockedPosition memory userPosition)
|
|
287
281
|
{
|
|
288
|
-
if (user ==
|
|
282
|
+
if (user == owner) {
|
|
289
283
|
(userPosition.amount, userPosition.expiry) = (
|
|
290
284
|
GOVERNANCE_PENDLE_VOTE,
|
|
291
285
|
WeekMath.getWeekStartTimestamp(uint128(block.timestamp) + MAX_LOCK_TIME)
|
|
@@ -295,5 +289,5 @@ contract PendleVotingControllerUpg is
|
|
|
295
289
|
}
|
|
296
290
|
}
|
|
297
291
|
|
|
298
|
-
function _authorizeUpgrade(address newImplementation) internal override
|
|
292
|
+
function _authorizeUpgrade(address newImplementation) internal override onlyOwner {}
|
|
299
293
|
}
|