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

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 (436) 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 +137 -0
  9. package/dist/cjs/dev/comparePositions.js +183 -0
  10. package/dist/cjs/dev/fieldDiff.js +241 -0
  11. package/dist/cjs/model/charts.js +147 -0
  12. package/dist/cjs/model/charts.schema.js +240 -0
  13. package/dist/cjs/model/index.js +35 -22
  14. package/dist/cjs/model/liquidations.schema.js +1 -1
  15. package/dist/cjs/model/notices.schema.js +25 -0
  16. package/dist/cjs/model/opportunities.schema.js +1 -1
  17. package/dist/cjs/model/positions.schema.js +48 -2
  18. package/dist/cjs/new-sdk/AbstractNamespace.js +34 -4
  19. package/dist/cjs/new-sdk/GearboxSDK.js +72 -3
  20. package/dist/cjs/new-sdk/execute/ExecuteApi.js +95 -0
  21. package/dist/cjs/new-sdk/execute/index.js +3 -0
  22. package/dist/cjs/new-sdk/index.js +7 -0
  23. package/dist/cjs/new-sdk/opportunities/OpportunitiesNamespace.js +29 -6
  24. package/dist/cjs/new-sdk/positions/PositionsNamespace.js +3 -6
  25. package/dist/cjs/new-sdk/simulate/SimulateApi.js +361 -0
  26. package/dist/cjs/new-sdk/simulate/index.js +4 -0
  27. package/dist/cjs/new-sdk/utils/index.js +0 -1
  28. package/dist/cjs/offchain/AbstractOffchainNamespace.js +10 -7
  29. package/dist/cjs/offchain/GearboxAPI.js +7 -0
  30. package/dist/cjs/offchain/index.js +3 -0
  31. package/dist/cjs/offchain/notices/OffchainNotices.js +27 -0
  32. package/dist/cjs/offchain/notices/index.js +3 -0
  33. package/dist/cjs/offchain/opportunities/OffchainOpportunities.js +4 -8
  34. package/dist/cjs/offchain/positions/OffchainPositions.js +12 -12
  35. package/dist/cjs/preview/preview/CreditAccountState.js +14 -1
  36. package/dist/cjs/preview/preview/buildDelayedPreview.js +16 -6
  37. package/dist/cjs/preview/preview/previewAdjustCreditAccount.js +9 -2
  38. package/dist/cjs/preview/preview/previewOpenCreditAccount.js +11 -3
  39. package/dist/cjs/preview/preview/previewOperation.js +1 -1
  40. package/dist/cjs/sdk/MultichainSDK.js +3 -4
  41. package/dist/cjs/sdk/OnchainSDK.js +42 -13
  42. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +2 -8
  43. package/dist/cjs/sdk/accounts/credit-account-compressor/CreditAccountCompressor.js +2 -90
  44. package/dist/cjs/sdk/accounts/index.js +5 -2
  45. package/dist/cjs/sdk/accounts/intents/guards.js +114 -0
  46. package/dist/cjs/sdk/accounts/intents/index.js +216 -358
  47. package/dist/cjs/sdk/accounts/intents/math.js +56 -0
  48. package/dist/cjs/sdk/accounts/intents/open-strategy.js +133 -0
  49. package/dist/cjs/sdk/accounts/intents/operations.js +165 -0
  50. package/dist/cjs/sdk/accounts/intents/plan.js +373 -0
  51. package/dist/cjs/sdk/accounts/intents/realize.js +301 -0
  52. package/dist/cjs/sdk/accounts/intents/testing/delayed.js +50 -0
  53. package/dist/cjs/sdk/accounts/intents/testing/market.js +166 -0
  54. package/dist/cjs/sdk/accounts/intents/testing/sdk-mock.js +194 -35
  55. package/dist/cjs/sdk/accounts/intents/tests/add-collateral.fixtures.js +123 -0
  56. package/dist/cjs/sdk/accounts/intents/tests/adjust-leverage.fixtures.js +254 -0
  57. package/dist/cjs/sdk/accounts/intents/tests/deposit.fixtures.js +324 -0
  58. package/dist/cjs/sdk/accounts/intents/tests/finish-decrease-leverage.fixtures.js +242 -0
  59. package/dist/cjs/sdk/accounts/intents/tests/finish-withdraw.fixtures.js +383 -0
  60. package/dist/cjs/sdk/accounts/intents/tests/open-strategy.fixtures.js +133 -0
  61. package/dist/cjs/sdk/accounts/intents/tests/withdraw-asset.fixtures.js +131 -0
  62. package/dist/cjs/sdk/accounts/intents/tests/withdraw.fixtures.js +426 -0
  63. package/dist/cjs/sdk/accounts/intents/types.js +16 -0
  64. package/dist/cjs/sdk/accounts/intents/utils/adjust-state-to-snapshot.js +18 -0
  65. package/dist/cjs/sdk/accounts/intents/utils/credit-account-slice.js +45 -0
  66. package/dist/cjs/sdk/accounts/intents/utils/index.js +17 -8
  67. package/dist/cjs/sdk/accounts/intents/utils/ledger.js +94 -0
  68. package/dist/cjs/sdk/accounts/intents/utils/pick-token.js +72 -0
  69. package/dist/cjs/sdk/accounts/intents/utils/quotas-for-update.js +27 -0
  70. package/dist/cjs/sdk/accounts/intents/utils/router-path.js +86 -0
  71. package/dist/cjs/sdk/accounts/intents/view.js +38 -0
  72. package/dist/cjs/sdk/accounts/liquidations/LiquidationsService.js +0 -3
  73. package/dist/cjs/sdk/accounts/withdrawal-compressor/AbstractWithdrawalCompressorContract.js +29 -18
  74. package/dist/cjs/sdk/base/BaseContract.js +1 -1
  75. package/dist/cjs/sdk/base/TokensMeta.js +78 -27
  76. package/dist/cjs/sdk/index.js +30 -7
  77. package/dist/cjs/sdk/market/MarketRegister.js +16 -7
  78. package/dist/cjs/sdk/market/ZapperRegister.js +56 -25
  79. package/dist/cjs/sdk/market/credit/CreditManagerV310Contract.js +1 -12
  80. package/dist/cjs/sdk/market/credit/CreditSuite.js +28 -9
  81. package/dist/cjs/sdk/market/credit/index.js +3 -0
  82. package/dist/cjs/sdk/market/credit/isStrategyCollateral.js +50 -0
  83. package/dist/cjs/sdk/market/index.js +17 -0
  84. package/dist/cjs/sdk/market/math.js +65 -45
  85. package/dist/cjs/sdk/market/oracle/PriceOracleBaseContract.js +10 -3
  86. package/dist/cjs/sdk/market/pool/PoolV310Contract.js +15 -1
  87. package/dist/cjs/sdk/market/rwa/RWARegistry.js +22 -0
  88. package/dist/cjs/sdk/opportunities/index.js +0 -13
  89. package/dist/cjs/sdk/options.js +1 -5
  90. package/dist/cjs/sdk/pools/PoolService.js +133 -4
  91. package/dist/cjs/sdk/pools/index.js +2 -0
  92. package/dist/cjs/sdk/positions/PositionsService.js +218 -1
  93. package/dist/cjs/sdk/positions/calcBorrowRate.js +43 -0
  94. package/dist/cjs/sdk/positions/calcHealthFactor.js +52 -0
  95. package/dist/cjs/sdk/positions/calcLiquidationPrice.js +23 -0
  96. package/dist/cjs/sdk/positions/calcLiquidationPriceForTarget.js +30 -0
  97. package/dist/cjs/sdk/positions/calcTimeToLiquidationMs.js +19 -0
  98. package/dist/cjs/sdk/positions/index.js +12 -1
  99. package/dist/cjs/sdk/positions/types.js +31 -0
  100. package/dist/cjs/sdk/utils/abi-decode.js +2 -2
  101. package/dist/cjs/sdk/utils/viem/executeMulticallBatches.js +32 -0
  102. package/dist/cjs/sdk/utils/viem/index.js +2 -0
  103. package/dist/esm/abi/iExpirable.js +14 -0
  104. package/dist/esm/common-utils/utils/apy/get-single-quota-borrow-rate.js +2 -0
  105. package/dist/esm/common-utils/utils/creditAccount/calc-health-factor.js +24 -22
  106. package/dist/esm/common-utils/utils/creditAccount/calc-quota-borrow-rate.js +2 -0
  107. package/dist/esm/common-utils/utils/creditAccount/get-time-to-liquidation.js +8 -5
  108. package/dist/esm/common-utils/utils/creditAccount/liquidation-price.js +21 -11
  109. package/dist/esm/dev/AccountOpener.js +0 -1
  110. package/dist/esm/dev/compareOpportunities.js +135 -0
  111. package/dist/esm/dev/comparePositions.js +181 -0
  112. package/dist/esm/dev/fieldDiff.js +224 -0
  113. package/dist/esm/model/charts.js +140 -0
  114. package/dist/esm/model/charts.schema.js +226 -0
  115. package/dist/esm/model/index.js +9 -7
  116. package/dist/esm/model/liquidations.schema.js +1 -1
  117. package/dist/esm/model/notices.schema.js +23 -0
  118. package/dist/esm/model/opportunities.schema.js +1 -1
  119. package/dist/esm/model/positions.schema.js +46 -4
  120. package/dist/esm/new-sdk/AbstractNamespace.js +34 -4
  121. package/dist/esm/new-sdk/GearboxSDK.js +72 -4
  122. package/dist/esm/new-sdk/execute/ExecuteApi.js +94 -0
  123. package/dist/esm/new-sdk/execute/index.js +2 -0
  124. package/dist/esm/new-sdk/index.js +6 -2
  125. package/dist/esm/new-sdk/opportunities/OpportunitiesNamespace.js +29 -6
  126. package/dist/esm/new-sdk/positions/PositionsNamespace.js +3 -6
  127. package/dist/esm/new-sdk/simulate/SimulateApi.js +360 -0
  128. package/dist/esm/new-sdk/simulate/index.js +3 -0
  129. package/dist/esm/new-sdk/utils/index.js +0 -1
  130. package/dist/esm/offchain/AbstractOffchainNamespace.js +10 -7
  131. package/dist/esm/offchain/GearboxAPI.js +7 -0
  132. package/dist/esm/offchain/index.js +3 -1
  133. package/dist/esm/offchain/notices/OffchainNotices.js +26 -0
  134. package/dist/esm/offchain/notices/index.js +2 -0
  135. package/dist/esm/offchain/opportunities/OffchainOpportunities.js +4 -8
  136. package/dist/esm/offchain/positions/OffchainPositions.js +12 -12
  137. package/dist/esm/preview/preview/CreditAccountState.js +14 -1
  138. package/dist/esm/preview/preview/buildDelayedPreview.js +16 -6
  139. package/dist/esm/preview/preview/previewAdjustCreditAccount.js +9 -2
  140. package/dist/esm/preview/preview/previewOpenCreditAccount.js +11 -3
  141. package/dist/esm/preview/preview/previewOperation.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 +2 -8
  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 +0 -3
  175. package/dist/esm/sdk/accounts/withdrawal-compressor/AbstractWithdrawalCompressorContract.js +29 -18
  176. package/dist/esm/sdk/base/BaseContract.js +1 -1
  177. package/dist/esm/sdk/base/TokensMeta.js +78 -27
  178. package/dist/esm/sdk/index.js +13 -4
  179. package/dist/esm/sdk/market/MarketRegister.js +16 -7
  180. package/dist/esm/sdk/market/ZapperRegister.js +56 -25
  181. package/dist/esm/sdk/market/credit/CreditManagerV310Contract.js +2 -13
  182. package/dist/esm/sdk/market/credit/CreditSuite.js +29 -10
  183. package/dist/esm/sdk/market/credit/index.js +2 -1
  184. package/dist/esm/sdk/market/credit/isStrategyCollateral.js +48 -0
  185. package/dist/esm/sdk/market/index.js +3 -1
  186. package/dist/esm/sdk/market/math.js +60 -41
  187. package/dist/esm/sdk/market/oracle/PriceOracleBaseContract.js +10 -3
  188. package/dist/esm/sdk/market/pool/PoolV310Contract.js +16 -2
  189. package/dist/esm/sdk/market/rwa/RWARegistry.js +22 -0
  190. package/dist/esm/sdk/opportunities/index.js +1 -2
  191. package/dist/esm/sdk/options.js +1 -5
  192. package/dist/esm/sdk/pools/PoolService.js +133 -6
  193. package/dist/esm/sdk/pools/index.js +2 -2
  194. package/dist/esm/sdk/positions/PositionsService.js +218 -1
  195. package/dist/esm/sdk/positions/calcBorrowRate.js +42 -0
  196. package/dist/esm/sdk/positions/calcHealthFactor.js +51 -0
  197. package/dist/esm/sdk/positions/calcLiquidationPrice.js +22 -0
  198. package/dist/esm/sdk/positions/calcLiquidationPriceForTarget.js +29 -0
  199. package/dist/esm/sdk/positions/calcTimeToLiquidationMs.js +18 -0
  200. package/dist/esm/sdk/positions/index.js +7 -2
  201. package/dist/esm/sdk/positions/types.js +31 -1
  202. package/dist/esm/sdk/utils/abi-decode.js +2 -2
  203. package/dist/esm/sdk/utils/viem/executeMulticallBatches.js +31 -0
  204. package/dist/esm/sdk/utils/viem/index.js +2 -1
  205. package/dist/types/abi/iExpirable.d.ts +14 -0
  206. package/dist/types/common-utils/utils/apy/get-single-quota-borrow-rate.d.ts +2 -0
  207. package/dist/types/common-utils/utils/creditAccount/calc-health-factor.d.ts +3 -0
  208. package/dist/types/common-utils/utils/creditAccount/calc-quota-borrow-rate.d.ts +2 -0
  209. package/dist/types/common-utils/utils/creditAccount/get-time-to-liquidation.d.ts +6 -1
  210. package/dist/types/common-utils/utils/creditAccount/liquidation-price.d.ts +3 -0
  211. package/dist/types/dev/compareOpportunities.d.ts +105 -0
  212. package/dist/types/dev/comparePositions.d.ts +149 -0
  213. package/dist/types/dev/fieldDiff.d.ts +167 -0
  214. package/dist/types/model/charts.d.ts +349 -0
  215. package/dist/types/model/charts.schema.d.ts +364 -0
  216. package/dist/types/model/index.d.ts +8 -6
  217. package/dist/types/model/notices.d.ts +29 -0
  218. package/dist/types/model/notices.schema.d.ts +23 -0
  219. package/dist/types/model/opportunities.d.ts +9 -9
  220. package/dist/types/model/positions.d.ts +133 -7
  221. package/dist/types/model/positions.schema.d.ts +128 -1
  222. package/dist/types/new-sdk/AbstractNamespace.d.ts +15 -2
  223. package/dist/types/new-sdk/GearboxSDK.d.ts +14 -2
  224. package/dist/types/new-sdk/execute/ExecuteApi.d.ts +108 -0
  225. package/dist/types/new-sdk/execute/index.d.ts +2 -0
  226. package/dist/types/new-sdk/index.d.ts +8 -4
  227. package/dist/types/new-sdk/opportunities/OpportunitiesNamespace.d.ts +19 -7
  228. package/dist/types/new-sdk/opportunities/types.d.ts +30 -9
  229. package/dist/types/new-sdk/positions/PositionsNamespace.d.ts +4 -5
  230. package/dist/types/new-sdk/positions/types.d.ts +9 -9
  231. package/dist/types/new-sdk/simulate/SimulateApi.d.ts +90 -0
  232. package/dist/types/new-sdk/simulate/index.d.ts +3 -0
  233. package/dist/types/new-sdk/simulate/types.d.ts +508 -0
  234. package/dist/types/new-sdk/types.d.ts +35 -1
  235. package/dist/types/new-sdk/utils/index.d.ts +1 -2
  236. package/dist/types/offchain/AbstractOffchainNamespace.d.ts +5 -21
  237. package/dist/types/offchain/GearboxAPI.d.ts +6 -0
  238. package/dist/types/offchain/index.d.ts +4 -2
  239. package/dist/types/offchain/notices/OffchainNotices.d.ts +19 -0
  240. package/dist/types/offchain/notices/index.d.ts +2 -0
  241. package/dist/types/offchain/opportunities/OffchainOpportunities.d.ts +8 -4
  242. package/dist/types/offchain/positions/OffchainPositions.d.ts +8 -6
  243. package/dist/types/preview/preview/CreditAccountState.d.ts +6 -0
  244. package/dist/types/preview/preview/buildDelayedPreview.d.ts +5 -1
  245. package/dist/types/preview/preview/types.d.ts +4 -2
  246. package/dist/types/sdk/MultichainSDK.d.ts +0 -5
  247. package/dist/types/sdk/OnchainSDK.d.ts +1 -5
  248. package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +1 -7
  249. package/dist/types/sdk/accounts/credit-account-compressor/CreditAccountCompressor.d.ts +3 -12
  250. package/dist/types/sdk/accounts/credit-account-compressor/index.d.ts +2 -2
  251. package/dist/types/sdk/accounts/credit-account-compressor/types.d.ts +1 -19
  252. package/dist/types/sdk/accounts/index.d.ts +7 -5
  253. package/dist/types/sdk/accounts/intents/guards.d.ts +72 -0
  254. package/dist/types/sdk/accounts/intents/index.d.ts +130 -15
  255. package/dist/types/sdk/accounts/intents/math.d.ts +46 -0
  256. package/dist/types/sdk/accounts/intents/open-strategy.d.ts +64 -0
  257. package/dist/types/sdk/accounts/intents/operations.d.ts +215 -0
  258. package/dist/types/sdk/accounts/intents/plan.d.ts +189 -0
  259. package/dist/types/sdk/accounts/intents/realize.d.ts +35 -0
  260. package/dist/types/sdk/accounts/intents/testing/delayed.d.ts +50 -0
  261. package/dist/types/sdk/accounts/intents/testing/expect.d.ts +17 -21
  262. package/dist/types/sdk/accounts/intents/testing/market.d.ts +91 -0
  263. package/dist/types/sdk/accounts/intents/testing/sdk-mock.d.ts +64 -16
  264. package/dist/types/sdk/accounts/intents/tests/add-collateral.fixtures.d.ts +45 -0
  265. package/dist/types/sdk/accounts/intents/tests/adjust-leverage.fixtures.d.ts +56 -0
  266. package/dist/types/sdk/accounts/intents/tests/deposit.fixtures.d.ts +64 -0
  267. package/dist/types/sdk/accounts/intents/tests/finish-decrease-leverage.fixtures.d.ts +107 -0
  268. package/dist/types/sdk/accounts/intents/tests/finish-withdraw.fixtures.d.ts +136 -0
  269. package/dist/types/sdk/accounts/intents/tests/open-strategy.fixtures.d.ts +56 -0
  270. package/dist/types/sdk/accounts/intents/tests/withdraw-asset.fixtures.d.ts +60 -0
  271. package/dist/types/sdk/accounts/intents/tests/withdraw.fixtures.d.ts +79 -0
  272. package/dist/types/sdk/accounts/intents/types.d.ts +369 -43
  273. package/dist/types/sdk/accounts/intents/utils/adjust-state-to-snapshot.d.ts +13 -0
  274. package/dist/types/sdk/accounts/intents/utils/assemble-operation-calls.d.ts +1 -1
  275. package/dist/types/sdk/accounts/intents/utils/credit-account-slice.d.ts +29 -0
  276. package/dist/types/sdk/accounts/intents/utils/index.d.ts +7 -5
  277. package/dist/types/sdk/accounts/intents/utils/ledger.d.ts +41 -0
  278. package/dist/types/sdk/accounts/intents/utils/pick-token.d.ts +55 -0
  279. package/dist/types/sdk/accounts/intents/utils/quotas-for-update.d.ts +15 -4
  280. package/dist/types/sdk/accounts/intents/utils/router-path.d.ts +70 -0
  281. package/dist/types/sdk/accounts/intents/view.d.ts +15 -0
  282. package/dist/types/sdk/accounts/types.d.ts +17 -14
  283. package/dist/types/sdk/accounts/withdrawal-compressor/AbstractWithdrawalCompressorContract.d.ts +6 -0
  284. package/dist/types/sdk/accounts/withdrawal-compressor/types.d.ts +18 -0
  285. package/dist/types/sdk/base/TokensMeta.d.ts +44 -1
  286. package/dist/types/sdk/base/index.d.ts +2 -2
  287. package/dist/types/sdk/base/token-types.d.ts +12 -1
  288. package/dist/types/sdk/index.d.ts +28 -19
  289. package/dist/types/sdk/market/MarketRegister.d.ts +7 -3
  290. package/dist/types/sdk/market/ZapperRegister.d.ts +20 -2
  291. package/dist/types/sdk/market/credit/CreditManagerV310Contract.d.ts +0 -4
  292. package/dist/types/sdk/market/credit/CreditSuite.d.ts +6 -3
  293. package/dist/types/sdk/market/credit/index.d.ts +2 -1
  294. package/dist/types/sdk/market/credit/isStrategyCollateral.d.ts +74 -0
  295. package/dist/types/sdk/market/credit/types.d.ts +2 -9
  296. package/dist/types/sdk/market/index.d.ts +4 -2
  297. package/dist/types/sdk/market/math.d.ts +46 -34
  298. package/dist/types/sdk/market/oracle/PriceOracleBaseContract.d.ts +6 -2
  299. package/dist/types/sdk/market/oracle/types.d.ts +10 -2
  300. package/dist/types/sdk/market/pool/PoolV310Contract.d.ts +5 -0
  301. package/dist/types/sdk/market/pool/types.d.ts +5 -0
  302. package/dist/types/sdk/market/rwa/RWARegistry.d.ts +13 -0
  303. package/dist/types/sdk/market/types.d.ts +5 -1
  304. package/dist/types/sdk/opportunities/index.d.ts +1 -2
  305. package/dist/types/sdk/options.d.ts +0 -1
  306. package/dist/types/sdk/pools/PoolService.d.ts +32 -2
  307. package/dist/types/sdk/pools/index.d.ts +3 -3
  308. package/dist/types/sdk/pools/types.d.ts +109 -4
  309. package/dist/types/sdk/positions/PositionsService.d.ts +33 -2
  310. package/dist/types/sdk/positions/calcBorrowRate.d.ts +40 -0
  311. package/dist/types/sdk/positions/calcHealthFactor.d.ts +55 -0
  312. package/dist/types/sdk/positions/calcLiquidationPrice.d.ts +12 -0
  313. package/dist/types/sdk/positions/calcLiquidationPriceForTarget.d.ts +43 -0
  314. package/dist/types/sdk/positions/calcTimeToLiquidationMs.d.ts +16 -0
  315. package/dist/types/sdk/positions/index.d.ts +7 -2
  316. package/dist/types/sdk/positions/types.d.ts +58 -1
  317. package/dist/types/sdk/types/state.d.ts +6 -0
  318. package/dist/types/sdk/utils/viem/executeMulticallBatches.d.ts +39 -0
  319. package/dist/types/sdk/utils/viem/index.d.ts +3 -2
  320. package/package.json +2 -1
  321. package/dist/cjs/model/history.js +0 -53
  322. package/dist/cjs/model/history.schema.js +0 -128
  323. package/dist/cjs/sdk/accounts/intents/intents/index.js +0 -14
  324. package/dist/cjs/sdk/accounts/intents/intents/resume/add-collateral/add-collateral.fixtures.js +0 -121
  325. package/dist/cjs/sdk/accounts/intents/intents/resume/add-collateral/add-collateral.js +0 -15
  326. package/dist/cjs/sdk/accounts/intents/intents/resume/close/close.fixtures.js +0 -108
  327. package/dist/cjs/sdk/accounts/intents/intents/resume/close/close.js +0 -51
  328. package/dist/cjs/sdk/accounts/intents/intents/resume/decrease-leverage/decrease-leverage.fixtures.js +0 -130
  329. package/dist/cjs/sdk/accounts/intents/intents/resume/decrease-leverage/decrease-leverage.js +0 -83
  330. package/dist/cjs/sdk/accounts/intents/intents/resume/deposit/deposit.fixtures.js +0 -117
  331. package/dist/cjs/sdk/accounts/intents/intents/resume/deposit/deposit.js +0 -15
  332. package/dist/cjs/sdk/accounts/intents/intents/resume/increase-leverage/increase-leverage.fixtures.js +0 -95
  333. package/dist/cjs/sdk/accounts/intents/intents/resume/increase-leverage/increase-leverage.js +0 -15
  334. package/dist/cjs/sdk/accounts/intents/intents/resume/index.js +0 -13
  335. package/dist/cjs/sdk/accounts/intents/intents/resume/withdraw/withdraw.fixtures.js +0 -138
  336. package/dist/cjs/sdk/accounts/intents/intents/resume/withdraw/withdraw.js +0 -161
  337. package/dist/cjs/sdk/accounts/intents/operations/add-collateral/index.js +0 -17
  338. package/dist/cjs/sdk/accounts/intents/operations/claim-delayed/index.js +0 -54
  339. package/dist/cjs/sdk/accounts/intents/operations/close-credit-account/index.js +0 -26
  340. package/dist/cjs/sdk/accounts/intents/operations/decrease-debt/index.js +0 -12
  341. package/dist/cjs/sdk/accounts/intents/operations/increase-debt/index.js +0 -12
  342. package/dist/cjs/sdk/accounts/intents/operations/index.js +0 -27
  343. package/dist/cjs/sdk/accounts/intents/operations/quota-update/index.js +0 -22
  344. package/dist/cjs/sdk/accounts/intents/operations/repay-credit-account/index.js +0 -22
  345. package/dist/cjs/sdk/accounts/intents/operations/start-delayed-withdrawal/index.js +0 -18
  346. package/dist/cjs/sdk/accounts/intents/operations/swap/index.js +0 -18
  347. package/dist/cjs/sdk/accounts/intents/operations/unwrap-rwa-collateral/index.js +0 -27
  348. package/dist/cjs/sdk/accounts/intents/operations/withdraw-collateral/index.js +0 -43
  349. package/dist/cjs/sdk/accounts/intents/operations/wrap-rwa-collateral/index.js +0 -27
  350. package/dist/cjs/sdk/accounts/intents/quoters/close.js +0 -58
  351. package/dist/cjs/sdk/accounts/intents/quoters/index.js +0 -7
  352. package/dist/cjs/sdk/accounts/intents/quoters/swap.js +0 -79
  353. package/dist/cjs/sdk/accounts/intents/testing/expect.js +0 -167
  354. package/dist/cjs/sdk/accounts/intents/testing/resume.js +0 -172
  355. package/dist/cjs/sdk/accounts/intents/utils/simulate-adjust-state.js +0 -39
  356. package/dist/cjs/sdk/accounts/intents/utils/simulate-assets.js +0 -69
  357. package/dist/cjs/sdk/accounts/intents/utils/with-quota-update.js +0 -13
  358. package/dist/esm/model/history.js +0 -49
  359. package/dist/esm/model/history.schema.js +0 -116
  360. package/dist/esm/sdk/accounts/intents/intents/index.js +0 -8
  361. package/dist/esm/sdk/accounts/intents/intents/resume/add-collateral/add-collateral.fixtures.js +0 -107
  362. package/dist/esm/sdk/accounts/intents/intents/resume/add-collateral/add-collateral.js +0 -14
  363. package/dist/esm/sdk/accounts/intents/intents/resume/close/close.fixtures.js +0 -94
  364. package/dist/esm/sdk/accounts/intents/intents/resume/close/close.js +0 -50
  365. package/dist/esm/sdk/accounts/intents/intents/resume/decrease-leverage/decrease-leverage.fixtures.js +0 -114
  366. package/dist/esm/sdk/accounts/intents/intents/resume/decrease-leverage/decrease-leverage.js +0 -82
  367. package/dist/esm/sdk/accounts/intents/intents/resume/deposit/deposit.fixtures.js +0 -110
  368. package/dist/esm/sdk/accounts/intents/intents/resume/deposit/deposit.js +0 -14
  369. package/dist/esm/sdk/accounts/intents/intents/resume/increase-leverage/increase-leverage.fixtures.js +0 -88
  370. package/dist/esm/sdk/accounts/intents/intents/resume/increase-leverage/increase-leverage.js +0 -14
  371. package/dist/esm/sdk/accounts/intents/intents/resume/index.js +0 -7
  372. package/dist/esm/sdk/accounts/intents/intents/resume/withdraw/withdraw.fixtures.js +0 -121
  373. package/dist/esm/sdk/accounts/intents/intents/resume/withdraw/withdraw.js +0 -160
  374. package/dist/esm/sdk/accounts/intents/operations/add-collateral/index.js +0 -16
  375. package/dist/esm/sdk/accounts/intents/operations/claim-delayed/index.js +0 -52
  376. package/dist/esm/sdk/accounts/intents/operations/close-credit-account/index.js +0 -25
  377. package/dist/esm/sdk/accounts/intents/operations/decrease-debt/index.js +0 -11
  378. package/dist/esm/sdk/accounts/intents/operations/increase-debt/index.js +0 -11
  379. package/dist/esm/sdk/accounts/intents/operations/index.js +0 -14
  380. package/dist/esm/sdk/accounts/intents/operations/quota-update/index.js +0 -21
  381. package/dist/esm/sdk/accounts/intents/operations/repay-credit-account/index.js +0 -21
  382. package/dist/esm/sdk/accounts/intents/operations/start-delayed-withdrawal/index.js +0 -17
  383. package/dist/esm/sdk/accounts/intents/operations/swap/index.js +0 -17
  384. package/dist/esm/sdk/accounts/intents/operations/unwrap-rwa-collateral/index.js +0 -26
  385. package/dist/esm/sdk/accounts/intents/operations/withdraw-collateral/index.js +0 -42
  386. package/dist/esm/sdk/accounts/intents/operations/wrap-rwa-collateral/index.js +0 -26
  387. package/dist/esm/sdk/accounts/intents/quoters/close.js +0 -56
  388. package/dist/esm/sdk/accounts/intents/quoters/index.js +0 -3
  389. package/dist/esm/sdk/accounts/intents/quoters/swap.js +0 -77
  390. package/dist/esm/sdk/accounts/intents/testing/expect.js +0 -162
  391. package/dist/esm/sdk/accounts/intents/testing/resume.js +0 -157
  392. package/dist/esm/sdk/accounts/intents/utils/simulate-adjust-state.js +0 -38
  393. package/dist/esm/sdk/accounts/intents/utils/simulate-assets.js +0 -68
  394. package/dist/esm/sdk/accounts/intents/utils/with-quota-update.js +0 -12
  395. package/dist/types/model/history.d.ts +0 -153
  396. package/dist/types/model/history.schema.d.ts +0 -95
  397. package/dist/types/new-sdk/utils/history.d.ts +0 -18
  398. package/dist/types/sdk/accounts/intents/intents/index.d.ts +0 -8
  399. package/dist/types/sdk/accounts/intents/intents/resume/add-collateral/add-collateral.d.ts +0 -13
  400. package/dist/types/sdk/accounts/intents/intents/resume/add-collateral/add-collateral.fixtures.d.ts +0 -38
  401. package/dist/types/sdk/accounts/intents/intents/resume/close/close.d.ts +0 -26
  402. package/dist/types/sdk/accounts/intents/intents/resume/close/close.fixtures.d.ts +0 -63
  403. package/dist/types/sdk/accounts/intents/intents/resume/decrease-leverage/decrease-leverage.d.ts +0 -26
  404. package/dist/types/sdk/accounts/intents/intents/resume/decrease-leverage/decrease-leverage.fixtures.d.ts +0 -86
  405. package/dist/types/sdk/accounts/intents/intents/resume/deposit/deposit.d.ts +0 -13
  406. package/dist/types/sdk/accounts/intents/intents/resume/deposit/deposit.fixtures.d.ts +0 -48
  407. package/dist/types/sdk/accounts/intents/intents/resume/increase-leverage/increase-leverage.d.ts +0 -13
  408. package/dist/types/sdk/accounts/intents/intents/resume/increase-leverage/increase-leverage.fixtures.d.ts +0 -46
  409. package/dist/types/sdk/accounts/intents/intents/resume/index.d.ts +0 -7
  410. package/dist/types/sdk/accounts/intents/intents/resume/withdraw/withdraw.d.ts +0 -33
  411. package/dist/types/sdk/accounts/intents/intents/resume/withdraw/withdraw.fixtures.d.ts +0 -68
  412. package/dist/types/sdk/accounts/intents/operations/add-collateral/index.d.ts +0 -23
  413. package/dist/types/sdk/accounts/intents/operations/claim-delayed/index.d.ts +0 -55
  414. package/dist/types/sdk/accounts/intents/operations/close-credit-account/index.d.ts +0 -22
  415. package/dist/types/sdk/accounts/intents/operations/decrease-debt/index.d.ts +0 -18
  416. package/dist/types/sdk/accounts/intents/operations/increase-debt/index.d.ts +0 -18
  417. package/dist/types/sdk/accounts/intents/operations/index.d.ts +0 -14
  418. package/dist/types/sdk/accounts/intents/operations/quota-update/index.d.ts +0 -24
  419. package/dist/types/sdk/accounts/intents/operations/repay-credit-account/index.d.ts +0 -31
  420. package/dist/types/sdk/accounts/intents/operations/start-delayed-withdrawal/index.d.ts +0 -23
  421. package/dist/types/sdk/accounts/intents/operations/swap/index.d.ts +0 -28
  422. package/dist/types/sdk/accounts/intents/operations/types.d.ts +0 -21
  423. package/dist/types/sdk/accounts/intents/operations/unwrap-rwa-collateral/index.d.ts +0 -30
  424. package/dist/types/sdk/accounts/intents/operations/withdraw-collateral/index.d.ts +0 -36
  425. package/dist/types/sdk/accounts/intents/operations/wrap-rwa-collateral/index.d.ts +0 -30
  426. package/dist/types/sdk/accounts/intents/quoters/close.d.ts +0 -43
  427. package/dist/types/sdk/accounts/intents/quoters/index.d.ts +0 -3
  428. package/dist/types/sdk/accounts/intents/quoters/swap.d.ts +0 -43
  429. package/dist/types/sdk/accounts/intents/testing/resume.d.ts +0 -84
  430. package/dist/types/sdk/accounts/intents/utils/simulate-adjust-state.d.ts +0 -19
  431. package/dist/types/sdk/accounts/intents/utils/simulate-assets.d.ts +0 -21
  432. package/dist/types/sdk/accounts/intents/utils/with-quota-update.d.ts +0 -16
  433. /package/dist/cjs/{new-sdk/utils/history.js → model/notices.js} +0 -0
  434. /package/dist/cjs/{sdk/accounts/intents/operations → new-sdk/simulate}/types.js +0 -0
  435. /package/dist/esm/{new-sdk/utils/history.js → model/notices.js} +0 -0
  436. /package/dist/esm/{sdk/accounts/intents/operations → new-sdk/simulate}/types.js +0 -0
@@ -1,391 +1,249 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_sdk_base_SDKConstruct = require("../../base/SDKConstruct.js");
3
- const require_sdk_accounts_intents_utils_assemble_operation_calls = require("./utils/assemble-operation-calls.js");
4
- const require_sdk_accounts_intents_utils_simulate_adjust_state = require("./utils/simulate-adjust-state.js");
5
- const require_sdk_accounts_intents_utils_with_quota_update = require("./utils/with-quota-update.js");
6
- require("./utils/index.js");
7
- const require_sdk_accounts_intents_operations_claim_delayed_index = require("./operations/claim-delayed/index.js");
8
- require("./operations/index.js");
9
- const require_sdk_accounts_intents_intents_resume_add_collateral_add_collateral = require("./intents/resume/add-collateral/add-collateral.js");
10
- const require_sdk_accounts_intents_intents_resume_close_close = require("./intents/resume/close/close.js");
11
- const require_sdk_accounts_intents_intents_resume_decrease_leverage_decrease_leverage = require("./intents/resume/decrease-leverage/decrease-leverage.js");
12
- const require_sdk_accounts_intents_intents_resume_deposit_deposit = require("./intents/resume/deposit/deposit.js");
13
- const require_sdk_accounts_intents_intents_resume_increase_leverage_increase_leverage = require("./intents/resume/increase-leverage/increase-leverage.js");
14
- const require_sdk_accounts_intents_intents_resume_withdraw_withdraw = require("./intents/resume/withdraw/withdraw.js");
15
- require("./intents/resume/index.js");
16
- const require_sdk_accounts_intents_quoters_close = require("./quoters/close.js");
17
- const require_sdk_accounts_intents_quoters_swap = require("./quoters/swap.js");
18
- require("./quoters/index.js");
3
+ const require_sdk_accounts_intents_types = require("./types.js");
4
+ const require_sdk_accounts_intents_guards = require("./guards.js");
5
+ const require_sdk_accounts_intents_math = require("./math.js");
6
+ const require_sdk_accounts_intents_utils_credit_account_slice = require("./utils/credit-account-slice.js");
7
+ const require_sdk_accounts_intents_open_strategy = require("./open-strategy.js");
8
+ const require_sdk_accounts_intents_operations = require("./operations.js");
9
+ const require_sdk_accounts_intents_plan = require("./plan.js");
10
+ const require_sdk_accounts_intents_realize = require("./realize.js");
11
+ const require_sdk_accounts_intents_view = require("./view.js");
19
12
  //#region src/sdk/accounts/intents/index.ts
13
+ /**
14
+ * Previews of everything a wallet can do to an existing credit account.
15
+ *
16
+ * Two halves, deliberately kept apart: `plan.ts` turns an intent into a few
17
+ * steps with pure arithmetic, `realize.ts` turns the steps into router-backed
18
+ * operations. This class only picks the planner and wraps the outcome.
19
+ */
20
20
  var CreditAccountOperationsService = class extends require_sdk_base_SDKConstruct.SDKConstruct {
21
- async finishIntent(props) {
22
- const intent = props.intent;
23
- switch (intent.type) {
24
- case "ADD_COLLATERAL": return this.#finishAddCollateralIntent({
25
- ...props,
26
- intent
27
- });
28
- case "INCREASE_LEVERAGE": return this.#finishIncreaseLeverageIntent({
29
- ...props,
30
- intent
31
- });
32
- case "DEPOSIT": return this.#finishDepositIntent({
33
- ...props,
34
- intent
35
- });
36
- case "DEPOSIT_AND_INCREASE_LEVERAGE": return this.#finishDepositAndIncreaseLeverageIntent({
37
- ...props,
38
- intent
39
- });
40
- case "CLOSE_ACCOUNT": return this.#finishCloseAccountIntent({
41
- ...props,
42
- intent
43
- });
44
- case "WITHDRAW_COLLATERAL": return this.#finishWithdrawCollateralIntent({
45
- ...props,
46
- intent
47
- });
48
- case "DECREASE_LEVERAGE": return this.#finishDecreaseLeverageIntent({
49
- ...props,
50
- intent
51
- });
52
- default: throw new Error(`${props.intent.type} - not implemented`);
53
- }
21
+ /**
22
+ * Previews an operation on an existing account.
23
+ *
24
+ * @param props - Intent plus account slice, quota reserve and slippage
25
+ * @returns Operations, projected state and calldata, or `{ ok: false, reason }`
26
+ * when the intent cannot be satisfied (e.g. the account lacks the source
27
+ * balance)
28
+ */
29
+ async startIntent(props) {
30
+ return plain(await this.#preview(props, () => {
31
+ const { intent } = props;
32
+ const view = require_sdk_accounts_intents_view.accountView(props.creditAccount, props.sdk);
33
+ switch (intent.type) {
34
+ case "ADD_COLLATERAL": return require_sdk_accounts_intents_plan.planAddCollateral(intent);
35
+ case "WITHDRAW_ASSET": return require_sdk_accounts_intents_plan.planWithdrawAsset(intent, view);
36
+ case "ADJUST_LEVERAGE": return require_sdk_accounts_intents_plan.planAdjustLeverage(intent, view);
37
+ case "DEPOSIT": return require_sdk_accounts_intents_plan.planDeposit(intent, view);
38
+ case "REPAY": return require_sdk_accounts_intents_plan.planRepay(intent, view);
39
+ case "WITHDRAW": return require_sdk_accounts_intents_plan.planWithdraw(intent, view);
40
+ default: throw new Error(`${intent.type} - not implemented`);
41
+ }
42
+ }));
54
43
  }
55
44
  /**
56
- * Shared resume flow for claim-only intents (add collateral, increase
57
- * leverage, deposit, deposit+increase): claim op + trailing changeQuota.
58
- * If any implementations change, respective handler should be implemented separately
45
+ * Largest `WITHDRAW` amount (in underlying) the account can take out while
46
+ * keeping leverage and staying inside the facade's debt band — the ceiling a
47
+ * withdraw form should offer. Taking everything out is the same intent with
48
+ * `MAX_UINT256` for an amount, and needs none of this arithmetic.
49
+ *
50
+ * @param props - Account slice and the SDK holding its market
51
+ * @returns Amount in underlying units; `0n` when nothing can leave
59
52
  */
60
- #finishClaimOnlyIntent = (buildOperations) => async (props) => {
61
- switch (props.options.kind) {
62
- case "offchain": return this.#finishClaimOnlyIntentOffchain(props, props.options, buildOperations);
63
- default: return this.#finishClaimOnlyIntentOnchain(props, props.options, buildOperations);
64
- }
65
- };
66
- #finishClaimOnlyIntentOffchain(props, options, buildOperations) {
67
- const baseOperations = buildOperations(props.creditAccount, options, this.sdk);
68
- const state = require_sdk_accounts_intents_utils_simulate_adjust_state.simulateState({
69
- ...props,
70
- operations: baseOperations
71
- });
72
- return {
73
- ok: true,
74
- instant: {
75
- operations: require_sdk_accounts_intents_utils_with_quota_update.getOperationsWithQuotaUpdate({
76
- operations: baseOperations,
77
- state,
78
- creditAccount: props.creditAccount,
79
- sdk: this.sdk,
80
- options
81
- }),
82
- preview: { min: state.state },
83
- calls: []
84
- },
85
- instantError: void 0,
86
- delayedBranch: void 0,
87
- delayedError: void 0
88
- };
53
+ maxWithdraw(props) {
54
+ const view = require_sdk_accounts_intents_view.accountView(props.creditAccount, props.sdk);
55
+ return require_sdk_accounts_intents_math.maxProportionalWithdrawal(view, view.band);
89
56
  }
90
- async #finishClaimOnlyIntentOnchain(props, options, buildOperations) {
91
- const baseOperations = buildOperations(props.creditAccount, options, this.sdk);
92
- const state = require_sdk_accounts_intents_utils_simulate_adjust_state.simulateState({
93
- ...props,
94
- operations: baseOperations
95
- });
96
- const operations = require_sdk_accounts_intents_utils_with_quota_update.getOperationsWithQuotaUpdate({
97
- operations: baseOperations,
98
- state,
99
- creditAccount: props.creditAccount,
100
- sdk: this.sdk,
101
- options
102
- });
103
- const calls = await require_sdk_accounts_intents_utils_assemble_operation_calls.assembleOperationCalls({
104
- ...props,
105
- operations
106
- });
107
- return {
108
- ok: true,
109
- instant: {
110
- operations,
111
- preview: { min: state.state },
112
- calls
113
- },
114
- instantError: void 0,
115
- delayedBranch: void 0,
116
- delayedError: void 0
117
- };
57
+ /**
58
+ * Debt a `REPAY` would have to cover to settle the account, in underlying
59
+ * units: principal plus the interest and fees accrued as of the read.
60
+ *
61
+ * A repayment of exactly this leaves nothing behind at the block it was read
62
+ * at, and a little behind at any later one, since interest does not stop —
63
+ * so a wallet meaning to clear the account sends this with a buffer on top,
64
+ * which the intent caps at the debt rather than spending. `REPAY` with
65
+ * `MAX_UINT256` sizes that buffer itself.
66
+ *
67
+ * @param props - Account slice and the SDK holding its market
68
+ * @returns Amount in underlying units; `0n` on an account that owes nothing
69
+ */
70
+ maxRepay(props) {
71
+ return require_sdk_accounts_intents_view.accountView(props.creditAccount, props.sdk).debt;
118
72
  }
119
- #finishAddCollateralIntent = this.#finishClaimOnlyIntent(require_sdk_accounts_intents_intents_resume_add_collateral_add_collateral.buildResumeAddCollateralOperations);
120
- #finishIncreaseLeverageIntent = this.#finishClaimOnlyIntent(require_sdk_accounts_intents_intents_resume_increase_leverage_increase_leverage.buildResumeIncreaseLeverageOperations);
121
- #finishDepositIntent = this.#finishClaimOnlyIntent(require_sdk_accounts_intents_intents_resume_deposit_deposit.buildResumeDepositOperations);
122
- #finishDepositAndIncreaseLeverageIntent = this.#finishClaimOnlyIntent(require_sdk_accounts_intents_intents_resume_deposit_deposit.buildResumeDepositOperations);
123
73
  /**
124
- * Resume close: claim, then close against quoted post-claim balances.
125
- * Offchain quotes equity by oracle prices, onchain — router close path.
126
- * Router miss soft-fails to the oracle quote with `calls: []` (legacy parity).
74
+ * Previews the same operation when its source only redeems through its
75
+ * issuer: a Securitize dsToken, a Mellow share.
76
+ *
77
+ * Sits apart from {@link startIntent} because it is a different trade route,
78
+ * not a different intent: the request goes to the issuer instead of the
79
+ * router, and the proceeds — hence the repayment and the payout — arrive days
80
+ * later. Both routes of one intent are quoted together by
81
+ * {@link intentRoutes}; this is the one to call when the delayed route is the
82
+ * only one of interest.
83
+ *
84
+ * @param props - Intent plus account slice, quota reserve and slippage
85
+ * @returns The request transaction and what it recorded for the tail, or
86
+ * `{ ok: false, reason }` — `noDelayedRoute` when this route does not exist
87
+ * for the account at all
127
88
  */
128
- async #finishCloseAccountIntent({ options, ...props }) {
129
- switch (options.kind) {
130
- case "offchain": return this.#finishCloseAccountIntentOffchain({
131
- ...props,
132
- options
133
- });
134
- default: try {
135
- return await this.#finishCloseAccountIntentOnchain({
136
- ...props,
137
- options
138
- });
139
- } catch {
140
- return this.#finishCloseAccountIntentOffchain({
141
- ...props,
142
- options
143
- });
89
+ async startDelayedIntent(props) {
90
+ const { intent } = props;
91
+ const result = await this.#preview(props, () => {
92
+ const view = require_sdk_accounts_intents_view.accountView(props.creditAccount, props.sdk);
93
+ switch (intent.type) {
94
+ case "ADJUST_LEVERAGE": return require_sdk_accounts_intents_plan.planAdjustLeverageDelayed(intent, view);
95
+ case "WITHDRAW": return require_sdk_accounts_intents_plan.planWithdrawDelayed(intent, view);
96
+ default: throw new Error(`${intent.type} - cannot be delayed`);
144
97
  }
145
- }
146
- }
147
- async #finishCloseAccountIntentOffchain({ options, ...props }) {
148
- const quoter = require_sdk_accounts_intents_quoters_close.createCloseOracleQuoter({
149
- sdk: this.sdk,
150
- creditAccount: props.creditAccount
151
98
  });
152
- const { operations, quote } = await require_sdk_accounts_intents_intents_resume_close_close.buildResumeCloseOperations({
153
- ...props,
154
- options
155
- }, quoter);
99
+ if (!result.ok) return result;
100
+ if (!result.delayed) throw new Error("startDelayedIntent: plan started no withdrawal");
156
101
  return {
157
- ok: true,
158
- instant: {
159
- operations,
160
- preview: { min: {
161
- kind: "close",
162
- amount: quote.amount,
163
- minAmount: quote.minAmount,
164
- underlyingBalance: quote.underlyingBalance
165
- } },
166
- calls: []
167
- },
168
- instantError: void 0,
169
- delayedBranch: void 0,
170
- delayedError: void 0
171
- };
172
- }
173
- async #finishCloseAccountIntentOnchain({ options, slippage = 0, ...props }) {
174
- const quoter = require_sdk_accounts_intents_quoters_close.createRouterCloseQuoter({
175
- sdk: this.sdk,
176
- creditAccount: props.creditAccount,
177
- slippage
178
- });
179
- const { operations, quote } = await require_sdk_accounts_intents_intents_resume_close_close.buildResumeCloseOperations({
180
- ...props,
181
- options
182
- }, quoter);
183
- const calls = await require_sdk_accounts_intents_utils_assemble_operation_calls.assembleOperationCalls({
184
- ...props,
185
- operations
186
- });
187
- return {
188
- ok: true,
189
- instant: {
190
- operations,
191
- preview: { min: {
192
- kind: "close",
193
- amount: quote.amount,
194
- minAmount: quote.minAmount,
195
- underlyingBalance: quote.underlyingBalance
196
- } },
197
- calls
198
- },
199
- instantError: void 0,
200
- delayedBranch: void 0,
201
- delayedError: void 0
102
+ ...result,
103
+ delayed: result.delayed
202
104
  };
203
105
  }
204
106
  /**
205
- * Resume withdraw: claim → (swap?) → decreaseDebt? → (unwrapRwa?) →
206
- * withdrawCollateral + trailing changeQuota. Offchain prices swaps by
207
- * oracle, onchain — router swap paths (leftover-aware).
107
+ * Previews a delayable intent both ways at once: settled by the router now,
108
+ * and started as a redemption that finishes days later.
109
+ *
110
+ * Which routes an account has depends on the intent and the token it sells,
111
+ * and a form has to know before it can offer a choice — so both are quoted
112
+ * from the same request and each is reported on its own. A route the account
113
+ * cannot take comes back `undefined` with its refusal in `refused`; only when
114
+ * neither answers is the whole result `{ ok: false }`.
115
+ *
116
+ * A route that could not be quoted at all — a pathfinder with no path out of
117
+ * the source, a read that failed — counts as missing rather than fatal, since
118
+ * the other route may be the one the caller wanted. With nothing left to
119
+ * report the failure is rethrown, as {@link startIntent} would have.
120
+ *
121
+ * @param props - A withdraw or adjust-leverage intent plus account slice,
122
+ * quota reserve and slippage
123
+ * @returns Whichever routes are viable, or `{ ok: false, reason }` when none is
208
124
  */
209
- async #finishWithdrawCollateralIntent({ options, ...props }) {
210
- switch (options.kind) {
211
- case "offchain": return this.#finishWithdrawCollateralIntentOffchain({
212
- ...props,
213
- options
214
- });
215
- default: try {
216
- return await this.#finishWithdrawCollateralIntentOnchain({
217
- ...props,
218
- options
219
- });
220
- } catch {
221
- return this.#finishWithdrawCollateralIntentOffchain({
222
- ...props,
223
- options
224
- });
225
- }
226
- }
227
- }
228
- async #finishWithdrawCollateralIntentOffchain({ options, ...props }) {
229
- const quoter = require_sdk_accounts_intents_quoters_swap.createOracleSwapQuoter({
230
- sdk: this.sdk,
231
- creditAccount: props.creditAccount
232
- });
233
- const baseOperations = await require_sdk_accounts_intents_intents_resume_withdraw_withdraw.buildResumeWithdrawOperations({
234
- ...props,
235
- options
236
- }, quoter);
237
- const state = require_sdk_accounts_intents_utils_simulate_adjust_state.simulateState({
238
- ...props,
239
- operations: baseOperations
240
- });
241
- return {
125
+ async intentRoutes(props) {
126
+ const [instant, delayed] = await Promise.allSettled([this.startIntent(props), this.startDelayedIntent(props)]);
127
+ const instantRoute = instant.status === "fulfilled" && instant.value.ok ? instant.value : void 0;
128
+ const delayedRoute = delayed.status === "fulfilled" && delayed.value.ok ? delayed.value : void 0;
129
+ const refused = {
130
+ instant: instant.status === "fulfilled" && !instant.value.ok ? instant.value.reason : void 0,
131
+ delayed: delayed.status === "fulfilled" && !delayed.value.ok ? delayed.value.reason : void 0
132
+ };
133
+ if (instantRoute || delayedRoute) return {
242
134
  ok: true,
243
- instant: {
244
- operations: require_sdk_accounts_intents_utils_with_quota_update.getOperationsWithQuotaUpdate({
245
- operations: baseOperations,
246
- state,
247
- creditAccount: props.creditAccount,
248
- sdk: this.sdk,
249
- options
250
- }),
251
- preview: { min: state.state },
252
- calls: []
253
- },
254
- instantError: void 0,
255
- delayedBranch: void 0,
256
- delayedError: void 0
135
+ instant: instantRoute,
136
+ delayed: delayedRoute,
137
+ refused
257
138
  };
258
- }
259
- async #finishWithdrawCollateralIntentOnchain({ options, slippage = 0, ...props }) {
260
- const quoter = require_sdk_accounts_intents_quoters_swap.createRouterSwapQuoter({
261
- sdk: this.sdk,
262
- creditAccount: props.creditAccount,
263
- slippage
264
- });
265
- const baseOperations = await require_sdk_accounts_intents_intents_resume_withdraw_withdraw.buildResumeWithdrawOperations({
266
- ...props,
267
- options
268
- }, quoter);
269
- const state = require_sdk_accounts_intents_utils_simulate_adjust_state.simulateState({
270
- ...props,
271
- operations: baseOperations
272
- });
273
- const operations = require_sdk_accounts_intents_utils_with_quota_update.getOperationsWithQuotaUpdate({
274
- operations: baseOperations,
275
- state,
276
- creditAccount: props.creditAccount,
277
- sdk: this.sdk,
278
- options
279
- });
280
- const calls = await require_sdk_accounts_intents_utils_assemble_operation_calls.assembleOperationCalls({
281
- ...props,
282
- operations
283
- });
139
+ const failed = [instant, delayed].find((s) => s.status === "rejected");
140
+ if (failed?.status === "rejected") throw failed.reason;
141
+ const reason = refused.instant ?? refused.delayed;
142
+ if (reason === void 0) throw new Error("intentRoutes: a route neither answered nor refused");
284
143
  return {
285
- ok: true,
286
- instant: {
287
- operations,
288
- preview: { min: state.state },
289
- calls
290
- },
291
- instantError: void 0,
292
- delayedBranch: void 0,
293
- delayedError: void 0
144
+ ok: false,
145
+ reason,
146
+ refused
294
147
  };
295
148
  }
296
149
  /**
297
- * Resume decrease leverage: claim → (wrapRwa | swap)? → decreaseDebt +
298
- * trailing changeQuota. Offchain prices swaps by oracle, onchain — router
299
- * swap paths. Router miss soft-fails to the oracle quote (legacy parity).
150
+ * Previews the tail of a delayed intent, once the withdrawal it started has
151
+ * matured: the claim, then whatever the intent still owes.
152
+ *
153
+ * Serves the two operations that can genuinely be interrupted by a delay — a
154
+ * withdrawal and a deleveraging. For the rest, the claim is the whole tail:
155
+ * the tokens land on the account and only their quota has to catch up.
156
+ *
157
+ * @param props - The recorded intent, the account slice as it stands now, and
158
+ * the matured claimable
159
+ * @returns Shaped exactly like {@link startIntent}'s result, so both halves of
160
+ * an operation are consumed the same way
300
161
  */
301
- async #finishDecreaseLeverageIntent({ options, ...props }) {
302
- switch (options.kind) {
303
- case "offchain": return this.#finishDecreaseLeverageIntentOffchain({
304
- ...props,
305
- options
306
- });
307
- default: try {
308
- return await this.#finishDecreaseLeverageIntentOnchain({
309
- ...props,
310
- options
311
- });
312
- } catch {
313
- return this.#finishDecreaseLeverageIntentOffchain({
314
- ...props,
315
- options
316
- });
162
+ async finishIntent(props) {
163
+ const { intent, claimable } = props;
164
+ return plain(await this.#preview(props, () => {
165
+ const view = require_sdk_accounts_intents_view.accountView(props.creditAccount, props.sdk);
166
+ const claimed = () => {
167
+ const output = require_sdk_accounts_intents_operations.instantOutput(claimable.outputs);
168
+ if (!output) throw new require_sdk_accounts_intents_types.IntentPreviewError("insufficientSourceBalance", "finishIntent: the claim credits nothing to spend");
169
+ return output;
170
+ };
171
+ switch (intent.type) {
172
+ case "WITHDRAW_COLLATERAL": return require_sdk_accounts_intents_plan.planFinishWithdraw(intent, claimable, claimed(), view);
173
+ case "DECREASE_LEVERAGE": return require_sdk_accounts_intents_plan.planFinishDecreaseLeverage(claimable, claimed(), view);
174
+ case "ADD_COLLATERAL":
175
+ case "INCREASE_LEVERAGE":
176
+ case "DEPOSIT":
177
+ case "DEPOSIT_AND_INCREASE_LEVERAGE": return require_sdk_accounts_intents_plan.planFinishClaimOnly(claimable);
178
+ default: throw new Error(`${intent.type} - not implemented`);
317
179
  }
318
- }
180
+ }));
319
181
  }
320
- async #finishDecreaseLeverageIntentOffchain({ options, ...props }) {
321
- const quoter = require_sdk_accounts_intents_quoters_swap.createOracleSwapQuoter({
322
- sdk: this.sdk,
323
- creditAccount: props.creditAccount
324
- });
325
- const baseOperations = await require_sdk_accounts_intents_intents_resume_decrease_leverage_decrease_leverage.buildResumeDecreaseLeverageOperations({
326
- ...props,
327
- options
328
- }, quoter);
329
- const state = require_sdk_accounts_intents_utils_simulate_adjust_state.simulateState({
330
- ...props,
331
- operations: baseOperations
332
- });
333
- return {
334
- ok: true,
335
- instant: {
336
- operations: require_sdk_accounts_intents_utils_with_quota_update.getOperationsWithQuotaUpdate({
337
- operations: baseOperations,
338
- state,
339
- creditAccount: props.creditAccount,
340
- sdk: this.sdk,
341
- options
342
- }),
343
- preview: { min: state.state },
344
- calls: []
345
- },
346
- instantError: void 0,
347
- delayedBranch: void 0,
348
- delayedError: void 0
349
- };
182
+ /**
183
+ * Previews opening a brand-new leveraged position.
184
+ *
185
+ * Sits apart from {@link startIntent} because there is no account yet: nothing
186
+ * can be projected from existing balances, and the output feeds
187
+ * `sdk.accounts.openCA` rather than a facade multicall assembled here.
188
+ *
189
+ * @param props - Credit manager, wallet collateral, target token and leverage
190
+ * @returns Debt, position size, projected balances and quotas for both the
191
+ * expected and the floor branch, or `{ ok: false, reason }` when the requested
192
+ * leverage or the resulting debt is not viable
193
+ */
194
+ async openStrategyIntent(props) {
195
+ try {
196
+ return {
197
+ ok: true,
198
+ preview: await require_sdk_accounts_intents_open_strategy.previewOpenStrategy(props)
199
+ };
200
+ } catch (e) {
201
+ return asFailure(e);
202
+ }
350
203
  }
351
- async #finishDecreaseLeverageIntentOnchain({ options, slippage = 0, ...props }) {
352
- const quoter = require_sdk_accounts_intents_quoters_swap.createRouterSwapQuoter({
353
- sdk: this.sdk,
354
- creditAccount: props.creditAccount,
355
- slippage
356
- });
357
- const baseOperations = await require_sdk_accounts_intents_intents_resume_decrease_leverage_decrease_leverage.buildResumeDecreaseLeverageOperations({
358
- ...props,
359
- options
360
- }, quoter);
361
- const state = require_sdk_accounts_intents_utils_simulate_adjust_state.simulateState({
362
- ...props,
363
- operations: baseOperations
364
- });
365
- const operations = require_sdk_accounts_intents_utils_with_quota_update.getOperationsWithQuotaUpdate({
366
- operations: baseOperations,
367
- state,
368
- creditAccount: props.creditAccount,
369
- sdk: this.sdk,
370
- options
371
- });
372
- const calls = await require_sdk_accounts_intents_utils_assemble_operation_calls.assembleOperationCalls({
373
- ...props,
374
- operations
375
- });
376
- return {
377
- ok: true,
378
- instant: {
204
+ /** Plan → realise → wrap. Unviable requests become `{ ok: false }`. */
205
+ async #preview(props, plan) {
206
+ try {
207
+ require_sdk_accounts_intents_guards.assertMarketOperable(props.sdk.marketRegister.findCreditManager(props.creditAccount.creditManager));
208
+ const { operations, state, calls, delayed } = await require_sdk_accounts_intents_realize.realize(plan(), {
209
+ creditAccount: props.creditAccount,
210
+ sdk: props.sdk,
211
+ slippage: props.slippage ?? 0,
212
+ quotaReserve: props.quotaReserve
213
+ });
214
+ return {
215
+ ok: true,
379
216
  operations,
380
- preview: { min: state.state },
381
- calls
382
- },
383
- instantError: void 0,
384
- delayedBranch: void 0,
385
- delayedError: void 0
386
- };
217
+ preview: state,
218
+ calls,
219
+ delayed
220
+ };
221
+ } catch (e) {
222
+ return asFailure(e);
223
+ }
387
224
  }
388
225
  };
226
+ /** Drops the delayed half for the flows that cannot produce one. */
227
+ function plain(result) {
228
+ if (!result.ok) return result;
229
+ const { operations, preview, calls } = result;
230
+ return {
231
+ ok: true,
232
+ operations,
233
+ preview,
234
+ calls
235
+ };
236
+ }
237
+ /** Unviable requests are values; anything else is a genuine failure. */
238
+ function asFailure(e) {
239
+ if (e instanceof require_sdk_accounts_intents_types.IntentPreviewError) return {
240
+ ok: false,
241
+ reason: e.reason
242
+ };
243
+ throw e;
244
+ }
389
245
  //#endregion
390
246
  exports.CreditAccountOperationsService = CreditAccountOperationsService;
391
- exports.primaryInstantOutput = require_sdk_accounts_intents_operations_claim_delayed_index.primaryInstantOutput;
247
+ exports.IntentPreviewError = require_sdk_accounts_intents_types.IntentPreviewError;
248
+ exports.fetchCreditAccountSlice = require_sdk_accounts_intents_utils_credit_account_slice.fetchCreditAccountSlice;
249
+ exports.toCreditAccountSlice = require_sdk_accounts_intents_utils_credit_account_slice.toCreditAccountSlice;