@pendle/core-v2 5.6.0 → 5.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 (295) hide show
  1. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  2. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  3. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  4. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  6. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  7. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
  8. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  10. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  11. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  12. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  13. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  14. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
  15. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  16. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  18. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  19. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  20. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  21. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  22. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  23. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  24. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  25. package/build/artifacts/contracts/core/Market/v1/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  26. package/build/artifacts/contracts/core/Market/v1/PendleMarket.sol/PendleMarket.json +2 -2
  27. package/build/artifacts/contracts/core/Market/v1/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  28. package/build/artifacts/contracts/core/Market/v1/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  29. package/build/artifacts/contracts/core/Market/v3/PendleMarketFactoryV3.sol/PendleMarketFactoryV3.dbg.json +1 -1
  30. package/build/artifacts/contracts/core/Market/v3/PendleMarketFactoryV3.sol/PendleMarketFactoryV3.json +2 -2
  31. package/build/artifacts/contracts/core/Market/v3/PendleMarketV3.sol/PendleMarketV3.dbg.json +1 -1
  32. package/build/artifacts/contracts/core/Market/v3/PendleMarketV3.sol/PendleMarketV3.json +2 -2
  33. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.json +2 -2
  37. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  40. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  42. package/build/artifacts/contracts/core/libraries/math/PMath.sol/PMath.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/libraries/math/PMath.sol/PMath.json +2 -2
  44. package/build/artifacts/contracts/interfaces/IOwnable.sol/IOwnable.dbg.json +4 -0
  45. package/build/artifacts/contracts/interfaces/IOwnable.sol/IOwnable.json +34 -0
  46. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.dbg.json +1 -1
  47. package/build/artifacts/contracts/interfaces/IPActionCallbackV3.sol/IPActionCallbackV3.dbg.json +1 -1
  48. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  49. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
  50. package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.dbg.json +1 -1
  51. package/build/artifacts/contracts/interfaces/IPActionSimple.sol/IPActionSimple.dbg.json +1 -1
  52. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  53. package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.dbg.json +1 -1
  54. package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.dbg.json +1 -1
  55. package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.dbg.json +1 -1
  56. package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.dbg.json +1 -1
  57. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionAddRemoveLiqV3Events.dbg.json +1 -1
  58. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionMiscV3Events.dbg.json +1 -1
  59. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionStorageEvents.dbg.json +1 -1
  60. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapPTV3Events.dbg.json +1 -1
  61. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapYTV3Events.dbg.json +1 -1
  62. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPAllEventsV3.dbg.json +1 -1
  63. package/build/artifacts/contracts/interfaces/IPCommonSYFactory.sol/IPCommonSYFactory.dbg.json +4 -0
  64. package/build/artifacts/contracts/interfaces/IPCommonSYFactory.sol/IPCommonSYFactory.json +40 -0
  65. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitOrderType.dbg.json +1 -1
  66. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouter.dbg.json +1 -1
  67. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouterCallback.dbg.json +1 -1
  68. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  69. package/build/artifacts/contracts/interfaces/IPMarketV3.sol/IPMarketV3.dbg.json +1 -1
  70. package/build/artifacts/contracts/interfaces/IPPoolDeployHelperV2.sol/IPPoolDeployHelperV2.dbg.json +4 -0
  71. package/build/artifacts/contracts/interfaces/IPPoolDeployHelperV2.sol/IPPoolDeployHelperV2.json +162 -0
  72. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  73. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  74. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  75. package/build/artifacts/contracts/interfaces/IPendleCommonPoolDeployHelperV2.sol/IPendleCommonPoolDeployHelperV2.dbg.json +4 -0
  76. package/build/artifacts/contracts/interfaces/IPendleCommonPoolDeployHelperV2.sol/IPendleCommonPoolDeployHelperV2.json +426 -0
  77. package/build/artifacts/contracts/limit/LimitMathCore.sol/LimitMathCore.dbg.json +1 -1
  78. package/build/artifacts/contracts/limit/LimitMathCore.sol/LimitMathCore.json +2 -2
  79. package/build/artifacts/contracts/limit/LimitRouterBase.sol/LimitRouterBase.dbg.json +1 -1
  80. package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.dbg.json +1 -1
  81. package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.json +2 -2
  82. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
  83. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +2 -2
  84. package/build/artifacts/contracts/offchain-helpers/LimitBackendHelper.sol/LimitBackendHelper.dbg.json +1 -1
  85. package/build/artifacts/contracts/offchain-helpers/LimitBackendHelper.sol/LimitBackendHelper.json +2 -2
  86. package/build/artifacts/contracts/offchain-helpers/PendleExchangeRateOracle.sol/PendleExchangeRateOracle.dbg.json +1 -1
  87. package/build/artifacts/contracts/offchain-helpers/PendleExchangeRateOracle.sol/PendleExchangeRateOracle.json +2 -2
  88. package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol/PendleCommonPoolDeployHelperV2.dbg.json +4 -0
  89. package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol/PendleCommonPoolDeployHelperV2.json +651 -0
  90. package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonSYFactory.sol/PendleCommonSYFactory.dbg.json +4 -0
  91. package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonSYFactory.sol/PendleCommonSYFactory.json +329 -0
  92. package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +4 -0
  93. package/build/artifacts/contracts/offchain-helpers/{PendlePoolDeployHelper.sol → deploy/PendlePoolDeployHelper.sol}/PendlePoolDeployHelper.json +3 -3
  94. package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol/PendlePoolDeployHelperV2.dbg.json +4 -0
  95. package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol/PendlePoolDeployHelperV2.json +235 -0
  96. package/build/artifacts/contracts/offchain-helpers/deploy/lib/MarketDeployLib.sol/MarketDeployLib.dbg.json +4 -0
  97. package/build/artifacts/contracts/offchain-helpers/deploy/lib/MarketDeployLib.sol/MarketDeployLib.json +10 -0
  98. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  99. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  100. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  101. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  102. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  103. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
  104. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  105. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -2
  106. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  107. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
  108. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  109. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -2
  110. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  111. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  112. package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtInLibV1.dbg.json +1 -1
  113. package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtInLibV1.json +2 -2
  114. package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtOutLibV1.dbg.json +1 -1
  115. package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtOutLibV1.json +2 -2
  116. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  117. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
  118. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendleLpOracleLib.sol/PendleLpOracleLib.json +2 -2
  119. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYLpOracle.sol/PendlePYLpOracle.dbg.json +1 -1
  120. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYLpOracle.sol/PendlePYLpOracle.json +2 -2
  121. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYOracleLib.sol/PendlePYOracleLib.dbg.json +1 -1
  122. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYOracleLib.sol/PendlePYOracleLib.json +2 -2
  123. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracle.sol/PendleChainlinkOracle.dbg.json +1 -1
  124. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracle.sol/PendleChainlinkOracle.json +2 -2
  125. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.dbg.json +1 -1
  126. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.json +2 -2
  127. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.dbg.json +1 -1
  128. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.json +2 -2
  129. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringLpSeller.sol/BoringLpSeller.dbg.json +1 -1
  130. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.dbg.json +1 -1
  131. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.json +2 -2
  132. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.dbg.json +1 -1
  133. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.json +2 -2
  134. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
  135. package/build/artifacts/contracts/oracles/internal/PendleBoringOneracle.sol/PendleBoringOneracle.dbg.json +1 -1
  136. package/build/artifacts/contracts/oracles/internal/PendleBoringOneracle.sol/PendleBoringOneracle.json +2 -2
  137. package/build/artifacts/contracts/oracles/internal/PendleBoringSolvBTCOneracle.sol/PendleBoringSolvBTCOneracle.dbg.json +1 -1
  138. package/build/artifacts/contracts/oracles/internal/PendleBoringSolvBTCOneracle.sol/PendleBoringSolvBTCOneracle.json +2 -2
  139. package/build/artifacts/contracts/oracles/internal/PendleRedStoneRateOracleAdapter.sol/PendleRedStoneRateOracleAdapter.dbg.json +1 -1
  140. package/build/artifacts/contracts/oracles/internal/PendleRedStoneRateOracleAdapter.sol/PendleRedStoneRateOracleAdapter.json +2 -2
  141. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol/PendleSparkLinearDiscountOracleFactory.dbg.json +1 -1
  142. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol/PendleSparkLinearDiscountOracleFactory.json +29 -5
  143. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.dbg.json +1 -1
  144. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.json +2 -2
  145. package/build/artifacts/contracts/router/ActionCallbackV3.sol/ActionCallbackV3.dbg.json +1 -1
  146. package/build/artifacts/contracts/router/ActionCallbackV3.sol/ActionCallbackV3.json +2 -2
  147. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.dbg.json +1 -1
  148. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.json +2 -2
  149. package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.dbg.json +1 -1
  150. package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.json +2 -2
  151. package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.dbg.json +1 -1
  152. package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.json +2 -2
  153. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.dbg.json +1 -1
  154. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.json +2 -2
  155. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.dbg.json +1 -1
  156. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.json +2 -2
  157. package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.dbg.json +1 -1
  158. package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.json +2 -2
  159. package/build/artifacts/contracts/router/Reflector.sol/Reflector.dbg.json +1 -1
  160. package/build/artifacts/contracts/router/Reflector.sol/Reflector.json +2 -2
  161. package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.dbg.json +1 -1
  162. package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.dbg.json +1 -1
  163. package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.json +2 -2
  164. package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.dbg.json +1 -1
  165. package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.json +2 -2
  166. package/build/artifacts/contracts/router/math/MarketApproxEstimateLib.sol/MarketApproxEstimateLib.dbg.json +1 -1
  167. package/build/artifacts/contracts/router/math/MarketApproxEstimateLib.sol/MarketApproxEstimateLib.json +2 -2
  168. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.dbg.json +1 -1
  169. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.json +2 -2
  170. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.dbg.json +1 -1
  171. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.json +2 -2
  172. package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtInLibV2.dbg.json +1 -1
  173. package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtInLibV2.json +2 -2
  174. package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtOutLibV2.dbg.json +1 -1
  175. package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtOutLibV2.json +2 -2
  176. package/contracts/core/libraries/math/PMath.sol +5 -0
  177. package/contracts/interfaces/IOwnable.sol +6 -0
  178. package/contracts/interfaces/IPCommonSYFactory.sol +6 -0
  179. package/contracts/interfaces/IPPoolDeployHelperV2.sol +36 -0
  180. package/contracts/interfaces/IPendleCommonPoolDeployHelperV2.sol +30 -0
  181. package/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol +68 -0
  182. package/contracts/offchain-helpers/deploy/PendleCommonSYFactory.sol +67 -0
  183. package/contracts/offchain-helpers/{PendlePoolDeployHelper.sol → deploy/PendlePoolDeployHelper.sol} +5 -5
  184. package/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol +159 -0
  185. package/contracts/offchain-helpers/deploy/lib/MarketDeployLib.sol +70 -0
  186. package/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol +9 -2
  187. package/deployments/146-core.json +47 -0
  188. package/deployments/146-offchain-helper.json +6 -0
  189. package/package.json +1 -1
  190. package/typechain-types/BoringPYUsdChainlinkAssetOracle.ts +244 -0
  191. package/typechain-types/BoringPYUsdChainlinkSYOracle.ts +243 -0
  192. package/typechain-types/Broadcaster.ts +454 -0
  193. package/typechain-types/IOwnable.ts +114 -0
  194. package/typechain-types/IPActionMarketCoreStatic.ts +1974 -0
  195. package/typechain-types/IPCommonSYFactory.ts +111 -0
  196. package/typechain-types/IPMarket.ts +1045 -0
  197. package/typechain-types/IPMarketV3.ts +1068 -0
  198. package/typechain-types/IPPoolDeployHelperV2.ts +209 -0
  199. package/typechain-types/IPVotingController.ts +510 -0
  200. package/typechain-types/IPVotingEscrowMainchain.ts +461 -0
  201. package/typechain-types/IPendleCommonPoolDeployHelperV2.ts +391 -0
  202. package/typechain-types/InterestManagerYT.ts +120 -0
  203. package/typechain-types/PendleBoringOneracle.ts +87 -0
  204. package/typechain-types/PendleBoringSolvBTCOneracle.ts +87 -0
  205. package/typechain-types/PendleChainlinkOracle.ts +299 -0
  206. package/typechain-types/PendleChainlinkOracleFactory.ts +468 -0
  207. package/typechain-types/PendleChainlinkOracleWithQuote.ts +335 -0
  208. package/typechain-types/PendleCommonPoolDeployHelperV2.ts +698 -0
  209. package/typechain-types/PendleCommonSYFactory.ts +420 -0
  210. package/typechain-types/PendleExchangeRateOracle.ts +393 -0
  211. package/typechain-types/PendleFeeDistributor.ts +745 -0
  212. package/typechain-types/PendleGauge.ts +225 -0
  213. package/typechain-types/PendleGaugeControllerBaseUpg.ts +670 -0
  214. package/typechain-types/PendleGaugeControllerMainchainUpg.ts +758 -0
  215. package/typechain-types/PendleGaugeControllerSidechainUpg.ts +750 -0
  216. package/typechain-types/PendleMarket.ts +1207 -0
  217. package/typechain-types/PendleMarketFactory.ts +906 -0
  218. package/typechain-types/PendlePYLpOracle.ts +619 -0
  219. package/typechain-types/PendlePoolDeployHelperV2.ts +283 -0
  220. package/typechain-types/PendleRedStoneRateOracleAdapter.ts +133 -0
  221. package/typechain-types/PendleSparkLinearDiscountOracleFactory.ts +60 -18
  222. package/typechain-types/PendleVotingControllerUpg.ts +1621 -0
  223. package/typechain-types/PendleYieldContractFactory.ts +801 -0
  224. package/typechain-types/PendleYieldToken.ts +1107 -0
  225. package/typechain-types/RewardManager.ts +161 -0
  226. package/typechain-types/RewardManagerAbstract.ts +108 -0
  227. package/typechain-types/VotingControllerStorageUpg.ts +915 -0
  228. package/typechain-types/VotingEscrowPendleMainchain.ts +1045 -0
  229. package/typechain-types/VotingEscrowPendleSidechain.ts +558 -0
  230. package/typechain-types/VotingEscrowTokenBase.ts +252 -0
  231. package/typechain-types/factories/ActionAddRemoveLiqV3__factory.ts +1 -1
  232. package/typechain-types/factories/ActionCallbackV3__factory.ts +1 -1
  233. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  234. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
  235. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -1
  236. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
  237. package/typechain-types/factories/ActionMiscV3__factory.ts +1 -1
  238. package/typechain-types/factories/ActionSimple__factory.ts +1 -1
  239. package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
  240. package/typechain-types/factories/ActionStorageV4__factory.ts +1 -1
  241. package/typechain-types/factories/ActionSwapPTV3__factory.ts +1 -1
  242. package/typechain-types/factories/ActionSwapYTV3__factory.ts +1 -1
  243. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  244. package/typechain-types/factories/BoringPYUsdChainlinkAssetOracle__factory.ts +269 -0
  245. package/typechain-types/factories/BoringPYUsdChainlinkSYOracle__factory.ts +267 -0
  246. package/typechain-types/factories/Broadcaster__factory.ts +311 -0
  247. package/typechain-types/factories/IOwnable__factory.ts +46 -0
  248. package/typechain-types/factories/IPActionMarketCoreStatic__factory.ts +1300 -0
  249. package/typechain-types/factories/IPCommonSYFactory__factory.ts +55 -0
  250. package/typechain-types/factories/IPMarketV3__factory.ts +845 -0
  251. package/typechain-types/factories/IPMarket__factory.ts +832 -0
  252. package/typechain-types/factories/IPPoolDeployHelperV2__factory.ts +181 -0
  253. package/typechain-types/factories/IPVotingController__factory.ts +363 -0
  254. package/typechain-types/factories/IPVotingEscrowMainchain__factory.ts +340 -0
  255. package/typechain-types/factories/IPendleCommonPoolDeployHelperV2__factory.ts +447 -0
  256. package/typechain-types/factories/InterestManagerYT__factory.ts +63 -0
  257. package/typechain-types/factories/LimitBackendHelper__factory.ts +1 -1
  258. package/typechain-types/factories/PendleBoringOneracle__factory.ts +81 -0
  259. package/typechain-types/factories/PendleBoringSolvBTCOneracle__factory.ts +83 -0
  260. package/typechain-types/factories/PendleChainlinkOracleFactory__factory.ts +405 -0
  261. package/typechain-types/factories/PendleChainlinkOracleWithQuote__factory.ts +341 -0
  262. package/typechain-types/factories/PendleChainlinkOracle__factory.ts +306 -0
  263. package/typechain-types/factories/PendleCommonPoolDeployHelperV2__factory.ts +728 -0
  264. package/typechain-types/factories/PendleCommonSYFactory__factory.ts +386 -0
  265. package/typechain-types/factories/PendleExchangeRateOracle__factory.ts +379 -0
  266. package/typechain-types/factories/PendleFeeDistributor__factory.ts +665 -0
  267. package/typechain-types/factories/PendleGaugeControllerBaseUpg__factory.ts +457 -0
  268. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +620 -0
  269. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +610 -0
  270. package/typechain-types/factories/PendleGauge__factory.ts +140 -0
  271. package/typechain-types/factories/PendleLimitRouter__factory.ts +1 -1
  272. package/typechain-types/factories/PendleMarketFactoryV3__factory.ts +1 -1
  273. package/typechain-types/factories/PendleMarketFactory__factory.ts +748 -0
  274. package/typechain-types/factories/PendleMarketV3__factory.ts +1 -1
  275. package/typechain-types/factories/PendleMarket__factory.ts +1212 -0
  276. package/typechain-types/factories/PendlePYLpOracle__factory.ts +475 -0
  277. package/typechain-types/factories/PendlePoolDeployHelperV2__factory.ts +308 -0
  278. package/typechain-types/factories/PendlePoolDeployHelper__factory.ts +1 -1
  279. package/typechain-types/factories/PendleRedStoneRateOracleAdapter__factory.ts +157 -0
  280. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  281. package/typechain-types/factories/PendleRouterV4__factory.ts +1 -1
  282. package/typechain-types/factories/PendleSparkLinearDiscountOracleFactory__factory.ts +28 -4
  283. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1278 -0
  284. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +674 -0
  285. package/typechain-types/factories/PendleYieldToken__factory.ts +978 -0
  286. package/typechain-types/factories/Reflector__factory.ts +1 -1
  287. package/typechain-types/factories/RewardManagerAbstract__factory.ts +59 -0
  288. package/typechain-types/factories/RewardManager__factory.ts +89 -0
  289. package/typechain-types/factories/VotingControllerStorageUpg__factory.ts +700 -0
  290. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +856 -0
  291. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +455 -0
  292. package/typechain-types/factories/VotingEscrowTokenBase__factory.ts +162 -0
  293. package/typechain-types/hardhat.d.ts +72 -9
  294. package/typechain-types/index.ts +16 -2
  295. package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +0 -4
@@ -3,8 +3,8 @@
3
3
  "contractName": "MarketApproxPtInLibOnchain",
4
4
  "sourceName": "contracts/router/math/MarketApproxLibOnchain.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208926fa6a1669b316ef8b260994b7b3e677164bb23c1d2a9364d7f0c94b85ba4264736f6c63430008170033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208926fa6a1669b316ef8b260994b7b3e677164bb23c1d2a9364d7f0c94b85ba4264736f6c63430008170033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220db58a967387c96ef256ca85026693abcc2eda68d78b98c1e8b09b7b9e5ccc7d464736f6c63430008170033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220db58a967387c96ef256ca85026693abcc2eda68d78b98c1e8b09b7b9e5ccc7d464736f6c63430008170033",
8
8
  "linkReferences": {},
9
9
  "deployedLinkReferences": {}
10
10
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/72388dcca8fd03931a3656e184e016ec.json"
3
+ "buildInfo": "../../../../build-info/6617d382e5ae37096b284b86207f33fd.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "MarketApproxPtOutLibOnchain",
4
4
  "sourceName": "contracts/router/math/MarketApproxLibOnchain.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122058fdc410b4b575841c734f083b66e09fe250dc56257b5cb5e9b82e0618f7865264736f6c63430008170033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122058fdc410b4b575841c734f083b66e09fe250dc56257b5cb5e9b82e0618f7865264736f6c63430008170033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b01d830ebc55a8101440a48133846bc45b73a5760f470f9d9e71a9bcbb9da5ca64736f6c63430008170033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b01d830ebc55a8101440a48133846bc45b73a5760f470f9d9e71a9bcbb9da5ca64736f6c63430008170033",
8
8
  "linkReferences": {},
9
9
  "deployedLinkReferences": {}
10
10
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/72388dcca8fd03931a3656e184e016ec.json"
3
+ "buildInfo": "../../../../build-info/6617d382e5ae37096b284b86207f33fd.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "MarketApproxPtInLibV2",
4
4
  "sourceName": "contracts/router/math/MarketApproxLibV2.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220eaa91b6e04a07d29a1951ac794985ee2a81a1d6380d2db556aef65197c71331364736f6c63430008170033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220eaa91b6e04a07d29a1951ac794985ee2a81a1d6380d2db556aef65197c71331364736f6c63430008170033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200745ab83bec35c6cb543bd00729e05a3d8d559995343acab0afc082338b1eef464736f6c63430008170033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200745ab83bec35c6cb543bd00729e05a3d8d559995343acab0afc082338b1eef464736f6c63430008170033",
8
8
  "linkReferences": {},
9
9
  "deployedLinkReferences": {}
10
10
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/72388dcca8fd03931a3656e184e016ec.json"
3
+ "buildInfo": "../../../../build-info/6617d382e5ae37096b284b86207f33fd.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "MarketApproxPtOutLibV2",
4
4
  "sourceName": "contracts/router/math/MarketApproxLibV2.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204d1223a9f4e93fb50232986ef86372b1e885c1f948787333716c75d5559641eb64736f6c63430008170033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204d1223a9f4e93fb50232986ef86372b1e885c1f948787333716c75d5559641eb64736f6c63430008170033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cab98746dcd717d1857c86a735c91e23176716c3fac175ac2c8a5e4806d36b0e64736f6c63430008170033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cab98746dcd717d1857c86a735c91e23176716c3fac175ac2c8a5e4806d36b0e64736f6c63430008170033",
8
8
  "linkReferences": {},
9
9
  "deployedLinkReferences": {}
10
10
  }
@@ -206,6 +206,11 @@ library PMath {
206
206
  return uint192(x);
207
207
  }
208
208
 
209
+ function Uint80(uint256 x) internal pure returns (uint80) {
210
+ require(x <= type(uint80).max);
211
+ return uint80(x);
212
+ }
213
+
209
214
  function isAApproxB(uint256 a, uint256 b, uint256 eps) internal pure returns (bool) {
210
215
  return mulDown(b, ONE - eps) <= a && a <= mulDown(b, ONE + eps);
211
216
  }
@@ -0,0 +1,6 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.0;
3
+
4
+ interface IOwnable {
5
+ function transferOwnership(address newOwner, bool direct, bool renounce) external;
6
+ }
@@ -0,0 +1,6 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.0;
3
+
4
+ interface IPCommonSYFactory {
5
+ function deploySY(bytes32 id, bytes memory constructorParams, address syOwner) external returns (address SY);
6
+ }
@@ -0,0 +1,36 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.0;
3
+
4
+ interface IPPoolDeployHelperV2 {
5
+ struct PoolDeploymentParams {
6
+ uint32 expiry;
7
+ uint80 lnFeeRateRoot;
8
+ int256 scalarRoot;
9
+ int256 initialRateAnchor;
10
+ bool doCacheIndexSameBlock;
11
+ }
12
+
13
+ struct PoolDeploymentAddrs {
14
+ address SY;
15
+ address PT;
16
+ address YT;
17
+ address market;
18
+ }
19
+
20
+ struct PoolConfig {
21
+ uint32 expiry;
22
+ uint256 rateMin;
23
+ uint256 rateMax;
24
+ uint256 desiredImpliedRate;
25
+ uint256 fee;
26
+ }
27
+
28
+ event MarketDeployment(PoolDeploymentAddrs addrs, PoolDeploymentParams params);
29
+
30
+ function deploy5115MarketAndSeedLiquidity(
31
+ address SY,
32
+ PoolConfig memory config,
33
+ address tokenToSeedLiqudity,
34
+ uint256 amountToSeed
35
+ ) external payable returns (PoolDeploymentAddrs memory);
36
+ }
@@ -0,0 +1,30 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.0;
3
+
4
+ import "./IPPoolDeployHelperV2.sol";
5
+
6
+ interface IPendleCommonPoolDeployHelperV2 is IPPoolDeployHelperV2 {
7
+ function deployERC4626Market(
8
+ bytes memory constructorParams,
9
+ PoolConfig memory config,
10
+ address tokenToSeedLiqudity,
11
+ uint256 amountToSeed,
12
+ address syOwner
13
+ ) external returns (PoolDeploymentAddrs memory);
14
+
15
+ function deployERC4626NotRedeemableMarket(
16
+ bytes memory constructorParams,
17
+ PoolConfig memory config,
18
+ address tokenToSeedLiqudity,
19
+ uint256 amountToSeed,
20
+ address syOwner
21
+ ) external returns (PoolDeploymentAddrs memory);
22
+
23
+ function deployERC20Market(
24
+ bytes memory constructorParams,
25
+ PoolConfig memory config,
26
+ address tokenToSeedLiqudity,
27
+ uint256 amountToSeed,
28
+ address syOwner
29
+ ) external returns (PoolDeploymentAddrs memory);
30
+ }
@@ -0,0 +1,68 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "./PendlePoolDeployHelperV2.sol";
5
+ import "../../interfaces/IPCommonSYFactory.sol";
6
+ import "../../interfaces/IOwnable.sol";
7
+ import "../../core/libraries/BoringOwnableUpgradeable.sol";
8
+
9
+ contract PendleCommonPoolDeployHelperV2 is PendlePoolDeployHelperV2, BoringOwnableUpgradeable {
10
+ bytes32 public constant ERC4626_DEPLOY_ID = keccak256("PendleERC4626SYV2");
11
+ bytes32 public constant ERC4626_NOT_REDEEMABLE_DEPLOY_ID = keccak256("PendleERC4626NotRedeemableToAssetSYV2");
12
+ bytes32 public constant ERC20_DEPLOY_ID = keccak256("PendleERC20SY");
13
+
14
+ address public immutable syFactory;
15
+
16
+ constructor(
17
+ address _syFactory,
18
+ address _router,
19
+ address _yieldContractFactory,
20
+ address _marketFactory
21
+ ) PendlePoolDeployHelperV2(_router, _yieldContractFactory, _marketFactory) {
22
+ syFactory = _syFactory;
23
+ _disableInitializers();
24
+ }
25
+
26
+ function initialize() external initializer {
27
+ __BoringOwnable_init();
28
+ }
29
+
30
+ // Those 3 are all not payable as they should not accept tokenIn as native
31
+
32
+ function deployERC4626Market(
33
+ bytes memory constructorParams,
34
+ PoolConfig memory config,
35
+ address tokenToSeedLiqudity,
36
+ uint256 amountToSeed,
37
+ address syOwner
38
+ ) external returns (PoolDeploymentAddrs memory) {
39
+ address SY = IPCommonSYFactory(syFactory).deploySY(ERC4626_DEPLOY_ID, constructorParams, syOwner);
40
+ return deploy5115MarketAndSeedLiquidity(SY, config, tokenToSeedLiqudity, amountToSeed);
41
+ }
42
+
43
+ function deployERC4626NotRedeemableMarket(
44
+ bytes memory constructorParams,
45
+ PoolConfig memory config,
46
+ address tokenToSeedLiqudity,
47
+ uint256 amountToSeed,
48
+ address syOwner
49
+ ) external returns (PoolDeploymentAddrs memory) {
50
+ address SY = IPCommonSYFactory(syFactory).deploySY(
51
+ ERC4626_NOT_REDEEMABLE_DEPLOY_ID,
52
+ constructorParams,
53
+ syOwner
54
+ );
55
+ return deploy5115MarketAndSeedLiquidity(SY, config, tokenToSeedLiqudity, amountToSeed);
56
+ }
57
+
58
+ function deployERC20Market(
59
+ bytes memory constructorParams,
60
+ PoolConfig memory config,
61
+ address tokenToSeedLiqudity,
62
+ uint256 amountToSeed,
63
+ address syOwner
64
+ ) external returns (PoolDeploymentAddrs memory) {
65
+ address SY = IPCommonSYFactory(syFactory).deploySY(ERC20_DEPLOY_ID, constructorParams, syOwner);
66
+ return deploy5115MarketAndSeedLiquidity(SY, config, tokenToSeedLiqudity, amountToSeed);
67
+ }
68
+ }
@@ -0,0 +1,67 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "../../core/libraries/BoringOwnableUpgradeable.sol";
5
+ import "../../core/libraries/BaseSplitCodeFactory.sol";
6
+ import "../../interfaces/IOwnable.sol";
7
+
8
+ contract PendleCommonSYFactory is BoringOwnableUpgradeable {
9
+ error InvalidCreationCode(bytes32 id, CreationCode code);
10
+
11
+ error InvalidSYId(bytes32 id);
12
+
13
+ struct CreationCode {
14
+ address creationCodeContractA;
15
+ uint256 creationCodeSizeA;
16
+ address creationCodeContractB;
17
+ uint256 creationCodeSizeB;
18
+ }
19
+
20
+ event SetSYCreationCode(bytes32 id, CreationCode code);
21
+
22
+ event DeployedSY(bytes32 id, bytes constructorParams, address SY);
23
+
24
+ mapping(bytes32 => CreationCode) public creationCodes;
25
+
26
+ constructor() {
27
+ _disableInitializers();
28
+ }
29
+
30
+ function initialize() external initializer {
31
+ __BoringOwnable_init();
32
+ }
33
+
34
+ function setSYCreationCode(bytes32 id, CreationCode memory code) external onlyOwner {
35
+ if (
36
+ code.creationCodeContractA == address(0) ||
37
+ code.creationCodeContractB == address(0) ||
38
+ code.creationCodeSizeA == 0 ||
39
+ code.creationCodeSizeB == 0
40
+ ) {
41
+ revert InvalidCreationCode(id, code);
42
+ }
43
+ creationCodes[id] = code;
44
+ emit SetSYCreationCode(id, code);
45
+ }
46
+
47
+ function deploySY(bytes32 id, bytes memory constructorParams, address syOwner) external returns (address SY) {
48
+ CreationCode memory code = creationCodes[id];
49
+
50
+ if (code.creationCodeContractA == address(0)) {
51
+ revert InvalidSYId(id);
52
+ }
53
+
54
+ SY = BaseSplitCodeFactory._create2(
55
+ 0,
56
+ bytes32(block.chainid),
57
+ constructorParams,
58
+ code.creationCodeContractA,
59
+ code.creationCodeSizeA,
60
+ code.creationCodeContractB,
61
+ code.creationCodeSizeB
62
+ );
63
+
64
+ emit DeployedSY(id, constructorParams, SY);
65
+ IOwnable(SY).transferOwnership(syOwner, true, false);
66
+ }
67
+ }
@@ -1,12 +1,12 @@
1
1
  // SPDX-License-Identifier: MIT
2
2
  pragma solidity ^0.8.17;
3
3
 
4
- import "../interfaces/IPAllActionV3.sol";
5
- import "../interfaces/IPMarketFactoryV3.sol";
6
- import "../interfaces/IPYieldContractFactory.sol";
7
- import "../interfaces/IPMarketV3.sol";
4
+ import "../../interfaces/IPAllActionV3.sol";
5
+ import "../../interfaces/IPMarketFactoryV3.sol";
6
+ import "../../interfaces/IPYieldContractFactory.sol";
7
+ import "../../interfaces/IPMarketV3.sol";
8
8
  // import "../core/StandardizedYield/implementations/PendleERC4626SY.sol";
9
- import "../core/libraries/TokenHelper.sol";
9
+ import "../../core/libraries/TokenHelper.sol";
10
10
 
11
11
  contract PendlePoolDeployHelper is TokenHelper {
12
12
  address public immutable router;
@@ -0,0 +1,159 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "../../core/libraries/TokenHelper.sol";
5
+ import "../../interfaces/IPAllActionV3.sol";
6
+ import "../../interfaces/IPMarketFactoryV3.sol";
7
+ import "../../interfaces/IPYieldContractFactory.sol";
8
+ import "../../interfaces/IPMarketV3.sol";
9
+ import "./lib/MarketDeployLib.sol";
10
+
11
+ contract PendlePoolDeployHelperV2 is TokenHelper {
12
+ using PMath for uint256;
13
+ using PMath for int256;
14
+
15
+ struct PoolDeploymentParams {
16
+ uint32 expiry;
17
+ uint80 lnFeeRateRoot;
18
+ int256 scalarRoot;
19
+ int256 initialRateAnchor;
20
+ bool doCacheIndexSameBlock;
21
+ }
22
+
23
+ struct PoolDeploymentAddrs {
24
+ address SY;
25
+ address PT;
26
+ address YT;
27
+ address market;
28
+ }
29
+
30
+ struct PoolConfig {
31
+ uint32 expiry;
32
+ uint256 rateMin;
33
+ uint256 rateMax;
34
+ uint256 desiredImpliedRate;
35
+ uint256 fee;
36
+ }
37
+
38
+ event MarketDeployment(PoolDeploymentAddrs addrs, PoolDeploymentParams params);
39
+
40
+ // solhint-disable immutable-vars-naming
41
+ address public immutable router;
42
+ address public immutable yieldContractFactory;
43
+ address public immutable marketFactory;
44
+ bool public immutable doCacheIndexSameBlock;
45
+
46
+ constructor(address _router, address _yieldContractFactory, address _marketFactory) {
47
+ doCacheIndexSameBlock = block.chainid == 1;
48
+ router = _router;
49
+ yieldContractFactory = _yieldContractFactory;
50
+ marketFactory = _marketFactory;
51
+ }
52
+
53
+ function deploy5115MarketAndSeedLiquidity(
54
+ address SY,
55
+ PoolConfig memory config,
56
+ address tokenToSeedLiqudity,
57
+ uint256 amountToSeed
58
+ ) public payable returns (PoolDeploymentAddrs memory) {
59
+ (PoolDeploymentParams memory params, PoolDeploymentAddrs memory addrs) = _deployPYAndMarket(SY, config);
60
+ _seedLiquidity(params, addrs, tokenToSeedLiqudity, amountToSeed, config.desiredImpliedRate);
61
+ return addrs;
62
+ }
63
+
64
+ function _deployPYAndMarket(
65
+ address SY,
66
+ PoolConfig memory config
67
+ ) internal returns (PoolDeploymentParams memory params, PoolDeploymentAddrs memory addrs) {
68
+ (uint256 scalarRoot, uint256 initialRateAnchor) = MarketDeployLib.calcParams(
69
+ config.rateMin,
70
+ config.rateMax,
71
+ config.expiry
72
+ );
73
+
74
+ params = PoolDeploymentParams({
75
+ expiry: config.expiry,
76
+ lnFeeRateRoot: MarketDeployLib.calcFee(config.fee),
77
+ scalarRoot: scalarRoot.Int(),
78
+ initialRateAnchor: initialRateAnchor.Int(),
79
+ doCacheIndexSameBlock: doCacheIndexSameBlock
80
+ });
81
+
82
+ addrs.SY = SY;
83
+ (addrs.PT, addrs.YT) = IPYieldContractFactory(yieldContractFactory).createYieldContract(
84
+ SY,
85
+ params.expiry,
86
+ params.doCacheIndexSameBlock
87
+ );
88
+
89
+ addrs.market = IPMarketFactoryV3(marketFactory).createNewMarket(
90
+ addrs.PT,
91
+ params.scalarRoot,
92
+ params.initialRateAnchor,
93
+ params.lnFeeRateRoot
94
+ );
95
+
96
+ emit MarketDeployment(addrs, params);
97
+ }
98
+
99
+ function _seedLiquidity(
100
+ PoolDeploymentParams memory params,
101
+ PoolDeploymentAddrs memory addrs,
102
+ address token,
103
+ uint256 amountToSeed,
104
+ uint256 desiredImpliedRate
105
+ ) internal {
106
+ _transferIn(token, msg.sender, amountToSeed);
107
+
108
+ // Approval
109
+ _safeApproveInf(token, router);
110
+ if (token != addrs.SY) {
111
+ _safeApproveInf(addrs.SY, router);
112
+ }
113
+ _safeApproveInf(addrs.PT, router);
114
+
115
+ // Mint SY
116
+ uint256 amountSY;
117
+ if (token != addrs.SY) {
118
+ uint256 netNative = (token == NATIVE ? amountToSeed : 0);
119
+ amountSY = IPAllActionV3(router).mintSyFromToken{value: netNative}(
120
+ address(this),
121
+ addrs.SY,
122
+ 0,
123
+ TokenInput({
124
+ tokenIn: token,
125
+ netTokenIn: amountToSeed,
126
+ tokenMintSy: token,
127
+ pendleSwap: address(0),
128
+ swapData: SwapData({
129
+ swapType: SwapType.NONE,
130
+ extRouter: address(0),
131
+ extCalldata: abi.encode(),
132
+ needScale: false
133
+ })
134
+ })
135
+ );
136
+ } else {
137
+ amountSY = amountToSeed;
138
+ }
139
+
140
+ uint256 initialProportion = MarketDeployLib.calcInitialProportion(
141
+ params.expiry,
142
+ params.scalarRoot.Uint(),
143
+ params.initialRateAnchor.Uint(),
144
+ desiredImpliedRate
145
+ );
146
+
147
+ // mint PY
148
+ uint256 amountPY = IPAllActionV3(router).mintPyFromSy(
149
+ address(this),
150
+ addrs.YT,
151
+ amountSY.mulDown(initialProportion),
152
+ 0
153
+ );
154
+
155
+ // mint LP
156
+ IPAllActionV3(router).addLiquidityDualSyAndPt(msg.sender, addrs.market, _selfBalance(addrs.SY), amountPY, 0);
157
+ _transferOut(addrs.YT, msg.sender, amountPY);
158
+ }
159
+ }
@@ -0,0 +1,70 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "../../../core/libraries/math/PMath.sol";
5
+ import "../../../core/libraries/math/LogExpMath.sol";
6
+
7
+ library MarketDeployLib {
8
+ using PMath for uint256;
9
+ using PMath for int256;
10
+ using LogExpMath for uint256;
11
+ using LogExpMath for int256;
12
+
13
+ uint256 internal constant YEAR = 365 days;
14
+ uint256 internal constant LN_9 = 2197224577336219648;
15
+
16
+ struct CalcParamsArgs {
17
+ uint256 yearsToExpiry;
18
+ uint256 rateMinScaled;
19
+ uint256 rateMaxScaled;
20
+ uint256 rateDiff;
21
+ }
22
+
23
+ function calcParams(
24
+ uint256 rateMin,
25
+ uint256 rateMax,
26
+ uint256 expiry
27
+ ) internal view returns (uint256 scalarRoot, uint256 initialRateAnchor) {
28
+ CalcParamsArgs memory args;
29
+
30
+ args.yearsToExpiry = (expiry - block.timestamp).divDown(YEAR);
31
+ args.rateMinScaled = (rateMin + PMath.ONE).pow(args.yearsToExpiry);
32
+ args.rateMaxScaled = (rateMax + PMath.ONE).pow(args.yearsToExpiry);
33
+
34
+ // [initRateAnchor]
35
+ initialRateAnchor = (args.rateMinScaled + args.rateMaxScaled) / 2;
36
+
37
+ args.rateDiff = args.rateMaxScaled - initialRateAnchor;
38
+
39
+ // [scalarRoot]
40
+ scalarRoot = (LN_9 * args.yearsToExpiry) / args.rateDiff;
41
+ }
42
+
43
+ struct CalcInitialProportionArgs {
44
+ uint256 timeToExpiry;
45
+ uint256 lnImpliedRate;
46
+ int256 desiredExchangeRate;
47
+ uint256 lnProportion;
48
+ }
49
+
50
+ function calcInitialProportion(
51
+ uint256 expiry,
52
+ uint256 scalarRoot,
53
+ uint256 rateAnchor,
54
+ uint256 desiredImpliedRate
55
+ ) internal view returns (uint256 initialProportion) {
56
+ CalcInitialProportionArgs memory args;
57
+
58
+ args.timeToExpiry = expiry - block.timestamp;
59
+ args.lnImpliedRate = LogExpMath.ln(PMath.IONE + desiredImpliedRate.Int()).Uint();
60
+ args.desiredExchangeRate = ((args.lnImpliedRate * args.timeToExpiry) / YEAR).Int().exp();
61
+
62
+ uint256 rateScalar = (scalarRoot * YEAR) / args.timeToExpiry;
63
+ int256 logitP = (args.desiredExchangeRate - rateAnchor.Int()).mulDown(rateScalar.Int()).exp();
64
+ initialProportion = (logitP.divDown(PMath.IONE + logitP)).Uint();
65
+ }
66
+
67
+ function calcFee(uint256 fee) internal pure returns (uint80 lnFeeRateRoot) {
68
+ return (PMath.ONE + fee).Int().ln().Uint().Uint80();
69
+ }
70
+ }
@@ -2,9 +2,16 @@
2
2
  pragma solidity ^0.8.19;
3
3
 
4
4
  import {PendleSparkLinearDiscountOracle} from "./PendleSparkLinearDiscountOracle.sol";
5
+ import "../../interfaces/IPPrincipalToken.sol";
6
+ import "../../interfaces/IPMarket.sol";
5
7
 
6
8
  contract PendleSparkLinearDiscountOracleFactory {
7
- function create(address _pt, uint256 _baseDiscountPerYear) external returns (address) {
8
- return address(new PendleSparkLinearDiscountOracle(_pt, _baseDiscountPerYear));
9
+ function createWithPt(address pt, uint256 baseDiscountPerYear) external returns (address) {
10
+ return address(new PendleSparkLinearDiscountOracle(pt, baseDiscountPerYear));
11
+ }
12
+
13
+ function createWithMarket(address market, uint256 baseDiscountPerYear) external returns (address) {
14
+ (, IPPrincipalToken PT, ) = IPMarket(market).readTokens();
15
+ return address(new PendleSparkLinearDiscountOracle(address(PT), baseDiscountPerYear));
9
16
  }
10
17
  }
@@ -0,0 +1,47 @@
1
+ {
2
+ "deployer": "0x1FcCC097db89A86Bfc474A1028F93958295b1Fb7",
3
+ "network": {
4
+ "chainId": 146,
5
+ "treasury": "0xCbcb48e22622a3778b6F14C2f5d258Ba026b05e6",
6
+ "governance": "0x7877adfaded756f3248a0ebfe8ac2e2ef87b75ac",
7
+ "devMultisig": "0x7877adfaded756f3248a0ebfe8ac2e2ef87b75ac",
8
+ "pendle": "0xf1eF7d2D4C0c881cd634481e0586ed5d2871A74B",
9
+ "lzEndpoint": "0xb6319cC6c8c27A8F5dAF0dD3DF91EA35C4720dd7",
10
+ "wrappedNative": "0x039e2fb66102314ce7b64ce5ce3e5183bc94ad38",
11
+ "initialRewardFee": "30000000000000000",
12
+ "initialInterestFee": "30000000000000000",
13
+ "initialReserveFeePercent": "80",
14
+ "safeWaitTime": 15000,
15
+ "hardwareDeployer": "0xeea6F790F18563E91b18DF00B89d9f79b2E6761F"
16
+ },
17
+ "baseCodeSplitter": "0x6952Eb0c152D683ea2F2B8B90a5E888c1550B69D",
18
+ "PENDLE": "0xf1eF7d2D4C0c881cd634481e0586ed5d2871A74B",
19
+ "governanceProxy": "0x2aD631F72fB16d91c4953A7f4260A97C2fE2f31e",
20
+ "yieldContractFactoryV5": "0x0582D93FD9c9d42f26bE5D86a5f75291F92102C2",
21
+ "marketFactoryV5": "0xFeE31A6eC6eBefa0b5A594Bf5b1139e3c6fAA0fB",
22
+ "router": "0x888888888889758F76e7103c6CbF23ABbF58F946",
23
+ "routerFacets": {
24
+ "ActionAddRemoveLiqV3": "0x663C21103915B68e9dA797CfdF3cAb01a037D5Ff",
25
+ "ActionSwapPTV3": "0xd8D200d9A713A1c71cF1e7F694B14E5F1D948b15",
26
+ "ActionSwapYTV3": "0x4a03Ce0a268951d04E187B1CF48075eE69266e27",
27
+ "ActionMiscV3": "0x373Dba2055Ad40cb4815148bC47cd1DC16e92E44",
28
+ "ActionSimple": "0x852e59252c94716F0df19B52b36512f6C9297a96",
29
+ "ActionCallbackV3": "0x7b78F36aBf6cF3C6C0dd54716dFeF0607ae17846",
30
+ "ActionStorageV4": "0xdED51dca2ECED7a0BAab3D9711A87f214769Da0f"
31
+ },
32
+ "routerStatic": "0x0013ACc071f732fd6BF8210AB46A3794a7D8945e",
33
+ "pendleSwap": "0x313e7Ef7d52f5C10aC04ebaa4d33CDc68634c212",
34
+ "pyYtLpOracle": "0x9a9fa8338dd5e5b2188006f1cd2ef26d921650c2",
35
+ "reflector": "0x5039Da22E5126e7c4e9284376116716A91782faF",
36
+ "receiverEndpoint": "0x3209E9412cca80B18338f2a56ADA59c484c39644",
37
+ "limitRouter": "0x0000000000000000000000000000000000000000",
38
+ "proxyAdmin": "0xA28c08f165116587D4F3E708743B4dEe155c5E64",
39
+ "vePendle": "0xE017CCC08505Ac8fbb5a364680e459d9fBaEE74d",
40
+ "gaugeController": "0xeE708FC793a02F1eDd5BB9DBD7fD13010D1F7136",
41
+ "sparkLinearDiscountOracleFactory": "0xA9A924A4BB95509F77868E086154C25e934F6171",
42
+ "vePendleAirdropDistributor": "0x3942F7B55094250644cFfDa7160226Caa349A38E",
43
+ "externalRewardsDistributor": "0xae898a7d07f8e27f25e13d0f351a7401f9a5bf9d",
44
+ "beta": {
45
+ "PendleChainlinkOracleFactory": "0x0000000000000000000000000000000000000000"
46
+ }
47
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "pendleMulticallV2": "0x1ca3352a55A3D69cA8e5aB06006e08aaF2bD09f1",
3
+ "implicitSwapfeeContract": "0x82Fae57b2A79D893D88488A7D8BdF2AC6bd2C463",
4
+ "simulateHelper": "0xc23Dd2807e51dd1D317e1321CBeEb9ace98531EE",
5
+ "supplyCapReader": "0x251CfB4E84CefecA6c1e6a4D8a0cb9c524e7484f"
6
+ }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@pendle/core-v2",
3
3
  "description": "Core smart contracts of Pendle Protocol.",
4
4
  "license": "BUSL-1.1",
5
- "version": "5.6.0",
5
+ "version": "5.7.0",
6
6
  "homepage": "https://pendle.finance",
7
7
  "keywords": [
8
8
  "pendle",