@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.
@@ -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["SumbitZKPResponseV1"] = "b68967e2";
53251
+ FunctionSignatures["SubmitZKPResponseV1"] = "b68967e2";
53250
53252
  //function submitZKPResponseV2(tuple[](uint64 requestId,bytes zkProof,bytes data),bytes crossChainProof)
53251
- FunctionSignatures["SumbitZKPResponseV2"] = "ade09fcd";
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.SumbitZKPResponseV1) {
53288
- throw new Error(`prepareTxArgsSubmitV1 function doesn't implement requested method id. Only '0x${FunctionSignatures.SumbitZKPResponseV1}' is supported.`);
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.SumbitZKPResponseV1) {
53313
- throw new Error(`submitZKPResponse function doesn't implement requested method id. Only '0x${FunctionSignatures.SumbitZKPResponseV1}' is supported.`);
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.SumbitZKPResponseV2) {
53358
- throw new Error(`submitZKPResponseV2 function doesn't implement requested method id. Only '0x${FunctionSignatures.SumbitZKPResponseV2}' is supported.`);
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.SumbitZKPResponseV2) {
53395
- throw new Error(`submit cross chain doesn't implement requested method id. Only '0x${FunctionSignatures.SumbitZKPResponseV2}' is supported.`);
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.SumbitZKPResponseV2:
57715
+ case FunctionSignatures.SubmitZKPResponseV2:
57707
57716
  return this._zkpVerifier.submitZKPResponseV2(ethSigner, message.body.transaction_data, zkpResponses);
57708
- case FunctionSignatures.SumbitZKPResponseV1: {
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.SumbitZKPResponseV1} and ${FunctionSignatures.SumbitZKPResponseV2} are supported.'`);
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.SumbitZKPResponseV1) {
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) {