@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
@@ -0,0 +1,47 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "../../../../interfaces/Solv/ISolvRouter.sol";
5
+ import "../../../../interfaces/Solv/ISolvOpenFundMarket.sol";
6
+ import "../../../../interfaces/Solv/ISolvOracle.sol";
7
+ import "../../../../interfaces/Solv/ISolvERC3525.sol";
8
+
9
+ library PendleSolvHelperBase {
10
+ address public constant SOLV_BTCBBN_ROUTER = 0x814F3ae67dF0da9fe2399a29516FD14b9085263a;
11
+ address public constant SOLV_BTCBBN_TOKEN = 0xC26C9099BD3789107888c35bb41178079B282561;
12
+ bytes32 public constant SOLV_BTCBBN_POOLID = 0xb20032ac848893cf4820a7b3259020ffd5057d49f537c2adc5f74a337cc56ddc;
13
+
14
+ address public constant SOLV_BTC_ROUTER = 0x65EFfDA5e69dF470d4dBd31a805e15855Cae65c7;
15
+ address public constant SOLV_BTC_TOKEN = 0x3B86Ad95859b6AB773f55f8d94B4b9d443EE931f;
16
+ bytes32 public constant SOLV_BTC_POOLID = 0x0d85d41382f6f2effeaa41a46855870ec8b1577c6c59cf16d72856a22988e3f5;
17
+
18
+ address public constant CBBTC = 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf;
19
+
20
+ address public constant SOLV_OPEN_FUND_MARKET = 0xf5a247157656678398B08d3eFa1673358C611A3f;
21
+
22
+ function _mintBTCBBN(address tokenIn, uint256 amountIn) internal returns (uint256) {
23
+ assert(tokenIn == CBBTC || tokenIn == SOLV_BTC_TOKEN);
24
+
25
+ if (tokenIn == CBBTC) {
26
+ amountIn = ISolvRouter(SOLV_BTC_ROUTER).createSubscription(SOLV_BTC_POOLID, amountIn);
27
+ }
28
+ return ISolvRouter(SOLV_BTCBBN_ROUTER).createSubscription(SOLV_BTCBBN_POOLID, amountIn);
29
+ }
30
+
31
+ function _previewMintBTCBBN(address tokenIn, uint256 amountIn) internal view returns (uint256) {
32
+ assert(tokenIn == CBBTC || tokenIn == SOLV_BTC_TOKEN);
33
+
34
+ if (tokenIn == CBBTC) {
35
+ amountIn = _convertToShare(CBBTC, amountIn);
36
+ }
37
+ return _convertToShare(SOLV_BTC_TOKEN, amountIn);
38
+ }
39
+
40
+ function _convertToShare(address tokenIn, uint256 amountIn) internal view returns (uint256) {
41
+ bytes32 poolId = tokenIn == CBBTC ? SOLV_BTC_POOLID : SOLV_BTCBBN_POOLID;
42
+ ISolvOpenFundMarket.PoolInfo memory info = ISolvOpenFundMarket(SOLV_OPEN_FUND_MARKET).poolInfos(poolId);
43
+ uint256 numerator = 10 ** ISolvERC3525(info.poolSFTInfo.openFundShare).valueDecimals();
44
+ (uint256 price, ) = ISolvOracle(info.navOracle).getSubscribeNav(poolId, block.timestamp);
45
+ return (amountIn * numerator) / price;
46
+ }
47
+ }
@@ -0,0 +1,101 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.23;
3
+
4
+ import "../AaveV3/PendleAaveV3WithRewardsSYUpg.sol";
5
+ import "../../../../interfaces/IPExchangeRateOracle.sol";
6
+ import "../PendleERC20SYUpg.sol";
7
+ import "../../../../interfaces/EtherFi/IVedaTeller.sol";
8
+ import "../../../../interfaces/EtherFi/IVedaAccountant.sol";
9
+ import "../../../../interfaces/Zerolend/IZerolendPool.sol";
10
+ import "../../../../interfaces/Zerolend/IZerolendZ0Token.sol";
11
+ import "../../../../interfaces/IPTokenWithSupplyCap.sol";
12
+
13
+ contract PendleZerolendEBTCSYUpg is PendleAaveV3WithRewardsSYUpg {
14
+ // solhint-disable immutable-vars-naming
15
+ // solhint-disable const-name-snakecase
16
+ // solhint-disable ordering
17
+
18
+ address public constant Z0EBTC = 0x52bB650211e8a6986287306A4c09B73A9Affd5e9;
19
+ address public constant ZEROLEND_POOL = 0xCD2b31071119D7eA449a9D211AC8eBF7Ee97F987;
20
+ address public constant ZEROLEND_INCENTIVE_CONTROLLER = 0x938e23c10C501CE5D42Bc516eCFDf5AbD9C51d2b; // no reward currently, leave as address(0) for gas saving
21
+ address public constant ZERO = 0x2Da17fAf782ae884faf7dB2208BBC66b6E085C22;
22
+
23
+ address public constant eBTC = 0x657e8C867D8B37dCC18fA4Caead9C45EB088C642;
24
+ address public constant cbBTC = 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf;
25
+ address public constant wBTC = 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599;
26
+ address public constant LBTC = 0x8236a87084f8B84306f72007F36F2618A5634494;
27
+ address public constant vedaTeller = 0x458797A320e6313c980C2bC7D270466A6288A8bB;
28
+
29
+ uint256 public constant ONE_SHARE = 10 ** 8;
30
+ uint256 public constant PREMIUM_SHARE_BPS = 10 ** 4;
31
+
32
+ address public immutable vedaAccountant;
33
+
34
+ constructor() PendleAaveV3WithRewardsSYUpg(ZEROLEND_POOL, Z0EBTC, ZEROLEND_INCENTIVE_CONTROLLER, ZERO) {
35
+ vedaAccountant = IVedaTeller(vedaTeller).accountant();
36
+ }
37
+
38
+ function approveAllForTeller() external {
39
+ _safeApproveInf(cbBTC, eBTC);
40
+ _safeApproveInf(wBTC, eBTC);
41
+ _safeApproveInf(LBTC, eBTC);
42
+ }
43
+
44
+ function _deposit(
45
+ address tokenIn,
46
+ uint256 amountDeposited
47
+ ) internal virtual override returns (uint256 /*amountSharesOut*/) {
48
+ if (tokenIn != eBTC && tokenIn != aToken) {
49
+ (tokenIn, amountDeposited) = (
50
+ eBTC,
51
+ IVedaTeller(vedaTeller).bulkDeposit(tokenIn, amountDeposited, 0, address(this))
52
+ );
53
+ }
54
+
55
+ return super._deposit(tokenIn, amountDeposited);
56
+ }
57
+
58
+ function _previewDeposit(
59
+ address tokenIn,
60
+ uint256 amountTokenToDeposit
61
+ ) internal view virtual override returns (uint256) {
62
+ if (tokenIn != eBTC && tokenIn != aToken) {
63
+ uint256 rate = IVedaAccountant(vedaAccountant).getRateInQuoteSafe(tokenIn);
64
+
65
+ uint256 amountEBTCRaw = (amountTokenToDeposit * ONE_SHARE) / rate;
66
+ IVedaTeller.Asset memory data = IVedaTeller(vedaTeller).assetData(tokenIn);
67
+
68
+ amountTokenToDeposit = (amountEBTCRaw * (PREMIUM_SHARE_BPS - data.sharePremium)) / PREMIUM_SHARE_BPS;
69
+ tokenIn = eBTC;
70
+ }
71
+ return super._previewDeposit(tokenIn, amountTokenToDeposit);
72
+ }
73
+
74
+ function isValidTokenIn(address token) public view override returns (bool) {
75
+ return token == eBTC || token == wBTC || token == cbBTC || token == LBTC || token == aToken;
76
+ }
77
+
78
+ function getTokensIn() public view override returns (address[] memory res) {
79
+ return ArrayLib.create(wBTC, cbBTC, eBTC, LBTC, aToken);
80
+ }
81
+
82
+ function assetInfo()
83
+ external
84
+ view
85
+ virtual
86
+ override
87
+ returns (AssetType assetType, address assetAddress, uint8 assetDecimals)
88
+ {
89
+ return (AssetType.TOKEN, eBTC, IERC20Metadata(eBTC).decimals());
90
+ }
91
+
92
+ function getAbsoluteSupplyCap() external view returns (uint256) {
93
+ uint256 data = (IZerolendPool(ZEROLEND_POOL).getConfiguration(eBTC)).data;
94
+ uint256 unscaledSupplyCap = (data & (~uint256(0xFFFFFFFFFFFFFFFFFFFFFFFFFF000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFF))) >> 116;
95
+ return unscaledSupplyCap * (10 ** IERC20Metadata(eBTC).decimals());
96
+ }
97
+
98
+ function getAbsoluteTotalSupply() external view returns (uint256) {
99
+ return IZerolendZ0Token(Z0EBTC).scaledTotalSupply();
100
+ }
101
+ }
@@ -0,0 +1,32 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.23;
3
+
4
+ import "../AaveV3/PendleAaveV3WithRewardsSYUpg.sol";
5
+ import "../../../../interfaces/IPExchangeRateOracle.sol";
6
+
7
+ contract PendleZerolendLBTCSYUpg is PendleAaveV3WithRewardsSYUpg {
8
+ address public constant Z0LBTC = 0xcABB8fa209CcdF98a7A0DC30b1979fC855Cb3Eb3;
9
+ address public constant ZEROLEND_POOL = 0xCD2b31071119D7eA449a9D211AC8eBF7Ee97F987;
10
+ address public constant ZEROLEND_INCENTIVE_CONTROLLER = address(0); // no reward currently, leave as address(0) for gas saving
11
+ address public constant ZERO = 0x2Da17fAf782ae884faf7dB2208BBC66b6E085C22;
12
+
13
+ address public constant LBTC_ORACLE = 0x1F0318B5Ab2c4084692986A2C25916Cec1195cD9;
14
+
15
+ address public constant WBTC = 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599;
16
+
17
+ constructor() PendleAaveV3WithRewardsSYUpg(ZEROLEND_POOL, Z0LBTC, ZEROLEND_INCENTIVE_CONTROLLER, ZERO) {}
18
+
19
+ function exchangeRate() public view virtual override returns (uint256) {
20
+ return PMath.mulDown(super.exchangeRate(), IPExchangeRateOracle(LBTC_ORACLE).getExchangeRate());
21
+ }
22
+
23
+ function assetInfo()
24
+ external
25
+ view
26
+ virtual
27
+ override
28
+ returns (AssetType assetType, address assetAddress, uint8 assetDecimals)
29
+ {
30
+ return (AssetType.TOKEN, WBTC, IERC20Metadata(WBTC).decimals());
31
+ }
32
+ }
@@ -0,0 +1,17 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+
3
+ pragma solidity ^0.8.0;
4
+
5
+ interface IAaveStkGHO {
6
+ function stake(address to, uint256 amount) external;
7
+
8
+ function redeem(address to, uint256 amount) external;
9
+
10
+ function claimRewards(address to, uint256 amount) external;
11
+
12
+ function getExchangeRate() external view returns (uint216);
13
+
14
+ function previewStake(uint256 assets) external view returns (uint256);
15
+
16
+ function previewRedeem(uint256 shares) external view returns (uint256);
17
+ }
@@ -0,0 +1,12 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+
3
+ pragma solidity ^0.8.0;
4
+
5
+ interface IAngleDistributor {
6
+ function claim(
7
+ address[] calldata users,
8
+ address[] calldata tokens,
9
+ uint256[] calldata amounts,
10
+ bytes32[][] calldata proofs
11
+ ) external;
12
+ }
@@ -1,6 +1,8 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity ^0.8.0;
3
3
 
4
+ import "./IPMarket.sol";
5
+
4
6
  interface IPActionMarketCoreStatic {
5
7
  function addLiquidityDualSyAndPtStatic(
6
8
  address market,
@@ -288,4 +290,6 @@ interface IPActionMarketCoreStatic {
288
290
  address market,
289
291
  uint256 exactSyOut
290
292
  ) external view returns (uint256 netYtIn, uint256 netSyFee, uint256 priceImpact, uint256 exchangeRateAfter);
293
+
294
+ function readMarketState(address market) external view returns (MarketState memory);
291
295
  }
@@ -0,0 +1,31 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.0;
3
+
4
+ interface IZerolendPool {
5
+ struct ReserveConfigurationMap {
6
+ //bit 0-15: LTV
7
+ //bit 16-31: Liq. threshold
8
+ //bit 32-47: Liq. bonus
9
+ //bit 48-55: Decimals
10
+ //bit 56: reserve is active
11
+ //bit 57: reserve is frozen
12
+ //bit 58: borrowing is enabled
13
+ //bit 59: stable rate borrowing enabled
14
+ //bit 60: asset is paused
15
+ //bit 61: borrowing in isolation mode is enabled
16
+ //bit 62: siloed borrowing enabled
17
+ //bit 63: flashloaning enabled
18
+ //bit 64-79: reserve factor
19
+ //bit 80-115 borrow cap in whole tokens, borrowCap == 0 => no cap
20
+ //bit 116-151 supply cap in whole tokens, supplyCap == 0 => no cap
21
+ //bit 152-167 liquidation protocol fee
22
+ //bit 168-175 eMode category
23
+ //bit 176-211 unbacked mint cap in whole tokens, unbackedMintCap == 0 => minting disabled
24
+ //bit 212-251 debt ceiling for isolation mode with (ReserveConfiguration::DEBT_CEILING_DECIMALS) decimals
25
+ //bit 252-255 unused
26
+
27
+ uint256 data;
28
+ }
29
+
30
+ function getConfiguration(address asset) external view returns (ReserveConfigurationMap memory);
31
+ }
@@ -0,0 +1,6 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.0;
3
+
4
+ interface IZerolendZ0Token {
5
+ function scaledTotalSupply() external view returns (uint256);
6
+ }
@@ -254,4 +254,9 @@ library SDKErrorsDirectory {
254
254
  error InvalidTimestamp();
255
255
  error InvalidWithdrawalFee();
256
256
  error InvalidTotalSupply();
257
+ error OperationNotAllowed();
258
+ error WOMBAT_COV_RATIO_LIMIT_EXCEEDED();
259
+ error NotEnoughLiquidity();
260
+ error InvalidAmountToDeposit();
261
+ error TellerWithMultiAssetSupport__AssetNotSupported();
257
262
  }
@@ -70,7 +70,7 @@ contract ActionInfoStatic is IPActionInfoStatic {
70
70
 
71
71
  function getUserMarketInfo(address market, address user) external returns (UserMarketInfo memory res) {
72
72
  IPMarket _market = IPMarket(market);
73
- MarketState memory state = _market.readState(address(this));
73
+ MarketState memory state = IPRouterStatic(address(this)).readMarketState(market);
74
74
 
75
75
  if (uint256(state.totalLp) == 0) return res; // market not initialized
76
76
 
@@ -342,7 +342,7 @@ contract ActionMarketAuxStatic is IPActionMarketAuxStatic {
342
342
  }
343
343
 
344
344
  function _readState(address market) internal view returns (MarketState memory) {
345
- return IPMarket(market).readState(address(this));
345
+ return IPRouterStatic(address(this)).readMarketState(market);
346
346
  }
347
347
 
348
348
  function _readTokens(
@@ -18,6 +18,8 @@ contract ActionMarketCoreStatic is StorageLayout, IPActionMarketCoreStatic {
18
18
 
19
19
  // ============ ADD REMOVE LIQUIDITY ============
20
20
 
21
+ address internal constant ROUTER_V4 = 0x888888888889758F76e7103c6CbF23ABbF58F946;
22
+
21
23
  function addLiquidityDualSyAndPtStatic(
22
24
  address market,
23
25
  uint256 netSyDesired,
@@ -625,6 +627,14 @@ contract ActionMarketCoreStatic is StorageLayout, IPActionMarketCoreStatic {
625
627
  exchangeRateAfter = _getTradeExchangeRateExcludeFee(market, state);
626
628
  }
627
629
 
630
+ function readMarketState(address market) public view returns (MarketState memory) {
631
+ return _readState(market);
632
+ }
633
+
634
+ function _readState(address market) internal view returns (MarketState memory) {
635
+ return IPMarket(market).readState(ROUTER_V4);
636
+ }
637
+
628
638
  function _calcPriceImpactPY(address market, int256 netPtOut) internal view returns (uint256) {
629
639
  return IPRouterStatic(address(this)).calcPriceImpactPY(market, netPtOut);
630
640
  }
@@ -657,10 +667,6 @@ contract ActionMarketCoreStatic is StorageLayout, IPActionMarketCoreStatic {
657
667
  return IPRouterStatic(address(this)).getTradeExchangeRateExcludeFee(market, state);
658
668
  }
659
669
 
660
- function _readState(address market) internal view returns (MarketState memory) {
661
- return IPMarket(market).readState(address(this));
662
- }
663
-
664
670
  function _pyIndex(address market) private view returns (PYIndex) {
665
671
  return PYIndex.wrap(IPRouterStatic(address(this)).pyIndexCurrentViewMarket(market));
666
672
  }
@@ -1,8 +1,8 @@
1
1
  // SPDX-License-Identifier: MIT
2
2
  pragma solidity ^0.8.17;
3
3
 
4
- import "../../core/libraries/math/PMath.sol";
5
- import "../../interfaces/IPExchangeRateOracle.sol";
4
+ import "../core/libraries/math/PMath.sol";
5
+ import "../interfaces/IPExchangeRateOracle.sol";
6
6
 
7
7
  contract PendleBoringOneracle is IPExchangeRateOracle {
8
8
  function getExchangeRate() external pure returns (uint256) {
@@ -1,8 +1,8 @@
1
1
  // SPDX-License-Identifier: MIT
2
2
  pragma solidity ^0.8.17;
3
3
 
4
- import "../../core/libraries/math/PMath.sol";
5
- import "../../interfaces/IPExchangeRateOracle.sol";
4
+ import "../core/libraries/math/PMath.sol";
5
+ import "../interfaces/IPExchangeRateOracle.sol";
6
6
 
7
7
  contract PendleBoringSolvBTCOneracle is IPExchangeRateOracle {
8
8
  function getExchangeRate() external pure returns (uint256) {
@@ -3,8 +3,8 @@ pragma solidity ^0.8.17;
3
3
 
4
4
  import "./PendlePYOracleLib.sol";
5
5
  import "./PendleLpOracleLib.sol";
6
- import "../../interfaces/IPPYLpOracle.sol";
7
- import "../../core/libraries/BoringOwnableUpgradeable.sol";
6
+ import "../interfaces/IPPYLpOracle.sol";
7
+ import "../core/libraries/BoringOwnableUpgradeable.sol";
8
8
 
9
9
  // This is a pre-deployed version of PendlePtOracleLib & PendleLpOracleLib with additional utility functions.
10
10
  // Use of this contract rather than direct library integration resulting in a smaller bytecode size and simpler structure
@@ -1,8 +1,8 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity ^0.8.0;
3
3
 
4
- import "../../interfaces/IPMarket.sol";
5
- import "../../core/libraries/math/PMath.sol";
4
+ import "../interfaces/IPMarket.sol";
5
+ import "../core/libraries/math/PMath.sol";
6
6
 
7
7
  // This library can & should be integrated directly for optimal gas usage.
8
8
  // If you prefer not to integrate it directly, the PendlePtOracle contract (a pre-deployed version of this contract) can be used.
@@ -1,9 +1,9 @@
1
1
  // SPDX-License-Identifier: MIT
2
2
  pragma solidity ^0.8.17;
3
3
 
4
- import "../../core/libraries/math/PMath.sol";
5
- import "../../interfaces/IPExchangeRateOracle.sol";
6
- import "../../interfaces/IRedstonePriceFeed.sol";
4
+ import "../core/libraries/math/PMath.sol";
5
+ import "../interfaces/IPExchangeRateOracle.sol";
6
+ import "../interfaces/IRedstonePriceFeed.sol";
7
7
 
8
8
  contract PendleRedStoneRateOracleAdapter is IPExchangeRateOracle {
9
9
  using PMath for int256;
@@ -2,9 +2,9 @@
2
2
  pragma solidity ^0.8.17;
3
3
 
4
4
  import "../PendleLpOracleLib.sol";
5
- import "../../../interfaces/IPPYLpOracle.sol";
6
- import "../../../interfaces/GMX/IGlpManager.sol";
7
- import "../../../core/libraries/math/PMath.sol";
5
+ import "../../interfaces/IPPYLpOracle.sol";
6
+ import "../../interfaces/GMX/IGlpManager.sol";
7
+ import "../../core/libraries/math/PMath.sol";
8
8
 
9
9
  /**
10
10
  * @notice The LP/GLP price gotten from the market using the LpOracleLib is multiplied with the USD price of GLP read from
@@ -1,6 +1,6 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity ^0.8.0;
3
- import "../../../interfaces/IPMarket.sol";
3
+ import "../../interfaces/IPMarket.sol";
4
4
 
5
5
  abstract contract BoringLpSeller {
6
6
  bytes internal constant EMPTY_BYTES = abi.encode();
@@ -1,9 +1,9 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity ^0.8.17;
3
3
 
4
- import "../../../interfaces/IPPYLpOracle.sol";
5
- import "../../../interfaces/IPMarket.sol";
6
- import "../../../core/libraries/math/PMath.sol";
4
+ import "../../interfaces/IPPYLpOracle.sol";
5
+ import "../../interfaces/IPMarket.sol";
6
+ import "../../core/libraries/math/PMath.sol";
7
7
  import "../PendleLpOracleLib.sol";
8
8
 
9
9
  import {AggregatorV2V3Interface as IChainlinkAggregator} from "@chainlink/contracts/src/v0.8/interfaces/AggregatorV2V3Interface.sol";
@@ -1,9 +1,9 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity ^0.8.17;
3
3
 
4
- import "../../../interfaces/IPPYLpOracle.sol";
5
- import "../../../interfaces/IPMarket.sol";
6
- import "../../../core/libraries/math/PMath.sol";
4
+ import "../../interfaces/IPPYLpOracle.sol";
5
+ import "../../interfaces/IPMarket.sol";
6
+ import "../../core/libraries/math/PMath.sol";
7
7
  import "../PendleLpOracleLib.sol";
8
8
 
9
9
  import {AggregatorV2V3Interface as IChainlinkAggregator} from "@chainlink/contracts/src/v0.8/interfaces/AggregatorV2V3Interface.sol";
@@ -1,6 +1,6 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity ^0.8.0;
3
- import "../../../interfaces/IPMarket.sol";
3
+ import "../../interfaces/IPMarket.sol";
4
4
 
5
5
  abstract contract BoringPtSeller {
6
6
  bytes internal constant EMPTY_BYTES = abi.encode();
@@ -18,11 +18,15 @@ struct SwapDataExtra {
18
18
  enum SwapType {
19
19
  NONE,
20
20
  KYBERSWAP,
21
- ONE_INCH,
21
+ ODOS,
22
22
  // ETH_WETH not used in Aggregator
23
23
  ETH_WETH
24
24
  }
25
25
 
26
26
  interface IPSwapAggregator {
27
+ event SwapSingle(SwapType indexed swapType, address indexed tokenIn, uint256 amountIn);
28
+
27
29
  function swap(address tokenIn, uint256 amountIn, SwapData calldata swapData) external payable;
30
+
31
+ function swapMultiOdos(address[] calldata tokensIn, SwapData calldata swapData) external payable;
28
32
  }
@@ -17,6 +17,15 @@ contract PendleSwap is IPSwapAggregator, TokenHelper {
17
17
  data.needScale ? _getScaledInputData(data.swapType, data.extCalldata, amountIn) : data.extCalldata,
18
18
  tokenIn == NATIVE ? amountIn : 0
19
19
  );
20
+
21
+ emit SwapSingle(data.swapType, tokenIn, amountIn);
22
+ }
23
+
24
+ function swapMultiOdos(address[] calldata tokensIn, SwapData calldata data) external payable {
25
+ for (uint256 i = 0; i < tokensIn.length; ++i) {
26
+ _safeApproveInf(tokensIn[i], data.extRouter);
27
+ }
28
+ data.extRouter.functionCallWithValue(data.extCalldata, msg.value);
20
29
  }
21
30
 
22
31
  function _getScaledInputData(
@@ -32,11 +41,35 @@ contract PendleSwap is IPSwapAggregator, TokenHelper {
32
41
  );
33
42
 
34
43
  require(isSuccess, "PendleSwap: Kyber scaling failed");
44
+ } else if (swapType == SwapType.ODOS) {
45
+ scaledCallData = _odosScaling(rawCallData, amountIn);
35
46
  } else {
36
47
  assert(false);
37
48
  }
38
49
  }
39
50
 
51
+ function _odosScaling(
52
+ bytes calldata rawCallData,
53
+ uint256 amountIn
54
+ ) internal pure returns (bytes memory scaledCallData) {
55
+ bytes4 selector = bytes4(rawCallData[:4]);
56
+ bytes calldata dataToDecode = rawCallData[4:];
57
+
58
+ assert(selector == IOdosRouterV2.swap.selector);
59
+ (
60
+ IOdosRouterV2.swapTokenInfo memory tokenInfo,
61
+ bytes memory pathDefinition,
62
+ address executor,
63
+ uint32 referralCode
64
+ ) = abi.decode(dataToDecode, (IOdosRouterV2.swapTokenInfo, bytes, address, uint32));
65
+
66
+ tokenInfo.outputQuote = (tokenInfo.outputQuote * amountIn) / tokenInfo.inputAmount;
67
+ tokenInfo.outputMin = (tokenInfo.outputMin * amountIn) / tokenInfo.inputAmount;
68
+ tokenInfo.inputAmount = amountIn;
69
+
70
+ return abi.encodeWithSelector(selector, tokenInfo, pathDefinition, executor, referralCode);
71
+ }
72
+
40
73
  receive() external payable {}
41
74
  }
42
75
 
@@ -46,3 +79,22 @@ interface IKyberScalingHelper {
46
79
  uint256 newAmount
47
80
  ) external view returns (bool isSuccess, bytes memory data);
48
81
  }
82
+
83
+ interface IOdosRouterV2 {
84
+ struct swapTokenInfo {
85
+ address inputToken;
86
+ uint256 inputAmount;
87
+ address inputReceiver;
88
+ address outputToken;
89
+ uint256 outputQuote;
90
+ uint256 outputMin;
91
+ address outputReceiver;
92
+ }
93
+
94
+ function swap(
95
+ swapTokenInfo memory tokenInfo,
96
+ bytes calldata pathDefinition,
97
+ address executor,
98
+ uint32 referralCode
99
+ ) external payable returns (uint256 amountOut);
100
+ }
@@ -31,7 +31,7 @@
31
31
  "ActionStorageV4": "0x6a0Ed0A9193FCBe7ae9B0F3D90F88e365Cca64fC"
32
32
  },
33
33
  "routerStatic": "0x263833d47eA3fA4a30f269323aba6a107f9eB14C",
34
- "pendleSwap": "0x2E6ffA05cd6920dcc0d169efce2F4C96E774eCd2",
34
+ "pendleSwap": "0x7aE5C4Cf5CddFbda870a80D021997d8A04f4Ff11",
35
35
  "pyYtLpOracle": "0x9a9fa8338dd5e5b2188006f1cd2ef26d921650c2",
36
36
  "yieldContractFactoryV3": "0xdF3601014686674e53d1Fa52F7602525483F9122",
37
37
  "marketFactoryV3": "0x1A6fCc85557BC4fB7B534ed835a03EF056552D52",
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "SY agETH",
3
+ "SY": "0xb1B9150f2085f6a553b547099977181CA802752A",
4
+ "YT": "0x0310A860CF7Efe8F54Ab9B4dE49Cd071C37fCBCB",
5
+ "PT": "0x6E43F6abce001c14C7115d20908d0c272338eAf1",
6
+ "market": "0xBe8549a20257917a0a9EF8911DAF18190A8842a4",
7
+ "expiry": 1750896000,
8
+ "scalarRoot": "64240339912000000000",
9
+ "initAnchor": "1040529553000000000",
10
+ "lnFeeRateRoot": "999500333000000",
11
+ "deployTxHash": "0x456464c59550a0e84410efdbeef9db3908ba55fe31ee9b8a2b23756671af0bc6",
12
+ "deployBlockNumber": 21177279,
13
+ "reversedFee": 0.09999999999164011
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "SY pufETH",
3
+ "SY": "0x253008ba4aE2f3E6488DC998a5321D4EB1a0c905",
4
+ "YT": "0x784A0bb8208C70290cac6bcBC3650cEb9227813E",
5
+ "PT": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D",
6
+ "market": "0x58612beB0e8a126735b19BB222cbC7fC2C162D2a",
7
+ "expiry": 1750896000,
8
+ "scalarRoot": "89629413589000000000",
9
+ "initAnchor": "1034397837000000000",
10
+ "lnFeeRateRoot": "499875041000000",
11
+ "deployTxHash": "0x07bb6832305177cceba7fefb17799b067cda4f7d7bac25e4ef8f3fe16e3583b1",
12
+ "deployBlockNumber": 21177325,
13
+ "reversedFee": 0.04999999993486881
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "SY ETH",
3
+ "SY": "0x730A5E2AcEbccAA5e9095723B3CB862739DA793c",
4
+ "YT": "0x9335A7A9208cdA49f287Ea9af7B3D1faAdfcfe80",
5
+ "PT": "0xE08C45F3cfE70f4e03668Dc6E84Af842bEE95A68",
6
+ "market": "0xfD482179DdEe989C45eaB19991852F80fF31457a",
7
+ "expiry": 1750896000,
8
+ "scalarRoot": "89241410861000000000",
9
+ "initAnchor": "1029050450000000000",
10
+ "lnFeeRateRoot": "499875041000000",
11
+ "deployTxHash": "0x95046b375a4f59baa5e3edabc749a43c02091e94ed7c8b2cc2b3f26289c273fd",
12
+ "deployBlockNumber": 21126538,
13
+ "reversedFee": 0.04999999993486881
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "SY rswETH",
3
+ "SY": "0x7786729eEe8b9d30fE7d91fDFf23A0f1D0C615D9",
4
+ "YT": "0xC1bdd44EedaEA25b07812Cd70D214BCac2D01E29",
5
+ "PT": "0x003984eCC30BAFe364eFA8c0112cDd94B8216406",
6
+ "market": "0xfd5Cf95E8b886aCE955057cA4DC69466e793FBBE",
7
+ "expiry": 1750896000,
8
+ "scalarRoot": "89721210735000000000",
9
+ "initAnchor": "1033334881000000000",
10
+ "lnFeeRateRoot": "499875041000000",
11
+ "deployTxHash": "0x5ab1065d2fba394c2bda02915e7ee64bb1819148c830e7d855c6690085912b05",
12
+ "deployBlockNumber": 21191742,
13
+ "reversedFee": 0.04999999993486881
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "SY stkGHO",
3
+ "SY": "0xCC9eFBf580120676bFB3420FbD2cfc34019A1967",
4
+ "YT": "0xc5e62a939d2E85F9ebB6aEffc03B053DACF90140",
5
+ "PT": "0xf05312A0D01E5a0F9EBa87A539c37100fABf9B5e",
6
+ "market": "0xff81180a7f949ba1F940EAE6aA3B3CeB890b1912",
7
+ "expiry": 1745452800,
8
+ "scalarRoot": "31061108921000000000",
9
+ "initAnchor": "1059899074000000000",
10
+ "lnFeeRateRoot": "1998002662000000",
11
+ "deployTxHash": "0xa5b637f1b904930fab6f91f8a7cc6dac7383613cbc1ace46d747a53a2d1e6e99",
12
+ "deployBlockNumber": 21071107,
13
+ "reversedFee": 0.19999999993256523
14
+ }