@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,6 +1,7 @@
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
+ import "./ISuperComposableYield.sol";
4
5
  import "../libraries/math/MarketMathCore.sol";
5
6
 
6
7
  interface IPRouterStatic {
@@ -9,6 +10,12 @@ interface IPRouterStatic {
9
10
  uint256 amount;
10
11
  }
11
12
 
13
+ struct AssetAmount {
14
+ ISuperComposableYield.AssetType assetType;
15
+ address assetAddress;
16
+ uint256 amount;
17
+ }
18
+
12
19
  struct RewardIndex {
13
20
  address rewardToken;
14
21
  uint256 index;
@@ -28,15 +35,64 @@ interface IPRouterStatic {
28
35
  uint256 lpBalance;
29
36
  TokenAmount ptBalance;
30
37
  TokenAmount scyBalance;
31
- TokenAmount assetBalance;
38
+ AssetAmount assetBalance;
32
39
  }
33
40
 
41
+ // ============= SYSTEM INFO =============
42
+
43
+ function getPYInfo(address py)
44
+ external
45
+ returns (
46
+ uint256 exchangeRate,
47
+ uint256 totalSupply,
48
+ RewardIndex[] memory rewardIndexes
49
+ );
50
+
51
+ function getPendleTokenType(address token)
52
+ external
53
+ view
54
+ returns (
55
+ bool isPT,
56
+ bool isYT,
57
+ bool isMarket
58
+ );
59
+
60
+ function getMarketInfo(address market)
61
+ external
62
+ view
63
+ returns (
64
+ address pt,
65
+ address scy,
66
+ MarketState memory state,
67
+ int256 impliedYield
68
+ );
69
+
70
+ // ============= USER INFO =============
71
+
72
+ function getUserPYPositionsByPYs(address user, address[] calldata pys)
73
+ external
74
+ view
75
+ returns (UserPYInfo[] memory userPYPositions);
76
+
77
+ function getUserMarketPositions(address user, address[] calldata markets)
78
+ external
79
+ view
80
+ returns (UserMarketInfo[] memory userMarketPositions);
81
+
82
+ function getUserSCYInfo(address scy, address user)
83
+ external
84
+ view
85
+ returns (uint256 balance, TokenAmount[] memory rewards);
86
+
87
+ // ============= MARKET ACTIONS =============
88
+
34
89
  function addLiquidityStatic(
35
90
  address market,
36
91
  uint256 scyDesired,
37
92
  uint256 ptDesired
38
93
  )
39
94
  external
95
+ view
40
96
  returns (
41
97
  uint256 netLpOut,
42
98
  uint256 scyUsed,
@@ -50,70 +106,34 @@ interface IPRouterStatic {
50
106
 
51
107
  function swapPtForScyStatic(address market, uint256 exactPtIn)
52
108
  external
109
+ view
53
110
  returns (uint256 netScyOut, uint256 netScyFee);
54
111
 
55
112
  function swapScyForPtStatic(address market, uint256 exactPtOut)
56
113
  external
114
+ view
57
115
  returns (uint256 netScyIn, uint256 netScyFee);
58
116
 
59
- function scyIndex(address market) external returns (SCYIndex index);
117
+ // ============= OTHER HELPERS =============
60
118
 
61
- function getPtImpliedYield(address market) external view returns (int256);
119
+ function scyIndex(address market) external view returns (SCYIndex index);
62
120
 
63
- function getPendleTokenType(address token)
64
- external
65
- view
66
- returns (
67
- bool isPT,
68
- bool isYT,
69
- bool isMarket
70
- );
121
+ function getPY(address py) external view returns (address pt, address yt);
122
+
123
+ function getPtImpliedYield(address market) external view returns (int256);
71
124
 
72
125
  function getUserPYInfo(address py, address user)
73
126
  external
74
127
  view
75
128
  returns (UserPYInfo memory userPYInfo);
76
129
 
77
- function getPYInfo(address py)
78
- external
79
- returns (
80
- uint256 exchangeRate,
81
- uint256 totalSupply,
82
- RewardIndex[] memory rewardIndexes
83
- );
84
-
85
- function getPY(address py) external view returns (address yt, address pt);
86
-
87
- function getMarketInfo(address market)
88
- external
89
- view
90
- returns (
91
- address pt,
92
- address scy,
93
- MarketState memory state,
94
- int256 impliedYield,
95
- uint256 exchangeRate
96
- );
97
-
98
130
  function getUserMarketInfo(address market, address user)
99
131
  external
100
132
  view
101
133
  returns (UserMarketInfo memory userMarketInfo);
102
134
 
103
- function getUserPYPositionsByPYs(address user, address[] calldata pys)
135
+ function hasPYPosition(UserPYInfo calldata userPYInfo)
104
136
  external
105
- view
106
- returns (UserPYInfo[] memory userPYPositions);
107
-
108
- function getUserMarketPositions(address user, address[] calldata markets)
109
- external
110
- view
111
- returns (UserMarketInfo[] memory userMarketPositions);
112
-
113
- function hasPYPosition(UserPYInfo memory userPYInfo) external pure returns (bool hasPosition);
114
-
115
- function getUserSCYInfo(address scy, address user)
116
- external
117
- view
118
- returns (uint256 balance, TokenAmount[] memory rewards);
137
+ pure
138
+ returns (bool hasPosition);
119
139
  }
@@ -1,6 +1,6 @@
1
1
  // SPDX-License-Identifier: MIT
2
2
 
3
- pragma solidity 0.8.13;
3
+ pragma solidity 0.8.15;
4
4
 
5
5
  interface IPVeToken {
6
6
  // ============= USER INFO =============
@@ -1,4 +1,4 @@
1
- pragma solidity 0.8.13;
1
+ pragma solidity 0.8.15;
2
2
 
3
3
  import "../libraries/VeBalanceLib.sol";
4
4
 
@@ -1,6 +1,6 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
 
3
- pragma solidity 0.8.13;
3
+ pragma solidity 0.8.15;
4
4
 
5
5
  import "./IPVeToken.sol";
6
6
  import "../libraries/VeBalanceLib.sol";
@@ -21,7 +21,7 @@
21
21
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
22
  */
23
23
 
24
- pragma solidity 0.8.13;
24
+ pragma solidity 0.8.15;
25
25
 
26
26
  interface IPYieldContractFactory {
27
27
  event CreateYieldContract(address indexed SCY, address PT, address YT, uint256 expiry);
@@ -1,10 +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
  import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
4
4
  import "./IRewardManager.sol";
5
5
  import "./IPInterestManagerYT.sol";
6
6
 
7
7
  interface IPYieldToken is IERC20Metadata, IRewardManager, IPInterestManagerYT {
8
+ event Mint(
9
+ address indexed caller,
10
+ address indexed receiverPT,
11
+ address indexed receiverYT,
12
+ uint256 amount
13
+ );
14
+ event Redeem(address indexed caller, address indexed receiver, uint256 amount);
15
+
8
16
  event RedeemRewards(address indexed user, uint256[] amountRewardsOut);
9
17
  event RedeemInterest(address indexed user, uint256 interestOut);
10
18
 
@@ -14,9 +22,9 @@ interface IPYieldToken is IERC20Metadata, IRewardManager, IPInterestManagerYT {
14
22
 
15
23
  function redeemPY(address receiver) external returns (uint256 amountScyOut);
16
24
 
17
- function redeemPY(address[] memory receivers, uint256[] memory amounts)
25
+ function redeemPY(address[] memory receivers, uint256[] memory maxAmountScyOuts)
18
26
  external
19
- returns (uint256 amountScyOut);
27
+ returns (uint256 totalAmountScyOut);
20
28
 
21
29
  function redeemDueInterestAndRewards(address user)
22
30
  external
@@ -28,7 +36,9 @@ interface IPYieldToken is IERC20Metadata, IRewardManager, IPInterestManagerYT {
28
36
 
29
37
  function rewardIndexesCurrent() external returns (uint256[] memory);
30
38
 
31
- function getScyIndex() external view returns (uint256 currentIndex);
39
+ function scyIndexCurrent() external returns (uint256);
40
+
41
+ function scyIndexStored() external view returns (uint256);
32
42
 
33
43
  function getRewardTokens() external view returns (address[] memory);
34
44
 
@@ -21,7 +21,7 @@
21
21
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
22
  */
23
23
 
24
- pragma solidity 0.8.13;
24
+ pragma solidity 0.8.15;
25
25
  import "./IQiToken.sol";
26
26
 
27
27
  interface IQiAvax is IQiToken {
@@ -21,7 +21,7 @@
21
21
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
22
  */
23
23
 
24
- pragma solidity 0.8.13;
24
+ pragma solidity 0.8.15;
25
25
  import "./IQiToken.sol";
26
26
 
27
27
  interface IQiErc20 is IQiToken {
@@ -21,7 +21,7 @@
21
21
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
22
  */
23
23
 
24
- pragma solidity 0.8.13;
24
+ pragma solidity 0.8.15;
25
25
  import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
26
26
  import "./IBenQiInterestRateModel.sol";
27
27
 
@@ -20,7 +20,7 @@
20
20
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
21
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
22
  */
23
- pragma solidity 0.8.13;
23
+ pragma solidity 0.8.15;
24
24
 
25
25
  interface IREDACTEDStaking {
26
26
  function stake(uint256 _amount, address _receiver) external returns (bool);
@@ -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
  interface IRewardManager {
5
5
  function userReward(address token, address user)
@@ -21,7 +21,7 @@
21
21
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
22
  */
23
23
 
24
- pragma solidity 0.8.13;
24
+ pragma solidity 0.8.15;
25
25
  import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
26
26
 
27
27
  interface ISuperComposableYield is IERC20Metadata {
@@ -20,7 +20,7 @@
20
20
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
21
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
22
  */
23
- pragma solidity 0.8.13;
23
+ pragma solidity 0.8.15;
24
24
 
25
25
  import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
26
26
 
@@ -20,7 +20,7 @@
20
20
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
21
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
22
  */
23
- pragma solidity 0.8.13;
23
+ pragma solidity 0.8.15;
24
24
 
25
25
  interface IWXBTRFLY {
26
26
  function wrapFromBTRFLY(uint256 _amount) external returns (uint256);
@@ -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
  interface IWstETH {
5
5
  function wrap(uint256 _stETHAmount) external returns (uint256);
@@ -21,7 +21,7 @@
21
21
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
22
  */
23
23
 
24
- pragma solidity 0.8.13;
24
+ pragma solidity 0.8.15;
25
25
 
26
26
  interface IYearnVault {
27
27
  function deposit(uint256 amount) external returns (uint256);
@@ -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
  import "../interfaces/IRewardManager.sol";
4
4
  import "./RewardManagerAbstract.sol";
5
5
  import "./math/Math.sol";
@@ -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
  import "../interfaces/IRewardManager.sol";
4
4
  import "./helpers/TokenHelper.sol";
5
5
  import "./math/Math.sol";
@@ -47,7 +47,11 @@ abstract contract RewardManagerAbstract is IRewardManager, TokenHelper {
47
47
  uint256 index = indexes[i];
48
48
  uint256 userIndex = userReward[token][user].index;
49
49
 
50
- if (userIndex == 0) userIndex = index;
50
+ if (userIndex == 0) {
51
+ userReward[token][user].index = index.Uint128();
52
+ continue;
53
+ }
54
+
51
55
  if (userIndex == index) continue;
52
56
 
53
57
  uint256 deltaIndex = index - userIndex;
@@ -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
  import "../../interfaces/ISuperComposableYield.sol";
4
4
  import "./SCYUtils.sol";
5
5
  import "../math/Math.sol";
@@ -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
  library SCYUtils {
5
5
  uint256 internal constant ONE = 1e18;
@@ -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
  struct VeBalance {
5
5
  uint128 bias;
@@ -11,11 +11,6 @@ struct LockedPosition {
11
11
  uint128 expiry;
12
12
  }
13
13
 
14
- struct Checkpoint {
15
- VeBalance balance;
16
- uint128 timestamp;
17
- }
18
-
19
14
  library VeBalanceLib {
20
15
  uint128 internal constant MAX_LOCK_TIME = 104 weeks;
21
16
 
@@ -64,35 +59,6 @@ library VeBalanceLib {
64
59
  return a.bias / a.slope;
65
60
  }
66
61
 
67
- function getCheckpointValueAt(Checkpoint[] storage checkpoints, uint128 timestamp)
68
- internal
69
- view
70
- returns (uint128)
71
- {
72
- if (checkpoints.length == 0 || checkpoints[0].timestamp > timestamp) {
73
- return 0;
74
- }
75
-
76
- uint256 left = 0;
77
- uint256 right = checkpoints.length;
78
-
79
- while (left < right) {
80
- uint256 mid = (left + right) / 2;
81
- if (checkpoints[mid].timestamp <= timestamp) {
82
- left = mid;
83
- } else {
84
- right = mid - 1;
85
- }
86
- }
87
-
88
- VeBalance memory bal = checkpoints[left].balance;
89
- if (getExpiry(bal) <= timestamp) {
90
- return 0;
91
- } else {
92
- return getValueAt(bal, timestamp);
93
- }
94
- }
95
-
96
62
  function convertToVeBalance(LockedPosition memory position)
97
63
  internal
98
64
  pure
@@ -0,0 +1,60 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // Forked from OpenZeppelin (v4.5.0) (utils/Checkpoints.sol)
3
+ pragma solidity ^0.8.0;
4
+
5
+ import "./math/Math.sol";
6
+ import "./VeBalanceLib.sol";
7
+
8
+ library Checkpoints {
9
+ struct Checkpoint {
10
+ uint32 _timestamp;
11
+ VeBalance _value;
12
+ }
13
+
14
+ struct History {
15
+ Checkpoint[] _checkpoints;
16
+ }
17
+
18
+ /**
19
+ * @dev Returns the value at a given block number. If a checkpoint is not available at that block, the closest one
20
+ * before it is returned, or zero otherwise.
21
+ */
22
+ function getAtTimestamp(History storage self, uint256 timestamp)
23
+ internal
24
+ view
25
+ returns (uint128)
26
+ {
27
+ require(timestamp < block.timestamp, "Checkpoints: block not yet mined");
28
+
29
+ uint256 high = self._checkpoints.length;
30
+ uint256 low = 0;
31
+ while (low < high) {
32
+ uint256 mid = (low + high) / 2;
33
+ if (self._checkpoints[mid]._timestamp > timestamp) {
34
+ high = mid;
35
+ } else {
36
+ low = mid + 1;
37
+ }
38
+ }
39
+ return
40
+ high == 0
41
+ ? 0
42
+ : VeBalanceLib.getValueAt(self._checkpoints[high - 1]._value, uint128(timestamp));
43
+ }
44
+
45
+ /**
46
+ * @dev Pushes a value onto a History so that it is stored as the checkpoint for the current block.
47
+ *
48
+ * Returns previous value and new value.
49
+ */
50
+ function push(History storage self, VeBalance memory value) internal {
51
+ uint256 pos = self._checkpoints.length;
52
+ if (pos > 0 && self._checkpoints[pos - 1]._timestamp == block.timestamp) {
53
+ self._checkpoints[pos - 1]._value = value;
54
+ } else {
55
+ self._checkpoints.push(
56
+ Checkpoint({ _timestamp: uint32(block.timestamp), _value: value })
57
+ );
58
+ }
59
+ }
60
+ }
@@ -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
  library ExpiryUtils {
5
5
  struct Date {
@@ -1,4 +1,4 @@
1
- pragma solidity 0.8.13;
1
+ pragma solidity 0.8.15;
2
2
 
3
3
  library MiniHelpers {
4
4
  function isCurrentlyExpired(uint256 expiry) internal view returns (bool) {
@@ -0,0 +1,30 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.15;
3
+ import "../solmate/SSTORE2.sol";
4
+ import "@openzeppelin/contracts/utils/Create2.sol";
5
+
6
+ /// @dev save creation code of a contract onchain, and load it when necessary
7
+ library SSTORE2Deployer {
8
+ function setCreationCode(bytes memory newCreationCode) internal returns (address pointer) {
9
+ require(newCreationCode.length > 0, "zero length");
10
+ pointer = SSTORE2.write(newCreationCode);
11
+ }
12
+
13
+ function create2(
14
+ address creationCodePointer,
15
+ bytes32 salt,
16
+ bytes memory args
17
+ ) internal returns (address) {
18
+ return create2(SSTORE2.read(creationCodePointer), salt, args);
19
+ }
20
+
21
+ // call create2 directly by the provided creationCode
22
+ function create2(
23
+ bytes memory creationCode,
24
+ bytes32 salt,
25
+ bytes memory args
26
+ ) internal returns (address) {
27
+ bytes memory finalCreationCode = abi.encodePacked(creationCode, args);
28
+ return Create2.deploy(0, salt, finalCreationCode);
29
+ }
30
+ }
@@ -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
  import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
4
4
  import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
5
5
 
@@ -12,7 +12,7 @@
12
12
  // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
13
13
  // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
14
14
 
15
- pragma solidity 0.8.13;
15
+ pragma solidity 0.8.15;
16
16
 
17
17
  /* solhint-disable */
18
18
 
@@ -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 "./Math.sol";
5
5
  import "./MarketMathCore.sol";
@@ -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 "./Math.sol";
5
5
  import "./LogExpMath.sol";
@@ -12,7 +12,7 @@
12
12
  // You should have received a copy of the GNU General Public License
13
13
  // along with this program. If not, see <http://www.gnu.org/licenses/>.
14
14
 
15
- pragma solidity 0.8.13;
15
+ pragma solidity 0.8.15;
16
16
 
17
17
  /* solhint-disable private-vars-leading-underscore, reason-string */
18
18
 
@@ -1,6 +1,6 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
 
3
- pragma solidity 0.8.13;
3
+ pragma solidity 0.8.15;
4
4
 
5
5
  library WeekMath {
6
6
  uint128 internal constant WEEK = 7 days;
@@ -1,6 +1,6 @@
1
1
  // SPDX-License-Identifier: GPL-3.0
2
2
 
3
- pragma solidity 0.8.13;
3
+ pragma solidity 0.8.15;
4
4
 
5
5
  import "../../interfaces/IJoePair.sol";
6
6
 
@@ -21,7 +21,7 @@
21
21
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
22
  */
23
23
 
24
- pragma solidity 0.8.13;
24
+ pragma solidity 0.8.15;
25
25
  import "../../interfaces/IJoeRouter01.sol";
26
26
  import "./JoeLibrary.sol";
27
27
  import "@openzeppelin/contracts/token/ERC20/IERC20.sol";