@pendle/core-v2 0.7.1-beta → 0.8.0-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 +33 -17
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/WadRayMath.sol/WadRayMath.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/WadRayMath.sol/WadRayMath.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.json +33 -17
- 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 +33 -17
- 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 +33 -17
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.json +33 -17
- package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBase.sol/SCYBase.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBase.sol/SCYBase.json +31 -15
- package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.json +31 -15
- package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol/CelerReceiverUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol/CelerSenderUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchain.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchain.sol/PendleGaugeControllerMainchainUpg.json +2 -2
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechain.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechain.sol/PendleGaugeControllerSidechainUpg.json +2 -2
- package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.json +0 -26
- 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 +2 -2
- package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
- 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 +2 -2
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +125 -111
- package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
- package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.dbg.json +1 -1
- package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.json +2 -2
- package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
- package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.json +2 -2
- package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.dbg.json +1 -1
- package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.json +2 -2
- package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +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 +77 -2
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +51 -20
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +72 -93
- 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 +3 -3
- package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.dbg.json +1 -1
- package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.json +2 -2
- package/build/artifacts/contracts/core/actions/base/ActionSCYAndPTBase.sol/ActionSCYAndPTBase.dbg.json +1 -1
- package/build/artifacts/contracts/core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.dbg.json +1 -1
- package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.dbg.json +1 -1
- package/build/artifacts/contracts/core/actions/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IJoePair.sol/IJoePair.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IJoeRouter01.sol/IJoeRouter01.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IJoeRouter02.sol/IJoeRouter02.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionYT.sol/IPActionYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +1 -1
- 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 +48 -83
- package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
- 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/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +20 -15
- package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.json +30 -4
- package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.json +8 -92
- 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/ISuperComposableYield.sol/ISuperComposableYield.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.json +31 -2
- package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/RewardManager.sol/RewardManager.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/SCY/SCYIndex.sol/SCYIndexLib.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/SCY/SCYIndex.sol/SCYIndexLib.json +2 -2
- package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.json +2 -2
- package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
- package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
- package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.json +2 -2
- package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.json +2 -2
- package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.json +2 -2
- package/build/artifacts/contracts/libraries/helpers/SSTORE2Deployer.sol/SSTORE2Deployer.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/SSTORE2Deployer.sol/SSTORE2Deployer.json +2 -2
- package/build/artifacts/contracts/libraries/helpers/TokenHelper.sol/TokenHelper.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.json +2 -2
- package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.json +2 -2
- package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.json +2 -2
- package/build/artifacts/contracts/libraries/math/Math.sol/Math.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/math/Math.sol/Math.json +2 -2
- package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.json +2 -2
- package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.json +2 -2
- package/build/artifacts/contracts/libraries/traderjoe/JoeLibrary.sol/JoeLibrary.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/traderjoe/JoeLibrary.sol/JoeLibrary.json +2 -2
- package/build/artifacts/contracts/libraries/traderjoe/PendleJoeSwapHelperUpg.sol/PendleJoeSwapHelperUpg.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +166 -13
- 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 +16 -12
- package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol +3 -3
- package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol +20 -0
- package/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol +20 -0
- package/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol +20 -0
- package/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol +29 -2
- package/contracts/SuperComposableYield/base-implementations/SCYBase.sol +63 -41
- package/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol +0 -7
- package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +1 -1
- package/contracts/core/LiquidityMining/PendleGauge.sol +24 -8
- package/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +47 -96
- package/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +86 -73
- package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +17 -16
- package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +1 -1
- package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol +3 -4
- package/contracts/core/Market/PendleMarket.sol +32 -62
- package/contracts/core/PendleRouter.sol +1 -1
- package/contracts/core/YieldContracts/InterestManagerYT.sol +11 -8
- package/contracts/core/YieldContracts/PendlePrincipalToken.sol +3 -3
- package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +18 -12
- package/contracts/core/YieldContracts/PendleYieldToken.sol +167 -140
- package/contracts/core/actions/ActionCallback.sol +11 -10
- package/contracts/core/actions/ActionCore.sol +84 -22
- package/contracts/core/actions/ActionYT.sol +33 -15
- package/contracts/core/actions/base/ActionSCYAndPTBase.sol +4 -15
- package/contracts/core/actions/base/ActionSCYAndPYBase.sol +20 -50
- package/contracts/core/actions/base/ActionSCYAndYTBase.sol +2 -12
- package/contracts/interfaces/IPActionCore.sol +72 -1
- package/contracts/interfaces/IPActionYT.sol +15 -0
- package/contracts/interfaces/IPMarket.sol +7 -26
- package/contracts/interfaces/IPRouterStatic.sol +67 -47
- package/contracts/interfaces/IPVeToken.sol +0 -2
- package/contracts/interfaces/IPVotingEscrow.sol +1 -1
- package/contracts/interfaces/IPYieldContractFactory.sol +6 -2
- package/contracts/interfaces/IPYieldToken.sol +21 -11
- package/contracts/interfaces/ISuperComposableYield.sol +22 -28
- package/contracts/interfaces/IYearnVault.sol +8 -0
- package/contracts/libraries/RewardManager.sol +9 -6
- package/contracts/libraries/RewardManagerAbstract.sol +6 -8
- package/contracts/libraries/SCY/SCYIndex.sol +10 -0
- package/contracts/libraries/VeBalanceLib.sol +0 -1
- package/contracts/libraries/helpers/ArrayLib.sol +11 -0
- package/contracts/libraries/helpers/TokenHelper.sol +6 -5
- package/contracts/libraries/math/MarketApproxLib.sol +91 -36
- package/contracts/libraries/math/Math.sol +2 -4
- package/contracts/offchain-helpers/RouterStatic.sol +144 -115
- package/deployments/43113-core.json +11 -9
- package/deployments/43113-markets/benqi-market-0xF3150c14F776c50C9D397054d38979c7B77FC41D.json +7 -0
- package/deployments/80001-core.json +10 -8
- package/deployments/80001-markets/benqi-market-0x150b6eb90Bf636eC0c4328d13d1e1d4adDBAF904.json +7 -0
- package/package.json +2 -2
- package/typechain-types/ActionCore.ts +8 -8
- package/typechain-types/CelerReceiver.ts +267 -0
- package/typechain-types/CelerSender.ts +164 -0
- package/typechain-types/IPActionCore.ts +8 -8
- package/typechain-types/IPAllAction.ts +8 -8
- package/typechain-types/IPMarket.ts +66 -109
- package/typechain-types/IPRouterStatic.ts +64 -41
- package/typechain-types/IPVotingEscrowController.ts +154 -0
- package/typechain-types/IPYieldContractFactory.ts +34 -0
- package/typechain-types/IPYieldToken.ts +12 -112
- package/typechain-types/ISuperComposableYield.ts +54 -10
- package/typechain-types/PendleAaveV3SCY.ts +54 -29
- package/typechain-types/PendleBtrflyScy.ts +56 -58
- package/typechain-types/PendleERC4626SCY.ts +54 -29
- package/typechain-types/PendleGauge.ts +0 -32
- package/typechain-types/PendleGaugeController.ts +282 -0
- package/typechain-types/PendleGaugeControllerMainchain.ts +346 -0
- package/typechain-types/PendleGaugeControllerSidechain.ts +460 -0
- package/typechain-types/PendleJoeLpSCY.ts +56 -58
- package/typechain-types/PendleMarket.ts +169 -140
- package/typechain-types/PendlePrincipalToken.ts +104 -0
- package/typechain-types/PendleQiTokenSCY.ts +54 -29
- package/typechain-types/PendleVotingController.ts +865 -0
- package/typechain-types/PendleWstEthSCY.ts +54 -29
- package/typechain-types/PendleYearnVaultSCY.ts +54 -29
- package/typechain-types/PendleYieldContractFactory.ts +66 -19
- package/typechain-types/PendleYieldToken.ts +122 -158
- package/typechain-types/RouterStatic.ts +297 -24
- package/typechain-types/SCYBase.ts +54 -29
- package/typechain-types/SCYBaseWithRewards.ts +54 -29
- package/typechain-types/VotingControllerStorage.ts +410 -0
- package/typechain-types/VotingEscrowController.ts +154 -0
- package/typechain-types/VotingEscrowToken.ts +335 -0
- package/typechain-types/factories/ActionCallback__factory.ts +1 -1
- package/typechain-types/factories/ActionCore__factory.ts +2 -2
- package/typechain-types/factories/ActionYT__factory.ts +1 -1
- package/typechain-types/factories/CelerReceiver__factory.ts +140 -0
- package/typechain-types/factories/CelerSender__factory.ts +67 -0
- package/typechain-types/factories/ERC20__factory.ts +1 -1
- package/typechain-types/factories/IPActionCore__factory.ts +1 -1
- package/typechain-types/factories/IPAllAction__factory.ts +1 -1
- package/typechain-types/factories/IPMarket__factory.ts +48 -83
- package/typechain-types/factories/IPRouterStatic__factory.ts +20 -15
- package/typechain-types/factories/IPVotingEscrowController__factory.ts +80 -0
- package/typechain-types/factories/IPYieldContractFactory__factory.ts +30 -4
- package/typechain-types/factories/IPYieldToken__factory.ts +6 -90
- package/typechain-types/factories/ISuperComposableYield__factory.ts +31 -2
- package/typechain-types/factories/PendleAaveV3SCY__factory.ts +32 -16
- package/typechain-types/factories/PendleBtrflyScy__factory.ts +52 -28
- package/typechain-types/factories/PendleERC20Permit__factory.ts +1 -1
- package/typechain-types/factories/PendleERC20__factory.ts +1 -1
- package/typechain-types/factories/PendleERC4626SCY__factory.ts +32 -16
- package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleGaugeControllerMainchain__factory.ts +269 -0
- package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleGaugeControllerSidechain__factory.ts +328 -0
- package/typechain-types/factories/PendleGaugeController__factory.ts +149 -0
- package/typechain-types/factories/PendleGauge__factory.ts +0 -26
- package/typechain-types/factories/PendleGovernanceManager__factory.ts +1 -1
- package/typechain-types/factories/PendleJoeLpSCY__factory.ts +34 -28
- package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleMarket__factory.ts +124 -110
- package/typechain-types/factories/PendlePrincipalToken__factory.ts +76 -1
- package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
- package/typechain-types/factories/PendleQiTokenSCY__factory.ts +32 -16
- package/typechain-types/factories/PendleRouter__factory.ts +1 -1
- package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleVotingController__factory.ts +584 -0
- package/typechain-types/factories/PendleWstEthSCY__factory.ts +32 -16
- package/typechain-types/factories/PendleYearnVaultSCY__factory.ts +32 -16
- package/typechain-types/factories/PendleYieldContractFactory__factory.ts +54 -19
- package/typechain-types/factories/PendleYieldToken__factory.ts +70 -91
- package/typechain-types/factories/RouterStatic__factory.ts +165 -12
- package/typechain-types/factories/SCYBaseWithRewards__factory.ts +31 -15
- package/typechain-types/factories/SCYBase__factory.ts +31 -15
- package/typechain-types/factories/VotingControllerStorage__factory.ts +298 -0
- package/typechain-types/factories/VotingEscrowController__factory.ts +80 -0
- package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
- package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
- package/typechain-types/factories/VotingEscrowToken__factory.ts +225 -0
- package/typechain-types/hardhat.d.ts +0 -27
- package/typechain-types/index.ts +0 -6
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleBtrflySCY.sol/PendleBtrflyScy.dbg.json +0 -4
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleBtrflySCY.sol/PendleBtrflyScy.json +0 -635
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleJoeLpSCY.sol/PendleJoeLpSCY.dbg.json +0 -4
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleJoeLpSCY.sol/PendleJoeLpSCY.json +0 -653
- package/build/artifacts/contracts/interfaces/IPMarketAddRemoveCallback.sol/IPMarketAddRemoveCallback.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPMarketAddRemoveCallback.sol/IPMarketAddRemoveCallback.json +0 -67
- package/build/artifacts/contracts/libraries/solmate/Bytes32AddressLib.sol/Bytes32AddressLib.dbg.json +0 -4
- package/build/artifacts/contracts/libraries/solmate/Bytes32AddressLib.sol/Bytes32AddressLib.json +0 -10
- package/contracts/SuperComposableYield/SCY-implementations/PendleBtrflySCY.sol +0 -123
- package/contracts/SuperComposableYield/SCY-implementations/PendleJoeLpSCY.sol +0 -245
- package/contracts/interfaces/IPMarketAddRemoveCallback.sol +0 -18
- package/contracts/libraries/solmate/Bytes32AddressLib.sol +0 -14
- package/deployments/43113-markets/benqi-market.json +0 -7
- package/deployments/80001-markets/benqi-market.json +0 -7
|
@@ -32,7 +32,15 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
|
|
|
32
32
|
uint256 ptUsed
|
|
33
33
|
)
|
|
34
34
|
{
|
|
35
|
-
|
|
35
|
+
(netLpOut, scyUsed, ptUsed) = _addLiquidity(
|
|
36
|
+
receiver,
|
|
37
|
+
market,
|
|
38
|
+
scyDesired,
|
|
39
|
+
ptDesired,
|
|
40
|
+
minLpOut,
|
|
41
|
+
true
|
|
42
|
+
);
|
|
43
|
+
emit AddLiquidity(msg.sender, market, receiver, scyUsed, ptUsed, netLpOut);
|
|
36
44
|
}
|
|
37
45
|
|
|
38
46
|
/// @dev refer to the internal function
|
|
@@ -43,7 +51,15 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
|
|
|
43
51
|
uint256 scyOutMin,
|
|
44
52
|
uint256 ptOutMin
|
|
45
53
|
) external returns (uint256 netScyOut, uint256 netPtOut) {
|
|
46
|
-
|
|
54
|
+
(netScyOut, netPtOut) = _removeLiquidity(
|
|
55
|
+
receiver,
|
|
56
|
+
market,
|
|
57
|
+
lpToRemove,
|
|
58
|
+
scyOutMin,
|
|
59
|
+
ptOutMin,
|
|
60
|
+
true
|
|
61
|
+
);
|
|
62
|
+
emit RemoveLiquidity(msg.sender, market, receiver, lpToRemove, netPtOut, netScyOut);
|
|
47
63
|
}
|
|
48
64
|
|
|
49
65
|
/// @dev refer to the internal function
|
|
@@ -53,7 +69,8 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
|
|
|
53
69
|
uint256 exactPtIn,
|
|
54
70
|
uint256 minScyOut
|
|
55
71
|
) external returns (uint256 netScyOut) {
|
|
56
|
-
|
|
72
|
+
netScyOut = _swapExactPtForScy(receiver, market, exactPtIn, minScyOut, true);
|
|
73
|
+
emit SwapPtAndScy(msg.sender, market, receiver, exactPtIn.neg(), netScyOut.Int());
|
|
57
74
|
}
|
|
58
75
|
|
|
59
76
|
/// @dev refer to the internal function
|
|
@@ -64,7 +81,8 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
|
|
|
64
81
|
uint256 maxPtIn,
|
|
65
82
|
ApproxParams memory guessPtIn
|
|
66
83
|
) external returns (uint256 netPtIn) {
|
|
67
|
-
|
|
84
|
+
netPtIn = _swapPtForExactScy(receiver, market, exactScyOut, maxPtIn, guessPtIn, true);
|
|
85
|
+
emit SwapPtAndScy(msg.sender, market, receiver, netPtIn.neg(), exactScyOut.Int());
|
|
68
86
|
}
|
|
69
87
|
|
|
70
88
|
/// @dev refer to the internal function
|
|
@@ -74,7 +92,8 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
|
|
|
74
92
|
uint256 exactPtOut,
|
|
75
93
|
uint256 maxScyIn
|
|
76
94
|
) external returns (uint256 netScyIn) {
|
|
77
|
-
|
|
95
|
+
netScyIn = _swapScyForExactPt(receiver, market, exactPtOut, maxScyIn, true);
|
|
96
|
+
emit SwapPtAndScy(msg.sender, market, receiver, exactPtOut.Int(), netScyIn.neg());
|
|
78
97
|
}
|
|
79
98
|
|
|
80
99
|
/// @dev refer to the internal function
|
|
@@ -85,7 +104,8 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
|
|
|
85
104
|
uint256 minPtOut,
|
|
86
105
|
ApproxParams memory guessPtOut
|
|
87
106
|
) external returns (uint256 netPtOut) {
|
|
88
|
-
|
|
107
|
+
netPtOut = _swapExactScyForPt(receiver, market, exactScyIn, minPtOut, guessPtOut, true);
|
|
108
|
+
emit SwapPtAndScy(msg.sender, market, receiver, netPtOut.Int(), exactScyIn.neg());
|
|
89
109
|
}
|
|
90
110
|
|
|
91
111
|
/// @dev refer to the internal function
|
|
@@ -107,7 +127,15 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
|
|
|
107
127
|
uint256 minRawTokenOut,
|
|
108
128
|
address[] memory path
|
|
109
129
|
) external returns (uint256 netRawTokenOut) {
|
|
110
|
-
|
|
130
|
+
netRawTokenOut = _redeemScyToRawToken(receiver, SCY, netScyIn, minRawTokenOut, path, true);
|
|
131
|
+
emit RedeemScyToRawToken(
|
|
132
|
+
msg.sender,
|
|
133
|
+
receiver,
|
|
134
|
+
SCY,
|
|
135
|
+
netScyIn,
|
|
136
|
+
path[path.length - 1],
|
|
137
|
+
netRawTokenOut
|
|
138
|
+
);
|
|
111
139
|
}
|
|
112
140
|
|
|
113
141
|
/// @dev refer to the internal function
|
|
@@ -118,7 +146,8 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
|
|
|
118
146
|
uint256 minPyOut,
|
|
119
147
|
address[] calldata path
|
|
120
148
|
) external returns (uint256 netPyOut) {
|
|
121
|
-
|
|
149
|
+
netPyOut = _mintPyFromRawToken(receiver, YT, netRawTokenIn, minPyOut, path, true);
|
|
150
|
+
emit MintPyFromRawToken(msg.sender, receiver, YT, path[0], netRawTokenIn, netPyOut);
|
|
122
151
|
}
|
|
123
152
|
|
|
124
153
|
/// @dev refer to the internal function
|
|
@@ -129,7 +158,15 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
|
|
|
129
158
|
uint256 minRawTokenOut,
|
|
130
159
|
address[] memory path
|
|
131
160
|
) external returns (uint256 netRawTokenOut) {
|
|
132
|
-
|
|
161
|
+
netRawTokenOut = _redeemPyToRawToken(receiver, YT, netPyIn, minRawTokenOut, path, true);
|
|
162
|
+
emit RedeemPyToRawToken(
|
|
163
|
+
msg.sender,
|
|
164
|
+
receiver,
|
|
165
|
+
YT,
|
|
166
|
+
netPyIn,
|
|
167
|
+
path[path.length - 1],
|
|
168
|
+
netRawTokenOut
|
|
169
|
+
);
|
|
133
170
|
}
|
|
134
171
|
|
|
135
172
|
/// @dev refer to the internal function
|
|
@@ -141,16 +178,24 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
|
|
|
141
178
|
address[] calldata path,
|
|
142
179
|
ApproxParams memory guessPtOut
|
|
143
180
|
) external returns (uint256 netPtOut) {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
181
|
+
netPtOut = _swapExactRawTokenForPt(
|
|
182
|
+
receiver,
|
|
183
|
+
market,
|
|
184
|
+
exactRawTokenIn,
|
|
185
|
+
minPtOut,
|
|
186
|
+
path,
|
|
187
|
+
guessPtOut,
|
|
188
|
+
true
|
|
189
|
+
);
|
|
190
|
+
|
|
191
|
+
emit SwapPtAndRawToken(
|
|
192
|
+
msg.sender,
|
|
193
|
+
market,
|
|
194
|
+
path[0],
|
|
195
|
+
receiver,
|
|
196
|
+
netPtOut.Int(),
|
|
197
|
+
exactRawTokenIn.neg()
|
|
198
|
+
);
|
|
154
199
|
}
|
|
155
200
|
|
|
156
201
|
/// @dev refer to the internal function
|
|
@@ -161,10 +206,25 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
|
|
|
161
206
|
uint256 minRawTokenOut,
|
|
162
207
|
address[] calldata path
|
|
163
208
|
) external returns (uint256 netRawTokenOut) {
|
|
164
|
-
|
|
209
|
+
netRawTokenOut = _swapExactPtForRawToken(
|
|
210
|
+
receiver,
|
|
211
|
+
market,
|
|
212
|
+
exactPtIn,
|
|
213
|
+
minRawTokenOut,
|
|
214
|
+
path,
|
|
215
|
+
true
|
|
216
|
+
);
|
|
217
|
+
emit SwapPtAndRawToken(
|
|
218
|
+
msg.sender,
|
|
219
|
+
market,
|
|
220
|
+
path[path.length - 1],
|
|
221
|
+
receiver,
|
|
222
|
+
exactPtIn.neg(),
|
|
223
|
+
netRawTokenOut.Int()
|
|
224
|
+
);
|
|
165
225
|
}
|
|
166
226
|
|
|
167
|
-
function
|
|
227
|
+
function redeemDueInterestAndRewards(
|
|
168
228
|
address user,
|
|
169
229
|
address[] calldata scys,
|
|
170
230
|
address[] calldata yts,
|
|
@@ -187,7 +247,9 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
|
|
|
187
247
|
ytRewards = new uint256[][](yts.length);
|
|
188
248
|
for (uint256 i = 0; i < yts.length; ++i) {
|
|
189
249
|
(ytInterests[i], ytRewards[i]) = IPYieldToken(yts[i]).redeemDueInterestAndRewards(
|
|
190
|
-
user
|
|
250
|
+
user,
|
|
251
|
+
true,
|
|
252
|
+
true
|
|
191
253
|
);
|
|
192
254
|
}
|
|
193
255
|
|
|
@@ -26,7 +26,8 @@ contract ActionYT is IPActionYT, ActionSCYAndYTBase {
|
|
|
26
26
|
uint256 exactYtIn,
|
|
27
27
|
uint256 minScyOut
|
|
28
28
|
) external returns (uint256 netScyOut) {
|
|
29
|
-
|
|
29
|
+
netScyOut = _swapExactYtForScy(receiver, market, exactYtIn, minScyOut, true);
|
|
30
|
+
emit SwapYTAndSCY(receiver, market, exactYtIn.neg(), netScyOut.Int());
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
/// @dev refer to the internal function
|
|
@@ -36,7 +37,8 @@ contract ActionYT is IPActionYT, ActionSCYAndYTBase {
|
|
|
36
37
|
uint256 exactYtOut,
|
|
37
38
|
uint256 maxScyIn
|
|
38
39
|
) external returns (uint256 netScyIn) {
|
|
39
|
-
|
|
40
|
+
netScyIn = _swapScyForExactYt(receiver, market, exactYtOut, maxScyIn);
|
|
41
|
+
emit SwapYTAndSCY(receiver, market, exactYtOut.Int(), netScyIn.neg());
|
|
40
42
|
}
|
|
41
43
|
|
|
42
44
|
/// @dev refer to the internal function
|
|
@@ -47,7 +49,8 @@ contract ActionYT is IPActionYT, ActionSCYAndYTBase {
|
|
|
47
49
|
uint256 minYtOut,
|
|
48
50
|
ApproxParams memory guessYtOut
|
|
49
51
|
) external returns (uint256 netYtOut) {
|
|
50
|
-
|
|
52
|
+
netYtOut = _swapExactScyForYt(receiver, market, exactScyIn, minYtOut, guessYtOut, true);
|
|
53
|
+
emit SwapYTAndSCY(receiver, market, netYtOut.Int(), exactScyIn.neg());
|
|
51
54
|
}
|
|
52
55
|
|
|
53
56
|
/// @dev refer to the internal function
|
|
@@ -58,7 +61,8 @@ contract ActionYT is IPActionYT, ActionSCYAndYTBase {
|
|
|
58
61
|
uint256 maxYtIn,
|
|
59
62
|
ApproxParams memory guessYtIn
|
|
60
63
|
) external returns (uint256 netYtIn) {
|
|
61
|
-
|
|
64
|
+
netYtIn = _swapYtForExactScy(receiver, market, exactScyOut, maxYtIn, guessYtIn, true);
|
|
65
|
+
emit SwapYTAndSCY(receiver, market, netYtIn.neg(), exactScyOut.Int());
|
|
62
66
|
}
|
|
63
67
|
|
|
64
68
|
/// @dev refer to the internal function
|
|
@@ -70,16 +74,16 @@ contract ActionYT is IPActionYT, ActionSCYAndYTBase {
|
|
|
70
74
|
address[] calldata path,
|
|
71
75
|
ApproxParams memory guessYtOut
|
|
72
76
|
) external returns (uint256 netYtOut) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
77
|
+
netYtOut = _swapExactRawTokenForYt(
|
|
78
|
+
receiver,
|
|
79
|
+
market,
|
|
80
|
+
exactRawTokenIn,
|
|
81
|
+
minYtOut,
|
|
82
|
+
path,
|
|
83
|
+
guessYtOut,
|
|
84
|
+
true
|
|
85
|
+
);
|
|
86
|
+
emit SwapYTAndRawToken(receiver, market, path[0], netYtOut.Int(), exactRawTokenIn.neg());
|
|
83
87
|
}
|
|
84
88
|
|
|
85
89
|
/// @dev refer to the internal function
|
|
@@ -90,6 +94,20 @@ contract ActionYT is IPActionYT, ActionSCYAndYTBase {
|
|
|
90
94
|
uint256 minRawTokenOut,
|
|
91
95
|
address[] calldata path
|
|
92
96
|
) external returns (uint256 netRawTokenOut) {
|
|
93
|
-
|
|
97
|
+
netRawTokenOut = _swapExactYtForRawToken(
|
|
98
|
+
receiver,
|
|
99
|
+
market,
|
|
100
|
+
exactYtIn,
|
|
101
|
+
minRawTokenOut,
|
|
102
|
+
path,
|
|
103
|
+
true
|
|
104
|
+
);
|
|
105
|
+
emit SwapYTAndRawToken(
|
|
106
|
+
receiver,
|
|
107
|
+
market,
|
|
108
|
+
path[path.length - 1],
|
|
109
|
+
exactYtIn.neg(),
|
|
110
|
+
netRawTokenOut.Int()
|
|
111
|
+
);
|
|
94
112
|
}
|
|
95
113
|
}
|
|
@@ -3,7 +3,6 @@ pragma solidity 0.8.15;
|
|
|
3
3
|
|
|
4
4
|
import "../../../interfaces/IPMarketFactory.sol";
|
|
5
5
|
import "../../../interfaces/IPMarket.sol";
|
|
6
|
-
import "../../../interfaces/IPMarketAddRemoveCallback.sol";
|
|
7
6
|
import "../../../interfaces/IPMarketSwapCallback.sol";
|
|
8
7
|
import "../../../libraries/math/MarketApproxLib.sol";
|
|
9
8
|
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
@@ -57,12 +56,7 @@ abstract contract ActionSCYAndPTBase is ActionSCYAndPYBase {
|
|
|
57
56
|
IERC20(PT).safeTransferFrom(msg.sender, market, ptUsed);
|
|
58
57
|
}
|
|
59
58
|
|
|
60
|
-
|
|
61
|
-
receiver,
|
|
62
|
-
ptDesired,
|
|
63
|
-
scyDesired,
|
|
64
|
-
EMPTY_BYTES
|
|
65
|
-
);
|
|
59
|
+
netLpOut = IPMarket(market).mint(receiver);
|
|
66
60
|
|
|
67
61
|
// fail-safe
|
|
68
62
|
require(netLpOut >= minLpOut, "FS insufficient lp out");
|
|
@@ -88,12 +82,7 @@ abstract contract ActionSCYAndPTBase is ActionSCYAndPYBase {
|
|
|
88
82
|
IERC20(market).safeTransferFrom(msg.sender, market, lpToRemove);
|
|
89
83
|
}
|
|
90
84
|
|
|
91
|
-
(netScyOut, netPtOut) = IPMarket(market).
|
|
92
|
-
receiver,
|
|
93
|
-
receiver,
|
|
94
|
-
lpToRemove,
|
|
95
|
-
EMPTY_BYTES
|
|
96
|
-
);
|
|
85
|
+
(netScyOut, netPtOut) = IPMarket(market).burn(receiver, receiver);
|
|
97
86
|
|
|
98
87
|
// fail-safe
|
|
99
88
|
require(netScyOut >= scyOutMin, "FS insufficient SCY out");
|
|
@@ -132,7 +121,7 @@ abstract contract ActionSCYAndPTBase is ActionSCYAndPYBase {
|
|
|
132
121
|
MarketState memory state = IPMarket(market).readState(false);
|
|
133
122
|
(ISuperComposableYield SCY, IPPrincipalToken PT, ) = IPMarket(market).readTokens();
|
|
134
123
|
|
|
135
|
-
(netPtIn, ) = state.approxSwapPtForExactScy(
|
|
124
|
+
(netPtIn, , ) = state.approxSwapPtForExactScy(
|
|
136
125
|
SCY.newIndex(),
|
|
137
126
|
exactScyOut,
|
|
138
127
|
block.timestamp,
|
|
@@ -188,7 +177,7 @@ abstract contract ActionSCYAndPTBase is ActionSCYAndPYBase {
|
|
|
188
177
|
MarketState memory state = IPMarket(market).readState(false);
|
|
189
178
|
(ISuperComposableYield SCY, , ) = IPMarket(market).readTokens();
|
|
190
179
|
|
|
191
|
-
(netPtOut, ) = state.approxSwapExactScyForPt(
|
|
180
|
+
(netPtOut, , ) = state.approxSwapExactScyForPt(
|
|
192
181
|
SCY.newIndex(),
|
|
193
182
|
exactScyIn,
|
|
194
183
|
block.timestamp,
|
|
@@ -4,45 +4,14 @@ pragma solidity 0.8.15;
|
|
|
4
4
|
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
5
5
|
import "../../../libraries/traderjoe/PendleJoeSwapHelperUpg.sol";
|
|
6
6
|
import "../../../libraries/helpers/MiniHelpers.sol";
|
|
7
|
+
import "../../../libraries/helpers/TokenHelper.sol";
|
|
7
8
|
import "../../../interfaces/ISuperComposableYield.sol";
|
|
8
9
|
import "../../../interfaces/IPYieldToken.sol";
|
|
9
10
|
|
|
10
11
|
// solhint-disable no-empty-blocks
|
|
11
|
-
abstract contract ActionSCYAndPYBase is PendleJoeSwapHelperUpg {
|
|
12
|
+
abstract contract ActionSCYAndPYBase is PendleJoeSwapHelperUpg, TokenHelper {
|
|
12
13
|
using SafeERC20 for IERC20;
|
|
13
14
|
|
|
14
|
-
event MintScyFromRawToken(
|
|
15
|
-
address indexed user,
|
|
16
|
-
address indexed rawTokenIn,
|
|
17
|
-
uint256 netRawTokenIn,
|
|
18
|
-
address indexed SCY,
|
|
19
|
-
uint256 netScyOut
|
|
20
|
-
);
|
|
21
|
-
|
|
22
|
-
event RedeemScyToRawToken(
|
|
23
|
-
address indexed user,
|
|
24
|
-
address indexed SCY,
|
|
25
|
-
uint256 netScyIn,
|
|
26
|
-
address indexed rawTokenOut,
|
|
27
|
-
uint256 netRawTokenOut
|
|
28
|
-
);
|
|
29
|
-
|
|
30
|
-
event MintPyFromRawToken(
|
|
31
|
-
address indexed user,
|
|
32
|
-
address indexed rawTokenIn,
|
|
33
|
-
uint256 netRawTokenIn,
|
|
34
|
-
address indexed YT,
|
|
35
|
-
uint256 netPyOut
|
|
36
|
-
);
|
|
37
|
-
|
|
38
|
-
event RedeemPyToRawToken(
|
|
39
|
-
address indexed user,
|
|
40
|
-
address indexed YT,
|
|
41
|
-
uint256 netPyIn,
|
|
42
|
-
address indexed rawTokenOut,
|
|
43
|
-
uint256 netRawTokenOut
|
|
44
|
-
);
|
|
45
|
-
|
|
46
15
|
/// @dev since this contract will be proxied, it must not contains non-immutable variables
|
|
47
16
|
constructor(address _joeFactory) PendleJoeSwapHelperUpg(_joeFactory) {}
|
|
48
17
|
|
|
@@ -60,18 +29,27 @@ abstract contract ActionSCYAndPYBase is PendleJoeSwapHelperUpg {
|
|
|
60
29
|
address[] calldata path,
|
|
61
30
|
bool doPull
|
|
62
31
|
) internal returns (uint256 netScyOut) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
32
|
+
uint256 amountBaseToken;
|
|
33
|
+
if (path.length == 1) {
|
|
34
|
+
if (doPull) {
|
|
35
|
+
IERC20(path[0]).safeTransferFrom(msg.sender, address(this), netRawTokenIn);
|
|
36
|
+
}
|
|
37
|
+
amountBaseToken = netRawTokenIn;
|
|
38
|
+
} else {
|
|
39
|
+
if (doPull) {
|
|
67
40
|
IERC20(path[0]).safeTransferFrom(msg.sender, _getFirstPair(path), netRawTokenIn);
|
|
68
|
-
_swapExactIn(path, netRawTokenIn, SCY);
|
|
69
41
|
}
|
|
42
|
+
amountBaseToken = _swapExactIn(path, netRawTokenIn, address(this));
|
|
70
43
|
}
|
|
71
44
|
|
|
72
45
|
address baseToken = path[path.length - 1];
|
|
73
|
-
|
|
74
|
-
|
|
46
|
+
IERC20(baseToken).approve(SCY, amountBaseToken);
|
|
47
|
+
netScyOut = ISuperComposableYield(SCY).deposit(
|
|
48
|
+
receiver,
|
|
49
|
+
baseToken,
|
|
50
|
+
amountBaseToken,
|
|
51
|
+
minScyOut
|
|
52
|
+
);
|
|
75
53
|
}
|
|
76
54
|
|
|
77
55
|
/**
|
|
@@ -91,24 +69,20 @@ abstract contract ActionSCYAndPYBase is PendleJoeSwapHelperUpg {
|
|
|
91
69
|
|
|
92
70
|
address baseToken = path[0];
|
|
93
71
|
if (path.length == 1) {
|
|
94
|
-
netRawTokenOut = ISuperComposableYield(SCY).
|
|
72
|
+
netRawTokenOut = ISuperComposableYield(SCY).redeemAfterTransfer(
|
|
95
73
|
receiver,
|
|
96
|
-
0,
|
|
97
74
|
baseToken,
|
|
98
75
|
minRawTokenOut
|
|
99
76
|
);
|
|
100
77
|
} else {
|
|
101
|
-
uint256 netBaseTokenOut = ISuperComposableYield(SCY).
|
|
78
|
+
uint256 netBaseTokenOut = ISuperComposableYield(SCY).redeemAfterTransfer(
|
|
102
79
|
_getFirstPair(path),
|
|
103
|
-
0,
|
|
104
80
|
baseToken,
|
|
105
81
|
1
|
|
106
82
|
);
|
|
107
83
|
netRawTokenOut = _swapExactIn(path, netBaseTokenOut, receiver);
|
|
108
84
|
require(netRawTokenOut >= minRawTokenOut, "insufficient out");
|
|
109
85
|
}
|
|
110
|
-
|
|
111
|
-
emit RedeemScyToRawToken(msg.sender, SCY, netScyIn, path[path.length - 1], netRawTokenOut);
|
|
112
86
|
}
|
|
113
87
|
|
|
114
88
|
/**
|
|
@@ -128,8 +102,6 @@ abstract contract ActionSCYAndPYBase is PendleJoeSwapHelperUpg {
|
|
|
128
102
|
|
|
129
103
|
netPyOut = IPYieldToken(YT).mintPY(receiver, receiver);
|
|
130
104
|
require(netPyOut >= minPyOut, "insufficient PY out");
|
|
131
|
-
|
|
132
|
-
emit MintPyFromRawToken(msg.sender, path[0], netRawTokenIn, YT, netPyOut);
|
|
133
105
|
}
|
|
134
106
|
|
|
135
107
|
/**
|
|
@@ -156,7 +128,5 @@ abstract contract ActionSCYAndPYBase is PendleJoeSwapHelperUpg {
|
|
|
156
128
|
IPYieldToken(YT).redeemPY(SCY); // ignore return
|
|
157
129
|
|
|
158
130
|
netRawTokenOut = _redeemScyToRawToken(receiver, SCY, 0, minRawTokenOut, path, false);
|
|
159
|
-
|
|
160
|
-
emit RedeemPyToRawToken(msg.sender, YT, netPyIn, path[path.length - 1], netRawTokenOut);
|
|
161
131
|
}
|
|
162
132
|
}
|
|
@@ -18,8 +18,6 @@ abstract contract ActionSCYAndYTBase is ActionSCYAndPYBase, CallbackHelper {
|
|
|
18
18
|
using SafeERC20 for IPYieldToken;
|
|
19
19
|
using SCYIndexLib for ISuperComposableYield;
|
|
20
20
|
|
|
21
|
-
event SwapYTAndSCY(address indexed user, int256 ytToAccount, int256 scyToAccount);
|
|
22
|
-
|
|
23
21
|
/**
|
|
24
22
|
* @notice swap exact SCY to YT with the help of flashswaps & YT tokenization / redemption
|
|
25
23
|
* @dev inner working of this function:
|
|
@@ -41,7 +39,7 @@ abstract contract ActionSCYAndYTBase is ActionSCYAndPYBase, CallbackHelper {
|
|
|
41
39
|
(ISuperComposableYield SCY, , IPYieldToken YT) = IPMarket(market).readTokens();
|
|
42
40
|
MarketState memory state = IPMarket(market).readState(false);
|
|
43
41
|
|
|
44
|
-
(netYtOut, ) = state.approxSwapExactScyForYt(
|
|
42
|
+
(netYtOut, , ) = state.approxSwapExactScyForYt(
|
|
45
43
|
SCY.newIndex(),
|
|
46
44
|
exactScyIn,
|
|
47
45
|
block.timestamp,
|
|
@@ -60,8 +58,6 @@ abstract contract ActionSCYAndYTBase is ActionSCYAndPYBase, CallbackHelper {
|
|
|
60
58
|
netYtOut, // exactPtIn = netYtOut
|
|
61
59
|
_encodeSwapExactScyForYt(receiver, minYtOut)
|
|
62
60
|
);
|
|
63
|
-
|
|
64
|
-
emit SwapYTAndSCY(receiver, netYtOut.Int(), exactScyIn.neg());
|
|
65
61
|
}
|
|
66
62
|
|
|
67
63
|
/**
|
|
@@ -96,8 +92,6 @@ abstract contract ActionSCYAndYTBase is ActionSCYAndPYBase, CallbackHelper {
|
|
|
96
92
|
); // ignore return
|
|
97
93
|
|
|
98
94
|
netScyOut = SCY.balanceOf(receiver) - preScyBalance;
|
|
99
|
-
|
|
100
|
-
emit SwapYTAndSCY(receiver, exactYtIn.neg(), netScyOut.Int());
|
|
101
95
|
}
|
|
102
96
|
|
|
103
97
|
/**
|
|
@@ -122,8 +116,6 @@ abstract contract ActionSCYAndYTBase is ActionSCYAndPYBase, CallbackHelper {
|
|
|
122
116
|
exactYtOut, // exactPtIn = exactYtOut
|
|
123
117
|
_encodeSwapScyForExactYt(msg.sender, receiver, maxScyIn)
|
|
124
118
|
);
|
|
125
|
-
|
|
126
|
-
emit SwapYTAndSCY(receiver, exactYtOut.Int(), netScyIn.neg());
|
|
127
119
|
}
|
|
128
120
|
|
|
129
121
|
/**
|
|
@@ -147,7 +139,7 @@ abstract contract ActionSCYAndYTBase is ActionSCYAndPYBase, CallbackHelper {
|
|
|
147
139
|
MarketState memory state = IPMarket(market).readState(false);
|
|
148
140
|
(ISuperComposableYield SCY, , IPYieldToken YT) = IPMarket(market).readTokens();
|
|
149
141
|
|
|
150
|
-
(netYtIn, ) = state.approxSwapYtForExactScy(
|
|
142
|
+
(netYtIn, , ) = state.approxSwapYtForExactScy(
|
|
151
143
|
SCY.newIndex(),
|
|
152
144
|
exactScyOut,
|
|
153
145
|
block.timestamp,
|
|
@@ -165,8 +157,6 @@ abstract contract ActionSCYAndYTBase is ActionSCYAndPYBase, CallbackHelper {
|
|
|
165
157
|
netYtIn, // exactPtOut = netYtIn
|
|
166
158
|
_encodeSwapYtForScy(receiver, exactScyOut)
|
|
167
159
|
); // ignore return
|
|
168
|
-
|
|
169
|
-
emit SwapYTAndSCY(receiver, netYtIn.neg(), exactScyOut.Int());
|
|
170
160
|
}
|
|
171
161
|
|
|
172
162
|
/**
|
|
@@ -4,6 +4,77 @@ pragma solidity 0.8.15;
|
|
|
4
4
|
import "../libraries/math/MarketApproxLib.sol";
|
|
5
5
|
|
|
6
6
|
interface IPActionCore {
|
|
7
|
+
event AddLiquidity(
|
|
8
|
+
address indexed caller,
|
|
9
|
+
address indexed market,
|
|
10
|
+
address indexed receiver,
|
|
11
|
+
uint256 scyUsed,
|
|
12
|
+
uint256 ptUsed,
|
|
13
|
+
uint256 lpOut
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
event RemoveLiquidity(
|
|
17
|
+
address indexed caller,
|
|
18
|
+
address indexed market,
|
|
19
|
+
address receiver,
|
|
20
|
+
uint256 lpIn,
|
|
21
|
+
uint256 amountPTOut,
|
|
22
|
+
uint256 amountSCYOut
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
event SwapPtAndScy(
|
|
26
|
+
address indexed caller,
|
|
27
|
+
address indexed market,
|
|
28
|
+
address indexed receiver,
|
|
29
|
+
int256 amountPtToAccount,
|
|
30
|
+
int256 amountScyToAccount
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
event SwapPtAndRawToken(
|
|
34
|
+
address indexed caller,
|
|
35
|
+
address indexed market,
|
|
36
|
+
address indexed rawToken,
|
|
37
|
+
address receiver,
|
|
38
|
+
int256 amountPtToAccount,
|
|
39
|
+
int256 amountRawTokenToAccount
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
event MintScyFromRawToken(
|
|
43
|
+
address indexed caller,
|
|
44
|
+
address indexed receiver,
|
|
45
|
+
address indexed SCY,
|
|
46
|
+
address rawTokenIn,
|
|
47
|
+
uint256 netRawTokenIn,
|
|
48
|
+
uint256 netScyOut
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
event RedeemScyToRawToken(
|
|
52
|
+
address indexed caller,
|
|
53
|
+
address indexed receiver,
|
|
54
|
+
address indexed SCY,
|
|
55
|
+
uint256 netScyIn,
|
|
56
|
+
address rawTokenOut,
|
|
57
|
+
uint256 netRawTokenOut
|
|
58
|
+
);
|
|
59
|
+
|
|
60
|
+
event MintPyFromRawToken(
|
|
61
|
+
address indexed caller,
|
|
62
|
+
address indexed receiver,
|
|
63
|
+
address indexed YT,
|
|
64
|
+
address rawTokenIn,
|
|
65
|
+
uint256 netRawTokenIn,
|
|
66
|
+
uint256 netPyOut
|
|
67
|
+
);
|
|
68
|
+
|
|
69
|
+
event RedeemPyToRawToken(
|
|
70
|
+
address indexed caller,
|
|
71
|
+
address indexed receiver,
|
|
72
|
+
address indexed YT,
|
|
73
|
+
uint256 netPyIn,
|
|
74
|
+
address rawTokenOut,
|
|
75
|
+
uint256 netRawTokenOut
|
|
76
|
+
);
|
|
77
|
+
|
|
7
78
|
function addLiquidity(
|
|
8
79
|
address receiver,
|
|
9
80
|
address market,
|
|
@@ -105,7 +176,7 @@ interface IPActionCore {
|
|
|
105
176
|
address[] calldata path
|
|
106
177
|
) external returns (uint256 netRawTokenOut);
|
|
107
178
|
|
|
108
|
-
function
|
|
179
|
+
function redeemDueInterestAndRewards(
|
|
109
180
|
address user,
|
|
110
181
|
address[] calldata scys,
|
|
111
182
|
address[] calldata yts,
|
|
@@ -4,6 +4,21 @@ pragma solidity 0.8.15;
|
|
|
4
4
|
import "../libraries/math/MarketApproxLib.sol";
|
|
5
5
|
|
|
6
6
|
interface IPActionYT {
|
|
7
|
+
event SwapYTAndSCY(
|
|
8
|
+
address indexed user,
|
|
9
|
+
address indexed market,
|
|
10
|
+
int256 ytToAccount,
|
|
11
|
+
int256 scyToAccount
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
event SwapYTAndRawToken(
|
|
15
|
+
address indexed user,
|
|
16
|
+
address indexed market,
|
|
17
|
+
address indexed rawToken,
|
|
18
|
+
int256 ytToAccount,
|
|
19
|
+
int256 rawTokenToAccount
|
|
20
|
+
);
|
|
21
|
+
|
|
7
22
|
function swapExactYtForScy(
|
|
8
23
|
address receiver,
|
|
9
24
|
address market,
|
|
@@ -7,17 +7,12 @@ import "./IPYieldToken.sol";
|
|
|
7
7
|
import "../libraries/math/MarketMathCore.sol";
|
|
8
8
|
|
|
9
9
|
interface IPMarket is IERC20Metadata {
|
|
10
|
-
event
|
|
11
|
-
address indexed receiver,
|
|
12
|
-
uint256 lpToAccount,
|
|
13
|
-
uint256 scyUsed,
|
|
14
|
-
uint256 ptUsed
|
|
15
|
-
);
|
|
10
|
+
event Mint(address indexed receiver, uint256 lpMinted, uint256 scyUsed, uint256 ptUsed);
|
|
16
11
|
|
|
17
|
-
event
|
|
12
|
+
event Burn(
|
|
18
13
|
address indexed receiverScy,
|
|
19
14
|
address indexed receiverPt,
|
|
20
|
-
uint256
|
|
15
|
+
uint256 lpBurned,
|
|
21
16
|
uint256 scyToAccount,
|
|
22
17
|
uint256 ptToAccount
|
|
23
18
|
);
|
|
@@ -31,25 +26,11 @@ interface IPMarket is IERC20Metadata {
|
|
|
31
26
|
|
|
32
27
|
event UpdateImpliedRate(uint256 indexed timestamp, uint256 lnLastImpliedRate);
|
|
33
28
|
|
|
34
|
-
function
|
|
35
|
-
address receiver,
|
|
36
|
-
uint256 scyDesired,
|
|
37
|
-
uint256 ptDesired,
|
|
38
|
-
bytes calldata data
|
|
39
|
-
)
|
|
40
|
-
external
|
|
41
|
-
returns (
|
|
42
|
-
uint256 lpToAccount,
|
|
43
|
-
uint256 scyUsed,
|
|
44
|
-
uint256 ptUsed
|
|
45
|
-
);
|
|
29
|
+
function mint(address receiver) external returns (uint256);
|
|
46
30
|
|
|
47
|
-
function
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
uint256 lpToRemove,
|
|
51
|
-
bytes calldata data
|
|
52
|
-
) external returns (uint256 scyToAccount, uint256 ptToAccount);
|
|
31
|
+
function burn(address receiverScy, address receiverPt)
|
|
32
|
+
external
|
|
33
|
+
returns (uint256 scyToAccount, uint256 ptToAccount);
|
|
53
34
|
|
|
54
35
|
function swapExactPtForScy(
|
|
55
36
|
address receiver,
|