@pendle/core-v2 1.4.0-mainnet → 1.4.0-testnet
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 +2 -2
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.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 +2 -2
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +3 -3
- package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.json +39 -0
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +3 -3
- 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 +1 -1
- package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +2 -2
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +2 -2
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +2 -2
- 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 +2 -2
- 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/SYUtils.sol/SYUtils.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/SYUtils.sol/SYUtils.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSY.sol/PendleAuraWethAnkrethSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSY.sol/PendleAuraWethAnkrethSY.json +1192 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol/FixedPoint.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol/PendleAuraBalancerStableLPSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.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 +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.json +50 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +1163 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.json +974 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
- 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 +2 -2
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
- package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +4 -0
- package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.json +66 -0
- package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +4 -0
- package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +476 -0
- package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +4 -0
- package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +590 -0
- package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +4 -0
- package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +1017 -0
- 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/ArrayLib.sol/ArrayLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.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 +2 -2
- 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/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 +50 -2
- package/build/artifacts/contracts/core/libraries/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.json +2 -2
- package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.json +2 -2
- package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.json +2 -2
- package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IGauge.sol/IGauge.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol/ILiquidityGaugeFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IRateProvider.sol/IRateProvider.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ConvexCurve/ICrvDepositor.sol/ICrvDepositor.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ConvexCurve/ICvxCrv.sol/ICvxCrv.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/{IAToken.sol/IAToken.json → GMX/IGMXVault.sol/IGMXVault.json} +130 -74
- package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/{IREDACTEDStaking.sol/IREDACTEDStaking.json → GMX/IGlpManager.sol/IGlpManager.json} +24 -47
- package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/{IWAvax.sol/IWAvax.json → GMX/IRewardRouterV2.sol/IRewardRouterV2.json} +86 -137
- package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.json +45 -0
- package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.json +48 -0
- package/build/artifacts/contracts/interfaces/IApeStaking.sol/IApeStaking.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.json +93 -0
- package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.json +87 -0
- package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.json +19 -0
- package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ILooksFeeSharing.sol/ILooksFeeSharing.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ILooksStaking.sol/ILooksStaking.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json +338 -16
- package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.json +307 -0
- package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.json +269 -0
- package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.json +1260 -0
- package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json +105 -224
- package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.json +273 -0
- package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.json +56 -12
- package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/{IPActionSwapPTYT.sol/IPActionSwapPTYT.json → IPActionStorageStatic.sol/IPActionStorageStatic.json} +70 -76
- package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.json +52 -8
- package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.json +231 -8
- package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.json +40 -0
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +675 -241
- package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.json +40 -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/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.json +55 -0
- package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +2322 -0
- package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.json +39 -0
- 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/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.json +679 -0
- package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.json +143 -0
- package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +256 -0
- package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/PendleMulticall.sol/PendleMulticall.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +30 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +307 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +333 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +1397 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +310 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +228 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +93 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.json +10 -0
- package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +345 -62
- package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +107 -260
- package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +57 -18
- package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +54 -65
- package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +342 -44
- package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
- package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +76 -67
- package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +4 -0
- package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.json +141 -0
- package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json +1 -15
- package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.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/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.json +160 -0
- package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.json +10 -0
- package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.json +56 -0
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwapArbitrum.sol/PendleSwapArbitrum.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwapArbitrum.sol/PendleSwapArbitrum.json +76 -0
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwapEthereum.sol/PendleSwapEthereum.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwapEthereum.sol/PendleSwapEthereum.json +76 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +4 -0
- package/build/artifacts/contracts/router/{kyberswap/interfaces → swap-aggregator/kyberswap/arbitrum}/IAggregationExecutor.sol/IAggregationExecutor.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper1.sol/IExecutorHelper1.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper1.sol/IExecutorHelper1.json +388 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper2.sol/IExecutorHelper2.dbg.json +4 -0
- package/build/artifacts/contracts/router/{kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.json → swap-aggregator/kyberswap/arbitrum/IExecutorHelper2.sol/IExecutorHelper2.json} +13 -8
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IHashflow.sol/IHashflow.dbg.json +4 -0
- package/build/artifacts/contracts/router/{kyberswap/interfaces → swap-aggregator/kyberswap/arbitrum}/IHashflow.sol/IHashflow.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +4 -0
- package/build/artifacts/contracts/router/{kyberswap/interfaces → swap-aggregator/kyberswap/arbitrum}/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/KyberHelperArbitrum.sol/KyberHelperArbitrum.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/KyberHelperArbitrum.sol/KyberHelperArbitrum.json +10 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/ScaleDataHelperArbitrum.sol/ScaleDataHelperArbitrum.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/ScaleDataHelperArbitrum.sol/ScaleDataHelperArbitrum.json +10 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IAggregationExecutor.sol/IAggregationExecutor.json +65 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +4 -0
- package/build/artifacts/contracts/router/{kyberswap/interfaces → swap-aggregator/kyberswap/ethereum}/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.json +30 -1
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IHashflow.sol/IHashflow.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IHashflow.sol/IHashflow.json +101 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +4 -0
- package/build/artifacts/contracts/router/{kyberswap/interfaces/IMetaAggregationRouter.sol/IMetaAggregationRouter.json → swap-aggregator/kyberswap/ethereum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json} +82 -50
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/KyberHelperEthereum.sol/KyberHelperEthereum.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/KyberHelperEthereum.sol/KyberHelperEthereum.json +10 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/ScaleDataHelperEthereum.sol/ScaleDataHelperEthereum.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/ScaleDataHelperEthereum.sol/ScaleDataHelperEthereum.json +10 -0
- package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol +4 -5
- package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol +3 -6
- package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol +7 -10
- package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol +8 -10
- package/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol +18 -8
- package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +3 -5
- package/contracts/LiquidityMining/README.md +49 -46
- package/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol +9 -14
- package/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +4 -10
- package/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +23 -36
- package/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +18 -24
- package/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +3 -4
- package/contracts/LiquidityMining/libraries/VeBalanceLib.sol +20 -26
- package/contracts/core/BulkSeller/BulkSeller.sol +1 -5
- package/contracts/core/BulkSeller/BulkSellerFactory.sol +4 -5
- package/contracts/core/BulkSeller/BulkSellerMathCore.sol +20 -25
- package/contracts/core/Market/MarketMathCore.sol +23 -69
- package/contracts/core/Market/OracleLib.sol +4 -4
- package/contracts/core/Market/PendleGauge.sol +7 -20
- package/contracts/core/Market/PendleMarket.sol +5 -15
- package/contracts/core/Market/PendleMarketFactory.sol +3 -9
- package/contracts/core/RewardManager/RewardManager.sol +5 -7
- package/contracts/core/RewardManager/RewardManagerAbstract.sol +4 -4
- package/contracts/core/StandardizedYield/PYIndex.sol +7 -36
- package/contracts/core/StandardizedYield/SYBase.sol +20 -26
- package/contracts/core/StandardizedYield/SYBaseWithRewards.sol +7 -19
- package/contracts/core/StandardizedYield/SYUtils.sol +4 -5
- package/contracts/core/StandardizedYield/StEthHelper.sol +12 -16
- package/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol +14 -24
- package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSY.sol +127 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol +12 -20
- package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol +12 -20
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol +1 -5
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol +28 -44
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol +28 -47
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol +6 -10
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol +6 -10
- package/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol +13 -22
- package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol +20 -27
- package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol +20 -27
- package/contracts/core/StandardizedYield/implementations/Convex/README.md +4 -4
- package/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol +32 -40
- package/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol +10 -12
- package/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol +14 -18
- package/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol +32 -48
- package/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol +141 -0
- package/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol +214 -0
- package/contracts/core/StandardizedYield/implementations/GLP/README.md +63 -0
- package/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol +112 -0
- package/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol +13 -23
- package/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol +13 -23
- package/contracts/core/YieldContracts/PendleYieldToken.sol +28 -44
- package/contracts/core/YieldContractsV2/InterestManagerYTV2.sol +114 -0
- package/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol +63 -0
- package/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol +200 -0
- package/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol +471 -0
- package/contracts/core/erc20/PendleERC20.sol +14 -44
- package/contracts/core/libraries/ArrayLib.sol +20 -9
- package/contracts/core/libraries/BaseSplitCodeFactory.sol +5 -7
- package/contracts/core/libraries/BoringOwnableUpgradeable.sol +1 -5
- package/contracts/core/libraries/Errors.sol +5 -2
- package/contracts/core/libraries/StringLib.sol +14 -20
- package/contracts/core/libraries/TokenHelper.sol +11 -26
- package/contracts/core/libraries/math/LogExpMath.sol +2 -2
- package/contracts/core/libraries/math/Math.sol +3 -15
- package/contracts/interfaces/Balancer/IComposableStable.sol +4 -14
- package/contracts/interfaces/Balancer/IMetaStablePool.sol +4 -13
- package/contracts/interfaces/Balancer/IVault.sol +4 -6
- package/contracts/interfaces/ConvexCurve/IBooster.sol +4 -16
- package/contracts/interfaces/ConvexCurve/ICrvDepositor.sol +1 -5
- package/contracts/interfaces/ConvexCurve/IRewards.sol +1 -4
- package/contracts/interfaces/Curve/ICrvPool.sol +12 -11
- package/contracts/interfaces/Curve/ITriCrvPool.sol +4 -4
- package/contracts/interfaces/GMX/IGMXVault.sol +47 -0
- package/contracts/interfaces/GMX/IGlpManager.sol +12 -0
- package/contracts/interfaces/GMX/IRewardRouterV2.sol +43 -0
- package/contracts/interfaces/GMX/IVaultPriceFeed.sol +11 -0
- package/contracts/interfaces/IAddressProvider.sol +7 -0
- package/contracts/interfaces/IApeStaking.sol +3 -4
- package/contracts/interfaces/IDiamondCut.sol +36 -0
- package/contracts/interfaces/IDiamondLoupe.sol +40 -0
- package/contracts/interfaces/IERC4626.sol +3 -5
- package/contracts/interfaces/IPActionAddRemoveLiq.sol +38 -16
- package/contracts/interfaces/IPActionInfoStatic.sol +43 -0
- package/contracts/interfaces/IPActionMarketAuxStatic.sol +34 -0
- package/contracts/interfaces/IPActionMarketCoreStatic.sol +335 -0
- package/contracts/interfaces/IPActionMintRedeem.sol +2 -55
- package/contracts/interfaces/IPActionMintRedeemStatic.sol +55 -0
- package/contracts/interfaces/IPActionMisc.sol +18 -4
- package/contracts/interfaces/IPActionStorageStatic.sol +24 -0
- package/contracts/interfaces/IPActionSwapPT.sol +1 -1
- package/contracts/interfaces/IPActionSwapYT.sol +28 -4
- package/contracts/interfaces/IPActionVePendleStatic.sol +9 -0
- package/contracts/interfaces/IPAllAction.sol +5 -3
- package/contracts/interfaces/IPBulkSellerSYCallback.sol +1 -5
- package/contracts/interfaces/IPFeeDistributor.sol +4 -3
- package/contracts/interfaces/IPGaugeController.sol +3 -9
- package/contracts/interfaces/IPInterestManagerYT.sol +3 -4
- package/contracts/interfaces/IPInterestManagerYTV2.sol +11 -0
- package/contracts/interfaces/IPLiquidityMigrator.sol +130 -0
- package/contracts/interfaces/IPMarket.sol +5 -16
- package/contracts/interfaces/IPMarketFactory.sol +3 -8
- package/contracts/interfaces/IPMarketSwapCallback.sol +1 -5
- package/contracts/interfaces/IPMiniDiamond.sol +12 -0
- package/contracts/interfaces/IPMsgReceiverApp.sol +1 -1
- package/contracts/interfaces/IPRouterStatic.sol +19 -0
- package/contracts/interfaces/IPVotingController.sol +11 -6
- package/contracts/interfaces/IPVotingEscrowMainchain.sol +8 -7
- package/contracts/interfaces/IPYieldToken.sol +4 -3
- package/contracts/interfaces/IPYieldTokenV2.sol +67 -0
- package/contracts/interfaces/IRewardManager.sol +4 -4
- package/contracts/interfaces/IStETH.sol +4 -3
- package/contracts/interfaces/IStandardizedYield.sol +10 -14
- package/contracts/interfaces/IStargateRouter.sol +1 -5
- package/contracts/offchain-helpers/AddressProvider.sol +16 -0
- package/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol +4 -1
- package/contracts/offchain-helpers/Broadcaster.sol +48 -0
- package/contracts/offchain-helpers/BulkSellerOffchain.sol +7 -11
- package/contracts/offchain-helpers/Multicall2.sol +14 -24
- package/contracts/offchain-helpers/router-static/PendleRouterStatic.sol +19 -0
- package/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol +122 -0
- package/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol +165 -0
- package/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol +780 -0
- package/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol +158 -0
- package/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol +76 -0
- package/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol +55 -0
- package/contracts/offchain-helpers/router-static/base/StorageLayout.sol +21 -0
- package/contracts/router/ActionAddRemoveLiq.sol +118 -24
- package/contracts/router/ActionMintRedeem.sol +12 -202
- package/contracts/router/ActionMisc.sol +45 -19
- package/contracts/router/ActionSwapPT.sol +0 -5
- package/contracts/router/ActionSwapYT.sol +109 -13
- package/contracts/router/PendleRouter.sol +211 -72
- package/contracts/router/PendleRouterHelper.sol +315 -0
- package/contracts/router/{ActionCallback.sol → base/ActionBaseCallback.sol} +49 -49
- package/contracts/router/base/ActionBaseMintRedeem.sol +108 -64
- package/contracts/router/base/CallbackHelper.sol +136 -54
- package/contracts/router/base/MarketApproxLib.sol +243 -430
- package/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol +39 -0
- package/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol +68 -0
- package/contracts/router/swap-aggregator/IPSwapAggregator.sol +21 -0
- package/contracts/router/swap-aggregator/PendleSwapArbitrum.sol +45 -0
- package/contracts/router/swap-aggregator/PendleSwapEthereum.sol +44 -0
- package/contracts/router/swap-aggregator/kyberswap/arbitrum/IAggregationExecutor.sol +17 -0
- package/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper1.sol +195 -0
- package/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper2.sol +10 -0
- package/contracts/router/swap-aggregator/kyberswap/arbitrum/IMetaAggregationRouterV2.sol +41 -0
- package/contracts/router/swap-aggregator/kyberswap/arbitrum/KyberHelperArbitrum.sol +200 -0
- package/contracts/router/swap-aggregator/kyberswap/arbitrum/ScaleDataHelperArbitrum.sol +135 -0
- package/contracts/router/swap-aggregator/kyberswap/ethereum/IAggregationExecutor.sol +17 -0
- package/contracts/router/{kyberswap/interfaces → swap-aggregator/kyberswap/ethereum}/IExecutorHelperEthereum1.sol +6 -0
- package/contracts/router/swap-aggregator/kyberswap/ethereum/IHashflow.sol +30 -0
- package/contracts/router/{kyberswap/interfaces → swap-aggregator/kyberswap/ethereum}/IMetaAggregationRouterV2.sol +3 -4
- package/contracts/router/{kyberswap/AggregationRouterHelper.sol → swap-aggregator/kyberswap/ethereum/KyberHelperEthereum.sol} +21 -137
- package/contracts/router/{kyberswap/ScaleDataHelperEthereum1.sol → swap-aggregator/kyberswap/ethereum/ScaleDataHelperEthereum.sol} +15 -2
- package/deployments/43113-core.json +31 -0
- package/deployments/43113-markets/APE-30-MARCH.json +10 -0
- package/deployments/43113-markets/USDC-FEB-2ND-2024.json +10 -0
- package/deployments/43113-markets/USDC-FEB-2ND.json +10 -0
- package/deployments/43113-markets/USDC-FEB-4TH.json +10 -0
- package/deployments/43113-markets/USDC-MAR-28TH.json +10 -0
- package/deployments/43113-markets/WETH-FEB-2ND.json +11 -0
- package/deployments/43113-markets/WETH-FEB-4TH.json +11 -0
- package/deployments/43113-offchain-helper.json +4 -0
- package/deployments/43113-testenv.json +22 -0
- package/deployments/80001-core.json +30 -0
- package/deployments/80001-markets/GLP-DEC-8TH.json +10 -0
- package/deployments/80001-markets/USDC-DEC-8TH.json +10 -0
- package/deployments/80001-markets/USDC-FEB-4TH.json +10 -0
- package/deployments/80001-markets/WETH-FEB-4TH.json +11 -0
- package/deployments/80001-offchain-helper.json +4 -0
- package/deployments/80001-testenv.json +22 -0
- package/package.json +10 -10
- package/typechain-types/ActionAddRemoveLiq.ts +203 -23
- package/typechain-types/ActionBaseCallback.ts +115 -0
- package/typechain-types/ActionInfoStatic.ts +310 -0
- package/typechain-types/ActionMarketAuxStatic.ts +350 -0
- package/typechain-types/ActionMarketCoreStatic.ts +1485 -0
- package/typechain-types/ActionMintRedeem.ts +29 -230
- package/typechain-types/ActionMintRedeemStatic.ts +461 -0
- package/typechain-types/ActionMisc.ts +77 -27
- package/typechain-types/ActionStorageStatic.ts +405 -0
- package/typechain-types/ActionSwapPT.ts +26 -31
- package/typechain-types/ActionSwapYT.ts +202 -21
- package/typechain-types/ActionVePendleStatic.ts +113 -0
- package/typechain-types/AddressProvider.ts +280 -0
- package/typechain-types/Broadcaster.ts +454 -0
- package/typechain-types/GLPPreviewHelper.ts +121 -0
- package/typechain-types/GMXPreviewHelper.ts +40 -0
- package/typechain-types/IAddressProvider.ts +123 -0
- package/typechain-types/IChainlinkAggregator.ts +246 -0
- package/typechain-types/IDiamondCut.ts +152 -0
- package/typechain-types/IDiamondLoupe.ts +190 -0
- package/typechain-types/IERC4626.ts +34 -0
- package/typechain-types/IExecutorHelper1.ts +643 -0
- package/typechain-types/IExecutorHelper2.ts +115 -0
- package/typechain-types/IExecutorHelperEthereum1.ts +44 -0
- package/typechain-types/IGlpManager.ts +50 -0
- package/typechain-types/IPActionAddRemoveLiq.ts +213 -14
- package/typechain-types/IPActionInfoStatic.ts +310 -0
- package/typechain-types/IPActionMarketAuxStatic.ts +350 -0
- package/typechain-types/IPActionMarketCoreStatic.ts +1485 -0
- package/typechain-types/IPActionMintRedeem.ts +29 -211
- package/typechain-types/IPActionMintRedeemStatic.ts +461 -0
- package/typechain-types/IPActionMisc.ts +77 -27
- package/typechain-types/IPActionStorageStatic.ts +328 -0
- package/typechain-types/IPActionSwapPT.ts +26 -12
- package/typechain-types/IPActionSwapYT.ts +168 -12
- package/typechain-types/IPActionVePendleStatic.ts +113 -0
- package/typechain-types/IPAllAction.ts +445 -227
- package/typechain-types/IPInterestManagerYTV2.ts +117 -0
- package/typechain-types/IPLiquidityMigrator.ts +565 -0
- package/typechain-types/IPMiniDiamond.ts +147 -0
- package/typechain-types/IPMsgReceiverApp.ts +5 -5
- package/typechain-types/IPRouterStatic.ts +2392 -509
- package/typechain-types/IPSwapAggregator.ts +126 -0
- package/typechain-types/IPVotingController.ts +96 -0
- package/typechain-types/IPYieldTokenV2.ts +9 -23
- package/typechain-types/IRewardRouterV2.ts +60 -17
- package/typechain-types/IStargateLP.ts +306 -0
- package/typechain-types/IStargateStaking.ts +232 -0
- package/typechain-types/InputScalingHelper.ts +108 -0
- package/typechain-types/InterestManagerYTV2.ts +36 -3
- package/typechain-types/PendleAuraWethAnkrethSY.ts +1523 -0
- package/typechain-types/PendleGDaiSY.ts +1229 -0
- package/typechain-types/PendleGaugeControllerSidechainUpg.ts +4 -4
- package/typechain-types/PendleGlpSY.ts +67 -0
- package/typechain-types/PendleMsgReceiverAppUpg.ts +5 -5
- package/typechain-types/PendlePtOracleBase.ts +139 -0
- package/typechain-types/PendleRouter.ts +109 -131
- package/typechain-types/PendleRouterHelper.ts +647 -0
- package/typechain-types/PendleRouterStatic.ts +57 -0
- package/typechain-types/PendleStargateLP.ts +1442 -0
- package/typechain-types/PendleSwapAggregator.ts +126 -0
- package/typechain-types/PendleSwapArbitrum.ts +126 -0
- package/typechain-types/PendleSwapEthereum.ts +126 -0
- package/typechain-types/PendleYieldTokenV2.ts +70 -76
- package/typechain-types/PtFraxUsdcOracle.ts +176 -0
- package/typechain-types/PtStETHOracle.ts +163 -0
- package/typechain-types/RouterStatic.ts +92 -0
- package/typechain-types/VotingControllerStorageUpg.ts +96 -0
- package/typechain-types/VotingEscrowPendleSidechain.ts +4 -5
- package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +346 -68
- package/typechain-types/factories/ActionBaseCallback__factory.ts +156 -0
- package/typechain-types/factories/ActionInfoStatic__factory.ts +360 -0
- package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +390 -0
- package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1454 -0
- package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +367 -0
- package/typechain-types/factories/ActionMintRedeem__factory.ts +108 -266
- package/typechain-types/factories/ActionMisc__factory.ts +56 -17
- package/typechain-types/factories/ActionStorageStatic__factory.ts +281 -0
- package/typechain-types/factories/ActionSwapPT__factory.ts +55 -71
- package/typechain-types/factories/ActionSwapYT__factory.ts +356 -48
- package/typechain-types/factories/ActionVePendleStatic__factory.ts +155 -0
- package/typechain-types/factories/AddressProvider__factory.ts +196 -0
- package/typechain-types/factories/BaseSplitCodeFactoryContract__factory.ts +1 -1
- package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +1 -1
- package/typechain-types/factories/Broadcaster__factory.ts +311 -0
- package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
- package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
- package/typechain-types/factories/BulkSeller__factory.ts +1 -1
- package/typechain-types/factories/Errors__factory.ts +49 -1
- package/typechain-types/factories/GLPPreviewHelper__factory.ts +65 -0
- package/typechain-types/factories/GMXPreviewHelper__factory.ts +26 -0
- package/typechain-types/factories/IAddressProvider__factory.ts +63 -0
- package/typechain-types/factories/IChainlinkAggregator__factory.ts +170 -0
- package/typechain-types/factories/IDiamondCut__factory.ts +105 -0
- package/typechain-types/factories/IDiamondLoupe__factory.ts +99 -0
- package/typechain-types/factories/IERC4626__factory.ts +19 -0
- package/typechain-types/factories/IExecutorHelper1__factory.ts +403 -0
- package/typechain-types/factories/IExecutorHelper2__factory.ts +55 -0
- package/typechain-types/factories/IExecutorHelperEthereum1__factory.ts +29 -0
- package/typechain-types/factories/IGlpManager__factory.ts +26 -0
- package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +338 -16
- package/typechain-types/factories/IPActionInfoStatic__factory.ts +322 -0
- package/typechain-types/factories/IPActionMarketAuxStatic__factory.ts +288 -0
- package/typechain-types/factories/IPActionMarketCoreStatic__factory.ts +1279 -0
- package/typechain-types/factories/IPActionMintRedeemStatic__factory.ts +292 -0
- package/typechain-types/factories/IPActionMintRedeem__factory.ts +105 -224
- package/typechain-types/factories/IPActionMisc__factory.ts +55 -11
- package/typechain-types/factories/IPActionStorageStatic__factory.ts +203 -0
- package/typechain-types/factories/IPActionSwapPT__factory.ts +52 -8
- package/typechain-types/factories/IPActionSwapYT__factory.ts +231 -8
- package/typechain-types/factories/IPActionVePendleStatic__factory.ts +59 -0
- package/typechain-types/factories/IPAllAction__factory.ts +675 -241
- package/typechain-types/factories/IPInterestManagerYTV2__factory.ts +59 -0
- package/typechain-types/factories/IPLiquidityMigrator__factory.ts +677 -0
- package/typechain-types/factories/IPMiniDiamond__factory.ts +67 -0
- package/typechain-types/factories/IPMsgReceiverApp__factory.ts +1 -1
- package/typechain-types/factories/IPRouterStatic__factory.ts +1942 -494
- package/typechain-types/factories/IPSwapAggregator__factory.ts +71 -0
- package/typechain-types/factories/IPVotingController__factory.ts +39 -0
- package/typechain-types/factories/IPYieldTokenV2__factory.ts +6 -14
- package/typechain-types/factories/IRewardRouterV2__factory.ts +43 -7
- package/typechain-types/factories/IStargateLP__factory.ts +212 -0
- package/typechain-types/factories/IStargateStaking__factory.ts +145 -0
- package/typechain-types/factories/InputScalingHelper__factory.ts +88 -0
- package/typechain-types/factories/InterestManagerYTV2__factory.ts +18 -0
- package/typechain-types/factories/MarketMathStatic__factory.ts +1 -27
- package/typechain-types/factories/MetaStableMath__factory.ts +1 -1
- package/typechain-types/factories/MetaStablePreview__factory.ts +1 -1
- package/typechain-types/factories/Multicall2__factory.ts +1 -1
- package/typechain-types/factories/OracleLib__factory.ts +1 -1
- package/typechain-types/factories/PendleAura3EthSY__factory.ts +1 -1
- package/typechain-types/factories/PendleAuraCbethWstethSY__factory.ts +1 -1
- package/typechain-types/factories/PendleAuraWethAnkrethSY__factory.ts +1265 -0
- package/typechain-types/factories/PendleAuraWethRethSY__factory.ts +1 -1
- package/typechain-types/factories/PendleAuraWethWstethSY__factory.ts +1 -1
- package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
- package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
- package/typechain-types/factories/PendleERC20Permit__factory.ts +1 -1
- package/typechain-types/factories/PendleERC20__factory.ts +1 -1
- package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
- package/typechain-types/factories/PendleGDaiSY__factory.ts +1035 -0
- package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +2 -2
- package/typechain-types/factories/PendleGlpSY__factory.ts +34 -1
- package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
- package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleMarket__factory.ts +1 -1
- package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleMsgReceiverAppUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
- package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +1 -1
- package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
- package/typechain-types/factories/PendlePtOracleBase__factory.ts +78 -0
- package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
- package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
- package/typechain-types/factories/PendleRouterHelper__factory.ts +841 -0
- package/typechain-types/factories/PendleRouterStatic__factory.ts +88 -0
- package/typechain-types/factories/PendleRouter__factory.ts +75 -74
- package/typechain-types/factories/PendleStargateLP__factory.ts +1241 -0
- package/typechain-types/factories/PendleSwapAggregator__factory.ts +129 -0
- package/typechain-types/factories/PendleSwapArbitrum__factory.ts +129 -0
- package/typechain-types/factories/PendleSwapEthereum__factory.ts +129 -0
- package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldTokenV2__factory.ts +35 -48
- package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
- package/typechain-types/factories/PtFraxUsdcOracle__factory.ts +226 -0
- package/typechain-types/factories/PtStETHOracle__factory.ts +201 -0
- package/typechain-types/factories/RouterStatic__factory.ts +69 -1
- package/typechain-types/factories/SAPE__factory.ts +1 -1
- package/typechain-types/factories/VotingControllerStorageUpg__factory.ts +39 -0
- package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
- package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +2 -2
- package/typechain-types/hardhat.d.ts +320 -203
- package/typechain-types/index.ts +80 -60
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol/PendleAura3EthSY.dbg.json +0 -4
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol/PendleAura3EthSY.json +0 -1257
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol/PendleAuraCbethWstethSY.dbg.json +0 -4
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol/PendleAuraCbethWstethSY.json +0 -1244
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.dbg.json +0 -4
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.json +0 -10
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.dbg.json +0 -4
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.json +0 -133
- package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.json +0 -87
- package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.json +0 -59
- package/build/artifacts/contracts/interfaces/IBoringOwnableUpgradeable.sol/IBoringOwnableUpgradeable.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IBoringOwnableUpgradeable.sol/IBoringOwnableUpgradeable.json +0 -34
- package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.json +0 -162
- package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.json +0 -87
- package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.json +0 -24
- package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.json +0 -24
- package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.json +0 -199
- package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.json +0 -168
- package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.json +0 -132
- package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.json +0 -148
- package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +0 -4
- package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +0 -285
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +0 -4
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +0 -2741
- package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +0 -4
- package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.json +0 -165
- package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +0 -4
- package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +0 -343
- package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +0 -4
- package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +0 -224
- package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.dbg.json +0 -4
- package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +0 -4
- package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.json +0 -24
- package/build/artifacts/contracts/router/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.dbg.json +0 -4
- package/build/artifacts/contracts/router/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.json +0 -10
- package/build/artifacts/contracts/router/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +0 -4
- package/build/artifacts/contracts/router/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +0 -4
- package/build/artifacts/contracts/router/kyberswap/interfaces/IHashflow.sol/IHashflow.dbg.json +0 -4
- package/build/artifacts/contracts/router/kyberswap/interfaces/IMetaAggregationRouter.sol/IMetaAggregationRouter.dbg.json +0 -4
- package/build/artifacts/contracts/router/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +0 -4
- package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol +0 -170
- package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol +0 -162
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol +0 -289
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol +0 -618
- package/contracts/interfaces/IAToken.sol +0 -44
- package/contracts/interfaces/IAavePool.sol +0 -41
- package/contracts/interfaces/IAaveRewardsController.sol +0 -32
- package/contracts/interfaces/IBoringOwnableUpgradeable.sol +0 -10
- package/contracts/interfaces/IEulerEToken.sol +0 -60
- package/contracts/interfaces/IEulerMarkets.sol +0 -46
- package/contracts/interfaces/IPActionSwapPTYT.sol +0 -31
- package/contracts/interfaces/IPGovernanceManager.sol +0 -28
- package/contracts/interfaces/IPPermissionsV2Upg.sol +0 -28
- package/contracts/interfaces/IREDACTEDStaking.sol +0 -35
- package/contracts/interfaces/ISAvax.sol +0 -61
- package/contracts/interfaces/ISJoe.sol +0 -57
- package/contracts/interfaces/IWAvax.sol +0 -34
- package/contracts/interfaces/IWXBTRFLY.sol +0 -39
- package/contracts/interfaces/IYearnVault.sol +0 -46
- package/contracts/offchain-helpers/MarketMathStatic.sol +0 -557
- package/contracts/offchain-helpers/RouterStatic.sol +0 -903
- package/contracts/router/ActionSwapPTYT.sol +0 -108
- package/contracts/router/kyberswap/IAggregatorRouterHelper.sol +0 -10
- package/contracts/router/kyberswap/KyberSwapHelper.sol +0 -79
- package/contracts/router/kyberswap/interfaces/IAggregationExecutor.sol +0 -17
- package/contracts/router/kyberswap/interfaces/IMetaAggregationRouter.sol +0 -33
- package/deployments/1-core.json +0 -30
- package/deployments/1-markets/APE-JUNE-29.json +0 -8
- package/deployments/1-markets/BALANCER-LP-AURA-RETH-WETH-28DEC.json +0 -11
- package/deployments/1-markets/BALANCER-LP-AURA-WSTETH-WETH-JUN272024.json +0 -10
- package/deployments/1-markets/FRAXUSDC-CURVELP-MARCH30.json +0 -11
- package/deployments/1-markets/LOOKS-STAKING-MARCH30.json +0 -10
- package/deployments/1-markets/STETH-JUNE29.json +0 -10
- package/deployments/1-markets/STETH-MARCH30.json +0 -10
- package/deployments/1-offchain-helper.json +0 -4
- /package/contracts/router/{kyberswap/interfaces → swap-aggregator/kyberswap/arbitrum}/IHashflow.sol +0 -0
|
@@ -35,23 +35,6 @@ library MarketApproxPtInLib {
|
|
|
35
35
|
using Math for int256;
|
|
36
36
|
using LogExpMath for int256;
|
|
37
37
|
|
|
38
|
-
struct ApproxParamsPtIn {
|
|
39
|
-
uint256 guessMin;
|
|
40
|
-
uint256 guessMax;
|
|
41
|
-
uint256 guessOffchain;
|
|
42
|
-
uint256 maxIteration;
|
|
43
|
-
uint256 eps;
|
|
44
|
-
//
|
|
45
|
-
uint256 biggestGoodGuess;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
struct Args1 {
|
|
49
|
-
MarketState market;
|
|
50
|
-
PYIndex index;
|
|
51
|
-
uint256 minSyOut;
|
|
52
|
-
uint256 blockTime;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
38
|
/**
|
|
56
39
|
* @dev algorithm:
|
|
57
40
|
- Bin search the amount of PT to swap in
|
|
@@ -60,53 +43,34 @@ library MarketApproxPtInLib {
|
|
|
60
43
|
- guess & approx is for netPtIn
|
|
61
44
|
*/
|
|
62
45
|
function approxSwapPtForExactSy(
|
|
63
|
-
MarketState memory
|
|
64
|
-
PYIndex
|
|
65
|
-
uint256
|
|
66
|
-
uint256
|
|
67
|
-
ApproxParams memory
|
|
68
|
-
)
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
)
|
|
76
|
-
{
|
|
77
|
-
Args1 memory a = Args1(_market, _index, _minSyOut, _blockTime);
|
|
78
|
-
MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
|
|
79
|
-
ApproxParamsPtIn memory p = newApproxParamsPtIn(_approx, 0, calcMaxPtIn(comp.totalAsset));
|
|
80
|
-
|
|
81
|
-
for (uint256 iter = 0; iter < p.maxIteration; ++iter) {
|
|
82
|
-
(bool isGoodSlope, uint256 guess) = nextGuess(p, comp, a.market.totalPt, iter);
|
|
83
|
-
if (!isGoodSlope) {
|
|
84
|
-
p.guessMax = guess;
|
|
85
|
-
continue;
|
|
86
|
-
}
|
|
46
|
+
MarketState memory market,
|
|
47
|
+
PYIndex index,
|
|
48
|
+
uint256 minSyOut,
|
|
49
|
+
uint256 blockTime,
|
|
50
|
+
ApproxParams memory approx
|
|
51
|
+
) internal pure returns (uint256 /*netPtIn*/, uint256 /*netSyOut*/, uint256 /*netSyFee*/) {
|
|
52
|
+
MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
|
|
53
|
+
if (approx.guessOffchain == 0) {
|
|
54
|
+
// no limit on min
|
|
55
|
+
approx.guessMax = Math.min(approx.guessMax, calcMaxPtIn(market, comp));
|
|
56
|
+
validateApprox(approx);
|
|
57
|
+
}
|
|
87
58
|
|
|
88
|
-
|
|
59
|
+
for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
|
|
60
|
+
uint256 guess = nextGuess(approx, iter);
|
|
61
|
+
(uint256 netSyOut, uint256 netSyFee, ) = calcSyOut(market, comp, index, guess);
|
|
89
62
|
|
|
90
|
-
if (netSyOut >=
|
|
91
|
-
|
|
92
|
-
bool isAnswerAccepted = Math.isAGreaterApproxB(netSyOut, a.minSyOut, p.eps);
|
|
93
|
-
if (isAnswerAccepted) {
|
|
63
|
+
if (netSyOut >= minSyOut) {
|
|
64
|
+
if (Math.isAGreaterApproxB(netSyOut, minSyOut, approx.eps))
|
|
94
65
|
return (guess, netSyOut, netSyFee);
|
|
95
|
-
|
|
66
|
+
approx.guessMax = guess;
|
|
96
67
|
} else {
|
|
97
|
-
|
|
68
|
+
approx.guessMin = guess;
|
|
98
69
|
}
|
|
99
70
|
}
|
|
100
71
|
revert Errors.ApproxFail();
|
|
101
72
|
}
|
|
102
73
|
|
|
103
|
-
struct Args2 {
|
|
104
|
-
MarketState market;
|
|
105
|
-
PYIndex index;
|
|
106
|
-
uint256 exactSyIn;
|
|
107
|
-
uint256 blockTime;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
74
|
/**
|
|
111
75
|
* @dev algorithm:
|
|
112
76
|
- Bin search the amount of PT to swap in
|
|
@@ -117,61 +81,42 @@ library MarketApproxPtInLib {
|
|
|
117
81
|
- guess & approx is for netYtOut (also netPtIn)
|
|
118
82
|
*/
|
|
119
83
|
function approxSwapExactSyForYt(
|
|
120
|
-
MarketState memory
|
|
121
|
-
PYIndex
|
|
122
|
-
uint256
|
|
123
|
-
uint256
|
|
124
|
-
ApproxParams memory
|
|
125
|
-
)
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
{
|
|
133
|
-
Args2 memory a = Args2(_market, _index, _exactSyIn, _blockTime);
|
|
134
|
-
MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
|
|
84
|
+
MarketState memory market,
|
|
85
|
+
PYIndex index,
|
|
86
|
+
uint256 exactSyIn,
|
|
87
|
+
uint256 blockTime,
|
|
88
|
+
ApproxParams memory approx
|
|
89
|
+
) internal pure returns (uint256 /*netYtOut*/, uint256 /*netSyFee*/) {
|
|
90
|
+
MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
|
|
91
|
+
if (approx.guessOffchain == 0) {
|
|
92
|
+
approx.guessMin = Math.max(approx.guessMin, index.syToAsset(exactSyIn));
|
|
93
|
+
approx.guessMax = Math.min(approx.guessMax, calcMaxPtIn(market, comp));
|
|
94
|
+
validateApprox(approx);
|
|
95
|
+
}
|
|
135
96
|
|
|
136
97
|
// at minimum we will flashswap exactSyIn since we have enough SY to payback the PT loan
|
|
137
|
-
ApproxParamsPtIn memory p = newApproxParamsPtIn(
|
|
138
|
-
_approx,
|
|
139
|
-
a.index.syToAsset(a.exactSyIn),
|
|
140
|
-
calcMaxPtIn(comp.totalAsset)
|
|
141
|
-
);
|
|
142
98
|
|
|
143
|
-
for (uint256 iter = 0; iter <
|
|
144
|
-
|
|
145
|
-
if (!isGoodSlope) {
|
|
146
|
-
p.guessMax = guess;
|
|
147
|
-
continue;
|
|
148
|
-
}
|
|
99
|
+
for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
|
|
100
|
+
uint256 guess = nextGuess(approx, iter);
|
|
149
101
|
|
|
150
|
-
(uint256 netSyOut, uint256 netSyFee, ) = calcSyOut(
|
|
102
|
+
(uint256 netSyOut, uint256 netSyFee, ) = calcSyOut(market, comp, index, guess);
|
|
151
103
|
|
|
152
|
-
uint256 netSyToTokenizePt =
|
|
104
|
+
uint256 netSyToTokenizePt = index.assetToSyUp(guess);
|
|
153
105
|
|
|
154
106
|
// for sure netSyToTokenizePt >= netSyOut since we are swapping PT to SY
|
|
155
107
|
uint256 netSyToPull = netSyToTokenizePt - netSyOut;
|
|
156
108
|
|
|
157
|
-
if (netSyToPull <=
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
109
|
+
if (netSyToPull <= exactSyIn) {
|
|
110
|
+
if (Math.isASmallerApproxB(netSyToPull, exactSyIn, approx.eps))
|
|
111
|
+
return (guess, netSyFee);
|
|
112
|
+
approx.guessMin = guess;
|
|
161
113
|
} else {
|
|
162
|
-
|
|
114
|
+
approx.guessMax = guess - 1;
|
|
163
115
|
}
|
|
164
116
|
}
|
|
165
117
|
revert Errors.ApproxFail();
|
|
166
118
|
}
|
|
167
119
|
|
|
168
|
-
struct Args6 {
|
|
169
|
-
MarketState market;
|
|
170
|
-
PYIndex index;
|
|
171
|
-
uint256 totalPtIn;
|
|
172
|
-
uint256 blockTime;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
120
|
/**
|
|
176
121
|
* @dev algorithm:
|
|
177
122
|
- Bin search the amount of PT to swap to SY
|
|
@@ -181,77 +126,81 @@ library MarketApproxPtInLib {
|
|
|
181
126
|
- guess & approx is for netPtSwap
|
|
182
127
|
*/
|
|
183
128
|
function approxSwapPtToAddLiquidity(
|
|
184
|
-
MarketState memory
|
|
185
|
-
PYIndex
|
|
186
|
-
uint256
|
|
187
|
-
uint256
|
|
188
|
-
ApproxParams memory
|
|
129
|
+
MarketState memory market,
|
|
130
|
+
PYIndex index,
|
|
131
|
+
uint256 totalPtIn,
|
|
132
|
+
uint256 blockTime,
|
|
133
|
+
ApproxParams memory approx
|
|
189
134
|
)
|
|
190
135
|
internal
|
|
191
136
|
pure
|
|
192
|
-
returns (
|
|
193
|
-
uint256, /*netPtSwap*/
|
|
194
|
-
uint256, /*netSyFromSwap*/
|
|
195
|
-
uint256 /*netSyFee*/
|
|
196
|
-
)
|
|
137
|
+
returns (uint256 /*netPtSwap*/, uint256 /*netSyFromSwap*/, uint256 /*netSyFee*/)
|
|
197
138
|
{
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
0,
|
|
205
|
-
|
|
206
|
-
);
|
|
207
|
-
|
|
208
|
-
p.guessMax = Math.min(p.guessMax, a.totalPtIn);
|
|
209
|
-
|
|
210
|
-
for (uint256 iter = 0; iter < p.maxIteration; ++iter) {
|
|
211
|
-
(bool isGoodSlope, uint256 guess) = nextGuess(p, comp, a.market.totalPt, iter);
|
|
212
|
-
|
|
213
|
-
if (!isGoodSlope) {
|
|
214
|
-
p.guessMax = guess;
|
|
215
|
-
continue;
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
(uint256 netSyOut, uint256 netSyFee, uint256 netSyToReserve) = calcSyOut(
|
|
219
|
-
a.market,
|
|
220
|
-
comp,
|
|
221
|
-
a.index,
|
|
222
|
-
guess
|
|
223
|
-
);
|
|
139
|
+
MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
|
|
140
|
+
if (approx.guessOffchain == 0) {
|
|
141
|
+
// no limit on min
|
|
142
|
+
approx.guessMax = Math.min(approx.guessMax, calcMaxPtIn(market, comp));
|
|
143
|
+
approx.guessMax = Math.min(approx.guessMax, totalPtIn);
|
|
144
|
+
validateApprox(approx);
|
|
145
|
+
require(market.totalLp != 0, "no existing lp");
|
|
146
|
+
}
|
|
224
147
|
|
|
225
|
-
|
|
226
|
-
uint256
|
|
227
|
-
{
|
|
228
|
-
uint256 newTotalPt = a.market.totalPt.Uint() + guess;
|
|
229
|
-
uint256 newTotalSy = (a.market.totalSy.Uint() - netSyOut - netSyToReserve);
|
|
148
|
+
for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
|
|
149
|
+
uint256 guess = nextGuess(approx, iter);
|
|
230
150
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
151
|
+
(
|
|
152
|
+
uint256 syNumerator,
|
|
153
|
+
uint256 ptNumerator,
|
|
154
|
+
uint256 netSyOut,
|
|
155
|
+
uint256 netSyFee,
|
|
235
156
|
|
|
236
|
-
|
|
237
|
-
ptNumerator = (a.totalPtIn - guess) * newTotalSy;
|
|
238
|
-
}
|
|
157
|
+
) = calcNumerators(market, index, totalPtIn, comp, guess);
|
|
239
158
|
|
|
240
|
-
if (Math.isAApproxB(syNumerator, ptNumerator,
|
|
159
|
+
if (Math.isAApproxB(syNumerator, ptNumerator, approx.eps))
|
|
241
160
|
return (guess, netSyOut, netSyFee);
|
|
242
|
-
}
|
|
243
161
|
|
|
244
162
|
if (syNumerator <= ptNumerator) {
|
|
245
163
|
// needs more SY --> swap more PT
|
|
246
|
-
|
|
164
|
+
approx.guessMin = guess + 1;
|
|
247
165
|
} else {
|
|
248
166
|
// needs less SY --> swap less PT
|
|
249
|
-
|
|
167
|
+
approx.guessMax = guess - 1;
|
|
250
168
|
}
|
|
251
169
|
}
|
|
252
170
|
revert Errors.ApproxFail();
|
|
253
171
|
}
|
|
254
172
|
|
|
173
|
+
function calcNumerators(
|
|
174
|
+
MarketState memory market,
|
|
175
|
+
PYIndex index,
|
|
176
|
+
uint256 totalPtIn,
|
|
177
|
+
MarketPreCompute memory comp,
|
|
178
|
+
uint256 guess
|
|
179
|
+
)
|
|
180
|
+
internal
|
|
181
|
+
pure
|
|
182
|
+
returns (
|
|
183
|
+
uint256 syNumerator,
|
|
184
|
+
uint256 ptNumerator,
|
|
185
|
+
uint256 netSyOut,
|
|
186
|
+
uint256 netSyFee,
|
|
187
|
+
uint256 netSyToReserve
|
|
188
|
+
)
|
|
189
|
+
{
|
|
190
|
+
(netSyOut, netSyFee, netSyToReserve) = calcSyOut(market, comp, index, guess);
|
|
191
|
+
|
|
192
|
+
uint256 newTotalPt = uint256(market.totalPt) + guess;
|
|
193
|
+
uint256 newTotalSy = (uint256(market.totalSy) - netSyOut - netSyToReserve);
|
|
194
|
+
|
|
195
|
+
// it is desired that
|
|
196
|
+
// netSyOut / newTotalSy = netPtRemaining / newTotalPt
|
|
197
|
+
// which is equivalent to
|
|
198
|
+
// netSyOut * newTotalPt = netPtRemaining * newTotalSy
|
|
199
|
+
|
|
200
|
+
syNumerator = netSyOut * newTotalPt;
|
|
201
|
+
ptNumerator = (totalPtIn - guess) * newTotalSy;
|
|
202
|
+
}
|
|
203
|
+
|
|
255
204
|
struct Args7 {
|
|
256
205
|
MarketState market;
|
|
257
206
|
PYIndex index;
|
|
@@ -269,51 +218,39 @@ library MarketApproxPtInLib {
|
|
|
269
218
|
- guess & approx is for totalPtToSwap
|
|
270
219
|
*/
|
|
271
220
|
function approxSwapExactPtForYt(
|
|
272
|
-
MarketState memory
|
|
273
|
-
PYIndex
|
|
274
|
-
uint256
|
|
275
|
-
uint256
|
|
276
|
-
ApproxParams memory
|
|
221
|
+
MarketState memory market,
|
|
222
|
+
PYIndex index,
|
|
223
|
+
uint256 exactPtIn,
|
|
224
|
+
uint256 blockTime,
|
|
225
|
+
ApproxParams memory approx
|
|
277
226
|
)
|
|
278
227
|
internal
|
|
279
228
|
pure
|
|
280
|
-
returns (
|
|
281
|
-
uint256, /*netYtOut*/
|
|
282
|
-
uint256, /*totalPtToSwap*/
|
|
283
|
-
uint256 /*netSyFee*/
|
|
284
|
-
)
|
|
229
|
+
returns (uint256 /*netYtOut*/, uint256 /*totalPtToSwap*/, uint256 /*netSyFee*/)
|
|
285
230
|
{
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
calcMaxPtIn(comp.totalAsset)
|
|
293
|
-
);
|
|
294
|
-
|
|
295
|
-
for (uint256 iter = 0; iter < p.maxIteration; ++iter) {
|
|
296
|
-
(bool isGoodSlope, uint256 guess) = nextGuess(p, comp, a.market.totalPt, iter);
|
|
231
|
+
MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
|
|
232
|
+
if (approx.guessOffchain == 0) {
|
|
233
|
+
approx.guessMin = Math.max(approx.guessMin, exactPtIn);
|
|
234
|
+
approx.guessMax = Math.min(approx.guessMax, calcMaxPtIn(market, comp));
|
|
235
|
+
validateApprox(approx);
|
|
236
|
+
}
|
|
297
237
|
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
continue;
|
|
301
|
-
}
|
|
238
|
+
for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
|
|
239
|
+
uint256 guess = nextGuess(approx, iter);
|
|
302
240
|
|
|
303
|
-
(uint256 netSyOut, uint256 netSyFee, ) = calcSyOut(
|
|
241
|
+
(uint256 netSyOut, uint256 netSyFee, ) = calcSyOut(market, comp, index, guess);
|
|
304
242
|
|
|
305
|
-
uint256 netAssetOut =
|
|
243
|
+
uint256 netAssetOut = index.syToAsset(netSyOut);
|
|
306
244
|
|
|
307
245
|
// guess >= netAssetOut since we are swapping PT to SY
|
|
308
246
|
uint256 netPtToPull = guess - netAssetOut;
|
|
309
247
|
|
|
310
|
-
if (netPtToPull <=
|
|
311
|
-
|
|
312
|
-
if (Math.isASmallerApproxB(netPtToPull, a.exactPtIn, p.eps)) {
|
|
248
|
+
if (netPtToPull <= exactPtIn) {
|
|
249
|
+
if (Math.isASmallerApproxB(netPtToPull, exactPtIn, approx.eps))
|
|
313
250
|
return (netAssetOut, guess, netSyFee);
|
|
314
|
-
|
|
251
|
+
approx.guessMin = guess;
|
|
315
252
|
} else {
|
|
316
|
-
|
|
253
|
+
approx.guessMax = guess - 1;
|
|
317
254
|
}
|
|
318
255
|
}
|
|
319
256
|
revert Errors.ApproxFail();
|
|
@@ -326,82 +263,52 @@ library MarketApproxPtInLib {
|
|
|
326
263
|
MarketPreCompute memory comp,
|
|
327
264
|
PYIndex index,
|
|
328
265
|
uint256 netPtIn
|
|
329
|
-
)
|
|
330
|
-
internal
|
|
331
|
-
pure
|
|
332
|
-
returns (
|
|
333
|
-
uint256 netSyOut,
|
|
334
|
-
uint256 netSyFee,
|
|
335
|
-
uint256 netSyToReserve
|
|
336
|
-
)
|
|
337
|
-
{
|
|
266
|
+
) internal pure returns (uint256 netSyOut, uint256 netSyFee, uint256 netSyToReserve) {
|
|
338
267
|
(int256 _netSyOut, int256 _netSyFee, int256 _netSyToReserve) = market.calcTrade(
|
|
339
268
|
comp,
|
|
340
269
|
index,
|
|
341
|
-
netPtIn
|
|
270
|
+
-int256(netPtIn)
|
|
342
271
|
);
|
|
343
|
-
netSyOut = _netSyOut
|
|
344
|
-
netSyFee = _netSyFee
|
|
345
|
-
netSyToReserve = _netSyToReserve
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
function newApproxParamsPtIn(
|
|
349
|
-
ApproxParams memory _approx,
|
|
350
|
-
uint256 minGuessMin,
|
|
351
|
-
uint256 maxGuessMax
|
|
352
|
-
) internal pure returns (ApproxParamsPtIn memory res) {
|
|
353
|
-
res.guessMin = Math.max(_approx.guessMin, minGuessMin);
|
|
354
|
-
res.guessMax = Math.min(_approx.guessMax, maxGuessMax);
|
|
355
|
-
|
|
356
|
-
if (res.guessMin > res.guessMax || _approx.eps > Math.ONE)
|
|
357
|
-
revert Errors.ApproxParamsInvalid(_approx.guessMin, _approx.guessMax, _approx.eps);
|
|
358
|
-
|
|
359
|
-
res.guessOffchain = _approx.guessOffchain;
|
|
360
|
-
res.maxIteration = _approx.maxIteration;
|
|
361
|
-
res.eps = _approx.eps;
|
|
272
|
+
netSyOut = uint256(_netSyOut);
|
|
273
|
+
netSyFee = uint256(_netSyFee);
|
|
274
|
+
netSyToReserve = uint256(_netSyToReserve);
|
|
362
275
|
}
|
|
363
276
|
|
|
364
|
-
function
|
|
365
|
-
|
|
277
|
+
function nextGuess(ApproxParams memory approx, uint256 iter) internal pure returns (uint256) {
|
|
278
|
+
if (iter == 0 && approx.guessOffchain != 0) return approx.guessOffchain;
|
|
279
|
+
if (approx.guessMin <= approx.guessMax) return (approx.guessMin + approx.guessMax) / 2;
|
|
280
|
+
revert Errors.ApproxFail();
|
|
366
281
|
}
|
|
367
282
|
|
|
368
|
-
|
|
369
|
-
ApproxParamsPtIn memory p,
|
|
370
|
-
MarketPreCompute memory comp,
|
|
371
|
-
int256 totalPt,
|
|
372
|
-
uint256 iter
|
|
373
|
-
) internal pure returns (bool, uint256) {
|
|
374
|
-
uint256 guess = _nextGuessPrivate(p, iter);
|
|
375
|
-
if (guess <= p.biggestGoodGuess) return (true, guess);
|
|
376
|
-
|
|
377
|
-
int256 slope = calcSlope(comp, totalPt, guess.Int());
|
|
378
|
-
if (slope < 0) return (false, guess);
|
|
283
|
+
/// INTENDED TO BE CALLED BY WHEN GUESS.OFFCHAIN == 0 ONLY ///
|
|
379
284
|
|
|
380
|
-
|
|
381
|
-
|
|
285
|
+
function validateApprox(ApproxParams memory approx) internal pure {
|
|
286
|
+
if (approx.guessMin > approx.guessMax || approx.eps > Math.ONE)
|
|
287
|
+
revert Errors.ApproxParamsInvalid(approx.guessMin, approx.guessMax, approx.eps);
|
|
382
288
|
}
|
|
383
289
|
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
290
|
+
function calcMaxPtIn(
|
|
291
|
+
MarketState memory market,
|
|
292
|
+
MarketPreCompute memory comp
|
|
293
|
+
) internal pure returns (uint256) {
|
|
294
|
+
uint256 low = 0;
|
|
295
|
+
uint256 hi = uint256(comp.totalAsset) - 1;
|
|
296
|
+
|
|
297
|
+
while (low != hi) {
|
|
298
|
+
uint256 mid = (low + hi + 1) / 2;
|
|
299
|
+
if (calcSlope(comp, market.totalPt, int256(mid)) < 0) hi = mid - 1;
|
|
300
|
+
else low = mid;
|
|
301
|
+
}
|
|
302
|
+
return low;
|
|
396
303
|
}
|
|
397
304
|
|
|
398
305
|
function calcSlope(
|
|
399
306
|
MarketPreCompute memory comp,
|
|
400
307
|
int256 totalPt,
|
|
401
|
-
int256 ptToMarket
|
|
308
|
+
int256 ptToMarket
|
|
402
309
|
) internal pure returns (int256) {
|
|
403
310
|
int256 diffAssetPtToMarket = comp.totalAsset - ptToMarket;
|
|
404
|
-
int256 sumPt = ptToMarket + totalPt;
|
|
311
|
+
int256 sumPt = ptToMarket + totalPt;
|
|
405
312
|
|
|
406
313
|
require(diffAssetPtToMarket > 0 && sumPt > 0, "invalid ptToMarket");
|
|
407
314
|
|
|
@@ -423,21 +330,6 @@ library MarketApproxPtOutLib {
|
|
|
423
330
|
using Math for int256;
|
|
424
331
|
using LogExpMath for int256;
|
|
425
332
|
|
|
426
|
-
struct ApproxParamsPtOut {
|
|
427
|
-
uint256 guessMin;
|
|
428
|
-
uint256 guessMax;
|
|
429
|
-
uint256 guessOffchain;
|
|
430
|
-
uint256 maxIteration;
|
|
431
|
-
uint256 eps;
|
|
432
|
-
}
|
|
433
|
-
|
|
434
|
-
struct Args4 {
|
|
435
|
-
MarketState market;
|
|
436
|
-
PYIndex index;
|
|
437
|
-
uint256 exactSyIn;
|
|
438
|
-
uint256 blockTime;
|
|
439
|
-
}
|
|
440
|
-
|
|
441
333
|
/**
|
|
442
334
|
* @dev algorithm:
|
|
443
335
|
- Bin search the amount of PT to swapExactOut
|
|
@@ -446,51 +338,36 @@ library MarketApproxPtOutLib {
|
|
|
446
338
|
- guess & approx is for netSyIn
|
|
447
339
|
*/
|
|
448
340
|
function approxSwapExactSyForPt(
|
|
449
|
-
MarketState memory
|
|
450
|
-
PYIndex
|
|
451
|
-
uint256
|
|
452
|
-
uint256
|
|
453
|
-
ApproxParams memory
|
|
454
|
-
)
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
{
|
|
462
|
-
Args4 memory a = Args4(_market, _index, _exactSyIn, _blockTime);
|
|
463
|
-
MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
|
|
464
|
-
ApproxParamsPtOut memory p = newApproxParamsPtOut(
|
|
465
|
-
_approx,
|
|
466
|
-
0,
|
|
467
|
-
calcMaxPtOut(comp, a.market.totalPt)
|
|
468
|
-
);
|
|
341
|
+
MarketState memory market,
|
|
342
|
+
PYIndex index,
|
|
343
|
+
uint256 exactSyIn,
|
|
344
|
+
uint256 blockTime,
|
|
345
|
+
ApproxParams memory approx
|
|
346
|
+
) internal pure returns (uint256 /*netPtOut*/, uint256 /*netSyFee*/) {
|
|
347
|
+
MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
|
|
348
|
+
if (approx.guessOffchain == 0) {
|
|
349
|
+
// no limit on min
|
|
350
|
+
approx.guessMax = Math.min(approx.guessMax, calcMaxPtOut(comp, market.totalPt));
|
|
351
|
+
validateApprox(approx);
|
|
352
|
+
}
|
|
469
353
|
|
|
470
|
-
for (uint256 iter = 0; iter <
|
|
471
|
-
uint256 guess = nextGuess(
|
|
354
|
+
for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
|
|
355
|
+
uint256 guess = nextGuess(approx, iter);
|
|
472
356
|
|
|
473
|
-
(uint256 netSyIn, uint256 netSyFee, ) = calcSyIn(
|
|
357
|
+
(uint256 netSyIn, uint256 netSyFee, ) = calcSyIn(market, comp, index, guess);
|
|
474
358
|
|
|
475
|
-
if (netSyIn <=
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
359
|
+
if (netSyIn <= exactSyIn) {
|
|
360
|
+
if (Math.isASmallerApproxB(netSyIn, exactSyIn, approx.eps))
|
|
361
|
+
return (guess, netSyFee);
|
|
362
|
+
approx.guessMin = guess;
|
|
479
363
|
} else {
|
|
480
|
-
|
|
364
|
+
approx.guessMax = guess - 1;
|
|
481
365
|
}
|
|
482
366
|
}
|
|
483
367
|
|
|
484
368
|
revert Errors.ApproxFail();
|
|
485
369
|
}
|
|
486
370
|
|
|
487
|
-
struct Args5 {
|
|
488
|
-
MarketState market;
|
|
489
|
-
PYIndex index;
|
|
490
|
-
uint256 minSyOut;
|
|
491
|
-
uint256 blockTime;
|
|
492
|
-
}
|
|
493
|
-
|
|
494
371
|
/**
|
|
495
372
|
* @dev algorithm:
|
|
496
373
|
- Bin search the amount of PT to swapExactOut
|
|
@@ -500,43 +377,33 @@ library MarketApproxPtOutLib {
|
|
|
500
377
|
- guess & approx is for netSyOut
|
|
501
378
|
*/
|
|
502
379
|
function approxSwapYtForExactSy(
|
|
503
|
-
MarketState memory
|
|
504
|
-
PYIndex
|
|
505
|
-
uint256
|
|
506
|
-
uint256
|
|
507
|
-
ApproxParams memory
|
|
508
|
-
)
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
)
|
|
516
|
-
{
|
|
517
|
-
Args5 memory a = Args5(_market, _index, _minSyOut, _blockTime);
|
|
518
|
-
MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
|
|
519
|
-
ApproxParamsPtOut memory p = newApproxParamsPtOut(
|
|
520
|
-
_approx,
|
|
521
|
-
0,
|
|
522
|
-
calcMaxPtOut(comp, a.market.totalPt)
|
|
523
|
-
);
|
|
380
|
+
MarketState memory market,
|
|
381
|
+
PYIndex index,
|
|
382
|
+
uint256 minSyOut,
|
|
383
|
+
uint256 blockTime,
|
|
384
|
+
ApproxParams memory approx
|
|
385
|
+
) internal pure returns (uint256 /*netYtIn*/, uint256 /*netSyOut*/, uint256 /*netSyFee*/) {
|
|
386
|
+
MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
|
|
387
|
+
if (approx.guessOffchain == 0) {
|
|
388
|
+
// no limit on min
|
|
389
|
+
approx.guessMax = Math.min(approx.guessMax, calcMaxPtOut(comp, market.totalPt));
|
|
390
|
+
validateApprox(approx);
|
|
391
|
+
}
|
|
524
392
|
|
|
525
|
-
for (uint256 iter = 0; iter <
|
|
526
|
-
uint256 guess = nextGuess(
|
|
393
|
+
for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
|
|
394
|
+
uint256 guess = nextGuess(approx, iter);
|
|
527
395
|
|
|
528
|
-
(uint256 netSyOwed, uint256 netSyFee, ) = calcSyIn(
|
|
396
|
+
(uint256 netSyOwed, uint256 netSyFee, ) = calcSyIn(market, comp, index, guess);
|
|
529
397
|
|
|
530
|
-
uint256 netAssetToRepay =
|
|
531
|
-
uint256 netSyOut =
|
|
398
|
+
uint256 netAssetToRepay = index.syToAssetUp(netSyOwed);
|
|
399
|
+
uint256 netSyOut = index.assetToSy(guess - netAssetToRepay);
|
|
532
400
|
|
|
533
|
-
if (netSyOut >=
|
|
534
|
-
|
|
535
|
-
if (Math.isAGreaterApproxB(netSyOut, a.minSyOut, p.eps)) {
|
|
401
|
+
if (netSyOut >= minSyOut) {
|
|
402
|
+
if (Math.isAGreaterApproxB(netSyOut, minSyOut, approx.eps))
|
|
536
403
|
return (guess, netSyOut, netSyFee);
|
|
537
|
-
|
|
404
|
+
approx.guessMax = guess;
|
|
538
405
|
} else {
|
|
539
|
-
|
|
406
|
+
approx.guessMin = guess + 1;
|
|
540
407
|
}
|
|
541
408
|
}
|
|
542
409
|
revert Errors.ApproxFail();
|
|
@@ -547,6 +414,7 @@ library MarketApproxPtOutLib {
|
|
|
547
414
|
PYIndex index;
|
|
548
415
|
uint256 totalSyIn;
|
|
549
416
|
uint256 blockTime;
|
|
417
|
+
ApproxParams approx;
|
|
550
418
|
}
|
|
551
419
|
|
|
552
420
|
/**
|
|
@@ -566,24 +434,20 @@ library MarketApproxPtOutLib {
|
|
|
566
434
|
)
|
|
567
435
|
internal
|
|
568
436
|
pure
|
|
569
|
-
returns (
|
|
570
|
-
uint256, /*netPtFromSwap*/
|
|
571
|
-
uint256, /*netSySwap*/
|
|
572
|
-
uint256 /*netSyFee*/
|
|
573
|
-
)
|
|
437
|
+
returns (uint256 /*netPtFromSwap*/, uint256 /*netSySwap*/, uint256 /*netSyFee*/)
|
|
574
438
|
{
|
|
575
|
-
Args6 memory a = Args6(_market, _index, _totalSyIn, _blockTime);
|
|
576
|
-
require(a.market.totalLp != 0, "no existing lp");
|
|
439
|
+
Args6 memory a = Args6(_market, _index, _totalSyIn, _blockTime, _approx);
|
|
577
440
|
|
|
578
441
|
MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
442
|
+
if (a.approx.guessOffchain == 0) {
|
|
443
|
+
// no limit on min
|
|
444
|
+
a.approx.guessMax = Math.min(a.approx.guessMax, calcMaxPtOut(comp, a.market.totalPt));
|
|
445
|
+
validateApprox(a.approx);
|
|
446
|
+
require(a.market.totalLp != 0, "no existing lp");
|
|
447
|
+
}
|
|
584
448
|
|
|
585
|
-
for (uint256 iter = 0; iter <
|
|
586
|
-
uint256 guess = nextGuess(
|
|
449
|
+
for (uint256 iter = 0; iter < a.approx.maxIteration; ++iter) {
|
|
450
|
+
uint256 guess = nextGuess(a.approx, iter);
|
|
587
451
|
|
|
588
452
|
(uint256 netSyIn, uint256 netSyFee, uint256 netSyToReserve) = calcSyIn(
|
|
589
453
|
a.market,
|
|
@@ -593,7 +457,7 @@ library MarketApproxPtOutLib {
|
|
|
593
457
|
);
|
|
594
458
|
|
|
595
459
|
if (netSyIn > a.totalSyIn) {
|
|
596
|
-
|
|
460
|
+
a.approx.guessMax = guess - 1;
|
|
597
461
|
continue;
|
|
598
462
|
}
|
|
599
463
|
|
|
@@ -601,8 +465,8 @@ library MarketApproxPtOutLib {
|
|
|
601
465
|
uint256 ptNumerator;
|
|
602
466
|
|
|
603
467
|
{
|
|
604
|
-
uint256 newTotalPt = a.market.totalPt
|
|
605
|
-
uint256 netTotalSy = a.market.totalSy
|
|
468
|
+
uint256 newTotalPt = uint256(a.market.totalPt) - guess;
|
|
469
|
+
uint256 netTotalSy = uint256(a.market.totalSy) + netSyIn - netSyToReserve;
|
|
606
470
|
|
|
607
471
|
// it is desired that
|
|
608
472
|
// netPtFromSwap / newTotalPt = netSyRemaining / netTotalSy
|
|
@@ -613,80 +477,60 @@ library MarketApproxPtOutLib {
|
|
|
613
477
|
syNumerator = (a.totalSyIn - netSyIn) * newTotalPt;
|
|
614
478
|
}
|
|
615
479
|
|
|
616
|
-
if (Math.isAApproxB(ptNumerator, syNumerator,
|
|
480
|
+
if (Math.isAApproxB(ptNumerator, syNumerator, a.approx.eps))
|
|
617
481
|
return (guess, netSyIn, netSyFee);
|
|
618
|
-
}
|
|
619
482
|
|
|
620
483
|
if (ptNumerator <= syNumerator) {
|
|
621
484
|
// needs more PT
|
|
622
|
-
|
|
485
|
+
a.approx.guessMin = guess + 1;
|
|
623
486
|
} else {
|
|
624
487
|
// needs less PT
|
|
625
|
-
|
|
488
|
+
a.approx.guessMax = guess - 1;
|
|
626
489
|
}
|
|
627
490
|
}
|
|
628
491
|
revert Errors.ApproxFail();
|
|
629
492
|
}
|
|
630
493
|
|
|
631
|
-
struct Args8 {
|
|
632
|
-
MarketState market;
|
|
633
|
-
PYIndex index;
|
|
634
|
-
uint256 exactYtIn;
|
|
635
|
-
uint256 blockTime;
|
|
636
|
-
uint256 maxSyPayable;
|
|
637
|
-
}
|
|
638
|
-
|
|
639
494
|
/**
|
|
640
495
|
* @dev algorithm:
|
|
641
496
|
- Bin search the amount of PT to swapExactOut
|
|
642
497
|
- Flashswap that amount of PT out
|
|
643
498
|
- Pair all the PT with the YT to redeem SY
|
|
644
499
|
- Use the SY to repay the flashswap debt
|
|
645
|
-
- Stop when the amount of
|
|
500
|
+
- Stop when the amount of YT required to pair with PT is approx exactYtIn
|
|
646
501
|
- guess & approx is for netPtFromSwap
|
|
647
502
|
*/
|
|
648
503
|
function approxSwapExactYtForPt(
|
|
649
|
-
MarketState memory
|
|
650
|
-
PYIndex
|
|
651
|
-
uint256
|
|
652
|
-
uint256
|
|
653
|
-
ApproxParams memory
|
|
504
|
+
MarketState memory market,
|
|
505
|
+
PYIndex index,
|
|
506
|
+
uint256 exactYtIn,
|
|
507
|
+
uint256 blockTime,
|
|
508
|
+
ApproxParams memory approx
|
|
654
509
|
)
|
|
655
510
|
internal
|
|
656
511
|
pure
|
|
657
|
-
returns (
|
|
658
|
-
uint256, /*netPtOut*/
|
|
659
|
-
uint256, /*totalPtSwapped*/
|
|
660
|
-
uint256 /*netSyFee*/
|
|
661
|
-
)
|
|
512
|
+
returns (uint256 /*netPtOut*/, uint256 /*totalPtSwapped*/, uint256 /*netSyFee*/)
|
|
662
513
|
{
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
);
|
|
670
|
-
MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
|
|
671
|
-
ApproxParamsPtOut memory p = newApproxParamsPtOut(
|
|
672
|
-
_approx,
|
|
673
|
-
a.exactYtIn,
|
|
674
|
-
calcMaxPtOut(comp, a.market.totalPt)
|
|
675
|
-
);
|
|
514
|
+
MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
|
|
515
|
+
if (approx.guessOffchain == 0) {
|
|
516
|
+
approx.guessMin = Math.max(approx.guessMin, exactYtIn);
|
|
517
|
+
approx.guessMax = Math.min(approx.guessMax, calcMaxPtOut(comp, market.totalPt));
|
|
518
|
+
validateApprox(approx);
|
|
519
|
+
}
|
|
676
520
|
|
|
677
|
-
for (uint256 iter = 0; iter <
|
|
678
|
-
uint256 guess = nextGuess(
|
|
521
|
+
for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
|
|
522
|
+
uint256 guess = nextGuess(approx, iter);
|
|
679
523
|
|
|
680
|
-
(uint256 netSyOwed, uint256 netSyFee, ) = calcSyIn(
|
|
524
|
+
(uint256 netSyOwed, uint256 netSyFee, ) = calcSyIn(market, comp, index, guess);
|
|
681
525
|
|
|
682
|
-
|
|
683
|
-
p.guessMin = guess;
|
|
526
|
+
uint256 netYtToPull = index.syToAssetUp(netSyOwed);
|
|
684
527
|
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
528
|
+
if (netYtToPull <= exactYtIn) {
|
|
529
|
+
if (Math.isASmallerApproxB(netYtToPull, exactYtIn, approx.eps))
|
|
530
|
+
return (guess - netYtToPull, guess, netSyFee);
|
|
531
|
+
approx.guessMin = guess;
|
|
688
532
|
} else {
|
|
689
|
-
|
|
533
|
+
approx.guessMax = guess - 1;
|
|
690
534
|
}
|
|
691
535
|
}
|
|
692
536
|
revert Errors.ApproxFail();
|
|
@@ -699,70 +543,39 @@ library MarketApproxPtOutLib {
|
|
|
699
543
|
MarketPreCompute memory comp,
|
|
700
544
|
PYIndex index,
|
|
701
545
|
uint256 netPtOut
|
|
702
|
-
)
|
|
703
|
-
internal
|
|
704
|
-
pure
|
|
705
|
-
returns (
|
|
706
|
-
uint256 netSyIn,
|
|
707
|
-
uint256 netSyFee,
|
|
708
|
-
uint256 netSyToReserve
|
|
709
|
-
)
|
|
710
|
-
{
|
|
546
|
+
) internal pure returns (uint256 netSyIn, uint256 netSyFee, uint256 netSyToReserve) {
|
|
711
547
|
(int256 _netSyIn, int256 _netSyFee, int256 _netSyToReserve) = market.calcTrade(
|
|
712
548
|
comp,
|
|
713
549
|
index,
|
|
714
|
-
netPtOut
|
|
550
|
+
int256(netPtOut)
|
|
715
551
|
);
|
|
716
552
|
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
553
|
+
// all safe since totalPt and totalSy is int128
|
|
554
|
+
netSyIn = uint256(-_netSyIn);
|
|
555
|
+
netSyFee = uint256(_netSyFee);
|
|
556
|
+
netSyToReserve = uint256(_netSyToReserve);
|
|
720
557
|
}
|
|
721
558
|
|
|
722
|
-
function
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
) internal pure returns (ApproxParamsPtOut memory res) {
|
|
727
|
-
if (_approx.guessMin > _approx.guessMax || _approx.eps > Math.ONE)
|
|
728
|
-
revert Errors.ApproxParamsInvalid(_approx.guessMin, _approx.guessMax, _approx.eps);
|
|
729
|
-
|
|
730
|
-
res.guessMin = Math.max(_approx.guessMin, minGuessMin);
|
|
731
|
-
res.guessMax = Math.min(_approx.guessMax, maxGuessMax);
|
|
732
|
-
|
|
733
|
-
if (res.guessMin > res.guessMax)
|
|
734
|
-
revert Errors.ApproxBinarySearchInputInvalid(
|
|
735
|
-
_approx.guessMin,
|
|
736
|
-
_approx.guessMax,
|
|
737
|
-
minGuessMin,
|
|
738
|
-
maxGuessMax
|
|
739
|
-
);
|
|
740
|
-
|
|
741
|
-
res.guessOffchain = _approx.guessOffchain;
|
|
742
|
-
res.maxIteration = _approx.maxIteration;
|
|
743
|
-
res.eps = _approx.eps;
|
|
744
|
-
}
|
|
745
|
-
|
|
746
|
-
function calcMaxPtOut(MarketPreCompute memory comp, int256 totalPt)
|
|
747
|
-
internal
|
|
748
|
-
pure
|
|
749
|
-
returns (uint256)
|
|
750
|
-
{
|
|
559
|
+
function calcMaxPtOut(
|
|
560
|
+
MarketPreCompute memory comp,
|
|
561
|
+
int256 totalPt
|
|
562
|
+
) internal pure returns (uint256) {
|
|
751
563
|
int256 logitP = (comp.feeRate - comp.rateAnchor).mulDown(comp.rateScalar).exp();
|
|
752
564
|
int256 proportion = logitP.divDown(logitP + Math.IONE);
|
|
753
565
|
int256 numerator = proportion.mulDown(totalPt + comp.totalAsset);
|
|
754
566
|
int256 maxPtOut = totalPt - numerator;
|
|
755
567
|
// only get 99.9% of the theoretical max to accommodate some precision issues
|
|
756
|
-
return (maxPtOut
|
|
568
|
+
return (uint256(maxPtOut) * 999) / 1000;
|
|
757
569
|
}
|
|
758
570
|
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
*/
|
|
763
|
-
function nextGuess(ApproxParamsPtOut memory p, uint256 iter) private pure returns (uint256) {
|
|
764
|
-
if (iter == 0 && p.guessOffchain != 0) return p.guessOffchain;
|
|
765
|
-
if (p.guessMin <= p.guessMax) return (p.guessMin + p.guessMax) / 2;
|
|
571
|
+
function nextGuess(ApproxParams memory approx, uint256 iter) internal pure returns (uint256) {
|
|
572
|
+
if (iter == 0 && approx.guessOffchain != 0) return approx.guessOffchain;
|
|
573
|
+
if (approx.guessMin <= approx.guessMax) return (approx.guessMin + approx.guessMax) / 2;
|
|
766
574
|
revert Errors.ApproxFail();
|
|
767
575
|
}
|
|
576
|
+
|
|
577
|
+
function validateApprox(ApproxParams memory approx) internal pure {
|
|
578
|
+
if (approx.guessMin > approx.guessMax || approx.eps > Math.ONE)
|
|
579
|
+
revert Errors.ApproxParamsInvalid(approx.guessMin, approx.guessMax, approx.eps);
|
|
580
|
+
}
|
|
768
581
|
}
|