Skip to content

Commit 30f3239

Browse files
committed
feat(suite-native): bitcoin and ethereum send enabled
1 parent bceeac3 commit 30f3239

File tree

4 files changed

+32
-23
lines changed

4 files changed

+32
-23
lines changed

suite-native/feature-flags/src/featureFlagsSlice.ts

+9-6
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ import { isDebugEnv, isDetoxTestBuild, isDevelopOrDebugEnv } from '@suite-native
55

66
export const FeatureFlag = {
77
IsDeviceConnectEnabled: 'isDeviceConnectEnabled',
8-
IsBitcoinLikeSendEnabled: 'isBitcoinLikeSendEnabled',
9-
IsEthereumSendEnabled: 'isEthereumSendEnabled',
8+
IsRippleSendEnabled: 'isRippleSendEnabled',
9+
IsCardanoSendEnabled: 'isCardanoSendEnabled',
10+
IsSolanaSendEnabled: 'isSolanaSendEnabled',
1011
IsRegtestEnabled: 'isRegtestEnabled',
1112
IsSolanaEnabled: 'IsSolanaEnabled',
1213
IsConnectPopupEnabled: 'IsConnectPopupEnabled',
@@ -21,17 +22,19 @@ export type FeatureFlagsRootState = {
2122

2223
export const featureFlagsInitialState: FeatureFlagsState = {
2324
[FeatureFlag.IsDeviceConnectEnabled]: isAndroid() || isDebugEnv(),
24-
[FeatureFlag.IsBitcoinLikeSendEnabled]: isAndroid() && isDevelopOrDebugEnv(),
25-
[FeatureFlag.IsEthereumSendEnabled]: isAndroid() && isDevelopOrDebugEnv(),
25+
[FeatureFlag.IsRippleSendEnabled]: isAndroid() && isDevelopOrDebugEnv(),
26+
[FeatureFlag.IsCardanoSendEnabled]: isAndroid() && isDevelopOrDebugEnv(),
27+
[FeatureFlag.IsSolanaSendEnabled]: isAndroid() && isDevelopOrDebugEnv(),
2628
[FeatureFlag.IsRegtestEnabled]: isDebugEnv() || isDetoxTestBuild(),
2729
[FeatureFlag.IsSolanaEnabled]: false,
2830
[FeatureFlag.IsConnectPopupEnabled]: isDevelopOrDebugEnv(),
2931
};
3032

3133
export const featureFlagsPersistedKeys: Array<keyof FeatureFlagsState> = [
3234
FeatureFlag.IsDeviceConnectEnabled,
33-
FeatureFlag.IsBitcoinLikeSendEnabled,
34-
FeatureFlag.IsEthereumSendEnabled,
35+
FeatureFlag.IsRippleSendEnabled,
36+
FeatureFlag.IsCardanoSendEnabled,
37+
FeatureFlag.IsSolanaSendEnabled,
3538
FeatureFlag.IsRegtestEnabled,
3639
FeatureFlag.IsSolanaEnabled,
3740
FeatureFlag.IsConnectPopupEnabled,

suite-native/module-accounts-management/package.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
"@reduxjs/toolkit": "1.9.5",
1818
"@suite-common/fiat-services": "workspace:*",
1919
"@suite-common/graph": "workspace:*",
20-
"@suite-common/suite-constants": "workspace:*",
2120
"@suite-common/wallet-config": "workspace:*",
2221
"@suite-common/wallet-core": "workspace:*",
2322
"@suite-common/wallet-types": "workspace:*",
@@ -47,4 +46,4 @@
4746
"react-native-reanimated": "3.16.1",
4847
"react-redux": "8.0.7"
4948
}
50-
}
49+
}
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,41 @@
1-
import { NetworkSymbol, getNetworkType } from '@suite-common/wallet-config';
2-
import { BITCOIN_ONLY_NETWORKS } from '@suite-common/suite-constants';
1+
import { D, pipe } from '@mobily/ts-belt';
2+
3+
import { NetworkSymbol, getNetworkType, networks } from '@suite-common/wallet-config';
34
import {
45
FeatureFlagsRootState,
56
selectIsFeatureFlagEnabled,
67
FeatureFlag,
78
} from '@suite-native/feature-flags';
89

9-
const SEND_COINS_WHITELIST = BITCOIN_ONLY_NETWORKS;
10+
const PRODUCTION_SEND_COINS_WHITELIST = pipe(
11+
networks,
12+
D.filter(network => network.networkType === 'bitcoin' || network.networkType === 'ethereum'),
13+
D.keys,
14+
);
1015

1116
export const selectIsNetworkSendFlowEnabled = (
1217
state: FeatureFlagsRootState,
1318
networkSymbol?: NetworkSymbol,
1419
) => {
1520
if (!networkSymbol) return false;
21+
const networkType = getNetworkType(networkSymbol);
1622

17-
if (SEND_COINS_WHITELIST.includes(networkSymbol)) return true;
23+
if (PRODUCTION_SEND_COINS_WHITELIST.includes(networkSymbol)) return true;
1824

19-
const isBitcoinLikeSendEnabled = selectIsFeatureFlagEnabled(
20-
state,
21-
FeatureFlag.IsBitcoinLikeSendEnabled,
22-
);
25+
const isRippleSendEnabled = selectIsFeatureFlagEnabled(state, FeatureFlag.IsRippleSendEnabled);
2326

24-
const networkType = getNetworkType(networkSymbol);
25-
if (isBitcoinLikeSendEnabled && networkType === 'bitcoin') return true;
27+
if (isRippleSendEnabled && networkType === 'ripple') return true;
2628

27-
const isEthereumSendEnabled = selectIsFeatureFlagEnabled(
29+
const isCardanoSendEnabled = selectIsFeatureFlagEnabled(
2830
state,
29-
FeatureFlag.IsEthereumSendEnabled,
31+
FeatureFlag.IsCardanoSendEnabled,
3032
);
3133

32-
if (isEthereumSendEnabled && networkType === 'ethereum') return true;
34+
if (isCardanoSendEnabled && networkType === 'cardano') return true;
35+
36+
const isSolanaSendEnabled = selectIsFeatureFlagEnabled(state, FeatureFlag.IsSolanaSendEnabled);
37+
38+
if (isSolanaSendEnabled && networkType === 'solana') return true;
3339

3440
return false;
3541
};

suite-native/module-dev-utils/src/components/FeatureFlags.tsx

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ import { FeatureFlag as FeatureFlagEnum, useFeatureFlag } from '@suite-native/fe
33

44
const featureFlagsTitleMap = {
55
[FeatureFlagEnum.IsDeviceConnectEnabled]: 'Connect device',
6-
[FeatureFlagEnum.IsBitcoinLikeSendEnabled]: 'Bitcoin-like coins send',
7-
[FeatureFlagEnum.IsEthereumSendEnabled]: 'Ethereum-like coins send',
6+
[FeatureFlagEnum.IsRippleSendEnabled]: 'Ripple send',
7+
[FeatureFlagEnum.IsCardanoSendEnabled]: 'Cardano send',
8+
[FeatureFlagEnum.IsSolanaSendEnabled]: 'Solana send',
89
[FeatureFlagEnum.IsRegtestEnabled]: 'Regtest',
910
[FeatureFlagEnum.IsSolanaEnabled]: 'Solana',
1011
[FeatureFlagEnum.IsConnectPopupEnabled]: 'Connect Popup',

0 commit comments

Comments
 (0)