Skip to content
Merged
Show file tree
Hide file tree
Changes from 30 commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
07e4678
Setup and add turnkey utils
seshanthS Oct 24, 2025
cd6a7f3
Merge branch 'dev' into feat/turnkey
seshanthS Oct 24, 2025
3e90bf4
update CloudBackupScreen
seshanthS Oct 28, 2025
aa6e8ad
fix: turnkey
seshanthS Oct 29, 2025
6f8638e
add yarn.lock
seshanthS Oct 29, 2025
03014a7
lint
seshanthS Oct 29, 2025
feb433e
add podfile.lock
seshanthS Oct 30, 2025
4ba9d0b
Merge branch 'dev' into feat/turnkey
seshanthS Oct 30, 2025
5a67b5c
fix deeplink
seshanthS Oct 30, 2025
e02e182
fix tests: mock turnkey
seshanthS Oct 30, 2025
f506113
yarn nice
seshanthS Oct 30, 2025
8b18797
Merge branch 'feat/turnkey' of github.com:selfxyz/self into feat/turnkey
seshanthS Oct 30, 2025
231872a
update .gitleaksignore
seshanthS Oct 31, 2025
ff41972
patch react-native-svg
seshanthS Oct 31, 2025
e784164
fix patch-package
seshanthS Nov 1, 2025
6a527c0
Merge branch 'app/two-point-nine' into feat/turnkey
seshanthS Nov 3, 2025
f0782de
fix lineHeight
seshanthS Nov 3, 2025
f3135a3
points.tsx: fix lineHeight
seshanthS Nov 3, 2025
955fbee
Merge branch 'app/two-point-nine' into feat/turnkey
seshanthS Nov 4, 2025
bbd2067
Merge branch 'app/two-point-nine' into feat/turnkey
seshanthS Nov 6, 2025
599377a
fix: recover with turnkey disabled state
seshanthS Nov 7, 2025
252e336
Merge branch 'app/two-point-nine' into feat/turnkey
seshanthS Nov 7, 2025
ee37c7a
fix turnkey flow
seshanthS Nov 7, 2025
b0e5ffb
Merge branch 'app/two-point-nine' into feat/turnkey
seshanthS Nov 7, 2025
caa7464
fix: address generation
seshanthS Nov 7, 2025
77b063c
minify animations (#1368)
transphorm Nov 7, 2025
2db40a6
fix pipelines
transphorm Nov 7, 2025
77a08bd
Merge branch 'dev' into feat/turnkey
transphorm Nov 7, 2025
17f0ab5
Merge branch 'app/two-point-nine' into feat/turnkey
transphorm Nov 7, 2025
d117cb8
fix false positives
transphorm Nov 7, 2025
545303c
fix gitguardian
transphorm Nov 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitguardian.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ secret:
ignored_matches:
- match: 2036b4e50ad3042969b290e354d9864465107a14de6f5a36d49f81ea8290def8
name: prebuilt-ios-arm64-apple-ios.private.swiftinterface
- match: 19414827
name: NFCPassportReader-swiftinterface-false-positive
ignored_paths:
- ".gitleaks.toml"
- "**/*.swiftinterface"
Expand Down
3 changes: 3 additions & 0 deletions .gitleaksignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,7 @@
1b461a626e0a4a93d4e1c727e7aed8c955aa728c:common/src/utils/passports/validate.test.ts:generic-api-key:73
1b461a626e0a4a93d4e1c727e7aed8c955aa728c:common/src/utils/passports/validate.test.ts:generic-api-key:74
8bc1e85075f73906767652ab35d5563efce2a931:packages/mobile-sdk-alpha/src/animations/passport_verify.json:aws-access-token:6
f506113a22e5b147132834e4659f5af308448389:app/tests/utils/deeplinks.test.ts:generic-api-key:183
5a67b5cc50f291401d1da4e51706d0cfcf1c2316:app/tests/utils/deeplinks.test.ts:generic-api-key:182
0e4555eee6589aa9cca68f451227b149277d8c90:app/tests/src/utils/points/api.test.ts:generic-api-key:34
feb433e3553f8a7fa6c724b2de5a3e32ef079880:app/ios/Podfile.lock:generic-api-key:2594
70 changes: 69 additions & 1 deletion app/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,19 @@
// CI/CD Pipeline Test - July 31, 2025 - With Permissions Fix
import { Buffer } from 'buffer';
import React from 'react';
import { Platform } from 'react-native';
import { YStack } from 'tamagui';
import type {
TurnkeyCallbacks,
TurnkeyProviderConfig,
} from '@turnkey/react-native-wallet-kit';
import { TurnkeyProvider } from '@turnkey/react-native-wallet-kit';

import {
TURNKEY_AUTH_PROXY_CONFIG_ID,
TURNKEY_GOOGLE_CLIENT_ID,
TURNKEY_ORGANIZATION_ID,
} from './env';
import ErrorBoundary from './src/components/ErrorBoundary';
import AppNavigation from './src/navigation';
import { AuthProvider } from './src/providers/authProvider';
Expand All @@ -18,11 +29,63 @@ import { PassportProvider } from './src/providers/passportDataProvider';
import { RemoteConfigProvider } from './src/providers/remoteConfigProvider';
import { SelfClientProvider } from './src/providers/selfClientProvider';
import { initSentry, wrapWithSentry } from './src/Sentry';
import {
TURNKEY_OAUTH_REDIRECT_URI_ANDROID,
TURNKEY_OAUTH_REDIRECT_URI_IOS,
} from './src/utils/constants';

import 'react-native-get-random-values';
import 'react-native-url-polyfill/auto';
import '@walletconnect/react-native-compat';
import '@noble/curves/p256';
import 'sha256-uint8array';
import '@turnkey/encoding';
import '@turnkey/api-key-stamper';

initSentry();

global.Buffer = Buffer;

export const TURNKEY_CALLBACKS: TurnkeyCallbacks = {
beforeSessionExpiry: ({ sessionKey }) => {
console.log('[Turnkey] Session nearing expiry:', sessionKey);
},
onSessionExpired: ({ sessionKey }) => {
console.log('[Turnkey] Session expired:', sessionKey);
},
onAuthenticationSuccess: ({ action, method, identifier }) => {
console.log('[Turnkey] Auth success:', { action, method, identifier });
},
onError: error => {
console.error('[Turnkey] Error:', error);
},
};

export const TURNKEY_CONFIG: TurnkeyProviderConfig = {
organizationId: TURNKEY_ORGANIZATION_ID!,
authProxyConfigId: TURNKEY_AUTH_PROXY_CONFIG_ID!,
autoRefreshManagedState: false,
auth: {
passkey: false,
oauth: {
// Should use custom scheme, NOT 'https' for IOS
appScheme:
Platform.OS === 'ios' ? 'com.warroom.proofofpassport' : 'https',
redirectUri:
Platform.OS === 'ios'
? TURNKEY_OAUTH_REDIRECT_URI_IOS
: TURNKEY_OAUTH_REDIRECT_URI_ANDROID,
google: {
clientId: TURNKEY_GOOGLE_CLIENT_ID!,
redirectUri:
Platform.OS === 'ios'
? TURNKEY_OAUTH_REDIRECT_URI_IOS
: TURNKEY_OAUTH_REDIRECT_URI_ANDROID,
},
},
},
};

function App(): React.JSX.Element {
return (
<ErrorBoundary>
Expand All @@ -35,7 +98,12 @@ function App(): React.JSX.Element {
<DatabaseProvider>
<NotificationTrackingProvider>
<FeedbackProvider>
<AppNavigation />
<TurnkeyProvider
config={TURNKEY_CONFIG}
callbacks={TURNKEY_CALLBACKS}
>
<AppNavigation />
</TurnkeyProvider>
</FeedbackProvider>
</NotificationTrackingProvider>
</DatabaseProvider>
Expand Down
5 changes: 5 additions & 0 deletions app/android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,11 @@ android {
preDexLibraries false
}

buildFeatures {
buildConfig = true
viewBinding = true
}

defaultConfig {
applicationId "com.proofofpassportapp"
minSdkVersion rootProject.ext.minSdkVersion
Expand Down
4 changes: 2 additions & 2 deletions app/android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ buildscript {
ext {
buildToolsVersion = "35.0.0"
minSdkVersion = 24
compileSdkVersion = 35
compileSdkVersion = 36
targetSdkVersion = 35
// Updated NDK to support 16k page size devices
ndkVersion = "27.0.12077973"
kotlinVersion = "1.9.24"
kotlinVersion = "2.0.21"
firebaseMessagingVersion = "23.4.0"
firebaseBomVersion = "32.7.3"
}
Expand Down
1 change: 1 addition & 0 deletions app/babel.config.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ module.exports = {
},
],
['@babel/plugin-transform-private-methods', { loose: true }],
'@babel/plugin-transform-export-namespace-from',
[
'module:react-native-dotenv',
{
Expand Down
6 changes: 6 additions & 0 deletions app/env.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,9 @@ export const IS_TEST_BUILD = process.env.IS_TEST_BUILD === 'true';
export const MIXPANEL_NFC_PROJECT_TOKEN = undefined;
export const SEGMENT_KEY = process.env.SEGMENT_KEY;
export const SENTRY_DSN = process.env.SENTRY_DSN;

export const TURNKEY_AUTH_PROXY_CONFIG_ID =
process.env.TURNKEY_AUTH_PROXY_CONFIG_ID;

export const TURNKEY_GOOGLE_CLIENT_ID = process.env.TURNKEY_GOOGLE_CLIENT_ID;
export const TURNKEY_ORGANIZATION_ID = process.env.TURNKEY_ORGANIZATION_ID;
1 change: 1 addition & 0 deletions app/ios/OpenPassport/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
<key>CFBundleURLSchemes</key>
<array>
<string>proofofpassport</string>
<string>com.warroom.proofofpassport</string>
</array>
</dict>
</array>
Expand Down
1 change: 1 addition & 0 deletions app/ios/OpenPassport/OpenPassport.entitlements
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
<string>appclips:appclip.openpassport.app</string>
<string>applinks:proofofpassport-merkle-tree.xyz</string>
<string>applinks:redirect.self.xyz</string>
<string>webcredentials:redirect.self.xyz</string>
</array>
<key>com.apple.developer.icloud-container-identifiers</key>
<array>
Expand Down
1 change: 1 addition & 0 deletions app/ios/OpenPassport/OpenPassportDebug.entitlements
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
<string>appclips:appclip.openpassport.app</string>
<string>applinks:proofofpassport-merkle-tree.xyz</string>
<string>applinks:redirect.self.xyz</string>
<string>webcredentials:redirect.self.xyz</string>
</array>
<key>com.apple.developer.icloud-container-identifiers</key>
<array>
Expand Down
64 changes: 60 additions & 4 deletions app/ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1512,12 +1512,54 @@ PODS:
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- Yoga
- react-native-compat (2.22.4):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly (= 2024.10.14.00)
- RCTRequired
- RCTTypeSafety
- React-Core
- React-debug
- React-Fabric
- React-featureflags
- React-graphics
- React-ImageManager
- React-NativeModulesApple
- React-RCTFabric
- React-rendererdebug
- React-utils
- ReactCodegen
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- Yoga
- react-native-get-random-values (1.11.0):
- React-Core
- react-native-netinfo (11.4.1):
- React-Core
- react-native-nfc-manager (3.16.3):
- React-Core
- react-native-passkey (3.3.1):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly (= 2024.10.14.00)
- RCTRequired
- RCTTypeSafety
- React-Core
- React-debug
- React-Fabric
- React-featureflags
- React-graphics
- React-ImageManager
- React-NativeModulesApple
- React-RCTFabric
- React-rendererdebug
- React-utils
- ReactCodegen
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- Yoga
- react-native-safe-area-context (5.6.1):
- DoubleConversion
- glog
Expand Down Expand Up @@ -1956,6 +1998,8 @@ PODS:
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- Yoga
- RNInAppBrowser (3.7.0):
- React-Core
- RNKeychain (10.0.0):
- DoubleConversion
- glog
Expand Down Expand Up @@ -2087,7 +2131,7 @@ PODS:
- ReactCommon/turbomodule/core
- Sentry/HybridSDK (= 8.53.2)
- Yoga
- RNSVG (15.12.1):
- RNSVG (15.14.0):
- DoubleConversion
- glog
- hermes-engine
Expand All @@ -2107,9 +2151,9 @@ PODS:
- ReactCodegen
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- RNSVG/common (= 15.12.1)
- RNSVG/common (= 15.14.0)
- Yoga
- RNSVG/common (15.12.1):
- RNSVG/common (15.14.0):
- DoubleConversion
- glog
- hermes-engine
Expand Down Expand Up @@ -2194,9 +2238,11 @@ DEPENDENCIES:
- react-native-biometrics (from `../node_modules/react-native-biometrics`)
- "react-native-blur (from `../node_modules/@react-native-community/blur`)"
- react-native-cloud-storage (from `../node_modules/react-native-cloud-storage`)
- "react-native-compat (from `../node_modules/@walletconnect/react-native-compat`)"
- react-native-get-random-values (from `../node_modules/react-native-get-random-values`)
- "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)"
- react-native-nfc-manager (from `../node_modules/react-native-nfc-manager`)
- react-native-passkey (from `../node_modules/react-native-passkey`)
- react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
- react-native-sqlite-storage (from `../node_modules/react-native-sqlite-storage`)
- react-native-webview (from `../node_modules/react-native-webview`)
Expand Down Expand Up @@ -2234,6 +2280,7 @@ DEPENDENCIES:
- "RNFBMessaging (from `../node_modules/@react-native-firebase/messaging`)"
- "RNFBRemoteConfig (from `../node_modules/@react-native-firebase/remote-config`)"
- RNGestureHandler (from `../node_modules/react-native-gesture-handler`)
- RNInAppBrowser (from `../node_modules/react-native-inappbrowser-reborn`)
- RNKeychain (from `../node_modules/react-native-keychain`)
- RNLocalize (from `../node_modules/react-native-localize`)
- RNReactNativeHapticFeedback (from `../node_modules/react-native-haptic-feedback`)
Expand Down Expand Up @@ -2360,12 +2407,16 @@ EXTERNAL SOURCES:
:path: "../node_modules/@react-native-community/blur"
react-native-cloud-storage:
:path: "../node_modules/react-native-cloud-storage"
react-native-compat:
:path: "../node_modules/@walletconnect/react-native-compat"
react-native-get-random-values:
:path: "../node_modules/react-native-get-random-values"
react-native-netinfo:
:path: "../node_modules/@react-native-community/netinfo"
react-native-nfc-manager:
:path: "../node_modules/react-native-nfc-manager"
react-native-passkey:
:path: "../node_modules/react-native-passkey"
react-native-safe-area-context:
:path: "../node_modules/react-native-safe-area-context"
react-native-sqlite-storage:
Expand Down Expand Up @@ -2440,6 +2491,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/@react-native-firebase/remote-config"
RNGestureHandler:
:path: "../node_modules/react-native-gesture-handler"
RNInAppBrowser:
:path: "../node_modules/react-native-inappbrowser-reborn"
RNKeychain:
:path: "../node_modules/react-native-keychain"
RNLocalize:
Expand Down Expand Up @@ -2534,9 +2587,11 @@ SPEC CHECKSUMS:
react-native-biometrics: 43ed5b828646a7862dbc7945556446be00798e7d
react-native-blur: 6334d934a9b5e67718b8f5725c44cc0a12946009
react-native-cloud-storage: 8d89f2bc574cf11068dfd90933905974087fb9e9
react-native-compat: d4842cf7cbc566c37a14f368cebffa0c1f4150b7
react-native-get-random-values: d16467cf726c618e9c7a8c3c39c31faa2244bbba
react-native-netinfo: cec9c4e86083cb5b6aba0e0711f563e2fbbff187
react-native-nfc-manager: 66a00e5ddab9704efebe19d605b1b8afb0bb1bd7
react-native-passkey: 8853c3c635164864da68a6dbbcec7148506c3bcf
react-native-safe-area-context: 90a89cb349c7f8168a707e6452288c2f665b9fd1
react-native-sqlite-storage: 0c84826214baaa498796c7e46a5ccc9a82e114ed
react-native-webview: 3f45e19f0ffc3701168768a6c37695e0f252410e
Expand Down Expand Up @@ -2574,12 +2629,13 @@ SPEC CHECKSUMS:
RNFBMessaging: 92325b0d5619ac90ef023a23cfd16fd3b91d0a88
RNFBRemoteConfig: a569bacaa410acfcaba769370e53a787f80fd13b
RNGestureHandler: a63b531307e5b2e6ea21d053a1a7ad4cf9695c57
RNInAppBrowser: 6d3eb68d471b9834335c664704719b8be1bfdb20
RNKeychain: 471ceef8c13f15a5534c3cd2674dbbd9d0680e52
RNLocalize: 7683e450496a5aea9a2dab3745bfefa7341d3f5e
RNReactNativeHapticFeedback: e526ac4a7ca9fb23c7843ea4fd7d823166054c73
RNScreens: 806e1449a8ec63c2a4e4cf8a63cc80203ccda9b8
RNSentry: 6ad982be2c8e32dab912afb4132b6a0d88484ea0
RNSVG: 0c1fc3e7b147949dc15644845e9124947ac8c9bb
RNSVG: e1cf5a9a5aa12c69f2ec47031defbd87ae7fb697
segment-analytics-react-native: a0c29c75ede1989118b50cac96b9495ea5c91a1d
Sentry: 59993bffde4a1ac297ba6d268dc4bbce068d7c1b
SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748
Expand Down
Loading
Loading