Skip to content

V3.0.0 #342

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 160 commits into from
Apr 29, 2025
Merged

V3.0.0 #342

merged 160 commits into from
Apr 29, 2025

Conversation

daveroga
Copy link
Contributor

@daveroga daveroga commented Feb 4, 2025

  • Includes multi-query support on-chain
  • Track changes from auditors
  • Track changes from master fixes

@AndriianChestnykh AndriianChestnykh marked this pull request as ready for review April 14, 2025 09:40
}

function _verifyEthIdentity(uint256 id, address sender) internal view {
bytes2 idType = _getState().getIdTypeIfSupported(id);
Copy link
Member

Choose a reason for hiding this comment

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

Looks like eth auth will not work for identities from other blockchains, because their idTypes would not be in supported list. Use getIdType here instead and test cross-chain auth.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Fixed and EthIdentityValidator will not need the State contract at all

) = abi.decode(proof, (uint256[], uint256[2], uint256[2][2], uint256[2]));

PubSignals memory pubSignals = parsePubSignals(inputs);
_checkGistRoot(pubSignals.userID, pubSignals.gistRoot);
Copy link
Member

Choose a reason for hiding this comment

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

Please check if it works cross-chain.

Copy link
Collaborator

@AndriianChestnykh AndriianChestnykh Apr 19, 2025

Choose a reason for hiding this comment

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

Yes, it should. It is meant that idType + gistRoot will is pub to State via as an oracle data before the authV2 is called. idType' is extracted from userId' from the same source chain where the oracle GIST root proofs came from.

if (
userID !=
GenesisUtils.calcIdFromEthAddress(
_getState().getIdTypeIfSupported(userID),
Copy link
Member

Choose a reason for hiding this comment

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

Probably doesn't work for cross-chain proofs.

Copy link
Collaborator

Choose a reason for hiding this comment

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

It's a good point. Better get idType via GenesisUtils.getIdType(..) as verification chain may not support user source chain idType

* @dev Sets a multiRequest
* @param multiRequest The multiRequest data
*/
function setMultiRequest(
Copy link
Member

Choose a reason for hiding this comment

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

Does it check for validator whitelist, disabled requests. Does it set request owner?

Copy link
Collaborator

@AndriianChestnykh AndriianChestnykh Apr 14, 2025

Choose a reason for hiding this comment

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

Nothing of these is checked and no multiRequest owner exist at multi request level. Should we change anything?

daveroga and others added 12 commits April 18, 2025 10:13
* deployment libraries to billions testnet

* add chainIdInfoMap for Billions

* Remove artifacts

* State Contract Deployment to billions-test artifacts

* State Contract Deployment to billions-test artifacts

* State Contract Deployment to billions-test artifacts

* update verification params for billions network

* update billions main chainid

---------

Co-authored-by: Andriian Chestnykh <[email protected]>
Co-authored-by: Oleksandr Brezhniev <[email protected]>
# Conflicts:
#	contracts/lib/VerifierMTPWrapper.sol
#	contracts/lib/VerifierSigWrapper.sol
#	contracts/lib/VerifierV3Wrapper.sol
#	contracts/lib/groth16-verifiers/Groth16VerifierAuthV2Wrapper.sol
#	contracts/package.json
#	contracts/verifiers/EmbeddedZKPVerifier.sol
#	contracts/verifiers/RequestOwnership.sol
#	contracts/verifiers/UniversalVerifier.sol
#	contracts/verifiers/ValidatorWhitelist.sol
#	helpers/constants.ts
#	test/verifier/embedded-zkp-verifier.test.ts
#	test/verifier/universal-verifier.test.ts
@AndriianChestnykh AndriianChestnykh merged commit 2d02af1 into master Apr 29, 2025
5 checks passed
@AndriianChestnykh AndriianChestnykh deleted the v3 branch April 29, 2025 13:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants