@pendle/core-v2 6.2.2 → 6.3.0-beta

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 (379) hide show
  1. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
  2. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.json +2 -2
  3. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
  4. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +2 -2
  6. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  7. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.json +13 -0
  9. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +20 -2
  11. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  12. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +20 -2
  13. package/build/artifacts/contracts/LiquidityMining/PendleMultiTokenMerkleDistributor.sol/PendleMultiTokenMerkleDistributor.dbg.json +1 -1
  14. package/build/artifacts/contracts/LiquidityMining/PendleMultiTokenMerkleDistributor.sol/PendleMultiTokenMerkleDistributor.json +2 -2
  15. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  16. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +6 -24
  17. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  18. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  19. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  20. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  21. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
  22. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  23. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  24. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  25. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  26. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  27. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  28. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  29. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  30. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  31. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  32. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  33. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.json +19 -0
  35. package/build/artifacts/contracts/core/Market/PendleMarketFactoryV6Upg.sol/PendleMarketFactoryV6Upg.dbg.json +4 -0
  36. package/build/artifacts/contracts/core/Market/PendleMarketFactoryV6Upg.sol/PendleMarketFactoryV6Upg.json +636 -0
  37. package/build/artifacts/contracts/core/Market/PendleMarketV6.sol/PendleMarketV6.dbg.json +4 -0
  38. package/build/artifacts/contracts/core/Market/PendleMarketV6.sol/PendleMarketV6.json +1181 -0
  39. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.json +2 -2
  41. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +28 -2
  44. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactoryUpg.sol/PendleYieldContractFactoryUpg.dbg.json +4 -0
  45. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactoryUpg.sol/PendleYieldContractFactoryUpg.json +608 -0
  46. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +28 -2
  48. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.json +15 -2
  50. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +27 -2
  52. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +1 -1
  53. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.json +2 -2
  54. package/build/artifacts/contracts/deprecated/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  55. package/build/artifacts/contracts/deprecated/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
  56. package/build/artifacts/contracts/deprecated/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.dbg.json +1 -1
  57. package/build/artifacts/contracts/deprecated/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.json +2 -2
  58. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.dbg.json +1 -1
  59. package/build/artifacts/contracts/interfaces/IPActionCallbackV3.sol/IPActionCallbackV3.dbg.json +1 -1
  60. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  61. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
  62. package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.dbg.json +1 -1
  63. package/build/artifacts/contracts/interfaces/IPActionSimple.sol/IPActionSimple.dbg.json +1 -1
  64. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  65. package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.dbg.json +1 -1
  66. package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.dbg.json +1 -1
  67. package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.dbg.json +1 -1
  68. package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.dbg.json +1 -1
  69. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionAddRemoveLiqV3Events.dbg.json +1 -1
  70. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionMiscV3Events.dbg.json +1 -1
  71. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionStorageEvents.dbg.json +1 -1
  72. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapPTV3Events.dbg.json +1 -1
  73. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapYTV3Events.dbg.json +1 -1
  74. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPAllEventsV3.dbg.json +1 -1
  75. package/build/artifacts/contracts/interfaces/IPExchangeRateOracleApp.sol/IPExchangeRateOracleApp.dbg.json +4 -0
  76. package/build/artifacts/contracts/interfaces/IPExchangeRateOracleApp.sol/IPExchangeRateOracleApp.json +282 -0
  77. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
  78. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.json +19 -0
  79. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitOrderType.dbg.json +1 -1
  80. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouter.dbg.json +1 -1
  81. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouterCallback.dbg.json +1 -1
  82. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  83. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.json +58 -0
  84. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  85. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.json +81 -19
  86. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  87. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.json +26 -0
  88. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  89. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  90. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  91. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  92. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.json +13 -0
  93. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  94. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.json +26 -0
  95. package/build/artifacts/contracts/limit/LimitMathCore.sol/LimitMathCore.dbg.json +1 -1
  96. package/build/artifacts/contracts/limit/LimitMathCore.sol/LimitMathCore.json +2 -2
  97. package/build/artifacts/contracts/limit/LimitRouterBase.sol/LimitRouterBase.dbg.json +1 -1
  98. package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.dbg.json +1 -1
  99. package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.json +2 -2
  100. package/build/artifacts/contracts/offchain-helpers/BalanceReader.sol/BalanceReader.dbg.json +1 -1
  101. package/build/artifacts/contracts/offchain-helpers/BalanceReader.sol/BalanceReader.json +2 -2
  102. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
  103. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +2 -2
  104. package/build/artifacts/contracts/offchain-helpers/ExpiredLpPtRedeemer.sol/ExpiredLpPtRedeemer.dbg.json +1 -1
  105. package/build/artifacts/contracts/offchain-helpers/ExpiredLpPtRedeemer.sol/ExpiredLpPtRedeemer.json +2 -2
  106. package/build/artifacts/contracts/offchain-helpers/LimitBackendHelperV2.sol/LimitBackendHelperV2.dbg.json +1 -1
  107. package/build/artifacts/contracts/offchain-helpers/LimitBackendHelperV2.sol/LimitBackendHelperV2.json +2 -2
  108. package/build/artifacts/contracts/offchain-helpers/PendleLPWrapper.sol/PendleLPWrapper.dbg.json +1 -1
  109. package/build/artifacts/contracts/offchain-helpers/PendleLPWrapper.sol/PendleLPWrapper.json +15 -2
  110. package/build/artifacts/contracts/offchain-helpers/PendleLPWrapperFactory.sol/PendleLPWrapperFactory.dbg.json +1 -1
  111. package/build/artifacts/contracts/offchain-helpers/PendleLPWrapperFactory.sol/PendleLPWrapperFactory.json +2 -2
  112. package/build/artifacts/contracts/offchain-helpers/SimulateHelper.sol/SimulateHelper.dbg.json +1 -1
  113. package/build/artifacts/contracts/offchain-helpers/SimulateHelper.sol/SimulateHelper.json +2 -2
  114. package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol/PendleCommonPoolDeployHelperV2.dbg.json +1 -1
  115. package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol/PendleCommonPoolDeployHelperV2.json +7 -2
  116. package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +1 -1
  117. package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.json +2 -2
  118. package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol/PendlePoolDeployHelperV2.dbg.json +1 -1
  119. package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol/PendlePoolDeployHelperV2.json +2 -2
  120. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  121. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  122. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  123. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  124. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  125. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
  126. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  127. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -2
  128. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  129. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
  130. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  131. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -2
  132. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  133. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  134. package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtInLibV1.dbg.json +1 -1
  135. package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtInLibV1.json +2 -2
  136. package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtOutLibV1.dbg.json +1 -1
  137. package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtOutLibV1.json +2 -2
  138. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  139. package/build/artifacts/contracts/oracles/CrossChainOracle/base/PendleCrossChainOracleBaseApp_Init.sol/PendleCrossChainOracleBaseApp_Init.dbg.json +4 -0
  140. package/build/artifacts/contracts/oracles/CrossChainOracle/base/PendleCrossChainOracleBaseApp_Init.sol/PendleCrossChainOracleBaseApp_Init.json +533 -0
  141. package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleApp.sol/PendleExchangeRateOracleApp.dbg.json +4 -0
  142. package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleApp.sol/PendleExchangeRateOracleApp.json +889 -0
  143. package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleV2.sol/PendleExchangeRateOracleV2.dbg.json +4 -0
  144. package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleV2.sol/PendleExchangeRateOracleV2.json +84 -0
  145. package/build/artifacts/contracts/oracles/CrossChainOracle/libraries/ExchangeRateMsgCodec.sol/ExchangeRateMsgCodec.dbg.json +4 -0
  146. package/build/artifacts/contracts/oracles/CrossChainOracle/libraries/ExchangeRateMsgCodec.sol/ExchangeRateMsgCodec.json +24 -0
  147. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
  148. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendleLpOracleLib.sol/PendleLpOracleLib.json +2 -2
  149. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYLpOracle.sol/PendlePYLpOracle.dbg.json +1 -1
  150. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYLpOracle.sol/PendlePYLpOracle.json +2 -2
  151. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYOracleLib.sol/PendlePYOracleLib.dbg.json +1 -1
  152. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYOracleLib.sol/PendlePYOracleLib.json +2 -2
  153. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracle.sol/PendleChainlinkOracle.dbg.json +1 -1
  154. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracle.sol/PendleChainlinkOracle.json +2 -2
  155. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.dbg.json +1 -1
  156. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.json +2 -2
  157. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.dbg.json +1 -1
  158. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.json +2 -2
  159. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringLpSeller.sol/BoringLpSeller.dbg.json +1 -1
  160. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.dbg.json +1 -1
  161. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.json +2 -2
  162. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.dbg.json +1 -1
  163. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.json +2 -2
  164. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
  165. package/build/artifacts/contracts/oracles/StatelessWrapper/PendleSparkLinearDiscountOracleFactoryWrapper.sol/PendleSparkLinearDiscountOracleFactoryWrapper.dbg.json +1 -1
  166. package/build/artifacts/contracts/oracles/StatelessWrapper/PendleSparkLinearDiscountOracleFactoryWrapper.sol/PendleSparkLinearDiscountOracleFactoryWrapper.json +2 -2
  167. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol/PendleSparkLinearDiscountOracleFactory.dbg.json +1 -1
  168. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol/PendleSparkLinearDiscountOracleFactory.json +2 -2
  169. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.dbg.json +1 -1
  170. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.json +2 -2
  171. package/build/artifacts/contracts/router/ActionCallbackV3.sol/ActionCallbackV3.dbg.json +1 -1
  172. package/build/artifacts/contracts/router/ActionCallbackV3.sol/ActionCallbackV3.json +2 -2
  173. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.dbg.json +1 -1
  174. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.json +2 -2
  175. package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.dbg.json +1 -1
  176. package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.json +2 -2
  177. package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.dbg.json +1 -1
  178. package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.json +2 -2
  179. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.dbg.json +1 -1
  180. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.json +2 -2
  181. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.dbg.json +1 -1
  182. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.json +2 -2
  183. package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.dbg.json +1 -1
  184. package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.json +2 -2
  185. package/build/artifacts/contracts/router/Reflector.sol/Reflector.dbg.json +1 -1
  186. package/build/artifacts/contracts/router/Reflector.sol/Reflector.json +2 -2
  187. package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.dbg.json +1 -1
  188. package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.dbg.json +1 -1
  189. package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.json +2 -2
  190. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  191. package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.dbg.json +1 -1
  192. package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.json +2 -2
  193. package/build/artifacts/contracts/router/math/MarketApproxEstimateLib.sol/MarketApproxEstimateLib.dbg.json +1 -1
  194. package/build/artifacts/contracts/router/math/MarketApproxEstimateLib.sol/MarketApproxEstimateLib.json +2 -2
  195. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.dbg.json +1 -1
  196. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.json +2 -2
  197. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.dbg.json +1 -1
  198. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.json +2 -2
  199. package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtInLibV2.dbg.json +1 -1
  200. package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtInLibV2.json +2 -2
  201. package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtOutLibV2.dbg.json +1 -1
  202. package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtOutLibV2.json +2 -2
  203. package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/IOKXDexRouter.dbg.json +1 -1
  204. package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/OKXScaleHelper.dbg.json +1 -1
  205. package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/OKXScaleHelper.json +15 -1
  206. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IKyberScalingHelper.dbg.json +1 -1
  207. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IOdosRouterV2.dbg.json +1 -1
  208. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +1 -1
  209. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.json +22 -3
  210. package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +6 -2
  211. package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol +12 -2
  212. package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol +9 -1
  213. package/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +10 -14
  214. package/contracts/core/Market/PendleGauge.sol +2 -0
  215. package/contracts/core/Market/{v3/PendleMarketFactoryV3.sol → PendleMarketFactoryV6Upg.sol} +18 -14
  216. package/contracts/core/Market/{v3/PendleMarketV3.sol → PendleMarketV6.sol} +48 -13
  217. package/contracts/core/YieldContracts/PendlePrincipalToken.sol +6 -0
  218. package/contracts/core/YieldContracts/{PendleYieldContractFactory.sol → PendleYieldContractFactoryUpg.sol} +10 -13
  219. package/contracts/core/YieldContracts/PendleYieldToken.sol +6 -0
  220. package/contracts/core/erc20/PendleERC20.sol +12 -0
  221. package/contracts/core/libraries/Errors.sol +7 -0
  222. package/contracts/core/libraries/StringLib.sol +12 -0
  223. package/contracts/interfaces/IPExchangeRateOracleApp.sol +86 -0
  224. package/contracts/interfaces/IPGauge.sol +4 -3
  225. package/contracts/interfaces/IPMarket.sol +8 -2
  226. package/contracts/interfaces/IPMarketFactory.sol +22 -10
  227. package/contracts/interfaces/IPPrincipalToken.sol +4 -0
  228. package/contracts/interfaces/IPYieldContractFactory.sol +2 -0
  229. package/contracts/interfaces/IPYieldToken.sol +4 -0
  230. package/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol +10 -10
  231. package/contracts/offchain-helpers/deploy/PendlePoolDeployHelper.sol +6 -6
  232. package/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol +3 -3
  233. package/contracts/oracles/CrossChainOracle/base/PendleCrossChainOracleBaseApp_Init.sol +23 -0
  234. package/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleApp.sol +160 -0
  235. package/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleV2.sol +25 -0
  236. package/contracts/oracles/CrossChainOracle/libraries/ExchangeRateMsgCodec.sol +36 -0
  237. package/contracts/oracles/PtYtLpOracle/PendleLpOracleLib.sol +9 -0
  238. package/contracts/router/swap-aggregator/OKXScaleHelper.sol +14 -1
  239. package/contracts/router/swap-aggregator/PendleSwap.sol +1 -1
  240. package/deployments/1-core.json +1 -0
  241. package/deployments/10-core.json +1 -0
  242. package/deployments/146-core.json +4 -1
  243. package/deployments/42161-core.json +4 -1
  244. package/deployments/5000-core.json +4 -1
  245. package/deployments/56-core.json +5 -1
  246. package/deployments/80094-core.json +4 -1
  247. package/deployments/8453-core.json +4 -1
  248. package/deployments/9745-core.json +4 -1
  249. package/deployments/999-core.json +4 -1
  250. package/package.json +3 -2
  251. package/typechain-types/ExchangeRateMsgCodec.ts +89 -0
  252. package/typechain-types/IPExchangeRateOracleApp.ts +352 -0
  253. package/typechain-types/IPGauge.ts +19 -0
  254. package/typechain-types/IPMarket.ts +76 -0
  255. package/typechain-types/IPMarketFactory.ts +146 -46
  256. package/typechain-types/IPPrincipalToken.ts +34 -0
  257. package/typechain-types/IPYieldContractFactory.ts +13 -0
  258. package/typechain-types/IPYieldToken.ts +34 -0
  259. package/typechain-types/OAppCoreUpgradeable.ts +320 -0
  260. package/typechain-types/OAppOptionsType3Upgradeable.ts +319 -0
  261. package/typechain-types/OAppReceiverUpgradeable.ts +498 -0
  262. package/typechain-types/OAppSenderUpgradeable.ts +320 -0
  263. package/typechain-types/OAppUpgradeable.ts +498 -0
  264. package/typechain-types/OKXScaleHelper.ts +87 -0
  265. package/typechain-types/OwnableUpgradeable.ts +174 -0
  266. package/typechain-types/PendleCommonPoolDeployHelperV2.ts +7 -1
  267. package/typechain-types/PendleCrossChainOracleBaseApp_Init.ts +662 -0
  268. package/typechain-types/PendleERC20.ts +21 -0
  269. package/typechain-types/PendleExchangeRateOracleApp.ts +1012 -0
  270. package/typechain-types/PendleExchangeRateOracleV2.ts +142 -0
  271. package/typechain-types/PendleGauge.ts +19 -0
  272. package/typechain-types/PendleGaugeControllerBaseUpg.ts +19 -0
  273. package/typechain-types/PendleGaugeControllerMainchainUpg.ts +19 -0
  274. package/typechain-types/PendleGaugeControllerSidechainUpg.ts +19 -0
  275. package/typechain-types/PendleLPWrapper.ts +21 -0
  276. package/typechain-types/PendleMarketFactoryV6Upg.ts +773 -0
  277. package/typechain-types/PendleMarketV6.ts +1248 -0
  278. package/typechain-types/PendlePrincipalToken.ts +34 -0
  279. package/typechain-types/PendleSwap.ts +19 -0
  280. package/typechain-types/PendleVotingControllerUpg.ts +18 -48
  281. package/typechain-types/PendleYieldContractFactoryUpg.ts +820 -0
  282. package/typechain-types/PendleYieldToken.ts +34 -0
  283. package/typechain-types/factories/ActionAddRemoveLiqV3__factory.ts +1 -1
  284. package/typechain-types/factories/ActionCallbackV3__factory.ts +1 -1
  285. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  286. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
  287. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -1
  288. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
  289. package/typechain-types/factories/ActionMiscV3__factory.ts +1 -1
  290. package/typechain-types/factories/ActionSimple__factory.ts +1 -1
  291. package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
  292. package/typechain-types/factories/ActionStorageV4__factory.ts +1 -1
  293. package/typechain-types/factories/ActionSwapPTV3__factory.ts +1 -1
  294. package/typechain-types/factories/ActionSwapYTV3__factory.ts +1 -1
  295. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  296. package/typechain-types/factories/BalanceReader__factory.ts +1 -1
  297. package/typechain-types/factories/BoringPYUsdChainlinkAssetOracle__factory.ts +1 -1
  298. package/typechain-types/factories/BoringPYUsdChainlinkSYOracle__factory.ts +1 -1
  299. package/typechain-types/factories/Broadcaster__factory.ts +1 -1
  300. package/typechain-types/factories/Errors__factory.ts +26 -1
  301. package/typechain-types/factories/ExchangeRateMsgCodec__factory.ts +81 -0
  302. package/typechain-types/factories/ExpiredLpPtRedeemer__factory.ts +1 -1
  303. package/typechain-types/factories/IPExchangeRateOracleApp__factory.ts +301 -0
  304. package/typechain-types/factories/IPGauge__factory.ts +19 -0
  305. package/typechain-types/factories/IPMarketFactory__factory.ts +81 -19
  306. package/typechain-types/factories/IPMarket__factory.ts +58 -0
  307. package/typechain-types/factories/IPPrincipalToken__factory.ts +26 -0
  308. package/typechain-types/factories/IPYieldContractFactory__factory.ts +13 -0
  309. package/typechain-types/factories/IPYieldToken__factory.ts +26 -0
  310. package/typechain-types/factories/LimitBackendHelperV2__factory.ts +1 -1
  311. package/typechain-types/factories/OAppCoreUpgradeable__factory.ts +228 -0
  312. package/typechain-types/factories/OAppOptionsType3Upgradeable__factory.ts +219 -0
  313. package/typechain-types/factories/OAppReceiverUpgradeable__factory.ts +399 -0
  314. package/typechain-types/factories/OAppSenderUpgradeable__factory.ts +248 -0
  315. package/typechain-types/factories/OAppUpgradeable__factory.ts +411 -0
  316. package/typechain-types/factories/OKXScaleHelper__factory.ts +39 -0
  317. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  318. package/typechain-types/factories/OwnableUpgradeable__factory.ts +91 -0
  319. package/typechain-types/factories/PendleChainlinkOracleFactory__factory.ts +1 -1
  320. package/typechain-types/factories/PendleChainlinkOracleWithQuote__factory.ts +1 -1
  321. package/typechain-types/factories/PendleChainlinkOracle__factory.ts +1 -1
  322. package/typechain-types/factories/PendleCommonPoolDeployHelperV2__factory.ts +6 -1
  323. package/typechain-types/factories/PendleCrossChainOracleBaseApp_Init__factory.ts +554 -0
  324. package/typechain-types/factories/PendleERC20__factory.ts +14 -1
  325. package/typechain-types/factories/PendleExchangeRateOracleApp__factory.ts +958 -0
  326. package/typechain-types/factories/PendleExchangeRateOracleV2__factory.ts +165 -0
  327. package/typechain-types/factories/PendleFeeDistributorV2__factory.ts +1 -1
  328. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  329. package/typechain-types/factories/PendleGaugeControllerBaseUpg__factory.ts +13 -0
  330. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +23 -1
  331. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +23 -1
  332. package/typechain-types/factories/PendleGauge__factory.ts +19 -0
  333. package/typechain-types/factories/PendleLPWrapperFactory__factory.ts +1 -1
  334. package/typechain-types/factories/PendleLPWrapper__factory.ts +14 -1
  335. package/typechain-types/factories/PendleLimitRouter__factory.ts +1 -1
  336. package/typechain-types/factories/PendleMarketFactoryV6Upg__factory.ts +732 -0
  337. package/typechain-types/factories/PendleMarketV6__factory.ts +1261 -0
  338. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  339. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  340. package/typechain-types/factories/PendleMultiTokenMerkleDistributor__factory.ts +1 -1
  341. package/typechain-types/factories/PendlePYLpOracle__factory.ts +1 -1
  342. package/typechain-types/factories/PendlePoolDeployHelperV2__factory.ts +1 -1
  343. package/typechain-types/factories/PendlePoolDeployHelper__factory.ts +1 -1
  344. package/typechain-types/factories/PendlePrincipalToken__factory.ts +27 -1
  345. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  346. package/typechain-types/factories/PendleRouterV4__factory.ts +1 -1
  347. package/typechain-types/factories/PendleSparkLinearDiscountOracleFactoryWrapper__factory.ts +1 -1
  348. package/typechain-types/factories/PendleSparkLinearDiscountOracleFactory__factory.ts +1 -1
  349. package/typechain-types/factories/PendleSwap__factory.ts +31 -4
  350. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +5 -23
  351. package/typechain-types/factories/PendleYieldContractFactoryUpg__factory.ts +692 -0
  352. package/typechain-types/factories/PendleYieldToken__factory.ts +27 -1
  353. package/typechain-types/factories/Reflector__factory.ts +1 -1
  354. package/typechain-types/factories/SimulateHelper__factory.ts +1 -1
  355. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  356. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  357. package/typechain-types/hardhat.d.ts +120 -57
  358. package/typechain-types/index.ts +30 -16
  359. package/build/artifacts/contracts/core/Market/v3/PendleMarketFactoryV3.sol/PendleMarketFactoryV3.dbg.json +0 -4
  360. package/build/artifacts/contracts/core/Market/v3/PendleMarketFactoryV3.sol/PendleMarketFactoryV3.json +0 -610
  361. package/build/artifacts/contracts/core/Market/v3/PendleMarketV3.sol/PendleMarketV3.dbg.json +0 -4
  362. package/build/artifacts/contracts/core/Market/v3/PendleMarketV3.sol/PendleMarketV3.json +0 -1131
  363. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +0 -4
  364. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +0 -590
  365. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +0 -4
  366. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.json +0 -394
  367. package/build/artifacts/contracts/core/erc20/PendleERC20PermitUpg.sol/PendleERC20PermitUpg.dbg.json +0 -4
  368. package/build/artifacts/contracts/core/erc20/PendleERC20PermitUpg.sol/PendleERC20PermitUpg.json +0 -370
  369. package/build/artifacts/contracts/core/erc20/PendleERC20Upg.sol/PendleERC20Upg.dbg.json +0 -4
  370. package/build/artifacts/contracts/core/erc20/PendleERC20Upg.sol/PendleERC20Upg.json +0 -246
  371. package/build/artifacts/contracts/interfaces/IPMarketFactoryV3.sol/IPMarketFactoryV3.dbg.json +0 -4
  372. package/build/artifacts/contracts/interfaces/IPMarketFactoryV3.sol/IPMarketFactoryV3.json +0 -202
  373. package/build/artifacts/contracts/interfaces/IPMarketV3.sol/IPMarketV3.dbg.json +0 -4
  374. package/build/artifacts/contracts/interfaces/IPMarketV3.sol/IPMarketV3.json +0 -833
  375. package/contracts/core/erc20/PendleERC20Permit.sol +0 -80
  376. package/contracts/core/erc20/PendleERC20PermitUpg.sol +0 -82
  377. package/contracts/core/erc20/PendleERC20Upg.sol +0 -334
  378. package/contracts/interfaces/IPMarketFactoryV3.sol +0 -33
  379. package/contracts/interfaces/IPMarketV3.sol +0 -8
@@ -2,17 +2,19 @@
2
2
  pragma solidity ^0.8.17;
3
3
  import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
4
4
 
5
- import "../../../interfaces/IPMarketV3.sol";
6
- import "../../../interfaces/IPYieldContractFactory.sol";
7
- import "../../../interfaces/IPMarketFactoryV3.sol";
5
+ import "../../interfaces/IPMarket.sol";
6
+ import "../../interfaces/IPYieldContractFactory.sol";
7
+ import "../../interfaces/IPMarketFactory.sol";
8
8
 
9
- import "../../libraries/BaseSplitCodeFactory.sol";
10
- import "../../libraries/Errors.sol";
11
- import "../../libraries/BoringOwnableUpgradeableV2.sol";
9
+ import "../libraries/BaseSplitCodeFactory.sol";
10
+ import "../libraries/Errors.sol";
11
+ import "../libraries/BoringOwnableUpgradeableV2.sol";
12
12
 
13
- contract PendleMarketFactoryV3 is BoringOwnableUpgradeableV2, IPMarketFactoryV3 {
13
+ contract PendleMarketFactoryV6Upg is BoringOwnableUpgradeableV2, IPMarketFactory {
14
14
  using EnumerableSet for EnumerableSet.AddressSet;
15
15
 
16
+ uint256 public constant VERSION = 6;
17
+
16
18
  address public immutable marketCreationCodeContractA;
17
19
  uint256 public immutable marketCreationCodeSizeA;
18
20
  address public immutable marketCreationCodeContractB;
@@ -42,11 +44,9 @@ contract PendleMarketFactoryV3 is BoringOwnableUpgradeableV2, IPMarketFactoryV3
42
44
  uint256 _marketCreationCodeSizeA,
43
45
  address _marketCreationCodeContractB,
44
46
  uint256 _marketCreationCodeSizeB,
45
- address _treasury,
46
- uint8 _reserveFeePercent,
47
47
  address _vePendle,
48
48
  address _gaugeController
49
- ) initializer {
49
+ ) {
50
50
  yieldContractFactory = _yieldContractFactory;
51
51
  maxLnFeeRateRoot = uint256(LogExpMath.ln(int256((105 * PMath.IONE) / 100))); // ln(1.05)
52
52
 
@@ -55,11 +55,15 @@ contract PendleMarketFactoryV3 is BoringOwnableUpgradeableV2, IPMarketFactoryV3
55
55
  marketCreationCodeContractB = _marketCreationCodeContractB;
56
56
  marketCreationCodeSizeB = _marketCreationCodeSizeB;
57
57
 
58
- __BoringOwnableV2_init(msg.sender);
59
- setTreasuryAndFeeReserve(_treasury, _reserveFeePercent);
60
-
61
58
  vePendle = _vePendle;
62
59
  gaugeController = _gaugeController;
60
+
61
+ _disableInitializers();
62
+ }
63
+
64
+ function initialize(address _owner, address _treasury, uint8 _reserveFeePercent) external initializer {
65
+ __BoringOwnableV2_init(_owner);
66
+ setTreasuryAndFeeReserve(_treasury, _reserveFeePercent);
63
67
  }
64
68
 
65
69
  /**
@@ -127,7 +131,7 @@ contract PendleMarketFactoryV3 is BoringOwnableUpgradeableV2, IPMarketFactoryV3
127
131
  function setOverriddenFee(address router, address market, uint80 newFee) public onlyOwner {
128
132
  if (!allMarkets.contains(market)) revert Errors.MFNotPendleMarket(market);
129
133
 
130
- uint80 marketFee = IPMarketV3(market).getNonOverrideLnFeeRateRoot();
134
+ uint80 marketFee = IPMarket(market).getNonOverrideLnFeeRateRoot();
131
135
  if (newFee >= marketFee) revert Errors.MarketFactoryOverriddenFeeTooHigh(newFee, marketFee);
132
136
 
133
137
  // NOTE: newFee = 0 allowed !!
@@ -1,13 +1,14 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity ^0.8.17;
3
3
 
4
- import "../../../interfaces/IPMarketV3.sol";
5
- import "../../../interfaces/IPMarketFactoryV3.sol";
6
- import "../../../interfaces/IPMarketSwapCallback.sol";
4
+ import "../../interfaces/IPMarket.sol";
5
+ import "../../interfaces/IPMarketFactory.sol";
6
+ import "../../interfaces/IPMarketSwapCallback.sol";
7
7
 
8
- import "../../erc20/PendleERC20.sol";
9
- import "../PendleGauge.sol";
10
- import "../OracleLib.sol";
8
+ import "../erc20/PendleERC20.sol";
9
+ import "./PendleGauge.sol";
10
+ import "./OracleLib.sol";
11
+ import "../libraries/StringLib.sol";
11
12
 
12
13
  /**
13
14
  Invariance to maintain:
@@ -15,13 +16,16 @@ Invariance to maintain:
15
16
  - address(0) & address(this) should never have any rewards & activeBalance accounting done. This is
16
17
  guaranteed by address(0) & address(this) check in each updateForTwo function
17
18
  */
18
- contract PendleMarketV3 is PendleERC20, PendleGauge, IPMarketV3 {
19
+ contract PendleMarketV6 is PendleERC20, PendleGauge, IPMarket {
19
20
  using PMath for uint256;
20
21
  using PMath for int256;
21
22
  using MarketMathCore for MarketState;
22
23
  using SafeERC20 for IERC20;
23
24
  using PYIndexLib for IPYieldToken;
25
+ using PYIndexLib for PYIndex;
24
26
  using OracleLib for OracleLib.Observation[65535];
27
+ using StringLib for string;
28
+ using StringLib for StringLib.slice;
25
29
 
26
30
  struct MarketStorage {
27
31
  int128 totalPt;
@@ -34,8 +38,13 @@ contract PendleMarketV3 is PendleERC20, PendleGauge, IPMarketV3 {
34
38
  // 1 SLOT = 144 bits
35
39
  }
36
40
 
37
- string private constant NAME = "Pendle Market";
38
- string private constant SYMBOL = "PENDLE-LPT";
41
+ string private constant PT_NAME_PREF = "PT ";
42
+ string private constant PT_SYMBOL_PREF = "PT-";
43
+
44
+ string private constant LP_NAME_PREF = "PLP ";
45
+ string private constant LP_SYMBOL_PREF = "PLP-";
46
+
47
+ uint256 public constant VERSION = 6;
39
48
 
40
49
  IPPrincipalToken internal immutable PT;
41
50
  IStandardizedYield internal immutable SY;
@@ -64,7 +73,10 @@ contract PendleMarketV3 is PendleERC20, PendleGauge, IPMarketV3 {
64
73
  uint80 _lnFeeRateRoot,
65
74
  address _vePendle,
66
75
  address _gaugeController
67
- ) PendleERC20(NAME, SYMBOL, 18) PendleGauge(IPPrincipalToken(_PT).SY(), _vePendle, _gaugeController) {
76
+ )
77
+ PendleERC20(_getLPName(_PT), _getLPSymbol(_PT), 18)
78
+ PendleGauge(IPPrincipalToken(_PT).SY(), _vePendle, _gaugeController)
79
+ {
68
80
  PT = IPPrincipalToken(_PT);
69
81
  SY = IStandardizedYield(PT.SY());
70
82
  YT = IPYieldToken(PT.YT());
@@ -82,6 +94,14 @@ contract PendleMarketV3 is PendleERC20, PendleGauge, IPMarketV3 {
82
94
  factory = msg.sender;
83
95
  }
84
96
 
97
+ function _getLPName(address _PT) internal view returns (string memory) {
98
+ return LP_NAME_PREF.toSlice().concat(IPPrincipalToken(_PT).name().stripPrefixSlice(PT_NAME_PREF));
99
+ }
100
+
101
+ function _getLPSymbol(address _PT) internal view returns (string memory) {
102
+ return LP_SYMBOL_PREF.toSlice().concat(IPPrincipalToken(_PT).symbol().stripPrefixSlice(PT_SYMBOL_PREF));
103
+ }
104
+
85
105
  /**
86
106
  * @notice PendleMarket allows users to provide in PT & SY in exchange for LPs, which
87
107
  * will grant LP holders more exchange fee over time
@@ -164,9 +184,10 @@ contract PendleMarketV3 is PendleERC20, PendleGauge, IPMarketV3 {
164
184
  bytes calldata data
165
185
  ) external nonReentrant notExpired returns (uint256 netSyOut, uint256 netSyFee) {
166
186
  MarketState memory market = readState(msg.sender);
187
+ PYIndex index = YT.newIndex();
167
188
 
168
189
  uint256 netSyToReserve;
169
- (netSyOut, netSyFee, netSyToReserve) = market.swapExactPtForSy(YT.newIndex(), exactPtIn, block.timestamp);
190
+ (netSyOut, netSyFee, netSyToReserve) = market.swapExactPtForSy(index, exactPtIn, block.timestamp);
170
191
 
171
192
  if (receiver != address(this)) IERC20(SY).safeTransfer(receiver, netSyOut);
172
193
  IERC20(SY).safeTransfer(market.treasury, netSyToReserve);
@@ -180,6 +201,10 @@ contract PendleMarketV3 is PendleERC20, PendleGauge, IPMarketV3 {
180
201
  if (_selfBalance(PT) < market.totalPt.Uint())
181
202
  revert Errors.MarketInsufficientPtReceived(_selfBalance(PT), market.totalPt.Uint());
182
203
 
204
+ if (index.syToAsset(netSyFee - netSyToReserve) == 0) {
205
+ revert Errors.MarketZeroNetLPFee();
206
+ }
207
+
183
208
  emit Swap(msg.sender, receiver, exactPtIn.neg(), netSyOut.Int(), netSyFee, netSyToReserve);
184
209
  }
185
210
 
@@ -200,8 +225,10 @@ contract PendleMarketV3 is PendleERC20, PendleGauge, IPMarketV3 {
200
225
  ) external nonReentrant notExpired returns (uint256 netSyIn, uint256 netSyFee) {
201
226
  MarketState memory market = readState(msg.sender);
202
227
 
228
+ PYIndex index = YT.newIndex();
229
+
203
230
  uint256 netSyToReserve;
204
- (netSyIn, netSyFee, netSyToReserve) = market.swapSyForExactPt(YT.newIndex(), exactPtOut, block.timestamp);
231
+ (netSyIn, netSyFee, netSyToReserve) = market.swapSyForExactPt(index, exactPtOut, block.timestamp);
205
232
 
206
233
  if (receiver != address(this)) IERC20(PT).safeTransfer(receiver, exactPtOut);
207
234
  IERC20(SY).safeTransfer(market.treasury, netSyToReserve);
@@ -216,6 +243,10 @@ contract PendleMarketV3 is PendleERC20, PendleGauge, IPMarketV3 {
216
243
  if (_selfBalance(SY) < market.totalSy.Uint())
217
244
  revert Errors.MarketInsufficientSyReceived(_selfBalance(SY), market.totalSy.Uint());
218
245
 
246
+ if (index.syToAsset(netSyFee - netSyToReserve) == 0) {
247
+ revert Errors.MarketZeroNetLPFee();
248
+ }
249
+
219
250
  emit Swap(msg.sender, receiver, exactPtOut.Int(), netSyIn.neg(), netSyFee, netSyToReserve);
220
251
  }
221
252
 
@@ -279,7 +310,7 @@ contract PendleMarketV3 is PendleERC20, PendleGauge, IPMarketV3 {
279
310
 
280
311
  uint80 overriddenFee;
281
312
 
282
- (market.treasury, overriddenFee, market.reserveFeePercent) = IPMarketFactoryV3(factory).getMarketConfig(
313
+ (market.treasury, overriddenFee, market.reserveFeePercent) = IPMarketFactory(factory).getMarketConfig(
283
314
  address(this),
284
315
  router
285
316
  );
@@ -332,6 +363,10 @@ contract PendleMarketV3 is PendleERC20, PendleGauge, IPMarketV3 {
332
363
  return MiniHelpers.isCurrentlyExpired(expiry);
333
364
  }
334
365
 
366
+ function reentrancyGuardEntered() external view override(PendleERC20, IPMarket) returns (bool) {
367
+ return _reentrancyGuardEntered();
368
+ }
369
+
335
370
  /*///////////////////////////////////////////////////////////////
336
371
  PENDLE GAUGE - RELATED
337
372
  //////////////////////////////////////////////////////////////*/
@@ -12,6 +12,8 @@ import "../erc20/PendleERC20.sol";
12
12
  import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
13
13
 
14
14
  contract PendlePrincipalToken is PendleERC20, Initializable, IPPrincipalToken {
15
+ uint256 public constant VERSION = 6;
16
+
15
17
  address public immutable SY;
16
18
  address public immutable factory;
17
19
  uint256 public immutable expiry;
@@ -60,4 +62,8 @@ contract PendlePrincipalToken is PendleERC20, Initializable, IPPrincipalToken {
60
62
  function isExpired() public view returns (bool) {
61
63
  return MiniHelpers.isCurrentlyExpired(expiry);
62
64
  }
65
+
66
+ function reentrancyGuardEntered() external view override(PendleERC20, IPPrincipalToken) returns (bool) {
67
+ return _reentrancyGuardEntered();
68
+ }
63
69
  }
@@ -38,12 +38,13 @@ import "../libraries/StringLib.sol";
38
38
  import "./PendlePrincipalToken.sol";
39
39
  import "./PendleYieldToken.sol";
40
40
 
41
- /// @dev If this contract is ever made upgradeable, please pay attention to the numContractDeployed variable
42
- contract PendleYieldContractFactory is BoringOwnableUpgradeableV2, IPYieldContractFactory {
41
+ contract PendleYieldContractFactoryUpg is BoringOwnableUpgradeableV2, IPYieldContractFactory {
43
42
  using ExpiryUtils for string;
44
43
  using StringLib for string;
45
44
  using StringLib for StringLib.slice;
46
45
 
46
+ uint256 public constant VERSION = 6;
47
+
47
48
  string private constant PT_PREFIX = "PT";
48
49
  string private constant YT_PREFIX = "YT";
49
50
  string private constant SY_SYMBOL_PREF = "SY-";
@@ -82,15 +83,18 @@ contract PendleYieldContractFactory is BoringOwnableUpgradeableV2, IPYieldContra
82
83
  ytCreationCodeSizeA = _ytCreationCodeSizeA;
83
84
  ytCreationCodeContractB = _ytCreationCodeContractB;
84
85
  ytCreationCodeSizeB = _ytCreationCodeSizeB;
86
+
87
+ _disableInitializers();
85
88
  }
86
89
 
87
90
  function initialize(
88
91
  uint96 _expiryDivisor,
89
92
  uint128 _interestFeeRate,
90
93
  uint128 _rewardFeeRate,
91
- address _treasury
94
+ address _treasury,
95
+ address _owner
92
96
  ) external initializer {
93
- __BoringOwnableV2_init(msg.sender);
97
+ __BoringOwnableV2_init(_owner);
94
98
  setExpiryDivisor(_expiryDivisor);
95
99
  setInterestFeeRate(_interestFeeRate);
96
100
  setRewardFeeRate(_rewardFeeRate);
@@ -114,8 +118,8 @@ contract PendleYieldContractFactory is BoringOwnableUpgradeableV2, IPYieldContra
114
118
 
115
119
  (, , uint8 assetDecimals) = _SY.assetInfo();
116
120
 
117
- string memory syCoreName = _stripSYPrefix(_SY.name());
118
- string memory syCoreSymbol = _stripSYPrefix(_SY.symbol());
121
+ string memory syCoreName = _SY.name().stripPrefix(SY_NAME_PREF);
122
+ string memory syCoreSymbol = _SY.symbol().stripPrefix(SY_SYMBOL_PREF);
119
123
 
120
124
  PT = Create2.deploy(
121
125
  0,
@@ -189,11 +193,4 @@ contract PendleYieldContractFactory is BoringOwnableUpgradeableV2, IPYieldContra
189
193
  treasury = newTreasury;
190
194
  emit SetTreasury(newTreasury);
191
195
  }
192
-
193
- function _stripSYPrefix(string memory _str) internal pure returns (string memory) {
194
- StringLib.slice memory str = _str.toSlice();
195
- StringLib.slice memory delim_name = SY_NAME_PREF.toSlice();
196
- StringLib.slice memory delim_symbol = SY_SYMBOL_PREF.toSlice();
197
- return str.beyond(delim_name).beyond(delim_symbol).toString();
198
- }
199
196
  }
@@ -35,6 +35,8 @@ contract PendleYieldToken is IPYieldToken, PendleERC20, RewardManagerAbstract, I
35
35
  mapping(address => uint256) userRewardOwed;
36
36
  }
37
37
 
38
+ uint256 public constant VERSION = 6;
39
+
38
40
  address public immutable SY;
39
41
  address public immutable PT;
40
42
  address public immutable factory;
@@ -240,6 +242,10 @@ contract PendleYieldToken is IPYieldToken, PendleERC20, RewardManagerAbstract, I
240
242
  return _pyIndexStored;
241
243
  }
242
244
 
245
+ function reentrancyGuardEntered() external view override(PendleERC20, IPYieldToken) returns (bool) {
246
+ return _reentrancyGuardEntered();
247
+ }
248
+
243
249
  /**
244
250
  * @notice do a final rewards redeeming, and sets post-expiry data
245
251
  * @dev has no effect if called pre-expiry
@@ -53,6 +53,18 @@ contract PendleERC20 is Context, IERC20, IERC20Metadata {
53
53
  _status = _NOT_ENTERED;
54
54
  }
55
55
 
56
+ function reentrancyGuardEntered() external view virtual returns (bool) {
57
+ return _reentrancyGuardEntered();
58
+ }
59
+
60
+ /**
61
+ * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a
62
+ * `nonReentrant` function in the call stack.
63
+ */
64
+ function _reentrancyGuardEntered() internal view returns (bool) {
65
+ return _status == _ENTERED;
66
+ }
67
+
56
68
  /**
57
69
  * @dev Sets the values for {name}, {symbol} and {decimals}.
58
70
  *
@@ -30,6 +30,7 @@ library Errors {
30
30
  error MarketZeroAmountsInput();
31
31
  error MarketZeroAmountsOutput();
32
32
  error MarketZeroLnImpliedRate();
33
+ error MarketZeroNetLPFee();
33
34
  error MarketInsufficientPtForTrade(int256 currentAmount, int256 requiredAmount);
34
35
  error MarketInsufficientPtReceived(uint256 actualBalance, uint256 requiredBalance);
35
36
  error MarketInsufficientSyReceived(uint256 actualBalance, uint256 requiredBalance);
@@ -180,4 +181,10 @@ library Errors {
180
181
  // Swap Aggregator
181
182
  error SAInsufficientTokenIn(address tokenIn, uint256 amountExpected, uint256 amountActual);
182
183
  error UnsupportedSelector(uint256 aggregatorType, bytes4 selector);
184
+
185
+ // Cross Chain Oracle App
186
+ error FeedNotInitialized();
187
+ error ExchangeRateCallFailed();
188
+ error InvalidDestinationEid();
189
+ error InvalidMsgType();
183
190
  }
@@ -757,4 +757,16 @@ library StringLib {
757
757
 
758
758
  return ret;
759
759
  }
760
+
761
+ function stripPrefix(string memory _str, string memory _prefix) internal pure returns (string memory) {
762
+ slice memory s = toSlice(_str);
763
+ slice memory d = toSlice(_prefix);
764
+ return toString(beyond(s, d));
765
+ }
766
+
767
+ function stripPrefixSlice(string memory _str, string memory _delim) internal pure returns (slice memory) {
768
+ slice memory s = toSlice(_str);
769
+ slice memory d = toSlice(_delim);
770
+ return beyond(s, d);
771
+ }
760
772
  }
@@ -0,0 +1,86 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.0;
3
+
4
+ import {MessagingFee, MessagingReceipt} from "@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppUpgradeable.sol";
5
+
6
+ interface IPExchangeRateOracleApp {
7
+ event ExchangeRateSent(
8
+ bytes32 indexed guid,
9
+ uint32 indexed dstEid,
10
+ address indexed exchangeRateSource,
11
+ uint256 exchangeRate
12
+ );
13
+
14
+ event ExchangeRateReceived(
15
+ bytes32 indexed guid,
16
+ uint32 indexed srcEid,
17
+ bytes32 indexed exchangeRateSource,
18
+ uint256 exchangeRate,
19
+ uint256 updatedAt,
20
+ bool rateAccepted
21
+ );
22
+
23
+ event AllowedSenderSet(address indexed sender);
24
+
25
+ /**
26
+ * @dev Parameters for the send operation
27
+ * @param exchangeRateSource The address of the exchange rate source
28
+ * @param dstEid Destination endpoint ID
29
+ * @param extraOptions Additional LayerZero message options (e.g. gas limit configuration)
30
+ */
31
+ struct SendExchangeRateParam {
32
+ address exchangeRateSource;
33
+ uint32 dstEid;
34
+ bytes extraOptions;
35
+ }
36
+
37
+ /**
38
+ * @dev Exchange rate data with timestamp information
39
+ * @param exchangeRate The exchange rate value
40
+ * @param updatedAt Timestamp when the exchange rate was last updated
41
+ */
42
+ struct ExchangeRateData {
43
+ uint256 exchangeRate;
44
+ uint256 updatedAt;
45
+ }
46
+
47
+ /**
48
+ * @dev Retrieves exchange rate from a data source on the specified chain
49
+ * @param _srcEid Endpoint ID of the source chain
50
+ * @param exchangeRateSource The exchange rate source identifier on the source chain
51
+ */
52
+ function getExchangeRate(
53
+ uint32 _srcEid,
54
+ bytes32 exchangeRateSource
55
+ ) external view returns (ExchangeRateData memory exchangeRateData);
56
+
57
+ /**
58
+ * @dev Quote the fee required for sendExchangeRate execution
59
+ * @param sendParam The parameters required for the sendExchangeRate execution operation
60
+ * @param payInLzToken Flag indicating whether the caller is paying in the LZ token
61
+ * @return fee The fee need to pay for sendExchangeRate operation request
62
+ * - nativeFee: the fee paid in native token
63
+ * - lzTokenFee: the fee paid in lzToken
64
+ */
65
+ function quoteSendExchangeRate(
66
+ SendExchangeRateParam calldata sendParam,
67
+ bool payInLzToken
68
+ ) external view returns (MessagingFee memory fee);
69
+
70
+ /**
71
+ * @dev Execute sending exchange rate to another chain
72
+ * @param sendParam The parameters required for the operation
73
+ * @param fee The calculated fee for the operation. This can be retrieved through quoteSendExchangeRate() for estimation
74
+ * - nativeFee: the fee paid in native token
75
+ * - lzTokenFee: the fee paid in lzToken
76
+ * @return receipt The message receipt for the send operation, contains guid, nonce and the actual fee required
77
+ */
78
+ function sendExchangeRate(
79
+ SendExchangeRateParam calldata sendParam,
80
+ MessagingFee calldata fee
81
+ ) external payable returns (MessagingReceipt memory receipt);
82
+
83
+ // ====== Admin functions ======
84
+
85
+ function setAllowedSender(address _allowedSender) external;
86
+ }
@@ -2,10 +2,11 @@
2
2
  pragma solidity ^0.8.0;
3
3
 
4
4
  interface IPGauge {
5
+ event RedeemRewards(address indexed user, uint256[] rewardsOut);
6
+
7
+ event UpdateActiveBalance(address indexed user, uint256 newActiveBalance);
8
+
5
9
  function totalActiveSupply() external view returns (uint256);
6
10
 
7
11
  function activeBalance(address user) external view returns (uint256);
8
-
9
- // only available for newer factories. please check the verified contracts
10
- event RedeemRewards(address indexed user, uint256[] rewardsOut);
11
12
  }
@@ -1,14 +1,14 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity ^0.8.0;
3
3
 
4
- import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
4
+ // import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
5
  import "./IPPrincipalToken.sol";
6
6
  import "./IPYieldToken.sol";
7
7
  import "./IStandardizedYield.sol";
8
8
  import "./IPGauge.sol";
9
9
  import "../core/Market/MarketMathCore.sol";
10
10
 
11
- interface IPMarket is IERC20Metadata, IPGauge {
11
+ interface IPMarket is IPGauge, IERC20Metadata {
12
12
  event Mint(address indexed receiver, uint256 netLpMinted, uint256 netSyUsed, uint256 netPtUsed);
13
13
 
14
14
  event Burn(
@@ -90,4 +90,10 @@ interface IPMarket is IERC20Metadata, IPGauge {
90
90
  uint16 observationCardinality,
91
91
  uint16 observationCardinalityNext
92
92
  );
93
+
94
+ function getNonOverrideLnFeeRateRoot() external view returns (uint80);
95
+
96
+ function VERSION() external pure returns (uint256);
97
+
98
+ function reentrancyGuardEntered() external view returns (bool);
93
99
  }
@@ -2,22 +2,34 @@
2
2
  pragma solidity ^0.8.0;
3
3
 
4
4
  interface IPMarketFactory {
5
- struct FeeConfig {
6
- uint80 lnFeeRateRoot;
7
- uint8 reserveFeePercent;
8
- bool active;
9
- }
5
+ event SetOverriddenFee(address indexed router, address indexed market, uint80 lnFeeRateRoot);
10
6
 
11
- event NewMarketConfig(address indexed treasury, uint80 defaultLnFeeRateRoot, uint8 reserveFeePercent);
12
- event SetOverriddenFee(address indexed router, uint80 lnFeeRateRoot, uint8 reserveFeePercent);
13
- event UnsetOverriddenFee(address indexed router);
7
+ event CreateNewMarket(
8
+ address indexed market,
9
+ address indexed PT,
10
+ int256 scalarRoot,
11
+ int256 initialAnchor,
12
+ uint256 lnFeeRateRoot
13
+ );
14
14
 
15
- event CreateNewMarket(address indexed market, address indexed PT, int256 scalarRoot, int256 initialAnchor);
15
+ event NewTreasuryAndFeeReserve(address indexed treasury, uint8 reserveFeePercent);
16
+
17
+ function VERSION() external pure returns (uint256);
16
18
 
17
19
  function isValidMarket(address market) external view returns (bool);
18
20
 
19
21
  // If this is changed, change the readState function in market as well
20
22
  function getMarketConfig(
23
+ address market,
21
24
  address router
22
- ) external view returns (address treasury, uint80 lnFeeRateRoot, uint8 reserveFeePercent);
25
+ ) external view returns (address treasury, uint80 overriddenFee, uint8 reserveFeePercent);
26
+
27
+ function createNewMarket(
28
+ address PT,
29
+ int256 scalarRoot,
30
+ int256 initialAnchor,
31
+ uint80 lnFeeRateRoot
32
+ ) external returns (address market);
33
+
34
+ function setOverriddenFee(address router, address market, uint80 newFee) external;
23
35
  }
@@ -18,4 +18,8 @@ interface IPPrincipalToken is IERC20Metadata {
18
18
  function expiry() external view returns (uint256);
19
19
 
20
20
  function isExpired() external view returns (bool);
21
+
22
+ function VERSION() external pure returns (uint256);
23
+
24
+ function reentrancyGuardEntered() external view returns (bool);
21
25
  }
@@ -34,6 +34,8 @@ interface IPYieldContractFactory {
34
34
 
35
35
  event SetTreasury(address indexed treasury);
36
36
 
37
+ function VERSION() external pure returns (uint256);
38
+
37
39
  function getPT(address SY, uint256 expiry) external view returns (address);
38
40
 
39
41
  function getYT(address SY, uint256 expiry) external view returns (address);
@@ -59,4 +59,8 @@ interface IPYieldToken is IERC20Metadata, IRewardManager, IPInterestManagerYT {
59
59
  function doCacheIndexSameBlock() external view returns (bool);
60
60
 
61
61
  function pyIndexLastUpdatedBlock() external view returns (uint128);
62
+
63
+ function reentrancyGuardEntered() external view returns (bool);
64
+
65
+ function VERSION() external pure returns (uint256);
62
66
  }
@@ -7,15 +7,14 @@ import "../../interfaces/IOwnable.sol";
7
7
  import "../../core/libraries/BoringOwnableUpgradeableV2.sol";
8
8
 
9
9
  contract PendleCommonPoolDeployHelperV2 is PendlePoolDeployHelperV2, BoringOwnableUpgradeableV2 {
10
-
11
- bytes32 public constant ERC4626_DEPLOY_ID = keccak256("PendleERC4626SYV2"); // 0x1278efc0e6754cd30fef2df25ff5ced072ebb194d348b0b1b9548166d24352ef
12
- bytes32 public constant ERC4626_NOT_REDEEMABLE_DEPLOY_ID = keccak256("PendleERC4626NotRedeemableToAssetSYV2"); // 0x6f089cd4afdd945c5c26b3f4542d0c294d19ec0e339c6ce4f8eafa94d700d05d
13
- bytes32 public constant ERC20_DEPLOY_ID = keccak256("PendleERC20SY"); // 0xfcf22a9a515753d83e4f2a81cf368c7226408c64f52411ae95241ebf5ed53304
14
-
15
- bytes32 public constant ERC4626_WITH_ADAPTER_ID = keccak256("PendleERC4626WithAdapterSY"); // 0x73f41560741d6765943d3c955034291fe23d9141e3a4719bc97422d5bf019adc
16
- bytes32 public constant ERC4626_NO_REDEEM_WITH_ADAPTER_ID = keccak256("PendleERC4626NoRedeemWithAdapterSY"); // 0x3b8dd2b992f773444e5422ba1db289c4657c57110d740dca7975dc095632ef23
17
- bytes32 public constant ERC20_WITH_ADAPTER_ID = keccak256("PendleERC20WithAdapterSY"); // 0xe5cce2b1999bf8c2cc4cf6d96d0569a24d8b782ba1647c09a8e1aa8bbfb98996
18
- bytes32 public constant ERC4626_NO_DEPOSIT_NO_REDEEM = keccak256("PendleERC4626NoRedeemNoDepositUpgSY"); // 0x5c1cddc0128e0b02bb711f84a022bf1c13177d4ab028830b702f3a77280025ea
10
+ bytes32 public constant ERC4626_DEPLOY_ID = keccak256("PendleERC4626SYV2"); // 0x1278efc0e6754cd30fef2df25ff5ced072ebb194d348b0b1b9548166d24352ef
11
+ bytes32 public constant ERC4626_NOT_REDEEMABLE_DEPLOY_ID = keccak256("PendleERC4626NotRedeemableToAssetSYV2"); // 0x6f089cd4afdd945c5c26b3f4542d0c294d19ec0e339c6ce4f8eafa94d700d05d
12
+ bytes32 public constant ERC20_DEPLOY_ID = keccak256("PendleERC20SY"); // 0xfcf22a9a515753d83e4f2a81cf368c7226408c64f52411ae95241ebf5ed53304
13
+
14
+ bytes32 public constant ERC4626_WITH_ADAPTER_ID = keccak256("PendleERC4626WithAdapterSY"); // 0x73f41560741d6765943d3c955034291fe23d9141e3a4719bc97422d5bf019adc
15
+ bytes32 public constant ERC4626_NO_REDEEM_WITH_ADAPTER_ID = keccak256("PendleERC4626NoRedeemWithAdapterSY"); // 0x3b8dd2b992f773444e5422ba1db289c4657c57110d740dca7975dc095632ef23
16
+ bytes32 public constant ERC20_WITH_ADAPTER_ID = keccak256("PendleERC20WithAdapterSY"); // 0xe5cce2b1999bf8c2cc4cf6d96d0569a24d8b782ba1647c09a8e1aa8bbfb98996
17
+ bytes32 public constant ERC4626_NO_DEPOSIT_NO_REDEEM = keccak256("PendleERC4626NoRedeemNoDepositUpgSY"); // 0x5c1cddc0128e0b02bb711f84a022bf1c13177d4ab028830b702f3a77280025ea
19
18
 
20
19
  address public immutable syFactory;
21
20
 
@@ -36,12 +35,13 @@ contract PendleCommonPoolDeployHelperV2 is PendlePoolDeployHelperV2, BoringOwnab
36
35
  function deployCommonMarketById(
37
36
  bytes32 id,
38
37
  bytes memory constructorParams,
38
+ bytes memory initData,
39
39
  PoolConfig memory config,
40
40
  address tokenToSeedLiqudity,
41
41
  uint256 amountToSeed,
42
42
  address syOwner
43
43
  ) external returns (PoolDeploymentAddrs memory) {
44
- address SY = IPCommonSYFactory(syFactory).deploySY(id, constructorParams, syOwner);
44
+ address SY = IPCommonSYFactory(syFactory).deployUpgradableSY(id, constructorParams, initData, syOwner);
45
45
  return deploy5115MarketAndSeedLiquidity(SY, config, tokenToSeedLiqudity, amountToSeed);
46
46
  }
47
47
 
@@ -2,9 +2,9 @@
2
2
  pragma solidity ^0.8.17;
3
3
 
4
4
  import "../../interfaces/IPAllActionV3.sol";
5
- import "../../interfaces/IPMarketFactoryV3.sol";
5
+ import "../../interfaces/IPMarketFactory.sol";
6
6
  import "../../interfaces/IPYieldContractFactory.sol";
7
- import "../../interfaces/IPMarketV3.sol";
7
+ import "../../interfaces/IPMarket.sol";
8
8
  // import "../core/StandardizedYield/implementations/PendleERC4626SY.sol";
9
9
  import "../../core/libraries/TokenHelper.sol";
10
10
 
@@ -53,7 +53,7 @@ contract PendlePoolDeployHelper is TokenHelper {
53
53
  params.expiry,
54
54
  params.doCacheIndexSameBlock
55
55
  );
56
- market = IPMarketFactoryV3(marketFactory).createNewMarket(
56
+ market = IPMarketFactory(marketFactory).createNewMarket(
57
57
  PT,
58
58
  params.scalarRoot,
59
59
  params.initialRateAnchor,
@@ -120,15 +120,15 @@ contract PendlePoolDeployHelper is TokenHelper {
120
120
  int256 initialRateAnchor
121
121
  ) external returns (address newMarket) {
122
122
  (, IPPrincipalToken PT, ) = IPMarket(oldMarket).readTokens();
123
- newMarket = IPMarketFactoryV3(marketFactory).createNewMarket(
123
+ newMarket = IPMarketFactory(marketFactory).createNewMarket(
124
124
  address(PT),
125
125
  scalarRoot,
126
126
  initialRateAnchor,
127
127
  lnFeeRateRoot
128
128
  );
129
129
  _transferFrom(IERC20(oldMarket), msg.sender, oldMarket, amountLp);
130
- (uint256 netSyOut, uint256 netPtOut) = IPMarketV3(oldMarket).burn(newMarket, newMarket, amountLp);
131
- IPMarketV3(newMarket).mint(msg.sender, netSyOut, netPtOut);
130
+ (uint256 netSyOut, uint256 netPtOut) = IPMarket(oldMarket).burn(newMarket, newMarket, amountLp);
131
+ IPMarket(newMarket).mint(msg.sender, netSyOut, netPtOut);
132
132
  }
133
133
 
134
134
  receive() external payable {}