@pendle/core-v2 0.7.0 → 0.7.1-beta-2

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 (399) 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 -39
  3. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/WadRayMath.sol/WadRayMath.dbg.json +1 -1
  4. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/WadRayMath.sol/WadRayMath.json +2 -2
  5. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  6. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  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 -26
  9. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleBtrflySCY.sol/PendleBtrflyScy.dbg.json +1 -1
  10. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleBtrflySCY.sol/PendleBtrflyScy.json +2 -2
  11. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.dbg.json +1 -1
  12. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.json +2 -2
  13. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleJoeLpSCY.sol/PendleJoeLpSCY.dbg.json +1 -1
  14. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleJoeLpSCY.sol/PendleJoeLpSCY.json +2 -2
  15. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.dbg.json +1 -1
  16. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.json +2 -2
  17. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.dbg.json +1 -1
  18. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.json +2 -2
  19. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBase.sol/SCYBase.dbg.json +1 -1
  20. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +1 -1
  21. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.json +0 -24
  22. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol/CelerReceiverUpg.dbg.json +4 -0
  23. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/{CelerReceiver.sol/CelerReceiver.json → CelerReceiverUpg.sol/CelerReceiverUpg.json} +2 -2
  24. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol/CelerSenderUpg.dbg.json +4 -0
  25. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/{CelerSender.sol/CelerSender.json → CelerSenderUpg.sol/CelerSenderUpg.json} +15 -2
  26. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +4 -0
  27. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/{PendleGaugeController.sol/PendleGaugeController.json → PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.json} +2 -2
  28. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchain.sol/PendleGaugeControllerMainchainUpg.dbg.json +4 -0
  29. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchain.sol/PendleGaugeControllerMainchainUpg.json +255 -0
  30. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechain.sol/PendleGaugeControllerSidechainUpg.dbg.json +4 -0
  31. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechain.sol/PendleGaugeControllerSidechainUpg.json +318 -0
  32. package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.json +0 -24
  34. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +4 -0
  35. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +776 -0
  36. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +4 -0
  37. package/build/artifacts/contracts/core/LiquidityMining/VotingController/{VotingControllerStorage.sol/VotingControllerStorage.json → VotingControllerStorageUpg.sol/VotingControllerStorageUpg.json} +16 -49
  38. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +15 -43
  40. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
  42. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +4 -0
  43. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/{VotingEscrowToken.sol/VotingEscrowToken.json → VotingEscrowTokenBase.sol/VotingEscrowTokenBase.json} +2 -2
  44. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -26
  46. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +13 -7
  48. package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.json +2 -2
  50. package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.json +2 -2
  52. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  53. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.json +2 -2
  54. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +4 -0
  55. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.json +35 -0
  56. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  57. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +15 -82
  58. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  59. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +15 -7
  60. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  61. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +77 -95
  62. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.json +2 -2
  64. package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.dbg.json +1 -1
  65. package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.json +2 -2
  66. package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.dbg.json +1 -1
  67. package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.json +2 -2
  68. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPTBase.sol/ActionSCYAndPTBase.dbg.json +1 -1
  69. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.dbg.json +1 -1
  70. package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.dbg.json +1 -1
  71. package/build/artifacts/contracts/core/actions/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  72. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
  73. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +1 -1
  74. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +1 -1
  75. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  76. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  77. package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.dbg.json +1 -1
  78. package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.dbg.json +1 -1
  79. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  80. package/build/artifacts/contracts/interfaces/IJoePair.sol/IJoePair.dbg.json +1 -1
  81. package/build/artifacts/contracts/interfaces/IJoeRouter01.sol/IJoeRouter01.dbg.json +1 -1
  82. package/build/artifacts/contracts/interfaces/IJoeRouter02.sol/IJoeRouter02.dbg.json +1 -1
  83. package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.dbg.json +1 -1
  84. package/build/artifacts/contracts/interfaces/IPActionYT.sol/IPActionYT.dbg.json +1 -1
  85. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  86. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  87. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.json +26 -0
  88. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  89. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.json +26 -0
  90. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +1 -1
  91. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +4 -0
  92. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.json +35 -0
  93. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  94. package/build/artifacts/contracts/interfaces/IPMarketAddRemoveCallback.sol/IPMarketAddRemoveCallback.dbg.json +1 -1
  95. package/build/artifacts/contracts/interfaces/IPMarketAddRemoveCallback.sol/IPMarketAddRemoveCallback.json +2 -2
  96. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  97. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.json +6 -0
  98. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  99. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.dbg.json +1 -1
  100. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  101. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.json +13 -0
  102. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  103. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +20 -15
  104. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  105. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  106. package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.dbg.json +1 -1
  107. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  108. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  109. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.json +91 -43
  110. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  111. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  112. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  113. package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.dbg.json +1 -1
  114. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  115. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.json +7 -2
  116. package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.dbg.json +1 -1
  117. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  118. package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.dbg.json +1 -1
  119. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  120. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +1 -1
  121. package/build/artifacts/contracts/libraries/RewardManager.sol/RewardManager.dbg.json +1 -1
  122. package/build/artifacts/contracts/libraries/RewardManager.sol/RewardManager.json +0 -24
  123. package/build/artifacts/contracts/libraries/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +4 -0
  124. package/build/artifacts/contracts/libraries/RewardManagerAbstract.sol/RewardManagerAbstract.json +40 -0
  125. package/build/artifacts/contracts/libraries/SCY/SCYIndex.sol/SCYIndexLib.dbg.json +1 -1
  126. package/build/artifacts/contracts/libraries/SCY/SCYIndex.sol/SCYIndexLib.json +2 -2
  127. package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.dbg.json +1 -1
  128. package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.json +2 -2
  129. package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  130. package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  131. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +4 -0
  132. package/build/artifacts/contracts/libraries/{solmate/LibRLP.sol/LibRLP.json → VeHistoryLib.sol/Checkpoints.json} +4 -4
  133. package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  134. package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.json +2 -2
  135. package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  136. package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.json +2 -2
  137. package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  138. package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.json +2 -2
  139. package/build/artifacts/contracts/libraries/helpers/SSTORE2Deployer.sol/SSTORE2Deployer.dbg.json +4 -0
  140. package/build/artifacts/contracts/libraries/helpers/SSTORE2Deployer.sol/SSTORE2Deployer.json +10 -0
  141. package/build/artifacts/contracts/libraries/helpers/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  142. package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  143. package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.json +2 -2
  144. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.dbg.json +1 -1
  145. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.json +2 -2
  146. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  147. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.json +2 -2
  148. package/build/artifacts/contracts/libraries/math/Math.sol/Math.dbg.json +1 -1
  149. package/build/artifacts/contracts/libraries/math/Math.sol/Math.json +2 -2
  150. package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.dbg.json +1 -1
  151. package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.json +2 -2
  152. package/build/artifacts/contracts/libraries/solmate/Bytes32AddressLib.sol/Bytes32AddressLib.dbg.json +1 -1
  153. package/build/artifacts/contracts/libraries/solmate/Bytes32AddressLib.sol/Bytes32AddressLib.json +2 -2
  154. package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.dbg.json +1 -1
  155. package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.json +2 -2
  156. package/build/artifacts/contracts/libraries/traderjoe/JoeLibrary.sol/JoeLibrary.dbg.json +1 -1
  157. package/build/artifacts/contracts/libraries/traderjoe/JoeLibrary.sol/JoeLibrary.json +2 -2
  158. package/build/artifacts/contracts/libraries/traderjoe/PendleJoeSwapHelperUpg.sol/PendleJoeSwapHelperUpg.dbg.json +1 -1
  159. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  160. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +167 -14
  161. package/build/artifacts/contracts/periphery/PendleGovernanceManager.sol/PendleGovernanceManager.dbg.json +1 -1
  162. package/build/artifacts/contracts/periphery/PendleGovernanceManager.sol/PendleGovernanceManager.json +2 -2
  163. package/build/artifacts/contracts/periphery/PermissionsV2Upg.sol/PermissionsV2Upg.dbg.json +1 -1
  164. package/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol +1 -1
  165. package/contracts/SuperComposableYield/SCY-implementations/AaveV3/WadRayMath.sol +1 -1
  166. package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol +1 -1
  167. package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol +1 -1
  168. package/contracts/SuperComposableYield/SCY-implementations/PendleBtrflySCY.sol +1 -1
  169. package/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol +1 -1
  170. package/contracts/SuperComposableYield/SCY-implementations/PendleJoeLpSCY.sol +1 -1
  171. package/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol +1 -1
  172. package/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol +1 -1
  173. package/contracts/SuperComposableYield/base-implementations/SCYBase.sol +1 -1
  174. package/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol +1 -1
  175. package/contracts/core/LiquidityMining/CelerAbstracts/{CelerReceiver.sol → CelerReceiverUpg.sol} +8 -2
  176. package/contracts/core/LiquidityMining/CelerAbstracts/{CelerSender.sol → CelerSenderUpg.sol} +10 -3
  177. package/contracts/core/LiquidityMining/GaugeController/{PendleGaugeController.sol → PendleGaugeControllerBaseUpg.sol} +9 -4
  178. package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchain.sol +7 -4
  179. package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechain.sol +9 -5
  180. package/contracts/core/LiquidityMining/PendleGauge.sol +1 -1
  181. package/contracts/core/LiquidityMining/VotingController/{PendleVotingController.sol → PendleVotingControllerUpg.sol} +19 -6
  182. package/contracts/core/LiquidityMining/VotingController/{VotingControllerStorage.sol → VotingControllerStorageUpg.sol} +14 -10
  183. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +12 -8
  184. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +5 -5
  185. package/contracts/core/LiquidityMining/VotingEscrow/{VotingEscrowToken.sol → VotingEscrowTokenBase.sol} +2 -3
  186. package/contracts/core/Market/PendleMarket.sol +4 -5
  187. package/contracts/core/Market/PendleMarketFactory.sol +17 -20
  188. package/contracts/core/PendleRouter.sol +1 -1
  189. package/contracts/core/YieldContracts/InterestManagerYT.sol +1 -1
  190. package/contracts/core/YieldContracts/PendlePrincipalToken.sol +15 -7
  191. package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +18 -19
  192. package/contracts/core/YieldContracts/PendleYieldToken.sol +37 -28
  193. package/contracts/core/actions/ActionCallback.sol +1 -1
  194. package/contracts/core/actions/ActionCore.sol +1 -1
  195. package/contracts/core/actions/ActionYT.sol +1 -1
  196. package/contracts/core/actions/base/ActionSCYAndPTBase.sol +1 -1
  197. package/contracts/core/actions/base/ActionSCYAndPYBase.sol +1 -1
  198. package/contracts/core/actions/base/ActionSCYAndYTBase.sol +1 -1
  199. package/contracts/core/actions/base/CallbackHelper.sol +1 -1
  200. package/contracts/interfaces/IAToken.sol +1 -1
  201. package/contracts/interfaces/IAavePool.sol +1 -1
  202. package/contracts/interfaces/IAaveRewardsController.sol +1 -1
  203. package/contracts/interfaces/IBenQiComptroller.sol +1 -1
  204. package/contracts/interfaces/IBenQiInterestRateModel.sol +1 -1
  205. package/contracts/interfaces/IERC4626.sol +1 -1
  206. package/contracts/interfaces/IJoeRouter01.sol +1 -1
  207. package/contracts/interfaces/IJoeRouter02.sol +1 -1
  208. package/contracts/interfaces/IPActionCore.sol +1 -1
  209. package/contracts/interfaces/IPActionYT.sol +1 -1
  210. package/contracts/interfaces/IPAllAction.sol +1 -1
  211. package/contracts/interfaces/IPGaugeController.sol +7 -1
  212. package/contracts/interfaces/IPGaugeControllerMainchain.sol +1 -1
  213. package/contracts/interfaces/IPGovernanceManager.sol +1 -1
  214. package/contracts/interfaces/IPInterestManagerYT.sol +1 -1
  215. package/contracts/interfaces/IPMarket.sol +1 -1
  216. package/contracts/interfaces/IPMarketAddRemoveCallback.sol +1 -1
  217. package/contracts/interfaces/IPMarketFactory.sol +7 -2
  218. package/contracts/interfaces/IPMarketSwapCallback.sol +1 -1
  219. package/contracts/interfaces/IPPermissionsV2Upg.sol +1 -1
  220. package/contracts/interfaces/IPPrincipalToken.sol +3 -1
  221. package/contracts/interfaces/IPRouterStatic.sol +68 -48
  222. package/contracts/interfaces/IPVeToken.sol +1 -1
  223. package/contracts/interfaces/IPVotingController.sol +1 -1
  224. package/contracts/interfaces/IPVotingEscrow.sol +1 -1
  225. package/contracts/interfaces/IPYieldContractFactory.sol +1 -1
  226. package/contracts/interfaces/IPYieldToken.sol +14 -4
  227. package/contracts/interfaces/IQiAvax.sol +1 -1
  228. package/contracts/interfaces/IQiErc20.sol +1 -1
  229. package/contracts/interfaces/IQiToken.sol +1 -1
  230. package/contracts/interfaces/IREDACTEDStaking.sol +1 -1
  231. package/contracts/interfaces/IRewardManager.sol +1 -1
  232. package/contracts/interfaces/ISuperComposableYield.sol +1 -1
  233. package/contracts/interfaces/IWETH.sol +1 -1
  234. package/contracts/interfaces/IWXBTRFLY.sol +1 -1
  235. package/contracts/interfaces/IWstETH.sol +1 -1
  236. package/contracts/interfaces/IYearnVault.sol +1 -1
  237. package/contracts/libraries/RewardManager.sol +1 -1
  238. package/contracts/libraries/RewardManagerAbstract.sol +6 -2
  239. package/contracts/libraries/SCY/SCYIndex.sol +1 -1
  240. package/contracts/libraries/SCY/SCYUtils.sol +1 -1
  241. package/contracts/libraries/VeBalanceLib.sol +1 -35
  242. package/contracts/libraries/VeHistoryLib.sol +60 -0
  243. package/contracts/libraries/helpers/ExpiryUtilsLib.sol +1 -1
  244. package/contracts/libraries/helpers/MiniHelpers.sol +1 -1
  245. package/contracts/libraries/helpers/SSTORE2Deployer.sol +30 -0
  246. package/contracts/libraries/helpers/TokenHelper.sol +1 -1
  247. package/contracts/libraries/math/LogExpMath.sol +1 -1
  248. package/contracts/libraries/math/MarketApproxLib.sol +1 -1
  249. package/contracts/libraries/math/MarketMathCore.sol +1 -1
  250. package/contracts/libraries/math/Math.sol +1 -1
  251. package/contracts/libraries/math/WeekMath.sol +1 -1
  252. package/contracts/libraries/traderjoe/JoeLibrary.sol +1 -1
  253. package/contracts/libraries/traderjoe/PendleJoeSwapHelperUpg.sol +1 -1
  254. package/contracts/offchain-helpers/RouterStatic.sol +145 -116
  255. package/contracts/periphery/PendleGovernanceManager.sol +1 -1
  256. package/contracts/periphery/PermissionsV2Upg.sol +7 -1
  257. package/deployments/43113-benqi.json +6 -0
  258. package/deployments/43113-core.json +16 -0
  259. package/deployments/43113-markets/benqi-market.json +7 -0
  260. package/deployments/80001-benqi.json +6 -0
  261. package/deployments/80001-core.json +15 -0
  262. package/deployments/80001-markets/benqi-market.json +7 -0
  263. package/package.json +2 -2
  264. package/typechain-types/{CelerReceiver.ts → CelerReceiverUpg.ts} +5 -5
  265. package/typechain-types/{CelerSender.ts → CelerSenderUpg.ts} +24 -5
  266. package/typechain-types/IPGaugeController.ts +63 -0
  267. package/typechain-types/IPGaugeControllerMainchain.ts +62 -0
  268. package/typechain-types/{IVePToken.ts → IPInterestManagerYT.ts} +38 -27
  269. package/typechain-types/IPMarketAddRemoveCallback.ts +10 -10
  270. package/typechain-types/IPMarketFactory.ts +11 -4
  271. package/typechain-types/IPPrincipalToken.ts +25 -0
  272. package/typechain-types/IPRouterStatic.ts +64 -41
  273. package/typechain-types/IPYieldToken.ts +106 -106
  274. package/typechain-types/IRewardManager.ts +15 -14
  275. package/typechain-types/{IPGauge.ts → InterestManagerYT.ts} +27 -28
  276. package/typechain-types/PendleAaveV3SCY.ts +0 -70
  277. package/typechain-types/PendleGauge.ts +0 -39
  278. package/typechain-types/{PendleGaugeController.ts → PendleGaugeControllerBaseUpg.ts} +5 -5
  279. package/typechain-types/{PendleGaugeControllerMainchain.ts → PendleGaugeControllerMainchainUpg.ts} +5 -5
  280. package/typechain-types/{PendleGaugeControllerSidechain.ts → PendleGaugeControllerSidechainUpg.ts} +5 -5
  281. package/typechain-types/PendleMarket.ts +0 -39
  282. package/typechain-types/PendleMarketFactory.ts +18 -6
  283. package/typechain-types/PendlePrincipalToken.ts +25 -104
  284. package/typechain-types/PendleQiTokenSCY.ts +0 -39
  285. package/typechain-types/{PendleVotingController.ts → PendleVotingControllerUpg.ts} +165 -62
  286. package/typechain-types/{PendleYearnVaultScy.ts → PendleYearnVaultSCY.ts} +0 -0
  287. package/typechain-types/PendleYieldContractFactory.ts +31 -0
  288. package/typechain-types/PendleYieldToken.ts +84 -177
  289. package/typechain-types/RewardManager.ts +0 -39
  290. package/typechain-types/{IBeacon.ts → RewardManagerAbstract.ts} +38 -17
  291. package/typechain-types/RouterStatic.ts +298 -31
  292. package/typechain-types/SCYBaseWithRewards.ts +0 -39
  293. package/typechain-types/{VotingControllerStorage.ts → VotingControllerStorageUpg.ts} +28 -68
  294. package/typechain-types/VotingEscrowPendleMainchain.ts +19 -54
  295. package/typechain-types/{VotingEscrowToken.ts → VotingEscrowTokenBase.ts} +5 -5
  296. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  297. package/typechain-types/factories/ActionCore__factory.ts +1 -1
  298. package/typechain-types/factories/ActionYT__factory.ts +1 -1
  299. package/typechain-types/factories/{CelerReceiver__factory.ts → CelerReceiverUpg__factory.ts} +9 -6
  300. package/typechain-types/factories/{CelerSender__factory.ts → CelerSenderUpg__factory.ts} +22 -6
  301. package/typechain-types/factories/ERC20__factory.ts +1 -1
  302. package/typechain-types/factories/IPGaugeControllerMainchain__factory.ts +26 -0
  303. package/typechain-types/factories/IPGaugeController__factory.ts +26 -0
  304. package/typechain-types/factories/IPInterestManagerYT__factory.ts +50 -0
  305. package/typechain-types/factories/IPMarketAddRemoveCallback__factory.ts +2 -2
  306. package/typechain-types/factories/IPMarketFactory__factory.ts +6 -0
  307. package/typechain-types/factories/IPPrincipalToken__factory.ts +13 -0
  308. package/typechain-types/factories/IPRouterStatic__factory.ts +20 -15
  309. package/typechain-types/factories/IPYieldToken__factory.ts +91 -43
  310. package/typechain-types/factories/IRewardManager__factory.ts +7 -2
  311. package/typechain-types/factories/InterestManagerYT__factory.ts +50 -0
  312. package/typechain-types/factories/PendleAaveV3SCY__factory.ts +1 -38
  313. package/typechain-types/factories/PendleBtrflyScy__factory.ts +1 -1
  314. package/typechain-types/factories/PendleERC20Permit__factory.ts +1 -1
  315. package/typechain-types/factories/PendleERC20__factory.ts +1 -1
  316. package/typechain-types/factories/PendleERC4626SCY__factory.ts +1 -1
  317. package/typechain-types/factories/{PendleGaugeController__factory.ts → PendleGaugeControllerBaseUpg__factory.ts} +8 -8
  318. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +334 -0
  319. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +393 -0
  320. package/typechain-types/factories/PendleGauge__factory.ts +0 -24
  321. package/typechain-types/factories/PendleGovernanceManager__factory.ts +1 -1
  322. package/typechain-types/factories/PendleJoeLpSCY__factory.ts +1 -1
  323. package/typechain-types/factories/PendleMarketFactory__factory.ts +12 -11
  324. package/typechain-types/factories/PendleMarket__factory.ts +1 -25
  325. package/typechain-types/factories/PendlePrincipalToken__factory.ts +14 -85
  326. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  327. package/typechain-types/factories/PendleQiTokenSCY__factory.ts +1 -25
  328. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  329. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +845 -0
  330. package/typechain-types/factories/PendleWstEthSCY__factory.ts +1 -1
  331. package/typechain-types/factories/PendleYearnVaultSCY__factory.ts +691 -0
  332. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +14 -11
  333. package/typechain-types/factories/PendleYieldToken__factory.ts +76 -94
  334. package/typechain-types/factories/RewardManagerAbstract__factory.ts +59 -0
  335. package/typechain-types/factories/RewardManager__factory.ts +0 -24
  336. package/typechain-types/factories/RouterStatic__factory.ts +166 -13
  337. package/typechain-types/factories/SCYBaseWithRewards__factory.ts +0 -24
  338. package/typechain-types/factories/{VotingControllerStorage__factory.ts → VotingControllerStorageUpg__factory.ts} +22 -55
  339. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +14 -42
  340. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  341. package/typechain-types/factories/{VotingEscrowToken__factory.ts → VotingEscrowTokenBase__factory.ts} +12 -8
  342. package/typechain-types/hardhat.d.ts +54 -72
  343. package/typechain-types/index.ts +22 -26
  344. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiver.sol/CelerReceiver.dbg.json +0 -4
  345. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSender.sol/CelerSender.dbg.json +0 -4
  346. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeController.sol/PendleGaugeController.dbg.json +0 -4
  347. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchain.sol/PendleGaugeControllerMainchain.dbg.json +0 -4
  348. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchain.sol/PendleGaugeControllerMainchain.json +0 -255
  349. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechain.sol/PendleGaugeControllerSidechain.dbg.json +0 -4
  350. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechain.sol/PendleGaugeControllerSidechain.json +0 -318
  351. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingController.sol/PendleVotingController.dbg.json +0 -4
  352. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingController.sol/PendleVotingController.json +0 -707
  353. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorage.sol/VotingControllerStorage.dbg.json +0 -4
  354. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowToken.sol/VotingEscrowToken.dbg.json +0 -4
  355. package/build/artifacts/contracts/libraries/RewardManagerMini.sol/RewardManagerMini.dbg.json +0 -4
  356. package/build/artifacts/contracts/libraries/RewardManagerMini.sol/RewardManagerMini.json +0 -101
  357. package/build/artifacts/contracts/libraries/helpers/MiniDeployer.sol/MiniDeployer.dbg.json +0 -4
  358. package/build/artifacts/contracts/libraries/helpers/MiniDeployer.sol/MiniDeployer.json +0 -10
  359. package/build/artifacts/contracts/libraries/solmate/LibRLP.sol/LibRLP.dbg.json +0 -4
  360. package/contracts/libraries/helpers/MiniDeployer.sol +0 -23
  361. package/contracts/libraries/solmate/LibRLP.sol +0 -30
  362. package/deployments/kovan.json +0 -31
  363. package/typechain-types/ActionRedeem.ts +0 -125
  364. package/typechain-types/BeaconProxy.ts +0 -97
  365. package/typechain-types/ERC1967Upgrade.ts +0 -97
  366. package/typechain-types/IERC1822Proxiable.ts +0 -87
  367. package/typechain-types/IPActionRedeem.ts +0 -125
  368. package/typechain-types/IPBaseToken.ts +0 -365
  369. package/typechain-types/IPVotingEscrowController.ts +0 -154
  370. package/typechain-types/IPendleGauge.ts +0 -241
  371. package/typechain-types/IVotingEscrowPendle.ts +0 -297
  372. package/typechain-types/PendleBaseToken.ts +0 -475
  373. package/typechain-types/PendleBenQiErc20SCY.ts +0 -1050
  374. package/typechain-types/PendleMarketRewards.ts +0 -1317
  375. package/typechain-types/PendleStEthSCY.ts +0 -872
  376. package/typechain-types/RewardManagerMini.ts +0 -200
  377. package/typechain-types/VotingEscrowController.ts +0 -154
  378. package/typechain-types/factories/ActionRedeem__factory.ts +0 -105
  379. package/typechain-types/factories/BeaconProxy__factory.ts +0 -141
  380. package/typechain-types/factories/ERC1967Upgrade__factory.ts +0 -71
  381. package/typechain-types/factories/IBeacon__factory.ts +0 -36
  382. package/typechain-types/factories/IERC1822Proxiable__factory.ts +0 -39
  383. package/typechain-types/factories/IPActionRedeem__factory.ts +0 -70
  384. package/typechain-types/factories/IPBaseToken__factory.ts +0 -271
  385. package/typechain-types/factories/IPGauge__factory.ts +0 -42
  386. package/typechain-types/factories/IPVotingEscrowController__factory.ts +0 -80
  387. package/typechain-types/factories/IPendleGauge__factory.ts +0 -125
  388. package/typechain-types/factories/IVePToken__factory.ts +0 -55
  389. package/typechain-types/factories/IVotingEscrowPendle__factory.ts +0 -182
  390. package/typechain-types/factories/PendleBaseToken__factory.ts +0 -348
  391. package/typechain-types/factories/PendleBenQiErc20SCY__factory.ts +0 -871
  392. package/typechain-types/factories/PendleGaugeControllerMainchain__factory.ts +0 -332
  393. package/typechain-types/factories/PendleGaugeControllerSidechain__factory.ts +0 -391
  394. package/typechain-types/factories/PendleMarketRewards__factory.ts +0 -1140
  395. package/typechain-types/factories/PendleStEthSCY__factory.ts +0 -716
  396. package/typechain-types/factories/PendleVotingController__factory.ts +0 -776
  397. package/typechain-types/factories/PendleYearnVaultScy__factory.ts +0 -691
  398. package/typechain-types/factories/RewardManagerMini__factory.ts +0 -116
  399. package/typechain-types/factories/VotingEscrowController__factory.ts +0 -80
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.13;
2
+ pragma solidity 0.8.15;
3
3
 
4
4
  import "../interfaces/ISuperComposableYield.sol";
5
5
  import "../interfaces/IRewardManager.sol";
@@ -7,11 +7,12 @@ import "../interfaces/IPRouterStatic.sol";
7
7
  import "../interfaces/IPMarket.sol";
8
8
  import "../interfaces/IPYieldContractFactory.sol";
9
9
  import "../interfaces/IPMarketFactory.sol";
10
+ import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
10
11
  import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
11
12
  import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
12
13
 
13
14
  /// EXCLUDED FROM ALL AUDITS, TO BE CALLED ONLY BY PENDLE's SDK
14
- contract RouterStatic is IPRouterStatic {
15
+ contract RouterStatic is IPRouterStatic, Initializable, UUPSUpgradeable, OwnableUpgradeable {
15
16
  using MarketMathCore for MarketState;
16
17
  using Math for uint256;
17
18
  using Math for int256;
@@ -20,17 +21,125 @@ contract RouterStatic is IPRouterStatic {
20
21
  IPYieldContractFactory public immutable yieldContractFactory;
21
22
  IPMarketFactory public immutable marketFactory;
22
23
 
23
- constructor(IPYieldContractFactory _yieldContractFactory, IPMarketFactory _marketFactory) {
24
+ constructor(IPYieldContractFactory _yieldContractFactory, IPMarketFactory _marketFactory)
25
+ initializer
26
+ {
24
27
  yieldContractFactory = _yieldContractFactory;
25
28
  marketFactory = _marketFactory;
26
29
  }
27
30
 
31
+ function initialize() external initializer {
32
+ __UUPSUpgradeable_init();
33
+ __Ownable_init();
34
+ }
35
+
36
+ // ============= SYSTEM INFO =============
37
+
38
+ function getPYInfo(address py)
39
+ external
40
+ returns (
41
+ uint256 exchangeRate,
42
+ uint256 totalSupply,
43
+ RewardIndex[] memory rewardIndexes
44
+ )
45
+ {
46
+ (address yt, ) = getPY(py);
47
+ IPYieldToken YT = IPYieldToken(yt);
48
+ exchangeRate = YT.scyIndexCurrent();
49
+ totalSupply = YT.totalSupply();
50
+ address[] memory rewardTokens = YT.getRewardTokens();
51
+ rewardIndexes = new RewardIndex[](rewardTokens.length);
52
+
53
+ uint256[] memory indexes = YT.rewardIndexesCurrent();
54
+ for (uint256 i = 0; i < rewardTokens.length; ++i) {
55
+ address rewardToken = rewardTokens[i];
56
+ rewardIndexes[i].rewardToken = rewardToken;
57
+ rewardIndexes[i].index = indexes[i];
58
+ }
59
+ }
60
+
61
+ function getPendleTokenType(address token)
62
+ external
63
+ view
64
+ returns (
65
+ bool isPT,
66
+ bool isYT,
67
+ bool isMarket
68
+ )
69
+ {
70
+ if (yieldContractFactory.isPT(token)) isPT = true;
71
+ else if (yieldContractFactory.isYT(token)) isYT = true;
72
+ else if (marketFactory.isValidMarket(token)) isMarket = true;
73
+ }
74
+
75
+ function getMarketInfo(address market)
76
+ external
77
+ view
78
+ returns (
79
+ address pt,
80
+ address scy,
81
+ MarketState memory state,
82
+ int256 impliedYield
83
+ )
84
+ {
85
+ IPMarket _market = IPMarket(market);
86
+ (ISuperComposableYield SCY, IPPrincipalToken PT, ) = IPMarket(market).readTokens();
87
+
88
+ pt = address(PT);
89
+ scy = address(SCY);
90
+ state = _market.readState(true);
91
+ impliedYield = getPtImpliedYield(market);
92
+ }
93
+
94
+ // ============= USER INFO =============
95
+
96
+ function getUserPYPositionsByPYs(address user, address[] calldata pys)
97
+ external
98
+ view
99
+ returns (UserPYInfo[] memory userPYPositions)
100
+ {
101
+ userPYPositions = new UserPYInfo[](pys.length);
102
+ for (uint256 i = 0; i < pys.length; ++i) {
103
+ userPYPositions[i] = getUserPYInfo(pys[i], user);
104
+ }
105
+ }
106
+
107
+ function getUserMarketPositions(address user, address[] calldata markets)
108
+ external
109
+ view
110
+ returns (UserMarketInfo[] memory userMarketPositions)
111
+ {
112
+ userMarketPositions = new UserMarketInfo[](markets.length);
113
+ for (uint256 i = 0; i < markets.length; ++i) {
114
+ userMarketPositions[i] = getUserMarketInfo(markets[i], user);
115
+ }
116
+ }
117
+
118
+ function getUserSCYInfo(address scy, address user)
119
+ external
120
+ view
121
+ returns (uint256 balance, TokenAmount[] memory rewards)
122
+ {
123
+ ISuperComposableYield SCY = ISuperComposableYield(scy);
124
+ balance = SCY.balanceOf(scy);
125
+ address[] memory rewardTokens = SCY.getRewardTokens();
126
+ rewards = new TokenAmount[](rewardTokens.length);
127
+ for (uint256 i = 0; i < rewardTokens.length; ++i) {
128
+ address rewardToken = rewardTokens[i];
129
+ rewards[i].token = rewardToken;
130
+ (, rewards[i].amount) = IRewardManager(scy).userReward(rewardToken, user);
131
+ }
132
+ }
133
+
134
+ // ============= MARKET ACTIONS =============
135
+
28
136
  function addLiquidityStatic(
29
137
  address market,
30
138
  uint256 scyDesired,
31
139
  uint256 ptDesired
32
140
  )
33
141
  external
142
+ view
34
143
  returns (
35
144
  uint256 netLpOut,
36
145
  uint256 scyUsed,
@@ -57,6 +166,7 @@ contract RouterStatic is IPRouterStatic {
57
166
 
58
167
  function swapPtForScyStatic(address market, uint256 exactPtIn)
59
168
  external
169
+ view
60
170
  returns (uint256 netScyOut, uint256 netScyFee)
61
171
  {
62
172
  MarketState memory state = IPMarket(market).readState(false);
@@ -69,6 +179,7 @@ contract RouterStatic is IPRouterStatic {
69
179
 
70
180
  function swapScyForPtStatic(address market, uint256 exactPtOut)
71
181
  external
182
+ view
72
183
  returns (uint256 netScyIn, uint256 netScyFee)
73
184
  {
74
185
  MarketState memory state = IPMarket(market).readState(false);
@@ -79,12 +190,24 @@ contract RouterStatic is IPRouterStatic {
79
190
  );
80
191
  }
81
192
 
82
- function scyIndex(address market) public returns (SCYIndex index) {
193
+ // ============= OTHER HELPERS =============
194
+
195
+ function scyIndex(address market) public view returns (SCYIndex index) {
83
196
  (ISuperComposableYield SCY, , ) = IPMarket(market).readTokens();
84
197
 
85
198
  return SCYIndexLib.newIndex(SCY);
86
199
  }
87
200
 
201
+ function getPY(address py) public view returns (address pt, address yt) {
202
+ if (yieldContractFactory.isYT(py)) {
203
+ pt = IPYieldToken(py).PT();
204
+ yt = py;
205
+ } else {
206
+ pt = py;
207
+ yt = IPPrincipalToken(py).YT();
208
+ }
209
+ }
210
+
88
211
  function getPtImpliedYield(address market) public view returns (int256) {
89
212
  MarketState memory state = IPMarket(market).readState(false);
90
213
 
@@ -92,20 +215,6 @@ contract RouterStatic is IPRouterStatic {
92
215
  return lnImpliedRate.exp();
93
216
  }
94
217
 
95
- function getPendleTokenType(address token)
96
- external
97
- view
98
- returns (
99
- bool isPT,
100
- bool isYT,
101
- bool isMarket
102
- )
103
- {
104
- if (yieldContractFactory.isPT(token)) isPT = true;
105
- else if (yieldContractFactory.isYT(token)) isYT = true;
106
- else if (marketFactory.isValidMarket(token)) isMarket = true;
107
- }
108
-
109
218
  function getUserPYInfo(address py, address user)
110
219
  public
111
220
  view
@@ -135,119 +244,39 @@ contract RouterStatic is IPRouterStatic {
135
244
  }
136
245
  }
137
246
 
138
- function getPYInfo(address py)
139
- external
140
- returns (
141
- uint256 exchangeRate,
142
- uint256 totalSupply,
143
- RewardIndex[] memory rewardIndexes
144
- )
145
- {
146
- (address yt, ) = getPY(py);
147
- IPYieldToken YT = IPYieldToken(yt);
148
- exchangeRate = YT.getScyIndex();
149
- totalSupply = YT.totalSupply();
150
- address[] memory rewardTokens = YT.getRewardTokens();
151
- rewardIndexes = new RewardIndex[](rewardTokens.length);
152
-
153
- uint256[] memory indexes = YT.rewardIndexesCurrent();
154
- for (uint256 i = 0; i < rewardTokens.length; ++i) {
155
- address rewardToken = rewardTokens[i];
156
- rewardIndexes[i].rewardToken = rewardToken;
157
- rewardIndexes[i].index = indexes[i];
158
- }
159
- }
160
-
161
- function getPY(address py) public view returns (address pt, address yt) {
162
- if (yieldContractFactory.isYT(py)) {
163
- yt = py;
164
- pt = IPYieldToken(py).PT();
165
- } else {
166
- yt = IPPrincipalToken(py).YT();
167
- pt = py;
168
- }
169
- }
170
-
171
- function getMarketInfo(address market)
172
- external
173
- view
174
- returns (
175
- address pt,
176
- address scy,
177
- MarketState memory state,
178
- int256 impliedYield,
179
- uint256 exchangeRate
180
- )
181
- {
182
- IPMarket _market = IPMarket(market);
183
- (ISuperComposableYield SCY, IPPrincipalToken PT, ) = IPMarket(market).readTokens();
184
-
185
- pt = address(PT);
186
- scy = address(SCY);
187
- state = _market.readState(true);
188
- impliedYield = getPtImpliedYield(market);
189
- exchangeRate = 0; // TODO: get the actual exchange rate
190
- }
191
-
192
247
  function getUserMarketInfo(address market, address user)
193
248
  public
194
249
  view
195
250
  returns (UserMarketInfo memory userMarketInfo)
196
251
  {
197
252
  IPMarket _market = IPMarket(market);
253
+ uint256 userLp = _market.balanceOf(user);
254
+
198
255
  userMarketInfo.market = market;
199
- userMarketInfo.lpBalance = _market.balanceOf(user);
200
- // TODO: Is there a way to convert LP to PT and SCY?
201
- (ISuperComposableYield SCY, IPPrincipalToken PT, ) = IPMarket(market).readTokens();
256
+ userMarketInfo.lpBalance = userLp;
202
257
 
203
- userMarketInfo.ptBalance = TokenAmount(address(PT), 0);
204
- userMarketInfo.scyBalance = TokenAmount(address(SCY), 0);
205
- // TODO: Get this from SCY once it is in the interface
206
- userMarketInfo.assetBalance = TokenAmount(address(0), 0);
207
- }
258
+ MarketState memory state = _market.readState(true);
259
+ uint256 totalLp = uint256(state.totalLp);
260
+ uint256 userPt = (userLp * uint256(state.totalPt)) / totalLp;
261
+ uint256 userScy = (userLp * uint256(state.totalScy)) / totalLp;
208
262
 
209
- function getUserPYPositionsByPYs(address user, address[] calldata pys)
210
- external
211
- view
212
- returns (UserPYInfo[] memory userPYPositions)
213
- {
214
- userPYPositions = new UserPYInfo[](pys.length);
215
- for (uint256 i = 0; i < pys.length; ++i) {
216
- userPYPositions[i] = getUserPYInfo(pys[i], user);
217
- }
263
+ (ISuperComposableYield SCY, IPPrincipalToken PT, ) = _market.readTokens();
264
+ userMarketInfo.ptBalance = TokenAmount(address(PT), userPt);
265
+ userMarketInfo.scyBalance = TokenAmount(address(SCY), userScy);
266
+ (userMarketInfo.assetBalance.assetType, userMarketInfo.assetBalance.assetAddress, ) = SCY
267
+ .assetInfo();
268
+ userMarketInfo.assetBalance.amount = (userScy * SCY.exchangeRate()) / Math.ONE;
218
269
  }
219
270
 
220
- function getUserMarketPositions(address user, address[] calldata markets)
221
- external
222
- view
223
- returns (UserMarketInfo[] memory userMarketPositions)
224
- {
225
- userMarketPositions = new UserMarketInfo[](markets.length);
226
- for (uint256 i = 0; i < markets.length; ++i) {
227
- userMarketPositions[i] = getUserMarketInfo(markets[i], user);
228
- }
229
- }
230
-
231
- function hasPYPosition(UserPYInfo memory userPYInfo) public pure returns (bool hasPosition) {
271
+ function hasPYPosition(UserPYInfo calldata userPYInfo) public pure returns (bool hasPosition) {
232
272
  hasPosition = (userPYInfo.ytBalance > 0 ||
233
273
  userPYInfo.ptBalance > 0 ||
234
274
  userPYInfo.unclaimedInterest.amount > 0 ||
235
275
  userPYInfo.unclaimedRewards.length > 0);
236
276
  }
237
277
 
238
- function getUserSCYInfo(address scy, address user)
239
- external
240
- view
241
- returns (uint256 balance, TokenAmount[] memory rewards)
242
- {
243
- ISuperComposableYield SCY = ISuperComposableYield(scy);
244
- balance = SCY.balanceOf(scy);
245
- address[] memory rewardTokens = SCY.getRewardTokens();
246
- rewards = new TokenAmount[](rewardTokens.length);
247
- for (uint256 i = 0; i < rewardTokens.length; ++i) {
248
- address rewardToken = rewardTokens[i];
249
- rewards[i].token = rewardToken;
250
- (, rewards[i].amount) = IRewardManager(scy).userReward(rewardToken, user);
251
- }
252
- }
278
+ // ============= UPGRADES =============
279
+
280
+ // solhint-disable-next-line no-empty-blocks
281
+ function _authorizeUpgrade(address newImplementation) internal override onlyOwner {}
253
282
  }
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.13;
2
+ pragma solidity 0.8.15;
3
3
 
4
4
  contract PendleGovernanceManager {
5
5
  address public governance;
@@ -1,12 +1,18 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.13;
2
+ pragma solidity 0.8.15;
3
3
 
4
4
  import "../interfaces/IPGovernanceManager.sol";
5
5
  import "../interfaces/IPPermissionsV2Upg.sol";
6
6
 
7
+ /// This contract is upgradable because
8
+ /// - its constructor only sets immutable variables
9
+ /// - it has storage gaps for safe addition of future variables
10
+ /// - it inherits only upgradable contract
7
11
  abstract contract PermissionsV2Upg is IPermissionsV2Upg {
8
12
  address public immutable governanceManager;
9
13
 
14
+ uint256[100] private __gap;
15
+
10
16
  modifier onlyGovernance() {
11
17
  require(msg.sender == _governance(), "ONLY_GOVERNANCE");
12
18
  _;
@@ -0,0 +1,6 @@
1
+ {
2
+ "USDC": "0x2018ecc38fbca2ce3A62f96f9F0D38F0DEE2f99D",
3
+ "QI": "0x5954237dFE8748fb3CD9fE3dBb2e440c4F0FbD40",
4
+ "qiUSDC": "0x8d4A91A0c51B6D2C0F833ef5BfA283F2aFC42bfB",
5
+ "fundKeeper": "0xeB259AAF297Bd149dB0d32b2d9666De17b3b8801"
6
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "deployer": "0x1FcCC097db89A86Bfc474A1028F93958295b1Fb7",
3
+ "network": 43113,
4
+ "celerBus": "0xE9533976C590200E32d95C53f06AE12d292cFc47",
5
+ "treasury": "0x8c73eEef8A74223717c129e6F18Df27508dbCb23",
6
+ "governanceManager": "0xe8d12F4e6933107C797E369Dd577bfca9f412758",
7
+ "PENDLE": "0xd6403Ff542290C38EE4fCFf48552FA85fbe8539B",
8
+ "yieldContractFactory": "0x0EA46a4C257071352b57E9F6d054fC137F6E14b9",
9
+ "marketFactory": "0x9e7be80205815111617B9578157e130ECd9757e4",
10
+ "router": "0xb359F0A97Ca269Ae5574dc75be48b0e81eFD1dA2",
11
+ "routerStatic": "0x860D23ADA1652CEEE1e3c77210CCE068bB4BD4e1",
12
+ "startTime": 1656547200,
13
+ "vePendle": "0x5CA98fBE317f0165499E886286A2737FE5A913E7",
14
+ "votingController": "0xcb0d3d9147845C7F2B77DCFBE4dB8114d928DC93",
15
+ "gaugeController": "0x38F5320795CE3BeD55b87decca0A60e52f65c522"
16
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "SCY": "0xb597dE4e247945A4D0e577ef65a32Bd4E459C3A7",
3
+ "expiry": 1672099200,
4
+ "PT": "0x43963e93a024f1131549C657116321a67e3004B8",
5
+ "YT": "0x8774E8D4A17f6DbDF93da23189df6026DD77aA34",
6
+ "market": "0x700E66aD6C98d04f7c426060211fd98f12E0F1b6"
7
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "USDC": "0x0059a72A5e545F6998AF038aBBB625FC702b1a97",
3
+ "QI": "0xC7565D2282198b4B50EC29dee7b942E2B9bbc203",
4
+ "qiUSDC": "0x439B4d66255eFf74e621FBacb00D7162b588Ff4b",
5
+ "fundKeeper": "0x67507f3E26E7e2Fd0A42c48FbC85069cCFCBD2FF"
6
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "deployer": "0x1FcCC097db89A86Bfc474A1028F93958295b1Fb7",
3
+ "network": 80001,
4
+ "celerBus": "0x7d43AABC515C356145049227CeE54B608342c0ad",
5
+ "treasury": "0x3865D8a1Bd6D281f6c77d4e233d26Cd56380EF45",
6
+ "governanceManager": "0xFC7eC014280A98850F4167aF47c0272f0E7490A5",
7
+ "PENDLE": "0x53F435CEC95c597d905f0903a13F4dAbEA8491dB",
8
+ "yieldContractFactory": "0x4e5De6339FC7Ef63c176f9A7e7a8B2aC21744B8D",
9
+ "marketFactory": "0xCAd502Bb55d1A3F79952F969BFF3f011CF30a94a",
10
+ "router": "0xA972fB7828f0bff8a22f7f8C63b17cfB971BFC0a",
11
+ "routerStatic": "0x9a8Ff151BDA518ece44Cb1125F368F4C893D63b7",
12
+ "startTime": 1656547200,
13
+ "vePendle": "0x69A23F16974024A1b6A5362ac2A11BFeEEFd5827",
14
+ "gaugeController": "0x847da006F940833bB44709CBa241c99e3c531F38"
15
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "SCY": "0x0fE14FEB320a8DFF7b2Ee47E6BBedF309eF4B0C8",
3
+ "expiry": 1672099200,
4
+ "PT": "0x10AfeBB063A3c1A4e8A1E9274c4c9EbDDC574f0a",
5
+ "YT": "0x52a59B51eb72E6c2e0F3FE4C2940123671a60DA5",
6
+ "market": "0x0c37E7E799c9A41008b3d246B86F944992660dD5"
7
+ }
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.7.0",
5
+ "version": "0.7.1-beta-2",
6
6
  "homepage": "https://pendle.finance",
7
7
  "keywords": [
8
8
  "pendle",
@@ -29,7 +29,7 @@
29
29
  "hardhat-contract-sizer": "^2.5.1",
30
30
  "prettier": "^2.6.2",
31
31
  "prettier-plugin-solidity": "^1.0.0-beta.19",
32
- "solc": "^0.8.13",
32
+ "solc": "^0.8.15",
33
33
  "solhint": "^3.3.7",
34
34
  "ts-node": "^10.7.0",
35
35
  "typechain": "^8.0.0",
@@ -23,8 +23,8 @@ import type {
23
23
  OnEvent,
24
24
  } from "./common";
25
25
 
26
- export interface CelerReceiverInterface extends utils.Interface {
27
- contractName: "CelerReceiver";
26
+ export interface CelerReceiverUpgInterface extends utils.Interface {
27
+ contractName: "CelerReceiverUpg";
28
28
  functions: {
29
29
  "celerMessageBus()": FunctionFragment;
30
30
  "executeMessage(address,uint64,bytes,address)": FunctionFragment;
@@ -93,13 +93,13 @@ export interface CelerReceiverInterface extends utils.Interface {
93
93
  events: {};
94
94
  }
95
95
 
96
- export interface CelerReceiver extends BaseContract {
97
- contractName: "CelerReceiver";
96
+ export interface CelerReceiverUpg extends BaseContract {
97
+ contractName: "CelerReceiverUpg";
98
98
  connect(signerOrProvider: Signer | Provider | string): this;
99
99
  attach(addressOrName: string): this;
100
100
  deployed(): Promise<this>;
101
101
 
102
- interface: CelerReceiverInterface;
102
+ interface: CelerReceiverUpgInterface;
103
103
 
104
104
  queryFilter<TEvent extends TypedEvent>(
105
105
  event: TypedEventFilter<TEvent>,
@@ -23,10 +23,11 @@ import type {
23
23
  OnEvent,
24
24
  } from "./common";
25
25
 
26
- export interface CelerSenderInterface extends utils.Interface {
27
- contractName: "CelerSender";
26
+ export interface CelerSenderUpgInterface extends utils.Interface {
27
+ contractName: "CelerSenderUpg";
28
28
  functions: {
29
29
  "addSidechainContract(address,uint256)": FunctionFragment;
30
+ "celerMessageBus()": FunctionFragment;
30
31
  "getAllSidechainContracts()": FunctionFragment;
31
32
  "governanceManager()": FunctionFragment;
32
33
  "setCelerMessageBus(address)": FunctionFragment;
@@ -36,6 +37,10 @@ export interface CelerSenderInterface extends utils.Interface {
36
37
  functionFragment: "addSidechainContract",
37
38
  values: [string, BigNumberish]
38
39
  ): string;
40
+ encodeFunctionData(
41
+ functionFragment: "celerMessageBus",
42
+ values?: undefined
43
+ ): string;
39
44
  encodeFunctionData(
40
45
  functionFragment: "getAllSidechainContracts",
41
46
  values?: undefined
@@ -53,6 +58,10 @@ export interface CelerSenderInterface extends utils.Interface {
53
58
  functionFragment: "addSidechainContract",
54
59
  data: BytesLike
55
60
  ): Result;
61
+ decodeFunctionResult(
62
+ functionFragment: "celerMessageBus",
63
+ data: BytesLike
64
+ ): Result;
56
65
  decodeFunctionResult(
57
66
  functionFragment: "getAllSidechainContracts",
58
67
  data: BytesLike
@@ -69,13 +78,13 @@ export interface CelerSenderInterface extends utils.Interface {
69
78
  events: {};
70
79
  }
71
80
 
72
- export interface CelerSender extends BaseContract {
73
- contractName: "CelerSender";
81
+ export interface CelerSenderUpg extends BaseContract {
82
+ contractName: "CelerSenderUpg";
74
83
  connect(signerOrProvider: Signer | Provider | string): this;
75
84
  attach(addressOrName: string): this;
76
85
  deployed(): Promise<this>;
77
86
 
78
- interface: CelerSenderInterface;
87
+ interface: CelerSenderUpgInterface;
79
88
 
80
89
  queryFilter<TEvent extends TypedEvent>(
81
90
  event: TypedEventFilter<TEvent>,
@@ -103,6 +112,8 @@ export interface CelerSender extends BaseContract {
103
112
  overrides?: PayableOverrides & { from?: string | Promise<string> }
104
113
  ): Promise<ContractTransaction>;
105
114
 
115
+ celerMessageBus(overrides?: CallOverrides): Promise<[string]>;
116
+
106
117
  getAllSidechainContracts(
107
118
  overrides?: CallOverrides
108
119
  ): Promise<
@@ -123,6 +134,8 @@ export interface CelerSender extends BaseContract {
123
134
  overrides?: PayableOverrides & { from?: string | Promise<string> }
124
135
  ): Promise<ContractTransaction>;
125
136
 
137
+ celerMessageBus(overrides?: CallOverrides): Promise<string>;
138
+
126
139
  getAllSidechainContracts(
127
140
  overrides?: CallOverrides
128
141
  ): Promise<
@@ -143,6 +156,8 @@ export interface CelerSender extends BaseContract {
143
156
  overrides?: CallOverrides
144
157
  ): Promise<void>;
145
158
 
159
+ celerMessageBus(overrides?: CallOverrides): Promise<string>;
160
+
146
161
  getAllSidechainContracts(
147
162
  overrides?: CallOverrides
148
163
  ): Promise<
@@ -166,6 +181,8 @@ export interface CelerSender extends BaseContract {
166
181
  overrides?: PayableOverrides & { from?: string | Promise<string> }
167
182
  ): Promise<BigNumber>;
168
183
 
184
+ celerMessageBus(overrides?: CallOverrides): Promise<BigNumber>;
185
+
169
186
  getAllSidechainContracts(overrides?: CallOverrides): Promise<BigNumber>;
170
187
 
171
188
  governanceManager(overrides?: CallOverrides): Promise<BigNumber>;
@@ -183,6 +200,8 @@ export interface CelerSender extends BaseContract {
183
200
  overrides?: PayableOverrides & { from?: string | Promise<string> }
184
201
  ): Promise<PopulatedTransaction>;
185
202
 
203
+ celerMessageBus(overrides?: CallOverrides): Promise<PopulatedTransaction>;
204
+
186
205
  getAllSidechainContracts(
187
206
  overrides?: CallOverrides
188
207
  ): Promise<PopulatedTransaction>;