Commit Graph

82 Commits

Author SHA1 Message Date
Justin Hernandez
6c420c2b76 Refine mobile SDK constants re-exports (#1551)
* Clarify constants re-exports

* Adjust constants export mapping

* agent feedback. sort all the tings
2026-01-07 10:28:09 -08:00
Justin Hernandez
6172497abf chore: upgrade yarn to 4.12.0 (#1530)
* use yarn 4.12.0

* upgrade tsx

* update 4.6.0 references to 4.12.0

* update lock file

* update lock file

* update lock
2025-12-25 12:12:38 -08:00
Evi Nova
bc4e52bb1e Refactor/multitiered multisig roles (#1483)
* 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
2025-12-10 17:30:50 +10:00
Justin Hernandez
2555a9415d update open zeppelin (#1469) 2025-12-04 23:43:25 -08:00
Justin Hernandez
1c3b054f3b chore: address failing test_circuits pipeline (#1465)
* test bump for contracts

* Patch ethereum-cryptography assertions (#1466)

* check patches

* Apply patches in workspace node_modules (#1467)

* comment out init method

* pin packages and finally fix pipelines?

* address coderabbit feedback

* downgrading due to cve
2025-12-04 23:20:55 -08:00
Evi Nova
8c5b90e89f Contracts cleanup (#1311)
* refactor: use singular ETHERSCAN_API_KEY in .env

Etherscan has unified all keys of associated explorers like Celoscan into a singular key rather than different keys for different networks.

* refactor: use one .env instead of separate .env.test + .env files

* refactor: deploy contracts with runs of 1000 instead of 200

Decreases gas cost of function calls on deployed contracts

* clean: remove duplicate/redundant deploy modules + scripts

* clean: cleanup empty script file

* refactor: cleanup default network of scripts

Read network from .env instead of using defaults of alfajores (outdated) or staging

* clean: remove references to Alfajores, replace with Sepolia

* chore: add default .env variables

* chore: update build-all script to include aardhaar circuit

* chore: update broken Powers of Tau download link (use iden3)

* chore: remove duplicate script

* fix: use stable version 18 for disclose circuits

* test: update test import paths to allow for .ts version of generateProof

* test: fix broken tests

* test: uncomment critical code for registration, change error names to updated names, fix broken import paths, update disclose tests for new scope generation/handling

* fix: broken import path

* test: fix Airdrop tests to use V2 logic

* docs: update docs for necessary prerequisite programs

* chore: yarn prettier formatting

* fix: CI errors occuring when deploying contracts as can't read .env

Using a dummy key for CI builds

* chore: yarn prettier

* refactor: change runs to 100000
2025-10-27 11:50:19 +01:00
Evi Nova
bea9b7eff5 Feat/update contract scripts (#1212)
* chore: add a verifier script

* chore: remove expirty and add update registry script

* chore: change script to the new aadhaar contract

* chore: add new deployed addresses

* fix: tests

* feat: add scripts for registries and the hub

* feat: add aadhaar registry

* feat: add more scripts

* chore: rm logs

* fix: hardhat config

* update scripts

* fix: test

* accept proofs 1 day in the future

* fix: prettier formatting issues in contracts and circuits

---------

Co-authored-by: ayman <aymanshaik1015@gmail.com>
Co-authored-by: Ayman Mohammed <ayman@Aymans-MacBook-Pro.local>
2025-10-06 11:45:22 +02:00
Nesopie
0dc8b18d40 fix: contracts (#1133) 2025-09-26 22:44:57 +05:30
Evi Nova
a5797bc2e2 refactor: generate scope upon deployment instead of manual generation and using setScope (#1117)
* refactor: generate scope for SelfVerificationRoot upon deploment

Utilise Poseidon to generate the scope for the deploying contract instead of relying on utilizing the Scope Generator tool on the frontend and calling a function that inherits the _setScope function

* style: use explicit import for PoseidonT3

* fix: link Poseidon library in TestSelfVerificationRoot deployments

* fix: Use same logic in SelfVerificationRoot as in hashEndpointWithScope

* refactor: use hardcoded PoseidonT3 addresses for Celo Mainnet + Sepolia

Also allowed functionality for testing environments which have a fresh deploy each time they are spun up, and which now utilize the testSetScope function for tests relying on TestSelfVerificationRoot

* style: change setTestScope to setGenerateScope for clarity

* refactor: Move logic out of SelfVerificationRoot into util files

* chore: update version

* fix: sepolia chain id

* fmt

---------

Co-authored-by: ayman <aymanshaik1015@gmail.com>
2025-09-26 01:26:27 +05:30
Justin Hernandez
779fea5d2a address version mismatches and package resolutions (#1081)
* fix package version mismatches and resolutions

* fixes

* update lock

* fix comma

* fixes

* fix packages

* update packages

* remove firebase analytics. not needed
2025-09-18 17:35:26 -07:00
Nesopie
a0123d2d06 feat: add contract utils (#1088) 2025-09-18 13:29:18 +05:30
Kevin Lin
4db3734b75 Add DisclosureVerified event for comprehensive verification tracking (#945)
* Add VerificationPerformed event to track verification calls

- Added VerificationPerformed event with comprehensive tracking fields
- Captures requestor contract, version, attestation ID, chain ID, config ID, user identifier, output, and user data
- Enhanced _executeVerificationFlow to return additional tracking data
- Event emission placed after verification completion for accurate tracking

* chore: run formatter

* chore: rename verify event name to DisclosureVerified
2025-09-11 19:48:47 +08:00
Justin Hernandez
ff678b359a chore: fix yarn format (#1009)
* fix yarn format

* yarn format

* fix lint

* undo temporary disabling

* pipeline fixes

* revert nvmrc change
2025-09-07 19:48:46 -07:00
Justin Hernandez
691e8b1517 chore: unify lightweight deps and workflow node version (#906)
* chore: unify lightweight deps and workflow node version

* gigamind flow updates

* standardize workflows

* fix workflow

* improvements

* Gigamind tweaks (#911)

* save gigamind updates

* keep manual review on for now

* pr feedback

* fix pipeline

* make runner more dynamic

* fix regex

* fixes

* update simulator

* fixes

* fixes

* fix regex

* try again

* test

* revert back to dev settings

* mobile fixes

* fixes

* fix runtime

* just use latest

* pr feedback

* remove template

* Update .github/workflows/mobile-e2e.yml

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-08-17 21:00:36 -07:00
Justin Hernandez
d33e329164 chore: standardize test tooling and type defs (#904)
* chore: standardize test tooling and type defs

* fix bad merge

* move to dev dependencies

* fix version
2025-08-14 19:54:18 -07:00
Justin Hernandez
6b285c9bf3 chore: address TypeScript ESLint v8 upgrade feedback and improve type safety (#895)
* cr feedback

* update based on feedback

* typing updates

* unify yarn package version

* update lock
2025-08-14 09:19:34 -07:00
Justin Hernandez
07addb2a9a chore: add TypeScript tooling (#891)
* chore: add TypeScript tooling

* chore: remove unused tsconfig and migration script

* update settings

* add knip config

* format

* more reliable circuits tests

* fix workflow

* fix types

* updates

* ts updates

* more updates

* fix upgrade

* fixes
2025-08-13 21:02:07 -07:00
Justin Hernandez
95a3ce5f0c Alias app imports: @src, @tests (#852)
* Support @src alias tooling

* run script and nice

* convert ts script to cjs, update sources

* convert to cjs

* wip update paths

* nice and updates

* fix tests alias paths

* lint fixes

* add @tests alias support

* update script and tests to fix remaining src alias paths

* updates

* update script

* fix

* update lock file

* fix test target

* update timeout

* update flow

* fix flow
2025-08-08 15:05:08 -07:00
Justin Hernandez
343515c35f chore: add Node version file (#853) 2025-08-07 17:48:25 -07:00
turnoffthiscomputer
874b426ebe Feat/retrieve OFAC trees from api (#769)
* retrieve the ofac trees from the api

* remove the ofac trees from the common repo

* fix ofac test

* yarn nice

* yarn nice

* yarn nice

* refactor ofac fetching
2025-07-21 11:07:04 +02:00
Justin Hernandez
9efe13386b add bulk sort command (#723) 2025-07-01 18:32:56 -07:00
turnoffthiscomputer
239b6ed10a Contract/fix sdk (#695)
* fix contracts sdk

* fix contracts sdk
2025-06-28 11:02:26 +02:00
turnoffthiscomputer
816e765491 Contracts/update verifier (#673)
* update hardhat config

* update vc and disclose verifier

* update vc and disclose verifier script and run it

* update test self verification root
2025-06-24 14:35:33 +02:00
turnoffthiscomputer
dd02d04a09 Contracts/deploy staging (#668)
* update scripts

* deploy vc and disclose id

* fix the deployment scripts on staging

* update yarn.lock
2025-06-24 00:29:12 +02:00
nicoshark
d79563c104 publish npm-package (#651) 2025-06-23 10:21:49 +02:00
nicoshark
7cab29dd91 implement self uups upgradeable (#592)
* implement self uups upgradeable

* small changes in identityVerificationHubImplV2

* delete aderyn.toml

* chore: add custom verifier

* chnage return output

* feat: use self structs and a Generic output struct

* feat: add userIdentifier, nullifier, forbiddencountries to returned output

* add root view functions from registry

* fix: build and compilation errors

* add userDefined data into selfVerificationRoot

* "resolve conflicts"

* fix compilation problem

* fix how to register verification config

* test: CustomVerifier

* fix verification root and hub integration

* add scope check in hub impl

* replace poseidon hash to ripemd+sha256

* add todo list

* feat: refactor and add test cases for generic formatter

* add performUserIdentifierCheck in basicVerification

* change how to handle additionalData and fix stack too deep

* start adding test codes

* fix dependency problems in monorepo

* fix: forbidden countries (#612)

LGTM!

* able to run test code

* pass happy path

* delete unused codes

* change error code name, add caller address validation and add scripts to run test and build in monorepo

* add all test cases in vcAndDisclose flow

* remove comment out

* chore: use actual user identifier outputs

* success in registration tests

* cover all cases

* pass contractVersion instead of circuitVersion

* fix disclose test

* chore: add natspecs for ImplHubV2, CustomVerifier and GenericFormatter

* change val name and remove unused lines

* add val name change

* remove userIdentifier from return data

* feat: use GenericDiscloseOutput struct in verfication hook  fix test cases for user identifier

* chore: change the function order for Hub Impl V2 (#625)

* fix nat specs

* add nat spec in SelfStructs

---------

Co-authored-by: Ayman <aymanshaik1015@gmail.com>
Co-authored-by: Nesopie <87437291+Nesopie@users.noreply.github.com>
2025-06-16 14:44:44 +02:00
Justin Hernandez
6d27b365c7 Bump build to test PACE polling (ios 127; android 66) (#591)
* 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
2025-06-06 07:29:26 -07:00
Aaron DeRuvo
0e9c59c0fb SEL-56: Setup Yarn Workspaces (#584) 2025-06-04 11:37:32 +02:00
nicoshark
668732a57b Chore/refactor contracts (#582)
* add eu id support

* add ofac and disclosure euid support

* add contract support for euid cards

* update contracts

* add comment out to remember the interface what we need to implement

* prettier

* get combine verifyVcAndDisclose function and get bytes data

* unified library and clean constant V2

* fix verifyVcAndDisclose interface

* add prettier and run prettier except .sol files

* prettier

* circuit compilation for local environment

* add register id circuit in the contracts dir

* clean up ignition deploy scritps

* refactor deploy scripts

* prettier

* update serialized dsc tree

* fix ofac check

* fix passport attestation id

---------

Co-authored-by: turnoffthiscomputer <colin.remi07@gmail.com>
2025-06-03 14:58:41 +09:00
Kevin Lin
5a3bd28e7b Feature/add prettier formatter (#568)
* Add Prettier configuration and ignore files for code formatting

- Created .prettierignore to exclude specific directories and files from formatting.
- Added .prettierrc.yml with custom settings for print width and trailing commas.
- Updated package.json to include Prettier and its Solidity plugin as dependencies, along with scripts for formatting and checking code.

* Run prettier formatting
2025-05-23 15:52:59 +09:00
nicoshark
b2a5ef0346 forgot to include package update (#521) 2025-04-18 00:17:58 +09:00
turnoffthiscomputer
5904234d2e Feat/simpler contract sdk (#519)
* make contract sdk simpler

* reduce root inputs

* delete convert function

* summarize our library

* update npm package

* update package version

* update attestation id

* add util function to get revealed data

---------

Co-authored-by: motemotech <i.am.nicoshark@gmail.com>
2025-04-17 16:06:49 +02:00
nicoshark
624d0e568d Feat/forbidden countries utils (#504)
* add forbidden countries util function

* remove casting
2025-04-04 18:58:30 +05:30
nicoshark
d266cf2ced Feat/add new verifiers (#488)
* update verifiers

* update and deploy new verifiers
2025-03-30 19:22:15 +02:00
turnoffthiscomputer
9203f08bc9 Merge pull request #427 from selfxyz/feat/deployed-informations
Feat/deployed informations
2025-03-12 04:36:02 -04:00
motemotech
5c03638c43 add deployed informations 2025-03-12 12:01:20 +09:00
motemotech
c253877d91 Merge branch 'main' into feat/download-n-update-verifiers 2025-03-12 11:39:41 +09:00
nicoshark
f63ee37118 Perf/contract test (#224) 2025-03-04 16:03:03 -08:00
motemotech
03019eee49 download and update verifiers 2025-02-24 15:10:32 -08:00
nicoshark
80a88f2a38 add contract upgrade scripts (#205) 2025-02-23 00:16:37 +01:00
turnoffthiscomputer
c220d58d9d Update verifiers (#184) 2025-02-21 00:09:00 +01:00
nicoshark
e09a5e8349 Update/sdk addresses (#188) 2025-02-21 00:08:34 +01:00
nicoshark
074b1cc947 Chore/get custom error (#173) 2025-02-20 02:51:58 +01:00
turnoffthiscomputer
3f889c1c9a add PCR0 contract management (#134)
Co-authored-by: 0xturboblitz <florent.tavernier@gmail.com>
2025-02-18 23:07:12 +01:00
turboblitz
7f9889307b new verifiers for deployment on celo (#129) 2025-02-17 04:21:12 +01:00
turboblitz
fd74ffa156 New backend verification sdk (#131)
Co-authored-by: motemotech <i.am.nicoshark@gmail.com>
2025-02-16 18:33:54 -08:00
turboblitz
6d4c211c51 New OFAC updates (#47)
Co-authored-by: nicoshark <i.am.nicoshark@gmail.com>
2025-02-12 22:21:01 +01:00
nicoshark
762708d326 Fix/contract improvements (#75) 2025-02-12 15:57:55 +01:00
turnoffthiscomputer
8eb64171d2 Feat/backend api (#78)
Co-authored-by: motemotech <i.am.nicoshark@gmail.com>
2025-02-12 13:09:50 +01:00
Justin Hernandez
73421f6a9a Improve UX and DX (#66)
Co-authored-by: Nicolas Brugneaux <nicolas.brugneaux@gmail.com>
2025-02-11 10:08:07 +01:00