@pendle/core-v2 0.11.2-testnet → 0.11.4-testnet

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (292) hide show
  1. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.dbg.json +1 -1
  2. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.json +2 -2
  3. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/WadRayMath.sol/WadRayMath.dbg.json +1 -1
  4. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol/PendleQiSAvaxSCY.dbg.json +1 -1
  5. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol/PendleQiSAvaxSCY.json +2 -2
  6. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  7. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.dbg.json +1 -1
  8. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.json +2 -2
  9. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol/PendleSAvaxSCY.dbg.json +1 -1
  10. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol/PendleSAvaxSCY.json +2 -2
  11. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.dbg.json +1 -1
  12. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.json +2 -2
  13. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.dbg.json +1 -1
  14. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.json +2 -2
  15. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol/PendleStargateSCY.dbg.json +1 -1
  16. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol/PendleStargateSCY.json +2 -2
  17. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.dbg.json +1 -1
  18. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.json +2 -2
  19. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultSCY.sol/PendleYearnVaultSCY.dbg.json +1 -1
  20. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultSCY.sol/PendleYearnVaultSCY.json +2 -2
  21. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol/PendleSJoeSCY.dbg.json +1 -1
  22. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol/PendleSJoeSCY.json +2 -2
  23. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBase.sol/SCYBase.dbg.json +1 -1
  24. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +1 -1
  25. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol/CelerReceiverUpg.dbg.json +1 -1
  26. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol/CelerSenderUpg.dbg.json +1 -1
  27. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  28. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.json +7 -7
  29. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  30. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +9 -9
  31. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  32. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +9 -9
  33. package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +14 -62
  36. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.json +12 -192
  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 +8 -51
  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 +1 -1
  43. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +8 -8
  45. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +13 -13
  47. package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.json +2 -2
  50. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  53. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +9 -8
  55. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  57. package/build/artifacts/contracts/core/actions/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  58. package/build/artifacts/contracts/core/actions/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +22 -4
  59. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.dbg.json +1 -1
  60. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.json +2 -2
  61. package/build/artifacts/contracts/core/actions/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/actions/ActionMintRedeem.sol/ActionMintRedeem.json +193 -4
  63. package/build/artifacts/contracts/core/actions/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  64. package/build/artifacts/contracts/core/actions/ActionMisc.sol/ActionMisc.json +2 -2
  65. package/build/artifacts/contracts/core/actions/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  66. package/build/artifacts/contracts/core/actions/ActionSwapPT.sol/ActionSwapPT.json +22 -4
  67. package/build/artifacts/contracts/core/actions/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  68. package/build/artifacts/contracts/core/actions/ActionSwapYT.sol/ActionSwapYT.json +22 -4
  69. package/build/artifacts/contracts/core/actions/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  70. package/build/artifacts/contracts/core/actions/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  71. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
  72. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +1 -1
  73. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +1 -1
  74. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  75. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  76. package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.dbg.json +1 -1
  77. package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.dbg.json +1 -1
  78. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  79. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.dbg.json +1 -1
  80. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.dbg.json +1 -1
  81. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  82. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  83. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json +171 -0
  84. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
  85. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  86. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  87. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  88. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +171 -0
  89. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
  90. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.json +19 -0
  91. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  92. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.json +7 -7
  93. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  94. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.json +7 -7
  95. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  96. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  97. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.json +19 -0
  98. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  99. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.json +2 -2
  100. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  101. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  102. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  103. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  104. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.json +0 -124
  105. package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.dbg.json +1 -1
  106. package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.json +0 -86
  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/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  111. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  112. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  113. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.dbg.json +1 -1
  114. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +1 -1
  115. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.json +2 -2
  116. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  117. package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +1 -1
  118. package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +1 -1
  119. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  120. package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.dbg.json +1 -1
  121. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +1 -1
  122. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  123. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  124. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +1 -1
  125. package/build/artifacts/contracts/libraries/OracleLib.sol/OracleLib.dbg.json +1 -1
  126. package/build/artifacts/contracts/libraries/RewardManager.sol/RewardManager.dbg.json +1 -1
  127. package/build/artifacts/contracts/libraries/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  128. package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.dbg.json +1 -1
  129. package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  130. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  131. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  132. package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  133. package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  134. package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  135. package/build/artifacts/contracts/libraries/helpers/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  136. package/build/artifacts/contracts/libraries/helpers/PYIndex.sol/PYIndexLib.json +2 -2
  137. package/build/artifacts/contracts/libraries/helpers/SSTORE2Deployer.sol/SSTORE2Deployer.dbg.json +1 -1
  138. package/build/artifacts/contracts/libraries/helpers/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  139. package/build/artifacts/contracts/libraries/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +4 -0
  140. package/build/artifacts/contracts/libraries/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +35 -0
  141. package/build/artifacts/contracts/libraries/kyberswap/IMultihopRouter.sol/IMultihopRouter.dbg.json +4 -0
  142. package/build/artifacts/contracts/{core/LiquidityMining/FeeDistributor/PendleFeeDistributorAbstract.sol/PendleFeeDistributorAbstract.json → libraries/kyberswap/IMultihopRouter.sol/IMultihopRouter.json} +58 -86
  143. package/build/artifacts/contracts/libraries/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +1 -1
  144. package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  145. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  146. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  147. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  148. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  149. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  150. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.json +2 -2
  151. package/build/artifacts/contracts/libraries/math/Math.sol/Math.dbg.json +1 -1
  152. package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.dbg.json +1 -1
  153. package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.json +2 -2
  154. package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.dbg.json +1 -1
  155. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
  156. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +2 -2
  157. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  158. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +86 -63
  159. package/build/artifacts/contracts/offchain-helpers/SSTORE2DeployerContract.sol/SSTORE2DeployerContract.dbg.json +4 -0
  160. package/build/artifacts/contracts/offchain-helpers/SSTORE2DeployerContract.sol/SSTORE2DeployerContract.json +134 -0
  161. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
  162. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.json +2 -2
  163. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
  164. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.json +2 -2
  165. package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +1 -1
  166. package/contracts/core/LiquidityMining/PendleGauge.sol +1 -1
  167. package/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +1 -2
  168. package/contracts/core/Market/PendleMarketFactory.sol +11 -16
  169. package/contracts/core/PendleRouter.sol +1 -3
  170. package/contracts/core/YieldContracts/PendlePrincipalToken.sol +1 -1
  171. package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +5 -5
  172. package/contracts/core/actions/ActionMintRedeem.sol +141 -0
  173. package/contracts/core/actions/base/ActionBaseMintRedeem.sol +0 -1
  174. package/contracts/interfaces/IPActionMintRedeem.sol +43 -0
  175. package/contracts/interfaces/IPGaugeController.sol +1 -1
  176. package/contracts/interfaces/IPMarketFactory.sol +1 -1
  177. package/contracts/interfaces/ISJoe.sol +3 -6
  178. package/contracts/libraries/helpers/PYIndex.sol +9 -0
  179. package/contracts/libraries/helpers/TokenHelper.sol +33 -24
  180. package/contracts/libraries/kyberswap/AggregationRouterHelper.sol +308 -0
  181. package/contracts/libraries/kyberswap/IMultihopRouter.sol +139 -0
  182. package/contracts/libraries/kyberswap/KyberSwapHelper.sol +7 -1
  183. package/contracts/libraries/math/MarketMathCore.sol +3 -1
  184. package/contracts/offchain-helpers/RouterStatic.sol +5 -5
  185. package/contracts/offchain-helpers/SSTORE2DeployerContract.sol +21 -0
  186. package/contracts/periphery/BoringOwnableUpgradeable.sol +2 -2
  187. package/deployments/43113-core.json +1 -1
  188. package/package.json +4 -5
  189. package/typechain-types/ActionMintRedeem.ts +172 -0
  190. package/typechain-types/AggregationRouterHelper.ts +108 -0
  191. package/typechain-types/ERC1967Upgrade.ts +97 -0
  192. package/typechain-types/EpochResultManager.ts +261 -0
  193. package/typechain-types/FeeDistributorVePendle.ts +3 -224
  194. package/typechain-types/IBeacon.ts +87 -0
  195. package/typechain-types/IBoringOwnableUpgradeable.ts +114 -0
  196. package/typechain-types/IERC1822Proxiable.ts +87 -0
  197. package/typechain-types/IMultihopRouter.ts +209 -0
  198. package/typechain-types/IPActionMintRedeem.ts +172 -0
  199. package/typechain-types/IPAllAction.ts +172 -0
  200. package/typechain-types/IPFeeDistributor.ts +24 -81
  201. package/typechain-types/IPFeeDistributorFactory.ts +187 -0
  202. package/typechain-types/IPGauge.ts +25 -0
  203. package/typechain-types/IPGaugeController.ts +26 -26
  204. package/typechain-types/IPGaugeControllerMainchain.ts +26 -26
  205. package/typechain-types/IPMarket.ts +25 -0
  206. package/typechain-types/IPVotingController.ts +7 -205
  207. package/typechain-types/IPVotingEscrow.ts +0 -117
  208. package/typechain-types/PendleFeeDistributor.ts +483 -0
  209. package/typechain-types/PendleFeeDistributorFactory.ts +466 -0
  210. package/typechain-types/PendleGaugeControllerBaseUpg.ts +27 -27
  211. package/typechain-types/PendleGaugeControllerMainchainUpg.ts +27 -27
  212. package/typechain-types/PendleGaugeControllerSidechainUpg.ts +27 -27
  213. package/typechain-types/PendleMarketFactory.ts +3 -8
  214. package/typechain-types/PendleVotingControllerUpg.ts +24 -73
  215. package/typechain-types/PendleYieldContractFactory.ts +2 -7
  216. package/typechain-types/RouterStatic.ts +58 -29
  217. package/typechain-types/SSTORE2DeployerContract.ts +242 -0
  218. package/typechain-types/VotingControllerStorageUpg.ts +27 -207
  219. package/typechain-types/VotingEscrowPendleMainchain.ts +13 -57
  220. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +36 -4
  221. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  222. package/typechain-types/factories/ActionMintRedeem__factory.ts +207 -4
  223. package/typechain-types/factories/ActionMisc__factory.ts +1 -1
  224. package/typechain-types/factories/ActionSwapPT__factory.ts +36 -4
  225. package/typechain-types/factories/ActionSwapYT__factory.ts +36 -4
  226. package/typechain-types/factories/AggregationRouterHelper__factory.ts +92 -0
  227. package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +1 -1
  228. package/typechain-types/factories/BoringOwnableUpgradeable__factory.ts +4 -42
  229. package/typechain-types/factories/ERC1967Upgrade__factory.ts +71 -0
  230. package/typechain-types/factories/EpochResultManager__factory.ts +146 -0
  231. package/typechain-types/factories/FeeDistributorVePendle__factory.ts +1 -154
  232. package/typechain-types/factories/IBeacon__factory.ts +36 -0
  233. package/typechain-types/factories/IBoringOwnableUpgradeable__factory.ts +53 -0
  234. package/typechain-types/factories/IERC1822Proxiable__factory.ts +39 -0
  235. package/typechain-types/factories/IMultihopRouter__factory.ts +151 -0
  236. package/typechain-types/factories/IPActionMintRedeem__factory.ts +171 -0
  237. package/typechain-types/factories/IPAllAction__factory.ts +171 -0
  238. package/typechain-types/factories/IPFeeDistributorFactory__factory.ts +95 -0
  239. package/typechain-types/factories/IPFeeDistributor__factory.ts +8 -42
  240. package/typechain-types/factories/IPGaugeControllerMainchain__factory.ts +7 -7
  241. package/typechain-types/factories/IPGaugeController__factory.ts +7 -7
  242. package/typechain-types/factories/IPGauge__factory.ts +19 -0
  243. package/typechain-types/factories/IPMarketFactory__factory.ts +2 -2
  244. package/typechain-types/factories/IPMarket__factory.ts +19 -0
  245. package/typechain-types/factories/IPVotingController__factory.ts +0 -124
  246. package/typechain-types/factories/IPVotingEscrow__factory.ts +0 -86
  247. package/typechain-types/factories/ISJoe__factory.ts +2 -2
  248. package/typechain-types/factories/MarketMathStatic__factory.ts +1 -1
  249. package/typechain-types/factories/PendleAaveV3SCY__factory.ts +1 -1
  250. package/typechain-types/factories/PendleERC4626SCY__factory.ts +1 -1
  251. package/typechain-types/factories/PendleEulerSCY__factory.ts +1 -1
  252. package/typechain-types/factories/PendleFeeDistributorFactory__factory.ts +355 -0
  253. package/typechain-types/factories/PendleFeeDistributor__factory.ts +390 -0
  254. package/typechain-types/factories/PendleGaugeControllerBaseUpg__factory.ts +7 -7
  255. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +8 -8
  256. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +8 -8
  257. package/typechain-types/factories/PendleMarketFactory__factory.ts +20 -13
  258. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  259. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  260. package/typechain-types/factories/PendleQiSAvaxSCY__factory.ts +1 -1
  261. package/typechain-types/factories/PendleQiTokenSCY__factory.ts +1 -1
  262. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  263. package/typechain-types/factories/PendleSAvaxSCY__factory.ts +1 -1
  264. package/typechain-types/factories/PendleSJoeSCY__factory.ts +1 -1
  265. package/typechain-types/factories/PendleStargateSCY__factory.ts +1 -1
  266. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +13 -61
  267. package/typechain-types/factories/PendleWstEthSCY__factory.ts +1 -1
  268. package/typechain-types/factories/PendleYearnVaultSCY__factory.ts +1 -1
  269. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +18 -9
  270. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  271. package/typechain-types/factories/RouterStatic__factory.ts +31 -8
  272. package/typechain-types/factories/SSTORE2DeployerContract__factory.ts +191 -0
  273. package/typechain-types/factories/VotingControllerStorageUpg__factory.ts +12 -192
  274. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +7 -50
  275. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  276. package/typechain-types/hardhat.d.ts +63 -54
  277. package/typechain-types/index.ts +12 -12
  278. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/FeeDistributorVePendle.sol/FeeDistributorVePendle.dbg.json +0 -4
  279. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/FeeDistributorVePendle.sol/FeeDistributorVePendle.json +0 -188
  280. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/PendleFeeDistributorAbstract.sol/PendleFeeDistributorAbstract.dbg.json +0 -4
  281. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/PendleFeeDistributorVoting.sol/PendleFeeDistributorVoting.dbg.json +0 -4
  282. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/PendleFeeDistributorVoting.sol/PendleFeeDistributorVoting.json +0 -206
  283. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/PendleFeeDistributorVotingFactory.sol/PendleFeeDistributorVotingFactory.dbg.json +0 -4
  284. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/PendleFeeDistributorVotingFactory.sol/PendleFeeDistributorVotingFactory.json +0 -149
  285. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +0 -4
  286. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.json +0 -151
  287. package/build/artifacts/contracts/periphery/PendleGovernanceManager.sol/PendleGovernanceManager.dbg.json +0 -4
  288. package/build/artifacts/contracts/periphery/PendleGovernanceManager.sol/PendleGovernanceManager.json +0 -87
  289. package/build/artifacts/contracts/periphery/PermissionsV2Upg.sol/PermissionsV2Upg.dbg.json +0 -4
  290. package/build/artifacts/contracts/periphery/PermissionsV2Upg.sol/PermissionsV2Upg.json +0 -24
  291. package/contracts/periphery/PendleGovernanceManager.sol +0 -38
  292. package/contracts/periphery/PermissionsV2Upg.sol +0 -29
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/b6ca1bd3d285f5444c1a11ab679ab630.json"
4
+ }
@@ -0,0 +1,134 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "SSTORE2DeployerContract",
4
+ "sourceName": "contracts/offchain-helpers/SSTORE2DeployerContract.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "stateMutability": "nonpayable",
9
+ "type": "constructor"
10
+ },
11
+ {
12
+ "anonymous": false,
13
+ "inputs": [
14
+ {
15
+ "indexed": false,
16
+ "internalType": "string",
17
+ "name": "name",
18
+ "type": "string"
19
+ },
20
+ {
21
+ "indexed": false,
22
+ "internalType": "address",
23
+ "name": "addr",
24
+ "type": "address"
25
+ }
26
+ ],
27
+ "name": "Deployed",
28
+ "type": "event"
29
+ },
30
+ {
31
+ "anonymous": false,
32
+ "inputs": [
33
+ {
34
+ "indexed": true,
35
+ "internalType": "address",
36
+ "name": "previousOwner",
37
+ "type": "address"
38
+ },
39
+ {
40
+ "indexed": true,
41
+ "internalType": "address",
42
+ "name": "newOwner",
43
+ "type": "address"
44
+ }
45
+ ],
46
+ "name": "OwnershipTransferred",
47
+ "type": "event"
48
+ },
49
+ {
50
+ "inputs": [],
51
+ "name": "claimOwnership",
52
+ "outputs": [],
53
+ "stateMutability": "nonpayable",
54
+ "type": "function"
55
+ },
56
+ {
57
+ "inputs": [
58
+ {
59
+ "internalType": "string",
60
+ "name": "name",
61
+ "type": "string"
62
+ },
63
+ {
64
+ "internalType": "bytes",
65
+ "name": "creationCode",
66
+ "type": "bytes"
67
+ }
68
+ ],
69
+ "name": "deploy",
70
+ "outputs": [
71
+ {
72
+ "internalType": "address",
73
+ "name": "res",
74
+ "type": "address"
75
+ }
76
+ ],
77
+ "stateMutability": "nonpayable",
78
+ "type": "function"
79
+ },
80
+ {
81
+ "inputs": [],
82
+ "name": "owner",
83
+ "outputs": [
84
+ {
85
+ "internalType": "address",
86
+ "name": "",
87
+ "type": "address"
88
+ }
89
+ ],
90
+ "stateMutability": "view",
91
+ "type": "function"
92
+ },
93
+ {
94
+ "inputs": [],
95
+ "name": "pendingOwner",
96
+ "outputs": [
97
+ {
98
+ "internalType": "address",
99
+ "name": "",
100
+ "type": "address"
101
+ }
102
+ ],
103
+ "stateMutability": "view",
104
+ "type": "function"
105
+ },
106
+ {
107
+ "inputs": [
108
+ {
109
+ "internalType": "address",
110
+ "name": "newOwner",
111
+ "type": "address"
112
+ },
113
+ {
114
+ "internalType": "bool",
115
+ "name": "direct",
116
+ "type": "bool"
117
+ },
118
+ {
119
+ "internalType": "bool",
120
+ "name": "renounce",
121
+ "type": "bool"
122
+ }
123
+ ],
124
+ "name": "transferOwnership",
125
+ "outputs": [],
126
+ "stateMutability": "nonpayable",
127
+ "type": "function"
128
+ }
129
+ ],
130
+ "bytecode": "0x608060405234801561001057600080fd5b50600154600160a81b900460ff1661003557600154600160a01b900460ff161561003d565b61003d6100f1565b6100a55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b600154600160a81b900460ff161580156100cf576001805461ffff60a01b191661010160a01b1790555b6100d761010c565b80156100eb576001805460ff60a81b191690555b5061019c565b60006101063061018d60201b61032b1760201c565b15905090565b600154600160a81b900460ff166101795760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161009c565b600080546001600160a01b03191633179055565b6001600160a01b03163b151590565b610725806101ab6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063078dfbe71461005c5780634e71e0c8146100715780638da5cb5b14610079578063be3397e9146100a8578063e30c3978146100bb575b600080fd5b61006f61006a366004610443565b6100ce565b005b61006f6101d4565b60005461008c906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b61008c6100b63660046104f2565b61027f565b60015461008c906001600160a01b031681565b6000546001600160a01b031633146101015760405162461bcd60e51b81526004016100f8906105cc565b60405180910390fd5b81156101b2576001600160a01b03831615158061011b5750805b61015f5760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b60448201526064016100f8565b600080546040516001600160a01b03808716939216916000805160206106d083398151915291a3600080546001600160a01b0385166001600160a01b031991821617909155600180549091169055505050565b600180546001600160a01b0385166001600160a01b0319909116179055505050565b6001546001600160a01b031633811461022f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e657260448201526064016100f8565b600080546040516001600160a01b03808516939216916000805160206106d083398151915291a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b600080546001600160a01b031633146102aa5760405162461bcd60e51b81526004016100f8906105cc565b6102e983838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061033a92505050565b90507f2009540abb31a9afba343443e75c244a4fc7cf4348628c3dcfce844220e5eaf3848260405161031c929190610631565b60405180910390a19392505050565b6001600160a01b03163b151590565b60008082511161037a5760405162461bcd60e51b815260206004820152600b60248201526a0f4cae4de40d8cadccee8d60ab1b60448201526064016100f8565b61038382610389565b92915050565b6000808260405160200161039d9190610675565b60405160208183030381529060405290506000816040516020016103c1919061069b565b60405160208183030381529060405290508051602082016000f092506001600160a01b0383166104275760405162461bcd60e51b81526020600482015260116024820152701111541313d65351539517d19052531151607a1b60448201526064016100f8565b5050919050565b8035801515811461043e57600080fd5b919050565b60008060006060848603121561045857600080fd5b83356001600160a01b038116811461046f57600080fd5b925061047d6020850161042e565b915061048b6040850161042e565b90509250925092565b634e487b7160e01b600052604160045260246000fd5b60008083601f8401126104bc57600080fd5b5081356001600160401b038111156104d357600080fd5b6020830191508360208285010111156104eb57600080fd5b9250929050565b60008060006040848603121561050757600080fd5b83356001600160401b038082111561051e57600080fd5b818601915086601f83011261053257600080fd5b81358181111561054457610544610494565b604051601f8201601f19908116603f0116810190838211818310171561056c5761056c610494565b8160405282815289602084870101111561058557600080fd5b8260208601602083013760006020848301015280975050505060208601359150808211156105b257600080fd5b506105bf868287016104aa565b9497909650939450505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60005b8381101561061c578181015183820152602001610604565b8381111561062b576000848401525b50505050565b6040815260008351806040840152610650816060850160208801610601565b6001600160a01b0393909316602083015250601f91909101601f191601606001919050565b600081526000825161068e816001850160208701610601565b9190910160010192915050565b6a600b5981380380925939f360a81b815281516000906106c281600b850160208701610601565b91909101600b019291505056fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a264697066735822122018e961e6ffea6e4766cfb887a7790ff3956958a9c83d8f871ed4562dc9f4325864736f6c634300080f0033",
131
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c8063078dfbe71461005c5780634e71e0c8146100715780638da5cb5b14610079578063be3397e9146100a8578063e30c3978146100bb575b600080fd5b61006f61006a366004610443565b6100ce565b005b61006f6101d4565b60005461008c906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b61008c6100b63660046104f2565b61027f565b60015461008c906001600160a01b031681565b6000546001600160a01b031633146101015760405162461bcd60e51b81526004016100f8906105cc565b60405180910390fd5b81156101b2576001600160a01b03831615158061011b5750805b61015f5760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b60448201526064016100f8565b600080546040516001600160a01b03808716939216916000805160206106d083398151915291a3600080546001600160a01b0385166001600160a01b031991821617909155600180549091169055505050565b600180546001600160a01b0385166001600160a01b0319909116179055505050565b6001546001600160a01b031633811461022f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e657260448201526064016100f8565b600080546040516001600160a01b03808516939216916000805160206106d083398151915291a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b600080546001600160a01b031633146102aa5760405162461bcd60e51b81526004016100f8906105cc565b6102e983838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061033a92505050565b90507f2009540abb31a9afba343443e75c244a4fc7cf4348628c3dcfce844220e5eaf3848260405161031c929190610631565b60405180910390a19392505050565b6001600160a01b03163b151590565b60008082511161037a5760405162461bcd60e51b815260206004820152600b60248201526a0f4cae4de40d8cadccee8d60ab1b60448201526064016100f8565b61038382610389565b92915050565b6000808260405160200161039d9190610675565b60405160208183030381529060405290506000816040516020016103c1919061069b565b60405160208183030381529060405290508051602082016000f092506001600160a01b0383166104275760405162461bcd60e51b81526020600482015260116024820152701111541313d65351539517d19052531151607a1b60448201526064016100f8565b5050919050565b8035801515811461043e57600080fd5b919050565b60008060006060848603121561045857600080fd5b83356001600160a01b038116811461046f57600080fd5b925061047d6020850161042e565b915061048b6040850161042e565b90509250925092565b634e487b7160e01b600052604160045260246000fd5b60008083601f8401126104bc57600080fd5b5081356001600160401b038111156104d357600080fd5b6020830191508360208285010111156104eb57600080fd5b9250929050565b60008060006040848603121561050757600080fd5b83356001600160401b038082111561051e57600080fd5b818601915086601f83011261053257600080fd5b81358181111561054457610544610494565b604051601f8201601f19908116603f0116810190838211818310171561056c5761056c610494565b8160405282815289602084870101111561058557600080fd5b8260208601602083013760006020848301015280975050505060208601359150808211156105b257600080fd5b506105bf868287016104aa565b9497909650939450505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60005b8381101561061c578181015183820152602001610604565b8381111561062b576000848401525b50505050565b6040815260008351806040840152610650816060850160208801610601565b6001600160a01b0393909316602083015250601f91909101601f191601606001919050565b600081526000825161068e816001850160208701610601565b9190910160010192915050565b6a600b5981380380925939f360a81b815281516000906106c281600b850160208701610601565b91909101600b019291505056fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a264697066735822122018e961e6ffea6e4766cfb887a7790ff3956958a9c83d8f871ed4562dc9f4325864736f6c634300080f0033",
132
+ "linkReferences": {},
133
+ "deployedLinkReferences": {}
134
+ }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/680fcfa2ffdc1307cb9af365e9ab480a.json"
3
+ "buildInfo": "../../../build-info/b6ca1bd3d285f5444c1a11ab679ab630.json"
4
4
  }
@@ -79,8 +79,8 @@
79
79
  "type": "function"
80
80
  }
81
81
  ],
82
- "bytecode": "0x608060405234801561001057600080fd5b50610349806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063078dfbe7146100515780634e71e0c8146100665780638da5cb5b1461006e578063e30c39781461009d575b600080fd5b61006461005f3660046102a2565b6100b0565b005b6100646101e2565b600054610081906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b600154610081906001600160a01b031681565b6000546001600160a01b0316331461010f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b81156101c0576001600160a01b0383161515806101295750805b61016d5760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b6044820152606401610106565b600080546040516001600160a01b03808716939216916000805160206102f483398151915291a3600080546001600160a01b0385166001600160a01b031991821617909155600180549091169055505050565b600180546001600160a01b0385166001600160a01b0319909116179055505050565b6001546001600160a01b031633811461023d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152606401610106565b600080546040516001600160a01b03808516939216916000805160206102f483398151915291a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b8035801515811461029d57600080fd5b919050565b6000806000606084860312156102b757600080fd5b83356001600160a01b03811681146102ce57600080fd5b92506102dc6020850161028d565b91506102ea6040850161028d565b9050925092509256fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a264697066735822122037e9efeed25db56e2246dd9c1ed17d806cc69d8ee958a6529f57b44e748be7ce64736f6c634300080f0033",
83
- "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c8063078dfbe7146100515780634e71e0c8146100665780638da5cb5b1461006e578063e30c39781461009d575b600080fd5b61006461005f3660046102a2565b6100b0565b005b6100646101e2565b600054610081906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b600154610081906001600160a01b031681565b6000546001600160a01b0316331461010f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b81156101c0576001600160a01b0383161515806101295750805b61016d5760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b6044820152606401610106565b600080546040516001600160a01b03808716939216916000805160206102f483398151915291a3600080546001600160a01b0385166001600160a01b031991821617909155600180549091169055505050565b600180546001600160a01b0385166001600160a01b0319909116179055505050565b6001546001600160a01b031633811461023d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152606401610106565b600080546040516001600160a01b03808516939216916000805160206102f483398151915291a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b8035801515811461029d57600080fd5b919050565b6000806000606084860312156102b757600080fd5b83356001600160a01b03811681146102ce57600080fd5b92506102dc6020850161028d565b91506102ea6040850161028d565b9050925092509256fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a264697066735822122037e9efeed25db56e2246dd9c1ed17d806cc69d8ee958a6529f57b44e748be7ce64736f6c634300080f0033",
82
+ "bytecode": "0x",
83
+ "deployedBytecode": "0x",
84
84
  "linkReferences": {},
85
85
  "deployedLinkReferences": {}
86
86
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/680fcfa2ffdc1307cb9af365e9ab480a.json"
3
+ "buildInfo": "../../../build-info/b6ca1bd3d285f5444c1a11ab679ab630.json"
4
4
  }
@@ -30,8 +30,8 @@
30
30
  "type": "function"
31
31
  }
32
32
  ],
33
- "bytecode": "0x6080604052348015600f57600080fd5b5060ad8061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c80638da5cb5b146037578063e30c3978146065575b600080fd5b6000546049906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6001546049906001600160a01b03168156fea2646970667358221220803cd87cbcfbd2eb2588b597af5f32cd7788dfbf5e4a039fd21501fbef36d99c64736f6c634300080f0033",
34
- "deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060325760003560e01c80638da5cb5b146037578063e30c3978146065575b600080fd5b6000546049906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6001546049906001600160a01b03168156fea2646970667358221220803cd87cbcfbd2eb2588b597af5f32cd7788dfbf5e4a039fd21501fbef36d99c64736f6c634300080f0033",
33
+ "bytecode": "0x6080604052348015600f57600080fd5b5060ad8061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c80638da5cb5b146037578063e30c3978146065575b600080fd5b6000546049906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6001546049906001600160a01b03168156fea2646970667358221220849c3281d75d7ca017c0090d78db468137746b020f50b2b935e8d509719c9d0064736f6c634300080f0033",
34
+ "deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060325760003560e01c80638da5cb5b146037578063e30c3978146065575b600080fd5b6000546049906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6001546049906001600160a01b03168156fea2646970667358221220849c3281d75d7ca017c0090d78db468137746b020f50b2b935e8d509719c9d0064736f6c634300080f0033",
35
35
  "linkReferences": {},
36
36
  "deployedLinkReferences": {}
37
37
  }
@@ -62,7 +62,7 @@ abstract contract PendleGaugeControllerBaseUpg is IPGaugeController, BoringOwnab
62
62
  - rewardData[market] is updated with the data up to now
63
63
  - all accumulatedPendle is transferred out & the accumulatedPendle is set to 0
64
64
  */
65
- function claimMarketReward() external onlyPendleMarket {
65
+ function redeemMarketReward() external onlyPendleMarket {
66
66
  address market = msg.sender;
67
67
  rewardData[market] = _getUpdatedMarketReward(market);
68
68
 
@@ -97,7 +97,7 @@ abstract contract PendleGauge is RewardManager, IPGauge {
97
97
 
98
98
  function _redeemExternalReward() internal virtual override {
99
99
  ISuperComposableYield(SCY).claimRewards(address(this));
100
- IPGaugeController(gaugeController).claimMarketReward();
100
+ IPGaugeController(gaugeController).redeemMarketReward();
101
101
  }
102
102
 
103
103
  function _stakedBalance(address user) internal view virtual returns (uint256);
@@ -7,8 +7,7 @@ import "../../../libraries/VeBalanceLib.sol";
7
7
  import "../../../libraries/math/Math.sol";
8
8
  import "../../../interfaces/IPGaugeControllerMainchain.sol";
9
9
  import "../../../interfaces/IPVotingController.sol";
10
- import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
11
- import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
10
+ import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";
12
11
 
13
12
  /*
14
13
  Voting accounting:
@@ -17,52 +17,47 @@ contract PendleMarketFactory is BoringOwnableUpgradeable, IPMarketFactory {
17
17
 
18
18
  struct MarketConfig {
19
19
  address treasury;
20
- uint96 lnFeeRateRoot;
21
- // 1 SLOT = 256 bits
20
+ uint88 lnFeeRateRoot;
22
21
  uint8 reserveFeePercent;
23
- // 1 SLOT = 8 bits
22
+ // 1 SLOT = 256 bits
24
23
  }
25
24
 
26
- uint256 private constant MIN_RATE_ORACLE_TIME_WINDOW = 300 seconds;
27
-
28
25
  address public immutable yieldContractFactory;
29
- address public marketCreationCodePointer;
26
+ address public immutable marketCreationCodePointer;
30
27
  uint256 public immutable maxLnFeeRateRoot;
31
28
 
32
29
  // PT -> scalarRoot -> initialAnchor
33
30
  mapping(address => mapping(int256 => mapping(int256 => address))) internal markets;
34
31
  EnumerableSet.AddressSet internal allMarkets;
35
-
36
32
  address public vePendle;
37
33
  address public gaugeController;
38
34
 
39
35
  MarketConfig public marketConfig;
40
36
 
41
- constructor(
42
- address _yieldContractFactory
43
- ) {
37
+ constructor(address _yieldContractFactory, address _marketCreationCodePointer) {
44
38
  require(_yieldContractFactory != address(0), "zero address");
45
39
  yieldContractFactory = _yieldContractFactory;
46
40
  maxLnFeeRateRoot = uint256(LogExpMath.ln(int256((105 * Math.IONE) / 100))); // ln(1.05)
41
+
42
+ marketCreationCodePointer = _marketCreationCodePointer;
47
43
  }
48
44
 
49
45
  function initialize(
50
46
  address _treasury,
51
- uint96 _lnFeeRateRoot,
47
+ uint88 _lnFeeRateRoot,
52
48
  uint8 _reserveFeePercent,
53
49
  address newVePendle,
54
- address newGaugeController,
55
- bytes memory _marketCreationCode
50
+ address newGaugeController
56
51
  ) external initializer {
52
+ require(newVePendle != address(0) && newGaugeController != address(0), "zero address");
53
+
57
54
  __BoringOwnable_init();
58
55
  setTreasury(_treasury);
59
56
  setlnFeeRateRoot(_lnFeeRateRoot);
60
57
  setReserveFeePercent(_reserveFeePercent);
61
58
 
62
- require(newVePendle != address(0) && newGaugeController != address(0), "zero address");
63
59
  vePendle = newVePendle;
64
60
  gaugeController = newGaugeController;
65
- marketCreationCodePointer = SSTORE2Deployer.setCreationCode(_marketCreationCode);
66
61
  }
67
62
 
68
63
  /**
@@ -106,7 +101,7 @@ contract PendleMarketFactory is BoringOwnableUpgradeable, IPMarketFactory {
106
101
  _emitNewMarketConfigEvent();
107
102
  }
108
103
 
109
- function setlnFeeRateRoot(uint96 newlnFeeRateRoot) public onlyOwner {
104
+ function setlnFeeRateRoot(uint88 newlnFeeRateRoot) public onlyOwner {
110
105
  require(newlnFeeRateRoot <= maxLnFeeRateRoot, "invalid fee rate root");
111
106
  marketConfig.lnFeeRateRoot = newlnFeeRateRoot;
112
107
  _emitNewMarketConfigEvent();
@@ -1,8 +1,7 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity 0.8.15;
3
3
 
4
- import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
- import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
4
+ import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";
6
5
  import "@openzeppelin/contracts/proxy/Proxy.sol";
7
6
  import "../interfaces/IPAllAction.sol";
8
7
  import "../interfaces/IPMarketSwapCallback.sol";
@@ -38,7 +37,6 @@ contract PendleRouter is Proxy, Initializable, UUPSUpgradeable, BoringOwnableUpg
38
37
  }
39
38
 
40
39
  function initialize() external initializer {
41
- __UUPSUpgradeable_init();
42
40
  __BoringOwnable_init();
43
41
  }
44
42
 
@@ -6,7 +6,7 @@ import "../../interfaces/IPYieldToken.sol";
6
6
 
7
7
  import "../PendleERC20.sol";
8
8
  import "../../libraries/helpers/MiniHelpers.sol";
9
- import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
9
+ import "@openzeppelin/contracts/proxy/utils/Initializable.sol";
10
10
 
11
11
  contract PendlePrincipalToken is PendleERC20, Initializable, IPPrincipalToken {
12
12
  address public immutable SCY;
@@ -44,7 +44,7 @@ contract PendleYieldContractFactory is BoringOwnableUpgradeable, IPYieldContract
44
44
  string private constant PT_PREFIX = "PT";
45
45
  string private constant YT_PREFIX = "YT";
46
46
 
47
- address public pendleYtCreationCodePointer;
47
+ address public immutable pendleYtCreationCodePointer;
48
48
 
49
49
  // 1 SLOT
50
50
  uint128 public interestFeeRate; // a fixed point number
@@ -60,21 +60,21 @@ contract PendleYieldContractFactory is BoringOwnableUpgradeable, IPYieldContract
60
60
  mapping(address => bool) public isPT;
61
61
  mapping(address => bool) public isYT;
62
62
 
63
- constructor() {}
63
+ constructor(address _pendleYtCreationCodePointer) {
64
+ pendleYtCreationCodePointer = _pendleYtCreationCodePointer;
65
+ }
64
66
 
65
67
  function initialize(
66
68
  uint96 _expiryDivisor,
67
69
  uint128 _interestFeeRate,
68
70
  uint128 _rewardFeeRate,
69
- address _treasury,
70
- bytes memory _pendleYtCreationCode
71
+ address _treasury
71
72
  ) external initializer {
72
73
  __BoringOwnable_init();
73
74
  setExpiryDivisor(_expiryDivisor);
74
75
  setInterestFeeRate(_interestFeeRate);
75
76
  setRewardFeeRate(_rewardFeeRate);
76
77
  setTreasury(_treasury);
77
- pendleYtCreationCodePointer = SSTORE2Deployer.setCreationCode(_pendleYtCreationCode);
78
78
  }
79
79
 
80
80
  /**
@@ -120,5 +120,146 @@ contract ActionMintRedeem is IPActionMintRedeem, ActionBaseMintRedeem {
120
120
  for (uint256 i = 0; i < markets.length; ++i) {
121
121
  marketRewards[i] = IPMarket(markets[i]).redeemRewards(user);
122
122
  }
123
+ emit RedeemDueInterestAndRewards(
124
+ user,
125
+ scys,
126
+ yts,
127
+ markets,
128
+ scyRewards,
129
+ ytInterests,
130
+ ytRewards,
131
+ marketRewards
132
+ );
133
+ }
134
+
135
+ struct RouterTokenAmounts {
136
+ address[] tokens;
137
+ uint256[] amounts;
138
+ }
139
+
140
+ function redeemDueInterestAndRewardsThenSwapAll(
141
+ address[] calldata scys,
142
+ RouterYtRedeemStruct calldata dataYT,
143
+ address[] calldata markets,
144
+ RouterSwapAllStruct calldata dataSwap
145
+ ) external returns (uint256 netTokenOut, uint256[] memory amountsSwapped) {
146
+ require(dataSwap.tokens.length == dataSwap.kybercalls.length, "invalid dataSwap");
147
+ require(dataYT.tokenRedeemScys.length == dataYT.scyAddrs.length, "invalid dataYT");
148
+
149
+ RouterTokenAmounts memory tokensOut = _newRouterTokenAmounts(dataSwap.tokens);
150
+ RouterTokenAmounts memory scysOut = _newRouterTokenAmounts(dataYT.scyAddrs);
151
+
152
+ // redeem SCY
153
+ for (uint256 i = 0; i < scys.length; ++i) {
154
+ ISuperComposableYield SCY = ISuperComposableYield(scys[i]);
155
+
156
+ address[] memory rewardTokens = SCY.getRewardTokens();
157
+ uint256[] memory rewardAmounts = SCY.claimRewards(msg.sender);
158
+ _addTokenAmounts(tokensOut, rewardTokens, rewardAmounts);
159
+ }
160
+
161
+ // redeem YT
162
+ for (uint256 i = 0; i < dataYT.yts.length; ++i) {
163
+ IPYieldToken YT = IPYieldToken(dataYT.yts[i]);
164
+
165
+ (uint256 interestAmount, uint256[] memory rewardAmounts) = YT
166
+ .redeemDueInterestAndRewards(msg.sender, true, true);
167
+
168
+ address scyAddr = YT.SCY();
169
+ address[] memory rewardTokens = YT.getRewardTokens();
170
+
171
+ _addTokenAmount(scysOut, scyAddr, interestAmount);
172
+ _addTokenAmounts(tokensOut, rewardTokens, rewardAmounts);
173
+ }
174
+
175
+ // redeem market
176
+ for (uint256 i = 0; i < markets.length; ++i) {
177
+ IPMarket market = IPMarket(markets[i]);
178
+
179
+ address[] memory rewardTokens = market.getRewardTokens();
180
+ uint256[] memory rewardAmounts = market.redeemRewards(msg.sender);
181
+ _addTokenAmounts(tokensOut, rewardTokens, rewardAmounts);
182
+ }
183
+
184
+ // guaranteed no ETH, all rewards are ERC20
185
+ _transferFrom(tokensOut.tokens, msg.sender, address(this), tokensOut.amounts);
186
+ _redeemAllScys(scysOut, dataYT.tokenRedeemScys, tokensOut);
187
+
188
+ // now swap all to outputToken
189
+ netTokenOut = _swapAllToOutputToken(tokensOut, dataSwap);
190
+ amountsSwapped = tokensOut.amounts;
191
+
192
+ emit RedeemDueInterestAndRewardsThenSwapAll(
193
+ msg.sender,
194
+ scys,
195
+ dataYT.yts,
196
+ markets,
197
+ dataSwap.outputToken,
198
+ netTokenOut
199
+ );
200
+ }
201
+
202
+ function _newRouterTokenAmounts(address[] memory tokens)
203
+ internal
204
+ pure
205
+ returns (RouterTokenAmounts memory)
206
+ {
207
+ return RouterTokenAmounts(tokens, new uint256[](tokens.length));
208
+ }
209
+
210
+ /// @dev pull SCYs from users & redeem them, then add to tokensOut
211
+ function _redeemAllScys(
212
+ RouterTokenAmounts memory scys,
213
+ address[] calldata tokenRedeemScys,
214
+ RouterTokenAmounts memory tokensOut
215
+ ) internal {
216
+ for (uint256 i = 0; i < scys.tokens.length; ++i) {
217
+ if (scys.amounts[i] == 0) continue;
218
+
219
+ _transferFrom(scys.tokens[i], msg.sender, scys.tokens[i], scys.amounts[i]);
220
+ uint256 amountOut = ISuperComposableYield(scys.tokens[i]).redeemAfterTransfer(
221
+ address(this),
222
+ tokenRedeemScys[i],
223
+ 1
224
+ );
225
+
226
+ _addTokenAmount(tokensOut, tokenRedeemScys[i], amountOut);
227
+ }
228
+ }
229
+
230
+ function _swapAllToOutputToken(
231
+ RouterTokenAmounts memory tokens,
232
+ RouterSwapAllStruct memory dataSwap
233
+ ) internal returns (uint256 netTokenOut) {
234
+ for (uint256 i = 0; i < tokens.tokens.length; ++i) {
235
+ if (tokens.amounts[i] == 0) continue;
236
+ _kyberswap(tokens.tokens[i], tokens.amounts[i], dataSwap.kybercalls[i]);
237
+ }
238
+ netTokenOut = _selfBalance(dataSwap.outputToken);
239
+ _transferOut(dataSwap.outputToken, msg.sender, netTokenOut);
240
+ }
241
+
242
+ function _addTokenAmount(
243
+ RouterTokenAmounts memory data,
244
+ address token,
245
+ uint256 amount
246
+ ) internal pure {
247
+ for (uint256 j = 0; j < data.tokens.length; j++) {
248
+ if (data.tokens[j] == token) {
249
+ data.amounts[j] += amount;
250
+ return;
251
+ }
252
+ }
253
+ revert("token not found");
254
+ }
255
+
256
+ function _addTokenAmounts(
257
+ RouterTokenAmounts memory data,
258
+ address[] memory tokens,
259
+ uint256[] memory amounts
260
+ ) internal pure {
261
+ for (uint256 i = 0; i < tokens.length; i++) {
262
+ _addTokenAmount(data, tokens[i], amounts[i]);
263
+ }
123
264
  }
124
265
  }
@@ -68,7 +68,6 @@ abstract contract ActionBaseMintRedeem is TokenHelper, KyberSwapHelper {
68
68
  output.tokenRedeemScy,
69
69
  1
70
70
  );
71
- _safeApproveInf(output.tokenRedeemScy, SCY);
72
71
  _kyberswap(output.tokenRedeemScy, netTokenRedeemed, output.kybercall);
73
72
 
74
73
  netTokenOut = _selfBalance(output.tokenOut);
@@ -57,6 +57,26 @@ interface IPActionMintRedeem {
57
57
  uint256 netTokenOut
58
58
  );
59
59
 
60
+ event RedeemDueInterestAndRewards(
61
+ address indexed user,
62
+ address[] scys,
63
+ address[] yts,
64
+ address[] markets,
65
+ uint256[][] scyRewards,
66
+ uint256[] ytInterests,
67
+ uint256[][] ytRewards,
68
+ uint256[][] marketRewards
69
+ );
70
+
71
+ event RedeemDueInterestAndRewardsThenSwapAll(
72
+ address indexed user,
73
+ address[] scys,
74
+ address[] yts,
75
+ address[] markets,
76
+ address indexed tokenOut,
77
+ uint256 netTokenOut
78
+ );
79
+
60
80
  function mintScyFromToken(
61
81
  address receiver,
62
82
  address SCY,
@@ -112,4 +132,27 @@ interface IPActionMintRedeem {
112
132
  uint256[][] memory ytRewards,
113
133
  uint256[][] memory marketRewards
114
134
  );
135
+
136
+ struct RouterYtRedeemStruct {
137
+ address[] yts;
138
+ // key-value pair
139
+ address[] scyAddrs;
140
+ address[] tokenRedeemScys;
141
+ //
142
+ }
143
+
144
+ struct RouterSwapAllStruct {
145
+ // key-value pair
146
+ address[] tokens;
147
+ bytes[] kybercalls;
148
+ //
149
+ address outputToken;
150
+ }
151
+
152
+ function redeemDueInterestAndRewardsThenSwapAll(
153
+ address[] calldata scys,
154
+ RouterYtRedeemStruct calldata dataYT,
155
+ address[] calldata markets,
156
+ RouterSwapAllStruct calldata dataSwap
157
+ ) external returns (uint256 netTokenOut, uint256[] memory amountsSwapped);
115
158
  }
@@ -12,7 +12,7 @@ interface IPGaugeController {
12
12
 
13
13
  function pendle() external returns (address);
14
14
 
15
- function claimMarketReward() external;
15
+ function redeemMarketReward() external;
16
16
 
17
17
  function rewardData(address pool)
18
18
  external
@@ -21,7 +21,7 @@ interface IPMarketFactory {
21
21
  view
22
22
  returns (
23
23
  address treasury,
24
- uint96 lnFeeRateRoot,
24
+ uint88 lnFeeRateRoot,
25
25
  uint8 reserveFeePercent
26
26
  );
27
27
  }
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity 0.8.15;
3
3
 
4
- import "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol";
4
+ import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
5
5
 
6
6
  interface ISJoe {
7
7
  function joe() external view returns (address);
@@ -23,7 +23,7 @@ interface ISJoe {
23
23
  * @return The amount of JOE user has deposited
24
24
  * @return The reward debt for the chosen token
25
25
  */
26
- function getUserInfo(address _user, IERC20Upgradeable _rewardToken)
26
+ function getUserInfo(address _user, IERC20 _rewardToken)
27
27
  external
28
28
  view
29
29
  returns (uint256, uint256);
@@ -42,10 +42,7 @@ interface ISJoe {
42
42
  * @param _token The address of the token
43
43
  * @return `_user`'s pending reward token
44
44
  */
45
- function pendingReward(address _user, IERC20Upgradeable _token)
46
- external
47
- view
48
- returns (uint256);
45
+ function pendingReward(address _user, IERC20 _token) external view returns (uint256);
49
46
 
50
47
  /**
51
48
  * @notice Withdraw JOE and harvest the rewards
@@ -66,4 +66,13 @@ library PYIndexLib {
66
66
  return sign * (SCYUtils.assetToScy(PYIndex.unwrap(index), assetAmount.abs())).Int();
67
67
  }
68
68
 
69
+ function assetToScyUp(PYIndex index, int256 assetAmount)
70
+ internal
71
+ pure
72
+ returns (int256)
73
+ {
74
+ int256 sign = assetAmount < 0 ? int256(-1) : int256(1);
75
+ return sign * (SCYUtils.assetToScyUp(PYIndex.unwrap(index), assetAmount.abs())).Int();
76
+ }
77
+
69
78
  }