@gearbox-protocol/sdk 15.1.0-next.1 → 15.1.0-next.10

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 (444) hide show
  1. package/dist/cjs/abi/iExpirable.js +15 -0
  2. package/dist/cjs/common-utils/utils/apy/get-single-quota-borrow-rate.js +2 -0
  3. package/dist/cjs/common-utils/utils/creditAccount/calc-health-factor.js +24 -22
  4. package/dist/cjs/common-utils/utils/creditAccount/calc-quota-borrow-rate.js +2 -0
  5. package/dist/cjs/common-utils/utils/creditAccount/get-time-to-liquidation.js +8 -5
  6. package/dist/cjs/common-utils/utils/creditAccount/liquidation-price.js +21 -11
  7. package/dist/cjs/dev/AccountOpener.js +0 -1
  8. package/dist/cjs/dev/compareOpportunities.js +218 -0
  9. package/dist/cjs/model/charts.js +147 -0
  10. package/dist/cjs/model/charts.schema.js +240 -0
  11. package/dist/cjs/model/index.js +35 -22
  12. package/dist/cjs/model/liquidations.schema.js +1 -1
  13. package/dist/cjs/model/notices.schema.js +25 -0
  14. package/dist/cjs/model/opportunities.schema.js +1 -1
  15. package/dist/cjs/model/positions.schema.js +48 -2
  16. package/dist/cjs/new-sdk/AbstractNamespace.js +34 -4
  17. package/dist/cjs/new-sdk/GearboxSDK.js +72 -3
  18. package/dist/cjs/new-sdk/execute/ExecuteApi.js +95 -0
  19. package/dist/cjs/new-sdk/execute/index.js +3 -0
  20. package/dist/cjs/new-sdk/index.js +7 -0
  21. package/dist/cjs/new-sdk/opportunities/OpportunitiesNamespace.js +29 -6
  22. package/dist/cjs/new-sdk/positions/PositionsNamespace.js +3 -6
  23. package/dist/cjs/new-sdk/simulate/SimulateApi.js +361 -0
  24. package/dist/cjs/new-sdk/simulate/index.js +4 -0
  25. package/dist/cjs/new-sdk/utils/index.js +0 -1
  26. package/dist/cjs/offchain/AbstractOffchainNamespace.js +10 -7
  27. package/dist/cjs/offchain/GearboxAPI.js +7 -0
  28. package/dist/cjs/offchain/index.js +3 -0
  29. package/dist/cjs/offchain/notices/OffchainNotices.js +27 -0
  30. package/dist/cjs/offchain/notices/index.js +3 -0
  31. package/dist/cjs/offchain/opportunities/OffchainOpportunities.js +4 -8
  32. package/dist/cjs/offchain/positions/OffchainPositions.js +12 -12
  33. package/dist/cjs/preview/preview/CreditAccountState.js +14 -1
  34. package/dist/cjs/preview/preview/buildDelayedPreview.js +16 -6
  35. package/dist/cjs/preview/preview/previewAdjustCreditAccount.js +9 -2
  36. package/dist/cjs/preview/preview/previewOpenCreditAccount.js +11 -3
  37. package/dist/cjs/preview/preview/previewOperation.js +1 -1
  38. package/dist/cjs/sdk/MultichainSDK.js +3 -4
  39. package/dist/cjs/sdk/OnchainSDK.js +42 -13
  40. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +2 -8
  41. package/dist/cjs/sdk/accounts/credit-account-compressor/CreditAccountCompressor.js +2 -90
  42. package/dist/cjs/sdk/accounts/index.js +5 -2
  43. package/dist/cjs/sdk/accounts/intents/guards.js +114 -0
  44. package/dist/cjs/sdk/accounts/intents/index.js +216 -358
  45. package/dist/cjs/sdk/accounts/intents/math.js +56 -0
  46. package/dist/cjs/sdk/accounts/intents/open-strategy.js +133 -0
  47. package/dist/cjs/sdk/accounts/intents/operations.js +165 -0
  48. package/dist/cjs/sdk/accounts/intents/plan.js +373 -0
  49. package/dist/cjs/sdk/accounts/intents/realize.js +301 -0
  50. package/dist/cjs/sdk/accounts/intents/testing/delayed.js +50 -0
  51. package/dist/cjs/sdk/accounts/intents/testing/market.js +166 -0
  52. package/dist/cjs/sdk/accounts/intents/testing/sdk-mock.js +194 -35
  53. package/dist/cjs/sdk/accounts/intents/tests/add-collateral.fixtures.js +123 -0
  54. package/dist/cjs/sdk/accounts/intents/tests/adjust-leverage.fixtures.js +254 -0
  55. package/dist/cjs/sdk/accounts/intents/tests/deposit.fixtures.js +324 -0
  56. package/dist/cjs/sdk/accounts/intents/tests/finish-decrease-leverage.fixtures.js +242 -0
  57. package/dist/cjs/sdk/accounts/intents/tests/finish-withdraw.fixtures.js +383 -0
  58. package/dist/cjs/sdk/accounts/intents/tests/open-strategy.fixtures.js +133 -0
  59. package/dist/cjs/sdk/accounts/intents/tests/withdraw-asset.fixtures.js +131 -0
  60. package/dist/cjs/sdk/accounts/intents/tests/withdraw.fixtures.js +426 -0
  61. package/dist/cjs/sdk/accounts/intents/types.js +16 -0
  62. package/dist/cjs/sdk/accounts/intents/utils/adjust-state-to-snapshot.js +18 -0
  63. package/dist/cjs/sdk/accounts/intents/utils/credit-account-slice.js +45 -0
  64. package/dist/cjs/sdk/accounts/intents/utils/index.js +17 -8
  65. package/dist/cjs/sdk/accounts/intents/utils/ledger.js +94 -0
  66. package/dist/cjs/sdk/accounts/intents/utils/pick-token.js +72 -0
  67. package/dist/cjs/sdk/accounts/intents/utils/quotas-for-update.js +27 -0
  68. package/dist/cjs/sdk/accounts/intents/utils/router-path.js +86 -0
  69. package/dist/cjs/sdk/accounts/intents/view.js +38 -0
  70. package/dist/cjs/sdk/accounts/liquidations/LiquidationsService.js +0 -3
  71. package/dist/cjs/sdk/accounts/withdrawal-compressor/AbstractWithdrawalCompressorContract.js +29 -18
  72. package/dist/cjs/sdk/base/BaseContract.js +1 -1
  73. package/dist/cjs/sdk/base/TokensMeta.js +78 -27
  74. package/dist/cjs/sdk/index.js +30 -7
  75. package/dist/cjs/sdk/market/MarketRegister.js +16 -7
  76. package/dist/cjs/sdk/market/ZapperRegister.js +56 -25
  77. package/dist/cjs/sdk/market/credit/CreditManagerV310Contract.js +1 -12
  78. package/dist/cjs/sdk/market/credit/CreditSuite.js +28 -9
  79. package/dist/cjs/sdk/market/credit/index.js +3 -0
  80. package/dist/cjs/sdk/market/credit/isStrategyCollateral.js +50 -0
  81. package/dist/cjs/sdk/market/index.js +17 -0
  82. package/dist/cjs/sdk/market/math.js +57 -44
  83. package/dist/cjs/sdk/market/oracle/PriceOracleBaseContract.js +10 -3
  84. package/dist/cjs/sdk/market/pool/PoolV310Contract.js +15 -1
  85. package/dist/cjs/sdk/market/rwa/RWARegistry.js +22 -0
  86. package/dist/cjs/sdk/opportunities/index.js +0 -13
  87. package/dist/cjs/sdk/options.js +1 -5
  88. package/dist/cjs/sdk/pools/PoolService.js +132 -3
  89. package/dist/cjs/sdk/pools/index.js +2 -0
  90. package/dist/cjs/sdk/positions/PositionsService.js +213 -1
  91. package/dist/cjs/sdk/positions/calcBorrowRate.js +43 -0
  92. package/dist/cjs/sdk/positions/calcHealthFactor.js +52 -0
  93. package/dist/cjs/sdk/positions/calcLiquidationPrice.js +23 -0
  94. package/dist/cjs/sdk/positions/calcLiquidationPriceForTarget.js +30 -0
  95. package/dist/cjs/sdk/positions/calcTimeToLiquidationMs.js +19 -0
  96. package/dist/cjs/sdk/positions/index.js +12 -1
  97. package/dist/cjs/sdk/positions/types.js +31 -0
  98. package/dist/cjs/sdk/utils/abi-decode.js +2 -2
  99. package/dist/cjs/sdk/utils/viem/executeMulticallBatches.js +32 -0
  100. package/dist/cjs/sdk/utils/viem/index.js +2 -0
  101. package/dist/esm/abi/iExpirable.js +14 -0
  102. package/dist/esm/common-utils/utils/apy/get-single-quota-borrow-rate.js +2 -0
  103. package/dist/esm/common-utils/utils/creditAccount/calc-health-factor.js +24 -22
  104. package/dist/esm/common-utils/utils/creditAccount/calc-quota-borrow-rate.js +2 -0
  105. package/dist/esm/common-utils/utils/creditAccount/get-time-to-liquidation.js +8 -5
  106. package/dist/esm/common-utils/utils/creditAccount/liquidation-price.js +21 -11
  107. package/dist/esm/dev/AccountOpener.js +1 -2
  108. package/dist/esm/dev/compareOpportunities.js +216 -0
  109. package/dist/esm/dev/withdrawalUtils.js +1 -1
  110. package/dist/esm/model/charts.js +140 -0
  111. package/dist/esm/model/charts.schema.js +226 -0
  112. package/dist/esm/model/index.js +9 -7
  113. package/dist/esm/model/liquidations.schema.js +1 -1
  114. package/dist/esm/model/notices.schema.js +23 -0
  115. package/dist/esm/model/opportunities.schema.js +1 -1
  116. package/dist/esm/model/positions.schema.js +46 -4
  117. package/dist/esm/new-sdk/AbstractNamespace.js +34 -4
  118. package/dist/esm/new-sdk/GearboxSDK.js +72 -4
  119. package/dist/esm/new-sdk/execute/ExecuteApi.js +94 -0
  120. package/dist/esm/new-sdk/execute/index.js +2 -0
  121. package/dist/esm/new-sdk/index.js +6 -2
  122. package/dist/esm/new-sdk/opportunities/OpportunitiesNamespace.js +29 -6
  123. package/dist/esm/new-sdk/positions/PositionsNamespace.js +3 -6
  124. package/dist/esm/new-sdk/simulate/SimulateApi.js +360 -0
  125. package/dist/esm/new-sdk/simulate/index.js +3 -0
  126. package/dist/esm/new-sdk/utils/index.js +0 -1
  127. package/dist/esm/offchain/AbstractOffchainNamespace.js +10 -7
  128. package/dist/esm/offchain/GearboxAPI.js +7 -0
  129. package/dist/esm/offchain/index.js +3 -1
  130. package/dist/esm/offchain/notices/OffchainNotices.js +26 -0
  131. package/dist/esm/offchain/notices/index.js +2 -0
  132. package/dist/esm/offchain/opportunities/OffchainOpportunities.js +4 -8
  133. package/dist/esm/offchain/positions/OffchainPositions.js +12 -12
  134. package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +1 -1
  135. package/dist/esm/preview/preview/CreditAccountState.js +14 -1
  136. package/dist/esm/preview/preview/buildDelayedPreview.js +16 -6
  137. package/dist/esm/preview/preview/previewAdjustCreditAccount.js +9 -2
  138. package/dist/esm/preview/preview/previewOpenCreditAccount.js +11 -3
  139. package/dist/esm/preview/preview/previewOperation.js +1 -1
  140. package/dist/esm/preview/simulate/simulatePoolOperation.js +1 -1
  141. package/dist/esm/preview/trace/extractTransfers.js +1 -1
  142. package/dist/esm/sdk/MultichainSDK.js +3 -4
  143. package/dist/esm/sdk/OnchainSDK.js +42 -13
  144. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +4 -10
  145. package/dist/esm/sdk/accounts/credit-account-compressor/CreditAccountCompressor.js +2 -90
  146. package/dist/esm/sdk/accounts/index.js +3 -2
  147. package/dist/esm/sdk/accounts/intents/guards.js +108 -0
  148. package/dist/esm/sdk/accounts/intents/index.js +214 -358
  149. package/dist/esm/sdk/accounts/intents/math.js +51 -0
  150. package/dist/esm/sdk/accounts/intents/open-strategy.js +132 -0
  151. package/dist/esm/sdk/accounts/intents/operations.js +153 -0
  152. package/dist/esm/sdk/accounts/intents/plan.js +361 -0
  153. package/dist/esm/sdk/accounts/intents/realize.js +300 -0
  154. package/dist/esm/sdk/accounts/intents/testing/delayed.js +38 -0
  155. package/dist/esm/sdk/accounts/intents/testing/market.js +148 -0
  156. package/dist/esm/sdk/accounts/intents/testing/sdk-mock.js +194 -35
  157. package/dist/esm/sdk/accounts/intents/tests/add-collateral.fixtures.js +110 -0
  158. package/dist/esm/sdk/accounts/intents/tests/adjust-leverage.fixtures.js +234 -0
  159. package/dist/esm/sdk/accounts/intents/tests/deposit.fixtures.js +302 -0
  160. package/dist/esm/sdk/accounts/intents/tests/finish-decrease-leverage.fixtures.js +220 -0
  161. package/dist/esm/sdk/accounts/intents/tests/finish-withdraw.fixtures.js +355 -0
  162. package/dist/esm/sdk/accounts/intents/tests/open-strategy.fixtures.js +119 -0
  163. package/dist/esm/sdk/accounts/intents/tests/withdraw-asset.fixtures.js +117 -0
  164. package/dist/esm/sdk/accounts/intents/tests/withdraw.fixtures.js +402 -0
  165. package/dist/esm/sdk/accounts/intents/types.js +16 -1
  166. package/dist/esm/sdk/accounts/intents/utils/adjust-state-to-snapshot.js +17 -0
  167. package/dist/esm/sdk/accounts/intents/utils/credit-account-slice.js +43 -0
  168. package/dist/esm/sdk/accounts/intents/utils/index.js +9 -7
  169. package/dist/esm/sdk/accounts/intents/utils/ledger.js +93 -0
  170. package/dist/esm/sdk/accounts/intents/utils/pick-token.js +68 -0
  171. package/dist/esm/sdk/accounts/intents/utils/quotas-for-update.js +27 -1
  172. package/dist/esm/sdk/accounts/intents/utils/router-path.js +85 -0
  173. package/dist/esm/sdk/accounts/intents/view.js +37 -0
  174. package/dist/esm/sdk/accounts/liquidations/LiquidationsService.js +1 -4
  175. package/dist/esm/sdk/accounts/withdrawal-compressor/AbstractWithdrawalCompressorContract.js +29 -18
  176. package/dist/esm/sdk/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.js +1 -1
  177. package/dist/esm/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV310Contract.js +1 -1
  178. package/dist/esm/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV311Contract.js +1 -1
  179. package/dist/esm/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV313Contract.js +1 -1
  180. package/dist/esm/sdk/base/BaseContract.js +1 -1
  181. package/dist/esm/sdk/base/TokensMeta.js +80 -29
  182. package/dist/esm/sdk/chain/detectNetwork.js +1 -1
  183. package/dist/esm/sdk/core/createAddressProvider.js +1 -1
  184. package/dist/esm/sdk/index.js +13 -4
  185. package/dist/esm/sdk/market/MarketRegister.js +16 -7
  186. package/dist/esm/sdk/market/ZapperRegister.js +56 -25
  187. package/dist/esm/sdk/market/credit/CreditFacadeV310BaseContract.js +1 -1
  188. package/dist/esm/sdk/market/credit/CreditManagerV310Contract.js +2 -13
  189. package/dist/esm/sdk/market/credit/CreditSuite.js +29 -10
  190. package/dist/esm/sdk/market/credit/index.js +2 -1
  191. package/dist/esm/sdk/market/credit/isStrategyCollateral.js +48 -0
  192. package/dist/esm/sdk/market/index.js +3 -1
  193. package/dist/esm/sdk/market/math.js +52 -40
  194. package/dist/esm/sdk/market/oracle/PriceOracleBaseContract.js +10 -3
  195. package/dist/esm/sdk/market/pool/PoolV310Contract.js +17 -3
  196. package/dist/esm/sdk/market/rwa/RWARegistry.js +22 -0
  197. package/dist/esm/sdk/market/zapper/IETHZapperContract.js +1 -1
  198. package/dist/esm/sdk/market/zapper/ZapperContract.js +1 -1
  199. package/dist/esm/sdk/opportunities/index.js +1 -2
  200. package/dist/esm/sdk/options.js +1 -5
  201. package/dist/esm/sdk/pools/PoolService.js +133 -6
  202. package/dist/esm/sdk/pools/index.js +2 -2
  203. package/dist/esm/sdk/positions/PositionsService.js +213 -1
  204. package/dist/esm/sdk/positions/calcBorrowRate.js +42 -0
  205. package/dist/esm/sdk/positions/calcHealthFactor.js +51 -0
  206. package/dist/esm/sdk/positions/calcLiquidationPrice.js +22 -0
  207. package/dist/esm/sdk/positions/calcLiquidationPriceForTarget.js +29 -0
  208. package/dist/esm/sdk/positions/calcTimeToLiquidationMs.js +18 -0
  209. package/dist/esm/sdk/positions/index.js +7 -2
  210. package/dist/esm/sdk/positions/types.js +31 -1
  211. package/dist/esm/sdk/utils/abi-decode.js +2 -2
  212. package/dist/esm/sdk/utils/viem/executeMulticallBatches.js +31 -0
  213. package/dist/esm/sdk/utils/viem/index.js +2 -1
  214. package/dist/esm/sdk/utils/viem/simulateWithPriceUpdates.js +1 -1
  215. package/dist/types/abi/iExpirable.d.ts +14 -0
  216. package/dist/types/common-utils/utils/apy/get-single-quota-borrow-rate.d.ts +2 -0
  217. package/dist/types/common-utils/utils/creditAccount/calc-health-factor.d.ts +3 -0
  218. package/dist/types/common-utils/utils/creditAccount/calc-quota-borrow-rate.d.ts +2 -0
  219. package/dist/types/common-utils/utils/creditAccount/get-time-to-liquidation.d.ts +6 -1
  220. package/dist/types/common-utils/utils/creditAccount/liquidation-price.d.ts +3 -0
  221. package/dist/types/dev/compareOpportunities.d.ts +153 -0
  222. package/dist/types/model/charts.d.ts +349 -0
  223. package/dist/types/model/charts.schema.d.ts +364 -0
  224. package/dist/types/model/index.d.ts +8 -6
  225. package/dist/types/model/notices.d.ts +29 -0
  226. package/dist/types/model/notices.schema.d.ts +23 -0
  227. package/dist/types/model/opportunities.d.ts +9 -9
  228. package/dist/types/model/positions.d.ts +133 -7
  229. package/dist/types/model/positions.schema.d.ts +128 -1
  230. package/dist/types/new-sdk/AbstractNamespace.d.ts +15 -2
  231. package/dist/types/new-sdk/GearboxSDK.d.ts +14 -2
  232. package/dist/types/new-sdk/execute/ExecuteApi.d.ts +108 -0
  233. package/dist/types/new-sdk/execute/index.d.ts +2 -0
  234. package/dist/types/new-sdk/index.d.ts +8 -4
  235. package/dist/types/new-sdk/opportunities/OpportunitiesNamespace.d.ts +19 -7
  236. package/dist/types/new-sdk/opportunities/types.d.ts +30 -9
  237. package/dist/types/new-sdk/positions/PositionsNamespace.d.ts +4 -5
  238. package/dist/types/new-sdk/positions/types.d.ts +9 -9
  239. package/dist/types/new-sdk/simulate/SimulateApi.d.ts +90 -0
  240. package/dist/types/new-sdk/simulate/index.d.ts +3 -0
  241. package/dist/types/new-sdk/simulate/types.d.ts +508 -0
  242. package/dist/types/new-sdk/types.d.ts +35 -1
  243. package/dist/types/new-sdk/utils/index.d.ts +1 -2
  244. package/dist/types/offchain/AbstractOffchainNamespace.d.ts +5 -21
  245. package/dist/types/offchain/GearboxAPI.d.ts +6 -0
  246. package/dist/types/offchain/index.d.ts +4 -2
  247. package/dist/types/offchain/notices/OffchainNotices.d.ts +19 -0
  248. package/dist/types/offchain/notices/index.d.ts +2 -0
  249. package/dist/types/offchain/opportunities/OffchainOpportunities.d.ts +8 -4
  250. package/dist/types/offchain/positions/OffchainPositions.d.ts +8 -6
  251. package/dist/types/preview/preview/CreditAccountState.d.ts +6 -0
  252. package/dist/types/preview/preview/buildDelayedPreview.d.ts +5 -1
  253. package/dist/types/preview/preview/types.d.ts +4 -2
  254. package/dist/types/sdk/MultichainSDK.d.ts +0 -5
  255. package/dist/types/sdk/OnchainSDK.d.ts +1 -5
  256. package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +1 -7
  257. package/dist/types/sdk/accounts/credit-account-compressor/CreditAccountCompressor.d.ts +3 -12
  258. package/dist/types/sdk/accounts/credit-account-compressor/index.d.ts +2 -2
  259. package/dist/types/sdk/accounts/credit-account-compressor/types.d.ts +1 -19
  260. package/dist/types/sdk/accounts/index.d.ts +7 -5
  261. package/dist/types/sdk/accounts/intents/guards.d.ts +72 -0
  262. package/dist/types/sdk/accounts/intents/index.d.ts +130 -15
  263. package/dist/types/sdk/accounts/intents/math.d.ts +46 -0
  264. package/dist/types/sdk/accounts/intents/open-strategy.d.ts +64 -0
  265. package/dist/types/sdk/accounts/intents/operations.d.ts +215 -0
  266. package/dist/types/sdk/accounts/intents/plan.d.ts +189 -0
  267. package/dist/types/sdk/accounts/intents/realize.d.ts +35 -0
  268. package/dist/types/sdk/accounts/intents/testing/delayed.d.ts +50 -0
  269. package/dist/types/sdk/accounts/intents/testing/expect.d.ts +17 -21
  270. package/dist/types/sdk/accounts/intents/testing/market.d.ts +91 -0
  271. package/dist/types/sdk/accounts/intents/testing/sdk-mock.d.ts +64 -16
  272. package/dist/types/sdk/accounts/intents/tests/add-collateral.fixtures.d.ts +45 -0
  273. package/dist/types/sdk/accounts/intents/tests/adjust-leverage.fixtures.d.ts +56 -0
  274. package/dist/types/sdk/accounts/intents/tests/deposit.fixtures.d.ts +64 -0
  275. package/dist/types/sdk/accounts/intents/tests/finish-decrease-leverage.fixtures.d.ts +107 -0
  276. package/dist/types/sdk/accounts/intents/tests/finish-withdraw.fixtures.d.ts +136 -0
  277. package/dist/types/sdk/accounts/intents/tests/open-strategy.fixtures.d.ts +56 -0
  278. package/dist/types/sdk/accounts/intents/tests/withdraw-asset.fixtures.d.ts +60 -0
  279. package/dist/types/sdk/accounts/intents/tests/withdraw.fixtures.d.ts +79 -0
  280. package/dist/types/sdk/accounts/intents/types.d.ts +369 -43
  281. package/dist/types/sdk/accounts/intents/utils/adjust-state-to-snapshot.d.ts +13 -0
  282. package/dist/types/sdk/accounts/intents/utils/assemble-operation-calls.d.ts +1 -1
  283. package/dist/types/sdk/accounts/intents/utils/credit-account-slice.d.ts +29 -0
  284. package/dist/types/sdk/accounts/intents/utils/index.d.ts +7 -5
  285. package/dist/types/sdk/accounts/intents/utils/ledger.d.ts +41 -0
  286. package/dist/types/sdk/accounts/intents/utils/pick-token.d.ts +55 -0
  287. package/dist/types/sdk/accounts/intents/utils/quotas-for-update.d.ts +15 -4
  288. package/dist/types/sdk/accounts/intents/utils/router-path.d.ts +70 -0
  289. package/dist/types/sdk/accounts/intents/view.d.ts +15 -0
  290. package/dist/types/sdk/accounts/types.d.ts +17 -14
  291. package/dist/types/sdk/accounts/withdrawal-compressor/AbstractWithdrawalCompressorContract.d.ts +6 -0
  292. package/dist/types/sdk/accounts/withdrawal-compressor/types.d.ts +18 -0
  293. package/dist/types/sdk/base/TokensMeta.d.ts +44 -1
  294. package/dist/types/sdk/base/index.d.ts +2 -2
  295. package/dist/types/sdk/base/token-types.d.ts +12 -1
  296. package/dist/types/sdk/index.d.ts +28 -19
  297. package/dist/types/sdk/market/MarketRegister.d.ts +7 -3
  298. package/dist/types/sdk/market/ZapperRegister.d.ts +20 -2
  299. package/dist/types/sdk/market/credit/CreditManagerV310Contract.d.ts +0 -4
  300. package/dist/types/sdk/market/credit/CreditSuite.d.ts +6 -3
  301. package/dist/types/sdk/market/credit/index.d.ts +2 -1
  302. package/dist/types/sdk/market/credit/isStrategyCollateral.d.ts +74 -0
  303. package/dist/types/sdk/market/credit/types.d.ts +2 -9
  304. package/dist/types/sdk/market/index.d.ts +4 -2
  305. package/dist/types/sdk/market/math.d.ts +44 -34
  306. package/dist/types/sdk/market/oracle/PriceOracleBaseContract.d.ts +6 -2
  307. package/dist/types/sdk/market/oracle/types.d.ts +10 -2
  308. package/dist/types/sdk/market/pool/PoolV310Contract.d.ts +5 -0
  309. package/dist/types/sdk/market/pool/types.d.ts +5 -0
  310. package/dist/types/sdk/market/rwa/RWARegistry.d.ts +13 -0
  311. package/dist/types/sdk/market/types.d.ts +5 -1
  312. package/dist/types/sdk/opportunities/index.d.ts +1 -2
  313. package/dist/types/sdk/options.d.ts +0 -1
  314. package/dist/types/sdk/pools/PoolService.d.ts +32 -2
  315. package/dist/types/sdk/pools/index.d.ts +3 -3
  316. package/dist/types/sdk/pools/types.d.ts +109 -4
  317. package/dist/types/sdk/positions/PositionsService.d.ts +33 -2
  318. package/dist/types/sdk/positions/calcBorrowRate.d.ts +40 -0
  319. package/dist/types/sdk/positions/calcHealthFactor.d.ts +55 -0
  320. package/dist/types/sdk/positions/calcLiquidationPrice.d.ts +12 -0
  321. package/dist/types/sdk/positions/calcLiquidationPriceForTarget.d.ts +43 -0
  322. package/dist/types/sdk/positions/calcTimeToLiquidationMs.d.ts +16 -0
  323. package/dist/types/sdk/positions/index.d.ts +7 -2
  324. package/dist/types/sdk/positions/types.d.ts +58 -1
  325. package/dist/types/sdk/types/state.d.ts +6 -0
  326. package/dist/types/sdk/utils/viem/executeMulticallBatches.d.ts +39 -0
  327. package/dist/types/sdk/utils/viem/index.d.ts +3 -2
  328. package/package.json +2 -1
  329. package/dist/cjs/model/history.js +0 -53
  330. package/dist/cjs/model/history.schema.js +0 -128
  331. package/dist/cjs/sdk/accounts/intents/intents/index.js +0 -14
  332. package/dist/cjs/sdk/accounts/intents/intents/resume/add-collateral/add-collateral.fixtures.js +0 -121
  333. package/dist/cjs/sdk/accounts/intents/intents/resume/add-collateral/add-collateral.js +0 -15
  334. package/dist/cjs/sdk/accounts/intents/intents/resume/close/close.fixtures.js +0 -108
  335. package/dist/cjs/sdk/accounts/intents/intents/resume/close/close.js +0 -51
  336. package/dist/cjs/sdk/accounts/intents/intents/resume/decrease-leverage/decrease-leverage.fixtures.js +0 -130
  337. package/dist/cjs/sdk/accounts/intents/intents/resume/decrease-leverage/decrease-leverage.js +0 -83
  338. package/dist/cjs/sdk/accounts/intents/intents/resume/deposit/deposit.fixtures.js +0 -117
  339. package/dist/cjs/sdk/accounts/intents/intents/resume/deposit/deposit.js +0 -15
  340. package/dist/cjs/sdk/accounts/intents/intents/resume/increase-leverage/increase-leverage.fixtures.js +0 -95
  341. package/dist/cjs/sdk/accounts/intents/intents/resume/increase-leverage/increase-leverage.js +0 -15
  342. package/dist/cjs/sdk/accounts/intents/intents/resume/index.js +0 -13
  343. package/dist/cjs/sdk/accounts/intents/intents/resume/withdraw/withdraw.fixtures.js +0 -138
  344. package/dist/cjs/sdk/accounts/intents/intents/resume/withdraw/withdraw.js +0 -161
  345. package/dist/cjs/sdk/accounts/intents/operations/add-collateral/index.js +0 -17
  346. package/dist/cjs/sdk/accounts/intents/operations/claim-delayed/index.js +0 -54
  347. package/dist/cjs/sdk/accounts/intents/operations/close-credit-account/index.js +0 -26
  348. package/dist/cjs/sdk/accounts/intents/operations/decrease-debt/index.js +0 -12
  349. package/dist/cjs/sdk/accounts/intents/operations/increase-debt/index.js +0 -12
  350. package/dist/cjs/sdk/accounts/intents/operations/index.js +0 -27
  351. package/dist/cjs/sdk/accounts/intents/operations/quota-update/index.js +0 -22
  352. package/dist/cjs/sdk/accounts/intents/operations/repay-credit-account/index.js +0 -22
  353. package/dist/cjs/sdk/accounts/intents/operations/start-delayed-withdrawal/index.js +0 -18
  354. package/dist/cjs/sdk/accounts/intents/operations/swap/index.js +0 -18
  355. package/dist/cjs/sdk/accounts/intents/operations/unwrap-rwa-collateral/index.js +0 -27
  356. package/dist/cjs/sdk/accounts/intents/operations/withdraw-collateral/index.js +0 -43
  357. package/dist/cjs/sdk/accounts/intents/operations/wrap-rwa-collateral/index.js +0 -27
  358. package/dist/cjs/sdk/accounts/intents/quoters/close.js +0 -58
  359. package/dist/cjs/sdk/accounts/intents/quoters/index.js +0 -7
  360. package/dist/cjs/sdk/accounts/intents/quoters/swap.js +0 -79
  361. package/dist/cjs/sdk/accounts/intents/testing/expect.js +0 -167
  362. package/dist/cjs/sdk/accounts/intents/testing/resume.js +0 -172
  363. package/dist/cjs/sdk/accounts/intents/utils/simulate-adjust-state.js +0 -39
  364. package/dist/cjs/sdk/accounts/intents/utils/simulate-assets.js +0 -69
  365. package/dist/cjs/sdk/accounts/intents/utils/with-quota-update.js +0 -13
  366. package/dist/esm/model/history.js +0 -49
  367. package/dist/esm/model/history.schema.js +0 -116
  368. package/dist/esm/sdk/accounts/intents/intents/index.js +0 -8
  369. package/dist/esm/sdk/accounts/intents/intents/resume/add-collateral/add-collateral.fixtures.js +0 -107
  370. package/dist/esm/sdk/accounts/intents/intents/resume/add-collateral/add-collateral.js +0 -14
  371. package/dist/esm/sdk/accounts/intents/intents/resume/close/close.fixtures.js +0 -94
  372. package/dist/esm/sdk/accounts/intents/intents/resume/close/close.js +0 -50
  373. package/dist/esm/sdk/accounts/intents/intents/resume/decrease-leverage/decrease-leverage.fixtures.js +0 -114
  374. package/dist/esm/sdk/accounts/intents/intents/resume/decrease-leverage/decrease-leverage.js +0 -82
  375. package/dist/esm/sdk/accounts/intents/intents/resume/deposit/deposit.fixtures.js +0 -110
  376. package/dist/esm/sdk/accounts/intents/intents/resume/deposit/deposit.js +0 -14
  377. package/dist/esm/sdk/accounts/intents/intents/resume/increase-leverage/increase-leverage.fixtures.js +0 -88
  378. package/dist/esm/sdk/accounts/intents/intents/resume/increase-leverage/increase-leverage.js +0 -14
  379. package/dist/esm/sdk/accounts/intents/intents/resume/index.js +0 -7
  380. package/dist/esm/sdk/accounts/intents/intents/resume/withdraw/withdraw.fixtures.js +0 -121
  381. package/dist/esm/sdk/accounts/intents/intents/resume/withdraw/withdraw.js +0 -160
  382. package/dist/esm/sdk/accounts/intents/operations/add-collateral/index.js +0 -16
  383. package/dist/esm/sdk/accounts/intents/operations/claim-delayed/index.js +0 -52
  384. package/dist/esm/sdk/accounts/intents/operations/close-credit-account/index.js +0 -25
  385. package/dist/esm/sdk/accounts/intents/operations/decrease-debt/index.js +0 -11
  386. package/dist/esm/sdk/accounts/intents/operations/increase-debt/index.js +0 -11
  387. package/dist/esm/sdk/accounts/intents/operations/index.js +0 -14
  388. package/dist/esm/sdk/accounts/intents/operations/quota-update/index.js +0 -21
  389. package/dist/esm/sdk/accounts/intents/operations/repay-credit-account/index.js +0 -21
  390. package/dist/esm/sdk/accounts/intents/operations/start-delayed-withdrawal/index.js +0 -17
  391. package/dist/esm/sdk/accounts/intents/operations/swap/index.js +0 -17
  392. package/dist/esm/sdk/accounts/intents/operations/unwrap-rwa-collateral/index.js +0 -26
  393. package/dist/esm/sdk/accounts/intents/operations/withdraw-collateral/index.js +0 -42
  394. package/dist/esm/sdk/accounts/intents/operations/wrap-rwa-collateral/index.js +0 -26
  395. package/dist/esm/sdk/accounts/intents/quoters/close.js +0 -56
  396. package/dist/esm/sdk/accounts/intents/quoters/index.js +0 -3
  397. package/dist/esm/sdk/accounts/intents/quoters/swap.js +0 -77
  398. package/dist/esm/sdk/accounts/intents/testing/expect.js +0 -162
  399. package/dist/esm/sdk/accounts/intents/testing/resume.js +0 -157
  400. package/dist/esm/sdk/accounts/intents/utils/simulate-adjust-state.js +0 -38
  401. package/dist/esm/sdk/accounts/intents/utils/simulate-assets.js +0 -68
  402. package/dist/esm/sdk/accounts/intents/utils/with-quota-update.js +0 -12
  403. package/dist/types/model/history.d.ts +0 -153
  404. package/dist/types/model/history.schema.d.ts +0 -95
  405. package/dist/types/new-sdk/utils/history.d.ts +0 -18
  406. package/dist/types/sdk/accounts/intents/intents/index.d.ts +0 -8
  407. package/dist/types/sdk/accounts/intents/intents/resume/add-collateral/add-collateral.d.ts +0 -13
  408. package/dist/types/sdk/accounts/intents/intents/resume/add-collateral/add-collateral.fixtures.d.ts +0 -38
  409. package/dist/types/sdk/accounts/intents/intents/resume/close/close.d.ts +0 -26
  410. package/dist/types/sdk/accounts/intents/intents/resume/close/close.fixtures.d.ts +0 -63
  411. package/dist/types/sdk/accounts/intents/intents/resume/decrease-leverage/decrease-leverage.d.ts +0 -26
  412. package/dist/types/sdk/accounts/intents/intents/resume/decrease-leverage/decrease-leverage.fixtures.d.ts +0 -86
  413. package/dist/types/sdk/accounts/intents/intents/resume/deposit/deposit.d.ts +0 -13
  414. package/dist/types/sdk/accounts/intents/intents/resume/deposit/deposit.fixtures.d.ts +0 -48
  415. package/dist/types/sdk/accounts/intents/intents/resume/increase-leverage/increase-leverage.d.ts +0 -13
  416. package/dist/types/sdk/accounts/intents/intents/resume/increase-leverage/increase-leverage.fixtures.d.ts +0 -46
  417. package/dist/types/sdk/accounts/intents/intents/resume/index.d.ts +0 -7
  418. package/dist/types/sdk/accounts/intents/intents/resume/withdraw/withdraw.d.ts +0 -33
  419. package/dist/types/sdk/accounts/intents/intents/resume/withdraw/withdraw.fixtures.d.ts +0 -68
  420. package/dist/types/sdk/accounts/intents/operations/add-collateral/index.d.ts +0 -23
  421. package/dist/types/sdk/accounts/intents/operations/claim-delayed/index.d.ts +0 -55
  422. package/dist/types/sdk/accounts/intents/operations/close-credit-account/index.d.ts +0 -22
  423. package/dist/types/sdk/accounts/intents/operations/decrease-debt/index.d.ts +0 -18
  424. package/dist/types/sdk/accounts/intents/operations/increase-debt/index.d.ts +0 -18
  425. package/dist/types/sdk/accounts/intents/operations/index.d.ts +0 -14
  426. package/dist/types/sdk/accounts/intents/operations/quota-update/index.d.ts +0 -24
  427. package/dist/types/sdk/accounts/intents/operations/repay-credit-account/index.d.ts +0 -31
  428. package/dist/types/sdk/accounts/intents/operations/start-delayed-withdrawal/index.d.ts +0 -23
  429. package/dist/types/sdk/accounts/intents/operations/swap/index.d.ts +0 -28
  430. package/dist/types/sdk/accounts/intents/operations/types.d.ts +0 -21
  431. package/dist/types/sdk/accounts/intents/operations/unwrap-rwa-collateral/index.d.ts +0 -30
  432. package/dist/types/sdk/accounts/intents/operations/withdraw-collateral/index.d.ts +0 -36
  433. package/dist/types/sdk/accounts/intents/operations/wrap-rwa-collateral/index.d.ts +0 -30
  434. package/dist/types/sdk/accounts/intents/quoters/close.d.ts +0 -43
  435. package/dist/types/sdk/accounts/intents/quoters/index.d.ts +0 -3
  436. package/dist/types/sdk/accounts/intents/quoters/swap.d.ts +0 -43
  437. package/dist/types/sdk/accounts/intents/testing/resume.d.ts +0 -84
  438. package/dist/types/sdk/accounts/intents/utils/simulate-adjust-state.d.ts +0 -19
  439. package/dist/types/sdk/accounts/intents/utils/simulate-assets.d.ts +0 -21
  440. package/dist/types/sdk/accounts/intents/utils/with-quota-update.d.ts +0 -16
  441. /package/dist/cjs/{new-sdk/utils/history.js → model/notices.js} +0 -0
  442. /package/dist/cjs/{sdk/accounts/intents/operations → new-sdk/simulate}/types.js +0 -0
  443. /package/dist/esm/{new-sdk/utils/history.js → model/notices.js} +0 -0
  444. /package/dist/esm/{sdk/accounts/intents/operations → new-sdk/simulate}/types.js +0 -0
@@ -0,0 +1,240 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_model_charts = require("./charts.js");
3
+ const require_model_primitives_schema = require("./primitives.schema.js");
4
+ let zod_v4 = require("zod/v4");
5
+ //#region src/model/charts.schema.ts
6
+ /**
7
+ * Runtime schemas for {@link ./charts.js}, see the note in
8
+ * `primitives.schema.ts` on why they are written by hand.
9
+ *
10
+ * Metric schemas are shared with the backend, while
11
+ * {@link chartBundleSchemaFor} builds the response schema for one concrete
12
+ * request. Component schemas remain available for consumers that validate
13
+ * model fragments.
14
+ **/
15
+ /**
16
+ * {@link ChartRange}
17
+ **/
18
+ const chartRangeSchema = zod_v4.z.enum(require_model_charts.CHART_RANGES);
19
+ /**
20
+ * {@link PoolOpportunityChartMetric}
21
+ **/
22
+ const poolOpportunityChartMetricSchema = zod_v4.z.enum(require_model_charts.POOL_OPPORTUNITY_CHART_METRICS);
23
+ /**
24
+ * {@link StrategyOpportunityChartMetric}
25
+ **/
26
+ const strategyOpportunityChartMetricSchema = zod_v4.z.enum(require_model_charts.STRATEGY_OPPORTUNITY_CHART_METRICS);
27
+ /**
28
+ * {@link PoolPositionChartMetric}
29
+ **/
30
+ const poolPositionChartMetricSchema = zod_v4.z.enum(require_model_charts.POOL_POSITION_CHART_METRICS);
31
+ /**
32
+ * {@link StrategyPositionChartMetric}
33
+ **/
34
+ const strategyPositionChartMetricSchema = zod_v4.z.enum(require_model_charts.STRATEGY_POSITION_CHART_METRICS);
35
+ /**
36
+ * {@link ChartMetric}, every metric either kind of subject can chart.
37
+ **/
38
+ const chartMetricSchema = zod_v4.z.union([
39
+ poolOpportunityChartMetricSchema,
40
+ strategyOpportunityChartMetricSchema,
41
+ poolPositionChartMetricSchema,
42
+ strategyPositionChartMetricSchema
43
+ ]);
44
+ /**
45
+ * {@link ChartQuery}
46
+ **/
47
+ const chartQuerySchema = zod_v4.z.object({
48
+ metrics: zod_v4.z.array(chartMetricSchema).readonly().refine((metrics) => metrics.length > 0, { error: "a chart read needs at least one metric" }).refine((metrics) => new Set(metrics).size === metrics.length, { error: "a chart read needs distinct metrics" }),
49
+ range: chartRangeSchema
50
+ });
51
+ /**
52
+ * {@link ChartQuery} as a URL can carry it: the metrics comma-joined, since
53
+ * repeated `?metrics=` entries would order differently between clients and give
54
+ * one request two cache keys.
55
+ **/
56
+ const chartQueryParamsSchema = zod_v4.z.object({
57
+ metrics: zod_v4.z.string().regex(/^\w+(,\w+)*$/),
58
+ range: chartRangeSchema
59
+ });
60
+ /**
61
+ * Codec for {@link ChartQuery} to encode/decode to/from url query parameters.
62
+ *
63
+ * The one place the wire form of a chart request is decided. The SDK encodes
64
+ * with it, the backend decodes with it, and the checks that a read names at
65
+ * least one metric and names none of them twice ride along in both directions —
66
+ * so a bad request fails before it is issued, not after a round trip.
67
+ **/
68
+ const chartQueryCodec = zod_v4.z.codec(chartQueryParamsSchema, chartQuerySchema, {
69
+ decode: (params) => ({
70
+ metrics: params.metrics.split(","),
71
+ range: params.range
72
+ }),
73
+ encode: (query) => ({
74
+ metrics: query.metrics.join(","),
75
+ range: query.range
76
+ })
77
+ });
78
+ /**
79
+ * {@link ChartDenomination}
80
+ **/
81
+ const chartDenominationSchema = zod_v4.z.discriminatedUnion("unit", [
82
+ zod_v4.z.object({ unit: zod_v4.z.literal("bps") }),
83
+ zod_v4.z.object({ unit: zod_v4.z.literal("usd") }),
84
+ zod_v4.z.object({ unit: zod_v4.z.literal("scalar") }),
85
+ zod_v4.z.object({
86
+ unit: zod_v4.z.literal("token"),
87
+ base: require_model_primitives_schema.tokenSchema
88
+ }),
89
+ zod_v4.z.object({
90
+ unit: zod_v4.z.literal("ratio"),
91
+ base: require_model_primitives_schema.tokenSchema,
92
+ quote: require_model_primitives_schema.tokenSchema
93
+ })
94
+ ]);
95
+ /**
96
+ * {@link ChartValue}. `null` is a gap, never a zero.
97
+ **/
98
+ const chartValueSchema = zod_v4.z.number().nullable();
99
+ /**
100
+ * {@link ChartSeries}
101
+ **/
102
+ const chartSeriesSchema = zod_v4.z.union([zod_v4.z.intersection(zod_v4.z.object({
103
+ status: zod_v4.z.literal("ok"),
104
+ values: zod_v4.z.array(chartValueSchema)
105
+ }), chartDenominationSchema), zod_v4.z.object({
106
+ status: zod_v4.z.literal("unavailable"),
107
+ reason: zod_v4.z.object({
108
+ code: zod_v4.z.enum(require_model_charts.CHART_UNAVAILABLE_CODES),
109
+ message: zod_v4.z.string().optional()
110
+ })
111
+ })]);
112
+ /**
113
+ * {@link ChartWindow}
114
+ **/
115
+ const chartWindowSchema = zod_v4.z.object({
116
+ range: chartRangeSchema,
117
+ from: require_model_primitives_schema.timestampSchema,
118
+ to: require_model_primitives_schema.timestampSchema
119
+ });
120
+ const gridSamplingSchema = zod_v4.z.object({
121
+ kind: zod_v4.z.literal("grid"),
122
+ intervalSeconds: zod_v4.z.number().int().positive()
123
+ });
124
+ /**
125
+ * A bundle whose series are keyed by `keys`.
126
+ *
127
+ * `z.record` over a literal union is what enforces the metric set: a key that
128
+ * was not asked for is rejected, and one that was but is missing fails as an
129
+ * absent value. Exactly-once therefore needs no counting — an object cannot
130
+ * hold the same key twice.
131
+ **/
132
+ function chartBundleSchemaWith(keys, expectedRange) {
133
+ return zod_v4.z.object({
134
+ window: chartWindowSchema,
135
+ sampling: gridSamplingSchema,
136
+ timestamps: zod_v4.z.array(require_model_primitives_schema.timestampSchema),
137
+ series: zod_v4.z.record(keys, chartSeriesSchema)
138
+ }).superRefine((bundle, ctx) => checkChartBundle(bundle, ctx, expectedRange));
139
+ }
140
+ /**
141
+ * The invariants a bundle upholds beyond its shape, checked on every read so a
142
+ * backend that breaks one is rejected rather than plotted:
143
+ *
144
+ * - each available series holds exactly one value per timestamp, which is what
145
+ * makes two series of a bundle comparable at an index;
146
+ * - a series' unit is the one {@link CHART_METRIC_UNITS} gives the metric it is
147
+ * keyed by, so a consumer can format from either without them disagreeing;
148
+ * - the window's bounds are the axis' own, so a chart drawn from `window` and a
149
+ * chart drawn from `timestamps` cover the same span;
150
+ * - timestamps lie on the declared grid and are exactly one interval apart;
151
+ * - when validating a read, the response names the range that was requested.
152
+ **/
153
+ function checkChartBundle(bundle, ctx, expectedRange) {
154
+ const { sampling, timestamps, window, series } = bundle;
155
+ const entries = Object.entries(series);
156
+ for (const [metric, chart] of entries) {
157
+ if (chart.status !== "ok") continue;
158
+ if (chart.values.length !== timestamps.length) ctx.addIssue({
159
+ code: "custom",
160
+ path: [
161
+ "series",
162
+ metric,
163
+ "values"
164
+ ],
165
+ message: `series "${metric}" holds ${chart.values.length} values for ${timestamps.length} timestamps`
166
+ });
167
+ if (require_model_charts.CHART_METRIC_UNITS[metric] !== chart.unit) ctx.addIssue({
168
+ code: "custom",
169
+ path: [
170
+ "series",
171
+ metric,
172
+ "unit"
173
+ ],
174
+ message: `metric "${metric}" is ${require_model_charts.CHART_METRIC_UNITS[metric]}, not ${chart.unit}`
175
+ });
176
+ }
177
+ const first = timestamps.at(0);
178
+ const last = timestamps.at(-1);
179
+ if (first !== void 0 && first !== window.from) ctx.addIssue({
180
+ code: "custom",
181
+ path: ["window", "from"],
182
+ message: `window starts at ${window.from} but the axis starts at ${first}`
183
+ });
184
+ if (last !== void 0 && last !== window.to) ctx.addIssue({
185
+ code: "custom",
186
+ path: ["window", "to"],
187
+ message: `window ends at ${window.to} but the axis ends at ${last}`
188
+ });
189
+ if (expectedRange !== void 0 && window.range !== expectedRange) ctx.addIssue({
190
+ code: "custom",
191
+ path: ["window", "range"],
192
+ message: `requested range ${expectedRange}, received ${window.range}`
193
+ });
194
+ for (let i = 0; i < timestamps.length; i += 1) {
195
+ const timestamp = timestamps[i];
196
+ if (timestamp % sampling.intervalSeconds !== 0) ctx.addIssue({
197
+ code: "custom",
198
+ path: ["timestamps", i],
199
+ message: `timestamp ${timestamp} is not on the ${sampling.intervalSeconds}-second grid`
200
+ });
201
+ const previous = timestamps[i - 1];
202
+ if (previous !== void 0 && timestamp - previous !== sampling.intervalSeconds) ctx.addIssue({
203
+ code: "custom",
204
+ path: ["timestamps", i],
205
+ message: `timestamps are not ${sampling.intervalSeconds} seconds apart`
206
+ });
207
+ }
208
+ }
209
+ /**
210
+ * The schema one chart read is decoded with: a {@link ChartBundle} keyed by the
211
+ * requested distinct metrics, all of them and nothing else, for the requested
212
+ * range.
213
+ *
214
+ * Pinning the metrics is what upholds the `ChartBundle<Metrics>` a caller gets
215
+ * back — a response that answers a different question fails validation rather
216
+ * than being cast into the requested shape. The declared return type is the one
217
+ * the key schema actually enforces, which the compiler cannot see through a
218
+ * schema built from a runtime list.
219
+ **/
220
+ function chartBundleSchemaFor(metrics, range) {
221
+ if (metrics.length === 0) throw new RangeError("a chart read needs at least one metric");
222
+ if (new Set(metrics).size !== metrics.length) throw new RangeError("a chart read needs distinct metrics");
223
+ const literals = metrics.map((metric) => zod_v4.z.literal(metric));
224
+ return chartBundleSchemaWith(zod_v4.z.union(literals), range);
225
+ }
226
+ //#endregion
227
+ exports.chartBundleSchemaFor = chartBundleSchemaFor;
228
+ exports.chartDenominationSchema = chartDenominationSchema;
229
+ exports.chartMetricSchema = chartMetricSchema;
230
+ exports.chartQueryCodec = chartQueryCodec;
231
+ exports.chartQueryParamsSchema = chartQueryParamsSchema;
232
+ exports.chartQuerySchema = chartQuerySchema;
233
+ exports.chartRangeSchema = chartRangeSchema;
234
+ exports.chartSeriesSchema = chartSeriesSchema;
235
+ exports.chartValueSchema = chartValueSchema;
236
+ exports.chartWindowSchema = chartWindowSchema;
237
+ exports.poolOpportunityChartMetricSchema = poolOpportunityChartMetricSchema;
238
+ exports.poolPositionChartMetricSchema = poolPositionChartMetricSchema;
239
+ exports.strategyOpportunityChartMetricSchema = strategyOpportunityChartMetricSchema;
240
+ exports.strategyPositionChartMetricSchema = strategyPositionChartMetricSchema;
@@ -1,34 +1,50 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_model_charts = require("./charts.js");
3
+ const require_model_primitives_schema = require("./primitives.schema.js");
4
+ const require_model_charts_schema = require("./charts.schema.js");
2
5
  require("./curators.js");
3
6
  const require_model_curators_schema = require("./curators.schema.js");
4
7
  const require_model_filters = require("./filters.js");
5
8
  const require_model_filters_schema = require("./filters.schema.js");
6
- const require_model_history = require("./history.js");
7
- const require_model_primitives_schema = require("./primitives.schema.js");
8
- const require_model_opportunities_schema = require("./opportunities.schema.js");
9
- const require_model_liquidations_schema = require("./liquidations.schema.js");
10
- const require_model_positions_schema = require("./positions.schema.js");
11
- const require_model_history_schema = require("./history.schema.js");
12
9
  const require_model_liquidations = require("./liquidations.js");
10
+ const require_model_liquidations_schema = require("./liquidations.schema.js");
11
+ require("./notices.js");
12
+ const require_model_notices_schema = require("./notices.schema.js");
13
13
  const require_model_opportunities = require("./opportunities.js");
14
+ const require_model_opportunities_schema = require("./opportunities.schema.js");
14
15
  const require_model_positions = require("./positions.js");
16
+ const require_model_positions_schema = require("./positions.schema.js");
15
17
  require("./primitives.js");
16
18
  require("./response.js");
17
19
  const require_model_response_schema = require("./response.schema.js");
20
+ exports.CHART_METRIC_UNITS = require_model_charts.CHART_METRIC_UNITS;
21
+ exports.CHART_RANGES = require_model_charts.CHART_RANGES;
22
+ exports.CHART_UNAVAILABLE_CODES = require_model_charts.CHART_UNAVAILABLE_CODES;
18
23
  exports.FILTER_ALL = require_model_filters.FILTER_ALL;
19
- exports.POOL_HISTORY_METRICS = require_model_history.POOL_HISTORY_METRICS;
20
- exports.POOL_POSITION_HISTORY_METRICS = require_model_history.POOL_POSITION_HISTORY_METRICS;
21
- exports.STRATEGY_HISTORY_METRICS = require_model_history.STRATEGY_HISTORY_METRICS;
22
- exports.STRATEGY_POSITION_HISTORY_METRICS = require_model_history.STRATEGY_POSITION_HISTORY_METRICS;
24
+ exports.POOL_OPPORTUNITY_CHART_METRICS = require_model_charts.POOL_OPPORTUNITY_CHART_METRICS;
25
+ exports.POOL_POSITION_CHART_METRICS = require_model_charts.POOL_POSITION_CHART_METRICS;
26
+ exports.STRATEGY_OPPORTUNITY_CHART_METRICS = require_model_charts.STRATEGY_OPPORTUNITY_CHART_METRICS;
27
+ exports.STRATEGY_POSITION_CHART_METRICS = require_model_charts.STRATEGY_POSITION_CHART_METRICS;
23
28
  exports.amountSchema = require_model_primitives_schema.amountSchema;
24
29
  exports.apyBreakdownSchema = require_model_opportunities_schema.apyBreakdownSchema;
25
30
  exports.assetTypeSchema = require_model_primitives_schema.assetTypeSchema;
26
31
  exports.booleanParamSchema = require_model_filters_schema.booleanParamSchema;
32
+ exports.borrowRateBreakdownSchema = require_model_positions_schema.borrowRateBreakdownSchema;
27
33
  exports.bpsSchema = require_model_primitives_schema.bpsSchema;
28
34
  exports.chainFailedSchema = require_model_response_schema.chainFailedSchema;
29
35
  exports.chainIdSchema = require_model_primitives_schema.chainIdSchema;
30
36
  exports.chainMetadataSchema = require_model_response_schema.chainMetadataSchema;
31
37
  exports.chainSucceededSchema = require_model_response_schema.chainSucceededSchema;
38
+ exports.chartBundleSchemaFor = require_model_charts_schema.chartBundleSchemaFor;
39
+ exports.chartDenominationSchema = require_model_charts_schema.chartDenominationSchema;
40
+ exports.chartMetricSchema = require_model_charts_schema.chartMetricSchema;
41
+ exports.chartQueryCodec = require_model_charts_schema.chartQueryCodec;
42
+ exports.chartQueryParamsSchema = require_model_charts_schema.chartQueryParamsSchema;
43
+ exports.chartQuerySchema = require_model_charts_schema.chartQuerySchema;
44
+ exports.chartRangeSchema = require_model_charts_schema.chartRangeSchema;
45
+ exports.chartSeriesSchema = require_model_charts_schema.chartSeriesSchema;
46
+ exports.chartValueSchema = require_model_charts_schema.chartValueSchema;
47
+ exports.chartWindowSchema = require_model_charts_schema.chartWindowSchema;
32
48
  exports.curatorNameSchema = require_model_curators_schema.curatorNameSchema;
33
49
  exports.curatorSchema = require_model_curators_schema.curatorSchema;
34
50
  exports.dataSourceSchema = require_model_response_schema.dataSourceSchema;
@@ -36,11 +52,6 @@ exports.delayedReceivedAssetSchema = require_model_liquidations_schema.delayedRe
36
52
  exports.encodeFlag = require_model_filters_schema.encodeFlag;
37
53
  exports.filterAllSchema = require_model_filters_schema.filterAllSchema;
38
54
  exports.filterable = require_model_filters_schema.filterable;
39
- exports.historyChartMetadataSchema = require_model_history_schema.historyChartMetadataSchema;
40
- exports.historyMetricSchema = require_model_history_schema.historyMetricSchema;
41
- exports.historyPointSchema = require_model_history_schema.historyPointSchema;
42
- exports.historyRangeSchema = require_model_history_schema.historyRangeSchema;
43
- exports.historySeriesSchema = require_model_history_schema.historySeriesSchema;
44
55
  exports.instantReceivedAssetSchema = require_model_liquidations_schema.instantReceivedAssetSchema;
45
56
  exports.isFilterSet = require_model_filters.isFilterSet;
46
57
  exports.leverageSchema = require_model_primitives_schema.leverageSchema;
@@ -53,12 +64,13 @@ exports.liquidationPositionSchema = require_model_liquidations_schema.liquidatio
53
64
  exports.matchesLiquidatableAccountFilter = require_model_liquidations.matchesLiquidatableAccountFilter;
54
65
  exports.matchesOpportunityFilter = require_model_opportunities.matchesOpportunityFilter;
55
66
  exports.matchesPositionFilter = require_model_positions.matchesPositionFilter;
67
+ exports.noticeKindSchema = require_model_notices_schema.noticeKindSchema;
68
+ exports.noticeSchema = require_model_notices_schema.noticeSchema;
56
69
  exports.opportunityBaseSchema = require_model_opportunities_schema.opportunityBaseSchema;
57
70
  exports.opportunityDetailSchema = require_model_opportunities_schema.opportunityDetailSchema;
58
71
  exports.opportunityFilterQueryParamsSchema = require_model_opportunities_schema.opportunityFilterQueryParamsSchema;
59
72
  exports.opportunityFilterQuerySchema = require_model_opportunities_schema.opportunityFilterQuerySchema;
60
73
  exports.opportunityFilterSchema = require_model_opportunities_schema.opportunityFilterSchema;
61
- exports.opportunityHistoryQuerySchema = require_model_history_schema.opportunityHistoryQuerySchema;
62
74
  exports.opportunityId = require_model_opportunities.opportunityId;
63
75
  exports.opportunityKeySchema = require_model_opportunities_schema.opportunityKeySchema;
64
76
  exports.opportunityKindSchema = require_model_opportunities_schema.opportunityKindSchema;
@@ -68,12 +80,12 @@ exports.pointRewardsSchema = require_model_opportunities_schema.pointRewardsSche
68
80
  exports.pointsProgramPnLSchema = require_model_positions_schema.pointsProgramPnLSchema;
69
81
  exports.pointsProgramSchema = require_model_opportunities_schema.pointsProgramSchema;
70
82
  exports.pointsRewardsPnLSchema = require_model_positions_schema.pointsRewardsPnLSchema;
71
- exports.poolHistoryMetricSchema = require_model_history_schema.poolHistoryMetricSchema;
83
+ exports.poolOpportunityChartMetricSchema = require_model_charts_schema.poolOpportunityChartMetricSchema;
72
84
  exports.poolOpportunityDetailSchema = require_model_opportunities_schema.poolOpportunityDetailSchema;
73
85
  exports.poolOpportunityId = require_model_opportunities.poolOpportunityId;
74
86
  exports.poolOpportunityKeySchema = require_model_opportunities_schema.poolOpportunityKeySchema;
75
87
  exports.poolOpportunitySchema = require_model_opportunities_schema.poolOpportunitySchema;
76
- exports.poolPositionHistoryMetricSchema = require_model_history_schema.poolPositionHistoryMetricSchema;
88
+ exports.poolPositionChartMetricSchema = require_model_charts_schema.poolPositionChartMetricSchema;
77
89
  exports.poolPositionId = require_model_positions.poolPositionId;
78
90
  exports.poolPositionKeySchema = require_model_positions_schema.poolPositionKeySchema;
79
91
  exports.poolPositionSchema = require_model_positions_schema.poolPositionSchema;
@@ -81,12 +93,13 @@ exports.positionCollateralSchema = require_model_positions_schema.positionCollat
81
93
  exports.positionFilterQueryParamsSchema = require_model_positions_schema.positionFilterQueryParamsSchema;
82
94
  exports.positionFilterQuerySchema = require_model_positions_schema.positionFilterQuerySchema;
83
95
  exports.positionFilterSchema = require_model_positions_schema.positionFilterSchema;
84
- exports.positionHistoryMetricSchema = require_model_history_schema.positionHistoryMetricSchema;
85
- exports.positionHistoryQuerySchema = require_model_history_schema.positionHistoryQuerySchema;
86
96
  exports.positionId = require_model_positions.positionId;
87
97
  exports.positionKeySchema = require_model_positions_schema.positionKeySchema;
88
98
  exports.positionKindSchema = require_model_positions_schema.positionKindSchema;
89
99
  exports.positionSchema = require_model_positions_schema.positionSchema;
100
+ exports.positionTransactionKindSchema = require_model_positions_schema.positionTransactionKindSchema;
101
+ exports.positionTransactionSchema = require_model_positions_schema.positionTransactionSchema;
102
+ exports.positionsTotalsSchema = require_model_positions_schema.positionsTotalsSchema;
90
103
  exports.priceFeedDataSchema = require_model_opportunities_schema.priceFeedDataSchema;
91
104
  exports.priceFeedSummarySchema = require_model_opportunities_schema.priceFeedSummarySchema;
92
105
  exports.quotaAssetSchema = require_model_opportunities_schema.quotaAssetSchema;
@@ -97,12 +110,12 @@ exports.responseMetadataSchema = require_model_response_schema.responseMetadataS
97
110
  exports.responseSchema = require_model_response_schema.responseSchema;
98
111
  exports.rewardsPnLSchema = require_model_positions_schema.rewardsPnLSchema;
99
112
  exports.rewardsSchema = require_model_opportunities_schema.rewardsSchema;
100
- exports.strategyHistoryMetricSchema = require_model_history_schema.strategyHistoryMetricSchema;
113
+ exports.strategyOpportunityChartMetricSchema = require_model_charts_schema.strategyOpportunityChartMetricSchema;
101
114
  exports.strategyOpportunityDetailSchema = require_model_opportunities_schema.strategyOpportunityDetailSchema;
102
115
  exports.strategyOpportunityId = require_model_opportunities.strategyOpportunityId;
103
116
  exports.strategyOpportunityKeySchema = require_model_opportunities_schema.strategyOpportunityKeySchema;
104
117
  exports.strategyOpportunitySchema = require_model_opportunities_schema.strategyOpportunitySchema;
105
- exports.strategyPositionHistoryMetricSchema = require_model_history_schema.strategyPositionHistoryMetricSchema;
118
+ exports.strategyPositionChartMetricSchema = require_model_charts_schema.strategyPositionChartMetricSchema;
106
119
  exports.strategyPositionId = require_model_positions.strategyPositionId;
107
120
  exports.strategyPositionKeySchema = require_model_positions_schema.strategyPositionKeySchema;
108
121
  exports.strategyPositionSchema = require_model_positions_schema.strategyPositionSchema;
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_sdk_utils_zod = require("../sdk/utils/zod.js");
3
- const require_model_filters_schema = require("./filters.schema.js");
4
3
  const require_model_primitives_schema = require("./primitives.schema.js");
4
+ const require_model_filters_schema = require("./filters.schema.js");
5
5
  let zod_v4 = require("zod/v4");
6
6
  //#region src/model/liquidations.schema.ts
7
7
  /**
@@ -0,0 +1,25 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_model_primitives_schema = require("./primitives.schema.js");
3
+ let zod_v4 = require("zod/v4");
4
+ //#region src/model/notices.schema.ts
5
+ /**
6
+ * {@link NoticeKind}
7
+ **/
8
+ const noticeKindSchema = zod_v4.z.union([
9
+ zod_v4.z.literal("expired"),
10
+ zod_v4.z.literal("externalRewards"),
11
+ zod_v4.z.literal("extraApy"),
12
+ zod_v4.z.literal("warning"),
13
+ zod_v4.z.literal("disclaimer")
14
+ ]);
15
+ /**
16
+ * {@link Notice}
17
+ **/
18
+ const noticeSchema = zod_v4.z.object({
19
+ kind: noticeKindSchema,
20
+ message: zod_v4.z.string(),
21
+ token: require_model_primitives_schema.tokenSchema.optional()
22
+ });
23
+ //#endregion
24
+ exports.noticeKindSchema = noticeKindSchema;
25
+ exports.noticeSchema = noticeSchema;
@@ -1,9 +1,9 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_sdk_utils_zod = require("../sdk/utils/zod.js");
3
+ const require_model_primitives_schema = require("./primitives.schema.js");
3
4
  const require_model_curators_schema = require("./curators.schema.js");
4
5
  const require_model_filters = require("./filters.js");
5
6
  const require_model_filters_schema = require("./filters.schema.js");
6
- const require_model_primitives_schema = require("./primitives.schema.js");
7
7
  let zod_v4 = require("zod/v4");
8
8
  //#region src/model/opportunities.schema.ts
9
9
  /**
@@ -1,10 +1,10 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_sdk_utils_zod = require("../sdk/utils/zod.js");
3
+ const require_model_primitives_schema = require("./primitives.schema.js");
3
4
  const require_model_filters = require("./filters.js");
4
5
  const require_model_filters_schema = require("./filters.schema.js");
5
- const require_model_primitives_schema = require("./primitives.schema.js");
6
- const require_model_opportunities_schema = require("./opportunities.schema.js");
7
6
  const require_model_liquidations_schema = require("./liquidations.schema.js");
7
+ const require_model_opportunities_schema = require("./opportunities.schema.js");
8
8
  let zod_v4 = require("zod/v4");
9
9
  //#region src/model/positions.schema.ts
10
10
  /**
@@ -73,6 +73,15 @@ const poolPositionSchema = zod_v4.z.object({
73
73
  pnl: pnlBreakdownSchema.optional()
74
74
  });
75
75
  /**
76
+ * {@link BorrowRateBreakdown}
77
+ **/
78
+ const borrowRateBreakdownSchema = zod_v4.z.object({
79
+ total: require_model_primitives_schema.bpsSchema,
80
+ totalOnDebt: require_model_primitives_schema.bpsSchema,
81
+ base: require_model_primitives_schema.bpsSchema,
82
+ quotas: zod_v4.z.record(require_sdk_utils_zod.ZodAddress(), require_model_primitives_schema.bpsSchema)
83
+ });
84
+ /**
76
85
  * {@link StrategyPosition}
77
86
  **/
78
87
  const strategyPositionSchema = zod_v4.z.object({
@@ -88,6 +97,9 @@ const strategyPositionSchema = zod_v4.z.object({
88
97
  totalDebt: require_model_primitives_schema.tokenAmountSchema,
89
98
  totalValue: require_model_primitives_schema.tokenAmountSchema,
90
99
  healthFactor: require_model_primitives_schema.bpsSchema,
100
+ borrowRate: borrowRateBreakdownSchema.optional(),
101
+ timeToLiquidation: require_sdk_utils_zod.ZodBigInt().nullable().optional(),
102
+ liquidationPrice: require_sdk_utils_zod.ZodBigInt().nullable().optional(),
91
103
  pnl: pnlBreakdownSchema.optional(),
92
104
  collaterals: zod_v4.z.array(positionCollateralSchema)
93
105
  });
@@ -162,7 +174,38 @@ const positionKeySchema = zod_v4.z.discriminatedUnion("kind", [zod_v4.z.object({
162
174
  kind: zod_v4.z.literal("strategy"),
163
175
  ...strategyPositionKeySchema.shape
164
176
  })]);
177
+ /**
178
+ * {@link PositionsTotals}
179
+ **/
180
+ const positionsTotalsSchema = zod_v4.z.object({
181
+ currentYield: require_model_opportunities_schema.apyBreakdownSchema.nullable(),
182
+ pnl: pnlBreakdownSchema.nullable(),
183
+ netValueUsd: zod_v4.z.number().nullable(),
184
+ claimableUsd: zod_v4.z.number().nullable()
185
+ });
186
+ /**
187
+ * {@link PositionTransactionKind}
188
+ **/
189
+ const positionTransactionKindSchema = zod_v4.z.union([
190
+ zod_v4.z.literal("open"),
191
+ zod_v4.z.literal("deposit"),
192
+ zod_v4.z.literal("withdraw"),
193
+ zod_v4.z.literal("adjustLeverage"),
194
+ zod_v4.z.literal("addCollateral"),
195
+ zod_v4.z.literal("withdrawCollateral"),
196
+ zod_v4.z.literal("liquidation")
197
+ ]);
198
+ /**
199
+ * {@link PositionTransaction}
200
+ **/
201
+ const positionTransactionSchema = zod_v4.z.object({
202
+ txHash: require_sdk_utils_zod.ZodHex(),
203
+ timestamp: require_model_primitives_schema.timestampSchema,
204
+ kind: positionTransactionKindSchema,
205
+ assets: zod_v4.z.array(require_model_primitives_schema.tokenAmountSchema)
206
+ });
165
207
  //#endregion
208
+ exports.borrowRateBreakdownSchema = borrowRateBreakdownSchema;
166
209
  exports.pnlBreakdownSchema = pnlBreakdownSchema;
167
210
  exports.pointsProgramPnLSchema = pointsProgramPnLSchema;
168
211
  exports.pointsRewardsPnLSchema = pointsRewardsPnLSchema;
@@ -175,6 +218,9 @@ exports.positionFilterSchema = positionFilterSchema;
175
218
  exports.positionKeySchema = positionKeySchema;
176
219
  exports.positionKindSchema = positionKindSchema;
177
220
  exports.positionSchema = positionSchema;
221
+ exports.positionTransactionKindSchema = positionTransactionKindSchema;
222
+ exports.positionTransactionSchema = positionTransactionSchema;
223
+ exports.positionsTotalsSchema = positionsTotalsSchema;
178
224
  exports.rewardsPnLSchema = rewardsPnLSchema;
179
225
  exports.strategyPositionKeySchema = strategyPositionKeySchema;
180
226
  exports.strategyPositionSchema = strategyPositionSchema;
@@ -18,23 +18,34 @@ var AbstractNamespace = class {
18
18
  **/
19
19
  maxOffchainLagSeconds;
20
20
  logger;
21
+ /**
22
+ * The SDK's loading policy, awaited before every on-chain leg: attached, and
23
+ * the touched chains no older than the SDK allows.
24
+ **/
25
+ ensureFresh;
21
26
  #name;
22
27
  #onchain;
23
28
  #offchain;
29
+ /** {@link onchain}, built once: the source's methods behind the loading policy. */
30
+ #onchainView;
24
31
  constructor(name, onchain, offchain, options) {
25
32
  this.#name = name;
26
33
  this.#onchain = onchain;
27
34
  this.#offchain = offchain;
28
35
  this.maxOffchainLagSeconds = options.maxOffchainLagSeconds;
36
+ this.ensureFresh = options.ensureFresh;
29
37
  this.logger = options.logger?.child?.({ name }) ?? options.logger;
38
+ this.#onchainView = onchain && options.ensureFresh ? behindLoadingPolicy(onchain, options.ensureFresh) : onchain;
30
39
  }
31
40
  /**
32
- * The on-chain source namespace on its own. Throws
41
+ * The on-chain source namespace on its own — every read of it attaches and
42
+ * revalidates like a merged read does, so a consumer showing the two sources
43
+ * separately still gets the SDK's loading policy. Throws
33
44
  * {@link SourceUnavailableError} in `offchain` mode.
34
45
  **/
35
46
  get onchain() {
36
- if (!this.#onchain) throw new require_new_sdk_errors_SourceUnavailableError.SourceUnavailableError(this.#name, "onchain");
37
- return this.#onchain;
47
+ if (!this.#onchainView) throw new require_new_sdk_errors_SourceUnavailableError.SourceUnavailableError(this.#name, "onchain");
48
+ return this.#onchainView;
38
49
  }
39
50
  /**
40
51
  * The backend source namespace on its own. Throws
@@ -51,7 +62,10 @@ var AbstractNamespace = class {
51
62
  async merged(action, query) {
52
63
  const onchain = this.#onchain;
53
64
  const offchain = this.#offchain;
54
- const [fromChain, fromBackend] = await Promise.all([this.#ask(action, "onchain", onchain, query.fromChain), this.#ask(action, "offchain", offchain, query.fromBackend)]);
65
+ const [fromChain, fromBackend] = await Promise.all([this.#ask(action, "onchain", onchain, async (source) => {
66
+ await this.ensureFresh?.(query.chainIds);
67
+ return query.fromChain(source);
68
+ }), this.#ask(action, "offchain", offchain, query.fromBackend)]);
55
69
  const merged = query.merge(fromChain.response, fromBackend.response);
56
70
  if (merged && !require_new_sdk_errors_everyChainFailed.everyChainFailed(merged.meta)) return merged;
57
71
  const sole = onchain && offchain ? void 0 : fromChain.error ?? fromBackend.error;
@@ -72,5 +86,21 @@ var AbstractNamespace = class {
72
86
  }
73
87
  }
74
88
  };
89
+ /**
90
+ * The source's every method, awaiting the loading policy first. The policy is
91
+ * asked for every chain — an escape hatch does not tell which chains a call
92
+ * touches (the merged reads do, and scope it); the object identity differs
93
+ * from the source's, its type does not.
94
+ **/
95
+ function behindLoadingPolicy(source, ensureFresh) {
96
+ return new Proxy(source, { get(target, property, receiver) {
97
+ const value = Reflect.get(target, property, receiver);
98
+ if (typeof value !== "function") return value;
99
+ return async (...args) => {
100
+ await ensureFresh();
101
+ return Reflect.apply(value, target, args);
102
+ };
103
+ } });
104
+ }
75
105
  //#endregion
76
106
  exports.AbstractNamespace = AbstractNamespace;