@gearbox-protocol/sdk 16.2.0 → 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 (528) 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/index.js +0 -2
  21. package/dist/cjs/onchain/accounts/intents/guards.js +42 -66
  22. package/dist/cjs/onchain/accounts/intents/index.js +38 -35
  23. package/dist/cjs/onchain/accounts/intents/leverage-band.js +1 -1
  24. package/dist/cjs/onchain/accounts/intents/math.js +19 -15
  25. package/dist/cjs/onchain/accounts/intents/open-strategy.js +6 -4
  26. package/dist/cjs/onchain/accounts/intents/plan.js +52 -48
  27. package/dist/cjs/onchain/accounts/intents/realize.js +26 -24
  28. package/dist/cjs/onchain/accounts/intents/tail.js +15 -12
  29. package/dist/cjs/onchain/accounts/intents/testing/sdk-mock.js +7 -0
  30. package/dist/cjs/onchain/accounts/intents/tests/finish-withdraw.fixtures.js +6 -6
  31. package/dist/cjs/onchain/accounts/intents/tests/withdraw.fixtures.js +12 -12
  32. package/dist/cjs/onchain/accounts/intents/view.js +1 -1
  33. package/dist/cjs/onchain/accounts/withdrawal-compressor/index.js +0 -1
  34. package/dist/cjs/onchain/index.js +122 -36
  35. package/dist/cjs/onchain/market/MarketSuite.js +7 -1
  36. package/dist/cjs/onchain/market/adapters/index.js +1 -0
  37. package/dist/cjs/onchain/market/credit/CreditSuite.js +47 -15
  38. package/dist/cjs/onchain/market/index.js +0 -6
  39. package/dist/cjs/onchain/market/oracle/PriceOracleBaseContract.js +6 -6
  40. package/dist/cjs/onchain/market/oracle/index.js +0 -2
  41. package/dist/cjs/onchain/market/pool/PoolQuotaKeeperV310Contract.js +8 -0
  42. package/dist/cjs/onchain/market/rwa/RWARegistry.js +3 -2
  43. package/dist/cjs/onchain/market/rwa/index.js +0 -4
  44. package/dist/cjs/onchain/market/rwa/securitize/SecuritizeRWAFactory.js +7 -7
  45. package/dist/cjs/onchain/market/rwa/securitize/constants.js +0 -2
  46. package/dist/cjs/onchain/market/rwa/securitize/index.js +1 -3
  47. package/dist/cjs/onchain/market/rwa/securitize/types.js +0 -29
  48. package/dist/cjs/onchain/market/rwa/types.js +0 -7
  49. package/dist/cjs/onchain/market/zapper/index.js +0 -1
  50. package/dist/cjs/onchain/pools/PoolService.js +10 -16
  51. package/dist/cjs/onchain/preview/index.js +41 -0
  52. package/dist/cjs/{preview → onchain/preview}/parse/classifyInnerOperations.js +2 -3
  53. package/dist/cjs/onchain/preview/parse/index.js +14 -0
  54. package/dist/cjs/{preview → onchain/preview}/parse/parseFacadeOperationCalldata.js +3 -3
  55. package/dist/cjs/{preview → onchain/preview}/parse/parseOperationCalldata.js +16 -17
  56. package/dist/cjs/{preview → onchain/preview}/parse/parsePoolOperationCalldata.js +3 -3
  57. package/dist/cjs/{preview → onchain/preview}/parse/parseRWAFactoryOperationCalldata.js +11 -12
  58. package/dist/cjs/{preview → onchain/preview}/parse/types.js +1 -1
  59. package/dist/cjs/{preview → onchain/preview}/preview/CreditAccountState.js +3 -4
  60. package/dist/cjs/{preview → onchain/preview}/preview/buildDelayedStrategyPositionOperationPreview.js +10 -11
  61. package/dist/cjs/{preview → onchain/preview}/preview/detectCloseOrRepay.js +2 -3
  62. package/dist/cjs/{preview → onchain/preview}/preview/detectDelayedClaim.js +4 -5
  63. package/dist/cjs/{preview → onchain/preview}/preview/detectDelayedOperation.js +5 -6
  64. package/dist/cjs/{preview → onchain/preview}/preview/estimateClaimableAt.js +1 -1
  65. package/dist/cjs/onchain/preview/preview/index.js +26 -0
  66. package/dist/cjs/{preview → onchain/preview}/preview/previewAdjustStrategyPosition.js +18 -22
  67. package/dist/cjs/{preview → onchain/preview}/preview/previewExitOrRepayStrategyPosition.js +22 -28
  68. package/dist/cjs/onchain/preview/preview/previewOpenStrategyPosition.js +60 -0
  69. package/dist/cjs/onchain/preview/preview/previewOperation.js +119 -0
  70. package/dist/cjs/{preview/simulate/simulatePoolOperation.js → onchain/preview/preview/previewPoolPositionOperation.js} +46 -32
  71. package/dist/cjs/onchain/preview/preview/replayInnerOperations.js +109 -0
  72. package/dist/cjs/onchain/preview/preview/replayMulticall.js +22 -0
  73. package/dist/cjs/{preview → onchain/preview}/preview/unwrapNativeCollateral.js +11 -14
  74. package/dist/cjs/onchain/validation/bundles/checkAccountQuotas.js +20 -0
  75. package/dist/cjs/onchain/validation/bundles/checkCollateralFunding.js +59 -0
  76. package/dist/cjs/onchain/validation/bundles/checkCreditOperation.js +65 -0
  77. package/dist/cjs/onchain/validation/bundles/checkDraw.js +28 -0
  78. package/dist/cjs/onchain/validation/bundles/checkHealthFactors.js +27 -0
  79. package/dist/cjs/onchain/validation/bundles/checkLiquidationEligibility.js +33 -0
  80. package/dist/cjs/onchain/validation/bundles/checkLiquidationFunding.js +29 -0
  81. package/dist/cjs/onchain/validation/bundles/checkMarket.js +24 -0
  82. package/dist/cjs/onchain/validation/bundles/checkObtained.js +13 -0
  83. package/dist/cjs/onchain/validation/bundles/checkPoolFunding.js +22 -0
  84. package/dist/cjs/onchain/validation/bundles/checkPoolOperation.js +35 -0
  85. package/dist/cjs/onchain/validation/bundles/checkQuotasAsked.js +20 -0
  86. package/dist/cjs/onchain/validation/bundles/checkRWAOpenRequirements.js +33 -0
  87. package/dist/cjs/onchain/validation/bundles/checkRWAOpening.js +24 -0
  88. package/dist/cjs/onchain/validation/bundles/checkWallet.js +22 -0
  89. package/dist/cjs/onchain/validation/bundles/checkWalletAllowance.js +32 -0
  90. package/dist/cjs/onchain/validation/bundles/checkWalletBalance.js +41 -0
  91. package/dist/cjs/onchain/validation/bundles/index.js +35 -0
  92. package/dist/cjs/onchain/validation/checkLiquidation.js +22 -0
  93. package/dist/cjs/onchain/validation/checkOperation.js +62 -0
  94. package/dist/cjs/onchain/validation/checkSimulation.js +60 -0
  95. package/dist/cjs/onchain/validation/checks/checkBorrowLimit.js +25 -0
  96. package/dist/cjs/onchain/validation/checks/checkCollateralised.js +26 -0
  97. package/dist/cjs/onchain/validation/checks/checkCreditAccountFrozen.js +10 -0
  98. package/dist/cjs/onchain/validation/checks/checkCreditManagerPaused.js +10 -0
  99. package/dist/cjs/onchain/validation/checks/checkDebtLimits.js +18 -0
  100. package/dist/cjs/onchain/validation/checks/checkEmergencyLiquidator.js +13 -0
  101. package/dist/cjs/onchain/validation/checks/checkForbiddenToken.js +10 -0
  102. package/dist/cjs/onchain/validation/checks/checkLeverage.js +13 -0
  103. package/dist/cjs/onchain/validation/checks/checkLiquidatorEligible.js +10 -0
  104. package/dist/cjs/onchain/validation/checks/checkMarketExpired.js +10 -0
  105. package/dist/cjs/onchain/validation/checks/checkPoolLiquidity.js +25 -0
  106. package/dist/cjs/onchain/validation/checks/checkPoolPaused.js +10 -0
  107. package/dist/cjs/onchain/validation/checks/checkPoolSunset.js +10 -0
  108. package/dist/cjs/onchain/validation/checks/checkQuotaCount.js +10 -0
  109. package/dist/cjs/onchain/validation/checks/checkQuotaLimit.js +18 -0
  110. package/dist/cjs/onchain/validation/checks/index.js +31 -0
  111. package/dist/cjs/onchain/validation/helpers/amount.js +12 -0
  112. package/dist/cjs/onchain/validation/helpers/health-factor-limits.js +25 -0
  113. package/dist/cjs/onchain/validation/helpers/index.js +11 -0
  114. package/dist/cjs/onchain/validation/{token.js → helpers/token.js} +4 -4
  115. package/dist/cjs/onchain/validation/index.js +85 -27
  116. package/dist/cjs/onchain/validation/raise.js +33 -0
  117. package/dist/cjs/sdk/index.js +6 -11
  118. package/dist/cjs/sdk/liquidations/LiquidationsNamespace.js +9 -0
  119. package/dist/cjs/sdk/prepare/PrepareApi.js +40 -50
  120. package/dist/cjs/sdk/prepare/index.js +7 -11
  121. package/dist/cjs/sdk/prepare/types.js +0 -4
  122. package/dist/cjs/sdk/preview/PreviewNamespace.js +24 -13
  123. package/dist/esm/dev/AccountOpener.js +1 -1
  124. package/dist/esm/dev/withdrawalUtils.js +1 -1
  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 +2 -2
  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 +8 -6
  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/liquidations/LiquidationsService.js +1 -1
  158. package/dist/esm/onchain/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.js +1 -1
  159. package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV310Contract.js +1 -1
  160. package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV311Contract.js +1 -1
  161. package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV313Contract.js +1 -1
  162. package/dist/esm/onchain/accounts/withdrawal-compressor/index.js +0 -1
  163. package/dist/esm/onchain/base/TokensMeta.js +3 -3
  164. package/dist/esm/onchain/core/createAddressProvider.js +1 -1
  165. package/dist/esm/onchain/index.js +61 -10
  166. package/dist/esm/onchain/market/MarketSuite.js +7 -1
  167. package/dist/esm/onchain/market/adapters/contracts/AccountMigratorAdapterContract.js +1 -1
  168. package/dist/esm/onchain/market/adapters/contracts/ERC4626AdapterContract.js +1 -1
  169. package/dist/esm/onchain/market/adapters/index.js +1 -0
  170. package/dist/esm/onchain/market/credit/CreditFacadeV310BaseContract.js +1 -1
  171. package/dist/esm/onchain/market/credit/CreditSuite.js +47 -15
  172. package/dist/esm/onchain/market/index.js +3 -5
  173. package/dist/esm/onchain/market/oracle/PriceOracleBaseContract.js +1 -1
  174. package/dist/esm/onchain/market/oracle/index.js +1 -2
  175. package/dist/esm/onchain/market/pool/PoolQuotaKeeperV310Contract.js +8 -0
  176. package/dist/esm/onchain/market/pool/PoolV310Contract.js +1 -1
  177. package/dist/esm/onchain/market/rwa/RWARegistry.js +2 -1
  178. package/dist/esm/onchain/market/rwa/index.js +3 -4
  179. package/dist/esm/onchain/market/rwa/securitize/SecuritizeRWAFactory.js +2 -2
  180. package/dist/esm/onchain/market/rwa/securitize/constants.js +1 -2
  181. package/dist/esm/onchain/market/rwa/securitize/index.js +3 -3
  182. package/dist/esm/onchain/market/rwa/securitize/types.js +1 -29
  183. package/dist/esm/onchain/market/rwa/types.js +1 -7
  184. package/dist/esm/onchain/market/zapper/IETHZapperContract.js +1 -1
  185. package/dist/esm/onchain/market/zapper/ZapperContract.js +1 -1
  186. package/dist/esm/onchain/market/zapper/index.js +0 -1
  187. package/dist/esm/onchain/pools/PoolService.js +10 -16
  188. package/dist/esm/onchain/preview/index.js +20 -0
  189. package/dist/esm/{preview → onchain/preview}/parse/classifyInnerOperations.js +2 -3
  190. package/dist/esm/{preview → onchain/preview}/parse/index.js +0 -1
  191. package/dist/esm/{preview → onchain/preview}/parse/parseFacadeOperationCalldata.js +1 -1
  192. package/dist/esm/{preview → onchain/preview}/parse/parseOperationCalldata.js +10 -11
  193. package/dist/esm/{preview → onchain/preview}/parse/parsePoolOperationCalldata.js +3 -3
  194. package/dist/esm/{preview → onchain/preview}/parse/parseRWAFactoryOperationCalldata.js +8 -9
  195. package/dist/esm/{preview → onchain/preview}/parse/types.js +1 -1
  196. package/dist/esm/{preview → onchain/preview}/preview/CreditAccountState.js +3 -4
  197. package/dist/esm/{preview → onchain/preview}/preview/buildDelayedStrategyPositionOperationPreview.js +10 -11
  198. package/dist/esm/{preview → onchain/preview}/preview/detectCloseOrRepay.js +2 -3
  199. package/dist/esm/{preview → onchain/preview}/preview/detectDelayedClaim.js +4 -5
  200. package/dist/esm/{preview → onchain/preview}/preview/detectDelayedOperation.js +5 -6
  201. package/dist/esm/{preview → onchain/preview}/preview/estimateClaimableAt.js +1 -1
  202. package/dist/esm/{preview → onchain/preview}/preview/index.js +3 -4
  203. package/dist/esm/{preview → onchain/preview}/preview/previewAdjustStrategyPosition.js +17 -21
  204. package/dist/esm/{preview → onchain/preview}/preview/previewExitOrRepayStrategyPosition.js +20 -26
  205. package/dist/esm/{preview → onchain/preview}/preview/previewOpenStrategyPosition.js +25 -15
  206. package/dist/esm/{preview → onchain/preview}/preview/previewOperation.js +54 -35
  207. package/dist/esm/{preview/simulate/simulatePoolOperation.js → onchain/preview/preview/previewPoolPositionOperation.js} +46 -30
  208. package/dist/esm/onchain/preview/preview/replayInnerOperations.js +107 -0
  209. package/dist/esm/onchain/preview/preview/replayMulticall.js +21 -0
  210. package/dist/esm/{preview → onchain/preview}/preview/unwrapNativeCollateral.js +11 -14
  211. package/dist/esm/onchain/utils/viem/simulateWithPriceUpdates.js +1 -1
  212. package/dist/esm/onchain/validation/bundles/checkAccountQuotas.js +19 -0
  213. package/dist/esm/onchain/validation/bundles/checkCollateralFunding.js +58 -0
  214. package/dist/esm/onchain/validation/bundles/checkCreditOperation.js +64 -0
  215. package/dist/esm/onchain/validation/bundles/checkDraw.js +27 -0
  216. package/dist/esm/onchain/validation/bundles/checkHealthFactors.js +26 -0
  217. package/dist/esm/onchain/validation/bundles/checkLiquidationEligibility.js +32 -0
  218. package/dist/esm/onchain/validation/bundles/checkLiquidationFunding.js +28 -0
  219. package/dist/esm/onchain/validation/bundles/checkMarket.js +23 -0
  220. package/dist/esm/onchain/validation/bundles/checkObtained.js +12 -0
  221. package/dist/esm/onchain/validation/bundles/checkPoolFunding.js +21 -0
  222. package/dist/esm/onchain/validation/bundles/checkPoolOperation.js +34 -0
  223. package/dist/esm/onchain/validation/bundles/checkQuotasAsked.js +19 -0
  224. package/dist/esm/onchain/validation/bundles/checkRWAOpenRequirements.js +32 -0
  225. package/dist/esm/onchain/validation/bundles/checkRWAOpening.js +23 -0
  226. package/dist/esm/onchain/validation/bundles/checkWallet.js +21 -0
  227. package/dist/esm/onchain/validation/bundles/checkWalletAllowance.js +31 -0
  228. package/dist/esm/onchain/validation/bundles/checkWalletBalance.js +40 -0
  229. package/dist/esm/onchain/validation/bundles/index.js +18 -0
  230. package/dist/esm/onchain/validation/checkLiquidation.js +21 -0
  231. package/dist/esm/onchain/validation/checkOperation.js +61 -0
  232. package/dist/esm/onchain/validation/checkSimulation.js +59 -0
  233. package/dist/esm/onchain/validation/checks/checkBorrowLimit.js +24 -0
  234. package/dist/esm/onchain/validation/checks/checkCollateralised.js +25 -0
  235. package/dist/esm/onchain/validation/checks/checkCreditAccountFrozen.js +9 -0
  236. package/dist/esm/onchain/validation/checks/checkCreditManagerPaused.js +9 -0
  237. package/dist/esm/onchain/validation/checks/checkDebtLimits.js +17 -0
  238. package/dist/esm/onchain/validation/checks/checkEmergencyLiquidator.js +12 -0
  239. package/dist/esm/onchain/validation/checks/checkForbiddenToken.js +9 -0
  240. package/dist/esm/onchain/validation/checks/checkLeverage.js +12 -0
  241. package/dist/esm/onchain/validation/checks/checkLiquidatorEligible.js +9 -0
  242. package/dist/esm/onchain/validation/checks/checkMarketExpired.js +9 -0
  243. package/dist/esm/onchain/validation/checks/checkPoolLiquidity.js +24 -0
  244. package/dist/esm/onchain/validation/checks/checkPoolPaused.js +9 -0
  245. package/dist/esm/onchain/validation/checks/checkPoolSunset.js +9 -0
  246. package/dist/esm/onchain/validation/checks/checkQuotaCount.js +9 -0
  247. package/dist/esm/onchain/validation/checks/checkQuotaLimit.js +17 -0
  248. package/dist/esm/onchain/validation/checks/index.js +16 -0
  249. package/dist/esm/onchain/validation/helpers/amount.js +11 -0
  250. package/dist/esm/onchain/validation/helpers/health-factor-limits.js +21 -0
  251. package/dist/esm/onchain/validation/helpers/index.js +4 -0
  252. package/dist/esm/onchain/validation/{token.js → helpers/token.js} +3 -3
  253. package/dist/esm/onchain/validation/index.js +43 -4
  254. package/dist/esm/onchain/validation/raise.js +31 -0
  255. package/dist/esm/sdk/index.js +2 -3
  256. package/dist/esm/sdk/liquidations/LiquidationsNamespace.js +9 -0
  257. package/dist/esm/sdk/prepare/PrepareApi.js +25 -35
  258. package/dist/esm/sdk/prepare/index.js +3 -3
  259. package/dist/esm/sdk/prepare/types.js +1 -2
  260. package/dist/esm/sdk/preview/PreviewNamespace.js +24 -13
  261. package/dist/types/history/assembleOperations.d.ts +4 -5
  262. package/dist/types/history/classifyMulticallOperations.d.ts +3 -4
  263. package/dist/types/history/index.d.ts +8 -2
  264. package/dist/types/history/mapOperations.d.ts +1 -1
  265. package/dist/types/{preview → history}/trace/errors.d.ts +1 -1
  266. package/dist/types/{preview → history}/trace/extractAdapterCallTraces.d.ts +1 -1
  267. package/dist/types/{preview → history}/trace/extractTransfers.d.ts +2 -3
  268. package/dist/types/{preview → history}/trace/findFacadeCalls.d.ts +1 -1
  269. package/dist/types/{preview → history}/trace/types.d.ts +1 -1
  270. package/dist/types/history/types.d.ts +2 -3
  271. package/dist/types/model/errors/base.d.ts +28 -0
  272. package/dist/types/model/errors/index.d.ts +7 -0
  273. package/dist/types/model/errors/liquidation-errors.d.ts +45 -0
  274. package/dist/types/model/errors/operation-errors.d.ts +216 -0
  275. package/dist/types/{onchain/market/oracle/errors.d.ts → model/errors/oracle-errors.d.ts} +3 -5
  276. package/dist/types/model/errors/prepare-errors.d.ts +131 -0
  277. package/dist/types/model/errors/preview-errors.d.ts +72 -0
  278. package/dist/types/model/index.d.ts +11 -4
  279. package/dist/types/model/opportunities.d.ts +3 -2
  280. package/dist/types/model/positions.d.ts +2 -2
  281. package/dist/types/model/previews.d.ts +52 -113
  282. package/dist/types/model/result.d.ts +4 -8
  283. package/dist/types/model/rwa.d.ts +143 -0
  284. package/dist/types/onchain/accounts/CreditAccountsServiceV310.d.ts +3 -1
  285. package/dist/types/onchain/accounts/index.d.ts +2 -4
  286. package/dist/types/onchain/accounts/intents/guards.d.ts +8 -18
  287. package/dist/types/onchain/accounts/intents/index.d.ts +20 -19
  288. package/dist/types/onchain/accounts/intents/leverage-band.d.ts +1 -1
  289. package/dist/types/onchain/accounts/intents/math.d.ts +6 -6
  290. package/dist/types/onchain/accounts/intents/operations.d.ts +2 -2
  291. package/dist/types/onchain/accounts/intents/plan.d.ts +9 -9
  292. package/dist/types/onchain/accounts/intents/tail.d.ts +2 -2
  293. package/dist/types/onchain/accounts/intents/testing/expect.d.ts +3 -3
  294. package/dist/types/onchain/accounts/intents/tests/finish-withdraw.fixtures.d.ts +6 -6
  295. package/dist/types/onchain/accounts/intents/tests/withdraw.fixtures.d.ts +12 -12
  296. package/dist/types/onchain/accounts/intents/types.d.ts +32 -30
  297. package/dist/types/onchain/accounts/types.d.ts +2 -1
  298. package/dist/types/onchain/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.d.ts +1 -1
  299. package/dist/types/onchain/accounts/withdrawal-compressor/index.d.ts +1 -2
  300. package/dist/types/onchain/accounts/withdrawal-compressor/types.d.ts +1 -1
  301. package/dist/types/onchain/index.d.ts +68 -13
  302. package/dist/types/onchain/market/MarketSuite.d.ts +5 -1
  303. package/dist/types/onchain/market/adapters/index.d.ts +2 -1
  304. package/dist/types/onchain/market/adapters/transfers.d.ts +0 -7
  305. package/dist/types/onchain/market/credit/CreditSuite.d.ts +20 -8
  306. package/dist/types/onchain/market/credit/index.d.ts +2 -2
  307. package/dist/types/onchain/market/credit/types.d.ts +11 -1
  308. package/dist/types/onchain/market/index.d.ts +6 -7
  309. package/dist/types/onchain/market/oracle/PriceOracleBaseContract.d.ts +1 -1
  310. package/dist/types/onchain/market/oracle/index.d.ts +1 -2
  311. package/dist/types/onchain/market/oracle/types.d.ts +1 -1
  312. package/dist/types/onchain/market/pool/PoolQuotaKeeperV310Contract.d.ts +5 -0
  313. package/dist/types/onchain/market/rwa/index.d.ts +4 -4
  314. package/dist/types/onchain/market/rwa/securitize/SecuritizeRWAFactory.d.ts +3 -2
  315. package/dist/types/onchain/market/rwa/securitize/constants.d.ts +1 -2
  316. package/dist/types/onchain/market/rwa/securitize/index.d.ts +3 -3
  317. package/dist/types/onchain/market/rwa/securitize/types.d.ts +4 -110
  318. package/dist/types/onchain/market/rwa/types.d.ts +6 -32
  319. package/dist/types/onchain/market/zapper/ZapperContract.d.ts +1 -1
  320. package/dist/types/onchain/market/zapper/index.d.ts +1 -2
  321. package/dist/types/onchain/market/zapper/types.d.ts +1 -1
  322. package/dist/types/onchain/pools/types.d.ts +2 -2
  323. package/dist/types/onchain/preview/index.d.ts +24 -0
  324. package/dist/types/{preview → onchain/preview}/parse/classifyInnerOperations.d.ts +4 -4
  325. package/dist/types/{preview → onchain/preview}/parse/index.d.ts +2 -4
  326. package/dist/types/{preview → onchain/preview}/parse/parseFacadeOperationCalldata.d.ts +4 -4
  327. package/dist/types/onchain/preview/parse/parseOperationCalldata.d.ts +18 -0
  328. package/dist/types/{preview → onchain/preview}/parse/parsePoolOperationCalldata.d.ts +7 -7
  329. package/dist/types/{preview → onchain/preview}/parse/parseRWAFactoryOperationCalldata.d.ts +4 -4
  330. package/dist/types/{preview → onchain/preview}/parse/types-adapters.d.ts +5 -16
  331. package/dist/types/{preview → onchain/preview}/parse/types-facades.d.ts +3 -3
  332. package/dist/types/{preview → onchain/preview}/parse/types-pools.d.ts +1 -1
  333. package/dist/types/{preview → onchain/preview}/parse/types-rwa.d.ts +3 -3
  334. package/dist/types/{preview → onchain/preview}/parse/types.d.ts +3 -3
  335. package/dist/types/{preview → onchain/preview}/preview/CreditAccountState.d.ts +5 -5
  336. package/dist/types/{preview → onchain/preview}/preview/buildDelayedStrategyPositionOperationPreview.d.ts +5 -5
  337. package/dist/types/{preview → onchain/preview}/preview/detectCloseOrRepay.d.ts +1 -1
  338. package/dist/types/{preview → onchain/preview}/preview/detectDelayedClaim.d.ts +8 -8
  339. package/dist/types/{preview → onchain/preview}/preview/detectDelayedOperation.d.ts +9 -9
  340. package/dist/types/{preview → onchain/preview}/preview/estimateClaimableAt.d.ts +6 -6
  341. package/dist/types/{preview → onchain/preview}/preview/index.d.ts +3 -4
  342. package/dist/types/onchain/preview/preview/previewAdjustStrategyPosition.d.ts +20 -0
  343. package/dist/types/onchain/preview/preview/previewExitOrRepayStrategyPosition.d.ts +21 -0
  344. package/dist/types/onchain/preview/preview/previewOpenStrategyPosition.d.ts +14 -0
  345. package/dist/types/onchain/preview/preview/previewOperation.d.ts +32 -0
  346. package/dist/types/onchain/preview/preview/previewPoolPositionOperation.d.ts +13 -0
  347. package/dist/types/{preview → onchain/preview}/preview/replayInnerOperations.d.ts +11 -11
  348. package/dist/types/{preview → onchain/preview}/preview/replayMulticall.d.ts +10 -10
  349. package/dist/types/{preview → onchain/preview}/preview/unwrapNativeCollateral.d.ts +10 -20
  350. package/dist/types/onchain/validation/bundles/checkAccountQuotas.d.ts +16 -0
  351. package/dist/types/onchain/validation/bundles/checkCollateralFunding.d.ts +22 -0
  352. package/dist/types/onchain/validation/bundles/checkCreditOperation.d.ts +31 -0
  353. package/dist/types/onchain/validation/bundles/checkDraw.d.ts +20 -0
  354. package/dist/types/onchain/validation/bundles/checkHealthFactors.d.ts +39 -0
  355. package/dist/types/onchain/validation/bundles/checkLiquidationEligibility.d.ts +20 -0
  356. package/dist/types/onchain/validation/bundles/checkLiquidationFunding.d.ts +18 -0
  357. package/dist/types/onchain/validation/bundles/checkMarket.d.ts +15 -0
  358. package/dist/types/onchain/validation/bundles/checkObtained.d.ts +9 -0
  359. package/dist/types/onchain/validation/bundles/checkPoolFunding.d.ts +19 -0
  360. package/dist/types/onchain/validation/bundles/checkPoolOperation.d.ts +31 -0
  361. package/dist/types/onchain/validation/bundles/checkQuotasAsked.d.ts +10 -0
  362. package/dist/types/onchain/validation/bundles/checkRWAOpenRequirements.d.ts +21 -0
  363. package/dist/types/onchain/validation/bundles/checkRWAOpening.d.ts +19 -0
  364. package/dist/types/onchain/validation/bundles/checkWallet.d.ts +23 -0
  365. package/dist/types/onchain/validation/bundles/checkWalletAllowance.d.ts +18 -0
  366. package/dist/types/onchain/validation/bundles/checkWalletBalance.d.ts +17 -0
  367. package/dist/types/onchain/validation/bundles/index.d.ts +18 -0
  368. package/dist/types/onchain/validation/checkLiquidation.d.ts +23 -0
  369. package/dist/types/onchain/validation/checkOperation.d.ts +32 -0
  370. package/dist/types/onchain/validation/checkSimulation.d.ts +56 -0
  371. package/dist/types/onchain/validation/checks/checkBorrowLimit.d.ts +21 -0
  372. package/dist/types/onchain/validation/checks/checkCollateralised.d.ts +25 -0
  373. package/dist/types/onchain/validation/checks/checkCreditAccountFrozen.d.ts +12 -0
  374. package/dist/types/onchain/validation/checks/checkCreditManagerPaused.d.ts +12 -0
  375. package/dist/types/onchain/validation/checks/checkDebtLimits.d.ts +21 -0
  376. package/dist/types/onchain/validation/checks/checkEmergencyLiquidator.d.ts +17 -0
  377. package/dist/types/onchain/validation/checks/checkForbiddenToken.d.ts +12 -0
  378. package/dist/types/onchain/validation/checks/checkLeverage.d.ts +12 -0
  379. package/dist/types/onchain/validation/checks/checkLiquidatorEligible.d.ts +13 -0
  380. package/dist/types/onchain/validation/checks/checkMarketExpired.d.ts +14 -0
  381. package/dist/types/onchain/validation/checks/checkPoolLiquidity.d.ts +20 -0
  382. package/dist/types/onchain/validation/checks/checkPoolPaused.d.ts +12 -0
  383. package/dist/types/onchain/validation/checks/checkPoolSunset.d.ts +13 -0
  384. package/dist/types/onchain/validation/checks/checkQuotaCount.d.ts +11 -0
  385. package/dist/types/onchain/validation/checks/checkQuotaLimit.d.ts +18 -0
  386. package/dist/types/onchain/validation/checks/index.d.ts +16 -0
  387. package/dist/types/onchain/validation/helpers/amount.d.ts +7 -0
  388. package/dist/types/onchain/validation/helpers/health-factor-limits.d.ts +21 -0
  389. package/dist/types/onchain/validation/helpers/index.d.ts +4 -0
  390. package/dist/types/onchain/validation/{token.d.ts → helpers/token.d.ts} +4 -4
  391. package/dist/types/onchain/validation/index.d.ts +43 -4
  392. package/dist/types/onchain/validation/raise.d.ts +33 -0
  393. package/dist/types/sdk/execute/types.d.ts +2 -2
  394. package/dist/types/sdk/index.d.ts +5 -6
  395. package/dist/types/sdk/liquidations/LiquidationsNamespace.d.ts +5 -0
  396. package/dist/types/sdk/liquidations/types.d.ts +8 -0
  397. package/dist/types/sdk/prepare/PrepareApi.d.ts +5 -4
  398. package/dist/types/sdk/prepare/index.d.ts +5 -5
  399. package/dist/types/sdk/prepare/types.d.ts +41 -22
  400. package/dist/types/sdk/preview/PreviewNamespace.d.ts +13 -3
  401. package/dist/types/sdk/preview/index.d.ts +2 -2
  402. package/dist/types/sdk/preview/types.d.ts +30 -7
  403. package/package.json +1 -6
  404. package/dist/cjs/onchain/accounts/withdrawal-compressor/errors.js +0 -1
  405. package/dist/cjs/onchain/market/zapper/errors.js +0 -1
  406. package/dist/cjs/onchain/validation/checks.js +0 -258
  407. package/dist/cjs/onchain/validation/refusal.js +0 -39
  408. package/dist/cjs/preview/index.js +0 -86
  409. package/dist/cjs/preview/package.json +0 -1
  410. package/dist/cjs/preview/parse/errors.js +0 -1
  411. package/dist/cjs/preview/parse/index.js +0 -15
  412. package/dist/cjs/preview/prerequisites/AllowancePrerequisite.js +0 -38
  413. package/dist/cjs/preview/prerequisites/BalancePrerequisite.js +0 -52
  414. package/dist/cjs/preview/prerequisites/Prerequisite.js +0 -52
  415. package/dist/cjs/preview/prerequisites/RWAOpenRequirementsPrerequisite.js +0 -53
  416. package/dist/cjs/preview/prerequisites/buildCollateralPrerequisites.js +0 -63
  417. package/dist/cjs/preview/prerequisites/buildPartialLiquidationPrerequisites.js +0 -19
  418. package/dist/cjs/preview/prerequisites/buildPoolPrerequisites.js +0 -76
  419. package/dist/cjs/preview/prerequisites/buildRWAPrerequisites.js +0 -39
  420. package/dist/cjs/preview/prerequisites/checkPrerequisites.js +0 -74
  421. package/dist/cjs/preview/prerequisites/helpers.js +0 -23
  422. package/dist/cjs/preview/prerequisites/index.js +0 -12
  423. package/dist/cjs/preview/preview/errors.js +0 -85
  424. package/dist/cjs/preview/preview/index.js +0 -33
  425. package/dist/cjs/preview/preview/previewOpenStrategyPosition.js +0 -50
  426. package/dist/cjs/preview/preview/previewOperation.js +0 -100
  427. package/dist/cjs/preview/preview/previewPoolPositionOperation.js +0 -49
  428. package/dist/cjs/preview/preview/replayInnerOperations.js +0 -109
  429. package/dist/cjs/preview/preview/replayMulticall.js +0 -19
  430. package/dist/cjs/preview/simulate/errors.js +0 -73
  431. package/dist/cjs/preview/simulate/index.js +0 -11
  432. package/dist/cjs/preview/simulate/simulateFacadeOperation.js +0 -15
  433. package/dist/cjs/preview/simulate/simulateOperation.js +0 -29
  434. package/dist/cjs/preview/simulate/simulateRWAOperation.js +0 -15
  435. package/dist/cjs/preview/simulate/types.js +0 -1
  436. package/dist/cjs/preview/trace/index.js +0 -14
  437. package/dist/cjs/preview/trace/types.js +0 -1
  438. package/dist/cjs/preview/types.js +0 -1
  439. package/dist/cjs/preview/validate/checkOperation.js +0 -187
  440. package/dist/cjs/preview/validate/checkSimulation.js +0 -39
  441. package/dist/cjs/preview/validate/index.js +0 -8
  442. package/dist/cjs/sdk/prepare/errors.js +0 -114
  443. package/dist/esm/onchain/accounts/withdrawal-compressor/errors.js +0 -1
  444. package/dist/esm/onchain/market/zapper/errors.js +0 -1
  445. package/dist/esm/onchain/validation/checks.js +0 -238
  446. package/dist/esm/onchain/validation/refusal.js +0 -36
  447. package/dist/esm/preview/index.js +0 -38
  448. package/dist/esm/preview/package.json +0 -1
  449. package/dist/esm/preview/parse/errors.js +0 -1
  450. package/dist/esm/preview/prerequisites/AllowancePrerequisite.js +0 -37
  451. package/dist/esm/preview/prerequisites/BalancePrerequisite.js +0 -51
  452. package/dist/esm/preview/prerequisites/Prerequisite.js +0 -51
  453. package/dist/esm/preview/prerequisites/RWAOpenRequirementsPrerequisite.js +0 -52
  454. package/dist/esm/preview/prerequisites/buildCollateralPrerequisites.js +0 -62
  455. package/dist/esm/preview/prerequisites/buildPartialLiquidationPrerequisites.js +0 -18
  456. package/dist/esm/preview/prerequisites/buildPoolPrerequisites.js +0 -75
  457. package/dist/esm/preview/prerequisites/buildRWAPrerequisites.js +0 -38
  458. package/dist/esm/preview/prerequisites/checkPrerequisites.js +0 -73
  459. package/dist/esm/preview/prerequisites/helpers.js +0 -22
  460. package/dist/esm/preview/prerequisites/index.js +0 -7
  461. package/dist/esm/preview/preview/errors.js +0 -79
  462. package/dist/esm/preview/preview/previewPoolPositionOperation.js +0 -48
  463. package/dist/esm/preview/preview/replayInnerOperations.js +0 -107
  464. package/dist/esm/preview/preview/replayMulticall.js +0 -18
  465. package/dist/esm/preview/simulate/errors.js +0 -71
  466. package/dist/esm/preview/simulate/index.js +0 -6
  467. package/dist/esm/preview/simulate/simulateFacadeOperation.js +0 -14
  468. package/dist/esm/preview/simulate/simulateOperation.js +0 -28
  469. package/dist/esm/preview/simulate/simulateRWAOperation.js +0 -14
  470. package/dist/esm/preview/simulate/types.js +0 -1
  471. package/dist/esm/preview/trace/types.js +0 -1
  472. package/dist/esm/preview/types.js +0 -1
  473. package/dist/esm/preview/validate/checkOperation.js +0 -183
  474. package/dist/esm/preview/validate/checkSimulation.js +0 -38
  475. package/dist/esm/preview/validate/index.js +0 -3
  476. package/dist/esm/sdk/prepare/errors.js +0 -108
  477. package/dist/types/model/errors.d.ts +0 -46
  478. package/dist/types/onchain/accounts/withdrawal-compressor/errors.d.ts +0 -20
  479. package/dist/types/onchain/market/zapper/errors.d.ts +0 -18
  480. package/dist/types/onchain/validation/checks.d.ts +0 -164
  481. package/dist/types/onchain/validation/refusal.d.ts +0 -242
  482. package/dist/types/preview/index.d.ts +0 -47
  483. package/dist/types/preview/parse/errors.d.ts +0 -29
  484. package/dist/types/preview/parse/parseOperationCalldata.d.ts +0 -18
  485. package/dist/types/preview/prerequisites/AllowancePrerequisite.d.ts +0 -26
  486. package/dist/types/preview/prerequisites/BalancePrerequisite.d.ts +0 -29
  487. package/dist/types/preview/prerequisites/Prerequisite.d.ts +0 -26
  488. package/dist/types/preview/prerequisites/RWAOpenRequirementsPrerequisite.d.ts +0 -55
  489. package/dist/types/preview/prerequisites/buildCollateralPrerequisites.d.ts +0 -20
  490. package/dist/types/preview/prerequisites/buildPartialLiquidationPrerequisites.d.ts +0 -12
  491. package/dist/types/preview/prerequisites/buildPoolPrerequisites.d.ts +0 -12
  492. package/dist/types/preview/prerequisites/buildRWAPrerequisites.d.ts +0 -26
  493. package/dist/types/preview/prerequisites/checkPrerequisites.d.ts +0 -28
  494. package/dist/types/preview/prerequisites/helpers.d.ts +0 -10
  495. package/dist/types/preview/prerequisites/index.d.ts +0 -7
  496. package/dist/types/preview/prerequisites/types.d.ts +0 -53
  497. package/dist/types/preview/preview/errors.d.ts +0 -44
  498. package/dist/types/preview/preview/previewAdjustStrategyPosition.d.ts +0 -19
  499. package/dist/types/preview/preview/previewExitOrRepayStrategyPosition.d.ts +0 -18
  500. package/dist/types/preview/preview/previewOpenStrategyPosition.d.ts +0 -12
  501. package/dist/types/preview/preview/previewOperation.d.ts +0 -32
  502. package/dist/types/preview/preview/previewPoolPositionOperation.d.ts +0 -13
  503. package/dist/types/preview/simulate/errors.d.ts +0 -52
  504. package/dist/types/preview/simulate/index.d.ts +0 -7
  505. package/dist/types/preview/simulate/simulateFacadeOperation.d.ts +0 -16
  506. package/dist/types/preview/simulate/simulateOperation.d.ts +0 -12
  507. package/dist/types/preview/simulate/simulatePoolOperation.d.ts +0 -42
  508. package/dist/types/preview/simulate/simulateRWAOperation.d.ts +0 -16
  509. package/dist/types/preview/simulate/types.d.ts +0 -48
  510. package/dist/types/preview/types.d.ts +0 -65
  511. package/dist/types/preview/validate/checkOperation.d.ts +0 -71
  512. package/dist/types/preview/validate/checkSimulation.d.ts +0 -32
  513. package/dist/types/preview/validate/index.d.ts +0 -3
  514. package/dist/types/sdk/prepare/errors.d.ts +0 -343
  515. /package/dist/cjs/{preview/prerequisites → history/trace}/types.js +0 -0
  516. /package/dist/cjs/model/{errors.js → errors/base.js} +0 -0
  517. /package/dist/cjs/{preview → onchain/preview}/parse/types-adapters.js +0 -0
  518. /package/dist/cjs/{preview → onchain/preview}/parse/types-facades.js +0 -0
  519. /package/dist/cjs/{preview → onchain/preview}/parse/types-pools.js +0 -0
  520. /package/dist/cjs/{preview → onchain/preview}/parse/types-rwa.js +0 -0
  521. /package/dist/esm/{preview → history}/trace/index.js +0 -0
  522. /package/dist/esm/{preview/prerequisites → history/trace}/types.js +0 -0
  523. /package/dist/esm/model/{errors.js → errors/base.js} +0 -0
  524. /package/dist/esm/{preview → onchain/preview}/parse/types-adapters.js +0 -0
  525. /package/dist/esm/{preview → onchain/preview}/parse/types-facades.js +0 -0
  526. /package/dist/esm/{preview → onchain/preview}/parse/types-pools.js +0 -0
  527. /package/dist/esm/{preview → onchain/preview}/parse/types-rwa.js +0 -0
  528. /package/dist/types/{preview → history}/trace/index.d.ts +0 -0
@@ -1,38 +0,0 @@
1
- import { AddressSet } from "../../onchain/utils/AddressSet.js";
2
- import "../../onchain/index.js";
3
- import { RWAOpenRequirementsPrerequisite } from "./RWAOpenRequirementsPrerequisite.js";
4
- //#region src/preview/prerequisites/buildRWAPrerequisites.ts
5
- /**
6
- * For RWA-factory open-account operations (e.g. `RWAOpenCreditAccount`),
7
- * builds a prerequisite per RWA token the multicall touches; each one checks
8
- * the factory's open-account requirements (issuer-side token registration,
9
- * EIP-712 signatures) at verify time.
10
- *
11
- * The `providedArgs` params are the registration values decoded from the
12
- * transaction calldata itself: signatures already included there satisfy the
13
- * signature requirement, so a fully built transaction is not reported as
14
- * missing signatures. In the template flow they are empty and the verified
15
- * result's `detail.missing` describes what is still unfulfilled; acting on it
16
- * (signing, rebuilding calldata) is up to the consumer.
17
- *
18
- * Returns nothing for non-RWA markets.
19
- */
20
- function buildRWAPrerequisites(multicall, creditManager, providedArgs, ctx) {
21
- const { rwaFactory } = ctx.sdk.marketRegister.findByCreditManager(creditManager);
22
- if (!rwaFactory) return [];
23
- const rwaTokens = new AddressSet(rwaFactory.getTokens());
24
- const candidates = new AddressSet();
25
- for (const op of multicall) if (op.operation === "AddCollateral" || op.operation === "UpdateQuota") candidates.add(op.token);
26
- const prereqs = [];
27
- for (const token of candidates) {
28
- if (!rwaTokens.has(token)) continue;
29
- prereqs.push(new RWAOpenRequirementsPrerequisite({
30
- token,
31
- creditManager,
32
- factory: rwaFactory.address
33
- }, providedArgs));
34
- }
35
- return prereqs;
36
- }
37
- //#endregion
38
- export { buildRWAPrerequisites };
@@ -1,73 +0,0 @@
1
- import { isSDKError, sdkOk } from "../../model/result.js";
2
- import "../../model/index.js";
3
- import { parseOperationCalldata } from "../parse/parseOperationCalldata.js";
4
- import "../parse/index.js";
5
- import { buildCollateralPrerequisites } from "./buildCollateralPrerequisites.js";
6
- import { buildPartialLiquidationPrerequisites } from "./buildPartialLiquidationPrerequisites.js";
7
- import { buildPoolPrerequisites } from "./buildPoolPrerequisites.js";
8
- import { buildRWAPrerequisites } from "./buildRWAPrerequisites.js";
9
- //#region src/preview/prerequisites/checkPrerequisites.ts
10
- /**
11
- * Derives and verifies the on-chain prerequisites for an operation given its
12
- * raw calldata: the conditions that must hold for the call not to revert and
13
- * that we can verify with the SDK (token approvals, wallet balances, RWA
14
- * open-account requirements).
15
- *
16
- * Each prerequisite performs its own reads and resolves into a
17
- * {@link PrerequisiteResult} (`satisfied` or `error`).
18
- *
19
- * Only *sender-actionable* prerequisites belong here: conditions the LP
20
- * provider or borrower can fix themselves before retrying (e.g. approve a
21
- * token, sign the RWA factory's messages). Non-actionable protocol/admin state
22
- * (e.g. pool is paused) is intentionally out of scope, since the user cannot
23
- * resolve it.
24
- */
25
- async function checkPrerequisites(input, options) {
26
- const { sdk, sender: wallet } = input;
27
- const tx = parseOperationCalldata(input);
28
- if (isSDKError(tx)) return tx;
29
- const ctx = {
30
- sdk,
31
- wallet,
32
- blockNumber: options?.blockNumber,
33
- value: input.value ?? 0n
34
- };
35
- const prereqs = await buildPrerequisites(tx.data, ctx);
36
- return sdkOk(await Promise.all(prereqs.map((p) => p.verify(ctx))));
37
- }
38
- /**
39
- * Dispatches a parsed operation to the per-operation-family prerequisite
40
- * builders.
41
- */
42
- async function buildPrerequisites(tx, ctx) {
43
- const { wallet } = ctx;
44
- switch (tx.operation) {
45
- case "Deposit":
46
- case "Mint":
47
- case "Redeem":
48
- case "Withdraw": return buildPoolPrerequisites(tx, wallet);
49
- case "MultiCall":
50
- case "BotMulticall":
51
- case "OpenCreditAccount":
52
- case "CloseCreditAccount":
53
- case "LiquidateCreditAccount": return buildCollateralPrerequisites(tx.operation === "OpenCreditAccount" ? {
54
- creditManager: tx.creditManager,
55
- borrower: wallet
56
- } : {
57
- creditManager: tx.creditManager,
58
- creditAccount: tx.creditAccount
59
- }, tx.multicall, ctx);
60
- case "RWAOpenCreditAccount": return [...await buildCollateralPrerequisites({
61
- creditManager: tx.creditManager,
62
- borrower: wallet
63
- }, tx.multicall, ctx), ...buildRWAPrerequisites(tx.multicall, tx.creditManager, tx.args, ctx)];
64
- case "RWAMulticall": return buildCollateralPrerequisites({
65
- creditManager: tx.creditManager,
66
- creditAccount: tx.creditAccount
67
- }, tx.multicall, ctx);
68
- case "PartiallyLiquidateCreditAccount": return buildPartialLiquidationPrerequisites(tx, ctx);
69
- default: return [];
70
- }
71
- }
72
- //#endregion
73
- export { checkPrerequisites };
@@ -1,22 +0,0 @@
1
- import { AllowancePrerequisite } from "./AllowancePrerequisite.js";
2
- import { BalancePrerequisite } from "./BalancePrerequisite.js";
3
- //#region src/preview/prerequisites/helpers.ts
4
- /**
5
- * The most common prerequisite pair: `owner` must have approved `spender` for
6
- * `required` of `token` and must hold at least that much of it.
7
- */
8
- function allowanceAndBalance(props) {
9
- const { token, owner, spender, required } = props;
10
- return [new AllowancePrerequisite({
11
- token,
12
- owner,
13
- spender,
14
- required
15
- }), new BalancePrerequisite({
16
- token,
17
- owner,
18
- required
19
- })];
20
- }
21
- //#endregion
22
- export { allowanceAndBalance };
@@ -1,7 +0,0 @@
1
- import { Prerequisite } from "./Prerequisite.js";
2
- import { AllowancePrerequisite } from "./AllowancePrerequisite.js";
3
- import { BalancePrerequisite } from "./BalancePrerequisite.js";
4
- import { RWAOpenRequirementsPrerequisite } from "./RWAOpenRequirementsPrerequisite.js";
5
- import { checkPrerequisites } from "./checkPrerequisites.js";
6
- import "./types.js";
7
- export { AllowancePrerequisite, BalancePrerequisite, Prerequisite, RWAOpenRequirementsPrerequisite, checkPrerequisites };
@@ -1,79 +0,0 @@
1
- //#region src/preview/preview/errors.ts
2
- const MALFORMED_BRACKET_MESSAGE = {
3
- nested: "nested storeExpectedBalances/compareBalances bracket",
4
- unmatchedCompare: "compareBalances without a preceding storeExpectedBalances",
5
- unmatchedStore: "storeExpectedBalances without a matching compareBalances"
6
- };
7
- /**
8
- * Builds a {@link MalformedBracketError} for the given bracket invariant.
9
- **/
10
- function malformedBracketError(kind) {
11
- return {
12
- code: "malformedBracket",
13
- message: MALFORMED_BRACKET_MESSAGE[kind],
14
- kind
15
- };
16
- }
17
- /**
18
- * Builds an {@link AdapterCallOutsideBracketError} for `adapter`.
19
- **/
20
- function adapterCallOutsideBracketError(adapter) {
21
- return {
22
- code: "adapterCallOutsideBracket",
23
- message: `call to ${adapter} outside of a storeExpectedBalances/compareBalances bracket`,
24
- adapter
25
- };
26
- }
27
- /**
28
- * Builds a {@link NonAdapterCallInBracketError} for `target`.
29
- **/
30
- function nonAdapterCallInBracketError(target) {
31
- return {
32
- code: "nonAdapterCallInBracket",
33
- message: `call to ${target} between storeExpectedBalances and compareBalances is not an adapter call`,
34
- target
35
- };
36
- }
37
- function asCause(cause) {
38
- return cause instanceof Error ? cause : new Error(String(cause));
39
- }
40
- /**
41
- * Builds an {@link UnpreviewableAdapterCallError} for a bracketed adapter
42
- * call that could not be replayed.
43
- **/
44
- function unpreviewableAdapterCallError(adapter, cause) {
45
- const err = asCause(cause);
46
- return {
47
- code: "unpreviewableAdapterCall",
48
- message: err.message,
49
- adapter,
50
- cause: err
51
- };
52
- }
53
- /**
54
- * Builds an {@link UnsupportedOutOfBracketCallError} for an allowed
55
- * out-of-bracket adapter call that could not be replayed.
56
- **/
57
- function unsupportedOutOfBracketCallError(adapter, cause) {
58
- const err = asCause(cause);
59
- return {
60
- code: "unsupportedOutOfBracketCall",
61
- message: err.message,
62
- adapter,
63
- cause: err
64
- };
65
- }
66
- /**
67
- * Builds an {@link InvalidTransactionValueError} when `msg.value` does not
68
- * fit into the declared WETH collateral.
69
- **/
70
- function invalidTransactionValueError(value, wethCollateral) {
71
- return {
72
- code: "invalidTransactionValue",
73
- message: `transaction value ${value} exceeds WETH collateral ${wethCollateral}`,
74
- value,
75
- wethCollateral
76
- };
77
- }
78
- //#endregion
79
- export { adapterCallOutsideBracketError, invalidTransactionValueError, malformedBracketError, nonAdapterCallInBracketError, unpreviewableAdapterCallError, unsupportedOutOfBracketCallError };
@@ -1,48 +0,0 @@
1
- import { ierc20Abi } from "../../abi/iERC20.js";
2
- import { sdkErr, sdkOk } from "../../model/result.js";
3
- import "../../model/index.js";
4
- import { asPreviewSimulationError } from "../simulate/errors.js";
5
- import { amountsInOut, previewContract } from "../simulate/simulatePoolOperation.js";
6
- //#region src/preview/preview/previewPoolPositionOperation.ts
7
- async function previewPoolPositionOperation(input, operation, options) {
8
- const { sdk } = input;
9
- const { tokenIn, tokenOut } = operation;
10
- const market = sdk.marketRegister.findByPool(operation.pool);
11
- const pool = market.pool.pool;
12
- const holder = "owner" in operation ? operation.owner : operation.receiver;
13
- let previewAmount;
14
- let shares;
15
- try {
16
- [previewAmount, shares] = await sdk.client.multicall({
17
- contracts: [previewContract(operation), {
18
- address: operation.pool,
19
- abi: ierc20Abi,
20
- functionName: "balanceOf",
21
- args: [holder]
22
- }],
23
- allowFailure: false,
24
- batchSize: 0,
25
- blockNumber: options?.blockNumber
26
- });
27
- } catch (cause) {
28
- const error = asPreviewSimulationError(cause, "multicall");
29
- options?.logger?.error(error, "pool operation simulation failed");
30
- return sdkErr(error);
31
- }
32
- const sim = amountsInOut(operation, previewAmount);
33
- const inflow = operation.operation === "Deposit" || operation.operation === "Mint";
34
- const after = shares + (inflow ? sim.amountOut : -sim.amountIn);
35
- return sdkOk({
36
- operation: operation.operation,
37
- pool: operation.pool,
38
- name: sdk.tokensMeta.mustGetToken(operation.pool).name,
39
- underlyingToken: market.underlyingToken,
40
- shareRate: pool.dieselRate,
41
- tokenIn: market.priceOracle.toTokenAmount(tokenIn, sim.amountIn),
42
- tokenOut: market.priceOracle.toTokenAmount(tokenOut, sim.amountOut),
43
- curator: market.curator,
44
- netValue: market.toUnderlyingAmount(pool.sharesToUnderlying(after > 0n ? after : 0n))
45
- });
46
- }
47
- //#endregion
48
- export { previewPoolPositionOperation };
@@ -1,107 +0,0 @@
1
- import { AssetsMap } from "../../onchain/utils/AssetsMap.js";
2
- import "../../onchain/constants/math.js";
3
- import { AbstractAdapterContract } from "../../onchain/market/adapters/contracts/AbstractAdapter.js";
4
- import "../../onchain/index.js";
5
- import { adapterCallOutsideBracketError, malformedBracketError, nonAdapterCallInBracketError, unpreviewableAdapterCallError, unsupportedOutOfBracketCallError } from "./errors.js";
6
- //#region src/preview/preview/replayInnerOperations.ts
7
- /**
8
- * Creates a {@link ReplayState} around the given account seed, with empty
9
- * bookkeeping.
10
- */
11
- function makeReplayState(account) {
12
- return {
13
- account,
14
- collateralAdded: new AssetsMap(),
15
- collateralWithdrawn: new AssetsMap()
16
- };
17
- }
18
- /**
19
- * Replays a credit-facade multicall over `state`, mutating it in place in
20
- * facade execution order. The result is the *minimal guaranteed* post-state.
21
- *
22
- * The function assumes that the call was generated by our frontend using
23
- * router/withdrawal compressor, otherwise it returns a warning, but still
24
- * proceeds best-effort.
25
- *
26
- * @returns `undefined` on success, the warning on a malformed multicall.
27
- */
28
- function replayInnerOperations(sdk, multicall, state) {
29
- let inBracket = false;
30
- let warning;
31
- for (const op of multicall) {
32
- let opWarning;
33
- switch (op.operation) {
34
- case "AddCollateral":
35
- applyAddCollateral(state, op);
36
- break;
37
- case "WithdrawCollateral":
38
- applyWithdrawCollateral(state, op);
39
- break;
40
- case "IncreaseBorrowedAmount":
41
- state.account.increaseDebt(op.amount);
42
- break;
43
- case "DecreaseBorrowedAmount":
44
- state.account.repay(op.amount);
45
- break;
46
- case "UpdateQuota":
47
- state.account.updateQuota(op.token, op.change);
48
- break;
49
- case "StoreExpectedBalances":
50
- if (inBracket) opWarning = malformedBracketError("nested");
51
- inBracket = true;
52
- for (const { token, balance } of op.deltas) state.account.balances.inc(token, balance);
53
- break;
54
- case "CompareBalances":
55
- if (!inBracket) opWarning = malformedBracketError("unmatchedCompare");
56
- inBracket = false;
57
- break;
58
- case "Execute": opWarning = applyExecute(sdk, op, inBracket, state.account.balances);
59
- }
60
- warning ??= opWarning;
61
- }
62
- if (inBracket) warning ??= malformedBracketError("unmatchedStore");
63
- return warning;
64
- }
65
- function applyAddCollateral(state, op) {
66
- state.collateralAdded.inc(op.token, op.amount);
67
- state.account.balances.inc(op.token, op.amount);
68
- }
69
- /**
70
- * `MAX_UINT256` is the facade sentinel for "withdraw the entire balance", so
71
- * it is resolved against the running balance at the point of the call.
72
- */
73
- function applyWithdrawCollateral(state, op) {
74
- const running = state.account.balances.getOrZero(op.token);
75
- const amount = op.amount === 115792089237316195423570985008687907853269984665640564039457584007913129639935n ? running > 0n ? running : 0n : op.amount;
76
- state.account.balances.dec(op.token, amount);
77
- state.collateralWithdrawn.inc(op.token, amount);
78
- }
79
- /**
80
- * Replays an adapter `Execute` call against the running balances.
81
- *
82
- * Inside a bracket, the adapter's balance changes are previewed via
83
- * {@link AbstractAdapterContract.previewBalanceChanges}. Outside a bracket,
84
- * only calls that {@link AbstractAdapterContract.replayOutOfBracketCall}
85
- * accepts are allowed; nothing enforces the outcome of any other out-of-bracket
86
- * adapter call on-chain, so its effect on balances cannot be previewed.
87
- */
88
- function applyExecute(sdk, op, inBracket, balances) {
89
- const adapter = sdk.getContract(op.adapter);
90
- if (!inBracket) {
91
- if (adapter instanceof AbstractAdapterContract) try {
92
- if (adapter.replayOutOfBracketCall(balances, op.calldata)) return;
93
- } catch (e) {
94
- return unsupportedOutOfBracketCallError(op.adapter, e);
95
- }
96
- return adapterCallOutsideBracketError(op.adapter);
97
- }
98
- if (!(adapter instanceof AbstractAdapterContract)) return nonAdapterCallInBracketError(op.adapter);
99
- try {
100
- adapter.previewBalanceChanges(balances, op.calldata);
101
- return;
102
- } catch (e) {
103
- return unpreviewableAdapterCallError(op.adapter, e);
104
- }
105
- }
106
- //#endregion
107
- export { makeReplayState, replayInnerOperations };
@@ -1,18 +0,0 @@
1
- import { CreditAccountState } from "./CreditAccountState.js";
2
- import { makeReplayState, replayInnerOperations } from "./replayInnerOperations.js";
3
- //#region src/preview/preview/replayMulticall.ts
4
- /**
5
- * Replays the operation's multicall over the account's pre-resolved
6
- * pre-state (`options.creditAccount`) via {@link replayInnerOperations}.
7
- */
8
- function replayMulticall(sdk, operation, options) {
9
- const before = CreditAccountState.fromCreditAccountData(options.creditAccount);
10
- const after = makeReplayState(before.clone());
11
- return {
12
- before,
13
- after,
14
- warning: replayInnerOperations(sdk, operation.multicall, after)
15
- };
16
- }
17
- //#endregion
18
- export { replayMulticall };
@@ -1,71 +0,0 @@
1
- import { errorAbis } from "../../abi/errors.js";
2
- import { BaseError, ContractFunctionRevertedError, decodeErrorResult } from "viem";
3
- //#region src/preview/simulate/errors.ts
4
- function isPreviewSimulationError(value) {
5
- return typeof value === "object" && value !== null && !(value instanceof Error) && value.code === "previewSimulationFailed";
6
- }
7
- /**
8
- * Normalises an unknown rejection reason into a {@link PreviewSimulationError}.
9
- * Pass-through when it already is one; otherwise decodes it under `source`.
10
- */
11
- function asPreviewSimulationError(reason, source) {
12
- if (isPreviewSimulationError(reason)) return reason;
13
- const error = reason instanceof Error ? reason : new Error(String(reason));
14
- const detail = decodeSimulationError({ error });
15
- return {
16
- code: "previewSimulationFailed",
17
- message: detail.reason,
18
- failures: [{
19
- source,
20
- detail
21
- }],
22
- cause: error
23
- };
24
- }
25
- /**
26
- * Decodes a simulated call revert into a {@link SimulationError}.
27
- *
28
- * We first try to decode any raw return bytes against the SDK's
29
- * {@link errorAbis} (Gearbox protocol exceptions plus standard ERC-20 custom
30
- * errors); failing that, we walk viem's error chain for a
31
- * {@link ContractFunctionRevertedError} (covers `Error(string)` / `Panic`).
32
- */
33
- function decodeSimulationError(revert) {
34
- const { error, data } = revert;
35
- if (data && data !== "0x") try {
36
- const decoded = decodeErrorResult({
37
- abi: errorAbis,
38
- data
39
- });
40
- return {
41
- reason: formatDecodedError(decoded.errorName, decoded.args),
42
- cause: error
43
- };
44
- } catch {}
45
- if (error instanceof BaseError) {
46
- const reverted = error.walk((e) => e instanceof ContractFunctionRevertedError);
47
- if (reverted instanceof ContractFunctionRevertedError) return {
48
- reason: reverted.data?.errorName ?? reverted.reason ?? reverted.shortMessage ?? "reverted",
49
- cause: error
50
- };
51
- return {
52
- reason: error.shortMessage ?? error.name,
53
- cause: error
54
- };
55
- }
56
- if (error instanceof Error) return {
57
- reason: error.message,
58
- cause: error
59
- };
60
- return {
61
- reason: "reverted",
62
- cause: error
63
- };
64
- }
65
- /** Renders `Name` or `Name(arg0, arg1)` for a decoded custom error. */
66
- function formatDecodedError(errorName, args) {
67
- if (!args || args.length === 0) return errorName;
68
- return `${errorName}(${args.map((arg) => String(arg)).join(", ")})`;
69
- }
70
- //#endregion
71
- export { asPreviewSimulationError, decodeSimulationError };
@@ -1,6 +0,0 @@
1
- import { asPreviewSimulationError } from "./errors.js";
2
- import { simulatePoolOperation } from "./simulatePoolOperation.js";
3
- import { simulateFacadeOperation } from "./simulateFacadeOperation.js";
4
- import { simulateRWAOperation } from "./simulateRWAOperation.js";
5
- import { simulateOperation } from "./simulateOperation.js";
6
- export { asPreviewSimulationError, simulateFacadeOperation, simulateOperation, simulatePoolOperation, simulateRWAOperation };
@@ -1,14 +0,0 @@
1
- //#region src/preview/simulate/simulateFacadeOperation.ts
2
- /**
3
- * Simulates a credit-facade operation.
4
- *
5
- * Not yet implemented: credit-facade simulation requires multicall-aware
6
- * balance/transfer accounting that the pool simulation does not cover. The
7
- * signature mirrors {@link simulatePoolOperation} so the
8
- * {@link simulateOperation} wrapper can delegate uniformly once implemented.
9
- */
10
- async function simulateFacadeOperation(_input, _options) {
11
- throw new Error("not yet implemented");
12
- }
13
- //#endregion
14
- export { simulateFacadeOperation };
@@ -1,28 +0,0 @@
1
- import { sdkOk } from "../../model/result.js";
2
- import "../../model/index.js";
3
- import { isPoolOperation, isRWAOperation } from "../parse/types.js";
4
- import "../parse/index.js";
5
- import { simulatePoolOperation } from "./simulatePoolOperation.js";
6
- import { simulateFacadeOperation } from "./simulateFacadeOperation.js";
7
- import { simulateRWAOperation } from "./simulateRWAOperation.js";
8
- //#region src/preview/simulate/simulateOperation.ts
9
- /**
10
- * Simulates a parsed pool or credit account operation
11
- */
12
- async function simulateOperation(input, options) {
13
- const { operation } = input;
14
- if (isPoolOperation(operation)) return simulatePoolOperation({
15
- ...input,
16
- operation
17
- }, options);
18
- if (isRWAOperation(operation)) return sdkOk(await simulateRWAOperation({
19
- ...input,
20
- operation
21
- }, options));
22
- return sdkOk(await simulateFacadeOperation({
23
- ...input,
24
- operation
25
- }, options));
26
- }
27
- //#endregion
28
- export { simulateOperation };
@@ -1,14 +0,0 @@
1
- //#region src/preview/simulate/simulateRWAOperation.ts
2
- /**
3
- * Simulates an RWA-factory operation.
4
- *
5
- * Not yet implemented: like credit-facade simulation, it requires
6
- * multicall-aware balance/transfer accounting that the pool simulation does
7
- * not cover. The signature mirrors {@link simulatePoolOperation} so the
8
- * {@link simulateOperation} wrapper can delegate uniformly once implemented.
9
- */
10
- async function simulateRWAOperation(_input, _options) {
11
- throw new Error("not yet implemented");
12
- }
13
- //#endregion
14
- export { simulateRWAOperation };
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};