mirror of
https://github.com/selfxyz/self.git
synced 2026-02-19 02:24:25 -05:00
Merge pull request #1721 from selfxyz/release/staging-2026-02-09
Release Build v2.9.15 - 2026-02-09
This commit is contained in:
@@ -256,11 +256,15 @@ class CameraMLKitFragment(cameraMLKitCallback: CameraMLKitCallback) : CameraFrag
|
||||
if (!isAdded) {
|
||||
return
|
||||
}
|
||||
OcrUtils.processOcr(
|
||||
results = results,
|
||||
timeRequired = timeRequired,
|
||||
callback = mrzListener
|
||||
)
|
||||
try {
|
||||
OcrUtils.processOcr(
|
||||
results = results,
|
||||
timeRequired = timeRequired,
|
||||
callback = mrzListener
|
||||
)
|
||||
} catch (e: Exception) {
|
||||
mrzListener.onFailure(e, timeRequired)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCanceled(timeRequired: Long) {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
// NOTE: Converts to Apache-2.0 on 2029-06-11 per LICENSE.
|
||||
|
||||
import React, { useCallback } from 'react';
|
||||
import { StyleSheet, View } from 'react-native';
|
||||
import { YStack } from 'tamagui';
|
||||
import type { RouteProp } from '@react-navigation/native';
|
||||
import { useNavigation, useRoute } from '@react-navigation/native';
|
||||
import type { NativeStackNavigationProp } from '@react-navigation/native-stack';
|
||||
@@ -16,6 +16,7 @@ import {
|
||||
} from '@selfxyz/mobile-sdk-alpha/components';
|
||||
import {
|
||||
black,
|
||||
slate100,
|
||||
slate400,
|
||||
white,
|
||||
} from '@selfxyz/mobile-sdk-alpha/constants/colors';
|
||||
@@ -78,8 +79,8 @@ const LogoConfirmationScreen: React.FC = () => {
|
||||
|
||||
// User completed verification - navigate to KycSuccessScreen
|
||||
navigation.navigate('KycSuccess', { userId: accessToken.userId });
|
||||
} catch (error) {
|
||||
console.error('Error launching Sumsub:', error);
|
||||
} catch {
|
||||
console.error('Error launching Sumsub verification');
|
||||
showModal({
|
||||
titleText: 'Error',
|
||||
bodyText: 'Unable to start verification. Please try again.',
|
||||
@@ -92,26 +93,49 @@ const LogoConfirmationScreen: React.FC = () => {
|
||||
}, [documentType, countryCode, navigation, showModal]);
|
||||
|
||||
return (
|
||||
<ExpandableBottomLayout.Layout backgroundColor={white}>
|
||||
<ExpandableBottomLayout.Layout backgroundColor={slate100}>
|
||||
<DocumentFlowNavBar title="GETTING STARTED" />
|
||||
<ExpandableBottomLayout.TopSection backgroundColor={white}>
|
||||
<View style={styles.contentContainer}>
|
||||
<BodyText style={styles.titleText}>
|
||||
<ExpandableBottomLayout.TopSection backgroundColor={slate100}>
|
||||
<YStack alignItems="center" gap={24} maxWidth={340}>
|
||||
<BodyText
|
||||
style={{
|
||||
fontSize: 20,
|
||||
fontFamily: advercase,
|
||||
textAlign: 'center',
|
||||
color: black,
|
||||
}}
|
||||
>
|
||||
Does your document have this symbol?
|
||||
</BodyText>
|
||||
|
||||
<View style={styles.logoContainer}>
|
||||
<YStack
|
||||
backgroundColor={white}
|
||||
borderRadius={16}
|
||||
padding={24}
|
||||
shadowColor={black}
|
||||
shadowOffset={{ width: 0, height: 2 }}
|
||||
shadowOpacity={0.1}
|
||||
shadowRadius={8}
|
||||
elevation={4}
|
||||
>
|
||||
<EPassportLogo width={160} height={98} />
|
||||
</View>
|
||||
</YStack>
|
||||
|
||||
<BodyText style={styles.descriptionText}>
|
||||
<BodyText
|
||||
style={{
|
||||
fontSize: 16,
|
||||
fontFamily: dinot,
|
||||
textAlign: 'center',
|
||||
color: slate400,
|
||||
}}
|
||||
>
|
||||
This symbol indicates your document has a biometric chip, which is
|
||||
required for registration.
|
||||
</BodyText>
|
||||
</View>
|
||||
</YStack>
|
||||
</ExpandableBottomLayout.TopSection>
|
||||
|
||||
<ExpandableBottomLayout.BottomSection backgroundColor={white}>
|
||||
<ExpandableBottomLayout.BottomSection backgroundColor={slate100}>
|
||||
<ButtonsContainer>
|
||||
<PrimaryButton onPress={handleConfirm}>Yes</PrimaryButton>
|
||||
{kycEnabled && (
|
||||
@@ -124,33 +148,3 @@ const LogoConfirmationScreen: React.FC = () => {
|
||||
};
|
||||
|
||||
export default LogoConfirmationScreen;
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
contentContainer: {
|
||||
alignItems: 'center',
|
||||
gap: 24,
|
||||
maxWidth: 340,
|
||||
},
|
||||
titleText: {
|
||||
fontSize: 20,
|
||||
fontFamily: advercase,
|
||||
textAlign: 'center',
|
||||
color: black,
|
||||
},
|
||||
logoContainer: {
|
||||
backgroundColor: white,
|
||||
borderRadius: 16,
|
||||
padding: 24,
|
||||
shadowColor: black,
|
||||
shadowOffset: { width: 0, height: 2 },
|
||||
shadowOpacity: 0.1,
|
||||
shadowRadius: 8,
|
||||
elevation: 4,
|
||||
},
|
||||
descriptionText: {
|
||||
fontSize: 16,
|
||||
fontFamily: dinot,
|
||||
textAlign: 'center',
|
||||
color: slate400,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"ios": {
|
||||
"build": 211,
|
||||
"lastDeployed": "2026-02-04T22:15:04.337Z"
|
||||
"build": 212,
|
||||
"lastDeployed": "2026-02-06T23:20:10.343Z"
|
||||
},
|
||||
"android": {
|
||||
"build": 140,
|
||||
|
||||
@@ -346,7 +346,7 @@ library CustomVerifier {
|
||||
userIdentifier: kycOutput.userIdentifier,
|
||||
nullifier: kycOutput.nullifier,
|
||||
forbiddenCountriesListPacked: kycOutput.forbiddenCountriesListPacked,
|
||||
issuingState: "UNAVAILABLE",
|
||||
issuingState: CircuitAttributeHandlerV2.getIssuingState(AttestationId.KYC, kycOutput.revealedDataPacked),
|
||||
name: CircuitAttributeHandlerV2.getName(AttestationId.KYC, kycOutput.revealedDataPacked),
|
||||
idNumber: CircuitAttributeHandlerV2.getDocumentNumber(AttestationId.KYC, kycOutput.revealedDataPacked),
|
||||
nationality: CircuitAttributeHandlerV2.getNationality(AttestationId.KYC, kycOutput.revealedDataPacked),
|
||||
|
||||
@@ -37,10 +37,10 @@ contract Verifier_gcp_jwt {
|
||||
uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781;
|
||||
uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531;
|
||||
uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930;
|
||||
uint256 constant deltax1 = 1804222383802986733937376810902861143401033555807870231731929239915419049861;
|
||||
uint256 constant deltax2 = 15902885537441599351050098769394227668772388058868388096316964244217496511682;
|
||||
uint256 constant deltay1 = 4195707504005103778106485021796359604414786496137920116128130440872062477216;
|
||||
uint256 constant deltay2 = 20513207510859042996645896574478474889840017920990203652675014165180462273668;
|
||||
uint256 constant deltax1 = 1251881756337791411928133847605135151052521532650145608856023618834663237249;
|
||||
uint256 constant deltax2 = 5281789764009987450775605587672163080892994094738055552649386387568551504938;
|
||||
uint256 constant deltay1 = 10977469751764298292601658816468903002676551535082393684254221834632855537611;
|
||||
uint256 constant deltay2 = 16316330863572428734364637140327331781488799597244767274686281923936865378112;
|
||||
|
||||
uint256 constant IC0x = 6972951741762339913362267428319005943611938060812676091174501911982947323821;
|
||||
uint256 constant IC0y = 4968121098705797351946375443564156998686441710551907423285338106315203657372;
|
||||
|
||||
@@ -25,16 +25,12 @@ export const formatRevealedDataPacked = (
|
||||
);
|
||||
let issuingState = '';
|
||||
|
||||
if (attestationId === 4) {
|
||||
issuingState = 'UNAVAILABLE';
|
||||
} else {
|
||||
issuingState = revealedDataPackedString
|
||||
.subarray(
|
||||
revealedDataIndices[attestationId].issuingStateStart,
|
||||
revealedDataIndices[attestationId].issuingStateEnd + 1
|
||||
)
|
||||
.toString('utf-8');
|
||||
}
|
||||
issuingState = revealedDataPackedString
|
||||
.subarray(
|
||||
revealedDataIndices[attestationId].issuingStateStart,
|
||||
revealedDataIndices[attestationId].issuingStateEnd + 1
|
||||
)
|
||||
.toString('utf-8');
|
||||
|
||||
const name = revealedDataPackedString
|
||||
.subarray(
|
||||
|
||||
Reference in New Issue
Block a user