@0xpolygonid/js-sdk 1.18.0 → 1.18.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/esm/index.js +23 -14
- package/dist/browser/esm/index.js.map +1 -1
- package/dist/browser/umd/index.js +23 -14
- package/dist/browser/umd/index.js.map +1 -1
- package/dist/node/cjs/credentials/credential-wallet.js +7 -0
- package/dist/node/cjs/iden3comm/handlers/contract-request.js +4 -4
- package/dist/node/cjs/storage/blockchain/onchain-zkp-verifier.js +10 -10
- package/dist/node/cjs/verifiable/constants.js +2 -0
- package/dist/node/esm/credentials/credential-wallet.js +8 -1
- package/dist/node/esm/iden3comm/handlers/contract-request.js +4 -4
- package/dist/node/esm/storage/blockchain/onchain-zkp-verifier.js +10 -10
- package/dist/node/esm/verifiable/constants.js +2 -0
- package/dist/types/credentials/models.d.ts +9 -1
- package/dist/types/storage/blockchain/onchain-zkp-verifier.d.ts +2 -2
- package/dist/types/verifiable/constants.d.ts +1 -0
- package/package.json +1 -1
|
@@ -7542,6 +7542,8 @@ const VerifiableConstants = Object.freeze({
|
|
|
7542
7542
|
JSONLD_SCHEMA: {
|
|
7543
7543
|
// JSONLDSchemaIden3Credential is a schema for context with Iden3Credential type
|
|
7544
7544
|
IDEN3_CREDENTIAL: 'https://schema.iden3.io/core/jsonld/iden3proofs.jsonld',
|
|
7545
|
+
// JSONLDSchemaIden3DisplayMethod is a schema for context with Iden3BasicDisplayMethodV1 type
|
|
7546
|
+
IDEN3_DISPLAY_METHOD: 'https://schema.iden3.io/core/jsonld/displayMethod.jsonld',
|
|
7545
7547
|
// JSONLDSchemaW3CCredential2018 is a schema for context with VerifiableCredential type
|
|
7546
7548
|
W3C_CREDENTIAL_2018: 'https://www.w3.org/2018/credentials/v1',
|
|
7547
7549
|
W3C_VC_DOCUMENT_2018: `{"@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","VerifiableCredential":{"@id":"https://www.w3.org/2018/credentials#VerifiableCredential","@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","cred":"https://www.w3.org/2018/credentials#","sec":"https://w3id.org/security#","xsd":"http://www.w3.org/2001/XMLSchema#","credentialSchema":{"@id":"cred:credentialSchema","@type":"@id","@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","cred":"https://www.w3.org/2018/credentials#","JsonSchemaValidator2018":"cred:JsonSchemaValidator2018"}},"credentialStatus":{"@id":"cred:credentialStatus","@type":"@id"},"credentialSubject":{"@id":"cred:credentialSubject","@type":"@id"},"evidence":{"@id":"cred:evidence","@type":"@id"},"expirationDate":{"@id":"cred:expirationDate","@type":"xsd:dateTime"},"holder":{"@id":"cred:holder","@type":"@id"},"issued":{"@id":"cred:issued","@type":"xsd:dateTime"},"issuer":{"@id":"cred:issuer","@type":"@id"},"issuanceDate":{"@id":"cred:issuanceDate","@type":"xsd:dateTime"},"proof":{"@id":"sec:proof","@type":"@id","@container":"@graph"},"refreshService":{"@id":"cred:refreshService","@type":"@id","@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","cred":"https://www.w3.org/2018/credentials#","ManualRefreshService2018":"cred:ManualRefreshService2018"}},"termsOfUse":{"@id":"cred:termsOfUse","@type":"@id"},"validFrom":{"@id":"cred:validFrom","@type":"xsd:dateTime"},"validUntil":{"@id":"cred:validUntil","@type":"xsd:dateTime"}}},"VerifiablePresentation":{"@id":"https://www.w3.org/2018/credentials#VerifiablePresentation","@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","cred":"https://www.w3.org/2018/credentials#","sec":"https://w3id.org/security#","holder":{"@id":"cred:holder","@type":"@id"},"proof":{"@id":"sec:proof","@type":"@id","@container":"@graph"},"verifiableCredential":{"@id":"cred:verifiableCredential","@type":"@id","@container":"@graph"}}},"EcdsaSecp256k1Signature2019":{"@id":"https://w3id.org/security#EcdsaSecp256k1Signature2019","@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","sec":"https://w3id.org/security#","xsd":"http://www.w3.org/2001/XMLSchema#","challenge":"sec:challenge","created":{"@id":"http://purl.org/dc/terms/created","@type":"xsd:dateTime"},"domain":"sec:domain","expires":{"@id":"sec:expiration","@type":"xsd:dateTime"},"jws":"sec:jws","nonce":"sec:nonce","proofPurpose":{"@id":"sec:proofPurpose","@type":"@vocab","@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","sec":"https://w3id.org/security#","assertionMethod":{"@id":"sec:assertionMethod","@type":"@id","@container":"@set"},"authentication":{"@id":"sec:authenticationMethod","@type":"@id","@container":"@set"}}},"proofValue":"sec:proofValue","verificationMethod":{"@id":"sec:verificationMethod","@type":"@id"}}},"EcdsaSecp256r1Signature2019":{"@id":"https://w3id.org/security#EcdsaSecp256r1Signature2019","@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","sec":"https://w3id.org/security#","xsd":"http://www.w3.org/2001/XMLSchema#","challenge":"sec:challenge","created":{"@id":"http://purl.org/dc/terms/created","@type":"xsd:dateTime"},"domain":"sec:domain","expires":{"@id":"sec:expiration","@type":"xsd:dateTime"},"jws":"sec:jws","nonce":"sec:nonce","proofPurpose":{"@id":"sec:proofPurpose","@type":"@vocab","@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","sec":"https://w3id.org/security#","assertionMethod":{"@id":"sec:assertionMethod","@type":"@id","@container":"@set"},"authentication":{"@id":"sec:authenticationMethod","@type":"@id","@container":"@set"}}},"proofValue":"sec:proofValue","verificationMethod":{"@id":"sec:verificationMethod","@type":"@id"}}},"Ed25519Signature2018":{"@id":"https://w3id.org/security#Ed25519Signature2018","@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","sec":"https://w3id.org/security#","xsd":"http://www.w3.org/2001/XMLSchema#","challenge":"sec:challenge","created":{"@id":"http://purl.org/dc/terms/created","@type":"xsd:dateTime"},"domain":"sec:domain","expires":{"@id":"sec:expiration","@type":"xsd:dateTime"},"jws":"sec:jws","nonce":"sec:nonce","proofPurpose":{"@id":"sec:proofPurpose","@type":"@vocab","@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","sec":"https://w3id.org/security#","assertionMethod":{"@id":"sec:assertionMethod","@type":"@id","@container":"@set"},"authentication":{"@id":"sec:authenticationMethod","@type":"@id","@container":"@set"}}},"proofValue":"sec:proofValue","verificationMethod":{"@id":"sec:verificationMethod","@type":"@id"}}},"RsaSignature2018":{"@id":"https://w3id.org/security#RsaSignature2018","@context":{"@version":1.1,"@protected":true,"challenge":"sec:challenge","created":{"@id":"http://purl.org/dc/terms/created","@type":"xsd:dateTime"},"domain":"sec:domain","expires":{"@id":"sec:expiration","@type":"xsd:dateTime"},"jws":"sec:jws","nonce":"sec:nonce","proofPurpose":{"@id":"sec:proofPurpose","@type":"@vocab","@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","sec":"https://w3id.org/security#","assertionMethod":{"@id":"sec:assertionMethod","@type":"@id","@container":"@set"},"authentication":{"@id":"sec:authenticationMethod","@type":"@id","@container":"@set"}}},"proofValue":"sec:proofValue","verificationMethod":{"@id":"sec:verificationMethod","@type":"@id"}}},"proof":{"@id":"https://w3id.org/security#proof","@type":"@id","@container":"@graph"}}}`
|
|
@@ -53246,9 +53248,9 @@ var FunctionSignatures;
|
|
|
53246
53248
|
* function submitZKPResponse(uint64 requestId, uint256[] calldata inputs,
|
|
53247
53249
|
* uint256[2] calldata a, uint256[2][2] calldata b, uint256[2] calldata c) public
|
|
53248
53250
|
*/
|
|
53249
|
-
FunctionSignatures["
|
|
53251
|
+
FunctionSignatures["SubmitZKPResponseV1"] = "b68967e2";
|
|
53250
53252
|
//function submitZKPResponseV2(tuple[](uint64 requestId,bytes zkProof,bytes data),bytes crossChainProof)
|
|
53251
|
-
FunctionSignatures["
|
|
53253
|
+
FunctionSignatures["SubmitZKPResponseV2"] = "ade09fcd";
|
|
53252
53254
|
})(FunctionSignatures || (FunctionSignatures = {}));
|
|
53253
53255
|
/**
|
|
53254
53256
|
* OnChainZKPVerifier is a class that allows to interact with the OnChainZKPVerifier contract
|
|
@@ -53284,8 +53286,8 @@ class OnChainZKPVerifier {
|
|
|
53284
53286
|
* {@inheritDoc IOnChainZKPVerifier.prepareTxArgsSubmitV1}
|
|
53285
53287
|
*/
|
|
53286
53288
|
async prepareTxArgsSubmitV1(txData, zkProofResponse) {
|
|
53287
|
-
if (txData.method_id.replace('0x', '') !== FunctionSignatures.
|
|
53288
|
-
throw new Error(`prepareTxArgsSubmitV1 function doesn't implement requested method id. Only '0x${FunctionSignatures.
|
|
53289
|
+
if (txData.method_id.replace('0x', '') !== FunctionSignatures.SubmitZKPResponseV1) {
|
|
53290
|
+
throw new Error(`prepareTxArgsSubmitV1 function doesn't implement requested method id. Only '0x${FunctionSignatures.SubmitZKPResponseV1}' is supported.`);
|
|
53289
53291
|
}
|
|
53290
53292
|
const requestID = zkProofResponse.id;
|
|
53291
53293
|
const inputs = zkProofResponse.pub_signals;
|
|
@@ -53309,8 +53311,8 @@ class OnChainZKPVerifier {
|
|
|
53309
53311
|
if (!chainConfig) {
|
|
53310
53312
|
throw new Error(`config for chain id ${txData.chain_id} was not found`);
|
|
53311
53313
|
}
|
|
53312
|
-
if (txData.method_id.replace('0x', '') !== FunctionSignatures.
|
|
53313
|
-
throw new Error(`submitZKPResponse function doesn't implement requested method id. Only '0x${FunctionSignatures.
|
|
53314
|
+
if (txData.method_id.replace('0x', '') !== FunctionSignatures.SubmitZKPResponseV1) {
|
|
53315
|
+
throw new Error(`submitZKPResponse function doesn't implement requested method id. Only '0x${FunctionSignatures.SubmitZKPResponseV1}' is supported.`);
|
|
53314
53316
|
}
|
|
53315
53317
|
const provider = new JsonRpcProvider(chainConfig.url, chainConfig.chainId);
|
|
53316
53318
|
ethSigner = ethSigner.connect(provider);
|
|
@@ -53354,8 +53356,8 @@ class OnChainZKPVerifier {
|
|
|
53354
53356
|
if (!chainConfig) {
|
|
53355
53357
|
throw new Error(`config for chain id ${txData.chain_id} was not found`);
|
|
53356
53358
|
}
|
|
53357
|
-
if (txData.method_id.replace('0x', '') !== FunctionSignatures.
|
|
53358
|
-
throw new Error(`submitZKPResponseV2 function doesn't implement requested method id. Only '0x${FunctionSignatures.
|
|
53359
|
+
if (txData.method_id.replace('0x', '') !== FunctionSignatures.SubmitZKPResponseV2) {
|
|
53360
|
+
throw new Error(`submitZKPResponseV2 function doesn't implement requested method id. Only '0x${FunctionSignatures.SubmitZKPResponseV2}' is supported.`);
|
|
53359
53361
|
}
|
|
53360
53362
|
if (!this._opts?.didResolverUrl) {
|
|
53361
53363
|
throw new Error(`did resolver url required for crosschain verification`);
|
|
@@ -53391,8 +53393,8 @@ class OnChainZKPVerifier {
|
|
|
53391
53393
|
return new Map().set(txnHash, zkProofResponses);
|
|
53392
53394
|
}
|
|
53393
53395
|
async prepareTxArgsSubmitV2(txData, zkProofResponses) {
|
|
53394
|
-
if (txData.method_id.replace('0x', '') !== FunctionSignatures.
|
|
53395
|
-
throw new Error(`submit cross chain doesn't implement requested method id. Only '0x${FunctionSignatures.
|
|
53396
|
+
if (txData.method_id.replace('0x', '') !== FunctionSignatures.SubmitZKPResponseV2) {
|
|
53397
|
+
throw new Error(`submit cross chain doesn't implement requested method id. Only '0x${FunctionSignatures.SubmitZKPResponseV2}' is supported.`);
|
|
53396
53398
|
}
|
|
53397
53399
|
if (!this._opts?.didResolverUrl) {
|
|
53398
53400
|
throw new Error(`did resolver url required for crosschain verification`);
|
|
@@ -55604,7 +55606,13 @@ class CredentialWallet {
|
|
|
55604
55606
|
if (!schema.$metadata.uris['jsonLdContext']) {
|
|
55605
55607
|
throw new Error('jsonLdContext is missing is the schema');
|
|
55606
55608
|
}
|
|
55609
|
+
request.context = request.context ?? [];
|
|
55610
|
+
if (request.displayMethod?.type === DisplayMethodType.Iden3BasicDisplayMethodV1 &&
|
|
55611
|
+
!request.context.includes(VerifiableConstants.JSONLD_SCHEMA.IDEN3_DISPLAY_METHOD)) {
|
|
55612
|
+
request.context.push(VerifiableConstants.JSONLD_SCHEMA.IDEN3_DISPLAY_METHOD);
|
|
55613
|
+
}
|
|
55607
55614
|
const context = [
|
|
55615
|
+
...request.context,
|
|
55608
55616
|
VerifiableConstants.JSONLD_SCHEMA.W3C_CREDENTIAL_2018,
|
|
55609
55617
|
VerifiableConstants.JSONLD_SCHEMA.IDEN3_CREDENTIAL,
|
|
55610
55618
|
schema.$metadata.uris['jsonLdContext']
|
|
@@ -55622,6 +55630,7 @@ class CredentialWallet {
|
|
|
55622
55630
|
cr.type = credentialType;
|
|
55623
55631
|
cr.expirationDate = expirationDate ? new Date(expirationDate * 1000).toISOString() : undefined;
|
|
55624
55632
|
cr.refreshService = request.refreshService;
|
|
55633
|
+
cr.displayMethod = request.displayMethod;
|
|
55625
55634
|
cr.issuanceDate = new Date().toISOString();
|
|
55626
55635
|
cr.credentialSubject = credentialSubject;
|
|
55627
55636
|
cr.issuer = issuer.string();
|
|
@@ -57703,9 +57712,9 @@ class ContractRequestHandler extends AbstractMessageHandler {
|
|
|
57703
57712
|
const zkpResponses = await processZeroKnowledgeProofRequests(did, message?.body?.scope, verifierDid, this._proofService, { ethSigner, challenge, supportedCircuits: this._supportedCircuits });
|
|
57704
57713
|
const methodId = message.body.transaction_data.method_id.replace('0x', '');
|
|
57705
57714
|
switch (methodId) {
|
|
57706
|
-
case FunctionSignatures.
|
|
57715
|
+
case FunctionSignatures.SubmitZKPResponseV2:
|
|
57707
57716
|
return this._zkpVerifier.submitZKPResponseV2(ethSigner, message.body.transaction_data, zkpResponses);
|
|
57708
|
-
case FunctionSignatures.
|
|
57717
|
+
case FunctionSignatures.SubmitZKPResponseV1: {
|
|
57709
57718
|
const txHashZkpResponseMap = await this._zkpVerifier.submitZKPResponse(ethSigner, message.body.transaction_data, zkpResponses);
|
|
57710
57719
|
const response = new Map();
|
|
57711
57720
|
for (const [txHash, zkpResponse] of txHashZkpResponseMap) {
|
|
@@ -57714,7 +57723,7 @@ class ContractRequestHandler extends AbstractMessageHandler {
|
|
|
57714
57723
|
return response;
|
|
57715
57724
|
}
|
|
57716
57725
|
default:
|
|
57717
|
-
throw new Error(`Not supported method id. Only '${FunctionSignatures.
|
|
57726
|
+
throw new Error(`Not supported method id. Only '${FunctionSignatures.SubmitZKPResponseV1} and ${FunctionSignatures.SubmitZKPResponseV2} are supported.'`);
|
|
57718
57727
|
}
|
|
57719
57728
|
}
|
|
57720
57729
|
/**
|
|
@@ -57775,7 +57784,7 @@ class ContractRequestHandler extends AbstractMessageHandler {
|
|
|
57775
57784
|
*/
|
|
57776
57785
|
async handleContractInvokeRequest(did, request, opts) {
|
|
57777
57786
|
const ciRequest = await this.parseContractInvokeRequest(request);
|
|
57778
|
-
if (ciRequest.body.transaction_data.method_id !== FunctionSignatures.
|
|
57787
|
+
if (ciRequest.body.transaction_data.method_id !== FunctionSignatures.SubmitZKPResponseV1) {
|
|
57779
57788
|
throw new Error(`please use handle method to work with other method ids`);
|
|
57780
57789
|
}
|
|
57781
57790
|
if (ciRequest.type !== PROTOCOL_MESSAGE_TYPE.CONTRACT_INVOKE_REQUEST_MESSAGE_TYPE) {
|