@pendle/core-v2 0.8.1-gamma → 0.9.2-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/WadRayMath.sol/WadRayMath.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol/PendleQiSAvaxSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol/PendleQiSAvaxSCY.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol/PendleSAvaxSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol/PendleSAvaxSCY.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol/PendleStargateSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol/PendleStargateSCY.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol/PendleSJoeSCY.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol/PendleSJoeSCY.json +2 -2
- package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBase.sol/SCYBase.dbg.json +1 -1
- package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol/CelerReceiverUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/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/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
- package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +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 +2 -2
- 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/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/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
- package/build/artifacts/contracts/core/actions/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 +446 -131
- package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.dbg.json +1 -1
- package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.json +75 -41
- 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 +1 -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 +1 -1
- 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 -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/IEulerEToken.sol/IEulerEToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.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 +442 -127
- package/build/artifacts/contracts/interfaces/IPActionYT.sol/IPActionYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionYT.sol/IPActionYT.json +71 -37
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +513 -164
- 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/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 +2 -2
- package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/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/IRewardManager.sol/IRewardManager.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/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/SCYUtils.sol/SCYUtils.dbg.json +1 -1
- 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/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/PYIndex.sol/PYIndexLib.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/PYIndex.sol/PYIndexLib.json +2 -2
- package/build/artifacts/contracts/libraries/helpers/SSTORE2Deployer.sol/SSTORE2Deployer.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/TokenHelper.sol/TokenHelper.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +4 -0
- package/build/artifacts/contracts/libraries/{traderjoe/PendleJoeSwapHelperUpg.sol/PendleJoeSwapHelperUpg.json → kyberswap/KyberSwapHelper.sol/KyberSwapHelper.json} +3 -3
- package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.json +2 -2
- package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.json +2 -2
- package/build/artifacts/contracts/libraries/math/Math.sol/Math.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/math/Math.sol/Math.json +2 -2
- package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +80 -41
- package/build/artifacts/contracts/periphery/PermissionsV2Upg.sol/PermissionsV2Upg.dbg.json +1 -1
- package/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol +6 -8
- package/contracts/core/PendleRouter.sol +14 -12
- package/contracts/core/actions/ActionCore.sol +125 -89
- package/contracts/core/actions/ActionYT.sol +17 -37
- package/contracts/core/actions/base/ActionSCYAndPTBase.sol +82 -42
- package/contracts/core/actions/base/ActionSCYAndPYBase.sol +39 -51
- package/contracts/core/actions/base/ActionSCYAndYTBase.sol +10 -27
- package/contracts/interfaces/IPActionCore.sol +89 -54
- package/contracts/interfaces/IPActionYT.sol +11 -12
- package/contracts/interfaces/IPRouterStatic.sol +2 -2
- package/contracts/libraries/helpers/TokenHelper.sol +8 -3
- package/contracts/libraries/kyberswap/KyberSwapHelper.sol +61 -0
- package/contracts/libraries/math/Math.sol +4 -0
- package/contracts/offchain-helpers/RouterStatic.sol +39 -3
- package/package.json +1 -1
- package/typechain-types/ActionCore.ts +545 -379
- package/typechain-types/ActionSCYAndPTBase.ts +11 -8
- package/typechain-types/ActionSCYAndPYBase.ts +11 -8
- package/typechain-types/ActionSCYAndYTBase.ts +11 -8
- package/typechain-types/ActionYT.ts +119 -106
- package/typechain-types/FeeDistributorAbstract.ts +164 -0
- package/typechain-types/IPActionCore.ts +533 -370
- package/typechain-types/IPActionYT.ts +110 -100
- package/typechain-types/IPAllAction.ts +611 -466
- package/typechain-types/IPRouterStatic.ts +16 -16
- package/typechain-types/IPVotingControllerStorage.ts +169 -0
- package/typechain-types/{PermissionsV2.ts → KyberSwapHelper.ts} +13 -13
- package/typechain-types/{PendleYearnVaultScy.ts → PendleYearnVaultSCY.ts} +0 -0
- package/typechain-types/RouterStatic.ts +145 -95
- package/typechain-types/factories/ActionCallback__factory.ts +1 -1
- package/typechain-types/factories/ActionCore__factory.ts +449 -134
- package/typechain-types/factories/ActionSCYAndPTBase__factory.ts +1 -1
- package/typechain-types/factories/ActionSCYAndPYBase__factory.ts +1 -1
- package/typechain-types/factories/ActionSCYAndYTBase__factory.ts +1 -1
- package/typechain-types/factories/ActionYT__factory.ts +78 -44
- package/typechain-types/factories/{VotingEscrowController__factory.ts → FeeDistributorAbstract__factory.ts} +33 -23
- package/typechain-types/factories/IPActionCore__factory.ts +442 -127
- package/typechain-types/factories/IPActionYT__factory.ts +71 -37
- package/typechain-types/factories/IPAllAction__factory.ts +513 -164
- package/typechain-types/factories/IPRouterStatic__factory.ts +2 -2
- package/typechain-types/factories/IPVotingControllerStorage__factory.ts +107 -0
- package/typechain-types/factories/{IPermissionsV2__factory.ts → KyberSwapHelper__factory.ts} +9 -9
- package/typechain-types/factories/PendleAaveV3SCY__factory.ts +1 -1
- package/typechain-types/factories/PendleERC4626SCY__factory.ts +1 -1
- package/typechain-types/factories/PendleEulerSCY__factory.ts +1 -1
- package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleMarket__factory.ts +1 -1
- package/typechain-types/factories/PendleQiSAvaxSCY__factory.ts +1 -1
- package/typechain-types/factories/PendleQiTokenSCY__factory.ts +1 -1
- package/typechain-types/factories/PendleRouter__factory.ts +1 -1
- package/typechain-types/factories/PendleSAvaxSCY__factory.ts +1 -1
- package/typechain-types/factories/PendleSJoeSCY__factory.ts +1 -1
- package/typechain-types/factories/PendleStargateSCY__factory.ts +1 -1
- package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleWstEthSCY__factory.ts +1 -1
- package/typechain-types/factories/{PendleYearnVaultScy__factory.ts → PendleYearnVaultSCY__factory.ts} +1 -1
- package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
- package/typechain-types/factories/RouterStatic__factory.ts +79 -40
- package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
- package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
- package/typechain-types/hardhat.d.ts +9 -54
- package/typechain-types/index.ts +2 -12
- package/build/artifacts/contracts/interfaces/IJoePair.sol/IJoePair.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IJoePair.sol/IJoePair.json +0 -662
- package/build/artifacts/contracts/interfaces/IJoeRouter01.sol/IJoeRouter01.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IJoeRouter01.sol/IJoeRouter01.json +0 -760
- package/build/artifacts/contracts/interfaces/IJoeRouter02.sol/IJoeRouter02.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IJoeRouter02.sol/IJoeRouter02.json +0 -962
- package/build/artifacts/contracts/libraries/traderjoe/JoeLibrary.sol/JoeLibrary.dbg.json +0 -4
- package/build/artifacts/contracts/libraries/traderjoe/JoeLibrary.sol/JoeLibrary.json +0 -10
- package/build/artifacts/contracts/libraries/traderjoe/PendleJoeSwapHelperUpg.sol/PendleJoeSwapHelperUpg.dbg.json +0 -4
- package/contracts/interfaces/IJoePair.sol +0 -98
- package/contracts/interfaces/IJoeRouter01.sol +0 -162
- package/contracts/interfaces/IJoeRouter02.sol +0 -52
- package/contracts/libraries/traderjoe/JoeLibrary.sol +0 -122
- package/contracts/libraries/traderjoe/PendleJoeSwapHelperUpg.sol +0 -80
- package/typechain-types/ActionRedeem.ts +0 -125
- package/typechain-types/ActionSCYAndYOBase.ts +0 -223
- package/typechain-types/AggregatorV2V3Interface.ts +0 -380
- package/typechain-types/BenqiChainlinkOracle.ts +0 -362
- package/typechain-types/BoringOwnable.ts +0 -194
- package/typechain-types/BoringOwnableData.ts +0 -100
- package/typechain-types/BoringOwnableUpg.ts +0 -194
- package/typechain-types/BoringOwnableUpgData.ts +0 -100
- package/typechain-types/CelerReceiver.ts +0 -267
- package/typechain-types/CelerSender.ts +0 -197
- package/typechain-types/Comptroller.ts +0 -2860
- package/typechain-types/ComptrollerErrorReporter.ts +0 -70
- package/typechain-types/ComptrollerInterface.ts +0 -881
- package/typechain-types/ComptrollerVXStorage.ts +0 -781
- package/typechain-types/CrosschainContract.ts +0 -113
- package/typechain-types/CrosschainReceiver.ts +0 -347
- package/typechain-types/CrosschainSender.ts +0 -210
- package/typechain-types/EIP20Interface.ts +0 -337
- package/typechain-types/EIP20NonStandardInterface.ts +0 -298
- package/typechain-types/ERC20Burnable.ts +0 -473
- package/typechain-types/ERC20Locker.ts +0 -91
- package/typechain-types/ERC20Permit.ts +0 -521
- package/typechain-types/ERC20Premined.ts +0 -473
- package/typechain-types/ERC20PresetFixedSupply.ts +0 -473
- package/typechain-types/EpochController.ts +0 -195
- package/typechain-types/FundKeeper.ts +0 -347
- package/typechain-types/GaugeTypeControllerAbstract.ts +0 -546
- package/typechain-types/GaugeTypeControllerCrosschain.ts +0 -733
- package/typechain-types/GaugeTypeControllerMainchain.ts +0 -604
- package/typechain-types/IERC20Permit.ts +0 -175
- package/typechain-types/IGaugeController.ts +0 -99
- package/typechain-types/IJoePair.ts +0 -888
- package/typechain-types/IJoeRouter01.ts +0 -1107
- package/typechain-types/IJoeRouter02.ts +0 -1420
- package/typechain-types/ILiquidYieldToken.ts +0 -639
- package/typechain-types/ILiquidYieldTokenWrap.ts +0 -790
- package/typechain-types/IMessageBus.ts +0 -543
- package/typechain-types/IMessageReceiverApp.ts +0 -110
- package/typechain-types/IPActionRedeem.ts +0 -125
- package/typechain-types/IPActionSCYAndPY.ts +0 -183
- package/typechain-types/IPBaseToken.ts +0 -365
- package/typechain-types/IPFlashCallback.ts +0 -115
- package/typechain-types/IPGauge.ts +0 -212
- package/typechain-types/IPLiquidYieldToken.ts +0 -641
- package/typechain-types/IPMarketAddRemoveCallback.ts +0 -169
- package/typechain-types/IPMarketCallback.ts +0 -107
- package/typechain-types/IPOwnershipToken.ts +0 -488
- package/typechain-types/IPRouterCore.ts +0 -769
- package/typechain-types/IPRouterRedeem.ts +0 -155
- package/typechain-types/IPRouterYT.ts +0 -489
- package/typechain-types/IPVotingEscrowController.ts +0 -154
- package/typechain-types/IPendleGauge.ts +0 -241
- package/typechain-types/IPermissionsV2.ts +0 -87
- package/typechain-types/IRainbowBridge.ts +0 -91
- package/typechain-types/ISCYRewardIndex.ts +0 -695
- package/typechain-types/IVEPendleToken.ts +0 -121
- package/typechain-types/IVePToken.ts +0 -103
- package/typechain-types/IVotingEscrowPendle.ts +0 -297
- package/typechain-types/IXPendle.ts +0 -114
- package/typechain-types/InterestRateModel.ts +0 -178
- package/typechain-types/JumpRateModel.ts +0 -347
- package/typechain-types/LYTBase.ts +0 -721
- package/typechain-types/LYTBaseWithRewards.ts +0 -806
- package/typechain-types/LYTWrap.ts +0 -872
- package/typechain-types/LYTWrapWithRewards.ts +0 -979
- package/typechain-types/LiquidityMining.ts +0 -468
- package/typechain-types/Maximillion.ts +0 -145
- package/typechain-types/Ownable.ts +0 -160
- package/typechain-types/PendleAaveV3LYT.ts +0 -808
- package/typechain-types/PendleBaseToken.ts +0 -475
- package/typechain-types/PendleBenQiErc20LYT.ts +0 -901
- package/typechain-types/PendleBenQiErc20SCY.ts +0 -1050
- package/typechain-types/PendleBenqiLiquidYieldToken.ts +0 -1013
- package/typechain-types/PendleBtrflyLYT.ts +0 -781
- package/typechain-types/PendleBtrflyScy.ts +0 -822
- package/typechain-types/PendleCelerRouter.ts +0 -359
- package/typechain-types/PendleERC20Permit.ts +0 -443
- package/typechain-types/PendleGaugeController.ts +0 -346
- package/typechain-types/PendleGaugeControllerMainchain.ts +0 -410
- package/typechain-types/PendleGaugeControllerSidechain.ts +0 -524
- package/typechain-types/PendleJoeLpSCY.ts +0 -835
- package/typechain-types/PendleJoeSwapHelper.ts +0 -92
- package/typechain-types/PendleJoeSwapHelperUpg.ts +0 -84
- package/typechain-types/PendleLYTMockYT.ts +0 -894
- package/typechain-types/PendleLiquidYieldToken.ts +0 -814
- package/typechain-types/PendleLiquidYieldTokenBase.ts +0 -941
- package/typechain-types/PendleOwnershipToken.ts +0 -598
- package/typechain-types/PendleRouter01.ts +0 -184
- package/typechain-types/PendleRouter02.ts +0 -564
- package/typechain-types/PendleRouter03.ts +0 -224
- package/typechain-types/PendleRouterBase.ts +0 -126
- package/typechain-types/PendleRouterCore.ts +0 -328
- package/typechain-types/PendleRouterCoreUpg.ts +0 -798
- package/typechain-types/PendleRouterLytAndForge.ts +0 -331
- package/typechain-types/PendleRouterMarketBase.ts +0 -82
- package/typechain-types/PendleRouterOT.ts +0 -463
- package/typechain-types/PendleRouterProxy.ts +0 -335
- package/typechain-types/PendleRouterRawTokenOT.ts +0 -865
- package/typechain-types/PendleRouterRawTokenYT.ts +0 -520
- package/typechain-types/PendleRouterRedeemUpg.ts +0 -125
- package/typechain-types/PendleRouterSCYAndForgeBaseUpg.ts +0 -98
- package/typechain-types/PendleRouterStaticUpg.ts +0 -399
- package/typechain-types/PendleRouterYT.ts +0 -227
- package/typechain-types/PendleRouterYTBaseUpg.ts +0 -134
- package/typechain-types/PendleRouterYTUpg.ts +0 -537
- package/typechain-types/PendleStEthSCY.ts +0 -872
- package/typechain-types/PendleStargatePool.ts +0 -1135
- package/typechain-types/PendleVotingController.ts +0 -983
- package/typechain-types/PendleYTLYTBenqi.ts +0 -863
- package/typechain-types/PendleYearnVaultLYT.ts +0 -723
- package/typechain-types/PermlessAbstract.ts +0 -57
- package/typechain-types/PglStakingContract.ts +0 -662
- package/typechain-types/PglStakingContractProxy.ts +0 -256
- package/typechain-types/PglStakingContractProxyStorage.ts +0 -136
- package/typechain-types/PglStakingContractStorage.ts +0 -397
- package/typechain-types/PriceOracle.ts +0 -116
- package/typechain-types/ProtocolFakeUser.ts +0 -105
- package/typechain-types/Qi.ts +0 -760
- package/typechain-types/QiAvax.ts +0 -1720
- package/typechain-types/QiDelegateInterface.ts +0 -145
- package/typechain-types/QiDelegationStorage.ts +0 -82
- package/typechain-types/QiDelegatorInterface.ts +0 -149
- package/typechain-types/QiErc20.ts +0 -1846
- package/typechain-types/QiErc20Delegate.ts +0 -1926
- package/typechain-types/QiErc20Delegator.ts +0 -1885
- package/typechain-types/QiErc20Interface.ts +0 -382
- package/typechain-types/QiErc20Storage.ts +0 -79
- package/typechain-types/QiToken.ts +0 -1475
- package/typechain-types/QiTokenInterface.ts +0 -1419
- package/typechain-types/QiTokenSaleDistributor.ts +0 -771
- package/typechain-types/QiTokenSaleDistributorProxy.ts +0 -256
- package/typechain-types/QiTokenSaleDistributorProxyStorage.ts +0 -136
- package/typechain-types/QiTokenSaleDistributorStorage.ts +0 -401
- package/typechain-types/QiTokenStorage.ts +0 -311
- package/typechain-types/ReentrancyGuard.ts +0 -52
- package/typechain-types/SingleGaugeTypeController.ts +0 -478
- package/typechain-types/TokenErrorReporter.ts +0 -70
- package/typechain-types/Unitroller.ts +0 -356
- package/typechain-types/UnitrollerAdminStorage.ts +0 -143
- package/typechain-types/VePendle.ts +0 -1156
- package/typechain-types/VePendleCrosschain.ts +0 -969
- package/typechain-types/VePendleToken.ts +0 -688
- package/typechain-types/VotingController.ts +0 -1004
- package/typechain-types/VotingControllerStorage.ts +0 -448
- package/typechain-types/VotingEscrowController.ts +0 -154
- package/typechain-types/VotingEscrowPendle.ts +0 -752
- package/typechain-types/VotingEscrowToken.ts +0 -251
- package/typechain-types/WETH9.ts +0 -414
- package/typechain-types/WhitePaperInterestRateModel.ts +0 -304
- package/typechain-types/XPendle.ts +0 -618
- package/typechain-types/factories/ActionRedeem__factory.ts +0 -105
- package/typechain-types/factories/ActionSCYAndYOBase__factory.ts +0 -200
- package/typechain-types/factories/AggregatorV2V3Interface__factory.ts +0 -288
- package/typechain-types/factories/BenqiChainlinkOracle__factory.ts +0 -311
- package/typechain-types/factories/BoringOwnableData__factory.ts +0 -90
- package/typechain-types/factories/BoringOwnableUpgData__factory.ts +0 -94
- package/typechain-types/factories/BoringOwnableUpg__factory.ts +0 -139
- package/typechain-types/factories/BoringOwnable__factory.ts +0 -149
- package/typechain-types/factories/CelerReceiver__factory.ts +0 -140
- package/typechain-types/factories/CelerSender__factory.ts +0 -85
- package/typechain-types/factories/ComptrollerErrorReporter__factory.ts +0 -93
- package/typechain-types/factories/ComptrollerInterface__factory.ts +0 -595
- package/typechain-types/factories/ComptrollerVXStorage__factory.ts +0 -610
- package/typechain-types/factories/Comptroller__factory.ts +0 -2189
- package/typechain-types/factories/CrosschainContract__factory.ts +0 -52
- package/typechain-types/factories/CrosschainReceiver__factory.ts +0 -187
- package/typechain-types/factories/CrosschainSender__factory.ts +0 -104
- package/typechain-types/factories/EIP20Interface__factory.ts +0 -248
- package/typechain-types/factories/EIP20NonStandardInterface__factory.ts +0 -213
- package/typechain-types/factories/ERC20Burnable__factory.ts +0 -324
- package/typechain-types/factories/ERC20Locker__factory.ts +0 -73
- package/typechain-types/factories/ERC20Permit__factory.ts +0 -368
- package/typechain-types/factories/ERC20Premined__factory.ts +0 -393
- package/typechain-types/factories/ERC20PresetFixedSupply__factory.ts +0 -422
- package/typechain-types/factories/EpochController__factory.ts +0 -170
- package/typechain-types/factories/FundKeeper__factory.ts +0 -212
- package/typechain-types/factories/GaugeTypeControllerAbstract__factory.ts +0 -387
- package/typechain-types/factories/GaugeTypeControllerCrosschain__factory.ts +0 -522
- package/typechain-types/factories/GaugeTypeControllerMainchain__factory.ts +0 -431
- package/typechain-types/factories/IERC20Permit__factory.ts +0 -98
- package/typechain-types/factories/IGaugeController__factory.ts +0 -45
- package/typechain-types/factories/IJoePair__factory.ts +0 -674
- package/typechain-types/factories/IJoeRouter01__factory.ts +0 -772
- package/typechain-types/factories/IJoeRouter02__factory.ts +0 -974
- package/typechain-types/factories/ILiquidYieldTokenWrap__factory.ts +0 -533
- package/typechain-types/factories/ILiquidYieldToken__factory.ts +0 -429
- package/typechain-types/factories/IMessageBus__factory.ts +0 -396
- package/typechain-types/factories/IMessageReceiverApp__factory.ts +0 -55
- package/typechain-types/factories/IPActionRedeem__factory.ts +0 -70
- package/typechain-types/factories/IPActionSCYAndPY__factory.ts +0 -174
- package/typechain-types/factories/IPBaseToken__factory.ts +0 -271
- package/typechain-types/factories/IPFlashCallback__factory.ts +0 -49
- package/typechain-types/factories/IPGauge__factory.ts +0 -110
- package/typechain-types/factories/IPLiquidYieldToken__factory.ts +0 -433
- package/typechain-types/factories/IPMarketAddRemoveCallback__factory.ts +0 -86
- package/typechain-types/factories/IPMarketCallback__factory.ts +0 -55
- package/typechain-types/factories/IPOwnershipToken__factory.ts +0 -349
- package/typechain-types/factories/IPRouterCore__factory.ts +0 -531
- package/typechain-types/factories/IPRouterRedeem__factory.ts +0 -72
- package/typechain-types/factories/IPRouterYT__factory.ts +0 -305
- package/typechain-types/factories/IPVotingEscrowController__factory.ts +0 -80
- package/typechain-types/factories/IPendleGauge__factory.ts +0 -125
- package/typechain-types/factories/IRainbowBridge__factory.ts +0 -76
- package/typechain-types/factories/ISCYRewardIndex__factory.ts +0 -465
- package/typechain-types/factories/IVEPendleToken__factory.ts +0 -71
- package/typechain-types/factories/IVePToken__factory.ts +0 -55
- package/typechain-types/factories/IVotingEscrowPendle__factory.ts +0 -182
- package/typechain-types/factories/IXPendle__factory.ts +0 -61
- package/typechain-types/factories/InterestRateModel__factory.ts +0 -108
- package/typechain-types/factories/JumpRateModel__factory.ts +0 -334
- package/typechain-types/factories/LYTBaseWithRewards__factory.ts +0 -530
- package/typechain-types/factories/LYTBase__factory.ts +0 -474
- package/typechain-types/factories/LYTWrapWithRewards__factory.ts +0 -643
- package/typechain-types/factories/LYTWrap__factory.ts +0 -574
- package/typechain-types/factories/LiquidityMining__factory.ts +0 -367
- package/typechain-types/factories/Maximillion__factory.ts +0 -125
- package/typechain-types/factories/Ownable__factory.ts +0 -75
- package/typechain-types/factories/PendleAaveV3LYT__factory.ts +0 -657
- package/typechain-types/factories/PendleBaseToken__factory.ts +0 -348
- package/typechain-types/factories/PendleBenQiErc20LYT__factory.ts +0 -748
- package/typechain-types/factories/PendleBenQiErc20SCY__factory.ts +0 -871
- package/typechain-types/factories/PendleBenqiLiquidYieldToken__factory.ts +0 -785
- package/typechain-types/factories/PendleBtrflyLYT__factory.ts +0 -647
- package/typechain-types/factories/PendleBtrflyScy__factory.ts +0 -710
- package/typechain-types/factories/PendleCelerRouter__factory.ts +0 -259
- package/typechain-types/factories/PendleERC20Permit__factory.ts +0 -405
- package/typechain-types/factories/PendleGaugeControllerMainchain__factory.ts +0 -332
- package/typechain-types/factories/PendleGaugeControllerSidechain__factory.ts +0 -391
- package/typechain-types/factories/PendleGaugeController__factory.ts +0 -212
- package/typechain-types/factories/PendleJoeLpSCY__factory.ts +0 -732
- package/typechain-types/factories/PendleJoeSwapHelperUpg__factory.ts +0 -43
- package/typechain-types/factories/PendleJoeSwapHelper__factory.ts +0 -52
- package/typechain-types/factories/PendleLYTMockYT__factory.ts +0 -732
- package/typechain-types/factories/PendleLiquidYieldTokenBase__factory.ts +0 -603
- package/typechain-types/factories/PendleLiquidYieldToken__factory.ts +0 -510
- package/typechain-types/factories/PendleOwnershipToken__factory.ts +0 -527
- package/typechain-types/factories/PendleRouter01__factory.ts +0 -152
- package/typechain-types/factories/PendleRouter02__factory.ts +0 -438
- package/typechain-types/factories/PendleRouter03__factory.ts +0 -190
- package/typechain-types/factories/PendleRouterBase__factory.ts +0 -68
- package/typechain-types/factories/PendleRouterCoreUpg__factory.ts +0 -635
- package/typechain-types/factories/PendleRouterCore__factory.ts +0 -268
- package/typechain-types/factories/PendleRouterLytAndForge__factory.ts +0 -294
- package/typechain-types/factories/PendleRouterMarketBase__factory.ts +0 -43
- package/typechain-types/factories/PendleRouterOT__factory.ts +0 -372
- package/typechain-types/factories/PendleRouterProxy__factory.ts +0 -285
- package/typechain-types/factories/PendleRouterRawTokenOT__factory.ts +0 -697
- package/typechain-types/factories/PendleRouterRawTokenYT__factory.ts +0 -431
- package/typechain-types/factories/PendleRouterRedeemUpg__factory.ts +0 -112
- package/typechain-types/factories/PendleRouterSCYAndForgeBaseUpg__factory.ts +0 -56
- package/typechain-types/factories/PendleRouterStaticUpg__factory.ts +0 -315
- package/typechain-types/factories/PendleRouterYTBaseUpg__factory.ts +0 -66
- package/typechain-types/factories/PendleRouterYTUpg__factory.ts +0 -422
- package/typechain-types/factories/PendleRouterYT__factory.ts +0 -184
- package/typechain-types/factories/PendleStEthSCY__factory.ts +0 -716
- package/typechain-types/factories/PendleStargatePool__factory.ts +0 -961
- package/typechain-types/factories/PendleVotingController__factory.ts +0 -730
- package/typechain-types/factories/PendleYTLYTBenqi__factory.ts +0 -713
- package/typechain-types/factories/PendleYearnVaultLYT__factory.ts +0 -586
- package/typechain-types/factories/PermissionsV2__factory.ts +0 -36
- package/typechain-types/factories/PermlessAbstract__factory.ts +0 -30
- package/typechain-types/factories/PglStakingContractProxyStorage__factory.ts +0 -130
- package/typechain-types/factories/PglStakingContractProxy__factory.ts +0 -187
- package/typechain-types/factories/PglStakingContractStorage__factory.ts +0 -309
- package/typechain-types/factories/PglStakingContract__factory.ts +0 -446
- package/typechain-types/factories/PriceOracle__factory.ts +0 -59
- package/typechain-types/factories/ProtocolFakeUser__factory.ts +0 -87
- package/typechain-types/factories/QiAvax__factory.ts +0 -1471
- package/typechain-types/factories/QiDelegateInterface__factory.ts +0 -65
- package/typechain-types/factories/QiDelegationStorage__factory.ts +0 -79
- package/typechain-types/factories/QiDelegatorInterface__factory.ts +0 -89
- package/typechain-types/factories/QiErc20Delegate__factory.ts +0 -1563
- package/typechain-types/factories/QiErc20Delegator__factory.ts +0 -1648
- package/typechain-types/factories/QiErc20Interface__factory.ts +0 -239
- package/typechain-types/factories/QiErc20Storage__factory.ts +0 -79
- package/typechain-types/factories/QiErc20__factory.ts +0 -1515
- package/typechain-types/factories/QiTokenInterface__factory.ts +0 -1182
- package/typechain-types/factories/QiTokenSaleDistributorProxyStorage__factory.ts +0 -124
- package/typechain-types/factories/QiTokenSaleDistributorProxy__factory.ts +0 -171
- package/typechain-types/factories/QiTokenSaleDistributorStorage__factory.ts +0 -289
- package/typechain-types/factories/QiTokenSaleDistributor__factory.ts +0 -480
- package/typechain-types/factories/QiTokenStorage__factory.ts +0 -274
- package/typechain-types/factories/QiToken__factory.ts +0 -1219
- package/typechain-types/factories/Qi__factory.ts +0 -648
- package/typechain-types/factories/ReentrancyGuard__factory.ts +0 -69
- package/typechain-types/factories/SingleGaugeTypeController__factory.ts +0 -341
- package/typechain-types/factories/TokenErrorReporter__factory.ts +0 -89
- package/typechain-types/factories/UnitrollerAdminStorage__factory.ts +0 -128
- package/typechain-types/factories/Unitroller__factory.ts +0 -305
- package/typechain-types/factories/VePendleCrosschain__factory.ts +0 -727
- package/typechain-types/factories/VePendleToken__factory.ts +0 -494
- package/typechain-types/factories/VePendle__factory.ts +0 -800
- package/typechain-types/factories/VotingControllerStorage__factory.ts +0 -315
- package/typechain-types/factories/VotingController__factory.ts +0 -645
- package/typechain-types/factories/VotingEscrowPendle__factory.ts +0 -527
- package/typechain-types/factories/VotingEscrowToken__factory.ts +0 -153
- package/typechain-types/factories/WETH9__factory.ts +0 -342
- package/typechain-types/factories/WhitePaperInterestRateModel__factory.ts +0 -281
- package/typechain-types/factories/XPendle__factory.ts +0 -473
|
@@ -23,7 +23,7 @@ abstract contract ActionSCYAndPTBase is ActionSCYAndPYBase {
|
|
|
23
23
|
/// @dev For doPull: if doPull is true, this function will do transferFrom as necessary from msg.sender. Else, it will
|
|
24
24
|
/// assume tokens have already been transferred in.
|
|
25
25
|
|
|
26
|
-
function
|
|
26
|
+
function _addLiquidityDualScyAndPt(
|
|
27
27
|
address receiver,
|
|
28
28
|
address market,
|
|
29
29
|
uint256 scyDesired,
|
|
@@ -63,31 +63,88 @@ abstract contract ActionSCYAndPTBase is ActionSCYAndPYBase {
|
|
|
63
63
|
require(netLpOut >= minLpOut, "FS insufficient lp out");
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
function
|
|
66
|
+
function _addLiquidityDualIbTokenAndPt(
|
|
67
|
+
address receiver,
|
|
68
|
+
address market,
|
|
69
|
+
uint256 ibTokenDesired,
|
|
70
|
+
uint256 ptDesired,
|
|
71
|
+
uint256 minLpOut
|
|
72
|
+
)
|
|
73
|
+
internal
|
|
74
|
+
returns (
|
|
75
|
+
uint256 netLpOut,
|
|
76
|
+
uint256 ibTokenUsed,
|
|
77
|
+
uint256 ptUsed
|
|
78
|
+
)
|
|
79
|
+
{
|
|
80
|
+
(ISuperComposableYield SCY, IPPrincipalToken PT, IPYieldToken YT) = IPMarket(market)
|
|
81
|
+
.readTokens();
|
|
82
|
+
|
|
83
|
+
address ibToken = SCY.yieldToken();
|
|
84
|
+
uint256 scyDesired = SCY.previewDeposit(ibToken, ibTokenDesired);
|
|
85
|
+
uint256 scyUsed;
|
|
86
|
+
|
|
87
|
+
{
|
|
88
|
+
MarketState memory state = IPMarket(market).readState(false);
|
|
89
|
+
(, netLpOut, scyUsed, ptUsed) = state.addLiquidity(
|
|
90
|
+
YT.newIndex(),
|
|
91
|
+
scyDesired,
|
|
92
|
+
ptDesired,
|
|
93
|
+
block.timestamp
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// early-check
|
|
98
|
+
require(netLpOut >= minLpOut, "insufficient lp out");
|
|
99
|
+
|
|
100
|
+
IERC20(PT).safeTransferFrom(msg.sender, market, ptUsed);
|
|
101
|
+
|
|
102
|
+
// convert ibToken to SCY to deposit
|
|
103
|
+
ibTokenUsed = (ibTokenDesired * scyUsed).rawDivUp(scyDesired);
|
|
104
|
+
|
|
105
|
+
IERC20(ibToken).safeTransferFrom(msg.sender, address(this), ibTokenUsed);
|
|
106
|
+
|
|
107
|
+
_safeApproveInf(ibToken, address(SCY));
|
|
108
|
+
|
|
109
|
+
SCY.deposit(market, ibToken, ibTokenUsed, scyDesired);
|
|
110
|
+
|
|
111
|
+
netLpOut = IPMarket(market).mint(receiver);
|
|
112
|
+
// fail-safe
|
|
113
|
+
require(netLpOut >= minLpOut, "FS insufficient lp out");
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
function _removeLiquidityDualScyAndPt(
|
|
67
117
|
address receiver,
|
|
68
118
|
address market,
|
|
69
119
|
uint256 lpToRemove,
|
|
70
120
|
uint256 scyOutMin,
|
|
71
|
-
uint256 ptOutMin
|
|
72
|
-
bool doPull
|
|
121
|
+
uint256 ptOutMin
|
|
73
122
|
) internal returns (uint256 netScyOut, uint256 netPtOut) {
|
|
74
|
-
|
|
123
|
+
IERC20(market).safeTransferFrom(msg.sender, market, lpToRemove);
|
|
75
124
|
|
|
76
|
-
(netScyOut, netPtOut) =
|
|
125
|
+
(netScyOut, netPtOut) = IPMarket(market).burn(receiver, receiver);
|
|
77
126
|
|
|
78
|
-
// early-check
|
|
79
127
|
require(netScyOut >= scyOutMin, "insufficient SCY out");
|
|
80
128
|
require(netPtOut >= ptOutMin, "insufficient PT out");
|
|
129
|
+
}
|
|
81
130
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
131
|
+
function _removeLiquidityDualIbTokenAndPt(
|
|
132
|
+
address receiver,
|
|
133
|
+
address market,
|
|
134
|
+
uint256 lpToRemove,
|
|
135
|
+
uint256 ibTokenOutMin,
|
|
136
|
+
uint256 ptOutMin
|
|
137
|
+
) internal returns (uint256 netIbTokenOut, uint256 netPtOut) {
|
|
138
|
+
(ISuperComposableYield SCY, , ) = IPMarket(market).readTokens();
|
|
139
|
+
address ibToken = SCY.yieldToken();
|
|
85
140
|
|
|
86
|
-
(
|
|
141
|
+
IERC20(market).safeTransferFrom(msg.sender, market, lpToRemove);
|
|
87
142
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
143
|
+
(, netPtOut) = IPMarket(market).burn(address(SCY), receiver);
|
|
144
|
+
|
|
145
|
+
netIbTokenOut = SCY.redeemAfterTransfer(receiver, ibToken, ibTokenOutMin);
|
|
146
|
+
|
|
147
|
+
require(netPtOut >= ptOutMin, "insufficient PT out");
|
|
91
148
|
}
|
|
92
149
|
|
|
93
150
|
function _swapExactPtForScy(
|
|
@@ -199,28 +256,19 @@ abstract contract ActionSCYAndPTBase is ActionSCYAndPYBase {
|
|
|
199
256
|
/**
|
|
200
257
|
* @notice swap from any ERC20 tokens, through Uniswap's forks, to get baseTokens to make SCY, then swap
|
|
201
258
|
from SCY to PT
|
|
202
|
-
* @dev simply a combination of
|
|
259
|
+
* @dev simply a combination of _mintScyFromToken & _swapExactScyForPt
|
|
203
260
|
*/
|
|
204
|
-
function
|
|
261
|
+
function _swapExactTokenForPt(
|
|
205
262
|
address receiver,
|
|
206
263
|
address market,
|
|
207
|
-
uint256 exactRawTokenIn,
|
|
208
264
|
uint256 minPtOut,
|
|
209
|
-
address[] calldata path,
|
|
210
265
|
ApproxParams memory guessPtOut,
|
|
211
|
-
|
|
266
|
+
TokenInput calldata input
|
|
212
267
|
) internal returns (uint256 netPtOut) {
|
|
213
268
|
(ISuperComposableYield SCY, , ) = IPMarket(market).readTokens();
|
|
214
269
|
|
|
215
270
|
// all output SCY is transferred directly to the market
|
|
216
|
-
uint256 netScyUseToBuyPt =
|
|
217
|
-
market,
|
|
218
|
-
address(SCY),
|
|
219
|
-
exactRawTokenIn,
|
|
220
|
-
1,
|
|
221
|
-
path,
|
|
222
|
-
doPull
|
|
223
|
-
);
|
|
271
|
+
uint256 netScyUseToBuyPt = _mintScyFromToken(address(market), address(SCY), 1, input);
|
|
224
272
|
|
|
225
273
|
// SCY is already in the market, hence doPull = false
|
|
226
274
|
netPtOut = _swapExactScyForPt(
|
|
@@ -234,30 +282,22 @@ abstract contract ActionSCYAndPTBase is ActionSCYAndPYBase {
|
|
|
234
282
|
}
|
|
235
283
|
|
|
236
284
|
/**
|
|
237
|
-
* @notice swap from PT to SCY, then redeem SCY to baseToken & swap through Uniswap's forks to get
|
|
238
|
-
* @dev simply a combination of _swapExactPtForScy &
|
|
285
|
+
* @notice swap from PT to SCY, then redeem SCY to baseToken & swap through Uniswap's forks to get tokenOut
|
|
286
|
+
* @dev simply a combination of _swapExactPtForScy & _redeemScyToToken
|
|
239
287
|
*/
|
|
240
|
-
function
|
|
288
|
+
function _swapExactPtForToken(
|
|
241
289
|
address receiver,
|
|
242
290
|
address market,
|
|
243
291
|
uint256 exactPtIn,
|
|
244
|
-
|
|
245
|
-
address[] calldata path,
|
|
292
|
+
TokenOutput calldata output,
|
|
246
293
|
bool doPull
|
|
247
|
-
) internal returns (uint256
|
|
294
|
+
) internal returns (uint256 netTokenOut) {
|
|
248
295
|
(ISuperComposableYield SCY, , ) = IPMarket(market).readTokens();
|
|
249
296
|
|
|
250
297
|
// all output SCY is directly transferred to the SCY contract
|
|
251
|
-
_swapExactPtForScy(address(SCY), market, exactPtIn, 1, doPull);
|
|
298
|
+
uint256 netScyReceived = _swapExactPtForScy(address(SCY), market, exactPtIn, 1, doPull);
|
|
252
299
|
|
|
253
300
|
// since all SCY is already at the SCY contract, doPull = false
|
|
254
|
-
|
|
255
|
-
receiver,
|
|
256
|
-
address(SCY),
|
|
257
|
-
0,
|
|
258
|
-
minRawTokenOut,
|
|
259
|
-
path,
|
|
260
|
-
false
|
|
261
|
-
);
|
|
301
|
+
netTokenOut = _redeemScyToToken(receiver, address(SCY), netScyReceived, output, false);
|
|
262
302
|
}
|
|
263
303
|
}
|
|
@@ -2,120 +2,108 @@
|
|
|
2
2
|
pragma solidity 0.8.15;
|
|
3
3
|
|
|
4
4
|
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
5
|
-
import "../../../libraries/
|
|
5
|
+
import "../../../libraries/kyberswap/KyberSwapHelper.sol";
|
|
6
6
|
import "../../../libraries/helpers/MiniHelpers.sol";
|
|
7
7
|
import "../../../libraries/helpers/TokenHelper.sol";
|
|
8
8
|
import "../../../interfaces/ISuperComposableYield.sol";
|
|
9
9
|
import "../../../interfaces/IPYieldToken.sol";
|
|
10
10
|
|
|
11
11
|
// solhint-disable no-empty-blocks
|
|
12
|
-
abstract contract ActionSCYAndPYBase is
|
|
12
|
+
abstract contract ActionSCYAndPYBase is TokenHelper, KyberSwapHelper {
|
|
13
13
|
using SafeERC20 for IERC20;
|
|
14
14
|
|
|
15
15
|
/// @dev since this contract will be proxied, it must not contains non-immutable variables
|
|
16
|
-
constructor(address
|
|
16
|
+
constructor(address _kyberSwapRouter) KyberSwapHelper(_kyberSwapRouter) {}
|
|
17
17
|
|
|
18
18
|
/// @dev for Path. If no swap is needed, path = [token]
|
|
19
19
|
/// else, path = [inputToken, token0, token1, ...., outputToken]
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
|
-
* @notice swap
|
|
22
|
+
* @notice swap token to baseToken through Uniswap's forks & use it to mint SCY
|
|
23
23
|
*/
|
|
24
|
-
function
|
|
24
|
+
function _mintScyFromToken(
|
|
25
25
|
address receiver,
|
|
26
26
|
address SCY,
|
|
27
|
-
uint256 netRawTokenIn,
|
|
28
27
|
uint256 minScyOut,
|
|
29
|
-
|
|
30
|
-
bool doPull
|
|
28
|
+
TokenInput calldata input
|
|
31
29
|
) internal returns (uint256 netScyOut) {
|
|
32
|
-
|
|
33
|
-
if (
|
|
34
|
-
|
|
35
|
-
IERC20(path[0]).safeTransferFrom(msg.sender, address(this), netRawTokenIn);
|
|
36
|
-
}
|
|
37
|
-
amountBaseToken = netRawTokenIn;
|
|
38
|
-
} else {
|
|
39
|
-
if (doPull) {
|
|
40
|
-
IERC20(path[0]).safeTransferFrom(msg.sender, _getFirstPair(path), netRawTokenIn);
|
|
41
|
-
}
|
|
42
|
-
amountBaseToken = _swapExactIn(path, netRawTokenIn, address(this));
|
|
30
|
+
_transferIn(input.tokenIn, msg.sender, input.netTokenIn);
|
|
31
|
+
if (input.tokenIn != input.tokenMintScy) {
|
|
32
|
+
_kyberswap(input.tokenIn, input.netTokenIn, input.kybercall);
|
|
43
33
|
}
|
|
44
34
|
|
|
45
|
-
|
|
46
|
-
IERC20(baseToken).approve(SCY, amountBaseToken);
|
|
35
|
+
_safeApproveInf(input.tokenMintScy, SCY);
|
|
47
36
|
netScyOut = ISuperComposableYield(SCY).deposit(
|
|
48
37
|
receiver,
|
|
49
|
-
|
|
50
|
-
|
|
38
|
+
input.tokenMintScy,
|
|
39
|
+
_selfBalance(input.tokenMintScy),
|
|
51
40
|
minScyOut
|
|
52
41
|
);
|
|
53
42
|
}
|
|
54
43
|
|
|
55
44
|
/**
|
|
56
|
-
* @notice redeem SCY to baseToken -> swap baseToken to
|
|
45
|
+
* @notice redeem SCY to baseToken -> swap baseToken to token through Uniswap's forks
|
|
57
46
|
*/
|
|
58
|
-
function
|
|
47
|
+
function _redeemScyToToken(
|
|
59
48
|
address receiver,
|
|
60
49
|
address SCY,
|
|
61
50
|
uint256 netScyIn,
|
|
62
|
-
|
|
63
|
-
address[] memory path,
|
|
51
|
+
TokenOutput calldata output,
|
|
64
52
|
bool doPull
|
|
65
|
-
) internal returns (uint256
|
|
53
|
+
) internal returns (uint256 netTokenOut) {
|
|
66
54
|
if (doPull) {
|
|
67
55
|
IERC20(SCY).safeTransferFrom(msg.sender, SCY, netScyIn);
|
|
68
56
|
}
|
|
69
57
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
netRawTokenOut = ISuperComposableYield(SCY).redeemAfterTransfer(
|
|
58
|
+
if (output.tokenRedeemScy == output.tokenOut) {
|
|
59
|
+
netTokenOut = ISuperComposableYield(SCY).redeemAfterTransfer(
|
|
73
60
|
receiver,
|
|
74
|
-
|
|
75
|
-
|
|
61
|
+
output.tokenRedeemScy,
|
|
62
|
+
output.minTokenOut
|
|
76
63
|
);
|
|
77
64
|
} else {
|
|
78
|
-
uint256
|
|
79
|
-
|
|
80
|
-
|
|
65
|
+
uint256 netTokenRedeemed = ISuperComposableYield(SCY).redeemAfterTransfer(
|
|
66
|
+
address(this),
|
|
67
|
+
output.tokenRedeemScy,
|
|
81
68
|
1
|
|
82
69
|
);
|
|
83
|
-
|
|
84
|
-
|
|
70
|
+
_kyberswap(output.tokenRedeemScy, netTokenRedeemed, output.kybercall);
|
|
71
|
+
|
|
72
|
+
netTokenOut = _selfBalance(output.tokenOut);
|
|
73
|
+
require(netTokenOut >= output.minTokenOut, "insufficient out");
|
|
74
|
+
|
|
75
|
+
_transferOut(output.tokenOut, receiver, netTokenOut);
|
|
85
76
|
}
|
|
86
77
|
}
|
|
87
78
|
|
|
88
79
|
/**
|
|
89
|
-
* @notice swap
|
|
80
|
+
* @notice swap token to baseToken through Uniswap's forks -> convert to SCY -> convert to PT + YT
|
|
90
81
|
*/
|
|
91
|
-
function
|
|
82
|
+
function _mintPyFromToken(
|
|
92
83
|
address receiver,
|
|
93
84
|
address YT,
|
|
94
|
-
uint256 netRawTokenIn,
|
|
95
85
|
uint256 minPyOut,
|
|
96
|
-
|
|
97
|
-
bool doPull
|
|
86
|
+
TokenInput calldata input
|
|
98
87
|
) internal returns (uint256 netPyOut) {
|
|
99
88
|
address SCY = IPYieldToken(YT).SCY();
|
|
100
89
|
|
|
101
|
-
|
|
90
|
+
_mintScyFromToken(YT, SCY, 1, input);
|
|
102
91
|
|
|
103
92
|
netPyOut = IPYieldToken(YT).mintPY(receiver, receiver);
|
|
104
93
|
require(netPyOut >= minPyOut, "insufficient PY out");
|
|
105
94
|
}
|
|
106
95
|
|
|
107
96
|
/**
|
|
108
|
-
* @notice redeem PT + YT to SCY -> redeem SCY to baseToken -> swap baseToken to
|
|
97
|
+
* @notice redeem PT + YT to SCY -> redeem SCY to baseToken -> swap baseToken to token through Uniswap's forks.
|
|
109
98
|
If the YT hasn't expired, both PT & YT will be needed to redeem. Else, only PT is needed
|
|
110
99
|
*/
|
|
111
|
-
function
|
|
100
|
+
function _redeemPyToToken(
|
|
112
101
|
address receiver,
|
|
113
102
|
address YT,
|
|
114
103
|
uint256 netPyIn,
|
|
115
|
-
|
|
116
|
-
address[] memory path,
|
|
104
|
+
TokenOutput calldata output,
|
|
117
105
|
bool doPull
|
|
118
|
-
) internal returns (uint256
|
|
106
|
+
) internal returns (uint256 netTokenOut) {
|
|
119
107
|
address PT = IPYieldToken(YT).PT();
|
|
120
108
|
address SCY = IPYieldToken(YT).SCY();
|
|
121
109
|
|
|
@@ -125,9 +113,9 @@ abstract contract ActionSCYAndPYBase is PendleJoeSwapHelperUpg, TokenHelper {
|
|
|
125
113
|
if (needToBurnYt) IERC20(YT).safeTransferFrom(msg.sender, YT, netPyIn);
|
|
126
114
|
}
|
|
127
115
|
|
|
128
|
-
IPYieldToken(YT).redeemPY(SCY); // ignore return
|
|
116
|
+
uint256 amountScyOut = IPYieldToken(YT).redeemPY(SCY); // ignore return
|
|
129
117
|
|
|
130
|
-
|
|
118
|
+
netTokenOut = _redeemScyToToken(receiver, SCY, amountScyOut, output, false);
|
|
131
119
|
}
|
|
132
120
|
|
|
133
121
|
function _mintPyFromScy(
|
|
@@ -167,25 +167,16 @@ abstract contract ActionSCYAndYTBase is ActionSCYAndPYBase, CallbackHelper {
|
|
|
167
167
|
* @notice swap any ERC20 tokens, through Uniswap's forks, to baseToken of the corresponding SCY of YT. These SCY is then
|
|
168
168
|
used to swap to YT. Please refer to swapExactScyForYt for more details.
|
|
169
169
|
*/
|
|
170
|
-
function
|
|
170
|
+
function _swapExactTokenForYt(
|
|
171
171
|
address receiver,
|
|
172
172
|
address market,
|
|
173
|
-
uint256 exactRawTokenIn,
|
|
174
173
|
uint256 minYtOut,
|
|
175
|
-
address[] calldata path,
|
|
176
174
|
ApproxParams memory guessYtOut,
|
|
177
|
-
|
|
175
|
+
TokenInput calldata input
|
|
178
176
|
) internal returns (uint256 netYtOut) {
|
|
179
177
|
(ISuperComposableYield SCY, , IPYieldToken YT) = IPMarket(market).readTokens();
|
|
180
178
|
|
|
181
|
-
uint256 netScyUsedToBuyYT =
|
|
182
|
-
address(YT),
|
|
183
|
-
address(SCY),
|
|
184
|
-
exactRawTokenIn,
|
|
185
|
-
1,
|
|
186
|
-
path,
|
|
187
|
-
doPull
|
|
188
|
-
);
|
|
179
|
+
uint256 netScyUsedToBuyYT = _mintScyFromToken(address(YT), address(SCY), 1, input);
|
|
189
180
|
|
|
190
181
|
netYtOut = _swapExactScyForYt(
|
|
191
182
|
receiver,
|
|
@@ -198,28 +189,20 @@ abstract contract ActionSCYAndYTBase is ActionSCYAndPYBase, CallbackHelper {
|
|
|
198
189
|
}
|
|
199
190
|
|
|
200
191
|
/**
|
|
201
|
-
* @notice swap YT to SCY (using `swapExactYtForScy` logic), then redeem SCY to baseToken & swap baseToken to
|
|
192
|
+
* @notice swap YT to SCY (using `swapExactYtForScy` logic), then redeem SCY to baseToken & swap baseToken to token
|
|
202
193
|
through Uniswap's forks
|
|
203
194
|
*/
|
|
204
|
-
function
|
|
195
|
+
function _swapExactYtForToken(
|
|
205
196
|
address receiver,
|
|
206
197
|
address market,
|
|
207
|
-
uint256
|
|
208
|
-
|
|
209
|
-
address[] calldata path,
|
|
198
|
+
uint256 netYtIn,
|
|
199
|
+
TokenOutput calldata output,
|
|
210
200
|
bool doPull
|
|
211
|
-
) internal returns (uint256
|
|
201
|
+
) internal returns (uint256 netTokenOut) {
|
|
212
202
|
(ISuperComposableYield SCY, , ) = IPMarket(market).readTokens();
|
|
213
203
|
|
|
214
|
-
uint256 netScyOut = _swapExactYtForScy(address(SCY), market,
|
|
204
|
+
uint256 netScyOut = _swapExactYtForScy(address(SCY), market, netYtIn, 1, doPull);
|
|
215
205
|
|
|
216
|
-
|
|
217
|
-
receiver,
|
|
218
|
-
address(SCY),
|
|
219
|
-
netScyOut,
|
|
220
|
-
minRawTokenOut,
|
|
221
|
-
path,
|
|
222
|
-
false
|
|
223
|
-
);
|
|
206
|
+
netTokenOut = _redeemScyToToken(receiver, address(SCY), netScyOut, output, false);
|
|
224
207
|
}
|
|
225
208
|
}
|