@metamask/smart-transactions-controller 21.1.0 → 22.0.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.
Files changed (73) hide show
  1. package/CHANGELOG.md +13 -1
  2. package/README.md +47 -0
  3. package/dist/SmartTransactionsController.cjs +20 -6
  4. package/dist/SmartTransactionsController.cjs.map +1 -1
  5. package/dist/SmartTransactionsController.d.cts +13 -5
  6. package/dist/SmartTransactionsController.d.cts.map +1 -1
  7. package/dist/SmartTransactionsController.d.mts +13 -5
  8. package/dist/SmartTransactionsController.d.mts.map +1 -1
  9. package/dist/SmartTransactionsController.mjs +21 -7
  10. package/dist/SmartTransactionsController.mjs.map +1 -1
  11. package/dist/constants.cjs +21 -1
  12. package/dist/constants.cjs.map +1 -1
  13. package/dist/constants.d.cts +20 -0
  14. package/dist/constants.d.cts.map +1 -1
  15. package/dist/constants.d.mts +20 -0
  16. package/dist/constants.d.mts.map +1 -1
  17. package/dist/constants.mjs +20 -0
  18. package/dist/constants.mjs.map +1 -1
  19. package/dist/featureFlags/feature-flags.cjs +119 -0
  20. package/dist/featureFlags/feature-flags.cjs.map +1 -0
  21. package/dist/featureFlags/feature-flags.d.cts +76 -0
  22. package/dist/featureFlags/feature-flags.d.cts.map +1 -0
  23. package/dist/featureFlags/feature-flags.d.mts +76 -0
  24. package/dist/featureFlags/feature-flags.d.mts.map +1 -0
  25. package/dist/featureFlags/feature-flags.mjs +112 -0
  26. package/dist/featureFlags/feature-flags.mjs.map +1 -0
  27. package/dist/featureFlags/index.cjs +14 -0
  28. package/dist/featureFlags/index.cjs.map +1 -0
  29. package/dist/featureFlags/index.d.cts +3 -0
  30. package/dist/featureFlags/index.d.cts.map +1 -0
  31. package/dist/featureFlags/index.d.mts +3 -0
  32. package/dist/featureFlags/index.d.mts.map +1 -0
  33. package/dist/featureFlags/index.mjs +3 -0
  34. package/dist/featureFlags/index.mjs.map +1 -0
  35. package/dist/featureFlags/validators.cjs +126 -0
  36. package/dist/featureFlags/validators.cjs.map +1 -0
  37. package/dist/featureFlags/validators.d.cts +141 -0
  38. package/dist/featureFlags/validators.d.cts.map +1 -0
  39. package/dist/featureFlags/validators.d.mts +141 -0
  40. package/dist/featureFlags/validators.d.mts.map +1 -0
  41. package/dist/featureFlags/validators.mjs +121 -0
  42. package/dist/featureFlags/validators.mjs.map +1 -0
  43. package/dist/index.cjs +5 -1
  44. package/dist/index.cjs.map +1 -1
  45. package/dist/index.d.cts +2 -1
  46. package/dist/index.d.cts.map +1 -1
  47. package/dist/index.d.mts +2 -1
  48. package/dist/index.d.mts.map +1 -1
  49. package/dist/index.mjs +2 -0
  50. package/dist/index.mjs.map +1 -1
  51. package/dist/selectors.cjs +66 -0
  52. package/dist/selectors.cjs.map +1 -0
  53. package/dist/selectors.d.cts +177 -0
  54. package/dist/selectors.d.cts.map +1 -0
  55. package/dist/selectors.d.mts +177 -0
  56. package/dist/selectors.d.mts.map +1 -0
  57. package/dist/selectors.mjs +63 -0
  58. package/dist/selectors.mjs.map +1 -0
  59. package/dist/types.cjs.map +1 -1
  60. package/dist/types.d.cts +24 -1
  61. package/dist/types.d.cts.map +1 -1
  62. package/dist/types.d.mts +24 -1
  63. package/dist/types.d.mts.map +1 -1
  64. package/dist/types.mjs.map +1 -1
  65. package/dist/utils.cjs +5 -7
  66. package/dist/utils.cjs.map +1 -1
  67. package/dist/utils.d.cts +4 -4
  68. package/dist/utils.d.cts.map +1 -1
  69. package/dist/utils.d.mts +4 -4
  70. package/dist/utils.d.mts.map +1 -1
  71. package/dist/utils.mjs +5 -7
  72. package/dist/utils.mjs.map +1 -1
  73. package/package.json +9 -5
@@ -0,0 +1,177 @@
1
+ import type { CaipChainId, Hex } from "@metamask/utils";
2
+ import type { SmartTransactionsFeatureFlagsConfig } from "./types.cjs";
3
+ /**
4
+ * The state shape expected by the smart transactions feature flag selectors.
5
+ * This represents the relevant portion of the remote feature flag controller state.
6
+ */
7
+ export declare type SmartTransactionsFeatureFlagsState = {
8
+ remoteFeatureFlags?: {
9
+ smartTransactionsNetworks?: unknown;
10
+ };
11
+ };
12
+ /**
13
+ * Selects and validates the smart transactions feature flags from state.
14
+ * Returns the validated configuration or defaults if invalid.
15
+ * If you need to get the feature flags for a specific chain, use `selectSmartTransactionsFeatureFlagsForChain`.
16
+ *
17
+ * @param state - The state containing remoteFeatureFlags.smartTransactionsNetworks
18
+ * @returns The validated smart transactions feature flags configuration
19
+ * @example
20
+ * ```ts
21
+ * // In a React component
22
+ * const featureFlags = useSelector(selectSmartTransactionsFeatureFlags);
23
+ *
24
+ * // Or with reselect composition
25
+ * const selectIsExtensionActive = createSelector(
26
+ * selectSmartTransactionsFeatureFlags,
27
+ * (flags) => flags.default?.extensionActive ?? false
28
+ * );
29
+ * ```
30
+ */
31
+ export declare const selectSmartTransactionsFeatureFlags: ((state: SmartTransactionsFeatureFlagsState) => SmartTransactionsFeatureFlagsConfig) & {
32
+ clearCache: () => void;
33
+ resultsCount: () => number;
34
+ resetResultsCount: () => void;
35
+ } & {
36
+ resultFunc: (resultFuncArgs_0: any) => SmartTransactionsFeatureFlagsConfig;
37
+ memoizedResultFunc: ((resultFuncArgs_0: any) => SmartTransactionsFeatureFlagsConfig) & {
38
+ clearCache: () => void;
39
+ resultsCount: () => number;
40
+ resetResultsCount: () => void;
41
+ };
42
+ lastResult: () => SmartTransactionsFeatureFlagsConfig;
43
+ dependencies: [(state: SmartTransactionsFeatureFlagsState) => unknown];
44
+ recomputations: () => number;
45
+ resetRecomputations: () => void;
46
+ dependencyRecomputations: () => number;
47
+ resetDependencyRecomputations: () => void;
48
+ } & {
49
+ memoize: typeof import("reselect").weakMapMemoize;
50
+ argsMemoize: typeof import("reselect").weakMapMemoize;
51
+ };
52
+ /**
53
+ * Selects the merged feature flags configuration for a specific chain.
54
+ * Chain-specific configuration takes precedence over default configuration.
55
+ *
56
+ * For EVM chains, the chain ID is normalized to hex format before lookup.
57
+ * This means both '0x1' and 'eip155:1' will resolve to the same configuration.
58
+ * Non-EVM chains (e.g., Solana, Bitcoin) use exact match.
59
+ *
60
+ * @param _state - The state containing remoteFeatureFlags.smartTransactionsNetworks
61
+ * @param chainId - The chain ID to get configuration for.
62
+ * Supports both hex (e.g., "0x1") and CAIP-2 format (e.g., "eip155:1", "solana:...")
63
+ * @returns The merged configuration for the specified chain
64
+ * @example
65
+ * ```ts
66
+ * // Both resolve to the same config (normalized to 0x1)
67
+ * const chainConfig = useSelector((state) =>
68
+ * selectSmartTransactionsFeatureFlagsForChain(state, '0x1')
69
+ * );
70
+ * const sameConfig = useSelector((state) =>
71
+ * selectSmartTransactionsFeatureFlagsForChain(state, 'eip155:1')
72
+ * );
73
+ *
74
+ * // Non-EVM uses exact match
75
+ * const solanaConfig = useSelector((state) =>
76
+ * selectSmartTransactionsFeatureFlagsForChain(state, 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp')
77
+ * );
78
+ *
79
+ * if (chainConfig.extensionActive) {
80
+ * // Smart transactions are enabled
81
+ * }
82
+ * ```
83
+ */
84
+ export declare const selectSmartTransactionsFeatureFlagsForChain: ((state: SmartTransactionsFeatureFlagsState, chainId: `0x${string}` | `${string}:${string}`) => {
85
+ extensionActive?: boolean | undefined;
86
+ mobileActive?: boolean | undefined;
87
+ mobileActiveIOS?: boolean | undefined;
88
+ mobileActiveAndroid?: boolean | undefined;
89
+ expectedDeadline?: number | undefined;
90
+ maxDeadline?: number | undefined;
91
+ extensionReturnTxHashAsap?: boolean | undefined;
92
+ extensionReturnTxHashAsapBatch?: boolean | undefined;
93
+ mobileReturnTxHashAsap?: boolean | undefined;
94
+ extensionSkipSmartTransactionStatusPage?: boolean | undefined;
95
+ batchStatusPollingInterval?: number | undefined;
96
+ sentinelUrl?: string | undefined;
97
+ }) & {
98
+ clearCache: () => void;
99
+ resultsCount: () => number;
100
+ resetResultsCount: () => void;
101
+ } & {
102
+ resultFunc: (resultFuncArgs_0: SmartTransactionsFeatureFlagsConfig, resultFuncArgs_1: `0x${string}` | `${string}:${string}`) => {
103
+ extensionActive?: boolean | undefined;
104
+ mobileActive?: boolean | undefined;
105
+ mobileActiveIOS?: boolean | undefined;
106
+ mobileActiveAndroid?: boolean | undefined;
107
+ expectedDeadline?: number | undefined;
108
+ maxDeadline?: number | undefined;
109
+ extensionReturnTxHashAsap?: boolean | undefined;
110
+ extensionReturnTxHashAsapBatch?: boolean | undefined;
111
+ mobileReturnTxHashAsap?: boolean | undefined;
112
+ extensionSkipSmartTransactionStatusPage?: boolean | undefined;
113
+ batchStatusPollingInterval?: number | undefined;
114
+ sentinelUrl?: string | undefined;
115
+ };
116
+ memoizedResultFunc: ((resultFuncArgs_0: SmartTransactionsFeatureFlagsConfig, resultFuncArgs_1: `0x${string}` | `${string}:${string}`) => {
117
+ extensionActive?: boolean | undefined;
118
+ mobileActive?: boolean | undefined;
119
+ mobileActiveIOS?: boolean | undefined;
120
+ mobileActiveAndroid?: boolean | undefined;
121
+ expectedDeadline?: number | undefined;
122
+ maxDeadline?: number | undefined;
123
+ extensionReturnTxHashAsap?: boolean | undefined;
124
+ extensionReturnTxHashAsapBatch?: boolean | undefined;
125
+ mobileReturnTxHashAsap?: boolean | undefined;
126
+ extensionSkipSmartTransactionStatusPage?: boolean | undefined;
127
+ batchStatusPollingInterval?: number | undefined;
128
+ sentinelUrl?: string | undefined;
129
+ }) & {
130
+ clearCache: () => void;
131
+ resultsCount: () => number;
132
+ resetResultsCount: () => void;
133
+ };
134
+ lastResult: () => {
135
+ extensionActive?: boolean | undefined;
136
+ mobileActive?: boolean | undefined;
137
+ mobileActiveIOS?: boolean | undefined;
138
+ mobileActiveAndroid?: boolean | undefined;
139
+ expectedDeadline?: number | undefined;
140
+ maxDeadline?: number | undefined;
141
+ extensionReturnTxHashAsap?: boolean | undefined;
142
+ extensionReturnTxHashAsapBatch?: boolean | undefined;
143
+ mobileReturnTxHashAsap?: boolean | undefined;
144
+ extensionSkipSmartTransactionStatusPage?: boolean | undefined;
145
+ batchStatusPollingInterval?: number | undefined;
146
+ sentinelUrl?: string | undefined;
147
+ };
148
+ dependencies: [((state: SmartTransactionsFeatureFlagsState) => SmartTransactionsFeatureFlagsConfig) & {
149
+ clearCache: () => void;
150
+ resultsCount: () => number;
151
+ resetResultsCount: () => void;
152
+ } & {
153
+ resultFunc: (resultFuncArgs_0: any) => SmartTransactionsFeatureFlagsConfig;
154
+ memoizedResultFunc: ((resultFuncArgs_0: any) => SmartTransactionsFeatureFlagsConfig) & {
155
+ clearCache: () => void;
156
+ resultsCount: () => number;
157
+ resetResultsCount: () => void;
158
+ };
159
+ lastResult: () => SmartTransactionsFeatureFlagsConfig;
160
+ dependencies: [(state: SmartTransactionsFeatureFlagsState) => unknown];
161
+ recomputations: () => number;
162
+ resetRecomputations: () => void;
163
+ dependencyRecomputations: () => number;
164
+ resetDependencyRecomputations: () => void;
165
+ } & {
166
+ memoize: typeof import("reselect").weakMapMemoize;
167
+ argsMemoize: typeof import("reselect").weakMapMemoize;
168
+ }, (_state: SmartTransactionsFeatureFlagsState, chainId: Hex | CaipChainId) => `0x${string}` | `${string}:${string}`];
169
+ recomputations: () => number;
170
+ resetRecomputations: () => void;
171
+ dependencyRecomputations: () => number;
172
+ resetDependencyRecomputations: () => void;
173
+ } & {
174
+ memoize: typeof import("reselect").weakMapMemoize;
175
+ argsMemoize: typeof import("reselect").weakMapMemoize;
176
+ };
177
+ //# sourceMappingURL=selectors.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectors.d.cts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,wBAAwB;AAOxD,OAAO,KAAK,EACV,mCAAmC,EAEpC,oBAAgB;AAEjB;;;GAGG;AACH,oBAAY,kCAAkC,GAAG;IAC/C,kBAAkB,CAAC,EAAE;QACnB,yBAAyB,CAAC,EAAE,OAAO,CAAC;KACrC,CAAC;CACH,CAAC;AAQF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;CAI/C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,2CAA2C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG3C,kCAAkC,WAAW,GAAG,GAAG,WAAW;;;;;;;;CAK1E,CAAC"}
@@ -0,0 +1,177 @@
1
+ import type { CaipChainId, Hex } from "@metamask/utils";
2
+ import type { SmartTransactionsFeatureFlagsConfig } from "./types.mjs";
3
+ /**
4
+ * The state shape expected by the smart transactions feature flag selectors.
5
+ * This represents the relevant portion of the remote feature flag controller state.
6
+ */
7
+ export declare type SmartTransactionsFeatureFlagsState = {
8
+ remoteFeatureFlags?: {
9
+ smartTransactionsNetworks?: unknown;
10
+ };
11
+ };
12
+ /**
13
+ * Selects and validates the smart transactions feature flags from state.
14
+ * Returns the validated configuration or defaults if invalid.
15
+ * If you need to get the feature flags for a specific chain, use `selectSmartTransactionsFeatureFlagsForChain`.
16
+ *
17
+ * @param state - The state containing remoteFeatureFlags.smartTransactionsNetworks
18
+ * @returns The validated smart transactions feature flags configuration
19
+ * @example
20
+ * ```ts
21
+ * // In a React component
22
+ * const featureFlags = useSelector(selectSmartTransactionsFeatureFlags);
23
+ *
24
+ * // Or with reselect composition
25
+ * const selectIsExtensionActive = createSelector(
26
+ * selectSmartTransactionsFeatureFlags,
27
+ * (flags) => flags.default?.extensionActive ?? false
28
+ * );
29
+ * ```
30
+ */
31
+ export declare const selectSmartTransactionsFeatureFlags: ((state: SmartTransactionsFeatureFlagsState) => SmartTransactionsFeatureFlagsConfig) & {
32
+ clearCache: () => void;
33
+ resultsCount: () => number;
34
+ resetResultsCount: () => void;
35
+ } & {
36
+ resultFunc: (resultFuncArgs_0: any) => SmartTransactionsFeatureFlagsConfig;
37
+ memoizedResultFunc: ((resultFuncArgs_0: any) => SmartTransactionsFeatureFlagsConfig) & {
38
+ clearCache: () => void;
39
+ resultsCount: () => number;
40
+ resetResultsCount: () => void;
41
+ };
42
+ lastResult: () => SmartTransactionsFeatureFlagsConfig;
43
+ dependencies: [(state: SmartTransactionsFeatureFlagsState) => unknown];
44
+ recomputations: () => number;
45
+ resetRecomputations: () => void;
46
+ dependencyRecomputations: () => number;
47
+ resetDependencyRecomputations: () => void;
48
+ } & {
49
+ memoize: typeof import("reselect").weakMapMemoize;
50
+ argsMemoize: typeof import("reselect").weakMapMemoize;
51
+ };
52
+ /**
53
+ * Selects the merged feature flags configuration for a specific chain.
54
+ * Chain-specific configuration takes precedence over default configuration.
55
+ *
56
+ * For EVM chains, the chain ID is normalized to hex format before lookup.
57
+ * This means both '0x1' and 'eip155:1' will resolve to the same configuration.
58
+ * Non-EVM chains (e.g., Solana, Bitcoin) use exact match.
59
+ *
60
+ * @param _state - The state containing remoteFeatureFlags.smartTransactionsNetworks
61
+ * @param chainId - The chain ID to get configuration for.
62
+ * Supports both hex (e.g., "0x1") and CAIP-2 format (e.g., "eip155:1", "solana:...")
63
+ * @returns The merged configuration for the specified chain
64
+ * @example
65
+ * ```ts
66
+ * // Both resolve to the same config (normalized to 0x1)
67
+ * const chainConfig = useSelector((state) =>
68
+ * selectSmartTransactionsFeatureFlagsForChain(state, '0x1')
69
+ * );
70
+ * const sameConfig = useSelector((state) =>
71
+ * selectSmartTransactionsFeatureFlagsForChain(state, 'eip155:1')
72
+ * );
73
+ *
74
+ * // Non-EVM uses exact match
75
+ * const solanaConfig = useSelector((state) =>
76
+ * selectSmartTransactionsFeatureFlagsForChain(state, 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp')
77
+ * );
78
+ *
79
+ * if (chainConfig.extensionActive) {
80
+ * // Smart transactions are enabled
81
+ * }
82
+ * ```
83
+ */
84
+ export declare const selectSmartTransactionsFeatureFlagsForChain: ((state: SmartTransactionsFeatureFlagsState, chainId: `0x${string}` | `${string}:${string}`) => {
85
+ extensionActive?: boolean | undefined;
86
+ mobileActive?: boolean | undefined;
87
+ mobileActiveIOS?: boolean | undefined;
88
+ mobileActiveAndroid?: boolean | undefined;
89
+ expectedDeadline?: number | undefined;
90
+ maxDeadline?: number | undefined;
91
+ extensionReturnTxHashAsap?: boolean | undefined;
92
+ extensionReturnTxHashAsapBatch?: boolean | undefined;
93
+ mobileReturnTxHashAsap?: boolean | undefined;
94
+ extensionSkipSmartTransactionStatusPage?: boolean | undefined;
95
+ batchStatusPollingInterval?: number | undefined;
96
+ sentinelUrl?: string | undefined;
97
+ }) & {
98
+ clearCache: () => void;
99
+ resultsCount: () => number;
100
+ resetResultsCount: () => void;
101
+ } & {
102
+ resultFunc: (resultFuncArgs_0: SmartTransactionsFeatureFlagsConfig, resultFuncArgs_1: `0x${string}` | `${string}:${string}`) => {
103
+ extensionActive?: boolean | undefined;
104
+ mobileActive?: boolean | undefined;
105
+ mobileActiveIOS?: boolean | undefined;
106
+ mobileActiveAndroid?: boolean | undefined;
107
+ expectedDeadline?: number | undefined;
108
+ maxDeadline?: number | undefined;
109
+ extensionReturnTxHashAsap?: boolean | undefined;
110
+ extensionReturnTxHashAsapBatch?: boolean | undefined;
111
+ mobileReturnTxHashAsap?: boolean | undefined;
112
+ extensionSkipSmartTransactionStatusPage?: boolean | undefined;
113
+ batchStatusPollingInterval?: number | undefined;
114
+ sentinelUrl?: string | undefined;
115
+ };
116
+ memoizedResultFunc: ((resultFuncArgs_0: SmartTransactionsFeatureFlagsConfig, resultFuncArgs_1: `0x${string}` | `${string}:${string}`) => {
117
+ extensionActive?: boolean | undefined;
118
+ mobileActive?: boolean | undefined;
119
+ mobileActiveIOS?: boolean | undefined;
120
+ mobileActiveAndroid?: boolean | undefined;
121
+ expectedDeadline?: number | undefined;
122
+ maxDeadline?: number | undefined;
123
+ extensionReturnTxHashAsap?: boolean | undefined;
124
+ extensionReturnTxHashAsapBatch?: boolean | undefined;
125
+ mobileReturnTxHashAsap?: boolean | undefined;
126
+ extensionSkipSmartTransactionStatusPage?: boolean | undefined;
127
+ batchStatusPollingInterval?: number | undefined;
128
+ sentinelUrl?: string | undefined;
129
+ }) & {
130
+ clearCache: () => void;
131
+ resultsCount: () => number;
132
+ resetResultsCount: () => void;
133
+ };
134
+ lastResult: () => {
135
+ extensionActive?: boolean | undefined;
136
+ mobileActive?: boolean | undefined;
137
+ mobileActiveIOS?: boolean | undefined;
138
+ mobileActiveAndroid?: boolean | undefined;
139
+ expectedDeadline?: number | undefined;
140
+ maxDeadline?: number | undefined;
141
+ extensionReturnTxHashAsap?: boolean | undefined;
142
+ extensionReturnTxHashAsapBatch?: boolean | undefined;
143
+ mobileReturnTxHashAsap?: boolean | undefined;
144
+ extensionSkipSmartTransactionStatusPage?: boolean | undefined;
145
+ batchStatusPollingInterval?: number | undefined;
146
+ sentinelUrl?: string | undefined;
147
+ };
148
+ dependencies: [((state: SmartTransactionsFeatureFlagsState) => SmartTransactionsFeatureFlagsConfig) & {
149
+ clearCache: () => void;
150
+ resultsCount: () => number;
151
+ resetResultsCount: () => void;
152
+ } & {
153
+ resultFunc: (resultFuncArgs_0: any) => SmartTransactionsFeatureFlagsConfig;
154
+ memoizedResultFunc: ((resultFuncArgs_0: any) => SmartTransactionsFeatureFlagsConfig) & {
155
+ clearCache: () => void;
156
+ resultsCount: () => number;
157
+ resetResultsCount: () => void;
158
+ };
159
+ lastResult: () => SmartTransactionsFeatureFlagsConfig;
160
+ dependencies: [(state: SmartTransactionsFeatureFlagsState) => unknown];
161
+ recomputations: () => number;
162
+ resetRecomputations: () => void;
163
+ dependencyRecomputations: () => number;
164
+ resetDependencyRecomputations: () => void;
165
+ } & {
166
+ memoize: typeof import("reselect").weakMapMemoize;
167
+ argsMemoize: typeof import("reselect").weakMapMemoize;
168
+ }, (_state: SmartTransactionsFeatureFlagsState, chainId: Hex | CaipChainId) => `0x${string}` | `${string}:${string}`];
169
+ recomputations: () => number;
170
+ resetRecomputations: () => void;
171
+ dependencyRecomputations: () => number;
172
+ resetDependencyRecomputations: () => void;
173
+ } & {
174
+ memoize: typeof import("reselect").weakMapMemoize;
175
+ argsMemoize: typeof import("reselect").weakMapMemoize;
176
+ };
177
+ //# sourceMappingURL=selectors.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectors.d.mts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,wBAAwB;AAOxD,OAAO,KAAK,EACV,mCAAmC,EAEpC,oBAAgB;AAEjB;;;GAGG;AACH,oBAAY,kCAAkC,GAAG;IAC/C,kBAAkB,CAAC,EAAE;QACnB,yBAAyB,CAAC,EAAE,OAAO,CAAC;KACrC,CAAC;CACH,CAAC;AAQF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;CAI/C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,2CAA2C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG3C,kCAAkC,WAAW,GAAG,GAAG,WAAW;;;;;;;;CAK1E,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { createSelector as createSelector_ } from "reselect";
2
+ import { processSmartTransactionsFeatureFlags, getSmartTransactionsFeatureFlagsForChain } from "./featureFlags/feature-flags.mjs";
3
+ /**
4
+ * Creates a typed selector for smart transactions feature flags
5
+ */
6
+ const createSelector = createSelector_.withTypes();
7
+ /**
8
+ * Selects and validates the smart transactions feature flags from state.
9
+ * Returns the validated configuration or defaults if invalid.
10
+ * If you need to get the feature flags for a specific chain, use `selectSmartTransactionsFeatureFlagsForChain`.
11
+ *
12
+ * @param state - The state containing remoteFeatureFlags.smartTransactionsNetworks
13
+ * @returns The validated smart transactions feature flags configuration
14
+ * @example
15
+ * ```ts
16
+ * // In a React component
17
+ * const featureFlags = useSelector(selectSmartTransactionsFeatureFlags);
18
+ *
19
+ * // Or with reselect composition
20
+ * const selectIsExtensionActive = createSelector(
21
+ * selectSmartTransactionsFeatureFlags,
22
+ * (flags) => flags.default?.extensionActive ?? false
23
+ * );
24
+ * ```
25
+ */
26
+ export const selectSmartTransactionsFeatureFlags = createSelector([(state) => { var _a; return (_a = state.remoteFeatureFlags) === null || _a === void 0 ? void 0 : _a.smartTransactionsNetworks; }], (rawFeatureFlags) => processSmartTransactionsFeatureFlags(rawFeatureFlags));
27
+ /**
28
+ * Selects the merged feature flags configuration for a specific chain.
29
+ * Chain-specific configuration takes precedence over default configuration.
30
+ *
31
+ * For EVM chains, the chain ID is normalized to hex format before lookup.
32
+ * This means both '0x1' and 'eip155:1' will resolve to the same configuration.
33
+ * Non-EVM chains (e.g., Solana, Bitcoin) use exact match.
34
+ *
35
+ * @param _state - The state containing remoteFeatureFlags.smartTransactionsNetworks
36
+ * @param chainId - The chain ID to get configuration for.
37
+ * Supports both hex (e.g., "0x1") and CAIP-2 format (e.g., "eip155:1", "solana:...")
38
+ * @returns The merged configuration for the specified chain
39
+ * @example
40
+ * ```ts
41
+ * // Both resolve to the same config (normalized to 0x1)
42
+ * const chainConfig = useSelector((state) =>
43
+ * selectSmartTransactionsFeatureFlagsForChain(state, '0x1')
44
+ * );
45
+ * const sameConfig = useSelector((state) =>
46
+ * selectSmartTransactionsFeatureFlagsForChain(state, 'eip155:1')
47
+ * );
48
+ *
49
+ * // Non-EVM uses exact match
50
+ * const solanaConfig = useSelector((state) =>
51
+ * selectSmartTransactionsFeatureFlagsForChain(state, 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp')
52
+ * );
53
+ *
54
+ * if (chainConfig.extensionActive) {
55
+ * // Smart transactions are enabled
56
+ * }
57
+ * ```
58
+ */
59
+ export const selectSmartTransactionsFeatureFlagsForChain = createSelector([
60
+ selectSmartTransactionsFeatureFlags,
61
+ (_state, chainId) => chainId,
62
+ ], (featureFlags, chainId) => getSmartTransactionsFeatureFlagsForChain(featureFlags, chainId));
63
+ //# sourceMappingURL=selectors.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectors.mjs","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,IAAI,eAAe,EAAE,iBAAiB;AAE7D,OAAO,EACL,oCAAoC,EACpC,wCAAwC,EACzC,yCAAqC;AAgBtC;;GAEG;AACH,MAAM,cAAc,GAClB,eAAe,CAAC,SAAS,EAAsC,CAAC;AAElE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,cAAc,CAC/D,CAAC,CAAC,KAAK,EAAE,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,kBAAkB,0CAAE,yBAAyB,CAAA,EAAA,CAAC,EAChE,CAAC,eAAe,EAAuC,EAAE,CACvD,oCAAoC,CAAC,eAAe,CAAC,CACxD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,CAAC,MAAM,2CAA2C,GAAG,cAAc,CACvE;IACE,mCAAmC;IACnC,CAAC,MAA0C,EAAE,OAA0B,EAAE,EAAE,CACzE,OAAO;CACV,EACD,CAAC,YAAY,EAAE,OAAO,EAAkC,EAAE,CACxD,wCAAwC,CAAC,YAAY,EAAE,OAAO,CAAC,CAClE,CAAC","sourcesContent":["import type { CaipChainId, Hex } from '@metamask/utils';\nimport { createSelector as createSelector_ } from 'reselect';\n\nimport {\n processSmartTransactionsFeatureFlags,\n getSmartTransactionsFeatureFlagsForChain,\n} from './featureFlags/feature-flags';\nimport type {\n SmartTransactionsFeatureFlagsConfig,\n SmartTransactionsNetworkConfig,\n} from './types';\n\n/**\n * The state shape expected by the smart transactions feature flag selectors.\n * This represents the relevant portion of the remote feature flag controller state.\n */\nexport type SmartTransactionsFeatureFlagsState = {\n remoteFeatureFlags?: {\n smartTransactionsNetworks?: unknown;\n };\n};\n\n/**\n * Creates a typed selector for smart transactions feature flags\n */\nconst createSelector =\n createSelector_.withTypes<SmartTransactionsFeatureFlagsState>();\n\n/**\n * Selects and validates the smart transactions feature flags from state.\n * Returns the validated configuration or defaults if invalid.\n * If you need to get the feature flags for a specific chain, use `selectSmartTransactionsFeatureFlagsForChain`.\n *\n * @param state - The state containing remoteFeatureFlags.smartTransactionsNetworks\n * @returns The validated smart transactions feature flags configuration\n * @example\n * ```ts\n * // In a React component\n * const featureFlags = useSelector(selectSmartTransactionsFeatureFlags);\n *\n * // Or with reselect composition\n * const selectIsExtensionActive = createSelector(\n * selectSmartTransactionsFeatureFlags,\n * (flags) => flags.default?.extensionActive ?? false\n * );\n * ```\n */\nexport const selectSmartTransactionsFeatureFlags = createSelector(\n [(state) => state.remoteFeatureFlags?.smartTransactionsNetworks],\n (rawFeatureFlags): SmartTransactionsFeatureFlagsConfig =>\n processSmartTransactionsFeatureFlags(rawFeatureFlags),\n);\n\n/**\n * Selects the merged feature flags configuration for a specific chain.\n * Chain-specific configuration takes precedence over default configuration.\n *\n * For EVM chains, the chain ID is normalized to hex format before lookup.\n * This means both '0x1' and 'eip155:1' will resolve to the same configuration.\n * Non-EVM chains (e.g., Solana, Bitcoin) use exact match.\n *\n * @param _state - The state containing remoteFeatureFlags.smartTransactionsNetworks\n * @param chainId - The chain ID to get configuration for.\n * Supports both hex (e.g., \"0x1\") and CAIP-2 format (e.g., \"eip155:1\", \"solana:...\")\n * @returns The merged configuration for the specified chain\n * @example\n * ```ts\n * // Both resolve to the same config (normalized to 0x1)\n * const chainConfig = useSelector((state) =>\n * selectSmartTransactionsFeatureFlagsForChain(state, '0x1')\n * );\n * const sameConfig = useSelector((state) =>\n * selectSmartTransactionsFeatureFlagsForChain(state, 'eip155:1')\n * );\n *\n * // Non-EVM uses exact match\n * const solanaConfig = useSelector((state) =>\n * selectSmartTransactionsFeatureFlagsForChain(state, 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp')\n * );\n *\n * if (chainConfig.extensionActive) {\n * // Smart transactions are enabled\n * }\n * ```\n */\nexport const selectSmartTransactionsFeatureFlagsForChain = createSelector(\n [\n selectSmartTransactionsFeatureFlags,\n (_state: SmartTransactionsFeatureFlagsState, chainId: Hex | CaipChainId) =>\n chainId,\n ],\n (featureFlags, chainId): SmartTransactionsNetworkConfig =>\n getSmartTransactionsFeatureFlagsForChain(featureFlags, chainId),\n);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.cjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAEA,UAAU;AACV,IAAY,OAOX;AAPD,WAAY,OAAO;IACjB,6CAAU,CAAA;IACV,qDAAc,CAAA;IACd,mEAAqB,CAAA;IACrB,yCAAQ,CAAA;IACR,qDAAc,CAAA;IACd,6CAAU,CAAA;AACZ,CAAC,EAPW,OAAO,GAAP,eAAO,KAAP,eAAO,QAOlB;AAED,wBAAwB;AACxB,IAAY,uBAMX;AAND,WAAY,uBAAuB;IACjC,kDAAuB,CAAA;IACvB,8CAAmB,CAAA;IACnB,kDAAuB,CAAA;IACvB,gDAAqB,CAAA;IACrB,8CAAmB,CAAA;AACrB,CAAC,EANW,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QAMlC;AAED,IAAY,kCAOX;AAPD,WAAY,kCAAkC;IAC5C,mEAA6B,CAAA;IAC7B,6DAAuB,CAAA;IACvB,yEAAmC,CAAA;IACnC,qEAA+B,CAAA;IAC/B,uEAAiC,CAAA;IACjC,qEAA+B,CAAA;AACjC,CAAC,EAPW,kCAAkC,GAAlC,0CAAkC,KAAlC,0CAAkC,QAO7C;AAED,IAAY,wBAQX;AARD,WAAY,wBAAwB;IAClC,+CAAmB,CAAA;IACnB,+CAAmB,CAAA;IACnB,iDAAqB,CAAA;IACrB,+CAAmB,CAAA;IACnB,mDAAuB,CAAA;IACvB,iFAAqD,CAAA;IACrD,iDAAqB,CAAA;AACvB,CAAC,EARW,wBAAwB,GAAxB,gCAAwB,KAAxB,gCAAwB,QAQnC;AAED,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,6BAAiB,CAAA;IACjB,mCAAuB,CAAA;AACzB,CAAC,EAHW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAGnB;AAEY,QAAA,6BAA6B,GAAG;IAC3C,CAAC,kCAAkC,CAAC,YAAY,CAAC,EAC/C,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,SAAS,CAAC,EAC5C,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,eAAe,CAAC,EAClD,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,aAAa,CAAC,EAChD,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,cAAc,CAAC,EACjD,wBAAwB,CAAC,wBAAwB;CACpD,CAAC","sourcesContent":["import type { NetworkClientId } from '@metamask/network-controller';\n\n/** API */\nexport enum APIType {\n 'GET_FEES',\n 'ESTIMATE_GAS',\n 'SUBMIT_TRANSACTIONS',\n 'CANCEL',\n 'BATCH_STATUS',\n 'LIVENESS',\n}\n\n/** SmartTransactions */\nexport enum SmartTransactionMinedTx {\n NOT_MINED = 'not_mined',\n SUCCESS = 'success',\n CANCELLED = 'cancelled',\n REVERTED = 'reverted',\n UNKNOWN = 'unknown',\n}\n\nexport enum SmartTransactionCancellationReason {\n WOULD_REVERT = 'would_revert',\n TOO_CHEAP = 'too_cheap',\n DEADLINE_MISSED = 'deadline_missed',\n INVALID_NONCE = 'invalid_nonce',\n USER_CANCELLED = 'user_cancelled',\n NOT_CANCELLED = 'not_cancelled',\n}\n\nexport enum SmartTransactionStatuses {\n PENDING = 'pending',\n SUCCESS = 'success',\n REVERTED = 'reverted',\n UNKNOWN = 'unknown',\n CANCELLED = 'cancelled',\n CANCELLED_USER_CANCELLED = 'cancelled_user_cancelled',\n RESOLVED = 'resolved',\n}\n\nexport enum ClientId {\n Mobile = 'mobile',\n Extension = 'extension',\n}\n\nexport const cancellationReasonToStatusMap = {\n [SmartTransactionCancellationReason.WOULD_REVERT]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.TOO_CHEAP]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.DEADLINE_MISSED]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.INVALID_NONCE]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.USER_CANCELLED]:\n SmartTransactionStatuses.CANCELLED_USER_CANCELLED,\n};\n\nexport type SmartTransactionsStatus = {\n error?: string;\n cancellationFeeWei: number;\n cancellationReason?: SmartTransactionCancellationReason;\n deadlineRatio: number;\n minedHash: string;\n minedTx: SmartTransactionMinedTx;\n isSettled: boolean;\n duplicated?: boolean;\n timedOut?: boolean;\n proxied?: boolean;\n};\n\nexport type SmartTransaction = {\n uuid: string;\n txHash?: string;\n txHashes?: string[];\n chainId?: string;\n destinationTokenAddress?: string;\n destinationTokenDecimals?: string;\n destinationTokenSymbol?: string;\n history?: any;\n nonceDetails?: any;\n origin?: string;\n preTxBalance?: string;\n status?: string;\n statusMetadata?: SmartTransactionsStatus;\n sourceTokenSymbol?: string;\n swapMetaData?: any;\n swapTokenValue?: string;\n time?: number; // @deprecated We should use creationTime instead.\n creationTime?: number;\n txParams?: any;\n type?: string;\n confirmed?: boolean;\n cancellable?: boolean;\n accountHardwareType?: string;\n accountType?: string;\n deviceModel?: string;\n transactionId?: string; // It's an ID for a regular transaction from the TransactionController.\n networkClientId?: NetworkClientId;\n};\n\nexport type Fee = {\n maxFeePerGas: number;\n maxPriorityFeePerGas: number;\n};\n\nexport type IndividualTxFees = {\n fees: Fee[];\n cancelFees: Fee[];\n feeEstimate: number;\n gasLimit: number;\n gasUsed: number;\n};\n\nexport type Fees = {\n approvalTxFees: IndividualTxFees | null;\n tradeTxFees: IndividualTxFees | null;\n};\n\n// TODO\nexport type UnsignedTransaction = any;\n\n// TODO\nexport type SignedTransaction = any;\n\n// TODO\nexport type SignedCanceledTransaction = any;\n\nexport type Hex = `0x${string}`;\n\nexport type MetaMetricsProps = {\n accountHardwareType?: string;\n accountType?: string;\n deviceModel?: string;\n};\n\nexport type FeatureFlags = {\n smartTransactions?: {\n mobileReturnTxHashAsap?: boolean;\n extensionReturnTxHashAsap?: boolean;\n };\n};\n"]}
1
+ {"version":3,"file":"types.cjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAKA,UAAU;AACV,IAAY,OAOX;AAPD,WAAY,OAAO;IACjB,6CAAU,CAAA;IACV,qDAAc,CAAA;IACd,mEAAqB,CAAA;IACrB,yCAAQ,CAAA;IACR,qDAAc,CAAA;IACd,6CAAU,CAAA;AACZ,CAAC,EAPW,OAAO,GAAP,eAAO,KAAP,eAAO,QAOlB;AAED,wBAAwB;AACxB,IAAY,uBAMX;AAND,WAAY,uBAAuB;IACjC,kDAAuB,CAAA;IACvB,8CAAmB,CAAA;IACnB,kDAAuB,CAAA;IACvB,gDAAqB,CAAA;IACrB,8CAAmB,CAAA;AACrB,CAAC,EANW,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QAMlC;AAED,IAAY,kCAOX;AAPD,WAAY,kCAAkC;IAC5C,mEAA6B,CAAA;IAC7B,6DAAuB,CAAA;IACvB,yEAAmC,CAAA;IACnC,qEAA+B,CAAA;IAC/B,uEAAiC,CAAA;IACjC,qEAA+B,CAAA;AACjC,CAAC,EAPW,kCAAkC,GAAlC,0CAAkC,KAAlC,0CAAkC,QAO7C;AAED,IAAY,wBAQX;AARD,WAAY,wBAAwB;IAClC,+CAAmB,CAAA;IACnB,+CAAmB,CAAA;IACnB,iDAAqB,CAAA;IACrB,+CAAmB,CAAA;IACnB,mDAAuB,CAAA;IACvB,iFAAqD,CAAA;IACrD,iDAAqB,CAAA;AACvB,CAAC,EARW,wBAAwB,GAAxB,gCAAwB,KAAxB,gCAAwB,QAQnC;AAED,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,6BAAiB,CAAA;IACjB,mCAAuB,CAAA;AACzB,CAAC,EAHW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAGnB;AAEY,QAAA,6BAA6B,GAAG;IAC3C,CAAC,kCAAkC,CAAC,YAAY,CAAC,EAC/C,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,SAAS,CAAC,EAC5C,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,eAAe,CAAC,EAClD,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,aAAa,CAAC,EAChD,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,cAAc,CAAC,EACjD,wBAAwB,CAAC,wBAAwB;CACpD,CAAC","sourcesContent":["import type { NetworkClientId } from '@metamask/network-controller';\nimport type { CaipChainId, Hex } from '@metamask/utils';\n\nimport type { SmartTransactionsNetworkConfig } from './featureFlags';\n\n/** API */\nexport enum APIType {\n 'GET_FEES',\n 'ESTIMATE_GAS',\n 'SUBMIT_TRANSACTIONS',\n 'CANCEL',\n 'BATCH_STATUS',\n 'LIVENESS',\n}\n\n/** SmartTransactions */\nexport enum SmartTransactionMinedTx {\n NOT_MINED = 'not_mined',\n SUCCESS = 'success',\n CANCELLED = 'cancelled',\n REVERTED = 'reverted',\n UNKNOWN = 'unknown',\n}\n\nexport enum SmartTransactionCancellationReason {\n WOULD_REVERT = 'would_revert',\n TOO_CHEAP = 'too_cheap',\n DEADLINE_MISSED = 'deadline_missed',\n INVALID_NONCE = 'invalid_nonce',\n USER_CANCELLED = 'user_cancelled',\n NOT_CANCELLED = 'not_cancelled',\n}\n\nexport enum SmartTransactionStatuses {\n PENDING = 'pending',\n SUCCESS = 'success',\n REVERTED = 'reverted',\n UNKNOWN = 'unknown',\n CANCELLED = 'cancelled',\n CANCELLED_USER_CANCELLED = 'cancelled_user_cancelled',\n RESOLVED = 'resolved',\n}\n\nexport enum ClientId {\n Mobile = 'mobile',\n Extension = 'extension',\n}\n\nexport const cancellationReasonToStatusMap = {\n [SmartTransactionCancellationReason.WOULD_REVERT]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.TOO_CHEAP]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.DEADLINE_MISSED]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.INVALID_NONCE]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.USER_CANCELLED]:\n SmartTransactionStatuses.CANCELLED_USER_CANCELLED,\n};\n\nexport type SmartTransactionsStatus = {\n error?: string;\n cancellationFeeWei: number;\n cancellationReason?: SmartTransactionCancellationReason;\n deadlineRatio: number;\n minedHash: string;\n minedTx: SmartTransactionMinedTx;\n isSettled: boolean;\n duplicated?: boolean;\n timedOut?: boolean;\n proxied?: boolean;\n};\n\nexport type SmartTransaction = {\n uuid: string;\n txHash?: string;\n txHashes?: string[];\n chainId?: string;\n destinationTokenAddress?: string;\n destinationTokenDecimals?: string;\n destinationTokenSymbol?: string;\n history?: any;\n nonceDetails?: any;\n origin?: string;\n preTxBalance?: string;\n status?: string;\n statusMetadata?: SmartTransactionsStatus;\n sourceTokenSymbol?: string;\n swapMetaData?: any;\n swapTokenValue?: string;\n time?: number; // @deprecated We should use creationTime instead.\n creationTime?: number;\n txParams?: any;\n type?: string;\n confirmed?: boolean;\n cancellable?: boolean;\n accountHardwareType?: string;\n accountType?: string;\n deviceModel?: string;\n transactionId?: string; // It's an ID for a regular transaction from the TransactionController.\n networkClientId?: NetworkClientId;\n};\n\nexport type Fee = {\n maxFeePerGas: number;\n maxPriorityFeePerGas: number;\n};\n\nexport type IndividualTxFees = {\n fees: Fee[];\n cancelFees: Fee[];\n feeEstimate: number;\n gasLimit: number;\n gasUsed: number;\n};\n\nexport type Fees = {\n approvalTxFees: IndividualTxFees | null;\n tradeTxFees: IndividualTxFees | null;\n};\n\n// TODO\nexport type UnsignedTransaction = any;\n\n// TODO\nexport type SignedTransaction = any;\n\n// TODO\nexport type SignedCanceledTransaction = any;\n\nexport type MetaMetricsProps = {\n accountHardwareType?: string;\n accountType?: string;\n deviceModel?: string;\n};\n\nexport type FeatureFlags = {\n smartTransactions?: {\n mobileReturnTxHashAsap?: boolean;\n extensionReturnTxHashAsap?: boolean;\n };\n};\n\n/**\n * Configuration for smart transactions on a specific network.\n * These flags control feature availability and behavior per chain.\n *\n * This type is inferred from the SmartTransactionsNetworkConfigSchema.\n * To add a new field, update the schema in `src/featureFlags/validators.ts`.\n */\nexport type { SmartTransactionsNetworkConfig };\n\n/**\n * Feature flags configuration for smart transactions across all networks.\n * Contains a default configuration and optional chain-specific overrides.\n */\nexport type SmartTransactionsFeatureFlagsConfig = {\n /** Default configuration applied to all chains unless overridden */\n default?: SmartTransactionsNetworkConfig;\n} & {\n /**\n * Chain-specific configuration overrides, keyed by chain ID.\n * Supports both hex (e.g., \"0x1\") and CAIP-2 format (e.g., \"eip155:1\", \"solana:...\")\n */\n [chainId: Hex | CaipChainId]: SmartTransactionsNetworkConfig | undefined;\n};\n"]}
package/dist/types.d.cts CHANGED
@@ -1,4 +1,6 @@
1
1
  import type { NetworkClientId } from "@metamask/network-controller";
2
+ import type { CaipChainId, Hex } from "@metamask/utils";
3
+ import type { SmartTransactionsNetworkConfig } from "./featureFlags/index.cjs";
2
4
  /** API */
3
5
  export declare enum APIType {
4
6
  'GET_FEES' = 0,
@@ -103,7 +105,6 @@ export declare type Fees = {
103
105
  export declare type UnsignedTransaction = any;
104
106
  export declare type SignedTransaction = any;
105
107
  export declare type SignedCanceledTransaction = any;
106
- export declare type Hex = `0x${string}`;
107
108
  export declare type MetaMetricsProps = {
108
109
  accountHardwareType?: string;
109
110
  accountType?: string;
@@ -115,4 +116,26 @@ export declare type FeatureFlags = {
115
116
  extensionReturnTxHashAsap?: boolean;
116
117
  };
117
118
  };
119
+ /**
120
+ * Configuration for smart transactions on a specific network.
121
+ * These flags control feature availability and behavior per chain.
122
+ *
123
+ * This type is inferred from the SmartTransactionsNetworkConfigSchema.
124
+ * To add a new field, update the schema in `src/featureFlags/validators.ts`.
125
+ */
126
+ export type { SmartTransactionsNetworkConfig };
127
+ /**
128
+ * Feature flags configuration for smart transactions across all networks.
129
+ * Contains a default configuration and optional chain-specific overrides.
130
+ */
131
+ export declare type SmartTransactionsFeatureFlagsConfig = {
132
+ /** Default configuration applied to all chains unless overridden */
133
+ default?: SmartTransactionsNetworkConfig;
134
+ } & {
135
+ /**
136
+ * Chain-specific configuration overrides, keyed by chain ID.
137
+ * Supports both hex (e.g., "0x1") and CAIP-2 format (e.g., "eip155:1", "solana:...")
138
+ */
139
+ [chainId: Hex | CaipChainId]: SmartTransactionsNetworkConfig | undefined;
140
+ };
118
141
  //# sourceMappingURL=types.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.d.mts CHANGED
@@ -1,4 +1,6 @@
1
1
  import type { NetworkClientId } from "@metamask/network-controller";
2
+ import type { CaipChainId, Hex } from "@metamask/utils";
3
+ import type { SmartTransactionsNetworkConfig } from "./featureFlags/index.mjs";
2
4
  /** API */
3
5
  export declare enum APIType {
4
6
  'GET_FEES' = 0,
@@ -103,7 +105,6 @@ export declare type Fees = {
103
105
  export declare type UnsignedTransaction = any;
104
106
  export declare type SignedTransaction = any;
105
107
  export declare type SignedCanceledTransaction = any;
106
- export declare type Hex = `0x${string}`;
107
108
  export declare type MetaMetricsProps = {
108
109
  accountHardwareType?: string;
109
110
  accountType?: string;
@@ -115,4 +116,26 @@ export declare type FeatureFlags = {
115
116
  extensionReturnTxHashAsap?: boolean;
116
117
  };
117
118
  };
119
+ /**
120
+ * Configuration for smart transactions on a specific network.
121
+ * These flags control feature availability and behavior per chain.
122
+ *
123
+ * This type is inferred from the SmartTransactionsNetworkConfigSchema.
124
+ * To add a new field, update the schema in `src/featureFlags/validators.ts`.
125
+ */
126
+ export type { SmartTransactionsNetworkConfig };
127
+ /**
128
+ * Feature flags configuration for smart transactions across all networks.
129
+ * Contains a default configuration and optional chain-specific overrides.
130
+ */
131
+ export declare type SmartTransactionsFeatureFlagsConfig = {
132
+ /** Default configuration applied to all chains unless overridden */
133
+ default?: SmartTransactionsNetworkConfig;
134
+ } & {
135
+ /**
136
+ * Chain-specific configuration overrides, keyed by chain ID.
137
+ * Supports both hex (e.g., "0x1") and CAIP-2 format (e.g., "eip155:1", "solana:...")
138
+ */
139
+ [chainId: Hex | CaipChainId]: SmartTransactionsNetworkConfig | undefined;
140
+ };
118
141
  //# sourceMappingURL=types.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,UAAU;AACV,MAAM,CAAN,IAAY,OAOX;AAPD,WAAY,OAAO;IACjB,6CAAU,CAAA;IACV,qDAAc,CAAA;IACd,mEAAqB,CAAA;IACrB,yCAAQ,CAAA;IACR,qDAAc,CAAA;IACd,6CAAU,CAAA;AACZ,CAAC,EAPW,OAAO,GAAP,OAAO,KAAP,OAAO,QAOlB;AAED,wBAAwB;AACxB,MAAM,CAAN,IAAY,uBAMX;AAND,WAAY,uBAAuB;IACjC,kDAAuB,CAAA;IACvB,8CAAmB,CAAA;IACnB,kDAAuB,CAAA;IACvB,gDAAqB,CAAA;IACrB,8CAAmB,CAAA;AACrB,CAAC,EANW,uBAAuB,GAAvB,uBAAuB,KAAvB,uBAAuB,QAMlC;AAED,MAAM,CAAN,IAAY,kCAOX;AAPD,WAAY,kCAAkC;IAC5C,mEAA6B,CAAA;IAC7B,6DAAuB,CAAA;IACvB,yEAAmC,CAAA;IACnC,qEAA+B,CAAA;IAC/B,uEAAiC,CAAA;IACjC,qEAA+B,CAAA;AACjC,CAAC,EAPW,kCAAkC,GAAlC,kCAAkC,KAAlC,kCAAkC,QAO7C;AAED,MAAM,CAAN,IAAY,wBAQX;AARD,WAAY,wBAAwB;IAClC,+CAAmB,CAAA;IACnB,+CAAmB,CAAA;IACnB,iDAAqB,CAAA;IACrB,+CAAmB,CAAA;IACnB,mDAAuB,CAAA;IACvB,iFAAqD,CAAA;IACrD,iDAAqB,CAAA;AACvB,CAAC,EARW,wBAAwB,GAAxB,wBAAwB,KAAxB,wBAAwB,QAQnC;AAED,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,6BAAiB,CAAA;IACjB,mCAAuB,CAAA;AACzB,CAAC,EAHW,QAAQ,GAAR,QAAQ,KAAR,QAAQ,QAGnB;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,CAAC,kCAAkC,CAAC,YAAY,CAAC,EAC/C,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,SAAS,CAAC,EAC5C,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,eAAe,CAAC,EAClD,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,aAAa,CAAC,EAChD,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,cAAc,CAAC,EACjD,wBAAwB,CAAC,wBAAwB;CACpD,CAAC","sourcesContent":["import type { NetworkClientId } from '@metamask/network-controller';\n\n/** API */\nexport enum APIType {\n 'GET_FEES',\n 'ESTIMATE_GAS',\n 'SUBMIT_TRANSACTIONS',\n 'CANCEL',\n 'BATCH_STATUS',\n 'LIVENESS',\n}\n\n/** SmartTransactions */\nexport enum SmartTransactionMinedTx {\n NOT_MINED = 'not_mined',\n SUCCESS = 'success',\n CANCELLED = 'cancelled',\n REVERTED = 'reverted',\n UNKNOWN = 'unknown',\n}\n\nexport enum SmartTransactionCancellationReason {\n WOULD_REVERT = 'would_revert',\n TOO_CHEAP = 'too_cheap',\n DEADLINE_MISSED = 'deadline_missed',\n INVALID_NONCE = 'invalid_nonce',\n USER_CANCELLED = 'user_cancelled',\n NOT_CANCELLED = 'not_cancelled',\n}\n\nexport enum SmartTransactionStatuses {\n PENDING = 'pending',\n SUCCESS = 'success',\n REVERTED = 'reverted',\n UNKNOWN = 'unknown',\n CANCELLED = 'cancelled',\n CANCELLED_USER_CANCELLED = 'cancelled_user_cancelled',\n RESOLVED = 'resolved',\n}\n\nexport enum ClientId {\n Mobile = 'mobile',\n Extension = 'extension',\n}\n\nexport const cancellationReasonToStatusMap = {\n [SmartTransactionCancellationReason.WOULD_REVERT]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.TOO_CHEAP]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.DEADLINE_MISSED]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.INVALID_NONCE]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.USER_CANCELLED]:\n SmartTransactionStatuses.CANCELLED_USER_CANCELLED,\n};\n\nexport type SmartTransactionsStatus = {\n error?: string;\n cancellationFeeWei: number;\n cancellationReason?: SmartTransactionCancellationReason;\n deadlineRatio: number;\n minedHash: string;\n minedTx: SmartTransactionMinedTx;\n isSettled: boolean;\n duplicated?: boolean;\n timedOut?: boolean;\n proxied?: boolean;\n};\n\nexport type SmartTransaction = {\n uuid: string;\n txHash?: string;\n txHashes?: string[];\n chainId?: string;\n destinationTokenAddress?: string;\n destinationTokenDecimals?: string;\n destinationTokenSymbol?: string;\n history?: any;\n nonceDetails?: any;\n origin?: string;\n preTxBalance?: string;\n status?: string;\n statusMetadata?: SmartTransactionsStatus;\n sourceTokenSymbol?: string;\n swapMetaData?: any;\n swapTokenValue?: string;\n time?: number; // @deprecated We should use creationTime instead.\n creationTime?: number;\n txParams?: any;\n type?: string;\n confirmed?: boolean;\n cancellable?: boolean;\n accountHardwareType?: string;\n accountType?: string;\n deviceModel?: string;\n transactionId?: string; // It's an ID for a regular transaction from the TransactionController.\n networkClientId?: NetworkClientId;\n};\n\nexport type Fee = {\n maxFeePerGas: number;\n maxPriorityFeePerGas: number;\n};\n\nexport type IndividualTxFees = {\n fees: Fee[];\n cancelFees: Fee[];\n feeEstimate: number;\n gasLimit: number;\n gasUsed: number;\n};\n\nexport type Fees = {\n approvalTxFees: IndividualTxFees | null;\n tradeTxFees: IndividualTxFees | null;\n};\n\n// TODO\nexport type UnsignedTransaction = any;\n\n// TODO\nexport type SignedTransaction = any;\n\n// TODO\nexport type SignedCanceledTransaction = any;\n\nexport type Hex = `0x${string}`;\n\nexport type MetaMetricsProps = {\n accountHardwareType?: string;\n accountType?: string;\n deviceModel?: string;\n};\n\nexport type FeatureFlags = {\n smartTransactions?: {\n mobileReturnTxHashAsap?: boolean;\n extensionReturnTxHashAsap?: boolean;\n };\n};\n"]}
1
+ {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAKA,UAAU;AACV,MAAM,CAAN,IAAY,OAOX;AAPD,WAAY,OAAO;IACjB,6CAAU,CAAA;IACV,qDAAc,CAAA;IACd,mEAAqB,CAAA;IACrB,yCAAQ,CAAA;IACR,qDAAc,CAAA;IACd,6CAAU,CAAA;AACZ,CAAC,EAPW,OAAO,GAAP,OAAO,KAAP,OAAO,QAOlB;AAED,wBAAwB;AACxB,MAAM,CAAN,IAAY,uBAMX;AAND,WAAY,uBAAuB;IACjC,kDAAuB,CAAA;IACvB,8CAAmB,CAAA;IACnB,kDAAuB,CAAA;IACvB,gDAAqB,CAAA;IACrB,8CAAmB,CAAA;AACrB,CAAC,EANW,uBAAuB,GAAvB,uBAAuB,KAAvB,uBAAuB,QAMlC;AAED,MAAM,CAAN,IAAY,kCAOX;AAPD,WAAY,kCAAkC;IAC5C,mEAA6B,CAAA;IAC7B,6DAAuB,CAAA;IACvB,yEAAmC,CAAA;IACnC,qEAA+B,CAAA;IAC/B,uEAAiC,CAAA;IACjC,qEAA+B,CAAA;AACjC,CAAC,EAPW,kCAAkC,GAAlC,kCAAkC,KAAlC,kCAAkC,QAO7C;AAED,MAAM,CAAN,IAAY,wBAQX;AARD,WAAY,wBAAwB;IAClC,+CAAmB,CAAA;IACnB,+CAAmB,CAAA;IACnB,iDAAqB,CAAA;IACrB,+CAAmB,CAAA;IACnB,mDAAuB,CAAA;IACvB,iFAAqD,CAAA;IACrD,iDAAqB,CAAA;AACvB,CAAC,EARW,wBAAwB,GAAxB,wBAAwB,KAAxB,wBAAwB,QAQnC;AAED,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,6BAAiB,CAAA;IACjB,mCAAuB,CAAA;AACzB,CAAC,EAHW,QAAQ,GAAR,QAAQ,KAAR,QAAQ,QAGnB;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,CAAC,kCAAkC,CAAC,YAAY,CAAC,EAC/C,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,SAAS,CAAC,EAC5C,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,eAAe,CAAC,EAClD,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,aAAa,CAAC,EAChD,wBAAwB,CAAC,SAAS;IACpC,CAAC,kCAAkC,CAAC,cAAc,CAAC,EACjD,wBAAwB,CAAC,wBAAwB;CACpD,CAAC","sourcesContent":["import type { NetworkClientId } from '@metamask/network-controller';\nimport type { CaipChainId, Hex } from '@metamask/utils';\n\nimport type { SmartTransactionsNetworkConfig } from './featureFlags';\n\n/** API */\nexport enum APIType {\n 'GET_FEES',\n 'ESTIMATE_GAS',\n 'SUBMIT_TRANSACTIONS',\n 'CANCEL',\n 'BATCH_STATUS',\n 'LIVENESS',\n}\n\n/** SmartTransactions */\nexport enum SmartTransactionMinedTx {\n NOT_MINED = 'not_mined',\n SUCCESS = 'success',\n CANCELLED = 'cancelled',\n REVERTED = 'reverted',\n UNKNOWN = 'unknown',\n}\n\nexport enum SmartTransactionCancellationReason {\n WOULD_REVERT = 'would_revert',\n TOO_CHEAP = 'too_cheap',\n DEADLINE_MISSED = 'deadline_missed',\n INVALID_NONCE = 'invalid_nonce',\n USER_CANCELLED = 'user_cancelled',\n NOT_CANCELLED = 'not_cancelled',\n}\n\nexport enum SmartTransactionStatuses {\n PENDING = 'pending',\n SUCCESS = 'success',\n REVERTED = 'reverted',\n UNKNOWN = 'unknown',\n CANCELLED = 'cancelled',\n CANCELLED_USER_CANCELLED = 'cancelled_user_cancelled',\n RESOLVED = 'resolved',\n}\n\nexport enum ClientId {\n Mobile = 'mobile',\n Extension = 'extension',\n}\n\nexport const cancellationReasonToStatusMap = {\n [SmartTransactionCancellationReason.WOULD_REVERT]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.TOO_CHEAP]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.DEADLINE_MISSED]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.INVALID_NONCE]:\n SmartTransactionStatuses.CANCELLED,\n [SmartTransactionCancellationReason.USER_CANCELLED]:\n SmartTransactionStatuses.CANCELLED_USER_CANCELLED,\n};\n\nexport type SmartTransactionsStatus = {\n error?: string;\n cancellationFeeWei: number;\n cancellationReason?: SmartTransactionCancellationReason;\n deadlineRatio: number;\n minedHash: string;\n minedTx: SmartTransactionMinedTx;\n isSettled: boolean;\n duplicated?: boolean;\n timedOut?: boolean;\n proxied?: boolean;\n};\n\nexport type SmartTransaction = {\n uuid: string;\n txHash?: string;\n txHashes?: string[];\n chainId?: string;\n destinationTokenAddress?: string;\n destinationTokenDecimals?: string;\n destinationTokenSymbol?: string;\n history?: any;\n nonceDetails?: any;\n origin?: string;\n preTxBalance?: string;\n status?: string;\n statusMetadata?: SmartTransactionsStatus;\n sourceTokenSymbol?: string;\n swapMetaData?: any;\n swapTokenValue?: string;\n time?: number; // @deprecated We should use creationTime instead.\n creationTime?: number;\n txParams?: any;\n type?: string;\n confirmed?: boolean;\n cancellable?: boolean;\n accountHardwareType?: string;\n accountType?: string;\n deviceModel?: string;\n transactionId?: string; // It's an ID for a regular transaction from the TransactionController.\n networkClientId?: NetworkClientId;\n};\n\nexport type Fee = {\n maxFeePerGas: number;\n maxPriorityFeePerGas: number;\n};\n\nexport type IndividualTxFees = {\n fees: Fee[];\n cancelFees: Fee[];\n feeEstimate: number;\n gasLimit: number;\n gasUsed: number;\n};\n\nexport type Fees = {\n approvalTxFees: IndividualTxFees | null;\n tradeTxFees: IndividualTxFees | null;\n};\n\n// TODO\nexport type UnsignedTransaction = any;\n\n// TODO\nexport type SignedTransaction = any;\n\n// TODO\nexport type SignedCanceledTransaction = any;\n\nexport type MetaMetricsProps = {\n accountHardwareType?: string;\n accountType?: string;\n deviceModel?: string;\n};\n\nexport type FeatureFlags = {\n smartTransactions?: {\n mobileReturnTxHashAsap?: boolean;\n extensionReturnTxHashAsap?: boolean;\n };\n};\n\n/**\n * Configuration for smart transactions on a specific network.\n * These flags control feature availability and behavior per chain.\n *\n * This type is inferred from the SmartTransactionsNetworkConfigSchema.\n * To add a new field, update the schema in `src/featureFlags/validators.ts`.\n */\nexport type { SmartTransactionsNetworkConfig };\n\n/**\n * Feature flags configuration for smart transactions across all networks.\n * Contains a default configuration and optional chain-specific overrides.\n */\nexport type SmartTransactionsFeatureFlagsConfig = {\n /** Default configuration applied to all chains unless overridden */\n default?: SmartTransactionsNetworkConfig;\n} & {\n /**\n * Chain-specific configuration overrides, keyed by chain ID.\n * Supports both hex (e.g., \"0x1\") and CAIP-2 format (e.g., \"eip155:1\", \"solana:...\")\n */\n [chainId: Hex | CaipChainId]: SmartTransactionsNetworkConfig | undefined;\n};\n"]}
package/dist/utils.cjs CHANGED
@@ -193,14 +193,13 @@ const getSmartTransactionMetricsSensitiveProperties = (smartTransaction) => {
193
193
  };
194
194
  };
195
195
  exports.getSmartTransactionMetricsSensitiveProperties = getSmartTransactionMetricsSensitiveProperties;
196
- const getReturnTxHashAsap = (clientId, smartTransactionsFeatureFlags) => {
196
+ const getReturnTxHashAsap = (clientId, featureFlags) => {
197
197
  return clientId === types_1.ClientId.Extension
198
- ? smartTransactionsFeatureFlags === null || smartTransactionsFeatureFlags === void 0 ? void 0 : smartTransactionsFeatureFlags.extensionReturnTxHashAsap
199
- : smartTransactionsFeatureFlags === null || smartTransactionsFeatureFlags === void 0 ? void 0 : smartTransactionsFeatureFlags.mobileReturnTxHashAsap;
198
+ ? featureFlags.extensionReturnTxHashAsap
199
+ : featureFlags.mobileReturnTxHashAsap;
200
200
  };
201
201
  exports.getReturnTxHashAsap = getReturnTxHashAsap;
202
- const shouldMarkRegularTransactionsAsFailed = ({ smartTransaction, clientId, getFeatureFlags, }) => {
203
- var _a;
202
+ const shouldMarkRegularTransactionsAsFailed = ({ smartTransaction, clientId, featureFlags, }) => {
204
203
  const { status, transactionId } = smartTransaction;
205
204
  const failureStatuses = [
206
205
  types_1.SmartTransactionStatuses.CANCELLED,
@@ -212,8 +211,7 @@ const shouldMarkRegularTransactionsAsFailed = ({ smartTransaction, clientId, get
212
211
  !failureStatuses.includes(status)) {
213
212
  return false;
214
213
  }
215
- const { smartTransactions: smartTransactionsFeatureFlags } = (_a = getFeatureFlags()) !== null && _a !== void 0 ? _a : {};
216
- const returnTxHashAsapEnabled = (0, exports.getReturnTxHashAsap)(clientId, smartTransactionsFeatureFlags);
214
+ const returnTxHashAsapEnabled = (0, exports.getReturnTxHashAsap)(clientId, featureFlags);
217
215
  return Boolean(returnTxHashAsapEnabled && transactionId);
218
216
  };
219
217
  exports.shouldMarkRegularTransactionsAsFailed = shouldMarkRegularTransactionsAsFailed;