@pendle/core-v2 0.6.8 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.dbg.json +4 -0
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.json +751 -0
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/WadRayMath.sol/WadRayMath.dbg.json +4 -0
- package/build/artifacts/contracts/{core/PendleSCYImpl → SuperComposableYield/SCY-implementations}/AaveV3/WadRayMath.sol/WadRayMath.json +3 -3
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +4 -0
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +27 -0
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.dbg.json +4 -0
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.json +761 -0
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleBtrflySCY.sol/PendleBtrflyScy.dbg.json +4 -0
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleBtrflySCY.sol/PendleBtrflyScy.json +635 -0
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.dbg.json +4 -0
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.json +609 -0
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleJoeLpSCY.sol/PendleJoeLpSCY.dbg.json +4 -0
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleJoeLpSCY.sol/PendleJoeLpSCY.json +653 -0
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.dbg.json +4 -0
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.json +622 -0
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.dbg.json +4 -0
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.json +622 -0
- package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBase.sol/SCYBase.dbg.json +4 -0
- package/build/artifacts/contracts/SuperComposableYield/{ISuperComposableYield.sol/ISuperComposableYield.json → base-implementations/SCYBase.sol/SCYBase.json} +221 -141
- package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +4 -0
- package/build/artifacts/contracts/SuperComposableYield/{implementations → base-implementations}/SCYBaseWithRewards.sol/SCYBaseWithRewards.json +247 -223
- package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiver.sol/CelerReceiver.dbg.json +4 -0
- package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiver.sol/CelerReceiver.json +128 -0
- package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSender.sol/CelerSender.dbg.json +4 -0
- package/build/artifacts/contracts/{SuperComposableYield/implementations/IRewardManager.sol/IRewardManager.json → core/LiquidityMining/CelerAbstracts/CelerSender.sol/CelerSender.json} +29 -33
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeController.sol/PendleGaugeController.dbg.json +4 -0
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeController.sol/PendleGaugeController.json +193 -0
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchain.sol/PendleGaugeControllerMainchain.dbg.json +4 -0
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchain.sol/PendleGaugeControllerMainchain.json +255 -0
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechain.sol/PendleGaugeControllerSidechain.dbg.json +4 -0
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechain.sol/PendleGaugeControllerSidechain.json +318 -0
- package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.dbg.json +4 -0
- package/build/artifacts/contracts/{interfaces/IPVotingEscrow.sol/IVotingEscrowPendle.json → core/LiquidityMining/PendleGauge.sol/PendleGauge.json} +57 -65
- package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingController.sol/PendleVotingController.dbg.json +4 -0
- package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingController.sol/PendleVotingController.json +707 -0
- package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorage.sol/VotingControllerStorage.dbg.json +4 -0
- package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorage.sol/VotingControllerStorage.json +342 -0
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +4 -0
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +547 -0
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +4 -0
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +353 -0
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowToken.sol/VotingEscrowToken.dbg.json +4 -0
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowToken.sol/VotingEscrowToken.json +138 -0
- package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +4 -0
- package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +922 -0
- package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +4 -0
- package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +345 -0
- package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.dbg.json +4 -0
- package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.json +254 -0
- package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +4 -0
- package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.json +329 -0
- package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.dbg.json +1 -1
- package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.json +2 -20
- package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +4 -0
- package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +445 -0
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +4 -0
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +344 -0
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +4 -0
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +750 -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/ActionCore.sol/ActionCore.dbg.json +1 -1
- package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.json +123 -77
- package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.dbg.json +1 -1
- package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.json +39 -42
- package/build/artifacts/contracts/core/actions/base/ActionSCYAndPTBase.sol/ActionSCYAndPTBase.dbg.json +1 -1
- package/build/artifacts/contracts/core/actions/base/ActionSCYAndPTBase.sol/ActionSCYAndPTBase.json +163 -1
- package/build/artifacts/contracts/core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.dbg.json +1 -1
- package/build/artifacts/contracts/core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.json +0 -13
- package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.dbg.json +1 -1
- package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.json +1 -14
- package/build/artifacts/contracts/core/actions/base/CallbackHelper.sol/CallbackHelper.dbg.json +4 -0
- package/build/artifacts/contracts/core/actions/base/CallbackHelper.sol/CallbackHelper.json +10 -0
- package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.json +39 -0
- 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 +13 -0
- package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.json +74 -0
- package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/{IVePToken.sol/IVePToken.json → ICelerMessageBus.sol/ICelerMessageBus.json} +21 -11
- package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.json +45 -0
- package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +4 -0
- package/build/artifacts/contracts/{core/PendleBaseToken.sol/PendleBaseToken.json → interfaces/IERC4626.sol/IERC4626.json} +53 -68
- 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 +4 -0
- package/build/artifacts/contracts/interfaces/IJoeRouter02.sol/IJoeRouter02.json +962 -0
- package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.json +122 -58
- package/build/artifacts/contracts/interfaces/IPActionYT.sol/IPActionYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionYT.sol/IPActionYT.json +36 -21
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +116 -81
- package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.json +109 -0
- package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.json +132 -0
- package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.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 +35 -54
- package/build/artifacts/contracts/interfaces/IPMarketAddRemoveCallback.sol/IPMarketAddRemoveCallback.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.json +31 -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 +5 -5
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.json +99 -0
- package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.json +167 -0
- package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.json +148 -0
- 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 +85 -83
- package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/{IPBaseToken.sol/IPBaseToken.json → IQiAvax.sol/IQiAvax.json} +106 -15
- package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.json +117 -0
- package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.json +117 -0
- package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +4 -0
- package/build/artifacts/contracts/{periphery/PendleJoeSwapHelperUpg.sol/PendleJoeSwapHelperUpg.json → interfaces/IRewardManager.sol/IRewardManager.json} +12 -14
- package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.dbg.json +4 -0
- package/build/artifacts/contracts/{SuperComposableYield/implementations/SCYBase.sol/SCYBase.json → interfaces/ISuperComposableYield.sol/ISuperComposableYield.json} +183 -181
- 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/IWXBTRFLY.sol/IWXBTRFLY.json +13 -0
- package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.json +13 -0
- package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.json +13 -0
- package/build/artifacts/contracts/libraries/RewardManager.sol/RewardManager.dbg.json +4 -0
- package/build/artifacts/contracts/{SuperComposableYield/implementations → libraries}/RewardManager.sol/RewardManager.json +44 -33
- package/build/artifacts/contracts/libraries/RewardManagerMini.sol/RewardManagerMini.dbg.json +4 -0
- package/build/artifacts/contracts/libraries/RewardManagerMini.sol/RewardManagerMini.json +101 -0
- package/build/artifacts/contracts/libraries/SCY/SCYIndex.sol/SCYIndexLib.dbg.json +4 -0
- package/build/artifacts/contracts/libraries/{SCYIndex.sol → SCY/SCYIndex.sol}/SCYIndexLib.json +3 -3
- package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.dbg.json +4 -0
- package/build/artifacts/contracts/{SuperComposableYield → libraries/SCY}/SCYUtils.sol/SCYUtils.json +3 -3
- package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +4 -0
- package/build/artifacts/contracts/libraries/{math/MarketMathAux.sol/MarketMathAux.json → VeBalanceLib.sol/VeBalanceLib.json} +4 -4
- package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.dbg.json +4 -0
- package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.json +10 -0
- 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/MiniDeployer.sol/MiniDeployer.dbg.json +4 -0
- package/build/artifacts/contracts/libraries/helpers/MiniDeployer.sol/MiniDeployer.json +10 -0
- package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.dbg.json +4 -0
- package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.json +10 -0
- package/build/artifacts/contracts/libraries/helpers/TokenHelper.sol/TokenHelper.dbg.json +4 -0
- package/build/artifacts/contracts/{core/actions/base/ActionType.sol/ActionType.json → libraries/helpers/TokenHelper.sol/TokenHelper.json} +2 -2
- 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 +4 -0
- package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.json +10 -0
- package/build/artifacts/contracts/libraries/solmate/Bytes32AddressLib.sol/Bytes32AddressLib.dbg.json +4 -0
- package/build/artifacts/contracts/libraries/solmate/Bytes32AddressLib.sol/Bytes32AddressLib.json +10 -0
- package/build/artifacts/contracts/libraries/solmate/LibRLP.sol/LibRLP.dbg.json +4 -0
- package/build/artifacts/contracts/libraries/solmate/LibRLP.sol/LibRLP.json +10 -0
- package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.dbg.json +4 -0
- package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.json +10 -0
- package/build/artifacts/contracts/libraries/traderjoe/JoeLibrary.sol/JoeLibrary.dbg.json +4 -0
- package/build/artifacts/contracts/libraries/{JoeLibrary.sol → traderjoe/JoeLibrary.sol}/JoeLibrary.json +3 -3
- package/build/artifacts/contracts/libraries/traderjoe/PendleJoeSwapHelperUpg.sol/PendleJoeSwapHelperUpg.dbg.json +4 -0
- package/build/artifacts/contracts/libraries/traderjoe/PendleJoeSwapHelperUpg.sol/PendleJoeSwapHelperUpg.json +24 -0
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +862 -0
- 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 +147 -0
- package/contracts/{core/PendleSCYImpl → SuperComposableYield/SCY-implementations}/AaveV3/WadRayMath.sol +1 -1
- package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol +74 -0
- package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol +187 -0
- package/contracts/SuperComposableYield/SCY-implementations/PendleBtrflySCY.sol +123 -0
- package/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol +99 -0
- package/contracts/SuperComposableYield/SCY-implementations/PendleJoeLpSCY.sol +245 -0
- package/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol +107 -0
- package/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol +120 -0
- package/contracts/SuperComposableYield/base-implementations/SCYBase.sol +197 -0
- package/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol +131 -0
- package/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiver.sol +47 -0
- package/contracts/core/LiquidityMining/CelerAbstracts/CelerSender.sol +52 -0
- package/contracts/core/LiquidityMining/GaugeController/PendleGaugeController.sol +141 -0
- package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchain.sol +30 -0
- package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechain.sol +22 -0
- package/contracts/core/LiquidityMining/PendleGauge.sol +118 -0
- package/contracts/core/LiquidityMining/README.md +63 -0
- package/contracts/core/LiquidityMining/VotingController/PendleVotingController.sol +323 -0
- package/contracts/core/LiquidityMining/VotingController/VotingControllerStorage.sol +224 -0
- package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +241 -0
- package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +73 -0
- package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowToken.sol +53 -0
- package/contracts/core/{PendleMarket.sol → Market/PendleMarket.sol} +139 -103
- package/contracts/core/{PendleMarketFactory.sol → Market/PendleMarketFactory.sol} +62 -19
- package/contracts/core/PendleERC20.sol +358 -0
- package/contracts/core/PendleERC20Permit.sol +84 -0
- package/contracts/core/PendleRouter.sol +6 -12
- package/contracts/core/YieldContracts/InterestManagerYT.sol +87 -0
- package/contracts/core/YieldContracts/PendlePrincipalToken.sol +52 -0
- package/contracts/core/{PendleYieldContractFactory.sol → YieldContracts/PendleYieldContractFactory.sol} +46 -25
- package/contracts/core/YieldContracts/PendleYieldToken.sol +340 -0
- package/contracts/core/actions/ActionCallback.sol +63 -43
- package/contracts/core/actions/ActionCore.sol +95 -78
- package/contracts/core/actions/ActionYT.sol +35 -86
- package/contracts/core/actions/base/ActionSCYAndPTBase.sol +133 -78
- package/contracts/core/actions/base/ActionSCYAndPYBase.sol +31 -46
- package/contracts/core/actions/base/ActionSCYAndYTBase.sol +127 -45
- package/contracts/core/actions/base/CallbackHelper.sol +81 -0
- package/contracts/interfaces/IAToken.sol +11 -1
- package/contracts/interfaces/IAavePool.sol +1 -1
- package/contracts/interfaces/IAaveRewardsController.sol +1 -1
- package/contracts/interfaces/IBenQiComptroller.sol +3 -1
- package/contracts/interfaces/IBenQiInterestRateModel.sol +16 -0
- package/contracts/interfaces/ICelerMessageBus.sol +28 -0
- package/contracts/interfaces/ICelerMessageReceiverApp.sol +25 -0
- package/contracts/interfaces/IERC4626.sol +39 -0
- package/contracts/interfaces/IJoeRouter01.sol +1 -1
- package/contracts/interfaces/IJoeRouter02.sol +52 -0
- package/contracts/interfaces/IPActionCore.sol +44 -27
- package/contracts/interfaces/IPActionYT.sol +12 -9
- package/contracts/interfaces/IPAllAction.sol +2 -3
- package/contracts/interfaces/IPGaugeController.sol +22 -0
- package/contracts/interfaces/IPGaugeControllerMainchain.sol +12 -0
- package/contracts/interfaces/IPGovernanceManager.sol +1 -1
- package/contracts/interfaces/IPInterestManagerYT.sol +9 -0
- package/contracts/interfaces/IPMarket.sol +13 -13
- package/contracts/interfaces/IPMarketAddRemoveCallback.sol +3 -3
- package/contracts/interfaces/IPMarketFactory.sol +8 -1
- package/contracts/interfaces/IPMarketSwapCallback.sol +1 -1
- package/contracts/interfaces/IPPermissionsV2Upg.sol +1 -1
- package/contracts/interfaces/IPPrincipalToken.sol +9 -5
- package/contracts/interfaces/IPRouterStatic.sol +1 -1
- package/contracts/interfaces/IPVeToken.sol +10 -5
- package/contracts/interfaces/IPVotingController.sol +21 -0
- package/contracts/interfaces/IPVotingEscrow.sol +14 -22
- package/contracts/interfaces/IPYieldContractFactory.sol +1 -1
- package/contracts/interfaces/IPYieldToken.sol +17 -17
- package/contracts/interfaces/IQiAvax.sol +31 -0
- package/contracts/interfaces/IQiErc20.sol +1 -1
- package/contracts/interfaces/IQiToken.sol +22 -1
- package/contracts/interfaces/IREDACTEDStaking.sol +1 -1
- package/contracts/interfaces/IRewardManager.sol +9 -0
- package/contracts/interfaces/ISuperComposableYield.sol +182 -0
- package/contracts/interfaces/IWETH.sol +1 -1
- package/contracts/interfaces/IWXBTRFLY.sol +3 -1
- package/contracts/interfaces/IWstETH.sol +3 -1
- package/contracts/interfaces/IYearnVault.sol +3 -1
- package/contracts/libraries/RewardManager.sol +78 -0
- package/contracts/libraries/RewardManagerAbstract.sol +81 -0
- package/contracts/libraries/{SCYIndex.sol → SCY/SCYIndex.sol} +8 -8
- package/contracts/libraries/SCY/SCYUtils.sol +18 -0
- package/contracts/libraries/VeBalanceLib.sol +114 -0
- package/contracts/libraries/helpers/ArrayLib.sol +65 -0
- package/contracts/libraries/helpers/ExpiryUtilsLib.sol +1 -1
- package/contracts/libraries/helpers/MiniDeployer.sol +23 -0
- package/contracts/libraries/helpers/MiniHelpers.sol +15 -0
- package/contracts/libraries/helpers/TokenHelper.sol +105 -0
- package/contracts/libraries/math/LogExpMath.sol +59 -1
- package/contracts/libraries/math/MarketApproxLib.sol +167 -164
- package/contracts/libraries/math/MarketMathCore.sol +106 -25
- package/contracts/libraries/math/Math.sol +28 -21
- package/contracts/libraries/math/WeekMath.sol +19 -0
- package/contracts/libraries/solmate/Bytes32AddressLib.sol +14 -0
- package/contracts/libraries/solmate/LibRLP.sol +30 -0
- package/contracts/libraries/solmate/SSTORE2.sol +99 -0
- package/contracts/libraries/{JoeLibrary.sol → traderjoe/JoeLibrary.sol} +3 -2
- package/contracts/{periphery → libraries/traderjoe}/PendleJoeSwapHelperUpg.sol +8 -10
- package/contracts/{core → offchain-helpers}/RouterStatic.sol +24 -19
- package/contracts/periphery/PendleGovernanceManager.sol +1 -1
- package/contracts/periphery/PermissionsV2Upg.sol +1 -1
- package/package.json +1 -1
- package/typechain-types/ActionCore.ts +169 -96
- package/typechain-types/ActionSCYAndPTBase.ts +210 -0
- package/typechain-types/ActionSCYAndPYBase.ts +0 -13
- package/typechain-types/ActionSCYAndYTBase.ts +8 -21
- package/typechain-types/ActionYT.ts +73 -64
- package/typechain-types/BeaconProxy.ts +97 -0
- package/typechain-types/CelerReceiver.ts +267 -0
- package/typechain-types/CelerSender.ts +197 -0
- package/typechain-types/ERC1967Upgrade.ts +97 -0
- package/typechain-types/ERC20Permit.ts +521 -0
- package/typechain-types/IAToken.ts +55 -0
- package/typechain-types/IBeacon.ts +87 -0
- package/typechain-types/IBenQiComptroller.ts +13 -0
- package/typechain-types/IBenQiInterestRateModel.ts +162 -0
- package/typechain-types/ICelerMessageBus.ts +134 -0
- package/typechain-types/ICelerMessageReceiverApp.ts +120 -0
- package/typechain-types/IERC1822Proxiable.ts +87 -0
- package/typechain-types/IERC20Permit.ts +175 -0
- package/typechain-types/IERC4626.ts +463 -0
- package/typechain-types/IJoeRouter02.ts +1420 -0
- package/typechain-types/IPActionCore.ts +169 -83
- package/typechain-types/IPActionYT.ts +65 -43
- package/typechain-types/IPAllAction.ts +190 -137
- package/typechain-types/IPGauge.ts +104 -0
- package/typechain-types/IPGaugeController.ts +191 -0
- package/typechain-types/IPGaugeControllerMainchain.ts +236 -0
- package/typechain-types/IPMarket.ts +73 -74
- package/typechain-types/IPMarketFactory.ts +27 -0
- package/typechain-types/IPPrincipalToken.ts +8 -20
- package/typechain-types/IPVeToken.ts +198 -0
- package/typechain-types/IPVotingController.ts +179 -0
- package/typechain-types/IPVotingEscrow.ts +217 -0
- package/typechain-types/IPVotingEscrowController.ts +154 -0
- package/typechain-types/IPYieldToken.ts +176 -213
- package/typechain-types/IQiAvax.ts +551 -0
- package/typechain-types/IQiErc20.ts +171 -0
- package/typechain-types/IQiToken.ts +171 -0
- package/typechain-types/IRewardManager.ts +16 -87
- package/typechain-types/ISuperComposableYield.ts +283 -269
- package/typechain-types/IWXBTRFLY.ts +13 -0
- package/typechain-types/IWstETH.ts +13 -0
- package/typechain-types/IYearnVault.ts +13 -0
- package/typechain-types/PendleAaveV3SCY.ts +382 -477
- package/typechain-types/PendleBtrflyScy.ts +287 -348
- package/typechain-types/PendleERC20.ts +339 -0
- package/typechain-types/PendleERC20Permit.ts +443 -0
- package/typechain-types/PendleERC4626SCY.ts +801 -0
- package/typechain-types/PendleGauge.ts +276 -0
- package/typechain-types/PendleGaugeController.ts +346 -0
- package/typechain-types/PendleGaugeControllerMainchain.ts +410 -0
- package/typechain-types/PendleGaugeControllerSidechain.ts +524 -0
- package/typechain-types/PendleJoeLpSCY.ts +837 -0
- package/typechain-types/PendleJoeSwapHelperUpg.ts +0 -13
- package/typechain-types/PendleMarket.ts +265 -151
- package/typechain-types/PendleMarketFactory.ts +111 -16
- package/typechain-types/PendleMarketRewards.ts +1317 -0
- package/typechain-types/PendlePrincipalToken.ts +103 -130
- package/typechain-types/PendleQiTokenHelper.ts +57 -0
- package/typechain-types/PendleQiTokenSCY.ts +991 -0
- package/typechain-types/PendleRouter.ts +0 -19
- package/typechain-types/PendleVotingController.ts +1042 -0
- package/typechain-types/PendleWstEthSCY.ts +813 -0
- package/typechain-types/PendleYearnVaultScy.ts +278 -339
- package/typechain-types/PendleYieldContractFactory.ts +43 -27
- package/typechain-types/PendleYieldToken.ts +297 -428
- package/typechain-types/RewardManager.ts +70 -69
- package/typechain-types/RewardManagerMini.ts +200 -0
- package/typechain-types/SCYBase.ts +276 -335
- package/typechain-types/SCYBaseWithRewards.ts +367 -424
- package/typechain-types/VotingControllerStorage.ts +507 -0
- package/typechain-types/VotingEscrowPendleMainchain.ts +854 -0
- package/typechain-types/VotingEscrowPendleSidechain.ts +546 -0
- package/typechain-types/VotingEscrowToken.ts +251 -0
- package/typechain-types/factories/ActionCallback__factory.ts +1 -1
- package/typechain-types/factories/ActionCore__factory.ts +122 -80
- package/typechain-types/factories/ActionRedeem__factory.ts +1 -1
- package/typechain-types/factories/ActionSCYAndPTBase__factory.ts +187 -0
- package/typechain-types/factories/ActionSCYAndPYBase__factory.ts +0 -13
- package/typechain-types/factories/ActionSCYAndYTBase__factory.ts +1 -14
- package/typechain-types/factories/ActionYT__factory.ts +39 -48
- package/typechain-types/factories/BeaconProxy__factory.ts +141 -0
- package/typechain-types/factories/CelerReceiver__factory.ts +140 -0
- package/typechain-types/factories/CelerSender__factory.ts +85 -0
- package/typechain-types/factories/ERC1967Upgrade__factory.ts +71 -0
- package/typechain-types/factories/ERC20Permit__factory.ts +368 -0
- package/typechain-types/factories/ERC20__factory.ts +1 -1
- package/typechain-types/factories/IAToken__factory.ts +39 -0
- package/typechain-types/factories/IBeacon__factory.ts +36 -0
- package/typechain-types/factories/IBenQiComptroller__factory.ts +13 -0
- package/typechain-types/factories/IBenQiInterestRateModel__factory.ts +93 -0
- package/typechain-types/factories/ICelerMessageBus__factory.ts +68 -0
- package/typechain-types/factories/ICelerMessageReceiverApp__factory.ts +64 -0
- package/typechain-types/factories/IERC1822Proxiable__factory.ts +39 -0
- package/typechain-types/factories/IERC20Permit__factory.ts +98 -0
- package/typechain-types/factories/IERC4626__factory.ts +330 -0
- package/typechain-types/factories/IJoeRouter02__factory.ts +974 -0
- package/typechain-types/factories/IPActionCore__factory.ts +122 -58
- package/typechain-types/factories/IPActionYT__factory.ts +36 -21
- package/typechain-types/factories/IPAllAction__factory.ts +116 -81
- package/typechain-types/factories/IPGaugeControllerMainchain__factory.ts +151 -0
- package/typechain-types/factories/IPGaugeController__factory.ts +124 -0
- package/typechain-types/factories/IPGauge__factory.ts +42 -0
- package/typechain-types/factories/IPMarketFactory__factory.ts +31 -0
- package/typechain-types/factories/IPMarket__factory.ts +35 -54
- package/typechain-types/factories/IPPrincipalToken__factory.ts +5 -5
- package/typechain-types/factories/IPVeToken__factory.ts +111 -0
- package/typechain-types/factories/IPVotingController__factory.ts +182 -0
- package/typechain-types/factories/IPVotingEscrowController__factory.ts +80 -0
- package/typechain-types/factories/IPVotingEscrow__factory.ts +163 -0
- package/typechain-types/factories/IPYieldToken__factory.ts +85 -83
- package/typechain-types/factories/IQiAvax__factory.ts +362 -0
- package/typechain-types/factories/IQiErc20__factory.ts +117 -0
- package/typechain-types/factories/IQiToken__factory.ts +117 -0
- package/typechain-types/factories/IRewardManager__factory.ts +5 -47
- package/typechain-types/factories/ISuperComposableYield__factory.ts +201 -138
- package/typechain-types/factories/IWXBTRFLY__factory.ts +13 -0
- package/typechain-types/factories/IWstETH__factory.ts +13 -0
- package/typechain-types/factories/IYearnVault__factory.ts +13 -0
- package/typechain-types/factories/PendleAaveV3SCY__factory.ts +246 -315
- package/typechain-types/factories/PendleBtrflyScy__factory.ts +200 -234
- package/typechain-types/factories/PendleERC20Permit__factory.ts +405 -0
- package/typechain-types/factories/PendleERC20__factory.ts +327 -0
- package/typechain-types/factories/PendleERC4626SCY__factory.ts +678 -0
- package/typechain-types/factories/PendleGaugeControllerMainchain__factory.ts +332 -0
- package/typechain-types/factories/PendleGaugeControllerSidechain__factory.ts +391 -0
- package/typechain-types/factories/PendleGaugeController__factory.ts +212 -0
- package/typechain-types/factories/PendleGauge__factory.ts +171 -0
- package/typechain-types/factories/PendleGovernanceManager__factory.ts +1 -1
- package/typechain-types/factories/PendleJoeLpSCY__factory.ts +726 -0
- package/typechain-types/factories/PendleJoeSwapHelperUpg__factory.ts +0 -13
- package/typechain-types/factories/PendleMarketFactory__factory.ts +90 -5
- package/typechain-types/factories/PendleMarketRewards__factory.ts +1140 -0
- package/typechain-types/factories/PendleMarket__factory.ts +182 -94
- package/typechain-types/factories/PendlePrincipalToken__factory.ts +74 -77
- package/typechain-types/factories/PendleQiTokenHelper__factory.ts +99 -0
- package/typechain-types/factories/PendleQiTokenSCY__factory.ts +845 -0
- package/typechain-types/factories/PendleRouter__factory.ts +1 -23
- package/typechain-types/factories/PendleVotingController__factory.ts +776 -0
- package/typechain-types/factories/PendleWstEthSCY__factory.ts +686 -0
- package/typechain-types/factories/PendleYearnVaultScy__factory.ts +218 -243
- package/typechain-types/factories/PendleYieldContractFactory__factory.ts +39 -29
- package/typechain-types/factories/PendleYieldToken__factory.ts +153 -211
- package/typechain-types/factories/RewardManagerMini__factory.ts +116 -0
- package/typechain-types/factories/RewardManager__factory.ts +43 -32
- package/typechain-types/factories/RouterStatic__factory.ts +1 -1
- package/typechain-types/factories/SCYBaseWithRewards__factory.ts +242 -218
- package/typechain-types/factories/SCYBase__factory.ts +195 -176
- package/typechain-types/factories/VotingControllerStorage__factory.ts +361 -0
- package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +616 -0
- package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +415 -0
- package/typechain-types/factories/VotingEscrowToken__factory.ts +153 -0
- package/typechain-types/hardhat.d.ts +338 -131
- package/typechain-types/index.ts +92 -38
- package/build/artifacts/contracts/SuperComposableYield/ISuperComposableYield.sol/ISuperComposableYield.dbg.json +0 -4
- package/build/artifacts/contracts/SuperComposableYield/SCYUtils.sol/SCYUtils.dbg.json +0 -4
- package/build/artifacts/contracts/SuperComposableYield/implementations/IRewardManager.sol/IRewardManager.dbg.json +0 -4
- package/build/artifacts/contracts/SuperComposableYield/implementations/RewardManager.sol/RewardManager.dbg.json +0 -4
- package/build/artifacts/contracts/SuperComposableYield/implementations/SCYBase.sol/SCYBase.dbg.json +0 -4
- package/build/artifacts/contracts/SuperComposableYield/implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +0 -4
- package/build/artifacts/contracts/core/PendleBaseToken.sol/PendleBaseToken.dbg.json +0 -4
- package/build/artifacts/contracts/core/PendleMarket.sol/PendleMarket.dbg.json +0 -4
- package/build/artifacts/contracts/core/PendleMarket.sol/PendleMarket.json +0 -842
- package/build/artifacts/contracts/core/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +0 -4
- package/build/artifacts/contracts/core/PendleMarketFactory.sol/PendleMarketFactory.json +0 -265
- package/build/artifacts/contracts/core/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +0 -4
- package/build/artifacts/contracts/core/PendlePrincipalToken.sol/PendlePrincipalToken.json +0 -452
- package/build/artifacts/contracts/core/PendleSCYImpl/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.dbg.json +0 -4
- package/build/artifacts/contracts/core/PendleSCYImpl/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.json +0 -783
- package/build/artifacts/contracts/core/PendleSCYImpl/AaveV3/WadRayMath.sol/WadRayMath.dbg.json +0 -4
- package/build/artifacts/contracts/core/PendleSCYImpl/PendleBenQiErc20SCY.sol/PendleBenQiErc20SCY.dbg.json +0 -4
- package/build/artifacts/contracts/core/PendleSCYImpl/PendleBenQiErc20SCY.sol/PendleBenQiErc20SCY.json +0 -766
- package/build/artifacts/contracts/core/PendleSCYImpl/PendleBtrflySCY.sol/PendleBtrflyScy.dbg.json +0 -4
- package/build/artifacts/contracts/core/PendleSCYImpl/PendleBtrflySCY.sol/PendleBtrflyScy.json +0 -641
- package/build/artifacts/contracts/core/PendleSCYImpl/PendleStETHSCY.sol/PendleStEthSCY.dbg.json +0 -4
- package/build/artifacts/contracts/core/PendleSCYImpl/PendleStETHSCY.sol/PendleStEthSCY.json +0 -623
- package/build/artifacts/contracts/core/PendleSCYImpl/PendleYearnVaultSCY.sol/PendleYearnVaultScy.dbg.json +0 -4
- package/build/artifacts/contracts/core/PendleSCYImpl/PendleYearnVaultSCY.sol/PendleYearnVaultScy.json +0 -623
- package/build/artifacts/contracts/core/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +0 -4
- package/build/artifacts/contracts/core/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +0 -339
- package/build/artifacts/contracts/core/PendleYieldToken.sol/PendleYieldToken.dbg.json +0 -4
- package/build/artifacts/contracts/core/PendleYieldToken.sol/PendleYieldToken.json +0 -808
- package/build/artifacts/contracts/core/RouterStatic.sol/RouterStatic.dbg.json +0 -4
- package/build/artifacts/contracts/core/RouterStatic.sol/RouterStatic.json +0 -862
- package/build/artifacts/contracts/core/actions/ActionRedeem.sol/ActionRedeem.dbg.json +0 -4
- package/build/artifacts/contracts/core/actions/ActionRedeem.sol/ActionRedeem.json +0 -55
- package/build/artifacts/contracts/core/actions/base/ActionType.sol/ActionType.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPActionRedeem.sol/IPActionRedeem.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPActionRedeem.sol/IPActionRedeem.json +0 -55
- package/build/artifacts/contracts/interfaces/IPBaseToken.sol/IPBaseToken.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPGauge.sol/IPendleGauge.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPGauge.sol/IPendleGauge.json +0 -113
- package/build/artifacts/contracts/interfaces/IPVeToken.sol/IVePToken.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPVeToken.sol/IVePToken.json +0 -43
- package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IVotingEscrowPendle.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPVotingEscrowController.sol/VotingEscrowController.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPVotingEscrowController.sol/VotingEscrowController.json +0 -61
- package/build/artifacts/contracts/interfaces/IPendleGauge.sol/IPendleGauge.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPendleGauge.sol/IPendleGauge.json +0 -113
- package/build/artifacts/contracts/interfaces/IVePToken.sol/IVePToken.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IVotingEscrowController.sol/VotingEscrowController.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IVotingEscrowController.sol/VotingEscrowController.json +0 -61
- package/build/artifacts/contracts/interfaces/IVotingEscrowPendle.sol/IVotingEscrowPendle.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IVotingEscrowPendle.sol/IVotingEscrowPendle.json +0 -167
- package/build/artifacts/contracts/libraries/JoeLibrary.sol/JoeLibrary.dbg.json +0 -4
- package/build/artifacts/contracts/libraries/SCYIndex.sol/SCYIndexLib.dbg.json +0 -4
- package/build/artifacts/contracts/libraries/math/MarketMathAux.sol/MarketMathAux.dbg.json +0 -4
- package/build/artifacts/contracts/periphery/PendleJoeSwapHelperUpg.sol/PendleJoeSwapHelperUpg.dbg.json +0 -4
- package/contracts/SuperComposableYield/ISuperComposableYield.sol +0 -80
- package/contracts/SuperComposableYield/SCYUtils.sol +0 -14
- package/contracts/SuperComposableYield/implementations/IRewardManager.sol +0 -16
- package/contracts/SuperComposableYield/implementations/RewardManager.sol +0 -151
- package/contracts/SuperComposableYield/implementations/SCYBase.sol +0 -166
- package/contracts/SuperComposableYield/implementations/SCYBaseWithRewards.sol +0 -88
- package/contracts/core/PendleBaseToken.sol +0 -35
- package/contracts/core/PendlePrincipalToken.sol +0 -54
- package/contracts/core/PendleSCYImpl/AaveV3/PendleAaveV3SCY.sol +0 -140
- package/contracts/core/PendleSCYImpl/PendleBenQiErc20SCY.sol +0 -133
- package/contracts/core/PendleSCYImpl/PendleBtrflySCY.sol +0 -120
- package/contracts/core/PendleSCYImpl/PendleStETHSCY.sol +0 -107
- package/contracts/core/PendleSCYImpl/PendleYearnVaultSCY.sol +0 -109
- package/contracts/core/PendleYieldToken.sol +0 -340
- package/contracts/core/actions/ActionRedeem.sol +0 -36
- package/contracts/core/actions/base/ActionType.sol +0 -11
- package/contracts/interfaces/IPActionRedeem.sol +0 -17
- package/contracts/interfaces/IPBaseToken.sol +0 -9
- package/contracts/interfaces/IPGauge.sol +0 -32
- package/contracts/interfaces/IPVotingEscrowController.sol +0 -14
- package/contracts/interfaces/IPendleGauge.sol +0 -32
- package/contracts/interfaces/IVePToken.sol +0 -14
- package/contracts/interfaces/IVotingEscrowController.sol +0 -14
- package/contracts/interfaces/IVotingEscrowPendle.sol +0 -32
- package/contracts/libraries/math/MarketMathAux.sol +0 -101
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
-
pragma solidity 0.8.
|
|
2
|
+
pragma solidity 0.8.13;
|
|
3
3
|
|
|
4
4
|
import "./Math.sol";
|
|
5
5
|
import "./LogExpMath.sol";
|
|
6
|
-
import "../SCYIndex.sol";
|
|
6
|
+
import "../SCY/SCYIndex.sol";
|
|
7
|
+
import "../helpers/MiniHelpers.sol";
|
|
7
8
|
|
|
8
9
|
struct MarketState {
|
|
9
10
|
int256 totalPt;
|
|
@@ -27,7 +28,7 @@ struct MarketPreCompute {
|
|
|
27
28
|
int256 rateScalar;
|
|
28
29
|
int256 totalAsset;
|
|
29
30
|
int256 rateAnchor;
|
|
30
|
-
int256
|
|
31
|
+
int256 feeRate;
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
// solhint-disable ordering
|
|
@@ -40,10 +41,99 @@ library MarketMathCore {
|
|
|
40
41
|
int256 internal constant MINIMUM_LIQUIDITY = 10**3;
|
|
41
42
|
int256 internal constant PERCENTAGE_DECIMALS = 100;
|
|
42
43
|
uint256 internal constant DAY = 86400;
|
|
43
|
-
uint256 internal constant IMPLIED_RATE_TIME =
|
|
44
|
+
uint256 internal constant IMPLIED_RATE_TIME = 365 * DAY;
|
|
44
45
|
|
|
45
46
|
int256 internal constant MAX_MARKET_PROPORTION = (1e18 * 96) / 100;
|
|
46
47
|
|
|
48
|
+
using Math for uint256;
|
|
49
|
+
using Math for int256;
|
|
50
|
+
|
|
51
|
+
/*///////////////////////////////////////////////////////////////
|
|
52
|
+
UINT FUNCTIONS TO PROXY TO CORE FUNCTIONS
|
|
53
|
+
//////////////////////////////////////////////////////////////*/
|
|
54
|
+
|
|
55
|
+
function addLiquidity(
|
|
56
|
+
MarketState memory market,
|
|
57
|
+
SCYIndex index,
|
|
58
|
+
uint256 scyDesired,
|
|
59
|
+
uint256 ptDesired,
|
|
60
|
+
bool updateState
|
|
61
|
+
)
|
|
62
|
+
internal
|
|
63
|
+
pure
|
|
64
|
+
returns (
|
|
65
|
+
uint256 lpToReserve,
|
|
66
|
+
uint256 lpToAccount,
|
|
67
|
+
uint256 scyUsed,
|
|
68
|
+
uint256 ptUsed
|
|
69
|
+
)
|
|
70
|
+
{
|
|
71
|
+
(
|
|
72
|
+
int256 _lpToReserve,
|
|
73
|
+
int256 _lpToAccount,
|
|
74
|
+
int256 _scyUsed,
|
|
75
|
+
int256 _otUsed
|
|
76
|
+
) = addLiquidityCore(market, index, scyDesired.Int(), ptDesired.Int(), updateState);
|
|
77
|
+
|
|
78
|
+
lpToReserve = _lpToReserve.Uint();
|
|
79
|
+
lpToAccount = _lpToAccount.Uint();
|
|
80
|
+
scyUsed = _scyUsed.Uint();
|
|
81
|
+
ptUsed = _otUsed.Uint();
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function removeLiquidity(
|
|
85
|
+
MarketState memory market,
|
|
86
|
+
uint256 lpToRemove,
|
|
87
|
+
bool updateState
|
|
88
|
+
) internal pure returns (uint256 scyToAccount, uint256 netPtToAccount) {
|
|
89
|
+
(int256 _scyToAccount, int256 _ptToAccount) = removeLiquidityCore(
|
|
90
|
+
market,
|
|
91
|
+
lpToRemove.Int(),
|
|
92
|
+
updateState
|
|
93
|
+
);
|
|
94
|
+
|
|
95
|
+
scyToAccount = _scyToAccount.Uint();
|
|
96
|
+
netPtToAccount = _ptToAccount.Uint();
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
function swapExactPtForScy(
|
|
100
|
+
MarketState memory market,
|
|
101
|
+
SCYIndex index,
|
|
102
|
+
uint256 exactPtToMarket,
|
|
103
|
+
uint256 blockTime
|
|
104
|
+
) internal pure returns (uint256 netScyToAccount, uint256 netScyToReserve) {
|
|
105
|
+
(int256 _netScyToAccount, int256 _netScyToReserve) = executeTradeCore(
|
|
106
|
+
market,
|
|
107
|
+
index,
|
|
108
|
+
exactPtToMarket.neg(),
|
|
109
|
+
blockTime
|
|
110
|
+
);
|
|
111
|
+
|
|
112
|
+
netScyToAccount = _netScyToAccount.Uint();
|
|
113
|
+
netScyToReserve = _netScyToReserve.Uint();
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
function swapScyForExactPt(
|
|
117
|
+
MarketState memory market,
|
|
118
|
+
SCYIndex index,
|
|
119
|
+
uint256 exactPtToAccount,
|
|
120
|
+
uint256 blockTime
|
|
121
|
+
) internal pure returns (uint256 netScyToMarket, uint256 netScyToReserve) {
|
|
122
|
+
(int256 _netScyToAccount, int256 _netScyToReserve) = executeTradeCore(
|
|
123
|
+
market,
|
|
124
|
+
index,
|
|
125
|
+
exactPtToAccount.Int(),
|
|
126
|
+
blockTime
|
|
127
|
+
);
|
|
128
|
+
|
|
129
|
+
netScyToMarket = _netScyToAccount.neg().Uint();
|
|
130
|
+
netScyToReserve = _netScyToReserve.Uint();
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/*///////////////////////////////////////////////////////////////
|
|
134
|
+
CORE FUNCTIONS
|
|
135
|
+
//////////////////////////////////////////////////////////////*/
|
|
136
|
+
|
|
47
137
|
function addLiquidityCore(
|
|
48
138
|
MarketState memory market,
|
|
49
139
|
SCYIndex index,
|
|
@@ -103,7 +193,7 @@ library MarketMathCore {
|
|
|
103
193
|
MarketState memory market,
|
|
104
194
|
int256 lpToRemove,
|
|
105
195
|
bool updateState
|
|
106
|
-
) internal pure returns (int256
|
|
196
|
+
) internal pure returns (int256 netScyToAccount, int256 netPtToAccount) {
|
|
107
197
|
/// ------------------------------------------------------------
|
|
108
198
|
/// CHECKS
|
|
109
199
|
/// ------------------------------------------------------------
|
|
@@ -112,16 +202,17 @@ library MarketMathCore {
|
|
|
112
202
|
/// ------------------------------------------------------------
|
|
113
203
|
/// MATH
|
|
114
204
|
/// ------------------------------------------------------------
|
|
115
|
-
|
|
205
|
+
netScyToAccount = (lpToRemove * market.totalScy) / market.totalLp;
|
|
116
206
|
netPtToAccount = (lpToRemove * market.totalPt) / market.totalLp;
|
|
117
207
|
|
|
208
|
+
require(netScyToAccount > 0 || netPtToAccount > 0, "zero amounts out");
|
|
118
209
|
/// ------------------------------------------------------------
|
|
119
210
|
/// WRITE
|
|
120
211
|
/// ------------------------------------------------------------
|
|
121
212
|
if (updateState) {
|
|
122
213
|
market.totalLp = market.totalLp.subNoNeg(lpToRemove);
|
|
123
214
|
market.totalPt = market.totalPt.subNoNeg(netPtToAccount);
|
|
124
|
-
market.totalScy = market.totalScy.subNoNeg(
|
|
215
|
+
market.totalScy = market.totalScy.subNoNeg(netScyToAccount);
|
|
125
216
|
}
|
|
126
217
|
}
|
|
127
218
|
|
|
@@ -129,13 +220,12 @@ library MarketMathCore {
|
|
|
129
220
|
MarketState memory market,
|
|
130
221
|
SCYIndex index,
|
|
131
222
|
int256 netPtToAccount,
|
|
132
|
-
uint256 blockTime
|
|
133
|
-
bool updateState
|
|
223
|
+
uint256 blockTime
|
|
134
224
|
) internal pure returns (int256 netScyToAccount, int256 netScyToReserve) {
|
|
135
225
|
/// ------------------------------------------------------------
|
|
136
226
|
/// CHECKS
|
|
137
227
|
/// ------------------------------------------------------------
|
|
138
|
-
require(
|
|
228
|
+
require(!MiniHelpers.isExpired(market.expiry, blockTime), "market expired");
|
|
139
229
|
require(market.totalPt > netPtToAccount, "insufficient liquidity");
|
|
140
230
|
|
|
141
231
|
/// ------------------------------------------------------------
|
|
@@ -155,16 +245,7 @@ library MarketMathCore {
|
|
|
155
245
|
/// ------------------------------------------------------------
|
|
156
246
|
/// WRITE
|
|
157
247
|
/// ------------------------------------------------------------
|
|
158
|
-
|
|
159
|
-
_setNewMarketStateTrade(
|
|
160
|
-
market,
|
|
161
|
-
comp,
|
|
162
|
-
index,
|
|
163
|
-
netPtToAccount,
|
|
164
|
-
netScyToAccount,
|
|
165
|
-
blockTime
|
|
166
|
-
);
|
|
167
|
-
}
|
|
248
|
+
_setNewMarketStateTrade(market, comp, index, netPtToAccount, netScyToAccount, blockTime);
|
|
168
249
|
}
|
|
169
250
|
|
|
170
251
|
function getMarketPreCompute(
|
|
@@ -172,7 +253,7 @@ library MarketMathCore {
|
|
|
172
253
|
SCYIndex index,
|
|
173
254
|
uint256 blockTime
|
|
174
255
|
) internal pure returns (MarketPreCompute memory res) {
|
|
175
|
-
require(
|
|
256
|
+
require(!MiniHelpers.isExpired(market.expiry, blockTime), "market expired");
|
|
176
257
|
|
|
177
258
|
uint256 timeToExpiry = market.expiry - blockTime;
|
|
178
259
|
|
|
@@ -188,7 +269,7 @@ library MarketMathCore {
|
|
|
188
269
|
res.rateScalar,
|
|
189
270
|
timeToExpiry
|
|
190
271
|
);
|
|
191
|
-
res.
|
|
272
|
+
res.feeRate = _getExchangeRateFromImpliedRate(market.lnFeeRateRoot, timeToExpiry);
|
|
192
273
|
}
|
|
193
274
|
|
|
194
275
|
function calcTrade(
|
|
@@ -205,7 +286,7 @@ library MarketMathCore {
|
|
|
205
286
|
);
|
|
206
287
|
|
|
207
288
|
int256 preFeeAssetToAccount = netPtToAccount.divDown(preFeeExchangeRate).neg();
|
|
208
|
-
int256 fee = comp.
|
|
289
|
+
int256 fee = comp.feeRate;
|
|
209
290
|
|
|
210
291
|
if (netPtToAccount > 0) {
|
|
211
292
|
int256 postFeeExchangeRate = preFeeExchangeRate.divDown(fee);
|
|
@@ -359,7 +440,7 @@ library MarketMathCore {
|
|
|
359
440
|
totalAsset,
|
|
360
441
|
rateScalar,
|
|
361
442
|
initialAnchor,
|
|
362
|
-
|
|
443
|
+
timeToExpiry
|
|
363
444
|
);
|
|
364
445
|
}
|
|
365
446
|
|
|
@@ -385,7 +466,7 @@ library MarketMathCore {
|
|
|
385
466
|
// 1 - (currentTs - previousTs) / timeWindow
|
|
386
467
|
uint256 oracleWeight = Math.ONE - lastTradeWeight;
|
|
387
468
|
|
|
388
|
-
uint256 newOracleRate = market.
|
|
469
|
+
uint256 newOracleRate = market.lastLnImpliedRate.mulDown(lastTradeWeight) +
|
|
389
470
|
market.oracleRate.mulDown(oracleWeight);
|
|
390
471
|
|
|
391
472
|
return newOracleRate;
|
|
@@ -12,9 +12,7 @@
|
|
|
12
12
|
// You should have received a copy of the GNU General Public License
|
|
13
13
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
14
14
|
|
|
15
|
-
pragma solidity 0.8.
|
|
16
|
-
|
|
17
|
-
import "./LogExpMath.sol";
|
|
15
|
+
pragma solidity 0.8.13;
|
|
18
16
|
|
|
19
17
|
/* solhint-disable private-vars-leading-underscore, reason-string */
|
|
20
18
|
|
|
@@ -29,10 +27,8 @@ library Math {
|
|
|
29
27
|
}
|
|
30
28
|
|
|
31
29
|
function subNoNeg(int256 a, int256 b) internal pure returns (int256) {
|
|
32
|
-
require(a >= b, "
|
|
33
|
-
unchecked
|
|
34
|
-
return a - b;
|
|
35
|
-
}
|
|
30
|
+
require(a >= b, "negative");
|
|
31
|
+
return a - b; // no unchecked since if b is very negative, a - b might overflow
|
|
36
32
|
}
|
|
37
33
|
|
|
38
34
|
function mulDown(uint256 a, uint256 b) internal pure returns (uint256) {
|
|
@@ -66,9 +62,7 @@ library Math {
|
|
|
66
62
|
function rawDivUp(uint256 a, uint256 b) internal pure returns (uint256) {
|
|
67
63
|
if (a == 0) return 0;
|
|
68
64
|
else {
|
|
69
|
-
|
|
70
|
-
return (a + b - 1) / b;
|
|
71
|
-
}
|
|
65
|
+
return (a + b - 1) / b;
|
|
72
66
|
}
|
|
73
67
|
}
|
|
74
68
|
|
|
@@ -77,11 +71,11 @@ library Math {
|
|
|
77
71
|
}
|
|
78
72
|
|
|
79
73
|
function neg(int256 x) internal pure returns (int256) {
|
|
80
|
-
return -
|
|
74
|
+
return x * (-1);
|
|
81
75
|
}
|
|
82
76
|
|
|
83
77
|
function neg(uint256 x) internal pure returns (int256) {
|
|
84
|
-
return
|
|
78
|
+
return Int(x) * (-1);
|
|
85
79
|
}
|
|
86
80
|
|
|
87
81
|
function max(uint256 x, uint256 y) internal pure returns (uint256) {
|
|
@@ -100,36 +94,49 @@ library Math {
|
|
|
100
94
|
return (x < y ? x : y);
|
|
101
95
|
}
|
|
102
96
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
}
|
|
97
|
+
/*///////////////////////////////////////////////////////////////
|
|
98
|
+
SIGNED CASTS
|
|
99
|
+
//////////////////////////////////////////////////////////////*/
|
|
107
100
|
|
|
108
101
|
function Int(uint256 x) internal pure returns (int256) {
|
|
109
|
-
require(x
|
|
102
|
+
require(x <= uint256(type(int256).max));
|
|
110
103
|
return int256(x);
|
|
111
104
|
}
|
|
112
105
|
|
|
113
106
|
function Int128(int256 x) internal pure returns (int128) {
|
|
114
|
-
require(x
|
|
107
|
+
require(type(int128).min <= x && x <= type(int128).max);
|
|
115
108
|
return int128(x);
|
|
116
109
|
}
|
|
117
110
|
|
|
111
|
+
/*///////////////////////////////////////////////////////////////
|
|
112
|
+
UNSIGNED CASTS
|
|
113
|
+
//////////////////////////////////////////////////////////////*/
|
|
114
|
+
|
|
115
|
+
function Uint(int256 x) internal pure returns (uint256) {
|
|
116
|
+
require(x >= 0);
|
|
117
|
+
return uint256(x);
|
|
118
|
+
}
|
|
119
|
+
|
|
118
120
|
function Uint32(uint256 x) internal pure returns (uint32) {
|
|
119
|
-
require(x
|
|
121
|
+
require(x <= type(uint32).max);
|
|
120
122
|
return uint32(x);
|
|
121
123
|
}
|
|
122
124
|
|
|
123
125
|
function Uint112(uint256 x) internal pure returns (uint112) {
|
|
124
|
-
require(x
|
|
126
|
+
require(x <= type(uint112).max);
|
|
125
127
|
return uint112(x);
|
|
126
128
|
}
|
|
127
129
|
|
|
128
130
|
function Uint96(uint256 x) internal pure returns (uint96) {
|
|
129
|
-
require(x
|
|
131
|
+
require(x <= type(uint96).max);
|
|
130
132
|
return uint96(x);
|
|
131
133
|
}
|
|
132
134
|
|
|
135
|
+
function Uint128(uint256 x) internal pure returns (uint128) {
|
|
136
|
+
require(x <= type(uint128).max);
|
|
137
|
+
return uint128(x);
|
|
138
|
+
}
|
|
139
|
+
|
|
133
140
|
function isAApproxB(
|
|
134
141
|
uint256 a,
|
|
135
142
|
uint256 b,
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
|
|
3
|
+
pragma solidity 0.8.13;
|
|
4
|
+
|
|
5
|
+
library WeekMath {
|
|
6
|
+
uint128 internal constant WEEK = 7 days;
|
|
7
|
+
|
|
8
|
+
function getWeekStartTimestamp(uint128 timestamp) internal pure returns (uint128) {
|
|
9
|
+
return (timestamp / WEEK) * WEEK;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function getCurrentWeekStart() internal view returns (uint128) {
|
|
13
|
+
return getWeekStartTimestamp(uint128(block.timestamp));
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function isValidWTime(uint128 time) internal pure returns (bool) {
|
|
17
|
+
return time % WEEK == 0;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
/// @notice Library for converting between addresses and bytes32 values.
|
|
5
|
+
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/Bytes32AddressLib.sol)
|
|
6
|
+
library Bytes32AddressLib {
|
|
7
|
+
function fromLast20Bytes(bytes32 bytesValue) internal pure returns (address) {
|
|
8
|
+
return address(uint160(uint256(bytesValue)));
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
function fillLast12Bytes(address addressValue) internal pure returns (bytes32) {
|
|
12
|
+
return bytes32(bytes20(addressValue));
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
import { Bytes32AddressLib } from "./Bytes32AddressLib.sol";
|
|
5
|
+
|
|
6
|
+
/// @notice Library for computing contract addresses from their deployer and nonce.
|
|
7
|
+
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/LibRLP.sol)
|
|
8
|
+
library LibRLP {
|
|
9
|
+
using Bytes32AddressLib for bytes32;
|
|
10
|
+
|
|
11
|
+
// prettier-ignore
|
|
12
|
+
function computeAddress(address deployer, uint256 nonce) internal pure returns (address) {
|
|
13
|
+
// The integer zero is treated as an empty byte string, and as a result it only has a length prefix, 0x80, computed via 0x80 + 0.
|
|
14
|
+
// A one byte integer uses its own value as its length prefix, there is no additional "0x80 + length" prefix that comes before it.
|
|
15
|
+
if (nonce == 0x00) return keccak256(abi.encodePacked(bytes1(0xd6), bytes1(0x94), deployer, bytes1(0x80))).fromLast20Bytes();
|
|
16
|
+
if (nonce <= 0x7f) return keccak256(abi.encodePacked(bytes1(0xd6), bytes1(0x94), deployer, uint8(nonce))).fromLast20Bytes();
|
|
17
|
+
|
|
18
|
+
// Nonces greater than 1 byte all follow a consistent encoding scheme, where each value is preceded by a prefix of 0x80 + length.
|
|
19
|
+
if (nonce <= type(uint8).max) return keccak256(abi.encodePacked(bytes1(0xd7), bytes1(0x94), deployer, bytes1(0x81), uint8(nonce))).fromLast20Bytes();
|
|
20
|
+
if (nonce <= type(uint16).max) return keccak256(abi.encodePacked(bytes1(0xd8), bytes1(0x94), deployer, bytes1(0x82), uint16(nonce))).fromLast20Bytes();
|
|
21
|
+
if (nonce <= type(uint24).max) return keccak256(abi.encodePacked(bytes1(0xd9), bytes1(0x94), deployer, bytes1(0x83), uint24(nonce))).fromLast20Bytes();
|
|
22
|
+
|
|
23
|
+
// More details about RLP encoding can be found here: https://eth.wiki/fundamentals/rlp
|
|
24
|
+
// 0xda = 0xc0 (short RLP prefix) + 0x16 (length of: 0x94 ++ proxy ++ 0x84 ++ nonce)
|
|
25
|
+
// 0x94 = 0x80 + 0x14 (0x14 = the length of an address, 20 bytes, in hex)
|
|
26
|
+
// 0x84 = 0x80 + 0x04 (0x04 = the bytes length of the nonce, 4 bytes, in hex)
|
|
27
|
+
// We assume nobody can have a nonce large enough to require more than 32 bytes.
|
|
28
|
+
return keccak256(abi.encodePacked(bytes1(0xda), bytes1(0x94), deployer, bytes1(0x84), uint32(nonce))).fromLast20Bytes();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
/// @notice Read and write to persistent storage at a fraction of the cost.
|
|
5
|
+
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/SSTORE2.sol)
|
|
6
|
+
/// @author Modified from 0xSequence (https://github.com/0xSequence/sstore2/blob/master/contracts/SSTORE2.sol)
|
|
7
|
+
library SSTORE2 {
|
|
8
|
+
uint256 internal constant DATA_OFFSET = 1; // We skip the first byte as it's a STOP opcode to ensure the contract can't be called.
|
|
9
|
+
|
|
10
|
+
/*//////////////////////////////////////////////////////////////
|
|
11
|
+
WRITE LOGIC
|
|
12
|
+
//////////////////////////////////////////////////////////////*/
|
|
13
|
+
|
|
14
|
+
function write(bytes memory data) internal returns (address pointer) {
|
|
15
|
+
// Prefix the bytecode with a STOP opcode to ensure it cannot be called.
|
|
16
|
+
bytes memory runtimeCode = abi.encodePacked(hex"00", data);
|
|
17
|
+
|
|
18
|
+
bytes memory creationCode = abi.encodePacked(
|
|
19
|
+
//---------------------------------------------------------------------------------------------------------------//
|
|
20
|
+
// Opcode | Opcode + Arguments | Description | Stack View //
|
|
21
|
+
//---------------------------------------------------------------------------------------------------------------//
|
|
22
|
+
// 0x60 | 0x600B | PUSH1 11 | codeOffset //
|
|
23
|
+
// 0x59 | 0x59 | MSIZE | 0 codeOffset //
|
|
24
|
+
// 0x81 | 0x81 | DUP2 | codeOffset 0 codeOffset //
|
|
25
|
+
// 0x38 | 0x38 | CODESIZE | codeSize codeOffset 0 codeOffset //
|
|
26
|
+
// 0x03 | 0x03 | SUB | (codeSize - codeOffset) 0 codeOffset //
|
|
27
|
+
// 0x80 | 0x80 | DUP | (codeSize - codeOffset) (codeSize - codeOffset) 0 codeOffset //
|
|
28
|
+
// 0x92 | 0x92 | SWAP3 | codeOffset (codeSize - codeOffset) 0 (codeSize - codeOffset) //
|
|
29
|
+
// 0x59 | 0x59 | MSIZE | 0 codeOffset (codeSize - codeOffset) 0 (codeSize - codeOffset) //
|
|
30
|
+
// 0x39 | 0x39 | CODECOPY | 0 (codeSize - codeOffset) //
|
|
31
|
+
// 0xf3 | 0xf3 | RETURN | //
|
|
32
|
+
//---------------------------------------------------------------------------------------------------------------//
|
|
33
|
+
hex"60_0B_59_81_38_03_80_92_59_39_F3", // Returns all code in the contract except for the first 11 (0B in hex) bytes.
|
|
34
|
+
runtimeCode // The bytecode we want the contract to have after deployment. Capped at 1 byte less than the code size limit.
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
assembly {
|
|
38
|
+
// Deploy a new contract with the generated creation code.
|
|
39
|
+
// We start 32 bytes into the code to avoid copying the byte length.
|
|
40
|
+
pointer := create(0, add(creationCode, 32), mload(creationCode))
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
require(pointer != address(0), "DEPLOYMENT_FAILED");
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/*//////////////////////////////////////////////////////////////
|
|
47
|
+
READ LOGIC
|
|
48
|
+
//////////////////////////////////////////////////////////////*/
|
|
49
|
+
|
|
50
|
+
function read(address pointer) internal view returns (bytes memory) {
|
|
51
|
+
return readBytecode(pointer, DATA_OFFSET, pointer.code.length - DATA_OFFSET);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function read(address pointer, uint256 start) internal view returns (bytes memory) {
|
|
55
|
+
start += DATA_OFFSET;
|
|
56
|
+
|
|
57
|
+
return readBytecode(pointer, start, pointer.code.length - start);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function read(
|
|
61
|
+
address pointer,
|
|
62
|
+
uint256 start,
|
|
63
|
+
uint256 end
|
|
64
|
+
) internal view returns (bytes memory) {
|
|
65
|
+
start += DATA_OFFSET;
|
|
66
|
+
end += DATA_OFFSET;
|
|
67
|
+
|
|
68
|
+
require(pointer.code.length >= end, "OUT_OF_BOUNDS");
|
|
69
|
+
|
|
70
|
+
return readBytecode(pointer, start, end - start);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/*//////////////////////////////////////////////////////////////
|
|
74
|
+
INTERNAL HELPER LOGIC
|
|
75
|
+
//////////////////////////////////////////////////////////////*/
|
|
76
|
+
|
|
77
|
+
function readBytecode(
|
|
78
|
+
address pointer,
|
|
79
|
+
uint256 start,
|
|
80
|
+
uint256 size
|
|
81
|
+
) private view returns (bytes memory data) {
|
|
82
|
+
assembly {
|
|
83
|
+
// Get a pointer to some free memory.
|
|
84
|
+
data := mload(0x40)
|
|
85
|
+
|
|
86
|
+
// Update the free memory pointer to prevent overriding our data.
|
|
87
|
+
// We use and(x, not(31)) as a cheaper equivalent to sub(x, mod(x, 32)).
|
|
88
|
+
// Adding 31 to size and running the result through the logic above ensures
|
|
89
|
+
// the memory pointer remains word-aligned, following the Solidity convention.
|
|
90
|
+
mstore(0x40, add(data, and(add(add(size, 32), 31), not(31))))
|
|
91
|
+
|
|
92
|
+
// Store the size of the data in the first 32 byte chunk of free memory.
|
|
93
|
+
mstore(data, size)
|
|
94
|
+
|
|
95
|
+
// Copy the code into memory right after the 32 bytes we used to store the size.
|
|
96
|
+
extcodecopy(pointer, add(data, 32), start, size)
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0
|
|
2
2
|
|
|
3
|
-
pragma solidity 0.8.
|
|
3
|
+
pragma solidity 0.8.13;
|
|
4
4
|
|
|
5
|
-
import "
|
|
5
|
+
import "../../interfaces/IJoePair.sol";
|
|
6
6
|
|
|
7
|
+
// almost-copied from TraderJoe
|
|
7
8
|
library JoeLibrary {
|
|
8
9
|
// returns sorted token addresses, used to handle return values from pairs sorted in this order
|
|
9
10
|
function sortTokens(address tokenA, address tokenB)
|
|
@@ -21,27 +21,21 @@
|
|
|
21
21
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
|
-
pragma solidity 0.8.
|
|
25
|
-
import "
|
|
26
|
-
import "
|
|
24
|
+
pragma solidity 0.8.13;
|
|
25
|
+
import "../../interfaces/IJoeRouter01.sol";
|
|
26
|
+
import "./JoeLibrary.sol";
|
|
27
27
|
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
28
28
|
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
29
29
|
|
|
30
30
|
abstract contract PendleJoeSwapHelperUpg {
|
|
31
31
|
using SafeERC20 for IERC20;
|
|
32
|
-
address public immutable joeRouter;
|
|
33
32
|
address public immutable joeFactory;
|
|
34
33
|
|
|
35
34
|
/// @dev since this contract will be proxied, it must not contains non-immutable variables
|
|
36
|
-
constructor(address
|
|
37
|
-
joeRouter = _joeRouter;
|
|
35
|
+
constructor(address _joeFactory) {
|
|
38
36
|
joeFactory = _joeFactory;
|
|
39
37
|
}
|
|
40
38
|
|
|
41
|
-
function _getFirstPair(address[] memory path) internal view returns (address pair) {
|
|
42
|
-
return JoeLibrary.pairFor(joeFactory, path[0], path[1]);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
39
|
/**
|
|
46
40
|
* @notice swap tokens with no limit on amountOut. Tokens must have been transferred to the first pair
|
|
47
41
|
*/
|
|
@@ -79,4 +73,8 @@ abstract contract PendleJoeSwapHelperUpg {
|
|
|
79
73
|
);
|
|
80
74
|
}
|
|
81
75
|
}
|
|
76
|
+
|
|
77
|
+
function _getFirstPair(address[] memory path) internal view returns (address pair) {
|
|
78
|
+
return JoeLibrary.pairFor(joeFactory, path[0], path[1]);
|
|
79
|
+
}
|
|
82
80
|
}
|