@pendle/core-v2 0.8.1-beta → 0.9.0-gamma-2
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 +4 -0
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol/PendleQiSAvaxSCY.json +833 -0
- 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 +4 -0
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol/PendleSAvaxSCY.json +723 -0
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.dbg.json +4 -0
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.json +723 -0
- 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 +20 -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 +4 -0
- package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol/PendleSJoeSCY.json +784 -0
- 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/CelerAbstracts/CelerSenderUpg.sol/CelerSenderUpg.json +2 -2
- 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 +47 -28
- 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 +66 -4
- 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 +26 -2
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
- package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.json +24 -0
- 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/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -77
- 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 +21 -96
- 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 +272 -136
- 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 +4 -0
- package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.json +162 -0
- package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.json +87 -0
- package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.json +268 -132
- 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 +339 -169
- 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/IPInterestManagerYT.sol/IPInterestManagerYT.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 +23 -23
- package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.json +24 -0
- package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.json +27 -27
- 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 +4 -0
- package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.json +199 -0
- package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.json +168 -0
- package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.json +92 -0
- 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 +4 -0
- package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.json +252 -0
- 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/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
- package/build/artifacts/contracts/libraries/helpers/PYIndex.sol/PYIndexLib.dbg.json +4 -0
- package/build/artifacts/contracts/libraries/{SCY/SCYIndex.sol/SCYIndexLib.json → helpers/PYIndex.sol/PYIndexLib.json} +4 -4
- 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/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 +39 -39
- package/build/artifacts/contracts/periphery/PermissionsV2Upg.sol/PermissionsV2Upg.dbg.json +1 -1
- package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol +242 -0
- package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol +1 -1
- package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol +146 -0
- package/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol +170 -0
- package/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol +33 -6
- package/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol +182 -0
- package/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol +19 -10
- package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +3 -1
- package/contracts/core/LiquidityMining/PendleGauge.sol +3 -2
- package/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +26 -8
- package/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +0 -4
- package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +30 -13
- package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +2 -4
- package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol +5 -1
- package/contracts/core/Market/PendleMarket.sol +4 -5
- package/contracts/core/Market/PendleMarketFactory.sol +1 -1
- package/contracts/core/PendleRouter.sol +10 -10
- package/contracts/core/YieldContracts/InterestManagerYT.sol +0 -2
- package/contracts/core/YieldContracts/PendlePrincipalToken.sol +3 -3
- package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +2 -2
- package/contracts/core/YieldContracts/PendleYieldToken.sol +24 -25
- package/contracts/core/actions/ActionCallback.sol +7 -7
- package/contracts/core/actions/ActionCore.sol +54 -81
- package/contracts/core/actions/ActionYT.sol +17 -37
- package/contracts/core/actions/base/ActionSCYAndPTBase.sol +21 -37
- package/contracts/core/actions/base/ActionSCYAndPYBase.sol +39 -51
- package/contracts/core/actions/base/ActionSCYAndYTBase.sol +14 -31
- package/contracts/interfaces/IEulerEToken.sol +60 -0
- package/contracts/interfaces/IEulerMarkets.sol +46 -0
- package/contracts/interfaces/IPActionCore.sol +43 -50
- package/contracts/interfaces/IPActionYT.sol +11 -12
- package/contracts/interfaces/IPInterestManagerYT.sol +1 -1
- package/contracts/interfaces/IPMarket.sol +1 -0
- package/contracts/interfaces/IPRouterStatic.sol +2 -7
- package/contracts/interfaces/IPVeToken.sol +2 -0
- package/contracts/interfaces/IPYieldToken.sol +2 -2
- package/contracts/interfaces/ISAvax.sol +61 -0
- package/contracts/interfaces/ISJoe.sol +60 -0
- package/contracts/interfaces/IStETH.sol +14 -0
- package/contracts/interfaces/IWAvax.sol +34 -0
- package/contracts/libraries/helpers/PYIndex.sol +69 -0
- package/contracts/libraries/helpers/TokenHelper.sol +8 -3
- package/contracts/libraries/kyberswap/KyberSwapHelper.sol +61 -0
- package/contracts/libraries/math/MarketApproxLib.sol +5 -5
- package/contracts/libraries/math/MarketMathCore.sol +10 -10
- package/contracts/offchain-helpers/RouterStatic.sol +21 -39
- package/deployments/43113-benqi.json +2 -2
- package/deployments/43113-core.json +7 -7
- package/deployments/43113-markets/benqi-market-599408.json +7 -0
- package/deployments/43113-markets/benqi-market-93bbf0.json +7 -0
- package/deployments/80001-benqi.json +2 -2
- package/deployments/80001-core.json +6 -6
- package/deployments/80001-markets/benqi-market-007811.json +7 -0
- package/deployments/80001-markets/benqi-market-3fe528.json +7 -0
- package/package.json +1 -1
- package/typechain-types/ActionCore.ts +330 -356
- 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/CelerSenderUpg.ts +16 -16
- package/typechain-types/IERC20Upgradeable.ts +300 -0
- package/typechain-types/IEulerEToken.ts +320 -0
- package/typechain-types/IEulerMarkets.ts +204 -0
- package/typechain-types/IPActionCore.ts +320 -349
- package/typechain-types/IPActionYT.ts +110 -100
- package/typechain-types/IPAllAction.ts +400 -447
- package/typechain-types/IPInterestManagerYT.ts +3 -3
- package/typechain-types/IPRouterStatic.ts +60 -118
- package/typechain-types/IPVeToken.ts +34 -0
- package/typechain-types/IPYieldToken.ts +47 -47
- package/typechain-types/ISAvax.ts +430 -0
- package/typechain-types/ISJoe.ts +340 -0
- package/typechain-types/IStETH.ts +201 -0
- package/typechain-types/IWAvax.ts +380 -0
- package/typechain-types/KyberSwapHelper.ts +87 -0
- package/typechain-types/PendleEulerSCY.ts +965 -0
- package/typechain-types/PendlePrincipalToken.ts +0 -104
- package/typechain-types/PendleQiSAvaxSCY.ts +1098 -0
- package/typechain-types/PendleSAvaxSCY.ts +962 -0
- package/typechain-types/PendleSJoeSCY.ts +1053 -0
- package/typechain-types/PendleVotingControllerUpg.ts +89 -55
- package/typechain-types/PendleWstEthSCY.ts +13 -0
- package/typechain-types/PendleYieldToken.ts +44 -148
- package/typechain-types/RouterStatic.ts +133 -299
- package/typechain-types/VotingEscrowPendleMainchain.ts +118 -16
- package/typechain-types/VotingEscrowPendleSidechain.ts +34 -0
- package/typechain-types/VotingEscrowTokenBase.ts +34 -0
- package/typechain-types/factories/ActionCallback__factory.ts +1 -1
- package/typechain-types/factories/ActionCore__factory.ts +275 -139
- 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/CelerSenderUpg__factory.ts +2 -2
- package/typechain-types/factories/IERC20Upgradeable__factory.ts +209 -0
- package/typechain-types/factories/IEulerEToken__factory.ts +174 -0
- package/typechain-types/factories/IEulerMarkets__factory.ts +99 -0
- package/typechain-types/factories/IPActionCore__factory.ts +268 -132
- package/typechain-types/factories/IPActionYT__factory.ts +71 -37
- package/typechain-types/factories/IPAllAction__factory.ts +339 -169
- package/typechain-types/factories/IPInterestManagerYT__factory.ts +1 -1
- package/typechain-types/factories/IPRouterStatic__factory.ts +23 -23
- package/typechain-types/factories/IPVeToken__factory.ts +24 -0
- package/typechain-types/factories/IPYieldToken__factory.ts +27 -27
- package/typechain-types/factories/ISAvax__factory.ts +208 -0
- package/typechain-types/factories/ISJoe__factory.ts +177 -0
- package/typechain-types/factories/IStETH__factory.ts +101 -0
- package/typechain-types/factories/IWAvax__factory.ts +261 -0
- package/typechain-types/factories/KyberSwapHelper__factory.ts +39 -0
- package/typechain-types/factories/PendleAaveV3SCY__factory.ts +1 -1
- package/typechain-types/factories/PendleERC4626SCY__factory.ts +1 -1
- package/typechain-types/factories/PendleEulerSCY__factory.ts +796 -0
- 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/PendlePrincipalToken__factory.ts +1 -76
- package/typechain-types/factories/PendleQiSAvaxSCY__factory.ts +917 -0
- 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 +796 -0
- package/typechain-types/factories/PendleSJoeSCY__factory.ts +845 -0
- package/typechain-types/factories/PendleStargateSCY__factory.ts +1 -1
- package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +45 -26
- package/typechain-types/factories/PendleWstEthSCY__factory.ts +29 -2
- package/typechain-types/factories/PendleYearnVaultScy__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldToken__factory.ts +19 -94
- package/typechain-types/factories/RouterStatic__factory.ts +38 -38
- package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +65 -3
- package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +25 -1
- package/typechain-types/factories/VotingEscrowTokenBase__factory.ts +24 -0
- package/typechain-types/hardhat.d.ts +107 -17
- package/typechain-types/index.ts +24 -4
- package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +0 -4
- package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.json +0 -329
- 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/SCY/SCYIndex.sol/SCYIndexLib.dbg.json +0 -4
- 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/core/PendleERC20Permit.sol +0 -84
- package/contracts/interfaces/IJoePair.sol +0 -98
- package/contracts/interfaces/IJoeRouter01.sol +0 -162
- package/contracts/interfaces/IJoeRouter02.sol +0 -52
- package/contracts/libraries/SCY/SCYIndex.sol +0 -72
- package/contracts/libraries/traderjoe/JoeLibrary.sol +0 -122
- package/contracts/libraries/traderjoe/PendleJoeSwapHelperUpg.sol +0 -80
- package/deployments/43113-markets/benqi-market-4Ccb97.json +0 -7
- package/deployments/43113-markets/benqi-market-534471.json +0 -7
- package/deployments/80001-markets/benqi-market-109acB.json +0 -7
- package/deployments/80001-markets/benqi-market-4e470E.json +0 -7
|
@@ -4,11 +4,11 @@ pragma solidity 0.8.15;
|
|
|
4
4
|
import "../../interfaces/IPPrincipalToken.sol";
|
|
5
5
|
import "../../interfaces/IPYieldToken.sol";
|
|
6
6
|
|
|
7
|
-
import "../
|
|
7
|
+
import "../PendleERC20.sol";
|
|
8
8
|
import "../../libraries/helpers/MiniHelpers.sol";
|
|
9
9
|
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
|
10
10
|
|
|
11
|
-
contract PendlePrincipalToken is
|
|
11
|
+
contract PendlePrincipalToken is PendleERC20, Initializable, IPPrincipalToken {
|
|
12
12
|
address public immutable SCY;
|
|
13
13
|
address public immutable factory;
|
|
14
14
|
uint256 public immutable expiry;
|
|
@@ -30,7 +30,7 @@ contract PendlePrincipalToken is PendleERC20Permit, Initializable, IPPrincipalTo
|
|
|
30
30
|
string memory _symbol,
|
|
31
31
|
uint8 __decimals,
|
|
32
32
|
uint256 _expiry
|
|
33
|
-
)
|
|
33
|
+
) PendleERC20(_name, _symbol, __decimals) {
|
|
34
34
|
SCY = _SCY;
|
|
35
35
|
expiry = _expiry;
|
|
36
36
|
factory = msg.sender;
|
|
@@ -98,7 +98,7 @@ contract PendleYieldContractFactory is PermissionsV2Upg, Initializable, IPYieldC
|
|
|
98
98
|
// no need salt since PT (and also YT) existence has been checked before hand
|
|
99
99
|
PT = SSTORE2Deployer.create2(
|
|
100
100
|
type(PendlePrincipalToken).creationCode,
|
|
101
|
-
bytes32(
|
|
101
|
+
bytes32(block.chainid),
|
|
102
102
|
abi.encode(
|
|
103
103
|
SCY,
|
|
104
104
|
PT_PREFIX.concat(_SCY.name(), expiry, " "),
|
|
@@ -110,7 +110,7 @@ contract PendleYieldContractFactory is PermissionsV2Upg, Initializable, IPYieldC
|
|
|
110
110
|
|
|
111
111
|
YT = SSTORE2Deployer.create2(
|
|
112
112
|
pendleYtCreationCodePointer,
|
|
113
|
-
bytes32(
|
|
113
|
+
bytes32(block.chainid),
|
|
114
114
|
abi.encode(
|
|
115
115
|
SCY,
|
|
116
116
|
PT,
|
|
@@ -13,7 +13,7 @@ import "../../interfaces/IPYieldContractFactory.sol";
|
|
|
13
13
|
import "../../libraries/SCY/SCYUtils.sol";
|
|
14
14
|
import "../../libraries/helpers/MiniHelpers.sol";
|
|
15
15
|
import "../../libraries/RewardManagerAbstract.sol";
|
|
16
|
-
import "../
|
|
16
|
+
import "../PendleERC20.sol";
|
|
17
17
|
import "./InterestManagerYT.sol";
|
|
18
18
|
|
|
19
19
|
/**
|
|
@@ -21,18 +21,13 @@ Invariances to maintain:
|
|
|
21
21
|
- address(0) & address(this) should never have any rewards & activeBalance accounting done. This is
|
|
22
22
|
guaranteed by address(0) & address(this) check in each updateForTwo function
|
|
23
23
|
*/
|
|
24
|
-
contract PendleYieldToken is
|
|
25
|
-
IPYieldToken,
|
|
26
|
-
PendleERC20Permit,
|
|
27
|
-
RewardManagerAbstract,
|
|
28
|
-
InterestManagerYT
|
|
29
|
-
{
|
|
24
|
+
contract PendleYieldToken is IPYieldToken, PendleERC20, RewardManagerAbstract, InterestManagerYT {
|
|
30
25
|
using Math for uint256;
|
|
31
26
|
using SafeERC20 for IERC20;
|
|
32
27
|
using ArrayLib for uint256[];
|
|
33
28
|
|
|
34
29
|
struct PostExpiryData {
|
|
35
|
-
uint128
|
|
30
|
+
uint128 firstPYIndex;
|
|
36
31
|
uint128 totalScyInterestForTreasury;
|
|
37
32
|
mapping(address => uint256) firstRewardIndex;
|
|
38
33
|
mapping(address => uint256) userRewardOwed;
|
|
@@ -44,7 +39,7 @@ contract PendleYieldToken is
|
|
|
44
39
|
uint256 public immutable expiry;
|
|
45
40
|
|
|
46
41
|
uint128 public scyReserve;
|
|
47
|
-
uint128 internal
|
|
42
|
+
uint128 internal _pyIndexStored;
|
|
48
43
|
|
|
49
44
|
PostExpiryData public postExpiry;
|
|
50
45
|
|
|
@@ -61,7 +56,7 @@ contract PendleYieldToken is
|
|
|
61
56
|
string memory _symbol,
|
|
62
57
|
uint8 __decimals,
|
|
63
58
|
uint256 _expiry
|
|
64
|
-
)
|
|
59
|
+
) PendleERC20(_name, _symbol, __decimals) {
|
|
65
60
|
SCY = _SCY;
|
|
66
61
|
PT = _PT;
|
|
67
62
|
expiry = _expiry;
|
|
@@ -84,6 +79,8 @@ contract PendleYieldToken is
|
|
|
84
79
|
_mint(receiverYT, amountPYOut);
|
|
85
80
|
|
|
86
81
|
IPPrincipalToken(PT).mintByYT(receiverPT, amountPYOut);
|
|
82
|
+
|
|
83
|
+
emit Mint(msg.sender, receiverPT, receiverYT, amountScyToMint, amountPYOut);
|
|
87
84
|
}
|
|
88
85
|
|
|
89
86
|
/// @dev this function converts PY tokens into scy, but interests & rewards are not redeemed at the same time
|
|
@@ -183,14 +180,14 @@ contract PendleYieldToken is
|
|
|
183
180
|
}
|
|
184
181
|
|
|
185
182
|
/// @dev maximize the current rate with the previous rate to guarantee non-decreasing rate
|
|
186
|
-
function
|
|
187
|
-
currentIndex = Math.max(ISuperComposableYield(SCY).exchangeRate(),
|
|
188
|
-
|
|
183
|
+
function pyIndexCurrent() public returns (uint256 currentIndex) {
|
|
184
|
+
currentIndex = Math.max(ISuperComposableYield(SCY).exchangeRate(), _pyIndexStored);
|
|
185
|
+
_pyIndexStored = currentIndex.Uint128();
|
|
189
186
|
emit NewInterestIndex(currentIndex);
|
|
190
187
|
}
|
|
191
188
|
|
|
192
|
-
function
|
|
193
|
-
return
|
|
189
|
+
function pyIndexStored() public view returns (uint256) {
|
|
190
|
+
return _pyIndexStored;
|
|
194
191
|
}
|
|
195
192
|
|
|
196
193
|
function isExpired() public view returns (bool) {
|
|
@@ -201,15 +198,15 @@ contract PendleYieldToken is
|
|
|
201
198
|
external
|
|
202
199
|
view
|
|
203
200
|
returns (
|
|
204
|
-
uint256
|
|
201
|
+
uint256 firstPYIndex,
|
|
205
202
|
uint256 totalScyInterestForTreasury,
|
|
206
203
|
uint256[] memory firstRewardIndexes,
|
|
207
204
|
uint256[] memory userRewardOwed
|
|
208
205
|
)
|
|
209
206
|
{
|
|
210
|
-
require(postExpiry.
|
|
207
|
+
require(postExpiry.firstPYIndex != 0, "PostExpiry data not set");
|
|
211
208
|
|
|
212
|
-
|
|
209
|
+
firstPYIndex = postExpiry.firstPYIndex;
|
|
213
210
|
totalScyInterestForTreasury = postExpiry.totalScyInterestForTreasury;
|
|
214
211
|
|
|
215
212
|
address[] memory tokens = getRewardTokens();
|
|
@@ -230,7 +227,7 @@ contract PendleYieldToken is
|
|
|
230
227
|
IPPrincipalToken(PT).burnByYT(address(this), totalAmountPYToRedeem);
|
|
231
228
|
if (!isExpired()) _burn(address(this), totalAmountPYToRedeem);
|
|
232
229
|
|
|
233
|
-
uint256 index =
|
|
230
|
+
uint256 index = pyIndexCurrent();
|
|
234
231
|
uint256 totalScyInterestPostExpiry;
|
|
235
232
|
amountScyOuts = new uint256[](receivers.length);
|
|
236
233
|
|
|
@@ -242,6 +239,8 @@ contract PendleYieldToken is
|
|
|
242
239
|
);
|
|
243
240
|
_transferOut(SCY, receivers[i], amountScyOuts[i]);
|
|
244
241
|
totalScyInterestPostExpiry += scyInterestPostExpiry;
|
|
242
|
+
|
|
243
|
+
emit Burn(msg.sender, receivers[i], amountPYToRedeems[i], amountScyOuts[i]);
|
|
245
244
|
}
|
|
246
245
|
if (totalScyInterestPostExpiry != 0) {
|
|
247
246
|
postExpiry.totalScyInterestForTreasury += totalScyInterestPostExpiry.Uint128();
|
|
@@ -250,7 +249,7 @@ contract PendleYieldToken is
|
|
|
250
249
|
|
|
251
250
|
function _calcPYToMint(uint256 amountScy) internal returns (uint256 amountPY) {
|
|
252
251
|
// doesn't matter before or after expiry, since mintPY is only allowed before expiry
|
|
253
|
-
return SCYUtils.scyToAsset(
|
|
252
|
+
return SCYUtils.scyToAsset(pyIndexCurrent(), amountScy);
|
|
254
253
|
}
|
|
255
254
|
|
|
256
255
|
function _calcScyRedeemableFromPY(uint256 amountPY, uint256 indexCurrent)
|
|
@@ -260,7 +259,7 @@ contract PendleYieldToken is
|
|
|
260
259
|
{
|
|
261
260
|
scyToUser = SCYUtils.assetToScy(indexCurrent, amountPY);
|
|
262
261
|
if (isExpired()) {
|
|
263
|
-
uint256 totalScyRedeemable = SCYUtils.assetToScy(postExpiry.
|
|
262
|
+
uint256 totalScyRedeemable = SCYUtils.assetToScy(postExpiry.firstPYIndex, amountPY);
|
|
264
263
|
scyInterestPostExpiry = totalScyRedeemable - scyToUser;
|
|
265
264
|
}
|
|
266
265
|
}
|
|
@@ -281,11 +280,11 @@ contract PendleYieldToken is
|
|
|
281
280
|
|
|
282
281
|
function _setPostExpiryData() internal {
|
|
283
282
|
PostExpiryData storage local = postExpiry;
|
|
284
|
-
if (local.
|
|
283
|
+
if (local.firstPYIndex != 0) return; // already set
|
|
285
284
|
|
|
286
285
|
_redeemExternalReward(); // do a final redeem. All the future reward income will belong to the treasury
|
|
287
286
|
|
|
288
|
-
local.
|
|
287
|
+
local.firstPYIndex = pyIndexCurrent().Uint128();
|
|
289
288
|
address[] memory rewardTokens = ISuperComposableYield(SCY).getRewardTokens();
|
|
290
289
|
uint256[] memory rewardIndexes = ISuperComposableYield(SCY).rewardIndexesCurrent();
|
|
291
290
|
for (uint256 i = 0; i < rewardTokens.length; i++) {
|
|
@@ -299,8 +298,8 @@ contract PendleYieldToken is
|
|
|
299
298
|
//////////////////////////////////////////////////////////////*/
|
|
300
299
|
|
|
301
300
|
function _getInterestIndex() internal virtual override returns (uint256 index) {
|
|
302
|
-
if (isExpired()) index = postExpiry.
|
|
303
|
-
else index =
|
|
301
|
+
if (isExpired()) index = postExpiry.firstPYIndex;
|
|
302
|
+
else index = pyIndexCurrent();
|
|
304
303
|
}
|
|
305
304
|
|
|
306
305
|
function _YTbalance(address user) internal view override returns (uint256) {
|
|
@@ -16,8 +16,8 @@ contract ActionCallback is IPMarketSwapCallback, CallbackHelper {
|
|
|
16
16
|
using SafeERC20 for ISuperComposableYield;
|
|
17
17
|
using SafeERC20 for IPYieldToken;
|
|
18
18
|
using SafeERC20 for IERC20;
|
|
19
|
-
using
|
|
20
|
-
using
|
|
19
|
+
using PYIndexLib for PYIndex;
|
|
20
|
+
using PYIndexLib for IPYieldToken;
|
|
21
21
|
|
|
22
22
|
address public immutable marketFactory;
|
|
23
23
|
|
|
@@ -90,9 +90,9 @@ contract ActionCallback is IPMarketSwapCallback, CallbackHelper {
|
|
|
90
90
|
/// ------------------------------------------------------------
|
|
91
91
|
/// calc totalScyNeed
|
|
92
92
|
/// ------------------------------------------------------------
|
|
93
|
-
|
|
93
|
+
PYIndex pyIndex = YT.newIndex();
|
|
94
94
|
uint256 ptOwed = ptToAccount.abs();
|
|
95
|
-
uint256 totalScyNeed =
|
|
95
|
+
uint256 totalScyNeed = pyIndex.assetToScyUp(ptOwed);
|
|
96
96
|
|
|
97
97
|
/// ------------------------------------------------------------
|
|
98
98
|
/// calc netScyToPull
|
|
@@ -120,15 +120,15 @@ contract ActionCallback is IPMarketSwapCallback, CallbackHelper {
|
|
|
120
120
|
bytes calldata data
|
|
121
121
|
) internal {
|
|
122
122
|
(address receiver, uint256 minScyOut) = _decodeSwapYtForScy(data);
|
|
123
|
-
(
|
|
124
|
-
|
|
123
|
+
(, , IPYieldToken YT) = IPMarket(market).readTokens();
|
|
124
|
+
PYIndex pyIndex = YT.newIndex();
|
|
125
125
|
|
|
126
126
|
uint256 scyOwed = scyToAccount.neg().Uint();
|
|
127
127
|
|
|
128
128
|
address[] memory receivers = new address[](2);
|
|
129
129
|
uint256[] memory amountPYToRedeems = new uint256[](2);
|
|
130
130
|
|
|
131
|
-
(receivers[0], amountPYToRedeems[0]) = (market,
|
|
131
|
+
(receivers[0], amountPYToRedeems[0]) = (market, pyIndex.scyToAssetUp(scyOwed));
|
|
132
132
|
(receivers[1], amountPYToRedeems[1]) = (
|
|
133
133
|
receiver,
|
|
134
134
|
ptToAccount.Uint() - amountPYToRedeems[0]
|
|
@@ -13,8 +13,8 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
|
|
|
13
13
|
using Math for int256;
|
|
14
14
|
|
|
15
15
|
/// @dev since this contract will be proxied, it must not contains non-immutable variabless
|
|
16
|
-
constructor(address
|
|
17
|
-
ActionSCYAndPYBase(
|
|
16
|
+
constructor(address _kyberSwapRouter, address _marketFactory)
|
|
17
|
+
ActionSCYAndPYBase(_kyberSwapRouter) //solhint-disable-next-line no-empty-blocks
|
|
18
18
|
{}
|
|
19
19
|
|
|
20
20
|
/// @dev refer to the internal function
|
|
@@ -48,7 +48,7 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
|
|
|
48
48
|
address market,
|
|
49
49
|
uint256 netPtIn,
|
|
50
50
|
uint256 minLpOut,
|
|
51
|
-
ApproxParams
|
|
51
|
+
ApproxParams calldata guessPtSwapToScy
|
|
52
52
|
) external returns (uint256 netLpOut) {
|
|
53
53
|
require(false, "NOT IMPLEMENTED");
|
|
54
54
|
}
|
|
@@ -58,18 +58,17 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
|
|
|
58
58
|
address market,
|
|
59
59
|
uint256 netScyIn,
|
|
60
60
|
uint256 minLpOut,
|
|
61
|
-
ApproxParams
|
|
61
|
+
ApproxParams calldata guessPtReceivedFromScy
|
|
62
62
|
) external returns (uint256 netLpOut) {
|
|
63
63
|
require(false, "NOT IMPLEMENTED");
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
function
|
|
66
|
+
function addLiquiditySingleToken(
|
|
67
67
|
address receiver,
|
|
68
68
|
address market,
|
|
69
|
-
uint256 netRawTokenIn,
|
|
70
69
|
uint256 minLpOut,
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
ApproxParams calldata guessPtReceivedFromScy,
|
|
71
|
+
TokenInput calldata input
|
|
73
72
|
) external returns (uint256 netLpOut) {
|
|
74
73
|
require(false, "NOT IMPLEMENTED");
|
|
75
74
|
}
|
|
@@ -98,7 +97,7 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
|
|
|
98
97
|
address market,
|
|
99
98
|
uint256 lpToRemove,
|
|
100
99
|
uint256 minPtOut,
|
|
101
|
-
ApproxParams
|
|
100
|
+
ApproxParams calldata guessPtOut
|
|
102
101
|
) external returns (uint256 netPtOut) {
|
|
103
102
|
require(false, "NOT IMPLEMENTED");
|
|
104
103
|
}
|
|
@@ -112,13 +111,12 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
|
|
|
112
111
|
require(false, "NOT IMPLEMENTED");
|
|
113
112
|
}
|
|
114
113
|
|
|
115
|
-
function
|
|
114
|
+
function removeLiquiditySingleToken(
|
|
116
115
|
address receiver,
|
|
117
116
|
address market,
|
|
118
117
|
uint256 lpToRemove,
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
) external returns (uint256 netRawTokenOut) {
|
|
118
|
+
TokenOutput calldata output
|
|
119
|
+
) external returns (uint256 netTokenOut) {
|
|
122
120
|
require(false, "NOT IMPLEMENTED");
|
|
123
121
|
}
|
|
124
122
|
|
|
@@ -139,7 +137,7 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
|
|
|
139
137
|
address market,
|
|
140
138
|
uint256 exactScyOut,
|
|
141
139
|
uint256 maxPtIn,
|
|
142
|
-
ApproxParams
|
|
140
|
+
ApproxParams calldata guessPtIn
|
|
143
141
|
) external returns (uint256 netPtIn) {
|
|
144
142
|
netPtIn = _swapPtForExactScy(receiver, market, exactScyOut, maxPtIn, guessPtIn, true);
|
|
145
143
|
emit SwapPtAndScy(msg.sender, market, receiver, netPtIn.neg(), exactScyOut.Int());
|
|
@@ -162,71 +160,62 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
|
|
|
162
160
|
address market,
|
|
163
161
|
uint256 exactScyIn,
|
|
164
162
|
uint256 minPtOut,
|
|
165
|
-
ApproxParams
|
|
163
|
+
ApproxParams calldata guessPtOut
|
|
166
164
|
) external returns (uint256 netPtOut) {
|
|
167
165
|
netPtOut = _swapExactScyForPt(receiver, market, exactScyIn, minPtOut, guessPtOut, true);
|
|
168
166
|
emit SwapPtAndScy(msg.sender, market, receiver, netPtOut.Int(), exactScyIn.neg());
|
|
169
167
|
}
|
|
170
168
|
|
|
171
169
|
/// @dev refer to the internal function
|
|
172
|
-
function
|
|
170
|
+
function mintScyFromToken(
|
|
173
171
|
address receiver,
|
|
174
172
|
address SCY,
|
|
175
|
-
uint256 netRawTokenIn,
|
|
176
173
|
uint256 minScyOut,
|
|
177
|
-
|
|
174
|
+
TokenInput calldata input
|
|
178
175
|
) external returns (uint256 netScyOut) {
|
|
179
|
-
|
|
176
|
+
netScyOut = _mintScyFromToken(receiver, SCY, minScyOut, input);
|
|
177
|
+
|
|
178
|
+
emit MintScyFromToken(
|
|
179
|
+
msg.sender,
|
|
180
|
+
receiver,
|
|
181
|
+
SCY,
|
|
182
|
+
input.tokenIn,
|
|
183
|
+
input.netTokenIn,
|
|
184
|
+
netScyOut
|
|
185
|
+
);
|
|
180
186
|
}
|
|
181
187
|
|
|
182
188
|
/// @dev refer to the internal function
|
|
183
|
-
function
|
|
189
|
+
function redeemScyToToken(
|
|
184
190
|
address receiver,
|
|
185
191
|
address SCY,
|
|
186
192
|
uint256 netScyIn,
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
emit RedeemScyToRawToken(
|
|
192
|
-
msg.sender,
|
|
193
|
-
receiver,
|
|
194
|
-
SCY,
|
|
195
|
-
netScyIn,
|
|
196
|
-
path[path.length - 1],
|
|
197
|
-
netRawTokenOut
|
|
198
|
-
);
|
|
193
|
+
TokenOutput calldata output
|
|
194
|
+
) external returns (uint256 netTokenOut) {
|
|
195
|
+
netTokenOut = _redeemScyToToken(receiver, SCY, netScyIn, output, true);
|
|
196
|
+
emit RedeemScyToToken(msg.sender, receiver, SCY, netScyIn, output.tokenOut, netTokenOut);
|
|
199
197
|
}
|
|
200
198
|
|
|
201
199
|
/// @dev refer to the internal function
|
|
202
|
-
function
|
|
200
|
+
function mintPyFromToken(
|
|
203
201
|
address receiver,
|
|
204
202
|
address YT,
|
|
205
|
-
uint256 netRawTokenIn,
|
|
206
203
|
uint256 minPyOut,
|
|
207
|
-
|
|
204
|
+
TokenInput calldata input
|
|
208
205
|
) external returns (uint256 netPyOut) {
|
|
209
|
-
netPyOut =
|
|
210
|
-
emit
|
|
206
|
+
netPyOut = _mintPyFromToken(receiver, YT, minPyOut, input);
|
|
207
|
+
emit MintPyFromToken(msg.sender, receiver, YT, input.tokenIn, input.netTokenIn, netPyOut);
|
|
211
208
|
}
|
|
212
209
|
|
|
213
210
|
/// @dev refer to the internal function
|
|
214
|
-
function
|
|
211
|
+
function redeemPyToToken(
|
|
215
212
|
address receiver,
|
|
216
213
|
address YT,
|
|
217
214
|
uint256 netPyIn,
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
emit RedeemPyToRawToken(
|
|
223
|
-
msg.sender,
|
|
224
|
-
receiver,
|
|
225
|
-
YT,
|
|
226
|
-
netPyIn,
|
|
227
|
-
path[path.length - 1],
|
|
228
|
-
netRawTokenOut
|
|
229
|
-
);
|
|
215
|
+
TokenOutput calldata output
|
|
216
|
+
) external returns (uint256 netTokenOut) {
|
|
217
|
+
netTokenOut = _redeemPyToToken(receiver, YT, netPyIn, output, true);
|
|
218
|
+
emit RedeemPyToToken(msg.sender, receiver, YT, netPyIn, output.tokenOut, netTokenOut);
|
|
230
219
|
}
|
|
231
220
|
|
|
232
221
|
function mintPyFromScy(
|
|
@@ -250,57 +239,41 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
|
|
|
250
239
|
}
|
|
251
240
|
|
|
252
241
|
/// @dev refer to the internal function
|
|
253
|
-
function
|
|
242
|
+
function swapExactTokenForPt(
|
|
254
243
|
address receiver,
|
|
255
244
|
address market,
|
|
256
|
-
uint256 exactRawTokenIn,
|
|
257
245
|
uint256 minPtOut,
|
|
258
|
-
|
|
259
|
-
|
|
246
|
+
ApproxParams calldata guessPtOut,
|
|
247
|
+
TokenInput calldata input
|
|
260
248
|
) external returns (uint256 netPtOut) {
|
|
261
|
-
netPtOut =
|
|
262
|
-
receiver,
|
|
263
|
-
market,
|
|
264
|
-
exactRawTokenIn,
|
|
265
|
-
minPtOut,
|
|
266
|
-
path,
|
|
267
|
-
guessPtOut,
|
|
268
|
-
true
|
|
269
|
-
);
|
|
249
|
+
netPtOut = _swapExactTokenForPt(receiver, market, minPtOut, guessPtOut, input);
|
|
270
250
|
|
|
271
|
-
emit
|
|
251
|
+
emit SwapPtAndToken(
|
|
272
252
|
msg.sender,
|
|
273
253
|
market,
|
|
274
|
-
|
|
254
|
+
input.tokenIn,
|
|
275
255
|
receiver,
|
|
276
256
|
netPtOut.Int(),
|
|
277
|
-
|
|
257
|
+
input.netTokenIn.neg()
|
|
278
258
|
);
|
|
279
259
|
}
|
|
280
260
|
|
|
281
261
|
/// @dev refer to the internal function
|
|
282
|
-
function
|
|
262
|
+
function swapExactPtForToken(
|
|
283
263
|
address receiver,
|
|
284
264
|
address market,
|
|
285
265
|
uint256 exactPtIn,
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
market,
|
|
292
|
-
exactPtIn,
|
|
293
|
-
minRawTokenOut,
|
|
294
|
-
path,
|
|
295
|
-
true
|
|
296
|
-
);
|
|
297
|
-
emit SwapPtAndRawToken(
|
|
266
|
+
TokenOutput calldata output
|
|
267
|
+
) external returns (uint256 netTokenOut) {
|
|
268
|
+
netTokenOut = _swapExactPtForToken(receiver, market, exactPtIn, output, true);
|
|
269
|
+
|
|
270
|
+
emit SwapPtAndToken(
|
|
298
271
|
msg.sender,
|
|
299
272
|
market,
|
|
300
|
-
|
|
273
|
+
output.tokenOut,
|
|
301
274
|
receiver,
|
|
302
275
|
exactPtIn.neg(),
|
|
303
|
-
|
|
276
|
+
netTokenOut.Int()
|
|
304
277
|
);
|
|
305
278
|
}
|
|
306
279
|
|
|
@@ -12,12 +12,9 @@ contract ActionYT is IPActionYT, ActionSCYAndYTBase {
|
|
|
12
12
|
using Math for int256;
|
|
13
13
|
|
|
14
14
|
/// @dev since this contract will be proxied, it must not contains non-immutable variables
|
|
15
|
-
constructor(address
|
|
16
|
-
ActionSCYAndPYBase(
|
|
17
|
-
|
|
18
|
-
{
|
|
19
|
-
|
|
20
|
-
}
|
|
15
|
+
constructor(address _kyberSwapRouter)
|
|
16
|
+
ActionSCYAndPYBase(_kyberSwapRouter) //solhint-disable-next-line no-empty-blocks
|
|
17
|
+
{}
|
|
21
18
|
|
|
22
19
|
/// @dev refer to the internal function
|
|
23
20
|
function swapExactYtForScy(
|
|
@@ -66,48 +63,31 @@ contract ActionYT is IPActionYT, ActionSCYAndYTBase {
|
|
|
66
63
|
}
|
|
67
64
|
|
|
68
65
|
/// @dev refer to the internal function
|
|
69
|
-
function
|
|
66
|
+
function swapExactTokenForYt(
|
|
70
67
|
address receiver,
|
|
71
68
|
address market,
|
|
72
|
-
uint256 exactRawTokenIn,
|
|
73
69
|
uint256 minYtOut,
|
|
74
|
-
|
|
75
|
-
|
|
70
|
+
ApproxParams memory guessYtOut,
|
|
71
|
+
TokenInput calldata input
|
|
76
72
|
) external returns (uint256 netYtOut) {
|
|
77
|
-
netYtOut =
|
|
73
|
+
netYtOut = _swapExactTokenForYt(receiver, market, minYtOut, guessYtOut, input);
|
|
74
|
+
emit SwapYTAndToken(
|
|
78
75
|
receiver,
|
|
79
76
|
market,
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
guessYtOut,
|
|
84
|
-
true
|
|
77
|
+
input.tokenIn,
|
|
78
|
+
netYtOut.Int(),
|
|
79
|
+
input.netTokenIn.neg()
|
|
85
80
|
);
|
|
86
|
-
emit SwapYTAndRawToken(receiver, market, path[0], netYtOut.Int(), exactRawTokenIn.neg());
|
|
87
81
|
}
|
|
88
82
|
|
|
89
83
|
/// @dev refer to the internal function
|
|
90
|
-
function
|
|
84
|
+
function swapExactYtForToken(
|
|
91
85
|
address receiver,
|
|
92
86
|
address market,
|
|
93
|
-
uint256
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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
|
-
);
|
|
87
|
+
uint256 netYtIn,
|
|
88
|
+
TokenOutput calldata output
|
|
89
|
+
) external returns (uint256 netTokenOut) {
|
|
90
|
+
netTokenOut = _swapExactYtForToken(receiver, market, netYtIn, output, true);
|
|
91
|
+
emit SwapYTAndToken(receiver, market, output.tokenOut, netYtIn.neg(), netTokenOut.Int());
|
|
112
92
|
}
|
|
113
93
|
}
|