@gearbox-protocol/sdk 16.1.2 → 16.3.0-next.1

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 (517) hide show
  1. package/dist/cjs/history/assembleOperations.js +3 -3
  2. package/dist/cjs/history/classifyMulticallOperations.js +7 -7
  3. package/dist/cjs/history/index.js +13 -0
  4. package/dist/cjs/history/parseCreditAccountTransaction.js +5 -5
  5. package/dist/cjs/{preview → history}/trace/errors.js +1 -1
  6. package/dist/cjs/{preview → history}/trace/extractAdapterCallTraces.js +1 -1
  7. package/dist/cjs/{preview → history}/trace/extractTransfers.js +3 -3
  8. package/dist/cjs/{preview → history}/trace/findFacadeCalls.js +3 -3
  9. package/dist/cjs/history/trace/index.js +14 -0
  10. package/dist/cjs/model/errors/index.js +37 -0
  11. package/dist/cjs/model/errors/liquidation-errors.js +32 -0
  12. package/dist/cjs/model/errors/operation-errors.js +135 -0
  13. package/dist/cjs/{onchain/market/oracle/errors.js → model/errors/oracle-errors.js} +1 -1
  14. package/dist/cjs/model/errors/prepare-errors.js +108 -0
  15. package/dist/cjs/model/errors/preview-errors.js +12 -0
  16. package/dist/cjs/model/index.js +40 -2
  17. package/dist/cjs/model/positions.js +1 -1
  18. package/dist/cjs/model/result.js +0 -8
  19. package/dist/cjs/model/rwa.js +40 -0
  20. package/dist/cjs/onchain/accounts/CreditAccountsServiceV310.js +2 -2
  21. package/dist/cjs/onchain/accounts/index.js +0 -2
  22. package/dist/cjs/onchain/accounts/intents/guards.js +42 -66
  23. package/dist/cjs/onchain/accounts/intents/index.js +38 -35
  24. package/dist/cjs/onchain/accounts/intents/leverage-band.js +1 -1
  25. package/dist/cjs/onchain/accounts/intents/math.js +19 -15
  26. package/dist/cjs/onchain/accounts/intents/open-strategy.js +44 -8
  27. package/dist/cjs/onchain/accounts/intents/plan.js +52 -48
  28. package/dist/cjs/onchain/accounts/intents/realize.js +26 -24
  29. package/dist/cjs/onchain/accounts/intents/tail.js +15 -12
  30. package/dist/cjs/onchain/accounts/intents/testing/sdk-mock.js +7 -0
  31. package/dist/cjs/onchain/accounts/intents/tests/finish-withdraw.fixtures.js +6 -6
  32. package/dist/cjs/onchain/accounts/intents/tests/withdraw.fixtures.js +12 -12
  33. package/dist/cjs/onchain/accounts/intents/view.js +1 -1
  34. package/dist/cjs/onchain/accounts/withdrawal-compressor/index.js +0 -1
  35. package/dist/cjs/onchain/index.js +122 -36
  36. package/dist/cjs/onchain/market/MarketSuite.js +7 -1
  37. package/dist/cjs/onchain/market/adapters/index.js +1 -0
  38. package/dist/cjs/onchain/market/credit/CreditSuite.js +47 -15
  39. package/dist/cjs/onchain/market/index.js +0 -6
  40. package/dist/cjs/onchain/market/oracle/PriceOracleBaseContract.js +6 -6
  41. package/dist/cjs/onchain/market/oracle/index.js +0 -2
  42. package/dist/cjs/onchain/market/pool/PoolQuotaKeeperV310Contract.js +8 -0
  43. package/dist/cjs/onchain/market/rwa/RWARegistry.js +3 -2
  44. package/dist/cjs/onchain/market/rwa/index.js +0 -4
  45. package/dist/cjs/onchain/market/rwa/securitize/SecuritizeRWAFactory.js +7 -7
  46. package/dist/cjs/onchain/market/rwa/securitize/constants.js +0 -2
  47. package/dist/cjs/onchain/market/rwa/securitize/index.js +1 -3
  48. package/dist/cjs/onchain/market/rwa/securitize/types.js +0 -29
  49. package/dist/cjs/onchain/market/rwa/types.js +0 -7
  50. package/dist/cjs/onchain/market/zapper/index.js +0 -1
  51. package/dist/cjs/onchain/pools/PoolService.js +10 -16
  52. package/dist/cjs/onchain/preview/index.js +41 -0
  53. package/dist/cjs/{preview → onchain/preview}/parse/classifyInnerOperations.js +2 -3
  54. package/dist/cjs/onchain/preview/parse/index.js +14 -0
  55. package/dist/cjs/{preview → onchain/preview}/parse/parseFacadeOperationCalldata.js +3 -3
  56. package/dist/cjs/{preview → onchain/preview}/parse/parseOperationCalldata.js +16 -17
  57. package/dist/cjs/{preview → onchain/preview}/parse/parsePoolOperationCalldata.js +3 -3
  58. package/dist/cjs/{preview → onchain/preview}/parse/parseRWAFactoryOperationCalldata.js +11 -12
  59. package/dist/cjs/{preview → onchain/preview}/parse/types.js +1 -1
  60. package/dist/cjs/{preview → onchain/preview}/preview/CreditAccountState.js +3 -4
  61. package/dist/cjs/{preview → onchain/preview}/preview/buildDelayedStrategyPositionOperationPreview.js +10 -11
  62. package/dist/cjs/{preview → onchain/preview}/preview/detectCloseOrRepay.js +2 -3
  63. package/dist/cjs/{preview → onchain/preview}/preview/detectDelayedClaim.js +4 -5
  64. package/dist/cjs/{preview → onchain/preview}/preview/detectDelayedOperation.js +5 -6
  65. package/dist/cjs/{preview → onchain/preview}/preview/estimateClaimableAt.js +1 -1
  66. package/dist/cjs/onchain/preview/preview/index.js +26 -0
  67. package/dist/cjs/{preview → onchain/preview}/preview/previewAdjustStrategyPosition.js +18 -22
  68. package/dist/cjs/{preview → onchain/preview}/preview/previewExitOrRepayStrategyPosition.js +22 -28
  69. package/dist/cjs/onchain/preview/preview/previewOpenStrategyPosition.js +60 -0
  70. package/dist/cjs/onchain/preview/preview/previewOperation.js +119 -0
  71. package/dist/cjs/{preview/simulate/simulatePoolOperation.js → onchain/preview/preview/previewPoolPositionOperation.js} +46 -32
  72. package/dist/cjs/onchain/preview/preview/replayInnerOperations.js +109 -0
  73. package/dist/cjs/onchain/preview/preview/replayMulticall.js +22 -0
  74. package/dist/cjs/{preview → onchain/preview}/preview/unwrapNativeCollateral.js +11 -14
  75. package/dist/cjs/onchain/validation/bundles/checkAccountQuotas.js +20 -0
  76. package/dist/cjs/onchain/validation/bundles/checkCollateralFunding.js +59 -0
  77. package/dist/cjs/onchain/validation/bundles/checkCreditOperation.js +65 -0
  78. package/dist/cjs/onchain/validation/bundles/checkDraw.js +28 -0
  79. package/dist/cjs/onchain/validation/bundles/checkHealthFactors.js +27 -0
  80. package/dist/cjs/onchain/validation/bundles/checkLiquidationEligibility.js +33 -0
  81. package/dist/cjs/onchain/validation/bundles/checkLiquidationFunding.js +29 -0
  82. package/dist/cjs/onchain/validation/bundles/checkMarket.js +24 -0
  83. package/dist/cjs/onchain/validation/bundles/checkObtained.js +13 -0
  84. package/dist/cjs/onchain/validation/bundles/checkPoolFunding.js +22 -0
  85. package/dist/cjs/onchain/validation/bundles/checkPoolOperation.js +35 -0
  86. package/dist/cjs/onchain/validation/bundles/checkQuotasAsked.js +20 -0
  87. package/dist/cjs/onchain/validation/bundles/checkRWAOpenRequirements.js +33 -0
  88. package/dist/cjs/onchain/validation/bundles/checkRWAOpening.js +24 -0
  89. package/dist/cjs/onchain/validation/bundles/checkWallet.js +22 -0
  90. package/dist/cjs/onchain/validation/bundles/checkWalletAllowance.js +32 -0
  91. package/dist/cjs/onchain/validation/bundles/checkWalletBalance.js +41 -0
  92. package/dist/cjs/onchain/validation/bundles/index.js +35 -0
  93. package/dist/cjs/onchain/validation/checkLiquidation.js +22 -0
  94. package/dist/cjs/onchain/validation/checkOperation.js +62 -0
  95. package/dist/cjs/onchain/validation/checkSimulation.js +60 -0
  96. package/dist/cjs/onchain/validation/checks/checkBorrowLimit.js +25 -0
  97. package/dist/cjs/onchain/validation/checks/checkCollateralised.js +26 -0
  98. package/dist/cjs/onchain/validation/checks/checkCreditAccountFrozen.js +10 -0
  99. package/dist/cjs/onchain/validation/checks/checkCreditManagerPaused.js +10 -0
  100. package/dist/cjs/onchain/validation/checks/checkDebtLimits.js +18 -0
  101. package/dist/cjs/onchain/validation/checks/checkEmergencyLiquidator.js +13 -0
  102. package/dist/cjs/onchain/validation/checks/checkForbiddenToken.js +10 -0
  103. package/dist/cjs/onchain/validation/checks/checkLeverage.js +13 -0
  104. package/dist/cjs/onchain/validation/checks/checkLiquidatorEligible.js +10 -0
  105. package/dist/cjs/onchain/validation/checks/checkMarketExpired.js +10 -0
  106. package/dist/cjs/onchain/validation/checks/checkPoolLiquidity.js +25 -0
  107. package/dist/cjs/onchain/validation/checks/checkPoolPaused.js +10 -0
  108. package/dist/cjs/onchain/validation/checks/checkPoolSunset.js +10 -0
  109. package/dist/cjs/onchain/validation/checks/checkQuotaCount.js +10 -0
  110. package/dist/cjs/onchain/validation/checks/checkQuotaLimit.js +18 -0
  111. package/dist/cjs/onchain/validation/checks/index.js +31 -0
  112. package/dist/cjs/onchain/validation/helpers/amount.js +12 -0
  113. package/dist/cjs/onchain/validation/helpers/health-factor-limits.js +25 -0
  114. package/dist/cjs/onchain/validation/helpers/index.js +11 -0
  115. package/dist/cjs/onchain/validation/{token.js → helpers/token.js} +4 -4
  116. package/dist/cjs/onchain/validation/index.js +85 -27
  117. package/dist/cjs/onchain/validation/raise.js +33 -0
  118. package/dist/cjs/sdk/execute/ExecuteApi.js +1 -0
  119. package/dist/cjs/sdk/index.js +6 -9
  120. package/dist/cjs/sdk/liquidations/LiquidationsNamespace.js +9 -0
  121. package/dist/cjs/sdk/prepare/PrepareApi.js +55 -48
  122. package/dist/cjs/sdk/prepare/index.js +7 -9
  123. package/dist/cjs/sdk/prepare/types.js +0 -4
  124. package/dist/cjs/sdk/preview/PreviewNamespace.js +24 -13
  125. package/dist/esm/history/assembleOperations.js +2 -2
  126. package/dist/esm/history/classifyMulticallOperations.js +2 -2
  127. package/dist/esm/history/index.js +6 -1
  128. package/dist/esm/history/parseCreditAccountTransaction.js +3 -3
  129. package/dist/esm/{preview → history}/trace/errors.js +1 -1
  130. package/dist/esm/{preview → history}/trace/extractAdapterCallTraces.js +1 -1
  131. package/dist/esm/{preview → history}/trace/extractTransfers.js +1 -1
  132. package/dist/esm/{preview → history}/trace/findFacadeCalls.js +1 -1
  133. package/dist/esm/model/errors/index.js +7 -0
  134. package/dist/esm/model/errors/liquidation-errors.js +29 -0
  135. package/dist/esm/model/errors/operation-errors.js +121 -0
  136. package/dist/esm/{onchain/market/oracle/errors.js → model/errors/oracle-errors.js} +1 -1
  137. package/dist/esm/model/errors/prepare-errors.js +97 -0
  138. package/dist/esm/model/errors/preview-errors.js +11 -0
  139. package/dist/esm/model/index.js +9 -3
  140. package/dist/esm/model/positions.js +1 -1
  141. package/dist/esm/model/result.js +1 -8
  142. package/dist/esm/model/rwa.js +37 -0
  143. package/dist/esm/onchain/accounts/CreditAccountsServiceV310.js +2 -2
  144. package/dist/esm/onchain/accounts/index.js +1 -2
  145. package/dist/esm/onchain/accounts/intents/guards.js +29 -52
  146. package/dist/esm/onchain/accounts/intents/index.js +39 -35
  147. package/dist/esm/onchain/accounts/intents/leverage-band.js +1 -1
  148. package/dist/esm/onchain/accounts/intents/math.js +18 -14
  149. package/dist/esm/onchain/accounts/intents/open-strategy.js +46 -10
  150. package/dist/esm/onchain/accounts/intents/plan.js +51 -47
  151. package/dist/esm/onchain/accounts/intents/realize.js +26 -24
  152. package/dist/esm/onchain/accounts/intents/tail.js +14 -11
  153. package/dist/esm/onchain/accounts/intents/testing/sdk-mock.js +7 -0
  154. package/dist/esm/onchain/accounts/intents/tests/finish-withdraw.fixtures.js +6 -6
  155. package/dist/esm/onchain/accounts/intents/tests/withdraw.fixtures.js +12 -12
  156. package/dist/esm/onchain/accounts/intents/view.js +1 -1
  157. package/dist/esm/onchain/accounts/withdrawal-compressor/index.js +0 -1
  158. package/dist/esm/onchain/index.js +61 -10
  159. package/dist/esm/onchain/market/MarketSuite.js +7 -1
  160. package/dist/esm/onchain/market/adapters/index.js +1 -0
  161. package/dist/esm/onchain/market/credit/CreditSuite.js +47 -15
  162. package/dist/esm/onchain/market/index.js +3 -5
  163. package/dist/esm/onchain/market/oracle/PriceOracleBaseContract.js +1 -1
  164. package/dist/esm/onchain/market/oracle/index.js +1 -2
  165. package/dist/esm/onchain/market/pool/PoolQuotaKeeperV310Contract.js +8 -0
  166. package/dist/esm/onchain/market/rwa/RWARegistry.js +2 -1
  167. package/dist/esm/onchain/market/rwa/index.js +3 -4
  168. package/dist/esm/onchain/market/rwa/securitize/SecuritizeRWAFactory.js +2 -2
  169. package/dist/esm/onchain/market/rwa/securitize/constants.js +1 -2
  170. package/dist/esm/onchain/market/rwa/securitize/index.js +3 -3
  171. package/dist/esm/onchain/market/rwa/securitize/types.js +1 -29
  172. package/dist/esm/onchain/market/rwa/types.js +1 -7
  173. package/dist/esm/onchain/market/zapper/index.js +0 -1
  174. package/dist/esm/onchain/pools/PoolService.js +10 -16
  175. package/dist/esm/onchain/preview/index.js +20 -0
  176. package/dist/esm/{preview → onchain/preview}/parse/classifyInnerOperations.js +2 -3
  177. package/dist/esm/{preview → onchain/preview}/parse/index.js +0 -1
  178. package/dist/esm/{preview → onchain/preview}/parse/parseFacadeOperationCalldata.js +1 -1
  179. package/dist/esm/{preview → onchain/preview}/parse/parseOperationCalldata.js +10 -11
  180. package/dist/esm/{preview → onchain/preview}/parse/parsePoolOperationCalldata.js +3 -3
  181. package/dist/esm/{preview → onchain/preview}/parse/parseRWAFactoryOperationCalldata.js +8 -9
  182. package/dist/esm/{preview → onchain/preview}/parse/types.js +1 -1
  183. package/dist/esm/{preview → onchain/preview}/preview/CreditAccountState.js +3 -4
  184. package/dist/esm/{preview → onchain/preview}/preview/buildDelayedStrategyPositionOperationPreview.js +10 -11
  185. package/dist/esm/{preview → onchain/preview}/preview/detectCloseOrRepay.js +2 -3
  186. package/dist/esm/{preview → onchain/preview}/preview/detectDelayedClaim.js +4 -5
  187. package/dist/esm/{preview → onchain/preview}/preview/detectDelayedOperation.js +5 -6
  188. package/dist/esm/{preview → onchain/preview}/preview/estimateClaimableAt.js +1 -1
  189. package/dist/esm/{preview → onchain/preview}/preview/index.js +3 -4
  190. package/dist/esm/{preview → onchain/preview}/preview/previewAdjustStrategyPosition.js +17 -21
  191. package/dist/esm/{preview → onchain/preview}/preview/previewExitOrRepayStrategyPosition.js +20 -26
  192. package/dist/esm/{preview → onchain/preview}/preview/previewOpenStrategyPosition.js +25 -15
  193. package/dist/esm/{preview → onchain/preview}/preview/previewOperation.js +54 -35
  194. package/dist/esm/{preview/simulate/simulatePoolOperation.js → onchain/preview/preview/previewPoolPositionOperation.js} +46 -30
  195. package/dist/esm/onchain/preview/preview/replayInnerOperations.js +107 -0
  196. package/dist/esm/onchain/preview/preview/replayMulticall.js +21 -0
  197. package/dist/esm/{preview → onchain/preview}/preview/unwrapNativeCollateral.js +11 -14
  198. package/dist/esm/onchain/validation/bundles/checkAccountQuotas.js +19 -0
  199. package/dist/esm/onchain/validation/bundles/checkCollateralFunding.js +58 -0
  200. package/dist/esm/onchain/validation/bundles/checkCreditOperation.js +64 -0
  201. package/dist/esm/onchain/validation/bundles/checkDraw.js +27 -0
  202. package/dist/esm/onchain/validation/bundles/checkHealthFactors.js +26 -0
  203. package/dist/esm/onchain/validation/bundles/checkLiquidationEligibility.js +32 -0
  204. package/dist/esm/onchain/validation/bundles/checkLiquidationFunding.js +28 -0
  205. package/dist/esm/onchain/validation/bundles/checkMarket.js +23 -0
  206. package/dist/esm/onchain/validation/bundles/checkObtained.js +12 -0
  207. package/dist/esm/onchain/validation/bundles/checkPoolFunding.js +21 -0
  208. package/dist/esm/onchain/validation/bundles/checkPoolOperation.js +34 -0
  209. package/dist/esm/onchain/validation/bundles/checkQuotasAsked.js +19 -0
  210. package/dist/esm/onchain/validation/bundles/checkRWAOpenRequirements.js +32 -0
  211. package/dist/esm/onchain/validation/bundles/checkRWAOpening.js +23 -0
  212. package/dist/esm/onchain/validation/bundles/checkWallet.js +21 -0
  213. package/dist/esm/onchain/validation/bundles/checkWalletAllowance.js +31 -0
  214. package/dist/esm/onchain/validation/bundles/checkWalletBalance.js +40 -0
  215. package/dist/esm/onchain/validation/bundles/index.js +18 -0
  216. package/dist/esm/onchain/validation/checkLiquidation.js +21 -0
  217. package/dist/esm/onchain/validation/checkOperation.js +61 -0
  218. package/dist/esm/onchain/validation/checkSimulation.js +59 -0
  219. package/dist/esm/onchain/validation/checks/checkBorrowLimit.js +24 -0
  220. package/dist/esm/onchain/validation/checks/checkCollateralised.js +25 -0
  221. package/dist/esm/onchain/validation/checks/checkCreditAccountFrozen.js +9 -0
  222. package/dist/esm/onchain/validation/checks/checkCreditManagerPaused.js +9 -0
  223. package/dist/esm/onchain/validation/checks/checkDebtLimits.js +17 -0
  224. package/dist/esm/onchain/validation/checks/checkEmergencyLiquidator.js +12 -0
  225. package/dist/esm/onchain/validation/checks/checkForbiddenToken.js +9 -0
  226. package/dist/esm/onchain/validation/checks/checkLeverage.js +12 -0
  227. package/dist/esm/onchain/validation/checks/checkLiquidatorEligible.js +9 -0
  228. package/dist/esm/onchain/validation/checks/checkMarketExpired.js +9 -0
  229. package/dist/esm/onchain/validation/checks/checkPoolLiquidity.js +24 -0
  230. package/dist/esm/onchain/validation/checks/checkPoolPaused.js +9 -0
  231. package/dist/esm/onchain/validation/checks/checkPoolSunset.js +9 -0
  232. package/dist/esm/onchain/validation/checks/checkQuotaCount.js +9 -0
  233. package/dist/esm/onchain/validation/checks/checkQuotaLimit.js +17 -0
  234. package/dist/esm/onchain/validation/checks/index.js +16 -0
  235. package/dist/esm/onchain/validation/helpers/amount.js +11 -0
  236. package/dist/esm/onchain/validation/helpers/health-factor-limits.js +21 -0
  237. package/dist/esm/onchain/validation/helpers/index.js +4 -0
  238. package/dist/esm/onchain/validation/{token.js → helpers/token.js} +3 -3
  239. package/dist/esm/onchain/validation/index.js +43 -4
  240. package/dist/esm/onchain/validation/raise.js +31 -0
  241. package/dist/esm/sdk/execute/ExecuteApi.js +1 -0
  242. package/dist/esm/sdk/index.js +2 -3
  243. package/dist/esm/sdk/liquidations/LiquidationsNamespace.js +9 -0
  244. package/dist/esm/sdk/prepare/PrepareApi.js +43 -36
  245. package/dist/esm/sdk/prepare/index.js +3 -3
  246. package/dist/esm/sdk/prepare/types.js +1 -2
  247. package/dist/esm/sdk/preview/PreviewNamespace.js +24 -13
  248. package/dist/types/history/assembleOperations.d.ts +4 -5
  249. package/dist/types/history/classifyMulticallOperations.d.ts +3 -4
  250. package/dist/types/history/index.d.ts +8 -2
  251. package/dist/types/history/mapOperations.d.ts +1 -1
  252. package/dist/types/{preview → history}/trace/errors.d.ts +1 -1
  253. package/dist/types/{preview → history}/trace/extractAdapterCallTraces.d.ts +1 -1
  254. package/dist/types/{preview → history}/trace/extractTransfers.d.ts +2 -3
  255. package/dist/types/{preview → history}/trace/findFacadeCalls.d.ts +1 -1
  256. package/dist/types/{preview → history}/trace/types.d.ts +1 -1
  257. package/dist/types/history/types.d.ts +2 -3
  258. package/dist/types/model/errors/base.d.ts +28 -0
  259. package/dist/types/model/errors/index.d.ts +7 -0
  260. package/dist/types/model/errors/liquidation-errors.d.ts +45 -0
  261. package/dist/types/model/errors/operation-errors.d.ts +216 -0
  262. package/dist/types/{onchain/market/oracle/errors.d.ts → model/errors/oracle-errors.d.ts} +3 -5
  263. package/dist/types/model/errors/prepare-errors.d.ts +131 -0
  264. package/dist/types/model/errors/preview-errors.d.ts +72 -0
  265. package/dist/types/model/index.d.ts +11 -4
  266. package/dist/types/model/opportunities.d.ts +3 -2
  267. package/dist/types/model/positions.d.ts +2 -2
  268. package/dist/types/model/previews.d.ts +52 -113
  269. package/dist/types/model/result.d.ts +4 -8
  270. package/dist/types/model/rwa.d.ts +143 -0
  271. package/dist/types/onchain/accounts/CreditAccountsServiceV310.d.ts +3 -1
  272. package/dist/types/onchain/accounts/index.d.ts +2 -4
  273. package/dist/types/onchain/accounts/intents/guards.d.ts +8 -18
  274. package/dist/types/onchain/accounts/intents/index.d.ts +20 -19
  275. package/dist/types/onchain/accounts/intents/leverage-band.d.ts +1 -1
  276. package/dist/types/onchain/accounts/intents/math.d.ts +6 -6
  277. package/dist/types/onchain/accounts/intents/open-strategy.d.ts +34 -3
  278. package/dist/types/onchain/accounts/intents/operations.d.ts +2 -2
  279. package/dist/types/onchain/accounts/intents/plan.d.ts +9 -9
  280. package/dist/types/onchain/accounts/intents/tail.d.ts +2 -2
  281. package/dist/types/onchain/accounts/intents/testing/expect.d.ts +3 -3
  282. package/dist/types/onchain/accounts/intents/tests/finish-withdraw.fixtures.d.ts +6 -6
  283. package/dist/types/onchain/accounts/intents/tests/open-strategy.fixtures.d.ts +2 -2
  284. package/dist/types/onchain/accounts/intents/tests/withdraw.fixtures.d.ts +12 -12
  285. package/dist/types/onchain/accounts/intents/types.d.ts +32 -30
  286. package/dist/types/onchain/accounts/types.d.ts +4 -2
  287. package/dist/types/onchain/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.d.ts +1 -1
  288. package/dist/types/onchain/accounts/withdrawal-compressor/index.d.ts +1 -2
  289. package/dist/types/onchain/accounts/withdrawal-compressor/types.d.ts +1 -1
  290. package/dist/types/onchain/index.d.ts +68 -13
  291. package/dist/types/onchain/market/MarketSuite.d.ts +5 -1
  292. package/dist/types/onchain/market/adapters/index.d.ts +2 -1
  293. package/dist/types/onchain/market/adapters/transfers.d.ts +0 -7
  294. package/dist/types/onchain/market/credit/CreditSuite.d.ts +20 -8
  295. package/dist/types/onchain/market/credit/index.d.ts +2 -2
  296. package/dist/types/onchain/market/credit/types.d.ts +11 -1
  297. package/dist/types/onchain/market/index.d.ts +6 -7
  298. package/dist/types/onchain/market/oracle/PriceOracleBaseContract.d.ts +1 -1
  299. package/dist/types/onchain/market/oracle/index.d.ts +1 -2
  300. package/dist/types/onchain/market/oracle/types.d.ts +1 -1
  301. package/dist/types/onchain/market/pool/PoolQuotaKeeperV310Contract.d.ts +5 -0
  302. package/dist/types/onchain/market/rwa/index.d.ts +4 -4
  303. package/dist/types/onchain/market/rwa/securitize/SecuritizeRWAFactory.d.ts +3 -2
  304. package/dist/types/onchain/market/rwa/securitize/constants.d.ts +1 -2
  305. package/dist/types/onchain/market/rwa/securitize/index.d.ts +3 -3
  306. package/dist/types/onchain/market/rwa/securitize/types.d.ts +4 -110
  307. package/dist/types/onchain/market/rwa/types.d.ts +6 -32
  308. package/dist/types/onchain/market/zapper/ZapperContract.d.ts +1 -1
  309. package/dist/types/onchain/market/zapper/index.d.ts +1 -2
  310. package/dist/types/onchain/market/zapper/types.d.ts +1 -1
  311. package/dist/types/onchain/pools/types.d.ts +2 -2
  312. package/dist/types/onchain/preview/index.d.ts +24 -0
  313. package/dist/types/{preview → onchain/preview}/parse/classifyInnerOperations.d.ts +4 -4
  314. package/dist/types/{preview → onchain/preview}/parse/index.d.ts +2 -4
  315. package/dist/types/{preview → onchain/preview}/parse/parseFacadeOperationCalldata.d.ts +4 -4
  316. package/dist/types/onchain/preview/parse/parseOperationCalldata.d.ts +18 -0
  317. package/dist/types/{preview → onchain/preview}/parse/parsePoolOperationCalldata.d.ts +7 -7
  318. package/dist/types/{preview → onchain/preview}/parse/parseRWAFactoryOperationCalldata.d.ts +4 -4
  319. package/dist/types/{preview → onchain/preview}/parse/types-adapters.d.ts +5 -16
  320. package/dist/types/{preview → onchain/preview}/parse/types-facades.d.ts +3 -3
  321. package/dist/types/{preview → onchain/preview}/parse/types-pools.d.ts +1 -1
  322. package/dist/types/{preview → onchain/preview}/parse/types-rwa.d.ts +3 -3
  323. package/dist/types/{preview → onchain/preview}/parse/types.d.ts +3 -3
  324. package/dist/types/{preview → onchain/preview}/preview/CreditAccountState.d.ts +5 -5
  325. package/dist/types/{preview → onchain/preview}/preview/buildDelayedStrategyPositionOperationPreview.d.ts +5 -5
  326. package/dist/types/{preview → onchain/preview}/preview/detectCloseOrRepay.d.ts +1 -1
  327. package/dist/types/{preview → onchain/preview}/preview/detectDelayedClaim.d.ts +8 -8
  328. package/dist/types/{preview → onchain/preview}/preview/detectDelayedOperation.d.ts +9 -9
  329. package/dist/types/{preview → onchain/preview}/preview/estimateClaimableAt.d.ts +6 -6
  330. package/dist/types/{preview → onchain/preview}/preview/index.d.ts +3 -4
  331. package/dist/types/onchain/preview/preview/previewAdjustStrategyPosition.d.ts +20 -0
  332. package/dist/types/onchain/preview/preview/previewExitOrRepayStrategyPosition.d.ts +21 -0
  333. package/dist/types/onchain/preview/preview/previewOpenStrategyPosition.d.ts +14 -0
  334. package/dist/types/onchain/preview/preview/previewOperation.d.ts +32 -0
  335. package/dist/types/onchain/preview/preview/previewPoolPositionOperation.d.ts +13 -0
  336. package/dist/types/{preview → onchain/preview}/preview/replayInnerOperations.d.ts +11 -11
  337. package/dist/types/{preview → onchain/preview}/preview/replayMulticall.d.ts +10 -10
  338. package/dist/types/{preview → onchain/preview}/preview/unwrapNativeCollateral.d.ts +10 -20
  339. package/dist/types/onchain/validation/bundles/checkAccountQuotas.d.ts +16 -0
  340. package/dist/types/onchain/validation/bundles/checkCollateralFunding.d.ts +22 -0
  341. package/dist/types/onchain/validation/bundles/checkCreditOperation.d.ts +31 -0
  342. package/dist/types/onchain/validation/bundles/checkDraw.d.ts +20 -0
  343. package/dist/types/onchain/validation/bundles/checkHealthFactors.d.ts +39 -0
  344. package/dist/types/onchain/validation/bundles/checkLiquidationEligibility.d.ts +20 -0
  345. package/dist/types/onchain/validation/bundles/checkLiquidationFunding.d.ts +18 -0
  346. package/dist/types/onchain/validation/bundles/checkMarket.d.ts +15 -0
  347. package/dist/types/onchain/validation/bundles/checkObtained.d.ts +9 -0
  348. package/dist/types/onchain/validation/bundles/checkPoolFunding.d.ts +19 -0
  349. package/dist/types/onchain/validation/bundles/checkPoolOperation.d.ts +31 -0
  350. package/dist/types/onchain/validation/bundles/checkQuotasAsked.d.ts +10 -0
  351. package/dist/types/onchain/validation/bundles/checkRWAOpenRequirements.d.ts +21 -0
  352. package/dist/types/onchain/validation/bundles/checkRWAOpening.d.ts +19 -0
  353. package/dist/types/onchain/validation/bundles/checkWallet.d.ts +23 -0
  354. package/dist/types/onchain/validation/bundles/checkWalletAllowance.d.ts +18 -0
  355. package/dist/types/onchain/validation/bundles/checkWalletBalance.d.ts +17 -0
  356. package/dist/types/onchain/validation/bundles/index.d.ts +18 -0
  357. package/dist/types/onchain/validation/checkLiquidation.d.ts +23 -0
  358. package/dist/types/onchain/validation/checkOperation.d.ts +32 -0
  359. package/dist/types/onchain/validation/checkSimulation.d.ts +56 -0
  360. package/dist/types/onchain/validation/checks/checkBorrowLimit.d.ts +21 -0
  361. package/dist/types/onchain/validation/checks/checkCollateralised.d.ts +25 -0
  362. package/dist/types/onchain/validation/checks/checkCreditAccountFrozen.d.ts +12 -0
  363. package/dist/types/onchain/validation/checks/checkCreditManagerPaused.d.ts +12 -0
  364. package/dist/types/onchain/validation/checks/checkDebtLimits.d.ts +21 -0
  365. package/dist/types/onchain/validation/checks/checkEmergencyLiquidator.d.ts +17 -0
  366. package/dist/types/onchain/validation/checks/checkForbiddenToken.d.ts +12 -0
  367. package/dist/types/onchain/validation/checks/checkLeverage.d.ts +12 -0
  368. package/dist/types/onchain/validation/checks/checkLiquidatorEligible.d.ts +13 -0
  369. package/dist/types/onchain/validation/checks/checkMarketExpired.d.ts +14 -0
  370. package/dist/types/onchain/validation/checks/checkPoolLiquidity.d.ts +20 -0
  371. package/dist/types/onchain/validation/checks/checkPoolPaused.d.ts +12 -0
  372. package/dist/types/onchain/validation/checks/checkPoolSunset.d.ts +13 -0
  373. package/dist/types/onchain/validation/checks/checkQuotaCount.d.ts +11 -0
  374. package/dist/types/onchain/validation/checks/checkQuotaLimit.d.ts +18 -0
  375. package/dist/types/onchain/validation/checks/index.d.ts +16 -0
  376. package/dist/types/onchain/validation/helpers/amount.d.ts +7 -0
  377. package/dist/types/onchain/validation/helpers/health-factor-limits.d.ts +21 -0
  378. package/dist/types/onchain/validation/helpers/index.d.ts +4 -0
  379. package/dist/types/onchain/validation/{token.d.ts → helpers/token.d.ts} +4 -4
  380. package/dist/types/onchain/validation/index.d.ts +43 -4
  381. package/dist/types/onchain/validation/raise.d.ts +33 -0
  382. package/dist/types/sdk/execute/types.d.ts +2 -2
  383. package/dist/types/sdk/index.d.ts +5 -6
  384. package/dist/types/sdk/liquidations/LiquidationsNamespace.d.ts +5 -0
  385. package/dist/types/sdk/liquidations/types.d.ts +8 -0
  386. package/dist/types/sdk/prepare/PrepareApi.d.ts +6 -5
  387. package/dist/types/sdk/prepare/index.d.ts +5 -5
  388. package/dist/types/sdk/prepare/types.d.ts +65 -23
  389. package/dist/types/sdk/preview/PreviewNamespace.d.ts +13 -3
  390. package/dist/types/sdk/preview/index.d.ts +2 -2
  391. package/dist/types/sdk/preview/types.d.ts +30 -7
  392. package/package.json +1 -6
  393. package/dist/cjs/onchain/accounts/withdrawal-compressor/errors.js +0 -1
  394. package/dist/cjs/onchain/market/zapper/errors.js +0 -1
  395. package/dist/cjs/onchain/validation/checks.js +0 -258
  396. package/dist/cjs/onchain/validation/refusal.js +0 -39
  397. package/dist/cjs/preview/index.js +0 -86
  398. package/dist/cjs/preview/package.json +0 -1
  399. package/dist/cjs/preview/parse/errors.js +0 -1
  400. package/dist/cjs/preview/parse/index.js +0 -15
  401. package/dist/cjs/preview/prerequisites/AllowancePrerequisite.js +0 -38
  402. package/dist/cjs/preview/prerequisites/BalancePrerequisite.js +0 -52
  403. package/dist/cjs/preview/prerequisites/Prerequisite.js +0 -52
  404. package/dist/cjs/preview/prerequisites/RWAOpenRequirementsPrerequisite.js +0 -53
  405. package/dist/cjs/preview/prerequisites/buildCollateralPrerequisites.js +0 -63
  406. package/dist/cjs/preview/prerequisites/buildPartialLiquidationPrerequisites.js +0 -19
  407. package/dist/cjs/preview/prerequisites/buildPoolPrerequisites.js +0 -76
  408. package/dist/cjs/preview/prerequisites/buildRWAPrerequisites.js +0 -39
  409. package/dist/cjs/preview/prerequisites/checkPrerequisites.js +0 -74
  410. package/dist/cjs/preview/prerequisites/helpers.js +0 -23
  411. package/dist/cjs/preview/prerequisites/index.js +0 -12
  412. package/dist/cjs/preview/preview/errors.js +0 -85
  413. package/dist/cjs/preview/preview/index.js +0 -33
  414. package/dist/cjs/preview/preview/previewOpenStrategyPosition.js +0 -50
  415. package/dist/cjs/preview/preview/previewOperation.js +0 -100
  416. package/dist/cjs/preview/preview/previewPoolPositionOperation.js +0 -49
  417. package/dist/cjs/preview/preview/replayInnerOperations.js +0 -109
  418. package/dist/cjs/preview/preview/replayMulticall.js +0 -19
  419. package/dist/cjs/preview/simulate/errors.js +0 -73
  420. package/dist/cjs/preview/simulate/index.js +0 -11
  421. package/dist/cjs/preview/simulate/simulateFacadeOperation.js +0 -15
  422. package/dist/cjs/preview/simulate/simulateOperation.js +0 -29
  423. package/dist/cjs/preview/simulate/simulateRWAOperation.js +0 -15
  424. package/dist/cjs/preview/simulate/types.js +0 -1
  425. package/dist/cjs/preview/trace/index.js +0 -14
  426. package/dist/cjs/preview/trace/types.js +0 -1
  427. package/dist/cjs/preview/types.js +0 -1
  428. package/dist/cjs/preview/validate/checkOperation.js +0 -187
  429. package/dist/cjs/preview/validate/checkSimulation.js +0 -39
  430. package/dist/cjs/preview/validate/index.js +0 -8
  431. package/dist/cjs/sdk/prepare/errors.js +0 -93
  432. package/dist/esm/onchain/accounts/withdrawal-compressor/errors.js +0 -1
  433. package/dist/esm/onchain/market/zapper/errors.js +0 -1
  434. package/dist/esm/onchain/validation/checks.js +0 -238
  435. package/dist/esm/onchain/validation/refusal.js +0 -36
  436. package/dist/esm/preview/index.js +0 -38
  437. package/dist/esm/preview/package.json +0 -1
  438. package/dist/esm/preview/parse/errors.js +0 -1
  439. package/dist/esm/preview/prerequisites/AllowancePrerequisite.js +0 -37
  440. package/dist/esm/preview/prerequisites/BalancePrerequisite.js +0 -51
  441. package/dist/esm/preview/prerequisites/Prerequisite.js +0 -51
  442. package/dist/esm/preview/prerequisites/RWAOpenRequirementsPrerequisite.js +0 -52
  443. package/dist/esm/preview/prerequisites/buildCollateralPrerequisites.js +0 -62
  444. package/dist/esm/preview/prerequisites/buildPartialLiquidationPrerequisites.js +0 -18
  445. package/dist/esm/preview/prerequisites/buildPoolPrerequisites.js +0 -75
  446. package/dist/esm/preview/prerequisites/buildRWAPrerequisites.js +0 -38
  447. package/dist/esm/preview/prerequisites/checkPrerequisites.js +0 -73
  448. package/dist/esm/preview/prerequisites/helpers.js +0 -22
  449. package/dist/esm/preview/prerequisites/index.js +0 -7
  450. package/dist/esm/preview/preview/errors.js +0 -79
  451. package/dist/esm/preview/preview/previewPoolPositionOperation.js +0 -48
  452. package/dist/esm/preview/preview/replayInnerOperations.js +0 -107
  453. package/dist/esm/preview/preview/replayMulticall.js +0 -18
  454. package/dist/esm/preview/simulate/errors.js +0 -71
  455. package/dist/esm/preview/simulate/index.js +0 -6
  456. package/dist/esm/preview/simulate/simulateFacadeOperation.js +0 -14
  457. package/dist/esm/preview/simulate/simulateOperation.js +0 -28
  458. package/dist/esm/preview/simulate/simulateRWAOperation.js +0 -14
  459. package/dist/esm/preview/simulate/types.js +0 -1
  460. package/dist/esm/preview/trace/types.js +0 -1
  461. package/dist/esm/preview/types.js +0 -1
  462. package/dist/esm/preview/validate/checkOperation.js +0 -183
  463. package/dist/esm/preview/validate/checkSimulation.js +0 -38
  464. package/dist/esm/preview/validate/index.js +0 -3
  465. package/dist/esm/sdk/prepare/errors.js +0 -89
  466. package/dist/types/model/errors.d.ts +0 -46
  467. package/dist/types/onchain/accounts/withdrawal-compressor/errors.d.ts +0 -20
  468. package/dist/types/onchain/market/zapper/errors.d.ts +0 -18
  469. package/dist/types/onchain/validation/checks.d.ts +0 -164
  470. package/dist/types/onchain/validation/refusal.d.ts +0 -242
  471. package/dist/types/preview/index.d.ts +0 -47
  472. package/dist/types/preview/parse/errors.d.ts +0 -29
  473. package/dist/types/preview/parse/parseOperationCalldata.d.ts +0 -18
  474. package/dist/types/preview/prerequisites/AllowancePrerequisite.d.ts +0 -26
  475. package/dist/types/preview/prerequisites/BalancePrerequisite.d.ts +0 -29
  476. package/dist/types/preview/prerequisites/Prerequisite.d.ts +0 -26
  477. package/dist/types/preview/prerequisites/RWAOpenRequirementsPrerequisite.d.ts +0 -55
  478. package/dist/types/preview/prerequisites/buildCollateralPrerequisites.d.ts +0 -20
  479. package/dist/types/preview/prerequisites/buildPartialLiquidationPrerequisites.d.ts +0 -12
  480. package/dist/types/preview/prerequisites/buildPoolPrerequisites.d.ts +0 -12
  481. package/dist/types/preview/prerequisites/buildRWAPrerequisites.d.ts +0 -26
  482. package/dist/types/preview/prerequisites/checkPrerequisites.d.ts +0 -28
  483. package/dist/types/preview/prerequisites/helpers.d.ts +0 -10
  484. package/dist/types/preview/prerequisites/index.d.ts +0 -7
  485. package/dist/types/preview/prerequisites/types.d.ts +0 -53
  486. package/dist/types/preview/preview/errors.d.ts +0 -44
  487. package/dist/types/preview/preview/previewAdjustStrategyPosition.d.ts +0 -19
  488. package/dist/types/preview/preview/previewExitOrRepayStrategyPosition.d.ts +0 -18
  489. package/dist/types/preview/preview/previewOpenStrategyPosition.d.ts +0 -12
  490. package/dist/types/preview/preview/previewOperation.d.ts +0 -32
  491. package/dist/types/preview/preview/previewPoolPositionOperation.d.ts +0 -13
  492. package/dist/types/preview/simulate/errors.d.ts +0 -52
  493. package/dist/types/preview/simulate/index.d.ts +0 -7
  494. package/dist/types/preview/simulate/simulateFacadeOperation.d.ts +0 -16
  495. package/dist/types/preview/simulate/simulateOperation.d.ts +0 -12
  496. package/dist/types/preview/simulate/simulatePoolOperation.d.ts +0 -42
  497. package/dist/types/preview/simulate/simulateRWAOperation.d.ts +0 -16
  498. package/dist/types/preview/simulate/types.d.ts +0 -48
  499. package/dist/types/preview/types.d.ts +0 -65
  500. package/dist/types/preview/validate/checkOperation.d.ts +0 -71
  501. package/dist/types/preview/validate/checkSimulation.d.ts +0 -32
  502. package/dist/types/preview/validate/index.d.ts +0 -3
  503. package/dist/types/sdk/prepare/errors.d.ts +0 -319
  504. /package/dist/cjs/{preview/prerequisites → history/trace}/types.js +0 -0
  505. /package/dist/cjs/model/{errors.js → errors/base.js} +0 -0
  506. /package/dist/cjs/{preview → onchain/preview}/parse/types-adapters.js +0 -0
  507. /package/dist/cjs/{preview → onchain/preview}/parse/types-facades.js +0 -0
  508. /package/dist/cjs/{preview → onchain/preview}/parse/types-pools.js +0 -0
  509. /package/dist/cjs/{preview → onchain/preview}/parse/types-rwa.js +0 -0
  510. /package/dist/esm/{preview → history}/trace/index.js +0 -0
  511. /package/dist/esm/{preview/prerequisites → history/trace}/types.js +0 -0
  512. /package/dist/esm/model/{errors.js → errors/base.js} +0 -0
  513. /package/dist/esm/{preview → onchain/preview}/parse/types-adapters.js +0 -0
  514. /package/dist/esm/{preview → onchain/preview}/parse/types-facades.js +0 -0
  515. /package/dist/esm/{preview → onchain/preview}/parse/types-pools.js +0 -0
  516. /package/dist/esm/{preview → onchain/preview}/parse/types-rwa.js +0 -0
  517. /package/dist/types/{preview → history}/trace/index.d.ts +0 -0
@@ -1,27 +1,26 @@
1
- import { CreditFacadeV310Contract } from "../../onchain/market/credit/CreditFacadeV310Contract.js";
2
- import { isSDKError, sdkErr, sdkOk } from "../../model/result.js";
3
- import "../../model/index.js";
4
- import { PoolV310Contract } from "../../onchain/market/pool/PoolV310Contract.js";
5
- import { ZapperContract } from "../../onchain/market/zapper/ZapperContract.js";
6
- import { isRWAFactory } from "../../onchain/market/rwa/types.js";
7
- import "../../onchain/index.js";
1
+ import { CreditFacadeV310Contract } from "../../market/credit/CreditFacadeV310Contract.js";
2
+ import { sdkErr, sdkOk } from "../../../model/result.js";
3
+ import "../../../model/index.js";
4
+ import { PoolV310Contract } from "../../market/pool/PoolV310Contract.js";
5
+ import { ZapperContract } from "../../market/zapper/ZapperContract.js";
6
+ import { isRWAFactory } from "../../market/rwa/types.js";
8
7
  import { parseFacadeOperationCalldata } from "./parseFacadeOperationCalldata.js";
9
8
  import { parsePoolOperationCalldata } from "./parsePoolOperationCalldata.js";
10
9
  import { parseRWAFactoryOperationCalldata } from "./parseRWAFactoryOperationCalldata.js";
11
- //#region src/preview/parse/parseOperationCalldata.ts
10
+ //#region src/onchain/preview/parse/parseOperationCalldata.ts
12
11
  /**
13
12
  * Decodes raw operation calldata into an {@link Operation}.
14
13
  *
15
14
  * Support parsing of pool operations (including via zappers),
16
15
  * credit facade operations and RWA factory operations.
17
16
  */
18
- function parseOperationCalldata(input) {
19
- const { sdk, to, calldata, value, sender } = input;
17
+ function parseOperationCalldata(sdk, input) {
18
+ const { to, calldata, value, sender } = input;
20
19
  const contract = sdk.getContract(to);
21
20
  if (contract instanceof PoolV310Contract) return parsePoolOperationCalldata(sdk, contract, calldata);
22
21
  if (contract instanceof ZapperContract) {
23
22
  const answer = contract.parseOperation(calldata, value);
24
- if (isSDKError(answer)) return answer;
23
+ if (!answer.ok) return answer;
25
24
  const parsed = answer.data;
26
25
  if (parsed.operation === "Deposit") {
27
26
  const op = {
@@ -1,6 +1,6 @@
1
- import { sdkErr, sdkOk } from "../../model/result.js";
2
- import "../../model/index.js";
3
- //#region src/preview/parse/parsePoolOperationCalldata.ts
1
+ import { sdkErr, sdkOk } from "../../../model/result.js";
2
+ import "../../../model/index.js";
3
+ //#region src/onchain/preview/parse/parsePoolOperationCalldata.ts
4
4
  /**
5
5
  * Decodes pool calldata into a {@link PoolOperation}.
6
6
  *
@@ -1,11 +1,11 @@
1
- import { hexEq } from "../../onchain/utils/hex.js";
2
- import { AbstractAdapterContract } from "../../onchain/market/adapters/contracts/AbstractAdapter.js";
3
- import { CreditFacadeV310Contract } from "../../onchain/market/credit/CreditFacadeV310Contract.js";
4
- import { RWA_FACTORY_SECURITIZE } from "../../onchain/market/rwa/securitize/constants.js";
5
- import { isRWAFactory } from "../../onchain/market/rwa/types.js";
6
- import "../../onchain/index.js";
1
+ import { hexEq } from "../../utils/hex.js";
2
+ import { AbstractAdapterContract } from "../../market/adapters/contracts/AbstractAdapter.js";
3
+ import { CreditFacadeV310Contract } from "../../market/credit/CreditFacadeV310Contract.js";
4
+ import { RWA_FACTORY_SECURITIZE } from "../../../model/rwa.js";
5
+ import "../../../model/index.js";
6
+ import { isRWAFactory } from "../../market/rwa/types.js";
7
7
  import { classifyInnerOperations } from "./classifyInnerOperations.js";
8
- //#region src/preview/parse/parseRWAFactoryOperationCalldata.ts
8
+ //#region src/onchain/preview/parse/parseRWAFactoryOperationCalldata.ts
9
9
  /**
10
10
  * Decodes a RWA-factory entry-point call into the matching
11
11
  * {@link RWAOperation}.
@@ -24,8 +24,7 @@ function parseRWAFactoryOperationCalldata(sdk, factory, calldata) {
24
24
  * Securitize branch of {@link parseRWAFactoryOperationCalldata}
25
25
  *
26
26
  * In the template flow `tokensToRegister`/`signaturesToCache` are empty; the
27
- * real values come from the factory's open-account requirements (see
28
- * `checkPrerequisites`).
27
+ * real values come from the factory's open-account requirements.
29
28
  */
30
29
  function parseSecuritizeOperationCalldata(sdk, factory, calldata) {
31
30
  const parsed = sdk.parseFunctionDataV2(factory.address, calldata);
@@ -2,7 +2,7 @@ import "./types-adapters.js";
2
2
  import "./types-facades.js";
3
3
  import "./types-pools.js";
4
4
  import "./types-rwa.js";
5
- //#region src/preview/parse/types.ts
5
+ //#region src/onchain/preview/parse/types.ts
6
6
  /**
7
7
  * Narrows an {@link Operation} to a {@link PoolOperation} (deposit, mint,
8
8
  * withdraw or redeem). Used by the UI to decide whether a custom view exists for
@@ -1,8 +1,7 @@
1
- import { AssetsMap } from "../../onchain/utils/AssetsMap.js";
2
- import { DUST_THRESHOLD } from "../../onchain/constants/math.js";
3
- import "../../onchain/index.js";
1
+ import { AssetsMap } from "../../utils/AssetsMap.js";
2
+ import { DUST_THRESHOLD } from "../../constants/math.js";
4
3
  import { zeroAddress } from "viem";
5
- //#region src/preview/preview/CreditAccountState.ts
4
+ //#region src/onchain/preview/preview/CreditAccountState.ts
6
5
  /**
7
6
  * A snapshot of a credit account's economic state (balances, quotas, debt)
8
7
  * as used by operation previews, together with the account's identity.
@@ -1,11 +1,10 @@
1
- import { AssetsMap } from "../../onchain/utils/AssetsMap.js";
2
- import { BigIntMath } from "../../onchain/utils/bigint-math.js";
3
- import { DUST_THRESHOLD } from "../../onchain/constants/math.js";
4
- import { asEstimated } from "../../model/previews.js";
5
- import "../../model/index.js";
6
- import "../../onchain/index.js";
1
+ import { AssetsMap } from "../../utils/AssetsMap.js";
2
+ import { BigIntMath } from "../../utils/bigint-math.js";
3
+ import { DUST_THRESHOLD } from "../../constants/math.js";
4
+ import { asEstimated } from "../../../model/previews.js";
5
+ import "../../../model/index.js";
7
6
  import { isAddressEqual } from "viem";
8
- //#region src/preview/preview/buildDelayedStrategyPositionOperationPreview.ts
7
+ //#region src/onchain/preview/preview/buildDelayedStrategyPositionOperationPreview.ts
9
8
  /**
10
9
  * Builds the best-effort preview of the account state after the detected
11
10
  * delayed withdrawal is claimed and its intent (if any) is resumed:
@@ -65,11 +64,11 @@ function applyClaim(post, request) {
65
64
  /**
66
65
  * `WITHDRAW_COLLATERAL` operation tail:
67
66
  * after the claim, `withdrawAmount` of `withdrawToken` goes to the
68
- * user's wallet and the rest of the claim proceeds repay the debt.
67
+ * user's wallet and the rest of the claim repays the debt.
69
68
  *
70
69
  * Tokens involved (Securitize ACRED redemption as the example):
71
- * - claim token (`request.claimToken`) - the token the claim pays out;
72
- * redeeming ACRED pays out USDC.
70
+ * - claim token (`request.claimToken`) - the token the claim settles in;
71
+ * redeeming ACRED settles in USDC.
73
72
  * - withdraw token (`intent.withdrawToken`) - the token the user receives
74
73
  * in the wallet. It can be the claim token itself (withdraw USDC) or a
75
74
  * different token (withdraw RLUSD, bought with the claimed USDC).
@@ -86,7 +85,7 @@ function applyClaim(post, request) {
86
85
  * 2. If the account holds less than `withdrawAmount` of `withdrawToken`,
87
86
  * buy the missing part with the claim-token balance. This happens when
88
87
  * the withdraw token differs from the claim token: e.g. withdrawing
89
- * RLUSD from a claim that paid out USDC - RLUSD is bought with the
88
+ * RLUSD from a claim that settled in USDC - RLUSD is bought with the
90
89
  * claimed USDC. If even the whole claim balance cannot cover it, spend
91
90
  * all of it and withdraw whatever it buys.
92
91
  * 3. Convert the claim tokens still left into the underlying and repay the
@@ -1,7 +1,6 @@
1
- import "../../onchain/constants/math.js";
2
- import "../../onchain/index.js";
1
+ import "../../constants/math.js";
3
2
  import { isAddressEqual } from "viem";
4
- //#region src/preview/preview/detectCloseOrRepay.ts
3
+ //#region src/onchain/preview/preview/detectCloseOrRepay.ts
5
4
  /**
6
5
  * Detects whether a credit-facade multicall fully closes or repays the
7
6
  * account: any multicall that calls `decreaseDebt(MAX_UINT256)`.
@@ -1,8 +1,7 @@
1
- import { AbstractAdapterContract } from "../../onchain/market/adapters/contracts/AbstractAdapter.js";
2
- import { sdkOk } from "../../model/result.js";
3
- import "../../model/index.js";
4
- import "../../onchain/index.js";
5
- //#region src/preview/preview/detectDelayedClaim.ts
1
+ import { AbstractAdapterContract } from "../../market/adapters/contracts/AbstractAdapter.js";
2
+ import { sdkOk } from "../../../model/result.js";
3
+ import "../../../model/index.js";
4
+ //#region src/onchain/preview/preview/detectDelayedClaim.ts
6
5
  /**
7
6
  * Scans a credit-facade multicall for a delayed-withdrawal claim call.
8
7
  *
@@ -1,10 +1,9 @@
1
- import { AbstractAdapterContract } from "../../onchain/market/adapters/contracts/AbstractAdapter.js";
2
- import { sdkErr, sdkOk } from "../../model/result.js";
3
- import "../../model/index.js";
4
- import { decodeDelayedIntent } from "../../onchain/accounts/withdrawal-compressor/intent-codec.js";
5
- import "../../onchain/index.js";
1
+ import { AbstractAdapterContract } from "../../market/adapters/contracts/AbstractAdapter.js";
2
+ import { sdkErr, sdkOk } from "../../../model/result.js";
3
+ import "../../../model/index.js";
4
+ import { decodeDelayedIntent } from "../../accounts/withdrawal-compressor/intent-codec.js";
6
5
  import { isAddressEqual } from "viem";
7
- //#region src/preview/preview/detectDelayedOperation.ts
6
+ //#region src/onchain/preview/preview/detectDelayedOperation.ts
8
7
  /**
9
8
  * Scans a credit-facade multicall for a delayed-withdrawal request.
10
9
  *
@@ -1,5 +1,5 @@
1
1
  import { isAddressEqual } from "viem";
2
- //#region src/preview/preview/estimateClaimableAt.ts
2
+ //#region src/onchain/preview/preview/estimateClaimableAt.ts
3
3
  /**
4
4
  * Estimates when a newly requested delayed withdrawal becomes claimable:
5
5
  * `now + withdrawalLength` of the cached withdrawable asset whose phantom
@@ -3,11 +3,10 @@ import { CreditAccountState } from "./CreditAccountState.js";
3
3
  import { classifyCloseOrRepay, isCloseOrRepay } from "./detectCloseOrRepay.js";
4
4
  import { detectDelayedClaim, resolveDelayedClaimIntent } from "./detectDelayedClaim.js";
5
5
  import { detectDelayedOperation } from "./detectDelayedOperation.js";
6
- import { adapterCallOutsideBracketError, invalidTransactionValueError, malformedBracketError, nonAdapterCallInBracketError, unpreviewableAdapterCallError, unsupportedOutOfBracketCallError } from "./errors.js";
7
6
  import { estimateClaimableAt } from "./estimateClaimableAt.js";
8
- import { makeReplayState, replayInnerOperations } from "./replayInnerOperations.js";
9
- import { replayMulticall } from "./replayMulticall.js";
10
7
  import { previewAdjustStrategyPosition } from "./previewAdjustStrategyPosition.js";
11
8
  import { previewExitOrRepayStrategyPosition } from "./previewExitOrRepayStrategyPosition.js";
9
+ import { makeReplayState, replayInnerOperations } from "./replayInnerOperations.js";
10
+ import { replayMulticall } from "./replayMulticall.js";
12
11
  import { previewOperation } from "./previewOperation.js";
13
- export { CreditAccountState, adapterCallOutsideBracketError, buildDelayedStrategyPositionOperationPreview, classifyCloseOrRepay, detectDelayedClaim, detectDelayedOperation, estimateClaimableAt, invalidTransactionValueError, isCloseOrRepay, makeReplayState, malformedBracketError, nonAdapterCallInBracketError, previewAdjustStrategyPosition, previewExitOrRepayStrategyPosition, previewOperation, replayInnerOperations, replayMulticall, resolveDelayedClaimIntent, unpreviewableAdapterCallError, unsupportedOutOfBracketCallError };
12
+ export { CreditAccountState, buildDelayedStrategyPositionOperationPreview, classifyCloseOrRepay, detectDelayedClaim, detectDelayedOperation, estimateClaimableAt, isCloseOrRepay, makeReplayState, previewAdjustStrategyPosition, previewExitOrRepayStrategyPosition, previewOperation, replayInnerOperations, replayMulticall, resolveDelayedClaimIntent };
@@ -1,33 +1,29 @@
1
- import { AP_WETH_TOKEN } from "../../onchain/constants/address-provider.js";
2
- import { DUST_THRESHOLD } from "../../onchain/constants/math.js";
3
- import { asEstimated } from "../../model/previews.js";
4
- import "../../model/index.js";
5
- import "../../onchain/index.js";
6
- import { replayMulticall } from "./replayMulticall.js";
1
+ import { AP_WETH_TOKEN } from "../../constants/address-provider.js";
2
+ import { DUST_THRESHOLD } from "../../constants/math.js";
3
+ import { asEstimated } from "../../../model/previews.js";
4
+ import { sdkOk } from "../../../model/result.js";
5
+ import "../../../model/index.js";
7
6
  import { unwrapNativeCollateral } from "./unwrapNativeCollateral.js";
8
- //#region src/preview/preview/previewAdjustStrategyPosition.ts
7
+ //#region src/onchain/preview/preview/previewAdjustStrategyPosition.ts
9
8
  /**
10
9
  * Previews a `multicall`/`botMulticall` operation on an existing credit
11
- * account: threads the multicall through {@link replayMulticall} over the
12
- * pre-resolved account state (`options.creditAccount`) and reports the
13
- * minimal guaranteed post-state alongside the changes relative to the
14
- * pre-state.
10
+ * account: reports the replayed post-state alongside the changes relative
11
+ * to the pre-state.
15
12
  */
16
- function previewAdjustStrategyPosition(input, operation, options) {
17
- const { sdk, value = 0n } = input;
13
+ function previewAdjustStrategyPosition(sdk, input, operation, replay) {
14
+ const { value = 0n } = input;
18
15
  const market = sdk.marketRegister.findByCreditManager(operation.creditManager);
19
16
  const suite = sdk.marketRegister.findCreditManager(operation.creditManager);
20
17
  const oracle = market.priceOracle;
21
- const { before, after, warning: replayWarning } = replayMulticall(sdk, operation, options);
18
+ const { before, after } = replay;
22
19
  const account = after.account;
23
- let warning = replayWarning;
24
- const { assets: collateralAdded, warning: unwrapWarning } = unwrapNativeCollateral(after.collateralAdded.toAssets(), value, sdk.addressProvider.getAddress(AP_WETH_TOKEN, 0));
25
- warning ??= unwrapWarning;
20
+ const unwrapped = unwrapNativeCollateral(after.collateralAdded.toAssets(), value, sdk.addressProvider.getAddress(AP_WETH_TOKEN, 0));
21
+ if (!unwrapped.ok) return unwrapped;
22
+ const collateralAdded = unwrapped.data;
26
23
  const assetsChange = account.balances.difference(before.balances).toAssets(DUST_THRESHOLD);
27
24
  const priced = oracle.safeConvertAssets(account.balances.toAssets(), market.underlying);
28
- warning ??= priced.error;
29
25
  const snap = account.toSnapshot(priced.value);
30
- return {
26
+ return sdkOk({
31
27
  operation: "AdjustCreditAccount",
32
28
  ...asEstimated(sdk.positions.projection(snap, { availableLiquidityChange: before.totalDebt - account.totalDebt })),
33
29
  creditAccount: operation.creditAccount,
@@ -41,8 +37,8 @@ function previewAdjustStrategyPosition(input, operation, options) {
41
37
  ...oracle.toAmount(market.underlying, q.balance)
42
38
  })),
43
39
  assetsChange: assetsChange.map((a) => oracle.toTokenAmount(a.token, a.balance)),
44
- warning
45
- };
40
+ warning: priced.error
41
+ });
46
42
  }
47
43
  //#endregion
48
44
  export { previewAdjustStrategyPosition };
@@ -1,34 +1,28 @@
1
- import { AP_WETH_TOKEN } from "../../onchain/constants/address-provider.js";
2
- import "../../onchain/constants/math.js";
3
- import { asEstimated } from "../../model/previews.js";
4
- import "../../model/index.js";
5
- import "../../onchain/index.js";
1
+ import { AP_WETH_TOKEN } from "../../constants/address-provider.js";
2
+ import "../../constants/math.js";
3
+ import { asEstimated } from "../../../model/previews.js";
4
+ import { sdkOk } from "../../../model/result.js";
5
+ import "../../../model/index.js";
6
6
  import { classifyCloseOrRepay } from "./detectCloseOrRepay.js";
7
- import { replayMulticall } from "./replayMulticall.js";
8
7
  import { unwrapNativeCollateral } from "./unwrapNativeCollateral.js";
9
- //#region src/preview/preview/previewExitOrRepayStrategyPosition.ts
10
- function previewExitOrRepayStrategyPosition(input, operation, permanent, options) {
11
- const { sdk } = input;
8
+ //#region src/onchain/preview/preview/previewExitOrRepayStrategyPosition.ts
9
+ function previewExitOrRepayStrategyPosition(sdk, input, operation, permanent, replay) {
12
10
  const market = sdk.marketRegister.findByCreditManager(operation.creditManager);
13
11
  const exitTokens = [market.underlying];
14
12
  const meta = sdk.tokensMeta.get(market.underlying);
15
13
  if (meta && sdk.tokensMeta.isRWAUnderlying(meta)) exitTokens.push(meta.asset);
16
- const replay = replayMulticall(sdk, operation, options);
17
- return classifyCloseOrRepay(operation.multicall, exitTokens) === "close" ? previewCloseCreditAccount(input, operation, permanent, replay) : previewRepayCreditAccount(input, operation, permanent, replay);
14
+ return classifyCloseOrRepay(operation.multicall, exitTokens) === "close" ? sdkOk(previewCloseCreditAccount(sdk, operation, permanent, replay)) : previewRepayCreditAccount(sdk, input, operation, permanent, replay);
18
15
  }
19
16
  /**
20
17
  * Previews a credit account closure: all collateral is swapped into
21
18
  * underlying, the debt is fully repaid and the remaining underlying is
22
19
  * withdrawn to the user.
23
20
  */
24
- function previewCloseCreditAccount(input, operation, permanent, replay) {
25
- const { sdk } = input;
21
+ function previewCloseCreditAccount(sdk, operation, permanent, replay) {
26
22
  const market = sdk.marketRegister.findByCreditManager(operation.creditManager);
27
- const { before, after, warning: replayWarning } = replay;
23
+ const { before, after } = replay;
28
24
  const account = after.account;
29
- let warning = replayWarning;
30
25
  const priced = market.priceOracle.safeConvertAssets(account.balances.toAssets(), market.underlying);
31
- warning ??= priced.error;
32
26
  const suite = sdk.marketRegister.findCreditManager(operation.creditManager);
33
27
  let receivedToken = market.underlying;
34
28
  for (const m of operation.multicall) if (m.operation === "WithdrawCollateral" && m.amount === 115792089237316195423570985008687907853269984665640564039457584007913129639935n) {
@@ -43,7 +37,7 @@ function previewCloseCreditAccount(input, operation, permanent, replay) {
43
37
  name: suite.accountStrategyName(operation.creditAccount),
44
38
  targetCollateral: suite.accountTargetCollateral(operation.creditAccount),
45
39
  receivedAmount: market.priceOracle.toTokenAmount(receivedToken, after.collateralWithdrawn.getOrZero(receivedToken)),
46
- warning
40
+ warning: priced.error
47
41
  };
48
42
  }
49
43
  /**
@@ -51,17 +45,17 @@ function previewCloseCreditAccount(input, operation, permanent, replay) {
51
45
  * from the wallet when needed) and collateral is returned to the user
52
46
  * in-kind.
53
47
  */
54
- function previewRepayCreditAccount(input, operation, permanent, replay) {
55
- const { sdk, value = 0n } = input;
48
+ function previewRepayCreditAccount(sdk, input, operation, permanent, replay) {
49
+ const { value = 0n } = input;
56
50
  const market = sdk.marketRegister.findByCreditManager(operation.creditManager);
57
- const { before, after, warning: replayWarning } = replay;
51
+ const { before, after } = replay;
58
52
  const account = after.account;
59
- const { assets: collateralAdded, warning: unwrapWarning } = unwrapNativeCollateral(after.collateralAdded.toAssets(), value, sdk.addressProvider.getAddress(AP_WETH_TOKEN, 0));
60
- let warning = replayWarning ?? unwrapWarning;
53
+ const unwrapped = unwrapNativeCollateral(after.collateralAdded.toAssets(), value, sdk.addressProvider.getAddress(AP_WETH_TOKEN, 0));
54
+ if (!unwrapped.ok) return unwrapped;
55
+ const collateralAdded = unwrapped.data;
61
56
  const priced = market.priceOracle.safeConvertAssets(account.balances.toAssets(), market.underlying);
62
- warning ??= priced.error;
63
57
  const suite = sdk.marketRegister.findCreditManager(operation.creditManager);
64
- return {
58
+ return sdkOk({
65
59
  operation: "RepayCreditAccount",
66
60
  permanent,
67
61
  ...asEstimated(sdk.positions.projection(account.toSnapshot(priced.value), { availableLiquidityChange: before.totalDebt - account.totalDebt })),
@@ -71,8 +65,8 @@ function previewRepayCreditAccount(input, operation, permanent, replay) {
71
65
  collateralAdded: collateralAdded.map((a) => market.priceOracle.toTokenAmount(a.token, a.balance)),
72
66
  debtRepaid: market.toUnderlyingAmount(before.totalDebt - account.totalDebt),
73
67
  collateralWithdrawn: after.collateralWithdrawn.toAssets().map((a) => market.priceOracle.toTokenAmount(a.token, a.balance)),
74
- warning
75
- };
68
+ warning: priced.error
69
+ });
76
70
  }
77
71
  //#endregion
78
72
  export { previewExitOrRepayStrategyPosition };
@@ -1,35 +1,45 @@
1
- import { AP_WETH_TOKEN } from "../../onchain/constants/address-provider.js";
2
- import { asEstimated } from "../../model/previews.js";
3
- import "../../model/index.js";
4
- import "../../onchain/index.js";
1
+ import { AP_WETH_TOKEN } from "../../constants/address-provider.js";
2
+ import { asEstimated } from "../../../model/previews.js";
3
+ import { sdkErr, sdkOk } from "../../../model/result.js";
4
+ import "../../../model/index.js";
5
5
  import { CreditAccountState } from "./CreditAccountState.js";
6
- import { makeReplayState, replayInnerOperations } from "./replayInnerOperations.js";
7
6
  import { unwrapNativeCollateral } from "./unwrapNativeCollateral.js";
8
- //#region src/preview/preview/previewOpenStrategyPosition.ts
9
- function previewOpenStrategyPosition(input, operation) {
10
- const { sdk, value = 0n } = input;
7
+ import { makeReplayState, replayInnerOperations } from "./replayInnerOperations.js";
8
+ //#region src/onchain/preview/preview/previewOpenStrategyPosition.ts
9
+ function previewOpenStrategyPosition(sdk, input, operation) {
10
+ const { value = 0n } = input;
11
11
  const market = sdk.marketRegister.findByCreditManager(operation.creditManager);
12
12
  const oracle = market.priceOracle;
13
13
  const state = makeReplayState(CreditAccountState.beforeOpen(operation.creditManager, market.underlying));
14
- let warning = replayInnerOperations(sdk, operation.multicall, state);
14
+ const replayError = replayInnerOperations(sdk, operation.multicall, state);
15
+ if (replayError) return sdkErr(replayError);
15
16
  const account = state.account;
16
- let priceWarning;
17
+ let warning;
17
18
  const netValue = state.collateralAdded.sum((token, balance) => {
18
19
  const priced = oracle.safeConvert(token, market.underlying, balance);
19
- priceWarning ??= priced.error;
20
+ warning ??= priced.error;
20
21
  return priced.value;
21
22
  });
22
- const { assets: collateral, warning: unwrapWarning } = unwrapNativeCollateral(state.collateralAdded.toAssets(), value, sdk.addressProvider.getAddress(AP_WETH_TOKEN, 0));
23
- warning ??= unwrapWarning ?? priceWarning;
23
+ const unwrapped = unwrapNativeCollateral(state.collateralAdded.toAssets(), value, sdk.addressProvider.getAddress(AP_WETH_TOKEN, 0));
24
+ if (!unwrapped.ok) return unwrapped;
25
+ const collateral = unwrapped.data;
24
26
  const snap = account.toSnapshot(netValue + account.totalDebt);
25
27
  const targetAsset = inferTargetAsset(operation.multicall, account.balances);
26
- return {
27
- operation: operation.operation,
28
+ const projection = {
28
29
  ...asEstimated(sdk.positions.projection(snap, { availableLiquidityChange: -account.totalDebt })),
29
30
  targetCollateral: targetAsset ? oracle.toTokenAmount(targetAsset.token, targetAsset.balance) : void 0,
30
31
  collateralAdded: collateral.map((a) => oracle.toTokenAmount(a.token, a.balance)),
31
32
  warning
32
33
  };
34
+ if (operation.operation === "RWAOpenCreditAccount") return sdkOk({
35
+ ...projection,
36
+ operation: "RWAOpenCreditAccount",
37
+ rwaArgs: operation.args
38
+ });
39
+ return sdkOk({
40
+ ...projection,
41
+ operation: "OpenCreditAccount"
42
+ });
33
43
  }
34
44
  /**
35
45
  * Infers the strategy target token of an account opening: the first quoted
@@ -1,5 +1,6 @@
1
- import { isSDKError, sdkErr, sdkOk } from "../../model/result.js";
2
- import "../../model/index.js";
1
+ import { creditAccountNotFound } from "../../../model/errors/prepare-errors.js";
2
+ import { sdkErr, sdkOk } from "../../../model/result.js";
3
+ import "../../../model/index.js";
3
4
  import { parseOperationCalldata } from "../parse/parseOperationCalldata.js";
4
5
  import { isPoolOperation } from "../parse/types.js";
5
6
  import "../parse/index.js";
@@ -8,12 +9,12 @@ import { isCloseOrRepay } from "./detectCloseOrRepay.js";
8
9
  import { resolveDelayedClaimIntent } from "./detectDelayedClaim.js";
9
10
  import { detectDelayedOperation } from "./detectDelayedOperation.js";
10
11
  import { estimateClaimableAt } from "./estimateClaimableAt.js";
11
- import { replayMulticall } from "./replayMulticall.js";
12
12
  import { previewAdjustStrategyPosition } from "./previewAdjustStrategyPosition.js";
13
13
  import { previewExitOrRepayStrategyPosition } from "./previewExitOrRepayStrategyPosition.js";
14
14
  import { previewOpenStrategyPosition } from "./previewOpenStrategyPosition.js";
15
15
  import { previewPoolPositionOperation } from "./previewPoolPositionOperation.js";
16
- //#region src/preview/preview/previewOperation.ts
16
+ import { replayMulticall } from "./replayMulticall.js";
17
+ //#region src/onchain/preview/preview/previewOperation.ts
17
18
  /**
18
19
  * Previews a raw operation calldata: decodes it into a typed operation and
19
20
  * assembles an operation-specific, human-displayable preview.
@@ -21,24 +22,37 @@ import { previewPoolPositionOperation } from "./previewPoolPositionOperation.js"
21
22
  * Answers an {@link SDKReturn} envelope: the preview behind `ok: true`, or —
22
23
  * when the transaction is one the previewer refuses to read — a
23
24
  * {@link PreviewOperationError} behind `ok: false`. A thrown exception
24
- * still means the SDK could not do its job (a read failed, the targeted
25
- * credit account could not be resolved), not a refusal of the transaction.
25
+ * still means the SDK could not do its job (a read failed), not a refusal
26
+ * of the transaction.
27
+ *
28
+ * `input.chainId` and `sdk` both name the chain; the engine does not read
29
+ * `input.chainId`.
26
30
  */
27
- async function previewOperation(input, options) {
28
- const parsed = parseOperationCalldata(input);
29
- if (isSDKError(parsed)) return parsed;
31
+ async function previewOperation(sdk, input, options, creditAccount) {
32
+ const parsed = parseOperationCalldata(sdk, input);
33
+ if (!parsed.ok) return parsed;
30
34
  const operation = parsed.data;
31
- if (isPoolOperation(operation)) return previewPoolPositionOperation(input, operation, options);
32
- if (operation.operation === "OpenCreditAccount" || operation.operation === "RWAOpenCreditAccount") return sdkOk(await previewOpenStrategyPosition(input, operation));
35
+ if (isPoolOperation(operation)) return previewPoolPositionOperation(sdk, operation, options);
36
+ if (operation.operation === "OpenCreditAccount" || operation.operation === "RWAOpenCreditAccount") return previewOpenStrategyPosition(sdk, input, operation);
33
37
  if (operation.operation === "CloseCreditAccount") {
34
- const resolved = await resolveCreditAccount(input, operation, options);
35
- const preview = previewExitOrRepayStrategyPosition(input, operation, true, resolved);
36
- const intent = await resolveDelayedClaimIntent(input.sdk, operation.multicall, options?.blockNumber);
37
- if (isSDKError(intent)) return intent;
38
- preview.intent = intent.data;
39
- return sdkOk(preview);
38
+ const resolved = await resolveCreditAccount(sdk, operation, options, creditAccount);
39
+ if (!resolved.ok) return resolved;
40
+ const replayed = replayMulticall(sdk, operation, resolved.data);
41
+ if (!replayed.ok) return replayed;
42
+ const preview = previewExitOrRepayStrategyPosition(sdk, input, operation, true, replayed.data);
43
+ if (!preview.ok) return preview;
44
+ const intent = await resolveDelayedClaimIntent(sdk, operation.multicall, options?.blockNumber);
45
+ if (!intent.ok) return intent;
46
+ preview.data.intent = intent.data;
47
+ return preview;
48
+ }
49
+ if (operation.operation === "MultiCall" || operation.operation === "BotMulticall" || operation.operation === "RWAMulticall") {
50
+ const resolved = await resolveCreditAccount(sdk, operation, options, creditAccount);
51
+ if (!resolved.ok) return resolved;
52
+ const replayed = replayMulticall(sdk, operation, resolved.data);
53
+ if (!replayed.ok) return replayed;
54
+ return previewMulticallOperation(sdk, input, operation, replayed.data, options?.blockNumber);
40
55
  }
41
- if (operation.operation === "MultiCall" || operation.operation === "BotMulticall" || operation.operation === "RWAMulticall") return previewMulticallOperation(input, operation, await resolveCreditAccount(input, operation, options));
42
56
  return sdkErr({
43
57
  code: "unsupportedOperation",
44
58
  message: `operation "${operation.operation}" is not supported by previewOperation`,
@@ -47,17 +61,14 @@ async function previewOperation(input, options) {
47
61
  }
48
62
  /**
49
63
  * Resolves the pre-state of the credit account an operation targets: uses the
50
- * state provided via options when present, otherwise fetches it from the
51
- * credit account compressor.
64
+ * injected state when present, otherwise fetches it from the credit account
65
+ * compressor.
52
66
  */
53
- async function resolveCreditAccount(input, operation, options) {
54
- let creditAccount = options?.creditAccount;
55
- if (!creditAccount) creditAccount = await input.sdk.accounts.getCreditAccountData(operation.creditAccount, options?.blockNumber);
56
- if (!creditAccount) throw new Error(`credit account ${operation.creditAccount} not found`);
57
- return {
58
- ...options,
59
- creditAccount
60
- };
67
+ async function resolveCreditAccount(sdk, operation, options, creditAccount) {
68
+ let resolved = creditAccount;
69
+ if (!resolved) resolved = await sdk.accounts.getCreditAccountData(operation.creditAccount, options?.blockNumber);
70
+ if (!resolved) return sdkErr(creditAccountNotFound(operation.creditAccount));
71
+ return sdkOk(resolved);
61
72
  }
62
73
  /**
63
74
  * Previews a plain/bot/RWA multicall: classifies the instant preview
@@ -66,19 +77,27 @@ async function resolveCreditAccount(input, operation, options) {
66
77
  * `DelayedCreditAccountOperation` together with the best-effort preview of
67
78
  * the state after the withdrawal is claimed.
68
79
  */
69
- async function previewMulticallOperation(input, operation, options) {
70
- const { sdk } = input;
71
- const instantPreview = isCloseOrRepay(operation.multicall) ? previewExitOrRepayStrategyPosition(input, operation, false, options) : previewAdjustStrategyPosition(input, operation, options);
80
+ async function previewMulticallOperation(sdk, input, operation, replay, blockNumber) {
81
+ let instantPreview;
82
+ if (isCloseOrRepay(operation.multicall)) {
83
+ const instant = previewExitOrRepayStrategyPosition(sdk, input, operation, false, replay);
84
+ if (!instant.ok) return instant;
85
+ instantPreview = instant.data;
86
+ } else {
87
+ const instant = previewAdjustStrategyPosition(sdk, input, operation, replay);
88
+ if (!instant.ok) return instant;
89
+ instantPreview = instant.data;
90
+ }
72
91
  const detected = detectDelayedOperation(sdk, operation.multicall);
73
- if (isSDKError(detected)) return detected;
92
+ if (!detected.ok) return detected;
74
93
  const delayed = detected.data;
75
94
  if (!delayed) {
76
- const intent = await resolveDelayedClaimIntent(sdk, operation.multicall, options?.blockNumber);
77
- if (isSDKError(intent)) return intent;
95
+ const intent = await resolveDelayedClaimIntent(sdk, operation.multicall, blockNumber);
96
+ if (!intent.ok) return intent;
78
97
  instantPreview.intent = intent.data;
79
98
  return sdkOk(instantPreview);
80
99
  }
81
- const { before, after } = replayMulticall(sdk, operation, options);
100
+ const { before, after } = replay;
82
101
  const market = sdk.marketRegister.findByCreditManager(operation.creditManager);
83
102
  const meta = sdk.tokensMeta.get(market.underlying);
84
103
  const receivedToken = meta && sdk.tokensMeta.isRWAUnderlying(meta) ? meta.asset : market.underlying;