From ac69e328d917edd14f993916447088343d68492a Mon Sep 17 00:00:00 2001 From: Evi Nova <66773372+Tranquil-Flow@users.noreply.github.com> Date: Mon, 9 Feb 2026 12:43:46 +1000 Subject: [PATCH 1/5] Fix/logo confirmation screen header (#1717) * fix: logo confirmation screen header matching background * refactor: match code patterns in logo confirmation screen to others use Tamgui instead of react-native, don't show raw errors, inline objects --- .../selection/LogoConfirmationScreen.tsx | 78 +++++++++---------- 1 file changed, 36 insertions(+), 42 deletions(-) diff --git a/app/src/screens/documents/selection/LogoConfirmationScreen.tsx b/app/src/screens/documents/selection/LogoConfirmationScreen.tsx index 55813cf3d..10c7a4ee2 100644 --- a/app/src/screens/documents/selection/LogoConfirmationScreen.tsx +++ b/app/src/screens/documents/selection/LogoConfirmationScreen.tsx @@ -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 ( - + - - - + + + Does your document have this symbol? - + - + - + This symbol indicates your document has a biometric chip, which is required for registration. - + - + Yes {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, - }, -}); From 03876a86284b0ed794fbff7aae142e62a3212624 Mon Sep 17 00:00:00 2001 From: Nesopie <87437291+Nesopie@users.noreply.github.com> Date: Mon, 9 Feb 2026 10:09:33 +0530 Subject: [PATCH 2/5] feat: read issuing state from revealed data packed (#1718) --- contracts/contracts/libraries/CustomVerifier.sol | 2 +- sdk/core/src/utils/id.ts | 16 ++++++---------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/contracts/contracts/libraries/CustomVerifier.sol b/contracts/contracts/libraries/CustomVerifier.sol index 9e6d3cd2c..d1f11597e 100644 --- a/contracts/contracts/libraries/CustomVerifier.sol +++ b/contracts/contracts/libraries/CustomVerifier.sol @@ -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), diff --git a/sdk/core/src/utils/id.ts b/sdk/core/src/utils/id.ts index 2956c7dae..25a67e8cf 100644 --- a/sdk/core/src/utils/id.ts +++ b/sdk/core/src/utils/id.ts @@ -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( From ccf3a3e3c5ea98a9135cbd3850337c1206257771 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 9 Feb 2026 06:31:40 -0800 Subject: [PATCH 3/5] chore: bump mobile app version to 2.9.15 (#1716) Update build numbers and deployment timestamps after successful deployment. Co-authored-by: github-actions[bot] --- app/version.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/version.json b/app/version.json index 42daacd00..e62830802 100644 --- a/app/version.json +++ b/app/version.json @@ -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, From 14a6cbb91b668acaaee0505818bd28d6b74080ea Mon Sep 17 00:00:00 2001 From: Nesopie <87437291+Nesopie@users.noreply.github.com> Date: Mon, 9 Feb 2026 20:03:34 +0530 Subject: [PATCH 4/5] Feat/new gcp verifier (#1719) * feat: new gcp jwt verifier * lint: contracts --- contracts/contracts/verifiers/gcp/Verifier_gcp_jwt.sol | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/contracts/contracts/verifiers/gcp/Verifier_gcp_jwt.sol b/contracts/contracts/verifiers/gcp/Verifier_gcp_jwt.sol index 629ddd7a7..3eaa8a27f 100644 --- a/contracts/contracts/verifiers/gcp/Verifier_gcp_jwt.sol +++ b/contracts/contracts/verifiers/gcp/Verifier_gcp_jwt.sol @@ -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; From c886ed19e0e5ba17960012dd51b329fb1271f70d Mon Sep 17 00:00:00 2001 From: Justin Hernandez Date: Mon, 9 Feb 2026 10:12:37 -0800 Subject: [PATCH 5/5] SELF-1959: reset isDecoding on OCR failure (#1720) * add try catch to set isDecoding on failure * call mrz listener with failure * remove redundant log call --- .../proofofpassportapp/ui/CameraMLKitFragment.kt | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/app/android/app/src/main/java/com/proofofpassportapp/ui/CameraMLKitFragment.kt b/app/android/app/src/main/java/com/proofofpassportapp/ui/CameraMLKitFragment.kt index 150706530..bf83fb57a 100644 --- a/app/android/app/src/main/java/com/proofofpassportapp/ui/CameraMLKitFragment.kt +++ b/app/android/app/src/main/java/com/proofofpassportapp/ui/CameraMLKitFragment.kt @@ -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) {