@pendle/core-v2 0.6.8 → 0.7.0

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 (519) hide show
  1. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.dbg.json +4 -0
  2. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.json +751 -0
  3. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/WadRayMath.sol/WadRayMath.dbg.json +4 -0
  4. package/build/artifacts/contracts/{core/PendleSCYImpl → SuperComposableYield/SCY-implementations}/AaveV3/WadRayMath.sol/WadRayMath.json +3 -3
  5. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +4 -0
  6. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +27 -0
  7. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.dbg.json +4 -0
  8. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.json +761 -0
  9. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleBtrflySCY.sol/PendleBtrflyScy.dbg.json +4 -0
  10. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleBtrflySCY.sol/PendleBtrflyScy.json +635 -0
  11. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.dbg.json +4 -0
  12. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.json +609 -0
  13. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleJoeLpSCY.sol/PendleJoeLpSCY.dbg.json +4 -0
  14. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleJoeLpSCY.sol/PendleJoeLpSCY.json +653 -0
  15. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.dbg.json +4 -0
  16. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.json +622 -0
  17. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.dbg.json +4 -0
  18. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.json +622 -0
  19. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBase.sol/SCYBase.dbg.json +4 -0
  20. package/build/artifacts/contracts/SuperComposableYield/{ISuperComposableYield.sol/ISuperComposableYield.json → base-implementations/SCYBase.sol/SCYBase.json} +221 -141
  21. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +4 -0
  22. package/build/artifacts/contracts/SuperComposableYield/{implementations → base-implementations}/SCYBaseWithRewards.sol/SCYBaseWithRewards.json +247 -223
  23. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiver.sol/CelerReceiver.dbg.json +4 -0
  24. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiver.sol/CelerReceiver.json +128 -0
  25. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSender.sol/CelerSender.dbg.json +4 -0
  26. package/build/artifacts/contracts/{SuperComposableYield/implementations/IRewardManager.sol/IRewardManager.json → core/LiquidityMining/CelerAbstracts/CelerSender.sol/CelerSender.json} +29 -33
  27. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeController.sol/PendleGaugeController.dbg.json +4 -0
  28. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeController.sol/PendleGaugeController.json +193 -0
  29. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchain.sol/PendleGaugeControllerMainchain.dbg.json +4 -0
  30. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchain.sol/PendleGaugeControllerMainchain.json +255 -0
  31. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechain.sol/PendleGaugeControllerSidechain.dbg.json +4 -0
  32. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechain.sol/PendleGaugeControllerSidechain.json +318 -0
  33. package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.dbg.json +4 -0
  34. package/build/artifacts/contracts/{interfaces/IPVotingEscrow.sol/IVotingEscrowPendle.json → core/LiquidityMining/PendleGauge.sol/PendleGauge.json} +57 -65
  35. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingController.sol/PendleVotingController.dbg.json +4 -0
  36. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingController.sol/PendleVotingController.json +707 -0
  37. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorage.sol/VotingControllerStorage.dbg.json +4 -0
  38. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorage.sol/VotingControllerStorage.json +342 -0
  39. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +4 -0
  40. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +547 -0
  41. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +4 -0
  42. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +353 -0
  43. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowToken.sol/VotingEscrowToken.dbg.json +4 -0
  44. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowToken.sol/VotingEscrowToken.json +138 -0
  45. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +4 -0
  46. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +922 -0
  47. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +4 -0
  48. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +345 -0
  49. package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.dbg.json +4 -0
  50. package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.json +254 -0
  51. package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +4 -0
  52. package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.json +329 -0
  53. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.json +2 -20
  55. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +4 -0
  56. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +445 -0
  57. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +4 -0
  58. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +344 -0
  59. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +4 -0
  60. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +750 -0
  61. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.json +2 -2
  63. package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.dbg.json +1 -1
  64. package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.json +123 -77
  65. package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.dbg.json +1 -1
  66. package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.json +39 -42
  67. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPTBase.sol/ActionSCYAndPTBase.dbg.json +1 -1
  68. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPTBase.sol/ActionSCYAndPTBase.json +163 -1
  69. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.dbg.json +1 -1
  70. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.json +0 -13
  71. package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.dbg.json +1 -1
  72. package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.json +1 -14
  73. package/build/artifacts/contracts/core/actions/base/CallbackHelper.sol/CallbackHelper.dbg.json +4 -0
  74. package/build/artifacts/contracts/core/actions/base/CallbackHelper.sol/CallbackHelper.json +10 -0
  75. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
  76. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.json +39 -0
  77. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +1 -1
  78. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +1 -1
  79. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  80. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.json +13 -0
  81. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +4 -0
  82. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.json +74 -0
  83. package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.dbg.json +4 -0
  84. package/build/artifacts/contracts/interfaces/{IVePToken.sol/IVePToken.json → ICelerMessageBus.sol/ICelerMessageBus.json} +21 -11
  85. package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.dbg.json +4 -0
  86. package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.json +45 -0
  87. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +4 -0
  88. package/build/artifacts/contracts/{core/PendleBaseToken.sol/PendleBaseToken.json → interfaces/IERC4626.sol/IERC4626.json} +53 -68
  89. package/build/artifacts/contracts/interfaces/IJoePair.sol/IJoePair.dbg.json +1 -1
  90. package/build/artifacts/contracts/interfaces/IJoeRouter01.sol/IJoeRouter01.dbg.json +1 -1
  91. package/build/artifacts/contracts/interfaces/IJoeRouter02.sol/IJoeRouter02.dbg.json +4 -0
  92. package/build/artifacts/contracts/interfaces/IJoeRouter02.sol/IJoeRouter02.json +962 -0
  93. package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.dbg.json +1 -1
  94. package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.json +122 -58
  95. package/build/artifacts/contracts/interfaces/IPActionYT.sol/IPActionYT.dbg.json +1 -1
  96. package/build/artifacts/contracts/interfaces/IPActionYT.sol/IPActionYT.json +36 -21
  97. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  98. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +116 -81
  99. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +4 -0
  100. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.json +109 -0
  101. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +4 -0
  102. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.json +132 -0
  103. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +1 -1
  104. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  105. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.json +35 -54
  106. package/build/artifacts/contracts/interfaces/IPMarketAddRemoveCallback.sol/IPMarketAddRemoveCallback.dbg.json +1 -1
  107. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  108. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.json +31 -0
  109. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.dbg.json +1 -1
  111. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  112. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.json +5 -5
  113. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  114. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +4 -0
  115. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.json +99 -0
  116. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +4 -0
  117. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.json +167 -0
  118. package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.dbg.json +4 -0
  119. package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.json +148 -0
  120. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  121. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  122. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.json +85 -83
  123. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +4 -0
  124. package/build/artifacts/contracts/interfaces/{IPBaseToken.sol/IPBaseToken.json → IQiAvax.sol/IQiAvax.json} +106 -15
  125. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  126. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.json +117 -0
  127. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  128. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.json +117 -0
  129. package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.dbg.json +1 -1
  130. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +4 -0
  131. package/build/artifacts/contracts/{periphery/PendleJoeSwapHelperUpg.sol/PendleJoeSwapHelperUpg.json → interfaces/IRewardManager.sol/IRewardManager.json} +12 -14
  132. package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.dbg.json +4 -0
  133. package/build/artifacts/contracts/{SuperComposableYield/implementations/SCYBase.sol/SCYBase.json → interfaces/ISuperComposableYield.sol/ISuperComposableYield.json} +183 -181
  134. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  135. package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.dbg.json +1 -1
  136. package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.json +13 -0
  137. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  138. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.json +13 -0
  139. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +1 -1
  140. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.json +13 -0
  141. package/build/artifacts/contracts/libraries/RewardManager.sol/RewardManager.dbg.json +4 -0
  142. package/build/artifacts/contracts/{SuperComposableYield/implementations → libraries}/RewardManager.sol/RewardManager.json +44 -33
  143. package/build/artifacts/contracts/libraries/RewardManagerMini.sol/RewardManagerMini.dbg.json +4 -0
  144. package/build/artifacts/contracts/libraries/RewardManagerMini.sol/RewardManagerMini.json +101 -0
  145. package/build/artifacts/contracts/libraries/SCY/SCYIndex.sol/SCYIndexLib.dbg.json +4 -0
  146. package/build/artifacts/contracts/libraries/{SCYIndex.sol → SCY/SCYIndex.sol}/SCYIndexLib.json +3 -3
  147. package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.dbg.json +4 -0
  148. package/build/artifacts/contracts/{SuperComposableYield → libraries/SCY}/SCYUtils.sol/SCYUtils.json +3 -3
  149. package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +4 -0
  150. package/build/artifacts/contracts/libraries/{math/MarketMathAux.sol/MarketMathAux.json → VeBalanceLib.sol/VeBalanceLib.json} +4 -4
  151. package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.dbg.json +4 -0
  152. package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.json +10 -0
  153. package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  154. package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.json +2 -2
  155. package/build/artifacts/contracts/libraries/helpers/MiniDeployer.sol/MiniDeployer.dbg.json +4 -0
  156. package/build/artifacts/contracts/libraries/helpers/MiniDeployer.sol/MiniDeployer.json +10 -0
  157. package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.dbg.json +4 -0
  158. package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.json +10 -0
  159. package/build/artifacts/contracts/libraries/helpers/TokenHelper.sol/TokenHelper.dbg.json +4 -0
  160. package/build/artifacts/contracts/{core/actions/base/ActionType.sol/ActionType.json → libraries/helpers/TokenHelper.sol/TokenHelper.json} +2 -2
  161. package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  162. package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.json +2 -2
  163. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.dbg.json +1 -1
  164. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.json +2 -2
  165. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  166. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.json +2 -2
  167. package/build/artifacts/contracts/libraries/math/Math.sol/Math.dbg.json +1 -1
  168. package/build/artifacts/contracts/libraries/math/Math.sol/Math.json +2 -2
  169. package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.dbg.json +4 -0
  170. package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.json +10 -0
  171. package/build/artifacts/contracts/libraries/solmate/Bytes32AddressLib.sol/Bytes32AddressLib.dbg.json +4 -0
  172. package/build/artifacts/contracts/libraries/solmate/Bytes32AddressLib.sol/Bytes32AddressLib.json +10 -0
  173. package/build/artifacts/contracts/libraries/solmate/LibRLP.sol/LibRLP.dbg.json +4 -0
  174. package/build/artifacts/contracts/libraries/solmate/LibRLP.sol/LibRLP.json +10 -0
  175. package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.dbg.json +4 -0
  176. package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.json +10 -0
  177. package/build/artifacts/contracts/libraries/traderjoe/JoeLibrary.sol/JoeLibrary.dbg.json +4 -0
  178. package/build/artifacts/contracts/libraries/{JoeLibrary.sol → traderjoe/JoeLibrary.sol}/JoeLibrary.json +3 -3
  179. package/build/artifacts/contracts/libraries/traderjoe/PendleJoeSwapHelperUpg.sol/PendleJoeSwapHelperUpg.dbg.json +4 -0
  180. package/build/artifacts/contracts/libraries/traderjoe/PendleJoeSwapHelperUpg.sol/PendleJoeSwapHelperUpg.json +24 -0
  181. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +4 -0
  182. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +862 -0
  183. package/build/artifacts/contracts/periphery/PendleGovernanceManager.sol/PendleGovernanceManager.dbg.json +1 -1
  184. package/build/artifacts/contracts/periphery/PendleGovernanceManager.sol/PendleGovernanceManager.json +2 -2
  185. package/build/artifacts/contracts/periphery/PermissionsV2Upg.sol/PermissionsV2Upg.dbg.json +1 -1
  186. package/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol +147 -0
  187. package/contracts/{core/PendleSCYImpl → SuperComposableYield/SCY-implementations}/AaveV3/WadRayMath.sol +1 -1
  188. package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol +74 -0
  189. package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol +187 -0
  190. package/contracts/SuperComposableYield/SCY-implementations/PendleBtrflySCY.sol +123 -0
  191. package/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol +99 -0
  192. package/contracts/SuperComposableYield/SCY-implementations/PendleJoeLpSCY.sol +245 -0
  193. package/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol +107 -0
  194. package/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol +120 -0
  195. package/contracts/SuperComposableYield/base-implementations/SCYBase.sol +197 -0
  196. package/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol +131 -0
  197. package/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiver.sol +47 -0
  198. package/contracts/core/LiquidityMining/CelerAbstracts/CelerSender.sol +52 -0
  199. package/contracts/core/LiquidityMining/GaugeController/PendleGaugeController.sol +141 -0
  200. package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchain.sol +30 -0
  201. package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechain.sol +22 -0
  202. package/contracts/core/LiquidityMining/PendleGauge.sol +118 -0
  203. package/contracts/core/LiquidityMining/README.md +63 -0
  204. package/contracts/core/LiquidityMining/VotingController/PendleVotingController.sol +323 -0
  205. package/contracts/core/LiquidityMining/VotingController/VotingControllerStorage.sol +224 -0
  206. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +241 -0
  207. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +73 -0
  208. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowToken.sol +53 -0
  209. package/contracts/core/{PendleMarket.sol → Market/PendleMarket.sol} +139 -103
  210. package/contracts/core/{PendleMarketFactory.sol → Market/PendleMarketFactory.sol} +62 -19
  211. package/contracts/core/PendleERC20.sol +358 -0
  212. package/contracts/core/PendleERC20Permit.sol +84 -0
  213. package/contracts/core/PendleRouter.sol +6 -12
  214. package/contracts/core/YieldContracts/InterestManagerYT.sol +87 -0
  215. package/contracts/core/YieldContracts/PendlePrincipalToken.sol +52 -0
  216. package/contracts/core/{PendleYieldContractFactory.sol → YieldContracts/PendleYieldContractFactory.sol} +46 -25
  217. package/contracts/core/YieldContracts/PendleYieldToken.sol +340 -0
  218. package/contracts/core/actions/ActionCallback.sol +63 -43
  219. package/contracts/core/actions/ActionCore.sol +95 -78
  220. package/contracts/core/actions/ActionYT.sol +35 -86
  221. package/contracts/core/actions/base/ActionSCYAndPTBase.sol +133 -78
  222. package/contracts/core/actions/base/ActionSCYAndPYBase.sol +31 -46
  223. package/contracts/core/actions/base/ActionSCYAndYTBase.sol +127 -45
  224. package/contracts/core/actions/base/CallbackHelper.sol +81 -0
  225. package/contracts/interfaces/IAToken.sol +11 -1
  226. package/contracts/interfaces/IAavePool.sol +1 -1
  227. package/contracts/interfaces/IAaveRewardsController.sol +1 -1
  228. package/contracts/interfaces/IBenQiComptroller.sol +3 -1
  229. package/contracts/interfaces/IBenQiInterestRateModel.sol +16 -0
  230. package/contracts/interfaces/ICelerMessageBus.sol +28 -0
  231. package/contracts/interfaces/ICelerMessageReceiverApp.sol +25 -0
  232. package/contracts/interfaces/IERC4626.sol +39 -0
  233. package/contracts/interfaces/IJoeRouter01.sol +1 -1
  234. package/contracts/interfaces/IJoeRouter02.sol +52 -0
  235. package/contracts/interfaces/IPActionCore.sol +44 -27
  236. package/contracts/interfaces/IPActionYT.sol +12 -9
  237. package/contracts/interfaces/IPAllAction.sol +2 -3
  238. package/contracts/interfaces/IPGaugeController.sol +22 -0
  239. package/contracts/interfaces/IPGaugeControllerMainchain.sol +12 -0
  240. package/contracts/interfaces/IPGovernanceManager.sol +1 -1
  241. package/contracts/interfaces/IPInterestManagerYT.sol +9 -0
  242. package/contracts/interfaces/IPMarket.sol +13 -13
  243. package/contracts/interfaces/IPMarketAddRemoveCallback.sol +3 -3
  244. package/contracts/interfaces/IPMarketFactory.sol +8 -1
  245. package/contracts/interfaces/IPMarketSwapCallback.sol +1 -1
  246. package/contracts/interfaces/IPPermissionsV2Upg.sol +1 -1
  247. package/contracts/interfaces/IPPrincipalToken.sol +9 -5
  248. package/contracts/interfaces/IPRouterStatic.sol +1 -1
  249. package/contracts/interfaces/IPVeToken.sol +10 -5
  250. package/contracts/interfaces/IPVotingController.sol +21 -0
  251. package/contracts/interfaces/IPVotingEscrow.sol +14 -22
  252. package/contracts/interfaces/IPYieldContractFactory.sol +1 -1
  253. package/contracts/interfaces/IPYieldToken.sol +17 -17
  254. package/contracts/interfaces/IQiAvax.sol +31 -0
  255. package/contracts/interfaces/IQiErc20.sol +1 -1
  256. package/contracts/interfaces/IQiToken.sol +22 -1
  257. package/contracts/interfaces/IREDACTEDStaking.sol +1 -1
  258. package/contracts/interfaces/IRewardManager.sol +9 -0
  259. package/contracts/interfaces/ISuperComposableYield.sol +182 -0
  260. package/contracts/interfaces/IWETH.sol +1 -1
  261. package/contracts/interfaces/IWXBTRFLY.sol +3 -1
  262. package/contracts/interfaces/IWstETH.sol +3 -1
  263. package/contracts/interfaces/IYearnVault.sol +3 -1
  264. package/contracts/libraries/RewardManager.sol +78 -0
  265. package/contracts/libraries/RewardManagerAbstract.sol +81 -0
  266. package/contracts/libraries/{SCYIndex.sol → SCY/SCYIndex.sol} +8 -8
  267. package/contracts/libraries/SCY/SCYUtils.sol +18 -0
  268. package/contracts/libraries/VeBalanceLib.sol +114 -0
  269. package/contracts/libraries/helpers/ArrayLib.sol +65 -0
  270. package/contracts/libraries/helpers/ExpiryUtilsLib.sol +1 -1
  271. package/contracts/libraries/helpers/MiniDeployer.sol +23 -0
  272. package/contracts/libraries/helpers/MiniHelpers.sol +15 -0
  273. package/contracts/libraries/helpers/TokenHelper.sol +105 -0
  274. package/contracts/libraries/math/LogExpMath.sol +59 -1
  275. package/contracts/libraries/math/MarketApproxLib.sol +167 -164
  276. package/contracts/libraries/math/MarketMathCore.sol +106 -25
  277. package/contracts/libraries/math/Math.sol +28 -21
  278. package/contracts/libraries/math/WeekMath.sol +19 -0
  279. package/contracts/libraries/solmate/Bytes32AddressLib.sol +14 -0
  280. package/contracts/libraries/solmate/LibRLP.sol +30 -0
  281. package/contracts/libraries/solmate/SSTORE2.sol +99 -0
  282. package/contracts/libraries/{JoeLibrary.sol → traderjoe/JoeLibrary.sol} +3 -2
  283. package/contracts/{periphery → libraries/traderjoe}/PendleJoeSwapHelperUpg.sol +8 -10
  284. package/contracts/{core → offchain-helpers}/RouterStatic.sol +24 -19
  285. package/contracts/periphery/PendleGovernanceManager.sol +1 -1
  286. package/contracts/periphery/PermissionsV2Upg.sol +1 -1
  287. package/package.json +1 -1
  288. package/typechain-types/ActionCore.ts +169 -96
  289. package/typechain-types/ActionSCYAndPTBase.ts +210 -0
  290. package/typechain-types/ActionSCYAndPYBase.ts +0 -13
  291. package/typechain-types/ActionSCYAndYTBase.ts +8 -21
  292. package/typechain-types/ActionYT.ts +73 -64
  293. package/typechain-types/BeaconProxy.ts +97 -0
  294. package/typechain-types/CelerReceiver.ts +267 -0
  295. package/typechain-types/CelerSender.ts +197 -0
  296. package/typechain-types/ERC1967Upgrade.ts +97 -0
  297. package/typechain-types/ERC20Permit.ts +521 -0
  298. package/typechain-types/IAToken.ts +55 -0
  299. package/typechain-types/IBeacon.ts +87 -0
  300. package/typechain-types/IBenQiComptroller.ts +13 -0
  301. package/typechain-types/IBenQiInterestRateModel.ts +162 -0
  302. package/typechain-types/ICelerMessageBus.ts +134 -0
  303. package/typechain-types/ICelerMessageReceiverApp.ts +120 -0
  304. package/typechain-types/IERC1822Proxiable.ts +87 -0
  305. package/typechain-types/IERC20Permit.ts +175 -0
  306. package/typechain-types/IERC4626.ts +463 -0
  307. package/typechain-types/IJoeRouter02.ts +1420 -0
  308. package/typechain-types/IPActionCore.ts +169 -83
  309. package/typechain-types/IPActionYT.ts +65 -43
  310. package/typechain-types/IPAllAction.ts +190 -137
  311. package/typechain-types/IPGauge.ts +104 -0
  312. package/typechain-types/IPGaugeController.ts +191 -0
  313. package/typechain-types/IPGaugeControllerMainchain.ts +236 -0
  314. package/typechain-types/IPMarket.ts +73 -74
  315. package/typechain-types/IPMarketFactory.ts +27 -0
  316. package/typechain-types/IPPrincipalToken.ts +8 -20
  317. package/typechain-types/IPVeToken.ts +198 -0
  318. package/typechain-types/IPVotingController.ts +179 -0
  319. package/typechain-types/IPVotingEscrow.ts +217 -0
  320. package/typechain-types/IPVotingEscrowController.ts +154 -0
  321. package/typechain-types/IPYieldToken.ts +176 -213
  322. package/typechain-types/IQiAvax.ts +551 -0
  323. package/typechain-types/IQiErc20.ts +171 -0
  324. package/typechain-types/IQiToken.ts +171 -0
  325. package/typechain-types/IRewardManager.ts +16 -87
  326. package/typechain-types/ISuperComposableYield.ts +283 -269
  327. package/typechain-types/IWXBTRFLY.ts +13 -0
  328. package/typechain-types/IWstETH.ts +13 -0
  329. package/typechain-types/IYearnVault.ts +13 -0
  330. package/typechain-types/PendleAaveV3SCY.ts +382 -477
  331. package/typechain-types/PendleBtrflyScy.ts +287 -348
  332. package/typechain-types/PendleERC20.ts +339 -0
  333. package/typechain-types/PendleERC20Permit.ts +443 -0
  334. package/typechain-types/PendleERC4626SCY.ts +801 -0
  335. package/typechain-types/PendleGauge.ts +276 -0
  336. package/typechain-types/PendleGaugeController.ts +346 -0
  337. package/typechain-types/PendleGaugeControllerMainchain.ts +410 -0
  338. package/typechain-types/PendleGaugeControllerSidechain.ts +524 -0
  339. package/typechain-types/PendleJoeLpSCY.ts +837 -0
  340. package/typechain-types/PendleJoeSwapHelperUpg.ts +0 -13
  341. package/typechain-types/PendleMarket.ts +265 -151
  342. package/typechain-types/PendleMarketFactory.ts +111 -16
  343. package/typechain-types/PendleMarketRewards.ts +1317 -0
  344. package/typechain-types/PendlePrincipalToken.ts +103 -130
  345. package/typechain-types/PendleQiTokenHelper.ts +57 -0
  346. package/typechain-types/PendleQiTokenSCY.ts +991 -0
  347. package/typechain-types/PendleRouter.ts +0 -19
  348. package/typechain-types/PendleVotingController.ts +1042 -0
  349. package/typechain-types/PendleWstEthSCY.ts +813 -0
  350. package/typechain-types/PendleYearnVaultScy.ts +278 -339
  351. package/typechain-types/PendleYieldContractFactory.ts +43 -27
  352. package/typechain-types/PendleYieldToken.ts +297 -428
  353. package/typechain-types/RewardManager.ts +70 -69
  354. package/typechain-types/RewardManagerMini.ts +200 -0
  355. package/typechain-types/SCYBase.ts +276 -335
  356. package/typechain-types/SCYBaseWithRewards.ts +367 -424
  357. package/typechain-types/VotingControllerStorage.ts +507 -0
  358. package/typechain-types/VotingEscrowPendleMainchain.ts +854 -0
  359. package/typechain-types/VotingEscrowPendleSidechain.ts +546 -0
  360. package/typechain-types/VotingEscrowToken.ts +251 -0
  361. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  362. package/typechain-types/factories/ActionCore__factory.ts +122 -80
  363. package/typechain-types/factories/ActionRedeem__factory.ts +1 -1
  364. package/typechain-types/factories/ActionSCYAndPTBase__factory.ts +187 -0
  365. package/typechain-types/factories/ActionSCYAndPYBase__factory.ts +0 -13
  366. package/typechain-types/factories/ActionSCYAndYTBase__factory.ts +1 -14
  367. package/typechain-types/factories/ActionYT__factory.ts +39 -48
  368. package/typechain-types/factories/BeaconProxy__factory.ts +141 -0
  369. package/typechain-types/factories/CelerReceiver__factory.ts +140 -0
  370. package/typechain-types/factories/CelerSender__factory.ts +85 -0
  371. package/typechain-types/factories/ERC1967Upgrade__factory.ts +71 -0
  372. package/typechain-types/factories/ERC20Permit__factory.ts +368 -0
  373. package/typechain-types/factories/ERC20__factory.ts +1 -1
  374. package/typechain-types/factories/IAToken__factory.ts +39 -0
  375. package/typechain-types/factories/IBeacon__factory.ts +36 -0
  376. package/typechain-types/factories/IBenQiComptroller__factory.ts +13 -0
  377. package/typechain-types/factories/IBenQiInterestRateModel__factory.ts +93 -0
  378. package/typechain-types/factories/ICelerMessageBus__factory.ts +68 -0
  379. package/typechain-types/factories/ICelerMessageReceiverApp__factory.ts +64 -0
  380. package/typechain-types/factories/IERC1822Proxiable__factory.ts +39 -0
  381. package/typechain-types/factories/IERC20Permit__factory.ts +98 -0
  382. package/typechain-types/factories/IERC4626__factory.ts +330 -0
  383. package/typechain-types/factories/IJoeRouter02__factory.ts +974 -0
  384. package/typechain-types/factories/IPActionCore__factory.ts +122 -58
  385. package/typechain-types/factories/IPActionYT__factory.ts +36 -21
  386. package/typechain-types/factories/IPAllAction__factory.ts +116 -81
  387. package/typechain-types/factories/IPGaugeControllerMainchain__factory.ts +151 -0
  388. package/typechain-types/factories/IPGaugeController__factory.ts +124 -0
  389. package/typechain-types/factories/IPGauge__factory.ts +42 -0
  390. package/typechain-types/factories/IPMarketFactory__factory.ts +31 -0
  391. package/typechain-types/factories/IPMarket__factory.ts +35 -54
  392. package/typechain-types/factories/IPPrincipalToken__factory.ts +5 -5
  393. package/typechain-types/factories/IPVeToken__factory.ts +111 -0
  394. package/typechain-types/factories/IPVotingController__factory.ts +182 -0
  395. package/typechain-types/factories/IPVotingEscrowController__factory.ts +80 -0
  396. package/typechain-types/factories/IPVotingEscrow__factory.ts +163 -0
  397. package/typechain-types/factories/IPYieldToken__factory.ts +85 -83
  398. package/typechain-types/factories/IQiAvax__factory.ts +362 -0
  399. package/typechain-types/factories/IQiErc20__factory.ts +117 -0
  400. package/typechain-types/factories/IQiToken__factory.ts +117 -0
  401. package/typechain-types/factories/IRewardManager__factory.ts +5 -47
  402. package/typechain-types/factories/ISuperComposableYield__factory.ts +201 -138
  403. package/typechain-types/factories/IWXBTRFLY__factory.ts +13 -0
  404. package/typechain-types/factories/IWstETH__factory.ts +13 -0
  405. package/typechain-types/factories/IYearnVault__factory.ts +13 -0
  406. package/typechain-types/factories/PendleAaveV3SCY__factory.ts +246 -315
  407. package/typechain-types/factories/PendleBtrflyScy__factory.ts +200 -234
  408. package/typechain-types/factories/PendleERC20Permit__factory.ts +405 -0
  409. package/typechain-types/factories/PendleERC20__factory.ts +327 -0
  410. package/typechain-types/factories/PendleERC4626SCY__factory.ts +678 -0
  411. package/typechain-types/factories/PendleGaugeControllerMainchain__factory.ts +332 -0
  412. package/typechain-types/factories/PendleGaugeControllerSidechain__factory.ts +391 -0
  413. package/typechain-types/factories/PendleGaugeController__factory.ts +212 -0
  414. package/typechain-types/factories/PendleGauge__factory.ts +171 -0
  415. package/typechain-types/factories/PendleGovernanceManager__factory.ts +1 -1
  416. package/typechain-types/factories/PendleJoeLpSCY__factory.ts +726 -0
  417. package/typechain-types/factories/PendleJoeSwapHelperUpg__factory.ts +0 -13
  418. package/typechain-types/factories/PendleMarketFactory__factory.ts +90 -5
  419. package/typechain-types/factories/PendleMarketRewards__factory.ts +1140 -0
  420. package/typechain-types/factories/PendleMarket__factory.ts +182 -94
  421. package/typechain-types/factories/PendlePrincipalToken__factory.ts +74 -77
  422. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +99 -0
  423. package/typechain-types/factories/PendleQiTokenSCY__factory.ts +845 -0
  424. package/typechain-types/factories/PendleRouter__factory.ts +1 -23
  425. package/typechain-types/factories/PendleVotingController__factory.ts +776 -0
  426. package/typechain-types/factories/PendleWstEthSCY__factory.ts +686 -0
  427. package/typechain-types/factories/PendleYearnVaultScy__factory.ts +218 -243
  428. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +39 -29
  429. package/typechain-types/factories/PendleYieldToken__factory.ts +153 -211
  430. package/typechain-types/factories/RewardManagerMini__factory.ts +116 -0
  431. package/typechain-types/factories/RewardManager__factory.ts +43 -32
  432. package/typechain-types/factories/RouterStatic__factory.ts +1 -1
  433. package/typechain-types/factories/SCYBaseWithRewards__factory.ts +242 -218
  434. package/typechain-types/factories/SCYBase__factory.ts +195 -176
  435. package/typechain-types/factories/VotingControllerStorage__factory.ts +361 -0
  436. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +616 -0
  437. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +415 -0
  438. package/typechain-types/factories/VotingEscrowToken__factory.ts +153 -0
  439. package/typechain-types/hardhat.d.ts +338 -131
  440. package/typechain-types/index.ts +92 -38
  441. package/build/artifacts/contracts/SuperComposableYield/ISuperComposableYield.sol/ISuperComposableYield.dbg.json +0 -4
  442. package/build/artifacts/contracts/SuperComposableYield/SCYUtils.sol/SCYUtils.dbg.json +0 -4
  443. package/build/artifacts/contracts/SuperComposableYield/implementations/IRewardManager.sol/IRewardManager.dbg.json +0 -4
  444. package/build/artifacts/contracts/SuperComposableYield/implementations/RewardManager.sol/RewardManager.dbg.json +0 -4
  445. package/build/artifacts/contracts/SuperComposableYield/implementations/SCYBase.sol/SCYBase.dbg.json +0 -4
  446. package/build/artifacts/contracts/SuperComposableYield/implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +0 -4
  447. package/build/artifacts/contracts/core/PendleBaseToken.sol/PendleBaseToken.dbg.json +0 -4
  448. package/build/artifacts/contracts/core/PendleMarket.sol/PendleMarket.dbg.json +0 -4
  449. package/build/artifacts/contracts/core/PendleMarket.sol/PendleMarket.json +0 -842
  450. package/build/artifacts/contracts/core/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +0 -4
  451. package/build/artifacts/contracts/core/PendleMarketFactory.sol/PendleMarketFactory.json +0 -265
  452. package/build/artifacts/contracts/core/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +0 -4
  453. package/build/artifacts/contracts/core/PendlePrincipalToken.sol/PendlePrincipalToken.json +0 -452
  454. package/build/artifacts/contracts/core/PendleSCYImpl/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.dbg.json +0 -4
  455. package/build/artifacts/contracts/core/PendleSCYImpl/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.json +0 -783
  456. package/build/artifacts/contracts/core/PendleSCYImpl/AaveV3/WadRayMath.sol/WadRayMath.dbg.json +0 -4
  457. package/build/artifacts/contracts/core/PendleSCYImpl/PendleBenQiErc20SCY.sol/PendleBenQiErc20SCY.dbg.json +0 -4
  458. package/build/artifacts/contracts/core/PendleSCYImpl/PendleBenQiErc20SCY.sol/PendleBenQiErc20SCY.json +0 -766
  459. package/build/artifacts/contracts/core/PendleSCYImpl/PendleBtrflySCY.sol/PendleBtrflyScy.dbg.json +0 -4
  460. package/build/artifacts/contracts/core/PendleSCYImpl/PendleBtrflySCY.sol/PendleBtrflyScy.json +0 -641
  461. package/build/artifacts/contracts/core/PendleSCYImpl/PendleStETHSCY.sol/PendleStEthSCY.dbg.json +0 -4
  462. package/build/artifacts/contracts/core/PendleSCYImpl/PendleStETHSCY.sol/PendleStEthSCY.json +0 -623
  463. package/build/artifacts/contracts/core/PendleSCYImpl/PendleYearnVaultSCY.sol/PendleYearnVaultScy.dbg.json +0 -4
  464. package/build/artifacts/contracts/core/PendleSCYImpl/PendleYearnVaultSCY.sol/PendleYearnVaultScy.json +0 -623
  465. package/build/artifacts/contracts/core/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +0 -4
  466. package/build/artifacts/contracts/core/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +0 -339
  467. package/build/artifacts/contracts/core/PendleYieldToken.sol/PendleYieldToken.dbg.json +0 -4
  468. package/build/artifacts/contracts/core/PendleYieldToken.sol/PendleYieldToken.json +0 -808
  469. package/build/artifacts/contracts/core/RouterStatic.sol/RouterStatic.dbg.json +0 -4
  470. package/build/artifacts/contracts/core/RouterStatic.sol/RouterStatic.json +0 -862
  471. package/build/artifacts/contracts/core/actions/ActionRedeem.sol/ActionRedeem.dbg.json +0 -4
  472. package/build/artifacts/contracts/core/actions/ActionRedeem.sol/ActionRedeem.json +0 -55
  473. package/build/artifacts/contracts/core/actions/base/ActionType.sol/ActionType.dbg.json +0 -4
  474. package/build/artifacts/contracts/interfaces/IPActionRedeem.sol/IPActionRedeem.dbg.json +0 -4
  475. package/build/artifacts/contracts/interfaces/IPActionRedeem.sol/IPActionRedeem.json +0 -55
  476. package/build/artifacts/contracts/interfaces/IPBaseToken.sol/IPBaseToken.dbg.json +0 -4
  477. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPendleGauge.dbg.json +0 -4
  478. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPendleGauge.json +0 -113
  479. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IVePToken.dbg.json +0 -4
  480. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IVePToken.json +0 -43
  481. package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IVotingEscrowPendle.dbg.json +0 -4
  482. package/build/artifacts/contracts/interfaces/IPVotingEscrowController.sol/VotingEscrowController.dbg.json +0 -4
  483. package/build/artifacts/contracts/interfaces/IPVotingEscrowController.sol/VotingEscrowController.json +0 -61
  484. package/build/artifacts/contracts/interfaces/IPendleGauge.sol/IPendleGauge.dbg.json +0 -4
  485. package/build/artifacts/contracts/interfaces/IPendleGauge.sol/IPendleGauge.json +0 -113
  486. package/build/artifacts/contracts/interfaces/IVePToken.sol/IVePToken.dbg.json +0 -4
  487. package/build/artifacts/contracts/interfaces/IVotingEscrowController.sol/VotingEscrowController.dbg.json +0 -4
  488. package/build/artifacts/contracts/interfaces/IVotingEscrowController.sol/VotingEscrowController.json +0 -61
  489. package/build/artifacts/contracts/interfaces/IVotingEscrowPendle.sol/IVotingEscrowPendle.dbg.json +0 -4
  490. package/build/artifacts/contracts/interfaces/IVotingEscrowPendle.sol/IVotingEscrowPendle.json +0 -167
  491. package/build/artifacts/contracts/libraries/JoeLibrary.sol/JoeLibrary.dbg.json +0 -4
  492. package/build/artifacts/contracts/libraries/SCYIndex.sol/SCYIndexLib.dbg.json +0 -4
  493. package/build/artifacts/contracts/libraries/math/MarketMathAux.sol/MarketMathAux.dbg.json +0 -4
  494. package/build/artifacts/contracts/periphery/PendleJoeSwapHelperUpg.sol/PendleJoeSwapHelperUpg.dbg.json +0 -4
  495. package/contracts/SuperComposableYield/ISuperComposableYield.sol +0 -80
  496. package/contracts/SuperComposableYield/SCYUtils.sol +0 -14
  497. package/contracts/SuperComposableYield/implementations/IRewardManager.sol +0 -16
  498. package/contracts/SuperComposableYield/implementations/RewardManager.sol +0 -151
  499. package/contracts/SuperComposableYield/implementations/SCYBase.sol +0 -166
  500. package/contracts/SuperComposableYield/implementations/SCYBaseWithRewards.sol +0 -88
  501. package/contracts/core/PendleBaseToken.sol +0 -35
  502. package/contracts/core/PendlePrincipalToken.sol +0 -54
  503. package/contracts/core/PendleSCYImpl/AaveV3/PendleAaveV3SCY.sol +0 -140
  504. package/contracts/core/PendleSCYImpl/PendleBenQiErc20SCY.sol +0 -133
  505. package/contracts/core/PendleSCYImpl/PendleBtrflySCY.sol +0 -120
  506. package/contracts/core/PendleSCYImpl/PendleStETHSCY.sol +0 -107
  507. package/contracts/core/PendleSCYImpl/PendleYearnVaultSCY.sol +0 -109
  508. package/contracts/core/PendleYieldToken.sol +0 -340
  509. package/contracts/core/actions/ActionRedeem.sol +0 -36
  510. package/contracts/core/actions/base/ActionType.sol +0 -11
  511. package/contracts/interfaces/IPActionRedeem.sol +0 -17
  512. package/contracts/interfaces/IPBaseToken.sol +0 -9
  513. package/contracts/interfaces/IPGauge.sol +0 -32
  514. package/contracts/interfaces/IPVotingEscrowController.sol +0 -14
  515. package/contracts/interfaces/IPendleGauge.sol +0 -32
  516. package/contracts/interfaces/IVePToken.sol +0 -14
  517. package/contracts/interfaces/IVotingEscrowController.sol +0 -14
  518. package/contracts/interfaces/IVotingEscrowPendle.sol +0 -32
  519. package/contracts/libraries/math/MarketMathAux.sol +0 -101
@@ -1,107 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.9;
3
- import "../../SuperComposableYield/implementations/SCYBase.sol";
4
- import "../../interfaces/IWstETH.sol";
5
-
6
- contract PendleStEthSCY is SCYBase {
7
- using SafeERC20 for IERC20;
8
-
9
- address public immutable stETH;
10
- address public immutable wstETH;
11
-
12
- uint256 public override scyIndexStored;
13
-
14
- constructor(
15
- string memory _name,
16
- string memory _symbol,
17
- uint8 __scydecimals,
18
- uint8 __assetDecimals,
19
- address _stETH,
20
- address _wstETH,
21
- bytes32 __assetId
22
- ) SCYBase(_name, _symbol, __scydecimals, __assetDecimals, __assetId) {
23
- require(_wstETH != address(0), "zero address");
24
- stETH = _stETH;
25
- wstETH = _wstETH;
26
- IERC20(stETH).safeIncreaseAllowance(wstETH, type(uint256).max);
27
- }
28
-
29
- /*///////////////////////////////////////////////////////////////
30
- DEPOSIT/REDEEM USING BASE TOKENS
31
- //////////////////////////////////////////////////////////////*/
32
- function _deposit(address token, uint256 amountBase)
33
- internal
34
- virtual
35
- override
36
- returns (uint256 amountScyOut)
37
- {
38
- if (token == stETH) {
39
- amountScyOut = IWstETH(wstETH).wrap(amountBase);
40
- _afterSendToken(stETH);
41
- _afterReceiveToken(wstETH);
42
- } else {
43
- // 1 wstETH = 1 SCY
44
- amountScyOut = amountBase;
45
- }
46
- }
47
-
48
- function _redeem(address token, uint256 amountScy)
49
- internal
50
- virtual
51
- override
52
- returns (uint256 amountBaseOut)
53
- {
54
- if (token == stETH) {
55
- amountBaseOut = IWstETH(wstETH).unwrap(amountScy);
56
- _afterSendToken(wstETH);
57
- _afterReceiveToken(stETH);
58
- } else {
59
- // 1 wstETH = 1 SCY
60
- amountBaseOut = amountScy;
61
- }
62
- }
63
-
64
- /*///////////////////////////////////////////////////////////////
65
- SCY-INDEX
66
- //////////////////////////////////////////////////////////////*/
67
-
68
- function scyIndexCurrent() public virtual override returns (uint256) {
69
- scyIndexStored = IWstETH(wstETH).stEthPerToken();
70
- emit UpdateScyIndex(scyIndexStored);
71
- return scyIndexStored;
72
- }
73
-
74
- /*///////////////////////////////////////////////////////////////
75
- MISC FUNCTIONS FOR METADATA
76
- //////////////////////////////////////////////////////////////*/
77
-
78
- function getBaseTokens() public view virtual override returns (address[] memory res) {
79
- res = new address[](2);
80
- res[0] = stETH;
81
- res[1] = wstETH;
82
- }
83
-
84
- function isValidBaseToken(address token) public view virtual override returns (bool) {
85
- return token == stETH || token == wstETH;
86
- }
87
-
88
- /*///////////////////////////////////////////////////////////////
89
- REWARDS-RELATED
90
- //////////////////////////////////////////////////////////////*/
91
-
92
- //solhint-disable-next-line no-empty-blocks
93
- function redeemReward(address user) public virtual override returns (uint256[] memory) {}
94
-
95
- //solhint-disable-next-line no-empty-blocks
96
- function updateGlobalReward() public virtual override {}
97
-
98
- //solhint-disable-next-line no-empty-blocks
99
- function updateUserReward(address user) public virtual override {}
100
-
101
- function getRewardTokens() public view virtual returns (address[] memory res) {
102
- res = new address[](0);
103
- }
104
-
105
- //solhint-disable-next-line no-empty-blocks
106
- function _redeemExternalReward() internal virtual {}
107
- }
@@ -1,109 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.9;
3
-
4
- import "../../SuperComposableYield/implementations/SCYBase.sol";
5
- import "../../interfaces/IYearnVault.sol";
6
-
7
- contract PendleYearnVaultScy is SCYBase {
8
- using SafeERC20 for IERC20;
9
-
10
- address public immutable underlying;
11
- address public immutable yvToken;
12
-
13
- uint256 public override scyIndexStored;
14
-
15
- constructor(
16
- string memory _name,
17
- string memory _symbol,
18
- uint8 __scydecimals,
19
- uint8 __assetDecimals,
20
- bytes32 __assetId,
21
- address _underlying,
22
- address _yvToken
23
- ) SCYBase(_name, _symbol, __scydecimals, __assetDecimals, __assetId) {
24
- require(_yvToken != address(0), "zero address");
25
- yvToken = _yvToken;
26
- underlying = _underlying;
27
- IERC20(underlying).safeIncreaseAllowance(yvToken, type(uint256).max);
28
- }
29
-
30
- /*///////////////////////////////////////////////////////////////
31
- DEPOSIT/REDEEM USING BASE TOKENS
32
- //////////////////////////////////////////////////////////////*/
33
-
34
- function _deposit(address token, uint256 amountBase)
35
- internal
36
- virtual
37
- override
38
- returns (uint256 amountScyOut)
39
- {
40
- if (token == yvToken) {
41
- amountScyOut = amountBase;
42
- } else {
43
- // must be underlying
44
- IYearnVault(yvToken).deposit(amountBase); // ignore return
45
- _afterSendToken(underlying);
46
- amountScyOut = _afterReceiveToken(yvToken);
47
- }
48
- }
49
-
50
- function _redeem(address token, uint256 amountScy)
51
- internal
52
- virtual
53
- override
54
- returns (uint256 amountBaseOut)
55
- {
56
- if (token == yvToken) {
57
- amountBaseOut = amountScy;
58
- } else {
59
- // must be underlying
60
- IYearnVault(yvToken).withdraw(amountScy); // ignore return
61
- _afterSendToken(yvToken);
62
- amountBaseOut = _afterReceiveToken(underlying);
63
- }
64
- }
65
-
66
- /*///////////////////////////////////////////////////////////////
67
- SCY-INDEX
68
- //////////////////////////////////////////////////////////////*/
69
-
70
- function scyIndexCurrent() public virtual override returns (uint256 res) {
71
- scyIndexStored = IYearnVault(yvToken).pricePerShare();
72
- emit UpdateScyIndex(scyIndexStored);
73
- return scyIndexStored;
74
- }
75
-
76
- /*///////////////////////////////////////////////////////////////
77
- MISC FUNCTIONS FOR METADATA
78
- //////////////////////////////////////////////////////////////*/
79
-
80
- function getBaseTokens() public view virtual override returns (address[] memory res) {
81
- res = new address[](2);
82
- res[0] = underlying;
83
- res[1] = yvToken;
84
- }
85
-
86
- function isValidBaseToken(address token) public view virtual override returns (bool) {
87
- return token == underlying || token == yvToken;
88
- }
89
-
90
- /*///////////////////////////////////////////////////////////////
91
- REWARDS-RELATED
92
- //////////////////////////////////////////////////////////////*/
93
-
94
- //solhint-disable-next-line no-empty-blocks
95
- function redeemReward(address user) public virtual override returns (uint256[] memory) {}
96
-
97
- //solhint-disable-next-line no-empty-blocks
98
- function updateGlobalReward() public virtual override {}
99
-
100
- //solhint-disable-next-line no-empty-blocks
101
- function updateUserReward(address user) public virtual override {}
102
-
103
- function getRewardTokens() public view virtual returns (address[] memory res) {
104
- res = new address[](0);
105
- }
106
-
107
- //solhint-disable-next-line no-empty-blocks
108
- function _redeemExternalReward() internal virtual {}
109
- }
@@ -1,340 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.9;
3
-
4
- import "./PendleBaseToken.sol";
5
- import "../SuperComposableYield/ISuperComposableYield.sol";
6
- import "../interfaces/IPYieldToken.sol";
7
- import "../interfaces/IPPrincipalToken.sol";
8
- import "../libraries/math/Math.sol";
9
- import "../interfaces/IPYieldContractFactory.sol";
10
- import "../SuperComposableYield/SCYUtils.sol";
11
- import "../SuperComposableYield/implementations/RewardManager.sol";
12
- import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
13
- import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
14
-
15
- /*
16
- With YT yielding more SCYs overtime, which is allowed to be redeemed by users, the reward distribution should
17
- be based on the amount of SCYs that their YT currently represent, plus with their dueInterest.
18
-
19
- It has been proven and tested that impliedScyBalance will not change over time, unless users redeem their interest or redeemPY.
20
-
21
- Due to this, it is required to update users' accruedReward STRICTLY BEFORE redeeming their interest.
22
- */
23
- contract PendleYieldToken is PendleBaseToken, RewardManager, IPYieldToken, ReentrancyGuard {
24
- using Math for uint256;
25
- using SafeERC20 for IERC20;
26
-
27
- struct InterestData {
28
- uint256 lastScyIndex;
29
- uint256 dueInterest;
30
- }
31
-
32
- address public immutable SCY;
33
- address public immutable PT;
34
-
35
- /// params to do interests & rewards accounting
36
- uint256 public lastScyBalance;
37
- uint256 public lastScyIndexBeforeExpiry;
38
-
39
- /// params to do fee accounting
40
- mapping(address => uint256) public totalRewardsPostExpiry;
41
- uint256 public totalInterestPostExpiry;
42
- uint256 public totalProtocolFee;
43
-
44
- mapping(address => InterestData) internal interestData;
45
-
46
- constructor(
47
- address _SCY,
48
- address _PT,
49
- string memory _name,
50
- string memory _symbol,
51
- uint8 __decimals,
52
- uint256 _expiry
53
- ) PendleBaseToken(_name, _symbol, __decimals, _expiry) {
54
- require(_SCY != address(0) && _PT != address(0), "zero address");
55
- SCY = _SCY;
56
- PT = _PT;
57
- }
58
-
59
- /**
60
- * @notice this function splits scy into PT + YT of equal qty
61
- * @dev the scy to tokenize has to be pre-transferred to this contract prior to the function call
62
- */
63
- function mintPY(address receiverPT, address receiverYT)
64
- external
65
- nonReentrant
66
- returns (uint256 amountPYOut)
67
- {
68
- uint256 amountToTokenize = _receiveSCY();
69
-
70
- amountPYOut = _calcAmountToMint(amountToTokenize);
71
-
72
- _mint(receiverYT, amountPYOut);
73
-
74
- IPPrincipalToken(PT).mintByYT(receiverPT, amountPYOut);
75
- }
76
-
77
- /// @dev this function converts PY tokens into scy, but interests & rewards are not redeemed at the same time
78
- function redeemPY(address receiver) external nonReentrant returns (uint256 amountScyOut) {
79
- // minimum of PT & YT balance
80
- uint256 amountPYToRedeem = IERC20(PT).balanceOf(address(this));
81
- if (!isExpired()) {
82
- amountPYToRedeem = Math.min(amountPYToRedeem, balanceOf(address(this)));
83
- _burn(address(this), amountPYToRedeem);
84
- }
85
-
86
- IPPrincipalToken(PT).burnByYT(address(this), amountPYToRedeem);
87
-
88
- uint256 amountScyToTreasury;
89
- (amountScyOut, amountScyToTreasury) = _calcAmountToRedeem(amountPYToRedeem);
90
-
91
- totalInterestPostExpiry += amountScyToTreasury;
92
-
93
- IERC20(SCY).safeTransfer(receiver, amountScyOut);
94
- _afterTransferOutSCY();
95
- }
96
-
97
- /**
98
- * @dev as mentioned in doc, updateDueReward should be placed strictly before every redeemDueInterest
99
- */
100
- function redeemDueInterestAndRewards(address user)
101
- external
102
- nonReentrant
103
- returns (uint256 interestOut, uint256[] memory rewardsOut)
104
- {
105
- // redeemDueRewards before redeemDueInterest
106
- _updateUserReward(user);
107
- _updateUserInterest(user);
108
- rewardsOut = _doTransferOutRewardsForUser(user, user);
109
- interestOut = _doTransferOutDueInterest(user);
110
-
111
- emit RedeemReward(user, rewardsOut);
112
- emit RedeemInterest(user, interestOut);
113
- }
114
-
115
- /**
116
- * @dev as mentioned in doc, updateDueReward should be placed strictly before every redeemDueInterest
117
- */
118
- function redeemDueInterest(address user) external nonReentrant returns (uint256 interestOut) {
119
- _updateUserReward(user); /// strictly required, see above for explanation
120
-
121
- _updateUserInterest(user);
122
- interestOut = _doTransferOutDueInterest(user);
123
- emit RedeemInterest(user, interestOut);
124
- }
125
-
126
- function redeemDueRewards(address user)
127
- external
128
- nonReentrant
129
- returns (uint256[] memory rewardsOut)
130
- {
131
- _updateUserReward(user);
132
-
133
- rewardsOut = _doTransferOutRewardsForUser(user, user);
134
- emit RedeemReward(user, rewardsOut);
135
- }
136
-
137
- /**
138
- * @dev updateGlobalReward does not need reentrancy modifier since the rewards
139
- * will be transfered directly from SCY to YT, without triggering any callbacks
140
- */
141
- function updateGlobalReward() external nonReentrant {
142
- _updateGlobalReward();
143
- }
144
-
145
- function updateUserReward(address user) external nonReentrant {
146
- _updateUserReward(user);
147
- }
148
-
149
- function updateUserInterest(address user) external nonReentrant {
150
- _updateUserInterest(user);
151
- }
152
-
153
- function _updateUserInterest(address user) internal {
154
- uint256 prevIndex = interestData[user].lastScyIndex;
155
-
156
- (, uint256 currentIndexBeforeExpiry) = getScyIndex();
157
-
158
- if (prevIndex == currentIndexBeforeExpiry) return;
159
- if (prevIndex == 0) {
160
- interestData[user].lastScyIndex = currentIndexBeforeExpiry;
161
- return;
162
- }
163
-
164
- uint256 principal = balanceOf(user);
165
-
166
- uint256 interestFromYT = (principal * (currentIndexBeforeExpiry - prevIndex)).divDown(
167
- prevIndex * currentIndexBeforeExpiry
168
- );
169
-
170
- interestData[user].dueInterest += interestFromYT;
171
- interestData[user].lastScyIndex = currentIndexBeforeExpiry;
172
- }
173
-
174
- function getInterestData(address user)
175
- external
176
- view
177
- returns (uint256 lastScyIndex, uint256 dueInterest)
178
- {
179
- return (interestData[user].lastScyIndex, interestData[user].dueInterest);
180
- }
181
-
182
- /// @dev override the default updateGlobalReward to avoid distributing the rewards after
183
- /// YT has expired. Instead, these funds will go to the treasury
184
- function _updateGlobalReward() internal virtual override {
185
- if (!_shouldUpdateGlobalReward()) return;
186
- _redeemExternalReward();
187
-
188
- uint256 totalShares = _rewardSharesTotal();
189
-
190
- address[] memory rewardTokens = getRewardTokens();
191
- _initGlobalReward(rewardTokens);
192
-
193
- bool _isExpired = isExpired();
194
- for (uint256 i = 0; i < rewardTokens.length; ++i) {
195
- address token = rewardTokens[i];
196
-
197
- uint256 currentRewardBalance = IERC20(token).balanceOf(address(this));
198
- uint256 totalIncomeReward = currentRewardBalance - globalReward[token].lastBalance;
199
-
200
- if (_isExpired) {
201
- totalRewardsPostExpiry[token] += totalIncomeReward;
202
- } else if (totalShares != 0) {
203
- globalReward[token].index += totalIncomeReward.divDown(totalShares);
204
- }
205
-
206
- globalReward[token].lastBalance = currentRewardBalance;
207
- }
208
- }
209
-
210
- function _doTransferOutDueInterest(address user) internal returns (uint256 interestOut) {
211
- uint256 interestPreFee = interestData[user].dueInterest;
212
- interestData[user].dueInterest = 0;
213
-
214
- uint256 feeRate = IPYieldContractFactory(factory).interestFeeRate();
215
- uint256 feeAmount = interestPreFee.mulDown(feeRate);
216
- totalProtocolFee += feeAmount;
217
-
218
- interestOut = interestPreFee - feeAmount;
219
- IERC20(SCY).safeTransfer(user, interestOut);
220
- _afterTransferOutSCY();
221
- }
222
-
223
- function _redeemExternalReward() internal virtual override {
224
- ISuperComposableYield(SCY).redeemReward(address(this)); // ignore return
225
- }
226
-
227
- /// @dev to be overriden if there is rewards
228
- function _rewardSharesTotal() internal virtual override returns (uint256) {
229
- return IERC20(SCY).balanceOf(address(this));
230
- }
231
-
232
- /// @dev to be overriden if there is rewards
233
- function _rewardSharesUser(address user) internal virtual override returns (uint256) {
234
- return getImpliedScyBalance(user);
235
- }
236
-
237
- function getRewardTokens()
238
- public
239
- view
240
- virtual
241
- override(RewardManager, IRewardManager)
242
- returns (address[] memory)
243
- {
244
- return ISuperComposableYield(SCY).getRewardTokens();
245
- }
246
-
247
- function getScyIndex() public returns (uint256 currentIndex, uint256 lastIndexBeforeExpiry) {
248
- currentIndex = ISuperComposableYield(SCY).scyIndexCurrent();
249
- if (isExpired()) {
250
- lastIndexBeforeExpiry = lastScyIndexBeforeExpiry;
251
- } else {
252
- lastScyIndexBeforeExpiry = lastIndexBeforeExpiry = currentIndex;
253
- }
254
- }
255
-
256
- /**
257
- * @dev In case the pool is expired and there is left some SCY not yet redeemed from the contract, the rewards should
258
- * be claimed before withdrawing to treasury.
259
- *
260
- * @dev And since the reward distribution (which based on users' dueInterest) stopped at the scyIndexBeforeExpiry, it is not
261
- * necessary to updateUserInterest along with reward here.
262
- */
263
- function withdrawFeeToTreasury() public {
264
- address[] memory rewardTokens = getRewardTokens();
265
- if (isExpired()) {
266
- _updateGlobalReward(); // as refered to the doc above
267
- }
268
-
269
- uint256 length = rewardTokens.length;
270
- address treasury = IPYieldContractFactory(factory).treasury();
271
- uint256[] memory amountRewardsOut = new uint256[](length);
272
-
273
- for (uint256 i = 0; i < length; i++) {
274
- address token = rewardTokens[i];
275
- uint256 outAmount = totalRewardsPostExpiry[token];
276
- if (outAmount > 0) IERC20(rewardTokens[i]).safeTransfer(treasury, outAmount);
277
- totalRewardsPostExpiry[token] = 0;
278
- amountRewardsOut[i] = outAmount;
279
- }
280
-
281
- uint256 totalScyFee = totalProtocolFee + totalInterestPostExpiry;
282
- totalProtocolFee = totalInterestPostExpiry = 0;
283
-
284
- if (totalScyFee > 0) {
285
- IERC20(SCY).safeTransfer(treasury, totalScyFee);
286
- _afterTransferOutSCY();
287
- }
288
- emit WithdrawFeeToTreasury(amountRewardsOut, totalScyFee);
289
- }
290
-
291
- function _calcAmountToMint(uint256 amount) internal returns (uint256) {
292
- (, uint256 lastIndexBeforeExpiry) = getScyIndex();
293
- return SCYUtils.scyToAsset(lastIndexBeforeExpiry, amount);
294
- }
295
-
296
- function _calcAmountToRedeem(uint256 amount)
297
- internal
298
- returns (uint256 amountToUser, uint256 amountToTreasury)
299
- {
300
- (uint256 currentIndex, uint256 lastIndexBeforeExpiry) = getScyIndex();
301
- uint256 totalRedeemable = SCYUtils.assetToScy(lastIndexBeforeExpiry, amount);
302
- amountToUser = SCYUtils.assetToScy(currentIndex, amount);
303
- amountToTreasury = totalRedeemable - amountToUser;
304
- }
305
-
306
- function _receiveSCY() internal returns (uint256 amount) {
307
- uint256 balanceScy = IERC20(SCY).balanceOf(address(this));
308
- amount = balanceScy - lastScyBalance;
309
- require(amount > 0, "RECEIVE_ZERO");
310
- lastScyBalance = balanceScy;
311
- }
312
-
313
- function _afterTransferOutSCY() internal {
314
- lastScyBalance = IERC20(SCY).balanceOf(address(this));
315
- }
316
-
317
- function getImpliedScyBalance(address user) public view returns (uint256) {
318
- uint256 scyIndex = interestData[user].lastScyIndex;
319
- return SCYUtils.assetToScy(scyIndex, balanceOf(user)) + interestData[user].dueInterest;
320
- }
321
-
322
- function _beforeTokenTransfer(
323
- address from,
324
- address to,
325
- uint256
326
- ) internal override {
327
- _updateGlobalReward();
328
-
329
- // Before the change in YT balance, users' impliedScyBalance is kept unchanged from last time
330
- // Therefore, both updating due interest before or after due reward work the same.
331
- if (from != address(0) && from != address(this)) {
332
- _updateUserInterest(from);
333
- _updateUserRewardSkipGlobal(from);
334
- }
335
- if (to != address(0) && to != address(this)) {
336
- _updateUserInterest(to);
337
- _updateUserRewardSkipGlobal(to);
338
- }
339
- }
340
- }
@@ -1,36 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.9;
3
-
4
- import "../../interfaces/IPActionRedeem.sol";
5
- import "../../SuperComposableYield/ISuperComposableYield.sol";
6
- import "../../interfaces/IPYieldToken.sol";
7
- import "../../core/PendleMarket.sol";
8
- import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
9
-
10
- contract ActionRedeem is IPActionRedeem {
11
- function redeemDueIncome(
12
- address user,
13
- address[] calldata scys,
14
- address[] calldata yieldTokens,
15
- address[] calldata /*gauges*/
16
- )
17
- external
18
- returns (
19
- uint256[][] memory scyRewards,
20
- uint256[] memory ytInterests,
21
- uint256[][] memory ytRewards
22
- )
23
- {
24
- scyRewards = new uint256[][](scys.length);
25
- for (uint256 i = 0; i < scys.length; ++i) {
26
- scyRewards[i] = ISuperComposableYield(scys[i]).redeemReward(user);
27
- }
28
-
29
- ytInterests = new uint256[](yieldTokens.length);
30
- ytRewards = new uint256[][](yieldTokens.length);
31
- for (uint256 i = 0; i < yieldTokens.length; ++i) {
32
- (ytInterests[i], ytRewards[i]) = IPYieldToken(yieldTokens[i])
33
- .redeemDueInterestAndRewards(user);
34
- }
35
- }
36
- }
@@ -1,11 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.9;
3
-
4
- abstract contract ActionType {
5
- enum ACTION_TYPE {
6
- SwapExactYtForScy,
7
- SwapSCYForExactYt,
8
- SwapExactScyForYt,
9
- SwapYtForExactScy
10
- }
11
- }
@@ -1,17 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.9;
3
-
4
- interface IPActionRedeem {
5
- function redeemDueIncome(
6
- address user,
7
- address[] calldata scys,
8
- address[] calldata yieldTokens,
9
- address[] calldata /*gauges*/
10
- )
11
- external
12
- returns (
13
- uint256[][] memory scyRewards,
14
- uint256[] memory ytInterests,
15
- uint256[][] memory ytRewards
16
- );
17
- }
@@ -1,9 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.9;
3
- import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
4
-
5
- interface IPBaseToken is IERC20Metadata {
6
- function expiry() external view returns (uint256);
7
-
8
- function isExpired() external view returns (bool);
9
- }
@@ -1,32 +0,0 @@
1
- pragma solidity 0.8.9;
2
- pragma abicoder v2;
3
-
4
- interface IPendleGauge {
5
- // ============= ACTIONS =============
6
-
7
- function stake(address receiver) external;
8
-
9
- function withdraw(address receiver, uint256 amount) external;
10
-
11
- function redeemReward(address receiver) external returns (uint256 redeemedReward);
12
-
13
- // ============= USER INFO =============
14
-
15
- function readUserInfo(address user)
16
- external
17
- returns (
18
- uint256 lpStaked,
19
- uint256 activeLpAmount,
20
- uint256 accruedReward
21
- );
22
-
23
- // ============= META DATA =============
24
-
25
- function readGlobalInfo()
26
- external
27
- returns (
28
- uint256 totalLpStaked,
29
- uint256 totalActiveLp,
30
- uint256 pendlePerSec
31
- );
32
- }
@@ -1,14 +0,0 @@
1
- pragma solidity 0.8.9;
2
- pragma abicoder v2;
3
-
4
- interface VotingEscrowController {
5
- function pendlePerSec() external returns (uint256);
6
-
7
- function totalVote() external returns (uint256);
8
-
9
- /**
10
- * @return vote Amount of vePendle voted for pool
11
- * @return pendleSpeed Amount of Pendle incentivized for pool per second
12
- */
13
- function readPoolRewardInfo(address pool) external returns (uint256 vote, uint256 pendleSpeed);
14
- }