@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
@@ -0,0 +1,32 @@
1
+ import { rwaOpenRequirementsNotMet } from "../../../model/errors/operation-errors.js";
2
+ import { unexpectedFailure } from "../../../model/errors/prepare-errors.js";
3
+ import "../../../model/index.js";
4
+ import { toToken } from "../helpers/token.js";
5
+ import "../helpers/index.js";
6
+ //#region src/onchain/validation/bundles/checkRWAOpenRequirements.ts
7
+ /**
8
+ * The RWA factory is satisfied that `wallet` may open on `token` with the
9
+ * registration args already on the transaction.
10
+ */
11
+ async function checkRWAOpenRequirements(input) {
12
+ const { sdk, wallet, creditManager, token, providedArgs } = input;
13
+ try {
14
+ const requirements = await sdk.accounts.getOpenAccountRequirements(wallet, creditManager, { tokenOutAddress: token });
15
+ if (!requirements) return [];
16
+ const { rwaFactory } = sdk.marketRegister.findByCreditManager(creditManager);
17
+ if (!rwaFactory) throw new Error(`no RWA factory for credit manager ${creditManager}`);
18
+ const missing = rwaFactory.getMissingRequirements(requirements, providedArgs);
19
+ if (!missing && requirements.securitizeTokensToRegister.length === 0) return [];
20
+ return [rwaOpenRequirementsNotMet({
21
+ token: toToken(sdk, token),
22
+ creditManager,
23
+ factory: rwaFactory.address,
24
+ requirements,
25
+ ...missing === void 0 ? {} : { missing }
26
+ })];
27
+ } catch (cause) {
28
+ return [unexpectedFailure(cause, "read the RWA opening requirements")];
29
+ }
30
+ }
31
+ //#endregion
32
+ export { checkRWAOpenRequirements };
@@ -0,0 +1,23 @@
1
+ import { AddressSet } from "../../utils/AddressSet.js";
2
+ import { checkRWAOpenRequirements } from "./checkRWAOpenRequirements.js";
3
+ //#region src/onchain/validation/bundles/checkRWAOpening.ts
4
+ /**
5
+ * Per factory-gated token among `collateralAdded ∪ quotas`, whether the
6
+ * borrower still has to register or sign before this opening can land.
7
+ */
8
+ async function checkRWAOpening(input) {
9
+ const { sdk, preview, sender } = input;
10
+ const { rwaFactory } = sdk.marketRegister.findByCreditManager(preview.creditManager);
11
+ if (!rwaFactory) return [];
12
+ const gated = new AddressSet(rwaFactory.getTokens());
13
+ const candidates = new AddressSet([...preview.collateralAdded.map((a) => a.token.address), ...preview.quotas.map((q) => q.token.address)]);
14
+ return (await Promise.all([...candidates].filter((token) => gated.has(token)).map((token) => checkRWAOpenRequirements({
15
+ sdk,
16
+ wallet: sender,
17
+ creditManager: preview.creditManager,
18
+ token,
19
+ providedArgs: preview.rwaArgs
20
+ })))).flat();
21
+ }
22
+ //#endregion
23
+ export { checkRWAOpening };
@@ -0,0 +1,21 @@
1
+ import "../../constants/addresses.js";
2
+ import "../../constants/index.js";
3
+ import { checkWalletAllowance } from "./checkWalletAllowance.js";
4
+ import { checkWalletBalance } from "./checkWalletBalance.js";
5
+ import { isAddressEqual } from "viem";
6
+ //#region src/onchain/validation/bundles/checkWallet.ts
7
+ /**
8
+ * The wallet's whole side for one token: always the balance; the allowance
9
+ * only when it can matter (an ERC-20, with a spender who is not the holder).
10
+ */
11
+ async function checkWallet(input) {
12
+ const { spender, ...rest } = input;
13
+ const needsAllowance = spender !== void 0 && !isAddressEqual(rest.token, "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE") && !isAddressEqual(spender, rest.holder);
14
+ return (await Promise.all([checkWalletBalance(rest), needsAllowance ? checkWalletAllowance({
15
+ ...rest,
16
+ owner: rest.holder,
17
+ spender
18
+ }) : []])).flat();
19
+ }
20
+ //#endregion
21
+ export { checkWallet };
@@ -0,0 +1,31 @@
1
+ import { ierc20Abi } from "../../../abi/iERC20.js";
2
+ import { insufficientAllowance } from "../../../model/errors/operation-errors.js";
3
+ import { unexpectedFailure } from "../../../model/errors/prepare-errors.js";
4
+ import "../../../model/index.js";
5
+ import { toToken, toTokenAmount } from "../helpers/token.js";
6
+ import "../helpers/index.js";
7
+ //#region src/onchain/validation/bundles/checkWalletAllowance.ts
8
+ /** `owner` has approved `spender` for at least `required` of `token`. */
9
+ async function checkWalletAllowance(input) {
10
+ const { sdk, token, owner, spender, required, blockNumber } = input;
11
+ try {
12
+ const allowed = await sdk.client.readContract({
13
+ address: token,
14
+ abi: ierc20Abi,
15
+ functionName: "allowance",
16
+ args: [owner, spender],
17
+ blockNumber
18
+ });
19
+ return allowed >= required ? [] : [insufficientAllowance({
20
+ owner,
21
+ spender,
22
+ required: toTokenAmount(sdk, token, required),
23
+ allowed: toTokenAmount(sdk, token, allowed)
24
+ })];
25
+ } catch (cause) {
26
+ const { symbol } = toToken(sdk, token);
27
+ return [unexpectedFailure(cause, `read the ${symbol} allowance`)];
28
+ }
29
+ }
30
+ //#endregion
31
+ export { checkWalletAllowance };
@@ -0,0 +1,40 @@
1
+ import { ierc20Abi } from "../../../abi/iERC20.js";
2
+ import "../../constants/addresses.js";
3
+ import "../../constants/index.js";
4
+ import { insufficientBalance } from "../../../model/errors/operation-errors.js";
5
+ import { unexpectedFailure } from "../../../model/errors/prepare-errors.js";
6
+ import "../../../model/index.js";
7
+ import { amountOf } from "../helpers/amount.js";
8
+ import { toToken } from "../helpers/token.js";
9
+ import "../helpers/index.js";
10
+ import { isAddressEqual } from "viem";
11
+ //#region src/onchain/validation/bundles/checkWalletBalance.ts
12
+ /** `holder` holds at least `required` of `token` (ERC-20 or native). */
13
+ async function checkWalletBalance(input) {
14
+ const { sdk, token, holder, required, blockNumber } = input;
15
+ try {
16
+ const held = isAddressEqual(token, "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE") ? await sdk.client.getBalance({
17
+ address: holder,
18
+ blockNumber
19
+ }) : await sdk.client.readContract({
20
+ address: token,
21
+ abi: ierc20Abi,
22
+ functionName: "balanceOf",
23
+ args: [holder],
24
+ blockNumber
25
+ });
26
+ if (required <= held) return [];
27
+ const meta = toToken(sdk, token);
28
+ return [insufficientBalance({
29
+ required: amountOf(meta, required),
30
+ held: amountOf(meta, held),
31
+ holderKind: "wallet",
32
+ holder
33
+ })];
34
+ } catch (cause) {
35
+ const { symbol } = toToken(sdk, token);
36
+ return [unexpectedFailure(cause, `read the ${symbol} balance`)];
37
+ }
38
+ }
39
+ //#endregion
40
+ export { checkWalletBalance };
@@ -0,0 +1,18 @@
1
+ import { checkAccountQuotas } from "./checkAccountQuotas.js";
2
+ import { checkWalletAllowance } from "./checkWalletAllowance.js";
3
+ import { checkWalletBalance } from "./checkWalletBalance.js";
4
+ import { checkCollateralFunding } from "./checkCollateralFunding.js";
5
+ import { checkDraw } from "./checkDraw.js";
6
+ import { checkHealthFactors } from "./checkHealthFactors.js";
7
+ import { checkMarket } from "./checkMarket.js";
8
+ import { checkObtained } from "./checkObtained.js";
9
+ import { checkQuotasAsked } from "./checkQuotasAsked.js";
10
+ import { checkRWAOpenRequirements } from "./checkRWAOpenRequirements.js";
11
+ import { checkRWAOpening } from "./checkRWAOpening.js";
12
+ import { checkCreditOperation } from "./checkCreditOperation.js";
13
+ import { checkLiquidationEligibility } from "./checkLiquidationEligibility.js";
14
+ import { checkLiquidationFunding } from "./checkLiquidationFunding.js";
15
+ import { checkWallet } from "./checkWallet.js";
16
+ import { checkPoolFunding } from "./checkPoolFunding.js";
17
+ import { checkPoolOperation } from "./checkPoolOperation.js";
18
+ export { checkAccountQuotas, checkCollateralFunding, checkCreditOperation, checkDraw, checkHealthFactors, checkLiquidationEligibility, checkLiquidationFunding, checkMarket, checkObtained, checkPoolFunding, checkPoolOperation, checkQuotasAsked, checkRWAOpenRequirements, checkRWAOpening, checkWallet, checkWalletAllowance, checkWalletBalance };
@@ -0,0 +1,21 @@
1
+ import { checkLiquidationEligibility } from "./bundles/checkLiquidationEligibility.js";
2
+ import { checkLiquidationFunding } from "./bundles/checkLiquidationFunding.js";
3
+ //#region src/onchain/validation/checkLiquidation.ts
4
+ /**
5
+ * Whether `liquidator` may send a full liquidation of this account
6
+ */
7
+ async function checkLiquidation(sdk, input, options = {}) {
8
+ const { details, liquidator } = input;
9
+ return [...checkLiquidationEligibility({
10
+ sdk,
11
+ details,
12
+ liquidator
13
+ }), ...await checkLiquidationFunding({
14
+ sdk,
15
+ details,
16
+ liquidator,
17
+ blockNumber: options.blockNumber
18
+ })];
19
+ }
20
+ //#endregion
21
+ export { checkLiquidation };
@@ -0,0 +1,61 @@
1
+ import { checkCollateralFunding } from "./bundles/checkCollateralFunding.js";
2
+ import { checkMarket } from "./bundles/checkMarket.js";
3
+ import { checkCreditOperation } from "./bundles/checkCreditOperation.js";
4
+ import { checkPoolFunding } from "./bundles/checkPoolFunding.js";
5
+ import { checkPoolOperation } from "./bundles/checkPoolOperation.js";
6
+ //#region src/onchain/validation/checkOperation.ts
7
+ /**
8
+ * Whether a parsed operation may be signed by `sender`: protocol state first,
9
+ * then what the wallet has to approve, hold or sign.
10
+ *
11
+ * The array is in check order, most fundamental first, so a caller with room
12
+ * for one verdict reports the first entry. Approve and sign errors are picked
13
+ * out by `code`, not by position.
14
+ */
15
+ async function checkOperation(input, options = {}) {
16
+ const { sdk, preview, sender } = input;
17
+ const { blockNumber, ...thresholds } = options;
18
+ const wallet = {
19
+ sdk,
20
+ sender,
21
+ blockNumber
22
+ };
23
+ switch (preview.operation) {
24
+ case "Deposit":
25
+ case "Mint":
26
+ case "Withdraw":
27
+ case "Redeem": {
28
+ const isDeposit = preview.operation === "Deposit" || preview.operation === "Mint";
29
+ return [...checkPoolOperation({
30
+ sdk,
31
+ pool: preview.pool,
32
+ isDeposit,
33
+ tokenOut: preview.tokenOut
34
+ }), ...await checkPoolFunding({
35
+ ...wallet,
36
+ preview
37
+ })];
38
+ }
39
+ case "DelayedCreditAccountOperation": return checkOperation({
40
+ sdk,
41
+ preview: preview.instantPreview,
42
+ sender
43
+ }, options);
44
+ case "OpenCreditAccount":
45
+ case "RWAOpenCreditAccount":
46
+ case "AdjustCreditAccount": return checkCreditOperation({
47
+ sdk,
48
+ preview,
49
+ sender,
50
+ blockNumber,
51
+ ...thresholds
52
+ });
53
+ case "RepayCreditAccount": return [...checkMarket(sdk.marketRegister.findCreditManager(preview.creditManager)), ...await checkCollateralFunding({
54
+ ...wallet,
55
+ preview
56
+ })];
57
+ case "CloseCreditAccount": return checkMarket(sdk.marketRegister.findCreditManager(preview.creditManager));
58
+ }
59
+ }
60
+ //#endregion
61
+ export { checkOperation };
@@ -0,0 +1,59 @@
1
+ import { toToken } from "./helpers/token.js";
2
+ import "./helpers/index.js";
3
+ import { checkDebtLimits } from "./checks/checkDebtLimits.js";
4
+ import "./checks/index.js";
5
+ import { checkAccountQuotas } from "./bundles/checkAccountQuotas.js";
6
+ import { checkHealthFactors } from "./bundles/checkHealthFactors.js";
7
+ import { checkMarket } from "./bundles/checkMarket.js";
8
+ import { checkPoolOperation } from "./bundles/checkPoolOperation.js";
9
+ //#region src/onchain/validation/checkSimulation.ts
10
+ /**
11
+ * Whether a simulated operation clears the caller's own thresholds.
12
+ *
13
+ * The engine holds an account to the facade's `1.0`, because its guards answer
14
+ * "would this revert". A form is wiser to ask for more, and the engine's own
15
+ * note says so — a caller wanting the stricter threshold applies it itself.
16
+ * This is that second opinion, over the numbers the engine already reported.
17
+ *
18
+ * Three of the checks on a credit account the engine does not make at all:
19
+ * both health-factor thresholds are its own `1.0`, and the quota count it never
20
+ * weighs. The other two run against the same numbers the engine used, and are
21
+ * here so that a change in the engine cannot pass silently.
22
+ *
23
+ * What is deliberately absent: the forbidden-token, quota-limit and funding
24
+ * checks all need the *delta* an operation applies, and `OperationState` reports
25
+ * only the state after it. Weighing them against absolutes would stop a
26
+ * forbidden token the account merely holds, or a quota the operation never
27
+ * touched. The engine performed all three during the walk, so a simulation that
28
+ * came back `ok` has already passed them.
29
+ *
30
+ * A pool operation has no account to weigh, so what is left is the pool's own
31
+ * state — which the engine does not read either.
32
+ */
33
+ function checkSimulation(sdk, input, options = {}) {
34
+ if ("pool" in input) {
35
+ const { pool, state, isDeposit } = input;
36
+ return checkPoolOperation({
37
+ sdk,
38
+ pool,
39
+ isDeposit,
40
+ tokenOut: state.tokenOut
41
+ });
42
+ }
43
+ const { state } = input;
44
+ const suite = sdk.marketRegister.findCreditManager(state.creditManager);
45
+ return [
46
+ ...checkMarket(suite),
47
+ ...checkDebtLimits({
48
+ debt: state.totalDebt.value,
49
+ minDebt: suite.creditFacade.minDebt,
50
+ maxDebt: suite.creditFacade.maxDebt,
51
+ underlying: toToken(sdk, suite.market.pool.underlying),
52
+ allowZero: true
53
+ }),
54
+ ...checkAccountQuotas(suite, state),
55
+ ...checkHealthFactors(state, options)
56
+ ];
57
+ }
58
+ //#endregion
59
+ export { checkSimulation };
@@ -0,0 +1,24 @@
1
+ import { insufficientPoolLiquidity } from "../../../model/errors/operation-errors.js";
2
+ import "../../../model/index.js";
3
+ import { amountOf } from "../helpers/amount.js";
4
+ import "../helpers/index.js";
5
+ //#region src/onchain/validation/checks/checkBorrowLimit.ts
6
+ /**
7
+ * What the pool will hand over, against what is asked for.
8
+ *
9
+ * `available` and `limit` are the caller's reading of which limit is in the
10
+ * way; this check only compares. `maxBorrowAmount` is the largest debt still
11
+ * takeable, left out when none is.
12
+ */
13
+ function checkBorrowLimit(args) {
14
+ const { requested, available, limit, underlying, maxBorrowAmount } = args;
15
+ if (requested <= available) return [];
16
+ return [insufficientPoolLiquidity({
17
+ requested: amountOf(underlying, requested),
18
+ available: amountOf(underlying, available),
19
+ limit,
20
+ ...maxBorrowAmount === void 0 ? {} : { maxBorrowAmount: amountOf(underlying, maxBorrowAmount) }
21
+ })];
22
+ }
23
+ //#endregion
24
+ export { checkBorrowLimit };
@@ -0,0 +1,25 @@
1
+ import { insufficientCollateral } from "../../../model/errors/operation-errors.js";
2
+ import "../../../model/index.js";
3
+ //#region src/onchain/validation/checks/checkCollateralised.ts
4
+ /**
5
+ * The account against its debt, at whichever threshold the caller holds it to.
6
+ *
7
+ * An unread factor counts as failing: a check that cannot see the number is
8
+ * not evidence that the number is fine.
9
+ */
10
+ function checkCollateralised(args) {
11
+ const { healthFactor, healthFactorThreshold, safePrices, improvesFrom } = args;
12
+ if (healthFactor === void 0) return [insufficientCollateral({
13
+ healthFactor: 0,
14
+ healthFactorThreshold,
15
+ safePrices
16
+ })];
17
+ if (healthFactor >= healthFactorThreshold || improvesFrom !== void 0 && healthFactor > improvesFrom) return [];
18
+ return [insufficientCollateral({
19
+ healthFactor,
20
+ healthFactorThreshold,
21
+ safePrices
22
+ })];
23
+ }
24
+ //#endregion
25
+ export { checkCollateralised };
@@ -0,0 +1,9 @@
1
+ import { creditAccountFrozen } from "../../../model/errors/liquidation-errors.js";
2
+ import "../../../model/index.js";
3
+ //#region src/onchain/validation/checks/checkCreditAccountFrozen.ts
4
+ /** An RWA factory freeze stops the account's collateral from moving. */
5
+ function checkCreditAccountFrozen(args) {
6
+ return args.frozen ? [creditAccountFrozen(args.creditAccount)] : [];
7
+ }
8
+ //#endregion
9
+ export { checkCreditAccountFrozen };
@@ -0,0 +1,9 @@
1
+ import { creditManagerPaused } from "../../../model/errors/operation-errors.js";
2
+ import "../../../model/index.js";
3
+ //#region src/onchain/validation/checks/checkCreditManagerPaused.ts
4
+ /** The credit manager takes no multicall while it is paused. */
5
+ function checkCreditManagerPaused(args) {
6
+ return args.isPaused ? [creditManagerPaused(args.creditManager)] : [];
7
+ }
8
+ //#endregion
9
+ export { checkCreditManagerPaused };
@@ -0,0 +1,17 @@
1
+ import { debtOutOfRange } from "../../../model/errors/operation-errors.js";
2
+ import "../../../model/index.js";
3
+ import { amountOf } from "../helpers/amount.js";
4
+ import "../helpers/index.js";
5
+ //#region src/onchain/validation/checks/checkDebtLimits.ts
6
+ /** A debt the facade would revert on. */
7
+ function checkDebtLimits(args) {
8
+ const { debt, minDebt, maxDebt, underlying, allowZero } = args;
9
+ if (!(debt > maxDebt || debt < minDebt && !(allowZero && debt === 0n))) return [];
10
+ return [debtOutOfRange({
11
+ requested: amountOf(underlying, debt),
12
+ minDebt: amountOf(underlying, minDebt),
13
+ maxDebt: amountOf(underlying, maxDebt)
14
+ })];
15
+ }
16
+ //#endregion
17
+ export { checkDebtLimits };
@@ -0,0 +1,12 @@
1
+ import { notEmergencyLiquidator } from "../../../model/errors/liquidation-errors.js";
2
+ import "../../../model/index.js";
3
+ //#region src/onchain/validation/checks/checkEmergencyLiquidator.ts
4
+ /**
5
+ * A paused market only accepts liquidations from its emergency liquidators.
6
+ * An unpaused market does not consult the list.
7
+ */
8
+ function checkEmergencyLiquidator(args) {
9
+ return args.paused && !args.isEmergencyLiquidator ? [notEmergencyLiquidator(args.creditManager, args.liquidator)] : [];
10
+ }
11
+ //#endregion
12
+ export { checkEmergencyLiquidator };
@@ -0,0 +1,9 @@
1
+ import { forbiddenToken } from "../../../model/errors/operation-errors.js";
2
+ import "../../../model/index.js";
3
+ //#region src/onchain/validation/checks/checkForbiddenToken.ts
4
+ /** A token the market will not let the account hold more of. */
5
+ function checkForbiddenToken(args) {
6
+ return args.isForbidden ? [forbiddenToken(args.token)] : [];
7
+ }
8
+ //#endregion
9
+ export { checkForbiddenToken };
@@ -0,0 +1,12 @@
1
+ import { leverageOutOfRange } from "../../../model/errors/operation-errors.js";
2
+ import "../../../model/index.js";
3
+ //#region src/onchain/validation/checks/checkLeverage.ts
4
+ /** Leverage below 1x is not a position, it is a withdrawal. */
5
+ function checkLeverage(args) {
6
+ return args.leverage < args.min ? [leverageOutOfRange({
7
+ requested: args.leverage,
8
+ min: args.min
9
+ })] : [];
10
+ }
11
+ //#endregion
12
+ export { checkLeverage };
@@ -0,0 +1,9 @@
1
+ import { liquidatorNotEligible } from "../../../model/errors/liquidation-errors.js";
2
+ import "../../../model/index.js";
3
+ //#region src/onchain/validation/checks/checkLiquidatorEligible.ts
4
+ /** The compressor's KYC check of this wallet against the liquidated assets. */
5
+ function checkLiquidatorEligible(args) {
6
+ return args.eligible ? [] : [liquidatorNotEligible(args.kycProtocol, args.kycToken)];
7
+ }
8
+ //#endregion
9
+ export { checkLiquidatorEligible };
@@ -0,0 +1,9 @@
1
+ import { marketExpired } from "../../../model/errors/operation-errors.js";
2
+ import "../../../model/index.js";
3
+ //#region src/onchain/validation/checks/checkMarketExpired.ts
4
+ /** Past its expiration date the facade takes no more multicalls. */
5
+ function checkMarketExpired(args) {
6
+ return args.isExpired ? [marketExpired(args.creditManager, args.expirationDate)] : [];
7
+ }
8
+ //#endregion
9
+ export { checkMarketExpired };
@@ -0,0 +1,24 @@
1
+ import { insufficientPoolLiquidity } from "../../../model/errors/operation-errors.js";
2
+ import "../../../model/index.js";
3
+ import { amountOf } from "../helpers/amount.js";
4
+ import "../helpers/index.js";
5
+ //#region src/onchain/validation/checks/checkPoolLiquidity.ts
6
+ /**
7
+ * What the pool holds, against what is being taken out of it.
8
+ *
9
+ * The operator is not `checkBorrowLimit`'s: a pool holding exactly the amount
10
+ * asked for still cannot serve it, so equality is already a refusal. That is
11
+ * the rule the legacy withdrawal validator enforced and it is preserved to the
12
+ * unit.
13
+ */
14
+ function checkPoolLiquidity(args) {
15
+ const { requested, available, underlying } = args;
16
+ if (requested < available) return [];
17
+ return [insufficientPoolLiquidity({
18
+ requested: amountOf(underlying, requested),
19
+ available: amountOf(underlying, available),
20
+ limit: "poolAvailableLiquidity"
21
+ })];
22
+ }
23
+ //#endregion
24
+ export { checkPoolLiquidity };
@@ -0,0 +1,9 @@
1
+ import { poolPaused } from "../../../model/errors/operation-errors.js";
2
+ import "../../../model/index.js";
3
+ //#region src/onchain/validation/checks/checkPoolPaused.ts
4
+ /** A paused pool neither takes deposits nor serves withdrawals. */
5
+ function checkPoolPaused(args) {
6
+ return args.isPaused ? [poolPaused(args.pool)] : [];
7
+ }
8
+ //#endregion
9
+ export { checkPoolPaused };
@@ -0,0 +1,9 @@
1
+ import { poolSunset } from "../../../model/errors/operation-errors.js";
2
+ import "../../../model/index.js";
3
+ //#region src/onchain/validation/checks/checkPoolSunset.ts
4
+ /** A pool winding down still serves withdrawals, so only what puts money in is refused. */
5
+ function checkPoolSunset(args) {
6
+ return args.isSunset && args.isDeposit ? [poolSunset(args.pool)] : [];
7
+ }
8
+ //#endregion
9
+ export { checkPoolSunset };
@@ -0,0 +1,9 @@
1
+ import { quotaCountExceeded } from "../../../model/errors/operation-errors.js";
2
+ import "../../../model/index.js";
3
+ //#region src/onchain/validation/checks/checkQuotaCount.ts
4
+ /** How many quoted tokens the facade enables at once. */
5
+ function checkQuotaCount(args) {
6
+ return args.count > args.max ? [quotaCountExceeded(args.count, args.max)] : [];
7
+ }
8
+ //#endregion
9
+ export { checkQuotaCount };
@@ -0,0 +1,17 @@
1
+ import { quotaLimitReached } from "../../../model/errors/operation-errors.js";
2
+ import "../../../model/index.js";
3
+ import { amountOf } from "../helpers/amount.js";
4
+ import "../helpers/index.js";
5
+ //#region src/onchain/validation/checks/checkQuotaLimit.ts
6
+ /** The room the keeper still has for a token's quota, in the underlying. */
7
+ function checkQuotaLimit(args) {
8
+ const { token, requested, available, underlying } = args;
9
+ if (requested !== void 0 && requested <= available) return [];
10
+ return [quotaLimitReached({
11
+ token,
12
+ requested: requested === void 0 ? void 0 : amountOf(underlying, requested),
13
+ available: amountOf(underlying, available)
14
+ })];
15
+ }
16
+ //#endregion
17
+ export { checkQuotaLimit };
@@ -0,0 +1,16 @@
1
+ import { checkBorrowLimit } from "./checkBorrowLimit.js";
2
+ import { checkCollateralised } from "./checkCollateralised.js";
3
+ import { checkCreditAccountFrozen } from "./checkCreditAccountFrozen.js";
4
+ import { checkCreditManagerPaused } from "./checkCreditManagerPaused.js";
5
+ import { checkDebtLimits } from "./checkDebtLimits.js";
6
+ import { checkEmergencyLiquidator } from "./checkEmergencyLiquidator.js";
7
+ import { checkForbiddenToken } from "./checkForbiddenToken.js";
8
+ import { checkLeverage } from "./checkLeverage.js";
9
+ import { checkLiquidatorEligible } from "./checkLiquidatorEligible.js";
10
+ import { checkMarketExpired } from "./checkMarketExpired.js";
11
+ import { checkPoolLiquidity } from "./checkPoolLiquidity.js";
12
+ import { checkPoolPaused } from "./checkPoolPaused.js";
13
+ import { checkPoolSunset } from "./checkPoolSunset.js";
14
+ import { checkQuotaCount } from "./checkQuotaCount.js";
15
+ import { checkQuotaLimit } from "./checkQuotaLimit.js";
16
+ export { checkBorrowLimit, checkCollateralised, checkCreditAccountFrozen, checkCreditManagerPaused, checkDebtLimits, checkEmergencyLiquidator, checkForbiddenToken, checkLeverage, checkLiquidatorEligible, checkMarketExpired, checkPoolLiquidity, checkPoolPaused, checkPoolSunset, checkQuotaCount, checkQuotaLimit };
@@ -0,0 +1,11 @@
1
+ //#region src/onchain/validation/helpers/amount.ts
2
+ /** A check names what a limit was measured in, never what it is worth. */
3
+ function amountOf(token, value) {
4
+ return {
5
+ token,
6
+ value,
7
+ valueUsd: null
8
+ };
9
+ }
10
+ //#endregion
11
+ export { amountOf };
@@ -0,0 +1,21 @@
1
+ //#region src/onchain/validation/helpers/health-factor-limits.ts
2
+ /**
3
+ * The health-factor thresholds this codebase holds an account to.
4
+ *
5
+ * They are deliberately different numbers for different jobs: the facade's is
6
+ * what a transaction must clear to land, a form's is what makes a position
7
+ * worth signing, and a sizing helper leaves a margin above both.
8
+ **/
9
+ /** A factor at or below this is refused; kept for the callers that size on it. */
10
+ const MIN_HF_LIMITED = 10100n;
11
+ /** The same threshold as a `required` argument — the lowest factor that passes. */
12
+ const MIN_HEALTH_FACTOR_FORM = 10101;
13
+ /** The threshold the facade itself enforces: an account may end exactly at 1.0. */
14
+ const MIN_HEALTH_FACTOR_FACADE = 1e4;
15
+ /**
16
+ * The safe-price threshold a form holds an account to. A step above the
17
+ * facade's, because a factor of exactly 1.0 at safe prices is already refused.
18
+ **/
19
+ const MIN_SAFE_HEALTH_FACTOR_FORM = 10001;
20
+ //#endregion
21
+ export { MIN_HEALTH_FACTOR_FACADE, MIN_HEALTH_FACTOR_FORM, MIN_HF_LIMITED, MIN_SAFE_HEALTH_FACTOR_FORM };
@@ -0,0 +1,4 @@
1
+ import { amountOf } from "./amount.js";
2
+ import { MIN_HEALTH_FACTOR_FACADE, MIN_HEALTH_FACTOR_FORM, MIN_HF_LIMITED, MIN_SAFE_HEALTH_FACTOR_FORM } from "./health-factor-limits.js";
3
+ import { toToken, toTokenAmount } from "./token.js";
4
+ export { MIN_HEALTH_FACTOR_FACADE, MIN_HEALTH_FACTOR_FORM, MIN_HF_LIMITED, MIN_SAFE_HEALTH_FACTOR_FORM, amountOf, toToken, toTokenAmount };
@@ -1,6 +1,6 @@
1
- import { shortAddress } from "../utils/formatter.js";
2
- import { amountOf } from "./checks.js";
3
- //#region src/onchain/validation/token.ts
1
+ import { shortAddress } from "../../utils/formatter.js";
2
+ import { amountOf } from "./amount.js";
3
+ //#region src/onchain/validation/helpers/token.ts
4
4
  /**
5
5
  * The token behind an address, for the refusal details that inline one.
6
6
  *