@ledgerhq/live-common 34.54.0-nightly.20251209023841 → 34.54.0-nightly.20251209140356

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 (103) hide show
  1. package/lib/__tests__/test-helpers/environment.js +2 -0
  2. package/lib/__tests__/test-helpers/environment.js.map +1 -1
  3. package/lib/bridge/generic-alpaca/getAccountShape.d.ts.map +1 -1
  4. package/lib/bridge/generic-alpaca/getAccountShape.js +3 -2
  5. package/lib/bridge/generic-alpaca/getAccountShape.js.map +1 -1
  6. package/lib/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
  7. package/lib/bridge/generic-alpaca/prepareTransaction.js +7 -0
  8. package/lib/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
  9. package/lib/e2e/index.d.ts +6 -0
  10. package/lib/e2e/index.d.ts.map +1 -1
  11. package/lib/exchange/swap/getIncompatibleCurrencyKeys.d.ts.map +1 -1
  12. package/lib/exchange/swap/getIncompatibleCurrencyKeys.js +4 -0
  13. package/lib/exchange/swap/getIncompatibleCurrencyKeys.js.map +1 -1
  14. package/lib/exchange/swap/transactionStrategies.d.ts +2 -1
  15. package/lib/exchange/swap/transactionStrategies.d.ts.map +1 -1
  16. package/lib/exchange/swap/transactionStrategies.js +7 -6
  17. package/lib/exchange/swap/transactionStrategies.js.map +1 -1
  18. package/lib/featureFlags/defaultFeatures.d.ts +2 -0
  19. package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
  20. package/lib/featureFlags/defaultFeatures.js +2 -0
  21. package/lib/featureFlags/defaultFeatures.js.map +1 -1
  22. package/lib/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.d.ts.map +1 -1
  23. package/lib/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js +6 -0
  24. package/lib/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js.map +1 -1
  25. package/lib/wallet-api/Exchange/SwapError.d.ts +93 -0
  26. package/lib/wallet-api/Exchange/SwapError.d.ts.map +1 -0
  27. package/lib/wallet-api/Exchange/SwapError.js +142 -0
  28. package/lib/wallet-api/Exchange/SwapError.js.map +1 -0
  29. package/lib/wallet-api/Exchange/handleSwapErrors.d.ts +40 -0
  30. package/lib/wallet-api/Exchange/handleSwapErrors.d.ts.map +1 -0
  31. package/lib/wallet-api/Exchange/handleSwapErrors.js +112 -0
  32. package/lib/wallet-api/Exchange/handleSwapErrors.js.map +1 -0
  33. package/lib/wallet-api/Exchange/index.d.ts +4 -0
  34. package/lib/wallet-api/Exchange/index.d.ts.map +1 -0
  35. package/lib/wallet-api/Exchange/index.js +27 -0
  36. package/lib/wallet-api/Exchange/index.js.map +1 -0
  37. package/lib/wallet-api/Exchange/parser.d.ts +46 -0
  38. package/lib/wallet-api/Exchange/parser.d.ts.map +1 -0
  39. package/lib/wallet-api/Exchange/parser.js +97 -0
  40. package/lib/wallet-api/Exchange/parser.js.map +1 -0
  41. package/lib/wallet-api/Exchange/server.d.ts.map +1 -1
  42. package/lib/wallet-api/Exchange/server.js +226 -179
  43. package/lib/wallet-api/Exchange/server.js.map +1 -1
  44. package/lib-es/__tests__/test-helpers/environment.js +2 -0
  45. package/lib-es/__tests__/test-helpers/environment.js.map +1 -1
  46. package/lib-es/bridge/generic-alpaca/getAccountShape.d.ts.map +1 -1
  47. package/lib-es/bridge/generic-alpaca/getAccountShape.js +3 -2
  48. package/lib-es/bridge/generic-alpaca/getAccountShape.js.map +1 -1
  49. package/lib-es/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
  50. package/lib-es/bridge/generic-alpaca/prepareTransaction.js +7 -0
  51. package/lib-es/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
  52. package/lib-es/e2e/index.d.ts +6 -0
  53. package/lib-es/e2e/index.d.ts.map +1 -1
  54. package/lib-es/exchange/swap/getIncompatibleCurrencyKeys.d.ts.map +1 -1
  55. package/lib-es/exchange/swap/getIncompatibleCurrencyKeys.js +4 -0
  56. package/lib-es/exchange/swap/getIncompatibleCurrencyKeys.js.map +1 -1
  57. package/lib-es/exchange/swap/transactionStrategies.d.ts +2 -1
  58. package/lib-es/exchange/swap/transactionStrategies.d.ts.map +1 -1
  59. package/lib-es/exchange/swap/transactionStrategies.js +7 -6
  60. package/lib-es/exchange/swap/transactionStrategies.js.map +1 -1
  61. package/lib-es/featureFlags/defaultFeatures.d.ts +2 -0
  62. package/lib-es/featureFlags/defaultFeatures.d.ts.map +1 -1
  63. package/lib-es/featureFlags/defaultFeatures.js +2 -0
  64. package/lib-es/featureFlags/defaultFeatures.js.map +1 -1
  65. package/lib-es/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.d.ts.map +1 -1
  66. package/lib-es/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js +6 -0
  67. package/lib-es/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js.map +1 -1
  68. package/lib-es/wallet-api/Exchange/SwapError.d.ts +93 -0
  69. package/lib-es/wallet-api/Exchange/SwapError.d.ts.map +1 -0
  70. package/lib-es/wallet-api/Exchange/SwapError.js +128 -0
  71. package/lib-es/wallet-api/Exchange/SwapError.js.map +1 -0
  72. package/lib-es/wallet-api/Exchange/handleSwapErrors.d.ts +40 -0
  73. package/lib-es/wallet-api/Exchange/handleSwapErrors.d.ts.map +1 -0
  74. package/lib-es/wallet-api/Exchange/handleSwapErrors.js +106 -0
  75. package/lib-es/wallet-api/Exchange/handleSwapErrors.js.map +1 -0
  76. package/lib-es/wallet-api/Exchange/index.d.ts +4 -0
  77. package/lib-es/wallet-api/Exchange/index.d.ts.map +1 -0
  78. package/lib-es/wallet-api/Exchange/index.js +7 -0
  79. package/lib-es/wallet-api/Exchange/index.js.map +1 -0
  80. package/lib-es/wallet-api/Exchange/parser.d.ts +46 -0
  81. package/lib-es/wallet-api/Exchange/parser.d.ts.map +1 -0
  82. package/lib-es/wallet-api/Exchange/parser.js +90 -0
  83. package/lib-es/wallet-api/Exchange/parser.js.map +1 -0
  84. package/lib-es/wallet-api/Exchange/server.d.ts.map +1 -1
  85. package/lib-es/wallet-api/Exchange/server.js +223 -179
  86. package/lib-es/wallet-api/Exchange/server.js.map +1 -1
  87. package/package.json +73 -73
  88. package/src/__tests__/test-helpers/environment.ts +2 -0
  89. package/src/bridge/generic-alpaca/getAccountShape.ts +4 -2
  90. package/src/bridge/generic-alpaca/prepareTransaction.ts +7 -0
  91. package/src/bridge/generic-alpaca/tests/prepareTransaction.test.ts +42 -0
  92. package/src/exchange/swap/getIncompatibleCurrencyKeys.ts +4 -0
  93. package/src/exchange/swap/transactionStrategies.ts +8 -7
  94. package/src/featureFlags/defaultFeatures.ts +2 -0
  95. package/src/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.ts +6 -0
  96. package/src/wallet-api/Exchange/SwapError.test.ts +126 -0
  97. package/src/wallet-api/Exchange/SwapError.ts +159 -0
  98. package/src/wallet-api/Exchange/handleSwapErrors.test.ts +46 -0
  99. package/src/wallet-api/Exchange/handleSwapErrors.ts +161 -0
  100. package/src/wallet-api/Exchange/index.ts +26 -0
  101. package/src/wallet-api/Exchange/parser.test.ts +86 -0
  102. package/src/wallet-api/Exchange/parser.ts +119 -0
  103. package/src/wallet-api/Exchange/server.ts +287 -238
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Error Handler
3
+ * Decides how to handle errors - display to user, mark as handled, or throw
4
+ */
5
+ import { SwapError } from "./SwapError";
6
+ /**
7
+ * Default error names that should be marked as "handled"
8
+ * These are typically user input errors that can be retried
9
+ */
10
+ const DEFAULT_IGNORED_ERROR_NAMES = new Set([
11
+ "WrongDeviceForAccount",
12
+ "WrongDeviceForAccountPayout",
13
+ "WrongDeviceForAccountRefund",
14
+ "UserRefusedOnDevice",
15
+ ]);
16
+ /**
17
+ * Default error messages that should be marked as "handled"
18
+ */
19
+ const DEFAULT_IGNORED_MESSAGES = new Set(["User refused", "User rejected"]);
20
+ function isRecord(value) {
21
+ return typeof value === "object" && value !== null;
22
+ }
23
+ function hasCause(value) {
24
+ return "cause" in value;
25
+ }
26
+ function toCauseDetails(rawCause) {
27
+ if (!isRecord(rawCause)) {
28
+ return undefined;
29
+ }
30
+ const swapCode = typeof rawCause.swapCode === "string" ? rawCause.swapCode : undefined;
31
+ const name = typeof rawCause.name === "string" ? rawCause.name : undefined;
32
+ const message = typeof rawCause.message === "string" ? rawCause.message : undefined;
33
+ if (swapCode || name || message) {
34
+ return { swapCode, name, message };
35
+ }
36
+ return undefined;
37
+ }
38
+ function extractErrorDetails(value) {
39
+ if (value instanceof SwapError) {
40
+ return { message: value.message, cause: value.cause };
41
+ }
42
+ if (value instanceof Error) {
43
+ return {
44
+ message: value.message,
45
+ cause: hasCause(value) ? toCauseDetails(value.cause) : undefined,
46
+ };
47
+ }
48
+ if (isRecord(value) && typeof value.message === "string") {
49
+ const rawCause = "cause" in value ? value.cause : undefined;
50
+ const cause = toCauseDetails(rawCause);
51
+ return { message: value.message, cause };
52
+ }
53
+ return { message: typeof value === "string" ? value : JSON.stringify(value ?? "Unknown error") };
54
+ }
55
+ function markErrorAsHandled(error) {
56
+ if (isRecord(error)) {
57
+ Object.assign(error, { handled: true });
58
+ }
59
+ return error;
60
+ }
61
+ /**
62
+ * Handles errors by deciding whether to display them or mark as handled
63
+ *
64
+ * @param error - The error to handle
65
+ * @param options - Configuration options
66
+ * @throws Enhanced error with `handled` flag if applicable
67
+ */
68
+ export function handleErrors(error, options = {}) {
69
+ const { onDisplayError, ignoredErrorNames = [], ignoredMessages = [] } = options;
70
+ // Merge default and custom ignored values
71
+ const allIgnoredNames = new Set([...DEFAULT_IGNORED_ERROR_NAMES, ...ignoredErrorNames]);
72
+ const allIgnoredMessages = new Set([...DEFAULT_IGNORED_MESSAGES, ...ignoredMessages]);
73
+ const { message, cause } = extractErrorDetails(error);
74
+ // Check if error should be marked as handled (retry-ready)
75
+ const isIgnoredMessage = allIgnoredMessages.has(message);
76
+ const isIgnoredName = typeof cause?.name === "string" && allIgnoredNames.has(cause.name);
77
+ const isIgnoredSwapCode = cause?.swapCode === "swap003Ignored";
78
+ if (isIgnoredMessage || isIgnoredName || isIgnoredSwapCode) {
79
+ throw markErrorAsHandled(error);
80
+ }
81
+ // Display error to user if handler provided
82
+ if (error instanceof SwapError && onDisplayError) {
83
+ // Skip displaying "swap003Ignored" errors
84
+ if (cause?.swapCode !== "swap003Ignored") {
85
+ return onDisplayError(error);
86
+ }
87
+ }
88
+ // Always throw the error so caller can handle it
89
+ throw error;
90
+ }
91
+ /**
92
+ * Type guard to check if an error is marked as handled
93
+ */
94
+ export function isHandledError(error) {
95
+ return isRecord(error) && error.handled === true;
96
+ }
97
+ /**
98
+ * Extracts swap code from error if available
99
+ */
100
+ export function getSwapCode(error) {
101
+ if (error instanceof SwapError) {
102
+ return error.cause.swapCode;
103
+ }
104
+ return undefined;
105
+ }
106
+ //# sourceMappingURL=handleSwapErrors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleSwapErrors.js","sourceRoot":"","sources":["../../../src/wallet-api/Exchange/handleSwapErrors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { SwapError, NonceStepError, PayloadStepError, SignatureStepError, IgnoredSignatureStepError, NotEnoughFunds, ListAccountError, ListCurrencyError, UnknownAccountError, PayinExtraIdError, CompleteExchangeError, type CompleteExchangeStep, } from "./SwapError";
2
+ export { createStepError, StepError, CustomErrorType, type ParseError } from "./parser";
3
+ export { handleErrors, isHandledError, getSwapCode, type ErrorHandlerOptions, } from "./handleSwapErrors";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/wallet-api/Exchange/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EACzB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAGxF,OAAO,EACL,YAAY,EACZ,cAAc,EACd,WAAW,EACX,KAAK,mBAAmB,GACzB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,7 @@
1
+ // Export all error classes
2
+ export { SwapError, NonceStepError, PayloadStepError, SignatureStepError, IgnoredSignatureStepError, NotEnoughFunds, ListAccountError, ListCurrencyError, UnknownAccountError, PayinExtraIdError, CompleteExchangeError, } from "./SwapError";
3
+ // Export parser utilities
4
+ export { createStepError, StepError, CustomErrorType } from "./parser";
5
+ // Export error handler
6
+ export { handleErrors, isHandledError, getSwapCode, } from "./handleSwapErrors";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/wallet-api/Exchange/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,OAAO,EACL,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EACzB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,GAEtB,MAAM,aAAa,CAAC;AAErB,0BAA0B;AAC1B,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,EAAmB,MAAM,UAAU,CAAC;AAExF,uBAAuB;AACvB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,WAAW,GAEZ,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Error Parser
3
+ * Routes errors to appropriate error classes based on step and context
4
+ */
5
+ /**
6
+ * Transaction step where error occurred
7
+ */
8
+ export declare enum StepError {
9
+ NONCE = "NonceStepError",
10
+ PAYLOAD = "PayloadStepError",
11
+ SIGNATURE = "SignatureStepError",
12
+ IGNORED_SIGNATURE = "IgnoredSignatureStepError",
13
+ CHECK_FUNDS = "CheckFundsStepError",
14
+ LIST_ACCOUNT = "ListAccountStepError",
15
+ LIST_CURRENCY = "ListCurrencyStepError",
16
+ UNKNOWN_ACCOUNT = "UnknownAccountStepError",
17
+ PAYIN_EXTRA_ID = "PayinExtraIdStepError"
18
+ }
19
+ /**
20
+ * Input for error parsing
21
+ */
22
+ export declare enum CustomErrorType {
23
+ SWAP = "swap"
24
+ }
25
+ export type ParseError = {
26
+ error: Error;
27
+ step?: StepError;
28
+ customErrorType?: CustomErrorType;
29
+ };
30
+ /**
31
+ * Creates a step-specific error by wrapping the original error
32
+ *
33
+ * @param error - Original error that occurred
34
+ * @param step - Step where error occurred (optional)
35
+ * @returns Wrapped error or original error if no step specified
36
+ */
37
+ export declare function createStepError({ error, step }: ParseError): Error;
38
+ /**
39
+ * Parses an error to determine the correct error class to return based on the context.
40
+ */
41
+ export declare function parseError({ error, step, customErrorType }: ParseError): Error;
42
+ export declare const hasMessage: (value: unknown) => value is {
43
+ message?: unknown;
44
+ };
45
+ export declare const toError: (value: unknown) => Error;
46
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/wallet-api/Exchange/parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH;;GAEG;AACH,oBAAY,SAAS;IACnB,KAAK,mBAAmB;IACxB,OAAO,qBAAqB;IAC5B,SAAS,uBAAuB;IAChC,iBAAiB,8BAA8B;IAC/C,WAAW,wBAAwB;IACnC,YAAY,yBAAyB;IACrC,aAAa,0BAA0B;IACvC,eAAe,4BAA4B;IAC3C,cAAc,0BAA0B;CACzC;AAED;;GAEG;AACH,oBAAY,eAAe;IACzB,IAAI,SAAS;CACd;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,CAAC;AAiBF;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,UAAU,GAAG,KAAK,CAelE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,UAAU,GAAG,KAAK,CAM9E;AAED,eAAO,MAAM,UAAU,UAAW,OAAO;cAAwB,OAAO;CACL,CAAC;AAEpE,eAAO,MAAM,OAAO,UAAW,OAAO,KAAG,KAoBxC,CAAC"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Error Parser
3
+ * Routes errors to appropriate error classes based on step and context
4
+ */
5
+ import { IgnoredSignatureStepError, ListAccountError, ListCurrencyError, NonceStepError, NotEnoughFunds, PayinExtraIdError, PayloadStepError, SignatureStepError, UnknownAccountError, } from "./SwapError";
6
+ /**
7
+ * Transaction step where error occurred
8
+ */
9
+ export var StepError;
10
+ (function (StepError) {
11
+ StepError["NONCE"] = "NonceStepError";
12
+ StepError["PAYLOAD"] = "PayloadStepError";
13
+ StepError["SIGNATURE"] = "SignatureStepError";
14
+ StepError["IGNORED_SIGNATURE"] = "IgnoredSignatureStepError";
15
+ StepError["CHECK_FUNDS"] = "CheckFundsStepError";
16
+ StepError["LIST_ACCOUNT"] = "ListAccountStepError";
17
+ StepError["LIST_CURRENCY"] = "ListCurrencyStepError";
18
+ StepError["UNKNOWN_ACCOUNT"] = "UnknownAccountStepError";
19
+ StepError["PAYIN_EXTRA_ID"] = "PayinExtraIdStepError";
20
+ })(StepError || (StepError = {}));
21
+ /**
22
+ * Input for error parsing
23
+ */
24
+ export var CustomErrorType;
25
+ (function (CustomErrorType) {
26
+ CustomErrorType["SWAP"] = "swap";
27
+ })(CustomErrorType || (CustomErrorType = {}));
28
+ /**
29
+ * Maps step errors to error constructors
30
+ */
31
+ const ErrorMap = {
32
+ [StepError.NONCE]: NonceStepError,
33
+ [StepError.PAYLOAD]: PayloadStepError,
34
+ [StepError.SIGNATURE]: SignatureStepError,
35
+ [StepError.IGNORED_SIGNATURE]: IgnoredSignatureStepError,
36
+ [StepError.CHECK_FUNDS]: NotEnoughFunds,
37
+ [StepError.LIST_ACCOUNT]: ListAccountError,
38
+ [StepError.LIST_CURRENCY]: ListCurrencyError,
39
+ [StepError.UNKNOWN_ACCOUNT]: UnknownAccountError,
40
+ [StepError.PAYIN_EXTRA_ID]: PayinExtraIdError,
41
+ };
42
+ /**
43
+ * Creates a step-specific error by wrapping the original error
44
+ *
45
+ * @param error - Original error that occurred
46
+ * @param step - Step where error occurred (optional)
47
+ * @returns Wrapped error or original error if no step specified
48
+ */
49
+ export function createStepError({ error, step }) {
50
+ // If no step specified, return original error
51
+ if (!step) {
52
+ return error;
53
+ }
54
+ // Get error constructor for this step
55
+ const ErrorConstructor = ErrorMap[step];
56
+ if (!ErrorConstructor) {
57
+ return error;
58
+ }
59
+ // Wrap original error in step-specific error class
60
+ return new ErrorConstructor(error);
61
+ }
62
+ /**
63
+ * Parses an error to determine the correct error class to return based on the context.
64
+ */
65
+ export function parseError({ error, step, customErrorType }) {
66
+ if (!step || customErrorType !== CustomErrorType.SWAP) {
67
+ return error;
68
+ }
69
+ return createStepError({ error, step });
70
+ }
71
+ export const hasMessage = (value) => Boolean(value && typeof value === "object" && "message" in value);
72
+ export const toError = (value) => {
73
+ if (value instanceof Error) {
74
+ return value;
75
+ }
76
+ if (hasMessage(value) && typeof value.message === "string") {
77
+ return new Error(value.message);
78
+ }
79
+ return new Error(typeof value === "string"
80
+ ? value
81
+ : (() => {
82
+ try {
83
+ return JSON.stringify(value);
84
+ }
85
+ catch {
86
+ return String(value);
87
+ }
88
+ })());
89
+ };
90
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/wallet-api/Exchange/parser.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/wallet-api/Exchange/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/wallet-api/Exchange/server.ts"],"names":[],"mappings":"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"}