mirror of
https://github.com/selfxyz/self.git
synced 2026-01-10 07:08:10 -05:00
Disable turnkey button; bump new android build (#1412)
* disable turnkey * disable turnkey button * remove comments * update build * bump artifcats
This commit is contained in:
@@ -114,9 +114,9 @@ GEM
|
||||
faraday-rack (~> 1.0)
|
||||
faraday-retry (~> 1.0)
|
||||
ruby2_keywords (>= 0.0.4)
|
||||
faraday-cookie_jar (0.0.7)
|
||||
faraday-cookie_jar (0.0.8)
|
||||
faraday (>= 0.8.0)
|
||||
http-cookie (~> 1.0.0)
|
||||
http-cookie (>= 1.0.0)
|
||||
faraday-em_http (1.0.0)
|
||||
faraday-em_synchrony (1.0.1)
|
||||
faraday-excon (1.1.0)
|
||||
|
||||
@@ -134,7 +134,7 @@ android {
|
||||
applicationId "com.proofofpassportapp"
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
versionCode 120
|
||||
versionCode 121
|
||||
versionName "2.9.0"
|
||||
manifestPlaceholders = [appAuthRedirectScheme: 'com.proofofpassportapp']
|
||||
externalNativeBuild {
|
||||
|
||||
@@ -2,11 +2,10 @@
|
||||
// SPDX-License-Identifier: BUSL-1.1
|
||||
// NOTE: Converts to Apache-2.0 on 2029-06-11 per LICENSE.
|
||||
|
||||
import React, { useCallback, useEffect, useState } from 'react';
|
||||
import React, { useCallback, useState } from 'react';
|
||||
import { Separator, View, XStack, YStack } from 'tamagui';
|
||||
import { useNavigation } from '@react-navigation/native';
|
||||
import type { NativeStackNavigationProp } from '@react-navigation/native-stack';
|
||||
import { AuthState, useTurnkey } from '@turnkey/react-native-wallet-kit';
|
||||
|
||||
import { isUserRegisteredWithAlternativeCSCA } from '@selfxyz/common/utils/passports/validate';
|
||||
import {
|
||||
@@ -36,32 +35,38 @@ import { useSettingStore } from '@/stores/settingStore';
|
||||
import type { Mnemonic } from '@/types/mnemonic';
|
||||
import { STORAGE_NAME, useBackupMnemonic } from '@/utils/cloudBackup';
|
||||
import { black, slate500, slate600, white } from '@/utils/colors';
|
||||
import { useTurnkeyUtils } from '@/utils/turnkey';
|
||||
|
||||
// DISABLED FOR NOW: Turnkey functionality
|
||||
// import { AuthState, useTurnkey } from '@turnkey/react-native-wallet-kit';
|
||||
// import { useTurnkeyUtils } from '@/utils/turnkey';
|
||||
|
||||
const AccountRecoveryChoiceScreen: React.FC = () => {
|
||||
const selfClient = useSelfClient();
|
||||
const { useProtocolStore } = selfClient;
|
||||
const { trackEvent } = useSelfClient();
|
||||
const { restoreAccountFromMnemonic } = useAuth();
|
||||
const { turnkeyWallets, refreshWallets } = useTurnkeyUtils();
|
||||
const { getMnemonic } = useTurnkeyUtils();
|
||||
const { authState } = useTurnkey();
|
||||
// DISABLED FOR NOW: Turnkey functionality
|
||||
// const { turnkeyWallets, refreshWallets } = useTurnkeyUtils();
|
||||
// const { getMnemonic } = useTurnkeyUtils();
|
||||
// const { authState } = useTurnkey();
|
||||
const [restoring, setRestoring] = useState(false);
|
||||
const { cloudBackupEnabled, toggleCloudBackupEnabled, biometricsAvailable } =
|
||||
useSettingStore();
|
||||
const { download } = useBackupMnemonic();
|
||||
const navigation =
|
||||
useNavigation<NativeStackNavigationProp<RootStackParamList>>();
|
||||
const setTurnkeyBackupEnabled = useSettingStore(
|
||||
state => state.setTurnkeyBackupEnabled,
|
||||
);
|
||||
// DISABLED FOR NOW: Turnkey functionality
|
||||
// const setTurnkeyBackupEnabled = useSettingStore(
|
||||
// state => state.setTurnkeyBackupEnabled,
|
||||
// );
|
||||
|
||||
const onRestoreFromCloudNext = useHapticNavigation('AccountVerifiedSuccess');
|
||||
const onEnterRecoveryPress = useHapticNavigation('RecoverWithPhrase');
|
||||
|
||||
useEffect(() => {
|
||||
refreshWallets();
|
||||
}, [refreshWallets]);
|
||||
// DISABLED FOR NOW: Turnkey functionality
|
||||
// useEffect(() => {
|
||||
// refreshWallets();
|
||||
// }, [refreshWallets]);
|
||||
|
||||
const restoreAccountFlow = useCallback(
|
||||
async (
|
||||
@@ -138,29 +143,30 @@ const AccountRecoveryChoiceScreen: React.FC = () => {
|
||||
],
|
||||
);
|
||||
|
||||
const onRestoreFromTurnkeyPress = useCallback(async () => {
|
||||
setRestoring(true);
|
||||
try {
|
||||
const mnemonicPhrase = await getMnemonic();
|
||||
const mnemonic: Mnemonic = {
|
||||
phrase: mnemonicPhrase,
|
||||
password: '',
|
||||
wordlist: {
|
||||
locale: 'en',
|
||||
},
|
||||
entropy: '',
|
||||
};
|
||||
const success = await restoreAccountFlow(mnemonic);
|
||||
if (success) {
|
||||
setTurnkeyBackupEnabled(true);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Turnkey restore error:', error);
|
||||
trackEvent(BackupEvents.CLOUD_RESTORE_FAILED_UNKNOWN);
|
||||
} finally {
|
||||
setRestoring(false);
|
||||
}
|
||||
}, [getMnemonic, restoreAccountFlow, setTurnkeyBackupEnabled, trackEvent]);
|
||||
// DISABLED FOR NOW: Turnkey functionality
|
||||
// const onRestoreFromTurnkeyPress = useCallback(async () => {
|
||||
// setRestoring(true);
|
||||
// try {
|
||||
// const mnemonicPhrase = await getMnemonic();
|
||||
// const mnemonic: Mnemonic = {
|
||||
// phrase: mnemonicPhrase,
|
||||
// password: '',
|
||||
// wordlist: {
|
||||
// locale: 'en',
|
||||
// },
|
||||
// entropy: '',
|
||||
// };
|
||||
// const success = await restoreAccountFlow(mnemonic);
|
||||
// if (success) {
|
||||
// setTurnkeyBackupEnabled(true);
|
||||
// }
|
||||
// } catch (error) {
|
||||
// console.error('Turnkey restore error:', error);
|
||||
// trackEvent(BackupEvents.CLOUD_RESTORE_FAILED_UNKNOWN);
|
||||
// } finally {
|
||||
// setRestoring(false);
|
||||
// }
|
||||
// }, [getMnemonic, restoreAccountFlow, setTurnkeyBackupEnabled, trackEvent]);
|
||||
|
||||
const onRestoreFromCloudPress = useCallback(async () => {
|
||||
setRestoring(true);
|
||||
@@ -205,7 +211,8 @@ const AccountRecoveryChoiceScreen: React.FC = () => {
|
||||
</Description>
|
||||
|
||||
<YStack gap="$2.5" width="100%" paddingTop="$6">
|
||||
<PrimaryButton
|
||||
{/* DISABLED FOR NOW: Turnkey functionality */}
|
||||
{/* <PrimaryButton
|
||||
trackEvent={BackupEvents.CLOUD_BACKUP_STARTED}
|
||||
onPress={onRestoreFromTurnkeyPress}
|
||||
testID="button-from-turnkey"
|
||||
@@ -218,7 +225,7 @@ const AccountRecoveryChoiceScreen: React.FC = () => {
|
||||
>
|
||||
{restoring ? 'Restoring' : 'Restore'} from Turnkey
|
||||
{restoring ? '…' : ''}
|
||||
</PrimaryButton>
|
||||
</PrimaryButton> */}
|
||||
<PrimaryButton
|
||||
trackEvent={BackupEvents.CLOUD_BACKUP_STARTED}
|
||||
onPress={onRestoreFromCloudPress}
|
||||
|
||||
@@ -8,7 +8,6 @@ import { YStack } from 'tamagui';
|
||||
import type { StaticScreenProps } from '@react-navigation/native';
|
||||
import { useNavigation } from '@react-navigation/native';
|
||||
import type { NativeStackNavigationProp } from '@react-navigation/native-stack';
|
||||
import { Wallet } from '@tamagui/lucide-icons';
|
||||
|
||||
import { useSelfClient } from '@selfxyz/mobile-sdk-alpha';
|
||||
import {
|
||||
@@ -26,7 +25,10 @@ import { STORAGE_NAME, useBackupMnemonic } from '@/utils/cloudBackup';
|
||||
import { black, blue600, slate200, slate500, white } from '@/utils/colors';
|
||||
import { advercase, dinot } from '@/utils/fonts';
|
||||
import { buttonTap, confirmTap } from '@/utils/haptic';
|
||||
import { useTurnkeyUtils } from '@/utils/turnkey';
|
||||
|
||||
// DISABLED FOR NOW: Turnkey functionality
|
||||
// import { Wallet } from '@tamagui/lucide-icons';
|
||||
// import { useTurnkeyUtils } from '@/utils/turnkey';
|
||||
|
||||
type NextScreen = keyof Pick<RootStackParamList, 'SaveRecoveryPhrase'>;
|
||||
|
||||
@@ -44,13 +46,15 @@ const CloudBackupScreen: React.FC<CloudBackupScreenProps> = ({
|
||||
route: { params },
|
||||
}) => {
|
||||
const { trackEvent } = useSelfClient();
|
||||
const { backupAccount } = useTurnkeyUtils();
|
||||
// DISABLED FOR NOW: Turnkey functionality
|
||||
// const { backupAccount } = useTurnkeyUtils();
|
||||
const { getOrCreateMnemonic, loginWithBiometrics } = useAuth();
|
||||
const {
|
||||
cloudBackupEnabled,
|
||||
toggleCloudBackupEnabled,
|
||||
biometricsAvailable,
|
||||
turnkeyBackupEnabled,
|
||||
// DISABLED FOR NOW: Turnkey functionality
|
||||
// turnkeyBackupEnabled,
|
||||
} = useSettingStore();
|
||||
const { upload, disableBackup } = useBackupMnemonic();
|
||||
const navigation =
|
||||
@@ -58,7 +62,8 @@ const CloudBackupScreen: React.FC<CloudBackupScreenProps> = ({
|
||||
|
||||
const [_selectedMethod, setSelectedMethod] = useState<BackupMethod>(null);
|
||||
const [iCloudPending, setICloudPending] = useState(false);
|
||||
const [turnkeyPending, setTurnkeyPending] = useState(false);
|
||||
// DISABLED FOR NOW: Turnkey functionality
|
||||
// const [turnkeyPending, setTurnkeyPending] = useState(false);
|
||||
|
||||
const { showModal: showDisableModal } = useModal(
|
||||
useMemo(
|
||||
@@ -91,22 +96,23 @@ const CloudBackupScreen: React.FC<CloudBackupScreenProps> = ({
|
||||
),
|
||||
);
|
||||
|
||||
const { showModal: showAlreadySignedInModal } = useModal({
|
||||
titleText: 'Cannot use this email',
|
||||
bodyText:
|
||||
'You cannot use this email. Please try again with a different email address.',
|
||||
buttonText: 'OK',
|
||||
onButtonPress: () => {},
|
||||
onModalDismiss: () => {},
|
||||
});
|
||||
// DISABLED FOR NOW: Turnkey functionality
|
||||
// const { showModal: showAlreadySignedInModal } = useModal({
|
||||
// titleText: 'Cannot use this email',
|
||||
// bodyText:
|
||||
// 'You cannot use this email. Please try again with a different email address.',
|
||||
// buttonText: 'OK',
|
||||
// onButtonPress: () => {},
|
||||
// onModalDismiss: () => {},
|
||||
// });
|
||||
|
||||
const { showModal: showAlreadyBackedUpModal } = useModal({
|
||||
titleText: 'Already backed up with Turnkey',
|
||||
bodyText: 'You have already backed up your account with Turnkey.',
|
||||
buttonText: 'OK',
|
||||
onButtonPress: () => {},
|
||||
onModalDismiss: () => {},
|
||||
});
|
||||
// const { showModal: showAlreadyBackedUpModal } = useModal({
|
||||
// titleText: 'Already backed up with Turnkey',
|
||||
// bodyText: 'You have already backed up your account with Turnkey.',
|
||||
// buttonText: 'OK',
|
||||
// onButtonPress: () => {},
|
||||
// onModalDismiss: () => {},
|
||||
// });
|
||||
const handleICloudBackup = useCallback(async () => {
|
||||
buttonTap();
|
||||
setSelectedMethod('icloud');
|
||||
@@ -153,61 +159,62 @@ const CloudBackupScreen: React.FC<CloudBackupScreenProps> = ({
|
||||
showDisableModal();
|
||||
}, [showDisableModal]);
|
||||
|
||||
const handleTurnkeyBackup = useCallback(async () => {
|
||||
buttonTap();
|
||||
setSelectedMethod('turnkey');
|
||||
// DISABLED FOR NOW: Turnkey functionality
|
||||
// const handleTurnkeyBackup = useCallback(async () => {
|
||||
// buttonTap();
|
||||
// setSelectedMethod('turnkey');
|
||||
|
||||
if (turnkeyBackupEnabled) {
|
||||
return;
|
||||
}
|
||||
// if (turnkeyBackupEnabled) {
|
||||
// return;
|
||||
// }
|
||||
|
||||
setTurnkeyPending(true);
|
||||
// setTurnkeyPending(true);
|
||||
|
||||
try {
|
||||
const mnemonics = await getOrCreateMnemonic();
|
||||
// try {
|
||||
// const mnemonics = await getOrCreateMnemonic();
|
||||
|
||||
if (!mnemonics?.data.phrase) {
|
||||
console.error('No mnemonic found');
|
||||
setTurnkeyPending(false);
|
||||
return;
|
||||
}
|
||||
// if (!mnemonics?.data.phrase) {
|
||||
// console.error('No mnemonic found');
|
||||
// setTurnkeyPending(false);
|
||||
// return;
|
||||
// }
|
||||
|
||||
await backupAccount(mnemonics.data.phrase);
|
||||
setTurnkeyPending(false);
|
||||
// await backupAccount(mnemonics.data.phrase);
|
||||
// setTurnkeyPending(false);
|
||||
|
||||
if (params?.returnToScreen) {
|
||||
navigation.navigate(params.returnToScreen);
|
||||
}
|
||||
} catch (error) {
|
||||
if (error instanceof Error && error.message === 'already_exists') {
|
||||
console.log('Already signed in with Turnkey');
|
||||
showAlreadySignedInModal();
|
||||
} else if (
|
||||
error instanceof Error &&
|
||||
error.message === 'already_backed_up'
|
||||
) {
|
||||
console.log('Already backed up with Turnkey');
|
||||
if (params?.returnToScreen) {
|
||||
navigation.navigate(params.returnToScreen);
|
||||
} else if (params?.nextScreen) {
|
||||
navigation.navigate(params.nextScreen);
|
||||
} else {
|
||||
showAlreadyBackedUpModal();
|
||||
}
|
||||
} else {
|
||||
console.error('Turnkey backup error', error);
|
||||
}
|
||||
setTurnkeyPending(false);
|
||||
}
|
||||
}, [
|
||||
turnkeyBackupEnabled,
|
||||
backupAccount,
|
||||
getOrCreateMnemonic,
|
||||
showAlreadySignedInModal,
|
||||
showAlreadyBackedUpModal,
|
||||
navigation,
|
||||
params,
|
||||
]);
|
||||
// if (params?.returnToScreen) {
|
||||
// navigation.navigate(params.returnToScreen);
|
||||
// }
|
||||
// } catch (error) {
|
||||
// if (error instanceof Error && error.message === 'already_exists') {
|
||||
// console.log('Already signed in with Turnkey');
|
||||
// showAlreadySignedInModal();
|
||||
// } else if (
|
||||
// error instanceof Error &&
|
||||
// error.message === 'already_backed_up'
|
||||
// ) {
|
||||
// console.log('Already backed up with Turnkey');
|
||||
// if (params?.returnToScreen) {
|
||||
// navigation.navigate(params.returnToScreen);
|
||||
// } else if (params?.nextScreen) {
|
||||
// navigation.navigate(params.nextScreen);
|
||||
// } else {
|
||||
// showAlreadyBackedUpModal();
|
||||
// }
|
||||
// } else {
|
||||
// console.error('Turnkey backup error', error);
|
||||
// }
|
||||
// setTurnkeyPending(false);
|
||||
// }
|
||||
// }, [
|
||||
// turnkeyBackupEnabled,
|
||||
// backupAccount,
|
||||
// getOrCreateMnemonic,
|
||||
// showAlreadySignedInModal,
|
||||
// showAlreadyBackedUpModal,
|
||||
// navigation,
|
||||
// params,
|
||||
// ]);
|
||||
|
||||
return (
|
||||
<YStack flex={1} backgroundColor={white}>
|
||||
@@ -259,7 +266,8 @@ const CloudBackupScreen: React.FC<CloudBackupScreenProps> = ({
|
||||
</Pressable>
|
||||
)}
|
||||
|
||||
{turnkeyBackupEnabled ? (
|
||||
{/* DISABLED FOR NOW: Turnkey functionality */}
|
||||
{/* {turnkeyBackupEnabled ? (
|
||||
<SecondaryButton
|
||||
disabled
|
||||
trackEvent={BackupEvents.CLOUD_BACKUP_DISABLE_STARTED}
|
||||
@@ -281,11 +289,11 @@ const CloudBackupScreen: React.FC<CloudBackupScreenProps> = ({
|
||||
{turnkeyPending ? '…' : ''}
|
||||
</Text>
|
||||
</Pressable>
|
||||
)}
|
||||
)} */}
|
||||
|
||||
<BottomButton
|
||||
cloudBackupEnabled={cloudBackupEnabled}
|
||||
turnkeyBackupEnabled={turnkeyBackupEnabled}
|
||||
turnkeyBackupEnabled={false}
|
||||
nextScreen={params?.nextScreen}
|
||||
/>
|
||||
</View>
|
||||
|
||||
@@ -23,7 +23,9 @@ import { black, slate400, white } from '@/utils/colors';
|
||||
const SaveRecoveryPhraseScreen: React.FC = () => {
|
||||
const [userHasSeenMnemonic, setUserHasSeenMnemonic] = useState(false);
|
||||
const { mnemonic, loadMnemonic } = useMnemonic();
|
||||
const { cloudBackupEnabled, turnkeyBackupEnabled } = useSettingStore();
|
||||
// DISABLED FOR NOW: Turnkey functionality
|
||||
// const { cloudBackupEnabled, turnkeyBackupEnabled } = useSettingStore();
|
||||
const { cloudBackupEnabled } = useSettingStore();
|
||||
|
||||
const onRevealWords = useCallback(async () => {
|
||||
await loadMnemonic();
|
||||
@@ -64,10 +66,10 @@ const SaveRecoveryPhraseScreen: React.FC = () => {
|
||||
settings.
|
||||
</Caption>
|
||||
<PrimaryButton onPress={onCloudBackupPress}>
|
||||
Manage {STORAGE_NAME} or Turnkey backups
|
||||
Manage {STORAGE_NAME} backups
|
||||
</PrimaryButton>
|
||||
<SecondaryButton onPress={onSkipPress}>
|
||||
{userHasSeenMnemonic || cloudBackupEnabled || turnkeyBackupEnabled
|
||||
{userHasSeenMnemonic || cloudBackupEnabled
|
||||
? 'Continue'
|
||||
: 'Skip making a backup'}
|
||||
</SecondaryButton>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"lastDeployed": "2025-11-11T17:50:43.331Z"
|
||||
},
|
||||
"android": {
|
||||
"build": 120,
|
||||
"lastDeployed": "2025-11-12T01:32:51Z"
|
||||
"build": 121,
|
||||
"lastDeployed": "2025-11-12T21:52:45Z"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user