@pendle/core-v2 0.11.0-testnet → 0.11.1-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 (192) 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/WadRayMath.sol/WadRayMath.dbg.json +1 -1
  3. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol/PendleQiSAvaxSCY.dbg.json +1 -1
  4. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  5. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.dbg.json +1 -1
  6. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol/PendleSAvaxSCY.dbg.json +1 -1
  7. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.dbg.json +1 -1
  8. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.dbg.json +1 -1
  9. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol/PendleStargateSCY.dbg.json +1 -1
  10. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.dbg.json +1 -1
  11. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultSCY.sol/PendleYearnVaultSCY.dbg.json +1 -1
  12. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol/PendleSJoeSCY.dbg.json +1 -1
  13. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBase.sol/SCYBase.dbg.json +1 -1
  14. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +1 -1
  15. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol/CelerReceiverUpg.dbg.json +1 -1
  16. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol/CelerSenderUpg.dbg.json +1 -1
  17. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/FeeDistributorVePendle.sol/FeeDistributorVePendle.dbg.json +4 -0
  18. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/FeeDistributorVePendle.sol/FeeDistributorVePendle.json +188 -0
  19. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/PendleFeeDistributorAbstract.sol/PendleFeeDistributorAbstract.dbg.json +4 -0
  20. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/PendleFeeDistributorAbstract.sol/PendleFeeDistributorAbstract.json +164 -0
  21. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/PendleFeeDistributorVoting.sol/PendleFeeDistributorVoting.dbg.json +4 -0
  22. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/PendleFeeDistributorVoting.sol/PendleFeeDistributorVoting.json +206 -0
  23. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/PendleFeeDistributorVotingFactory.sol/PendleFeeDistributorVotingFactory.dbg.json +4 -0
  24. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/PendleFeeDistributorVotingFactory.sol/PendleFeeDistributorVotingFactory.json +149 -0
  25. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  26. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  27. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  28. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  29. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  30. package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  32. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +62 -14
  33. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.json +192 -12
  35. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +51 -8
  37. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
  39. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.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/actions/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/actions/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/actions/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/actions/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  53. package/build/artifacts/contracts/core/actions/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/actions/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  55. package/build/artifacts/contracts/core/actions/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  56. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
  57. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +1 -1
  58. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +1 -1
  59. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  60. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  61. package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.dbg.json +1 -1
  62. package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.dbg.json +1 -1
  63. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  64. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.dbg.json +1 -1
  65. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.dbg.json +1 -1
  66. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  67. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  68. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
  69. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  70. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  71. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  72. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +4 -0
  73. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.json +151 -0
  74. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
  75. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  76. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  77. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  78. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  79. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  80. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  81. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  82. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  83. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  84. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.json +124 -0
  85. package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.dbg.json +1 -1
  86. package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.json +86 -0
  87. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  88. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  89. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  90. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  91. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  92. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  93. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.dbg.json +1 -1
  94. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +1 -1
  95. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  96. package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +1 -1
  97. package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +1 -1
  98. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  99. package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.dbg.json +1 -1
  100. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +1 -1
  101. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  102. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  103. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +1 -1
  104. package/build/artifacts/contracts/libraries/OracleLib.sol/OracleLib.dbg.json +1 -1
  105. package/build/artifacts/contracts/libraries/RewardManager.sol/RewardManager.dbg.json +1 -1
  106. package/build/artifacts/contracts/libraries/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  107. package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.dbg.json +1 -1
  108. package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  109. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  110. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  111. package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  112. package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  113. package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  114. package/build/artifacts/contracts/libraries/helpers/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  115. package/build/artifacts/contracts/libraries/helpers/SSTORE2Deployer.sol/SSTORE2Deployer.dbg.json +1 -1
  116. package/build/artifacts/contracts/libraries/helpers/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  117. package/build/artifacts/contracts/libraries/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +1 -1
  118. package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  119. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  120. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  121. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  122. package/build/artifacts/contracts/libraries/math/Math.sol/Math.dbg.json +1 -1
  123. package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.dbg.json +1 -1
  124. package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.json +2 -2
  125. package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.dbg.json +1 -1
  126. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
  127. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  128. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
  129. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
  130. package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +1 -1
  131. package/contracts/core/LiquidityMining/PendleGauge.sol +1 -1
  132. package/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +1 -2
  133. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol +2 -2
  134. package/contracts/core/Market/PendleMarketFactory.sol +11 -16
  135. package/contracts/core/PendleRouter.sol +1 -3
  136. package/contracts/core/YieldContracts/PendlePrincipalToken.sol +1 -1
  137. package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +5 -5
  138. package/contracts/interfaces/IPGauge.sol +2 -0
  139. package/contracts/interfaces/IPGaugeController.sol +1 -1
  140. package/contracts/interfaces/IPMarketFactory.sol +1 -1
  141. package/contracts/interfaces/ISJoe.sol +3 -6
  142. package/contracts/libraries/kyberswap/AggregationRouterHelper.sol +308 -0
  143. package/contracts/libraries/kyberswap/IMultihopRouter.sol +139 -0
  144. package/contracts/libraries/kyberswap/KyberSwapHelper.sol +7 -1
  145. package/contracts/libraries/math/WeekMath.sol +1 -1
  146. package/contracts/offchain-helpers/RouterStatic.sol +5 -5
  147. package/contracts/offchain-helpers/SSTORE2DeployerContract.sol +21 -0
  148. package/contracts/periphery/BoringOwnableUpgradeable.sol +2 -2
  149. package/deployments/43113-core.json +8 -7
  150. package/deployments/43113-markets/benqi-market-QI-USDC-FEB-2ND.json +8 -0
  151. package/deployments/43113-markets/benqi-market-QI-USDC-SEP-22TH.json +8 -0
  152. package/deployments/43113-markets/benqi-market-QI-WETH-DEC-1ST.json +8 -0
  153. package/deployments/43113-testenv.json +1 -1
  154. package/package.json +4 -5
  155. package/typechain-types/FeeDistributorAbstract.ts +240 -0
  156. package/typechain-types/FeeDistributorVePendle.ts +302 -0
  157. package/typechain-types/FeeDistributorVoting.ts +272 -0
  158. package/typechain-types/FeeDistributorVotingFactory.ts +293 -0
  159. package/typechain-types/IPFeeDistributor.ts +270 -0
  160. package/typechain-types/IPVotingController.ts +205 -7
  161. package/typechain-types/IPVotingControllerStorage.ts +169 -0
  162. package/typechain-types/IPVotingEscrow.ts +117 -0
  163. package/typechain-types/PendleFeeDistributorAbstract.ts +289 -0
  164. package/typechain-types/PendleFeeDistributorVoting.ts +321 -0
  165. package/typechain-types/PendleFeeDistributorVotingFactory.ts +294 -0
  166. package/typechain-types/PendleVotingControllerUpg.ts +73 -24
  167. package/typechain-types/VotingControllerStorageUpg.ts +207 -27
  168. package/typechain-types/VotingEscrowPendleMainchain.ts +57 -13
  169. package/typechain-types/factories/FeeDistributorAbstract__factory.ts +127 -0
  170. package/typechain-types/factories/FeeDistributorVePendle__factory.ts +250 -0
  171. package/typechain-types/factories/FeeDistributorVotingFactory__factory.ts +211 -0
  172. package/typechain-types/factories/FeeDistributorVoting__factory.ts +219 -0
  173. package/typechain-types/factories/IPFeeDistributor__factory.ts +166 -0
  174. package/typechain-types/factories/IPVotingControllerStorage__factory.ts +107 -0
  175. package/typechain-types/factories/IPVotingController__factory.ts +124 -0
  176. package/typechain-types/factories/IPVotingEscrow__factory.ts +86 -0
  177. package/typechain-types/factories/PendleFeeDistributorAbstract__factory.ts +183 -0
  178. package/typechain-types/factories/PendleFeeDistributorVotingFactory__factory.ts +213 -0
  179. package/typechain-types/factories/PendleFeeDistributorVoting__factory.ts +275 -0
  180. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  181. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  182. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +61 -13
  183. package/typechain-types/factories/VotingControllerStorageUpg__factory.ts +192 -12
  184. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +50 -7
  185. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  186. package/typechain-types/hardhat.d.ts +54 -0
  187. package/typechain-types/index.ts +12 -0
  188. package/contracts/periphery/PendleGovernanceManager.sol +0 -38
  189. package/contracts/periphery/PermissionsV2Upg.sol +0 -29
  190. package/deployments/43113-markets/benqi-market-10D931.json +0 -8
  191. package/deployments/43113-markets/benqi-market-9fbD64.json +0 -8
  192. package/deployments/43113-markets/benqi-market-A12361.json +0 -8
@@ -21,7 +21,7 @@ interface IPMarketFactory {
21
21
  view
22
22
  returns (
23
23
  address treasury,
24
- uint96 lnFeeRateRoot,
24
+ uint88 lnFeeRateRoot,
25
25
  uint8 reserveFeePercent
26
26
  );
27
27
  }
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity 0.8.15;
3
3
 
4
- import "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol";
4
+ import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
5
5
 
6
6
  interface ISJoe {
7
7
  function joe() external view returns (address);
@@ -23,7 +23,7 @@ interface ISJoe {
23
23
  * @return The amount of JOE user has deposited
24
24
  * @return The reward debt for the chosen token
25
25
  */
26
- function getUserInfo(address _user, IERC20Upgradeable _rewardToken)
26
+ function getUserInfo(address _user, IERC20 _rewardToken)
27
27
  external
28
28
  view
29
29
  returns (uint256, uint256);
@@ -42,10 +42,7 @@ interface ISJoe {
42
42
  * @param _token The address of the token
43
43
  * @return `_user`'s pending reward token
44
44
  */
45
- function pendingReward(address _user, IERC20Upgradeable _token)
46
- external
47
- view
48
- returns (uint256);
45
+ function pendingReward(address _user, IERC20 _token) external view returns (uint256);
49
46
 
50
47
  /**
51
48
  * @notice Withdraw JOE and harvest the rewards
@@ -0,0 +1,308 @@
1
+ // SPDX-License-Identifier: MIT
2
+
3
+ pragma solidity 0.8.15;
4
+ import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
5
+ import "./IMultihopRouter.sol";
6
+
7
+ library AggregationRouterHelper {
8
+ uint256 private constant _PARTIAL_FILL = 0x01;
9
+ uint256 private constant _REQUIRES_EXTRA_ETH = 0x02;
10
+ uint256 private constant _SHOULD_CLAIM = 0x04;
11
+ uint256 private constant _BURN_FROM_MSG_SENDER = 0x08;
12
+ uint256 private constant _BURN_FROM_TX_ORIGIN = 0x10;
13
+ uint256 private constant _SIMPLE_SWAP = 0x20;
14
+
15
+ uint256 private constant SLIPPAGE_RANGE = 10; // over 100
16
+
17
+ enum DexType {
18
+ UNI,
19
+ STABLESWAP,
20
+ CURVE,
21
+ KYBERDMM,
22
+ SADDLE,
23
+ UNIV3PROMM,
24
+ BALANCERV2,
25
+ KYBERRFQ,
26
+ DODO,
27
+ VELODROME,
28
+ PLATYPUS
29
+ }
30
+
31
+ struct SwapDescription {
32
+ IERC20 srcToken;
33
+ IERC20 dstToken;
34
+ address[] srcReceivers;
35
+ uint256[] srcAmounts;
36
+ address dstReceiver;
37
+ uint256 amount;
38
+ uint256 minReturnAmount;
39
+ uint256 flags;
40
+ bytes permit;
41
+ }
42
+
43
+ struct SimpleSwapData {
44
+ address[] firstPools;
45
+ uint256[] firstSwapAmounts;
46
+ bytes[] swapDatas;
47
+ uint256 deadline;
48
+ bytes destTokenFeeData;
49
+ }
50
+
51
+ struct SwapExecutorDescription {
52
+ IMultihopRouter.Swap[][] swapSequences;
53
+ address tokenIn;
54
+ address tokenOut;
55
+ uint256 minTotalAmountOut;
56
+ address to;
57
+ uint256 deadline;
58
+ bytes destTokenFeeData;
59
+ }
60
+
61
+ function getScaledInputData(bytes calldata kybercall, uint256 newAmount)
62
+ external
63
+ pure
64
+ returns (bytes memory)
65
+ {
66
+ bytes4 selector = bytes4(kybercall[:4]);
67
+ (
68
+ address caller,
69
+ SwapDescription memory desc,
70
+ bytes memory executorData,
71
+ bytes memory clientData
72
+ ) = abi.decode(kybercall[4:], (address, SwapDescription, bytes, bytes));
73
+
74
+ (desc, executorData) = _getScaledInputData(desc, executorData, newAmount);
75
+ return abi.encodeWithSelector(selector, caller, desc, executorData, clientData);
76
+ }
77
+
78
+ function _getScaledInputData(
79
+ SwapDescription memory desc,
80
+ bytes memory executorData,
81
+ uint256 newAmount
82
+ ) internal pure returns (SwapDescription memory, bytes memory) {
83
+ uint256 flags = desc.flags;
84
+ uint256 oldAmount = desc.amount;
85
+ if (oldAmount == newAmount) {
86
+ return (desc, executorData);
87
+ }
88
+
89
+ //if the difference of newAmount and oldAmount > 5%, revert
90
+ require(
91
+ (oldAmount * (100 - SLIPPAGE_RANGE)) / 100 <= newAmount &&
92
+ newAmount <= (oldAmount * (100 + SLIPPAGE_RANGE)) / 100,
93
+ "kyber: difference too large"
94
+ );
95
+
96
+ // simple mode swap
97
+ if (flags & _SIMPLE_SWAP != 0) {
98
+ require(desc.srcReceivers.length == 0, "kyber: can't scale if take fee");
99
+ return (
100
+ _getNewDescription(desc, oldAmount, newAmount),
101
+ _getNewSimpleSwapData(executorData, oldAmount, newAmount)
102
+ );
103
+ }
104
+
105
+ //normal mode swap
106
+ bytes memory newExecutorData = _getNewExecutorData(executorData, oldAmount, newAmount);
107
+ return (_getNewDescription(desc, oldAmount, newAmount), newExecutorData);
108
+ }
109
+
110
+ function _getNewDescription(
111
+ SwapDescription memory desc,
112
+ uint256 oldAmount,
113
+ uint256 newAmount
114
+ ) internal pure returns (SwapDescription memory) {
115
+ uint256 oldMinReturnAmount = desc.minReturnAmount;
116
+ desc.minReturnAmount = (desc.minReturnAmount * newAmount) / oldAmount;
117
+ //newMinReturnAmount should no be 0 if oldMinReturnAmount > 0
118
+ if (oldMinReturnAmount > 0 && desc.minReturnAmount == 0) desc.minReturnAmount = 1;
119
+ desc.amount = newAmount;
120
+ if (desc.srcReceivers.length == 0) {
121
+ return desc;
122
+ }
123
+
124
+ uint256 newTotal;
125
+ for (uint256 i = 0; i < desc.srcReceivers.length; i++) {
126
+ if (i == desc.srcReceivers.length - 1) {
127
+ desc.srcAmounts[i] = newAmount - newTotal;
128
+ } else {
129
+ desc.srcAmounts[i] = (desc.srcAmounts[i] * newAmount) / oldAmount;
130
+ }
131
+ newTotal += desc.srcAmounts[i];
132
+ }
133
+ return desc;
134
+ }
135
+
136
+ function _getNewSimpleSwapData(
137
+ bytes memory data,
138
+ uint256 oldAmount,
139
+ uint256 newAmount
140
+ ) internal pure returns (bytes memory) {
141
+ SimpleSwapData memory swapData = abi.decode(data, (SimpleSwapData));
142
+ uint256 numberSeq = swapData.firstPools.length;
143
+ uint256 newTotalSwapAmount;
144
+ for (uint256 i = 0; i < numberSeq; i++) {
145
+ if (i == numberSeq - 1) {
146
+ swapData.firstSwapAmounts[i] = newAmount - newTotalSwapAmount;
147
+ } else {
148
+ swapData.firstSwapAmounts[i] =
149
+ (swapData.firstSwapAmounts[i] * newAmount) /
150
+ oldAmount;
151
+ }
152
+ newTotalSwapAmount += swapData.firstSwapAmounts[i];
153
+ }
154
+ return abi.encode(swapData);
155
+ }
156
+
157
+ function _getNewExecutorData(
158
+ bytes memory data,
159
+ uint256 oldAmount,
160
+ uint256 newAmount
161
+ ) internal pure returns (bytes memory) {
162
+ SwapExecutorDescription memory swapExecutorDescription = abi.decode(
163
+ data,
164
+ (SwapExecutorDescription)
165
+ );
166
+ swapExecutorDescription.minTotalAmountOut =
167
+ (swapExecutorDescription.minTotalAmountOut * newAmount) /
168
+ oldAmount;
169
+
170
+ uint256 newTotalSwapAmount;
171
+ for (uint256 i = 0; i < swapExecutorDescription.swapSequences.length; i++) {
172
+ IMultihopRouter.Swap memory swap = swapExecutorDescription.swapSequences[i][0];
173
+ uint8 dexType = uint8(swap.dexOption >> 8);
174
+ uint256 value;
175
+ if (i == swapExecutorDescription.swapSequences.length - 1)
176
+ value = newAmount - newTotalSwapAmount;
177
+
178
+ if (dexType == uint8(DexType.UNI)) {
179
+ (swap.data, value) = _newUniSwap(swap.data, value, oldAmount, newAmount);
180
+ } else if (dexType == uint8(DexType.STABLESWAP) || dexType == uint8(DexType.SADDLE)) {
181
+ (swap.data, value) = _newStableSwap(swap.data, value, oldAmount, newAmount);
182
+ } else if (dexType == uint8(DexType.CURVE)) {
183
+ (swap.data, value) = _newCurveSwap(swap.data, value, oldAmount, newAmount);
184
+ } else if (dexType == uint8(DexType.KYBERDMM)) {
185
+ (swap.data, value) = _newKyberDMMSwap(swap.data, value, oldAmount, newAmount);
186
+ } else if (dexType == uint8(DexType.UNIV3PROMM)) {
187
+ (swap.data, value) = _newUniV3ProMMSwap(swap.data, value, oldAmount, newAmount);
188
+ } else if (dexType == uint8(DexType.BALANCERV2)) {
189
+ (swap.data, value) = _newBalancerV2Swap(swap.data, value, oldAmount, newAmount);
190
+ } else if (dexType == uint8(DexType.KYBERRFQ)) {
191
+ revert("kyber: can't scale kyberrfq");
192
+ } else if (dexType == uint8(DexType.DODO)) {
193
+ (swap.data, value) = _newDODOSwap(swap.data, value, oldAmount, newAmount);
194
+ } else if (dexType == uint8(DexType.VELODROME)) {
195
+ (swap.data, value) = _newVelodromeSwap(swap.data, value, oldAmount, newAmount);
196
+ } else {
197
+ revert("AggregationExecutor: Dex type not supported");
198
+ }
199
+ newTotalSwapAmount += value;
200
+ }
201
+ return abi.encode(swapExecutorDescription);
202
+ }
203
+
204
+ function _newUniSwap(
205
+ bytes memory data,
206
+ uint256 value,
207
+ uint256 oldAmount,
208
+ uint256 newAmount
209
+ ) internal pure returns (bytes memory, uint256) {
210
+ IMultihopRouter.UniSwap memory uniSwap = abi.decode(data, (IMultihopRouter.UniSwap));
211
+ if (value > 0) uniSwap.collectAmount = value;
212
+ else uniSwap.collectAmount = (uniSwap.collectAmount * newAmount) / oldAmount;
213
+ return (abi.encode(uniSwap), uniSwap.collectAmount);
214
+ }
215
+
216
+ function _newStableSwap(
217
+ bytes memory data,
218
+ uint256 value,
219
+ uint256 oldAmount,
220
+ uint256 newAmount
221
+ ) internal pure returns (bytes memory, uint256) {
222
+ IMultihopRouter.StableSwap memory stableSwap = abi.decode(
223
+ data,
224
+ (IMultihopRouter.StableSwap)
225
+ );
226
+ if (value > 0) stableSwap.dx = value;
227
+ else stableSwap.dx = (stableSwap.dx * newAmount) / oldAmount;
228
+ return (abi.encode(stableSwap), stableSwap.dx);
229
+ }
230
+
231
+ function _newCurveSwap(
232
+ bytes memory data,
233
+ uint256 value,
234
+ uint256 oldAmount,
235
+ uint256 newAmount
236
+ ) internal pure returns (bytes memory, uint256) {
237
+ IMultihopRouter.CurveSwap memory curveSwap = abi.decode(data, (IMultihopRouter.CurveSwap));
238
+ if (value > 0) curveSwap.dx = value;
239
+ else curveSwap.dx = (curveSwap.dx * newAmount) / oldAmount;
240
+ return (abi.encode(curveSwap), curveSwap.dx);
241
+ }
242
+
243
+ function _newKyberDMMSwap(
244
+ bytes memory data,
245
+ uint256 value,
246
+ uint256 oldAmount,
247
+ uint256 newAmount
248
+ ) internal pure returns (bytes memory, uint256) {
249
+ IMultihopRouter.UniSwap memory kyberDMMSwap = abi.decode(data, (IMultihopRouter.UniSwap));
250
+ if (value > 0) kyberDMMSwap.collectAmount = value;
251
+ else kyberDMMSwap.collectAmount = (kyberDMMSwap.collectAmount * newAmount) / oldAmount;
252
+ return (abi.encode(kyberDMMSwap), kyberDMMSwap.collectAmount);
253
+ }
254
+
255
+ function _newUniV3ProMMSwap(
256
+ bytes memory data,
257
+ uint256 value,
258
+ uint256 oldAmount,
259
+ uint256 newAmount
260
+ ) internal pure returns (bytes memory, uint256) {
261
+ IMultihopRouter.UniSwapV3ProMM memory uniSwapV3ProMM = abi.decode(
262
+ data,
263
+ (IMultihopRouter.UniSwapV3ProMM)
264
+ );
265
+ if (value > 0) uniSwapV3ProMM.swapAmount = value;
266
+ else uniSwapV3ProMM.swapAmount = (uniSwapV3ProMM.swapAmount * newAmount) / oldAmount;
267
+ return (abi.encode(uniSwapV3ProMM), uniSwapV3ProMM.swapAmount);
268
+ }
269
+
270
+ function _newBalancerV2Swap(
271
+ bytes memory data,
272
+ uint256 value,
273
+ uint256 oldAmount,
274
+ uint256 newAmount
275
+ ) internal pure returns (bytes memory, uint256) {
276
+ IMultihopRouter.BalancerV2 memory balancerV2 = abi.decode(
277
+ data,
278
+ (IMultihopRouter.BalancerV2)
279
+ );
280
+ if (value > 0) balancerV2.amount = value;
281
+ else balancerV2.amount = (balancerV2.amount * newAmount) / oldAmount;
282
+ return (abi.encode(balancerV2, balancerV2.amount), balancerV2.amount);
283
+ }
284
+
285
+ function _newDODOSwap(
286
+ bytes memory data,
287
+ uint256 value,
288
+ uint256 oldAmount,
289
+ uint256 newAmount
290
+ ) internal pure returns (bytes memory, uint256) {
291
+ IMultihopRouter.DODO memory dodo = abi.decode(data, (IMultihopRouter.DODO));
292
+ if (value > 0) dodo.amount = value;
293
+ else dodo.amount = (dodo.amount * newAmount) / oldAmount;
294
+ return (abi.encode(dodo), dodo.amount);
295
+ }
296
+
297
+ function _newVelodromeSwap(
298
+ bytes memory data,
299
+ uint256 value,
300
+ uint256 oldAmount,
301
+ uint256 newAmount
302
+ ) internal pure returns (bytes memory, uint256) {
303
+ IMultihopRouter.UniSwap memory velodrome = abi.decode(data, (IMultihopRouter.UniSwap));
304
+ if (value > 0) velodrome.collectAmount = value;
305
+ else velodrome.collectAmount = (velodrome.collectAmount * newAmount) / oldAmount;
306
+ return (abi.encode(velodrome), velodrome.collectAmount);
307
+ }
308
+ }
@@ -0,0 +1,139 @@
1
+ // SPDX-License-Identifier: MIT
2
+
3
+ pragma solidity >=0.7.6;
4
+
5
+ pragma abicoder v2;
6
+
7
+ interface IMultihopRouter {
8
+ enum DexType {
9
+ UNI,
10
+ STABLESWAP,
11
+ CURVE,
12
+ KYBERDMM,
13
+ SADDLE,
14
+ UNIV3PROMM,
15
+ BALANCERV2,
16
+ KYBERRFQ,
17
+ DODO,
18
+ VELODROME,
19
+ PLATYPUS
20
+ }
21
+
22
+ event Exchange(address pair, uint256 amountOut, address output);
23
+ struct Swap {
24
+ bytes data;
25
+ //dexType:
26
+ // 0: uni
27
+ // 1: stable swap
28
+ // 2: curve
29
+ // 3: kyber dmm
30
+ // 4: saddle
31
+ // 5: univ3 or kyber ProMM
32
+ // 6: balancerv2
33
+ // 7: kyber RFQ
34
+ // 8: dodo
35
+ // 9: velodrome
36
+ // 10: platypus
37
+ //dexId:
38
+ // 0: firebird
39
+ uint16 dexOption; //dexType(8bit) + dexId(8bit)
40
+ }
41
+
42
+ struct UniSwap {
43
+ address pool;
44
+ address tokenIn;
45
+ address tokenOut;
46
+ address recipient;
47
+ uint256 collectAmount; // amount that should be transferred to the pool
48
+ uint256 limitReturnAmount;
49
+ }
50
+
51
+ struct StableSwap {
52
+ address pool;
53
+ address tokenFrom;
54
+ address tokenTo;
55
+ uint8 tokenIndexFrom;
56
+ uint8 tokenIndexTo;
57
+ uint256 dx;
58
+ uint256 minDy;
59
+ uint256 poolLength;
60
+ address poolLp;
61
+ }
62
+
63
+ struct CurveSwap {
64
+ address pool;
65
+ address tokenFrom;
66
+ address tokenTo;
67
+ int128 tokenIndexFrom;
68
+ int128 tokenIndexTo;
69
+ uint256 dx;
70
+ uint256 minDy;
71
+ bool usePoolUnderlying;
72
+ bool useTriCrypto;
73
+ }
74
+
75
+ struct UniSwapV3ProMM {
76
+ address recipient;
77
+ address pool;
78
+ address tokenIn;
79
+ address tokenOut;
80
+ uint256 swapAmount;
81
+ uint256 limitReturnAmount;
82
+ uint160 sqrtPriceLimitX96;
83
+ bool isUniV3; // true = UniV3, false = ProMM
84
+ }
85
+ struct SwapCallbackData {
86
+ bytes path;
87
+ address payer;
88
+ }
89
+ struct SwapCallbackDataPath {
90
+ address pool;
91
+ address tokenIn;
92
+ address tokenOut;
93
+ }
94
+
95
+ struct BalancerV2 {
96
+ address vault;
97
+ bytes32 poolId;
98
+ address assetIn;
99
+ address assetOut;
100
+ uint256 amount;
101
+ uint256 limit;
102
+ }
103
+
104
+ struct KyberRFQ {
105
+ address rfq;
106
+ bytes order;
107
+ bytes signature;
108
+ uint256 amount;
109
+ address payable target;
110
+ }
111
+
112
+ struct DODO {
113
+ address recipient;
114
+ address pool;
115
+ address tokenFrom;
116
+ address tokenTo;
117
+ uint256 amount;
118
+ uint256 minReceiveQuote;
119
+ address sellHelper;
120
+ bool isSellBase;
121
+ bool isVersion2;
122
+ }
123
+
124
+ function factory() external view returns (address);
125
+
126
+ function formula() external view returns (address);
127
+
128
+ function WETH() external view returns (address);
129
+
130
+ function multihopBatchSwapExactIn(
131
+ Swap[][] memory swapSequences,
132
+ address tokenIn,
133
+ address tokenOut,
134
+ uint256 minTotalAmountOut,
135
+ address to,
136
+ uint256 deadline,
137
+ bytes memory destTokenFeeData
138
+ ) external payable returns (uint256 totalAmountOut);
139
+ }
@@ -26,6 +26,7 @@ import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
26
26
  import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
27
27
  import "@openzeppelin/contracts/utils/Address.sol";
28
28
  import "../helpers/TokenHelper.sol";
29
+ import "./AggregationRouterHelper.sol";
29
30
 
30
31
  struct TokenInput {
31
32
  address tokenIn;
@@ -53,9 +54,14 @@ abstract contract KyberSwapHelper is TokenHelper {
53
54
  function _kyberswap(
54
55
  address tokenIn,
55
56
  uint256 amountIn,
56
- bytes calldata kybercall
57
+ bytes calldata rawKybercall
57
58
  ) internal {
58
59
  _safeApproveInf(tokenIn, kyberSwapRouter);
60
+
61
+ bytes memory kybercall = AggregationRouterHelper.getScaledInputData(
62
+ rawKybercall,
63
+ amountIn
64
+ );
59
65
  kyberSwapRouter.functionCallWithValue(kybercall, tokenIn == NATIVE ? amountIn : 0);
60
66
  }
61
67
  }
@@ -3,7 +3,7 @@
3
3
  pragma solidity 0.8.15;
4
4
 
5
5
  library WeekMath {
6
- uint128 internal constant WEEK = 7 days;
6
+ uint128 internal constant WEEK = 2 hours;
7
7
 
8
8
  function getWeekStartTimestamp(uint128 timestamp) internal pure returns (uint128) {
9
9
  return (timestamp / WEEK) * WEEK;
@@ -4,12 +4,12 @@ pragma solidity 0.8.15;
4
4
  import "../interfaces/IPYieldContractFactory.sol";
5
5
  import "../interfaces/IPMarketFactory.sol";
6
6
  import "./MarketMathStatic.sol";
7
- import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
8
- import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
9
- import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
7
+ import "@openzeppelin/contracts/proxy/utils/Initializable.sol";
8
+ import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";
9
+ import "../periphery/BoringOwnableUpgradeable.sol";
10
10
 
11
11
  /// EXCLUDED FROM ALL AUDITS, TO BE CALLED ONLY BY PENDLE's SDK
12
- contract RouterStatic is OwnableUpgradeable, UUPSUpgradeable {
12
+ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeable {
13
13
  using Math for uint256;
14
14
 
15
15
  struct TokenAmount {
@@ -56,7 +56,7 @@ contract RouterStatic is OwnableUpgradeable, UUPSUpgradeable {
56
56
  }
57
57
 
58
58
  function initialize() external initializer {
59
- __Ownable_init();
59
+ __BoringOwnable_init();
60
60
  }
61
61
 
62
62
  function getDefaultApproxParams() public pure returns (ApproxParams memory) {
@@ -0,0 +1,21 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.15;
3
+ import "../libraries/helpers/SSTORE2Deployer.sol";
4
+ import "../periphery/BoringOwnableUpgradeable.sol";
5
+
6
+ contract SSTORE2DeployerContract is BoringOwnableUpgradeable {
7
+ event Deployed(string name, address addr);
8
+
9
+ constructor() {
10
+ __BoringOwnable_init();
11
+ }
12
+
13
+ function deploy(string memory name, bytes calldata creationCode)
14
+ external
15
+ onlyOwner
16
+ returns (address res)
17
+ {
18
+ res = SSTORE2Deployer.setCreationCode(creationCode);
19
+ emit Deployed(name, res);
20
+ }
21
+ }
@@ -1,14 +1,14 @@
1
1
  // SPDX-License-Identifier: MIT
2
2
  pragma solidity 0.8.15;
3
3
 
4
- import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
4
+ import "@openzeppelin/contracts/proxy/utils/Initializable.sol";
5
5
 
6
6
  contract BoringOwnableUpgradeableData {
7
7
  address public owner;
8
8
  address public pendingOwner;
9
9
  }
10
10
 
11
- contract BoringOwnableUpgradeable is BoringOwnableUpgradeableData, Initializable {
11
+ abstract contract BoringOwnableUpgradeable is BoringOwnableUpgradeableData, Initializable {
12
12
  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
13
13
 
14
14
  function __BoringOwnable_init() internal onlyInitializing {
@@ -1,15 +1,16 @@
1
1
  {
2
2
  "deployer": "0x1FcCC097db89A86Bfc474A1028F93958295b1Fb7",
3
+ "sstore2": "0x00E8aAE633b426cb67614f432B4604C6fA2BF101",
3
4
  "network": 43113,
4
5
  "celerBus": "0xE9533976C590200E32d95C53f06AE12d292cFc47",
5
6
  "treasury": "0xB4E292AD98Ba0D5531Ca573757f7b7d6c0C205d8",
6
7
  "PENDLE": "0x83B694f9Ef84D22BECe87257f0cd4513737A505e",
7
- "yieldContractFactory": "0x38E5A1D591553b5FF18b151B587745a4A9B206d2",
8
- "marketFactory": "0xE646E5425fD448b2f9dDF6de12383CcF5275143B",
9
- "router": "0xa4C21f51DE870a283f362A7331f0C4f8288c3e41",
10
- "routerStatic": "0x7d8Cd904F0b7d06fB846110817bA3519bf76381a",
8
+ "yieldContractFactory": "0x2e5DF6e3DA5Ae730aC357Ca1b6a823A9B0EAFaC0",
9
+ "marketFactory": "0x3Ba006773B0cfd7f3549B2D4259524FCb3dCC8E2",
10
+ "router": "0x17C433893321F4457066045E1356e8E8B0C5F596",
11
+ "routerStatic": "0x8CC254DcaE3d01c4Aff79A396d94623E4D9dD2b1",
11
12
  "startTime": 1657756800,
12
- "vePendle": "0x3AE0fee115057cCF8A0B5255751027C26D83B912",
13
- "votingController": "0x76815E13679C7F18a406f5BA94E352E656BeE378",
14
- "gaugeController": "0xD9F5f311dA64645D4b38D055e1726D8B217272e7"
13
+ "vePendle": "0xdc6aFe3Aae143f73Abc84766E9c99f18fF3c5aAe",
14
+ "votingController": "0x7d9Bd862090337D572c50068b40E39F76b8dFE03",
15
+ "gaugeController": "0xcE19aEaBE9229F8070ADe311A2d3aAf4f6864B26"
15
16
  }
@@ -0,0 +1,8 @@
1
+ {
2
+ "symbol": "SCY-qiUSDC",
3
+ "SCY": "0xe41eebdC5124693cD9C18162D375590273a911Ed",
4
+ "expiry": 1675382400,
5
+ "PT": "0xF8F6ca86D40A8a9FFc0aC2D9F96a1A439b5535A8",
6
+ "YT": "0x924b41c12FE9b9DAA311E0e0B050C16538c70283",
7
+ "market": "0x485991210C8ec45644588EC1f4957d3d0aA0cE39"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "symbol": "SCY-qiUSDC",
3
+ "SCY": "0xe41eebdC5124693cD9C18162D375590273a911Ed",
4
+ "expiry": 1663804800,
5
+ "PT": "0x549b110782B89bd40018c12BC1770Cc55e6a2267",
6
+ "YT": "0x80F8302a86775A810c2233e3AbE62990f7cc1051",
7
+ "market": "0x6b2CC53E2c08b9054D00a4a84bf22462a18A249f"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "symbol": "SCY-qiWETH",
3
+ "SCY": "0x92A502318c1d77f3b2eFCb1BD8ee625Ad206A8d5",
4
+ "expiry": 1669852800,
5
+ "PT": "0x59E95f6f2191bc7dB730a3125cB76c3a4A35a835",
6
+ "YT": "0xf400888C27f134E8cd6313E33d10d2526dec8697",
7
+ "market": "0xbF23860F807Dbc7678Cf53be78D06A14A5c36D16"
8
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "tokens": {
3
3
  "fundKeeper": "0x45e03eB183962884d50eC0Af39B03970333426cb",
4
- "faucet": "0x1A2775c9bEe6e798De971c369849CF9130D3e25a",
4
+ "faucet": "0x6C881F2b27aB065c6b6fbDf1407f2895104D5856",
5
5
  "WAVAX": "0xe43a7aD7C09d8fAE3ADe7361f0b847b23adD5094",
6
6
  "DAI": "0xCd3748CE3Bf75A01D99Bf301668E0748558a592C",
7
7
  "USDC": "0xc2A6b8d7d0FAB3749A6Bda84cEdb58D2d58f045e",
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.11.0-testnet",
5
+ "version": "0.11.1-testnet",
6
6
  "homepage": "https://pendle.finance",
7
7
  "keywords": [
8
8
  "pendle",
@@ -25,7 +25,7 @@
25
25
  "devDependencies": {
26
26
  "@typechain/ethers-v5": "^9.0.0",
27
27
  "@typechain/hardhat": "^4.0.0",
28
- "hardhat": "^2.10.2",
28
+ "hardhat": "^2.11.0",
29
29
  "hardhat-contract-sizer": "^2.6.1",
30
30
  "hardhat-storage-layout-diff": "^0.0.4",
31
31
  "prettier": "^2.7.1",
@@ -34,7 +34,7 @@
34
34
  "solhint": "^3.3.7",
35
35
  "ts-node": "^10.9.1",
36
36
  "typechain": "^8.1.0",
37
- "typescript": "^4.7.4"
37
+ "typescript": "^4.8.2"
38
38
  },
39
39
  "scripts": {
40
40
  "compile": "yarn hardhat compile",
@@ -44,7 +44,6 @@
44
44
  },
45
45
  "packageManager": "yarn@3.2.2",
46
46
  "dependencies": {
47
- "@openzeppelin/contracts": "^4.5.0",
48
- "@openzeppelin/contracts-upgradeable": "^4.5.2"
47
+ "@openzeppelin/contracts": "^4.5.0"
49
48
  }
50
49
  }