@gearbox-protocol/sdk 17.0.0-next.4 → 17.0.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 (364) hide show
  1. package/dist/cjs/dev/abi.js +14 -15
  2. package/dist/cjs/dev/claimFromFaucet.js +4 -8
  3. package/dist/cjs/dev/createAnvilClient.js +35 -17
  4. package/dist/cjs/dev/index.js +7 -2
  5. package/dist/cjs/dev/kycUtils.js +66 -58
  6. package/dist/cjs/dev/midasUtils.js +113 -16
  7. package/dist/cjs/dev/securitizeUtils.js +82 -42
  8. package/dist/cjs/dev/withdrawalUtils.js +3 -6
  9. package/dist/cjs/model/errors/index.js +2 -0
  10. package/dist/cjs/model/errors/operation-errors.js +19 -1
  11. package/dist/cjs/model/index.js +4 -2
  12. package/dist/cjs/model/rwa.js +4 -4
  13. package/dist/cjs/model/rwa.schema.js +4 -4
  14. package/dist/cjs/offchain/opportunities/OffchainOpportunities.js +1 -1
  15. package/dist/cjs/onchain/OnchainSDK.js +3 -3
  16. package/dist/cjs/onchain/accounts/CreditAccountsServiceV310.js +2 -17
  17. package/dist/cjs/onchain/accounts/intents/borrow.js +140 -0
  18. package/dist/cjs/onchain/accounts/intents/collateral-valuation.js +41 -0
  19. package/dist/cjs/onchain/accounts/intents/guards.js +15 -3
  20. package/dist/cjs/onchain/accounts/intents/index.js +107 -20
  21. package/dist/cjs/onchain/accounts/intents/leverage-band.js +2 -12
  22. package/dist/cjs/onchain/accounts/intents/maxBorrow.js +89 -0
  23. package/dist/cjs/onchain/accounts/intents/maxWithdrawCollateral.js +15 -41
  24. package/dist/cjs/onchain/accounts/intents/open-strategy.js +8 -46
  25. package/dist/cjs/onchain/accounts/intents/operations.js +0 -1
  26. package/dist/cjs/onchain/accounts/intents/realize.js +61 -4
  27. package/dist/cjs/onchain/accounts/intents/tail.js +1 -1
  28. package/dist/cjs/onchain/accounts/intents/testing/sdk-mock.js +1 -0
  29. package/dist/cjs/onchain/accounts/intents/utils/common.js +19 -0
  30. package/dist/cjs/onchain/accounts/intents/utils/credit-account-slice.js +21 -0
  31. package/dist/cjs/onchain/accounts/intents/utils/index.js +2 -0
  32. package/dist/cjs/onchain/accounts/intents/utils/price-impact.js +12 -9
  33. package/dist/cjs/onchain/accounts/intents/utils/router-path.js +4 -5
  34. package/dist/cjs/onchain/accounts/intents/withdraw-limits.js +97 -0
  35. package/dist/cjs/onchain/accounts/liquidations/LiquidationsService.js +1 -1
  36. package/dist/cjs/onchain/constants/address-provider.js +0 -2
  37. package/dist/cjs/onchain/constants/index.js +0 -1
  38. package/dist/cjs/onchain/core/createAddressProvider.js +2 -5
  39. package/dist/cjs/onchain/index.js +60 -43
  40. package/dist/cjs/onchain/market/adapters/abi/conctructorAbi.js +2 -2
  41. package/dist/cjs/onchain/market/adapters/contracts/AbstractAdapter.js +6 -0
  42. package/dist/cjs/onchain/market/adapters/contracts/MidasGatewayAdapterContract.js +49 -5
  43. package/dist/cjs/onchain/market/credit/CreditSuite.js +26 -9
  44. package/dist/cjs/onchain/market/index.js +50 -38
  45. package/dist/cjs/onchain/market/oracle/PriceOracleBaseContract.js +3 -3
  46. package/dist/cjs/onchain/market/pricefeeds/AbstractPriceFeed.js +0 -5
  47. package/dist/cjs/onchain/market/pricefeeds/PriceFeedRegistry.js +127 -0
  48. package/dist/cjs/onchain/market/pricefeeds/{BalancerStablePriceFeed.js → feeds/BalancerStablePriceFeed.js} +4 -4
  49. package/dist/cjs/onchain/market/pricefeeds/{BalancerWeightedPriceFeed.js → feeds/BalancerWeightedPriceFeed.js} +4 -4
  50. package/dist/cjs/onchain/market/pricefeeds/{BoundedPriceFeed.js → feeds/BoundedPriceFeed.js} +4 -4
  51. package/dist/cjs/onchain/market/pricefeeds/{CompositePriceFeed.js → feeds/CompositePriceFeed.js} +4 -4
  52. package/dist/cjs/onchain/market/pricefeeds/{ConstantPriceFeed.js → feeds/ConstantPriceFeed.js} +3 -3
  53. package/dist/cjs/onchain/market/pricefeeds/{CurveCryptoPriceFeed.js → feeds/CurveCryptoPriceFeed.js} +4 -4
  54. package/dist/cjs/onchain/market/pricefeeds/{CurveStablePriceFeed.js → feeds/CurveStablePriceFeed.js} +4 -4
  55. package/dist/cjs/onchain/market/pricefeeds/{CurveUSDPriceFeed.js → feeds/CurveUSDPriceFeed.js} +4 -4
  56. package/dist/cjs/onchain/market/pricefeeds/{Erc4626PriceFeed.js → feeds/Erc4626PriceFeed.js} +4 -4
  57. package/dist/cjs/onchain/market/pricefeeds/{ExternalPriceFeed.js → feeds/ExternalPriceFeed.js} +4 -4
  58. package/dist/cjs/onchain/market/pricefeeds/{MellowLRTPriceFeed.js → feeds/MellowLRTPriceFeed.js} +4 -4
  59. package/dist/cjs/onchain/market/pricefeeds/{PendleTWAPPTPriceFeed.js → feeds/PendleTWAPPTPriceFeed.js} +4 -4
  60. package/dist/cjs/onchain/market/pricefeeds/{PythPriceFeed.js → feeds/PythPriceFeed.js} +3 -3
  61. package/dist/cjs/onchain/market/pricefeeds/{RedstonePriceFeed.js → feeds/RedstonePriceFeed.js} +6 -6
  62. package/dist/cjs/onchain/market/pricefeeds/{WstETHPriceFeed.js → feeds/WstETHPriceFeed.js} +4 -4
  63. package/dist/cjs/onchain/market/pricefeeds/{YearnPriceFeed.js → feeds/YearnPriceFeed.js} +4 -4
  64. package/dist/cjs/onchain/market/pricefeeds/{ZeroPriceFeed.js → feeds/ZeroPriceFeed.js} +4 -4
  65. package/dist/cjs/onchain/market/pricefeeds/feeds/index.js +35 -0
  66. package/dist/cjs/onchain/market/pricefeeds/index.js +51 -39
  67. package/dist/cjs/onchain/market/pricefeeds/updates/UpdatablePriceFeedRegistry.js +189 -0
  68. package/dist/cjs/onchain/market/pricefeeds/{getRawPriceUpdates.js → updates/getRawPriceUpdates.js} +2 -2
  69. package/dist/cjs/onchain/market/pricefeeds/updates/index.js +8 -0
  70. package/dist/cjs/onchain/market/pricefeeds/{isUpdatablePriceFeed.js → updates/isUpdatablePriceFeed.js} +1 -1
  71. package/dist/cjs/onchain/market/pricefeeds/updates/updatableDependencies.js +14 -0
  72. package/dist/cjs/onchain/market/rwa/RWARegistry.js +4 -7
  73. package/dist/cjs/onchain/market/rwa/index.js +1 -0
  74. package/dist/cjs/onchain/market/rwa/midas/MidasDegenNFT.js +45 -5
  75. package/dist/cjs/onchain/market/rwa/securitize/SecuritizeDegenNFT.js +56 -12
  76. package/dist/cjs/onchain/market/rwa/securitize/SecuritizeRWAFactory.js +0 -37
  77. package/dist/cjs/onchain/opportunities/MultichainOpportunitiesService.js +8 -2
  78. package/dist/cjs/onchain/opportunities/OpportunitiesService.js +16 -4
  79. package/dist/cjs/onchain/positions/calcHealthFactor.js +3 -3
  80. package/dist/cjs/onchain/preview/index.js +2 -0
  81. package/dist/cjs/onchain/preview/parse/parseRWAFactoryOperationCalldata.js +2 -2
  82. package/dist/cjs/onchain/preview/preview/index.js +2 -0
  83. package/dist/cjs/onchain/preview/preview/midasGreenlistsAccount.js +17 -0
  84. package/dist/cjs/onchain/preview/preview/previewOpenStrategyPosition.js +13 -16
  85. package/dist/cjs/onchain/preview/preview/previewOperation.js +19 -11
  86. package/dist/cjs/onchain/preview/preview/replayMulticall.js +4 -3
  87. package/dist/cjs/onchain/validation/bundles/checkCollateralFunding.js +3 -3
  88. package/dist/cjs/onchain/validation/bundles/checkCreditOperation.js +11 -9
  89. package/dist/cjs/onchain/validation/bundles/{checkDraw.js → checkIncreaseDebt.js} +10 -10
  90. package/dist/cjs/onchain/validation/bundles/{checkQuotasAsked.js → checkIncreaseQuota.js} +3 -3
  91. package/dist/cjs/onchain/validation/bundles/checkMidasAccountGreenlist.js +44 -0
  92. package/dist/cjs/onchain/validation/bundles/checkRWAOpenRequirements.js +9 -9
  93. package/dist/cjs/onchain/validation/bundles/checkRWAOpening.js +18 -8
  94. package/dist/cjs/onchain/validation/bundles/index.js +6 -4
  95. package/dist/cjs/onchain/validation/checkOperation.js +0 -1
  96. package/dist/cjs/onchain/validation/checks/checkBorrowLimit.js +1 -1
  97. package/dist/cjs/onchain/validation/checks/checkPoolLiquidity.js +1 -1
  98. package/dist/cjs/onchain/validation/checks/checkReservePriceLimited.js +30 -0
  99. package/dist/cjs/onchain/validation/checks/index.js +2 -0
  100. package/dist/cjs/onchain/validation/index.js +8 -4
  101. package/dist/cjs/permissionless/utils/price-update/get-price-update-tx.js +2 -2
  102. package/dist/cjs/permissionless/utils/price-update/get-updatable-feeds.js +2 -2
  103. package/dist/cjs/sdk/execute/ExecuteApi.js +67 -7
  104. package/dist/cjs/sdk/opportunities/OpportunitiesNamespace.js +9 -3
  105. package/dist/cjs/sdk/prepare/PrepareApi.js +89 -14
  106. package/dist/esm/dev/abi.js +14 -15
  107. package/dist/esm/dev/claimFromFaucet.js +4 -8
  108. package/dist/esm/dev/createAnvilClient.js +36 -19
  109. package/dist/esm/dev/index.js +4 -4
  110. package/dist/esm/dev/kycUtils.js +66 -59
  111. package/dist/esm/dev/midasUtils.js +112 -18
  112. package/dist/esm/dev/securitizeUtils.js +84 -44
  113. package/dist/esm/dev/withdrawalUtils.js +3 -6
  114. package/dist/esm/model/errors/index.js +2 -2
  115. package/dist/esm/model/errors/operation-errors.js +18 -2
  116. package/dist/esm/model/index.js +4 -4
  117. package/dist/esm/model/rwa.js +4 -4
  118. package/dist/esm/model/rwa.schema.js +5 -5
  119. package/dist/esm/offchain/opportunities/OffchainOpportunities.js +1 -1
  120. package/dist/esm/onchain/OnchainSDK.js +3 -3
  121. package/dist/esm/onchain/accounts/CreditAccountsServiceV310.js +2 -17
  122. package/dist/esm/onchain/accounts/intents/borrow.js +138 -0
  123. package/dist/esm/onchain/accounts/intents/collateral-valuation.js +40 -0
  124. package/dist/esm/onchain/accounts/intents/guards.js +15 -3
  125. package/dist/esm/onchain/accounts/intents/index.js +107 -20
  126. package/dist/esm/onchain/accounts/intents/leverage-band.js +2 -12
  127. package/dist/esm/onchain/accounts/intents/maxBorrow.js +87 -0
  128. package/dist/esm/onchain/accounts/intents/maxWithdrawCollateral.js +15 -41
  129. package/dist/esm/onchain/accounts/intents/open-strategy.js +8 -46
  130. package/dist/esm/onchain/accounts/intents/operations.js +0 -1
  131. package/dist/esm/onchain/accounts/intents/realize.js +61 -4
  132. package/dist/esm/onchain/accounts/intents/tail.js +1 -1
  133. package/dist/esm/onchain/accounts/intents/testing/sdk-mock.js +1 -0
  134. package/dist/esm/onchain/accounts/intents/utils/common.js +19 -1
  135. package/dist/esm/onchain/accounts/intents/utils/credit-account-slice.js +21 -1
  136. package/dist/esm/onchain/accounts/intents/utils/index.js +3 -3
  137. package/dist/esm/onchain/accounts/intents/utils/price-impact.js +12 -9
  138. package/dist/esm/onchain/accounts/intents/utils/router-path.js +4 -5
  139. package/dist/esm/onchain/accounts/intents/withdraw-limits.js +95 -0
  140. package/dist/esm/onchain/accounts/liquidations/LiquidationsService.js +1 -1
  141. package/dist/esm/onchain/constants/address-provider.js +1 -2
  142. package/dist/esm/onchain/constants/index.js +2 -2
  143. package/dist/esm/onchain/core/createAddressProvider.js +2 -5
  144. package/dist/esm/onchain/index.js +32 -24
  145. package/dist/esm/onchain/market/adapters/abi/conctructorAbi.js +2 -2
  146. package/dist/esm/onchain/market/adapters/contracts/AbstractAdapter.js +6 -0
  147. package/dist/esm/onchain/market/adapters/contracts/MidasGatewayAdapterContract.js +50 -6
  148. package/dist/esm/onchain/market/credit/CreditSuite.js +26 -9
  149. package/dist/esm/onchain/market/index.js +26 -21
  150. package/dist/esm/onchain/market/oracle/PriceOracleBaseContract.js +1 -1
  151. package/dist/esm/onchain/market/pricefeeds/AbstractPriceFeed.js +0 -5
  152. package/dist/esm/onchain/market/pricefeeds/PriceFeedRegistry.js +126 -0
  153. package/dist/esm/onchain/market/pricefeeds/{BalancerStablePriceFeed.js → feeds/BalancerStablePriceFeed.js} +4 -4
  154. package/dist/esm/onchain/market/pricefeeds/{BalancerWeightedPriceFeed.js → feeds/BalancerWeightedPriceFeed.js} +4 -4
  155. package/dist/esm/onchain/market/pricefeeds/{BoundedPriceFeed.js → feeds/BoundedPriceFeed.js} +4 -4
  156. package/dist/esm/onchain/market/pricefeeds/{CompositePriceFeed.js → feeds/CompositePriceFeed.js} +4 -4
  157. package/dist/esm/onchain/market/pricefeeds/{ConstantPriceFeed.js → feeds/ConstantPriceFeed.js} +3 -3
  158. package/dist/esm/onchain/market/pricefeeds/{CurveCryptoPriceFeed.js → feeds/CurveCryptoPriceFeed.js} +4 -4
  159. package/dist/esm/onchain/market/pricefeeds/{CurveStablePriceFeed.js → feeds/CurveStablePriceFeed.js} +4 -4
  160. package/dist/esm/onchain/market/pricefeeds/{CurveUSDPriceFeed.js → feeds/CurveUSDPriceFeed.js} +4 -4
  161. package/dist/esm/onchain/market/pricefeeds/{Erc4626PriceFeed.js → feeds/Erc4626PriceFeed.js} +4 -4
  162. package/dist/esm/onchain/market/pricefeeds/{ExternalPriceFeed.js → feeds/ExternalPriceFeed.js} +4 -4
  163. package/dist/esm/onchain/market/pricefeeds/{MellowLRTPriceFeed.js → feeds/MellowLRTPriceFeed.js} +4 -4
  164. package/dist/esm/onchain/market/pricefeeds/{PendleTWAPPTPriceFeed.js → feeds/PendleTWAPPTPriceFeed.js} +4 -4
  165. package/dist/esm/onchain/market/pricefeeds/{PythPriceFeed.js → feeds/PythPriceFeed.js} +3 -3
  166. package/dist/esm/onchain/market/pricefeeds/{RedstonePriceFeed.js → feeds/RedstonePriceFeed.js} +6 -6
  167. package/dist/esm/onchain/market/pricefeeds/{WstETHPriceFeed.js → feeds/WstETHPriceFeed.js} +4 -4
  168. package/dist/esm/onchain/market/pricefeeds/{YearnPriceFeed.js → feeds/YearnPriceFeed.js} +4 -4
  169. package/dist/esm/onchain/market/pricefeeds/{ZeroPriceFeed.js → feeds/ZeroPriceFeed.js} +4 -4
  170. package/dist/esm/onchain/market/pricefeeds/feeds/index.js +18 -0
  171. package/dist/esm/onchain/market/pricefeeds/index.js +27 -21
  172. package/dist/esm/onchain/market/pricefeeds/updates/UpdatablePriceFeedRegistry.js +188 -0
  173. package/dist/esm/onchain/market/pricefeeds/{getRawPriceUpdates.js → updates/getRawPriceUpdates.js} +2 -2
  174. package/dist/esm/onchain/market/pricefeeds/updates/index.js +5 -1
  175. package/dist/esm/onchain/market/pricefeeds/{isUpdatablePriceFeed.js → updates/isUpdatablePriceFeed.js} +1 -1
  176. package/dist/esm/onchain/market/pricefeeds/updates/updatableDependencies.js +13 -0
  177. package/dist/esm/onchain/market/rwa/RWARegistry.js +4 -8
  178. package/dist/esm/onchain/market/rwa/index.js +2 -2
  179. package/dist/esm/onchain/market/rwa/midas/MidasDegenNFT.js +45 -5
  180. package/dist/esm/onchain/market/rwa/securitize/SecuritizeDegenNFT.js +55 -10
  181. package/dist/esm/onchain/market/rwa/securitize/SecuritizeRWAFactory.js +0 -37
  182. package/dist/esm/onchain/opportunities/MultichainOpportunitiesService.js +8 -2
  183. package/dist/esm/onchain/opportunities/OpportunitiesService.js +16 -4
  184. package/dist/esm/onchain/positions/calcHealthFactor.js +3 -3
  185. package/dist/esm/onchain/preview/index.js +2 -1
  186. package/dist/esm/onchain/preview/parse/parseRWAFactoryOperationCalldata.js +2 -2
  187. package/dist/esm/onchain/preview/preview/index.js +2 -1
  188. package/dist/esm/onchain/preview/preview/midasGreenlistsAccount.js +16 -0
  189. package/dist/esm/onchain/preview/preview/previewOpenStrategyPosition.js +14 -17
  190. package/dist/esm/onchain/preview/preview/previewOperation.js +19 -11
  191. package/dist/esm/onchain/preview/preview/replayMulticall.js +4 -3
  192. package/dist/esm/onchain/validation/bundles/checkCollateralFunding.js +3 -3
  193. package/dist/esm/onchain/validation/bundles/checkCreditOperation.js +11 -9
  194. package/dist/esm/onchain/validation/bundles/checkIncreaseDebt.js +27 -0
  195. package/dist/esm/onchain/validation/bundles/{checkQuotasAsked.js → checkIncreaseQuota.js} +3 -3
  196. package/dist/esm/onchain/validation/bundles/checkMidasAccountGreenlist.js +43 -0
  197. package/dist/esm/onchain/validation/bundles/checkRWAOpenRequirements.js +9 -9
  198. package/dist/esm/onchain/validation/bundles/checkRWAOpening.js +18 -8
  199. package/dist/esm/onchain/validation/bundles/index.js +4 -3
  200. package/dist/esm/onchain/validation/checkOperation.js +0 -1
  201. package/dist/esm/onchain/validation/checks/checkBorrowLimit.js +1 -1
  202. package/dist/esm/onchain/validation/checks/checkPoolLiquidity.js +1 -1
  203. package/dist/esm/onchain/validation/checks/checkReservePriceLimited.js +29 -0
  204. package/dist/esm/onchain/validation/checks/index.js +2 -1
  205. package/dist/esm/onchain/validation/index.js +5 -3
  206. package/dist/esm/permissionless/utils/price-update/get-price-update-tx.js +1 -1
  207. package/dist/esm/permissionless/utils/price-update/get-updatable-feeds.js +1 -1
  208. package/dist/esm/sdk/execute/ExecuteApi.js +67 -7
  209. package/dist/esm/sdk/opportunities/OpportunitiesNamespace.js +9 -3
  210. package/dist/esm/sdk/prepare/PrepareApi.js +94 -19
  211. package/dist/types/dev/abi.d.ts +13 -15
  212. package/dist/types/dev/claimFromFaucet.d.ts +0 -1
  213. package/dist/types/dev/createAnvilClient.d.ts +10 -3
  214. package/dist/types/dev/index.d.ts +4 -4
  215. package/dist/types/dev/kycUtils.d.ts +15 -24
  216. package/dist/types/dev/midasUtils.d.ts +35 -4
  217. package/dist/types/dev/securitizeUtils.d.ts +3 -9
  218. package/dist/types/model/errors/index.d.ts +2 -2
  219. package/dist/types/model/errors/operation-errors.d.ts +62 -7
  220. package/dist/types/model/index.d.ts +5 -5
  221. package/dist/types/model/opportunities.d.ts +6 -7
  222. package/dist/types/model/previews.d.ts +25 -19
  223. package/dist/types/model/rwa.d.ts +47 -27
  224. package/dist/types/model/rwa.schema.d.ts +3 -3
  225. package/dist/types/offchain/opportunities/OffchainOpportunities.d.ts +1 -2
  226. package/dist/types/offchain/opportunities/types.d.ts +1 -4
  227. package/dist/types/onchain/OnchainSDK.d.ts +2 -2
  228. package/dist/types/onchain/accounts/index.d.ts +5 -4
  229. package/dist/types/onchain/accounts/intents/borrow.d.ts +141 -0
  230. package/dist/types/onchain/accounts/intents/collateral-valuation.d.ts +42 -0
  231. package/dist/types/onchain/accounts/intents/guards.d.ts +18 -2
  232. package/dist/types/onchain/accounts/intents/index.d.ts +103 -15
  233. package/dist/types/onchain/accounts/intents/maxBorrow.d.ts +54 -0
  234. package/dist/types/onchain/accounts/intents/maxWithdrawCollateral.d.ts +3 -8
  235. package/dist/types/onchain/accounts/intents/open-strategy.d.ts +3 -17
  236. package/dist/types/onchain/accounts/intents/testing/sdk-mock.d.ts +2 -0
  237. package/dist/types/onchain/accounts/intents/tests/open-strategy.fixtures.d.ts +2 -2
  238. package/dist/types/onchain/accounts/intents/types.d.ts +51 -6
  239. package/dist/types/onchain/accounts/intents/utils/common.d.ts +15 -1
  240. package/dist/types/onchain/accounts/intents/utils/credit-account-slice.d.ts +14 -1
  241. package/dist/types/onchain/accounts/intents/utils/index.d.ts +3 -3
  242. package/dist/types/onchain/accounts/intents/utils/price-impact.d.ts +4 -1
  243. package/dist/types/onchain/accounts/intents/utils/router-path.d.ts +2 -5
  244. package/dist/types/onchain/accounts/intents/withdraw-limits.d.ts +80 -0
  245. package/dist/types/onchain/accounts/types.d.ts +4 -2
  246. package/dist/types/onchain/constants/address-provider.d.ts +1 -2
  247. package/dist/types/onchain/constants/index.d.ts +2 -2
  248. package/dist/types/onchain/index.d.ts +40 -31
  249. package/dist/types/onchain/market/adapters/contracts/AbstractAdapter.d.ts +6 -0
  250. package/dist/types/onchain/market/adapters/contracts/MidasGatewayAdapterContract.d.ts +20 -4
  251. package/dist/types/onchain/market/adapters/types.d.ts +8 -0
  252. package/dist/types/onchain/market/credit/CreditSuite.d.ts +13 -3
  253. package/dist/types/onchain/market/index.d.ts +29 -24
  254. package/dist/types/onchain/market/oracle/PriceOracleBaseContract.d.ts +2 -1
  255. package/dist/types/onchain/market/oracle/types.d.ts +2 -1
  256. package/dist/types/onchain/market/pool/types.d.ts +1 -1
  257. package/dist/types/onchain/market/pricefeeds/AbstractPriceFeed.d.ts +1 -2
  258. package/dist/types/onchain/market/pricefeeds/PriceFeedRegistry.d.ts +60 -0
  259. package/dist/types/onchain/market/pricefeeds/feeds/BalancerStablePriceFeed.d.ts +12 -0
  260. package/dist/types/onchain/market/pricefeeds/{BalancerWeightedPriceFeed.d.ts → feeds/BalancerWeightedPriceFeed.d.ts} +7 -7
  261. package/dist/types/onchain/market/pricefeeds/feeds/BoundedPriceFeed.d.ts +15 -0
  262. package/dist/types/onchain/market/pricefeeds/{CompositePriceFeed.d.ts → feeds/CompositePriceFeed.d.ts} +6 -6
  263. package/dist/types/onchain/market/pricefeeds/{ConstantPriceFeed.d.ts → feeds/ConstantPriceFeed.d.ts} +6 -6
  264. package/dist/types/onchain/market/pricefeeds/feeds/CurveCryptoPriceFeed.d.ts +12 -0
  265. package/dist/types/onchain/market/pricefeeds/feeds/CurveStablePriceFeed.d.ts +12 -0
  266. package/dist/types/onchain/market/pricefeeds/feeds/CurveUSDPriceFeed.d.ts +12 -0
  267. package/dist/types/onchain/market/pricefeeds/feeds/Erc4626PriceFeed.d.ts +12 -0
  268. package/dist/types/onchain/market/pricefeeds/feeds/ExternalPriceFeed.d.ts +11 -0
  269. package/dist/types/onchain/market/pricefeeds/feeds/MellowLRTPriceFeed.d.ts +12 -0
  270. package/dist/types/onchain/market/pricefeeds/{PendleTWAPPTPriceFeed.d.ts → feeds/PendleTWAPPTPriceFeed.d.ts} +3 -3
  271. package/dist/types/onchain/market/pricefeeds/{PythPriceFeed.d.ts → feeds/PythPriceFeed.d.ts} +3 -3
  272. package/dist/types/onchain/market/pricefeeds/{RedstonePriceFeed.d.ts → feeds/RedstonePriceFeed.d.ts} +9 -9
  273. package/dist/types/onchain/market/pricefeeds/feeds/WstETHPriceFeed.d.ts +12 -0
  274. package/dist/types/onchain/market/pricefeeds/feeds/YearnPriceFeed.d.ts +12 -0
  275. package/dist/types/onchain/market/pricefeeds/feeds/ZeroPriceFeed.d.ts +11 -0
  276. package/dist/types/onchain/market/pricefeeds/feeds/index.d.ts +18 -0
  277. package/dist/types/onchain/market/pricefeeds/index.d.ts +28 -22
  278. package/dist/types/onchain/market/pricefeeds/types.d.ts +1 -31
  279. package/dist/types/onchain/market/pricefeeds/updates/RedstoneUpdater.d.ts +1 -1
  280. package/dist/types/onchain/market/pricefeeds/updates/UpdatablePriceFeedRegistry.d.ts +106 -0
  281. package/dist/types/onchain/market/pricefeeds/updates/getRawPriceUpdates.d.ts +6 -0
  282. package/dist/types/onchain/market/pricefeeds/updates/index.d.ts +7 -3
  283. package/dist/types/onchain/market/pricefeeds/updates/isUpdatablePriceFeed.d.ts +6 -0
  284. package/dist/types/onchain/market/pricefeeds/updates/types.d.ts +56 -2
  285. package/dist/types/onchain/market/pricefeeds/updates/updatableDependencies.d.ts +10 -0
  286. package/dist/types/onchain/market/rwa/RWARegistry.d.ts +2 -1
  287. package/dist/types/onchain/market/rwa/index.d.ts +3 -3
  288. package/dist/types/onchain/market/rwa/midas/MidasDegenNFT.d.ts +19 -4
  289. package/dist/types/onchain/market/rwa/securitize/SecuritizeDegenNFT.d.ts +24 -4
  290. package/dist/types/onchain/market/rwa/securitize/SecuritizeRWAFactory.d.ts +2 -14
  291. package/dist/types/onchain/market/rwa/types.d.ts +39 -37
  292. package/dist/types/onchain/opportunities/MultichainOpportunitiesService.d.ts +5 -1
  293. package/dist/types/onchain/opportunities/OpportunitiesService.d.ts +10 -3
  294. package/dist/types/onchain/opportunities/types.d.ts +6 -1
  295. package/dist/types/onchain/preview/index.d.ts +2 -1
  296. package/dist/types/onchain/preview/preview/index.d.ts +2 -1
  297. package/dist/types/onchain/preview/preview/midasGreenlistsAccount.d.ts +13 -0
  298. package/dist/types/onchain/preview/preview/previewOpenStrategyPosition.d.ts +5 -3
  299. package/dist/types/onchain/preview/preview/replayMulticall.d.ts +8 -7
  300. package/dist/types/onchain/validation/bundles/checkCreditOperation.d.ts +5 -4
  301. package/dist/types/onchain/validation/bundles/{checkDraw.d.ts → checkIncreaseDebt.d.ts} +7 -7
  302. package/dist/types/onchain/validation/bundles/{checkQuotasAsked.d.ts → checkIncreaseQuota.d.ts} +3 -3
  303. package/dist/types/onchain/validation/bundles/checkMidasAccountGreenlist.d.ts +22 -0
  304. package/dist/types/onchain/validation/bundles/checkRWAOpenRequirements.d.ts +2 -2
  305. package/dist/types/onchain/validation/bundles/checkRWAOpening.d.ts +9 -7
  306. package/dist/types/onchain/validation/bundles/index.d.ts +5 -4
  307. package/dist/types/onchain/validation/checks/checkBorrowLimit.d.ts +1 -1
  308. package/dist/types/onchain/validation/checks/checkDebtLimits.d.ts +2 -2
  309. package/dist/types/onchain/validation/checks/checkPoolLiquidity.d.ts +1 -1
  310. package/dist/types/onchain/validation/checks/checkReservePriceLimited.d.ts +31 -0
  311. package/dist/types/onchain/validation/checks/index.d.ts +2 -1
  312. package/dist/types/onchain/validation/index.d.ts +6 -4
  313. package/dist/types/onchain/validation/raise.d.ts +2 -2
  314. package/dist/types/sdk/execute/index.d.ts +2 -2
  315. package/dist/types/sdk/execute/types.d.ts +48 -6
  316. package/dist/types/sdk/index.d.ts +5 -4
  317. package/dist/types/sdk/opportunities/OpportunitiesNamespace.d.ts +5 -1
  318. package/dist/types/sdk/opportunities/types.d.ts +9 -3
  319. package/dist/types/sdk/prepare/PrepareApi.d.ts +16 -4
  320. package/dist/types/sdk/prepare/index.d.ts +4 -3
  321. package/dist/types/sdk/prepare/types.d.ts +200 -66
  322. package/package.json +1 -1
  323. package/dist/cjs/onchain/accounts/utils/midasUtils.js +0 -70
  324. package/dist/cjs/onchain/market/pricefeeds/PriceFeedsRegister.js +0 -301
  325. package/dist/cjs/plugins/degen-distributors/DegenDistributorsPlugin.js +0 -61
  326. package/dist/cjs/plugins/degen-distributors/index.js +0 -4
  327. package/dist/cjs/plugins/degen-distributors/package.json +0 -1
  328. package/dist/cjs/plugins/degen-distributors/types.js +0 -1
  329. package/dist/cjs/plugins/delayed-withdrawal/DelayedWithdrawalPlugin.js +0 -114
  330. package/dist/cjs/plugins/delayed-withdrawal/index.js +0 -4
  331. package/dist/cjs/plugins/delayed-withdrawal/package.json +0 -1
  332. package/dist/cjs/plugins/delayed-withdrawal/types.js +0 -1
  333. package/dist/esm/onchain/accounts/utils/midasUtils.js +0 -69
  334. package/dist/esm/onchain/market/pricefeeds/PriceFeedsRegister.js +0 -300
  335. package/dist/esm/onchain/validation/bundles/checkDraw.js +0 -27
  336. package/dist/esm/plugins/degen-distributors/DegenDistributorsPlugin.js +0 -60
  337. package/dist/esm/plugins/degen-distributors/index.js +0 -3
  338. package/dist/esm/plugins/degen-distributors/package.json +0 -1
  339. package/dist/esm/plugins/degen-distributors/types.js +0 -1
  340. package/dist/esm/plugins/delayed-withdrawal/DelayedWithdrawalPlugin.js +0 -113
  341. package/dist/esm/plugins/delayed-withdrawal/index.js +0 -3
  342. package/dist/esm/plugins/delayed-withdrawal/package.json +0 -1
  343. package/dist/esm/plugins/delayed-withdrawal/types.js +0 -1
  344. package/dist/types/onchain/accounts/utils/midasUtils.d.ts +0 -38
  345. package/dist/types/onchain/market/pricefeeds/BalancerStablePriceFeed.d.ts +0 -12
  346. package/dist/types/onchain/market/pricefeeds/BoundedPriceFeed.d.ts +0 -15
  347. package/dist/types/onchain/market/pricefeeds/CurveCryptoPriceFeed.d.ts +0 -12
  348. package/dist/types/onchain/market/pricefeeds/CurveStablePriceFeed.d.ts +0 -12
  349. package/dist/types/onchain/market/pricefeeds/CurveUSDPriceFeed.d.ts +0 -12
  350. package/dist/types/onchain/market/pricefeeds/Erc4626PriceFeed.d.ts +0 -12
  351. package/dist/types/onchain/market/pricefeeds/ExternalPriceFeed.d.ts +0 -11
  352. package/dist/types/onchain/market/pricefeeds/MellowLRTPriceFeed.d.ts +0 -12
  353. package/dist/types/onchain/market/pricefeeds/PriceFeedsRegister.d.ts +0 -180
  354. package/dist/types/onchain/market/pricefeeds/WstETHPriceFeed.d.ts +0 -12
  355. package/dist/types/onchain/market/pricefeeds/YearnPriceFeed.d.ts +0 -12
  356. package/dist/types/onchain/market/pricefeeds/ZeroPriceFeed.d.ts +0 -11
  357. package/dist/types/onchain/market/pricefeeds/getRawPriceUpdates.d.ts +0 -5
  358. package/dist/types/onchain/market/pricefeeds/isUpdatablePriceFeed.d.ts +0 -5
  359. package/dist/types/plugins/degen-distributors/DegenDistributorsPlugin.d.ts +0 -25
  360. package/dist/types/plugins/degen-distributors/index.d.ts +0 -3
  361. package/dist/types/plugins/degen-distributors/types.d.ts +0 -8
  362. package/dist/types/plugins/delayed-withdrawal/DelayedWithdrawalPlugin.d.ts +0 -25
  363. package/dist/types/plugins/delayed-withdrawal/index.d.ts +0 -3
  364. package/dist/types/plugins/delayed-withdrawal/types.d.ts +0 -10
@@ -129,6 +129,12 @@ var AbstractAdapterContract = class extends require_onchain_base_BaseContract.Ba
129
129
  return false;
130
130
  }
131
131
  /**
132
+ * {@inheritDoc IAdapterContract.openingCalls}
133
+ */
134
+ async openingCalls() {
135
+ return [];
136
+ }
137
+ /**
132
138
  * Applies the balance changes of a decoded adapter call to the running
133
139
  * balances, mutating them in place. Overrides should express changes via
134
140
  * {@link setLeftover} (diff-style calls) and {@link spendExact}
@@ -14,6 +14,12 @@ const receiveGreenlistCalldata = (0, viem.encodeFunctionData)({
14
14
  abi,
15
15
  functionName: "receiveGreenlist"
16
16
  });
17
+ const MGLOBAL_MTOKEN = (0, viem.getAddress)("0x7433806912Eae67919e66aea853d46Fa0aef98A8");
18
+ /**
19
+ * Permissionless gateways have no greenlist and reject `receiveGreenlist`,
20
+ * see MidasMode in integrations-v3
21
+ */
22
+ const MIDAS_MODE_PERMISSIONLESS = 0;
17
23
  var MidasGatewayAdapterContract = class extends require_onchain_market_adapters_contracts_AbstractAdapter.AbstractAdapterContract {
18
24
  #version;
19
25
  #gateway;
@@ -21,6 +27,7 @@ var MidasGatewayAdapterContract = class extends require_onchain_market_adapters_
21
27
  #quoteToken;
22
28
  #phantomToken;
23
29
  #referrerId;
30
+ #mode;
24
31
  constructor(sdk, args) {
25
32
  super(sdk, {
26
33
  ...args,
@@ -126,6 +133,35 @@ var MidasGatewayAdapterContract = class extends require_onchain_market_adapters_
126
133
  if (this.#referrerId === void 0) throw new require_onchain_base_errors.MissingSerializedParamsError("referrerId");
127
134
  return this.#referrerId;
128
135
  }
136
+ /**
137
+ * Gateway `mode` is immutable on-chain, so the first read is reused.
138
+ */
139
+ async mode() {
140
+ if (!this.#mode) this.#mode = this.client.readContract({
141
+ address: this.targetContract,
142
+ abi: this.protocolAbi,
143
+ functionName: "mode"
144
+ });
145
+ return this.#mode;
146
+ }
147
+ /**
148
+ * {@inheritDoc IAdapterContract.openingCalls}
149
+ */
150
+ async openingCalls() {
151
+ if ((0, viem.isAddressEqual)(this.mToken, MGLOBAL_MTOKEN)) {
152
+ this.logger?.debug(`midas: skipping receiveGreenlist for mGLOBAL ${this.mToken}`);
153
+ return [];
154
+ }
155
+ if (await this.mode() === MIDAS_MODE_PERMISSIONLESS) {
156
+ this.logger?.debug(`midas: gateway ${this.targetContract} is permissionless, nothing to greenlist`);
157
+ return [];
158
+ }
159
+ this.logger?.debug(`midas: greenlisting the credit account via gateway adapter ${this.address}`);
160
+ return [{
161
+ target: this.address,
162
+ callData: receiveGreenlistCalldata
163
+ }];
164
+ }
129
165
  stateHuman(raw) {
130
166
  return {
131
167
  ...super.stateHuman(raw),
@@ -170,14 +206,22 @@ var MidasGatewayAdapterContract = class extends require_onchain_market_adapters_
170
206
  return { redeemer };
171
207
  }
172
208
  /**
173
- * `receiveGreenlist()` is prepended by `prependMidasReceiveGreenlist`
174
- * before the balance bracket when the multicall mints a permissioned
175
- * mToken: it only greenlists the credit account and is balance-neutral,
176
- * so it is legal outside a bracket and leaves balances untouched.
209
+ * Whether `calldata` is `receiveGreenlist()`, the call that grants the
210
+ * Midas greenlisted role to the credit account.
177
211
  */
178
- replayOutOfBracketCall(_balances, calldata) {
212
+ isReceiveGreenlist(calldata) {
179
213
  return calldata === receiveGreenlistCalldata;
180
214
  }
215
+ /**
216
+ * `receiveGreenlist()` is prepended by {@link openingCalls} before the
217
+ * balance bracket when a permissioned mToken is minted: it only grants
218
+ * the Midas greenlisted role to the credit account and is
219
+ * balance-neutral, so it is legal outside a bracket and leaves balances
220
+ * untouched.
221
+ */
222
+ replayOutOfBracketCall(_balances, calldata) {
223
+ return this.isReceiveGreenlist(calldata);
224
+ }
181
225
  applyBalanceChanges(balances, decoded) {
182
226
  switch (decoded.functionName) {
183
227
  case "depositInstantDiff": {
@@ -8,8 +8,6 @@ require("../../utils/index.js");
8
8
  const require_onchain_base_SDKConstruct = require("../../base/SDKConstruct.js");
9
9
  require("../../base/index.js");
10
10
  const require_onchain_market_math = require("../math.js");
11
- const require_model_rwa = require("../../../model/rwa.js");
12
- require("../../../model/index.js");
13
11
  const require_onchain_market_rwa_createDegenNFT = require("../rwa/createDegenNFT.js");
14
12
  const require_onchain_market_strategyName = require("../strategyName.js");
15
13
  const require_onchain_market_credit_collateralUtils = require("./collateralUtils.js");
@@ -126,25 +124,37 @@ var CreditSuite = class extends require_onchain_base_SDKConstruct.SDKConstruct {
126
124
  degenNFT() {
127
125
  const address = this.creditFacade.degenNFT;
128
126
  if ((0, viem.isAddressEqual)(address, "0x0000000000000000000000000000000000000000")) return Promise.resolve(void 0);
127
+ const factoryNft = this.rwaFactory?.degenNFT;
128
+ if (factoryNft && (0, viem.isAddressEqual)(factoryNft.address, address)) return Promise.resolve(factoryNft);
129
129
  if (!this.#degenNFT) this.#degenNFT = require_onchain_market_rwa_createDegenNFT.createDegenNFT(this.sdk, address);
130
130
  return this.#degenNFT;
131
131
  }
132
132
  /**
133
- * What `wallet` still has to do before the facade lets it open an account;
134
- * `null` when nothing (no degen NFT, not a KYC gate, or already eligible).
133
+ * The KYC gate of this suite's strategy; `null` when there is none.
134
+ * Wallet-independent.
135
135
  */
136
- async kycRequirement(wallet, targetCollateral) {
136
+ async kycRequirement(targetCollateral) {
137
137
  const nft = await this.degenNFT();
138
138
  if (!nft) return null;
139
- const { eligible, token } = await nft.checkKyc(wallet, targetCollateral);
140
- if (eligible) return null;
139
+ const tokens = await nft.getTokens();
140
+ const token = tokens.find((t) => (0, viem.isAddressEqual)(t, targetCollateral)) ?? tokens[0];
141
141
  return {
142
142
  protocol: nft.protocol,
143
- token: this.tokensMeta.getToken(token),
144
- registrationLink: require_model_rwa.KYC_REGISTRATION_LINKS[nft.protocol]
143
+ token: token ? this.tokensMeta.getToken(token) : void 0,
144
+ registrationLink: nft.registrationLink
145
145
  };
146
146
  }
147
147
  /**
148
+ * Whether `wallet` may open this suite's strategy today; `true` when there
149
+ * is no KYC gate.
150
+ */
151
+ async isEligibleForStrategy(wallet, targetCollateral) {
152
+ const nft = await this.degenNFT();
153
+ if (!nft) return true;
154
+ const requirements = await nft.getOpenAccountRequirements(wallet, { tokenOutAddress: targetCollateral });
155
+ return nft.isRegistered(requirements);
156
+ }
157
+ /**
148
158
  * Builds a transaction that executes a multicall on one of this suite's
149
159
  * credit accounts.
150
160
  *
@@ -169,6 +179,13 @@ var CreditSuite = class extends require_onchain_base_SDKConstruct.SDKConstruct {
169
179
  return rwaFactory ? rwaFactory.openCreditAccount(this.creditManager.address, calls, rwaOptions) : this.creditFacade.openCreditAccount(to, calls, referralCode ?? 0n);
170
180
  }
171
181
  /**
182
+ * Calls to run first in the multicall of a freshly opened account on this
183
+ * suite; use before {@link openCreditAccountTx}.
184
+ */
185
+ async openingCalls() {
186
+ return (await Promise.all(this.creditManager.adapters.values().map((a) => a.openingCalls()))).flat();
187
+ }
188
+ /**
172
189
  * Router configured for this credit suite.
173
190
  */
174
191
  get router() {
@@ -99,29 +99,34 @@ const require_onchain_market_credit_CreditSuite = require("./credit/CreditSuite.
99
99
  const require_onchain_market_credit_expectedBalanceDeltas = require("./credit/expectedBalanceDeltas.js");
100
100
  require("./credit/index.js");
101
101
  const require_onchain_market_oracle_collateralPriceInUnderlying = require("./oracle/collateralPriceInUnderlying.js");
102
- const require_onchain_market_pricefeeds_isUpdatablePriceFeed = require("./pricefeeds/isUpdatablePriceFeed.js");
103
102
  const require_onchain_market_pricefeeds_PriceFeedRef = require("./pricefeeds/PriceFeedRef.js");
104
103
  const require_onchain_market_pricefeeds_AbstractPriceFeed = require("./pricefeeds/AbstractPriceFeed.js");
105
104
  const require_onchain_market_pricefeeds_AbstractLPPriceFeed = require("./pricefeeds/AbstractLPPriceFeed.js");
106
- const require_onchain_market_pricefeeds_BalancerStablePriceFeed = require("./pricefeeds/BalancerStablePriceFeed.js");
107
- const require_onchain_market_pricefeeds_BalancerWeightedPriceFeed = require("./pricefeeds/BalancerWeightedPriceFeed.js");
108
- const require_onchain_market_pricefeeds_BoundedPriceFeed = require("./pricefeeds/BoundedPriceFeed.js");
109
- const require_onchain_market_pricefeeds_CompositePriceFeed = require("./pricefeeds/CompositePriceFeed.js");
110
- const require_onchain_market_pricefeeds_CurveCryptoPriceFeed = require("./pricefeeds/CurveCryptoPriceFeed.js");
111
- const require_onchain_market_pricefeeds_CurveStablePriceFeed = require("./pricefeeds/CurveStablePriceFeed.js");
112
- const require_onchain_market_pricefeeds_CurveUSDPriceFeed = require("./pricefeeds/CurveUSDPriceFeed.js");
113
- const require_onchain_market_pricefeeds_Erc4626PriceFeed = require("./pricefeeds/Erc4626PriceFeed.js");
114
- const require_onchain_market_pricefeeds_ExternalPriceFeed = require("./pricefeeds/ExternalPriceFeed.js");
115
- const require_onchain_market_pricefeeds_getRawPriceUpdates = require("./pricefeeds/getRawPriceUpdates.js");
116
- const require_onchain_market_pricefeeds_MellowLRTPriceFeed = require("./pricefeeds/MellowLRTPriceFeed.js");
117
- const require_onchain_market_pricefeeds_PendleTWAPPTPriceFeed = require("./pricefeeds/PendleTWAPPTPriceFeed.js");
118
- const require_onchain_market_pricefeeds_PythPriceFeed = require("./pricefeeds/PythPriceFeed.js");
119
- const require_onchain_market_pricefeeds_RedstonePriceFeed = require("./pricefeeds/RedstonePriceFeed.js");
105
+ const require_onchain_market_pricefeeds_feeds_BalancerStablePriceFeed = require("./pricefeeds/feeds/BalancerStablePriceFeed.js");
106
+ const require_onchain_market_pricefeeds_feeds_BalancerWeightedPriceFeed = require("./pricefeeds/feeds/BalancerWeightedPriceFeed.js");
107
+ const require_onchain_market_pricefeeds_feeds_BoundedPriceFeed = require("./pricefeeds/feeds/BoundedPriceFeed.js");
108
+ const require_onchain_market_pricefeeds_feeds_CompositePriceFeed = require("./pricefeeds/feeds/CompositePriceFeed.js");
109
+ const require_onchain_market_pricefeeds_feeds_ConstantPriceFeed = require("./pricefeeds/feeds/ConstantPriceFeed.js");
110
+ const require_onchain_market_pricefeeds_feeds_CurveCryptoPriceFeed = require("./pricefeeds/feeds/CurveCryptoPriceFeed.js");
111
+ const require_onchain_market_pricefeeds_feeds_CurveStablePriceFeed = require("./pricefeeds/feeds/CurveStablePriceFeed.js");
112
+ const require_onchain_market_pricefeeds_feeds_CurveUSDPriceFeed = require("./pricefeeds/feeds/CurveUSDPriceFeed.js");
113
+ const require_onchain_market_pricefeeds_feeds_Erc4626PriceFeed = require("./pricefeeds/feeds/Erc4626PriceFeed.js");
114
+ const require_onchain_market_pricefeeds_feeds_ExternalPriceFeed = require("./pricefeeds/feeds/ExternalPriceFeed.js");
115
+ const require_onchain_market_pricefeeds_feeds_MellowLRTPriceFeed = require("./pricefeeds/feeds/MellowLRTPriceFeed.js");
116
+ const require_onchain_market_pricefeeds_feeds_PendleTWAPPTPriceFeed = require("./pricefeeds/feeds/PendleTWAPPTPriceFeed.js");
117
+ const require_onchain_market_pricefeeds_feeds_PythPriceFeed = require("./pricefeeds/feeds/PythPriceFeed.js");
118
+ const require_onchain_market_pricefeeds_feeds_RedstonePriceFeed = require("./pricefeeds/feeds/RedstonePriceFeed.js");
119
+ const require_onchain_market_pricefeeds_feeds_WstETHPriceFeed = require("./pricefeeds/feeds/WstETHPriceFeed.js");
120
+ const require_onchain_market_pricefeeds_feeds_YearnPriceFeed = require("./pricefeeds/feeds/YearnPriceFeed.js");
121
+ const require_onchain_market_pricefeeds_feeds_ZeroPriceFeed = require("./pricefeeds/feeds/ZeroPriceFeed.js");
122
+ const require_onchain_market_pricefeeds_PriceFeedRegistry = require("./pricefeeds/PriceFeedRegistry.js");
120
123
  const require_onchain_market_pricefeeds_updates_fetchRedstonePayloads = require("./pricefeeds/updates/fetchRedstonePayloads.js");
121
- const require_onchain_market_pricefeeds_WstETHPriceFeed = require("./pricefeeds/WstETHPriceFeed.js");
122
- const require_onchain_market_pricefeeds_YearnPriceFeed = require("./pricefeeds/YearnPriceFeed.js");
123
- const require_onchain_market_pricefeeds_ZeroPriceFeed = require("./pricefeeds/ZeroPriceFeed.js");
124
- const require_onchain_market_pricefeeds_PriceFeedsRegister = require("./pricefeeds/PriceFeedsRegister.js");
124
+ const require_onchain_market_pricefeeds_updates_getRawPriceUpdates = require("./pricefeeds/updates/getRawPriceUpdates.js");
125
+ const require_onchain_market_pricefeeds_updates_isUpdatablePriceFeed = require("./pricefeeds/updates/isUpdatablePriceFeed.js");
126
+ const require_onchain_market_pricefeeds_updates_PriceUpdatesCache = require("./pricefeeds/updates/PriceUpdatesCache.js");
127
+ const require_onchain_market_pricefeeds_updates_RedstoneUpdater = require("./pricefeeds/updates/RedstoneUpdater.js");
128
+ const require_onchain_market_pricefeeds_updates_updatableDependencies = require("./pricefeeds/updates/updatableDependencies.js");
129
+ const require_onchain_market_pricefeeds_updates_UpdatablePriceFeedRegistry = require("./pricefeeds/updates/UpdatablePriceFeedRegistry.js");
125
130
  require("./pricefeeds/index.js");
126
131
  const require_onchain_market_oracle_PriceOracleV310Contract = require("./oracle/PriceOracleV310Contract.js");
127
132
  const require_onchain_market_oracle_createPriceOracle = require("./oracle/createPriceOracle.js");
@@ -151,14 +156,15 @@ exports.AbstractLPPriceFeedContract = require_onchain_market_pricefeeds_Abstract
151
156
  exports.AbstractPriceFeedContract = require_onchain_market_pricefeeds_AbstractPriceFeed.AbstractPriceFeedContract;
152
157
  exports.AccountMigratorAdapterContract = require_onchain_market_adapters_contracts_AccountMigratorAdapterContract.AccountMigratorAdapterContract;
153
158
  exports.AdapterType = require_onchain_market_adapters_types.AdapterType;
154
- exports.BalancerStablePriceFeedContract = require_onchain_market_pricefeeds_BalancerStablePriceFeed.BalancerStablePriceFeedContract;
159
+ exports.BalancerStablePriceFeedContract = require_onchain_market_pricefeeds_feeds_BalancerStablePriceFeed.BalancerStablePriceFeedContract;
155
160
  exports.BalancerV3PoolStatus = require_onchain_market_adapters_contracts_BalancerV3RouterAdapterContract.BalancerV3PoolStatus;
156
161
  exports.BalancerV3RouterAdapterContract = require_onchain_market_adapters_contracts_BalancerV3RouterAdapterContract.BalancerV3RouterAdapterContract;
157
162
  exports.BalancerV3WrapperAdapterContract = require_onchain_market_adapters_contracts_BalancerV3WrapperAdapterContract.BalancerV3WrapperAdapterContract;
158
- exports.BalancerWeightedPriceFeedContract = require_onchain_market_pricefeeds_BalancerWeightedPriceFeed.BalancerWeightedPriceFeedContract;
159
- exports.BoundedPriceFeedContract = require_onchain_market_pricefeeds_BoundedPriceFeed.BoundedPriceFeedContract;
163
+ exports.BalancerWeightedPriceFeedContract = require_onchain_market_pricefeeds_feeds_BalancerWeightedPriceFeed.BalancerWeightedPriceFeedContract;
164
+ exports.BoundedPriceFeedContract = require_onchain_market_pricefeeds_feeds_BoundedPriceFeed.BoundedPriceFeedContract;
160
165
  exports.CamelotV3AdapterContract = require_onchain_market_adapters_contracts_CamelotV3AdapterContract.CamelotV3AdapterContract;
161
- exports.CompositePriceFeedContract = require_onchain_market_pricefeeds_CompositePriceFeed.CompositePriceFeedContract;
166
+ exports.CompositePriceFeedContract = require_onchain_market_pricefeeds_feeds_CompositePriceFeed.CompositePriceFeedContract;
167
+ exports.ConstantPriceFeedContract = require_onchain_market_pricefeeds_feeds_ConstantPriceFeed.ConstantPriceFeedContract;
162
168
  exports.ConvexV1BaseRewardPoolAdapterContract = require_onchain_market_adapters_contracts_ConvexV1BaseRewardPoolAdapterContract.ConvexV1BaseRewardPoolAdapterContract;
163
169
  exports.ConvexV1BoosterAdapterContract = require_onchain_market_adapters_contracts_ConvexV1BoosterAdapterContract.ConvexV1BoosterAdapterContract;
164
170
  exports.CreditConfiguratorV310Contract = require_onchain_market_credit_CreditConfiguratorV310Contract.CreditConfiguratorV310Contract;
@@ -169,9 +175,9 @@ exports.CreditSuite = require_onchain_market_credit_CreditSuite.CreditSuite;
169
175
  exports.Curve2AssetsAdapterContract = require_onchain_market_adapters_contracts_Curve2AssetsAdapterContract.Curve2AssetsAdapterContract;
170
176
  exports.Curve3AssetsAdapterContract = require_onchain_market_adapters_contracts_Curve3AssetsAdapterContract.Curve3AssetsAdapterContract;
171
177
  exports.Curve4AssetsAdapterContract = require_onchain_market_adapters_contracts_Curve4AssetsAdapterContract.Curve4AssetsAdapterContract;
172
- exports.CurveCryptoPriceFeedContract = require_onchain_market_pricefeeds_CurveCryptoPriceFeed.CurveCryptoPriceFeedContract;
173
- exports.CurveStablePriceFeedContract = require_onchain_market_pricefeeds_CurveStablePriceFeed.CurveStablePriceFeedContract;
174
- exports.CurveUSDPriceFeedContract = require_onchain_market_pricefeeds_CurveUSDPriceFeed.CurveUSDPriceFeedContract;
178
+ exports.CurveCryptoPriceFeedContract = require_onchain_market_pricefeeds_feeds_CurveCryptoPriceFeed.CurveCryptoPriceFeedContract;
179
+ exports.CurveStablePriceFeedContract = require_onchain_market_pricefeeds_feeds_CurveStablePriceFeed.CurveStablePriceFeedContract;
180
+ exports.CurveUSDPriceFeedContract = require_onchain_market_pricefeeds_feeds_CurveUSDPriceFeed.CurveUSDPriceFeedContract;
175
181
  exports.CurveV1AdapterStETHContract = require_onchain_market_adapters_contracts_CurveV1AdapterStETHContract.CurveV1AdapterStETHContract;
176
182
  exports.CurveV1StableNGAdapterContract = require_onchain_market_adapters_contracts_CurveV1StableNGAdapterContract.CurveV1StableNGAdapterContract;
177
183
  exports.DEFAULT_QUOTA_BUFFER_BPS = require_onchain_market_math.DEFAULT_QUOTA_BUFFER_BPS;
@@ -180,8 +186,8 @@ exports.DEGEN_NFT_SECURITIZE = require_onchain_market_rwa_securitize_constants.D
180
186
  exports.DaiUsdsAdapterContract = require_onchain_market_adapters_contracts_DaiUsdsAdapterContract.DaiUsdsAdapterContract;
181
187
  exports.ERC4626AdapterContract = require_onchain_market_adapters_contracts_ERC4626AdapterContract.ERC4626AdapterContract;
182
188
  exports.ERC4626ReferralAdapterContract = require_onchain_market_adapters_contracts_ERC4626ReferralAdapterContract.ERC4626ReferralAdapterContract;
183
- exports.Erc4626PriceFeedContract = require_onchain_market_pricefeeds_Erc4626PriceFeed.Erc4626PriceFeedContract;
184
- exports.ExternalPriceFeedContract = require_onchain_market_pricefeeds_ExternalPriceFeed.ExternalPriceFeedContract;
189
+ exports.Erc4626PriceFeedContract = require_onchain_market_pricefeeds_feeds_Erc4626PriceFeed.Erc4626PriceFeedContract;
190
+ exports.ExternalPriceFeedContract = require_onchain_market_pricefeeds_feeds_ExternalPriceFeed.ExternalPriceFeedContract;
185
191
  exports.FluidDexAdapterContract = require_onchain_market_adapters_contracts_FluidDexAdapterContract.FluidDexAdapterContract;
186
192
  exports.GaugeContract = require_onchain_market_pool_GaugeContract.GaugeContract;
187
193
  exports.IERC20ZapperContract = require_onchain_market_zapper_IERC20ZapperContract.IERC20ZapperContract;
@@ -198,7 +204,7 @@ exports.MarketSuite = require_onchain_market_MarketSuite.MarketSuite;
198
204
  exports.MellowClaimerAdapterContract = require_onchain_market_adapters_contracts_MellowClaimerAdapterContract.MellowClaimerAdapterContract;
199
205
  exports.MellowDVVAdapterContract = require_onchain_market_adapters_contracts_MellowDVVAdapterContract.MellowDVVAdapterContract;
200
206
  exports.MellowERC4626VaultAdapterContract = require_onchain_market_adapters_contracts_MellowERC4626VaultAdapterContract.MellowERC4626VaultAdapterContract;
201
- exports.MellowLRTPriceFeedContract = require_onchain_market_pricefeeds_MellowLRTPriceFeed.MellowLRTPriceFeedContract;
207
+ exports.MellowLRTPriceFeedContract = require_onchain_market_pricefeeds_feeds_MellowLRTPriceFeed.MellowLRTPriceFeedContract;
202
208
  exports.MellowWrapperAdapterContract = require_onchain_market_adapters_contracts_MellowWrapperAdapterContract.MellowWrapperAdapterContract;
203
209
  exports.MidasDegenNFT = require_onchain_market_rwa_midas_MidasDegenNFT.MidasDegenNFT;
204
210
  exports.MidasGatewayAdapterContract = require_onchain_market_adapters_contracts_MidasGatewayAdapterContract.MidasGatewayAdapterContract;
@@ -211,18 +217,22 @@ exports.PHANTOM_TOKEN_SECURITIZE_REDEMPTION = require_onchain_market_rwa_securit
211
217
  exports.PartialPriceFeedInitError = require_onchain_market_pricefeeds_AbstractPriceFeed.PartialPriceFeedInitError;
212
218
  exports.PendlePairStatus = require_onchain_market_adapters_contracts_PendleRouterAdapterContract.PendlePairStatus;
213
219
  exports.PendleRouterAdapterContract = require_onchain_market_adapters_contracts_PendleRouterAdapterContract.PendleRouterAdapterContract;
214
- exports.PendleTWAPPTPriceFeed = require_onchain_market_pricefeeds_PendleTWAPPTPriceFeed.PendleTWAPPTPriceFeed;
220
+ exports.PendleTWAPPTPriceFeed = require_onchain_market_pricefeeds_feeds_PendleTWAPPTPriceFeed.PendleTWAPPTPriceFeed;
215
221
  exports.PendleTokenType = require_onchain_market_adapters_contracts_PendleRouterAdapterContract.PendleTokenType;
216
222
  exports.PoolSuite = require_onchain_market_pool_PoolSuite.PoolSuite;
217
223
  exports.PoolV310Contract = require_onchain_market_pool_PoolV310Contract.PoolV310Contract;
218
224
  exports.PriceFeedRef = require_onchain_market_pricefeeds_PriceFeedRef.PriceFeedRef;
219
- exports.PriceFeedRegister = require_onchain_market_pricefeeds_PriceFeedsRegister.PriceFeedRegister;
225
+ exports.PriceFeedRegistry = require_onchain_market_pricefeeds_PriceFeedRegistry.PriceFeedRegistry;
220
226
  exports.PriceOracleV310Contract = require_onchain_market_oracle_PriceOracleV310Contract.PriceOracleV310Contract;
221
- exports.PythPriceFeed = require_onchain_market_pricefeeds_PythPriceFeed.PythPriceFeed;
227
+ exports.PriceUpdatesCache = require_onchain_market_pricefeeds_updates_PriceUpdatesCache.PriceUpdatesCache;
228
+ exports.PythPriceFeed = require_onchain_market_pricefeeds_feeds_PythPriceFeed.PythPriceFeed;
222
229
  exports.RWARegistry = require_onchain_market_rwa_RWARegistry.RWARegistry;
230
+ exports.RWA_COMPRESSOR_ADDRESS = require_onchain_market_rwa_RWARegistry.RWA_COMPRESSOR_ADDRESS;
223
231
  exports.RWA_LIQUIDATOR_MIDAS = require_onchain_market_rwa_midas_constants.RWA_LIQUIDATOR_MIDAS;
224
232
  exports.RWA_LIQUIDATOR_SECURITIZE = require_onchain_market_rwa_securitize_constants.RWA_LIQUIDATOR_SECURITIZE;
225
- exports.RedstonePriceFeedContract = require_onchain_market_pricefeeds_RedstonePriceFeed.RedstonePriceFeedContract;
233
+ exports.RedstoneOptions = require_onchain_market_pricefeeds_updates_RedstoneUpdater.RedstoneOptions;
234
+ exports.RedstonePriceFeedContract = require_onchain_market_pricefeeds_feeds_RedstonePriceFeed.RedstonePriceFeedContract;
235
+ exports.RedstoneUpdater = require_onchain_market_pricefeeds_updates_RedstoneUpdater.RedstoneUpdater;
226
236
  exports.SecuritizeDegenNFT = require_onchain_market_rwa_securitize_SecuritizeDegenNFT.SecuritizeDegenNFT;
227
237
  exports.SecuritizeLiquidatorContract = require_onchain_market_rwa_securitize_SecuritizeLiquidatorContract.SecuritizeLiquidatorContract;
228
238
  exports.SecuritizeOnRampAdapterContract = require_onchain_market_adapters_contracts_SecuritizeOnRampAdapterContract.SecuritizeOnRampAdapterContract;
@@ -234,13 +244,14 @@ exports.TraderJoeRouterAdapterContract = require_onchain_market_adapters_contrac
234
244
  exports.UniswapV2AdapterContract = require_onchain_market_adapters_contracts_UniswapV2AdapterContract.UniswapV2AdapterContract;
235
245
  exports.UniswapV3AdapterContract = require_onchain_market_adapters_contracts_UniswapV3AdapterContract.UniswapV3AdapterContract;
236
246
  exports.UniswapV4AdapterContract = require_onchain_market_adapters_contracts_UniswapV4AdapterContract.UniswapV4AdapterContract;
247
+ exports.UpdatablePriceFeedRegistry = require_onchain_market_pricefeeds_updates_UpdatablePriceFeedRegistry.UpdatablePriceFeedRegistry;
237
248
  exports.UpshiftVaultAdapterContract = require_onchain_market_adapters_contracts_UpshiftVaultAdapterContract.UpshiftVaultAdapterContract;
238
249
  exports.VelodromeV2RouterAdapterContract = require_onchain_market_adapters_contracts_VelodromeV2AdapterContract.VelodromeV2RouterAdapterContract;
239
- exports.WstETHPriceFeedContract = require_onchain_market_pricefeeds_WstETHPriceFeed.WstETHPriceFeedContract;
250
+ exports.WstETHPriceFeedContract = require_onchain_market_pricefeeds_feeds_WstETHPriceFeed.WstETHPriceFeedContract;
240
251
  exports.WstETHV1AdapterContract = require_onchain_market_adapters_contracts_WstETHV1AdapterContract.WstETHV1AdapterContract;
241
- exports.YearnPriceFeedContract = require_onchain_market_pricefeeds_YearnPriceFeed.YearnPriceFeedContract;
252
+ exports.YearnPriceFeedContract = require_onchain_market_pricefeeds_feeds_YearnPriceFeed.YearnPriceFeedContract;
242
253
  exports.ZapperContract = require_onchain_market_zapper_ZapperContract.ZapperContract;
243
- exports.ZeroPriceFeedContract = require_onchain_market_pricefeeds_ZeroPriceFeed.ZeroPriceFeedContract;
254
+ exports.ZeroPriceFeedContract = require_onchain_market_pricefeeds_feeds_ZeroPriceFeed.ZeroPriceFeedContract;
244
255
  exports.adapterActionAbi = require_onchain_market_adapters_abi_actionAbi.adapterActionAbi;
245
256
  exports.adapterActionSelectors = require_onchain_market_adapters_abi_actionAbi.adapterActionSelectors;
246
257
  exports.adapterActionSignatures = require_onchain_market_adapters_abi_actionAbi.adapterActionSignatures;
@@ -271,7 +282,7 @@ exports.fnSigToName = require_onchain_market_adapters_transferHelpers.fnSigToNam
271
282
  exports.getAdapterActionAbi = require_onchain_market_adapters_abi_utils.getAdapterActionAbi;
272
283
  exports.getAdapterDeployParamsAbi = require_onchain_market_adapters_abi_utils.getAdapterDeployParamsAbi;
273
284
  exports.getAdapterType = require_onchain_market_adapters_abi_utils.getAdapterType;
274
- exports.getRawPriceUpdates = require_onchain_market_pricefeeds_getRawPriceUpdates.getRawPriceUpdates;
285
+ exports.getRawPriceUpdates = require_onchain_market_pricefeeds_updates_getRawPriceUpdates.getRawPriceUpdates;
275
286
  exports.hasAdapterDeployParamsAbi = require_onchain_market_adapters_abi_utils.hasAdapterDeployParamsAbi;
276
287
  exports.healthFactorBps = require_onchain_market_math.healthFactorBps;
277
288
  exports.iBalancerV3RouterAbi = require_onchain_market_adapters_abi_targetContractAbi.iBalancerV3RouterAbi;
@@ -345,7 +356,7 @@ exports.iVelodromeV2RouterAdapterAbi = require_onchain_market_adapters_abi_adapt
345
356
  exports.isLPPriceFeed = require_onchain_market_pricefeeds_AbstractLPPriceFeed.isLPPriceFeed;
346
357
  exports.isRWAFactory = require_onchain_market_rwa_types.isRWAFactory;
347
358
  exports.isStrategyCollateral = require_onchain_market_credit_collateralUtils.isStrategyCollateral;
348
- exports.isUpdatablePriceFeed = require_onchain_market_pricefeeds_isUpdatablePriceFeed.isUpdatablePriceFeed;
359
+ exports.isUpdatablePriceFeed = require_onchain_market_pricefeeds_updates_isUpdatablePriceFeed.isUpdatablePriceFeed;
349
360
  exports.iwstETHAbi = require_onchain_market_adapters_abi_targetContractAbi.iwstETHAbi;
350
361
  exports.iwstEthv1AdapterAbi = require_onchain_market_adapters_abi_adapters_iwstEthv1Adapter.iwstEthv1AdapterAbi;
351
362
  exports.lidoV1_WETHGatewayAbi = require_onchain_market_adapters_abi_targetContractAbi.lidoV1_WETHGatewayAbi;
@@ -362,4 +373,5 @@ exports.rewardsFromTransfers = require_onchain_market_adapters_transferHelpers.r
362
373
  exports.strategyName = require_onchain_market_strategyName.strategyName;
363
374
  exports.swapFromTransfers = require_onchain_market_adapters_transferHelpers.swapFromTransfers;
364
375
  exports.toNetTransfers = require_onchain_market_adapters_transferHelpers.toNetTransfers;
376
+ exports.updatableDependencies = require_onchain_market_pricefeeds_updates_updatableDependencies.updatableDependencies;
365
377
  exports.usdToNumber = require_onchain_market_math.usdToNumber;
@@ -17,7 +17,7 @@ const require_model_result = require("../../../model/result.js");
17
17
  require("../../../model/index.js");
18
18
  const require_abi_compressors_priceFeedCompressor = require("../../../abi/compressors/priceFeedCompressor.js");
19
19
  const require_onchain_market_pricefeeds_PriceFeedRef = require("../pricefeeds/PriceFeedRef.js");
20
- const require_onchain_market_pricefeeds_getRawPriceUpdates = require("../pricefeeds/getRawPriceUpdates.js");
20
+ const require_onchain_market_pricefeeds_updates_getRawPriceUpdates = require("../pricefeeds/updates/getRawPriceUpdates.js");
21
21
  require("../pricefeeds/index.js");
22
22
  const require_onchain_market_oracle_PriceFeedAnswerMap = require("./PriceFeedAnswerMap.js");
23
23
  let viem = require("viem");
@@ -76,13 +76,13 @@ var PriceOracleBaseContract = class extends require_onchain_base_BaseContract.Ba
76
76
  * {@inheritDoc IPriceOracleContract.priceUpdatesForAccount}
77
77
  **/
78
78
  async priceUpdatesForAccount(account, opts) {
79
- return require_onchain_market_pricefeeds_getRawPriceUpdates.getRawPriceUpdates(await this.priceUpdateTxsForAccount(account, opts));
79
+ return require_onchain_market_pricefeeds_updates_getRawPriceUpdates.getRawPriceUpdates(await this.priceUpdateTxsForAccount(account, opts));
80
80
  }
81
81
  /**
82
82
  * {@inheritDoc IPriceOracleContract.priceUpdatesForTokens}
83
83
  **/
84
84
  async priceUpdatesForTokens(tokens, opts) {
85
- return require_onchain_market_pricefeeds_getRawPriceUpdates.getRawPriceUpdates(await this.#priceUpdateTxsForTokens(tokens, opts));
85
+ return require_onchain_market_pricefeeds_updates_getRawPriceUpdates.getRawPriceUpdates(await this.#priceUpdateTxsForTokens(tokens, opts));
86
86
  }
87
87
  async #priceUpdateTxsForTokens(tokens, opts) {
88
88
  const priceFeeds = this.priceFeedsForTokens(tokens, opts);
@@ -1,7 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_onchain_base_BaseContract = require("../../base/BaseContract.js");
3
3
  require("../../base/index.js");
4
- const require_onchain_market_pricefeeds_isUpdatablePriceFeed = require("./isUpdatablePriceFeed.js");
5
4
  const require_onchain_market_pricefeeds_PriceFeedRef = require("./PriceFeedRef.js");
6
5
  //#region src/onchain/market/pricefeeds/AbstractPriceFeed.ts
7
6
  var PartialPriceFeedInitError = class extends Error {
@@ -85,10 +84,6 @@ var AbstractPriceFeedContract = class extends require_onchain_base_BaseContract.
85
84
  pricefeeds: this.underlyingPriceFeeds.map((f) => f.stateHuman(raw))
86
85
  };
87
86
  }
88
- updatableDependencies() {
89
- const underlying = this.underlyingPriceFeeds.flatMap((f) => f.priceFeed.updatableDependencies());
90
- return require_onchain_market_pricefeeds_isUpdatablePriceFeed.isUpdatablePriceFeed(this) ? [this, ...underlying] : underlying;
91
- }
92
87
  /**
93
88
  * {@inheritDoc IPriceFeedContract.describe}
94
89
  */
@@ -0,0 +1,127 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_onchain_utils_AddressMap = require("../../utils/AddressMap.js");
3
+ const require_onchain_utils_bytes32ToString = require("../../utils/bytes32ToString.js");
4
+ require("../../utils/index.js");
5
+ const require_onchain_base_SDKConstruct = require("../../base/SDKConstruct.js");
6
+ require("../../base/index.js");
7
+ const require_onchain_market_pricefeeds_AbstractPriceFeed = require("./AbstractPriceFeed.js");
8
+ const require_onchain_market_pricefeeds_feeds_BalancerStablePriceFeed = require("./feeds/BalancerStablePriceFeed.js");
9
+ const require_onchain_market_pricefeeds_feeds_BalancerWeightedPriceFeed = require("./feeds/BalancerWeightedPriceFeed.js");
10
+ const require_onchain_market_pricefeeds_feeds_BoundedPriceFeed = require("./feeds/BoundedPriceFeed.js");
11
+ const require_onchain_market_pricefeeds_feeds_CompositePriceFeed = require("./feeds/CompositePriceFeed.js");
12
+ const require_onchain_market_pricefeeds_feeds_ConstantPriceFeed = require("./feeds/ConstantPriceFeed.js");
13
+ const require_onchain_market_pricefeeds_feeds_CurveCryptoPriceFeed = require("./feeds/CurveCryptoPriceFeed.js");
14
+ const require_onchain_market_pricefeeds_feeds_CurveStablePriceFeed = require("./feeds/CurveStablePriceFeed.js");
15
+ const require_onchain_market_pricefeeds_feeds_CurveUSDPriceFeed = require("./feeds/CurveUSDPriceFeed.js");
16
+ const require_onchain_market_pricefeeds_feeds_Erc4626PriceFeed = require("./feeds/Erc4626PriceFeed.js");
17
+ const require_onchain_market_pricefeeds_feeds_ExternalPriceFeed = require("./feeds/ExternalPriceFeed.js");
18
+ const require_onchain_market_pricefeeds_feeds_MellowLRTPriceFeed = require("./feeds/MellowLRTPriceFeed.js");
19
+ const require_onchain_market_pricefeeds_feeds_PendleTWAPPTPriceFeed = require("./feeds/PendleTWAPPTPriceFeed.js");
20
+ const require_onchain_market_pricefeeds_feeds_PythPriceFeed = require("./feeds/PythPriceFeed.js");
21
+ const require_onchain_market_pricefeeds_feeds_RedstonePriceFeed = require("./feeds/RedstonePriceFeed.js");
22
+ const require_onchain_market_pricefeeds_feeds_WstETHPriceFeed = require("./feeds/WstETHPriceFeed.js");
23
+ const require_onchain_market_pricefeeds_feeds_YearnPriceFeed = require("./feeds/YearnPriceFeed.js");
24
+ const require_onchain_market_pricefeeds_feeds_ZeroPriceFeed = require("./feeds/ZeroPriceFeed.js");
25
+ //#region src/onchain/market/pricefeeds/PriceFeedRegistry.ts
26
+ /**
27
+ * Chain-level cache of price feed contract instances.
28
+ *
29
+ * All {@link IPriceOracleContract}s across different markets share a single
30
+ * `PriceFeedRegistry`, avoiding duplicate contract wrappers for the same
31
+ * on-chain feed.
32
+ **/
33
+ var PriceFeedRegistry = class extends require_onchain_base_SDKConstruct.SDKConstruct {
34
+ #feeds = new require_onchain_utils_AddressMap.AddressMap(void 0, "priceFeeds");
35
+ /**
36
+ * Returns all price feeds known to sdk
37
+ */
38
+ get feeds() {
39
+ return this.#feeds.values();
40
+ }
41
+ /**
42
+ * Checks whether a price feed is already registered at the given address.
43
+ * @param address - On-chain address to look up.
44
+ **/
45
+ has(address) {
46
+ return this.#feeds.has(address);
47
+ }
48
+ /**
49
+ * Returns the cached price feed contract at the given address, if any.
50
+ * @param address - On-chain address to look up.
51
+ **/
52
+ get(address) {
53
+ return this.#feeds.get(address);
54
+ }
55
+ /**
56
+ * Returns the cached price feed contract at the given address.
57
+ * @param address - On-chain address to look up.
58
+ * @throws If no feed is registered at that address.
59
+ **/
60
+ mustGet(address) {
61
+ return this.#feeds.mustGet(address);
62
+ }
63
+ /**
64
+ * Inserts or updates a price feed from a full tree node.
65
+ *
66
+ * If a fully loaded feed already exists at the same address, only the
67
+ * answer is refreshed. Otherwise a new contract wrapper is created and
68
+ * cached.
69
+ *
70
+ * @param data - Full price feed tree node from the compressor.
71
+ * @returns The cached (or newly created) feed instance.
72
+ * @throws If the created feed is only partially initialized.
73
+ **/
74
+ upsert(data) {
75
+ const existing = this.#feeds.get(data.baseParams.addr);
76
+ if (existing?.loaded) {
77
+ existing.updateAnswer(data.answer);
78
+ return existing;
79
+ }
80
+ const feed = this.create(data);
81
+ if (!feed.loaded) throw new require_onchain_market_pricefeeds_AbstractPriceFeed.PartialPriceFeedInitError({
82
+ ...data,
83
+ abi: [],
84
+ name: ""
85
+ });
86
+ this.#feeds.upsert(data.baseParams.addr, feed);
87
+ return feed;
88
+ }
89
+ /**
90
+ * Instantiates the appropriate price feed contract wrapper based on
91
+ * the `contractType` discriminator in the node's base params.
92
+ *
93
+ * @param data - Partial or full price feed tree node.
94
+ * @returns A new (uncached) feed contract instance.
95
+ * @throws If the contract type is unsupported and strict mode is enabled.
96
+ **/
97
+ create(data) {
98
+ const contractType = require_onchain_utils_bytes32ToString.bytes32ToString(data.baseParams.contractType);
99
+ switch (contractType) {
100
+ case "PRICE_FEED::BALANCER_STABLE": return new require_onchain_market_pricefeeds_feeds_BalancerStablePriceFeed.BalancerStablePriceFeedContract(this.sdk, data);
101
+ case "PRICE_FEED::BALANCER_WEIGHTED": return new require_onchain_market_pricefeeds_feeds_BalancerWeightedPriceFeed.BalancerWeightedPriceFeedContract(this.sdk, data);
102
+ case "PRICE_FEED::BOUNDED": return new require_onchain_market_pricefeeds_feeds_BoundedPriceFeed.BoundedPriceFeedContract(this.sdk, data);
103
+ case "PRICE_FEED::COMPOSITE": return new require_onchain_market_pricefeeds_feeds_CompositePriceFeed.CompositePriceFeedContract(this.sdk, data);
104
+ case "PRICE_FEED::CONSTANT": return new require_onchain_market_pricefeeds_feeds_ConstantPriceFeed.ConstantPriceFeedContract(this.sdk, data);
105
+ case "PRICE_FEED::CURVE_CRYPTO": return new require_onchain_market_pricefeeds_feeds_CurveCryptoPriceFeed.CurveCryptoPriceFeedContract(this.sdk, data);
106
+ case "PRICE_FEED::CURVE_STABLE": return new require_onchain_market_pricefeeds_feeds_CurveStablePriceFeed.CurveStablePriceFeedContract(this.sdk, data);
107
+ case "PRICE_FEED::CURVE_USD": return new require_onchain_market_pricefeeds_feeds_CurveUSDPriceFeed.CurveUSDPriceFeedContract(this.sdk, data);
108
+ case "PRICE_FEED::ERC4626": return new require_onchain_market_pricefeeds_feeds_Erc4626PriceFeed.Erc4626PriceFeedContract(this.sdk, data);
109
+ case "PRICE_FEED::EXTERNAL": return new require_onchain_market_pricefeeds_feeds_ExternalPriceFeed.ExternalPriceFeedContract(this.sdk, data);
110
+ case "PRICE_FEED::MELLOW_LRT": return new require_onchain_market_pricefeeds_feeds_MellowLRTPriceFeed.MellowLRTPriceFeedContract(this.sdk, data);
111
+ case "PRICE_FEED::PENDLE_PT_TWAP": return new require_onchain_market_pricefeeds_feeds_PendleTWAPPTPriceFeed.PendleTWAPPTPriceFeed(this.sdk, data);
112
+ case "PRICE_FEED::PYTH": return new require_onchain_market_pricefeeds_feeds_PythPriceFeed.PythPriceFeed(this.sdk, data);
113
+ case "PRICE_FEED::REDSTONE": return new require_onchain_market_pricefeeds_feeds_RedstonePriceFeed.RedstonePriceFeedContract(this.sdk, data);
114
+ case "PRICE_FEED::WSTETH": return new require_onchain_market_pricefeeds_feeds_WstETHPriceFeed.WstETHPriceFeedContract(this.sdk, data);
115
+ case "PRICE_FEED::YEARN": return new require_onchain_market_pricefeeds_feeds_YearnPriceFeed.YearnPriceFeedContract(this.sdk, data);
116
+ case "PRICE_FEED::ZERO": return new require_onchain_market_pricefeeds_feeds_ZeroPriceFeed.ZeroPriceFeedContract(this.sdk, data);
117
+ default: {
118
+ const err = /* @__PURE__ */ new Error(`Price feed type ${contractType} not supported for price feed at ${data.baseParams.addr}`);
119
+ if (this.sdk.strictContractTypes) throw err;
120
+ this.logger?.error(err);
121
+ return new require_onchain_market_pricefeeds_feeds_ExternalPriceFeed.ExternalPriceFeedContract(this.sdk, data);
122
+ }
123
+ }
124
+ }
125
+ };
126
+ //#endregion
127
+ exports.PriceFeedRegistry = PriceFeedRegistry;
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_onchain_market_pricefeeds_AbstractLPPriceFeed = require("./AbstractLPPriceFeed.js");
3
- const require_onchain_abi_oracles = require("../../abi/oracles.js");
4
- require("../../abi/index.js");
5
- //#region src/onchain/market/pricefeeds/BalancerStablePriceFeed.ts
2
+ const require_onchain_market_pricefeeds_AbstractLPPriceFeed = require("../AbstractLPPriceFeed.js");
3
+ const require_onchain_abi_oracles = require("../../../abi/oracles.js");
4
+ require("../../../abi/index.js");
5
+ //#region src/onchain/market/pricefeeds/feeds/BalancerStablePriceFeed.ts
6
6
  var BalancerStablePriceFeedContract = class extends require_onchain_market_pricefeeds_AbstractLPPriceFeed.AbstractLPPriceFeedContract {
7
7
  constructor(options, args) {
8
8
  super(options, {
@@ -1,9 +1,9 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_onchain_market_pricefeeds_AbstractLPPriceFeed = require("./AbstractLPPriceFeed.js");
3
- const require_onchain_abi_oracles = require("../../abi/oracles.js");
4
- require("../../abi/index.js");
2
+ const require_onchain_market_pricefeeds_AbstractLPPriceFeed = require("../AbstractLPPriceFeed.js");
3
+ const require_onchain_abi_oracles = require("../../../abi/oracles.js");
4
+ require("../../../abi/index.js");
5
5
  let viem = require("viem");
6
- //#region src/onchain/market/pricefeeds/BalancerWeightedPriceFeed.ts
6
+ //#region src/onchain/market/pricefeeds/feeds/BalancerWeightedPriceFeed.ts
7
7
  var BalancerWeightedPriceFeedContract = class extends require_onchain_market_pricefeeds_AbstractLPPriceFeed.AbstractLPPriceFeedContract {
8
8
  vault;
9
9
  poolId;
@@ -1,9 +1,9 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_onchain_market_pricefeeds_AbstractPriceFeed = require("./AbstractPriceFeed.js");
3
- const require_onchain_abi_oracles = require("../../abi/oracles.js");
4
- require("../../abi/index.js");
2
+ const require_onchain_market_pricefeeds_AbstractPriceFeed = require("../AbstractPriceFeed.js");
3
+ const require_onchain_abi_oracles = require("../../../abi/oracles.js");
4
+ require("../../../abi/index.js");
5
5
  let viem = require("viem");
6
- //#region src/onchain/market/pricefeeds/BoundedPriceFeed.ts
6
+ //#region src/onchain/market/pricefeeds/feeds/BoundedPriceFeed.ts
7
7
  var BoundedPriceFeedContract = class extends require_onchain_market_pricefeeds_AbstractPriceFeed.AbstractPriceFeedContract {
8
8
  upperBound;
9
9
  constructor(options, args) {
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_onchain_market_pricefeeds_AbstractPriceFeed = require("./AbstractPriceFeed.js");
3
- const require_onchain_abi_oracles = require("../../abi/oracles.js");
4
- require("../../abi/index.js");
5
- //#region src/onchain/market/pricefeeds/CompositePriceFeed.ts
2
+ const require_onchain_market_pricefeeds_AbstractPriceFeed = require("../AbstractPriceFeed.js");
3
+ const require_onchain_abi_oracles = require("../../../abi/oracles.js");
4
+ require("../../../abi/index.js");
5
+ //#region src/onchain/market/pricefeeds/feeds/CompositePriceFeed.ts
6
6
  var CompositePriceFeedContract = class extends require_onchain_market_pricefeeds_AbstractPriceFeed.AbstractPriceFeedContract {
7
7
  constructor(options, args) {
8
8
  super(options, {
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_onchain_market_pricefeeds_AbstractPriceFeed = require("./AbstractPriceFeed.js");
3
- const require_onchain_abi_oracles = require("../../abi/oracles.js");
2
+ const require_onchain_market_pricefeeds_AbstractPriceFeed = require("../AbstractPriceFeed.js");
3
+ const require_onchain_abi_oracles = require("../../../abi/oracles.js");
4
4
  let viem = require("viem");
5
- //#region src/onchain/market/pricefeeds/ConstantPriceFeed.ts
5
+ //#region src/onchain/market/pricefeeds/feeds/ConstantPriceFeed.ts
6
6
  var ConstantPriceFeedContract = class extends require_onchain_market_pricefeeds_AbstractPriceFeed.AbstractPriceFeedContract {
7
7
  price;
8
8
  constructor(options, args) {
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_onchain_market_pricefeeds_AbstractLPPriceFeed = require("./AbstractLPPriceFeed.js");
3
- const require_onchain_abi_oracles = require("../../abi/oracles.js");
4
- require("../../abi/index.js");
5
- //#region src/onchain/market/pricefeeds/CurveCryptoPriceFeed.ts
2
+ const require_onchain_market_pricefeeds_AbstractLPPriceFeed = require("../AbstractLPPriceFeed.js");
3
+ const require_onchain_abi_oracles = require("../../../abi/oracles.js");
4
+ require("../../../abi/index.js");
5
+ //#region src/onchain/market/pricefeeds/feeds/CurveCryptoPriceFeed.ts
6
6
  var CurveCryptoPriceFeedContract = class extends require_onchain_market_pricefeeds_AbstractLPPriceFeed.AbstractLPPriceFeedContract {
7
7
  constructor(options, args) {
8
8
  super(options, {
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_onchain_market_pricefeeds_AbstractLPPriceFeed = require("./AbstractLPPriceFeed.js");
3
- const require_onchain_abi_oracles = require("../../abi/oracles.js");
4
- require("../../abi/index.js");
5
- //#region src/onchain/market/pricefeeds/CurveStablePriceFeed.ts
2
+ const require_onchain_market_pricefeeds_AbstractLPPriceFeed = require("../AbstractLPPriceFeed.js");
3
+ const require_onchain_abi_oracles = require("../../../abi/oracles.js");
4
+ require("../../../abi/index.js");
5
+ //#region src/onchain/market/pricefeeds/feeds/CurveStablePriceFeed.ts
6
6
  var CurveStablePriceFeedContract = class extends require_onchain_market_pricefeeds_AbstractLPPriceFeed.AbstractLPPriceFeedContract {
7
7
  constructor(options, args) {
8
8
  super(options, {