@layerswap/wallet-starknet 2.2.0 → 2.3.0

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.
@@ -1,5 +1,5 @@
1
- import { ActionMessageType } from '@layerswap/widget-types';
2
1
  import { KnownInternalNames } from "@layerswap/utils";
2
+ import { toTransferError } from "./toTransferError";
3
3
  const supportedNetworks = [
4
4
  KnownInternalNames.Networks.StarkNetMainnet,
5
5
  KnownInternalNames.Networks.StarkNetGoerli,
@@ -23,20 +23,7 @@ export function createStarknetTransfer() {
23
23
  return transaction_hash;
24
24
  }
25
25
  catch (error) {
26
- const e = new Error(error);
27
- e.message = error;
28
- if (error.message === "An error occurred (USER_REFUSED_OP)" || error.message === "Execute failed") {
29
- e.name = ActionMessageType.TransactionRejected;
30
- throw e;
31
- }
32
- else if (error === "failedTransfer") {
33
- e.name = ActionMessageType.TransactionFailed;
34
- throw e;
35
- }
36
- else {
37
- e.name = ActionMessageType.UnexpectedErrorMessage;
38
- throw e;
39
- }
26
+ throw toTransferError(error);
40
27
  }
41
28
  }
42
29
  };
@@ -0,0 +1,25 @@
1
+ import { ActionMessageType } from '@layerswap/widget-types';
2
+ import { errorMessage, userRejectedError, walletActionError } from '@layerswap/wallet-core/errors';
3
+ /**
4
+ * Map a failed Starknet `execute()` to the error the widget renders and the
5
+ * host is told about. `name` is UI copy; the classification travels as
6
+ * `reasonCode` and is only declared for a known wallet decline.
7
+ */
8
+ export function toTransferError(error) {
9
+ const message = errorMessage(error);
10
+ if (message === 'An error occurred (USER_REFUSED_OP)') {
11
+ return userRejectedError({ message, cause: error });
12
+ }
13
+ if (message === 'Execute failed') {
14
+ // Added as a rejection string by commit d2d98273a (2025-01-13, "include
15
+ // additional rejection message"); its wallet-side origin is unverified.
16
+ // The UI keeps the rejected copy, but no reasonCode is declared:
17
+ // classification falls through to unknown_error so the host is told.
18
+ // Promote to userRejectedError once telemetry `reason` confirms it is a decline.
19
+ return walletActionError(ActionMessageType.TransactionRejected, { message, cause: error });
20
+ }
21
+ if (error === 'failedTransfer') {
22
+ return walletActionError(ActionMessageType.TransactionFailed, { message, cause: error });
23
+ }
24
+ return walletActionError(ActionMessageType.UnexpectedErrorMessage, { message, cause: error });
25
+ }