* refactor: switch to multitiered governance with multisigs
* feat: add scripts for assisting with upgrading contracts and
* test: add tests for governance upgrade
* chore: install Foundry with Hardhat compatability
* fix: add separate intializeGovernance function for upgrading
Uses reinitializer modifier for proper security around function call
* feat: migrate new function to AccessControl governance
* test: full end to end upgrade typescript test
* chore: add hardhat-upgrade
* chore: add foundry outputs to gitignore
* test: add Foundry upgrade script and test for deployed contracts
* refactor: update PCR0 inputs to be 32 bytes for GCP image hashes
Still pad to 48 bytes to ensure compatibility with mobile app.
* feat: add PCR0 migration script + test file
* fix: use custom natspec to prevent constructor warnings on upgrade
* test: cleanup tests and add role transfer to upgrade script
* test: add deployed libraries to foundry.toml for proper library linking
* chore: add /contracts/broadcast to gitignore for foundry deployments
* fix: set variable in initializer instead of defining in declaration
* test: improve upgrade test script to check all state variables
* docs: better explain safety behind using unsafeSkipStorageCheck
* doc: add guide for upgrading to AccessControl governance
* style: change multisig role names
CRITICAL_ROLE -> SECURITY_ROLE (3/5)
STANDARD_ROLE -> OPERATIONRS_ROLE (2/5)
* refactor: change OFAC + CSCA root update functions to 2/5 multisig
* fix: package version clashes + outdated code from old ver of packages
OpenZeppelin v5.5.0 no longer requires __UUPS_Upgradeable_Init, new OZ version requires opcodes that need cancun evmVersion, hard defining @noble/hashes led to clashes with other dependencies
* fix: fix PCR0 tests broken from change in byte size
* feat: add contract upgrade tooling with Safe multisig integration
- Add unified 'upgrade' Hardhat task with automatic safety checks
- Add deployment registry for version tracking
- Add Safe SDK integration for auto-proposing upgrades
- Update UPGRADE_GUIDE.md with new workflow documentation
- Validate version increments, reinitializer, and storage layout
* fix: revert fix on Hub V1 contract that is not supported
* style: update upgraded contracts to not use custom:version-history
* fix: V1 test requires old style as well
* fix: correct registry currentVersion to reflect actual deployed versions
On-chain verification confirmed all contracts are using OLD Ownable2StepUpgradeable:
- Hub: 2.11.0 (was incorrectly 2.12.0)
- Registry: 1.1.0 (was incorrectly 1.2.0)
- IdCard: 1.1.0 (was incorrectly 1.2.0)
- Aadhaar: 1.1.0 (was incorrectly 1.2.0)
Owner address: 0xcaee7aaf115f04d836e2d362a7c07f04db436bd0
* fix: upgrade script now correctly handles pre-defined versions in registry
When upgrading to a version that already exists in registry.json (like 2.12.0),
the script now uses that version's initializerVersion instead of incrementing
from the latest version. This fixes the reinitializer validation for the
governance upgrade.
* fix: upgrade script handles Ownable contracts and outputs transaction data
- Detect Ownable pattern before creating Safe proposals
- Output transaction data for owner direct execution in --prepare-only mode
- Use initializerFunction from registry (initializeGovernance) instead of constructing names
- Skip Safe proposal creation for initial Ownable → AccessControl upgrade
- After upgrade, owner grants SECURITY_ROLE to Safe for future upgrades
* feat: IdentityVerificationHub v2.12.0 deployed on Celo
- Implementation: 0x05FB9D7830889cc389E88198f6A224eA87F01151
- Changelog: Governance upgrade
* feat: IdentityRegistryIdCard v1.2.0 deployed on Celo
- Implementation: 0x7d5e4b7D4c3029aF134D50642674Af8F875118a4
- Changelog: Governance upgrade
* feat: IdentityRegistryAadhaar v1.2.0 deployed on Celo
- Implementation: 0xbD861A9cecf7B0A9631029d55A8CE1155e50697c
- Changelog: Governance upgrade
* feat: IdentityRegistry v1.2.0 deployed on Celo
- Implementation: 0x81E7F74560FAF7eE8DE3a36A5a68B6cbc429Cd36
- Changelog: Governance upgrade
* feat: add multisig addresses to registry
* feat: PCR0Manager v1.2.0 deployed on Celo
- Implementation: 0x9743fe2C1c3D2b068c56dE314e9B10DA9c904717
- Changelog: Governance upgrade
* refactor: cleanup old scripts
* chore: yarn prettier formatting
* use 3.0 country picker
* get blurview working in app
add navigation adapter to sdk
render
* fix fonts and double view registration issues
* dont need this script as we use peer deps now
* fix our package installs
* prayed to the false idol of claude to resolve installing anon-aadhar from a specific commit from a monorepo
* fix route types
* add peer deps to demo
---------
Co-authored-by: Leszek Stachowski <leszek.stachowski@self.xyz>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* 2.9 release
* 2.9 release
* Remove debug console logs from generateTEEInputsRegister function in registerInputs.ts
* parse only the passport data during the dsc step
* Add ReferralScreen and integrate referral functionality
- Introduced ReferralScreen for sharing referral links via messages, WhatsApp, and clipboard.
- Updated navigation to include ReferralScreen in the home stack.
- Added new icons for sharing and messaging.
- Enhanced points utility functions to check user identity document registration and points disclosure status.
- Minor adjustments to existing components for better integration with the new referral feature.
* fix types
* fix font
* fix vertical spacing
* save current abstraction
* clean up linking
* clean up spurious ai slop comments
* add dinot bold font
* minify animations
* update fonts and add placeholder animation
* fix pipelines
* fix order
* Update dependencies and enhance Points component functionality
- Added `@react-native-masked-view/masked-view` and `react-native-linear-gradient` to dependencies for improved UI components.
- Refactored `PointHistoryList` to accept `ListHeaderComponent` and `onRefreshRef` props for better integration with parent components.
- Enhanced `Points` component to manage notification and backup point events, including user feedback through modals.
- Updated navigation to use `PointsNavBar` for a more cohesive user experience.
- Introduced new utility functions for managing incoming points and point event records.
* update lock
* update lock and project settings
* fix line height for android
* save wip referral message fix and deeplink setup
* Fix whatsapp link (#1352)
* add 2 new lines
* use path based param instead of query string
* use staging url for now
* SELF-1089: Fix black screen on Points (#1351)
* Fix black screen on Points
* Fix: black screen on Referral Page
* fix: prevent BlurView from displaying when IdDetailsScreen loses focus
* Fix Android message share (#1355)
* Referral flow (#1354)
* SELF-1139: update getUserAddress() (#1353)
* update getUserAddress()
* rename getUserAddress to getPointsAddress
* [SELF-1098, SELF-1099] polish gratification screen post referrer update history (#1356)
* fix: mark document as registered after restoring secret (#1350)
* update lock
* create useRegisterReferral hook and test
* add referral message test
* save wip register referral flow request
* use register referral from the home screen
* fix typing and sort screens
* fix linting issues
* register poitns and update tests
* use package
* fix tests
* simplify HomeScreen with hooks
* fix tests
* address tests
* abstract points logic, fix types and linting
* add test referral flow hook
* coderabbit feedback: fix refereral logic issues, remove sensitive logs
* move test referral flow button to dev settings screen
* close modal after referring and viewing gratification screen
* fix tests, remove alert, format
---------
Co-authored-by: Seshanth.S <35675963+seshanthS@users.noreply.github.com>
* add gratification bg; use safe bottom padding hook on home screen
* prep 2.7.4 as 2.9.0
* manually bump version for custom deploy
* match version code
* fix types
* formatting
* fix tests
* SELF-1144 - use real points on home screen and improve points screen (#1361)
* fix whitespace
* move effects for fetching points and incoming points to hooks, add items to deps array so that they refresh when we expect points to change.
* cleanup
* Add events for new Points Flow (#1362)
* remove deeplinkCallback from pointsSelfApp. (#1365)
* fix pipelines
* SELF-978: wire cloudbackup with points (#1360)
* wire cloudbackup with points
* wire cloudbackup with points
* Remove redundant setSelfPoints()
* add signature and simplify POST api requests (#1367)
* add signature and simplify POST api requests
* better gitleaks ignore
* update toml
* have gitguardian ignore gitleaks
* add buffer lib
* update api with 202 success code
* update scope and contract-address (#1366)
* fix navigation test
* SELF-915: Setup and add turnkey utils (#1314)
* Setup and add turnkey utils
* update CloudBackupScreen
* fix: turnkey
* add yarn.lock
* lint
* add podfile.lock
* fix deeplink
* fix tests: mock turnkey
* yarn nice
* update .gitleaksignore
* patch react-native-svg
* fix patch-package
* fix lineHeight
* points.tsx: fix lineHeight
* fix: recover with turnkey disabled state
* fix turnkey flow
* fix: address generation
* minify animations (#1368)
* fix pipelines
* fix false positives
* fix gitguardian
---------
Co-authored-by: Justin Hernandez <justin.hernandez@self.xyz>
* enable turnkey only on success
* use prod url
* fix tests and update mocks
* update version and fastlane readme
* pointsSelfApp: update scope
* bump android version to 117
* incremenet timestamp
* abstract points css, hide explore button for now, add points guardrail
* better logic
* simplify point event list data acquisition (#1375)
* simplify point event list data acquisition
* explain
* Remove BlurView in Points.tsx
* Move Points and IncomingPoints to the Point Events Store (#1363)
* add polling for event processing.
atomically update store state
* handle failed states and use real backend api
* improve concurrency reliability of pointevents
* move points to the store
* refresh all points on pull
* add points tracking events
* fix imports
* fix headers
* fix import
* fix misspelling
* enable apps link
* remove __DEV__ logging
* remove additional referall dev mode features
* Add turnkey env
* don't allow users to refer themselves
* prettier
* trim both addresses
* fix close webview button
* fix tests and format
* lint and format
* Update point rewards in NavBar component: change earned points from 20 to 44 and from 100 to 32.
* Refactor point rewards in NavBar component: replace hardcoded values with constants for backup and notification points, and update subscription state variable names for clarity.
* Update POINT_VALUES in types.ts: adjust point rewards for disclosure, notification, and backup events to 8, 44, and 32 respectively.
* App/fix backup points (#1381)
* Enhance backup completion tracking in Points component: Introduce a ref to manage backup check flag, ensuring points are recorded only when explicitly set, preventing false triggers from other navigation flows.
* Update API endpoint in getTotalPoints function: change URL from /distribution to /points for accurate points retrieval.
* formatting
* update points url
* Clear referrer on modal dismiss in useEarnPointsFlow hook to prevent retry loop
* use points private key to sign api requests
* formatting
* save working version of referral confirmation
* fix circular dependency
* don't fetch private key if unable to fetch points key
* add url
* add debug info
* Refactor optimistic points calculation in usePointEventStore: update return value to only include incomingPoints.amount, marking the optimistic approach for future improvement.
* save clean up
* clean useReferralConfirmation logic
* fix tests
* tests pass
* standardize android compile sdk version
* fix package version
* don't log errors
* Update app/src/hooks/useReferralConfirmation.ts
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* better test
* add turnkey entitlements
* fix linting
* remove entitlements
* prettier and fix lint
* update gradle version
* update lock file
* fix tests
* fix build failure
* bump android version to 118
* update date
* bump version for next build
* address failing pipelines due to cache issues
* Hide turnkey button (#1387)
* prep for 2.9.0 release
* fix mobile e2e test
* fix tests
* bump android version
---------
Co-authored-by: Justin Hernandez <justin.hernandez@self.xyz>
Co-authored-by: Seshanth.S <35675963+seshanthS@users.noreply.github.com>
Co-authored-by: Leszek Stachowski <leszek.stachowski@self.xyz>
Co-authored-by: Aaron DeRuvo <aaron.deruvo@clabs.co>
Co-authored-by: seshanthS <seshanth@protonmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* chore: remove android private modules doc
* private repo pull
* skip private modules
* remove unused circuits building
* save wip
* format
* restore tsconfig
* fix package install
* fix internal repo cloning
* unify logic and fix cloning
* git clone internal repos efficiently
* formatting
* run app yarn reinstall from root
* coderabbit feedback
* coderabbit suggestions
* remove skip private modules logic
* fix: ensure PAT is passed through yarn-install action and handle missing PAT gracefully
- Update yarn-install action to pass SELFXYZ_INTERNAL_REPO_PAT to yarn install
- Make setup-private-modules.cjs skip gracefully when PAT is unavailable in CI
- Fixes issue where setup script was throwing error instead of skipping for forks
* prettier
* fix clone ci
* clone ci fixes
* fix import export sorts
* fix instructions
* fix: remove SelfAppBuilder re-export to fix duplicate export error
- Remove SelfAppBuilder import/export from @selfxyz/qrcode
- Update README to import SelfAppBuilder directly from @selfxyz/common
- Fixes CI build failure with duplicate export error
* fix: unify eslint-plugin-sort-exports version across workspaces
- Update mobile-sdk-alpha from 0.8.0 to 0.9.1 to match other workspaces
- Removes yarn.lock version conflict causing CI/local behavior mismatch
- Fixes quality-checks workflow linting failure
* fix: bust qrcode SDK build cache to resolve stale SelfAppBuilder issue
- Increment GH_SDK_CACHE_VERSION from v1 to v2
- Forces CI to rebuild artifacts from scratch instead of using cached version
- Resolves quality-checks linter error showing removed SelfAppBuilder export
* skip job
* test yarn cache
* bump cache version to try and fix the issue
* revert cache version
* refactor: use direct re-exports for cleaner qrcode package structure
- Replace import-then-export pattern with direct re-exports
- Keep SelfAppBuilder export with proper alphabetical sorting (before SelfQRcode)
- Maintain API compatibility as documented in README
- Eliminates linter sorting issues while keeping clean code structure
* fix: separate type and value imports in README examples
- Import SelfApp as type since it's an interface
- Import SelfAppBuilder as value since it's a class
- Follows TypeScript best practices and improves tree shaking
* Enforce separate type imports
* chore: enforce separate type exports
* refactor: flatten sdk index exports
* updates
* fix improperly sorted types
* fixes and prettier
* prettier
* Revert "Bump build to test PACE polling (ios 127; android 66) (#591)"
This reverts commit 6d27b365c7.
* revert old logic and fix build from breaking
* sort package.json
* bump builds
* update env.sample with new env vars, and add _NFC to mixpanel nfc var
* remove NDEF so we can keep target sdk version at 15
* add sort package json command
* sort all project package.json files
* enable hermes
* disable hermes
* revert disabling
* remove hermes