@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.
- package/CHANGELOG.md +13 -1
- package/README.md +47 -0
- package/dist/SmartTransactionsController.cjs +20 -6
- package/dist/SmartTransactionsController.cjs.map +1 -1
- package/dist/SmartTransactionsController.d.cts +13 -5
- package/dist/SmartTransactionsController.d.cts.map +1 -1
- package/dist/SmartTransactionsController.d.mts +13 -5
- package/dist/SmartTransactionsController.d.mts.map +1 -1
- package/dist/SmartTransactionsController.mjs +21 -7
- package/dist/SmartTransactionsController.mjs.map +1 -1
- package/dist/constants.cjs +21 -1
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +20 -0
- package/dist/constants.d.cts.map +1 -1
- package/dist/constants.d.mts +20 -0
- package/dist/constants.d.mts.map +1 -1
- package/dist/constants.mjs +20 -0
- package/dist/constants.mjs.map +1 -1
- package/dist/featureFlags/feature-flags.cjs +119 -0
- package/dist/featureFlags/feature-flags.cjs.map +1 -0
- package/dist/featureFlags/feature-flags.d.cts +76 -0
- package/dist/featureFlags/feature-flags.d.cts.map +1 -0
- package/dist/featureFlags/feature-flags.d.mts +76 -0
- package/dist/featureFlags/feature-flags.d.mts.map +1 -0
- package/dist/featureFlags/feature-flags.mjs +112 -0
- package/dist/featureFlags/feature-flags.mjs.map +1 -0
- package/dist/featureFlags/index.cjs +14 -0
- package/dist/featureFlags/index.cjs.map +1 -0
- package/dist/featureFlags/index.d.cts +3 -0
- package/dist/featureFlags/index.d.cts.map +1 -0
- package/dist/featureFlags/index.d.mts +3 -0
- package/dist/featureFlags/index.d.mts.map +1 -0
- package/dist/featureFlags/index.mjs +3 -0
- package/dist/featureFlags/index.mjs.map +1 -0
- package/dist/featureFlags/validators.cjs +126 -0
- package/dist/featureFlags/validators.cjs.map +1 -0
- package/dist/featureFlags/validators.d.cts +141 -0
- package/dist/featureFlags/validators.d.cts.map +1 -0
- package/dist/featureFlags/validators.d.mts +141 -0
- package/dist/featureFlags/validators.d.mts.map +1 -0
- package/dist/featureFlags/validators.mjs +121 -0
- package/dist/featureFlags/validators.mjs.map +1 -0
- package/dist/index.cjs +5 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +2 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +2 -0
- package/dist/index.mjs.map +1 -1
- package/dist/selectors.cjs +66 -0
- package/dist/selectors.cjs.map +1 -0
- package/dist/selectors.d.cts +177 -0
- package/dist/selectors.d.cts.map +1 -0
- package/dist/selectors.d.mts +177 -0
- package/dist/selectors.d.mts.map +1 -0
- package/dist/selectors.mjs +63 -0
- package/dist/selectors.mjs.map +1 -0
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +24 -1
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +24 -1
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils.cjs +5 -7
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +4 -4
- package/dist/utils.d.cts.map +1 -1
- package/dist/utils.d.mts +4 -4
- package/dist/utils.d.mts.map +1 -1
- package/dist/utils.mjs +5 -7
- package/dist/utils.mjs.map +1 -1
- 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"]}
|
package/dist/types.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.cjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;
|
|
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
|
package/dist/types.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,qCAAqC;
|
|
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
|
package/dist/types.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,qCAAqC;
|
|
1
|
+
{"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
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,
|
|
196
|
+
const getReturnTxHashAsap = (clientId, featureFlags) => {
|
|
197
197
|
return clientId === types_1.ClientId.Extension
|
|
198
|
-
?
|
|
199
|
-
:
|
|
198
|
+
? featureFlags.extensionReturnTxHashAsap
|
|
199
|
+
: featureFlags.mobileReturnTxHashAsap;
|
|
200
200
|
};
|
|
201
201
|
exports.getReturnTxHashAsap = getReturnTxHashAsap;
|
|
202
|
-
const shouldMarkRegularTransactionsAsFailed = ({ smartTransaction, clientId,
|
|
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
|
|
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;
|