@pendle/core-v2 0.16.5-testnet → 0.17.0-daily
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/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/FeeDistributor/EpochResultManager.sol/EpochResultManager.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.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 +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/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 +16 -5
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.json +0 -13
- 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/LiquidityMining/libraries/WeekMath.sol/WeekMath.json +2 -2
- package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
- package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +7 -54
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +27 -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 +25 -13
- package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +221 -50
- 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/SYBase.sol/SYBase.json +141 -0
- package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.json +141 -0
- 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 +143 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +1144 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +1209 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.json +10 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.json +3 -82
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.json +10 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/{ConvexCurveLP → base}/PendleConvexLPSY.sol/PendleConvexLPSY.json +142 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +997 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +143 -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 +83 -10
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +35 -4
- package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
- package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.json +2 -2
- package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
- package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.json +2 -2
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.json +3 -38
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.json +2 -2
- package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/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 +131 -31
- package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.json +1 -1
- package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.json +14 -7
- package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.json +213 -0
- package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.json +1 -1
- package/build/artifacts/contracts/interfaces/ILooksFeeSharing.sol/ILooksFeeSharing.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/ILooksFeeSharing.sol/ILooksFeeSharing.json +30 -0
- package/build/artifacts/contracts/interfaces/ILooksStaking.sol/ILooksStaking.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/ILooksStaking.sol/ILooksStaking.json +76 -0
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json +8 -8
- package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json +18 -18
- package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.json +2 -2
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +28 -28
- package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.json +0 -38
- package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.json +25 -0
- package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.json +17 -5
- package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.json +50 -19
- package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.json +7 -7
- package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.json +13 -0
- package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +71 -13
- package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +28 -46
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +138 -62
- package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +37 -11
- package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.json +2 -2
- package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +20 -20
- package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +2 -2
- package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +28 -2
- package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +29 -3
- package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +30 -4
- package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
- package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -186
- package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.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/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +2 -2
- package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +1 -1
- package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol +1 -1
- package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +1 -1
- package/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +3 -6
- package/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +1 -1
- package/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +7 -4
- package/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +10 -5
- package/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol +3 -6
- package/contracts/LiquidityMining/libraries/VeHistoryLib.sol +0 -5
- package/contracts/LiquidityMining/libraries/WeekMath.sol +1 -1
- package/contracts/core/BulkSeller/BulkSeller.sol +0 -15
- package/contracts/core/BulkSeller/BulkSellerFactory.sol +7 -6
- package/contracts/core/Market/MarketMathCore.sol +52 -11
- package/contracts/core/Market/PendleMarket.sol +35 -22
- package/contracts/core/Market/PendleMarketFactory.sol +67 -35
- package/contracts/core/StandardizedYield/SYBase.sol +26 -3
- package/contracts/core/StandardizedYield/SYBaseWithRewards.sol +3 -1
- package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol +102 -0
- package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol +160 -0
- package/contracts/core/StandardizedYield/implementations/Convex/README.md +29 -0
- package/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol +215 -0
- package/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol +46 -26
- package/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol +152 -0
- package/contracts/core/StandardizedYield/implementations/Convex/{ConvexCurveLP → base}/PendleConvexLPSY.sol +0 -0
- package/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol +128 -0
- package/contracts/core/YieldContracts/PendlePrincipalToken.sol +3 -3
- package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +30 -12
- package/contracts/core/YieldContracts/PendleYieldToken.sol +79 -22
- package/contracts/core/erc20/PendleERC20.sol +4 -7
- package/contracts/core/libraries/BaseSplitCodeFactory.sol +1 -1
- package/contracts/core/libraries/BoringOwnableUpgradeable.sol +1 -1
- package/contracts/core/libraries/Errors.sol +18 -2
- package/contracts/interfaces/ConvexCurve/IBooster.sol +1 -1
- package/contracts/interfaces/Curve/ICrvPool.sol +3 -4
- package/contracts/interfaces/Curve/ITriCrvPool.sol +41 -0
- package/contracts/interfaces/IERC4626.sol +1 -1
- package/contracts/interfaces/ILooksFeeSharing.sol +5 -0
- package/contracts/interfaces/ILooksStaking.sol +13 -0
- package/contracts/interfaces/IPActionAddRemoveLiq.sol +4 -4
- package/contracts/interfaces/IPActionMintRedeem.sol +8 -8
- package/contracts/interfaces/IPActionSwapYT.sol +2 -2
- package/contracts/interfaces/IPBulkSeller.sol +0 -4
- package/contracts/interfaces/IPMarket.sol +20 -4
- package/contracts/interfaces/IPMarketFactory.sol +15 -5
- package/contracts/interfaces/IPMsgSendEndpoint.sol +1 -1
- package/contracts/interfaces/IPYieldContractFactory.sol +2 -2
- package/contracts/interfaces/IPYieldToken.sol +2 -0
- package/contracts/interfaces/IStandardizedYield.sol +15 -10
- package/contracts/offchain-helpers/BulkSellerOffchain.sol +17 -8
- package/contracts/offchain-helpers/MarketMathStatic.sol +35 -96
- package/contracts/offchain-helpers/RouterStatic.sol +49 -9
- package/contracts/router/ActionAddRemoveLiq.sol +102 -10
- package/contracts/router/ActionMintRedeem.sol +44 -4
- package/contracts/router/ActionSwapPT.sol +41 -11
- package/contracts/router/ActionSwapPTYT.sol +32 -7
- package/contracts/router/ActionSwapYT.sol +49 -33
- package/contracts/router/PendleRouter.sol +3 -11
- package/contracts/router/base/MarketApproxLib.sol +65 -22
- package/deployments/43113-core.json +19 -14
- package/deployments/43113-markets/WETH-FEB-2ND.json +10 -0
- package/package.json +7 -7
- package/typechain-types/AccessControlUpgradeable.ts +369 -0
- package/typechain-types/ActionAddRemoveLiq.ts +18 -18
- package/typechain-types/ActionMintRedeem.ts +30 -30
- package/typechain-types/ActionSwapPTYT.ts +5 -5
- package/typechain-types/ActionSwapYT.ts +5 -5
- package/typechain-types/BulkSeller.ts +5 -91
- package/typechain-types/BulkSellerFactory.ts +21 -0
- package/typechain-types/BulkSellerOffchain.ts +134 -0
- package/typechain-types/ContextUpgradeable.ts +68 -0
- package/typechain-types/ERC165Upgradeable.ts +113 -0
- package/typechain-types/IAccessControlUpgradeable.ts +305 -0
- package/typechain-types/IBooster.ts +9 -3
- package/typechain-types/ICrvPool.ts +4 -9
- package/typechain-types/IERC165Upgradeable.ts +102 -0
- package/typechain-types/IERC4626.ts +5 -5
- package/typechain-types/ILooksStaking.ts +27 -0
- package/typechain-types/IPActionAddRemoveLiq.ts +13 -13
- package/typechain-types/IPActionMintRedeem.ts +30 -30
- package/typechain-types/IPActionSwapYT.ts +5 -5
- package/typechain-types/IPAllAction.ts +48 -48
- package/typechain-types/IPBulkSeller.ts +0 -68
- package/typechain-types/IPBulkSellerFactory.ts +21 -0
- package/typechain-types/IPMarket.ts +26 -16
- package/typechain-types/IPMarketFactory.ts +70 -37
- package/typechain-types/IPMsgSendEndpoint.ts +1 -1
- package/typechain-types/IPYieldContractFactory.ts +11 -11
- package/typechain-types/IPYieldToken.ts +21 -0
- package/typechain-types/MarketMathStatic.ts +0 -67
- package/typechain-types/Pausable.ts +101 -0
- package/typechain-types/PendleConvexLPSY.ts +204 -0
- package/typechain-types/PendleCurveFraxUsdcSY.ts +204 -0
- package/typechain-types/PendleCurveUsdd3CrvSY.ts +204 -0
- package/typechain-types/PendleLooksStakingSY.ts +1256 -0
- package/typechain-types/PendleMarket.ts +26 -16
- package/typechain-types/PendleMarketFactory.ts +316 -92
- package/typechain-types/PendleQiTokenSY.ts +204 -0
- package/typechain-types/PendleRouter.ts +3 -287
- package/typechain-types/PendleWstEthSY.ts +204 -0
- package/typechain-types/PendleYieldContractFactory.ts +63 -18
- package/typechain-types/PendleYieldToken.ts +42 -0
- package/typechain-types/RouterStatic.ts +65 -7
- package/typechain-types/SYBase.ts +204 -0
- package/typechain-types/SYBaseWithRewards.ts +204 -0
- package/typechain-types/VotingEscrowPendleSidechain.ts +8 -8
- package/typechain-types/VotingEscrowTokenBase.ts +0 -21
- package/typechain-types/factories/AccessControlUpgradeable__factory.ts +247 -0
- package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +36 -10
- package/typechain-types/factories/ActionCallback__factory.ts +1 -1
- package/typechain-types/factories/ActionMintRedeem__factory.ts +19 -19
- package/typechain-types/factories/ActionMisc__factory.ts +1 -1
- package/typechain-types/factories/ActionSwapPTYT__factory.ts +28 -2
- package/typechain-types/factories/ActionSwapPT__factory.ts +27 -1
- package/typechain-types/factories/ActionSwapYT__factory.ts +29 -3
- package/typechain-types/factories/AggregationRouterHelper__factory.ts +1 -1
- package/typechain-types/factories/BaseSplitCodeFactoryContract__factory.ts +1 -1
- package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +1 -1
- package/typechain-types/factories/BulkSellerFactory__factory.ts +26 -1
- package/typechain-types/factories/BulkSellerOffchain__factory.ts +70 -12
- package/typechain-types/factories/BulkSeller__factory.ts +6 -53
- package/typechain-types/factories/ContextUpgradeable__factory.ts +39 -0
- package/typechain-types/factories/ERC165Upgradeable__factory.ts +58 -0
- package/typechain-types/factories/Errors__factory.ts +130 -30
- package/typechain-types/factories/IAccessControlUpgradeable__factory.ts +202 -0
- package/typechain-types/factories/IBooster__factory.ts +1 -1
- package/typechain-types/factories/ICrvPool__factory.ts +14 -7
- package/typechain-types/factories/IERC165Upgradeable__factory.ts +45 -0
- package/typechain-types/factories/IERC4626__factory.ts +1 -1
- package/typechain-types/factories/ILooksStaking__factory.ts +7 -0
- package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +8 -8
- package/typechain-types/factories/IPActionMintRedeem__factory.ts +18 -18
- package/typechain-types/factories/IPActionSwapYT__factory.ts +2 -2
- package/typechain-types/factories/IPAllAction__factory.ts +28 -28
- package/typechain-types/factories/IPBulkSellerFactory__factory.ts +25 -0
- package/typechain-types/factories/IPBulkSeller__factory.ts +0 -38
- package/typechain-types/factories/IPMarketFactory__factory.ts +50 -19
- package/typechain-types/factories/IPMarket__factory.ts +17 -5
- package/typechain-types/factories/IPMsgSendEndpoint__factory.ts +1 -1
- package/typechain-types/factories/IPYieldContractFactory__factory.ts +7 -7
- package/typechain-types/factories/IPYieldToken__factory.ts +13 -0
- package/typechain-types/factories/ImplicitSwapfeeContract__factory.ts +1 -1
- package/typechain-types/factories/MarketMathStatic__factory.ts +27 -45
- package/typechain-types/factories/OracleLib__factory.ts +1 -1
- package/typechain-types/factories/Pausable__factory.ts +62 -0
- package/typechain-types/factories/PendleConvexLPSY__factory.ts +141 -0
- package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +142 -1
- package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +145 -39
- package/typechain-types/factories/PendleERC20Permit__factory.ts +1 -1
- package/typechain-types/factories/PendleERC20__factory.ts +1 -1
- package/typechain-types/factories/PendleFeeDistributorFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
- package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1078 -0
- package/typechain-types/factories/PendleMarketFactory__factory.ts +220 -49
- package/typechain-types/factories/PendleMarket__factory.ts +18 -6
- package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
- package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
- package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
- package/typechain-types/factories/PendleQiTokenSY__factory.ts +142 -1
- package/typechain-types/factories/PendleRouter__factory.ts +1 -185
- package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleWstEthSY__factory.ts +142 -1
- package/typechain-types/factories/PendleYieldContractFactory__factory.ts +82 -9
- package/typechain-types/factories/PendleYieldToken__factory.ts +38 -3
- package/typechain-types/factories/RouterStatic__factory.ts +79 -3
- package/typechain-types/factories/SYBaseWithRewards__factory.ts +141 -0
- package/typechain-types/factories/SYBase__factory.ts +141 -0
- package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
- package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +15 -4
- package/typechain-types/factories/VotingEscrowTokenBase__factory.ts +0 -13
- package/typechain-types/hardhat.d.ts +107 -26
- package/typechain-types/index.ts +24 -6
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +0 -4
- package/build/artifacts/contracts/offchain-helpers/ImplicitSwapfeeContract.sol/ImplicitSwapfeeContract.dbg.json +0 -4
- package/build/artifacts/contracts/offchain-helpers/ImplicitSwapfeeContract.sol/ImplicitSwapfeeContract.json +0 -182
- package/contracts/offchain-helpers/ImplicitSwapfeeContract.sol +0 -30
- package/deployments/43113-markets/benqi-market-QI-AVAX-FEB-2ND.json +0 -9
- package/deployments/43113-markets/benqi-market-QI-USDC-FEB-2ND.json +0 -8
- package/deployments/43113-markets/benqi-market-QI-WETH-DEC-1ST.json +0 -9
- package/deployments/80001-core.json +0 -16
- package/deployments/80001-markets/benqi-market-QI-USDC-FEB-2ND.json +0 -8
- package/deployments/80001-markets/benqi-market-QI-WETH-DEC-1ST.json +0 -8
- package/deployments/80001-testenv.json +0 -22
|
@@ -5,6 +5,7 @@ import "../interfaces/IPActionSwapPTYT.sol";
|
|
|
5
5
|
import "../interfaces/IPMarket.sol";
|
|
6
6
|
import "./base/CallbackHelper.sol";
|
|
7
7
|
|
|
8
|
+
/// @dev All swap actions will revert if market is expired
|
|
8
9
|
contract ActionSwapPTYT is IPActionSwapPTYT, CallbackHelper, TokenHelper {
|
|
9
10
|
using MarketMathCore for MarketState;
|
|
10
11
|
using MarketApproxPtInLib for MarketState;
|
|
@@ -19,6 +20,18 @@ contract ActionSwapPTYT is IPActionSwapPTYT, CallbackHelper, TokenHelper {
|
|
|
19
20
|
|
|
20
21
|
}
|
|
21
22
|
|
|
23
|
+
/**
|
|
24
|
+
* @notice swap exact PT to YT with the help of flashswaps & YT tokenization / redemption
|
|
25
|
+
* @dev inner working of this function:
|
|
26
|
+
- `exactPtIn` PT is transferred to market contract
|
|
27
|
+
- `market.swapExactPtForSy` is called, which will transfer SY directly to YT contract & callback is invoked.
|
|
28
|
+
Note that we will owe PT, the amount before is not sufficient
|
|
29
|
+
- in callback, all SY in YT contract is used to mint PT + YT, with PT used to pay the rest of the loan, and YT
|
|
30
|
+
transferred to the receiver
|
|
31
|
+
* @param exactPtIn will always consume this amount of PT for as much YT as possible
|
|
32
|
+
* @param guessTotalPtToSwap approximation data for PT used for the PT-to-SY flashswap
|
|
33
|
+
* @dev this function works in conjunction with ActionCallback
|
|
34
|
+
*/
|
|
22
35
|
function swapExactPtForYt(
|
|
23
36
|
address receiver,
|
|
24
37
|
address market,
|
|
@@ -27,7 +40,7 @@ contract ActionSwapPTYT is IPActionSwapPTYT, CallbackHelper, TokenHelper {
|
|
|
27
40
|
ApproxParams calldata guessTotalPtToSwap
|
|
28
41
|
) external returns (uint256 netYtOut, uint256 netSyFee) {
|
|
29
42
|
(, IPPrincipalToken PT, IPYieldToken YT) = IPMarket(market).readTokens();
|
|
30
|
-
MarketState memory state = IPMarket(market).readState();
|
|
43
|
+
MarketState memory state = IPMarket(market).readState(address(this));
|
|
31
44
|
|
|
32
45
|
_transferFrom(IERC20(PT), msg.sender, market, exactPtIn);
|
|
33
46
|
|
|
@@ -50,31 +63,43 @@ contract ActionSwapPTYT is IPActionSwapPTYT, CallbackHelper, TokenHelper {
|
|
|
50
63
|
emit SwapPtAndYt(msg.sender, market, receiver, exactPtIn.neg(), netYtOut.Int());
|
|
51
64
|
}
|
|
52
65
|
|
|
66
|
+
/**
|
|
67
|
+
* @notice swap exact YT to PT with the help of flashswaps & YT tokenization / redemption
|
|
68
|
+
* @dev inner working of this function:
|
|
69
|
+
- `exactYtIn` YT is transferred to yield contract
|
|
70
|
+
- `market.swapSyForExactPt` is called, which will transfer PT directly to this contract & callback is invoked.
|
|
71
|
+
Note that we now owe SY
|
|
72
|
+
- in callback, a portion of PT + YT is used to redeem SY, which is then used to payback the loan. The rest of
|
|
73
|
+
of the PT is transferred to `receiver`
|
|
74
|
+
* @param exactYtIn will always consume this amount of YT for as much PT as possible
|
|
75
|
+
* @param guessTotalPtFromSwap approximation data for PT output of the SY-to-PT flashswap
|
|
76
|
+
* @dev this function works in conjunction with ActionCallback
|
|
77
|
+
*/
|
|
53
78
|
function swapExactYtForPt(
|
|
54
79
|
address receiver,
|
|
55
80
|
address market,
|
|
56
81
|
uint256 exactYtIn,
|
|
57
82
|
uint256 minPtOut,
|
|
58
|
-
ApproxParams calldata
|
|
83
|
+
ApproxParams calldata guessTotalPtFromSwap
|
|
59
84
|
) external returns (uint256 netPtOut, uint256 netSyFee) {
|
|
60
85
|
(, , IPYieldToken YT) = IPMarket(market).readTokens();
|
|
61
|
-
MarketState memory state = IPMarket(market).readState();
|
|
86
|
+
MarketState memory state = IPMarket(market).readState(address(this));
|
|
62
87
|
|
|
63
88
|
_transferFrom(IERC20(YT), msg.sender, address(YT), exactYtIn);
|
|
64
89
|
|
|
65
|
-
uint256
|
|
66
|
-
(netPtOut,
|
|
90
|
+
uint256 totalPtFromSwap;
|
|
91
|
+
(netPtOut, totalPtFromSwap, netSyFee) = state.approxSwapExactYtForPt(
|
|
67
92
|
YT.newIndex(),
|
|
68
93
|
exactYtIn,
|
|
69
94
|
block.timestamp,
|
|
70
|
-
|
|
95
|
+
guessTotalPtFromSwap
|
|
71
96
|
);
|
|
72
97
|
|
|
73
98
|
if (netPtOut < minPtOut) revert Errors.RouterInsufficientPtOut(netPtOut, minPtOut);
|
|
74
99
|
|
|
75
100
|
IPMarket(market).swapSyForExactPt(
|
|
76
101
|
address(this),
|
|
77
|
-
|
|
102
|
+
totalPtFromSwap,
|
|
78
103
|
_encodeSwapExactYtForPt(receiver, exactYtIn, minPtOut)
|
|
79
104
|
);
|
|
80
105
|
|
|
@@ -7,6 +7,7 @@ import "../interfaces/IPActionSwapYT.sol";
|
|
|
7
7
|
import "../interfaces/IPMarket.sol";
|
|
8
8
|
import "../core/libraries/Errors.sol";
|
|
9
9
|
|
|
10
|
+
/// @dev All swap actions will revert if market is expired
|
|
10
11
|
contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
|
|
11
12
|
using Math for uint256;
|
|
12
13
|
using Math for int256;
|
|
@@ -21,14 +22,16 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
|
|
|
21
22
|
{}
|
|
22
23
|
|
|
23
24
|
/**
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
* @notice swap exact SY to YT with the help of flashswaps & YT tokenization / redemption
|
|
26
|
+
* @dev inner working of this function:
|
|
26
27
|
- `exactSyIn` SY is transferred to YT contract
|
|
27
|
-
- `market.swapExactPtForSy` is called, which will transfer SY directly to YT contract &
|
|
28
|
-
|
|
29
|
-
- in callback, all SY in YT contract is used to mint PT + YT, with PT used to pay back the
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
- `market.swapExactPtForSy` is called, which will transfer more SY directly to YT contract &
|
|
29
|
+
callback is invoked. Note that now we owe PT
|
|
30
|
+
- in callback, all SY in YT contract is used to mint PT + YT, with all PT used to pay back the
|
|
31
|
+
loan, and all YT transferred to the receiver
|
|
32
|
+
* @param exactSyIn will always consume this amount of SY for as much YT as possible
|
|
33
|
+
* @param guessYtOut approximation data for total YT output
|
|
34
|
+
* @dev this function works in conjunction with ActionCallback
|
|
32
35
|
*/
|
|
33
36
|
function swapExactSyForYt(
|
|
34
37
|
address receiver,
|
|
@@ -54,14 +57,15 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
|
|
|
54
57
|
}
|
|
55
58
|
|
|
56
59
|
/**
|
|
57
|
-
|
|
58
|
-
|
|
60
|
+
* @notice swap exact YT to SY with the help of flashswaps & YT tokenization / redemption
|
|
61
|
+
* @dev inner working of this function:
|
|
59
62
|
- `exactYtIn` YT is transferred to YT contract
|
|
60
|
-
- `market.swapSyForExactPt` is called, which will transfer PT directly to YT contract &
|
|
61
|
-
|
|
62
|
-
-
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
- `market.swapSyForExactPt` is called, which will transfer PT directly to YT contract &
|
|
64
|
+
callback is invoked. Note that now we owe SY.
|
|
65
|
+
- In callback, all PT + YT in YT contract is used to redeem SY. A portion of SY is used to
|
|
66
|
+
payback the loan, the rest is transferred to the `receiver`
|
|
67
|
+
* @param exactYtIn will consume exactly this much YT for as much SY as possible
|
|
68
|
+
* @dev this function works in conjunction with ActionCallback
|
|
65
69
|
*/
|
|
66
70
|
function swapExactYtForSy(
|
|
67
71
|
address receiver,
|
|
@@ -79,13 +83,14 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
|
|
|
79
83
|
}
|
|
80
84
|
|
|
81
85
|
/**
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
- `market.swapExactPtForSy` is called, which will transfer SY directly to YT contract &
|
|
85
|
-
|
|
86
|
-
-
|
|
87
|
-
|
|
88
|
-
|
|
86
|
+
* @notice swap SY to exact YT with the help of flashswaps & YT tokenization / redemption
|
|
87
|
+
* @dev inner working of this function:
|
|
88
|
+
- `market.swapExactPtForSy` is called, which will transfer SY directly to YT contract &
|
|
89
|
+
callback is invoked. Note that now we owe PT
|
|
90
|
+
- In callback, we will pull in more SY as needed from caller & mint all SY to PT + YT. PT is
|
|
91
|
+
then used to payback the loan, while YT is transferred to `receiver`
|
|
92
|
+
* @param exactYtOut will output exactly this amount of YT, no approximation is used
|
|
93
|
+
* @dev this function works in conjunction with ActionCallback
|
|
89
94
|
*/
|
|
90
95
|
function swapSyForExactYt(
|
|
91
96
|
address receiver,
|
|
@@ -109,14 +114,15 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
|
|
|
109
114
|
}
|
|
110
115
|
|
|
111
116
|
/**
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
-
|
|
115
|
-
- `
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
117
|
+
* @notice swap YT to exact SY with the help of flashswaps & YT tokenization / redemption
|
|
118
|
+
* @dev inner working of this function:
|
|
119
|
+
- Approximates `netYtIn` using the data from `guessYtIn`
|
|
120
|
+
- Pulls `netYtIn` amount of YT from caller
|
|
121
|
+
- `market.swapSyForExactPt` is called, which will transfer PT directly to YT contract &
|
|
122
|
+
callback is invoked. Note that now we owe SY
|
|
123
|
+
- In callback, we will redeem all PT + YT to get SY. A portion of it is used to payback the
|
|
124
|
+
loan. The rest is transferred to `receiver`
|
|
125
|
+
* @dev this function works in conjunction with ActionCallback
|
|
120
126
|
*/
|
|
121
127
|
function swapYtForExactSy(
|
|
122
128
|
address receiver,
|
|
@@ -125,7 +131,7 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
|
|
|
125
131
|
uint256 maxYtIn,
|
|
126
132
|
ApproxParams memory guessYtIn
|
|
127
133
|
) external returns (uint256 netYtIn, uint256 netSyFee) {
|
|
128
|
-
MarketState memory state = IPMarket(market).readState();
|
|
134
|
+
MarketState memory state = IPMarket(market).readState(address(this));
|
|
129
135
|
(, , IPYieldToken YT) = IPMarket(market).readTokens();
|
|
130
136
|
|
|
131
137
|
(netYtIn, , ) = state.approxSwapYtForExactSy(
|
|
@@ -148,6 +154,11 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
|
|
|
148
154
|
emit SwapYtAndSy(msg.sender, market, receiver, netYtIn.neg(), exactSyOut.Int());
|
|
149
155
|
}
|
|
150
156
|
|
|
157
|
+
/**
|
|
158
|
+
* @notice swaps any token to YT
|
|
159
|
+
* @dev this function swaps token for SY-mintable token first through Kyberswap, then mints SY
|
|
160
|
+
* from such, finally swaps SY to YT (see `swapSyForExactYt()`)
|
|
161
|
+
*/
|
|
151
162
|
function swapExactTokenForYt(
|
|
152
163
|
address receiver,
|
|
153
164
|
address market,
|
|
@@ -171,13 +182,18 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
|
|
|
171
182
|
emit SwapYtAndToken(
|
|
172
183
|
msg.sender,
|
|
173
184
|
market,
|
|
174
|
-
receiver,
|
|
175
185
|
input.tokenIn,
|
|
186
|
+
receiver,
|
|
176
187
|
netYtOut.Int(),
|
|
177
188
|
input.netTokenIn.neg()
|
|
178
189
|
);
|
|
179
190
|
}
|
|
180
191
|
|
|
192
|
+
/**
|
|
193
|
+
* @notice swaps YT to a given token
|
|
194
|
+
* @dev the function first swaps YT to SY (see `swapExactYtForSy()`), then redeems SY,
|
|
195
|
+
* finally swaps resulting tokens to desired output token using Kyberswap
|
|
196
|
+
*/
|
|
181
197
|
function swapExactYtForToken(
|
|
182
198
|
address receiver,
|
|
183
199
|
address market,
|
|
@@ -204,8 +220,8 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
|
|
|
204
220
|
emit SwapYtAndToken(
|
|
205
221
|
msg.sender,
|
|
206
222
|
market,
|
|
207
|
-
receiver,
|
|
208
223
|
output.tokenOut,
|
|
224
|
+
receiver,
|
|
209
225
|
netYtIn.neg(),
|
|
210
226
|
netTokenOut.Int()
|
|
211
227
|
);
|
|
@@ -219,7 +235,7 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
|
|
|
219
235
|
uint256 minYtOut,
|
|
220
236
|
ApproxParams memory guessYtOut
|
|
221
237
|
) internal returns (uint256 netYtOut, uint256 netSyFee) {
|
|
222
|
-
MarketState memory state = IPMarket(market).readState();
|
|
238
|
+
MarketState memory state = IPMarket(market).readState(address(this));
|
|
223
239
|
|
|
224
240
|
(netYtOut, ) = state.approxSwapExactSyForYt(
|
|
225
241
|
YT.newIndex(),
|
|
@@ -5,7 +5,6 @@ import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";
|
|
|
5
5
|
import "@openzeppelin/contracts/proxy/Proxy.sol";
|
|
6
6
|
import "../interfaces/IPAllAction.sol";
|
|
7
7
|
import "../interfaces/IPMarketSwapCallback.sol";
|
|
8
|
-
import "../core/libraries/BoringOwnableUpgradeable.sol";
|
|
9
8
|
import "../core/libraries/Errors.sol";
|
|
10
9
|
|
|
11
10
|
/// @dev this contract will be deployed behind an ERC1967 proxy
|
|
@@ -13,7 +12,7 @@ import "../core/libraries/Errors.sol";
|
|
|
13
12
|
/// corresponding implementation contracts
|
|
14
13
|
|
|
15
14
|
// solhint-disable no-empty-blocks
|
|
16
|
-
contract PendleRouter is Proxy
|
|
15
|
+
contract PendleRouter is Proxy {
|
|
17
16
|
address public immutable ACTION_MINT_REDEEM;
|
|
18
17
|
address public immutable ACTION_ADD_REMOVE_LIQ;
|
|
19
18
|
address public immutable ACTION_SWAP_PT;
|
|
@@ -30,7 +29,7 @@ contract PendleRouter is Proxy, Initializable, UUPSUpgradeable, BoringOwnableUpg
|
|
|
30
29
|
address _ACTION_SWAP_PTYT,
|
|
31
30
|
address _ACTION_CALLBACK,
|
|
32
31
|
address _ACTION_MISC
|
|
33
|
-
)
|
|
32
|
+
) {
|
|
34
33
|
ACTION_MINT_REDEEM = _ACTION_MINT_REDEEM;
|
|
35
34
|
ACTION_ADD_REMOVE_LIQ = _ACTION_ADD_REMOVE_LIQ;
|
|
36
35
|
ACTION_SWAP_PT = _ACTION_SWAP_PT;
|
|
@@ -40,12 +39,7 @@ contract PendleRouter is Proxy, Initializable, UUPSUpgradeable, BoringOwnableUpg
|
|
|
40
39
|
ACTION_MISC = _ACTION_MISC;
|
|
41
40
|
}
|
|
42
41
|
|
|
43
|
-
receive() external payable virtual override {
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
function initialize() external initializer {
|
|
47
|
-
__BoringOwnable_init();
|
|
48
|
-
}
|
|
42
|
+
receive() external payable virtual override {}
|
|
49
43
|
|
|
50
44
|
function getRouterImplementation(bytes4 sig) public view returns (address) {
|
|
51
45
|
if (
|
|
@@ -103,8 +97,6 @@ contract PendleRouter is Proxy, Initializable, UUPSUpgradeable, BoringOwnableUpg
|
|
|
103
97
|
revert Errors.RouterInvalidAction(sig);
|
|
104
98
|
}
|
|
105
99
|
|
|
106
|
-
function _authorizeUpgrade(address newImplementation) internal override onlyOwner {}
|
|
107
|
-
|
|
108
100
|
function _implementation() internal view override returns (address) {
|
|
109
101
|
return getRouterImplementation(msg.sig);
|
|
110
102
|
}
|
|
@@ -24,7 +24,8 @@ struct ApproxParams {
|
|
|
24
24
|
|
|
25
25
|
/// for guessOffchain, this is to provide a shortcut to guessing. The offchain SDK can precalculate the exact result
|
|
26
26
|
/// before the tx is sent. When the tx reaches the contract, the guessOffchain will be checked first, and if it satisfies the
|
|
27
|
-
/// approximation, it will be used (and save all the guessing).
|
|
27
|
+
/// approximation, it will be used (and save all the guessing). It's expected that this shortcut will be used in most cases
|
|
28
|
+
/// except in cases that there is a trade in the same market right before the tx
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
library MarketApproxPtInLib {
|
|
@@ -84,7 +85,7 @@ library MarketApproxPtInLib {
|
|
|
84
85
|
continue;
|
|
85
86
|
}
|
|
86
87
|
|
|
87
|
-
(uint256 netSyOut, uint256 netSyFee) = calcSyOut(a.market, comp, a.index, guess);
|
|
88
|
+
(uint256 netSyOut, uint256 netSyFee, ) = calcSyOut(a.market, comp, a.index, guess);
|
|
88
89
|
|
|
89
90
|
if (netSyOut >= a.minSyOut) {
|
|
90
91
|
p.guessMax = guess;
|
|
@@ -146,7 +147,7 @@ library MarketApproxPtInLib {
|
|
|
146
147
|
continue;
|
|
147
148
|
}
|
|
148
149
|
|
|
149
|
-
(uint256 netSyOut, uint256 netSyFee) = calcSyOut(a.market, comp, a.index, guess);
|
|
150
|
+
(uint256 netSyOut, uint256 netSyFee, ) = calcSyOut(a.market, comp, a.index, guess);
|
|
150
151
|
|
|
151
152
|
uint256 maxPtPayable = a.index.syToAsset(netSyOut + a.exactSyIn);
|
|
152
153
|
|
|
@@ -155,7 +156,7 @@ library MarketApproxPtInLib {
|
|
|
155
156
|
bool isAnswerAccepted = Math.isASmallerApproxB(guess, maxPtPayable, p.eps);
|
|
156
157
|
if (isAnswerAccepted) return (guess, netSyFee);
|
|
157
158
|
} else {
|
|
158
|
-
p.guessMax = guess;
|
|
159
|
+
p.guessMax = guess - 1;
|
|
159
160
|
}
|
|
160
161
|
}
|
|
161
162
|
revert Errors.ApproxFail();
|
|
@@ -211,14 +212,18 @@ library MarketApproxPtInLib {
|
|
|
211
212
|
continue;
|
|
212
213
|
}
|
|
213
214
|
|
|
214
|
-
(uint256 netSyOut, uint256 netSyFee) = calcSyOut(
|
|
215
|
+
(uint256 netSyOut, uint256 netSyFee, uint256 netSyToReserve) = calcSyOut(
|
|
216
|
+
a.market,
|
|
217
|
+
comp,
|
|
218
|
+
a.index,
|
|
219
|
+
guess
|
|
220
|
+
);
|
|
215
221
|
|
|
216
222
|
uint256 syNumerator;
|
|
217
223
|
uint256 ptNumerator;
|
|
218
224
|
{
|
|
219
225
|
uint256 newTotalPt = a.market.totalPt.Uint() + guess;
|
|
220
|
-
uint256
|
|
221
|
-
uint256 newTotalSy = (a.market.totalSy.Uint() - netSyOut - netSyFee);
|
|
226
|
+
uint256 newTotalSy = (a.market.totalSy.Uint() - netSyOut - netSyToReserve);
|
|
222
227
|
|
|
223
228
|
// it is desired that
|
|
224
229
|
// netSyOut / newTotalSy = netPtRemaining / newTotalPt
|
|
@@ -226,7 +231,7 @@ library MarketApproxPtInLib {
|
|
|
226
231
|
// netSyOut * newTotalPt = netPtRemaining * newTotalSy
|
|
227
232
|
|
|
228
233
|
syNumerator = netSyOut * newTotalPt;
|
|
229
|
-
ptNumerator =
|
|
234
|
+
ptNumerator = (a.totalPtIn - guess) * newTotalSy;
|
|
230
235
|
}
|
|
231
236
|
|
|
232
237
|
if (Math.isAApproxB(syNumerator, ptNumerator, p.eps)) {
|
|
@@ -292,7 +297,7 @@ library MarketApproxPtInLib {
|
|
|
292
297
|
continue;
|
|
293
298
|
}
|
|
294
299
|
|
|
295
|
-
(uint256 netSyOut, uint256 netSyFee) = calcSyOut(a.market, comp, a.index, guess);
|
|
300
|
+
(uint256 netSyOut, uint256 netSyFee, ) = calcSyOut(a.market, comp, a.index, guess);
|
|
296
301
|
|
|
297
302
|
uint256 netAssetOut = a.index.syToAsset(netSyOut);
|
|
298
303
|
|
|
@@ -316,10 +321,23 @@ library MarketApproxPtInLib {
|
|
|
316
321
|
MarketPreCompute memory comp,
|
|
317
322
|
PYIndex index,
|
|
318
323
|
uint256 netPtIn
|
|
319
|
-
)
|
|
320
|
-
|
|
324
|
+
)
|
|
325
|
+
internal
|
|
326
|
+
pure
|
|
327
|
+
returns (
|
|
328
|
+
uint256 netSyOut,
|
|
329
|
+
uint256 netSyFee,
|
|
330
|
+
uint256 netSyToReserve
|
|
331
|
+
)
|
|
332
|
+
{
|
|
333
|
+
(int256 _netSyOut, int256 _netSyFee, int256 _netSyToReserve) = market.calcTrade(
|
|
334
|
+
comp,
|
|
335
|
+
index,
|
|
336
|
+
netPtIn.neg()
|
|
337
|
+
);
|
|
321
338
|
netSyOut = _netSyOut.Uint();
|
|
322
339
|
netSyFee = _netSyFee.Uint();
|
|
340
|
+
netSyToReserve = _netSyToReserve.Uint();
|
|
323
341
|
}
|
|
324
342
|
|
|
325
343
|
function newApproxParamsPtIn(
|
|
@@ -447,7 +465,7 @@ library MarketApproxPtOutLib {
|
|
|
447
465
|
for (uint256 iter = 0; iter < p.maxIteration; ++iter) {
|
|
448
466
|
uint256 guess = nextGuess(p, iter);
|
|
449
467
|
|
|
450
|
-
(uint256 netSyIn, uint256 netSyFee) = calcSyIn(a.market, comp, a.index, guess);
|
|
468
|
+
(uint256 netSyIn, uint256 netSyFee, ) = calcSyIn(a.market, comp, a.index, guess);
|
|
451
469
|
|
|
452
470
|
if (netSyIn <= a.exactSyIn) {
|
|
453
471
|
p.guessMin = guess;
|
|
@@ -502,7 +520,7 @@ library MarketApproxPtOutLib {
|
|
|
502
520
|
for (uint256 iter = 0; iter < p.maxIteration; ++iter) {
|
|
503
521
|
uint256 guess = nextGuess(p, iter);
|
|
504
522
|
|
|
505
|
-
(uint256 netSyOwed, uint256 netSyFee) = calcSyIn(a.market, comp, a.index, guess);
|
|
523
|
+
(uint256 netSyOwed, uint256 netSyFee, ) = calcSyIn(a.market, comp, a.index, guess);
|
|
506
524
|
|
|
507
525
|
uint256 netAssetToRepay = a.index.syToAssetUp(netSyOwed);
|
|
508
526
|
uint256 netSyOut = a.index.assetToSy(guess - netAssetToRepay);
|
|
@@ -562,7 +580,12 @@ library MarketApproxPtOutLib {
|
|
|
562
580
|
for (uint256 iter = 0; iter < p.maxIteration; ++iter) {
|
|
563
581
|
uint256 guess = nextGuess(p, iter);
|
|
564
582
|
|
|
565
|
-
(uint256 netSyIn, uint256 netSyFee) = calcSyIn(
|
|
583
|
+
(uint256 netSyIn, uint256 netSyFee, uint256 netSyToReserve) = calcSyIn(
|
|
584
|
+
a.market,
|
|
585
|
+
comp,
|
|
586
|
+
a.index,
|
|
587
|
+
guess
|
|
588
|
+
);
|
|
566
589
|
|
|
567
590
|
if (netSyIn > a.totalSyIn) {
|
|
568
591
|
p.guessMax = guess - 1;
|
|
@@ -573,9 +596,8 @@ library MarketApproxPtOutLib {
|
|
|
573
596
|
uint256 ptNumerator;
|
|
574
597
|
|
|
575
598
|
{
|
|
576
|
-
uint256 netSyRemaining = a.totalSyIn - netSyIn;
|
|
577
599
|
uint256 newTotalPt = a.market.totalPt.Uint() - guess;
|
|
578
|
-
uint256 netTotalSy = a.market.totalSy.Uint() + netSyIn -
|
|
600
|
+
uint256 netTotalSy = a.market.totalSy.Uint() + netSyIn - netSyToReserve;
|
|
579
601
|
|
|
580
602
|
// it is desired that
|
|
581
603
|
// netPtFromSwap / newTotalPt = netSyRemaining / netTotalSy
|
|
@@ -583,7 +605,7 @@ library MarketApproxPtOutLib {
|
|
|
583
605
|
// netPtFromSwap * netTotalSy = netSyRemaining * newTotalPt
|
|
584
606
|
|
|
585
607
|
ptNumerator = guess * netTotalSy;
|
|
586
|
-
syNumerator =
|
|
608
|
+
syNumerator = (a.totalSyIn - netSyIn) * newTotalPt;
|
|
587
609
|
}
|
|
588
610
|
|
|
589
611
|
if (Math.isAApproxB(ptNumerator, syNumerator, p.eps)) {
|
|
@@ -650,7 +672,7 @@ library MarketApproxPtOutLib {
|
|
|
650
672
|
for (uint256 iter = 0; iter < p.maxIteration; ++iter) {
|
|
651
673
|
uint256 guess = nextGuess(p, iter);
|
|
652
674
|
|
|
653
|
-
(uint256 netSyOwed, uint256 netSyFee) = calcSyIn(a.market, comp, a.index, guess);
|
|
675
|
+
(uint256 netSyOwed, uint256 netSyFee, ) = calcSyIn(a.market, comp, a.index, guess);
|
|
654
676
|
|
|
655
677
|
if (netSyOwed <= a.maxSyPayable) {
|
|
656
678
|
p.guessMin = guess;
|
|
@@ -671,11 +693,24 @@ library MarketApproxPtOutLib {
|
|
|
671
693
|
MarketPreCompute memory comp,
|
|
672
694
|
PYIndex index,
|
|
673
695
|
uint256 netPtOut
|
|
674
|
-
)
|
|
675
|
-
|
|
696
|
+
)
|
|
697
|
+
internal
|
|
698
|
+
pure
|
|
699
|
+
returns (
|
|
700
|
+
uint256 netSyIn,
|
|
701
|
+
uint256 netSyFee,
|
|
702
|
+
uint256 netSyToReserve
|
|
703
|
+
)
|
|
704
|
+
{
|
|
705
|
+
(int256 _netSyIn, int256 _netSyFee, int256 _netSyToReserve) = market.calcTrade(
|
|
706
|
+
comp,
|
|
707
|
+
index,
|
|
708
|
+
netPtOut.Int()
|
|
709
|
+
);
|
|
676
710
|
|
|
677
711
|
netSyIn = _netSyIn.abs();
|
|
678
712
|
netSyFee = _netSyFee.Uint();
|
|
713
|
+
netSyToReserve = _netSyToReserve.Uint();
|
|
679
714
|
}
|
|
680
715
|
|
|
681
716
|
function newApproxParamsPtOut(
|
|
@@ -683,11 +718,19 @@ library MarketApproxPtOutLib {
|
|
|
683
718
|
uint256 minGuessMin,
|
|
684
719
|
uint256 maxGuessMax
|
|
685
720
|
) internal pure returns (ApproxParamsPtOut memory res) {
|
|
721
|
+
if (_approx.guessMin > _approx.guessMax || _approx.eps > Math.ONE)
|
|
722
|
+
revert Errors.ApproxParamsInvalid(_approx.guessMin, _approx.guessMax, _approx.eps);
|
|
723
|
+
|
|
686
724
|
res.guessMin = Math.max(_approx.guessMin, minGuessMin);
|
|
687
725
|
res.guessMax = Math.min(_approx.guessMax, maxGuessMax);
|
|
688
726
|
|
|
689
|
-
if (res.guessMin > res.guessMax
|
|
690
|
-
revert Errors.
|
|
727
|
+
if (res.guessMin > res.guessMax)
|
|
728
|
+
revert Errors.ApproxBinarySearchInputInvalid(
|
|
729
|
+
_approx.guessMin,
|
|
730
|
+
_approx.guessMax,
|
|
731
|
+
minGuessMin,
|
|
732
|
+
maxGuessMax
|
|
733
|
+
);
|
|
691
734
|
|
|
692
735
|
res.guessOffchain = _approx.guessOffchain;
|
|
693
736
|
res.maxIteration = _approx.maxIteration;
|
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"deployer": "0x1FcCC097db89A86Bfc474A1028F93958295b1Fb7",
|
|
3
|
-
"network":
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
3
|
+
"network": {
|
|
4
|
+
"chainId": 43113,
|
|
5
|
+
"treasury": "0x243b7CFD29AcAF9cDe98C1958902FAA3B1F095D5",
|
|
6
|
+
"governance": "0x1FcCC097db89A86Bfc474A1028F93958295b1Fb7",
|
|
7
|
+
"pendle": "0x808507121b80c02388fad14726482e061b8da827",
|
|
8
|
+
"lzEndpoint": "0x93f54D755A063cE7bB9e6Ac47Eccc8e33411d706",
|
|
9
|
+
"wrappedNative": "0xe43a7aD7C09d8fAE3ADe7361f0b847b23adD5094"
|
|
10
|
+
},
|
|
11
|
+
"splitter": "0x4B3B9f8f65E1c3fde4073874c2C93a1760F11035",
|
|
12
|
+
"PENDLE": "0x808507121b80c02388fad14726482e061b8da827",
|
|
13
|
+
"yieldContractFactory": "0xD3DC187247539380C3AAbFdb2D09c341910fFE83",
|
|
14
|
+
"marketFactory": "0x74D8b7eC36C0ff4157bD359B6D3Ab82a5d741B8E",
|
|
15
|
+
"bulkSellerFactory": "0x640bDc3daF9cFDb33CC67e46180A4E6c0495D0f4",
|
|
16
|
+
"router": "0x5334471de92CDBeB4245d3a3B1aF93b4DfDa8cC9",
|
|
17
|
+
"routerStatic": "0xd1dCaC6f75361A7C734863BC17B126EcB873192C",
|
|
18
|
+
"vePendle": "0x2d7e1Ab594E218eBd473bBE3aF57fAD5541F10f9",
|
|
19
|
+
"senderEndpoint": "0x33D7a94070A697E5CAe134A409ef42cfDba4F3b1",
|
|
20
|
+
"votingController": "0xdc8D6a5Db65287af491199244459e5C57d62f3f8",
|
|
21
|
+
"gaugeController": "0xd7D67E0b7DcF4665222809868512cAf6ac99C736"
|
|
17
22
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "SY Benqi WETH",
|
|
3
|
+
"SY": "0x5C90c945C0f7Ad4D8C3d1746185262bB9499eCF0",
|
|
4
|
+
"YT": "0xe85DFab309ED388d75E4C3665a77C73C6C0BA630",
|
|
5
|
+
"PT": "0x27DaeA7A12A9499F8065631756FEE5A9ACbd105a",
|
|
6
|
+
"market": "0x096206b71CA3610724F780B9af6c2D47938A345C",
|
|
7
|
+
"expiry": 1675382400,
|
|
8
|
+
"scalarRoot": "62000000000000000000",
|
|
9
|
+
"initAnchor": "1012600000000000000"
|
|
10
|
+
}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@pendle/core-v2",
|
|
3
3
|
"description": "Core smart contracts of Pendle Protocol.",
|
|
4
4
|
"license": "BUSL-1.1",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.17.0-daily",
|
|
6
6
|
"homepage": "https://pendle.finance",
|
|
7
7
|
"keywords": [
|
|
8
8
|
"pendle",
|
|
@@ -25,16 +25,16 @@
|
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@typechain/ethers-v5": "^9.0.0",
|
|
27
27
|
"@typechain/hardhat": "^4.0.0",
|
|
28
|
-
"hardhat": "^2.12.
|
|
28
|
+
"hardhat": "^2.12.2",
|
|
29
29
|
"hardhat-contract-sizer": "^2.6.1",
|
|
30
30
|
"hardhat-storage-layout-diff": "^0.0.4",
|
|
31
31
|
"prettier": "^2.7.1",
|
|
32
|
-
"prettier-plugin-solidity": "^1.0.0-
|
|
32
|
+
"prettier-plugin-solidity": "^1.0.0-rc.1",
|
|
33
33
|
"solc": "^0.8.17",
|
|
34
34
|
"solhint": "^3.3.7",
|
|
35
35
|
"ts-node": "^10.9.1",
|
|
36
|
-
"typechain": "^8.1.
|
|
37
|
-
"typescript": "^4.
|
|
36
|
+
"typechain": "^8.1.1",
|
|
37
|
+
"typescript": "^4.9.3"
|
|
38
38
|
},
|
|
39
39
|
"scripts": {
|
|
40
40
|
"compile": "yarn hardhat compile",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
},
|
|
45
45
|
"packageManager": "yarn@3.2.2",
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@openzeppelin/contracts": "
|
|
48
|
-
"@openzeppelin/contracts-upgradeable": "
|
|
47
|
+
"@openzeppelin/contracts": "4.7.3",
|
|
48
|
+
"@openzeppelin/contracts-upgradeable": "4.7.3"
|
|
49
49
|
}
|
|
50
50
|
}
|