@gearbox-protocol/sdk 16.0.0-next.42 → 16.0.0-next.44

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 (128) hide show
  1. package/dist/cjs/model/index.js +4 -0
  2. package/dist/cjs/model/result.js +27 -0
  3. package/dist/cjs/onchain/accounts/index.js +0 -2
  4. package/dist/cjs/onchain/accounts/intents/tail.js +1 -1
  5. package/dist/cjs/onchain/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.js +13 -7
  6. package/dist/cjs/onchain/accounts/withdrawal-compressor/errors.js +0 -19
  7. package/dist/cjs/onchain/accounts/withdrawal-compressor/index.js +1 -2
  8. package/dist/cjs/onchain/index.js +0 -5
  9. package/dist/cjs/onchain/market/index.js +0 -2
  10. package/dist/cjs/onchain/market/zapper/ZapperContract.js +15 -8
  11. package/dist/cjs/onchain/market/zapper/errors.js +0 -17
  12. package/dist/cjs/onchain/market/zapper/index.js +1 -2
  13. package/dist/cjs/onchain/validation/checks.js +1 -1
  14. package/dist/cjs/onchain/validation/index.js +0 -1
  15. package/dist/cjs/preview/index.js +2 -8
  16. package/dist/cjs/preview/parse/errors.js +0 -32
  17. package/dist/cjs/preview/parse/index.js +1 -5
  18. package/dist/cjs/preview/parse/parseOperationCalldata.js +28 -17
  19. package/dist/cjs/preview/parse/parsePoolOperationCalldata.js +17 -11
  20. package/dist/cjs/preview/prerequisites/checkPrerequisites.js +5 -2
  21. package/dist/cjs/preview/preview/detectDelayedClaim.js +9 -7
  22. package/dist/cjs/preview/preview/detectDelayedOperation.js +11 -4
  23. package/dist/cjs/preview/preview/errors.js +0 -16
  24. package/dist/cjs/preview/preview/index.js +1 -2
  25. package/dist/cjs/preview/preview/previewOperation.js +30 -11
  26. package/dist/cjs/preview/preview/previewPoolPositionOperation.js +7 -3
  27. package/dist/cjs/preview/simulate/errors.js +15 -24
  28. package/dist/cjs/preview/simulate/index.js +1 -1
  29. package/dist/cjs/preview/simulate/simulateOperation.js +6 -4
  30. package/dist/cjs/preview/simulate/simulatePoolOperation.js +6 -3
  31. package/dist/cjs/sdk/execute/ExecuteApi.js +1 -1
  32. package/dist/cjs/sdk/index.js +1 -1
  33. package/dist/cjs/sdk/prepare/PrepareApi.js +198 -278
  34. package/dist/cjs/sdk/prepare/errors.js +5 -2
  35. package/dist/cjs/sdk/prepare/index.js +1 -1
  36. package/dist/esm/dev/AccountOpener.js +1 -1
  37. package/dist/esm/dev/withdrawalUtils.js +1 -1
  38. package/dist/esm/model/index.js +2 -1
  39. package/dist/esm/model/result.js +24 -0
  40. package/dist/esm/onchain/accounts/CreditAccountsServiceV310.js +2 -2
  41. package/dist/esm/onchain/accounts/index.js +1 -2
  42. package/dist/esm/onchain/accounts/intents/tail.js +1 -1
  43. package/dist/esm/onchain/accounts/liquidations/LiquidationsService.js +1 -1
  44. package/dist/esm/onchain/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.js +14 -8
  45. package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV310Contract.js +1 -1
  46. package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV311Contract.js +1 -1
  47. package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV313Contract.js +1 -1
  48. package/dist/esm/onchain/accounts/withdrawal-compressor/errors.js +1 -19
  49. package/dist/esm/onchain/accounts/withdrawal-compressor/index.js +2 -2
  50. package/dist/esm/onchain/base/TokensMeta.js +3 -3
  51. package/dist/esm/onchain/core/createAddressProvider.js +1 -1
  52. package/dist/esm/onchain/index.js +2 -4
  53. package/dist/esm/onchain/market/adapters/contracts/AccountMigratorAdapterContract.js +1 -1
  54. package/dist/esm/onchain/market/adapters/contracts/ERC4626AdapterContract.js +1 -1
  55. package/dist/esm/onchain/market/credit/CreditFacadeV310BaseContract.js +1 -1
  56. package/dist/esm/onchain/market/index.js +1 -2
  57. package/dist/esm/onchain/market/pool/PoolV310Contract.js +1 -1
  58. package/dist/esm/onchain/market/zapper/IETHZapperContract.js +1 -1
  59. package/dist/esm/onchain/market/zapper/ZapperContract.js +16 -9
  60. package/dist/esm/onchain/market/zapper/errors.js +1 -17
  61. package/dist/esm/onchain/market/zapper/index.js +2 -2
  62. package/dist/esm/onchain/utils/viem/simulateWithPriceUpdates.js +1 -1
  63. package/dist/esm/onchain/validation/checks.js +1 -1
  64. package/dist/esm/onchain/validation/index.js +2 -2
  65. package/dist/esm/preview/index.js +3 -5
  66. package/dist/esm/preview/parse/errors.js +1 -30
  67. package/dist/esm/preview/parse/index.js +2 -3
  68. package/dist/esm/preview/parse/parseOperationCalldata.js +28 -17
  69. package/dist/esm/preview/parse/parsePoolOperationCalldata.js +17 -11
  70. package/dist/esm/preview/prerequisites/checkPrerequisites.js +5 -2
  71. package/dist/esm/preview/preview/detectDelayedClaim.js +9 -7
  72. package/dist/esm/preview/preview/detectDelayedOperation.js +11 -4
  73. package/dist/esm/preview/preview/errors.js +1 -16
  74. package/dist/esm/preview/preview/index.js +2 -2
  75. package/dist/esm/preview/preview/previewOperation.js +30 -11
  76. package/dist/esm/preview/preview/previewPoolPositionOperation.js +7 -3
  77. package/dist/esm/preview/simulate/errors.js +16 -24
  78. package/dist/esm/preview/simulate/index.js +2 -2
  79. package/dist/esm/preview/simulate/simulateOperation.js +6 -4
  80. package/dist/esm/preview/simulate/simulatePoolOperation.js +7 -4
  81. package/dist/esm/preview/trace/extractTransfers.js +1 -1
  82. package/dist/esm/sdk/execute/ExecuteApi.js +1 -1
  83. package/dist/esm/sdk/index.js +2 -2
  84. package/dist/esm/sdk/prepare/PrepareApi.js +199 -279
  85. package/dist/esm/sdk/prepare/errors.js +5 -2
  86. package/dist/esm/sdk/prepare/index.js +2 -2
  87. package/dist/types/model/errors.d.ts +4 -32
  88. package/dist/types/model/index.d.ts +3 -2
  89. package/dist/types/model/result.d.ts +48 -0
  90. package/dist/types/onchain/accounts/index.d.ts +1 -1
  91. package/dist/types/onchain/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.d.ts +6 -4
  92. package/dist/types/onchain/accounts/withdrawal-compressor/errors.d.ts +9 -5
  93. package/dist/types/onchain/accounts/withdrawal-compressor/index.d.ts +1 -1
  94. package/dist/types/onchain/accounts/withdrawal-compressor/types.d.ts +6 -4
  95. package/dist/types/onchain/index.d.ts +4 -4
  96. package/dist/types/onchain/market/index.d.ts +1 -1
  97. package/dist/types/onchain/market/zapper/ZapperContract.d.ts +7 -3
  98. package/dist/types/onchain/market/zapper/errors.d.ts +11 -6
  99. package/dist/types/onchain/market/zapper/index.d.ts +1 -1
  100. package/dist/types/onchain/market/zapper/types.d.ts +4 -1
  101. package/dist/types/onchain/validation/checks.d.ts +1 -1
  102. package/dist/types/onchain/validation/index.d.ts +2 -2
  103. package/dist/types/preview/index.d.ts +5 -3
  104. package/dist/types/preview/parse/errors.d.ts +19 -12
  105. package/dist/types/preview/parse/index.d.ts +1 -1
  106. package/dist/types/preview/parse/parseOperationCalldata.d.ts +5 -1
  107. package/dist/types/preview/parse/parsePoolOperationCalldata.d.ts +5 -2
  108. package/dist/types/preview/prerequisites/checkPrerequisites.d.ts +6 -1
  109. package/dist/types/preview/preview/detectDelayedClaim.d.ts +7 -6
  110. package/dist/types/preview/preview/detectDelayedOperation.d.ts +3 -1
  111. package/dist/types/preview/preview/errors.d.ts +8 -5
  112. package/dist/types/preview/preview/index.d.ts +2 -2
  113. package/dist/types/preview/preview/previewOperation.d.ts +21 -2
  114. package/dist/types/preview/preview/previewPoolPositionOperation.d.ts +3 -1
  115. package/dist/types/preview/simulate/errors.d.ts +12 -8
  116. package/dist/types/preview/simulate/index.d.ts +2 -2
  117. package/dist/types/preview/simulate/simulateOperation.d.ts +4 -1
  118. package/dist/types/preview/simulate/simulatePoolOperation.d.ts +4 -1
  119. package/dist/types/sdk/execute/types.d.ts +6 -11
  120. package/dist/types/sdk/index.d.ts +3 -3
  121. package/dist/types/sdk/prepare/PrepareApi.d.ts +29 -26
  122. package/dist/types/sdk/prepare/errors.d.ts +57 -20
  123. package/dist/types/sdk/prepare/index.d.ts +3 -3
  124. package/dist/types/sdk/prepare/types.d.ts +73 -74
  125. package/dist/types/sdk/preview/PreviewNamespace.d.ts +4 -1
  126. package/dist/types/sdk/preview/types.d.ts +7 -3
  127. package/dist/types/sdk/types.d.ts +1 -3
  128. package/package.json +11 -2
@@ -1,5 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_onchain_market_adapters_contracts_AbstractAdapter = require("../../onchain/market/adapters/contracts/AbstractAdapter.js");
3
+ const require_model_result = require("../../model/result.js");
4
+ require("../../model/index.js");
3
5
  require("../../onchain/index.js");
4
6
  //#region src/preview/preview/detectDelayedClaim.ts
5
7
  /**
@@ -30,16 +32,16 @@ function detectDelayedClaim(sdk, multicall) {
30
32
  * @param sdk - Attached SDK.
31
33
  * @param multicall - Parsed inner operations of the multicall.
32
34
  * @param blockNumber - Optional block number to read the log at.
33
- * @returns The decoded intent, or `undefined` when the multicall claims
34
- * nothing, the redemption logger is not deployed, or the log carries no
35
- * intent.
36
- * @throws InvalidDelayedIntentError when the logged `extraData` is non-empty
37
- * but cannot be decoded as a `DelayedIntent`.
35
+ * @returns The decoded intent behind `ok` (`undefined` when the multicall
36
+ * claims nothing, the redemption logger is not deployed, or the log carries
37
+ * no intent), or the `invalidDelayedIntent` refusal when the logged
38
+ * `extraData` is non-empty but cannot be decoded as a `DelayedIntent`.
38
39
  */
39
40
  async function resolveDelayedClaimIntent(sdk, multicall, blockNumber) {
40
41
  const claim = detectDelayedClaim(sdk, multicall);
41
- if (!claim) return;
42
- return sdk.redemptionLogger?.getDelayedIntent(claim.redeemer, blockNumber);
42
+ const logger = sdk.redemptionLogger;
43
+ if (!claim || !logger) return require_model_result.sdkOk(void 0);
44
+ return logger.getDelayedIntent(claim.redeemer, blockNumber);
43
45
  }
44
46
  //#endregion
45
47
  exports.detectDelayedClaim = detectDelayedClaim;
@@ -1,7 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_onchain_market_adapters_contracts_AbstractAdapter = require("../../onchain/market/adapters/contracts/AbstractAdapter.js");
3
+ const require_model_result = require("../../model/result.js");
4
+ require("../../model/index.js");
3
5
  const require_onchain_accounts_withdrawal_compressor_intent_codec = require("../../onchain/accounts/withdrawal-compressor/intent-codec.js");
4
- const require_onchain_accounts_withdrawal_compressor_errors = require("../../onchain/accounts/withdrawal-compressor/errors.js");
5
6
  require("../../onchain/index.js");
6
7
  let viem = require("viem");
7
8
  //#region src/preview/preview/detectDelayedOperation.ts
@@ -36,13 +37,19 @@ function detectDelayedOperation(sdk, multicall) {
36
37
  if (request.extraData && request.extraData !== "0x") try {
37
38
  intent = require_onchain_accounts_withdrawal_compressor_intent_codec.decodeDelayedIntent(request.extraData);
38
39
  } catch (e) {
39
- throw new require_onchain_accounts_withdrawal_compressor_errors.InvalidDelayedIntentError(request.extraData, e);
40
+ return require_model_result.sdkErr({
41
+ code: "invalidDelayedIntent",
42
+ message: `cannot decode delayed intent from extraData ${request.extraData}`,
43
+ extraData: request.extraData,
44
+ cause: e instanceof Error ? e : new Error(String(e))
45
+ });
40
46
  }
41
- return {
47
+ return require_model_result.sdkOk({
42
48
  request,
43
49
  intent
44
- };
50
+ });
45
51
  }
52
+ return require_model_result.sdkOk(void 0);
46
53
  }
47
54
  //#endregion
48
55
  exports.detectDelayedOperation = detectDelayedOperation;
@@ -1,17 +1 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region src/preview/preview/errors.ts
3
- /**
4
- * Thrown by `previewOperation` for parsed operations it cannot preview yet.
5
- * Currently only pool operations and credit account opening are supported.
6
- */
7
- var UnsupportedOperationError = class extends Error {
8
- /** The parsed operation kind (the `operation` discriminant). */
9
- operation;
10
- constructor(operation) {
11
- super(`operation "${operation}" is not supported by previewOperation`);
12
- this.name = "UnsupportedOperationError";
13
- this.operation = operation;
14
- }
15
- };
16
- //#endregion
17
- exports.UnsupportedOperationError = UnsupportedOperationError;
@@ -4,7 +4,7 @@ const require_preview_preview_CreditAccountState = require("./CreditAccountState
4
4
  const require_preview_preview_detectCloseOrRepay = require("./detectCloseOrRepay.js");
5
5
  const require_preview_preview_detectDelayedClaim = require("./detectDelayedClaim.js");
6
6
  const require_preview_preview_detectDelayedOperation = require("./detectDelayedOperation.js");
7
- const require_preview_preview_errors = require("./errors.js");
7
+ require("./errors.js");
8
8
  const require_preview_preview_estimateClaimableAt = require("./estimateClaimableAt.js");
9
9
  const require_preview_preview_replayInnerOperations = require("./replayInnerOperations.js");
10
10
  const require_preview_preview_replayMulticall = require("./replayMulticall.js");
@@ -12,7 +12,6 @@ const require_preview_preview_previewAdjustStrategyPosition = require("./preview
12
12
  const require_preview_preview_previewExitOrRepayStrategyPosition = require("./previewExitOrRepayStrategyPosition.js");
13
13
  const require_preview_preview_previewOperation = require("./previewOperation.js");
14
14
  exports.CreditAccountState = require_preview_preview_CreditAccountState.CreditAccountState;
15
- exports.UnsupportedOperationError = require_preview_preview_errors.UnsupportedOperationError;
16
15
  exports.buildDelayedStrategyPositionOperationPreview = require_preview_preview_buildDelayedStrategyPositionOperationPreview.buildDelayedStrategyPositionOperationPreview;
17
16
  exports.classifyCloseOrRepay = require_preview_preview_detectCloseOrRepay.classifyCloseOrRepay;
18
17
  exports.detectDelayedClaim = require_preview_preview_detectDelayedClaim.detectDelayedClaim;
@@ -1,4 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_model_result = require("../../model/result.js");
3
+ require("../../model/index.js");
2
4
  const require_preview_parse_parseOperationCalldata = require("../parse/parseOperationCalldata.js");
3
5
  const require_preview_parse_types = require("../parse/types.js");
4
6
  require("../parse/index.js");
@@ -6,7 +8,6 @@ const require_preview_preview_buildDelayedStrategyPositionOperationPreview = req
6
8
  const require_preview_preview_detectCloseOrRepay = require("./detectCloseOrRepay.js");
7
9
  const require_preview_preview_detectDelayedClaim = require("./detectDelayedClaim.js");
8
10
  const require_preview_preview_detectDelayedOperation = require("./detectDelayedOperation.js");
9
- const require_preview_preview_errors = require("./errors.js");
10
11
  const require_preview_preview_estimateClaimableAt = require("./estimateClaimableAt.js");
11
12
  const require_preview_preview_replayMulticall = require("./replayMulticall.js");
12
13
  const require_preview_preview_previewAdjustStrategyPosition = require("./previewAdjustStrategyPosition.js");
@@ -17,19 +18,33 @@ const require_preview_preview_previewPoolPositionOperation = require("./previewP
17
18
  /**
18
19
  * Previews a raw operation calldata: decodes it into a typed operation and
19
20
  * assembles an operation-specific, human-displayable preview.
21
+ *
22
+ * Answers an {@link SDKReturn} envelope: the preview behind `ok: true`, or —
23
+ * when the transaction is one the previewer refuses to read — a
24
+ * {@link PreviewOperationError} behind `ok: false`. A thrown exception
25
+ * still means the SDK could not do its job (a read failed, the targeted
26
+ * credit account could not be resolved), not a refusal of the transaction.
20
27
  */
21
28
  async function previewOperation(input, options) {
22
- const operation = require_preview_parse_parseOperationCalldata.parseOperationCalldata(input);
29
+ const parsed = require_preview_parse_parseOperationCalldata.parseOperationCalldata(input);
30
+ if (require_model_result.isSDKError(parsed)) return parsed;
31
+ const operation = parsed.data;
23
32
  if (require_preview_parse_types.isPoolOperation(operation)) return require_preview_preview_previewPoolPositionOperation.previewPoolPositionOperation(input, operation, options);
24
- if (operation.operation === "OpenCreditAccount" || operation.operation === "RWAOpenCreditAccount") return require_preview_preview_previewOpenStrategyPosition.previewOpenStrategyPosition(input, operation);
33
+ if (operation.operation === "OpenCreditAccount" || operation.operation === "RWAOpenCreditAccount") return require_model_result.sdkOk(await require_preview_preview_previewOpenStrategyPosition.previewOpenStrategyPosition(input, operation));
25
34
  if (operation.operation === "CloseCreditAccount") {
26
35
  const resolved = await resolveCreditAccount(input, operation, options);
27
36
  const preview = require_preview_preview_previewExitOrRepayStrategyPosition.previewExitOrRepayStrategyPosition(input, operation, true, resolved);
28
- preview.intent = await require_preview_preview_detectDelayedClaim.resolveDelayedClaimIntent(input.sdk, operation.multicall, options?.blockNumber);
29
- return preview;
37
+ const intent = await require_preview_preview_detectDelayedClaim.resolveDelayedClaimIntent(input.sdk, operation.multicall, options?.blockNumber);
38
+ if (require_model_result.isSDKError(intent)) return intent;
39
+ preview.intent = intent.data;
40
+ return require_model_result.sdkOk(preview);
30
41
  }
31
42
  if (operation.operation === "MultiCall" || operation.operation === "BotMulticall" || operation.operation === "RWAMulticall") return previewMulticallOperation(input, operation, await resolveCreditAccount(input, operation, options));
32
- throw new require_preview_preview_errors.UnsupportedOperationError(operation.operation);
43
+ return require_model_result.sdkErr({
44
+ code: "unsupportedOperation",
45
+ message: `operation "${operation.operation}" is not supported by previewOperation`,
46
+ operation: operation.operation
47
+ });
33
48
  }
34
49
  /**
35
50
  * Resolves the pre-state of the credit account an operation targets: uses the
@@ -55,10 +70,14 @@ async function resolveCreditAccount(input, operation, options) {
55
70
  async function previewMulticallOperation(input, operation, options) {
56
71
  const { sdk } = input;
57
72
  const instantPreview = require_preview_preview_detectCloseOrRepay.isCloseOrRepay(operation.multicall) ? require_preview_preview_previewExitOrRepayStrategyPosition.previewExitOrRepayStrategyPosition(input, operation, false, options) : require_preview_preview_previewAdjustStrategyPosition.previewAdjustStrategyPosition(input, operation, options);
58
- const delayed = require_preview_preview_detectDelayedOperation.detectDelayedOperation(sdk, operation.multicall);
73
+ const detected = require_preview_preview_detectDelayedOperation.detectDelayedOperation(sdk, operation.multicall);
74
+ if (require_model_result.isSDKError(detected)) return detected;
75
+ const delayed = detected.data;
59
76
  if (!delayed) {
60
- instantPreview.intent = await require_preview_preview_detectDelayedClaim.resolveDelayedClaimIntent(sdk, operation.multicall, options?.blockNumber);
61
- return instantPreview;
77
+ const intent = await require_preview_preview_detectDelayedClaim.resolveDelayedClaimIntent(sdk, operation.multicall, options?.blockNumber);
78
+ if (require_model_result.isSDKError(intent)) return intent;
79
+ instantPreview.intent = intent.data;
80
+ return require_model_result.sdkOk(instantPreview);
62
81
  }
63
82
  const { before, after } = require_preview_preview_replayMulticall.replayMulticall(sdk, operation, options);
64
83
  const market = sdk.marketRegister.findByCreditManager(operation.creditManager);
@@ -66,7 +85,7 @@ async function previewMulticallOperation(input, operation, options) {
66
85
  const meta = sdk.tokensMeta.get(market.underlying);
67
86
  const receivedToken = meta && sdk.tokensMeta.isRWAUnderlying(meta) ? meta.asset : market.underlying;
68
87
  const suite = sdk.marketRegister.findCreditManager(operation.creditManager);
69
- return {
88
+ return require_model_result.sdkOk({
70
89
  operation: "DelayedCreditAccountOperation",
71
90
  creditAccount: operation.creditAccount,
72
91
  ...suite.creditOperationMarket(),
@@ -76,7 +95,7 @@ async function previewMulticallOperation(input, operation, options) {
76
95
  estClaimableAt: require_preview_preview_estimateClaimableAt.estimateClaimableAt(sdk, delayed.request.phantomToken),
77
96
  instantPreview,
78
97
  delayedPreview: require_preview_preview_buildDelayedStrategyPositionOperationPreview.buildDelayedStrategyPositionOperationPreview(after.account, before, delayed, convert, receivedToken, sdk)
79
- };
98
+ });
80
99
  }
81
100
  //#endregion
82
101
  exports.previewOperation = previewOperation;
@@ -1,4 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_model_result = require("../../model/result.js");
3
+ require("../../model/index.js");
2
4
  const require_preview_simulate_simulatePoolOperation = require("../simulate/simulatePoolOperation.js");
3
5
  require("../simulate/index.js");
4
6
  //#region src/preview/preview/previewPoolPositionOperation.ts
@@ -6,13 +8,15 @@ async function previewPoolPositionOperation(input, operation, options) {
6
8
  const { sdk, to, calldata } = input;
7
9
  const { tokenIn, tokenOut } = operation;
8
10
  const market = sdk.marketRegister.findByPool(operation.pool);
9
- const sim = await require_preview_simulate_simulatePoolOperation.simulatePoolOperation({
11
+ const answer = await require_preview_simulate_simulatePoolOperation.simulatePoolOperation({
10
12
  sdk,
11
13
  operation,
12
14
  to,
13
15
  calldata
14
16
  }, options);
15
- return {
17
+ if (require_model_result.isSDKError(answer)) return answer;
18
+ const sim = answer.data;
19
+ return require_model_result.sdkOk({
16
20
  operation: operation.operation,
17
21
  pool: operation.pool,
18
22
  name: sdk.tokensMeta.mustGetToken(operation.pool).name,
@@ -20,7 +24,7 @@ async function previewPoolPositionOperation(input, operation, options) {
20
24
  shareRate: market.pool.pool.dieselRate,
21
25
  tokenIn: market.priceOracle.toTokenAmount(tokenIn, sim.amountIn),
22
26
  tokenOut: market.priceOracle.toTokenAmount(tokenOut, sim.amountOut)
23
- };
27
+ });
24
28
  }
25
29
  //#endregion
26
30
  exports.previewPoolPositionOperation = previewPoolPositionOperation;
@@ -2,34 +2,26 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_abi_errors = require("../../abi/errors.js");
3
3
  let viem = require("viem");
4
4
  //#region src/preview/simulate/errors.ts
5
- /**
6
- * Error returned by the pool simulation when it fails. It wraps the flow's
7
- * decoded revert reason (see {@link failures}).
8
- */
9
- var PreviewSimulationError = class extends viem.BaseError {
10
- name = "PreviewSimulationError";
11
- /** Per-flow decoded failures behind this error. */
12
- failures;
13
- constructor(failures) {
14
- const shortMessage = failures.length <= 1 ? failures[0]?.detail.reason ?? "simulation failed" : "all simulation flows failed";
15
- const cause = failures.find((f) => f.detail.cause instanceof Error)?.detail.cause;
16
- super(shortMessage, {
17
- metaMessages: failures.map((f) => `[${f.source}] ${f.detail.reason}`),
18
- cause
19
- });
20
- this.failures = failures;
21
- }
22
- };
5
+ function isPreviewSimulationError(value) {
6
+ return typeof value === "object" && value !== null && !(value instanceof Error) && value.code === "previewSimulationFailed";
7
+ }
23
8
  /**
24
9
  * Normalises an unknown rejection reason into a {@link PreviewSimulationError}.
25
10
  * Pass-through when it already is one; otherwise decodes it under `source`.
26
11
  */
27
12
  function asPreviewSimulationError(reason, source) {
28
- if (reason instanceof PreviewSimulationError) return reason;
29
- return new PreviewSimulationError([{
30
- source,
31
- detail: decodeSimulationError({ error: reason instanceof Error ? reason : new Error(String(reason)) })
32
- }]);
13
+ if (isPreviewSimulationError(reason)) return reason;
14
+ const error = reason instanceof Error ? reason : new Error(String(reason));
15
+ const detail = decodeSimulationError({ error });
16
+ return {
17
+ code: "previewSimulationFailed",
18
+ message: detail.reason,
19
+ failures: [{
20
+ source,
21
+ detail
22
+ }],
23
+ cause: error
24
+ };
33
25
  }
34
26
  /**
35
27
  * Decodes a simulated call revert into a {@link SimulationError}.
@@ -77,6 +69,5 @@ function formatDecodedError(errorName, args) {
77
69
  return `${errorName}(${args.map((arg) => String(arg)).join(", ")})`;
78
70
  }
79
71
  //#endregion
80
- exports.PreviewSimulationError = PreviewSimulationError;
81
72
  exports.asPreviewSimulationError = asPreviewSimulationError;
82
73
  exports.decodeSimulationError = decodeSimulationError;
@@ -4,7 +4,7 @@ const require_preview_simulate_simulateFacadeOperation = require("./simulateFaca
4
4
  const require_preview_simulate_simulatePoolOperation = require("./simulatePoolOperation.js");
5
5
  const require_preview_simulate_simulateRWAOperation = require("./simulateRWAOperation.js");
6
6
  const require_preview_simulate_simulateOperation = require("./simulateOperation.js");
7
- exports.PreviewSimulationError = require_preview_simulate_errors.PreviewSimulationError;
7
+ exports.asPreviewSimulationError = require_preview_simulate_errors.asPreviewSimulationError;
8
8
  exports.simulateFacadeOperation = require_preview_simulate_simulateFacadeOperation.simulateFacadeOperation;
9
9
  exports.simulateOperation = require_preview_simulate_simulateOperation.simulateOperation;
10
10
  exports.simulatePoolOperation = require_preview_simulate_simulatePoolOperation.simulatePoolOperation;
@@ -1,4 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_model_result = require("../../model/result.js");
3
+ require("../../model/index.js");
2
4
  const require_preview_parse_types = require("../parse/types.js");
3
5
  require("../parse/index.js");
4
6
  const require_preview_simulate_simulateFacadeOperation = require("./simulateFacadeOperation.js");
@@ -14,14 +16,14 @@ async function simulateOperation(input, options) {
14
16
  ...input,
15
17
  operation
16
18
  }, options);
17
- if (require_preview_parse_types.isRWAOperation(operation)) return require_preview_simulate_simulateRWAOperation.simulateRWAOperation({
19
+ if (require_preview_parse_types.isRWAOperation(operation)) return require_model_result.sdkOk(await require_preview_simulate_simulateRWAOperation.simulateRWAOperation({
18
20
  ...input,
19
21
  operation
20
- }, options);
21
- return require_preview_simulate_simulateFacadeOperation.simulateFacadeOperation({
22
+ }, options));
23
+ return require_model_result.sdkOk(await require_preview_simulate_simulateFacadeOperation.simulateFacadeOperation({
22
24
  ...input,
23
25
  operation
24
- }, options);
26
+ }, options));
25
27
  }
26
28
  //#endregion
27
29
  exports.simulateOperation = simulateOperation;
@@ -1,6 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_abi_iZapper = require("../../abi/iZapper.js");
3
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");
4
6
  const require_preview_simulate_errors = require("./errors.js");
5
7
  //#region src/preview/simulate/simulatePoolOperation.ts
6
8
  function previewRead(operation) {
@@ -90,14 +92,15 @@ async function simulatePoolOperation(input, options = {}) {
90
92
  const { sdk, operation } = input;
91
93
  const { blockNumber, logger } = options;
92
94
  try {
93
- return amountsInOut(operation, await sdk.client.readContract({
95
+ const previewAmount = await sdk.client.readContract({
94
96
  blockNumber,
95
97
  ...previewContract(operation)
96
- }));
98
+ });
99
+ return require_model_result.sdkOk(amountsInOut(operation, previewAmount));
97
100
  } catch (cause) {
98
101
  const error = require_preview_simulate_errors.asPreviewSimulationError(cause, "multicall");
99
102
  logger?.error(error, "pool operation simulation failed");
100
- throw error;
103
+ return require_model_result.sdkErr(error);
101
104
  }
102
105
  }
103
106
  //#endregion
@@ -12,7 +12,7 @@ var ExecuteApi = class {
12
12
  * {@inheritDoc IOpportunitiesExecute.buildTx}
13
13
  **/
14
14
  async buildTx(request) {
15
- if (!request.sim.success) throw new Error(`cannot build a transaction from a failed ${request.kind} preparation`);
15
+ if (!request.sim.ok) throw new Error(`cannot build a transaction from a failed ${request.kind} preparation`);
16
16
  const sdk = this.#chainOf(request.chainId);
17
17
  switch (request.kind) {
18
18
  case "pool": return poolTx(sdk, request);
@@ -52,5 +52,5 @@ exports.mergeChainOne = require_sdk_utils_mergeChains.mergeChainOne;
52
52
  exports.noStrategyTargetCollateral = require_sdk_prepare_errors.noStrategyTargetCollateral;
53
53
  exports.raise = require_onchain_validation_refusal.raise;
54
54
  exports.refuse = require_onchain_validation_refusal.refuse;
55
- exports.toPrepareError = require_sdk_prepare_errors.toPrepareError;
55
+ exports.toRefusalError = require_sdk_prepare_errors.toRefusalError;
56
56
  exports.unexpectedFailure = require_sdk_prepare_errors.unexpectedFailure;