@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,50 @@
1
+ const require_sdk_mock = require("./sdk-mock.js");
2
+ const require_market = require("./market.js");
3
+ //#region src/sdk/accounts/intents/testing/delayed.ts
4
+ const FIXTURE_PHANTOM = "0xcccccccccccccccccccccccccccccccccccccccc";
5
+ /** Claimed proceeds converted to UND (mirrors the mock price oracle). */
6
+ function claimedValueInUnd(amount, token) {
7
+ return require_market.valueInUnd(amount, token);
8
+ }
9
+ /**
10
+ * Mock sdk for a tail case. The phantom token inherits the claimed token's
11
+ * decimals, so any 1:1 rescale through it stays the identity.
12
+ */
13
+ function buildTailSdk(c, extras) {
14
+ const phantom = extras?.phantom ?? "0xcccccccccccccccccccccccccccccccccccccccc";
15
+ return require_market.buildMarketSdk({
16
+ ...extras,
17
+ extraDecimals: {
18
+ ...extras?.extraDecimals,
19
+ [phantom]: extras?.extraDecimals?.[c.claimedToken] ?? require_market.DECIMALS[c.claimedToken]
20
+ }
21
+ });
22
+ }
23
+ /** The matured withdrawal a tail case claims. */
24
+ function buildClaimable(c) {
25
+ return {
26
+ token: c.claimedToken,
27
+ withdrawalPhantomToken: FIXTURE_PHANTOM,
28
+ withdrawalTokenSpent: c.claimedAmount,
29
+ outputs: [{
30
+ token: c.claimedToken,
31
+ amount: c.claimedAmount,
32
+ isDelayed: false
33
+ }],
34
+ claimCalls: [require_sdk_mock.MOCK_CLAIM_CALL]
35
+ };
36
+ }
37
+ //#endregion
38
+ exports.ANY = require_market.ANY;
39
+ exports.ANY2 = require_market.ANY2;
40
+ exports.CREDIT_ACCOUNT = require_market.CREDIT_ACCOUNT;
41
+ exports.CREDIT_FACADE = require_market.CREDIT_FACADE;
42
+ exports.CREDIT_MANAGER = require_market.CREDIT_MANAGER;
43
+ exports.FIXTURE_PHANTOM = FIXTURE_PHANTOM;
44
+ exports.POS = require_market.POS;
45
+ exports.RWA_ASSET = require_market.RWA_ASSET;
46
+ exports.UND = require_market.UND;
47
+ exports.buildClaimable = buildClaimable;
48
+ exports.buildMarketSdk = require_market.buildMarketSdk;
49
+ exports.buildTailSdk = buildTailSdk;
50
+ exports.claimedValueInUnd = claimedValueInUnd;
@@ -0,0 +1,166 @@
1
+ const require_sdk_utils_formatter = require("../../../utils/formatter.js");
2
+ require("../../../index.js");
3
+ const require_sdk_mock = require("./sdk-mock.js");
4
+ const UND = "0x3333333333333333333333333333333333333333";
5
+ const ANY = "0x1111111111111111111111111111111111111111";
6
+ const ANY2 = "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb";
7
+ const RWA_ASSET = "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
8
+ /**
9
+ * Position token that converts 1:1 with `UND` (same decimals, same price).
10
+ *
11
+ * The mock router echoes the input amount as the output amount, so a 1:1 pair is
12
+ * the only way a swap leg's expected amounts stay decimals-correct. Use `POS`
13
+ * for flows whose amounts cross a swap, and `ANY` where they do not.
14
+ */
15
+ const POS = "0x2222222222222222222222222222222222222222";
16
+ /** Second 1:1 token, for flows routing between two non-underlying tokens. */
17
+ const POS2 = "0x4444444444444444444444444444444444444444";
18
+ const CREDIT_MANAGER = "0xdddddddddddddddddddddddddddddddddddddddd";
19
+ const CREDIT_FACADE = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
20
+ const CREDIT_ACCOUNT = "0xacacacacacacacacacacacacacacacacacacacac";
21
+ const WALLET = "0xf0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0";
22
+ const PRICES = {
23
+ [UND]: require_sdk_utils_formatter.toBN("2", 8),
24
+ [ANY]: require_sdk_utils_formatter.toBN("1", 8),
25
+ [ANY2]: require_sdk_utils_formatter.toBN("1", 8),
26
+ [RWA_ASSET]: require_sdk_utils_formatter.toBN("2", 8),
27
+ [POS]: require_sdk_utils_formatter.toBN("2", 8),
28
+ [POS2]: require_sdk_utils_formatter.toBN("2", 8)
29
+ };
30
+ const DECIMALS = {
31
+ [UND]: 8,
32
+ [ANY]: 18,
33
+ [ANY2]: 18,
34
+ [RWA_ASSET]: 8,
35
+ [POS]: 8,
36
+ [POS2]: 8
37
+ };
38
+ const QUOTAS = {
39
+ [ANY]: {
40
+ token: ANY,
41
+ rate: 500n,
42
+ limit: require_sdk_utils_formatter.toBN("999999999999999", 18),
43
+ isActive: true
44
+ },
45
+ [ANY2]: {
46
+ token: ANY2,
47
+ rate: 500n,
48
+ limit: require_sdk_utils_formatter.toBN("999999999999999", 18),
49
+ isActive: true
50
+ },
51
+ [RWA_ASSET]: {
52
+ token: RWA_ASSET,
53
+ rate: 500n,
54
+ limit: require_sdk_utils_formatter.toBN("999999999999999", 8),
55
+ isActive: true
56
+ },
57
+ [POS]: {
58
+ token: POS,
59
+ rate: 500n,
60
+ limit: require_sdk_utils_formatter.toBN("999999999999999", 8),
61
+ isActive: true
62
+ },
63
+ [POS2]: {
64
+ token: POS2,
65
+ rate: 500n,
66
+ limit: require_sdk_utils_formatter.toBN("999999999999999", 8),
67
+ isActive: true
68
+ }
69
+ };
70
+ const LIQUIDATION_THRESHOLDS = {
71
+ [UND]: 9800,
72
+ [ANY]: 9200,
73
+ [ANY2]: 9200,
74
+ [RWA_ASSET]: 9200,
75
+ [POS]: 9200,
76
+ [POS2]: 9200
77
+ };
78
+ const MAX_DEBT = require_sdk_utils_formatter.toBN("200000", 8);
79
+ /** Mock SDK on the shared fixture market. */
80
+ function buildMarketSdk(extras) {
81
+ return require_sdk_mock.buildMockSdk({
82
+ prices: {
83
+ ...PRICES,
84
+ ...extras?.extraPrices
85
+ },
86
+ reservePrices: extras?.reservePrices,
87
+ decimals: {
88
+ ...DECIMALS,
89
+ ...extras?.extraDecimals
90
+ },
91
+ quotas: extras?.quotas ?? QUOTAS,
92
+ liquidationThresholds: LIQUIDATION_THRESHOLDS,
93
+ maxDebt: MAX_DEBT,
94
+ minDebt: extras?.minDebt,
95
+ creditManager: CREDIT_MANAGER,
96
+ creditFacade: CREDIT_FACADE,
97
+ underlying: UND,
98
+ rwaAssets: extras?.rwaAssets,
99
+ phantoms: extras?.phantoms,
100
+ creditAccounts: extras?.creditAccounts,
101
+ delayed: extras?.delayed,
102
+ facadePaused: extras?.facadePaused,
103
+ poolPaused: extras?.poolPaused,
104
+ expirationDate: extras?.expirationDate,
105
+ timestamp: extras?.timestamp,
106
+ availableLiquidity: extras?.availableLiquidity,
107
+ debtLimitAvailable: extras?.debtLimitAvailable,
108
+ maxDebtPerBlockMultiplier: extras?.maxDebtPerBlockMultiplier,
109
+ forbiddenTokens: extras?.forbiddenTokens
110
+ });
111
+ }
112
+ /** Converts an amount to UND at fixture prices (mirrors the mock oracle). */
113
+ function valueInUnd(amount, token, overrides) {
114
+ const prices = {
115
+ ...PRICES,
116
+ ...overrides?.prices
117
+ };
118
+ const decimals = {
119
+ ...DECIMALS,
120
+ ...overrides?.decimals
121
+ };
122
+ return amount * prices[token] * 10n ** BigInt(8) / (prices[UND] * 10n ** BigInt(decimals[token]));
123
+ }
124
+ /** Token entry for a fixture CA, with quota defaulting to zero. */
125
+ function caToken(token, balance, quota = 0n) {
126
+ return {
127
+ token,
128
+ balance,
129
+ quota,
130
+ mask: 0n,
131
+ success: true
132
+ };
133
+ }
134
+ /** Bare CA slice on the fixture market. */
135
+ function buildFixtureCreditAccount(args) {
136
+ return {
137
+ creditAccount: CREDIT_ACCOUNT,
138
+ creditManager: CREDIT_MANAGER,
139
+ creditFacade: CREDIT_FACADE,
140
+ underlying: UND,
141
+ enabledTokensMask: 0n,
142
+ totalDebtUSD: 0n,
143
+ accountDebt: args.accountDebt,
144
+ tokens: args.tokens
145
+ };
146
+ }
147
+ //#endregion
148
+ exports.ANY = ANY;
149
+ exports.ANY2 = ANY2;
150
+ exports.CREDIT_ACCOUNT = CREDIT_ACCOUNT;
151
+ exports.CREDIT_FACADE = CREDIT_FACADE;
152
+ exports.CREDIT_MANAGER = CREDIT_MANAGER;
153
+ exports.DECIMALS = DECIMALS;
154
+ exports.LIQUIDATION_THRESHOLDS = LIQUIDATION_THRESHOLDS;
155
+ exports.MAX_DEBT = MAX_DEBT;
156
+ exports.POS = POS;
157
+ exports.POS2 = POS2;
158
+ exports.PRICES = PRICES;
159
+ exports.QUOTAS = QUOTAS;
160
+ exports.RWA_ASSET = RWA_ASSET;
161
+ exports.UND = UND;
162
+ exports.WALLET = WALLET;
163
+ exports.buildFixtureCreditAccount = buildFixtureCreditAccount;
164
+ exports.buildMarketSdk = buildMarketSdk;
165
+ exports.caToken = caToken;
166
+ exports.valueInUnd = valueInUnd;
@@ -1,4 +1,6 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
1
+ require("../../../constants/math.js");
2
+ require("../../../constants/index.js");
3
+ const require_sdk_positions_PositionsService = require("../../../positions/PositionsService.js");
2
4
  let vitest = require("vitest");
3
5
  //#region src/sdk/accounts/intents/testing/sdk-mock.ts
4
6
  /**
@@ -7,19 +9,19 @@ let vitest = require("vitest");
7
9
  * The service resolves all market data through `OnchainSDK`
8
10
  * (`marketRegister`, `tokensMeta`, `accounts`). `buildMockSdk` builds a mock
9
11
  * from plain records; assemble mocks ECHO recognizable sentinel calls derived
10
- * from their inputs, so `result.instant.calls` pins down which ops reached the
12
+ * from their inputs, so `result.calls` pins down which ops reached the
11
13
  * assembler and in which order.
12
14
  */
13
- /** Fixture `claimableWithdrawal.claimCalls` content; echoes through claim ops. */
14
- const MOCK_CLAIM_CALL = {
15
- target: "0x1111111111111111111111111111111111111111",
16
- callData: "0x"
17
- };
18
- /** Recognizable router call embedded in close path results. */
15
+ /** Recognizable router call embedded in routed leg results. */
19
16
  const MOCK_ROUTER_CALL = {
20
17
  target: "0x9999999999999999999999999999999999999999",
21
18
  callData: "0x"
22
19
  };
20
+ /** Router call of the many-to-one leg an exit routes. */
21
+ const MOCK_CLOSE_CALL = {
22
+ target: "0x9595959595959595959595959595959595959595",
23
+ callData: "0x"
24
+ };
23
25
  /** Returned by the `getRWAWrapCalls` mock; passes through per wrap op. */
24
26
  const MOCK_RWA_WRAP_CALL = {
25
27
  target: "0x8888888888888888888888888888888888888888",
@@ -30,9 +32,14 @@ const MOCK_RWA_UNWRAP_CALL = {
30
32
  target: "0x7777777777777777777777777777777777777777",
31
33
  callData: "0x"
32
34
  };
33
- /** Returned by the `assembleCloseCreditAccountCalls` mock. */
34
- const MOCK_CLOSE_CALL = {
35
- target: "0x5555555555555555555555555555555555555555",
35
+ /** Fixture `claimableWithdrawal.claimCalls` content; echoes through claim ops. */
36
+ const MOCK_CLAIM_CALL = {
37
+ target: "0x1111111111111111111111111111111111111111",
38
+ callData: "0x"
39
+ };
40
+ /** Fixture `requestableWithdrawal.requestCalls`; echoes through request ops. */
41
+ const MOCK_REQUEST_CALL = {
42
+ target: "0x2222222222222222222222222222222222222222",
36
43
  callData: "0x"
37
44
  };
38
45
  /** One sentinel call per plain encodable op type. */
@@ -78,30 +85,99 @@ function buildMockSdk(args) {
78
85
  if (fromPrice === void 0 || toPrice === void 0) throw new Error(`mock priceOracle: missing price for ${from} or ${target}`);
79
86
  return amount * fromPrice * 10n ** BigInt(decimalsOf(target)) / (toPrice * 10n ** BigInt(decimalsOf(from)));
80
87
  };
81
- const quotas = { values: () => Object.values(args.quotas).map((q) => ({
88
+ const fullQuota = (q) => ({
82
89
  cumulativeIndexLU: 0n,
83
90
  totalQuoted: 0n,
84
91
  quotaIncreaseFee: 0n,
85
92
  ...q
86
- })) };
87
- const liquidationThresholds = { entries: () => Object.entries(args.liquidationThresholds) };
93
+ });
94
+ const quotaOf = (token) => args.quotas[token.toLowerCase()] ?? args.quotas[token];
95
+ const quotas = {
96
+ values: () => Object.values(args.quotas).map(fullQuota),
97
+ get: (token) => {
98
+ const q = quotaOf(token);
99
+ return q === void 0 ? void 0 : fullQuota(q);
100
+ }
101
+ };
102
+ const liquidationThresholds = {
103
+ entries: () => Object.entries(args.liquidationThresholds),
104
+ get: (token) => args.liquidationThresholds[token.toLowerCase()] ?? args.liquidationThresholds[token]
105
+ };
106
+ const mainPriceOf = (token) => {
107
+ const key = token.toLowerCase();
108
+ const price = args.prices[key] ?? args.prices[token];
109
+ if (price === void 0) throw new Error(`mock priceOracle: missing main price for ${token}`);
110
+ return price;
111
+ };
112
+ const reservePriceOf = (token) => {
113
+ const key = token.toLowerCase();
114
+ const price = args.reservePrices?.[key] ?? args.reservePrices?.[token];
115
+ if (price === void 0) throw new Error(`mock priceOracle: missing reserve price for ${token}`);
116
+ return price;
117
+ };
118
+ const poolPaused = args.poolPaused ?? false;
88
119
  const market = {
89
- priceOracle: { convert },
120
+ priceOracle: {
121
+ convert,
122
+ mainPrice: mainPriceOf,
123
+ reservePrice: reservePriceOf,
124
+ convertToUSD: (token, amount) => {
125
+ const from = token.toLowerCase();
126
+ const price = args.prices[from] ?? args.prices[token];
127
+ if (price === void 0) throw new Error(`mock priceOracle: missing price for ${from}`);
128
+ return amount * price / 10n ** BigInt(decimalsOf(from));
129
+ },
130
+ safeConvertToUSD: (token, amount) => {
131
+ const from = token.toLowerCase();
132
+ const price = args.prices[from] ?? args.prices[token];
133
+ if (price === void 0) return null;
134
+ return amount * price / 10n ** BigInt(decimalsOf(from));
135
+ }
136
+ },
90
137
  pool: {
91
- pqk: { quotas },
138
+ pqk: {
139
+ quotas,
140
+ quotaRate: (token) => Number(quotaOf(token)?.rate ?? 0n),
141
+ hasActiveQuota: (token) => {
142
+ const q = quotaOf(token);
143
+ return !!q?.isActive && q.limit > 0n;
144
+ }
145
+ },
146
+ pool: {
147
+ baseInterestRate: args.baseInterestRate ?? 0n,
148
+ isPaused: poolPaused,
149
+ availableLiquidity: args.availableLiquidity ?? 115792089237316195423570985008687907853269984665640564039457584007913129639935n,
150
+ creditManagerDebtParams: { get: () => ({ available: args.debtLimitAvailable ?? 115792089237316195423570985008687907853269984665640564039457584007913129639935n }) }
151
+ },
152
+ isPaused: poolPaused,
92
153
  underlying: args.underlying
93
154
  }
94
155
  };
156
+ const collateralTokens = [args.underlying.toLowerCase(), ...Object.keys(args.liquidationThresholds).map((t) => t.toLowerCase()).filter((t) => t !== args.underlying.toLowerCase())];
157
+ const forbidden = new Set((args.forbiddenTokens ?? []).map((t) => t.toLowerCase()));
158
+ const forbiddenTokensMask = collateralTokens.reduce((mask, token, i) => forbidden.has(token) ? mask | 1n << BigInt(i) : mask, 0n);
159
+ const facadePaused = args.facadePaused ?? false;
160
+ const expirationDate = args.expirationDate ?? 0;
95
161
  const creditManagerSuite = {
96
162
  creditManager: {
97
163
  address: args.creditManager,
98
164
  liquidationThresholds,
99
- collateralTokens: []
165
+ collateralTokens,
166
+ feeInterest: args.feeInterest ?? 0
100
167
  },
101
168
  creditFacade: {
102
169
  address: args.creditFacade,
103
- maxDebt: args.maxDebt
104
- }
170
+ maxDebt: args.maxDebt,
171
+ minDebt: args.minDebt ?? 0n,
172
+ isPaused: facadePaused,
173
+ expirable: expirationDate > 0,
174
+ expirationDate,
175
+ maxDebtPerBlockMultiplier: args.maxDebtPerBlockMultiplier ?? 2,
176
+ forbiddenTokensMask
177
+ },
178
+ market,
179
+ isPaused: facadePaused || poolPaused,
180
+ isExpired: expirationDate > 0 && expirationDate < (args.timestamp ?? 0)
105
181
  };
106
182
  const routeCalls = (tokenIn, tokenOut) => {
107
183
  const underlying = args.underlying.toLowerCase();
@@ -113,10 +189,6 @@ function buildMockSdk(args) {
113
189
  return [MOCK_ROUTER_CALL];
114
190
  };
115
191
  const router = {
116
- findBestClosePath: vitest.vi.fn(async () => {
117
- if (!args.closePath) throw new Error("mock router: closePath not configured");
118
- return args.closePath;
119
- }),
120
192
  findOneTokenPath: vitest.vi.fn(async ({ amount, tokenIn, tokenOut }) => ({
121
193
  amount,
122
194
  minAmount: amount,
@@ -131,20 +203,77 @@ function buildMockSdk(args) {
131
203
  calls: routeCalls(tokenIn, target)
132
204
  };
133
205
  }),
134
- findOpenStrategyPath: vitest.vi.fn(async ({ expectedBalances, leftoverBalances }) => {
135
- const spent = expectedBalances.reduce((acc, a) => acc + a.balance, 0n) - leftoverBalances.reduce((acc, a) => acc + a.balance, 0n);
206
+ findOpenStrategyPath: vitest.vi.fn(async ({ expectedBalances, leftoverBalances, target }) => {
207
+ const targetLc = target.toLowerCase();
208
+ const leftover = new Map(leftoverBalances.map((a) => [a.token.toLowerCase(), a.balance]));
209
+ const balances = {};
210
+ let amount = 0n;
211
+ for (const a of expectedBalances) {
212
+ const token = a.token.toLowerCase();
213
+ if (token === targetLc) {
214
+ balances[token] = (balances[token] ?? 0n) + a.balance;
215
+ continue;
216
+ }
217
+ const keep = leftover.get(token) ?? 0n;
218
+ const spend = a.balance > keep ? a.balance - keep : 0n;
219
+ balances[token] = a.balance - spend;
220
+ amount += convert(token, targetLc, spend);
221
+ }
222
+ balances[targetLc] = (balances[targetLc] ?? 0n) + amount;
136
223
  return {
137
- amount: spent,
138
- minAmount: spent,
139
- calls: [MOCK_ROUTER_CALL],
140
- minAssets: [],
141
- averageAssets: []
224
+ amount,
225
+ minAmount: amount,
226
+ balances,
227
+ minBalances: { ...balances },
228
+ calls: [MOCK_ROUTER_CALL]
229
+ };
230
+ }),
231
+ findBestClosePath: vitest.vi.fn(async ({ balances }) => {
232
+ const underlying = args.underlying.toLowerCase();
233
+ const sold = (balances?.expectedBalances ?? []).filter((a) => a.token.toLowerCase() !== underlying && a.balance > 10n);
234
+ const amount = sold.reduce((acc, a) => acc + convert(a.token, underlying, a.balance), 0n);
235
+ return {
236
+ amount,
237
+ minAmount: amount,
238
+ underlyingBalance: amount,
239
+ calls: sold.length === 0 ? [] : [MOCK_CLOSE_CALL]
142
240
  };
143
241
  })
144
242
  };
145
- return {
243
+ const phantoms = new Set((args.phantoms ?? []).map((t) => t.toLowerCase()));
244
+ const venuesOf = (token) => args.delayed?.[token.toLowerCase()] ?? [];
245
+ const withdrawalCompressor = args.delayed ? { findWithdrawableAssets: vitest.vi.fn(async (creditManager, token) => venuesOf(token).map((v) => ({
246
+ creditManager,
247
+ token,
248
+ withdrawalPhantomToken: v.withdrawalPhantomToken,
249
+ underlying: v.underlying ?? args.underlying,
250
+ withdrawalLength: 172800n
251
+ }))) } : void 0;
252
+ const previewDelayedWithdrawal = vitest.vi.fn(async ({ token, amount, withdrawalPhantomToken }) => {
253
+ const venue = venuesOf(token).find((v) => v.withdrawalPhantomToken === withdrawalPhantomToken) ?? venuesOf(token)[0];
254
+ if (!venue) throw new Error(`mock compressor: ${token} has no delayed route`);
255
+ return {
256
+ token,
257
+ amountIn: amount,
258
+ outputs: venue.outputs?.(amount) ?? [{
259
+ token: venue.withdrawalPhantomToken,
260
+ amount,
261
+ isDelayed: true
262
+ }],
263
+ requestCalls: [MOCK_REQUEST_CALL],
264
+ claimableAt: venue.claimableAt ?? 172800n
265
+ };
266
+ });
267
+ const sdk = {
268
+ chainId: 1,
269
+ currentBlock: 1n,
270
+ timestamp: args.timestamp ?? 0,
271
+ withdrawalCompressor,
146
272
  tokensMeta: {
147
- get: (token) => ({ decimals: decimalsOf(token) }),
273
+ get: (token) => ({
274
+ decimals: decimalsOf(token),
275
+ contractType: phantoms.has(token.toLowerCase()) ? "PHANTOM_TOKEN::SECURITIZE_RD" : void 0
276
+ }),
148
277
  rwaUnderlyings: { get: (token) => {
149
278
  const asset = args.rwaAssets?.[token.toLowerCase()];
150
279
  return asset ? { asset } : void 0;
@@ -156,23 +285,53 @@ function buildMockSdk(args) {
156
285
  },
157
286
  routerFor: vitest.vi.fn(() => router),
158
287
  accounts: {
288
+ getCreditAccountData: vitest.vi.fn(async (address) => {
289
+ const slice = args.creditAccounts?.find((ca) => ca.creditAccount.toLowerCase() === address.toLowerCase());
290
+ return slice ? payloadOf(slice) : void 0;
291
+ }),
159
292
  assembleCaOperations: vitest.vi.fn(({ operations }) => operations.flatMap(echoEncodableOpCalls)),
160
293
  prepareIncreaseDebt: vitest.vi.fn(() => CA_OP_CALLS.increaseDebt),
161
294
  prepareChangeDebt: vitest.vi.fn(() => CA_OP_CALLS.decreaseDebt),
162
295
  prepareAddCollateral: vitest.vi.fn(() => [CA_OP_CALLS.addCollateral]),
163
296
  prepareWithdrawToken: vitest.vi.fn(() => CA_OP_CALLS.withdrawCollateral),
164
297
  prepareUpdateQuotas: vitest.vi.fn(() => [CA_OP_CALLS.changeQuota]),
165
- assembleClaimDelayedCalls: vitest.vi.fn(({ claimableNow }) => [...claimableNow.claimCalls]),
166
- assembleCloseCreditAccountCalls: vitest.vi.fn(async () => [MOCK_CLOSE_CALL]),
167
298
  assembleRWAWrapCalls: vitest.vi.fn(async () => [MOCK_RWA_WRAP_CALL]),
168
- assembleRWAUnwrapCalls: vitest.vi.fn(async () => [MOCK_RWA_UNWRAP_CALL])
299
+ assembleRWAUnwrapCalls: vitest.vi.fn(async () => [MOCK_RWA_UNWRAP_CALL]),
300
+ previewDelayedWithdrawal,
301
+ assembleStartDelayedWithdrawalCalls: vitest.vi.fn(({ preview }) => [...preview.requestCalls]),
302
+ assembleClaimDelayedCalls: vitest.vi.fn(({ claimableNow }) => [...claimableNow.claimCalls])
169
303
  }
170
304
  };
305
+ Object.assign(sdk, { positions: new require_sdk_positions_PositionsService.PositionsService(sdk) });
306
+ return sdk;
307
+ }
308
+ /** A full account payload carrying exactly what the slice builder reads back. */
309
+ function payloadOf(slice) {
310
+ return {
311
+ creditAccount: slice.creditAccount,
312
+ creditManager: slice.creditManager,
313
+ creditFacade: slice.creditFacade,
314
+ underlying: slice.underlying,
315
+ owner: slice.creditAccount,
316
+ expirationDate: 0,
317
+ enabledTokensMask: slice.enabledTokensMask,
318
+ debt: slice.accountDebt,
319
+ accruedInterest: 0n,
320
+ accruedFees: 0n,
321
+ totalDebtUSD: slice.totalDebtUSD,
322
+ totalValueUSD: 0n,
323
+ twvUSD: 0n,
324
+ totalValue: 0n,
325
+ healthFactor: 0n,
326
+ success: true,
327
+ tokens: slice.tokens
328
+ };
171
329
  }
172
330
  //#endregion
173
331
  exports.CA_OP_CALLS = CA_OP_CALLS;
174
332
  exports.MOCK_CLAIM_CALL = MOCK_CLAIM_CALL;
175
333
  exports.MOCK_CLOSE_CALL = MOCK_CLOSE_CALL;
334
+ exports.MOCK_REQUEST_CALL = MOCK_REQUEST_CALL;
176
335
  exports.MOCK_ROUTER_CALL = MOCK_ROUTER_CALL;
177
336
  exports.MOCK_RWA_UNWRAP_CALL = MOCK_RWA_UNWRAP_CALL;
178
337
  exports.MOCK_RWA_WRAP_CALL = MOCK_RWA_WRAP_CALL;
@@ -0,0 +1,123 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_market = require("../testing/market.js");
3
+ //#region src/sdk/accounts/intents/tests/add-collateral.fixtures.ts
4
+ /**
5
+ * Start add-collateral fixtures (intent 5).
6
+ *
7
+ * Only the position token can be deposited, so every case is a single
8
+ * `addCollateral` plus the quota increase implied by the new balance. Debt never
9
+ * moves.
10
+ */
11
+ /** Quota bought for a freshly obtained balance: value in UND scaled by its LT. */
12
+ function quotaFor(amount, token, lt) {
13
+ return require_market.valueInUnd(amount, token) * lt / 10000n;
14
+ }
15
+ const LT_ANY = 9200n;
16
+ /** 1000 UND of pre-existing collateral, 500 UND of debt. */
17
+ const BASE_UND = 100000000000n;
18
+ const DEBT = 50000000000n;
19
+ /** 2000 ANY = 1000 UND at fixture prices. */
20
+ const ADD_ANY = 2000000000000000000000n;
21
+ /** 500 UND. */
22
+ const ADD_UND = 50000000000n;
23
+ /** 1000 RWA_ASSET = 1000 UND at fixture prices. */
24
+ const ADD_RWA = 100000000000n;
25
+ const QUOTA_ANY = quotaFor(ADD_ANY, require_market.ANY, LT_ANY);
26
+ const QUOTA_RWA = quotaFor(ADD_RWA, require_market.RWA_ASSET, LT_ANY);
27
+ /** Position token with a quota: addCollateral then buy quota for it. */
28
+ const case_position_token = {
29
+ intent: {
30
+ type: "ADD_COLLATERAL",
31
+ token: require_market.ANY,
32
+ amount: ADD_ANY
33
+ },
34
+ tokens: [require_market.caToken(require_market.UND, BASE_UND)],
35
+ accountDebt: DEBT,
36
+ totalValue: BASE_UND + require_market.valueInUnd(ADD_ANY, require_market.ANY),
37
+ ops: [{
38
+ type: "addCollateral",
39
+ token: require_market.ANY,
40
+ amount: ADD_ANY,
41
+ value: void 0
42
+ }, {
43
+ type: "changeQuota",
44
+ quotaIncrease: [{
45
+ token: require_market.ANY,
46
+ balance: QUOTA_ANY
47
+ }],
48
+ quotaDecrease: [],
49
+ desiredQuota: {}
50
+ }]
51
+ };
52
+ /** Underlying has no quota, so the flow is a bare addCollateral. */
53
+ const case_underlying = {
54
+ intent: {
55
+ type: "ADD_COLLATERAL",
56
+ token: require_market.UND,
57
+ amount: ADD_UND
58
+ },
59
+ tokens: [require_market.caToken(require_market.ANY, ADD_ANY, QUOTA_ANY)],
60
+ accountDebt: DEBT,
61
+ totalValue: require_market.valueInUnd(ADD_ANY, require_market.ANY) + ADD_UND,
62
+ ops: [{
63
+ type: "addCollateral",
64
+ token: require_market.UND,
65
+ amount: ADD_UND,
66
+ value: void 0
67
+ }]
68
+ };
69
+ /** RWA market: the rwa asset is deposited as-is, with no wrap leg. */
70
+ const case_rwa_asset = {
71
+ intent: {
72
+ type: "ADD_COLLATERAL",
73
+ token: require_market.RWA_ASSET,
74
+ amount: ADD_RWA
75
+ },
76
+ tokens: [require_market.caToken(require_market.UND, BASE_UND)],
77
+ accountDebt: DEBT,
78
+ totalValue: BASE_UND + require_market.valueInUnd(ADD_RWA, require_market.RWA_ASSET),
79
+ ops: [{
80
+ type: "addCollateral",
81
+ token: require_market.RWA_ASSET,
82
+ amount: ADD_RWA,
83
+ value: void 0
84
+ }, {
85
+ type: "changeQuota",
86
+ quotaIncrease: [{
87
+ token: require_market.RWA_ASSET,
88
+ balance: QUOTA_RWA
89
+ }],
90
+ quotaDecrease: [],
91
+ desiredQuota: {}
92
+ }],
93
+ rwaAssets: { [require_market.UND]: require_market.RWA_ASSET }
94
+ };
95
+ function buildAddCollateralSdk(c) {
96
+ return require_market.buildMarketSdk({ rwaAssets: c.rwaAssets });
97
+ }
98
+ function buildAddCollateralProps(c, sdk) {
99
+ return {
100
+ intent: c.intent,
101
+ creditAccount: require_market.buildFixtureCreditAccount({
102
+ accountDebt: c.accountDebt,
103
+ tokens: c.tokens
104
+ }),
105
+ sdk,
106
+ quotaReserve: void 0,
107
+ slippage: void 0
108
+ };
109
+ }
110
+ //#endregion
111
+ exports.ADD_ANY = ADD_ANY;
112
+ exports.ADD_RWA = ADD_RWA;
113
+ exports.ADD_UND = ADD_UND;
114
+ exports.BASE_UND = BASE_UND;
115
+ exports.DEBT = DEBT;
116
+ exports.LT_ANY = LT_ANY;
117
+ exports.QUOTA_ANY = QUOTA_ANY;
118
+ exports.QUOTA_RWA = QUOTA_RWA;
119
+ exports.buildAddCollateralProps = buildAddCollateralProps;
120
+ exports.buildAddCollateralSdk = buildAddCollateralSdk;
121
+ exports.case_position_token = case_position_token;
122
+ exports.case_rwa_asset = case_rwa_asset;
123
+ exports.case_underlying = case_underlying;