@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,361 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_sdk_utils_hex = require("../../sdk/utils/hex.js");
3
+ const require_sdk_base_MultichainConstruct = require("../../sdk/base/MultichainConstruct.js");
4
+ const require_sdk_accounts_intents_utils_credit_account_slice = require("../../sdk/accounts/intents/utils/credit-account-slice.js");
5
+ const require_sdk_accounts_intents_index = require("../../sdk/accounts/intents/index.js");
6
+ require("../../sdk/index.js");
7
+ //#region src/new-sdk/simulate/SimulateApi.ts
8
+ /**
9
+ * {@inheritDoc OpportunitiesSimulate}
10
+ *
11
+ * Holds no state of its own: it owns the mapping from the public,
12
+ * read-model-shaped request to the engine's intent, and nothing else. All
13
+ * protocol knowledge stays in `CreditAccountOperationsService` and
14
+ * `PoolService`.
15
+ *
16
+ * A simulation names one chain, so it reads through
17
+ * {@link MultichainConstruct.queryChain}: there is no second source to fall back
18
+ * to, hence a chain the SDK does not cover, or one that fails the read, throws
19
+ * rather than answering with empty metadata.
20
+ **/
21
+ var SimulateApi = class extends require_sdk_base_MultichainConstruct.MultichainConstruct {
22
+ #ensureFresh;
23
+ constructor(sdk, ensureFresh) {
24
+ super(sdk);
25
+ this.#ensureFresh = ensureFresh;
26
+ }
27
+ async queryChain(props) {
28
+ await this.#ensureFresh?.([this.sdk.chain(props.network).chainId]);
29
+ return super.queryChain(props);
30
+ }
31
+ /**
32
+ * {@inheritDoc OpportunitiesSimulate.delayed}
33
+ **/
34
+ delayed = {
35
+ withdrawStrategy: (position, params) => this.#startDelayedIntent(position, params, {
36
+ type: "WITHDRAW",
37
+ amount: params.amount,
38
+ to: params.to,
39
+ tokenOut: params.tokenOut,
40
+ sourceToken: params.sourceToken
41
+ }),
42
+ adjustLeverage: (position, params) => this.#startDelayedIntent(position, params, {
43
+ type: "ADJUST_LEVERAGE",
44
+ targetLeverage: params.targetLeverage,
45
+ token: params.token
46
+ }),
47
+ finish: (position, params) => this.queryChain({
48
+ network: position.chainId,
49
+ run: async (sdk) => {
50
+ const intent = resumable(params.intent ?? params.claimable.intent);
51
+ if (!intent) return {
52
+ ok: false,
53
+ reason: "noRecordedIntent"
54
+ };
55
+ return service(sdk).finishIntent({
56
+ intent,
57
+ claimable: params.claimable,
58
+ creditAccount: await slice(sdk, position.creditAccount),
59
+ sdk,
60
+ slippage: params.slippage,
61
+ quotaReserve: params.quotaReserve
62
+ });
63
+ }
64
+ })
65
+ };
66
+ /**
67
+ * {@inheritDoc OpportunitiesSimulate.deposit}
68
+ **/
69
+ deposit(pool, params) {
70
+ const { marketRegister, pools } = this.sdk.chain(pool.chainId);
71
+ const tokenIn = params.tokenIn ?? marketRegister.findByPool(pool.pool).pool.underlying;
72
+ const tokenOut = lpRoute(params.tokenOut, () => pools.getDepositTokensOut(pool.pool, tokenIn));
73
+ if (!tokenOut) return {
74
+ ok: false,
75
+ reason: "unsupportedTokenPair"
76
+ };
77
+ const preview = pools.simulateDeposit({
78
+ pool: pool.pool,
79
+ amount: params.amount,
80
+ tokenIn,
81
+ tokenOut
82
+ });
83
+ const call = pools.addLiquidity({
84
+ collateral: preview.tokenIn,
85
+ pool: pool.pool,
86
+ wallet: params.wallet,
87
+ meta: pools.getDepositMetadata(pool.pool, tokenIn, tokenOut)
88
+ });
89
+ if (!call) return {
90
+ ok: false,
91
+ reason: "unsupportedTokenPair"
92
+ };
93
+ return {
94
+ ok: true,
95
+ operations: [],
96
+ preview,
97
+ calls: call.calls
98
+ };
99
+ }
100
+ /**
101
+ * {@inheritDoc OpportunitiesSimulate.withdraw}
102
+ **/
103
+ withdraw(pool, params) {
104
+ const { pools } = this.sdk.chain(pool.chainId);
105
+ const tokenIn = params.tokenIn ?? pool.pool;
106
+ const tokenOut = lpRoute(params.tokenOut, () => pools.getWithdrawalTokensOut(pool.pool, tokenIn));
107
+ if (!tokenOut) return {
108
+ ok: false,
109
+ reason: "unsupportedTokenPair"
110
+ };
111
+ const preview = pools.simulateWithdraw({
112
+ pool: pool.pool,
113
+ amount: params.amount,
114
+ tokenIn,
115
+ tokenOut
116
+ });
117
+ const { calls } = pools.removeLiquidity({
118
+ pool: pool.pool,
119
+ amount: params.amount,
120
+ wallet: params.wallet,
121
+ permit: void 0,
122
+ meta: pools.getWithdrawalMetadata(pool.pool, tokenIn, tokenOut),
123
+ mode: "withdraw"
124
+ });
125
+ return {
126
+ ok: true,
127
+ operations: [],
128
+ preview,
129
+ calls
130
+ };
131
+ }
132
+ /**
133
+ * {@inheritDoc OpportunitiesSimulate.redeem}
134
+ **/
135
+ redeem(pool, params) {
136
+ const { pools } = this.sdk.chain(pool.chainId);
137
+ const tokenIn = params.tokenIn ?? pool.pool;
138
+ const tokenOut = lpRoute(params.tokenOut, () => pools.getWithdrawalTokensOut(pool.pool, tokenIn));
139
+ if (!tokenOut) return {
140
+ ok: false,
141
+ reason: "unsupportedTokenPair"
142
+ };
143
+ const preview = pools.simulateRedeem({
144
+ pool: pool.pool,
145
+ amount: params.amount,
146
+ tokenIn,
147
+ tokenOut
148
+ });
149
+ const { calls } = pools.removeLiquidity({
150
+ pool: pool.pool,
151
+ amount: params.amount,
152
+ wallet: params.wallet,
153
+ permit: void 0,
154
+ meta: pools.getWithdrawalMetadata(pool.pool, tokenIn, tokenOut),
155
+ mode: "redeem"
156
+ });
157
+ return {
158
+ ok: true,
159
+ operations: [],
160
+ preview,
161
+ calls
162
+ };
163
+ }
164
+ /**
165
+ * {@inheritDoc OpportunitiesSimulate.openNewStrategy}
166
+ **/
167
+ async openNewStrategy(strategy, params) {
168
+ return this.queryChain({
169
+ network: strategy.chainId,
170
+ run: (sdk) => service(sdk).openStrategyIntent({
171
+ sdk,
172
+ creditManager: strategy.creditManager,
173
+ collateral: params.collateral,
174
+ targetToken: params.targetToken ?? strategy.targetCollateral,
175
+ leverage: params.leverage,
176
+ leftoverBalances: params.leftoverBalances,
177
+ slippage: params.slippage,
178
+ quotaReserve: params.quotaReserve
179
+ })
180
+ });
181
+ }
182
+ /**
183
+ * {@inheritDoc OpportunitiesSimulate.depositStrategy}
184
+ **/
185
+ async depositStrategy(position, params) {
186
+ return this.#startIntent(position, params, {
187
+ type: "DEPOSIT",
188
+ token: params.token,
189
+ amount: params.amount,
190
+ value: params.value,
191
+ positionToken: params.positionToken,
192
+ targetLeverage: params.targetLeverage
193
+ });
194
+ }
195
+ /**
196
+ * {@inheritDoc OpportunitiesSimulate.withdrawStrategy}
197
+ **/
198
+ async withdrawStrategy(position, params) {
199
+ return this.#startRoutes(position, params, {
200
+ type: "WITHDRAW",
201
+ amount: params.amount,
202
+ to: params.to,
203
+ tokenOut: params.tokenOut,
204
+ sourceToken: params.sourceToken
205
+ });
206
+ }
207
+ /**
208
+ * {@inheritDoc OpportunitiesSimulate.maxWithdraw}
209
+ **/
210
+ async maxWithdraw(position) {
211
+ return this.queryChain({
212
+ network: position.chainId,
213
+ run: async (sdk) => service(sdk).maxWithdraw({
214
+ creditAccount: await slice(sdk, position.creditAccount),
215
+ sdk
216
+ })
217
+ });
218
+ }
219
+ /**
220
+ * {@inheritDoc OpportunitiesSimulate.repayStrategy}
221
+ **/
222
+ async repayStrategy(position, params) {
223
+ return this.#startIntent(position, params, {
224
+ type: "REPAY",
225
+ token: params.token,
226
+ amount: params.amount,
227
+ value: params.value
228
+ });
229
+ }
230
+ /**
231
+ * {@inheritDoc OpportunitiesSimulate.maxRepay}
232
+ **/
233
+ async maxRepay(position) {
234
+ return this.queryChain({
235
+ network: position.chainId,
236
+ run: async (sdk) => service(sdk).maxRepay({
237
+ creditAccount: await slice(sdk, position.creditAccount),
238
+ sdk
239
+ })
240
+ });
241
+ }
242
+ /**
243
+ * {@inheritDoc OpportunitiesSimulate.adjustLeverage}
244
+ **/
245
+ async adjustLeverage(position, params) {
246
+ return this.#startRoutes(position, params, {
247
+ type: "ADJUST_LEVERAGE",
248
+ targetLeverage: params.targetLeverage,
249
+ token: params.token
250
+ });
251
+ }
252
+ /**
253
+ * {@inheritDoc OpportunitiesSimulate.addCollateral}
254
+ **/
255
+ async addCollateral(position, params) {
256
+ return this.#startIntent(position, params, {
257
+ type: "ADD_COLLATERAL",
258
+ token: params.token,
259
+ amount: params.amount,
260
+ value: params.value
261
+ });
262
+ }
263
+ /**
264
+ * {@inheritDoc OpportunitiesSimulate.withdrawCollateral}
265
+ **/
266
+ async withdrawCollateral(position, params) {
267
+ return this.#startIntent(position, params, {
268
+ type: "WITHDRAW_ASSET",
269
+ token: params.token,
270
+ amount: params.amount,
271
+ to: params.to
272
+ });
273
+ }
274
+ /**
275
+ * Shared path of the two flows that sell a position asset, and therefore have
276
+ * two routes to offer: one account read, one intent, both routes quoted.
277
+ **/
278
+ async #startRoutes(position, options, intent) {
279
+ return this.queryChain({
280
+ network: position.chainId,
281
+ run: async (sdk) => service(sdk).intentRoutes({
282
+ intent,
283
+ creditAccount: await slice(sdk, position.creditAccount),
284
+ sdk,
285
+ slippage: options.slippage,
286
+ quotaReserve: options.quotaReserve
287
+ })
288
+ });
289
+ }
290
+ /**
291
+ * Shared path of the same two flows when only the delayed route is asked for:
292
+ * a planner that requests a redemption instead of swapping.
293
+ **/
294
+ async #startDelayedIntent(position, options, intent) {
295
+ return this.queryChain({
296
+ network: position.chainId,
297
+ run: async (sdk) => service(sdk).startDelayedIntent({
298
+ intent,
299
+ creditAccount: await slice(sdk, position.creditAccount),
300
+ sdk,
301
+ slippage: options.slippage,
302
+ quotaReserve: options.quotaReserve
303
+ })
304
+ });
305
+ }
306
+ /**
307
+ * Shared path of the five flows that act on an existing account: read the
308
+ * account, then run the intent through the engine.
309
+ **/
310
+ async #startIntent(position, options, intent) {
311
+ return this.queryChain({
312
+ network: position.chainId,
313
+ run: async (sdk) => {
314
+ const creditAccount = await slice(sdk, position.creditAccount);
315
+ return service(sdk).startIntent({
316
+ intent,
317
+ creditAccount,
318
+ sdk,
319
+ slippage: options.slippage,
320
+ quotaReserve: options.quotaReserve
321
+ });
322
+ }
323
+ });
324
+ }
325
+ };
326
+ function service(sdk) {
327
+ return new require_sdk_accounts_intents_index.CreditAccountOperationsService(sdk);
328
+ }
329
+ function slice(sdk, creditAccount) {
330
+ return require_sdk_accounts_intents_utils_credit_account_slice.fetchCreditAccountSlice(sdk, creditAccount);
331
+ }
332
+ /**
333
+ * The operation a claim resumes, or `undefined` when there is none to resume:
334
+ * a withdrawal requested without an intent, a compressor too old to report one,
335
+ * or a full close, which the engine no longer previews.
336
+ **/
337
+ function resumable(intent) {
338
+ if (!intent || intent.type === "CLOSE_ACCOUNT") return;
339
+ return intent;
340
+ }
341
+ /**
342
+ * Picks the route the operation takes out of `tokenIn`, as a value rather than
343
+ * an exception: an unroutable or ambiguous pair is a request the caller can
344
+ * fix, so it belongs in the `ok: false` half alongside the strategy refusals.
345
+ *
346
+ * A pool with no route out of the input reports it by throwing, hence the
347
+ * catch; a requested output is checked against the list rather than trusted,
348
+ * so that a wrong one fails here instead of deeper in call assembly.
349
+ **/
350
+ function lpRoute(requested, routes) {
351
+ let options;
352
+ try {
353
+ options = routes();
354
+ } catch {
355
+ return;
356
+ }
357
+ if (requested) return options.some((o) => require_sdk_utils_hex.hexEq(o, requested)) ? requested : void 0;
358
+ return options.length === 1 ? options[0] : void 0;
359
+ }
360
+ //#endregion
361
+ exports.SimulateApi = SimulateApi;
@@ -0,0 +1,4 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_new_sdk_simulate_SimulateApi = require("./SimulateApi.js");
3
+ require("./types.js");
4
+ exports.SimulateApi = require_new_sdk_simulate_SimulateApi.SimulateApi;
@@ -1,6 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_new_sdk_utils_filterResponse = require("./filterResponse.js");
3
- require("./history.js");
4
3
  const require_new_sdk_utils_mergeChains = require("./mergeChains.js");
5
4
  exports.DEFAULT_MAX_OFFCHAIN_LAG = require_new_sdk_utils_mergeChains.DEFAULT_MAX_OFFCHAIN_LAG;
6
5
  exports.filterResponse = require_new_sdk_utils_filterResponse.filterResponse;
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_model_history_schema = require("../model/history.schema.js");
2
+ const require_model_charts_schema = require("../model/charts.schema.js");
3
3
  const require_model_response_schema = require("../model/response.schema.js");
4
4
  const require_offchain_errors_OffchainInvalidJsonError = require("./errors/OffchainInvalidJsonError.js");
5
5
  const require_offchain_errors_OffchainNotConfiguredError = require("./errors/OffchainNotConfiguredError.js");
@@ -65,14 +65,17 @@ var AbstractOffchainNamespace = class {
65
65
  };
66
66
  }
67
67
  /**
68
- * Reads one historical series. A response carrying a metric other than the
69
- * requested one fails validation.
68
+ * Reads the charts of one subject: one series per metric named, onto the one
69
+ * grid that lets them be compared at an index.
70
70
  **/
71
- async readHistory(request) {
71
+ async readCharts(path, metrics, range) {
72
72
  return this.get({
73
- path: request.path,
74
- query: { range: request.range },
75
- schema: require_model_history_schema.historySeriesSchema.extend({ metric: zod_v4.z.literal(request.metric) })
73
+ path,
74
+ query: zod_v4.z.encode(require_model_charts_schema.chartQueryCodec, {
75
+ metrics,
76
+ range
77
+ }),
78
+ schema: require_model_charts_schema.chartBundleSchemaFor(metrics, range)
76
79
  });
77
80
  }
78
81
  /**
@@ -1,4 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_offchain_notices_OffchainNotices = require("./notices/OffchainNotices.js");
3
+ require("./notices/index.js");
2
4
  const require_offchain_opportunities_OffchainOpportunities = require("./opportunities/OffchainOpportunities.js");
3
5
  require("./opportunities/index.js");
4
6
  const require_offchain_positions_OffchainPositions = require("./positions/OffchainPositions.js");
@@ -34,10 +36,15 @@ var GearboxAPI = class {
34
36
  * Namespace for the positions a wallet holds.
35
37
  **/
36
38
  positions;
39
+ /**
40
+ * Namespace for the notices the backend attaches to entities.
41
+ **/
42
+ notices;
37
43
  constructor(options) {
38
44
  this.chainIds = [...options.chainIds];
39
45
  this.opportunities = new require_offchain_opportunities_OffchainOpportunities.OffchainOpportunities(options);
40
46
  this.positions = new require_offchain_positions_OffchainPositions.OffchainPositions(options);
47
+ this.notices = new require_offchain_notices_OffchainNotices.OffchainNotices(options);
41
48
  }
42
49
  };
43
50
  //#endregion
@@ -11,6 +11,8 @@ const require_offchain_errors_OffchainValidationError = require("./errors/Offcha
11
11
  const require_offchain_errors_readResponseBody = require("./errors/readResponseBody.js");
12
12
  require("./errors/index.js");
13
13
  const require_offchain_AbstractOffchainNamespace = require("./AbstractOffchainNamespace.js");
14
+ const require_offchain_notices_OffchainNotices = require("./notices/OffchainNotices.js");
15
+ require("./notices/index.js");
14
16
  const require_offchain_opportunities_OffchainOpportunities = require("./opportunities/OffchainOpportunities.js");
15
17
  require("./opportunities/index.js");
16
18
  const require_offchain_positions_OffchainPositions = require("./positions/OffchainPositions.js");
@@ -22,6 +24,7 @@ exports.GearboxAPI = require_offchain_GearboxAPI.GearboxAPI;
22
24
  exports.OffchainInvalidJsonError = require_offchain_errors_OffchainInvalidJsonError.OffchainInvalidJsonError;
23
25
  exports.OffchainNotConfiguredError = require_offchain_errors_OffchainNotConfiguredError.OffchainNotConfiguredError;
24
26
  exports.OffchainNotImplementedError = require_offchain_errors_OffchainNotImplementedError.OffchainNotImplementedError;
27
+ exports.OffchainNotices = require_offchain_notices_OffchainNotices.OffchainNotices;
25
28
  exports.OffchainOpportunities = require_offchain_opportunities_OffchainOpportunities.OffchainOpportunities;
26
29
  exports.OffchainPositions = require_offchain_positions_OffchainPositions.OffchainPositions;
27
30
  exports.OffchainRequestFailedError = require_offchain_errors_OffchainRequestFailedError.OffchainRequestFailedError;
@@ -0,0 +1,27 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_model_notices_schema = require("../../model/notices.schema.js");
3
+ const require_offchain_AbstractOffchainNamespace = require("../AbstractOffchainNamespace.js");
4
+ let zod_v4 = require("zod/v4");
5
+ //#region src/offchain/notices/OffchainNotices.ts
6
+ /**
7
+ * Backend counterpart of `sdk.notices`: banners the backend asks a consumer to
8
+ * show for one entity, see {@link Notice}.
9
+ **/
10
+ var OffchainNotices = class extends require_offchain_AbstractOffchainNamespace.AbstractOffchainNamespace {
11
+ #root = "/v2/notices";
12
+ constructor(options) {
13
+ super("OffchainNotices", options);
14
+ }
15
+ /**
16
+ * The notices of one pool opportunity or one strategy position.
17
+ **/
18
+ async list(subject) {
19
+ const [kind, address] = subject.kind === "pool" ? ["pool", subject.pool] : ["strategy", subject.creditAccount];
20
+ return this.get({
21
+ path: `${this.#root}/${kind}/${subject.chainId}/${address}`,
22
+ schema: zod_v4.z.array(require_model_notices_schema.noticeSchema)
23
+ });
24
+ }
25
+ };
26
+ //#endregion
27
+ exports.OffchainNotices = OffchainNotices;
@@ -0,0 +1,3 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_offchain_notices_OffchainNotices = require("./OffchainNotices.js");
3
+ exports.OffchainNotices = require_offchain_notices_OffchainNotices.OffchainNotices;
@@ -44,14 +44,10 @@ var OffchainOpportunities = class extends require_offchain_AbstractOffchainNames
44
44
  });
45
45
  }
46
46
  /**
47
- * One historical series of one opportunity
47
+ * Charts of one opportunity: one series per metric, on a shared grid.
48
48
  **/
49
- async getHistory(query) {
50
- return this.readHistory({
51
- path: `${this.#historyRoot(query.opportunity)}/history/${query.metric}`,
52
- metric: query.metric,
53
- range: query.range
54
- });
49
+ async getCharts(key, metrics, range) {
50
+ return this.readCharts(`${this.#chartRoot(key)}/charts`, metrics, range);
55
51
  }
56
52
  #poolPath(key) {
57
53
  return `${this.#root}/pools/${key.chainId}/${key.pool}`;
@@ -59,7 +55,7 @@ var OffchainOpportunities = class extends require_offchain_AbstractOffchainNames
59
55
  #strategyPath(key) {
60
56
  return `${this.#root}/strategies/${key.chainId}/${key.creditManager}/${key.targetCollateral}`;
61
57
  }
62
- #historyRoot(key) {
58
+ #chartRoot(key) {
63
59
  return key.kind === "pool" ? this.#poolPath(key) : this.#strategyPath(key);
64
60
  }
65
61
  };
@@ -25,19 +25,19 @@ var OffchainPositions = class extends require_offchain_AbstractOffchainNamespace
25
25
  });
26
26
  }
27
27
  /**
28
- * One historical series of one position.
29
- *
30
- * @returns An empty series until the backend client is implemented.
28
+ * Charts of one position: one series per metric, on a shared grid.
31
29
  **/
32
- async getHistory(query) {
33
- return {
34
- data: {
35
- metric: query.metric,
36
- points: [],
37
- metadata: {}
38
- },
39
- meta: { chains: [] }
40
- };
30
+ async getCharts(key, metrics, range) {
31
+ return this.readCharts(`${this.#chartRoot(key)}/charts`, metrics, range);
32
+ }
33
+ #poolPath(key) {
34
+ return `${this.#root}/pool/${key.chainId}/${key.pool}/${key.wallet}`;
35
+ }
36
+ #strategyPath(key) {
37
+ return `${this.#root}/strategy/${key.chainId}/${key.creditAccount}`;
38
+ }
39
+ #chartRoot(key) {
40
+ return key.kind === "pool" ? this.#poolPath(key) : this.#strategyPath(key);
41
41
  }
42
42
  };
43
43
  //#endregion
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_sdk_utils_AssetsMap = require("../../sdk/utils/AssetsMap.js");
3
- require("../../sdk/constants/math.js");
3
+ const require_sdk_constants_math = require("../../sdk/constants/math.js");
4
4
  require("../../sdk/index.js");
5
5
  let viem = require("viem");
6
6
  //#region src/preview/preview/CreditAccountState.ts
@@ -79,6 +79,19 @@ var CreditAccountState = class CreditAccountState {
79
79
  totalDebt: ca.debt + ca.accruedInterest + ca.accruedFees
80
80
  });
81
81
  }
82
+ /**
83
+ * Immutable snapshot of this projected state for `sdk.positions` metric
84
+ * methods: dust-filtered balances, all quotas, and {@link totalDebt}.
85
+ **/
86
+ toSnapshot(totalValue) {
87
+ return {
88
+ creditManager: this.creditManager,
89
+ assets: this.balances.toAssets(require_sdk_constants_math.DUST_THRESHOLD),
90
+ quotas: this.quotas.toAssets(0n),
91
+ totalDebt: this.totalDebt,
92
+ totalValue
93
+ };
94
+ }
82
95
  clone() {
83
96
  return new CreditAccountState({
84
97
  creditAccount: this.creditAccount,
@@ -26,8 +26,10 @@ let viem = require("viem");
26
26
  * @param receivedToken - Token the `CLOSE_ACCOUNT` resume withdraws to the
27
27
  * user: the unwrapped underlying (vault asset) for RWA markets, the
28
28
  * underlying itself otherwise.
29
+ * @param sdk - Market data source for the position metrics of the resulting
30
+ * state; read synchronously, no network access.
29
31
  */
30
- function buildDelayedPreview(afterInstant, before, detected, convert, receivedToken) {
32
+ function buildDelayedPreview(afterInstant, before, detected, convert, receivedToken, sdk) {
31
33
  const { request, intent } = detected;
32
34
  const post = afterInstant.clone();
33
35
  const converter = makeSafeConverter(convert);
@@ -40,7 +42,7 @@ function buildDelayedPreview(afterInstant, before, detected, convert, receivedTo
40
42
  break;
41
43
  case "WITHDRAW_COLLATERAL": applyWithdrawCollateral(post, request, intent, converter, collateralWithdrawn);
42
44
  }
43
- return buildAdjustPreview(post, before, collateralWithdrawn, converter);
45
+ return buildAdjustPreview(post, before, collateralWithdrawn, converter, sdk);
44
46
  }
45
47
  function makeSafeConverter(convert) {
46
48
  let error;
@@ -172,8 +174,11 @@ function buildClosePreview(post, converter, receivedToken) {
172
174
  error: converter.error
173
175
  };
174
176
  }
175
- function buildAdjustPreview(post, before, collateralWithdrawn, converter) {
177
+ function buildAdjustPreview(post, before, collateralWithdrawn, converter, sdk) {
176
178
  const totalValue = totalValueInUnderlying(post, converter.convert, require_sdk_constants_math.DUST_THRESHOLD);
179
+ const assets = post.balances.toAssets(require_sdk_constants_math.DUST_THRESHOLD);
180
+ const quotas = post.quotas.toAssets(0n);
181
+ const snap = post.toSnapshot(totalValue);
177
182
  return {
178
183
  operation: "AdjustCreditAccount",
179
184
  creditManager: post.creditManager,
@@ -183,11 +188,16 @@ function buildAdjustPreview(post, before, collateralWithdrawn, converter) {
183
188
  totalValue,
184
189
  debt: post.debt,
185
190
  debtChange: post.debt - before.debt,
186
- quotas: post.quotas.toAssets(0n),
191
+ quotas,
187
192
  quotasChange: post.quotas.difference(before.quotas).toAssets(),
188
- assets: post.balances.toAssets(require_sdk_constants_math.DUST_THRESHOLD),
193
+ assets,
189
194
  assetsChange: post.balances.difference(before.balances).toAssets(require_sdk_constants_math.DUST_THRESHOLD),
190
- error: converter.error
195
+ error: converter.error,
196
+ healthFactor: sdk.positions.healthFactor(snap),
197
+ overallApy: 0,
198
+ borrowRate: sdk.positions.borrowRate(snap),
199
+ timeToLiquidation: sdk.positions.timeToLiquidation(snap),
200
+ liquidationPrice: sdk.positions.liquidationPrice(snap)
191
201
  };
192
202
  }
193
203
  //#endregion
@@ -22,6 +22,7 @@ async function previewAdjustCreditAccount(input, operation, options) {
22
22
  const { assets: collateralAdded, error: unwrapError } = require_preview_preview_unwrapNativeCollateral.unwrapNativeCollateral(after.collateralAdded.toAssets(), value, sdk.addressProvider.getAddress(require_sdk_constants_address_provider.AP_WETH_TOKEN, 0));
23
23
  error ??= unwrapError;
24
24
  const assets = account.balances.toAssets(require_sdk_constants_math.DUST_THRESHOLD);
25
+ const quotas = account.quotas.toAssets(0n);
25
26
  const assetsChange = account.balances.difference(before.balances).toAssets(require_sdk_constants_math.DUST_THRESHOLD);
26
27
  const totalValue = assets.reduce((acc, { token, balance }) => {
27
28
  try {
@@ -34,6 +35,7 @@ async function previewAdjustCreditAccount(input, operation, options) {
34
35
  return acc;
35
36
  }
36
37
  }, 0n);
38
+ const snap = account.toSnapshot(totalValue);
37
39
  return {
38
40
  operation: "AdjustCreditAccount",
39
41
  creditManager: operation.creditManager,
@@ -43,11 +45,16 @@ async function previewAdjustCreditAccount(input, operation, options) {
43
45
  totalValue,
44
46
  debt: account.debt,
45
47
  debtChange: account.debt - before.debt,
46
- quotas: account.quotas.toAssets(0n),
48
+ quotas,
47
49
  quotasChange: account.quotas.difference(before.quotas).toAssets(),
48
50
  assets,
49
51
  assetsChange,
50
- error
52
+ error,
53
+ healthFactor: sdk.positions.healthFactor(snap),
54
+ overallApy: 0,
55
+ borrowRate: sdk.positions.borrowRate(snap),
56
+ timeToLiquidation: sdk.positions.timeToLiquidation(snap),
57
+ liquidationPrice: sdk.positions.liquidationPrice(snap)
51
58
  };
52
59
  }
53
60
  //#endregion