@pendle/core-v2 5.2.0 → 5.2.1

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 (247) hide show
  1. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleSENASY.sol/PendleSENASY.dbg.json +1 -1
  2. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleSENASY.sol/PendleSENASY.json +2 -2
  3. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleSUSDESY.sol/PendleSUSDESY.dbg.json +1 -1
  4. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleSUSDESY.sol/PendleSUSDESY.json +2 -2
  5. package/build/artifacts/contracts/core/StandardizedYield/implementations/Gains/PendleGTokenSY.sol/PendleGTokenSY.dbg.json +1 -1
  6. package/build/artifacts/contracts/core/StandardizedYield/implementations/Gains/PendleGTokenSY.sol/PendleGTokenSY.json +2 -2
  7. package/build/artifacts/contracts/core/StandardizedYield/implementations/Gains/PendleGUSDCSY.sol/PendleGUSDCSY.dbg.json +1 -1
  8. package/build/artifacts/contracts/core/StandardizedYield/implementations/Gains/PendleGUSDCSY.sol/PendleGUSDCSY.json +2 -2
  9. package/build/artifacts/contracts/core/StandardizedYield/implementations/Gains/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
  10. package/build/artifacts/contracts/core/StandardizedYield/implementations/Gains/PendleGdaiSY.sol/PendleGDaiSY.json +2 -2
  11. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultERC20SY.sol/PendleKarakVaultERC20SY.dbg.json +1 -1
  12. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultERC20SY.sol/PendleKarakVaultERC20SY.json +2 -2
  13. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultEzETHSY.sol/PendleKarakVaultEzETHSY.dbg.json +1 -1
  14. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultEzETHSY.sol/PendleKarakVaultEzETHSY.json +2 -2
  15. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultSUSDESY.sol/PendleKarakVaultSUSDESY.dbg.json +1 -1
  16. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultSUSDESY.sol/PendleKarakVaultSUSDESY.json +2 -2
  17. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultSYBaseUpg.sol/PendleKarakVaultSYBaseUpg.dbg.json +1 -1
  18. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultUSDESY.sol/PendleKarakVaultUSDESY.dbg.json +1 -1
  19. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultUSDESY.sol/PendleKarakVaultUSDESY.json +2 -2
  20. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultWEETHSY.sol/PendleKarakVaultWEETHSY.dbg.json +1 -1
  21. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultWEETHSY.sol/PendleKarakVaultWEETHSY.json +2 -2
  22. package/build/artifacts/contracts/core/StandardizedYield/implementations/KelpDAO/PendleAgETHSY.sol/PendleAgETHSY.dbg.json +1 -1
  23. package/build/artifacts/contracts/core/StandardizedYield/implementations/KelpDAO/PendleAgETHSY.sol/PendleAgETHSY.json +2 -2
  24. package/build/artifacts/contracts/core/StandardizedYield/implementations/Lombard/PendleLBTCBaseSY.sol/PendleLBTCBaseSY.dbg.json +4 -0
  25. package/build/artifacts/contracts/core/StandardizedYield/implementations/Lombard/PendleLBTCBaseSY.sol/PendleLBTCBaseSY.json +1111 -0
  26. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleAmphorWstETHVaultSY.sol/PendleAmphorWstETHVaultSY.dbg.json +1 -1
  27. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleAmphorWstETHVaultSY.sol/PendleAmphorWstETHVaultSY.json +2 -2
  28. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultERC4626SYUpg.sol/PendleMellowVaultERC4626SYUpg.dbg.json +1 -1
  29. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultERC4626SYUpg.sol/PendleMellowVaultERC4626SYUpg.json +2 -2
  30. package/build/artifacts/contracts/core/StandardizedYield/implementations/Morpho/PendleMorphoMetaVaultSY.sol/PendleMorphoMetaVaultSY.dbg.json +4 -0
  31. package/build/artifacts/contracts/core/StandardizedYield/implementations/Morpho/PendleMorphoMetaVaultSY.sol/PendleMorphoMetaVaultSY.json +1052 -0
  32. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626NotRedeemableToAssetSY.sol/PendleERC4626NotRedeemableToAssetSY.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626NotRedeemableToAssetSY.sol/PendleERC4626NotRedeemableToAssetSY.json +2 -2
  34. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626SY.sol/PendleERC4626SY.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626SY.sol/PendleERC4626SY.json +2 -2
  36. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626SYV2.sol/PendleERC4626SYV2.dbg.json +4 -0
  37. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626SYV2.sol/PendleERC4626SYV2.json +1026 -0
  38. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626UpgSY.sol/PendleERC4626SYUpg.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626UpgSY.sol/PendleERC4626SYUpg.json +2 -2
  40. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626UpgSYV2.sol/PendleERC4626SYUpg.dbg.json +4 -0
  41. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626UpgSYV2.sol/PendleERC4626SYUpg.json +1000 -0
  42. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.json +2 -2
  44. package/build/artifacts/contracts/core/StandardizedYield/implementations/PirexETH/PendleApxETHSY.sol/PendleApxETHSY.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/StandardizedYield/implementations/PirexETH/PendleApxETHSY.sol/PendleApxETHSY.json +2 -2
  46. package/build/artifacts/contracts/core/StandardizedYield/implementations/Puffer/PendlePufStETHSY.sol/PendlePufStETHSY.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/StandardizedYield/implementations/Puffer/PendlePufStETHSY.sol/PendlePufStETHSY.json +2 -2
  48. package/build/artifacts/contracts/core/StandardizedYield/implementations/Puffer/PendlePufWETHSY.sol/PendlePufWETHSY.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/StandardizedYield/implementations/Puffer/PendlePufWETHSY.sol/PendlePufWETHSY.json +2 -2
  50. package/build/artifacts/contracts/core/StandardizedYield/implementations/Sky/PendleSUSDSSY.sol/PendleSUSDSSY.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/StandardizedYield/implementations/Sky/PendleSUSDSSY.sol/PendleSUSDSSY.json +2 -2
  52. package/build/artifacts/contracts/core/StandardizedYield/implementations/Syrup/PendleSyrupSY.sol/PendleSyrupSY.dbg.json +1 -1
  53. package/build/artifacts/contracts/core/StandardizedYield/implementations/Syrup/PendleSyrupSY.sol/PendleSyrupSY.json +2 -2
  54. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zerolend/PendleZerolendEBTCSYUpg.sol/PendleZerolendEBTCSYUpg.dbg.json +1 -1
  55. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zerolend/PendleZerolendEBTCSYUpg.sol/PendleZerolendEBTCSYUpg.json +2 -2
  56. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  57. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.json +19 -0
  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/IPActionMiscV3.sol/IPActionMiscV3.dbg.json +1 -1
  62. package/build/artifacts/contracts/interfaces/IPActionSimple.sol/IPActionSimple.dbg.json +1 -1
  63. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  64. package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.dbg.json +1 -1
  65. package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.dbg.json +1 -1
  66. package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.dbg.json +1 -1
  67. package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.dbg.json +1 -1
  68. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionAddRemoveLiqV3Events.dbg.json +1 -1
  69. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionMiscV3Events.dbg.json +1 -1
  70. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionStorageEvents.dbg.json +1 -1
  71. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapPTV3Events.dbg.json +1 -1
  72. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapYTV3Events.dbg.json +1 -1
  73. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPAllEventsV3.dbg.json +1 -1
  74. package/build/artifacts/contracts/interfaces/IPChainlinkOracle.sol/IPChainlinkOracle.dbg.json +4 -0
  75. package/build/artifacts/contracts/interfaces/IPChainlinkOracle.sol/IPChainlinkOracle.json +122 -0
  76. package/build/artifacts/contracts/interfaces/IPChainlinkOracleFactory.sol/IPChainlinkOracleFactory.dbg.json +4 -0
  77. package/build/artifacts/contracts/interfaces/IPChainlinkOracleFactory.sol/IPChainlinkOracleFactory.json +91 -0
  78. package/build/artifacts/contracts/interfaces/IPChainlinkOracleWithQuote.sol/IPChainlinkOracleWithQuote.dbg.json +4 -0
  79. package/build/artifacts/contracts/interfaces/IPChainlinkOracleWithQuote.sol/IPChainlinkOracleWithQuote.json +262 -0
  80. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitOrderType.dbg.json +1 -1
  81. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouter.dbg.json +1 -1
  82. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouter.json +96 -0
  83. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouterCallback.dbg.json +1 -1
  84. package/build/artifacts/contracts/interfaces/IPPYLpOracle.sol/IPPYLpOracle.dbg.json +1 -1
  85. package/build/artifacts/contracts/interfaces/IPPYLpOracle.sol/IPPYLpOracle.json +13 -0
  86. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  87. package/build/artifacts/contracts/interfaces/Lombard/ILBTCMinterBase.sol/ILBTCMinterBase.dbg.json +4 -0
  88. package/build/artifacts/contracts/interfaces/Lombard/ILBTCMinterBase.sol/ILBTCMinterBase.json +63 -0
  89. package/build/artifacts/contracts/limit/LimitMathCore.sol/LimitMathCore.dbg.json +1 -1
  90. package/build/artifacts/contracts/limit/LimitMathCore.sol/LimitMathCore.json +2 -2
  91. package/build/artifacts/contracts/limit/LimitRouterBase.sol/LimitRouterBase.dbg.json +1 -1
  92. package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.dbg.json +1 -1
  93. package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.json +2 -2
  94. package/build/artifacts/contracts/offchain-helpers/LimitBackendHelper.sol/LimitBackendHelper.dbg.json +1 -1
  95. package/build/artifacts/contracts/offchain-helpers/LimitBackendHelper.sol/LimitBackendHelper.json +2 -2
  96. package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +1 -1
  97. package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.json +2 -2
  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/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  113. package/build/artifacts/contracts/oracles/PendlePYLpOracle.sol/PendlePYLpOracle.dbg.json +1 -1
  114. package/build/artifacts/contracts/oracles/PendlePYLpOracle.sol/PendlePYLpOracle.json +2 -2
  115. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracle.sol/PendleChainlinkOracle.dbg.json +4 -0
  116. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracle.sol/PendleChainlinkOracle.json +226 -0
  117. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.dbg.json +4 -0
  118. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.json +343 -0
  119. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.dbg.json +4 -0
  120. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.json +257 -0
  121. package/build/artifacts/contracts/oracles/samples/BoringLpGlpOracle.sol/BoringLpGlpOracle.dbg.json +1 -1
  122. package/build/artifacts/contracts/oracles/samples/BoringLpGlpOracle.sol/BoringLpGlpOracle.json +2 -2
  123. package/build/artifacts/contracts/oracles/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.dbg.json +1 -1
  124. package/build/artifacts/contracts/oracles/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.json +2 -2
  125. package/build/artifacts/contracts/oracles/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.dbg.json +1 -1
  126. package/build/artifacts/contracts/oracles/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.json +2 -2
  127. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.dbg.json +1 -1
  128. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.json +2 -2
  129. package/build/artifacts/contracts/router/ActionCallbackV3.sol/ActionCallbackV3.dbg.json +1 -1
  130. package/build/artifacts/contracts/router/ActionCallbackV3.sol/ActionCallbackV3.json +2 -2
  131. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.dbg.json +1 -1
  132. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.json +2 -2
  133. package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.dbg.json +1 -1
  134. package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.json +2 -2
  135. package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.dbg.json +1 -1
  136. package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.json +2 -2
  137. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.dbg.json +1 -1
  138. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.json +2 -2
  139. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.dbg.json +1 -1
  140. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.json +2 -2
  141. package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.dbg.json +1 -1
  142. package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.json +2 -2
  143. package/build/artifacts/contracts/router/Reflector.sol/Reflector.dbg.json +1 -1
  144. package/build/artifacts/contracts/router/Reflector.sol/Reflector.json +2 -2
  145. package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.dbg.json +1 -1
  146. package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.dbg.json +1 -1
  147. package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.json +2 -2
  148. package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.dbg.json +1 -1
  149. package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.json +2 -2
  150. package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  151. package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  152. package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  153. package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  154. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.dbg.json +1 -1
  155. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.json +2 -2
  156. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.dbg.json +1 -1
  157. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.json +2 -2
  158. package/contracts/core/StandardizedYield/implementations/Lombard/PendleLBTCBaseSY.sol +121 -0
  159. package/contracts/core/StandardizedYield/implementations/Morpho/PendleMorphoMetaVaultSY.sol +21 -0
  160. package/contracts/core/StandardizedYield/implementations/PendleERC4626SY.sol +0 -1
  161. package/contracts/core/StandardizedYield/implementations/PendleERC4626SYV2.sol +88 -0
  162. package/contracts/core/StandardizedYield/implementations/PendleERC4626UpgSYV2.sol +83 -0
  163. package/contracts/core/StandardizedYield/implementations/Zerolend/PendleZerolendEBTCSYUpg.sol +2 -1
  164. package/contracts/interfaces/IERC4626.sol +2 -0
  165. package/contracts/interfaces/IPChainlinkOracle.sol +11 -0
  166. package/contracts/interfaces/IPChainlinkOracleFactory.sol +22 -0
  167. package/contracts/interfaces/IPChainlinkOracleWithQuote.sol +8 -0
  168. package/contracts/interfaces/IPLimitRouter.sol +22 -12
  169. package/contracts/interfaces/IPPYLpOracle.sol +3 -4
  170. package/contracts/interfaces/Lombard/ILBTCMinterBase.sol +12 -0
  171. package/contracts/oracles/factory/PendleChainlinkOracle.sol +134 -0
  172. package/contracts/oracles/factory/PendleChainlinkOracleFactory.sol +121 -0
  173. package/contracts/oracles/factory/PendleChainlinkOracleWithQuote.sol +50 -0
  174. package/deployments/1-markets/MORPHO-PWBTC-JUN2025.json +14 -0
  175. package/deployments/1-markets/SUSDS-MAINNET-MAR2025-RELAUNCH.json +12 -0
  176. package/deployments/1-markets/USD0++-MAINNET-JUN2025.json +14 -0
  177. package/deployments/42161-markets/GUSDC-ARBITRUM-JUN2025.json +14 -0
  178. package/deployments/42161-markets/MUXLP-ARBITRUM-JUN2025.json +14 -0
  179. package/deployments/8453-markets/CBETH-BASE-DEC2025.json +14 -0
  180. package/deployments/8453-markets/LBTC-BASE-MAY2025.json +14 -0
  181. package/package.json +1 -1
  182. package/typechain-types/IERC4626.ts +16 -0
  183. package/typechain-types/ILBTCMinterBase.ts +159 -0
  184. package/typechain-types/IPLimitRouter.ts +36 -0
  185. package/typechain-types/IPPYLpOracle.ts +21 -0
  186. package/typechain-types/PendleERC4626SYV2.ts +1281 -0
  187. package/typechain-types/PendleLBTCBaseSY.ts +1470 -0
  188. package/typechain-types/PendleMorphoMetaVaultSY.ts +1323 -0
  189. package/typechain-types/factories/ActionAddRemoveLiqV3__factory.ts +1 -1
  190. package/typechain-types/factories/ActionCallbackV3__factory.ts +1 -1
  191. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  192. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
  193. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -1
  194. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
  195. package/typechain-types/factories/ActionMiscV3__factory.ts +1 -1
  196. package/typechain-types/factories/ActionSimple__factory.ts +1 -1
  197. package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
  198. package/typechain-types/factories/ActionStorageV4__factory.ts +1 -1
  199. package/typechain-types/factories/ActionSwapLimitV3__factory.ts +1 -1
  200. package/typechain-types/factories/ActionSwapPTV3__factory.ts +1 -1
  201. package/typechain-types/factories/ActionSwapYTV3__factory.ts +1 -1
  202. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  203. package/typechain-types/factories/BoringLpGlpOracle__factory.ts +1 -1
  204. package/typechain-types/factories/BoringPYUsdChainlinkAssetOracle__factory.ts +1 -1
  205. package/typechain-types/factories/BoringPYUsdChainlinkSYOracle__factory.ts +1 -1
  206. package/typechain-types/factories/IERC4626__factory.ts +19 -0
  207. package/typechain-types/factories/ILBTCMinterBase__factory.ts +78 -0
  208. package/typechain-types/factories/IPLimitRouter__factory.ts +96 -0
  209. package/typechain-types/factories/IPPYLpOracle__factory.ts +13 -0
  210. package/typechain-types/factories/LimitBackendHelper__factory.ts +1 -1
  211. package/typechain-types/factories/PendleAgETHSY__factory.ts +1 -1
  212. package/typechain-types/factories/PendleAmphorWstETHVaultSY__factory.ts +1 -1
  213. package/typechain-types/factories/PendleApxETHSY__factory.ts +1 -1
  214. package/typechain-types/factories/PendleChainlinkOracleFactory__factory.ts +1 -1
  215. package/typechain-types/factories/PendleChainlinkOracleWithQuote__factory.ts +1 -49
  216. package/typechain-types/factories/PendleChainlinkOracle__factory.ts +1 -49
  217. package/typechain-types/factories/PendleERC4626NotRedeemableToAssetSY__factory.ts +1 -1
  218. package/typechain-types/factories/PendleERC4626SYUpg__factory.ts +1 -1
  219. package/typechain-types/factories/PendleERC4626SYV2__factory.ts +1095 -0
  220. package/typechain-types/factories/PendleERC4626SY__factory.ts +1 -1
  221. package/typechain-types/factories/PendleGDaiSY__factory.ts +1 -1
  222. package/typechain-types/factories/PendleGTokenSY__factory.ts +1 -1
  223. package/typechain-types/factories/PendleGUSDCSY__factory.ts +1 -1
  224. package/typechain-types/factories/PendleKarakVaultERC20SY__factory.ts +1 -1
  225. package/typechain-types/factories/PendleKarakVaultEzETHSY__factory.ts +1 -1
  226. package/typechain-types/factories/PendleKarakVaultSUSDESY__factory.ts +1 -1
  227. package/typechain-types/factories/PendleKarakVaultUSDESY__factory.ts +1 -1
  228. package/typechain-types/factories/PendleKarakVaultWEETHSY__factory.ts +1 -1
  229. package/typechain-types/factories/PendleLBTCBaseSY__factory.ts +1164 -0
  230. package/typechain-types/factories/PendleLimitRouter__factory.ts +1 -1
  231. package/typechain-types/factories/PendleMellowVaultERC4626SYUpg__factory.ts +1 -1
  232. package/typechain-types/factories/PendleMorphoMetaVaultSY__factory.ts +1125 -0
  233. package/typechain-types/factories/PendlePYLpOracle__factory.ts +1 -1
  234. package/typechain-types/factories/PendlePoolDeployHelper__factory.ts +1 -1
  235. package/typechain-types/factories/PendlePufStETHSY__factory.ts +1 -1
  236. package/typechain-types/factories/PendlePufWETHSY__factory.ts +1 -1
  237. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  238. package/typechain-types/factories/PendleRouterV4__factory.ts +1 -1
  239. package/typechain-types/factories/PendleSENASY__factory.ts +1 -1
  240. package/typechain-types/factories/PendleSUSDESY__factory.ts +1 -1
  241. package/typechain-types/factories/PendleSUSDSSY__factory.ts +1 -1
  242. package/typechain-types/factories/PendleSfrxEthSY__factory.ts +1 -1
  243. package/typechain-types/factories/PendleSyrupSY__factory.ts +1 -1
  244. package/typechain-types/factories/PendleZerolendEBTCSYUpg__factory.ts +1 -1
  245. package/typechain-types/factories/Reflector__factory.ts +1 -1
  246. package/typechain-types/hardhat.d.ts +126 -0
  247. package/typechain-types/index.ts +26 -0
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/4d270949015466c8da4d7817a7662941.json"
3
+ "buildInfo": "../../../../build-info/1bffa552d37c21c0199e66410e781db1.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "MarketApproxPtInLib",
4
4
  "sourceName": "contracts/router/math/MarketApproxLib.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202ab13cd6c5d471cbb99ec8a6bf036c5cba3113b80d5a30f9336bcde834dc6fe964736f6c63430008170033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202ab13cd6c5d471cbb99ec8a6bf036c5cba3113b80d5a30f9336bcde834dc6fe964736f6c63430008170033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122082f3c9a438558cdbff296f11727b014de2c9450183450e107fb3400755c2407664736f6c63430008170033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122082f3c9a438558cdbff296f11727b014de2c9450183450e107fb3400755c2407664736f6c63430008170033",
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/4d270949015466c8da4d7817a7662941.json"
3
+ "buildInfo": "../../../../build-info/1bffa552d37c21c0199e66410e781db1.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "MarketApproxPtOutLib",
4
4
  "sourceName": "contracts/router/math/MarketApproxLib.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d8bdc477b60cb5e6edc37f6099b3b5c82fd92fbe082c21b14266ef95969ae4d264736f6c63430008170033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d8bdc477b60cb5e6edc37f6099b3b5c82fd92fbe082c21b14266ef95969ae4d264736f6c63430008170033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203ef74022f162d5ffc28e4fcb8928b0bd4750226801d7e5809b8953f15a3ca6a764736f6c63430008170033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203ef74022f162d5ffc28e4fcb8928b0bd4750226801d7e5809b8953f15a3ca6a764736f6c63430008170033",
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/4d270949015466c8da4d7817a7662941.json"
3
+ "buildInfo": "../../../../build-info/1bffa552d37c21c0199e66410e781db1.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "MarketApproxPtInLibOnchain",
4
4
  "sourceName": "contracts/router/math/MarketApproxLibOnchain.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ad1d4ca78ad88d47abeb410fe34c3a8def4fed673ff6b14b4edc63c4811d33cd64736f6c63430008170033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ad1d4ca78ad88d47abeb410fe34c3a8def4fed673ff6b14b4edc63c4811d33cd64736f6c63430008170033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f0f8c14eb68b51c9c48787b6dd1072f2f450b86634247d92f266d6bcd213279264736f6c63430008170033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f0f8c14eb68b51c9c48787b6dd1072f2f450b86634247d92f266d6bcd213279264736f6c63430008170033",
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/4d270949015466c8da4d7817a7662941.json"
3
+ "buildInfo": "../../../../build-info/1bffa552d37c21c0199e66410e781db1.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "MarketApproxPtOutLibOnchain",
4
4
  "sourceName": "contracts/router/math/MarketApproxLibOnchain.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bc76922aa2d886d4d06f802fe0629bae1ebf0466d55e049e77b0ef126ced3aab64736f6c63430008170033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bc76922aa2d886d4d06f802fe0629bae1ebf0466d55e049e77b0ef126ced3aab64736f6c63430008170033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122032f5e398472a056fe1581e551ae93de1759bece44637ab20df72628ae07f6ed064736f6c63430008170033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122032f5e398472a056fe1581e551ae93de1759bece44637ab20df72628ae07f6ed064736f6c63430008170033",
8
8
  "linkReferences": {},
9
9
  "deployedLinkReferences": {}
10
10
  }
@@ -0,0 +1,121 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "../../SYBaseUpg.sol";
5
+ import "../../../../interfaces/IPTokenWithSupplyCap.sol";
6
+ import "../../../../interfaces/IPExchangeRateOracle.sol";
7
+ import "../../../../interfaces/Lombard/ILBTCMinterBase.sol";
8
+
9
+ contract PendleLBTCBaseSY is SYBaseUpg, IPTokenWithSupplyCap {
10
+ event SetNewExchangeRateOracle(address oracle);
11
+
12
+ address public exchangeRateOracle;
13
+
14
+ // solhint-disable immutable-vars-naming
15
+ // solhint-disable const-name-snakecase
16
+ address public constant CBBTC = 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf;
17
+ address public constant LBTC = 0xecAc9C5F704e954931349Da37F60E39f515c11c1;
18
+ address public constant MINTER = 0x92c01FC0F59857c6E920EdFf1139904b2Bb74c7c;
19
+ uint256 public constant MINTER_MAX_COMISSION = 10000;
20
+
21
+ constructor() SYBaseUpg(LBTC) {}
22
+
23
+ function initialize(address _initialOracle) external initializer {
24
+ __SYBaseUpg_init("SY Lombard LBTC", "SY-LBTC");
25
+ _safeApproveInf(CBBTC, MINTER);
26
+ _setExchangeRateOracle(_initialOracle);
27
+ }
28
+
29
+ /*///////////////////////////////////////////////////////////////
30
+ DEPOSIT/REDEEM USING BASE TOKENS
31
+ //////////////////////////////////////////////////////////////*/
32
+
33
+ function _deposit(
34
+ address tokenIn,
35
+ uint256 amountDeposited
36
+ ) internal virtual override returns (uint256 /*amountSharesOut*/) {
37
+ if (tokenIn == LBTC) return amountDeposited;
38
+
39
+ uint256 preBalance = _selfBalance(LBTC);
40
+ ILBTCMinterBase(MINTER).swapCBBTCToLBTC(amountDeposited);
41
+ return _selfBalance(LBTC) - preBalance;
42
+ }
43
+
44
+ function _redeem(
45
+ address receiver,
46
+ address /*tokenOut*/,
47
+ uint256 amountSharesToRedeem
48
+ ) internal override returns (uint256) {
49
+ _transferOut(LBTC, receiver, amountSharesToRedeem);
50
+ return amountSharesToRedeem;
51
+ }
52
+
53
+ /*///////////////////////////////////////////////////////////////
54
+ EXCHANGE-RATE
55
+ //////////////////////////////////////////////////////////////*/
56
+
57
+ function exchangeRate() public view virtual override returns (uint256) {
58
+ return IPExchangeRateOracle(exchangeRateOracle).getExchangeRate();
59
+ }
60
+
61
+ function setExchangeRateOracle(address newOracle) external virtual onlyOwner {
62
+ _setExchangeRateOracle(newOracle);
63
+ }
64
+
65
+ function _setExchangeRateOracle(address newOracle) internal virtual {
66
+ exchangeRateOracle = newOracle;
67
+ emit SetNewExchangeRateOracle(newOracle);
68
+ }
69
+
70
+ function _previewDeposit(
71
+ address tokenIn,
72
+ uint256 amountTokenToDeposit
73
+ ) internal view override returns (uint256 /*amountSharesOut*/) {
74
+ if (tokenIn == LBTC) return amountTokenToDeposit;
75
+
76
+ uint256 feeRate = ILBTCMinterBase(MINTER).relativeFee();
77
+ uint256 feeAmount = PMath.rawDivUp(amountTokenToDeposit * feeRate, MINTER_MAX_COMISSION);
78
+ return amountTokenToDeposit - feeAmount;
79
+ }
80
+
81
+ /*///////////////////////////////////////////////////////////////
82
+ MISC FUNCTIONS FOR METADATA
83
+ //////////////////////////////////////////////////////////////*/
84
+
85
+ function _previewRedeem(
86
+ address /*tokenOut*/,
87
+ uint256 amountSharesToRedeem
88
+ ) internal pure override returns (uint256 /*amountTokenOut*/) {
89
+ return amountSharesToRedeem;
90
+ }
91
+
92
+ function getTokensIn() public pure override returns (address[] memory res) {
93
+ return ArrayLib.create(CBBTC, LBTC);
94
+ }
95
+
96
+ function getTokensOut() public pure override returns (address[] memory res) {
97
+ return ArrayLib.create(LBTC);
98
+ }
99
+
100
+ function isValidTokenIn(address token) public pure override returns (bool) {
101
+ return token == CBBTC || token == LBTC;
102
+ }
103
+
104
+ function isValidTokenOut(address token) public pure override returns (bool) {
105
+ return token == LBTC;
106
+ }
107
+
108
+ function assetInfo() external view returns (AssetType assetType, address assetAddress, uint8 assetDecimals) {
109
+ return (AssetType.TOKEN, CBBTC, IERC20Metadata(CBBTC).decimals());
110
+ }
111
+
112
+ function getAbsoluteTotalSupply() external view returns (uint256) {
113
+ // to be upgraded by Lombard to expose totalStake variable
114
+ // this function fails/be inaccurate when stakeLimit is lowered to be smaller than remaining stake
115
+ return ILBTCMinterBase(MINTER).stakeLimit() - ILBTCMinterBase(MINTER).remainingStake();
116
+ }
117
+
118
+ function getAbsoluteSupplyCap() external view returns (uint256) {
119
+ return ILBTCMinterBase(MINTER).stakeLimit();
120
+ }
121
+ }
@@ -0,0 +1,21 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "../PendleERC4626SYV2.sol";
5
+ import "../../../../interfaces/IPTokenWithSupplyCap.sol";
6
+
7
+ contract PendleMorphoMetaVaultSY is PendleERC4626SYV2, IPTokenWithSupplyCap {
8
+ constructor(
9
+ string memory _name,
10
+ string memory _symbol,
11
+ address _erc4626
12
+ ) PendleERC4626SYV2(_name, _symbol, _erc4626) {}
13
+
14
+ function getAbsoluteSupplyCap() external view returns (uint256) {
15
+ return IERC4626(yieldToken).totalSupply() + IERC4626(yieldToken).maxMint(address(this));
16
+ }
17
+
18
+ function getAbsoluteTotalSupply() external view returns (uint256) {
19
+ return IERC4626(yieldToken).totalSupply();
20
+ }
21
+ }
@@ -42,7 +42,6 @@ contract PendleERC4626SY is SYBase {
42
42
  uint256 totalSupply = IERC4626(yieldToken).totalSupply();
43
43
  return totalAssets.divDown(totalSupply);
44
44
  }
45
-
46
45
  function _previewDeposit(
47
46
  address tokenIn,
48
47
  uint256 amountTokenToDeposit
@@ -0,0 +1,88 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "../SYBase.sol";
5
+ import "../../../interfaces/IERC4626.sol";
6
+
7
+ contract PendleERC4626SYV2 is SYBase {
8
+ using PMath for uint256;
9
+ address public immutable asset;
10
+
11
+ constructor(string memory _name, string memory _symbol, address _erc4626) SYBase(_name, _symbol, _erc4626) {
12
+ asset = IERC4626(_erc4626).asset();
13
+ _safeApproveInf(asset, _erc4626);
14
+ }
15
+
16
+ function _deposit(
17
+ address tokenIn,
18
+ uint256 amountDeposited
19
+ ) internal virtual override returns (uint256 /*amountSharesOut*/) {
20
+ if (tokenIn == yieldToken) {
21
+ return amountDeposited;
22
+ } else {
23
+ return IERC4626(yieldToken).deposit(amountDeposited, address(this));
24
+ }
25
+ }
26
+
27
+ function _redeem(
28
+ address receiver,
29
+ address tokenOut,
30
+ uint256 amountSharesToRedeem
31
+ ) internal virtual override returns (uint256 amountTokenOut) {
32
+ if (tokenOut == yieldToken) {
33
+ amountTokenOut = amountSharesToRedeem;
34
+ _transferOut(yieldToken, receiver, amountTokenOut);
35
+ } else {
36
+ amountTokenOut = IERC4626(yieldToken).redeem(amountSharesToRedeem, receiver, address(this));
37
+ }
38
+ }
39
+
40
+ function exchangeRate() public view virtual override returns (uint256) {
41
+ return IERC4626(yieldToken).convertToAssets(PMath.ONE);
42
+ }
43
+
44
+ function _previewDeposit(
45
+ address tokenIn,
46
+ uint256 amountTokenToDeposit
47
+ ) internal view virtual override returns (uint256 /*amountSharesOut*/) {
48
+ if (tokenIn == yieldToken) return amountTokenToDeposit;
49
+ else return IERC4626(yieldToken).previewDeposit(amountTokenToDeposit);
50
+ }
51
+
52
+ function _previewRedeem(
53
+ address tokenOut,
54
+ uint256 amountSharesToRedeem
55
+ ) internal view override returns (uint256 /*amountTokenOut*/) {
56
+ if (tokenOut == yieldToken) return amountSharesToRedeem;
57
+ else return IERC4626(yieldToken).previewRedeem(amountSharesToRedeem);
58
+ }
59
+
60
+ function getTokensIn() public view virtual override returns (address[] memory res) {
61
+ res = new address[](2);
62
+ res[0] = asset;
63
+ res[1] = yieldToken;
64
+ }
65
+
66
+ function getTokensOut() public view virtual override returns (address[] memory res) {
67
+ res = new address[](2);
68
+ res[0] = asset;
69
+ res[1] = yieldToken;
70
+ }
71
+
72
+ function isValidTokenIn(address token) public view virtual override returns (bool) {
73
+ return token == yieldToken || token == asset;
74
+ }
75
+
76
+ function isValidTokenOut(address token) public view virtual override returns (bool) {
77
+ return token == yieldToken || token == asset;
78
+ }
79
+
80
+ function assetInfo()
81
+ external
82
+ view
83
+ virtual
84
+ returns (AssetType assetType, address assetAddress, uint8 assetDecimals)
85
+ {
86
+ return (AssetType.TOKEN, asset, IERC20Metadata(asset).decimals());
87
+ }
88
+ }
@@ -0,0 +1,83 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "../SYBaseUpg.sol";
5
+ import "../../../interfaces/IERC4626.sol";
6
+
7
+ contract PendleERC4626SYUpg is SYBaseUpg {
8
+ using PMath for uint256;
9
+ address public immutable asset;
10
+
11
+ constructor(address _erc4626) SYBaseUpg(_erc4626) {
12
+ asset = IERC4626(_erc4626).asset();
13
+ _safeApproveInf(asset, _erc4626);
14
+ }
15
+
16
+ function _deposit(
17
+ address tokenIn,
18
+ uint256 amountDeposited
19
+ ) internal virtual override returns (uint256 /*amountSharesOut*/) {
20
+ if (tokenIn == yieldToken) {
21
+ return amountDeposited;
22
+ } else {
23
+ return IERC4626(yieldToken).deposit(amountDeposited, address(this));
24
+ }
25
+ }
26
+
27
+ function _redeem(
28
+ address receiver,
29
+ address tokenOut,
30
+ uint256 amountSharesToRedeem
31
+ ) internal override returns (uint256 amountTokenOut) {
32
+ if (tokenOut == yieldToken) {
33
+ amountTokenOut = amountSharesToRedeem;
34
+ _transferOut(yieldToken, receiver, amountTokenOut);
35
+ } else {
36
+ amountTokenOut = IERC4626(yieldToken).redeem(amountSharesToRedeem, receiver, address(this));
37
+ }
38
+ }
39
+
40
+ function exchangeRate() public view virtual override returns (uint256) {
41
+ return IERC4626(yieldToken).convertToAssets(PMath.ONE);
42
+ }
43
+
44
+ function _previewDeposit(
45
+ address tokenIn,
46
+ uint256 amountTokenToDeposit
47
+ ) internal view override returns (uint256 /*amountSharesOut*/) {
48
+ if (tokenIn == yieldToken) return amountTokenToDeposit;
49
+ else return IERC4626(yieldToken).previewDeposit(amountTokenToDeposit);
50
+ }
51
+
52
+ function _previewRedeem(
53
+ address tokenOut,
54
+ uint256 amountSharesToRedeem
55
+ ) internal view override returns (uint256 /*amountTokenOut*/) {
56
+ if (tokenOut == yieldToken) return amountSharesToRedeem;
57
+ else return IERC4626(yieldToken).previewRedeem(amountSharesToRedeem);
58
+ }
59
+
60
+ function getTokensIn() public view override returns (address[] memory res) {
61
+ res = new address[](2);
62
+ res[0] = asset;
63
+ res[1] = yieldToken;
64
+ }
65
+
66
+ function getTokensOut() public view override returns (address[] memory res) {
67
+ res = new address[](2);
68
+ res[0] = asset;
69
+ res[1] = yieldToken;
70
+ }
71
+
72
+ function isValidTokenIn(address token) public view override returns (bool) {
73
+ return token == yieldToken || token == asset;
74
+ }
75
+
76
+ function isValidTokenOut(address token) public view override returns (bool) {
77
+ return token == yieldToken || token == asset;
78
+ }
79
+
80
+ function assetInfo() external view returns (AssetType assetType, address assetAddress, uint8 assetDecimals) {
81
+ return (AssetType.TOKEN, asset, IERC20Metadata(asset).decimals());
82
+ }
83
+ }
@@ -91,7 +91,8 @@ contract PendleZerolendEBTCSYUpg is PendleAaveV3WithRewardsSYUpg {
91
91
 
92
92
  function getAbsoluteSupplyCap() external view returns (uint256) {
93
93
  uint256 data = (IZerolendPool(ZEROLEND_POOL).getConfiguration(eBTC)).data;
94
- uint256 unscaledSupplyCap = (data & (~uint256(0xFFFFFFFFFFFFFFFFFFFFFFFFFF000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFF))) >> 116;
94
+ uint256 unscaledSupplyCap = (data &
95
+ (~uint256(0xFFFFFFFFFFFFFFFFFFFFFFFFFF000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFF))) >> 116;
95
96
  return unscaledSupplyCap * (10 ** IERC20Metadata(eBTC).decimals());
96
97
  }
97
98
 
@@ -40,4 +40,6 @@ interface IERC4626 is IERC20Metadata {
40
40
  function previewRedeem(uint256 shares) external view returns (uint256);
41
41
 
42
42
  function totalAssets() external view returns (uint256);
43
+
44
+ function maxMint(address) external view returns (uint256);
43
45
  }
@@ -0,0 +1,11 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.0;
3
+
4
+ import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol";
5
+
6
+ enum PendleOracleType {
7
+ PT_TO_SY,
8
+ PT_TO_ASSET
9
+ }
10
+
11
+ interface IPChainlinkOracle is AggregatorV3Interface {}
@@ -0,0 +1,22 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.0;
3
+
4
+ import "./IPChainlinkOracle.sol";
5
+
6
+ interface IPChainlinkOracleFactory {
7
+ event OracleCreated(
8
+ address indexed market,
9
+ uint32 indexed twapDuration,
10
+ PendleOracleType indexed baseOracleType,
11
+ address oracle,
12
+ bytes32 oracleId
13
+ );
14
+ event OracleWithQuoteCreated(
15
+ address indexed market,
16
+ uint32 indexed twapDuration,
17
+ PendleOracleType indexed baseOracleType,
18
+ address quoteOracle,
19
+ address oracle,
20
+ bytes32 oracleId
21
+ );
22
+ }
@@ -0,0 +1,8 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.0;
3
+
4
+ import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV2V3Interface.sol";
5
+
6
+ interface IPChainlinkOracleWithQuote is AggregatorV2V3Interface {
7
+ function quoteOracle() external view returns (address);
8
+ }
@@ -60,12 +60,9 @@ struct FillOrderParams {
60
60
  }
61
61
 
62
62
  interface IPLimitRouterCallback is IPLimitOrderType {
63
- function limitRouterCallback(
64
- uint256 actualMaking,
65
- uint256 actualTaking,
66
- uint256 totalFee,
67
- bytes memory data
68
- ) external returns (bytes memory);
63
+ function limitRouterCallback(uint256 actualMaking, uint256 actualTaking, uint256 totalFee, bytes memory data)
64
+ external
65
+ returns (bytes memory);
69
66
  }
70
67
 
71
68
  interface IPLimitRouter is IPLimitOrderType {
@@ -106,18 +103,31 @@ interface IPLimitRouter is IPLimitOrderType {
106
103
 
107
104
  function cancelBatch(Order[] calldata orders) external;
108
105
 
109
- function orderStatusesRaw(
110
- bytes32[] memory orderHashes
111
- ) external view returns (uint256[] memory remainingsRaw, uint256[] memory filledAmounts);
106
+ function orderStatusesRaw(bytes32[] memory orderHashes)
107
+ external
108
+ view
109
+ returns (uint256[] memory remainingsRaw, uint256[] memory filledAmounts);
112
110
 
113
- function orderStatuses(
114
- bytes32[] memory orderHashes
115
- ) external view returns (uint256[] memory remainings, uint256[] memory filledAmounts);
111
+ function orderStatuses(bytes32[] memory orderHashes)
112
+ external
113
+ view
114
+ returns (uint256[] memory remainings, uint256[] memory filledAmounts);
116
115
 
117
116
  function DOMAIN_SEPARATOR() external view returns (bytes32);
118
117
 
119
118
  function simulate(address target, bytes calldata data) external payable;
120
119
 
120
+ function _checkSig(Order memory order, bytes memory signature)
121
+ external
122
+ view
123
+ returns (
124
+ bytes32,
125
+ /*orderHash*/
126
+ uint256,
127
+ /*remainingMakerAmount*/
128
+ uint256
129
+ ); /*filledMakerAmount*/
130
+
121
131
  /* --- Deprecated events --- */
122
132
 
123
133
  // deprecate on 7/1/2024, prior to official launch
@@ -16,11 +16,10 @@ interface IPPYLpOracle {
16
16
 
17
17
  function getLpToSyRate(address market, uint32 duration) external view returns (uint256);
18
18
 
19
- function getOracleState(
20
- address market,
21
- uint32 duration
22
- )
19
+ function getOracleState(address market, uint32 duration)
23
20
  external
24
21
  view
25
22
  returns (bool increaseCardinalityRequired, uint16 cardinalityRequired, bool oldestObservationSatisfied);
23
+
24
+ function blockCycleNumerator() external view returns (uint16);
26
25
  }
@@ -0,0 +1,12 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.17;
3
+
4
+ interface ILBTCMinterBase {
5
+ function swapCBBTCToLBTC(uint256 amount) external;
6
+
7
+ function relativeFee() external view returns (uint16);
8
+
9
+ function remainingStake() external view returns (uint256);
10
+
11
+ function stakeLimit() external view returns (uint256);
12
+ }