@pendle/core-v2 0.10.1-beta → 0.10.3-testnet

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.dbg.json +1 -1
  2. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.json +2 -2
  3. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/WadRayMath.sol/WadRayMath.dbg.json +1 -1
  4. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol/PendleQiSAvaxSCY.dbg.json +1 -1
  5. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol/PendleQiSAvaxSCY.json +2 -2
  6. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  7. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.dbg.json +1 -1
  8. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.json +2 -2
  9. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol/PendleSAvaxSCY.dbg.json +1 -1
  10. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.dbg.json +1 -1
  11. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.dbg.json +1 -1
  12. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol/PendleStargateSCY.dbg.json +1 -1
  13. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol/PendleStargateSCY.json +2 -2
  14. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.dbg.json +1 -1
  15. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultSCY.sol/PendleYearnVaultSCY.dbg.json +1 -1
  16. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol/PendleSJoeSCY.dbg.json +1 -1
  17. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol/PendleSJoeSCY.json +2 -2
  18. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBase.sol/SCYBase.dbg.json +1 -1
  19. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +1 -1
  20. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol/CelerReceiverUpg.dbg.json +1 -1
  21. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol/CelerSenderUpg.dbg.json +1 -1
  22. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  23. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  24. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  25. package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  26. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  27. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  28. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  29. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  30. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  32. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +8 -8
  33. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  35. package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.json +2 -2
  38. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/actions/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/actions/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +2 -2
  44. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.json +2 -2
  46. package/build/artifacts/contracts/core/actions/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/actions/ActionMintRedeem.sol/ActionMintRedeem.json +2 -2
  48. package/build/artifacts/contracts/core/actions/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/actions/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/actions/ActionSwapPT.sol/ActionSwapPT.json +2 -2
  51. package/build/artifacts/contracts/core/actions/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/actions/ActionSwapYT.sol/ActionSwapYT.json +4 -4
  53. package/build/artifacts/contracts/core/actions/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/actions/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  55. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
  56. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +1 -1
  57. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +1 -1
  58. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  59. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  60. package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.dbg.json +1 -1
  61. package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.dbg.json +1 -1
  62. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  63. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.dbg.json +1 -1
  64. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.dbg.json +1 -1
  65. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  66. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  67. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
  68. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  69. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  70. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.json +2 -2
  71. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  72. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +2 -2
  73. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
  74. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  75. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  76. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  77. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  78. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  79. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  80. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  81. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  82. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  83. package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.dbg.json +1 -1
  84. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  85. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  86. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  87. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  88. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  89. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  90. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.dbg.json +1 -1
  91. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +1 -1
  92. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  93. package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +1 -1
  94. package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +1 -1
  95. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  96. package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.dbg.json +1 -1
  97. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +1 -1
  98. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  99. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  100. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +1 -1
  101. package/build/artifacts/contracts/libraries/OracleLib.sol/OracleLib.dbg.json +1 -1
  102. package/build/artifacts/contracts/libraries/RewardManager.sol/RewardManager.dbg.json +1 -1
  103. package/build/artifacts/contracts/libraries/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  104. package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.dbg.json +1 -1
  105. package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  106. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  107. package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  108. package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  109. package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  110. package/build/artifacts/contracts/libraries/helpers/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  111. package/build/artifacts/contracts/libraries/helpers/SSTORE2Deployer.sol/SSTORE2Deployer.dbg.json +1 -1
  112. package/build/artifacts/contracts/libraries/helpers/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  113. package/build/artifacts/contracts/libraries/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +1 -1
  114. package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  115. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +4 -0
  116. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/{MarketApproxLib.json → MarketApproxPtInLib.json} +3 -3
  117. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +4 -0
  118. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxPtOutLib.json +10 -0
  119. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  120. package/build/artifacts/contracts/libraries/math/Math.sol/Math.dbg.json +1 -1
  121. package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.dbg.json +1 -1
  122. package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.dbg.json +1 -1
  123. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
  124. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +2 -2
  125. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  126. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +116 -56
  127. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
  128. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
  129. package/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol +6 -1
  130. package/contracts/core/Market/PendleMarket.sol +4 -4
  131. package/contracts/core/actions/ActionAddRemoveLiq.sol +2 -1
  132. package/contracts/core/actions/ActionSwapPT.sol +2 -1
  133. package/contracts/core/actions/ActionSwapYT.sol +3 -2
  134. package/contracts/interfaces/IPActionSwapYT.sol +2 -2
  135. package/contracts/libraries/math/MarketApproxLib.sol +373 -447
  136. package/contracts/offchain-helpers/MarketMathStatic.sol +32 -14
  137. package/contracts/offchain-helpers/RouterStatic.sol +48 -18
  138. package/deployments/43113-core.json +5 -5
  139. package/deployments/43113-markets/benqi-market-590025.json +8 -0
  140. package/deployments/43113-markets/benqi-market-c93916.json +8 -0
  141. package/deployments/80001-core.json +4 -4
  142. package/deployments/80001-markets/benqi-market-3b8BD1.json +8 -0
  143. package/deployments/80001-markets/benqi-market-b61e7f.json +8 -0
  144. package/package.json +1 -1
  145. package/typechain-types/ActionSwapYT.ts +5 -5
  146. package/typechain-types/IPActionSwapYT.ts +5 -5
  147. package/typechain-types/IPAllAction.ts +5 -5
  148. package/typechain-types/RouterStatic.ts +57 -4
  149. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1 -1
  150. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  151. package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -1
  152. package/typechain-types/factories/ActionSwapPT__factory.ts +1 -1
  153. package/typechain-types/factories/ActionSwapYT__factory.ts +3 -3
  154. package/typechain-types/factories/IPActionSwapYT__factory.ts +2 -2
  155. package/typechain-types/factories/IPAllAction__factory.ts +2 -2
  156. package/typechain-types/factories/MarketMathStatic__factory.ts +1 -1
  157. package/typechain-types/factories/PendleAaveV3SCY__factory.ts +1 -1
  158. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  159. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  160. package/typechain-types/factories/PendleQiSAvaxSCY__factory.ts +1 -1
  161. package/typechain-types/factories/PendleQiTokenSCY__factory.ts +1 -1
  162. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  163. package/typechain-types/factories/PendleSJoeSCY__factory.ts +1 -1
  164. package/typechain-types/factories/PendleStargateSCY__factory.ts +1 -1
  165. package/typechain-types/factories/RouterStatic__factory.ts +61 -1
  166. package/typechain-types/hardhat.d.ts +0 -90
  167. package/typechain-types/index.ts +0 -20
  168. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.dbg.json +0 -4
  169. package/deployments/43113-markets/benqi-market-6440d6.json +0 -8
  170. package/deployments/43113-markets/benqi-market-Dc7592.json +0 -8
  171. package/deployments/80001-markets/benqi-market-1542e0.json +0 -8
  172. package/deployments/80001-markets/benqi-market-2b6D02.json +0 -8
@@ -6,7 +6,8 @@ import "../interfaces/IPMarket.sol";
6
6
 
7
7
  library MarketMathStatic {
8
8
  using MarketMathCore for MarketState;
9
- using MarketApproxLib for MarketState;
9
+ using MarketApproxPtInLib for MarketState;
10
+ using MarketApproxPtOutLib for MarketState;
10
11
  using Math for uint256;
11
12
  using Math for int256;
12
13
  using LogExpMath for int256;
@@ -63,6 +64,7 @@ library MarketMathStatic {
63
64
  tokenUsed = (tokenDesired * scyUsed).rawDivUp(scyDesired);
64
65
  }
65
66
 
67
+ /// @dev netPtToSwap is the parameter to approx
66
68
  function addLiquiditySinglePtStatic(
67
69
  address market,
68
70
  uint256 netPtIn,
@@ -71,35 +73,39 @@ library MarketMathStatic {
71
73
  external
72
74
  returns (
73
75
  uint256 netLpOut,
76
+ uint256 netPtToSwap,
74
77
  uint256 netScyFee,
75
78
  uint256 priceImpact
76
79
  )
77
80
  {
78
81
  MarketState memory state = IPMarket(market).readState();
79
82
 
80
- (uint256 netPtSwap, , ) = state.approxSwapPtToAddLiquidity(
83
+ (netPtToSwap, , ) = state.approxSwapPtToAddLiquidity(
81
84
  pyIndex(market),
82
85
  netPtIn,
83
86
  block.timestamp,
84
87
  approxParams
85
88
  );
86
89
 
90
+ state = IPMarket(market).readState(); // re-read
91
+
87
92
  uint256 netScyReceived;
88
93
  (netScyReceived, netScyFee) = state.swapExactPtForScy(
89
94
  pyIndex(market),
90
- netPtSwap,
95
+ netPtToSwap,
91
96
  block.timestamp
92
97
  );
93
98
  (, netLpOut, , ) = state.addLiquidity(
94
99
  pyIndex(market),
95
100
  netScyReceived,
96
- netPtIn - netPtSwap,
101
+ netPtIn - netPtToSwap,
97
102
  block.timestamp
98
103
  );
99
104
 
100
- priceImpact = calcPriceImpact(market, netPtSwap.neg());
105
+ priceImpact = calcPriceImpact(market, netPtToSwap.neg());
101
106
  }
102
107
 
108
+ /// @dev netPtFromSwap is the parameter to approx
103
109
  function addLiquiditySingleScyStatic(
104
110
  address market,
105
111
  uint256 netScyIn,
@@ -108,35 +114,39 @@ library MarketMathStatic {
108
114
  public
109
115
  returns (
110
116
  uint256 netLpOut,
117
+ uint256 netPtFromSwap,
111
118
  uint256 netScyFee,
112
119
  uint256 priceImpact
113
120
  )
114
121
  {
115
122
  MarketState memory state = IPMarket(market).readState();
116
123
 
117
- (uint256 netPtReceived, , ) = state.approxSwapScyToAddLiquidity(
124
+ (netPtFromSwap, , ) = state.approxSwapScyToAddLiquidity(
118
125
  pyIndex(market),
119
126
  netScyIn,
120
127
  block.timestamp,
121
128
  approxParams
122
129
  );
123
130
 
131
+ state = IPMarket(market).readState(); // re-read
132
+
124
133
  uint256 netScySwap;
125
134
  (netScySwap, netScyFee) = state.swapScyForExactPt(
126
135
  pyIndex(market),
127
- netPtReceived,
136
+ netPtFromSwap,
128
137
  block.timestamp
129
138
  );
130
139
  (, netLpOut, , ) = state.addLiquidity(
131
140
  pyIndex(market),
132
141
  netScyIn - netScySwap,
133
- netPtReceived,
142
+ netPtFromSwap,
134
143
  block.timestamp
135
144
  );
136
145
 
137
- priceImpact = calcPriceImpact(market, netPtReceived.Int());
146
+ priceImpact = calcPriceImpact(market, netPtFromSwap.Int());
138
147
  }
139
148
 
149
+ /// @dev netPtFromSwap is the parameter to approx
140
150
  function addLiquiditySingleBaseTokenStatic(
141
151
  address market,
142
152
  address baseToken,
@@ -146,6 +156,7 @@ library MarketMathStatic {
146
156
  external
147
157
  returns (
148
158
  uint256 netLpOut,
159
+ uint256 netPtFromSwap,
149
160
  uint256 netScyFee,
150
161
  uint256 priceImpact
151
162
  )
@@ -183,6 +194,7 @@ library MarketMathStatic {
183
194
  netTokenOut = SCY.previewRedeem(tokenOut, netScyOut);
184
195
  }
185
196
 
197
+ /// @dev netPtFromSwap is the parameter to approx
186
198
  function removeLiquiditySinglePtStatic(
187
199
  address market,
188
200
  uint256 lpToRemove,
@@ -191,6 +203,7 @@ library MarketMathStatic {
191
203
  external
192
204
  returns (
193
205
  uint256 netPtOut,
206
+ uint256 netPtFromSwap,
194
207
  uint256 netScyFee,
195
208
  uint256 priceImpact
196
209
  )
@@ -198,16 +211,15 @@ library MarketMathStatic {
198
211
  MarketState memory state = IPMarket(market).readState();
199
212
 
200
213
  (uint256 scyFromBurn, uint256 ptFromBurn) = state.removeLiquidity(lpToRemove);
201
- uint256 ptFromSwap;
202
- (ptFromSwap, , netScyFee) = state.approxSwapExactScyForPt(
214
+ (netPtFromSwap, , netScyFee) = state.approxSwapExactScyForPt(
203
215
  pyIndex(market),
204
216
  scyFromBurn,
205
217
  block.timestamp,
206
218
  approxParams
207
219
  );
208
220
 
209
- netPtOut = ptFromBurn + ptFromSwap;
210
- priceImpact = calcPriceImpact(market, ptFromSwap.Int());
221
+ netPtOut = ptFromBurn + netPtFromSwap;
222
+ priceImpact = calcPriceImpact(market, netPtFromSwap.Int());
211
223
  }
212
224
 
213
225
  function removeLiquiditySingleScyStatic(address market, uint256 lpToRemove)
@@ -285,6 +297,7 @@ library MarketMathStatic {
285
297
  priceImpact = calcPriceImpact(market, exactPtOut.Int());
286
298
  }
287
299
 
300
+ /// @dev netPtOut is the parameter to approx
288
301
  function swapExactScyForPtStatic(
289
302
  address market,
290
303
  uint256 exactScyIn,
@@ -307,6 +320,7 @@ library MarketMathStatic {
307
320
  priceImpact = calcPriceImpact(market, netPtOut.Int());
308
321
  }
309
322
 
323
+ /// @dev netPtIn is the parameter to approx
310
324
  function swapPtForExactScyStatic(
311
325
  address market,
312
326
  uint256 exactScyOut,
@@ -330,6 +344,7 @@ library MarketMathStatic {
330
344
  priceImpact = calcPriceImpact(market, netPtIn.neg());
331
345
  }
332
346
 
347
+ /// @dev netPtOut is the parameter to approx
333
348
  function swapExactBaseTokenForPtStatic(
334
349
  address market,
335
350
  address baseToken,
@@ -397,6 +412,7 @@ library MarketMathStatic {
397
412
  priceImpact = calcPriceImpact(market, exactYtOut.neg());
398
413
  }
399
414
 
415
+ /// @dev netYtOut is the parameter to approx
400
416
  function swapExactScyForYtStatic(
401
417
  address market,
402
418
  uint256 exactScyIn,
@@ -444,6 +460,7 @@ library MarketMathStatic {
444
460
  priceImpact = calcPriceImpact(market, exactYtIn.Int());
445
461
  }
446
462
 
463
+ /// @dev netYtIn is the parameter to approx
447
464
  function swapYtForExactScyStatic(
448
465
  address market,
449
466
  uint256 exactScyOut,
@@ -488,6 +505,7 @@ library MarketMathStatic {
488
505
  netBaseTokenOut = SCY.previewRedeem(baseToken, netScyOut);
489
506
  }
490
507
 
508
+ /// @dev netYtOut is the parameter to approx
491
509
  function swapExactBaseTokenForYtStatic(
492
510
  address market,
493
511
  address baseToken,
@@ -496,7 +514,7 @@ library MarketMathStatic {
496
514
  )
497
515
  external
498
516
  returns (
499
- uint256 netPtOut,
517
+ uint256 netYtOut,
500
518
  uint256 netScyFee,
501
519
  uint256 priceImpact
502
520
  )
@@ -47,14 +47,6 @@ contract RouterStatic is OwnableUpgradeable, UUPSUpgradeable {
47
47
 
48
48
  IPYieldContractFactory internal immutable yieldContractFactory;
49
49
  IPMarketFactory internal immutable marketFactory;
50
- ApproxParams internal approxParams =
51
- ApproxParams({
52
- guessMin: 0,
53
- guessMax: type(uint256).max,
54
- guessOffchain: 0,
55
- maxIteration: 256,
56
- eps: 1e15
57
- });
58
50
 
59
51
  constructor(IPYieldContractFactory _yieldContractFactory, IPMarketFactory _marketFactory)
60
52
  initializer
@@ -67,6 +59,17 @@ contract RouterStatic is OwnableUpgradeable, UUPSUpgradeable {
67
59
  __Ownable_init();
68
60
  }
69
61
 
62
+ function getDefaultApproxParams() public pure returns (ApproxParams memory) {
63
+ return
64
+ ApproxParams({
65
+ guessMin: 0,
66
+ guessMax: type(uint256).max,
67
+ guessOffchain: 0,
68
+ maxIteration: 256,
69
+ eps: 1e15
70
+ });
71
+ }
72
+
70
73
  function _authorizeUpgrade(address newImplementation) internal override onlyOwner {}
71
74
 
72
75
  // ============= SYSTEM INFO =============
@@ -287,22 +290,30 @@ contract RouterStatic is OwnableUpgradeable, UUPSUpgradeable {
287
290
  external
288
291
  returns (
289
292
  uint256 netLpOut,
293
+ uint256 netPtToSwap,
290
294
  uint256 netScyFee,
291
295
  uint256 priceImpact
292
296
  )
293
297
  {
294
- return MarketMathStatic.addLiquiditySinglePtStatic(market, netPtIn, approxParams);
298
+ return
299
+ MarketMathStatic.addLiquiditySinglePtStatic(market, netPtIn, getDefaultApproxParams());
295
300
  }
296
301
 
297
302
  function addLiquiditySingleScyStatic(address market, uint256 netScyIn)
298
303
  public
299
304
  returns (
300
305
  uint256 netLpOut,
306
+ uint256 netPtFromSwap,
301
307
  uint256 netScyFee,
302
308
  uint256 priceImpact
303
309
  )
304
310
  {
305
- return MarketMathStatic.addLiquiditySingleScyStatic(market, netScyIn, approxParams);
311
+ return
312
+ MarketMathStatic.addLiquiditySingleScyStatic(
313
+ market,
314
+ netScyIn,
315
+ getDefaultApproxParams()
316
+ );
306
317
  }
307
318
 
308
319
  function addLiquiditySingleBaseTokenStatic(
@@ -313,6 +324,7 @@ contract RouterStatic is OwnableUpgradeable, UUPSUpgradeable {
313
324
  external
314
325
  returns (
315
326
  uint256 netLpOut,
327
+ uint256 netPtFromSwap,
316
328
  uint256 netScyFee,
317
329
  uint256 priceImpact
318
330
  )
@@ -322,7 +334,7 @@ contract RouterStatic is OwnableUpgradeable, UUPSUpgradeable {
322
334
  market,
323
335
  baseToken,
324
336
  netBaseTokenIn,
325
- approxParams
337
+ getDefaultApproxParams()
326
338
  );
327
339
  }
328
340
 
@@ -346,11 +358,17 @@ contract RouterStatic is OwnableUpgradeable, UUPSUpgradeable {
346
358
  external
347
359
  returns (
348
360
  uint256 netPtOut,
361
+ uint256 netPtFromSwap,
349
362
  uint256 netScyFee,
350
363
  uint256 priceImpact
351
364
  )
352
365
  {
353
- return MarketMathStatic.removeLiquiditySinglePtStatic(market, lpToRemove, approxParams);
366
+ return
367
+ MarketMathStatic.removeLiquiditySinglePtStatic(
368
+ market,
369
+ lpToRemove,
370
+ getDefaultApproxParams()
371
+ );
354
372
  }
355
373
 
356
374
  function removeLiquiditySingleScyStatic(address market, uint256 lpToRemove)
@@ -410,7 +428,8 @@ contract RouterStatic is OwnableUpgradeable, UUPSUpgradeable {
410
428
  uint256 priceImpact
411
429
  )
412
430
  {
413
- return MarketMathStatic.swapExactScyForPtStatic(market, exactScyIn, approxParams);
431
+ return
432
+ MarketMathStatic.swapExactScyForPtStatic(market, exactScyIn, getDefaultApproxParams());
414
433
  }
415
434
 
416
435
  function swapPtForExactScyStatic(address market, uint256 exactScyOut)
@@ -421,7 +440,12 @@ contract RouterStatic is OwnableUpgradeable, UUPSUpgradeable {
421
440
  uint256 priceImpact
422
441
  )
423
442
  {
424
- return MarketMathStatic.swapPtForExactScyStatic(market, exactScyOut, approxParams);
443
+ return
444
+ MarketMathStatic.swapPtForExactScyStatic(
445
+ market,
446
+ exactScyOut,
447
+ getDefaultApproxParams()
448
+ );
425
449
  }
426
450
 
427
451
  function swapExactBaseTokenForPtStatic(
@@ -441,7 +465,7 @@ contract RouterStatic is OwnableUpgradeable, UUPSUpgradeable {
441
465
  market,
442
466
  baseToken,
443
467
  amountBaseToken,
444
- approxParams
468
+ getDefaultApproxParams()
445
469
  );
446
470
  }
447
471
 
@@ -479,7 +503,8 @@ contract RouterStatic is OwnableUpgradeable, UUPSUpgradeable {
479
503
  uint256 priceImpact
480
504
  )
481
505
  {
482
- return MarketMathStatic.swapExactScyForYtStatic(market, exactScyIn, approxParams);
506
+ return
507
+ MarketMathStatic.swapExactScyForYtStatic(market, exactScyIn, getDefaultApproxParams());
483
508
  }
484
509
 
485
510
  function swapExactYtForScyStatic(address market, uint256 exactYtIn)
@@ -501,7 +526,12 @@ contract RouterStatic is OwnableUpgradeable, UUPSUpgradeable {
501
526
  uint256 priceImpact
502
527
  )
503
528
  {
504
- return MarketMathStatic.swapYtForExactScyStatic(market, exactScyOut, approxParams);
529
+ return
530
+ MarketMathStatic.swapYtForExactScyStatic(
531
+ market,
532
+ exactScyOut,
533
+ getDefaultApproxParams()
534
+ );
505
535
  }
506
536
 
507
537
  function swapExactYtForBaseTokenStatic(
@@ -536,7 +566,7 @@ contract RouterStatic is OwnableUpgradeable, UUPSUpgradeable {
536
566
  market,
537
567
  baseToken,
538
568
  amountBaseToken,
539
- approxParams
569
+ getDefaultApproxParams()
540
570
  );
541
571
  }
542
572
 
@@ -4,12 +4,12 @@
4
4
  "celerBus": "0xE9533976C590200E32d95C53f06AE12d292cFc47",
5
5
  "treasury": "0xB4E292AD98Ba0D5531Ca573757f7b7d6c0C205d8",
6
6
  "PENDLE": "0x83B694f9Ef84D22BECe87257f0cd4513737A505e",
7
- "yieldContractFactory": "0x501623CE5985e03bb0b0565FD9d9b327Cf1e1EcF",
8
- "marketFactory": "0xB6D443DDb85b161945161Aa5053Cf7efe5071bbA",
7
+ "yieldContractFactory": "0x5742c40cF2005cC5D603305d43Ab5ca74A1928D5",
8
+ "marketFactory": "0x59A5849f292536B99A2cE14b4E8484A74894DBfb",
9
9
  "router": "0xa4C21f51DE870a283f362A7331f0C4f8288c3e41",
10
10
  "routerStatic": "0x7d8Cd904F0b7d06fB846110817bA3519bf76381a",
11
11
  "startTime": 1657756800,
12
- "vePendle": "0xE833C7A12A10A44Cb8b19BdF0931053AC136F105",
13
- "votingController": "0x1367B88aCE0411E4477f23fdF56E3553Bf78fCd5",
14
- "gaugeController": "0x6B08879aA2ed0e9B9f1983f80F5e72F5d30740cF"
12
+ "vePendle": "0x07791cc760e9483b0474625fEac0414cCeB30C63",
13
+ "votingController": "0x366c1084FBA02D9929f4d2521a92bDd4E4082B5A",
14
+ "gaugeController": "0xC0BC61112D9fD7bA5809047a86EC245593BA0e1E"
15
15
  }
@@ -0,0 +1,8 @@
1
+ {
2
+ "symbol": "SCY-QI-AVAX",
3
+ "SCY": "0xA58dD1b2aCa656C1A6FA281C7CAeC22eb66aE449",
4
+ "expiry": 1688860800,
5
+ "PT": "0x683a29375e7965c38B9c5b56a92b516dBD53d3Bc",
6
+ "YT": "0xA9B0D34C5E01f7F33b90afeBBFEA87d9b4015efC",
7
+ "market": "0x333FAFdb06c751c8E3234A850474ffB3c3590025"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "symbol": "SCY-QI-USD",
3
+ "SCY": "0xb58DAE6a0d929beE1C873C666D1958870e308a98",
4
+ "expiry": 1688860800,
5
+ "PT": "0x0929c724aC00342A7092dA0eD7419e84f72aF8a3",
6
+ "YT": "0x3A7753d43ec2BcFfF9e49466a1805674b8258F62",
7
+ "market": "0xE5D359472d9aA5072b65616b43aFfff2C2c93916"
8
+ }
@@ -4,11 +4,11 @@
4
4
  "celerBus": "0x7d43AABC515C356145049227CeE54B608342c0ad",
5
5
  "treasury": "0x1fAd3Ce1c1aB563441d58b79e49cb0ebC12C1Bd5",
6
6
  "PENDLE": "0x563f1e87a6a3Cb4A84F7D438fCF4882133e59d6d",
7
- "yieldContractFactory": "0x886c9A91BF10DBc5e3C66c29387BE9421a00442D",
8
- "marketFactory": "0xC5b5d60EccB76C4a53F7DBE7cE3cb5D92557EFfF",
7
+ "yieldContractFactory": "0x752D7B5Cfc84902b25a27Ee9A83Ac3E43aa6c604",
8
+ "marketFactory": "0xE7EA255aF935D10b59FCfcd704ED3E672044c9cd",
9
9
  "router": "0x124e2c48433aEe932B39D6aC897660be7A33B9D5",
10
10
  "routerStatic": "0xE1c4749b480baA22B070230Aa07a7fCEd4Fdbf0F",
11
11
  "startTime": 1657756800,
12
- "vePendle": "0xd8c12d46dde7a04F782d417FAE78516448CB2c5b",
13
- "gaugeController": "0x082C5f012059200e3491DEceb8EAAb73E28E3442"
12
+ "vePendle": "0xd6c820F37d876dA4f39329c5D5c6a7dC932b38dE",
13
+ "gaugeController": "0x10CEaB79805F36fD0BD4E93bf98a7C7d6A99FD77"
14
14
  }
@@ -0,0 +1,8 @@
1
+ {
2
+ "symbol": "SCY-QI-USD",
3
+ "SCY": "0x106Df888F5BD8D2FC84b80E3BFAf4A54E0F280f1",
4
+ "expiry": 1688860800,
5
+ "PT": "0x4f97182b803C1A174F2b96559F30f71c350Ec2e4",
6
+ "YT": "0xC19beC41F3EA44B663EBF9752728d774cc98cC09",
7
+ "market": "0x0ad1a390617039DB914851e77A9A4B62353b8BD1"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "symbol": "SCY-QI-AVAX",
3
+ "SCY": "0xEfadE8303F01768de0d2d227210AF4E06eC68b01",
4
+ "expiry": 1688860800,
5
+ "PT": "0xE557D3fE9E7765890bE64acc26a117D4F905F116",
6
+ "YT": "0x24895a63adA70DE160Aa01cAEF40aDAF6F2DDF3a",
7
+ "market": "0xa3Fad9cae815788340A9d29242bbeE9A8Eb61e7f"
8
+ }
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.10.1-beta",
5
+ "version": "0.10.3-testnet",
6
6
  "homepage": "https://pendle.finance",
7
7
  "keywords": [
8
8
  "pendle",
@@ -170,8 +170,8 @@ export type SwapYtAndTokenEvent = TypedEvent<
170
170
  {
171
171
  caller: string;
172
172
  market: string;
173
- token: string;
174
173
  receiver: string;
174
+ token: string;
175
175
  netYtToAccount: BigNumber;
176
176
  netTokenToAccount: BigNumber;
177
177
  }
@@ -388,16 +388,16 @@ export interface ActionSwapYT extends BaseContract {
388
388
  "SwapYtAndToken(address,address,address,address,int256,int256)"(
389
389
  caller?: string | null,
390
390
  market?: string | null,
391
- token?: string | null,
392
- receiver?: null,
391
+ receiver?: string | null,
392
+ token?: null,
393
393
  netYtToAccount?: null,
394
394
  netTokenToAccount?: null
395
395
  ): SwapYtAndTokenEventFilter;
396
396
  SwapYtAndToken(
397
397
  caller?: string | null,
398
398
  market?: string | null,
399
- token?: string | null,
400
- receiver?: null,
399
+ receiver?: string | null,
400
+ token?: null,
401
401
  netYtToAccount?: null,
402
402
  netTokenToAccount?: null
403
403
  ): SwapYtAndTokenEventFilter;
@@ -161,8 +161,8 @@ export type SwapYtAndTokenEvent = TypedEvent<
161
161
  {
162
162
  caller: string;
163
163
  market: string;
164
- token: string;
165
164
  receiver: string;
165
+ token: string;
166
166
  netYtToAccount: BigNumber;
167
167
  netTokenToAccount: BigNumber;
168
168
  }
@@ -373,16 +373,16 @@ export interface IPActionSwapYT extends BaseContract {
373
373
  "SwapYtAndToken(address,address,address,address,int256,int256)"(
374
374
  caller?: string | null,
375
375
  market?: string | null,
376
- token?: string | null,
377
- receiver?: null,
376
+ receiver?: string | null,
377
+ token?: null,
378
378
  netYtToAccount?: null,
379
379
  netTokenToAccount?: null
380
380
  ): SwapYtAndTokenEventFilter;
381
381
  SwapYtAndToken(
382
382
  caller?: string | null,
383
383
  market?: string | null,
384
- token?: string | null,
385
- receiver?: null,
384
+ receiver?: string | null,
385
+ token?: null,
386
386
  netYtToAccount?: null,
387
387
  netTokenToAccount?: null
388
388
  ): SwapYtAndTokenEventFilter;
@@ -673,8 +673,8 @@ export type SwapYtAndTokenEvent = TypedEvent<
673
673
  {
674
674
  caller: string;
675
675
  market: string;
676
- token: string;
677
676
  receiver: string;
677
+ token: string;
678
678
  netYtToAccount: BigNumber;
679
679
  netTokenToAccount: BigNumber;
680
680
  }
@@ -1813,16 +1813,16 @@ export interface IPAllAction extends BaseContract {
1813
1813
  "SwapYtAndToken(address,address,address,address,int256,int256)"(
1814
1814
  caller?: string | null,
1815
1815
  market?: string | null,
1816
- token?: string | null,
1817
- receiver?: null,
1816
+ receiver?: string | null,
1817
+ token?: null,
1818
1818
  netYtToAccount?: null,
1819
1819
  netTokenToAccount?: null
1820
1820
  ): SwapYtAndTokenEventFilter;
1821
1821
  SwapYtAndToken(
1822
1822
  caller?: string | null,
1823
1823
  market?: string | null,
1824
- token?: string | null,
1825
- receiver?: null,
1824
+ receiver?: string | null,
1825
+ token?: null,
1826
1826
  netYtToAccount?: null,
1827
1827
  netTokenToAccount?: null
1828
1828
  ): SwapYtAndTokenEventFilter;