@pendle/core-v2 0.15.0-mainnet → 0.15.2-mainnet
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/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.json +110 -48
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +75 -21
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.json +39 -0
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.dbg.json +4 -0
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.json +10 -0
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +4 -0
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.json +10 -0
- package/build/artifacts/contracts/LiquidityMining/FeeDistributor/EpochResultManager.sol/EpochResultManager.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +15 -2
- package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.json +15 -2
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.json +13 -0
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +15 -2
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +15 -2
- package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +46 -2
- package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +52 -8
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +15 -2
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/libraries/WeekMath.sol/WeekMath.dbg.json +1 -1
- package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +4 -0
- package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +699 -0
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +4 -0
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +515 -0
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +4 -0
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +10 -0
- package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
- package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
- package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
- package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +77 -17
- package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
- package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +1003 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +1068 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.json +10 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.json +10 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.json +10 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/{ConvexCurveLP → base}/PendleConvexLPSY.sol/PendleConvexLPSY.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +856 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.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 +15 -2
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +85 -4
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +17 -4
- package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
- package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.json +2 -2
- package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
- package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.json +2 -2
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.json +3 -38
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.json +2 -2
- package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.json +13 -0
- package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.json +2 -2
- package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +319 -35
- package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +4 -0
- package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.json +10 -0
- package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.json +1 -1
- package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.json +39 -85
- package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.json +213 -0
- package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.json +119 -0
- package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.json +39 -0
- package/build/artifacts/contracts/interfaces/ILooksFeeSharing.sol/ILooksFeeSharing.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/ILooksFeeSharing.sol/ILooksFeeSharing.json +30 -0
- package/build/artifacts/contracts/interfaces/ILooksStaking.sol/ILooksStaking.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/ILooksStaking.sol/ILooksStaking.json +76 -0
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json +91 -17
- package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json +50 -0
- package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.json +20 -0
- package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.json +20 -0
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +181 -17
- package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.json +173 -0
- package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.json +86 -0
- package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.json +34 -0
- 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/IPMarketFactory.sol/IPMarketFactory.json +2 -2
- package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.json +12 -2
- package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.json +45 -0
- package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.json +15 -2
- package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +35 -0
- package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +2 -80
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +299 -60
- package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +118 -41
- package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.json +2 -2
- package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +61 -24
- package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +2 -2
- package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +31 -24
- package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +2 -2
- package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +31 -24
- package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
- package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +15 -2
- package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json +1 -1
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
- package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +191 -2
- package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.dbg.json +4 -0
- package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.json +35 -0
- package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.json +1 -1
- package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol +58 -27
- package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol +46 -12
- package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol +31 -7
- package/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol +133 -0
- package/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol +27 -0
- package/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +9 -10
- package/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +9 -23
- package/contracts/core/BulkSeller/BulkSeller.sol +259 -0
- package/contracts/core/BulkSeller/BulkSellerFactory.sol +88 -0
- package/contracts/core/BulkSeller/BulkSellerMathCore.sol +143 -0
- package/contracts/core/Market/PendleMarket.sol +18 -7
- package/contracts/core/Market/PendleMarketFactory.sol +15 -5
- package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol +102 -0
- package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol +160 -0
- package/contracts/core/StandardizedYield/implementations/Convex/README.md +29 -0
- package/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol +215 -0
- package/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol +127 -0
- package/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol +152 -0
- package/contracts/core/StandardizedYield/implementations/Convex/{ConvexCurveLP → base}/PendleConvexLPSY.sol +2 -4
- package/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol +122 -0
- package/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol +17 -8
- package/contracts/core/YieldContracts/PendlePrincipalToken.sol +3 -3
- package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +38 -11
- package/contracts/core/YieldContracts/PendleYieldToken.sol +54 -21
- package/contracts/core/erc20/PendleERC20.sol +4 -7
- package/contracts/core/libraries/BaseSplitCodeFactory.sol +1 -1
- package/contracts/core/libraries/BoringOwnableUpgradeable.sol +1 -1
- package/contracts/core/libraries/Errors.sol +32 -4
- package/contracts/core/libraries/StringLib.sol +782 -0
- package/contracts/core/libraries/TokenHelper.sol +9 -0
- package/contracts/interfaces/ConvexCurve/IBooster.sol +1 -1
- package/contracts/interfaces/Curve/ICrvPool.sol +12 -31
- package/contracts/interfaces/Curve/ITriCrvPool.sol +41 -0
- package/contracts/interfaces/ILayerZeroEndpoint.sol +39 -0
- package/contracts/interfaces/ILayerZeroReceiver.sol +12 -0
- package/contracts/interfaces/ILooksFeeSharing.sol +5 -0
- package/contracts/interfaces/ILooksStaking.sol +13 -0
- package/contracts/interfaces/IPActionAddRemoveLiq.sol +3 -5
- package/contracts/interfaces/IPActionMintRedeem.sol +2 -0
- package/contracts/interfaces/IPBulkSeller.sol +28 -0
- package/contracts/interfaces/IPBulkSellerFactory.sol +12 -0
- package/contracts/interfaces/IPBulkSellerSYCallback.sol +10 -0
- package/contracts/interfaces/IPMarketFactory.sol +1 -1
- package/contracts/interfaces/IPMsgSendEndpoint.sol +4 -2
- package/contracts/interfaces/IPYieldContractFactory.sol +1 -1
- package/contracts/interfaces/IStETH.sol +6 -0
- package/contracts/interfaces/IStandardizedYield.sol +15 -10
- package/contracts/offchain-helpers/BulkSellerOffchain.sol +43 -0
- package/contracts/offchain-helpers/MarketMathStatic.sol +0 -173
- package/contracts/offchain-helpers/RouterStatic.sol +189 -50
- package/contracts/router/ActionAddRemoveLiq.sol +71 -52
- package/contracts/router/ActionCallback.sol +4 -8
- package/contracts/router/ActionMintRedeem.sol +27 -18
- package/contracts/router/ActionSwapPT.sol +8 -9
- package/contracts/router/ActionSwapPTYT.sol +3 -7
- package/contracts/router/ActionSwapYT.sol +15 -10
- package/contracts/router/PendleRouter.sol +3 -0
- package/contracts/router/base/ActionBaseMintRedeem.sol +78 -83
- package/contracts/router/base/MarketApproxLib.sol +1 -1
- package/contracts/router/kyberswap/AggregationRouterHelper.sol +17 -1
- package/contracts/router/kyberswap/IAggregatorRouterHelper.sol +10 -0
- package/contracts/router/kyberswap/KyberSwapHelper.sol +21 -8
- package/deployments/1-markets/FRAX_30_MAR_23.json +8 -0
- package/deployments/1-markets/LOOKS_30_MAR_23.json +8 -0
- package/deployments/1-markets/STETH_MARCH_30.json +1 -1
- package/deployments/1-markets/USDD_MARCH_30.json +8 -0
- package/deployments/1-offchain-helper.json +3 -0
- package/package.json +3 -2
- package/typechain-types/AccessControl.ts +360 -0
- package/typechain-types/AccessControlUpgradeable.ts +369 -0
- package/typechain-types/ActionAddRemoveLiq.ts +64 -52
- package/typechain-types/ActionBaseMintRedeem.ts +8 -8
- package/typechain-types/ActionMintRedeem.ts +48 -16
- package/typechain-types/ActionSwapPT.ts +34 -12
- package/typechain-types/ActionSwapYT.ts +34 -12
- package/typechain-types/AggregationRouterHelper.ts +287 -3
- package/typechain-types/BaseSplitCodeFactoryContract.ts +9 -0
- package/typechain-types/BeaconProxy.ts +97 -0
- package/typechain-types/BoringOwnableUpgradeable.ts +9 -0
- package/typechain-types/BulkSeller.ts +777 -0
- package/typechain-types/BulkSellerFactory.ts +707 -0
- package/typechain-types/BulkSellerOffchain.ts +117 -0
- package/typechain-types/ContextUpgradeable.ts +68 -0
- package/typechain-types/Curve3CrvPoolHelper.ts +236 -0
- package/typechain-types/CurveFraxUsdcPoolHelper.ts +158 -0
- package/typechain-types/CurveUsdd3CrvPoolHelper.ts +184 -0
- package/typechain-types/ERC165.ts +102 -0
- package/typechain-types/ERC165Upgradeable.ts +113 -0
- package/typechain-types/IAccessControl.ts +305 -0
- package/typechain-types/IAccessControlUpgradeable.ts +305 -0
- package/typechain-types/IAggregationRouterHelper.ts +108 -0
- package/typechain-types/IBooster.ts +9 -3
- package/typechain-types/ICrvPool.ts +69 -172
- package/typechain-types/IERC165.ts +102 -0
- package/typechain-types/IERC165Upgradeable.ts +102 -0
- package/typechain-types/ILayerZeroEndpoint.ts +256 -0
- package/typechain-types/ILayerZeroReceiver.ts +117 -0
- package/typechain-types/ILooksFeeSharing.ts +102 -0
- package/typechain-types/ILooksStaking.ts +189 -0
- package/typechain-types/IPActionAddRemoveLiq.ts +56 -44
- package/typechain-types/IPActionMintRedeem.ts +40 -8
- package/typechain-types/IPActionSwapPT.ts +26 -4
- package/typechain-types/IPActionSwapYT.ts +26 -4
- package/typechain-types/IPAllAction.ts +76 -54
- package/typechain-types/IPBulkSeller.ts +290 -0
- package/typechain-types/IPBulkSellerCallback.ts +115 -0
- package/typechain-types/IPBulkSellerFactory.ts +147 -0
- package/typechain-types/IPMarketFactory.ts +2 -2
- package/typechain-types/IPMsgSendEndpoint.ts +24 -14
- package/typechain-types/IPYieldContractFactory.ts +3 -3
- package/typechain-types/IStETH.ts +56 -0
- package/typechain-types/ITriCrvPool.ts +345 -0
- package/typechain-types/ImplicitSwapfeeContract.ts +9 -17
- package/typechain-types/Initializable.ts +68 -0
- package/typechain-types/KyberSwapHelper.ts +8 -8
- package/typechain-types/MarketMathStatic.ts +0 -117
- package/typechain-types/PendleConvex2TokensSY.ts +1215 -0
- package/typechain-types/PendleCurveFraxUsdcSY.ts +1228 -0
- package/typechain-types/PendleCurveUsdd3CrvSY.ts +1299 -0
- package/typechain-types/PendleFeeDistributor.ts +9 -0
- package/typechain-types/PendleFeeDistributorFactory.ts +9 -0
- package/typechain-types/PendleGaugeControllerBaseUpg.ts +9 -0
- package/typechain-types/PendleGaugeControllerMainchainUpg.ts +9 -0
- package/typechain-types/PendleGaugeControllerSidechainUpg.ts +9 -0
- package/typechain-types/PendleLooksStaking.ts +1052 -0
- package/typechain-types/PendleLooksStakingSY.ts +1052 -0
- package/typechain-types/PendleMarketFactory.ts +51 -2
- package/typechain-types/PendleMsgReceiveEndpointUpg.ts +135 -68
- package/typechain-types/PendleMsgSendEndpointUpg.ts +108 -39
- package/typechain-types/PendleMsgSenderAppUpg.ts +64 -0
- package/typechain-types/PendlePrincipalToken.ts +9 -0
- package/typechain-types/PendleRouter.ts +9 -0
- package/typechain-types/PendleVotingControllerUpg.ts +64 -0
- package/typechain-types/PendleYieldContractFactory.ts +57 -8
- package/typechain-types/PendleYieldToken.ts +21 -0
- package/typechain-types/ReentrancyGuardUpgradeable.ts +68 -0
- package/typechain-types/RouterStatic.ts +302 -20
- package/typechain-types/VotingEscrowPendleMainchain.ts +70 -6
- package/typechain-types/VotingEscrowPendleSidechain.ts +9 -0
- package/typechain-types/factories/AccessControlUpgradeable__factory.ts +247 -0
- package/typechain-types/factories/AccessControl__factory.ts +227 -0
- package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +122 -59
- package/typechain-types/factories/ActionBaseMintRedeem__factory.ts +1 -1
- package/typechain-types/factories/ActionCallback__factory.ts +1 -1
- package/typechain-types/factories/ActionMintRedeem__factory.ts +65 -42
- package/typechain-types/factories/ActionMisc__factory.ts +1 -1
- package/typechain-types/factories/ActionSwapPTYT__factory.ts +1 -1
- package/typechain-types/factories/ActionSwapPT__factory.ts +35 -42
- package/typechain-types/factories/ActionSwapYT__factory.ts +35 -42
- package/typechain-types/factories/AggregationRouterHelper__factory.ts +190 -1
- package/typechain-types/factories/BaseSplitCodeFactoryContract__factory.ts +14 -1
- package/typechain-types/factories/BaseSplitCodeFactory__factory.ts +1 -1
- package/typechain-types/factories/BeaconProxy__factory.ts +141 -0
- package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +1 -1
- package/typechain-types/factories/BoringOwnableUpgradeable__factory.ts +13 -0
- package/typechain-types/factories/BulkSellerFactory__factory.ts +568 -0
- package/typechain-types/factories/BulkSellerOffchain__factory.ts +88 -0
- package/typechain-types/factories/BulkSeller__factory.ts +749 -0
- package/typechain-types/factories/ContextUpgradeable__factory.ts +39 -0
- package/typechain-types/factories/Curve3CrvPoolHelper__factory.ts +220 -0
- package/typechain-types/factories/CurveFraxUsdcPoolHelper__factory.ts +146 -0
- package/typechain-types/factories/CurveUsdd3CrvPoolHelper__factory.ts +172 -0
- package/typechain-types/factories/ERC165Upgradeable__factory.ts +58 -0
- package/typechain-types/factories/ERC165__factory.ts +39 -0
- package/typechain-types/factories/ERC20__factory.ts +1 -1
- package/typechain-types/factories/Errors__factory.ts +318 -34
- package/typechain-types/factories/IAccessControlUpgradeable__factory.ts +202 -0
- package/typechain-types/factories/IAccessControl__factory.ts +198 -0
- package/typechain-types/factories/IAggregationRouterHelper__factory.ts +54 -0
- package/typechain-types/factories/IBooster__factory.ts +1 -1
- package/typechain-types/factories/ICrvPool__factory.ts +39 -85
- package/typechain-types/factories/IERC165Upgradeable__factory.ts +45 -0
- package/typechain-types/factories/IERC165__factory.ts +42 -0
- package/typechain-types/factories/ILayerZeroEndpoint__factory.ts +134 -0
- package/typechain-types/factories/ILayerZeroReceiver__factory.ts +54 -0
- package/typechain-types/factories/ILooksFeeSharing__factory.ts +45 -0
- package/typechain-types/factories/ILooksStaking__factory.ts +88 -0
- package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +91 -17
- package/typechain-types/factories/IPActionMintRedeem__factory.ts +50 -0
- package/typechain-types/factories/IPActionSwapPT__factory.ts +20 -0
- package/typechain-types/factories/IPActionSwapYT__factory.ts +20 -0
- package/typechain-types/factories/IPAllAction__factory.ts +181 -17
- package/typechain-types/factories/IPBulkSellerCallback__factory.ts +53 -0
- package/typechain-types/factories/IPBulkSellerFactory__factory.ts +101 -0
- package/typechain-types/factories/IPBulkSeller__factory.ts +185 -0
- package/typechain-types/factories/IPMarketFactory__factory.ts +2 -2
- package/typechain-types/factories/IPMsgSendEndpoint__factory.ts +12 -2
- package/typechain-types/factories/IPYieldContractFactory__factory.ts +1 -1
- package/typechain-types/factories/IStETH__factory.ts +45 -0
- package/typechain-types/factories/ITriCrvPool__factory.ts +225 -0
- package/typechain-types/factories/ImplicitSwapfeeContract__factory.ts +4 -12
- package/typechain-types/factories/Initializable__factory.ts +36 -0
- package/typechain-types/factories/KyberSwapHelper__factory.ts +1 -1
- package/typechain-types/factories/MarketMathStatic__factory.ts +1 -79
- package/typechain-types/factories/OracleLib__factory.ts +1 -1
- package/typechain-types/factories/Pendle3CrvAndTokenSY__factory.ts +1 -1
- package/typechain-types/factories/PendleConvex2TokensSY__factory.ts +1093 -0
- package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1068 -0
- package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1133 -0
- package/typechain-types/factories/PendleERC20Permit__factory.ts +1 -1
- package/typechain-types/factories/PendleERC20__factory.ts +1 -1
- package/typechain-types/factories/PendleFeeDistributorFactory__factory.ts +14 -1
- package/typechain-types/factories/PendleFeeDistributor__factory.ts +14 -1
- package/typechain-types/factories/PendleGaugeControllerBaseUpg__factory.ts +13 -0
- package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +14 -1
- package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +14 -1
- package/typechain-types/factories/PendleLooksStakingSY__factory.ts +937 -0
- package/typechain-types/factories/PendleLooksStaking__factory.ts +933 -0
- package/typechain-types/factories/PendleMarketFactory__factory.ts +76 -16
- package/typechain-types/factories/PendleMarket__factory.ts +1 -1
- package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +113 -51
- package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +84 -23
- package/typechain-types/factories/PendleMsgSenderAppUpg__factory.ts +39 -0
- package/typechain-types/factories/PendlePrincipalToken__factory.ts +14 -1
- package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
- package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
- package/typechain-types/factories/PendleRouter__factory.ts +14 -1
- package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +57 -2
- package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldContractFactory__factory.ts +84 -3
- package/typechain-types/factories/PendleYieldToken__factory.ts +16 -3
- package/typechain-types/factories/ReentrancyGuardUpgradeable__factory.ts +43 -0
- package/typechain-types/factories/RouterStatic__factory.ts +244 -1
- package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +63 -8
- package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +14 -1
- package/typechain-types/hardhat.d.ts +260 -35
- package/typechain-types/index.ts +56 -10
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSY.sol/Pendle3CrvAndTokenSY.dbg.json +0 -4
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSY.sol/Pendle3CrvAndTokenSY.json +0 -1018
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +0 -4
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/Pendle3CrvHelper.sol/Pendle3CrvHelper.dbg.json +0 -4
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/Pendle3CrvHelper.sol/Pendle3CrvHelper.json +0 -76
- package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.json +0 -53
- package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.json +0 -45
- package/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSY.sol +0 -167
- package/contracts/core/StandardizedYield/implementations/Convex/Pendle3CrvHelper.sol +0 -83
- package/contracts/interfaces/ICelerMessageBus.sol +0 -28
- package/contracts/interfaces/ICelerMessageReceiverApp.sol +0 -25
|
@@ -35,35 +35,6 @@ library MarketMathStatic {
|
|
|
35
35
|
);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
function addLiquidityDualTokenAndPtStatic(
|
|
39
|
-
address market,
|
|
40
|
-
address tokenIn,
|
|
41
|
-
uint256 netTokenDesired,
|
|
42
|
-
uint256 netPtDesired
|
|
43
|
-
)
|
|
44
|
-
external
|
|
45
|
-
view
|
|
46
|
-
returns (
|
|
47
|
-
uint256 netLpOut,
|
|
48
|
-
uint256 netTokenUsed,
|
|
49
|
-
uint256 netPtUsed
|
|
50
|
-
)
|
|
51
|
-
{
|
|
52
|
-
(IStandardizedYield SY, , ) = IPMarket(market).readTokens();
|
|
53
|
-
|
|
54
|
-
uint256 syDesired = SY.previewDeposit(tokenIn, netTokenDesired);
|
|
55
|
-
uint256 syUsed;
|
|
56
|
-
|
|
57
|
-
MarketState memory state = IPMarket(market).readState();
|
|
58
|
-
(, netLpOut, syUsed, netPtUsed) = state.addLiquidity(
|
|
59
|
-
syDesired,
|
|
60
|
-
netPtDesired,
|
|
61
|
-
block.timestamp
|
|
62
|
-
);
|
|
63
|
-
|
|
64
|
-
netTokenUsed = (netTokenDesired * syUsed).rawDivUp(syDesired);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
38
|
/// @dev netPtToSwap is the parameter to approx
|
|
68
39
|
function addLiquiditySinglePtStatic(
|
|
69
40
|
address market,
|
|
@@ -140,31 +111,6 @@ library MarketMathStatic {
|
|
|
140
111
|
priceImpact = calcPriceImpact(market, netPtFromSwap.Int());
|
|
141
112
|
}
|
|
142
113
|
|
|
143
|
-
/// @dev netPtFromSwap is the parameter to approx
|
|
144
|
-
function addLiquiditySingleBaseTokenStatic(
|
|
145
|
-
address market,
|
|
146
|
-
address baseToken,
|
|
147
|
-
uint256 netBaseTokenIn,
|
|
148
|
-
ApproxParams memory approxParams
|
|
149
|
-
)
|
|
150
|
-
external
|
|
151
|
-
returns (
|
|
152
|
-
uint256 netLpOut,
|
|
153
|
-
uint256 netPtFromSwap,
|
|
154
|
-
uint256 netSyFee,
|
|
155
|
-
uint256 priceImpact
|
|
156
|
-
)
|
|
157
|
-
{
|
|
158
|
-
(IStandardizedYield SY, , ) = IPMarket(market).readTokens();
|
|
159
|
-
|
|
160
|
-
return
|
|
161
|
-
addLiquiditySingleSyStatic(
|
|
162
|
-
market,
|
|
163
|
-
SY.previewDeposit(baseToken, netBaseTokenIn),
|
|
164
|
-
approxParams
|
|
165
|
-
);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
114
|
function removeLiquidityDualSyAndPtStatic(address market, uint256 netLpToRemove)
|
|
169
115
|
external
|
|
170
116
|
view
|
|
@@ -174,20 +120,6 @@ library MarketMathStatic {
|
|
|
174
120
|
(netSyOut, netPtOut) = state.removeLiquidity(netLpToRemove);
|
|
175
121
|
}
|
|
176
122
|
|
|
177
|
-
function removeLiquidityDualTokenAndPtStatic(
|
|
178
|
-
address market,
|
|
179
|
-
uint256 metLpToRemove,
|
|
180
|
-
address tokenOut
|
|
181
|
-
) external view returns (uint256 netTokenOut, uint256 netPtOut) {
|
|
182
|
-
(IStandardizedYield SY, , ) = IPMarket(market).readTokens();
|
|
183
|
-
|
|
184
|
-
uint256 netSyOut;
|
|
185
|
-
MarketState memory state = IPMarket(market).readState();
|
|
186
|
-
(netSyOut, netPtOut) = state.removeLiquidity(metLpToRemove);
|
|
187
|
-
|
|
188
|
-
netTokenOut = SY.previewRedeem(tokenOut, netSyOut);
|
|
189
|
-
}
|
|
190
|
-
|
|
191
123
|
/// @dev netPtFromSwap is the parameter to approx
|
|
192
124
|
function removeLiquiditySinglePtStatic(
|
|
193
125
|
address market,
|
|
@@ -243,25 +175,6 @@ library MarketMathStatic {
|
|
|
243
175
|
}
|
|
244
176
|
}
|
|
245
177
|
|
|
246
|
-
function removeLiquiditySingleBaseTokenStatic(
|
|
247
|
-
address market,
|
|
248
|
-
uint256 netLpToRemove,
|
|
249
|
-
address baseToken
|
|
250
|
-
)
|
|
251
|
-
external
|
|
252
|
-
returns (
|
|
253
|
-
uint256 netBaseTokenOut,
|
|
254
|
-
uint256 netSyFee,
|
|
255
|
-
uint256 priceImpact
|
|
256
|
-
)
|
|
257
|
-
{
|
|
258
|
-
uint256 netSyOut;
|
|
259
|
-
(netSyOut, netSyFee, priceImpact) = removeLiquiditySingleSyStatic(market, netLpToRemove);
|
|
260
|
-
|
|
261
|
-
(IStandardizedYield SY, , ) = IPMarket(market).readTokens();
|
|
262
|
-
netBaseTokenOut = SY.previewRedeem(baseToken, netSyOut);
|
|
263
|
-
}
|
|
264
|
-
|
|
265
178
|
function swapExactPtForSyStatic(address market, uint256 exactPtIn)
|
|
266
179
|
public
|
|
267
180
|
returns (
|
|
@@ -335,49 +248,6 @@ library MarketMathStatic {
|
|
|
335
248
|
priceImpact = calcPriceImpact(market, netPtIn.neg());
|
|
336
249
|
}
|
|
337
250
|
|
|
338
|
-
/// @dev netPtOut is the parameter to approx
|
|
339
|
-
function swapExactBaseTokenForPtStatic(
|
|
340
|
-
address market,
|
|
341
|
-
address baseToken,
|
|
342
|
-
uint256 amountBaseToken,
|
|
343
|
-
ApproxParams memory approxParams
|
|
344
|
-
)
|
|
345
|
-
external
|
|
346
|
-
returns (
|
|
347
|
-
uint256 netPtOut,
|
|
348
|
-
uint256 netSyFee,
|
|
349
|
-
uint256 priceImpact
|
|
350
|
-
)
|
|
351
|
-
{
|
|
352
|
-
(IStandardizedYield SY, , ) = IPMarket(market).readTokens();
|
|
353
|
-
|
|
354
|
-
return
|
|
355
|
-
swapExactSyForPtStatic(
|
|
356
|
-
market,
|
|
357
|
-
SY.previewDeposit(baseToken, amountBaseToken),
|
|
358
|
-
approxParams
|
|
359
|
-
);
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
function swapExactPtForBaseTokenStatic(
|
|
363
|
-
address market,
|
|
364
|
-
uint256 exactPtIn,
|
|
365
|
-
address baseToken
|
|
366
|
-
)
|
|
367
|
-
external
|
|
368
|
-
returns (
|
|
369
|
-
uint256 netBaseTokenOut,
|
|
370
|
-
uint256 netSyFee,
|
|
371
|
-
uint256 priceImpact
|
|
372
|
-
)
|
|
373
|
-
{
|
|
374
|
-
uint256 netSyOut;
|
|
375
|
-
(netSyOut, netSyFee, priceImpact) = swapExactPtForSyStatic(market, exactPtIn);
|
|
376
|
-
|
|
377
|
-
(IStandardizedYield SY, , ) = IPMarket(market).readTokens();
|
|
378
|
-
netBaseTokenOut = SY.previewRedeem(baseToken, netSyOut);
|
|
379
|
-
}
|
|
380
|
-
|
|
381
251
|
function swapSyForExactYtStatic(address market, uint256 exactYtOut)
|
|
382
252
|
external
|
|
383
253
|
returns (
|
|
@@ -477,49 +347,6 @@ library MarketMathStatic {
|
|
|
477
347
|
priceImpact = calcPriceImpact(market, netYtIn.Int());
|
|
478
348
|
}
|
|
479
349
|
|
|
480
|
-
function swapExactYtForBaseTokenStatic(
|
|
481
|
-
address market,
|
|
482
|
-
uint256 exactYtIn,
|
|
483
|
-
address baseToken
|
|
484
|
-
)
|
|
485
|
-
external
|
|
486
|
-
returns (
|
|
487
|
-
uint256 netBaseTokenOut,
|
|
488
|
-
uint256 netSyFee,
|
|
489
|
-
uint256 priceImpact
|
|
490
|
-
)
|
|
491
|
-
{
|
|
492
|
-
uint256 netSyOut;
|
|
493
|
-
(netSyOut, netSyFee, priceImpact) = swapExactYtForSyStatic(market, exactYtIn);
|
|
494
|
-
|
|
495
|
-
(IStandardizedYield SY, , ) = IPMarket(market).readTokens();
|
|
496
|
-
netBaseTokenOut = SY.previewRedeem(baseToken, netSyOut);
|
|
497
|
-
}
|
|
498
|
-
|
|
499
|
-
/// @dev netYtOut is the parameter to approx
|
|
500
|
-
function swapExactBaseTokenForYtStatic(
|
|
501
|
-
address market,
|
|
502
|
-
address baseToken,
|
|
503
|
-
uint256 amountBaseToken,
|
|
504
|
-
ApproxParams memory approxParams
|
|
505
|
-
)
|
|
506
|
-
external
|
|
507
|
-
returns (
|
|
508
|
-
uint256 netYtOut,
|
|
509
|
-
uint256 netSyFee,
|
|
510
|
-
uint256 priceImpact
|
|
511
|
-
)
|
|
512
|
-
{
|
|
513
|
-
(IStandardizedYield SY, , ) = IPMarket(market).readTokens();
|
|
514
|
-
|
|
515
|
-
return
|
|
516
|
-
swapExactSyForYtStatic(
|
|
517
|
-
market,
|
|
518
|
-
SY.previewDeposit(baseToken, amountBaseToken),
|
|
519
|
-
approxParams
|
|
520
|
-
);
|
|
521
|
-
}
|
|
522
|
-
|
|
523
350
|
// totalPtToSwap is the param to approx
|
|
524
351
|
function swapExactPtForYt(
|
|
525
352
|
address market,
|
|
@@ -4,13 +4,15 @@ pragma solidity 0.8.17;
|
|
|
4
4
|
import "../interfaces/IPYieldContractFactory.sol";
|
|
5
5
|
import "../interfaces/IPMarketFactory.sol";
|
|
6
6
|
import "../interfaces/IPVotingEscrowMainchain.sol";
|
|
7
|
+
import "../interfaces/IPBulkSellerFactory.sol";
|
|
8
|
+
import "../interfaces/IPBulkSeller.sol";
|
|
7
9
|
|
|
8
10
|
import "./MarketMathStatic.sol";
|
|
9
11
|
|
|
10
12
|
import "../core/libraries/BoringOwnableUpgradeable.sol";
|
|
11
13
|
import "../LiquidityMining/libraries/VeBalanceLib.sol";
|
|
12
14
|
|
|
13
|
-
import "@openzeppelin/contracts/proxy/utils/Initializable.sol";
|
|
15
|
+
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
|
14
16
|
import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";
|
|
15
17
|
|
|
16
18
|
/// EXCLUDED FROM ALL AUDITS, TO BE CALLED ONLY BY PENDLE's SDK
|
|
@@ -58,15 +60,18 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
|
|
|
58
60
|
IPYieldContractFactory internal immutable yieldContractFactory;
|
|
59
61
|
IPMarketFactory internal immutable marketFactory;
|
|
60
62
|
IPVotingEscrowMainchain internal immutable vePENDLE;
|
|
63
|
+
IPBulkSellerFactory internal immutable bulkFactory;
|
|
61
64
|
|
|
62
65
|
constructor(
|
|
63
66
|
IPYieldContractFactory _yieldContractFactory,
|
|
64
67
|
IPMarketFactory _marketFactory,
|
|
65
|
-
IPVotingEscrowMainchain _vePENDLE
|
|
68
|
+
IPVotingEscrowMainchain _vePENDLE,
|
|
69
|
+
IPBulkSellerFactory _bulkFactory
|
|
66
70
|
) initializer {
|
|
67
71
|
yieldContractFactory = _yieldContractFactory;
|
|
68
72
|
marketFactory = _marketFactory;
|
|
69
73
|
vePENDLE = _vePENDLE;
|
|
74
|
+
bulkFactory = _bulkFactory;
|
|
70
75
|
}
|
|
71
76
|
|
|
72
77
|
function initialize() external initializer {
|
|
@@ -283,6 +288,7 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
|
|
|
283
288
|
address market,
|
|
284
289
|
address tokenIn,
|
|
285
290
|
uint256 netTokenDesired,
|
|
291
|
+
address bulk,
|
|
286
292
|
uint256 netPtDesired
|
|
287
293
|
)
|
|
288
294
|
external
|
|
@@ -293,13 +299,23 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
|
|
|
293
299
|
uint256 netPtUsed
|
|
294
300
|
)
|
|
295
301
|
{
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
302
|
+
uint256 netSyDesired = previewDepositStatic(
|
|
303
|
+
getSyMarket(market),
|
|
304
|
+
tokenIn,
|
|
305
|
+
netTokenDesired,
|
|
306
|
+
bulk
|
|
307
|
+
);
|
|
308
|
+
|
|
309
|
+
uint256 netSyUsed;
|
|
310
|
+
(netLpOut, netSyUsed, netPtUsed) = MarketMathStatic.addLiquidityDualSyAndPtStatic(
|
|
311
|
+
market,
|
|
312
|
+
netSyDesired,
|
|
313
|
+
netPtDesired
|
|
314
|
+
);
|
|
315
|
+
|
|
316
|
+
if (netSyUsed != netSyDesired) revert Errors.RouterNotAllSyUsed(netSyDesired, netSyUsed);
|
|
317
|
+
|
|
318
|
+
netTokenUsed = netTokenDesired;
|
|
303
319
|
}
|
|
304
320
|
|
|
305
321
|
function addLiquiditySinglePtStatic(address market, uint256 netPtIn)
|
|
@@ -331,7 +347,8 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
|
|
|
331
347
|
function addLiquiditySingleBaseTokenStatic(
|
|
332
348
|
address market,
|
|
333
349
|
address baseToken,
|
|
334
|
-
uint256 netBaseTokenIn
|
|
350
|
+
uint256 netBaseTokenIn,
|
|
351
|
+
address bulk
|
|
335
352
|
)
|
|
336
353
|
external
|
|
337
354
|
returns (
|
|
@@ -341,13 +358,15 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
|
|
|
341
358
|
uint256 priceImpact
|
|
342
359
|
)
|
|
343
360
|
{
|
|
361
|
+
uint256 netSyIn = previewDepositStatic(
|
|
362
|
+
getSyMarket(market),
|
|
363
|
+
baseToken,
|
|
364
|
+
netBaseTokenIn,
|
|
365
|
+
bulk
|
|
366
|
+
);
|
|
367
|
+
|
|
344
368
|
return
|
|
345
|
-
MarketMathStatic.
|
|
346
|
-
market,
|
|
347
|
-
baseToken,
|
|
348
|
-
netBaseTokenIn,
|
|
349
|
-
getDefaultApproxParams()
|
|
350
|
-
);
|
|
369
|
+
MarketMathStatic.addLiquiditySingleSyStatic(market, netSyIn, getDefaultApproxParams());
|
|
351
370
|
}
|
|
352
371
|
|
|
353
372
|
function removeLiquidityDualSyAndPtStatic(address market, uint256 netLpToRemove)
|
|
@@ -361,10 +380,17 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
|
|
|
361
380
|
function removeLiquidityDualTokenAndPtStatic(
|
|
362
381
|
address market,
|
|
363
382
|
uint256 netLpToRemove,
|
|
364
|
-
address tokenOut
|
|
383
|
+
address tokenOut,
|
|
384
|
+
address bulk
|
|
365
385
|
) external view returns (uint256 netTokenOut, uint256 netPtOut) {
|
|
366
|
-
|
|
367
|
-
|
|
386
|
+
uint256 netSyOut;
|
|
387
|
+
|
|
388
|
+
(netSyOut, netPtOut) = MarketMathStatic.removeLiquidityDualSyAndPtStatic(
|
|
389
|
+
market,
|
|
390
|
+
netLpToRemove
|
|
391
|
+
);
|
|
392
|
+
|
|
393
|
+
netTokenOut = previewRedeemStatic(getSyMarket(market), tokenOut, netSyOut, bulk);
|
|
368
394
|
}
|
|
369
395
|
|
|
370
396
|
function removeLiquiditySinglePtStatic(address market, uint256 netLpToRemove)
|
|
@@ -398,7 +424,8 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
|
|
|
398
424
|
function removeLiquiditySingleBaseTokenStatic(
|
|
399
425
|
address market,
|
|
400
426
|
uint256 netLpToRemove,
|
|
401
|
-
address baseToken
|
|
427
|
+
address baseToken,
|
|
428
|
+
address bulk
|
|
402
429
|
)
|
|
403
430
|
external
|
|
404
431
|
returns (
|
|
@@ -407,12 +434,14 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
|
|
|
407
434
|
uint256 priceImpact
|
|
408
435
|
)
|
|
409
436
|
{
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
437
|
+
uint256 netSyOut;
|
|
438
|
+
|
|
439
|
+
(netSyOut, netSyFee, priceImpact) = MarketMathStatic.removeLiquiditySingleSyStatic(
|
|
440
|
+
market,
|
|
441
|
+
netLpToRemove
|
|
442
|
+
);
|
|
443
|
+
|
|
444
|
+
netBaseTokenOut = previewRedeemStatic(getSyMarket(market), baseToken, netSyOut, bulk);
|
|
416
445
|
}
|
|
417
446
|
|
|
418
447
|
function swapExactPtForSyStatic(address market, uint256 exactPtIn)
|
|
@@ -464,7 +493,8 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
|
|
|
464
493
|
function swapExactBaseTokenForPtStatic(
|
|
465
494
|
address market,
|
|
466
495
|
address baseToken,
|
|
467
|
-
uint256 amountBaseToken
|
|
496
|
+
uint256 amountBaseToken,
|
|
497
|
+
address bulk
|
|
468
498
|
)
|
|
469
499
|
external
|
|
470
500
|
returns (
|
|
@@ -473,19 +503,20 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
|
|
|
473
503
|
uint256 priceImpact
|
|
474
504
|
)
|
|
475
505
|
{
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
506
|
+
uint256 netSyIn = previewDepositStatic(
|
|
507
|
+
getSyMarket(market),
|
|
508
|
+
baseToken,
|
|
509
|
+
amountBaseToken,
|
|
510
|
+
bulk
|
|
511
|
+
);
|
|
512
|
+
return MarketMathStatic.swapExactSyForPtStatic(market, netSyIn, getDefaultApproxParams());
|
|
483
513
|
}
|
|
484
514
|
|
|
485
515
|
function swapExactPtForBaseTokenStatic(
|
|
486
516
|
address market,
|
|
487
517
|
uint256 exactPtIn,
|
|
488
|
-
address baseToken
|
|
518
|
+
address baseToken,
|
|
519
|
+
address bulk
|
|
489
520
|
)
|
|
490
521
|
external
|
|
491
522
|
returns (
|
|
@@ -494,7 +525,13 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
|
|
|
494
525
|
uint256 priceImpact
|
|
495
526
|
)
|
|
496
527
|
{
|
|
497
|
-
|
|
528
|
+
uint256 netSyOut;
|
|
529
|
+
(netSyOut, netSyFee, priceImpact) = MarketMathStatic.swapExactPtForSyStatic(
|
|
530
|
+
market,
|
|
531
|
+
exactPtIn
|
|
532
|
+
);
|
|
533
|
+
|
|
534
|
+
netBaseTokenOut = previewRedeemStatic(getSyMarket(market), baseToken, netSyOut, bulk);
|
|
498
535
|
}
|
|
499
536
|
|
|
500
537
|
function swapSyForExactYtStatic(address market, uint256 exactYtOut)
|
|
@@ -546,7 +583,8 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
|
|
|
546
583
|
function swapExactYtForBaseTokenStatic(
|
|
547
584
|
address market,
|
|
548
585
|
uint256 exactYtIn,
|
|
549
|
-
address baseToken
|
|
586
|
+
address baseToken,
|
|
587
|
+
address bulk
|
|
550
588
|
)
|
|
551
589
|
external
|
|
552
590
|
returns (
|
|
@@ -555,13 +593,20 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
|
|
|
555
593
|
uint256 priceImpact
|
|
556
594
|
)
|
|
557
595
|
{
|
|
558
|
-
|
|
596
|
+
uint256 netSyOut;
|
|
597
|
+
(netSyOut, netSyFee, priceImpact) = MarketMathStatic.swapExactYtForSyStatic(
|
|
598
|
+
market,
|
|
599
|
+
exactYtIn
|
|
600
|
+
);
|
|
601
|
+
|
|
602
|
+
netBaseTokenOut = previewRedeemStatic(getSyMarket(market), baseToken, netSyOut, bulk);
|
|
559
603
|
}
|
|
560
604
|
|
|
561
605
|
function swapExactBaseTokenForYtStatic(
|
|
562
606
|
address market,
|
|
563
607
|
address baseToken,
|
|
564
|
-
uint256 amountBaseToken
|
|
608
|
+
uint256 amountBaseToken,
|
|
609
|
+
address bulk
|
|
565
610
|
)
|
|
566
611
|
external
|
|
567
612
|
returns (
|
|
@@ -570,13 +615,14 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
|
|
|
570
615
|
uint256 priceImpact
|
|
571
616
|
)
|
|
572
617
|
{
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
618
|
+
uint256 netSyIn = previewDepositStatic(
|
|
619
|
+
getSyMarket(market),
|
|
620
|
+
baseToken,
|
|
621
|
+
amountBaseToken,
|
|
622
|
+
bulk
|
|
623
|
+
);
|
|
624
|
+
|
|
625
|
+
return MarketMathStatic.swapExactSyForYtStatic(market, netSyIn, getDefaultApproxParams());
|
|
580
626
|
}
|
|
581
627
|
|
|
582
628
|
function swapExactPtForYtStatic(address market, uint256 exactPtIn)
|
|
@@ -661,19 +707,49 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
|
|
|
661
707
|
function mintPYFromBaseStatic(
|
|
662
708
|
address YT,
|
|
663
709
|
address baseToken,
|
|
664
|
-
uint256 amountBaseToken
|
|
710
|
+
uint256 amountBaseToken,
|
|
711
|
+
address bulk
|
|
665
712
|
) external returns (uint256 amountPY) {
|
|
666
713
|
IStandardizedYield SY = IStandardizedYield(IPYieldToken(YT).SY());
|
|
667
|
-
|
|
714
|
+
uint256 amountSy = previewDepositStatic(SY, baseToken, amountBaseToken, bulk);
|
|
715
|
+
return mintPYFromSyStatic(YT, amountSy);
|
|
668
716
|
}
|
|
669
717
|
|
|
670
718
|
function redeemPYToBaseStatic(
|
|
671
719
|
address YT,
|
|
672
720
|
uint256 amountPYToRedeem,
|
|
673
|
-
address baseToken
|
|
721
|
+
address baseToken,
|
|
722
|
+
address bulk
|
|
674
723
|
) external returns (uint256 amountBaseToken) {
|
|
675
724
|
IStandardizedYield SY = IStandardizedYield(IPYieldToken(YT).SY());
|
|
676
|
-
|
|
725
|
+
uint256 amountSy = redeemPYToSyStatic(YT, amountPYToRedeem);
|
|
726
|
+
return previewRedeemStatic(SY, baseToken, amountSy, bulk);
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
function previewDepositStatic(
|
|
730
|
+
IStandardizedYield SY,
|
|
731
|
+
address baseToken,
|
|
732
|
+
uint256 amountToken,
|
|
733
|
+
address bulk
|
|
734
|
+
) public view returns (uint256 amountSy) {
|
|
735
|
+
if (bulk != address(0)) {
|
|
736
|
+
return IPBulkSeller(bulk).calcSwapExactTokenForSy(amountToken);
|
|
737
|
+
} else {
|
|
738
|
+
return SY.previewDeposit(baseToken, amountToken);
|
|
739
|
+
}
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
function previewRedeemStatic(
|
|
743
|
+
IStandardizedYield SY,
|
|
744
|
+
address baseToken,
|
|
745
|
+
uint256 amountSy,
|
|
746
|
+
address bulk
|
|
747
|
+
) public view returns (uint256 amountBaseToken) {
|
|
748
|
+
if (bulk != address(0)) {
|
|
749
|
+
return IPBulkSeller(bulk).calcSwapExactSyForToken(amountSy);
|
|
750
|
+
} else {
|
|
751
|
+
return SY.previewRedeem(baseToken, amountSy);
|
|
752
|
+
}
|
|
677
753
|
}
|
|
678
754
|
|
|
679
755
|
function getPtImpliedYield(address market) public view returns (int256) {
|
|
@@ -717,4 +793,67 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
|
|
|
717
793
|
return (SY.getTokensIn(), SY.getTokensOut());
|
|
718
794
|
}
|
|
719
795
|
}
|
|
796
|
+
|
|
797
|
+
function getAmountTokenToMintSy(
|
|
798
|
+
IStandardizedYield SY,
|
|
799
|
+
address tokenIn,
|
|
800
|
+
address bulk,
|
|
801
|
+
uint256 netSyOut
|
|
802
|
+
) public view returns (uint256 netTokenIn) {
|
|
803
|
+
uint256 pivotAmount = netSyOut;
|
|
804
|
+
|
|
805
|
+
uint256 low = pivotAmount;
|
|
806
|
+
{
|
|
807
|
+
while (true) {
|
|
808
|
+
uint256 lowSyOut = previewDepositStatic(SY, tokenIn, low, bulk);
|
|
809
|
+
if (lowSyOut >= netSyOut) low /= 10;
|
|
810
|
+
else break;
|
|
811
|
+
}
|
|
812
|
+
}
|
|
813
|
+
|
|
814
|
+
uint256 high = pivotAmount;
|
|
815
|
+
{
|
|
816
|
+
while (true) {
|
|
817
|
+
uint256 highSyOut = previewDepositStatic(SY, tokenIn, high, bulk);
|
|
818
|
+
if (highSyOut < netSyOut) high *= 10;
|
|
819
|
+
else break;
|
|
820
|
+
}
|
|
821
|
+
}
|
|
822
|
+
|
|
823
|
+
while (low <= high) {
|
|
824
|
+
uint256 mid = (low + high) / 2;
|
|
825
|
+
uint256 syOut = previewDepositStatic(SY, tokenIn, mid, bulk);
|
|
826
|
+
|
|
827
|
+
if (syOut >= netSyOut) {
|
|
828
|
+
netTokenIn = mid;
|
|
829
|
+
high = mid - 1;
|
|
830
|
+
} else {
|
|
831
|
+
low = mid + 1;
|
|
832
|
+
}
|
|
833
|
+
}
|
|
834
|
+
|
|
835
|
+
assert(netTokenIn > 0);
|
|
836
|
+
}
|
|
837
|
+
|
|
838
|
+
function getSyMarket(address market) public view returns (IStandardizedYield) {
|
|
839
|
+
(IStandardizedYield SY, , ) = IPMarket(market).readTokens();
|
|
840
|
+
return SY;
|
|
841
|
+
}
|
|
842
|
+
|
|
843
|
+
function getBulkSellerInfo(address token, address SY)
|
|
844
|
+
external
|
|
845
|
+
view
|
|
846
|
+
returns (
|
|
847
|
+
address bulk,
|
|
848
|
+
uint256 totalToken,
|
|
849
|
+
uint256 totalSy
|
|
850
|
+
)
|
|
851
|
+
{
|
|
852
|
+
bulk = IPBulkSellerFactory(bulkFactory).get(token, SY);
|
|
853
|
+
if (bulk != address(0)) {
|
|
854
|
+
BulkSellerState memory state = IPBulkSeller(bulk).readState();
|
|
855
|
+
totalToken = state.totalToken;
|
|
856
|
+
totalSy = state.totalSy;
|
|
857
|
+
}
|
|
858
|
+
}
|
|
720
859
|
}
|