Commit Graph

792 Commits

Author SHA1 Message Date
Leszek Stachowski
80d9e2d625 [SELF-1891] feat(kyc): Other IDs button (#1660)
* feat(kyc): Other IDs button

* trigger sumsub flow directly from event listener

* formatting

* formatting

* add todo

* add feature flag

---------

Co-authored-by: Justin Hernandez <justin.hernandez@self.xyz>
2026-01-27 14:03:36 -08:00
Justin Hernandez
ba856226d8 SELF-1812: integrate sumsub into mobile app (#1650)
* sumsub initial pass

* add sumsub tee url

* agent feedback and fixes

* update lock

* agent feedback

* fix types

* agnet feedback

* fix mock

* agent feedback

* lazy load sumsub screen

* white button color

* fix lint

* add debug url link

* allow us to see recordings

* debug maestro run

* disable e2e screen recording for now. don't load sumsub logic when running e2e test

* remove lazy loading

* skip installing sumsub plugin

* retest ios e2e

* get e2e tests passing

* clean up
2026-01-26 14:06:36 -08:00
Justin Hernandez
04f67ed2df Always skip document selector for single valid document; remove toggle and info text (#1622)
* Remove skip info text

* prettier

* fix test
2026-01-20 13:11:36 -08:00
Seshanth.S
62f602a5e9 add debug logging switch to NFCMethodSelectionScreen (#1626) 2026-01-21 00:17:34 +05:30
Seshanth.S
e32a2a3cea hide not regsitered docs from DocumentSelectorForProvingScreen (#1619) 2026-01-21 00:17:15 +05:30
Seshanth.S
d5b843db5b SELF-1497: add keychain patch (#1607)
* add keychain patch - wip

* centralise useStrongbox flag usage

* set allowBackup to false

* bump to version 2.9.12

* bump android build for 2.9.12

* improve keychain error detection

* Disable Strongbox by default

---------

Co-authored-by: Justin Hernandez <justin.hernandez@self.xyz>
2026-01-20 23:35:41 +05:30
Nesopie
e77247f372 Feat/kyc (#1623)
* feat: selfrica circuit and tests

* chore: remove unused code

* feat: test for ofac,date and olderthan

* fix: public signal constant

* feat: add contract tests

* feat: helper function to gen TEE input

* feat: gen circuit inputs with signature

* feat: seralized base64

* fix: DateIsLessFullYear componenet

* feat: register circuit for selfrica

* feat: selfrica disclose circuit and test

* fix: common module error

* feat: add more test and fix constant

* fix: commitment calculation

* feat: selfrica contracts

* test: selfrica register using unified circuit

* feat: register persona and selfrica circuit

* feat: selfrica circuit and tests

* chore: remove unused code

* feat: test for ofac,date and olderthan

* fix: public signal constant

* feat: add contract tests

* feat: helper function to gen TEE input

* feat: gen circuit inputs with signature

* feat: seralized base64

* fix: DateIsLessFullYear componenet

* feat: register circuit for selfrica

* feat: selfrica disclose circuit and test

* fix: common module error

* feat: add more test and fix constant

* fix: commitment calculation

* feat: selfrica contracts

* test: selfrica register using unified circuit

* feat: register persona and selfrica circuit

* refactor: contract size reduction for IdentityVerificationHubImplV2

export function logic to external libs, reduce compiler runs to 200, update deploy scripts to link new libs

* feat: disclose circuit for persona

* feat: update  persona ofac trees

* feat; register circuit for selfper

* feat: disclose test for selfper

* chore: refactor

* chore : remove unused circuits

* chore: rename selfper to kyc

* chore: update comments

* feat: constrain s to be 251 bit

* feat: add range check on majority ASCII and comments

* feat: range check on neg_r_inv

* chore: remove is pk zero constrain

* merge dev

* feat: add registerPubkey function to Selfrica with GCPJWT Verification

* test: add testing for GCPJWT verification on Selfrica

* fix: script that calls register_selfrica circuits (ptau:14 -> ptau:15)

* fix: get remaining Selfrica tests working with proper import paths

* refactor: store pubkeys as string

also add some comment code for registerPubkey function

* refactor: remove registerPubkeyCommitment function

some tests now skipped as awaiting changes to how pubkeys are stored (string instead of uint256)

* feat: use hex decoding for the pubkey commitment

* test: adjust tests for pubkey being string again

* fix: remove old references to registerPubkey

* docs: add full natspec for IdentityRegistrySelfricaImplV1

* docs: update files in rest of the repo for Selfrica attestation type

* test: fix broken tests

* fix: builds and move to kyc from selfrica

* fix: constrain r_inv, Rx, s, T

* feat: eddsa

* feat: add onlyTEE check to registerPubkeyCommitment

onlyOwner is able to change onlyTEE

* refactor: update gcpRootCAPubkeyHash to be changeable by owner

* feat: add events for update functions

* style: move functions to be near other similar functions

* fix: kyc happy flow

* fix: all contract tests passing

| fix: timestamp conversion with Date(), migrate to V2 for endToEnd test, scope formatting, fix register aadhaar issue by using block.timestamp instead of Date.now(), fix changed getter function name, enable MockGCPJWTVerifier with updated file paths, add missing LeanIMT import, fix user identifier format

* audit: bind key offset-value offset and ensure image_digest only occurs once in the payload

* fix: constrain bracket

* chore: update comment

* audit: hardcode attestation id

* audit: make sure R and pubkey are on the curve

* audit: ensure pubkey is within bounds

* fix: all contract tests passing

* feat: change max length to 99 from 74

* audit: don't check sha256 padding

* audit: check the last window as well

* audit: single occurance for eat_nonce and image_digest

* audit: check if the certs are expired

* audit: add the timestamp check to the contract

* audit: make sure the person is less than 255 years of age

* audit fixes

* chore: yarn.lock

* fix: build fixes

* fix: aadhaar timestamp

* lint

* fix: types

* format

---------

Co-authored-by: vishal <vishalkoolkarni0045@gmail.com>
Co-authored-by: Evi Nova <tranquil_flow@protonmail.com>
2026-01-19 15:54:37 +05:30
Justin Hernandez
5b5110925a [SELF-810] Edge-to-edge: add iOS-only SystemBars wrapper and update Android handling (#1610)
* Update edge-to-edge handling

* update lock file

* formatting

* agent feedback
2026-01-15 10:32:55 -08:00
Justin Hernandez
544d60f860 Replace email support with Notion form (#1613)
* Replace email support with Discord

* Add Discord support prompts

* Remove command log

* formatting, agent feedback

* update strings

* save wip

* fix button color

* update text and change support from discord to notion support form

* remove settings support form text

* rename component and update feedback modal to redirect to users to notion form

* formatting

* update text
2026-01-14 18:14:27 -08:00
Justin Hernandez
f8179c92ba agent feedback (#1614) 2026-01-14 15:47:41 -08:00
Justin Hernandez
19735fb02b clean up dev settings (#1604) 2026-01-13 14:32:22 -08:00
Justin Hernandez
ac4921a458 Require real document for settings options (#1603) 2026-01-13 14:31:47 -08:00
Justin Hernandez
12f3262dbf chore: bump version to 2.9.11 (#1601)
* chore: bump version to 2.9.11

* fix linting
2026-01-13 14:08:50 -08:00
Justin Hernandez
2c0a03ac4b update text (#1600) 2026-01-13 13:51:01 -08:00
Seshanth.S
bcbb8affd4 SELF-1768: fix deeplink navigation (#1598)
* fix deeplink navigation

* fix tests

* fix typing

---------

Co-authored-by: Justin Hernandez <justin.hernandez@self.xyz>
2026-01-13 13:41:48 -08:00
Leszek Stachowski
2939926c82 fix: register document from ManageDocuments screen (#1597)
* fix: register document from ManageDocuments screen

* coderabbit suggestion
2026-01-14 00:32:33 +05:30
Justin Hernandez
9d83672920 Adjust cloud backup visibility (#1593) 2026-01-12 13:17:53 -08:00
Justin Hernandez
8eff3d030d Limit keychain modal to Android (#1591) 2026-01-12 12:42:34 -08:00
Justin Hernandez
e7ed53aff5 rename Approve to Select (#1581) 2026-01-12 07:39:14 -08:00
Justin Hernandez
7164099924 chore: address clunky Prove screen button feedback (#1578)
* save button transition improvements

* fix offset jump

* add platform specific scroll offset padding

* use dynamic sizing instead

* fix scrolling logic
2026-01-11 15:43:30 -08:00
Justin Hernandez
80d218178b remove staleness redirect (#1575) 2026-01-10 07:39:06 -08:00
Justin Hernandez
665545cd65 Centralize keychain error helpers and add unit tests (#1571)
* Add keychain error tests

* format
2026-01-10 00:43:36 -08:00
Justin Hernandez
9d4c62225f Rename staleness hook file to useProofDisclosureStalenessCheck and add unit tests (#1572)
* Add staleness hook test

* format
2026-01-10 00:42:15 -08:00
Justin Hernandez
dd474a12f3 Refactor insert id helper (#1573) 2026-01-10 00:37:42 -08:00
Justin Hernandez
3ce1f26898 SELF-1754: polish for document selection for proving flow (#1570)
* change spinner color

* fix disclosure scroll feedback

* fix type error

* fix button scrolling logic

* make the connected wallet static

* fix hold to verify button feedback timing

* formatting

* clean up tex
2026-01-09 23:52:36 -08:00
Seshanth.S
e1d06b5b13 Feat: keychain modal (#1564)
* feat: show Modal on keychain error

* update message

* yarn fmt

* fix tests

* fix ci
2026-01-09 21:59:02 -08:00
Justin Hernandez
850e3b98f9 SELF-1754: Implement selective disclosure on Proving Screen (#1549)
* add document selector test screen

* clean up mock docs

* update selection options

* Add DocumentSelectorForProving screen and route proof flows through it (#1555)

* Add document selector to proving flow

* fix formatting

* improvements

* redirect user to document not found screen when no documents

* option flow tweaks and tests

* wip tweaks

* fix scrollview bottom padding (#1556)

* tighten up selection text

* create inerstitial

* save wip

* remove not accepted state

* save wip design

* formatting

* update design

* update layout

* Update proving flow tests (#1559)

* Refactor ProveScreen to ProofRequestCard layout and preserve scroll position (#1560)

* Refactor prove screen layout

* fix: amount of hooks rendered needs to be the same for all variants

* long URL ellipsis

* keep titles consistent

* lint

---------

Co-authored-by: Leszek Stachowski <leszek.stachowski@self.xyz>

* wip fix tests

* fix tests

* formatting

* agent feedback

* fix tests

* save wip

* remove text

* fix types

* save working header update

* no transition

* cache document load for proving flow

* save fixes

* small fixes

* match disclosure text

* design updates

* fix approve flow

* fix document type flash

* add min height so text doesn't jump

* update lock

* formatting

* save refactor wip

* don't enable euclid yet

* fix tests

* fix staleness check

* fix select box description

* remove id selector screen

* vertically center

* button updates

* Remove proving document cache (#1567)

* formatting

---------

Co-authored-by: Leszek Stachowski <leszek.stachowski@self.xyz>
2026-01-09 13:56:10 -08:00
Justin Hernandez
1e44dc9c8d Home: replace loading text with centered spinner (#1566)
* Replace home loading text with spinner

* update home screen spinner
2026-01-09 12:49:49 -08:00
Seshanth.S
ab848221d0 Add skipReselect Option (#1561)
* Add option to NFCMethodSelectionScreen

* update types

* update types
2026-01-09 00:44:24 +05:30
Justin Hernandez
6e01b3c114 fix scrollview bottom padding (#1556) 2026-01-07 15:11:34 -08:00
Justin Hernandez
43fb39d3d4 SELF-1680: Starfall mobile push notifications (#1548)
* move to personal mcp

* add new nova pin screen

* rename screen

* update nova route

* unblock local dev building

* rename nova to starfall

* move to dev dependency

* move to dependencies

* add correct package

* save wip

* save wip

* save wip fixes

* rename self logo

* fix screen logos

* fix order

* add starfall api to fetch push notification code

* agent feedback

* fix tests, minor agent feedback

* abstract component

* rename topic

* re-add button props

* fix linting
2026-01-05 20:17:28 -08:00
Seshanth.S
ef131b10f7 Hotfix/dev setting screen (#1540)
* fix: DevSettingScreen::ScreenSeletor in android

* revert: remove severity from extended loggers
2025-12-31 09:31:16 -08:00
Justin Hernandez
42a74e2887 SELF-1155: Address missing screen views (#1539)
* use track events for screen views

* don't use factory pattern for analytics imports

* nice clean up

* simplify screen event logic and add tests

* fix test and agent feedback
2025-12-30 15:21:29 -08:00
Justin Hernandez
5cdf345372 SELF-773: standardize analytics imports (#1538)
* standardize analytics

* format
2025-12-30 14:04:28 -08:00
Seshanth.S
d24ef93733 fix Race condition in setting selfDefinedData (#1531)
* fix racecondition in setting selfDefinedData

* fixes
2025-12-26 12:15:54 -08:00
Justin Hernandez
7dbd46f245 Add docstring reporting script and workflows (#1333)
* Trim docstring coverage snapshots

* format all the tings

* update lock

* Update docstring coverage snapshots (#1521)

* docstring fixes

* address agent feedback

* update lock files

* address agent feedback

* lock react-native-svg version to prevent pipeline failures

* update docstring logic

* remove docstring coverage from ci

* remove old report, fix cursorignroe rule
2025-12-25 11:17:42 -08:00
Seshanth.S
b783f56d70 Add logging severity configuration to DevSettingsScreen (#1520)
* Add logging severity configuration to DevSettingsScreen

* consolidate logging severity type

* extend loggers properly with severity type

---------

Co-authored-by: Justin Hernandez <justin.hernandez@self.xyz>
2025-12-18 12:12:45 -08:00
Justin Hernandez
e1c7ecdbb8 SELF-1662: Improve prove deeplink navigation (#1517)
* Improve prove deeplink navigation

* fix tests
2025-12-16 20:43:14 -08:00
Justin Hernandez
a6194665ec SELF-1572: Update document scan prompt (#1511)
* Update document scan prompt

* formatting

* fix scan instruction location

* use helper for title text
2025-12-16 14:43:45 -08:00
Justin Hernandez
5321f3757b SELF-1670: Hide document-only settings without documents (#1512)
* Hide document-only settings without documents

* revert document info screen changes, rely on hiding option from settings view

* agent feedback

* hide settings options that depend on having a document
2025-12-16 14:12:30 -08:00
Justin Hernandez
da733163f9 SELF-1268: Fix paste button on recovery screen (#1513)
* Fix paste button on recovery screen

* Improve recovery paste button accessibility

* recovery screen bugfix

* simplify fix. remove pressable logic
2025-12-16 09:33:12 -08:00
Justin Hernandez
50dba6de15 SELF-1665: address sentry replay preview (#1509)
* fix sentry replays

* clean up comments
2025-12-15 20:44:59 -08:00
Justin Hernandez
e5e7b108a0 SELF-1553: Add back navigation to QR scanner view (#1508)
* Add back navigation to QR scanner view

* linting

* remove custom hook. use default package
2025-12-15 18:21:36 -08:00
Seshanth.S
adc002b91d Hide Secondary button in AadhaarUploadError screen (#1506) 2025-12-16 01:19:13 +05:30
Seshanth.S
f54c668274 SELF-1645: Disable Verify button for expired documents (#1497)
* Disable Verify button for expired documents

* coderabbit feedbacks
2025-12-15 13:06:09 +01:00
Justin Hernandez
59f9780ffb SELF-1610: fix internal webview wallet connect links (#1489)
* save working android implementation

* save working webview

* more webview space

* fix close button

* nav icons match footer icons

* fix webscreen tests. android works as expected

* save almost working implementation

* skip tests for seshanth to review

* tighten up allowed webview schemes

* lock down to cloud.google.com

* remove logging

* make screen wider

* fix padding

* revert test change

* skip tests for now

* agent feedback

* update lock

* fix padding

* agent feedback and abstract methods

* Handle Coinbase wallet popups externally (#1496)

* Handle Coinbase wallet popups externally

* Clarify Coinbase popup redirect handling

* open coinbase wallet request in new window

* agent feedback

* add system alert to warn user they are being redirected to their browser

* fix footer icons; open app.aave.com in external browser for ios

* finalize aave ios flow for testing

* agent feedback

* feedback
2025-12-13 17:14:21 -08:00
Aaron DeRuvo
198297e96e SELF-1554 : Fix Country Picker (#1492)
* country picker is always euclid.

* track when users press the info icon
2025-12-12 17:13:26 +01:00
Aaron DeRuvo
fc82b6b2b3 Prepares app for Euclid (#1473)
* setup IS_EUCLID build variable for conditionally using euclid desgins
create a headless header that only handles the status bar, for the new screens since they manage their own
make sure new screens get proper insets
add recoveryphrase 3.0
fix country picker



* this lint runs twice. once in repo wide lint and once here. so lets just run once to save resources



Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-12-09 12:56:05 +01:00
Justin Hernandez
202d0f8122 SELF-483: Enable backup recovery prompts (#834)
* Guard recovery prompts

* refactor(app): gate recovery prompts with allow list (#1251)

* fix typing

* fix header

* fix app loading

* fix tests

* Limit recovery prompts to home allowlist (#1460)

* fix test

* fix typing pipeline

* format and fix linting and tests

* tests pass

* fix tests

* split up testing

* save wip

* save button fix

* fix count

* fix modal width

* remove consologging

* remove depcrecated login count

* linting

* lint

* early return
2025-12-05 21:34:50 -08:00
Justin Hernandez
de9e91772e add discord and update telegram links (#1471) 2025-12-05 02:06:26 -08:00