@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
@@ -0,0 +1,355 @@
1
+ import { MIN_INT96 } from "../../../constants/math.js";
2
+ import { toBN } from "../../../utils/formatter.js";
3
+ import "../../../index.js";
4
+ import { MOCK_CLAIM_CALL } from "../testing/sdk-mock.js";
5
+ import { ANY, CREDIT_ACCOUNT, CREDIT_FACADE, CREDIT_MANAGER, POS, POS2, RWA_ASSET, UND, WALLET, buildMarketSdk } from "../testing/market.js";
6
+ import { buildTailSdk } from "../testing/delayed.js";
7
+ //#region src/sdk/accounts/intents/tests/finish-withdraw.fixtures.ts
8
+ /**
9
+ * Withdraw tail fixtures, ported from intent-calculator
10
+ * `withdraw.flowFixtures.ts` (tail cases only).
11
+ */
12
+ const WITHDRAW_UND = toBN("1000", 8);
13
+ const WITHDRAW_ANY = toBN("2000", 18);
14
+ const WITHDRAW_ANY2 = toBN("2000", 18);
15
+ /** Withdraw amount in rwa.asset units (8 decimals, priced 1:1 with UND). */
16
+ const WITHDRAW_RWA = toBN("2000", 8);
17
+ const DEBT_DELTA = toBN("4000", 8);
18
+ const PHANTOM = "0xb1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1";
19
+ /** Per-token CA balance (legacy `A0_TOK` / und balance). */
20
+ const A0 = toBN("100000", 18);
21
+ const A0_UND = toBN("100000", 8);
22
+ const QUOTA0 = toBN("50000", 8);
23
+ /** Starting account debt on the fixture CA. */
24
+ const WITHDRAW_PRE_D = toBN("40000", 8);
25
+ /**
26
+ * Starting TVL of the fixture CA tokens (ANY + ANY2 + UND). Claim may add
27
+ * value when the phantom is absent from `tokens` (current fixtures).
28
+ */
29
+ const WITHDRAW_BASE_TV = 20000000000000n;
30
+ const WITHDRAW_TO = "0x1234567890123456789012345678901234567890";
31
+ function withdrawAmountFor(token) {
32
+ if (token === "0x3333333333333333333333333333333333333333") return WITHDRAW_UND;
33
+ if (token === "0x1111111111111111111111111111111111111111") return WITHDRAW_ANY;
34
+ return WITHDRAW_ANY2;
35
+ }
36
+ function buildWithdrawSdk(args) {
37
+ return buildTailSdk({ claimedToken: args.claimedToken }, {
38
+ extraPrices: args.extraPrices,
39
+ extraDecimals: args.extraDecimals,
40
+ rwaAssets: args.rwaAssets,
41
+ phantom: PHANTOM
42
+ });
43
+ }
44
+ /** The matured withdrawal these fixtures claim. */
45
+ function buildWithdrawClaimable(args) {
46
+ return {
47
+ token: args.claimedToken,
48
+ withdrawalPhantomToken: PHANTOM,
49
+ withdrawalTokenSpent: args.claimedAmount,
50
+ outputs: [{
51
+ token: args.claimedToken,
52
+ amount: args.claimedAmount,
53
+ isDelayed: false
54
+ }],
55
+ claimCalls: [MOCK_CLAIM_CALL]
56
+ };
57
+ }
58
+ function buildWithdrawFinishProps(args) {
59
+ const creditAccount = {
60
+ creditAccount: CREDIT_ACCOUNT,
61
+ creditManager: CREDIT_MANAGER,
62
+ creditFacade: CREDIT_FACADE,
63
+ underlying: UND,
64
+ enabledTokensMask: 0n,
65
+ totalDebtUSD: 0n,
66
+ accountDebt: WITHDRAW_PRE_D,
67
+ tokens: args.tokens ?? [
68
+ {
69
+ token: "0x1111111111111111111111111111111111111111",
70
+ balance: A0,
71
+ quota: QUOTA0,
72
+ mask: 0n,
73
+ success: true
74
+ },
75
+ {
76
+ token: "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
77
+ balance: A0,
78
+ quota: QUOTA0,
79
+ mask: 0n,
80
+ success: true
81
+ },
82
+ {
83
+ token: "0x3333333333333333333333333333333333333333",
84
+ balance: A0_UND,
85
+ quota: 0n,
86
+ mask: 0n,
87
+ success: true
88
+ }
89
+ ]
90
+ };
91
+ return {
92
+ intent: {
93
+ type: "WITHDRAW_COLLATERAL",
94
+ to: WITHDRAW_TO,
95
+ sourceToken: args.sourceToken,
96
+ withdrawToken: args.withdrawToken,
97
+ withdrawAmount: args.withdrawAmount ?? withdrawAmountFor(args.withdrawToken),
98
+ debtRepaid: args.debtRepaid
99
+ },
100
+ creditAccount,
101
+ sdk: args.sdk,
102
+ quotaReserve: void 0,
103
+ claimable: buildWithdrawClaimable(args),
104
+ slippage: args.slippage ?? 50
105
+ };
106
+ }
107
+ const M4_LT = 9200n;
108
+ /** Quota the matrix cases give a balance: balance * LT / PERCENTAGE_FACTOR. */
109
+ const m4QuotaOf = (balance) => balance * M4_LT / 10000n;
110
+ /** Matrix baseline debt: 8U. */
111
+ const M4_DEBT = 800000000n;
112
+ /** Matrix payout W: 1U. */
113
+ const M4_W = 100000000n;
114
+ /** Proportional repayment `dD = D0 * W / C0` = 4U. */
115
+ const M4_DD = 400000000n;
116
+ /** Payout plus repayment: 5U redeemed by the leading half. */
117
+ const M4_SPEND = 500000000n;
118
+ /** Quotable withdrawal phantom: `POS2`, 1:1 with `POS`. */
119
+ const M4_PHANTOM = POS2;
120
+ /** 5U claimed in `ANY` (priced 1 against `UND` priced 2): 10 ANY. */
121
+ const M4_CLAIM_ANY = 10000000000000000000n;
122
+ /** TVL the 4.4/4.6 tails report — the echo router credits its raw input. */
123
+ const M4_ECHO_TVL = 10000000000000000000n;
124
+ /** The claim op every matrix tail starts with. */
125
+ function m4ClaimOp(claimedToken, claimedAmount) {
126
+ return {
127
+ type: "claimDelayedWithdrawal",
128
+ token: POS,
129
+ withdrawalPhantomToken: M4_PHANTOM,
130
+ withdrawalTokenSpent: M4_SPEND,
131
+ outputs: [{
132
+ token: claimedToken,
133
+ amount: claimedAmount,
134
+ isDelayed: false
135
+ }]
136
+ };
137
+ }
138
+ /**
139
+ * Quota op every matrix tail ends with: the phantom is fully spent, so its
140
+ * quota is reset (the `MIN_INT96` sentinel encodes "reset" in quota deltas).
141
+ */
142
+ function m4PhantomQuotaResetOp() {
143
+ return {
144
+ type: "changeQuota",
145
+ quotaIncrease: [],
146
+ quotaDecrease: [{
147
+ token: M4_PHANTOM,
148
+ balance: MIN_INT96
149
+ }],
150
+ desiredQuota: {}
151
+ };
152
+ }
153
+ /**
154
+ * Matrix 4.3 tail — the claim pays `UND` directly.
155
+ *
156
+ * MATRIX MISMATCH: the matrix pays out first — `claim →
157
+ * withdrawCollateral(min(W, claim.amount)) → decreaseDebt(rest) →
158
+ * changeQuota`. The engine repays before paying out (`repay(debtRepaid,
159
+ * keep: W)` precedes the payout leg in `planFinishWithdraw`):
160
+ * `claim → decreaseDebt(dD) → withdrawCollateral(W) → changeQuota`.
161
+ * Amounts are identical; only the order differs.
162
+ */
163
+ const case_matrix_4_3_tail = {
164
+ claimedToken: UND,
165
+ claimedAmount: M4_SPEND,
166
+ totalValue: M4_SPEND,
167
+ ops: [
168
+ m4ClaimOp(UND, M4_SPEND),
169
+ {
170
+ type: "decreaseDebt",
171
+ amount: M4_DD
172
+ },
173
+ {
174
+ type: "withdrawCollateral",
175
+ token: UND,
176
+ amount: M4_W,
177
+ to: WALLET
178
+ },
179
+ m4PhantomQuotaResetOp()
180
+ ]
181
+ };
182
+ /**
183
+ * Matrix 4.4 tail — the claim pays `ANY`, routed into `UND` first.
184
+ *
185
+ * MATRIX MISMATCH: same ordering divergence as 4.3 — the matrix expects
186
+ * `claim → swap → withdrawCollateral → decreaseDebt → changeQuota`, the
187
+ * engine repays first:
188
+ * `claim → swap → decreaseDebt → withdrawCollateral → changeQuota`.
189
+ */
190
+ const case_matrix_4_4_tail = {
191
+ claimedToken: ANY,
192
+ claimedAmount: M4_CLAIM_ANY,
193
+ totalValue: M4_ECHO_TVL,
194
+ ops: [
195
+ m4ClaimOp(ANY, M4_CLAIM_ANY),
196
+ {
197
+ type: "swap",
198
+ from: [{
199
+ token: ANY,
200
+ balance: M4_CLAIM_ANY
201
+ }],
202
+ tokenOut: UND,
203
+ amountOut: M4_CLAIM_ANY
204
+ },
205
+ {
206
+ type: "decreaseDebt",
207
+ amount: M4_DD
208
+ },
209
+ {
210
+ type: "withdrawCollateral",
211
+ token: UND,
212
+ amount: M4_W,
213
+ to: WALLET
214
+ },
215
+ m4PhantomQuotaResetOp()
216
+ ]
217
+ };
218
+ /**
219
+ * Matrix 4.5 tail — 4.3 on the RWA market: unwrap before the payout.
220
+ *
221
+ * MATRIX MISMATCH: same ordering divergence as 4.3 — the matrix expects
222
+ * `claim → unwrapRwaCollateral → withdrawCollateral(RWA) → decreaseDebt →
223
+ * changeQuota`, the engine repays first:
224
+ * `claim → decreaseDebt → unwrapRwaCollateral → withdrawCollateral(RWA) →
225
+ * changeQuota`.
226
+ */
227
+ const case_matrix_4_5_tail = {
228
+ claimedToken: UND,
229
+ claimedAmount: M4_SPEND,
230
+ totalValue: M4_SPEND,
231
+ ops: [
232
+ m4ClaimOp(UND, M4_SPEND),
233
+ {
234
+ type: "decreaseDebt",
235
+ amount: M4_DD
236
+ },
237
+ {
238
+ type: "unwrapRwaCollateral",
239
+ tokenIn: UND,
240
+ amount: M4_W,
241
+ tokenOut: RWA_ASSET,
242
+ amountOut: M4_W
243
+ },
244
+ {
245
+ type: "withdrawCollateral",
246
+ token: RWA_ASSET,
247
+ amount: M4_W,
248
+ to: WALLET
249
+ },
250
+ m4PhantomQuotaResetOp()
251
+ ],
252
+ rwaAssets: { [UND]: RWA_ASSET }
253
+ };
254
+ /**
255
+ * Matrix 4.6 tail — 4.4 on the RWA market.
256
+ *
257
+ * MATRIX MISMATCH: same ordering divergence as 4.3 — the matrix expects
258
+ * `claim → swap → unwrapRwaCollateral → withdrawCollateral(RWA) →
259
+ * decreaseDebt → changeQuota`, the engine repays first:
260
+ * `claim → swap → decreaseDebt → unwrapRwaCollateral →
261
+ * withdrawCollateral(RWA) → changeQuota`.
262
+ */
263
+ const case_matrix_4_6_tail = {
264
+ claimedToken: ANY,
265
+ claimedAmount: M4_CLAIM_ANY,
266
+ totalValue: M4_ECHO_TVL,
267
+ ops: [
268
+ m4ClaimOp(ANY, M4_CLAIM_ANY),
269
+ {
270
+ type: "swap",
271
+ from: [{
272
+ token: ANY,
273
+ balance: M4_CLAIM_ANY
274
+ }],
275
+ tokenOut: UND,
276
+ amountOut: M4_CLAIM_ANY
277
+ },
278
+ {
279
+ type: "decreaseDebt",
280
+ amount: M4_DD
281
+ },
282
+ {
283
+ type: "unwrapRwaCollateral",
284
+ tokenIn: UND,
285
+ amount: M4_W,
286
+ tokenOut: RWA_ASSET,
287
+ amountOut: M4_W
288
+ },
289
+ {
290
+ type: "withdrawCollateral",
291
+ token: RWA_ASSET,
292
+ amount: M4_W,
293
+ to: WALLET
294
+ },
295
+ m4PhantomQuotaResetOp()
296
+ ],
297
+ rwaAssets: { [UND]: RWA_ASSET }
298
+ };
299
+ /**
300
+ * Props for a matrix withdraw tail: the account as the 4.3 start left it —
301
+ * 5A of position and 5A of phantom — plus the matured claim.
302
+ */
303
+ function buildMatrixWithdrawTailProps(c) {
304
+ const creditAccount = {
305
+ creditAccount: CREDIT_ACCOUNT,
306
+ creditManager: CREDIT_MANAGER,
307
+ creditFacade: CREDIT_FACADE,
308
+ underlying: UND,
309
+ enabledTokensMask: 0n,
310
+ totalDebtUSD: 0n,
311
+ accountDebt: M4_DEBT,
312
+ tokens: [{
313
+ token: POS,
314
+ balance: M4_SPEND,
315
+ quota: m4QuotaOf(M4_SPEND),
316
+ mask: 0n,
317
+ success: true
318
+ }, {
319
+ token: M4_PHANTOM,
320
+ balance: M4_SPEND,
321
+ quota: m4QuotaOf(M4_SPEND),
322
+ mask: 0n,
323
+ success: true
324
+ }]
325
+ };
326
+ const intent = {
327
+ type: "WITHDRAW_COLLATERAL",
328
+ to: WALLET,
329
+ sourceToken: POS,
330
+ withdrawToken: UND,
331
+ withdrawAmount: M4_W,
332
+ debtRepaid: M4_DD
333
+ };
334
+ const claimable = {
335
+ token: POS,
336
+ withdrawalPhantomToken: M4_PHANTOM,
337
+ withdrawalTokenSpent: M4_SPEND,
338
+ outputs: [{
339
+ token: c.claimedToken,
340
+ amount: c.claimedAmount,
341
+ isDelayed: false
342
+ }],
343
+ claimCalls: [MOCK_CLAIM_CALL]
344
+ };
345
+ return {
346
+ intent,
347
+ creditAccount,
348
+ sdk: buildMarketSdk({ rwaAssets: c.rwaAssets }),
349
+ quotaReserve: void 0,
350
+ claimable,
351
+ slippage: void 0
352
+ };
353
+ }
354
+ //#endregion
355
+ export { A0, A0_UND, DEBT_DELTA, M4_CLAIM_ANY, M4_DD, M4_DEBT, M4_ECHO_TVL, M4_PHANTOM, M4_SPEND, M4_W, PHANTOM, QUOTA0, WITHDRAW_ANY, WITHDRAW_ANY2, WITHDRAW_BASE_TV, WITHDRAW_PRE_D, WITHDRAW_RWA, WITHDRAW_TO, WITHDRAW_UND, buildMatrixWithdrawTailProps, buildWithdrawClaimable, buildWithdrawFinishProps, buildWithdrawSdk, case_matrix_4_3_tail, case_matrix_4_4_tail, case_matrix_4_5_tail, case_matrix_4_6_tail, withdrawAmountFor };
@@ -0,0 +1,119 @@
1
+ import { toBN } from "../../../utils/formatter.js";
2
+ import "../../../index.js";
3
+ import { ANY, CREDIT_MANAGER, POS, UND, buildMarketSdk, valueInUnd } from "../testing/market.js";
4
+ //#region src/sdk/accounts/intents/tests/open-strategy.fixtures.ts
5
+ /**
6
+ * Open-strategy fixtures.
7
+ *
8
+ * `POS` is the target throughout: it is 1:1 with `UND`, so the mock router's
9
+ * oracle-priced output stays readable while the `ANY` leg (18 decimals, half the
10
+ * price) still exercises the rescaling.
11
+ */
12
+ const LT = 9200n;
13
+ /** Quota bought for a projected balance: value in UND scaled by its LT. */
14
+ function quotaFor(amount, token) {
15
+ return valueInUnd(amount, token) * LT / 10000n;
16
+ }
17
+ /** 1000 UND of margin. */
18
+ const MARGIN_UND = toBN("1000", 8);
19
+ /** 500 UND. */
20
+ const HALF_UND = toBN("500", 8);
21
+ /** 1000 ANY = 500 UND at fixture prices. */
22
+ const COLLATERAL_ANY = toBN("1000", 18);
23
+ /** ANY balance to keep unswapped: 400 ANY = 200 UND. */
24
+ const KEEP_ANY = toBN("400", 18);
25
+ const LEVERAGE_1X = 100n;
26
+ const LEVERAGE_2X = 200n;
27
+ const LEVERAGE_3X = 300n;
28
+ /** Plain 3x on underlying margin: everything routes into the position token. */
29
+ const case_underlying_3x = {
30
+ collateral: [{
31
+ token: UND,
32
+ balance: MARGIN_UND
33
+ }],
34
+ targetToken: POS,
35
+ leverage: LEVERAGE_3X,
36
+ expectedCollateral: MARGIN_UND,
37
+ expectedDebt: MARGIN_UND * 2n,
38
+ expectedAssets: [{
39
+ token: POS,
40
+ balance: MARGIN_UND * 3n
41
+ }],
42
+ expectedRouterBalances: [{
43
+ token: UND,
44
+ balance: MARGIN_UND * 3n
45
+ }]
46
+ };
47
+ /** 1x — no loan at all, just a spot conversion of the margin. */
48
+ const case_underlying_1x = {
49
+ collateral: [{
50
+ token: UND,
51
+ balance: MARGIN_UND
52
+ }],
53
+ targetToken: POS,
54
+ leverage: LEVERAGE_1X,
55
+ expectedCollateral: MARGIN_UND,
56
+ expectedDebt: 0n,
57
+ expectedAssets: [{
58
+ token: POS,
59
+ balance: MARGIN_UND
60
+ }],
61
+ expectedRouterBalances: [{
62
+ token: UND,
63
+ balance: MARGIN_UND
64
+ }]
65
+ };
66
+ /**
67
+ * Mixed margin with a leftover: 500 UND + 1000 ANY (= 500 UND) at 2x.
68
+ *
69
+ * 400 ANY stays put, so only 600 ANY (= 300 UND) plus the whole 1500 UND is
70
+ * routed, and the kept ANY needs a quota of its own.
71
+ */
72
+ const case_mixed_with_leftover = {
73
+ collateral: [{
74
+ token: UND,
75
+ balance: HALF_UND
76
+ }, {
77
+ token: ANY,
78
+ balance: COLLATERAL_ANY
79
+ }],
80
+ targetToken: POS,
81
+ leverage: LEVERAGE_2X,
82
+ leftoverBalances: [{
83
+ token: ANY,
84
+ balance: KEEP_ANY
85
+ }],
86
+ expectedCollateral: MARGIN_UND,
87
+ expectedDebt: MARGIN_UND,
88
+ expectedAssets: [{
89
+ token: ANY,
90
+ balance: KEEP_ANY
91
+ }, {
92
+ token: POS,
93
+ balance: HALF_UND + MARGIN_UND + valueInUnd(COLLATERAL_ANY - KEEP_ANY, ANY)
94
+ }],
95
+ expectedRouterBalances: [{
96
+ token: UND,
97
+ balance: HALF_UND + MARGIN_UND
98
+ }, {
99
+ token: ANY,
100
+ balance: COLLATERAL_ANY
101
+ }]
102
+ };
103
+ function buildOpenStrategySdk(extras) {
104
+ return buildMarketSdk(extras);
105
+ }
106
+ function buildOpenStrategyProps(c, sdk) {
107
+ return {
108
+ sdk,
109
+ creditManager: CREDIT_MANAGER,
110
+ collateral: c.collateral,
111
+ targetToken: c.targetToken,
112
+ leverage: c.leverage,
113
+ leftoverBalances: c.leftoverBalances,
114
+ slippage: void 0,
115
+ quotaReserve: void 0
116
+ };
117
+ }
118
+ //#endregion
119
+ export { COLLATERAL_ANY, HALF_UND, KEEP_ANY, LEVERAGE_1X, LEVERAGE_2X, LEVERAGE_3X, LT, MARGIN_UND, buildOpenStrategyProps, buildOpenStrategySdk, case_mixed_with_leftover, case_underlying_1x, case_underlying_3x, quotaFor };
@@ -0,0 +1,117 @@
1
+ import { ANY, RWA_ASSET, UND, WALLET, buildFixtureCreditAccount, buildMarketSdk, caToken, valueInUnd } from "../testing/market.js";
2
+ //#region src/sdk/accounts/intents/tests/withdraw-asset.fixtures.ts
3
+ /**
4
+ * Start withdraw-asset fixtures (intent 4), covering the cases from the spec's
5
+ * "withdraw collateral intent" section.
6
+ *
7
+ * Debt never moves, so every case is `withdrawCollateral` plus the quota
8
+ * decrease implied by the smaller balance. The one branch is the RWA market
9
+ * forced unwrap when the withdrawn token is the wrapped underlying.
10
+ */
11
+ const LT_ANY = 9200n;
12
+ /** 2000 ANY = 1000 UND at fixture prices. */
13
+ const HELD_ANY = 2000000000000000000000n;
14
+ /** 1000 UND. */
15
+ const HELD_UND = 100000000000n;
16
+ const DEBT = 50000000000n;
17
+ /** Half the ANY position. */
18
+ const OUT_ANY = 1000000000000000000000n;
19
+ /**
20
+ * 300 of the 1000 UND held. Not half: the underlying is weighted at 98% in this
21
+ * fixture, so leaving 500 against 500 of debt would end below water and the
22
+ * facade would refuse the withdrawal.
23
+ */
24
+ const OUT_UND = 30000000000n;
25
+ const QUOTA_ANY_BEFORE = valueInUnd(HELD_ANY, ANY) * LT_ANY / 10000n;
26
+ const QUOTA_ANY_AFTER = valueInUnd(HELD_ANY - OUT_ANY, ANY) * LT_ANY / 10000n;
27
+ /** Quota ops carry signed deltas, so a release is negative. */
28
+ const QUOTA_ANY_DELTA = QUOTA_ANY_AFTER - QUOTA_ANY_BEFORE;
29
+ /** Quota token out: withdraw, then release the freed quota. */
30
+ const case_any_token = {
31
+ intent: {
32
+ type: "WITHDRAW_ASSET",
33
+ token: ANY,
34
+ amount: OUT_ANY,
35
+ to: WALLET
36
+ },
37
+ tokens: [caToken(UND, HELD_UND), caToken(ANY, HELD_ANY, QUOTA_ANY_BEFORE)],
38
+ accountDebt: DEBT,
39
+ totalValue: HELD_UND + valueInUnd(HELD_ANY - OUT_ANY, ANY),
40
+ ops: [{
41
+ type: "withdrawCollateral",
42
+ token: ANY,
43
+ amount: OUT_ANY,
44
+ to: WALLET
45
+ }, {
46
+ type: "changeQuota",
47
+ quotaIncrease: [],
48
+ quotaDecrease: [{
49
+ token: ANY,
50
+ balance: QUOTA_ANY_DELTA
51
+ }],
52
+ desiredQuota: {}
53
+ }]
54
+ };
55
+ /** Underlying out on a plain market: no quota, no unwrap. */
56
+ const case_underlying = {
57
+ intent: {
58
+ type: "WITHDRAW_ASSET",
59
+ token: UND,
60
+ amount: OUT_UND,
61
+ to: WALLET
62
+ },
63
+ tokens: [caToken(UND, HELD_UND)],
64
+ accountDebt: DEBT,
65
+ totalValue: HELD_UND - OUT_UND,
66
+ ops: [{
67
+ type: "withdrawCollateral",
68
+ token: UND,
69
+ amount: OUT_UND,
70
+ to: WALLET
71
+ }]
72
+ };
73
+ /**
74
+ * Underlying out on an RWA market: the wrapper cannot leave the account, so it
75
+ * is force-unwrapped and the rwa asset is withdrawn instead.
76
+ */
77
+ const case_rwa_underlying = {
78
+ intent: {
79
+ type: "WITHDRAW_ASSET",
80
+ token: UND,
81
+ amount: OUT_UND,
82
+ to: WALLET
83
+ },
84
+ tokens: [caToken(UND, HELD_UND)],
85
+ accountDebt: DEBT,
86
+ totalValue: HELD_UND - OUT_UND,
87
+ ops: [{
88
+ type: "unwrapRwaCollateral",
89
+ tokenIn: UND,
90
+ amount: OUT_UND,
91
+ tokenOut: RWA_ASSET,
92
+ amountOut: OUT_UND
93
+ }, {
94
+ type: "withdrawCollateral",
95
+ token: RWA_ASSET,
96
+ amount: OUT_UND,
97
+ to: WALLET
98
+ }],
99
+ rwaAssets: { [UND]: RWA_ASSET }
100
+ };
101
+ function buildWithdrawAssetSdk(c) {
102
+ return buildMarketSdk({ rwaAssets: c.rwaAssets });
103
+ }
104
+ function buildWithdrawAssetProps(c, sdk) {
105
+ return {
106
+ intent: c.intent,
107
+ creditAccount: buildFixtureCreditAccount({
108
+ accountDebt: c.accountDebt,
109
+ tokens: c.tokens
110
+ }),
111
+ sdk,
112
+ quotaReserve: void 0,
113
+ slippage: void 0
114
+ };
115
+ }
116
+ //#endregion
117
+ export { DEBT, HELD_ANY, HELD_UND, LT_ANY, OUT_ANY, OUT_UND, QUOTA_ANY_AFTER, QUOTA_ANY_BEFORE, QUOTA_ANY_DELTA, buildWithdrawAssetProps, buildWithdrawAssetSdk, case_any_token, case_rwa_underlying, case_underlying };