@gearbox-protocol/sdk 16.2.0 → 16.3.0-next.2

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 (572) hide show
  1. package/dist/cjs/abi/rwa/iMidasAccessControl.js +23 -0
  2. package/dist/cjs/abi/rwa/iMidasDegenNFT.js +92 -0
  3. package/dist/cjs/history/assembleOperations.js +3 -3
  4. package/dist/cjs/history/classifyMulticallOperations.js +7 -7
  5. package/dist/cjs/history/index.js +13 -0
  6. package/dist/cjs/history/parseCreditAccountTransaction.js +5 -5
  7. package/dist/cjs/{preview → history}/trace/errors.js +1 -1
  8. package/dist/cjs/{preview → history}/trace/extractAdapterCallTraces.js +1 -1
  9. package/dist/cjs/{preview → history}/trace/extractTransfers.js +3 -3
  10. package/dist/cjs/{preview → history}/trace/findFacadeCalls.js +3 -3
  11. package/dist/cjs/history/trace/index.js +14 -0
  12. package/dist/cjs/model/errors/index.js +37 -0
  13. package/dist/cjs/model/errors/liquidation-errors.js +32 -0
  14. package/dist/cjs/model/errors/operation-errors.js +135 -0
  15. package/dist/cjs/{onchain/market/oracle/errors.js → model/errors/oracle-errors.js} +1 -1
  16. package/dist/cjs/model/errors/prepare-errors.js +108 -0
  17. package/dist/cjs/model/errors/preview-errors.js +12 -0
  18. package/dist/cjs/model/index.js +45 -2
  19. package/dist/cjs/model/opportunities.schema.js +3 -1
  20. package/dist/cjs/model/positions.js +1 -1
  21. package/dist/cjs/model/result.js +0 -8
  22. package/dist/cjs/model/rwa.js +53 -0
  23. package/dist/cjs/model/rwa.schema.js +20 -0
  24. package/dist/cjs/offchain/opportunities/OffchainOpportunities.js +1 -1
  25. package/dist/cjs/onchain/accounts/index.js +0 -2
  26. package/dist/cjs/onchain/accounts/intents/guards.js +42 -66
  27. package/dist/cjs/onchain/accounts/intents/index.js +38 -35
  28. package/dist/cjs/onchain/accounts/intents/leverage-band.js +1 -1
  29. package/dist/cjs/onchain/accounts/intents/math.js +19 -15
  30. package/dist/cjs/onchain/accounts/intents/open-strategy.js +6 -4
  31. package/dist/cjs/onchain/accounts/intents/plan.js +52 -48
  32. package/dist/cjs/onchain/accounts/intents/realize.js +26 -24
  33. package/dist/cjs/onchain/accounts/intents/tail.js +15 -12
  34. package/dist/cjs/onchain/accounts/intents/testing/sdk-mock.js +7 -0
  35. package/dist/cjs/onchain/accounts/intents/tests/finish-withdraw.fixtures.js +6 -6
  36. package/dist/cjs/onchain/accounts/intents/tests/withdraw.fixtures.js +12 -12
  37. package/dist/cjs/onchain/accounts/intents/view.js +1 -1
  38. package/dist/cjs/onchain/accounts/liquidations/LiquidationsService.js +2 -2
  39. package/dist/cjs/onchain/accounts/withdrawal-compressor/index.js +0 -1
  40. package/dist/cjs/onchain/index.js +130 -38
  41. package/dist/cjs/onchain/market/MarketSuite.js +10 -4
  42. package/dist/cjs/onchain/market/adapters/index.js +1 -0
  43. package/dist/cjs/onchain/market/credit/CreditSuite.js +77 -15
  44. package/dist/cjs/onchain/market/index.js +8 -8
  45. package/dist/cjs/onchain/market/oracle/PriceOracleBaseContract.js +6 -6
  46. package/dist/cjs/onchain/market/oracle/index.js +0 -2
  47. package/dist/cjs/onchain/market/pool/PoolQuotaKeeperV310Contract.js +8 -0
  48. package/dist/cjs/onchain/market/rwa/RWARegistry.js +3 -2
  49. package/dist/cjs/onchain/market/rwa/createDegenNFT.js +53 -0
  50. package/dist/cjs/onchain/market/rwa/index.js +7 -5
  51. package/dist/cjs/onchain/market/rwa/midas/MidasDegenNFT.js +56 -0
  52. package/dist/cjs/onchain/market/rwa/midas/constants.js +2 -0
  53. package/dist/cjs/onchain/market/rwa/midas/index.js +3 -0
  54. package/dist/cjs/onchain/market/rwa/securitize/SecuritizeDegenNFT.js +22 -3
  55. package/dist/cjs/onchain/market/rwa/securitize/SecuritizeRWAFactory.js +9 -9
  56. package/dist/cjs/onchain/market/rwa/securitize/constants.js +2 -2
  57. package/dist/cjs/onchain/market/rwa/securitize/index.js +4 -3
  58. package/dist/cjs/onchain/market/rwa/securitize/types.js +0 -29
  59. package/dist/cjs/onchain/market/rwa/types.js +0 -7
  60. package/dist/cjs/onchain/market/zapper/index.js +0 -1
  61. package/dist/cjs/onchain/opportunities/MultichainOpportunitiesService.js +2 -2
  62. package/dist/cjs/onchain/opportunities/OpportunitiesService.js +11 -3
  63. package/dist/cjs/onchain/pools/PoolService.js +10 -16
  64. package/dist/cjs/onchain/preview/index.js +41 -0
  65. package/dist/cjs/{preview → onchain/preview}/parse/classifyInnerOperations.js +2 -3
  66. package/dist/cjs/onchain/preview/parse/index.js +14 -0
  67. package/dist/cjs/{preview → onchain/preview}/parse/parseFacadeOperationCalldata.js +3 -3
  68. package/dist/cjs/{preview → onchain/preview}/parse/parseOperationCalldata.js +16 -17
  69. package/dist/cjs/{preview → onchain/preview}/parse/parsePoolOperationCalldata.js +3 -3
  70. package/dist/cjs/{preview → onchain/preview}/parse/parseRWAFactoryOperationCalldata.js +11 -12
  71. package/dist/cjs/{preview → onchain/preview}/parse/types.js +1 -1
  72. package/dist/cjs/{preview → onchain/preview}/preview/CreditAccountState.js +3 -4
  73. package/dist/cjs/{preview → onchain/preview}/preview/buildDelayedStrategyPositionOperationPreview.js +10 -11
  74. package/dist/cjs/{preview → onchain/preview}/preview/detectCloseOrRepay.js +2 -3
  75. package/dist/cjs/{preview → onchain/preview}/preview/detectDelayedClaim.js +4 -5
  76. package/dist/cjs/{preview → onchain/preview}/preview/detectDelayedOperation.js +5 -6
  77. package/dist/cjs/{preview → onchain/preview}/preview/estimateClaimableAt.js +1 -1
  78. package/dist/cjs/onchain/preview/preview/index.js +26 -0
  79. package/dist/cjs/{preview → onchain/preview}/preview/previewAdjustStrategyPosition.js +18 -22
  80. package/dist/cjs/{preview → onchain/preview}/preview/previewExitOrRepayStrategyPosition.js +22 -28
  81. package/dist/cjs/onchain/preview/preview/previewOpenStrategyPosition.js +60 -0
  82. package/dist/cjs/onchain/preview/preview/previewOperation.js +119 -0
  83. package/dist/cjs/{preview/simulate/simulatePoolOperation.js → onchain/preview/preview/previewPoolPositionOperation.js} +46 -32
  84. package/dist/cjs/onchain/preview/preview/replayInnerOperations.js +109 -0
  85. package/dist/cjs/onchain/preview/preview/replayMulticall.js +22 -0
  86. package/dist/cjs/{preview → onchain/preview}/preview/unwrapNativeCollateral.js +11 -14
  87. package/dist/cjs/onchain/validation/bundles/checkAccountQuotas.js +20 -0
  88. package/dist/cjs/onchain/validation/bundles/checkCollateralFunding.js +59 -0
  89. package/dist/cjs/onchain/validation/bundles/checkCreditOperation.js +65 -0
  90. package/dist/cjs/onchain/validation/bundles/checkDraw.js +28 -0
  91. package/dist/cjs/onchain/validation/bundles/checkHealthFactors.js +27 -0
  92. package/dist/cjs/onchain/validation/bundles/checkLiquidationEligibility.js +33 -0
  93. package/dist/cjs/onchain/validation/bundles/checkLiquidationFunding.js +29 -0
  94. package/dist/cjs/onchain/validation/bundles/checkMarket.js +24 -0
  95. package/dist/cjs/onchain/validation/bundles/checkObtained.js +13 -0
  96. package/dist/cjs/onchain/validation/bundles/checkPoolFunding.js +22 -0
  97. package/dist/cjs/onchain/validation/bundles/checkPoolOperation.js +35 -0
  98. package/dist/cjs/onchain/validation/bundles/checkQuotasAsked.js +20 -0
  99. package/dist/cjs/onchain/validation/bundles/checkRWAOpenRequirements.js +33 -0
  100. package/dist/cjs/onchain/validation/bundles/checkRWAOpening.js +24 -0
  101. package/dist/cjs/onchain/validation/bundles/checkWallet.js +22 -0
  102. package/dist/cjs/onchain/validation/bundles/checkWalletAllowance.js +32 -0
  103. package/dist/cjs/onchain/validation/bundles/checkWalletBalance.js +41 -0
  104. package/dist/cjs/onchain/validation/bundles/index.js +35 -0
  105. package/dist/cjs/onchain/validation/checkLiquidation.js +22 -0
  106. package/dist/cjs/onchain/validation/checkOperation.js +62 -0
  107. package/dist/cjs/onchain/validation/checkSimulation.js +60 -0
  108. package/dist/cjs/onchain/validation/checks/checkBorrowLimit.js +25 -0
  109. package/dist/cjs/onchain/validation/checks/checkCollateralised.js +26 -0
  110. package/dist/cjs/onchain/validation/checks/checkCreditAccountFrozen.js +10 -0
  111. package/dist/cjs/onchain/validation/checks/checkCreditManagerPaused.js +10 -0
  112. package/dist/cjs/onchain/validation/checks/checkDebtLimits.js +18 -0
  113. package/dist/cjs/onchain/validation/checks/checkEmergencyLiquidator.js +13 -0
  114. package/dist/cjs/onchain/validation/checks/checkForbiddenToken.js +10 -0
  115. package/dist/cjs/onchain/validation/checks/checkLeverage.js +13 -0
  116. package/dist/cjs/onchain/validation/checks/checkLiquidatorEligible.js +10 -0
  117. package/dist/cjs/onchain/validation/checks/checkMarketExpired.js +10 -0
  118. package/dist/cjs/onchain/validation/checks/checkPoolLiquidity.js +25 -0
  119. package/dist/cjs/onchain/validation/checks/checkPoolPaused.js +10 -0
  120. package/dist/cjs/onchain/validation/checks/checkPoolSunset.js +10 -0
  121. package/dist/cjs/onchain/validation/checks/checkQuotaCount.js +10 -0
  122. package/dist/cjs/onchain/validation/checks/checkQuotaLimit.js +18 -0
  123. package/dist/cjs/onchain/validation/checks/index.js +31 -0
  124. package/dist/cjs/onchain/validation/helpers/amount.js +12 -0
  125. package/dist/cjs/onchain/validation/helpers/health-factor-limits.js +25 -0
  126. package/dist/cjs/onchain/validation/helpers/index.js +11 -0
  127. package/dist/cjs/onchain/validation/{token.js → helpers/token.js} +4 -4
  128. package/dist/cjs/onchain/validation/index.js +85 -27
  129. package/dist/cjs/onchain/validation/raise.js +33 -0
  130. package/dist/cjs/sdk/index.js +6 -11
  131. package/dist/cjs/sdk/liquidations/LiquidationsNamespace.js +9 -0
  132. package/dist/cjs/sdk/opportunities/OpportunitiesNamespace.js +19 -4
  133. package/dist/cjs/sdk/prepare/PrepareApi.js +40 -50
  134. package/dist/cjs/sdk/prepare/index.js +7 -11
  135. package/dist/cjs/sdk/prepare/types.js +0 -4
  136. package/dist/cjs/sdk/preview/PreviewNamespace.js +24 -13
  137. package/dist/esm/abi/rwa/iMidasAccessControl.js +22 -0
  138. package/dist/esm/abi/rwa/iMidasDegenNFT.js +91 -0
  139. package/dist/esm/dev/AccountOpener.js +1 -1
  140. package/dist/esm/dev/withdrawalUtils.js +1 -1
  141. package/dist/esm/history/assembleOperations.js +2 -2
  142. package/dist/esm/history/classifyMulticallOperations.js +2 -2
  143. package/dist/esm/history/index.js +6 -1
  144. package/dist/esm/history/parseCreditAccountTransaction.js +3 -3
  145. package/dist/esm/{preview → history}/trace/errors.js +1 -1
  146. package/dist/esm/{preview → history}/trace/extractAdapterCallTraces.js +1 -1
  147. package/dist/esm/{preview → history}/trace/extractTransfers.js +2 -2
  148. package/dist/esm/{preview → history}/trace/findFacadeCalls.js +1 -1
  149. package/dist/esm/model/errors/index.js +7 -0
  150. package/dist/esm/model/errors/liquidation-errors.js +29 -0
  151. package/dist/esm/model/errors/operation-errors.js +121 -0
  152. package/dist/esm/{onchain/market/oracle/errors.js → model/errors/oracle-errors.js} +1 -1
  153. package/dist/esm/model/errors/prepare-errors.js +97 -0
  154. package/dist/esm/model/errors/preview-errors.js +11 -0
  155. package/dist/esm/model/index.js +10 -3
  156. package/dist/esm/model/opportunities.schema.js +3 -1
  157. package/dist/esm/model/positions.js +1 -1
  158. package/dist/esm/model/result.js +1 -8
  159. package/dist/esm/model/rwa.js +48 -0
  160. package/dist/esm/model/rwa.schema.js +18 -0
  161. package/dist/esm/offchain/opportunities/OffchainOpportunities.js +1 -1
  162. package/dist/esm/onchain/accounts/CreditAccountsServiceV310.js +2 -2
  163. package/dist/esm/onchain/accounts/index.js +1 -2
  164. package/dist/esm/onchain/accounts/intents/guards.js +29 -52
  165. package/dist/esm/onchain/accounts/intents/index.js +39 -35
  166. package/dist/esm/onchain/accounts/intents/leverage-band.js +1 -1
  167. package/dist/esm/onchain/accounts/intents/math.js +18 -14
  168. package/dist/esm/onchain/accounts/intents/open-strategy.js +8 -6
  169. package/dist/esm/onchain/accounts/intents/plan.js +51 -47
  170. package/dist/esm/onchain/accounts/intents/realize.js +26 -24
  171. package/dist/esm/onchain/accounts/intents/tail.js +14 -11
  172. package/dist/esm/onchain/accounts/intents/testing/sdk-mock.js +7 -0
  173. package/dist/esm/onchain/accounts/intents/tests/finish-withdraw.fixtures.js +6 -6
  174. package/dist/esm/onchain/accounts/intents/tests/withdraw.fixtures.js +12 -12
  175. package/dist/esm/onchain/accounts/intents/view.js +1 -1
  176. package/dist/esm/onchain/accounts/liquidations/LiquidationsService.js +3 -3
  177. package/dist/esm/onchain/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.js +1 -1
  178. package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV310Contract.js +1 -1
  179. package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV311Contract.js +1 -1
  180. package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV313Contract.js +1 -1
  181. package/dist/esm/onchain/accounts/withdrawal-compressor/index.js +0 -1
  182. package/dist/esm/onchain/base/TokensMeta.js +3 -3
  183. package/dist/esm/onchain/core/createAddressProvider.js +1 -1
  184. package/dist/esm/onchain/index.js +64 -11
  185. package/dist/esm/onchain/market/MarketSuite.js +10 -4
  186. package/dist/esm/onchain/market/adapters/contracts/AccountMigratorAdapterContract.js +1 -1
  187. package/dist/esm/onchain/market/adapters/contracts/ERC4626AdapterContract.js +1 -1
  188. package/dist/esm/onchain/market/adapters/index.js +1 -0
  189. package/dist/esm/onchain/market/credit/CreditFacadeV310BaseContract.js +1 -1
  190. package/dist/esm/onchain/market/credit/CreditSuite.js +77 -15
  191. package/dist/esm/onchain/market/index.js +6 -6
  192. package/dist/esm/onchain/market/oracle/PriceOracleBaseContract.js +1 -1
  193. package/dist/esm/onchain/market/oracle/index.js +1 -2
  194. package/dist/esm/onchain/market/pool/PoolQuotaKeeperV310Contract.js +8 -0
  195. package/dist/esm/onchain/market/pool/PoolV310Contract.js +1 -1
  196. package/dist/esm/onchain/market/rwa/RWARegistry.js +2 -1
  197. package/dist/esm/onchain/market/rwa/createDegenNFT.js +52 -0
  198. package/dist/esm/onchain/market/rwa/index.js +6 -5
  199. package/dist/esm/onchain/market/rwa/midas/MidasDegenNFT.js +55 -0
  200. package/dist/esm/onchain/market/rwa/midas/constants.js +2 -1
  201. package/dist/esm/onchain/market/rwa/midas/index.js +3 -2
  202. package/dist/esm/onchain/market/rwa/securitize/SecuritizeDegenNFT.js +20 -2
  203. package/dist/esm/onchain/market/rwa/securitize/SecuritizeRWAFactory.js +4 -4
  204. package/dist/esm/onchain/market/rwa/securitize/constants.js +2 -2
  205. package/dist/esm/onchain/market/rwa/securitize/index.js +4 -3
  206. package/dist/esm/onchain/market/rwa/securitize/types.js +1 -29
  207. package/dist/esm/onchain/market/rwa/types.js +1 -7
  208. package/dist/esm/onchain/market/zapper/IETHZapperContract.js +1 -1
  209. package/dist/esm/onchain/market/zapper/ZapperContract.js +1 -1
  210. package/dist/esm/onchain/market/zapper/index.js +0 -1
  211. package/dist/esm/onchain/opportunities/MultichainOpportunitiesService.js +2 -2
  212. package/dist/esm/onchain/opportunities/OpportunitiesService.js +11 -3
  213. package/dist/esm/onchain/pools/PoolService.js +10 -16
  214. package/dist/esm/onchain/preview/index.js +20 -0
  215. package/dist/esm/{preview → onchain/preview}/parse/classifyInnerOperations.js +2 -3
  216. package/dist/esm/{preview → onchain/preview}/parse/index.js +0 -1
  217. package/dist/esm/{preview → onchain/preview}/parse/parseFacadeOperationCalldata.js +1 -1
  218. package/dist/esm/{preview → onchain/preview}/parse/parseOperationCalldata.js +10 -11
  219. package/dist/esm/{preview → onchain/preview}/parse/parsePoolOperationCalldata.js +3 -3
  220. package/dist/esm/{preview → onchain/preview}/parse/parseRWAFactoryOperationCalldata.js +8 -9
  221. package/dist/esm/{preview → onchain/preview}/parse/types.js +1 -1
  222. package/dist/esm/{preview → onchain/preview}/preview/CreditAccountState.js +3 -4
  223. package/dist/esm/{preview → onchain/preview}/preview/buildDelayedStrategyPositionOperationPreview.js +10 -11
  224. package/dist/esm/{preview → onchain/preview}/preview/detectCloseOrRepay.js +2 -3
  225. package/dist/esm/{preview → onchain/preview}/preview/detectDelayedClaim.js +4 -5
  226. package/dist/esm/{preview → onchain/preview}/preview/detectDelayedOperation.js +5 -6
  227. package/dist/esm/{preview → onchain/preview}/preview/estimateClaimableAt.js +1 -1
  228. package/dist/esm/{preview → onchain/preview}/preview/index.js +3 -4
  229. package/dist/esm/{preview → onchain/preview}/preview/previewAdjustStrategyPosition.js +17 -21
  230. package/dist/esm/{preview → onchain/preview}/preview/previewExitOrRepayStrategyPosition.js +20 -26
  231. package/dist/esm/{preview → onchain/preview}/preview/previewOpenStrategyPosition.js +25 -15
  232. package/dist/esm/{preview → onchain/preview}/preview/previewOperation.js +54 -35
  233. package/dist/esm/{preview/simulate/simulatePoolOperation.js → onchain/preview/preview/previewPoolPositionOperation.js} +46 -30
  234. package/dist/esm/onchain/preview/preview/replayInnerOperations.js +107 -0
  235. package/dist/esm/onchain/preview/preview/replayMulticall.js +21 -0
  236. package/dist/esm/{preview → onchain/preview}/preview/unwrapNativeCollateral.js +11 -14
  237. package/dist/esm/onchain/utils/viem/simulateWithPriceUpdates.js +1 -1
  238. package/dist/esm/onchain/validation/bundles/checkAccountQuotas.js +19 -0
  239. package/dist/esm/onchain/validation/bundles/checkCollateralFunding.js +58 -0
  240. package/dist/esm/onchain/validation/bundles/checkCreditOperation.js +64 -0
  241. package/dist/esm/onchain/validation/bundles/checkDraw.js +27 -0
  242. package/dist/esm/onchain/validation/bundles/checkHealthFactors.js +26 -0
  243. package/dist/esm/onchain/validation/bundles/checkLiquidationEligibility.js +32 -0
  244. package/dist/esm/onchain/validation/bundles/checkLiquidationFunding.js +28 -0
  245. package/dist/esm/onchain/validation/bundles/checkMarket.js +23 -0
  246. package/dist/esm/onchain/validation/bundles/checkObtained.js +12 -0
  247. package/dist/esm/onchain/validation/bundles/checkPoolFunding.js +21 -0
  248. package/dist/esm/onchain/validation/bundles/checkPoolOperation.js +34 -0
  249. package/dist/esm/onchain/validation/bundles/checkQuotasAsked.js +19 -0
  250. package/dist/esm/onchain/validation/bundles/checkRWAOpenRequirements.js +32 -0
  251. package/dist/esm/onchain/validation/bundles/checkRWAOpening.js +23 -0
  252. package/dist/esm/onchain/validation/bundles/checkWallet.js +21 -0
  253. package/dist/esm/onchain/validation/bundles/checkWalletAllowance.js +31 -0
  254. package/dist/esm/onchain/validation/bundles/checkWalletBalance.js +40 -0
  255. package/dist/esm/onchain/validation/bundles/index.js +18 -0
  256. package/dist/esm/onchain/validation/checkLiquidation.js +21 -0
  257. package/dist/esm/onchain/validation/checkOperation.js +61 -0
  258. package/dist/esm/onchain/validation/checkSimulation.js +59 -0
  259. package/dist/esm/onchain/validation/checks/checkBorrowLimit.js +24 -0
  260. package/dist/esm/onchain/validation/checks/checkCollateralised.js +25 -0
  261. package/dist/esm/onchain/validation/checks/checkCreditAccountFrozen.js +9 -0
  262. package/dist/esm/onchain/validation/checks/checkCreditManagerPaused.js +9 -0
  263. package/dist/esm/onchain/validation/checks/checkDebtLimits.js +17 -0
  264. package/dist/esm/onchain/validation/checks/checkEmergencyLiquidator.js +12 -0
  265. package/dist/esm/onchain/validation/checks/checkForbiddenToken.js +9 -0
  266. package/dist/esm/onchain/validation/checks/checkLeverage.js +12 -0
  267. package/dist/esm/onchain/validation/checks/checkLiquidatorEligible.js +9 -0
  268. package/dist/esm/onchain/validation/checks/checkMarketExpired.js +9 -0
  269. package/dist/esm/onchain/validation/checks/checkPoolLiquidity.js +24 -0
  270. package/dist/esm/onchain/validation/checks/checkPoolPaused.js +9 -0
  271. package/dist/esm/onchain/validation/checks/checkPoolSunset.js +9 -0
  272. package/dist/esm/onchain/validation/checks/checkQuotaCount.js +9 -0
  273. package/dist/esm/onchain/validation/checks/checkQuotaLimit.js +17 -0
  274. package/dist/esm/onchain/validation/checks/index.js +16 -0
  275. package/dist/esm/onchain/validation/helpers/amount.js +11 -0
  276. package/dist/esm/onchain/validation/helpers/health-factor-limits.js +21 -0
  277. package/dist/esm/onchain/validation/helpers/index.js +4 -0
  278. package/dist/esm/onchain/validation/{token.js → helpers/token.js} +3 -3
  279. package/dist/esm/onchain/validation/index.js +43 -4
  280. package/dist/esm/onchain/validation/raise.js +31 -0
  281. package/dist/esm/sdk/index.js +2 -3
  282. package/dist/esm/sdk/liquidations/LiquidationsNamespace.js +9 -0
  283. package/dist/esm/sdk/opportunities/OpportunitiesNamespace.js +19 -4
  284. package/dist/esm/sdk/prepare/PrepareApi.js +25 -35
  285. package/dist/esm/sdk/prepare/index.js +3 -3
  286. package/dist/esm/sdk/prepare/types.js +1 -2
  287. package/dist/esm/sdk/preview/PreviewNamespace.js +24 -13
  288. package/dist/types/abi/rwa/iMidasAccessControl.d.ts +22 -0
  289. package/dist/types/abi/rwa/iMidasDegenNFT.d.ts +82 -0
  290. package/dist/types/history/assembleOperations.d.ts +4 -5
  291. package/dist/types/history/classifyMulticallOperations.d.ts +3 -4
  292. package/dist/types/history/index.d.ts +8 -2
  293. package/dist/types/history/mapOperations.d.ts +1 -1
  294. package/dist/types/{preview → history}/trace/errors.d.ts +1 -1
  295. package/dist/types/{preview → history}/trace/extractAdapterCallTraces.d.ts +1 -1
  296. package/dist/types/{preview → history}/trace/extractTransfers.d.ts +2 -3
  297. package/dist/types/{preview → history}/trace/findFacadeCalls.d.ts +1 -1
  298. package/dist/types/{preview → history}/trace/types.d.ts +1 -1
  299. package/dist/types/history/types.d.ts +2 -3
  300. package/dist/types/model/errors/base.d.ts +28 -0
  301. package/dist/types/model/errors/index.d.ts +7 -0
  302. package/dist/types/model/errors/liquidation-errors.d.ts +45 -0
  303. package/dist/types/model/errors/operation-errors.d.ts +216 -0
  304. package/dist/types/{onchain/market/oracle/errors.d.ts → model/errors/oracle-errors.d.ts} +3 -5
  305. package/dist/types/model/errors/prepare-errors.d.ts +131 -0
  306. package/dist/types/model/errors/preview-errors.d.ts +72 -0
  307. package/dist/types/model/index.d.ts +12 -4
  308. package/dist/types/model/opportunities.d.ts +12 -2
  309. package/dist/types/model/opportunities.schema.d.ts +30 -0
  310. package/dist/types/model/positions.d.ts +2 -2
  311. package/dist/types/model/previews.d.ts +52 -113
  312. package/dist/types/model/result.d.ts +4 -8
  313. package/dist/types/model/rwa.d.ts +167 -0
  314. package/dist/types/model/rwa.schema.d.ts +29 -0
  315. package/dist/types/offchain/opportunities/OffchainOpportunities.d.ts +2 -1
  316. package/dist/types/offchain/opportunities/types.d.ts +4 -1
  317. package/dist/types/onchain/accounts/CreditAccountsServiceV310.d.ts +3 -1
  318. package/dist/types/onchain/accounts/index.d.ts +2 -4
  319. package/dist/types/onchain/accounts/intents/guards.d.ts +8 -18
  320. package/dist/types/onchain/accounts/intents/index.d.ts +20 -19
  321. package/dist/types/onchain/accounts/intents/leverage-band.d.ts +1 -1
  322. package/dist/types/onchain/accounts/intents/math.d.ts +6 -6
  323. package/dist/types/onchain/accounts/intents/operations.d.ts +2 -2
  324. package/dist/types/onchain/accounts/intents/plan.d.ts +9 -9
  325. package/dist/types/onchain/accounts/intents/tail.d.ts +2 -2
  326. package/dist/types/onchain/accounts/intents/testing/expect.d.ts +3 -3
  327. package/dist/types/onchain/accounts/intents/tests/finish-withdraw.fixtures.d.ts +6 -6
  328. package/dist/types/onchain/accounts/intents/tests/withdraw.fixtures.d.ts +12 -12
  329. package/dist/types/onchain/accounts/intents/types.d.ts +32 -30
  330. package/dist/types/onchain/accounts/types.d.ts +2 -1
  331. package/dist/types/onchain/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.d.ts +1 -1
  332. package/dist/types/onchain/accounts/withdrawal-compressor/index.d.ts +1 -2
  333. package/dist/types/onchain/accounts/withdrawal-compressor/types.d.ts +1 -1
  334. package/dist/types/onchain/index.d.ts +73 -16
  335. package/dist/types/onchain/market/MarketSuite.d.ts +5 -1
  336. package/dist/types/onchain/market/adapters/index.d.ts +2 -1
  337. package/dist/types/onchain/market/adapters/transfers.d.ts +0 -7
  338. package/dist/types/onchain/market/credit/CreditSuite.d.ts +30 -8
  339. package/dist/types/onchain/market/credit/index.d.ts +2 -2
  340. package/dist/types/onchain/market/credit/types.d.ts +11 -1
  341. package/dist/types/onchain/market/index.d.ts +11 -10
  342. package/dist/types/onchain/market/oracle/PriceOracleBaseContract.d.ts +1 -1
  343. package/dist/types/onchain/market/oracle/index.d.ts +1 -2
  344. package/dist/types/onchain/market/oracle/types.d.ts +1 -1
  345. package/dist/types/onchain/market/pool/PoolQuotaKeeperV310Contract.d.ts +5 -0
  346. package/dist/types/onchain/market/rwa/RWARegistry.d.ts +1 -1
  347. package/dist/types/onchain/market/rwa/createDegenNFT.d.ts +12 -0
  348. package/dist/types/onchain/market/rwa/index.d.ts +10 -8
  349. package/dist/types/onchain/market/rwa/midas/MidasDegenNFT.d.ts +98 -0
  350. package/dist/types/onchain/market/rwa/midas/constants.d.ts +2 -1
  351. package/dist/types/onchain/market/rwa/midas/index.d.ts +3 -2
  352. package/dist/types/onchain/market/rwa/securitize/SecuritizeDegenNFT.d.ts +8 -2
  353. package/dist/types/onchain/market/rwa/securitize/SecuritizeRWAFactory.d.ts +4 -3
  354. package/dist/types/onchain/market/rwa/securitize/constants.d.ts +2 -2
  355. package/dist/types/onchain/market/rwa/securitize/index.d.ts +5 -4
  356. package/dist/types/onchain/market/rwa/securitize/types.d.ts +4 -110
  357. package/dist/types/onchain/market/rwa/types.d.ts +24 -32
  358. package/dist/types/onchain/market/zapper/ZapperContract.d.ts +1 -1
  359. package/dist/types/onchain/market/zapper/index.d.ts +1 -2
  360. package/dist/types/onchain/market/zapper/types.d.ts +1 -1
  361. package/dist/types/onchain/opportunities/MultichainOpportunitiesService.d.ts +2 -1
  362. package/dist/types/onchain/opportunities/OpportunitiesService.d.ts +5 -1
  363. package/dist/types/onchain/opportunities/types.d.ts +3 -2
  364. package/dist/types/onchain/pools/types.d.ts +2 -2
  365. package/dist/types/onchain/preview/index.d.ts +24 -0
  366. package/dist/types/{preview → onchain/preview}/parse/classifyInnerOperations.d.ts +4 -4
  367. package/dist/types/{preview → onchain/preview}/parse/index.d.ts +2 -4
  368. package/dist/types/{preview → onchain/preview}/parse/parseFacadeOperationCalldata.d.ts +4 -4
  369. package/dist/types/onchain/preview/parse/parseOperationCalldata.d.ts +18 -0
  370. package/dist/types/{preview → onchain/preview}/parse/parsePoolOperationCalldata.d.ts +7 -7
  371. package/dist/types/{preview → onchain/preview}/parse/parseRWAFactoryOperationCalldata.d.ts +4 -4
  372. package/dist/types/{preview → onchain/preview}/parse/types-adapters.d.ts +5 -16
  373. package/dist/types/{preview → onchain/preview}/parse/types-facades.d.ts +3 -3
  374. package/dist/types/{preview → onchain/preview}/parse/types-pools.d.ts +1 -1
  375. package/dist/types/{preview → onchain/preview}/parse/types-rwa.d.ts +3 -3
  376. package/dist/types/{preview → onchain/preview}/parse/types.d.ts +3 -3
  377. package/dist/types/{preview → onchain/preview}/preview/CreditAccountState.d.ts +5 -5
  378. package/dist/types/{preview → onchain/preview}/preview/buildDelayedStrategyPositionOperationPreview.d.ts +5 -5
  379. package/dist/types/{preview → onchain/preview}/preview/detectCloseOrRepay.d.ts +1 -1
  380. package/dist/types/{preview → onchain/preview}/preview/detectDelayedClaim.d.ts +8 -8
  381. package/dist/types/{preview → onchain/preview}/preview/detectDelayedOperation.d.ts +9 -9
  382. package/dist/types/{preview → onchain/preview}/preview/estimateClaimableAt.d.ts +6 -6
  383. package/dist/types/{preview → onchain/preview}/preview/index.d.ts +3 -4
  384. package/dist/types/onchain/preview/preview/previewAdjustStrategyPosition.d.ts +20 -0
  385. package/dist/types/onchain/preview/preview/previewExitOrRepayStrategyPosition.d.ts +21 -0
  386. package/dist/types/onchain/preview/preview/previewOpenStrategyPosition.d.ts +14 -0
  387. package/dist/types/onchain/preview/preview/previewOperation.d.ts +32 -0
  388. package/dist/types/onchain/preview/preview/previewPoolPositionOperation.d.ts +13 -0
  389. package/dist/types/{preview → onchain/preview}/preview/replayInnerOperations.d.ts +11 -11
  390. package/dist/types/{preview → onchain/preview}/preview/replayMulticall.d.ts +10 -10
  391. package/dist/types/{preview → onchain/preview}/preview/unwrapNativeCollateral.d.ts +10 -20
  392. package/dist/types/onchain/validation/bundles/checkAccountQuotas.d.ts +16 -0
  393. package/dist/types/onchain/validation/bundles/checkCollateralFunding.d.ts +22 -0
  394. package/dist/types/onchain/validation/bundles/checkCreditOperation.d.ts +31 -0
  395. package/dist/types/onchain/validation/bundles/checkDraw.d.ts +20 -0
  396. package/dist/types/onchain/validation/bundles/checkHealthFactors.d.ts +39 -0
  397. package/dist/types/onchain/validation/bundles/checkLiquidationEligibility.d.ts +20 -0
  398. package/dist/types/onchain/validation/bundles/checkLiquidationFunding.d.ts +18 -0
  399. package/dist/types/onchain/validation/bundles/checkMarket.d.ts +15 -0
  400. package/dist/types/onchain/validation/bundles/checkObtained.d.ts +9 -0
  401. package/dist/types/onchain/validation/bundles/checkPoolFunding.d.ts +19 -0
  402. package/dist/types/onchain/validation/bundles/checkPoolOperation.d.ts +31 -0
  403. package/dist/types/onchain/validation/bundles/checkQuotasAsked.d.ts +10 -0
  404. package/dist/types/onchain/validation/bundles/checkRWAOpenRequirements.d.ts +21 -0
  405. package/dist/types/onchain/validation/bundles/checkRWAOpening.d.ts +19 -0
  406. package/dist/types/onchain/validation/bundles/checkWallet.d.ts +23 -0
  407. package/dist/types/onchain/validation/bundles/checkWalletAllowance.d.ts +18 -0
  408. package/dist/types/onchain/validation/bundles/checkWalletBalance.d.ts +17 -0
  409. package/dist/types/onchain/validation/bundles/index.d.ts +18 -0
  410. package/dist/types/onchain/validation/checkLiquidation.d.ts +23 -0
  411. package/dist/types/onchain/validation/checkOperation.d.ts +32 -0
  412. package/dist/types/onchain/validation/checkSimulation.d.ts +56 -0
  413. package/dist/types/onchain/validation/checks/checkBorrowLimit.d.ts +21 -0
  414. package/dist/types/onchain/validation/checks/checkCollateralised.d.ts +25 -0
  415. package/dist/types/onchain/validation/checks/checkCreditAccountFrozen.d.ts +12 -0
  416. package/dist/types/onchain/validation/checks/checkCreditManagerPaused.d.ts +12 -0
  417. package/dist/types/onchain/validation/checks/checkDebtLimits.d.ts +21 -0
  418. package/dist/types/onchain/validation/checks/checkEmergencyLiquidator.d.ts +17 -0
  419. package/dist/types/onchain/validation/checks/checkForbiddenToken.d.ts +12 -0
  420. package/dist/types/onchain/validation/checks/checkLeverage.d.ts +12 -0
  421. package/dist/types/onchain/validation/checks/checkLiquidatorEligible.d.ts +13 -0
  422. package/dist/types/onchain/validation/checks/checkMarketExpired.d.ts +14 -0
  423. package/dist/types/onchain/validation/checks/checkPoolLiquidity.d.ts +20 -0
  424. package/dist/types/onchain/validation/checks/checkPoolPaused.d.ts +12 -0
  425. package/dist/types/onchain/validation/checks/checkPoolSunset.d.ts +13 -0
  426. package/dist/types/onchain/validation/checks/checkQuotaCount.d.ts +11 -0
  427. package/dist/types/onchain/validation/checks/checkQuotaLimit.d.ts +18 -0
  428. package/dist/types/onchain/validation/checks/index.d.ts +16 -0
  429. package/dist/types/onchain/validation/helpers/amount.d.ts +7 -0
  430. package/dist/types/onchain/validation/helpers/health-factor-limits.d.ts +21 -0
  431. package/dist/types/onchain/validation/helpers/index.d.ts +4 -0
  432. package/dist/types/onchain/validation/{token.d.ts → helpers/token.d.ts} +4 -4
  433. package/dist/types/onchain/validation/index.d.ts +43 -4
  434. package/dist/types/onchain/validation/raise.d.ts +33 -0
  435. package/dist/types/sdk/execute/types.d.ts +2 -2
  436. package/dist/types/sdk/index.d.ts +5 -6
  437. package/dist/types/sdk/liquidations/LiquidationsNamespace.d.ts +5 -0
  438. package/dist/types/sdk/liquidations/types.d.ts +8 -0
  439. package/dist/types/sdk/opportunities/OpportunitiesNamespace.d.ts +2 -1
  440. package/dist/types/sdk/opportunities/types.d.ts +8 -2
  441. package/dist/types/sdk/prepare/PrepareApi.d.ts +5 -4
  442. package/dist/types/sdk/prepare/index.d.ts +5 -5
  443. package/dist/types/sdk/prepare/types.d.ts +41 -22
  444. package/dist/types/sdk/preview/PreviewNamespace.d.ts +13 -3
  445. package/dist/types/sdk/preview/index.d.ts +2 -2
  446. package/dist/types/sdk/preview/types.d.ts +30 -7
  447. package/package.json +1 -6
  448. package/dist/cjs/onchain/accounts/withdrawal-compressor/errors.js +0 -1
  449. package/dist/cjs/onchain/market/zapper/errors.js +0 -1
  450. package/dist/cjs/onchain/validation/checks.js +0 -258
  451. package/dist/cjs/onchain/validation/refusal.js +0 -39
  452. package/dist/cjs/preview/index.js +0 -86
  453. package/dist/cjs/preview/package.json +0 -1
  454. package/dist/cjs/preview/parse/errors.js +0 -1
  455. package/dist/cjs/preview/parse/index.js +0 -15
  456. package/dist/cjs/preview/prerequisites/AllowancePrerequisite.js +0 -38
  457. package/dist/cjs/preview/prerequisites/BalancePrerequisite.js +0 -52
  458. package/dist/cjs/preview/prerequisites/Prerequisite.js +0 -52
  459. package/dist/cjs/preview/prerequisites/RWAOpenRequirementsPrerequisite.js +0 -53
  460. package/dist/cjs/preview/prerequisites/buildCollateralPrerequisites.js +0 -63
  461. package/dist/cjs/preview/prerequisites/buildPartialLiquidationPrerequisites.js +0 -19
  462. package/dist/cjs/preview/prerequisites/buildPoolPrerequisites.js +0 -76
  463. package/dist/cjs/preview/prerequisites/buildRWAPrerequisites.js +0 -39
  464. package/dist/cjs/preview/prerequisites/checkPrerequisites.js +0 -74
  465. package/dist/cjs/preview/prerequisites/helpers.js +0 -23
  466. package/dist/cjs/preview/prerequisites/index.js +0 -12
  467. package/dist/cjs/preview/preview/errors.js +0 -85
  468. package/dist/cjs/preview/preview/index.js +0 -33
  469. package/dist/cjs/preview/preview/previewOpenStrategyPosition.js +0 -50
  470. package/dist/cjs/preview/preview/previewOperation.js +0 -100
  471. package/dist/cjs/preview/preview/previewPoolPositionOperation.js +0 -49
  472. package/dist/cjs/preview/preview/replayInnerOperations.js +0 -109
  473. package/dist/cjs/preview/preview/replayMulticall.js +0 -19
  474. package/dist/cjs/preview/simulate/errors.js +0 -73
  475. package/dist/cjs/preview/simulate/index.js +0 -11
  476. package/dist/cjs/preview/simulate/simulateFacadeOperation.js +0 -15
  477. package/dist/cjs/preview/simulate/simulateOperation.js +0 -29
  478. package/dist/cjs/preview/simulate/simulateRWAOperation.js +0 -15
  479. package/dist/cjs/preview/simulate/types.js +0 -1
  480. package/dist/cjs/preview/trace/index.js +0 -14
  481. package/dist/cjs/preview/trace/types.js +0 -1
  482. package/dist/cjs/preview/types.js +0 -1
  483. package/dist/cjs/preview/validate/checkOperation.js +0 -187
  484. package/dist/cjs/preview/validate/checkSimulation.js +0 -39
  485. package/dist/cjs/preview/validate/index.js +0 -8
  486. package/dist/cjs/sdk/prepare/errors.js +0 -114
  487. package/dist/esm/onchain/accounts/withdrawal-compressor/errors.js +0 -1
  488. package/dist/esm/onchain/market/zapper/errors.js +0 -1
  489. package/dist/esm/onchain/validation/checks.js +0 -238
  490. package/dist/esm/onchain/validation/refusal.js +0 -36
  491. package/dist/esm/preview/index.js +0 -38
  492. package/dist/esm/preview/package.json +0 -1
  493. package/dist/esm/preview/parse/errors.js +0 -1
  494. package/dist/esm/preview/prerequisites/AllowancePrerequisite.js +0 -37
  495. package/dist/esm/preview/prerequisites/BalancePrerequisite.js +0 -51
  496. package/dist/esm/preview/prerequisites/Prerequisite.js +0 -51
  497. package/dist/esm/preview/prerequisites/RWAOpenRequirementsPrerequisite.js +0 -52
  498. package/dist/esm/preview/prerequisites/buildCollateralPrerequisites.js +0 -62
  499. package/dist/esm/preview/prerequisites/buildPartialLiquidationPrerequisites.js +0 -18
  500. package/dist/esm/preview/prerequisites/buildPoolPrerequisites.js +0 -75
  501. package/dist/esm/preview/prerequisites/buildRWAPrerequisites.js +0 -38
  502. package/dist/esm/preview/prerequisites/checkPrerequisites.js +0 -73
  503. package/dist/esm/preview/prerequisites/helpers.js +0 -22
  504. package/dist/esm/preview/prerequisites/index.js +0 -7
  505. package/dist/esm/preview/preview/errors.js +0 -79
  506. package/dist/esm/preview/preview/previewPoolPositionOperation.js +0 -48
  507. package/dist/esm/preview/preview/replayInnerOperations.js +0 -107
  508. package/dist/esm/preview/preview/replayMulticall.js +0 -18
  509. package/dist/esm/preview/simulate/errors.js +0 -71
  510. package/dist/esm/preview/simulate/index.js +0 -6
  511. package/dist/esm/preview/simulate/simulateFacadeOperation.js +0 -14
  512. package/dist/esm/preview/simulate/simulateOperation.js +0 -28
  513. package/dist/esm/preview/simulate/simulateRWAOperation.js +0 -14
  514. package/dist/esm/preview/simulate/types.js +0 -1
  515. package/dist/esm/preview/trace/types.js +0 -1
  516. package/dist/esm/preview/types.js +0 -1
  517. package/dist/esm/preview/validate/checkOperation.js +0 -183
  518. package/dist/esm/preview/validate/checkSimulation.js +0 -38
  519. package/dist/esm/preview/validate/index.js +0 -3
  520. package/dist/esm/sdk/prepare/errors.js +0 -108
  521. package/dist/types/model/errors.d.ts +0 -46
  522. package/dist/types/onchain/accounts/withdrawal-compressor/errors.d.ts +0 -20
  523. package/dist/types/onchain/market/zapper/errors.d.ts +0 -18
  524. package/dist/types/onchain/validation/checks.d.ts +0 -164
  525. package/dist/types/onchain/validation/refusal.d.ts +0 -242
  526. package/dist/types/preview/index.d.ts +0 -47
  527. package/dist/types/preview/parse/errors.d.ts +0 -29
  528. package/dist/types/preview/parse/parseOperationCalldata.d.ts +0 -18
  529. package/dist/types/preview/prerequisites/AllowancePrerequisite.d.ts +0 -26
  530. package/dist/types/preview/prerequisites/BalancePrerequisite.d.ts +0 -29
  531. package/dist/types/preview/prerequisites/Prerequisite.d.ts +0 -26
  532. package/dist/types/preview/prerequisites/RWAOpenRequirementsPrerequisite.d.ts +0 -55
  533. package/dist/types/preview/prerequisites/buildCollateralPrerequisites.d.ts +0 -20
  534. package/dist/types/preview/prerequisites/buildPartialLiquidationPrerequisites.d.ts +0 -12
  535. package/dist/types/preview/prerequisites/buildPoolPrerequisites.d.ts +0 -12
  536. package/dist/types/preview/prerequisites/buildRWAPrerequisites.d.ts +0 -26
  537. package/dist/types/preview/prerequisites/checkPrerequisites.d.ts +0 -28
  538. package/dist/types/preview/prerequisites/helpers.d.ts +0 -10
  539. package/dist/types/preview/prerequisites/index.d.ts +0 -7
  540. package/dist/types/preview/prerequisites/types.d.ts +0 -53
  541. package/dist/types/preview/preview/errors.d.ts +0 -44
  542. package/dist/types/preview/preview/previewAdjustStrategyPosition.d.ts +0 -19
  543. package/dist/types/preview/preview/previewExitOrRepayStrategyPosition.d.ts +0 -18
  544. package/dist/types/preview/preview/previewOpenStrategyPosition.d.ts +0 -12
  545. package/dist/types/preview/preview/previewOperation.d.ts +0 -32
  546. package/dist/types/preview/preview/previewPoolPositionOperation.d.ts +0 -13
  547. package/dist/types/preview/simulate/errors.d.ts +0 -52
  548. package/dist/types/preview/simulate/index.d.ts +0 -7
  549. package/dist/types/preview/simulate/simulateFacadeOperation.d.ts +0 -16
  550. package/dist/types/preview/simulate/simulateOperation.d.ts +0 -12
  551. package/dist/types/preview/simulate/simulatePoolOperation.d.ts +0 -42
  552. package/dist/types/preview/simulate/simulateRWAOperation.d.ts +0 -16
  553. package/dist/types/preview/simulate/types.d.ts +0 -48
  554. package/dist/types/preview/types.d.ts +0 -65
  555. package/dist/types/preview/validate/checkOperation.d.ts +0 -71
  556. package/dist/types/preview/validate/checkSimulation.d.ts +0 -32
  557. package/dist/types/preview/validate/index.d.ts +0 -3
  558. package/dist/types/sdk/prepare/errors.d.ts +0 -343
  559. /package/dist/cjs/{preview/prerequisites → history/trace}/types.js +0 -0
  560. /package/dist/cjs/model/{errors.js → errors/base.js} +0 -0
  561. /package/dist/cjs/{preview → onchain/preview}/parse/types-adapters.js +0 -0
  562. /package/dist/cjs/{preview → onchain/preview}/parse/types-facades.js +0 -0
  563. /package/dist/cjs/{preview → onchain/preview}/parse/types-pools.js +0 -0
  564. /package/dist/cjs/{preview → onchain/preview}/parse/types-rwa.js +0 -0
  565. /package/dist/esm/{preview → history}/trace/index.js +0 -0
  566. /package/dist/esm/{preview/prerequisites → history/trace}/types.js +0 -0
  567. /package/dist/esm/model/{errors.js → errors/base.js} +0 -0
  568. /package/dist/esm/{preview → onchain/preview}/parse/types-adapters.js +0 -0
  569. /package/dist/esm/{preview → onchain/preview}/parse/types-facades.js +0 -0
  570. /package/dist/esm/{preview → onchain/preview}/parse/types-pools.js +0 -0
  571. /package/dist/esm/{preview → onchain/preview}/parse/types-rwa.js +0 -0
  572. /package/dist/types/{preview → history}/trace/index.d.ts +0 -0
@@ -0,0 +1,119 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_model_errors_prepare_errors = require("../../../model/errors/prepare-errors.js");
3
+ const require_model_result = require("../../../model/result.js");
4
+ require("../../../model/index.js");
5
+ const require_onchain_preview_parse_parseOperationCalldata = require("../parse/parseOperationCalldata.js");
6
+ const require_onchain_preview_parse_types = require("../parse/types.js");
7
+ require("../parse/index.js");
8
+ const require_onchain_preview_preview_buildDelayedStrategyPositionOperationPreview = require("./buildDelayedStrategyPositionOperationPreview.js");
9
+ const require_onchain_preview_preview_detectCloseOrRepay = require("./detectCloseOrRepay.js");
10
+ const require_onchain_preview_preview_detectDelayedClaim = require("./detectDelayedClaim.js");
11
+ const require_onchain_preview_preview_detectDelayedOperation = require("./detectDelayedOperation.js");
12
+ const require_onchain_preview_preview_estimateClaimableAt = require("./estimateClaimableAt.js");
13
+ const require_onchain_preview_preview_previewAdjustStrategyPosition = require("./previewAdjustStrategyPosition.js");
14
+ const require_onchain_preview_preview_previewExitOrRepayStrategyPosition = require("./previewExitOrRepayStrategyPosition.js");
15
+ const require_onchain_preview_preview_previewOpenStrategyPosition = require("./previewOpenStrategyPosition.js");
16
+ const require_onchain_preview_preview_previewPoolPositionOperation = require("./previewPoolPositionOperation.js");
17
+ const require_onchain_preview_preview_replayMulticall = require("./replayMulticall.js");
18
+ //#region src/onchain/preview/preview/previewOperation.ts
19
+ /**
20
+ * Previews a raw operation calldata: decodes it into a typed operation and
21
+ * assembles an operation-specific, human-displayable preview.
22
+ *
23
+ * Answers an {@link SDKReturn} envelope: the preview behind `ok: true`, or —
24
+ * when the transaction is one the previewer refuses to read — a
25
+ * {@link PreviewOperationError} behind `ok: false`. A thrown exception
26
+ * still means the SDK could not do its job (a read failed), not a refusal
27
+ * of the transaction.
28
+ *
29
+ * `input.chainId` and `sdk` both name the chain; the engine does not read
30
+ * `input.chainId`.
31
+ */
32
+ async function previewOperation(sdk, input, options, creditAccount) {
33
+ const parsed = require_onchain_preview_parse_parseOperationCalldata.parseOperationCalldata(sdk, input);
34
+ if (!parsed.ok) return parsed;
35
+ const operation = parsed.data;
36
+ if (require_onchain_preview_parse_types.isPoolOperation(operation)) return require_onchain_preview_preview_previewPoolPositionOperation.previewPoolPositionOperation(sdk, operation, options);
37
+ if (operation.operation === "OpenCreditAccount" || operation.operation === "RWAOpenCreditAccount") return require_onchain_preview_preview_previewOpenStrategyPosition.previewOpenStrategyPosition(sdk, input, operation);
38
+ if (operation.operation === "CloseCreditAccount") {
39
+ const resolved = await resolveCreditAccount(sdk, operation, options, creditAccount);
40
+ if (!resolved.ok) return resolved;
41
+ const replayed = require_onchain_preview_preview_replayMulticall.replayMulticall(sdk, operation, resolved.data);
42
+ if (!replayed.ok) return replayed;
43
+ const preview = require_onchain_preview_preview_previewExitOrRepayStrategyPosition.previewExitOrRepayStrategyPosition(sdk, input, operation, true, replayed.data);
44
+ if (!preview.ok) return preview;
45
+ const intent = await require_onchain_preview_preview_detectDelayedClaim.resolveDelayedClaimIntent(sdk, operation.multicall, options?.blockNumber);
46
+ if (!intent.ok) return intent;
47
+ preview.data.intent = intent.data;
48
+ return preview;
49
+ }
50
+ if (operation.operation === "MultiCall" || operation.operation === "BotMulticall" || operation.operation === "RWAMulticall") {
51
+ const resolved = await resolveCreditAccount(sdk, operation, options, creditAccount);
52
+ if (!resolved.ok) return resolved;
53
+ const replayed = require_onchain_preview_preview_replayMulticall.replayMulticall(sdk, operation, resolved.data);
54
+ if (!replayed.ok) return replayed;
55
+ return previewMulticallOperation(sdk, input, operation, replayed.data, options?.blockNumber);
56
+ }
57
+ return require_model_result.sdkErr({
58
+ code: "unsupportedOperation",
59
+ message: `operation "${operation.operation}" is not supported by previewOperation`,
60
+ operation: operation.operation
61
+ });
62
+ }
63
+ /**
64
+ * Resolves the pre-state of the credit account an operation targets: uses the
65
+ * injected state when present, otherwise fetches it from the credit account
66
+ * compressor.
67
+ */
68
+ async function resolveCreditAccount(sdk, operation, options, creditAccount) {
69
+ let resolved = creditAccount;
70
+ if (!resolved) resolved = await sdk.accounts.getCreditAccountData(operation.creditAccount, options?.blockNumber);
71
+ if (!resolved) return require_model_result.sdkErr(require_model_errors_prepare_errors.creditAccountNotFound(operation.creditAccount));
72
+ return require_model_result.sdkOk(resolved);
73
+ }
74
+ /**
75
+ * Previews a plain/bot/RWA multicall: classifies the instant preview
76
+ * (zero-debt closure/repay vs adjustment) and, when the multicall requests a
77
+ * delayed withdrawal, wraps the instant preview into a
78
+ * `DelayedCreditAccountOperation` together with the best-effort preview of
79
+ * the state after the withdrawal is claimed.
80
+ */
81
+ async function previewMulticallOperation(sdk, input, operation, replay, blockNumber) {
82
+ let instantPreview;
83
+ if (require_onchain_preview_preview_detectCloseOrRepay.isCloseOrRepay(operation.multicall)) {
84
+ const instant = require_onchain_preview_preview_previewExitOrRepayStrategyPosition.previewExitOrRepayStrategyPosition(sdk, input, operation, false, replay);
85
+ if (!instant.ok) return instant;
86
+ instantPreview = instant.data;
87
+ } else {
88
+ const instant = require_onchain_preview_preview_previewAdjustStrategyPosition.previewAdjustStrategyPosition(sdk, input, operation, replay);
89
+ if (!instant.ok) return instant;
90
+ instantPreview = instant.data;
91
+ }
92
+ const detected = require_onchain_preview_preview_detectDelayedOperation.detectDelayedOperation(sdk, operation.multicall);
93
+ if (!detected.ok) return detected;
94
+ const delayed = detected.data;
95
+ if (!delayed) {
96
+ const intent = await require_onchain_preview_preview_detectDelayedClaim.resolveDelayedClaimIntent(sdk, operation.multicall, blockNumber);
97
+ if (!intent.ok) return intent;
98
+ instantPreview.intent = intent.data;
99
+ return require_model_result.sdkOk(instantPreview);
100
+ }
101
+ const { before, after } = replay;
102
+ const market = sdk.marketRegister.findByCreditManager(operation.creditManager);
103
+ const meta = sdk.tokensMeta.get(market.underlying);
104
+ const receivedToken = meta && sdk.tokensMeta.isRWAUnderlying(meta) ? meta.asset : market.underlying;
105
+ const suite = sdk.marketRegister.findCreditManager(operation.creditManager);
106
+ return require_model_result.sdkOk({
107
+ operation: "DelayedCreditAccountOperation",
108
+ creditAccount: operation.creditAccount,
109
+ ...suite.creditOperationMarket(),
110
+ name: suite.accountStrategyName(operation.creditAccount),
111
+ targetCollateral: suite.accountTargetCollateral(operation.creditAccount),
112
+ intent: delayed.intent,
113
+ estClaimableAt: require_onchain_preview_preview_estimateClaimableAt.estimateClaimableAt(sdk, delayed.request.phantomToken),
114
+ instantPreview,
115
+ delayedPreview: require_onchain_preview_preview_buildDelayedStrategyPositionOperationPreview.buildDelayedStrategyPositionOperationPreview(after.account, before, delayed, receivedToken, sdk)
116
+ });
117
+ }
118
+ //#endregion
119
+ exports.previewOperation = previewOperation;
@@ -1,10 +1,10 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_abi_iZapper = require("../../abi/iZapper.js");
3
- const require_abi_310_generated = require("../../abi/310/generated.js");
4
- const require_model_result = require("../../model/result.js");
5
- require("../../model/index.js");
6
- const require_preview_simulate_errors = require("./errors.js");
7
- //#region src/preview/simulate/simulatePoolOperation.ts
2
+ const require_abi_iERC20 = require("../../../abi/iERC20.js");
3
+ const require_abi_iZapper = require("../../../abi/iZapper.js");
4
+ const require_abi_310_generated = require("../../../abi/310/generated.js");
5
+ const require_model_result = require("../../../model/result.js");
6
+ require("../../../model/index.js");
7
+ //#region src/onchain/preview/preview/previewPoolPositionOperation.ts
8
8
  function previewRead(operation) {
9
9
  switch (operation.operation) {
10
10
  case "Deposit": return {
@@ -74,36 +74,50 @@ function amountsInOut(operation, previewAmount) {
74
74
  };
75
75
  }
76
76
  }
77
- /**
78
- * Simulates a pool deposit/mint/withdraw/redeem (direct or zapper-routed) and
79
- * returns the resulting token amounts going in and out. Throws a
80
- * {@link PreviewSimulationError} with the decoded revert when the preview read
81
- * fails.
82
- *
83
- * Performs the matching preview read (the pool's ERC4626
84
- * `previewDeposit`/`previewMint`/`previewWithdraw`/`previewRedeem`, or the
85
- * zapper's `previewDeposit`/`previewRedeem`) to convert the calldata-known
86
- * amount into its counterpart. It works on every network the SDK supports.
87
- *
88
- * It does not execute the calldata, so it ignores balance/allowance
89
- * prerequisites (preview reads succeed regardless).
90
- */
91
- async function simulatePoolOperation(input, options = {}) {
92
- const { sdk, operation } = input;
93
- const { blockNumber, logger } = options;
77
+ async function previewPoolPositionOperation(sdk, operation, options) {
78
+ const { tokenIn, tokenOut } = operation;
79
+ const market = sdk.marketRegister.findByPool(operation.pool);
80
+ const pool = market.pool.pool;
81
+ const holder = "owner" in operation ? operation.owner : operation.receiver;
82
+ let previewAmount;
83
+ let shares;
94
84
  try {
95
- const previewAmount = await sdk.client.readContract({
96
- blockNumber,
97
- ...previewContract(operation)
85
+ [previewAmount, shares] = await sdk.client.multicall({
86
+ contracts: [previewContract(operation), {
87
+ address: operation.pool,
88
+ abi: require_abi_iERC20.ierc20Abi,
89
+ functionName: "balanceOf",
90
+ args: [holder]
91
+ }],
92
+ allowFailure: false,
93
+ batchSize: 0,
94
+ blockNumber: options?.blockNumber
98
95
  });
99
- return require_model_result.sdkOk(amountsInOut(operation, previewAmount));
100
96
  } catch (cause) {
101
- const error = require_preview_simulate_errors.asPreviewSimulationError(cause, "multicall");
102
- logger?.error(error, "pool operation simulation failed");
97
+ const error = {
98
+ code: "poolOperationPreviewError",
99
+ message: cause instanceof Error ? cause.message : String(cause),
100
+ pool: operation.pool,
101
+ cause: cause instanceof Error ? cause : new Error(String(cause))
102
+ };
103
103
  return require_model_result.sdkErr(error);
104
104
  }
105
+ const sim = amountsInOut(operation, previewAmount);
106
+ const inflow = operation.operation === "Deposit" || operation.operation === "Mint";
107
+ const after = shares + (inflow ? sim.amountOut : -sim.amountIn);
108
+ return require_model_result.sdkOk({
109
+ operation: operation.operation,
110
+ pool: operation.pool,
111
+ zapper: operation.zapper,
112
+ holder,
113
+ name: sdk.tokensMeta.mustGetToken(operation.pool).name,
114
+ underlyingToken: market.underlyingToken,
115
+ shareRate: pool.dieselRate,
116
+ tokenIn: market.priceOracle.toTokenAmount(tokenIn, sim.amountIn),
117
+ tokenOut: market.priceOracle.toTokenAmount(tokenOut, sim.amountOut),
118
+ curator: market.curator,
119
+ netValue: market.toUnderlyingAmount(pool.sharesToUnderlying(after > 0n ? after : 0n))
120
+ });
105
121
  }
106
122
  //#endregion
107
- exports.amountsInOut = amountsInOut;
108
- exports.previewContract = previewContract;
109
- exports.simulatePoolOperation = simulatePoolOperation;
123
+ exports.previewPoolPositionOperation = previewPoolPositionOperation;
@@ -0,0 +1,109 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_onchain_utils_AssetsMap = require("../../utils/AssetsMap.js");
3
+ require("../../constants/math.js");
4
+ const require_onchain_market_adapters_contracts_AbstractAdapter = require("../../market/adapters/contracts/AbstractAdapter.js");
5
+ const require_model_errors_preview_errors = require("../../../model/errors/preview-errors.js");
6
+ require("../../../model/index.js");
7
+ //#region src/onchain/preview/preview/replayInnerOperations.ts
8
+ /**
9
+ * Creates a {@link ReplayState} around the given account seed, with empty
10
+ * bookkeeping.
11
+ */
12
+ function makeReplayState(account) {
13
+ return {
14
+ account,
15
+ collateralAdded: new require_onchain_utils_AssetsMap.AssetsMap(),
16
+ collateralWithdrawn: new require_onchain_utils_AssetsMap.AssetsMap()
17
+ };
18
+ }
19
+ /**
20
+ * Replays a credit-facade multicall over `state`, mutating it in place in
21
+ * facade execution order. The result is the *minimal guaranteed* post-state.
22
+ *
23
+ * The function assumes that the call was generated by our frontend using
24
+ * router/withdrawal compressor, otherwise it answers the error on a malformed
25
+ * multicall; state is left as replayed up to that op.
26
+ *
27
+ * @returns `undefined` on success, the error on a malformed multicall.
28
+ */
29
+ function replayInnerOperations(sdk, multicall, state) {
30
+ let inBracket = false;
31
+ for (const op of multicall) switch (op.operation) {
32
+ case "AddCollateral":
33
+ applyAddCollateral(state, op);
34
+ break;
35
+ case "WithdrawCollateral":
36
+ applyWithdrawCollateral(state, op);
37
+ break;
38
+ case "IncreaseBorrowedAmount":
39
+ state.account.increaseDebt(op.amount);
40
+ break;
41
+ case "DecreaseBorrowedAmount":
42
+ state.account.repay(op.amount);
43
+ break;
44
+ case "UpdateQuota":
45
+ state.account.updateQuota(op.token, op.change);
46
+ break;
47
+ case "StoreExpectedBalances":
48
+ if (inBracket) return require_model_errors_preview_errors.malformedTransaction("nested storeExpectedBalances/compareBalances bracket");
49
+ inBracket = true;
50
+ for (const { token, balance } of op.deltas) state.account.balances.inc(token, balance);
51
+ break;
52
+ case "CompareBalances":
53
+ if (!inBracket) return require_model_errors_preview_errors.malformedTransaction("compareBalances without a preceding storeExpectedBalances");
54
+ inBracket = false;
55
+ break;
56
+ case "Execute": {
57
+ const error = applyExecute(sdk, op, inBracket, state.account.balances);
58
+ if (error) return error;
59
+ break;
60
+ }
61
+ }
62
+ if (inBracket) return require_model_errors_preview_errors.malformedTransaction("storeExpectedBalances without a matching compareBalances");
63
+ }
64
+ function applyAddCollateral(state, op) {
65
+ state.collateralAdded.inc(op.token, op.amount);
66
+ state.account.balances.inc(op.token, op.amount);
67
+ }
68
+ /**
69
+ * `MAX_UINT256` is the facade sentinel for "withdraw the entire balance", so
70
+ * it is resolved against the running balance at the point of the call.
71
+ */
72
+ function applyWithdrawCollateral(state, op) {
73
+ const running = state.account.balances.getOrZero(op.token);
74
+ const amount = op.amount === 115792089237316195423570985008687907853269984665640564039457584007913129639935n ? running > 0n ? running : 0n : op.amount;
75
+ state.account.balances.dec(op.token, amount);
76
+ state.collateralWithdrawn.inc(op.token, amount);
77
+ }
78
+ /**
79
+ * Replays an adapter `Execute` call against the running balances.
80
+ *
81
+ * Inside a bracket, the adapter's balance changes are previewed via
82
+ * {@link AbstractAdapterContract.previewBalanceChanges}. Outside a bracket,
83
+ * only calls that {@link AbstractAdapterContract.replayOutOfBracketCall}
84
+ * accepts are allowed; nothing enforces the outcome of any other out-of-bracket
85
+ * adapter call on-chain, so its effect on balances cannot be previewed.
86
+ */
87
+ function applyExecute(sdk, op, inBracket, balances) {
88
+ const adapter = sdk.getContract(op.adapter);
89
+ if (!inBracket) {
90
+ if (adapter instanceof require_onchain_market_adapters_contracts_AbstractAdapter.AbstractAdapterContract) try {
91
+ if (adapter.replayOutOfBracketCall(balances, op.calldata)) return;
92
+ } catch (e) {
93
+ const cause = e instanceof Error ? e : new Error(String(e));
94
+ return require_model_errors_preview_errors.malformedTransaction(`cannot replay out-of-bracket call to ${op.adapter}: ${cause.message}`, cause);
95
+ }
96
+ return require_model_errors_preview_errors.malformedTransaction(`call to ${op.adapter} outside of a storeExpectedBalances/compareBalances bracket`);
97
+ }
98
+ if (!(adapter instanceof require_onchain_market_adapters_contracts_AbstractAdapter.AbstractAdapterContract)) return require_model_errors_preview_errors.malformedTransaction(`call to ${op.adapter} between storeExpectedBalances and compareBalances is not an adapter call`);
99
+ try {
100
+ adapter.previewBalanceChanges(balances, op.calldata);
101
+ return;
102
+ } catch (e) {
103
+ const cause = e instanceof Error ? e : new Error(String(e));
104
+ return require_model_errors_preview_errors.malformedTransaction(`cannot replay adapter call to ${op.adapter}: ${cause.message}`, cause);
105
+ }
106
+ }
107
+ //#endregion
108
+ exports.makeReplayState = makeReplayState;
109
+ exports.replayInnerOperations = replayInnerOperations;
@@ -0,0 +1,22 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_model_result = require("../../../model/result.js");
3
+ require("../../../model/index.js");
4
+ const require_onchain_preview_preview_CreditAccountState = require("./CreditAccountState.js");
5
+ const require_onchain_preview_preview_replayInnerOperations = require("./replayInnerOperations.js");
6
+ //#region src/onchain/preview/preview/replayMulticall.ts
7
+ /**
8
+ * Replays the operation's multicall over the account's pre-resolved
9
+ * pre-state via {@link replayInnerOperations}.
10
+ */
11
+ function replayMulticall(sdk, operation, creditAccount) {
12
+ const before = require_onchain_preview_preview_CreditAccountState.CreditAccountState.fromCreditAccountData(creditAccount);
13
+ const after = require_onchain_preview_preview_replayInnerOperations.makeReplayState(before.clone());
14
+ const error = require_onchain_preview_preview_replayInnerOperations.replayInnerOperations(sdk, operation.multicall, after);
15
+ if (error) return require_model_result.sdkErr(error);
16
+ return require_model_result.sdkOk({
17
+ before,
18
+ after
19
+ });
20
+ }
21
+ //#endregion
22
+ exports.replayMulticall = replayMulticall;
@@ -1,9 +1,10 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_onchain_utils_AssetsMap = require("../../onchain/utils/AssetsMap.js");
3
- const require_onchain_constants_addresses = require("../../onchain/constants/addresses.js");
4
- require("../../onchain/index.js");
5
- const require_preview_preview_errors = require("./errors.js");
6
- //#region src/preview/preview/unwrapNativeCollateral.ts
2
+ const require_onchain_utils_AssetsMap = require("../../utils/AssetsMap.js");
3
+ const require_onchain_constants_addresses = require("../../constants/addresses.js");
4
+ const require_model_errors_preview_errors = require("../../../model/errors/preview-errors.js");
5
+ const require_model_result = require("../../../model/result.js");
6
+ require("../../../model/index.js");
7
+ //#region src/onchain/preview/preview/unwrapNativeCollateral.ts
7
8
  /**
8
9
  * Represents the transaction's attached native value as a `NATIVE_ADDRESS`
9
10
  * entry in the collateral list.
@@ -15,26 +16,22 @@ const require_preview_preview_errors = require("./errors.js");
15
16
  * reaches zero). Other entries are preserved.
16
17
  *
17
18
  * When `nativeAmount` is positive but the WETH collateral is missing or
18
- * smaller than it, the transaction is malformed: the collateral is returned
19
- * as-is (no unwrapping) together with an `invalidTransactionValue` warning.
19
+ * smaller than it, the transaction is malformed.
20
20
  *
21
21
  * @param collateral - Collateral assets as declared by the multicall.
22
22
  * @param nativeAmount - Transaction `msg.value`.
23
23
  * @param wethToken - Wrapped native token address.
24
24
  * @returns Collateral with the native amount unwrapped from the WETH entry,
25
- * plus the warning on a malformed transaction value.
25
+ * or `malformedTransaction` when `msg.value` does not fit the declared WETH.
26
26
  */
27
27
  function unwrapNativeCollateral(collateral, nativeAmount, wethToken) {
28
- if (nativeAmount === 0n) return { assets: collateral };
28
+ if (nativeAmount === 0n) return require_model_result.sdkOk(collateral);
29
29
  const balances = new require_onchain_utils_AssetsMap.AssetsMap(collateral);
30
30
  const wethBalance = balances.get(wethToken) ?? 0n;
31
- if (wethBalance < nativeAmount) return {
32
- assets: collateral,
33
- warning: require_preview_preview_errors.invalidTransactionValueError(nativeAmount, wethBalance)
34
- };
31
+ if (wethBalance < nativeAmount) return require_model_result.sdkErr(require_model_errors_preview_errors.malformedTransaction(`transaction value ${nativeAmount} exceeds WETH collateral ${wethBalance}`));
35
32
  balances.upsert(wethToken, wethBalance === nativeAmount ? void 0 : wethBalance - nativeAmount);
36
33
  balances.inc(require_onchain_constants_addresses.NATIVE_ADDRESS, nativeAmount);
37
- return { assets: balances.toAssets() };
34
+ return require_model_result.sdkOk(balances.toAssets());
38
35
  }
39
36
  //#endregion
40
37
  exports.unwrapNativeCollateral = unwrapNativeCollateral;
@@ -0,0 +1,20 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_onchain_validation_checks_checkQuotaCount = require("../checks/checkQuotaCount.js");
3
+ require("../checks/index.js");
4
+ //#region src/onchain/validation/bundles/checkAccountQuotas.ts
5
+ /**
6
+ * How many quoted tokens the account would end up holding, against the number
7
+ * the facade enables at once.
8
+ *
9
+ * Reads nothing but the projected account, so a parsed transaction and a
10
+ * simulated one are held to it by the same code — including the reading that a
11
+ * quota the operation zeroed out is no longer held.
12
+ */
13
+ function checkAccountQuotas(suite, account) {
14
+ return require_onchain_validation_checks_checkQuotaCount.checkQuotaCount({
15
+ count: account.quotas.filter((q) => q.value > 0n).length,
16
+ max: suite.creditManager.maxEnabledTokens
17
+ });
18
+ }
19
+ //#endregion
20
+ exports.checkAccountQuotas = checkAccountQuotas;
@@ -0,0 +1,59 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_onchain_utils_AssetsMap = require("../../utils/AssetsMap.js");
3
+ const require_onchain_constants_address_provider = require("../../constants/address-provider.js");
4
+ const require_onchain_constants_addresses = require("../../constants/addresses.js");
5
+ require("../../constants/index.js");
6
+ const require_model_errors_prepare_errors = require("../../../model/errors/prepare-errors.js");
7
+ require("../../../model/index.js");
8
+ const require_onchain_validation_bundles_checkWalletAllowance = require("./checkWalletAllowance.js");
9
+ const require_onchain_validation_bundles_checkWalletBalance = require("./checkWalletBalance.js");
10
+ //#region src/onchain/validation/bundles/checkCollateralFunding.ts
11
+ /**
12
+ * What the wallet must hold and have approved for the collateral the
13
+ * operation adds. Native value is already split out of `collateralAdded` as a
14
+ * `NATIVE_ADDRESS` entry; the facade wraps it into WETH, so the WETH allowance
15
+ * covers both halves.
16
+ */
17
+ async function checkCollateralFunding(input) {
18
+ const { sdk, preview, sender, blockNumber } = input;
19
+ const held = new require_onchain_utils_AssetsMap.AssetsMap(preview.collateralAdded.map((a) => ({
20
+ token: a.token.address,
21
+ balance: a.value
22
+ })));
23
+ if (held.size === 0) return [];
24
+ let spender;
25
+ try {
26
+ if (preview.operation === "OpenCreditAccount" || preview.operation === "RWAOpenCreditAccount") spender = await sdk.accounts.getApprovalAddress({
27
+ creditManager: preview.creditManager,
28
+ borrower: sender
29
+ });
30
+ else spender = await sdk.accounts.getApprovalAddress({
31
+ creditManager: preview.creditManager,
32
+ creditAccount: preview.creditAccount
33
+ });
34
+ } catch (cause) {
35
+ return [require_model_errors_prepare_errors.unexpectedFailure(cause, "resolve the approval address")];
36
+ }
37
+ const approved = held.clone();
38
+ const native = approved.get("0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE") ?? 0n;
39
+ if (native > 0n) {
40
+ approved.delete(require_onchain_constants_addresses.NATIVE_ADDRESS);
41
+ approved.inc(sdk.addressProvider.getAddress(require_onchain_constants_address_provider.AP_WETH_TOKEN, 0), native);
42
+ }
43
+ return (await Promise.all([...held.entries().map(([token, required]) => require_onchain_validation_bundles_checkWalletBalance.checkWalletBalance({
44
+ sdk,
45
+ token,
46
+ holder: sender,
47
+ required,
48
+ blockNumber
49
+ })), ...approved.entries().map(([token, required]) => require_onchain_validation_bundles_checkWalletAllowance.checkWalletAllowance({
50
+ sdk,
51
+ token,
52
+ owner: sender,
53
+ spender,
54
+ required,
55
+ blockNumber
56
+ }))])).flat();
57
+ }
58
+ //#endregion
59
+ exports.checkCollateralFunding = checkCollateralFunding;
@@ -0,0 +1,65 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_onchain_validation_helpers_token = require("../helpers/token.js");
3
+ require("../helpers/index.js");
4
+ const require_onchain_validation_checks_checkDebtLimits = require("../checks/checkDebtLimits.js");
5
+ require("../checks/index.js");
6
+ const require_onchain_validation_bundles_checkAccountQuotas = require("./checkAccountQuotas.js");
7
+ const require_onchain_validation_bundles_checkCollateralFunding = require("./checkCollateralFunding.js");
8
+ const require_onchain_validation_bundles_checkDraw = require("./checkDraw.js");
9
+ const require_onchain_validation_bundles_checkHealthFactors = require("./checkHealthFactors.js");
10
+ const require_onchain_validation_bundles_checkMarket = require("./checkMarket.js");
11
+ const require_onchain_validation_bundles_checkObtained = require("./checkObtained.js");
12
+ const require_onchain_validation_bundles_checkQuotasAsked = require("./checkQuotasAsked.js");
13
+ const require_onchain_validation_bundles_checkRWAOpening = require("./checkRWAOpening.js");
14
+ //#region src/onchain/validation/bundles/checkCreditOperation.ts
15
+ /**
16
+ * What the protocol stops a credit operation for, then what the wallet still
17
+ * has to hold, approve or sign.
18
+ *
19
+ * The array is in check order, most fundamental first: the market's own state,
20
+ * then what the facade would revert on, then what the operation asks the
21
+ * market for, then the account it leaves behind, and last the wallet's side.
22
+ */
23
+ async function checkCreditOperation(args) {
24
+ const { sdk, preview, sender, blockNumber, ...thresholds } = args;
25
+ const suite = sdk.marketRegister.findCreditManager(preview.creditManager);
26
+ const market = suite.market;
27
+ const underlying = require_onchain_validation_helpers_token.toToken(sdk, market.pool.underlying);
28
+ const isOpening = preview.operation === "OpenCreditAccount" || preview.operation === "RWAOpenCreditAccount";
29
+ const protocol = [
30
+ ...require_onchain_validation_bundles_checkMarket.checkMarket(suite),
31
+ ...require_onchain_validation_checks_checkDebtLimits.checkDebtLimits({
32
+ debt: preview.totalDebt.value,
33
+ minDebt: suite.creditFacade.minDebt,
34
+ maxDebt: suite.creditFacade.maxDebt,
35
+ underlying,
36
+ allowZero: !isOpening
37
+ }),
38
+ ...require_onchain_validation_bundles_checkDraw.checkDraw(suite, preview, underlying),
39
+ ...require_onchain_validation_bundles_checkObtained.checkObtained(suite, preview),
40
+ ...require_onchain_validation_bundles_checkAccountQuotas.checkAccountQuotas(suite, preview),
41
+ ...require_onchain_validation_bundles_checkQuotasAsked.checkQuotasAsked(market, preview, underlying),
42
+ ...require_onchain_validation_bundles_checkHealthFactors.checkHealthFactors({
43
+ totalDebt: preview.totalDebt,
44
+ healthFactor: preview.estHealthFactor,
45
+ safeHealthFactor: preview.estSafeHealthFactor
46
+ }, thresholds)
47
+ ];
48
+ const [funding, rwa] = await Promise.all([require_onchain_validation_bundles_checkCollateralFunding.checkCollateralFunding({
49
+ sdk,
50
+ preview,
51
+ sender,
52
+ blockNumber
53
+ }), preview.operation === "RWAOpenCreditAccount" ? require_onchain_validation_bundles_checkRWAOpening.checkRWAOpening({
54
+ sdk,
55
+ preview,
56
+ sender
57
+ }) : []]);
58
+ return [
59
+ ...protocol,
60
+ ...funding,
61
+ ...rwa
62
+ ];
63
+ }
64
+ //#endregion
65
+ exports.checkCreditOperation = checkCreditOperation;
@@ -0,0 +1,28 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_onchain_validation_checks_checkBorrowLimit = require("../checks/checkBorrowLimit.js");
3
+ require("../checks/index.js");
4
+ //#region src/onchain/validation/bundles/checkDraw.ts
5
+ /**
6
+ * What the transaction draws, against what the market can lend right now.
7
+ *
8
+ * Only a draw is weighed: repaying, or leaving the debt alone, can never exceed
9
+ * a ceiling. Opening borrows the whole debt; adjusting borrows
10
+ * `totalDebtChange`.
11
+ *
12
+ * The engine holds every simulation to this already (`assertCanBorrow`), so
13
+ * this is here for the transactions it never saw — a pasted calldata reaches
14
+ * the confirm screen with nothing else standing between it and a revert.
15
+ */
16
+ function checkDraw(suite, preview, underlying) {
17
+ const drawn = preview.operation === "AdjustCreditAccount" ? preview.totalDebtChange.value : preview.totalDebt.value;
18
+ if (drawn <= 0n) return [];
19
+ const { value, limit } = suite.maxBorrowAmount();
20
+ return require_onchain_validation_checks_checkBorrowLimit.checkBorrowLimit({
21
+ requested: drawn,
22
+ available: value,
23
+ limit,
24
+ underlying
25
+ });
26
+ }
27
+ //#endregion
28
+ exports.checkDraw = checkDraw;
@@ -0,0 +1,27 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_onchain_validation_checks_checkCollateralised = require("../checks/checkCollateralised.js");
3
+ require("../checks/index.js");
4
+ //#region src/onchain/validation/bundles/checkHealthFactors.ts
5
+ /**
6
+ * The account against whichever thresholds the caller holds it to, so a parsed
7
+ * transaction and a simulated one are weighed by the same code.
8
+ *
9
+ * A loan-free account is nothing to weigh: the health factor reports its
10
+ * zero-debt sentinel and no threshold applies.
11
+ */
12
+ function checkHealthFactors(account, thresholds) {
13
+ const { minHealthFactor, minSafeHealthFactor, currentHealthFactor } = thresholds;
14
+ if (account.totalDebt.value === 0n) return [];
15
+ return [...minHealthFactor === void 0 ? [] : require_onchain_validation_checks_checkCollateralised.checkCollateralised({
16
+ healthFactor: account.healthFactor,
17
+ healthFactorThreshold: minHealthFactor,
18
+ safePrices: false,
19
+ improvesFrom: currentHealthFactor
20
+ }), ...minSafeHealthFactor === void 0 ? [] : require_onchain_validation_checks_checkCollateralised.checkCollateralised({
21
+ healthFactor: account.safeHealthFactor,
22
+ healthFactorThreshold: minSafeHealthFactor,
23
+ safePrices: true
24
+ })];
25
+ }
26
+ //#endregion
27
+ exports.checkHealthFactors = checkHealthFactors;
@@ -0,0 +1,33 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_onchain_validation_checks_checkCreditAccountFrozen = require("../checks/checkCreditAccountFrozen.js");
3
+ const require_onchain_validation_checks_checkEmergencyLiquidator = require("../checks/checkEmergencyLiquidator.js");
4
+ const require_onchain_validation_checks_checkLiquidatorEligible = require("../checks/checkLiquidatorEligible.js");
5
+ require("../checks/index.js");
6
+ //#region src/onchain/validation/bundles/checkLiquidationEligibility.ts
7
+ /**
8
+ * Whether this wallet may liquidate this account, from the facts the
9
+ * compressor already reported and the market's emergency-liquidator list.
10
+ */
11
+ function checkLiquidationEligibility(input) {
12
+ const { sdk, details, liquidator } = input;
13
+ const market = sdk.marketRegister.findByCreditManager(details.creditManager);
14
+ return [
15
+ ...require_onchain_validation_checks_checkCreditAccountFrozen.checkCreditAccountFrozen({
16
+ frozen: details.isCreditAccountFrozen,
17
+ creditAccount: details.creditAccount
18
+ }),
19
+ ...require_onchain_validation_checks_checkEmergencyLiquidator.checkEmergencyLiquidator({
20
+ paused: details.paused,
21
+ isEmergencyLiquidator: market.isEmergencyLiquidator(liquidator),
22
+ creditManager: details.creditManager,
23
+ liquidator
24
+ }),
25
+ ...require_onchain_validation_checks_checkLiquidatorEligible.checkLiquidatorEligible({
26
+ eligible: details.isLiquidatorEligible,
27
+ kycProtocol: details.kycProtocol,
28
+ kycToken: details.kycToken
29
+ })
30
+ ];
31
+ }
32
+ //#endregion
33
+ exports.checkLiquidationEligibility = checkLiquidationEligibility;