@pendle/core-v2 5.2.0-beta-4 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) 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/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  4. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +2 -2
  5. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
  6. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.json +2 -2
  7. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +67 -23
  9. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.json +19 -6
  11. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithoutPermitUpg.sol/SYBaseWithoutPermitUpg.dbg.json +4 -0
  12. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithoutPermitUpg.sol/{SYBaseUpg.json → SYBaseWithoutPermitUpg.json} +1 -1
  13. package/build/artifacts/contracts/core/StandardizedYield/implementations/AaveV3/PendleAaveV3WithRewardsSYUpg.sol/PendleAaveV3WithRewardsSYUpg.dbg.json +4 -0
  14. package/build/artifacts/contracts/core/StandardizedYield/implementations/AaveV3/PendleAaveV3WithRewardsSYUpg.sol/PendleAaveV3WithRewardsSYUpg.json +1169 -0
  15. package/build/artifacts/contracts/core/StandardizedYield/implementations/AaveV3/PendleStkGHOSY.sol/PendleStkGHOSY.dbg.json +4 -0
  16. package/build/artifacts/contracts/core/StandardizedYield/implementations/AaveV3/PendleStkGHOSY.sol/PendleStkGHOSY.json +1160 -0
  17. package/build/artifacts/contracts/core/StandardizedYield/implementations/ChainlinkRelayer/PendleChainlinkReceiver.sol/PendleChainlinkReceiver.dbg.json +1 -1
  18. package/build/artifacts/contracts/core/StandardizedYield/implementations/ChainlinkRelayer/PendleChainlinkReceiver.sol/PendleChainlinkReceiver.json +2 -2
  19. package/build/artifacts/contracts/core/StandardizedYield/implementations/ChainlinkRelayer/PendleChainlinkRelayer.sol/PendleChainlinkRelayer.dbg.json +1 -1
  20. package/build/artifacts/contracts/core/StandardizedYield/implementations/ChainlinkRelayer/PendleChainlinkRelayer.sol/PendleChainlinkRelayer.json +2 -2
  21. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
  22. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +2 -2
  23. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mantle/PendleCMETHSY.sol/PendleCMETHSY.dbg.json +4 -0
  24. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mantle/PendleCMETHSY.sol/PendleCMETHSY.json +1049 -0
  25. package/build/artifacts/contracts/core/StandardizedYield/implementations/Silo/PendleSiloWithIncentiveNonBorrowableSY.sol/PendleSiloWithIncentiveNonBorrowableSY.dbg.json +4 -0
  26. package/build/artifacts/contracts/core/StandardizedYield/implementations/Silo/PendleSiloWithIncentiveNonBorrowableSY.sol/PendleSiloWithIncentiveNonBorrowableSY.json +1222 -0
  27. package/build/artifacts/contracts/core/StandardizedYield/implementations/Solv/PendleSolvBTCBBNBaseSYUpg.sol/PendleSolvBTCBBNBaseSYUpg.dbg.json +4 -0
  28. package/build/artifacts/contracts/core/StandardizedYield/implementations/Solv/PendleSolvBTCBBNBaseSYUpg.sol/PendleSolvBTCBBNBaseSYUpg.json +1072 -0
  29. package/build/artifacts/contracts/core/StandardizedYield/implementations/Solv/PendleSolvHelperBase.sol/PendleSolvHelperBase.dbg.json +4 -0
  30. package/build/artifacts/contracts/core/StandardizedYield/implementations/Solv/PendleSolvHelperBase.sol/PendleSolvHelperBase.json +115 -0
  31. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zerolend/PendleZerolendEBTCSYUpg.sol/PendleZerolendEBTCSYUpg.dbg.json +4 -0
  32. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zerolend/PendleZerolendEBTCSYUpg.sol/PendleZerolendEBTCSYUpg.json +1337 -0
  33. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zerolend/PendleZerolendLBTCSYUpg.sol/PendleZerolendLBTCSYUpg.dbg.json +4 -0
  34. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zerolend/PendleZerolendLBTCSYUpg.sol/PendleZerolendLBTCSYUpg.json +1226 -0
  35. package/build/artifacts/contracts/interfaces/AaveV3/IAaveStkGHO.sol/IAaveStkGHO.dbg.json +4 -0
  36. package/build/artifacts/contracts/interfaces/AaveV3/IAaveStkGHO.sol/IAaveStkGHO.json +116 -0
  37. package/build/artifacts/contracts/interfaces/Angle/IAngleDistributor.sol/IAngleDistributor.dbg.json +4 -0
  38. package/build/artifacts/contracts/interfaces/Angle/IAngleDistributor.sol/IAngleDistributor.json +39 -0
  39. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.dbg.json +1 -1
  40. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  41. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
  42. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.json +66 -0
  43. package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.dbg.json +1 -1
  44. package/build/artifacts/contracts/interfaces/IPActionSimple.sol/IPActionSimple.dbg.json +1 -1
  45. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  46. package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.dbg.json +1 -1
  47. package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.dbg.json +1 -1
  48. package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.dbg.json +1 -1
  49. package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.dbg.json +1 -1
  50. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionAddRemoveLiqV3Events.dbg.json +1 -1
  51. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionMiscV3Events.dbg.json +1 -1
  52. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionStorageEvents.dbg.json +1 -1
  53. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapPTV3Events.dbg.json +1 -1
  54. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapYTV3Events.dbg.json +1 -1
  55. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPAllEventsV3.dbg.json +1 -1
  56. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  57. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +66 -0
  58. package/build/artifacts/contracts/interfaces/Zerolend/IZerolendPool.sol/IZerolendPool.dbg.json +4 -0
  59. package/build/artifacts/contracts/interfaces/Zerolend/IZerolendPool.sol/IZerolendPool.json +37 -0
  60. package/build/artifacts/contracts/interfaces/Zerolend/IZerolendZ0Token.sol/IZerolendZ0Token.dbg.json +4 -0
  61. package/build/artifacts/contracts/interfaces/Zerolend/IZerolendZ0Token.sol/IZerolendZ0Token.json +24 -0
  62. package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +1 -1
  63. package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.json +2 -2
  64. package/build/artifacts/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol/SDKErrorsDirectory.dbg.json +1 -1
  65. package/build/artifacts/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol/SDKErrorsDirectory.json +27 -2
  66. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  67. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  68. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  69. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  70. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  71. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
  72. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  73. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +68 -2
  74. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  75. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
  76. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  77. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -2
  78. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  79. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  80. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  81. package/build/artifacts/contracts/oracles/PendleBoringOneracle.sol/PendleBoringOneracle.dbg.json +4 -0
  82. package/build/artifacts/contracts/oracles/{internal/PendleBoringOneracle.sol → PendleBoringOneracle.sol}/PendleBoringOneracle.json +3 -3
  83. package/build/artifacts/contracts/oracles/PendleBoringSolvBTCOneracle.sol/PendleBoringSolvBTCOneracle.dbg.json +4 -0
  84. package/build/artifacts/contracts/oracles/{internal/PendleBoringSolvBTCOneracle.sol → PendleBoringSolvBTCOneracle.sol}/PendleBoringSolvBTCOneracle.json +3 -3
  85. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +4 -0
  86. package/build/artifacts/contracts/oracles/{PtYtLpOracle/PendleLpOracleLib.sol → PendleLpOracleLib.sol}/PendleLpOracleLib.json +3 -3
  87. package/build/artifacts/contracts/oracles/PendlePYLpOracle.sol/PendlePYLpOracle.dbg.json +4 -0
  88. package/build/artifacts/contracts/oracles/{PtYtLpOracle/PendlePYLpOracle.sol → PendlePYLpOracle.sol}/PendlePYLpOracle.json +3 -3
  89. package/build/artifacts/contracts/oracles/PendlePYOracleLib.sol/PendlePYOracleLib.dbg.json +4 -0
  90. package/build/artifacts/contracts/oracles/{PtYtLpOracle/PendlePYOracleLib.sol → PendlePYOracleLib.sol}/PendlePYOracleLib.json +3 -3
  91. package/build/artifacts/contracts/oracles/PendleRedStoneRateOracleAdapter.sol/PendleRedStoneRateOracleAdapter.dbg.json +4 -0
  92. package/build/artifacts/contracts/oracles/{internal/PendleRedStoneRateOracleAdapter.sol → PendleRedStoneRateOracleAdapter.sol}/PendleRedStoneRateOracleAdapter.json +3 -3
  93. package/build/artifacts/contracts/oracles/PendleSparkLinearDiscountOracle.sol/PTExpiry.dbg.json +4 -0
  94. package/build/artifacts/contracts/oracles/{internal/PendleSparkLinearDiscountOracle.sol → PendleSparkLinearDiscountOracle.sol}/PTExpiry.json +1 -1
  95. package/build/artifacts/contracts/oracles/PendleSparkLinearDiscountOracle.sol/PendleSparkLinearDiscountOracle.dbg.json +4 -0
  96. package/build/artifacts/contracts/oracles/{internal/PendleSparkLinearDiscountOracle.sol → PendleSparkLinearDiscountOracle.sol}/PendleSparkLinearDiscountOracle.json +3 -3
  97. package/build/artifacts/contracts/oracles/samples/BoringLpGlpOracle.sol/BoringLpGlpOracle.dbg.json +4 -0
  98. package/build/artifacts/contracts/oracles/{PtYtLpOracle/samples → samples}/BoringLpGlpOracle.sol/BoringLpGlpOracle.json +3 -3
  99. package/build/artifacts/contracts/oracles/samples/BoringLpSeller.sol/BoringLpSeller.dbg.json +4 -0
  100. package/build/artifacts/contracts/oracles/{PtYtLpOracle/samples → samples}/BoringLpSeller.sol/BoringLpSeller.json +1 -1
  101. package/build/artifacts/contracts/oracles/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.dbg.json +4 -0
  102. package/build/artifacts/contracts/oracles/{PtYtLpOracle/samples → samples}/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.json +3 -3
  103. package/build/artifacts/contracts/oracles/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.dbg.json +4 -0
  104. package/build/artifacts/contracts/oracles/{PtYtLpOracle/samples → samples}/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.json +3 -3
  105. package/build/artifacts/contracts/oracles/samples/BoringPtSeller.sol/BoringPtSeller.dbg.json +4 -0
  106. package/build/artifacts/contracts/oracles/{PtYtLpOracle/samples → samples}/BoringPtSeller.sol/BoringPtSeller.json +1 -1
  107. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.dbg.json +1 -1
  108. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.json +2 -2
  109. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.dbg.json +1 -1
  110. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.json +2 -2
  111. package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.dbg.json +1 -1
  112. package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.json +2 -2
  113. package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.dbg.json +1 -1
  114. package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.json +2 -2
  115. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.dbg.json +1 -1
  116. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.json +2 -2
  117. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.dbg.json +1 -1
  118. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.json +2 -2
  119. package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.dbg.json +1 -1
  120. package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.json +2 -2
  121. package/build/artifacts/contracts/router/Reflector.sol/Reflector.dbg.json +1 -1
  122. package/build/artifacts/contracts/router/Reflector.sol/Reflector.json +2 -2
  123. package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.dbg.json +1 -1
  124. package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.dbg.json +1 -1
  125. package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.json +2 -2
  126. package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.dbg.json +1 -1
  127. package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.json +2 -2
  128. package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  129. package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  130. package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  131. package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  132. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.dbg.json +1 -1
  133. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.json +2 -2
  134. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.dbg.json +1 -1
  135. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.json +2 -2
  136. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
  137. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.json +65 -0
  138. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IKyberScalingHelper.dbg.json +1 -1
  139. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IOdosRouterV2.dbg.json +4 -0
  140. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IOdosRouterV2.json +82 -0
  141. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +1 -1
  142. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.json +67 -2
  143. package/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol +16 -10
  144. package/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +27 -6
  145. package/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +3 -2
  146. package/contracts/core/StandardizedYield/SYBaseWithoutPermitUpg.sol +7 -1
  147. package/contracts/core/StandardizedYield/implementations/AaveV3/{PendleAaveV3WithRewardsSY.sol → PendleAaveV3WithRewardsSYUpg.sol} +27 -45
  148. package/contracts/core/StandardizedYield/implementations/AaveV3/PendleStkGHOSY.sol +130 -0
  149. package/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol +1 -2
  150. package/contracts/core/StandardizedYield/implementations/Mantle/PendleCMETHSY.sol +82 -0
  151. package/contracts/core/StandardizedYield/implementations/Silo/PendleSiloWithIncentiveNonBorrowableSY.sol +154 -0
  152. package/contracts/core/StandardizedYield/implementations/Solv/PendleSolvBTCBBNBaseSYUpg.sol +103 -0
  153. package/contracts/core/StandardizedYield/implementations/Solv/PendleSolvHelperBase.sol +47 -0
  154. package/contracts/core/StandardizedYield/implementations/Zerolend/PendleZerolendEBTCSYUpg.sol +101 -0
  155. package/contracts/core/StandardizedYield/implementations/Zerolend/PendleZerolendLBTCSYUpg.sol +32 -0
  156. package/contracts/interfaces/AaveV3/IAaveStkGHO.sol +17 -0
  157. package/contracts/interfaces/Angle/IAngleDistributor.sol +12 -0
  158. package/contracts/interfaces/IPActionMarketCoreStatic.sol +4 -0
  159. package/contracts/interfaces/Zerolend/IZerolendPool.sol +31 -0
  160. package/contracts/interfaces/Zerolend/IZerolendZ0Token.sol +6 -0
  161. package/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol +5 -0
  162. package/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol +1 -1
  163. package/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol +1 -1
  164. package/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol +10 -4
  165. package/contracts/oracles/{internal/PendleBoringOneracle.sol → PendleBoringOneracle.sol} +2 -2
  166. package/contracts/oracles/{internal/PendleBoringSolvBTCOneracle.sol → PendleBoringSolvBTCOneracle.sol} +2 -2
  167. package/contracts/oracles/{PtYtLpOracle/PendlePYLpOracle.sol → PendlePYLpOracle.sol} +2 -2
  168. package/contracts/oracles/{PtYtLpOracle/PendlePYOracleLib.sol → PendlePYOracleLib.sol} +2 -2
  169. package/contracts/oracles/{internal/PendleRedStoneRateOracleAdapter.sol → PendleRedStoneRateOracleAdapter.sol} +3 -3
  170. package/contracts/oracles/{PtYtLpOracle/samples → samples}/BoringLpGlpOracle.sol +3 -3
  171. package/contracts/oracles/{PtYtLpOracle/samples → samples}/BoringLpSeller.sol +1 -1
  172. package/contracts/oracles/{PtYtLpOracle/samples → samples}/BoringPYUsdChainlinkAssetOracle.sol +3 -3
  173. package/contracts/oracles/{PtYtLpOracle/samples → samples}/BoringPYUsdChainlinkSYOracle.sol +3 -3
  174. package/contracts/oracles/{PtYtLpOracle/samples → samples}/BoringPtSeller.sol +1 -1
  175. package/contracts/router/swap-aggregator/IPSwapAggregator.sol +5 -1
  176. package/contracts/router/swap-aggregator/PendleSwap.sol +52 -0
  177. package/deployments/1-core.json +1 -1
  178. package/deployments/1-markets/AGETH-MAINNET-JUN2025.json +14 -0
  179. package/deployments/1-markets/PUFETH-MAINNET-JUN2025.json +14 -0
  180. package/deployments/1-markets/RSETH-MAINNET-JUN2025.json +14 -0
  181. package/deployments/1-markets/RSWETH-MAINNET-JUN2025.json +14 -0
  182. package/deployments/1-markets/STKGHO-MAINNET-APR2025.json +14 -0
  183. package/deployments/1-markets/SUSDE-MAINNET-MAY2025.json +14 -0
  184. package/deployments/1-markets/UNIETH-MAINNET-JUN2025.json +14 -0
  185. package/deployments/1-markets/USD0++-MAINNET-JAN2025.json +14 -0
  186. package/deployments/1-markets/WEETH-MAINNET-JUN2025.json +14 -0
  187. package/deployments/1-markets/ZEROLEND-EBTC-MAINNET-MAR2025.json +14 -0
  188. package/deployments/10-core.json +1 -1
  189. package/deployments/42161-core.json +1 -1
  190. package/deployments/42161-markets/DOLOMITE-USDC-ARBITRUM-JUN2025.json +14 -0
  191. package/deployments/42161-markets/DOLOMITE-WBTC-ARBITRUM-JUN2025.json +14 -0
  192. package/deployments/42161-markets/RSETH-ARBITRUM-JUN2025.json +14 -0
  193. package/deployments/42161-markets/SPSILO-ARBITRUM-MAR2025.json +14 -0
  194. package/deployments/42161-markets/UNIETH-ARBITRUM-JUN2025.json +14 -0
  195. package/deployments/42161-markets/WEETH-ARBITRUM-JUN2025.json +14 -0
  196. package/deployments/5000-core.json +1 -1
  197. package/deployments/5000-markets/CMETH-MANTLE-FEB2025.json +14 -0
  198. package/deployments/56-core.json +2 -2
  199. package/deployments/56-markets/VENUS-BNB-BSC-JUN2025.json +14 -0
  200. package/deployments/8453-core.json +41 -0
  201. package/deployments/8453-offchain-helper.json +6 -0
  202. package/package.json +1 -1
  203. package/typechain-types/ActionMarketCoreStatic.ts +68 -0
  204. package/typechain-types/ActionSwapLimitV3.ts +1667 -0
  205. package/typechain-types/IPActionMarketCoreStatic.ts +68 -0
  206. package/typechain-types/IPActionSwapLimitV3.ts +1667 -0
  207. package/typechain-types/IPActionSwapLimitV3Events.ts +207 -0
  208. package/typechain-types/IPChainlinkOracleFactory.ts +6 -9
  209. package/typechain-types/IPRouterStatic.ts +34 -0
  210. package/typechain-types/IPSwapAggregator.ts +64 -3
  211. package/typechain-types/IZerolendPool.ts +111 -0
  212. package/typechain-types/IZerolendZ0Token.ts +87 -0
  213. package/typechain-types/PendleAaveV3WithRewardsSYUpg.ts +1498 -0
  214. package/typechain-types/PendleChainlinkOracle.ts +16 -16
  215. package/typechain-types/PendleChainlinkOracleFactory.ts +130 -64
  216. package/typechain-types/PendleChainlinkOracleWithQuote.ts +32 -73
  217. package/typechain-types/PendleSiloWithIncentiveNonBorrowableSY.ts +1543 -0
  218. package/typechain-types/PendleSolvBTCBBNBaseSYUpg.ts +1409 -0
  219. package/typechain-types/PendleSolvHelperBase.ts +220 -0
  220. package/typechain-types/PendleSwap.ts +64 -3
  221. package/typechain-types/PendleVotingControllerUpg.ts +135 -43
  222. package/typechain-types/PendleZerolendEBTCSYUpg.ts +1754 -0
  223. package/typechain-types/PendleZerolendLBTCSYUpg.ts +1598 -0
  224. package/typechain-types/VotingControllerStorageUpg.ts +34 -15
  225. package/typechain-types/factories/ActionAddRemoveLiqV3__factory.ts +1 -1
  226. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  227. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
  228. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +67 -1
  229. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
  230. package/typechain-types/factories/ActionMiscV3__factory.ts +1 -1
  231. package/typechain-types/factories/ActionSimple__factory.ts +1 -1
  232. package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
  233. package/typechain-types/factories/ActionStorageV4__factory.ts +1 -1
  234. package/typechain-types/factories/ActionSwapLimitV3__factory.ts +2691 -0
  235. package/typechain-types/factories/ActionSwapPTV3__factory.ts +1 -1
  236. package/typechain-types/factories/ActionSwapYTV3__factory.ts +1 -1
  237. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  238. package/typechain-types/factories/BoringLpGlpOracle__factory.ts +1 -1
  239. package/typechain-types/factories/BoringPYUsdChainlinkAssetOracle__factory.ts +1 -1
  240. package/typechain-types/factories/BoringPYUsdChainlinkSYOracle__factory.ts +1 -1
  241. package/typechain-types/factories/IPActionMarketCoreStatic__factory.ts +66 -0
  242. package/typechain-types/factories/IPActionSwapLimitV3Events__factory.ts +226 -0
  243. package/typechain-types/factories/IPActionSwapLimitV3__factory.ts +2653 -0
  244. package/typechain-types/factories/IPChainlinkOracleFactory__factory.ts +1 -7
  245. package/typechain-types/factories/IPRouterStatic__factory.ts +66 -0
  246. package/typechain-types/factories/IPSwapAggregator__factory.ts +65 -0
  247. package/typechain-types/factories/IZerolendPool__factory.ts +49 -0
  248. package/typechain-types/factories/IZerolendZ0Token__factory.ts +39 -0
  249. package/typechain-types/factories/PendleAaveV3WithRewardsSYUpg__factory.ts +1246 -0
  250. package/typechain-types/factories/PendleBoringOneracle__factory.ts +1 -1
  251. package/typechain-types/factories/PendleBoringSolvBTCOneracle__factory.ts +1 -1
  252. package/typechain-types/factories/PendleChainlinkOracleFactory__factory.ts +65 -38
  253. package/typechain-types/factories/PendleChainlinkOracleWithQuote__factory.ts +14 -54
  254. package/typechain-types/factories/PendleChainlinkOracle__factory.ts +7 -7
  255. package/typechain-types/factories/PendleChainlinkReceiver__factory.ts +1 -1
  256. package/typechain-types/factories/PendleChainlinkRelayer__factory.ts +1 -1
  257. package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
  258. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  259. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  260. package/typechain-types/factories/PendlePYLpOracle__factory.ts +1 -1
  261. package/typechain-types/factories/PendlePoolDeployHelper__factory.ts +1 -1
  262. package/typechain-types/factories/PendleRedStoneRateOracleAdapter__factory.ts +1 -1
  263. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  264. package/typechain-types/factories/PendleRouterV4__factory.ts +1 -1
  265. package/typechain-types/factories/PendleSiloWithIncentiveNonBorrowableSY__factory.ts +1317 -0
  266. package/typechain-types/factories/PendleSolvBTCBBNBaseSYUpg__factory.ts +1129 -0
  267. package/typechain-types/factories/PendleSolvHelperBase__factory.ts +172 -0
  268. package/typechain-types/factories/PendleSparkLinearDiscountOracle__factory.ts +1 -1
  269. package/typechain-types/factories/PendleStkGHOSY__factory.ts +1 -1
  270. package/typechain-types/factories/PendleSwap__factory.ts +66 -1
  271. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +66 -22
  272. package/typechain-types/factories/PendleZerolendEBTCSYUpg__factory.ts +1394 -0
  273. package/typechain-types/factories/PendleZerolendLBTCSYUpg__factory.ts +1283 -0
  274. package/typechain-types/factories/Reflector__factory.ts +1 -1
  275. package/typechain-types/factories/SDKErrorsDirectory__factory.ts +26 -1
  276. package/typechain-types/factories/VotingControllerStorageUpg__factory.ts +19 -6
  277. package/typechain-types/hardhat.d.ts +125 -80
  278. package/typechain-types/index.ts +30 -18
  279. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithoutPermitUpg.sol/SYBaseUpg.dbg.json +0 -4
  280. package/build/artifacts/contracts/core/StandardizedYield/implementations/AaveV3/PendleAaveV3WithRewardsSY.sol/PendleAaveV3WithRewardsSY.dbg.json +0 -4
  281. package/build/artifacts/contracts/core/StandardizedYield/implementations/AaveV3/PendleAaveV3WithRewardsSY.sol/PendleAaveV3WithRewardsSY.json +0 -1198
  282. package/build/artifacts/contracts/interfaces/IPChainlinkOracle.sol/IPChainlinkOracle.dbg.json +0 -4
  283. package/build/artifacts/contracts/interfaces/IPChainlinkOracle.sol/IPChainlinkOracle.json +0 -122
  284. package/build/artifacts/contracts/interfaces/IPChainlinkOracleFactory.sol/IPChainlinkOracleFactory.dbg.json +0 -4
  285. package/build/artifacts/contracts/interfaces/IPChainlinkOracleFactory.sol/IPChainlinkOracleFactory.json +0 -97
  286. package/build/artifacts/contracts/interfaces/IPChainlinkOracleWithQuote.sol/IPChainlinkOracleWithQuote.dbg.json +0 -4
  287. package/build/artifacts/contracts/interfaces/IPChainlinkOracleWithQuote.sol/IPChainlinkOracleWithQuote.json +0 -262
  288. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.dbg.json +0 -4
  289. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.json +0 -10
  290. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +0 -4
  291. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYLpOracle.sol/PendlePYLpOracle.dbg.json +0 -4
  292. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYOracleLib.sol/PendlePYOracleLib.dbg.json +0 -4
  293. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracle.sol/PendleChainlinkOracle.dbg.json +0 -4
  294. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracle.sol/PendleChainlinkOracle.json +0 -274
  295. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleBase.sol/PendleChainlinkOracleBase.dbg.json +0 -4
  296. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleBase.sol/PendleChainlinkOracleBase.json +0 -253
  297. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.dbg.json +0 -4
  298. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.json +0 -316
  299. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.dbg.json +0 -4
  300. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.json +0 -341
  301. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringLpGlpOracle.sol/BoringLpGlpOracle.dbg.json +0 -4
  302. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringLpSeller.sol/BoringLpSeller.dbg.json +0 -4
  303. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.dbg.json +0 -4
  304. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.dbg.json +0 -4
  305. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPtSeller.sol/BoringPtSeller.dbg.json +0 -4
  306. package/build/artifacts/contracts/oracles/internal/PendleBoringOneracle.sol/PendleBoringOneracle.dbg.json +0 -4
  307. package/build/artifacts/contracts/oracles/internal/PendleBoringSolvBTCOneracle.sol/PendleBoringSolvBTCOneracle.dbg.json +0 -4
  308. package/build/artifacts/contracts/oracles/internal/PendleRedStoneRateOracleAdapter.sol/PendleRedStoneRateOracleAdapter.dbg.json +0 -4
  309. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracle.sol/PTExpiry.dbg.json +0 -4
  310. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracle.sol/PendleSparkLinearDiscountOracle.dbg.json +0 -4
  311. package/contracts/interfaces/IPChainlinkOracle.sol +0 -15
  312. package/contracts/interfaces/IPChainlinkOracleFactory.sol +0 -23
  313. package/contracts/interfaces/IPChainlinkOracleWithQuote.sol +0 -8
  314. package/contracts/offchain-helpers/MarketExchangeRateLib.sol +0 -32
  315. package/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracle.sol +0 -40
  316. package/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleBase.sol +0 -129
  317. package/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleFactory.sol +0 -117
  318. package/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleWithQuote.sol +0 -80
  319. /package/contracts/oracles/{PtYtLpOracle/PendleLpOracleLib.sol → PendleLpOracleLib.sol} +0 -0
  320. /package/contracts/oracles/{internal/PendleSparkLinearDiscountOracle.sol → PendleSparkLinearDiscountOracle.sol} +0 -0
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity ^0.8.23;
3
3
 
4
- import "../../SYBaseWithRewards.sol";
4
+ import "../../SYBaseWithRewardsUpg.sol";
5
5
  import "./libraries/AaveAdapterLib.sol";
6
6
  import "../../../../interfaces/AaveV3/IAaveV3AToken.sol";
7
7
  import "../../../../interfaces/AaveV3/IAaveV3Pool.sol";
@@ -11,7 +11,7 @@ import "../../../../interfaces/AaveV3/IAaveV3IncentiveController.sol";
11
11
 
12
12
  // [NEW] @NOTE: As for the getRewardTokens function, it will check for different incentive controller
13
13
  // so this implementation should only be used in L2s. L1 would require more gas optimization
14
- contract PendleAaveV3WithRewardsSY is SYBaseWithRewards {
14
+ contract PendleAaveV3WithRewardsSYUpg is SYBaseWithRewardsUpg {
15
15
  using PMath for uint256;
16
16
 
17
17
  event NewIncentiveController(address incentiveController);
@@ -22,25 +22,27 @@ contract PendleAaveV3WithRewardsSY is SYBaseWithRewards {
22
22
  address public immutable aToken;
23
23
  address public immutable aavePool;
24
24
  address public immutable underlying;
25
+ address public immutable incentiveController;
26
+ address public immutable defaultRewardToken;
25
27
 
26
- address public incentiveController;
27
- address[] public rewardTokens;
28
+ uint256[100] private __gap;
28
29
 
29
30
  constructor(
30
- string memory _name,
31
- string memory _symbol,
32
31
  address _aavePool,
33
32
  address _aToken,
34
- address _incentiveController
35
- ) SYBaseWithRewards(_name, _symbol, _aToken) {
33
+ address _initialIncentiveController,
34
+ address _defaultRewardToken
35
+ ) SYBaseUpg(_aToken) {
36
36
  aToken = _aToken;
37
37
  aavePool = _aavePool;
38
38
  underlying = IAaveV3AToken(aToken).UNDERLYING_ASSET_ADDRESS();
39
+ incentiveController = _initialIncentiveController;
40
+ defaultRewardToken = _defaultRewardToken;
41
+ }
39
42
 
40
- if (_incentiveController != address(0)) {
41
- _updateIncentiveController(_incentiveController);
42
- }
43
- _safeApproveInf(underlying, _aavePool);
43
+ function initialize(string memory _name, string memory _symbol) external initializer {
44
+ __SYBaseUpg_init(_name, _symbol);
45
+ _safeApproveInf(underlying, aavePool);
44
46
  }
45
47
 
46
48
  function _deposit(
@@ -73,14 +75,14 @@ contract PendleAaveV3WithRewardsSY is SYBaseWithRewards {
73
75
  function _previewDeposit(
74
76
  address,
75
77
  uint256 amountTokenToDeposit
76
- ) internal view override returns (uint256 /*amountSharesOut*/) {
78
+ ) internal view virtual override returns (uint256 /*amountSharesOut*/) {
77
79
  return AaveAdapterLib.calcSharesFromAssetUp(amountTokenToDeposit, _getNormalizedIncome());
78
80
  }
79
81
 
80
82
  function _previewRedeem(
81
83
  address,
82
84
  uint256 amountSharesToRedeem
83
- ) internal view override returns (uint256 /*amountTokenOut*/) {
85
+ ) internal view virtual override returns (uint256 /*amountTokenOut*/) {
84
86
  return AaveAdapterLib.calcSharesToAssetDown(amountSharesToRedeem, _getNormalizedIncome());
85
87
  }
86
88
 
@@ -88,23 +90,28 @@ contract PendleAaveV3WithRewardsSY is SYBaseWithRewards {
88
90
  return IAaveV3Pool(aavePool).getReserveNormalizedIncome(underlying);
89
91
  }
90
92
 
91
- function getTokensIn() public view override returns (address[] memory res) {
93
+ function getTokensIn() public view virtual override returns (address[] memory res) {
92
94
  return ArrayLib.create(underlying, aToken);
93
95
  }
94
96
 
95
- function getTokensOut() public view override returns (address[] memory res) {
97
+ function getTokensOut() public view virtual override returns (address[] memory res) {
96
98
  return ArrayLib.create(underlying, aToken);
97
99
  }
98
100
 
99
- function isValidTokenIn(address token) public view override returns (bool) {
101
+ function isValidTokenIn(address token) public view virtual override returns (bool) {
100
102
  return token == aToken || token == underlying;
101
103
  }
102
104
 
103
- function isValidTokenOut(address token) public view override returns (bool) {
105
+ function isValidTokenOut(address token) public view virtual override returns (bool) {
104
106
  return token == aToken || token == underlying;
105
107
  }
106
108
 
107
- function assetInfo() external view returns (AssetType assetType, address assetAddress, uint8 assetDecimals) {
109
+ function assetInfo()
110
+ external
111
+ view
112
+ virtual
113
+ returns (AssetType assetType, address assetAddress, uint8 assetDecimals)
114
+ {
108
115
  return (AssetType.TOKEN, underlying, IERC20Metadata(underlying).decimals());
109
116
  }
110
117
 
@@ -112,19 +119,11 @@ contract PendleAaveV3WithRewardsSY is SYBaseWithRewards {
112
119
  REWARDS-RELATED
113
120
  //////////////////////////////////////////////////////////////*/
114
121
 
115
- function updateIncentiveController(address _incentiveController) external onlyOwner {
116
- _updateIncentiveController(_incentiveController);
117
- }
118
-
119
- function updateRewardTokenList() external onlyOwner {
120
- _updateRewardTokenList();
121
- }
122
-
123
122
  /**
124
123
  * @dev See {IStandardizedYield-getRewardTokens}
125
124
  */
126
125
  function _getRewardTokens() internal view override returns (address[] memory res) {
127
- return rewardTokens;
126
+ return ArrayLib.create(defaultRewardToken);
128
127
  }
129
128
 
130
129
  function _redeemExternalReward() internal override {
@@ -132,21 +131,4 @@ contract PendleAaveV3WithRewardsSY is SYBaseWithRewards {
132
131
  IAaveV3IncentiveController(incentiveController).claimAllRewardsToSelf(ArrayLib.create(aToken));
133
132
  }
134
133
  }
135
-
136
- function _updateIncentiveController(address _incentiveController) internal {
137
- if (_incentiveController == incentiveController) {
138
- revert SameIncentiveController();
139
- }
140
- _redeemExternalReward();
141
-
142
- incentiveController = _incentiveController;
143
- if (_incentiveController != address(0)) {
144
- _updateRewardTokenList();
145
- }
146
- emit NewIncentiveController(_incentiveController);
147
- }
148
-
149
- function _updateRewardTokenList() internal {
150
- rewardTokens = ArrayLib.merge(rewardTokens, IAaveV3IncentiveController(incentiveController).getRewardsList());
151
- }
152
134
  }
@@ -0,0 +1,130 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "../../SYBaseWithRewardsUpg.sol";
5
+ import "../../../../interfaces/AaveV3/IAaveStkGHO.sol";
6
+ import "../../../../interfaces/Angle/IAngleDistributor.sol";
7
+
8
+ contract PendleStkGHOSY is SYBaseWithRewardsUpg {
9
+ using PMath for uint256;
10
+
11
+ event ClaimedOffchainGHO(uint256 amountClaimed);
12
+
13
+ address public constant ANGLE_DISTRIBUTOR = 0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae;
14
+ address public constant STKGHO = 0x1a88Df1cFe15Af22B3c4c783D4e6F7F9e0C1885d;
15
+ address public constant GHO = 0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f;
16
+ address public constant AAVE = 0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9;
17
+ bytes32 public constant ZERO_REWARD_ERROR = 0x33d2eb294587ef7b32eb48e48695ebfec45a9c8922ec7d1c444cfad1fb208e8d;
18
+
19
+ constructor() SYBaseUpg(STKGHO) {}
20
+
21
+ function initialize() external initializer {
22
+ __SYBaseUpg_init("SY stk GHO", "SY-stkGHO");
23
+ _safeApproveInf(GHO, STKGHO);
24
+ }
25
+
26
+ function _deposit(address tokenIn, uint256 amountDeposited) internal virtual override returns (uint256) {
27
+ if (tokenIn == STKGHO) {
28
+ return amountDeposited;
29
+ }
30
+
31
+ uint256 preBalance = _selfBalance(STKGHO);
32
+ IAaveStkGHO(STKGHO).stake(address(this), amountDeposited);
33
+ return _selfBalance(STKGHO) - preBalance;
34
+ }
35
+
36
+ function _redeem(
37
+ address receiver,
38
+ address /*tokenOut*/,
39
+ uint256 amountSharesToRedeem
40
+ ) internal virtual override returns (uint256) {
41
+ _transferOut(STKGHO, receiver, amountSharesToRedeem);
42
+ return amountSharesToRedeem;
43
+ }
44
+
45
+ /*///////////////////////////////////////////////////////////////
46
+ EXCHANGE-RATE
47
+ //////////////////////////////////////////////////////////////*/
48
+
49
+ function exchangeRate() public view virtual override returns (uint256) {
50
+ return PMath.ONE.divDown(IAaveStkGHO(STKGHO).getExchangeRate());
51
+ }
52
+
53
+ /*///////////////////////////////////////////////////////////////
54
+ REWARDS-RELATED
55
+ //////////////////////////////////////////////////////////////*/
56
+
57
+ /**
58
+ * @dev See {IStandardizedYield-getRewardTokens}
59
+ */
60
+ function _getRewardTokens() internal pure override returns (address[] memory) {
61
+ return ArrayLib.create(AAVE);
62
+ }
63
+
64
+ function _redeemExternalReward() internal override {
65
+ try IAaveStkGHO(STKGHO).claimRewards(address(this), type(uint256).max) {} catch Error(
66
+ string memory errorString
67
+ ) {
68
+ // StkGHO claim reverts when claimable amount = 0, meaning two sy transfers in diff block/same timestamp would revert.
69
+ // This is expected to not happen at all on ETH mainnet but just to be sure.
70
+ if (keccak256(abi.encodePacked(errorString)) != ZERO_REWARD_ERROR) {
71
+ revert(errorString);
72
+ }
73
+ }
74
+ }
75
+
76
+ function claimOffchainGHORewards(
77
+ address[] calldata users,
78
+ address[] calldata tokens,
79
+ uint256[] calldata amounts,
80
+ bytes32[][] calldata proofs
81
+ ) external onlyOwner {
82
+ uint256 preBalance = _selfBalance(GHO);
83
+ IAngleDistributor(ANGLE_DISTRIBUTOR).claim(users, tokens, amounts, proofs);
84
+ uint256 amountClaimed = _selfBalance(GHO) - preBalance;
85
+
86
+ if (amountClaimed > 0) {
87
+ _transferOut(GHO, msg.sender, amountClaimed);
88
+ emit ClaimedOffchainGHO(amountClaimed);
89
+ }
90
+ }
91
+
92
+ /*///////////////////////////////////////////////////////////////
93
+ MISC FUNCTIONS FOR METADATA
94
+ //////////////////////////////////////////////////////////////*/
95
+
96
+ function _previewDeposit(
97
+ address tokenIn,
98
+ uint256 amountTokenToDeposit
99
+ ) internal view override returns (uint256 amountSharesOut) {
100
+ if (tokenIn == STKGHO) return amountTokenToDeposit;
101
+ return IAaveStkGHO(STKGHO).previewStake(amountTokenToDeposit);
102
+ }
103
+
104
+ function _previewRedeem(
105
+ address /*tokenOut*/,
106
+ uint256 amountSharesToRedeem
107
+ ) internal view override returns (uint256 amountTokenOut) {
108
+ return amountSharesToRedeem;
109
+ }
110
+
111
+ function getTokensIn() public view virtual override returns (address[] memory) {
112
+ return ArrayLib.create(GHO, STKGHO);
113
+ }
114
+
115
+ function getTokensOut() public view virtual override returns (address[] memory) {
116
+ return ArrayLib.create(STKGHO);
117
+ }
118
+
119
+ function isValidTokenIn(address token) public view virtual override returns (bool) {
120
+ return token == GHO || token == STKGHO;
121
+ }
122
+
123
+ function isValidTokenOut(address token) public view virtual override returns (bool) {
124
+ return token == STKGHO;
125
+ }
126
+
127
+ function assetInfo() external view returns (AssetType assetType, address assetAddress, uint8 assetDecimals) {
128
+ return (AssetType.TOKEN, GHO, IERC20Metadata(GHO).decimals());
129
+ }
130
+ }
@@ -15,7 +15,7 @@ contract PendleGlpSY is SYBaseWithRewardsUpg, GLPPreviewHelper {
15
15
  address public immutable stakedGlp;
16
16
  address public immutable rewardRouter;
17
17
  address public immutable glpRouter;
18
- address public immutable glpManager;
18
+ address public immutable glpManager = 0x3963FfC9dff443c2A94f21b129D429891E32ec18;
19
19
  address public immutable weth;
20
20
 
21
21
  constructor(
@@ -31,7 +31,6 @@ contract PendleGlpSY is SYBaseWithRewardsUpg, GLPPreviewHelper {
31
31
  stakedGlp = _stakedGlp;
32
32
  rewardRouter = _rewardRouter;
33
33
  glpRouter = _glpRouter;
34
- glpManager = IRewardRouterV2(glpRouter).glpManager();
35
34
  weth = IRewardRouterV2(glpRouter).weth();
36
35
  }
37
36
 
@@ -0,0 +1,82 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "../../SYBase.sol";
5
+ import "../../../../interfaces/IPExchangeRateOracle.sol";
6
+
7
+ contract PendleCMETHSY is SYBase {
8
+ using PMath for int256;
9
+
10
+ address public exchangeRateOracle = 0x1E2Ad9764cfAc60876486A7c714bc71f5b55f5C2;
11
+ address public constant CMETH = 0xE6829d9a7eE3040e1276Fa75293Bde931859e8fA;
12
+ address public constant WETH = 0xdEAddEaDdeadDEadDEADDEAddEADDEAddead1111;
13
+
14
+ constructor() SYBase("SY cmETH", "SY-cmETH", CMETH) {}
15
+
16
+ function setExchangeRateOracle(address newOracle) external onlyOwner {
17
+ exchangeRateOracle = newOracle;
18
+ }
19
+
20
+ /*///////////////////////////////////////////////////////////////
21
+ DEPOSIT/REDEEM USING BASE TOKENS
22
+ //////////////////////////////////////////////////////////////*/
23
+
24
+ function _deposit(address, uint256 amountDeposited) internal pure override returns (uint256 /*amountSharesOut*/) {
25
+ return amountDeposited;
26
+ }
27
+
28
+ function _redeem(
29
+ address receiver,
30
+ address tokenOut,
31
+ uint256 amountSharesToRedeem
32
+ ) internal override returns (uint256 /*amountTokenOut*/) {
33
+ _transferOut(tokenOut, receiver, amountSharesToRedeem);
34
+ return amountSharesToRedeem;
35
+ }
36
+
37
+ /*///////////////////////////////////////////////////////////////
38
+ EXCHANGE-RATE
39
+ //////////////////////////////////////////////////////////////*/
40
+
41
+ function exchangeRate() public view override returns (uint256) {
42
+ return IPExchangeRateOracle(exchangeRateOracle).getExchangeRate();
43
+ }
44
+
45
+ /*///////////////////////////////////////////////////////////////
46
+ MISC FUNCTIONS FOR METADATA
47
+ //////////////////////////////////////////////////////////////*/
48
+
49
+ function _previewDeposit(
50
+ address,
51
+ uint256 amountTokenToDeposit
52
+ ) internal pure override returns (uint256 /*amountSharesOut*/) {
53
+ return amountTokenToDeposit;
54
+ }
55
+
56
+ function _previewRedeem(
57
+ address,
58
+ uint256 amountSharesToRedeem
59
+ ) internal pure override returns (uint256 /*amountTokenOut*/) {
60
+ return amountSharesToRedeem;
61
+ }
62
+
63
+ function getTokensIn() public view override returns (address[] memory res) {
64
+ return ArrayLib.create(yieldToken);
65
+ }
66
+
67
+ function getTokensOut() public view override returns (address[] memory res) {
68
+ return ArrayLib.create(yieldToken);
69
+ }
70
+
71
+ function isValidTokenIn(address token) public view override returns (bool) {
72
+ return token == yieldToken;
73
+ }
74
+
75
+ function isValidTokenOut(address token) public view override returns (bool) {
76
+ return token == yieldToken;
77
+ }
78
+
79
+ function assetInfo() external view returns (AssetType assetType, address assetAddress, uint8 assetDecimals) {
80
+ return (AssetType.TOKEN, WETH, 18);
81
+ }
82
+ }
@@ -0,0 +1,154 @@
1
+ // SPDX-License-Identifier: BUSL-1.1
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "../../SYBaseWithRewards.sol";
5
+ import "../../../../interfaces/Silo/ISiloIncentiveController.sol";
6
+ import "../../../../interfaces/Silo/ISilo.sol";
7
+ import "../../../../interfaces/Silo/ISiloLens.sol";
8
+ import "../../../libraries/ArrayLib.sol";
9
+ import "../../../libraries/math/PMath.sol";
10
+
11
+ contract PendleSiloWithIncentiveNonBorrowableSY is SYBaseWithRewards {
12
+ using PMath for uint256;
13
+ using ArrayLib for address[];
14
+
15
+ event SetNewIncentiveController(address indexed newController);
16
+
17
+ address public immutable asset;
18
+ address public immutable collateralToken;
19
+ address public immutable silo;
20
+ address public immutable siloLens;
21
+
22
+ address public incentiveController;
23
+ address[] public additionalRewardTokens;
24
+ address public immutable defaultRewardToken;
25
+
26
+ constructor(
27
+ string memory _name,
28
+ string memory _symbol,
29
+ address _asset,
30
+ address _collateralToken,
31
+ address _silo,
32
+ address _siloLens,
33
+ address _incentiveController
34
+ ) SYBaseWithRewards(_name, _symbol, _collateralToken) {
35
+ asset = _asset;
36
+ collateralToken = _collateralToken;
37
+ silo = _silo;
38
+ siloLens = _siloLens;
39
+
40
+ incentiveController = _incentiveController;
41
+ defaultRewardToken = ISiloIncentiveController(incentiveController).REWARD_TOKEN();
42
+
43
+ _safeApproveInf(asset, silo);
44
+ }
45
+
46
+ function _deposit(
47
+ address tokenIn,
48
+ uint256 amountDeposited
49
+ ) internal virtual override returns (uint256 amountSharesOut) {
50
+ if (tokenIn == collateralToken) {
51
+ return amountDeposited;
52
+ } else {
53
+ (, amountSharesOut) = ISilo(silo).deposit(asset, amountDeposited, true);
54
+ }
55
+ }
56
+
57
+ function _redeem(
58
+ address receiver,
59
+ address tokenOut,
60
+ uint256 amountSharesToRedeem
61
+ ) internal virtual override returns (uint256 amountTokenOut) {
62
+ if (tokenOut == collateralToken) {
63
+ _transferOut(collateralToken, receiver, amountSharesToRedeem);
64
+ return amountSharesToRedeem;
65
+ } else {
66
+ // Silo withdrawing interface only accepts amount of asset as input
67
+ // Therefore we need to ensure that assetInput.toShareRoundUp() <= amountSharesToRedeem
68
+
69
+ amountTokenOut = amountSharesToRedeem;
70
+
71
+ // amountAssetToWithdraw should = withdrawnAmount as withdrawing does not
72
+ // bear any fees
73
+ ISilo(silo).withdraw(asset, amountTokenOut, true);
74
+ _transferOut(tokenOut, receiver, amountTokenOut);
75
+ }
76
+ }
77
+
78
+ /*///////////////////////////////////////////////////////////////
79
+ EXCHANGE-RATE
80
+ //////////////////////////////////////////////////////////////*/
81
+
82
+ function exchangeRate() public view virtual override returns (uint256) {
83
+ return PMath.ONE;
84
+ }
85
+
86
+ /*///////////////////////////////////////////////////////////////
87
+ REWARDS-RELATED
88
+ //////////////////////////////////////////////////////////////*/
89
+
90
+ function setIncentiveController(address newController) external onlyOwner {
91
+ // Claim all pending rewards from old contract
92
+ _redeemExternalReward();
93
+
94
+ address newRewardToken = ISiloIncentiveController(newController).REWARD_TOKEN();
95
+ if (newRewardToken != defaultRewardToken && !additionalRewardTokens.contains(newRewardToken)) {
96
+ additionalRewardTokens.push(newRewardToken);
97
+ }
98
+ incentiveController = newController;
99
+
100
+ emit SetNewIncentiveController(newController);
101
+ }
102
+
103
+ /**
104
+ * @dev See {IStandardizedYield-getRewardTokens}
105
+ */
106
+ function _getRewardTokens() internal view override returns (address[] memory) {
107
+ return additionalRewardTokens.appendHead(defaultRewardToken);
108
+ }
109
+
110
+ function _redeemExternalReward() internal override {
111
+ ISiloIncentiveController(incentiveController).claimRewardsToSelf(
112
+ ArrayLib.create(collateralToken),
113
+ type(uint256).max
114
+ );
115
+ }
116
+
117
+ /*///////////////////////////////////////////////////////////////
118
+ MISC FUNCTIONS FOR METADATA
119
+ //////////////////////////////////////////////////////////////*/
120
+
121
+ function _previewDeposit(
122
+ address tokenIn,
123
+ uint256 amountTokenToDeposit
124
+ ) internal view override returns (uint256 amountSharesOut) {
125
+ return amountTokenToDeposit;
126
+ }
127
+
128
+ function _previewRedeem(
129
+ address tokenOut,
130
+ uint256 amountSharesToRedeem
131
+ ) internal view override returns (uint256 amountTokenOut) {
132
+ return amountSharesToRedeem;
133
+ }
134
+
135
+ function getTokensIn() public view virtual override returns (address[] memory) {
136
+ return ArrayLib.create(asset, collateralToken);
137
+ }
138
+
139
+ function getTokensOut() public view virtual override returns (address[] memory) {
140
+ return ArrayLib.create(asset, collateralToken);
141
+ }
142
+
143
+ function isValidTokenIn(address token) public view virtual override returns (bool) {
144
+ return token == asset || token == collateralToken;
145
+ }
146
+
147
+ function isValidTokenOut(address token) public view virtual override returns (bool) {
148
+ return token == asset || token == collateralToken;
149
+ }
150
+
151
+ function assetInfo() external view returns (AssetType assetType, address assetAddress, uint8 assetDecimals) {
152
+ return (AssetType.TOKEN, asset, IERC20Metadata(asset).decimals());
153
+ }
154
+ }
@@ -0,0 +1,103 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "../../SYBaseUpg.sol";
5
+ import "./PendleSolvHelperBase.sol";
6
+ import "../../../../interfaces/IPExchangeRateOracle.sol";
7
+
8
+ contract PendleSolvBTCBBNBaseSYUpg is SYBaseUpg {
9
+ event SetNewExchangeRateOracle(address oracle);
10
+
11
+ address public constant CBBTC = PendleSolvHelperBase.CBBTC;
12
+ address public constant SOLV_BTC = PendleSolvHelperBase.SOLV_BTC_TOKEN;
13
+ address public constant SOLV_BTCBBN = PendleSolvHelperBase.SOLV_BTCBBN_TOKEN;
14
+
15
+ address public exchangeRateOracle;
16
+
17
+ constructor() SYBaseUpg(SOLV_BTCBBN) {}
18
+
19
+ function initialize(address _initialExchangeRateOracle) external initializer {
20
+ __SYBaseUpg_init("SY SolvBTC Babylon", "SY-SolvBTC.BBN");
21
+ _setExchangeRateOracle(_initialExchangeRateOracle);
22
+ _safeApproveInf(CBBTC, PendleSolvHelperBase.SOLV_BTC_ROUTER);
23
+ _safeApproveInf(SOLV_BTC, PendleSolvHelperBase.SOLV_BTCBBN_ROUTER);
24
+ }
25
+
26
+ /*///////////////////////////////////////////////////////////////
27
+ DEPOSIT/REDEEM USING BASE TOKENS
28
+ //////////////////////////////////////////////////////////////*/
29
+
30
+ function _deposit(address tokenIn, uint256 amountDeposited) internal virtual override returns (uint256) {
31
+ if (tokenIn == SOLV_BTCBBN) {
32
+ return amountDeposited;
33
+ }
34
+ return PendleSolvHelperBase._mintBTCBBN(tokenIn, amountDeposited);
35
+ }
36
+
37
+ function _redeem(
38
+ address receiver,
39
+ address /*tokenOut*/,
40
+ uint256 amountSharesToRedeem
41
+ ) internal virtual override returns (uint256) {
42
+ _transferOut(SOLV_BTCBBN, receiver, amountSharesToRedeem);
43
+ return amountSharesToRedeem;
44
+ }
45
+
46
+ /*///////////////////////////////////////////////////////////////
47
+ EXCHANGE-RATE
48
+ //////////////////////////////////////////////////////////////*/
49
+
50
+ function exchangeRate() public view virtual override returns (uint256) {
51
+ return IPExchangeRateOracle(exchangeRateOracle).getExchangeRate();
52
+ }
53
+
54
+ function setExchangeRateOracle(address newOracle) external virtual onlyOwner {
55
+ _setExchangeRateOracle(newOracle);
56
+ }
57
+
58
+ function _setExchangeRateOracle(address newOracle) internal virtual {
59
+ exchangeRateOracle = newOracle;
60
+ emit SetNewExchangeRateOracle(newOracle);
61
+ }
62
+
63
+ /*///////////////////////////////////////////////////////////////
64
+ MISC FUNCTIONS FOR METADATA
65
+ //////////////////////////////////////////////////////////////*/
66
+
67
+ function _previewDeposit(
68
+ address tokenIn,
69
+ uint256 amountTokenToDeposit
70
+ ) internal view virtual override returns (uint256 /*amountSharesOut*/) {
71
+ if (tokenIn == SOLV_BTCBBN) {
72
+ return amountTokenToDeposit;
73
+ }
74
+ return PendleSolvHelperBase._previewMintBTCBBN(tokenIn, amountTokenToDeposit);
75
+ }
76
+
77
+ function _previewRedeem(
78
+ address /*tokenOut*/,
79
+ uint256 amountSharesToRedeem
80
+ ) internal view virtual override returns (uint256 amountTokenOut) {
81
+ return amountSharesToRedeem;
82
+ }
83
+
84
+ function getTokensIn() public view virtual override returns (address[] memory) {
85
+ return ArrayLib.create(CBBTC, SOLV_BTC, SOLV_BTCBBN);
86
+ }
87
+
88
+ function getTokensOut() public view virtual override returns (address[] memory) {
89
+ return ArrayLib.create(SOLV_BTCBBN);
90
+ }
91
+
92
+ function isValidTokenIn(address token) public view virtual override returns (bool) {
93
+ return token == CBBTC || token == SOLV_BTC || token == SOLV_BTCBBN;
94
+ }
95
+
96
+ function isValidTokenOut(address token) public view virtual override returns (bool) {
97
+ return token == SOLV_BTCBBN;
98
+ }
99
+
100
+ function assetInfo() external view returns (AssetType assetType, address assetAddress, uint8 assetDecimals) {
101
+ return (AssetType.TOKEN, CBBTC, IERC20Metadata(CBBTC).decimals());
102
+ }
103
+ }