Skip to content
Merged

Dev #1074

Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
3d46aec
chore: bump v2.6.5 rd2 (#1067)
transphorm Sep 13, 2025
657d8af
chore: update tooling dependencies (#1069)
transphorm Sep 14, 2025
5c569e6
chore: minor fixes across monorepo (#1068)
transphorm Sep 14, 2025
045a805
fix yarn build; add workflow ci (#1075)
transphorm Sep 16, 2025
8e385cb
feat: add functions for disclosing aadhaar attributes (#1033)
Nesopie Sep 16, 2025
c11c9af
chore: update monorepo artifacts (#1079)
transphorm Sep 16, 2025
f85a23a
cleans up unused parts of sdk interface, adds inline documentation, (…
aaronmgdr Sep 17, 2025
729ee76
Feat/aadhaar sdk (#1082)
Nesopie Sep 17, 2025
30cc43e
feat: change to gcp attestation verification (#959)
Nesopie Sep 17, 2025
8983ac2
Mobile SDK: move provingMachine from the app (#1052)
shazarre Sep 17, 2025
3397fcf
Revert "Mobile SDK: move provingMachine from the app (#1052)" (#1084)
transphorm Sep 17, 2025
48e4a53
fix: sdk (#1085)
Nesopie Sep 17, 2025
1d648ef
bump sdk (#1086)
Nesopie Sep 17, 2025
c2406f0
chore update mobile app types (#1087)
transphorm Sep 18, 2025
a0123d2
feat: add contract utils (#1088)
Nesopie Sep 18, 2025
86c595b
Feat/contracts npm publish (#1089)
Nesopie Sep 18, 2025
b21df03
fix: use celo sepolia in common (#1091)
Nesopie Sep 18, 2025
b0ae194
chore: export selfappbuilder (#1092)
Nesopie Sep 18, 2025
a005bde
[SELF-747] feat: clone android passport reader during setup (#1080)
transphorm Sep 18, 2025
779fea5
address version mismatches and package resolutions (#1081)
transphorm Sep 19, 2025
d0a66a1
fix: aadhaar verifier abi (#1096)
Nesopie Sep 19, 2025
664be08
fix: go-sdk (#1090)
Vishalkulkarni45 Sep 19, 2025
2df4dc4
SELF-725: add iOS qrcode opener and aadhaar screen (#1038)
remicolin Sep 20, 2025
48a8146
fix aadhaar screen test (#1101)
transphorm Sep 20, 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
161 changes: 0 additions & 161 deletions .cursor/rules/technical-specification.mdc

This file was deleted.

2 changes: 0 additions & 2 deletions .cursorignore
Original file line number Diff line number Diff line change
Expand Up @@ -191,8 +191,6 @@ circuits/tests/**/test_cases.ts

# iOS
*.xcworkspace/
*.xcodeproj/
*.pbxproj
app/ios/App Thinning Size Report.txt

# Android
Expand Down
20 changes: 0 additions & 20 deletions .cursorrules
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@
## Core Workflows

1. Document Verification Flow
- NFC chip data extraction and validation
- Zero-knowledge proof generation for privacy
- Multi-stage attestation verification
- Cross-chain verification support
Expand Down Expand Up @@ -128,25 +127,6 @@ This is a React Native identity verification app with NFC passport reading, zero
- Test utilities in `tests/__setup__/databaseMocks.ts`
- Mock database instance for testing

## NFC Implementation

### Cross-Platform Architecture
- iOS: Custom PassportReader Swift module
- Android: Custom RNPassportReaderModule Kotlin implementation
- Unified JavaScript interface with platform detection

### Authentication Methods
- MRZ Key: Derived from passport number, DOB, and expiry date
- CAN (Card Access Number): 6-digit number for PACE authentication
- PACE: Password Authenticated Connection Establishment
- BAC fallback when PACE fails

### Error Handling
- Multiple BAC attempts with delays
- Graceful degradation from PACE to BAC
- Real-time status updates and haptic feedback
- Comprehensive error boundaries

## Code Organization

### File Structure
Expand Down
6 changes: 1 addition & 5 deletions .github/actions/mobile-setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,11 +78,7 @@ runs:
fi

# Run mobile-specific installation
if [[ "${{ runner.os }}" == "macOS" ]]; then
yarn install-app:mobile-deploy:ios
else
yarn install-app:mobile-deploy
fi
yarn install-app:mobile-deploy

# Install Ruby gems with bundler (respecting cache)
echo "📦 Installing Ruby gems with strict lock file..."
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/mobile-bundle-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ on:

jobs:
analyze-android:
runs-on: macos-14
runs-on: macos-latest-large
steps:
- uses: actions/checkout@v4
- name: Read and sanitize Node.js version
Expand Down Expand Up @@ -80,7 +80,7 @@ jobs:
working-directory: ./app

analyze-ios:
runs-on: macos-14
runs-on: macos-latest-large
steps:
- uses: actions/checkout@v4
- name: Read and sanitize Node.js version
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/mobile-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ concurrency:
jobs:
build-deps:
runs-on: macos-latest-large
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- name: Read and sanitize Node.js version
Expand Down Expand Up @@ -92,6 +93,7 @@ jobs:
test:
runs-on: macos-latest-large
needs: build-deps
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- name: Read and sanitize Node.js version
Expand Down Expand Up @@ -193,6 +195,7 @@ jobs:
build-ios:
runs-on: macos-latest-large
needs: build-deps
timeout-minutes: 60
env:
# iOS project configuration - hardcoded for CI stability
IOS_PROJECT_NAME: "Self"
Expand Down Expand Up @@ -381,6 +384,7 @@ jobs:
build-android:
runs-on: ubuntu-latest
needs: build-deps
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- name: Read and sanitize Node.js version
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/mobile-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
concurrency:
group: ${{ github.workflow }}-android-${{ github.ref }}
cancel-in-progress: true
timeout-minutes: 45
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -135,7 +135,7 @@ jobs:
if-no-files-found: warn

e2e-ios:
timeout-minutes: 45
timeout-minutes: 60
runs-on: macos-latest-large
concurrency:
group: ${{ github.workflow }}-ios-${{ github.ref }}
Expand Down
31 changes: 31 additions & 0 deletions .github/workflows/npm-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ jobs:
core_changed: ${{ steps.check-version.outputs.core_changed }}
qrcode_changed: ${{ steps.check-version.outputs.qrcode_changed }}
common_changed: ${{ steps.check-version.outputs.common_changed }}
contracts_changed: ${{ steps.check-version.outputs.contracts_changed }}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

🧩 Analysis chain

Contracts publish won’t trigger on push; add path + default false.

You added the contracts_changed output, but the workflow never runs on commits that touch only contracts/package.json because it’s missing from on.push.paths (Lines 8–10). Also, unlike the other packages, contracts_changed lacks a default false, which can yield an empty output.

  • Add "contracts/package.json" to on.push.paths.
  • Initialize contracts_changed=false similarly to the others.

🏁 Script executed:

#!/bin/bash
set -euo pipefail
file=".github/workflows/npm-publish.yml"

if [ ! -f "$file" ]; then
  echo "MISSING: $file"
  exit 0
fi

echo "=== SHOW FILE ($file) ==="
nl -ba "$file"

echo
echo "=== 'on:' block (from 'on:' to 'jobs:') ==="
sed -n '/^on:/, /^jobs:/p' "$file" || true

echo
echo "=== LINES MATCHING contracts_changed / outputs / check-version / paths ==="
rg -n "contracts_changed|outputs:|check-version|paths:" "$file" || true

Length of output: 95


🏁 Script executed:

#!/bin/bash
set -euo pipefail
file=".github/workflows/npm-publish.yml"

if [ ! -f "$file" ]; then
  echo "MISSING: $file"
  exit 0
fi

echo "=== SHOW FILE ($file) ==="
awk '{printf "%4d: %s\n", NR, $0}' "$file"

echo
echo "=== 'on:' block (from 'on:' to 'jobs:') ==="
sed -n '/^on:/,/^jobs:/p' "$file" || true

echo
echo "=== MATCHES: contracts_changed, outputs:, check-version, paths:, contracts/package.json ==="
grep -n -E 'contracts_changed|outputs:|check-version|paths:|contracts/package.json' "$file" || true

Length of output: 7745


Add contracts/package.json to push paths and initialize contracts_changed=false

on.push.paths omits "contracts/package.json" (so pushes that only touch contracts won't run the workflow) and the check-version step sets contracts_changed=true but never writes a default false — add "contracts/package.json" under on.push.paths and echo "contracts_changed=false" in the Check for version changes (id: check-version) to match the other package checks.

.github/workflows/npm-publish.yml — update on.push.paths (top) and detect-changes → Check for version changes (id: check-version).

🤖 Prompt for AI Agents
.github/workflows/npm-publish.yml around line 20: on.push.paths is missing
"contracts/package.json" so pushes that only change contracts won't trigger the
workflow; update the top on.push.paths list to include "contracts/package.json".
Also in the detect-changes job's "Check for version changes" step (id:
check-version) the script sets contracts_changed=true but never initializes a
default false — add an echo or export to write "contracts_changed=false" before
checks run so the variable is always written (matching other package checks).

steps:
- uses: actions/checkout@v4
with:
Expand All @@ -42,6 +43,10 @@ jobs:
echo "common_changed=true" >> $GITHUB_OUTPUT
fi

if git diff HEAD^ HEAD -- contracts/package.json | grep -q '"version":' || [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
echo "contracts_changed=true" >> $GITHUB_OUTPUT
fi

publish-core:
needs: detect-changes
if: needs.detect-changes.outputs.core_changed == 'true'
Expand Down Expand Up @@ -128,3 +133,29 @@ jobs:
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
NPM_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
publish-contracts:
needs: detect-changes
if: needs.detect-changes.outputs.contracts_changed == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version-file: .nvmrc
registry-url: "https://registry.npmjs.org"
- uses: actions/checkout@v4
- name: Install Dependencies
uses: ./.github/actions/yarn-install
- name: Build package
run: |
yarn workspace @selfxyz/contracts build
- name: Publish to npm
working-directory: contracts
run: |
yarn config set npmScopes.selfxyz.npmAuthToken ${{ secrets.NPM_TOKEN }}
yarn config set npmPublishAccess public
yarn npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
NPM_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
Loading
Loading