@pendle/core-v2 1.0.0-mainnet → 1.0.1-mainnet

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/README.md +28 -0
  2. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
  3. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
  4. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  6. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.dbg.json +1 -1
  7. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/EpochResultManager.sol/EpochResultManager.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.dbg.json +1 -1
  11. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  12. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  13. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  14. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  15. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  16. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  18. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  19. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  20. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  21. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  22. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  23. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  24. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  25. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  26. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  27. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  28. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  29. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  30. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  32. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
  53. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/libraries/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  55. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  56. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
  57. package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.dbg.json +1 -1
  58. package/build/artifacts/contracts/interfaces/IBoringOwnableUpgradeable.sol/IBoringOwnableUpgradeable.dbg.json +1 -1
  59. package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.dbg.json +1 -1
  60. package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +1 -1
  61. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  62. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  63. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  64. package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +1 -1
  65. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  66. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  67. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  68. package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.dbg.json +1 -1
  69. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  70. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
  71. package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
  72. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  73. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  74. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  75. package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.dbg.json +1 -1
  76. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  77. package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +1 -1
  78. package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +1 -1
  79. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  80. package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.dbg.json +1 -1
  81. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  82. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  83. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
  84. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +2 -2
  85. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  86. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +160 -60
  87. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  88. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +1 -1
  89. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  90. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  91. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  92. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +1 -1
  93. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  94. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  95. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  96. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  97. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  98. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +1 -1
  99. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.dbg.json +1 -1
  100. package/build/artifacts/contracts/router/kyberswap/IMultihopRouter.sol/IMultihopRouter.dbg.json +1 -1
  101. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +1 -1
  102. package/contracts/offchain-helpers/MarketMathStatic.sol +181 -88
  103. package/contracts/offchain-helpers/RouterStatic.sol +72 -72
  104. package/deployments/1-core.json +1 -1
  105. package/package.json +1 -1
  106. package/typechain-types/IApeStaking.ts +274 -0
  107. package/typechain-types/PendleApeStakingSY.ts +1251 -0
  108. package/typechain-types/RouterStatic.ts +40 -20
  109. package/typechain-types/SYBaseAutoCompound.ts +1203 -0
  110. package/typechain-types/factories/IApeStaking__factory.ts +127 -0
  111. package/typechain-types/factories/MarketMathStatic__factory.ts +1 -1
  112. package/typechain-types/factories/PendleApeStakingSY__factory.ts +1065 -0
  113. package/typechain-types/factories/RouterStatic__factory.ts +101 -1
  114. package/typechain-types/factories/SYBaseAutoCompound__factory.ts +942 -0
@@ -14,9 +14,10 @@ import "../LiquidityMining/libraries/VeBalanceLib.sol";
14
14
 
15
15
  import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
16
16
  import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";
17
+ import "@openzeppelin/contracts/proxy/Proxy.sol";
17
18
 
18
19
  /// EXCLUDED FROM ALL AUDITS, TO BE CALLED ONLY BY PENDLE's SDK
19
- contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeable {
20
+ contract RouterStatic is Initializable, Proxy, BoringOwnableUpgradeable, UUPSUpgradeable {
20
21
  using Math for uint256;
21
22
  using VeBalanceLib for VeBalance;
22
23
  using VeBalanceLib for LockedPosition;
@@ -62,32 +63,29 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
62
63
  IPMarketFactory internal immutable marketFactory;
63
64
  IPVotingEscrowMainchain internal immutable vePENDLE;
64
65
  IPBulkSellerFactory internal immutable bulkFactory;
66
+ address internal immutable marketMathStaticLib;
65
67
 
66
68
  constructor(
67
69
  IPYieldContractFactory _yieldContractFactory,
68
70
  IPMarketFactory _marketFactory,
69
71
  IPVotingEscrowMainchain _vePENDLE,
70
- IPBulkSellerFactory _bulkFactory
72
+ IPBulkSellerFactory _bulkFactory,
73
+ address _marketMathStaticLib
71
74
  ) initializer {
72
75
  yieldContractFactory = _yieldContractFactory;
73
76
  marketFactory = _marketFactory;
74
77
  vePENDLE = _vePENDLE;
75
78
  bulkFactory = _bulkFactory;
79
+ marketMathStaticLib = _marketMathStaticLib;
76
80
  }
77
81
 
78
- function initialize() external initializer {
79
- __BoringOwnable_init();
82
+ // all Market-related functions will go to MarketMathStaticLib
83
+ function _implementation() internal view override returns (address) {
84
+ return marketMathStaticLib;
80
85
  }
81
86
 
82
- function getDefaultApproxParams() public pure returns (ApproxParams memory) {
83
- return
84
- ApproxParams({
85
- guessMin: 0,
86
- guessMax: type(uint256).max,
87
- guessOffchain: 0,
88
- maxIteration: 256,
89
- eps: 1e14
90
- });
87
+ function initialize() external initializer {
88
+ __BoringOwnable_init();
91
89
  }
92
90
 
93
91
  function _authorizeUpgrade(address newImplementation) internal override onlyOwner {}
@@ -158,7 +156,7 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
158
156
  sy = address(SY);
159
157
  state = _market.readState(address(this));
160
158
  impliedYield = getPtImpliedYield(market);
161
- exchangeRate = MarketMathStatic.getExchangeRate(market);
159
+ exchangeRate = MarketMathStatic.getTradeExchangeRateExcludeFee(market);
162
160
  }
163
161
 
164
162
  // ============= USER INFO =============
@@ -325,11 +323,11 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
325
323
  uint256 netLpOut,
326
324
  uint256 netPtToSwap,
327
325
  uint256 netSyFee,
328
- uint256 priceImpact
326
+ uint256 priceImpact,
327
+ uint256 exchangeRateAfter
329
328
  )
330
329
  {
331
- return
332
- MarketMathStatic.addLiquiditySinglePtStatic(market, netPtIn, getDefaultApproxParams());
330
+ return MarketMathStatic.addLiquiditySinglePtStatic(market, netPtIn);
333
331
  }
334
332
 
335
333
  function addLiquiditySingleSyStatic(address market, uint256 netSyIn)
@@ -338,11 +336,11 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
338
336
  uint256 netLpOut,
339
337
  uint256 netPtFromSwap,
340
338
  uint256 netSyFee,
341
- uint256 priceImpact
339
+ uint256 priceImpact,
340
+ uint256 exchangeRateAfter
342
341
  )
343
342
  {
344
- return
345
- MarketMathStatic.addLiquiditySingleSyStatic(market, netSyIn, getDefaultApproxParams());
343
+ return MarketMathStatic.addLiquiditySingleSyStatic(market, netSyIn);
346
344
  }
347
345
 
348
346
  function addLiquiditySingleBaseTokenStatic(
@@ -356,7 +354,8 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
356
354
  uint256 netLpOut,
357
355
  uint256 netPtFromSwap,
358
356
  uint256 netSyFee,
359
- uint256 priceImpact
357
+ uint256 priceImpact,
358
+ uint256 exchangeRateAfter
360
359
  )
361
360
  {
362
361
  uint256 netSyIn = previewDepositStatic(
@@ -366,8 +365,7 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
366
365
  bulk
367
366
  );
368
367
 
369
- return
370
- MarketMathStatic.addLiquiditySingleSyStatic(market, netSyIn, getDefaultApproxParams());
368
+ return MarketMathStatic.addLiquiditySingleSyStatic(market, netSyIn);
371
369
  }
372
370
 
373
371
  function removeLiquidityDualSyAndPtStatic(address market, uint256 netLpToRemove)
@@ -400,15 +398,11 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
400
398
  uint256 netPtOut,
401
399
  uint256 netPtFromSwap,
402
400
  uint256 netSyFee,
403
- uint256 priceImpact
401
+ uint256 priceImpact,
402
+ uint256 exchangeRateAfter
404
403
  )
405
404
  {
406
- return
407
- MarketMathStatic.removeLiquiditySinglePtStatic(
408
- market,
409
- netLpToRemove,
410
- getDefaultApproxParams()
411
- );
405
+ return MarketMathStatic.removeLiquiditySinglePtStatic(market, netLpToRemove);
412
406
  }
413
407
 
414
408
  function removeLiquiditySingleSyStatic(address market, uint256 netLpToRemove)
@@ -416,7 +410,8 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
416
410
  returns (
417
411
  uint256 netSyOut,
418
412
  uint256 netSyFee,
419
- uint256 priceImpact
413
+ uint256 priceImpact,
414
+ uint256 exchangeRateAfter
420
415
  )
421
416
  {
422
417
  return MarketMathStatic.removeLiquiditySingleSyStatic(market, netLpToRemove);
@@ -432,15 +427,14 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
432
427
  returns (
433
428
  uint256 netBaseTokenOut,
434
429
  uint256 netSyFee,
435
- uint256 priceImpact
430
+ uint256 priceImpact,
431
+ uint256 exchangeRateAfter
436
432
  )
437
433
  {
438
434
  uint256 netSyOut;
439
435
 
440
- (netSyOut, netSyFee, priceImpact) = MarketMathStatic.removeLiquiditySingleSyStatic(
441
- market,
442
- netLpToRemove
443
- );
436
+ (netSyOut, netSyFee, priceImpact, exchangeRateAfter) = MarketMathStatic
437
+ .removeLiquiditySingleSyStatic(market, netLpToRemove);
444
438
 
445
439
  netBaseTokenOut = previewRedeemStatic(getSyMarket(market), baseToken, netSyOut, bulk);
446
440
  }
@@ -450,7 +444,8 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
450
444
  returns (
451
445
  uint256 netSyOut,
452
446
  uint256 netSyFee,
453
- uint256 priceImpact
447
+ uint256 priceImpact,
448
+ uint256 exchangeRateAfter
454
449
  )
455
450
  {
456
451
  return MarketMathStatic.swapExactPtForSyStatic(market, exactPtIn);
@@ -461,7 +456,8 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
461
456
  returns (
462
457
  uint256 netSyIn,
463
458
  uint256 netSyFee,
464
- uint256 priceImpact
459
+ uint256 priceImpact,
460
+ uint256 exchangeRateAfter
465
461
  )
466
462
  {
467
463
  return MarketMathStatic.swapSyForExactPtStatic(market, exactPtOut);
@@ -472,11 +468,11 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
472
468
  returns (
473
469
  uint256 netPtOut,
474
470
  uint256 netSyFee,
475
- uint256 priceImpact
471
+ uint256 priceImpact,
472
+ uint256 exchangeRateAfter
476
473
  )
477
474
  {
478
- return
479
- MarketMathStatic.swapExactSyForPtStatic(market, exactSyIn, getDefaultApproxParams());
475
+ return MarketMathStatic.swapExactSyForPtStatic(market, exactSyIn);
480
476
  }
481
477
 
482
478
  function swapPtForExactSyStatic(address market, uint256 exactSyOut)
@@ -484,11 +480,11 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
484
480
  returns (
485
481
  uint256 netPtIn,
486
482
  uint256 netSyFee,
487
- uint256 priceImpact
483
+ uint256 priceImpact,
484
+ uint256 exchangeRateAfter
488
485
  )
489
486
  {
490
- return
491
- MarketMathStatic.swapPtForExactSyStatic(market, exactSyOut, getDefaultApproxParams());
487
+ return MarketMathStatic.swapPtForExactSyStatic(market, exactSyOut);
492
488
  }
493
489
 
494
490
  function swapExactBaseTokenForPtStatic(
@@ -501,7 +497,8 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
501
497
  returns (
502
498
  uint256 netPtOut,
503
499
  uint256 netSyFee,
504
- uint256 priceImpact
500
+ uint256 priceImpact,
501
+ uint256 exchangeRateAfter
505
502
  )
506
503
  {
507
504
  uint256 netSyIn = previewDepositStatic(
@@ -510,7 +507,7 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
510
507
  amountBaseToken,
511
508
  bulk
512
509
  );
513
- return MarketMathStatic.swapExactSyForPtStatic(market, netSyIn, getDefaultApproxParams());
510
+ return MarketMathStatic.swapExactSyForPtStatic(market, netSyIn);
514
511
  }
515
512
 
516
513
  function swapExactPtForBaseTokenStatic(
@@ -523,14 +520,13 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
523
520
  returns (
524
521
  uint256 netBaseTokenOut,
525
522
  uint256 netSyFee,
526
- uint256 priceImpact
523
+ uint256 priceImpact,
524
+ uint256 exchangeRateAfter
527
525
  )
528
526
  {
529
527
  uint256 netSyOut;
530
- (netSyOut, netSyFee, priceImpact) = MarketMathStatic.swapExactPtForSyStatic(
531
- market,
532
- exactPtIn
533
- );
528
+ (netSyOut, netSyFee, priceImpact, exchangeRateAfter) = MarketMathStatic
529
+ .swapExactPtForSyStatic(market, exactPtIn);
534
530
 
535
531
  netBaseTokenOut = previewRedeemStatic(getSyMarket(market), baseToken, netSyOut, bulk);
536
532
  }
@@ -540,7 +536,8 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
540
536
  returns (
541
537
  uint256 netSyIn,
542
538
  uint256 netSyFee,
543
- uint256 priceImpact
539
+ uint256 priceImpact,
540
+ uint256 exchangeRateAfter
544
541
  )
545
542
  {
546
543
  return MarketMathStatic.swapSyForExactYtStatic(market, exactYtOut);
@@ -551,11 +548,11 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
551
548
  returns (
552
549
  uint256 netYtOut,
553
550
  uint256 netSyFee,
554
- uint256 priceImpact
551
+ uint256 priceImpact,
552
+ uint256 exchangeRateAfter
555
553
  )
556
554
  {
557
- return
558
- MarketMathStatic.swapExactSyForYtStatic(market, exactSyIn, getDefaultApproxParams());
555
+ return MarketMathStatic.swapExactSyForYtStatic(market, exactSyIn);
559
556
  }
560
557
 
561
558
  function swapExactYtForSyStatic(address market, uint256 exactYtIn)
@@ -563,7 +560,8 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
563
560
  returns (
564
561
  uint256 netSyOut,
565
562
  uint256 netSyFee,
566
- uint256 priceImpact
563
+ uint256 priceImpact,
564
+ uint256 exchangeRateAfter
567
565
  )
568
566
  {
569
567
  return MarketMathStatic.swapExactYtForSyStatic(market, exactYtIn);
@@ -574,11 +572,11 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
574
572
  returns (
575
573
  uint256 netYtIn,
576
574
  uint256 netSyFee,
577
- uint256 priceImpact
575
+ uint256 priceImpact,
576
+ uint256 exchangeRateAfter
578
577
  )
579
578
  {
580
- return
581
- MarketMathStatic.swapYtForExactSyStatic(market, exactSyOut, getDefaultApproxParams());
579
+ return MarketMathStatic.swapYtForExactSyStatic(market, exactSyOut);
582
580
  }
583
581
 
584
582
  function swapExactYtForBaseTokenStatic(
@@ -591,14 +589,13 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
591
589
  returns (
592
590
  uint256 netBaseTokenOut,
593
591
  uint256 netSyFee,
594
- uint256 priceImpact
592
+ uint256 priceImpact,
593
+ uint256 exchangeRateAfter
595
594
  )
596
595
  {
597
596
  uint256 netSyOut;
598
- (netSyOut, netSyFee, priceImpact) = MarketMathStatic.swapExactYtForSyStatic(
599
- market,
600
- exactYtIn
601
- );
597
+ (netSyOut, netSyFee, priceImpact, exchangeRateAfter) = MarketMathStatic
598
+ .swapExactYtForSyStatic(market, exactYtIn);
602
599
 
603
600
  netBaseTokenOut = previewRedeemStatic(getSyMarket(market), baseToken, netSyOut, bulk);
604
601
  }
@@ -613,7 +610,8 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
613
610
  returns (
614
611
  uint256 netYtOut,
615
612
  uint256 netSyFee,
616
- uint256 priceImpact
613
+ uint256 priceImpact,
614
+ uint256 exchangeRateAfter
617
615
  )
618
616
  {
619
617
  uint256 netSyIn = previewDepositStatic(
@@ -623,7 +621,7 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
623
621
  bulk
624
622
  );
625
623
 
626
- return MarketMathStatic.swapExactSyForYtStatic(market, netSyIn, getDefaultApproxParams());
624
+ return MarketMathStatic.swapExactSyForYtStatic(market, netSyIn);
627
625
  }
628
626
 
629
627
  function swapExactPtForYtStatic(address market, uint256 exactPtIn)
@@ -632,10 +630,11 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
632
630
  uint256 netYtOut,
633
631
  uint256 totalPtToSwap,
634
632
  uint256 netSyFee,
635
- uint256 priceImpact
633
+ uint256 priceImpact,
634
+ uint256 exchangeRateAfter
636
635
  )
637
636
  {
638
- return MarketMathStatic.swapExactPtForYt(market, exactPtIn, getDefaultApproxParams());
637
+ return MarketMathStatic.swapExactPtForYt(market, exactPtIn);
639
638
  }
640
639
 
641
640
  function swapExactYtForPtStatic(address market, uint256 exactYtIn)
@@ -644,10 +643,11 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
644
643
  uint256 netPtOut,
645
644
  uint256 totalPtSwapped,
646
645
  uint256 netSyFee,
647
- uint256 priceImpact
646
+ uint256 priceImpact,
647
+ uint256 exchangeRateAfter
648
648
  )
649
649
  {
650
- return MarketMathStatic.swapExactYtForPt(market, exactYtIn, getDefaultApproxParams());
650
+ return MarketMathStatic.swapExactYtForPt(market, exactYtIn);
651
651
  }
652
652
 
653
653
  // ============= vePENDLE =============
@@ -778,7 +778,7 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
778
778
  public
779
779
  returns (uint256 priceImpact)
780
780
  {
781
- return MarketMathStatic.calcPriceImpact(market, netPtOut);
781
+ return MarketMathStatic.calcPriceImpactPt(market, netPtOut);
782
782
  }
783
783
 
784
784
  // either but not both pyToken or market must be != 0
@@ -803,7 +803,7 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
803
803
  address bulk,
804
804
  uint256 netSyOut
805
805
  ) public view returns (uint256 netTokenIn) {
806
- uint256 pivotAmount = netSyOut;
806
+ uint256 pivotAmount = 10**IERC20Metadata(tokenIn).decimals();
807
807
 
808
808
  uint256 low = pivotAmount;
809
809
  {
@@ -21,7 +21,7 @@
21
21
  "bulkSellerFactory": "0x4B1da107B50529d53e5C906a79eaEcDCbC0E1dE3",
22
22
  "bulkSellerOffchain": "0x9ACc60F915dFcd190D270fc92567aE71776bd320",
23
23
  "router": "0x41FAD93F225b5C1C95f2445A5d7fcB85bA46713f",
24
- "routerStatic": "0x83cDf16B491d629C7C64d373BA0C767981e3B352",
24
+ "routerStatic": "0xcF45b92cd0B0859FC42a767fAac2354909f937e9",
25
25
  "vePendle": "0x4f30A9D41B80ecC5B94306AB4364951AE3170210",
26
26
  "senderEndpoint": "0x07b1014c88f14C9E910092526db57A20052E989F",
27
27
  "votingController": "0x44087E105137a5095c008AaB6a6530182821F2F0",
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": "1.0.0-mainnet",
5
+ "version": "1.0.1-mainnet",
6
6
  "homepage": "https://pendle.finance",
7
7
  "keywords": [
8
8
  "pendle",
@@ -0,0 +1,274 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import {
5
+ BaseContract,
6
+ BigNumber,
7
+ BigNumberish,
8
+ BytesLike,
9
+ CallOverrides,
10
+ ContractTransaction,
11
+ Overrides,
12
+ PopulatedTransaction,
13
+ Signer,
14
+ utils,
15
+ } from "ethers";
16
+ import { FunctionFragment, Result } from "@ethersproject/abi";
17
+ import { Listener, Provider } from "@ethersproject/providers";
18
+ import type {
19
+ TypedEventFilter,
20
+ TypedEvent,
21
+ TypedListener,
22
+ OnEvent,
23
+ } from "./common";
24
+
25
+ export interface IApeStakingInterface extends utils.Interface {
26
+ contractName: "IApeStaking";
27
+ functions: {
28
+ "addressPosition(address)": FunctionFragment;
29
+ "apeCoin()": FunctionFragment;
30
+ "claimSelfApeCoin()": FunctionFragment;
31
+ "depositSelfApeCoin(uint256)": FunctionFragment;
32
+ "pendingRewards(uint256,address,uint256)": FunctionFragment;
33
+ "withdrawApeCoin(uint256,address)": FunctionFragment;
34
+ };
35
+
36
+ encodeFunctionData(
37
+ functionFragment: "addressPosition",
38
+ values: [string]
39
+ ): string;
40
+ encodeFunctionData(functionFragment: "apeCoin", values?: undefined): string;
41
+ encodeFunctionData(
42
+ functionFragment: "claimSelfApeCoin",
43
+ values?: undefined
44
+ ): string;
45
+ encodeFunctionData(
46
+ functionFragment: "depositSelfApeCoin",
47
+ values: [BigNumberish]
48
+ ): string;
49
+ encodeFunctionData(
50
+ functionFragment: "pendingRewards",
51
+ values: [BigNumberish, string, BigNumberish]
52
+ ): string;
53
+ encodeFunctionData(
54
+ functionFragment: "withdrawApeCoin",
55
+ values: [BigNumberish, string]
56
+ ): string;
57
+
58
+ decodeFunctionResult(
59
+ functionFragment: "addressPosition",
60
+ data: BytesLike
61
+ ): Result;
62
+ decodeFunctionResult(functionFragment: "apeCoin", data: BytesLike): Result;
63
+ decodeFunctionResult(
64
+ functionFragment: "claimSelfApeCoin",
65
+ data: BytesLike
66
+ ): Result;
67
+ decodeFunctionResult(
68
+ functionFragment: "depositSelfApeCoin",
69
+ data: BytesLike
70
+ ): Result;
71
+ decodeFunctionResult(
72
+ functionFragment: "pendingRewards",
73
+ data: BytesLike
74
+ ): Result;
75
+ decodeFunctionResult(
76
+ functionFragment: "withdrawApeCoin",
77
+ data: BytesLike
78
+ ): Result;
79
+
80
+ events: {};
81
+ }
82
+
83
+ export interface IApeStaking extends BaseContract {
84
+ contractName: "IApeStaking";
85
+ connect(signerOrProvider: Signer | Provider | string): this;
86
+ attach(addressOrName: string): this;
87
+ deployed(): Promise<this>;
88
+
89
+ interface: IApeStakingInterface;
90
+
91
+ queryFilter<TEvent extends TypedEvent>(
92
+ event: TypedEventFilter<TEvent>,
93
+ fromBlockOrBlockhash?: string | number | undefined,
94
+ toBlock?: string | number | undefined
95
+ ): Promise<Array<TEvent>>;
96
+
97
+ listeners<TEvent extends TypedEvent>(
98
+ eventFilter?: TypedEventFilter<TEvent>
99
+ ): Array<TypedListener<TEvent>>;
100
+ listeners(eventName?: string): Array<Listener>;
101
+ removeAllListeners<TEvent extends TypedEvent>(
102
+ eventFilter: TypedEventFilter<TEvent>
103
+ ): this;
104
+ removeAllListeners(eventName?: string): this;
105
+ off: OnEvent<this>;
106
+ on: OnEvent<this>;
107
+ once: OnEvent<this>;
108
+ removeListener: OnEvent<this>;
109
+
110
+ functions: {
111
+ addressPosition(
112
+ addr: string,
113
+ overrides?: CallOverrides
114
+ ): Promise<
115
+ [BigNumber, BigNumber] & {
116
+ stakedAmount: BigNumber;
117
+ rewardsDebt: BigNumber;
118
+ }
119
+ >;
120
+
121
+ apeCoin(overrides?: CallOverrides): Promise<[string]>;
122
+
123
+ claimSelfApeCoin(
124
+ overrides?: Overrides & { from?: string | Promise<string> }
125
+ ): Promise<ContractTransaction>;
126
+
127
+ depositSelfApeCoin(
128
+ _amount: BigNumberish,
129
+ overrides?: Overrides & { from?: string | Promise<string> }
130
+ ): Promise<ContractTransaction>;
131
+
132
+ pendingRewards(
133
+ _poolId: BigNumberish,
134
+ _address: string,
135
+ _tokenId: BigNumberish,
136
+ overrides?: CallOverrides
137
+ ): Promise<[BigNumber]>;
138
+
139
+ withdrawApeCoin(
140
+ _amount: BigNumberish,
141
+ _recipient: string,
142
+ overrides?: Overrides & { from?: string | Promise<string> }
143
+ ): Promise<ContractTransaction>;
144
+ };
145
+
146
+ addressPosition(
147
+ addr: string,
148
+ overrides?: CallOverrides
149
+ ): Promise<
150
+ [BigNumber, BigNumber] & { stakedAmount: BigNumber; rewardsDebt: BigNumber }
151
+ >;
152
+
153
+ apeCoin(overrides?: CallOverrides): Promise<string>;
154
+
155
+ claimSelfApeCoin(
156
+ overrides?: Overrides & { from?: string | Promise<string> }
157
+ ): Promise<ContractTransaction>;
158
+
159
+ depositSelfApeCoin(
160
+ _amount: BigNumberish,
161
+ overrides?: Overrides & { from?: string | Promise<string> }
162
+ ): Promise<ContractTransaction>;
163
+
164
+ pendingRewards(
165
+ _poolId: BigNumberish,
166
+ _address: string,
167
+ _tokenId: BigNumberish,
168
+ overrides?: CallOverrides
169
+ ): Promise<BigNumber>;
170
+
171
+ withdrawApeCoin(
172
+ _amount: BigNumberish,
173
+ _recipient: string,
174
+ overrides?: Overrides & { from?: string | Promise<string> }
175
+ ): Promise<ContractTransaction>;
176
+
177
+ callStatic: {
178
+ addressPosition(
179
+ addr: string,
180
+ overrides?: CallOverrides
181
+ ): Promise<
182
+ [BigNumber, BigNumber] & {
183
+ stakedAmount: BigNumber;
184
+ rewardsDebt: BigNumber;
185
+ }
186
+ >;
187
+
188
+ apeCoin(overrides?: CallOverrides): Promise<string>;
189
+
190
+ claimSelfApeCoin(overrides?: CallOverrides): Promise<void>;
191
+
192
+ depositSelfApeCoin(
193
+ _amount: BigNumberish,
194
+ overrides?: CallOverrides
195
+ ): Promise<void>;
196
+
197
+ pendingRewards(
198
+ _poolId: BigNumberish,
199
+ _address: string,
200
+ _tokenId: BigNumberish,
201
+ overrides?: CallOverrides
202
+ ): Promise<BigNumber>;
203
+
204
+ withdrawApeCoin(
205
+ _amount: BigNumberish,
206
+ _recipient: string,
207
+ overrides?: CallOverrides
208
+ ): Promise<void>;
209
+ };
210
+
211
+ filters: {};
212
+
213
+ estimateGas: {
214
+ addressPosition(
215
+ addr: string,
216
+ overrides?: CallOverrides
217
+ ): Promise<BigNumber>;
218
+
219
+ apeCoin(overrides?: CallOverrides): Promise<BigNumber>;
220
+
221
+ claimSelfApeCoin(
222
+ overrides?: Overrides & { from?: string | Promise<string> }
223
+ ): Promise<BigNumber>;
224
+
225
+ depositSelfApeCoin(
226
+ _amount: BigNumberish,
227
+ overrides?: Overrides & { from?: string | Promise<string> }
228
+ ): Promise<BigNumber>;
229
+
230
+ pendingRewards(
231
+ _poolId: BigNumberish,
232
+ _address: string,
233
+ _tokenId: BigNumberish,
234
+ overrides?: CallOverrides
235
+ ): Promise<BigNumber>;
236
+
237
+ withdrawApeCoin(
238
+ _amount: BigNumberish,
239
+ _recipient: string,
240
+ overrides?: Overrides & { from?: string | Promise<string> }
241
+ ): Promise<BigNumber>;
242
+ };
243
+
244
+ populateTransaction: {
245
+ addressPosition(
246
+ addr: string,
247
+ overrides?: CallOverrides
248
+ ): Promise<PopulatedTransaction>;
249
+
250
+ apeCoin(overrides?: CallOverrides): Promise<PopulatedTransaction>;
251
+
252
+ claimSelfApeCoin(
253
+ overrides?: Overrides & { from?: string | Promise<string> }
254
+ ): Promise<PopulatedTransaction>;
255
+
256
+ depositSelfApeCoin(
257
+ _amount: BigNumberish,
258
+ overrides?: Overrides & { from?: string | Promise<string> }
259
+ ): Promise<PopulatedTransaction>;
260
+
261
+ pendingRewards(
262
+ _poolId: BigNumberish,
263
+ _address: string,
264
+ _tokenId: BigNumberish,
265
+ overrides?: CallOverrides
266
+ ): Promise<PopulatedTransaction>;
267
+
268
+ withdrawApeCoin(
269
+ _amount: BigNumberish,
270
+ _recipient: string,
271
+ overrides?: Overrides & { from?: string | Promise<string> }
272
+ ): Promise<PopulatedTransaction>;
273
+ };
274
+ }