@pendle/core-v2 5.1.1-beta-2 → 5.1.2-beta-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/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +67 -23
- package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.json +19 -6
- package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithoutPermitUpg.sol/SYBaseWithoutPermitUpg.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithoutPermitUpg.sol/{SYBaseUpg.json → SYBaseWithoutPermitUpg.json} +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/AaveV3/PendleStkGHOSY.sol/PendleStkGHOSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/AaveV3/PendleStkGHOSY.sol/PendleStkGHOSY.json +1160 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleSUSDEMantleSY.sol/PendleSUSDEMantleSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleSUSDEMantleSY.sol/PendleSUSDEMantleSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleUSDEL2SY.sol/PendleUSDEL2SY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleUSDEL2SY.sol/PendleUSDEL2SY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleEBTCSY.sol/PendleEBTCSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleEBTCSY.sol/PendleEBTCSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleEEigenSYUpg.sol/PendleEEigenSYUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleEEigenSYUpg.sol/PendleEEigenSYUpg.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleWEEthkSY.sol/PendleWEEthkSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleWEEthkSY.sol/PendleWEEthkSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleWEEthsSY.sol/PendleWEEthsSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleWEEthsSY.sol/PendleWEEthsSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Mantle/PendleCMETHSY.sol/PendleCMETHSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Mantle/PendleCMETHSY.sol/PendleCMETHSY.json +1049 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC20SYUpg.sol/PendleERC20SYUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC20SYUpg.sol/PendleERC20SYUpg.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Silo/PendleSiloWithIncentiveNonBorrowableSY.sol/PendleSiloWithIncentiveNonBorrowableSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Silo/PendleSiloWithIncentiveNonBorrowableSY.sol/PendleSiloWithIncentiveNonBorrowableSY.json +1222 -0
- package/build/artifacts/contracts/interfaces/AaveV3/IAaveStkGHO.sol/IAaveStkGHO.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/AaveV3/IAaveStkGHO.sol/IAaveStkGHO.json +116 -0
- package/build/artifacts/contracts/interfaces/Angle/IAngleDistributor.sol/IAngleDistributor.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/Angle/IAngleDistributor.sol/IAngleDistributor.json +39 -0
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.json +196 -0
- package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.json +66 -0
- package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.json +196 -78
- package/build/artifacts/contracts/interfaces/IPActionSimple.sol/IPActionSimple.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSimple.sol/IPActionSimple.json +196 -0
- package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.json +196 -0
- package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.json +196 -0
- package/build/artifacts/contracts/interfaces/IPActionSwapLimitV3.sol/IPActionSwapLimitV3.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPActionSwapLimitV3.sol/IPActionSwapLimitV3.json +2638 -0
- package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.json +196 -0
- package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.json +196 -0
- package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.json +1220 -48
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionAddRemoveLiqV3Events.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionMiscV3Events.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionStorageEvents.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapLimitV3Events.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapLimitV3Events.json +207 -0
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapPTV3Events.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapYTV3Events.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPAllEventsV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPAllEventsV3.json +196 -0
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +262 -0
- package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol/SDKErrorsDirectory.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol/SDKErrorsDirectory.json +27 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +68 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +198 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PendleBoringOneracle.sol/PendleBoringOneracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PendleBoringSolvBTCOneracle.sol/PendleBoringSolvBTCOneracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PendlePYLpOracle.sol/PendlePYLpOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PendlePYOracleLib.sol/PendlePYOracleLib.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PendleRedStoneRateOracleAdapter.sol/PendleRedStoneRateOracleAdapter.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PendleSparkLinearDiscountOracle.sol/PTExpiry.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PendleSparkLinearDiscountOracle.sol/PendleSparkLinearDiscountOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/samples/BoringLpGlpOracle.sol/BoringLpGlpOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/samples/BoringLpSeller.sol/BoringLpSeller.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/samples/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.json +198 -2
- package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.json +198 -80
- package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.json +198 -2
- package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.json +198 -2
- package/build/artifacts/contracts/router/ActionSwapLimitV3.sol/ActionSwapLimitV3.dbg.json +4 -0
- package/build/artifacts/contracts/router/ActionSwapLimitV3.sol/ActionSwapLimitV3.json +2638 -0
- package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.json +198 -2
- package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.json +198 -2
- package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.dbg.json +1 -1
- package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.json +2 -2
- package/build/artifacts/contracts/router/Reflector.sol/Reflector.dbg.json +1 -1
- package/build/artifacts/contracts/router/Reflector.sol/Reflector.json +2 -2
- package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.json +2 -2
- package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.json +2 -2
- package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
- package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
- package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.json +2 -2
- package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.json +2 -2
- package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IKyberScalingHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.json +2 -2
- package/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +27 -6
- package/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +3 -2
- package/contracts/core/StandardizedYield/SYBaseWithoutPermitUpg.sol +1 -1
- package/contracts/core/StandardizedYield/implementations/AaveV3/PendleStkGHOSY.sol +130 -0
- package/contracts/core/StandardizedYield/implementations/EtherFi/PendleEEigenSYUpg.sol +6 -2
- package/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol +1 -2
- package/contracts/core/StandardizedYield/implementations/Mantle/PendleCMETHSY.sol +82 -0
- package/contracts/core/StandardizedYield/implementations/PendleERC20SYUpg.sol +6 -1
- package/contracts/core/StandardizedYield/implementations/Silo/PendleSiloWithIncentiveNonBorrowableSY.sol +154 -0
- package/contracts/interfaces/AaveV3/IAaveStkGHO.sol +17 -0
- package/contracts/interfaces/Angle/IAngleDistributor.sol +12 -0
- package/contracts/interfaces/IPActionAddRemoveLiqV3.sol +6 -6
- package/contracts/interfaces/IPActionMarketCoreStatic.sol +4 -0
- package/contracts/interfaces/IPActionMiscV3.sol +2 -8
- package/contracts/interfaces/IPActionSwapLimitV3.sol +42 -0
- package/contracts/interfaces/IPActionSwapPTV3.sol +4 -4
- package/contracts/interfaces/IPActionSwapYTV3.sol +4 -4
- package/contracts/interfaces/IPAllActionTypeV3.sol +4 -0
- package/contracts/interfaces/IPAllActionV3.sol +3 -1
- package/contracts/interfaces/IPAllEventsV3.sol +44 -1
- package/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol +5 -0
- package/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol +1 -1
- package/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol +1 -1
- package/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol +10 -4
- package/contracts/router/ActionAddRemoveLiqV3.sol +9 -9
- package/contracts/router/ActionMiscV3.sol +3 -17
- package/contracts/router/ActionSwapLimitV3.sol +126 -0
- package/contracts/router/ActionSwapPTV3.sol +4 -4
- package/contracts/router/ActionSwapYTV3.sol +4 -4
- package/contracts/router/base/ActionBase.sol +35 -12
- package/contracts/router/base/ActionDelegateBase.sol +1 -1
- package/contracts/router/swap-aggregator/IPSwapAggregator.sol +1 -1
- package/contracts/router/swap-aggregator/PendleSwap.sol +0 -43
- package/deployments/1-core.json +1 -1
- package/deployments/1-markets/RSETH-MAINNET-JUN2025.json +14 -0
- package/deployments/1-markets/STKGHO-MAINNET-APR2025.json +14 -0
- package/deployments/1-markets/WEETH-MAINNET-JUN2025.json +14 -0
- package/deployments/10-core.json +1 -1
- package/deployments/42161-core.json +1 -1
- package/deployments/42161-markets/DOLOMITE-USDC-ARBITRUM-JUN2025.json +14 -0
- package/deployments/42161-markets/DOLOMITE-WBTC-ARBITRUM-JUN2025.json +14 -0
- package/deployments/42161-markets/RSETH-ARBITRUM-JUN2025.json +14 -0
- package/deployments/42161-markets/SPSILO-ARBITRUM-MAR2025.json +14 -0
- package/deployments/42161-markets/WEETH-ARBITRUM-JUN2025.json +14 -0
- package/deployments/5000-core.json +1 -1
- package/deployments/5000-markets/CMETH-MANTLE-FEB2025.json +14 -0
- package/deployments/56-core.json +2 -2
- package/deployments/56-markets/VENUS-BNB-BSC-JUN2025.json +14 -0
- package/package.json +1 -1
- package/typechain-types/ActionAddRemoveLiqV3.ts +148 -0
- package/typechain-types/ActionMarketCoreStatic.ts +68 -0
- package/typechain-types/ActionMiscV3.ts +148 -44
- package/typechain-types/ActionSimple.ts +148 -0
- package/typechain-types/ActionStorageStatic.ts +148 -0
- package/typechain-types/ActionStorageV4.ts +148 -0
- package/typechain-types/ActionSwapLimitV3.ts +1667 -0
- package/typechain-types/ActionSwapPTV3.ts +148 -0
- package/typechain-types/ActionSwapYTV3.ts +148 -0
- package/typechain-types/IAaveStkGHO.ts +269 -0
- package/typechain-types/IAngleDistributor.ts +117 -0
- package/typechain-types/IPActionAddRemoveLiqV3.ts +148 -0
- package/typechain-types/IPActionMarketCoreStatic.ts +68 -0
- package/typechain-types/IPActionMiscV3.ts +148 -44
- package/typechain-types/IPActionSimple.ts +148 -0
- package/typechain-types/IPActionStorageStatic.ts +148 -0
- package/typechain-types/IPActionStorageV4.ts +148 -0
- package/typechain-types/IPActionSwapLimitV3.ts +1667 -0
- package/typechain-types/IPActionSwapLimitV3Events.ts +207 -0
- package/typechain-types/IPActionSwapPTV3.ts +148 -0
- package/typechain-types/IPActionSwapYTV3.ts +148 -0
- package/typechain-types/IPAllActionV3.ts +390 -20
- package/typechain-types/IPAllEventsV3.ts +148 -0
- package/typechain-types/IPChainlinkOracle.ts +221 -0
- package/typechain-types/IPChainlinkOracleFactory.ts +123 -0
- package/typechain-types/IPChainlinkOracleWithQuote.ts +404 -0
- package/typechain-types/IPRouterStatic.ts +182 -0
- package/typechain-types/PendleCMETHSY.ts +1349 -0
- package/typechain-types/PendleChainlinkOracle.ts +299 -0
- package/typechain-types/PendleChainlinkOracleBase.ts +299 -0
- package/typechain-types/PendleChainlinkOracleFactory.ts +389 -0
- package/typechain-types/PendleChainlinkOracleWithQuote.ts +335 -0
- package/typechain-types/PendleSiloWithIncentiveNonBorrowableSY.ts +1543 -0
- package/typechain-types/PendleStkGHOSY.ts +1522 -0
- package/typechain-types/PendleVotingControllerUpg.ts +135 -43
- package/typechain-types/SYBaseWithoutPermitUpg.ts +1101 -0
- package/typechain-types/VotingControllerStorageUpg.ts +34 -15
- package/typechain-types/factories/ActionAddRemoveLiqV3__factory.ts +197 -1
- package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +67 -1
- package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionMiscV3__factory.ts +197 -79
- package/typechain-types/factories/ActionSimple__factory.ts +197 -1
- package/typechain-types/factories/ActionStorageStatic__factory.ts +197 -1
- package/typechain-types/factories/ActionStorageV4__factory.ts +197 -1
- package/typechain-types/factories/ActionSwapLimitV3__factory.ts +2691 -0
- package/typechain-types/factories/ActionSwapPTV3__factory.ts +197 -1
- package/typechain-types/factories/ActionSwapYTV3__factory.ts +197 -1
- package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
- package/typechain-types/factories/IAaveStkGHO__factory.ts +128 -0
- package/typechain-types/factories/IAngleDistributor__factory.ts +54 -0
- package/typechain-types/factories/IPActionAddRemoveLiqV3__factory.ts +196 -0
- package/typechain-types/factories/IPActionMarketCoreStatic__factory.ts +66 -0
- package/typechain-types/factories/IPActionMiscV3__factory.ts +196 -78
- package/typechain-types/factories/IPActionSimple__factory.ts +196 -0
- package/typechain-types/factories/IPActionStorageStatic__factory.ts +196 -0
- package/typechain-types/factories/IPActionStorageV4__factory.ts +196 -0
- package/typechain-types/factories/IPActionSwapLimitV3Events__factory.ts +226 -0
- package/typechain-types/factories/IPActionSwapLimitV3__factory.ts +2653 -0
- package/typechain-types/factories/IPActionSwapPTV3__factory.ts +196 -0
- package/typechain-types/factories/IPActionSwapYTV3__factory.ts +196 -0
- package/typechain-types/factories/IPAllActionV3__factory.ts +1220 -48
- package/typechain-types/factories/IPAllEventsV3__factory.ts +196 -0
- package/typechain-types/factories/IPChainlinkOracleFactory__factory.ts +110 -0
- package/typechain-types/factories/IPChainlinkOracleWithQuote__factory.ts +281 -0
- package/typechain-types/factories/IPChainlinkOracle__factory.ts +137 -0
- package/typechain-types/factories/IPRouterStatic__factory.ts +262 -0
- package/typechain-types/factories/PendleCMETHSY__factory.ts +1099 -0
- package/typechain-types/factories/PendleChainlinkOracleBase__factory.ts +272 -0
- package/typechain-types/factories/PendleChainlinkOracleFactory__factory.ts +362 -0
- package/typechain-types/factories/PendleChainlinkOracleWithQuote__factory.ts +394 -0
- package/typechain-types/factories/PendleChainlinkOracle__factory.ts +354 -0
- package/typechain-types/factories/PendleEBTCSY__factory.ts +1 -1
- package/typechain-types/factories/PendleEEigenSYUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleERC20SYUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
- package/typechain-types/factories/PendlePoolDeployHelper__factory.ts +1 -1
- package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
- package/typechain-types/factories/PendleRouterV4__factory.ts +1 -1
- package/typechain-types/factories/PendleSUSDEMantleSY__factory.ts +1 -1
- package/typechain-types/factories/PendleSiloWithIncentiveNonBorrowableSY__factory.ts +1317 -0
- package/typechain-types/factories/PendleStkGHOSY__factory.ts +1213 -0
- package/typechain-types/factories/PendleSwap__factory.ts +1 -1
- package/typechain-types/factories/PendleUSDEL2SY__factory.ts +1 -1
- package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +66 -22
- package/typechain-types/factories/PendleWEEthkSY__factory.ts +1 -1
- package/typechain-types/factories/PendleWEEthsSY__factory.ts +1 -1
- package/typechain-types/factories/Reflector__factory.ts +1 -1
- package/typechain-types/factories/SDKErrorsDirectory__factory.ts +26 -1
- package/typechain-types/factories/SYBaseWithoutPermitUpg__factory.ts +871 -0
- package/typechain-types/factories/VotingControllerStorageUpg__factory.ts +19 -6
- package/typechain-types/hardhat.d.ts +76 -13
- package/typechain-types/index.ts +18 -2
- package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithoutPermitUpg.sol/SYBaseUpg.dbg.json +0 -4
- package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.dbg.json +0 -4
- package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.json +0 -10
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IOdosRouterV2.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IOdosRouterV2.json +0 -82
- package/contracts/offchain-helpers/MarketExchangeRateLib.sol +0 -32
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity ^0.8.17;
|
|
3
|
+
|
|
4
|
+
import "../../SYBase.sol";
|
|
5
|
+
import "../../../../interfaces/IPExchangeRateOracle.sol";
|
|
6
|
+
|
|
7
|
+
contract PendleCMETHSY is SYBase {
|
|
8
|
+
using PMath for int256;
|
|
9
|
+
|
|
10
|
+
address public exchangeRateOracle = 0x1E2Ad9764cfAc60876486A7c714bc71f5b55f5C2;
|
|
11
|
+
address public constant CMETH = 0xE6829d9a7eE3040e1276Fa75293Bde931859e8fA;
|
|
12
|
+
address public constant WETH = 0xdEAddEaDdeadDEadDEADDEAddEADDEAddead1111;
|
|
13
|
+
|
|
14
|
+
constructor() SYBase("SY cmETH", "SY-cmETH", CMETH) {}
|
|
15
|
+
|
|
16
|
+
function setExchangeRateOracle(address newOracle) external onlyOwner {
|
|
17
|
+
exchangeRateOracle = newOracle;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/*///////////////////////////////////////////////////////////////
|
|
21
|
+
DEPOSIT/REDEEM USING BASE TOKENS
|
|
22
|
+
//////////////////////////////////////////////////////////////*/
|
|
23
|
+
|
|
24
|
+
function _deposit(address, uint256 amountDeposited) internal pure override returns (uint256 /*amountSharesOut*/) {
|
|
25
|
+
return amountDeposited;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function _redeem(
|
|
29
|
+
address receiver,
|
|
30
|
+
address tokenOut,
|
|
31
|
+
uint256 amountSharesToRedeem
|
|
32
|
+
) internal override returns (uint256 /*amountTokenOut*/) {
|
|
33
|
+
_transferOut(tokenOut, receiver, amountSharesToRedeem);
|
|
34
|
+
return amountSharesToRedeem;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/*///////////////////////////////////////////////////////////////
|
|
38
|
+
EXCHANGE-RATE
|
|
39
|
+
//////////////////////////////////////////////////////////////*/
|
|
40
|
+
|
|
41
|
+
function exchangeRate() public view override returns (uint256) {
|
|
42
|
+
return IPExchangeRateOracle(exchangeRateOracle).getExchangeRate();
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/*///////////////////////////////////////////////////////////////
|
|
46
|
+
MISC FUNCTIONS FOR METADATA
|
|
47
|
+
//////////////////////////////////////////////////////////////*/
|
|
48
|
+
|
|
49
|
+
function _previewDeposit(
|
|
50
|
+
address,
|
|
51
|
+
uint256 amountTokenToDeposit
|
|
52
|
+
) internal pure override returns (uint256 /*amountSharesOut*/) {
|
|
53
|
+
return amountTokenToDeposit;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function _previewRedeem(
|
|
57
|
+
address,
|
|
58
|
+
uint256 amountSharesToRedeem
|
|
59
|
+
) internal pure override returns (uint256 /*amountTokenOut*/) {
|
|
60
|
+
return amountSharesToRedeem;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function getTokensIn() public view override returns (address[] memory res) {
|
|
64
|
+
return ArrayLib.create(yieldToken);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function getTokensOut() public view override returns (address[] memory res) {
|
|
68
|
+
return ArrayLib.create(yieldToken);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
function isValidTokenIn(address token) public view override returns (bool) {
|
|
72
|
+
return token == yieldToken;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function isValidTokenOut(address token) public view override returns (bool) {
|
|
76
|
+
return token == yieldToken;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function assetInfo() external view returns (AssetType assetType, address assetAddress, uint8 assetDecimals) {
|
|
80
|
+
return (AssetType.TOKEN, WETH, 18);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -64,7 +64,12 @@ contract PendleERC20SYUpg is SYBaseUpg {
|
|
|
64
64
|
return token == yieldToken;
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
function assetInfo()
|
|
67
|
+
function assetInfo()
|
|
68
|
+
external
|
|
69
|
+
view
|
|
70
|
+
virtual
|
|
71
|
+
returns (AssetType assetType, address assetAddress, uint8 assetDecimals)
|
|
72
|
+
{
|
|
68
73
|
return (AssetType.TOKEN, yieldToken, IERC20Metadata(yieldToken).decimals());
|
|
69
74
|
}
|
|
70
75
|
}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
// SPDX-License-Identifier: BUSL-1.1
|
|
2
|
+
pragma solidity ^0.8.17;
|
|
3
|
+
|
|
4
|
+
import "../../SYBaseWithRewards.sol";
|
|
5
|
+
import "../../../../interfaces/Silo/ISiloIncentiveController.sol";
|
|
6
|
+
import "../../../../interfaces/Silo/ISilo.sol";
|
|
7
|
+
import "../../../../interfaces/Silo/ISiloLens.sol";
|
|
8
|
+
import "../../../libraries/ArrayLib.sol";
|
|
9
|
+
import "../../../libraries/math/PMath.sol";
|
|
10
|
+
|
|
11
|
+
contract PendleSiloWithIncentiveNonBorrowableSY is SYBaseWithRewards {
|
|
12
|
+
using PMath for uint256;
|
|
13
|
+
using ArrayLib for address[];
|
|
14
|
+
|
|
15
|
+
event SetNewIncentiveController(address indexed newController);
|
|
16
|
+
|
|
17
|
+
address public immutable asset;
|
|
18
|
+
address public immutable collateralToken;
|
|
19
|
+
address public immutable silo;
|
|
20
|
+
address public immutable siloLens;
|
|
21
|
+
|
|
22
|
+
address public incentiveController;
|
|
23
|
+
address[] public additionalRewardTokens;
|
|
24
|
+
address public immutable defaultRewardToken;
|
|
25
|
+
|
|
26
|
+
constructor(
|
|
27
|
+
string memory _name,
|
|
28
|
+
string memory _symbol,
|
|
29
|
+
address _asset,
|
|
30
|
+
address _collateralToken,
|
|
31
|
+
address _silo,
|
|
32
|
+
address _siloLens,
|
|
33
|
+
address _incentiveController
|
|
34
|
+
) SYBaseWithRewards(_name, _symbol, _collateralToken) {
|
|
35
|
+
asset = _asset;
|
|
36
|
+
collateralToken = _collateralToken;
|
|
37
|
+
silo = _silo;
|
|
38
|
+
siloLens = _siloLens;
|
|
39
|
+
|
|
40
|
+
incentiveController = _incentiveController;
|
|
41
|
+
defaultRewardToken = ISiloIncentiveController(incentiveController).REWARD_TOKEN();
|
|
42
|
+
|
|
43
|
+
_safeApproveInf(asset, silo);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function _deposit(
|
|
47
|
+
address tokenIn,
|
|
48
|
+
uint256 amountDeposited
|
|
49
|
+
) internal virtual override returns (uint256 amountSharesOut) {
|
|
50
|
+
if (tokenIn == collateralToken) {
|
|
51
|
+
return amountDeposited;
|
|
52
|
+
} else {
|
|
53
|
+
(, amountSharesOut) = ISilo(silo).deposit(asset, amountDeposited, true);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function _redeem(
|
|
58
|
+
address receiver,
|
|
59
|
+
address tokenOut,
|
|
60
|
+
uint256 amountSharesToRedeem
|
|
61
|
+
) internal virtual override returns (uint256 amountTokenOut) {
|
|
62
|
+
if (tokenOut == collateralToken) {
|
|
63
|
+
_transferOut(collateralToken, receiver, amountSharesToRedeem);
|
|
64
|
+
return amountSharesToRedeem;
|
|
65
|
+
} else {
|
|
66
|
+
// Silo withdrawing interface only accepts amount of asset as input
|
|
67
|
+
// Therefore we need to ensure that assetInput.toShareRoundUp() <= amountSharesToRedeem
|
|
68
|
+
|
|
69
|
+
amountTokenOut = amountSharesToRedeem;
|
|
70
|
+
|
|
71
|
+
// amountAssetToWithdraw should = withdrawnAmount as withdrawing does not
|
|
72
|
+
// bear any fees
|
|
73
|
+
ISilo(silo).withdraw(asset, amountTokenOut, true);
|
|
74
|
+
_transferOut(tokenOut, receiver, amountTokenOut);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/*///////////////////////////////////////////////////////////////
|
|
79
|
+
EXCHANGE-RATE
|
|
80
|
+
//////////////////////////////////////////////////////////////*/
|
|
81
|
+
|
|
82
|
+
function exchangeRate() public view virtual override returns (uint256) {
|
|
83
|
+
return PMath.ONE;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/*///////////////////////////////////////////////////////////////
|
|
87
|
+
REWARDS-RELATED
|
|
88
|
+
//////////////////////////////////////////////////////////////*/
|
|
89
|
+
|
|
90
|
+
function setIncentiveController(address newController) external onlyOwner {
|
|
91
|
+
// Claim all pending rewards from old contract
|
|
92
|
+
_redeemExternalReward();
|
|
93
|
+
|
|
94
|
+
address newRewardToken = ISiloIncentiveController(newController).REWARD_TOKEN();
|
|
95
|
+
if (newRewardToken != defaultRewardToken && !additionalRewardTokens.contains(newRewardToken)) {
|
|
96
|
+
additionalRewardTokens.push(newRewardToken);
|
|
97
|
+
}
|
|
98
|
+
incentiveController = newController;
|
|
99
|
+
|
|
100
|
+
emit SetNewIncentiveController(newController);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* @dev See {IStandardizedYield-getRewardTokens}
|
|
105
|
+
*/
|
|
106
|
+
function _getRewardTokens() internal view override returns (address[] memory) {
|
|
107
|
+
return additionalRewardTokens.appendHead(defaultRewardToken);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
function _redeemExternalReward() internal override {
|
|
111
|
+
ISiloIncentiveController(incentiveController).claimRewardsToSelf(
|
|
112
|
+
ArrayLib.create(collateralToken),
|
|
113
|
+
type(uint256).max
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/*///////////////////////////////////////////////////////////////
|
|
118
|
+
MISC FUNCTIONS FOR METADATA
|
|
119
|
+
//////////////////////////////////////////////////////////////*/
|
|
120
|
+
|
|
121
|
+
function _previewDeposit(
|
|
122
|
+
address tokenIn,
|
|
123
|
+
uint256 amountTokenToDeposit
|
|
124
|
+
) internal view override returns (uint256 amountSharesOut) {
|
|
125
|
+
return amountTokenToDeposit;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
function _previewRedeem(
|
|
129
|
+
address tokenOut,
|
|
130
|
+
uint256 amountSharesToRedeem
|
|
131
|
+
) internal view override returns (uint256 amountTokenOut) {
|
|
132
|
+
return amountSharesToRedeem;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
function getTokensIn() public view virtual override returns (address[] memory) {
|
|
136
|
+
return ArrayLib.create(asset, collateralToken);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
function getTokensOut() public view virtual override returns (address[] memory) {
|
|
140
|
+
return ArrayLib.create(asset, collateralToken);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
function isValidTokenIn(address token) public view virtual override returns (bool) {
|
|
144
|
+
return token == asset || token == collateralToken;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
function isValidTokenOut(address token) public view virtual override returns (bool) {
|
|
148
|
+
return token == asset || token == collateralToken;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
function assetInfo() external view returns (AssetType assetType, address assetAddress, uint8 assetDecimals) {
|
|
152
|
+
return (AssetType.TOKEN, asset, IERC20Metadata(asset).decimals());
|
|
153
|
+
}
|
|
154
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
|
|
3
|
+
pragma solidity ^0.8.0;
|
|
4
|
+
|
|
5
|
+
interface IAaveStkGHO {
|
|
6
|
+
function stake(address to, uint256 amount) external;
|
|
7
|
+
|
|
8
|
+
function redeem(address to, uint256 amount) external;
|
|
9
|
+
|
|
10
|
+
function claimRewards(address to, uint256 amount) external;
|
|
11
|
+
|
|
12
|
+
function getExchangeRate() external view returns (uint216);
|
|
13
|
+
|
|
14
|
+
function previewStake(uint256 assets) external view returns (uint256);
|
|
15
|
+
|
|
16
|
+
function previewRedeem(uint256 shares) external view returns (uint256);
|
|
17
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
|
|
3
|
+
pragma solidity ^0.8.0;
|
|
4
|
+
|
|
5
|
+
interface IAngleDistributor {
|
|
6
|
+
function claim(
|
|
7
|
+
address[] calldata users,
|
|
8
|
+
address[] calldata tokens,
|
|
9
|
+
uint256[] calldata amounts,
|
|
10
|
+
bytes32[][] calldata proofs
|
|
11
|
+
) external;
|
|
12
|
+
}
|
|
@@ -29,7 +29,7 @@ interface IPActionAddRemoveLiqV3 is IPAllEventsV3 {
|
|
|
29
29
|
uint256 netPtIn,
|
|
30
30
|
uint256 minLpOut,
|
|
31
31
|
ApproxParams calldata guessPtSwapToSy,
|
|
32
|
-
LimitOrderData
|
|
32
|
+
LimitOrderData memory limit
|
|
33
33
|
) external returns (uint256 netLpOut, uint256 netSyFee);
|
|
34
34
|
|
|
35
35
|
function addLiquiditySingleToken(
|
|
@@ -38,7 +38,7 @@ interface IPActionAddRemoveLiqV3 is IPAllEventsV3 {
|
|
|
38
38
|
uint256 minLpOut,
|
|
39
39
|
ApproxParams calldata guessPtReceivedFromSy,
|
|
40
40
|
TokenInput calldata input,
|
|
41
|
-
LimitOrderData
|
|
41
|
+
LimitOrderData memory limit
|
|
42
42
|
) external payable returns (uint256 netLpOut, uint256 netSyFee, uint256 netSyInterm);
|
|
43
43
|
|
|
44
44
|
function addLiquiditySingleSy(
|
|
@@ -47,7 +47,7 @@ interface IPActionAddRemoveLiqV3 is IPAllEventsV3 {
|
|
|
47
47
|
uint256 netSyIn,
|
|
48
48
|
uint256 minLpOut,
|
|
49
49
|
ApproxParams calldata guessPtReceivedFromSy,
|
|
50
|
-
LimitOrderData
|
|
50
|
+
LimitOrderData memory limit
|
|
51
51
|
) external returns (uint256 netLpOut, uint256 netSyFee);
|
|
52
52
|
|
|
53
53
|
function addLiquiditySingleTokenKeepYt(
|
|
@@ -88,7 +88,7 @@ interface IPActionAddRemoveLiqV3 is IPAllEventsV3 {
|
|
|
88
88
|
uint256 netLpToRemove,
|
|
89
89
|
uint256 minPtOut,
|
|
90
90
|
ApproxParams calldata guessPtReceivedFromSy,
|
|
91
|
-
LimitOrderData
|
|
91
|
+
LimitOrderData memory limit
|
|
92
92
|
) external returns (uint256 netPtOut, uint256 netSyFee);
|
|
93
93
|
|
|
94
94
|
function removeLiquiditySingleToken(
|
|
@@ -96,7 +96,7 @@ interface IPActionAddRemoveLiqV3 is IPAllEventsV3 {
|
|
|
96
96
|
address market,
|
|
97
97
|
uint256 netLpToRemove,
|
|
98
98
|
TokenOutput calldata output,
|
|
99
|
-
LimitOrderData
|
|
99
|
+
LimitOrderData memory limit
|
|
100
100
|
) external returns (uint256 netTokenOut, uint256 netSyFee, uint256 netSyInterm);
|
|
101
101
|
|
|
102
102
|
function removeLiquiditySingleSy(
|
|
@@ -104,6 +104,6 @@ interface IPActionAddRemoveLiqV3 is IPAllEventsV3 {
|
|
|
104
104
|
address market,
|
|
105
105
|
uint256 netLpToRemove,
|
|
106
106
|
uint256 minSyOut,
|
|
107
|
-
LimitOrderData
|
|
107
|
+
LimitOrderData memory limit
|
|
108
108
|
) external returns (uint256 netSyOut, uint256 netSyFee);
|
|
109
109
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
2
|
pragma solidity ^0.8.0;
|
|
3
3
|
|
|
4
|
+
import "./IPMarket.sol";
|
|
5
|
+
|
|
4
6
|
interface IPActionMarketCoreStatic {
|
|
5
7
|
function addLiquidityDualSyAndPtStatic(
|
|
6
8
|
address market,
|
|
@@ -288,4 +290,6 @@ interface IPActionMarketCoreStatic {
|
|
|
288
290
|
address market,
|
|
289
291
|
uint256 exactSyOut
|
|
290
292
|
) external view returns (uint256 netYtIn, uint256 netSyFee, uint256 priceImpact, uint256 exchangeRateAfter);
|
|
293
|
+
|
|
294
|
+
function readMarketState(address market) external view returns (MarketState memory);
|
|
291
295
|
}
|
|
@@ -82,12 +82,6 @@ interface IPActionMiscV3 is IPAllEventsV3 {
|
|
|
82
82
|
uint256[] calldata netSwaps
|
|
83
83
|
) external payable returns (uint256[] memory netOutFromSwaps);
|
|
84
84
|
|
|
85
|
-
function swapTokenToToken(
|
|
86
|
-
address receiver,
|
|
87
|
-
uint256 minTokenOut,
|
|
88
|
-
TokenInput calldata inp
|
|
89
|
-
) external payable returns (uint256 netTokenOut);
|
|
90
|
-
|
|
91
85
|
function swapTokenToTokenViaSy(
|
|
92
86
|
address receiver,
|
|
93
87
|
address SY,
|
|
@@ -103,7 +97,7 @@ interface IPActionMiscV3 is IPAllEventsV3 {
|
|
|
103
97
|
uint256 netYtIn,
|
|
104
98
|
uint256 netLpIn,
|
|
105
99
|
TokenOutput calldata output,
|
|
106
|
-
LimitOrderData
|
|
100
|
+
LimitOrderData memory limit
|
|
107
101
|
) external returns (uint256 netTokenOut, ExitPreExpReturnParams memory params);
|
|
108
102
|
|
|
109
103
|
function exitPreExpToSy(
|
|
@@ -113,7 +107,7 @@ interface IPActionMiscV3 is IPAllEventsV3 {
|
|
|
113
107
|
uint256 netYtIn,
|
|
114
108
|
uint256 netLpIn,
|
|
115
109
|
uint256 minSyOut,
|
|
116
|
-
LimitOrderData
|
|
110
|
+
LimitOrderData memory limit
|
|
117
111
|
) external returns (ExitPreExpReturnParams memory params);
|
|
118
112
|
|
|
119
113
|
function exitPostExpToToken(
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
import "../router/math/MarketApproxLib.sol";
|
|
5
|
+
import "./IPAllActionTypeV3.sol";
|
|
6
|
+
import {IPAllEventsV3} from "./IPAllEventsV3.sol";
|
|
7
|
+
|
|
8
|
+
interface IPActionSwapLimitV3 is IPAllEventsV3 {
|
|
9
|
+
function swapMaxPtForTokenLimitOnly(
|
|
10
|
+
address receiver,
|
|
11
|
+
address market,
|
|
12
|
+
uint256 maxPtIn,
|
|
13
|
+
uint256 minTokenPtRate,
|
|
14
|
+
TokenOutput calldata output,
|
|
15
|
+
LimitOrderData memory limit
|
|
16
|
+
) external returns (uint256 netTokenOut, uint256 netPtReturned, uint256 netSyFee, uint256 netSyInterm);
|
|
17
|
+
|
|
18
|
+
function swapMaxPtForSyLimitOnly(
|
|
19
|
+
address receiver,
|
|
20
|
+
address market,
|
|
21
|
+
uint256 maxPtIn,
|
|
22
|
+
uint256 minSyPtRate,
|
|
23
|
+
LimitOrderData memory limit
|
|
24
|
+
) external returns (uint256 netSyOut, uint256 netPtReturned, uint256 netSyFee);
|
|
25
|
+
|
|
26
|
+
function swapMaxTokenForYtLimitOnly(
|
|
27
|
+
address receiver,
|
|
28
|
+
address market,
|
|
29
|
+
uint256 minSyInterm,
|
|
30
|
+
uint256 minYtSyRate,
|
|
31
|
+
TokenInput calldata input,
|
|
32
|
+
LimitOrderData memory limit
|
|
33
|
+
) external payable returns (uint256 netYtOut, uint256 netSyReturned, uint256 netSyFee, uint256 netSyInterm);
|
|
34
|
+
|
|
35
|
+
function swapMaxSyForYtLimitOnly(
|
|
36
|
+
address receiver,
|
|
37
|
+
address market,
|
|
38
|
+
uint256 maxSyIn,
|
|
39
|
+
uint256 minYtSyRate,
|
|
40
|
+
LimitOrderData memory limit
|
|
41
|
+
) external returns (uint256 netYtOut, uint256 netSyReturned, uint256 netSyFee);
|
|
42
|
+
}
|
|
@@ -13,7 +13,7 @@ interface IPActionSwapPTV3 is IPAllEventsV3 {
|
|
|
13
13
|
uint256 minPtOut,
|
|
14
14
|
ApproxParams calldata guessPtOut,
|
|
15
15
|
TokenInput calldata input,
|
|
16
|
-
LimitOrderData
|
|
16
|
+
LimitOrderData memory limit
|
|
17
17
|
) external payable returns (uint256 netPtOut, uint256 netSyFee, uint256 netSyInterm);
|
|
18
18
|
|
|
19
19
|
function swapExactSyForPt(
|
|
@@ -22,7 +22,7 @@ interface IPActionSwapPTV3 is IPAllEventsV3 {
|
|
|
22
22
|
uint256 exactSyIn,
|
|
23
23
|
uint256 minPtOut,
|
|
24
24
|
ApproxParams calldata guessPtOut,
|
|
25
|
-
LimitOrderData
|
|
25
|
+
LimitOrderData memory limit
|
|
26
26
|
) external returns (uint256 netPtOut, uint256 netSyFee);
|
|
27
27
|
|
|
28
28
|
function swapExactPtForToken(
|
|
@@ -30,7 +30,7 @@ interface IPActionSwapPTV3 is IPAllEventsV3 {
|
|
|
30
30
|
address market,
|
|
31
31
|
uint256 exactPtIn,
|
|
32
32
|
TokenOutput calldata output,
|
|
33
|
-
LimitOrderData
|
|
33
|
+
LimitOrderData memory limit
|
|
34
34
|
) external returns (uint256 netTokenOut, uint256 netSyFee, uint256 netSyInterm);
|
|
35
35
|
|
|
36
36
|
function swapExactPtForSy(
|
|
@@ -38,6 +38,6 @@ interface IPActionSwapPTV3 is IPAllEventsV3 {
|
|
|
38
38
|
address market,
|
|
39
39
|
uint256 exactPtIn,
|
|
40
40
|
uint256 minSyOut,
|
|
41
|
-
LimitOrderData
|
|
41
|
+
LimitOrderData memory limit
|
|
42
42
|
) external returns (uint256 netSyOut, uint256 netSyFee);
|
|
43
43
|
}
|
|
@@ -13,7 +13,7 @@ interface IPActionSwapYTV3 is IPAllEventsV3 {
|
|
|
13
13
|
uint256 minYtOut,
|
|
14
14
|
ApproxParams calldata guessYtOut,
|
|
15
15
|
TokenInput calldata input,
|
|
16
|
-
LimitOrderData
|
|
16
|
+
LimitOrderData memory limit
|
|
17
17
|
) external payable returns (uint256 netYtOut, uint256 netSyFee, uint256 netSyInterm);
|
|
18
18
|
|
|
19
19
|
function swapExactSyForYt(
|
|
@@ -22,7 +22,7 @@ interface IPActionSwapYTV3 is IPAllEventsV3 {
|
|
|
22
22
|
uint256 exactSyIn,
|
|
23
23
|
uint256 minYtOut,
|
|
24
24
|
ApproxParams calldata guessYtOut,
|
|
25
|
-
LimitOrderData
|
|
25
|
+
LimitOrderData memory limit
|
|
26
26
|
) external returns (uint256 netYtOut, uint256 netSyFee);
|
|
27
27
|
|
|
28
28
|
function swapExactYtForToken(
|
|
@@ -30,7 +30,7 @@ interface IPActionSwapYTV3 is IPAllEventsV3 {
|
|
|
30
30
|
address market,
|
|
31
31
|
uint256 exactYtIn,
|
|
32
32
|
TokenOutput calldata output,
|
|
33
|
-
LimitOrderData
|
|
33
|
+
LimitOrderData memory limit
|
|
34
34
|
) external returns (uint256 netTokenOut, uint256 netSyFee, uint256 netSyInterm);
|
|
35
35
|
|
|
36
36
|
function swapExactYtForSy(
|
|
@@ -38,7 +38,7 @@ interface IPActionSwapYTV3 is IPAllEventsV3 {
|
|
|
38
38
|
address market,
|
|
39
39
|
uint256 exactYtIn,
|
|
40
40
|
uint256 minSyOut,
|
|
41
|
-
LimitOrderData
|
|
41
|
+
LimitOrderData memory limit
|
|
42
42
|
) external returns (uint256 netSyOut, uint256 netSyFee);
|
|
43
43
|
|
|
44
44
|
function swapExactPtForYt(
|
|
@@ -9,6 +9,7 @@ import "./IPActionMiscV3.sol";
|
|
|
9
9
|
import "./IPActionCallbackV3.sol";
|
|
10
10
|
import "./IPActionStorageV4.sol";
|
|
11
11
|
import "./IPActionSimple.sol";
|
|
12
|
+
import "./IPActionSwapLimitV3.sol";
|
|
12
13
|
|
|
13
14
|
interface IPAllActionV3 is
|
|
14
15
|
IPActionAddRemoveLiqV3,
|
|
@@ -17,5 +18,6 @@ interface IPAllActionV3 is
|
|
|
17
18
|
IPActionMiscV3,
|
|
18
19
|
IPActionCallbackV3,
|
|
19
20
|
IPActionStorageV4,
|
|
20
|
-
IPActionSimple
|
|
21
|
+
IPActionSimple,
|
|
22
|
+
IPActionSwapLimitV3
|
|
21
23
|
{}
|
|
@@ -265,10 +265,53 @@ interface IPActionStorageEvents {
|
|
|
265
265
|
event SelectorToFacetSet(bytes4 indexed selector, address indexed facet);
|
|
266
266
|
}
|
|
267
267
|
|
|
268
|
+
interface IPActionSwapLimitV3Events {
|
|
269
|
+
event SwapMaxPtForTokenLimitOnly(
|
|
270
|
+
address indexed caller,
|
|
271
|
+
address indexed market,
|
|
272
|
+
address indexed token,
|
|
273
|
+
address receiver,
|
|
274
|
+
uint256 maxPtIn,
|
|
275
|
+
uint256 netTokenOut,
|
|
276
|
+
uint256 netSyInterm,
|
|
277
|
+
uint256 netPtReturned
|
|
278
|
+
);
|
|
279
|
+
|
|
280
|
+
event SwapMaxPtForSyLimitOnly(
|
|
281
|
+
address indexed caller,
|
|
282
|
+
address indexed market,
|
|
283
|
+
address indexed receiver,
|
|
284
|
+
uint256 maxPtIn,
|
|
285
|
+
uint256 netSyOut,
|
|
286
|
+
uint256 netPtReturned
|
|
287
|
+
);
|
|
288
|
+
|
|
289
|
+
event SwapMaxTokenForYtLimitOnly(
|
|
290
|
+
address indexed caller,
|
|
291
|
+
address indexed market,
|
|
292
|
+
address indexed token,
|
|
293
|
+
address receiver,
|
|
294
|
+
uint256 maxTokenIn,
|
|
295
|
+
uint256 netYtOut,
|
|
296
|
+
uint256 netSyInterm,
|
|
297
|
+
uint256 netSyReturned
|
|
298
|
+
);
|
|
299
|
+
|
|
300
|
+
event SwapMaxSyForYtLimitOnly(
|
|
301
|
+
address indexed caller,
|
|
302
|
+
address indexed market,
|
|
303
|
+
address indexed receiver,
|
|
304
|
+
uint256 maxSyIn,
|
|
305
|
+
uint256 netYtOut,
|
|
306
|
+
uint256 netSyReturned
|
|
307
|
+
);
|
|
308
|
+
}
|
|
309
|
+
|
|
268
310
|
interface IPAllEventsV3 is
|
|
269
311
|
IPActionAddRemoveLiqV3Events,
|
|
270
312
|
IPActionSwapPTV3Events,
|
|
271
313
|
IPActionSwapYTV3Events,
|
|
272
314
|
IPActionMiscV3Events,
|
|
273
|
-
IPActionStorageEvents
|
|
315
|
+
IPActionStorageEvents,
|
|
316
|
+
IPActionSwapLimitV3Events
|
|
274
317
|
{}
|
|
@@ -254,4 +254,9 @@ library SDKErrorsDirectory {
|
|
|
254
254
|
error InvalidTimestamp();
|
|
255
255
|
error InvalidWithdrawalFee();
|
|
256
256
|
error InvalidTotalSupply();
|
|
257
|
+
error OperationNotAllowed();
|
|
258
|
+
error WOMBAT_COV_RATIO_LIMIT_EXCEEDED();
|
|
259
|
+
error NotEnoughLiquidity();
|
|
260
|
+
error InvalidAmountToDeposit();
|
|
261
|
+
error TellerWithMultiAssetSupport__AssetNotSupported();
|
|
257
262
|
}
|
|
@@ -70,7 +70,7 @@ contract ActionInfoStatic is IPActionInfoStatic {
|
|
|
70
70
|
|
|
71
71
|
function getUserMarketInfo(address market, address user) external returns (UserMarketInfo memory res) {
|
|
72
72
|
IPMarket _market = IPMarket(market);
|
|
73
|
-
MarketState memory state =
|
|
73
|
+
MarketState memory state = IPRouterStatic(address(this)).readMarketState(market);
|
|
74
74
|
|
|
75
75
|
if (uint256(state.totalLp) == 0) return res; // market not initialized
|
|
76
76
|
|
|
@@ -342,7 +342,7 @@ contract ActionMarketAuxStatic is IPActionMarketAuxStatic {
|
|
|
342
342
|
}
|
|
343
343
|
|
|
344
344
|
function _readState(address market) internal view returns (MarketState memory) {
|
|
345
|
-
return
|
|
345
|
+
return IPRouterStatic(address(this)).readMarketState(market);
|
|
346
346
|
}
|
|
347
347
|
|
|
348
348
|
function _readTokens(
|
|
@@ -18,6 +18,8 @@ contract ActionMarketCoreStatic is StorageLayout, IPActionMarketCoreStatic {
|
|
|
18
18
|
|
|
19
19
|
// ============ ADD REMOVE LIQUIDITY ============
|
|
20
20
|
|
|
21
|
+
address internal constant ROUTER_V4 = 0x888888888889758F76e7103c6CbF23ABbF58F946;
|
|
22
|
+
|
|
21
23
|
function addLiquidityDualSyAndPtStatic(
|
|
22
24
|
address market,
|
|
23
25
|
uint256 netSyDesired,
|
|
@@ -625,6 +627,14 @@ contract ActionMarketCoreStatic is StorageLayout, IPActionMarketCoreStatic {
|
|
|
625
627
|
exchangeRateAfter = _getTradeExchangeRateExcludeFee(market, state);
|
|
626
628
|
}
|
|
627
629
|
|
|
630
|
+
function readMarketState(address market) public view returns (MarketState memory) {
|
|
631
|
+
return _readState(market);
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
function _readState(address market) internal view returns (MarketState memory) {
|
|
635
|
+
return IPMarket(market).readState(ROUTER_V4);
|
|
636
|
+
}
|
|
637
|
+
|
|
628
638
|
function _calcPriceImpactPY(address market, int256 netPtOut) internal view returns (uint256) {
|
|
629
639
|
return IPRouterStatic(address(this)).calcPriceImpactPY(market, netPtOut);
|
|
630
640
|
}
|
|
@@ -657,10 +667,6 @@ contract ActionMarketCoreStatic is StorageLayout, IPActionMarketCoreStatic {
|
|
|
657
667
|
return IPRouterStatic(address(this)).getTradeExchangeRateExcludeFee(market, state);
|
|
658
668
|
}
|
|
659
669
|
|
|
660
|
-
function _readState(address market) internal view returns (MarketState memory) {
|
|
661
|
-
return IPMarket(market).readState(address(this));
|
|
662
|
-
}
|
|
663
|
-
|
|
664
670
|
function _pyIndex(address market) private view returns (PYIndex) {
|
|
665
671
|
return PYIndex.wrap(IPRouterStatic(address(this)).pyIndexCurrentViewMarket(market));
|
|
666
672
|
}
|