@0xpolygonid/js-sdk 1.33.1 → 1.33.3

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.
@@ -91,8 +91,8 @@ var KMS = class {
91
91
  };
92
92
 
93
93
  // src/kms/key-providers/bjj-provider.ts
94
- import { Hex as Hex3, PrivateKey, PublicKey, Signature } from "@iden3/js-crypto";
95
- import { BytesHelper, checkBigIntInField } from "@iden3/js-iden3-core";
94
+ import { Hex as Hex4, PrivateKey, PublicKey as PublicKey4, Signature as Signature2 } from "@iden3/js-crypto";
95
+ import { BytesHelper as BytesHelper2, checkBigIntInField } from "@iden3/js-iden3-core";
96
96
 
97
97
  // src/kms/store/abstract-key-store.ts
98
98
  var AbstractPrivateKeyStore = class {
@@ -486,616 +486,337 @@ var bigIntCompare = (a, b) => {
486
486
  return 0;
487
487
  };
488
488
 
489
- // src/kms/key-providers/bjj-provider.ts
490
- var BjjProvider = class {
491
- /**
492
- * key type that is handled by BJJ Provider
493
- * @type {KmsKeyType}
494
- */
495
- keyType;
496
- keyStore;
497
- /**
498
- * Creates an instance of BjjProvider.
499
- * @param {KmsKeyType} keyType - kms key type
500
- * @param {AbstractPrivateKeyStore} keyStore - key store for kms
501
- */
502
- constructor(keyType, keyStore) {
503
- if (keyType !== "BJJ" /* BabyJubJub */) {
504
- throw new Error("Key type must be BabyJubJub");
505
- }
506
- this.keyType = keyType;
507
- this.keyStore = keyStore;
508
- }
509
- /**
510
- * get all keys
511
- * @returns list of keys
512
- */
513
- async list() {
514
- const allKeysFromKeyStore = await this.keyStore.list();
515
- return allKeysFromKeyStore.filter((key) => key.alias.startsWith(this.keyType));
489
+ // src/utils/payments/solana.ts
490
+ import { serialize } from "borsh";
491
+ import { ed25519 } from "@noble/curves/ed25519";
492
+
493
+ // src/verifiable/proof.ts
494
+ import { Hash as Hash2, Proof } from "@iden3/js-merkletree";
495
+
496
+ // src/verifiable/constants.ts
497
+ var VerifiableConstants = Object.freeze({
498
+ ERRORS: {
499
+ FiELD_IS_EMPTY: "fieldPath is empty",
500
+ CONTEXT_TYPE_IS_EMPTY: "ctxType is empty",
501
+ // ErrStateNotFound issuer state is genesis state.
502
+ IDENTITY_DOES_NOT_EXIST: "Identity does not exist",
503
+ IDENTITY_DOES_NOT_EXIST_CUSTOM_ERROR: "IdentityDoesNotExist",
504
+ NO_AUTH_CRED_FOUND: "no auth credentials found",
505
+ STATE_DOES_NOT_EXIST: "State does not exist",
506
+ STATE_DOES_NOT_EXIST_CUSTOM_ERROR: "StateDoesNotExist",
507
+ ROOT_DOES_NOT_EXIST: "Root does not exist",
508
+ ROOT_DOES_NOT_EXIST_CUSTOM_ERROR: "RootDoesNotExist",
509
+ // identity wallet
510
+ ID_WALLET_NO_CREDENTIAL_SATISFIED_QUERY: "no credential satisfied query",
511
+ ID_WALLET_SIGNER_IS_REQUIRED: "Ethereum signer is required to create Ethereum identities in order to transit state",
512
+ ID_WALLET_PROVER_IS_REQUIRED: "prover is required to generate proofs for non ethereum identities",
513
+ ID_WALLET_CORE_CLAIM_REQUIRED_IN_SIG_PROOF: "credential must have coreClaim representation in the signature proof",
514
+ ID_WALLET_CORE_CLAIM_REQUIRED_IN_ANY_PROOF: "credential must have coreClaim representation in proofs",
515
+ ID_WALLET_CORE_CLAIM_MISMATCH: "core claim representations is set in both proofs but they are not equal",
516
+ ID_WALLET_CORE_CLAIM_IS_NOT_SET: "core claim is not set in credential proofs",
517
+ ID_WALLET_PROFILE_OR_IDENTITY_NOT_FOUND: "profile or identity not found",
518
+ ID_WALLET_PROFILE_ALREADY_EXISTS: "profile with given nonce or verifier already exists",
519
+ ID_WALLET_PROFILE_ALREADY_EXISTS_VERIFIER_TAGS: "profile with given verifier and tags already exists",
520
+ ID_WALLET_ISSUER_AUTH_BJJ_CRED_MUST_HAVE_ANY_PROOF: "issuer auth credential must have proof",
521
+ ID_WALLET_ISSUER_AUTH_BJJ_CRED_MUST_HAVE_MTP_PROOF: "mtp is required for auth bjj key to issue new credentials",
522
+ // proof service
523
+ PROOF_SERVICE_NO_CREDENTIAL_FOR_IDENTITY_OR_PROFILE: "no credentials belong to did or its profiles",
524
+ PROOF_SERVICE_NO_CREDENTIAL_FOR_QUERY: "credential not found for query",
525
+ PROOF_SERVICE_PROFILE_GENESIS_DID_MISMATCH: "subject and auth profiles are not derived from the same did",
526
+ PROOF_SERVICE_NO_QUERIES_IN_ZKP_REQUEST: "no queries in zkp request",
527
+ // credential wallet
528
+ CREDENTIAL_WALLET_ALL_CREDENTIALS_ARE_REVOKED: "all claims are revoked"
529
+ },
530
+ CREDENTIAL_TYPE: {
531
+ // VerifiableCredential is a W3C verifiable credential type
532
+ W3C_VERIFIABLE_CREDENTIAL: "VerifiableCredential",
533
+ W3C_VERIFIABLE_PRESENTATION: "VerifiablePresentation"
534
+ },
535
+ CREDENTIAL_SUBJECT_PATH: "https://www.w3.org/2018/credentials#credentialSubject",
536
+ JSONLD_SCHEMA: {
537
+ // JSONLDSchemaIden3Credential is a schema for context with Iden3Credential type
538
+ IDEN3_CREDENTIAL: "https://schema.iden3.io/core/jsonld/iden3proofs.jsonld",
539
+ // JSONLDSchemaIden3DisplayMethod is a schema for context with Iden3BasicDisplayMethodV1 type
540
+ IDEN3_DISPLAY_METHOD: "https://schema.iden3.io/core/jsonld/displayMethod.jsonld",
541
+ // JSONLDSchemaW3CCredential2018 is a schema for context with VerifiableCredential type
542
+ W3C_CREDENTIAL_2018: "https://www.w3.org/2018/credentials/v1",
543
+ 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"}}}`,
544
+ IDEN3_PROOFS_DEFINITION_DOCUMENT: `{"@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","Iden3SparseMerkleTreeProof":{"@id":"https://schema.iden3.io/core/jsonld/iden3proofs.jsonld#Iden3SparseMerkleTreeProof","@context":{"@version":1.1,"@protected":true,"@propagate":true,"id":"@id","type":"@type","sec":"https://w3id.org/security#","@vocab":"https://schema.iden3.io/core/vocab/Iden3SparseMerkleTreeProof.md#","xsd":"http://www.w3.org/2001/XMLSchema#","mtp":{"@id":"https://schema.iden3.io/core/jsonld/iden3proofs.jsonld#SparseMerkleTreeProof","@type":"SparseMerkleTreeProof"},"coreClaim":{"@id":"coreClaim","@type":"xsd:string"},"issuerData":{"@id":"issuerData","@context":{"@version":1.1,"state":{"@id":"state","@context":{"txId":{"@id":"txId","@type":"xsd:string"},"blockTimestamp":{"@id":"blockTimestamp","@type":"xsd:integer"},"blockNumber":{"@id":"blockNumber","@type":"xsd:integer"},"rootOfRoots":{"@id":"rootOfRoots","@type":"xsd:string"},"claimsTreeRoot":{"@id":"claimsTreeRoot","@type":"xsd:string"},"revocationTreeRoot":{"@id":"revocationTreeRoot","@type":"xsd:string"},"authCoreClaim":{"@id":"authCoreClaim","@type":"xsd:string"},"value":{"@id":"value","@type":"xsd:string"}}}}}}},"SparseMerkleTreeProof":{"@id":"https://schema.iden3.io/core/jsonld/iden3proofs.jsonld#SparseMerkleTreeProof","@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","sec":"https://w3id.org/security#","smt-proof-vocab":"https://schema.iden3.io/core/vocab/SparseMerkleTreeProof.md#","xsd":"http://www.w3.org/2001/XMLSchema#","existence":{"@id":"smt-proof-vocab:existence","@type":"xsd:boolean"},"revocationNonce":{"@id":"smt-proof-vocab:revocationNonce","@type":"xsd:number"},"siblings":{"@id":"smt-proof-vocab:siblings","@container":"@list"},"nodeAux":"@nest","hIndex":{"@id":"smt-proof-vocab:hIndex","@nest":"nodeAux","@type":"xsd:string"},"hValue":{"@id":"smt-proof-vocab:hValue","@nest":"nodeAux","@type":"xsd:string"}}},"BJJSignature2021":{"@id":"https://schema.iden3.io/core/jsonld/iden3proofs.jsonld#BJJSignature2021","@context":{"@version":1.1,"@protected":true,"id":"@id","@vocab":"https://schema.iden3.io/core/vocab/BJJSignature2021.md#","@propagate":true,"type":"@type","xsd":"http://www.w3.org/2001/XMLSchema#","coreClaim":{"@id":"coreClaim","@type":"xsd:string"},"issuerData":{"@id":"issuerData","@context":{"@version":1.1,"authCoreClaim":{"@id":"authCoreClaim","@type":"xsd:string"},"mtp":{"@id":"https://schema.iden3.io/core/jsonld/iden3proofs.jsonld#SparseMerkleTreeProof","@type":"SparseMerkleTreeProof"},"revocationStatus":{"@id":"revocationStatus","@type":"@id"},"state":{"@id":"state","@context":{"@version":1.1,"rootOfRoots":{"@id":"rootOfRoots","@type":"xsd:string"},"claimsTreeRoot":{"@id":"claimsTreeRoot","@type":"xsd:string"},"revocationTreeRoot":{"@id":"revocationTreeRoot","@type":"xsd:string"},"value":{"@id":"value","@type":"xsd:string"}}}}},"signature":{"@id":"signature","@type":"https://w3id.org/security#multibase"},"domain":"https://w3id.org/security#domain","creator":{"@id":"creator","@type":"http://www.w3.org/2001/XMLSchema#string"},"challenge":"https://w3id.org/security#challenge","created":{"@id":"created","@type":"http://www.w3.org/2001/XMLSchema#dateTime"},"expires":{"@id":"https://w3id.org/security#expiration","@type":"http://www.w3.org/2001/XMLSchema#dateTime"},"nonce":"https://w3id.org/security#nonce","proofPurpose":{"@id":"https://w3id.org/security#proofPurpose","@type":"@vocab","@context":{"@protected":true,"id":"@id","type":"@type","assertionMethod":{"@id":"https://w3id.org/security#assertionMethod","@type":"@id","@container":"@set"},"authentication":{"@id":"https://w3id.org/security#authenticationMethod","@type":"@id","@container":"@set"},"capabilityInvocation":{"@id":"https://w3id.org/security#capabilityInvocationMethod","@type":"@id","@container":"@set"},"capabilityDelegation":{"@id":"https://w3id.org/security#capabilityDelegationMethod","@type":"@id","@container":"@set"},"keyAgreement":{"@id":"https://w3id.org/security#keyAgreementMethod","@type":"@id","@container":"@set"}}},"proofValue":{"@id":"https://w3id.org/security#proofValue","@type":"https://w3id.org/security#multibase"},"verificationMethod":{"@id":"https://w3id.org/security#verificationMethod","@type":"@id"}}},"Iden3ReverseSparseMerkleTreeProof":{"@id":"https://schema.iden3.io/core/jsonld/iden3proofs.jsonld#Iden3ReverseSparseMerkleTreeProof","@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","iden3-reverse-sparse-merkle-tree-proof-vocab":"https://schema.iden3.io/core/vocab/Iden3ReverseSparseMerkleTreeProof.md#","xsd":"http://www.w3.org/2001/XMLSchema#","revocationNonce":{"@id":"iden3-reverse-sparse-merkle-tree-proof-vocab:revocationNonce","@type":"xsd:integer"},"statusIssuer":{"@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type"},"@id":"iden3-reverse-sparse-merkle-tree-proof-vocab:statusIssuer"}}},"Iden3commRevocationStatusV1.0":{"@id":"https://schema.iden3.io/core/jsonld/iden3proofs.jsonld#Iden3commRevocationStatusV1.0","@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","iden3-comm-revocation-statusV1.0-vocab":"https://schema.iden3.io/core/vocab/Iden3commRevocationStatusV1.0.md#","xsd":"http://www.w3.org/2001/XMLSchema#","revocationNonce":{"@id":"iden3-comm-revocation-statusV1.0-vocab:revocationNonce","@type":"xsd:integer"},"statusIssuer":{"@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type"},"@id":"iden3-comm-revocation-statusV1.0-vocab:statusIssuer"}}},"Iden3OnchainSparseMerkleTreeProof2023":{"@id":"https://schema.iden3.io/core/jsonld/iden3proofs.jsonld#Iden3OnchainSparseMerkleTreeProof2023","@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","iden3-onchain-sparse-merkle-tree-proof-2023-vocab":"https://schema.iden3.io/core/vocab/Iden3OnchainSparseMerkleTreeProof2023.md#","xsd":"http://www.w3.org/2001/XMLSchema#","revocationNonce":{"@id":"iden3-onchain-sparse-merkle-tree-proof-2023-vocab:revocationNonce","@type":"xsd:integer"},"statusIssuer":{"@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type"},"@id":"iden3-onchain-sparse-merkle-tree-proof-2023-vocab:statusIssuer"}}},"JsonSchema2023":"https://www.w3.org/ns/credentials#JsonSchema2023","Iden3RefreshService2023":"https://schema.iden3.io/core/jsonld/iden3proofs.jsonld#Iden3RefreshService2023"}}`,
545
+ IDEN3_DISPLAY_METHOD_DEFINITION_DOCUMENT: `{"@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","displayMethod":{"@id":"https://schema.iden3.io/core/vocab/displayMethod.md#displayMethod","@type":"@id","@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","Iden3BasicDisplayMethodV1":"https://schema.iden3.io/core/vocab/displayMethod.md#Iden3BasicDisplayMethodV1"}}}}`
546
+ },
547
+ // JsonSchema2023 JSON schema for verification of Iden3Credential
548
+ JSON_SCHEMA_VALIDATOR: "JsonSchema2023",
549
+ SERVICE_TYPE: {
550
+ // Iden3CommServiceType is service type for iden3comm protocol
551
+ IDEN3_COMM: "iden3-communication",
552
+ // PushNotificationServiceType is service type for delivering push notifications to identity
553
+ PUSH_NOTIFICATION: "push-notification"
554
+ },
555
+ AUTH: {
556
+ AUTH_BJJ_CREDENTIAL_HASH: "013fd3f623559d850fb5b02ff012d0e2",
557
+ AUTH_BJJ_CREDENTIAL_SCHEMA_JSON_URL: "https://schema.iden3.io/core/json/auth.json",
558
+ AUTH_BJJ_CREDENTIAL_SCHEMA_JSONLD_URL: "https://schema.iden3.io/core/jsonld/auth.jsonld",
559
+ AUTH_BJJ_CREDENTIAL_TYPE: "AuthBJJCredential",
560
+ AUTH_BJJ_CREDENTIAL_SCHEMA_JSON: `{"$schema":"http://json-schema.org/draft-07/schema#","$metadata":{"uris":{"jsonLdContext":"https://schema.iden3.io/core/jsonld/auth.jsonld","jsonSchema":"https://schema.iden3.io/core/json/auth.json"},"serialization":{"indexDataSlotA":"x","indexDataSlotB":"y"}},"type":"object","required":["@context","id","type","issuanceDate","credentialSubject","credentialSchema","credentialStatus","issuer"],"properties":{"@context":{"type":["string","array","object"]},"id":{"type":"string"},"type":{"type":["string","array"],"items":{"type":"string"}},"issuer":{"type":["string","object"],"format":"uri","required":["id"],"properties":{"id":{"type":"string","format":"uri"}}},"issuanceDate":{"type":"string","format":"date-time"},"expirationDate":{"type":"string","format":"date-time"},"credentialSchema":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string","format":"uri"},"type":{"type":"string"}}},"credentialSubject":{"type":"object","required":["x","y"],"properties":{"id":{"title":"Credential Subject ID","type":"string","format":"uri"},"x":{"type":"string"},"y":{"type":"string"}}}}}`,
561
+ AUTH_BJJ_CREDENTIAL_SCHEMA_JSONLD: `{"@context":[{"@version":1.1,"@protected":true,"id":"@id","type":"@type","AuthBJJCredential":{"@id":"https://schema.iden3.io/core/jsonld/auth.jsonld#AuthBJJCredential","@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","iden3_serialization":"iden3:v1:slotIndexA=x&slotIndexB=y","xsd":"http://www.w3.org/2001/XMLSchema#","auth-vocab":"https://schema.iden3.io/core/vocab/auth.md#","x":{"@id":"auth-vocab:x","@type":"xsd:positiveInteger"},"y":{"@id":"auth-vocab:y","@type":"xsd:positiveInteger"}}},"Iden3StateInfo2023":{"@id":"https://schema.iden3.io/core/jsonld/auth.jsonld#Iden3StateInfo2023","@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","xsd":"http://www.w3.org/2001/XMLSchema#","@vocab":"https://schema.iden3.io/core/vocab/state-info.md#","@propagate":true,"stateContractAddress":{"@id":"stateContractAddress","@type":"xsd:string"},"published":{"@id":"published","@type":"xsd:boolean"},"info":{"@id":"info","@type":"@id","@context":{"@protected":true,"id":{"@id":"id","@type":"xsd:string"},"state":{"@id":"state","@type":"xsd:string"},"replacedByState":{"@id":"replacedByState","@type":"xsd:string"},"createdAtTimestamp":{"@id":"createdAtTimestamp","@type":"xsd:string"},"replacedAtTimestamp":{"@id":"replacedAtTimestamp","@type":"xsd:string"},"createdAtBlock":{"@id":"createdAtBlock","@type":"xsd:string"},"replacedAtBlock":{"@id":"replacedAtBlock","@type":"xsd:string"}}},"global":{"@id":"global","@type":"@id","@context":{"@protected":true,"sec":"https://w3id.org/security#","root":{"@id":"root","@type":"xsd:string"},"replacedByRoot":{"@id":"replacedByRoot","@type":"xsd:string"},"createdAtTimestamp":{"@id":"createdAtTimestamp","@type":"xsd:string"},"replacedAtTimestamp":{"@id":"replacedAtTimestamp","@type":"xsd:string"},"createdAtBlock":{"@id":"createdAtBlock","@type":"xsd:string"},"replacedAtBlock":{"@id":"replacedAtBlock","@type":"xsd:string"},"proof":{"@id":"sec:proof","@type":"@id","@container":"@graph"}}}}}}]}`
516
562
  }
563
+ });
564
+ var ProofType = /* @__PURE__ */ ((ProofType2) => {
565
+ ProofType2["BJJSignature"] = "BJJSignature2021";
566
+ ProofType2["Iden3SparseMerkleTreeProof"] = "Iden3SparseMerkleTreeProof";
567
+ return ProofType2;
568
+ })(ProofType || {});
569
+ var CredentialStatusType = /* @__PURE__ */ ((CredentialStatusType2) => {
570
+ CredentialStatusType2["SparseMerkleTreeProof"] = "SparseMerkleTreeProof";
571
+ CredentialStatusType2["Iden3ReverseSparseMerkleTreeProof"] = "Iden3ReverseSparseMerkleTreeProof";
572
+ CredentialStatusType2["Iden3commRevocationStatusV1"] = "Iden3commRevocationStatusV1.0";
573
+ CredentialStatusType2["Iden3OnchainSparseMerkleTreeProof2023"] = "Iden3OnchainSparseMerkleTreeProof2023";
574
+ return CredentialStatusType2;
575
+ })(CredentialStatusType || {});
576
+ var ProofPurpose = /* @__PURE__ */ ((ProofPurpose2) => {
577
+ ProofPurpose2["Authentication"] = "Authentication";
578
+ return ProofPurpose2;
579
+ })(ProofPurpose || {});
580
+ var MerklizedRootPosition = /* @__PURE__ */ ((MerklizedRootPosition4) => {
581
+ MerklizedRootPosition4["Index"] = "index";
582
+ MerklizedRootPosition4["Value"] = "value";
583
+ MerklizedRootPosition4["None"] = "";
584
+ return MerklizedRootPosition4;
585
+ })(MerklizedRootPosition || {});
586
+ var SubjectPosition = /* @__PURE__ */ ((SubjectPosition2) => {
587
+ SubjectPosition2["None"] = "";
588
+ SubjectPosition2["Index"] = "index";
589
+ SubjectPosition2["Value"] = "value";
590
+ return SubjectPosition2;
591
+ })(SubjectPosition || {});
592
+ var RefreshServiceType = /* @__PURE__ */ ((RefreshServiceType2) => {
593
+ RefreshServiceType2["Iden3RefreshService2023"] = "Iden3RefreshService2023";
594
+ return RefreshServiceType2;
595
+ })(RefreshServiceType || {});
596
+ var PaymentRequestDataType = /* @__PURE__ */ ((PaymentRequestDataType2) => {
597
+ PaymentRequestDataType2["Iden3PaymentRequestCryptoV1"] = "Iden3PaymentRequestCryptoV1";
598
+ PaymentRequestDataType2["Iden3PaymentRailsRequestV1"] = "Iden3PaymentRailsRequestV1";
599
+ PaymentRequestDataType2["Iden3PaymentRailsERC20RequestV1"] = "Iden3PaymentRailsERC20RequestV1";
600
+ PaymentRequestDataType2["Iden3PaymentRailsSolanaRequestV1"] = "Iden3PaymentRailsSolanaRequestV1";
601
+ PaymentRequestDataType2["Iden3PaymentRailsSolanaSPLRequestV1"] = "Iden3PaymentRailsSolanaSPLRequestV1";
602
+ return PaymentRequestDataType2;
603
+ })(PaymentRequestDataType || {});
604
+ var PaymentType = /* @__PURE__ */ ((PaymentType2) => {
605
+ PaymentType2["Iden3PaymentCryptoV1"] = "Iden3PaymentCryptoV1";
606
+ PaymentType2["Iden3PaymentRailsV1"] = "Iden3PaymentRailsV1";
607
+ PaymentType2["Iden3PaymentRailsERC20V1"] = "Iden3PaymentRailsERC20V1";
608
+ PaymentType2["Iden3PaymentRailsSolanaV1"] = "Iden3PaymentRailsSolanaV1";
609
+ PaymentType2["Iden3PaymentRailsSolanaSPLV1"] = "Iden3PaymentRailsSolanaSPLV1";
610
+ return PaymentType2;
611
+ })(PaymentType || {});
612
+ var SupportedPaymentProofType = /* @__PURE__ */ ((SupportedPaymentProofType2) => {
613
+ SupportedPaymentProofType2["EthereumEip712Signature2021"] = "EthereumEip712Signature2021";
614
+ SupportedPaymentProofType2["SolanaEd25519Signature2025"] = "SolanaEd25519Signature2025";
615
+ return SupportedPaymentProofType2;
616
+ })(SupportedPaymentProofType || {});
617
+ var SupportedCurrencies = /* @__PURE__ */ ((SupportedCurrencies2) => {
618
+ SupportedCurrencies2["ETH"] = "ETH";
619
+ SupportedCurrencies2["ETH_WEI"] = "ETHWEI";
620
+ SupportedCurrencies2["ETH_GWEI"] = "ETHGWEI";
621
+ SupportedCurrencies2["MATIC"] = "MATIC";
622
+ SupportedCurrencies2["POL"] = "POL";
623
+ return SupportedCurrencies2;
624
+ })(SupportedCurrencies || {});
625
+ var PaymentFeatures = /* @__PURE__ */ ((PaymentFeatures2) => {
626
+ PaymentFeatures2["EIP_2612"] = "EIP-2612";
627
+ return PaymentFeatures2;
628
+ })(PaymentFeatures || {});
629
+ var DisplayMethodType = /* @__PURE__ */ ((DisplayMethodType2) => {
630
+ DisplayMethodType2["Iden3BasicDisplayMethodV1"] = "Iden3BasicDisplayMethodV1";
631
+ return DisplayMethodType2;
632
+ })(DisplayMethodType || {});
633
+ var DEFAULT_CACHE_MAX_SIZE = 1e4;
634
+ var SOLANA_CHAIN_REF = Object.freeze({
635
+ DEVNET: "EtWTRABZaYq6iMfeYKouRu166VU2xqa1",
636
+ TESTNET: "4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z",
637
+ MAINNET: "5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"
638
+ });
639
+
640
+ // src/verifiable/proof.ts
641
+ import { Hex as Hex3, Signature } from "@iden3/js-crypto";
642
+ import { Claim, DID as DID2 } from "@iden3/js-iden3-core";
643
+ var Iden3SparseMerkleTreeProof = class _Iden3SparseMerkleTreeProof {
644
+ type;
645
+ issuerData;
646
+ mtp;
647
+ coreClaim;
517
648
  /**
518
- * generates a baby jub jub key from a seed phrase
519
- * @param {Uint8Array} seed - byte array seed
520
- * @returns kms key identifier
649
+ * Creates an instance of Iden3SparseMerkleTreeProof.
650
+ * @param {object} obj
521
651
  */
522
- async newPrivateKeyFromSeed(seed) {
523
- const newKey = new Uint8Array(32);
524
- newKey.set(Uint8Array.from(seed), 0);
525
- newKey.fill(seed.length, 32, 0);
526
- const privateKey = new PrivateKey(seed);
527
- const publicKey = privateKey.public();
528
- const kmsId = {
529
- type: this.keyType,
530
- id: keyPath(this.keyType, publicKey.hex())
531
- };
532
- await this.keyStore.importKey({ alias: kmsId.id, key: privateKey.hex() });
533
- return kmsId;
652
+ constructor(obj) {
653
+ this.coreClaim = obj.coreClaim;
654
+ this.issuerData = obj.issuerData;
655
+ this.type = "Iden3SparseMerkleTreeProof" /* Iden3SparseMerkleTreeProof */;
656
+ this.mtp = obj.mtp;
534
657
  }
535
658
  /**
536
- * Gets public key by kmsKeyId
537
659
  *
538
- * @param {KmsKeyId} keyId - key identifier
539
- */
540
- async publicKey(keyId) {
541
- const privateKey = await this.privateKey(keyId);
542
- return privateKey.public().hex();
543
- }
544
- /**
545
- * signs prepared payload of size,
546
- * with a key id
547
660
  *
548
- * @param {KmsKeyId} keyId - key identifier
549
- * @param {Uint8Array} data - data to sign (32 bytes)
550
- * @returns Uint8Array signature
661
+ * @returns `json object in serialized presentation`
551
662
  */
552
- async sign(keyId, data) {
553
- if (data.length != 32) {
554
- throw new Error("data to sign is too large");
555
- }
556
- const i = BytesHelper.bytesToInt(data);
557
- if (!checkBigIntInField(i)) {
558
- throw new Error("data to sign is too large");
559
- }
560
- const privateKey = await this.privateKey(keyId);
561
- const signature = privateKey.signPoseidon(i);
562
- return signature.compress();
563
- }
564
- async privateKey(keyId) {
565
- const privateKeyHex = await this.keyStore.get({ alias: keyId.id });
566
- return new PrivateKey(Hex3.decodeString(privateKeyHex));
567
- }
568
- async verify(message, signatureHex, keyId) {
569
- const publicKey = await this.publicKey(keyId);
570
- return PublicKey.newFromCompressed(hexToBytes(publicKey)).verifyPoseidon(
571
- BytesHelper.bytesToInt(message),
572
- Signature.newFromCompressed(hexToBytes(signatureHex))
573
- );
663
+ toJSON() {
664
+ const issuerId = this.issuerData.id;
665
+ return {
666
+ issuerData: {
667
+ id: issuerId.string(),
668
+ state: {
669
+ ...this.issuerData.state,
670
+ rootOfRoots: this.issuerData.state.rootOfRoots.hex(),
671
+ claimsTreeRoot: this.issuerData.state.claimsTreeRoot.hex(),
672
+ revocationTreeRoot: this.issuerData.state.revocationTreeRoot.hex(),
673
+ value: this.issuerData.state.value.hex()
674
+ }
675
+ },
676
+ type: this.type,
677
+ coreClaim: this.coreClaim.hex(),
678
+ mtp: this.mtp.toJSON()
679
+ };
574
680
  }
575
- };
576
-
577
- // src/kms/key-providers/ed25519-provider.ts
578
- import { ed25519 } from "@noble/curves/ed25519";
579
- var Ed25519Provider = class {
580
- /**
581
- * Creates an instance of Ed25519Provider.
582
- * @param {KmsKeyType} keyType - kms key type
583
- * @param {AbstractPrivateKeyStore} keyStore - key store for kms
584
- */
585
- constructor(keyType, _keyStore) {
586
- this.keyType = keyType;
587
- this._keyStore = _keyStore;
588
- }
589
- /**
590
- * get all keys
591
- * @returns list of keys
592
- */
593
- async list() {
594
- const allKeysFromKeyStore = await this._keyStore.list();
595
- return allKeysFromKeyStore.filter((key) => key.alias.startsWith(this.keyType));
596
- }
597
- /**
598
- * generates a ed25519 key from a seed phrase
599
- * @param {Uint8Array} seed - byte array seed
600
- * @returns {Promise<KmsKeyId>} kms key identifier
601
- */
602
- async newPrivateKeyFromSeed(seed) {
603
- if (seed.length !== 32) {
604
- throw new Error("Seed should be 32 bytes");
681
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
682
+ static fromJSON(obj) {
683
+ let mtp;
684
+ if (obj?.mtp?.notEmpties && obj?.mtp?.depth && obj?.mtp?.siblings) {
685
+ const ne = obj?.mtp?.notEmpties;
686
+ const notEmpties = ne instanceof Uint8Array ? ne : new Uint8Array(Object.values(ne));
687
+ const siblingsHashes = obj?.mtp?.siblings.map(
688
+ (h) => Hash2.fromString(JSON.stringify(h))
689
+ );
690
+ const allSiblings = Proof.buildAllSiblings(obj?.mtp?.depth, notEmpties, siblingsHashes);
691
+ let nodeAux = obj.mtp.nodeAux || obj.mtp.node_aux;
692
+ if (nodeAux) {
693
+ nodeAux = {
694
+ key: Hash2.fromString(JSON.stringify(nodeAux.key)),
695
+ value: Hash2.fromString(JSON.stringify(nodeAux.value))
696
+ };
697
+ }
698
+ mtp = new Proof({ existence: obj?.mtp.existence, nodeAux, siblings: allSiblings });
699
+ } else {
700
+ mtp = Proof.fromJSON(obj.mtp);
605
701
  }
606
- const publicKey = ed25519.getPublicKey(seed);
607
- const kmsId = {
608
- type: this.keyType,
609
- id: keyPath(this.keyType, bytesToHex(publicKey))
610
- };
611
- await this._keyStore.importKey({
612
- alias: kmsId.id,
613
- key: bytesToHex(seed)
702
+ return new _Iden3SparseMerkleTreeProof({
703
+ coreClaim: new Claim().fromHex(obj.coreClaim),
704
+ mtp,
705
+ issuerData: {
706
+ id: DID2.parse(obj.issuerData.id),
707
+ state: {
708
+ ...obj.issuerData.state,
709
+ rootOfRoots: Hash2.fromHex(obj.issuerData.state.rootOfRoots),
710
+ claimsTreeRoot: Hash2.fromHex(obj.issuerData.state.claimsTreeRoot),
711
+ revocationTreeRoot: Hash2.fromHex(obj.issuerData.state.revocationTreeRoot),
712
+ value: Hash2.fromHex(obj.issuerData.state.value)
713
+ }
714
+ }
614
715
  });
615
- return kmsId;
616
- }
617
- /**
618
- * Gets public key by kmsKeyId
619
- * @param {KmsKeyId} keyId - key identifier
620
- * @returns {Promise<string>} Public key as a hex string
621
- */
622
- async publicKey(keyId) {
623
- const privateKeyHex = await this.privateKey(keyId);
624
- const publicKey = ed25519.getPublicKey(privateKeyHex);
625
- return bytesToHex(publicKey);
626
- }
627
- /**
628
- * signs prepared payload of size,
629
- * with a key id
630
- * @param {KmsKeyId} keyId - key identifier
631
- * @param {Uint8Array} digest - data to sign (32 bytes)
632
- * @returns {Promise<Uint8Array>} signature
633
- */
634
- async sign(keyId, digest) {
635
- const privateKeyHex = await this.privateKey(keyId);
636
- return ed25519.sign(digest, privateKeyHex);
637
- }
638
- /**
639
- * Verifies a signature for the given message and key identifier.
640
- * @param digest - The message to verify the signature against.
641
- * @param signatureHex - The signature to verify, as a hexadecimal string.
642
- * @param keyId - The key identifier to use for verification.
643
- * @returns A Promise that resolves to a boolean indicating whether the signature is valid.
644
- */
645
- async verify(digest, signatureHex, keyId) {
646
- const publicKeyHex = await this.publicKey(keyId);
647
- return ed25519.verify(signatureHex, digest, publicKeyHex);
648
- }
649
- /**
650
- * Retrieves the private key for a given keyId from the key store.
651
- * @param {KmsKeyId} keyId - The identifier of the key to retrieve.
652
- * @returns {Promise<string>} The private key associated with the keyId.
653
- */
654
- async privateKey(keyId) {
655
- return this._keyStore.get({ alias: keyId.id });
656
716
  }
657
717
  };
658
-
659
- // src/kms/key-providers/secp256k1-provider.ts
660
- import { secp256k1 } from "@noble/curves/secp256k1";
661
- import { sha256 } from "@iden3/js-crypto";
662
- import { ES256KSigner, hexToBytes as hexToBytes2 } from "did-jwt";
663
- var Sec256k1Provider = class {
664
- /**
665
- * key type that is handled by BJJ Provider
666
- * @type {KmsKeyType}
667
- */
668
- keyType;
669
- _keyStore;
670
- /**
671
- * Creates an instance of BjjProvider.
672
- * @param {KmsKeyType} keyType - kms key type
673
- * @param {AbstractPrivateKeyStore} keyStore - key store for kms
674
- */
675
- constructor(keyType, keyStore) {
676
- if (keyType !== "Secp256k1" /* Secp256k1 */) {
677
- throw new Error("Key type must be Secp256k1");
678
- }
679
- this.keyType = keyType;
680
- this._keyStore = keyStore;
681
- }
682
- /**
683
- * get all keys
684
- * @returns list of keys
685
- */
686
- async list() {
687
- const allKeysFromKeyStore = await this._keyStore.list();
688
- return allKeysFromKeyStore.filter((key) => key.alias.startsWith(this.keyType));
689
- }
690
- /**
691
- * generates a baby jub jub key from a seed phrase
692
- * @param {Uint8Array} seed - byte array seed
693
- * @returns kms key identifier
694
- */
695
- async newPrivateKeyFromSeed(seed) {
696
- if (seed.length !== 32) {
697
- throw new Error("Seed should be 32 bytes");
698
- }
699
- const publicKey = secp256k1.getPublicKey(seed);
700
- const kmsId = {
701
- type: this.keyType,
702
- id: keyPath(this.keyType, bytesToHex(publicKey))
703
- };
704
- await this._keyStore.importKey({
705
- alias: kmsId.id,
706
- key: bytesToHex(seed).padStart(64, "0")
707
- });
708
- return kmsId;
718
+ var BJJSignatureProof2021 = class _BJJSignatureProof2021 {
719
+ type;
720
+ issuerData;
721
+ signature;
722
+ coreClaim;
723
+ constructor(obj) {
724
+ this.type = "BJJSignature2021" /* BJJSignature */;
725
+ this.issuerData = obj.issuerData;
726
+ this.coreClaim = obj.coreClaim;
727
+ this.signature = obj.signature;
709
728
  }
710
729
  /**
711
- * Gets public key by kmsKeyId
730
+ * toJSON is a method to serialize BJJSignatureProof2021 to json
712
731
  *
713
- * @param {KmsKeyId} keyId - key identifier
714
- */
715
- async publicKey(keyId) {
716
- const privateKeyHex = await this.privateKey(keyId);
717
- const publicKey = secp256k1.getPublicKey(privateKeyHex, false);
718
- return bytesToHex(publicKey);
719
- }
720
- /**
721
- * Signs the given data using the private key associated with the specified key identifier.
722
- * @param keyId - The key identifier to use for signing.
723
- * @param data - The data to sign.
724
- * @param opts - Signing options, such as the algorithm to use.
725
- * @returns A Promise that resolves to the signature as a Uint8Array.
732
+ * @returns `json object in serialized presentation`
726
733
  */
727
- async sign(keyId, data, opts = { alg: "ES256K" }) {
728
- const privateKeyHex = await this.privateKey(keyId);
729
- const signatureBase64 = await ES256KSigner(
730
- hexToBytes2(privateKeyHex),
731
- opts.alg === "ES256K-R"
732
- )(data);
733
- if (typeof signatureBase64 !== "string") {
734
- throw new Error("signatureBase64 must be a string");
735
- }
736
- return base64UrlToBytes(signatureBase64);
734
+ toJSON() {
735
+ return {
736
+ issuerData: {
737
+ id: this.issuerData.id.string(),
738
+ state: {
739
+ ...this.issuerData.state,
740
+ rootOfRoots: this.issuerData.state.rootOfRoots.hex(),
741
+ claimsTreeRoot: this.issuerData.state.claimsTreeRoot.hex(),
742
+ revocationTreeRoot: this.issuerData.state.revocationTreeRoot.hex(),
743
+ value: this.issuerData.state.value.hex()
744
+ },
745
+ mtp: this.issuerData.mtp.toJSON(),
746
+ authCoreClaim: this.issuerData.authCoreClaim.hex(),
747
+ credentialStatus: this.issuerData.credentialStatus
748
+ },
749
+ type: this.type,
750
+ coreClaim: this.coreClaim.hex(),
751
+ signature: Hex3.encodeString(this.signature.compress())
752
+ };
737
753
  }
738
754
  /**
739
- * Verifies a signature for the given message and key identifier.
740
- * @param message - The message to verify the signature against.
741
- * @param signatureHex - The signature to verify, as a hexadecimal string.
742
- * @param keyId - The key identifier to use for verification.
743
- * @returns A Promise that resolves to a boolean indicating whether the signature is valid.
755
+ * fromJSON is a method to deserialize BJJSignatureProof2021 from json
756
+ * @param obj
744
757
  */
745
- async verify(message, signatureHex, keyId) {
746
- const publicKeyHex = await this.publicKey(keyId);
747
- return secp256k1.verify(signatureHex, sha256(message), publicKeyHex);
748
- }
749
- async privateKey(keyId) {
750
- return this._keyStore.get({ alias: keyId.id });
758
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
759
+ static fromJSON(obj) {
760
+ return new _BJJSignatureProof2021({
761
+ issuerData: {
762
+ id: DID2.parse(obj.issuerData.id),
763
+ mtp: Proof.fromJSON(obj.issuerData.mtp),
764
+ state: {
765
+ ...obj.issuerData.state,
766
+ rootOfRoots: Hash2.fromHex(obj.issuerData.state.rootOfRoots),
767
+ claimsTreeRoot: Hash2.fromHex(obj.issuerData.state.claimsTreeRoot),
768
+ revocationTreeRoot: Hash2.fromHex(obj.issuerData.state.revocationTreeRoot),
769
+ value: Hash2.fromHex(obj.issuerData.state.value)
770
+ },
771
+ credentialStatus: obj.issuerData.credentialStatus,
772
+ authCoreClaim: new Claim().fromHex(obj.issuerData.authCoreClaim)
773
+ },
774
+ coreClaim: new Claim().fromHex(obj.coreClaim),
775
+ signature: Signature.newFromCompressed(
776
+ Uint8Array.from(Hex3.decodeString(obj.signature)).slice(0, 64)
777
+ )
778
+ });
751
779
  }
752
780
  };
753
781
 
754
- // src/identity/identity-wallet.ts
782
+ // src/verifiable/credential.ts
755
783
  import {
756
- Blockchain,
757
- buildDIDType as buildDIDType3,
758
- BytesHelper as BytesHelper9,
759
- Claim as Claim9,
760
- ClaimOptions as ClaimOptions2,
761
- DID as DID27,
762
- DidMethod,
763
- getUnixTimestamp as getUnixTimestamp8,
764
- Id as Id19,
765
- NetworkId,
766
- SchemaHash as SchemaHash7
784
+ Claim as Claim2,
785
+ DID as DID4,
786
+ MerklizedRootPosition as MerklizedRootPositionCore,
787
+ IdPosition,
788
+ ClaimOptions,
789
+ getChainId
767
790
  } from "@iden3/js-iden3-core";
768
- import {
769
- poseidon as poseidon4,
770
- PublicKey as PublicKey4,
771
- sha256 as sha2562,
772
- Signature as Signature3,
773
- Hex as Hex6,
774
- getRandomBytes as getRandomBytes2,
775
- Poseidon
776
- } from "@iden3/js-crypto";
777
- import { hashElems as hashElems2, ZERO_HASH as ZERO_HASH6 } from "@iden3/js-merkletree";
778
-
779
- // src/identity/common.ts
780
- import { DID as DID5, Id as Id2, IdPosition as IdPosition2, MerklizedRootPosition as MerklizedRootPosition2 } from "@iden3/js-iden3-core";
781
-
782
- // src/verifiable/proof.ts
783
- import { Hash as Hash2, Proof } from "@iden3/js-merkletree";
784
-
785
- // src/verifiable/constants.ts
786
- var VerifiableConstants = Object.freeze({
787
- ERRORS: {
788
- FiELD_IS_EMPTY: "fieldPath is empty",
789
- CONTEXT_TYPE_IS_EMPTY: "ctxType is empty",
790
- // ErrStateNotFound issuer state is genesis state.
791
- IDENTITY_DOES_NOT_EXIST: "Identity does not exist",
792
- IDENTITY_DOES_NOT_EXIST_CUSTOM_ERROR: "IdentityDoesNotExist",
793
- NO_AUTH_CRED_FOUND: "no auth credentials found",
794
- STATE_DOES_NOT_EXIST: "State does not exist",
795
- STATE_DOES_NOT_EXIST_CUSTOM_ERROR: "StateDoesNotExist",
796
- ROOT_DOES_NOT_EXIST: "Root does not exist",
797
- ROOT_DOES_NOT_EXIST_CUSTOM_ERROR: "RootDoesNotExist",
798
- // identity wallet
799
- ID_WALLET_NO_CREDENTIAL_SATISFIED_QUERY: "no credential satisfied query",
800
- ID_WALLET_SIGNER_IS_REQUIRED: "Ethereum signer is required to create Ethereum identities in order to transit state",
801
- ID_WALLET_PROVER_IS_REQUIRED: "prover is required to generate proofs for non ethereum identities",
802
- ID_WALLET_CORE_CLAIM_REQUIRED_IN_SIG_PROOF: "credential must have coreClaim representation in the signature proof",
803
- ID_WALLET_CORE_CLAIM_REQUIRED_IN_ANY_PROOF: "credential must have coreClaim representation in proofs",
804
- ID_WALLET_CORE_CLAIM_MISMATCH: "core claim representations is set in both proofs but they are not equal",
805
- ID_WALLET_CORE_CLAIM_IS_NOT_SET: "core claim is not set in credential proofs",
806
- ID_WALLET_PROFILE_OR_IDENTITY_NOT_FOUND: "profile or identity not found",
807
- ID_WALLET_PROFILE_ALREADY_EXISTS: "profile with given nonce or verifier already exists",
808
- ID_WALLET_PROFILE_ALREADY_EXISTS_VERIFIER_TAGS: "profile with given verifier and tags already exists",
809
- ID_WALLET_ISSUER_AUTH_BJJ_CRED_MUST_HAVE_ANY_PROOF: "issuer auth credential must have proof",
810
- ID_WALLET_ISSUER_AUTH_BJJ_CRED_MUST_HAVE_MTP_PROOF: "mtp is required for auth bjj key to issue new credentials",
811
- // proof service
812
- PROOF_SERVICE_NO_CREDENTIAL_FOR_IDENTITY_OR_PROFILE: "no credentials belong to did or its profiles",
813
- PROOF_SERVICE_NO_CREDENTIAL_FOR_QUERY: "credential not found for query",
814
- PROOF_SERVICE_PROFILE_GENESIS_DID_MISMATCH: "subject and auth profiles are not derived from the same did",
815
- PROOF_SERVICE_NO_QUERIES_IN_ZKP_REQUEST: "no queries in zkp request",
816
- // credential wallet
817
- CREDENTIAL_WALLET_ALL_CREDENTIALS_ARE_REVOKED: "all claims are revoked"
818
- },
819
- CREDENTIAL_TYPE: {
820
- // VerifiableCredential is a W3C verifiable credential type
821
- W3C_VERIFIABLE_CREDENTIAL: "VerifiableCredential",
822
- W3C_VERIFIABLE_PRESENTATION: "VerifiablePresentation"
823
- },
824
- CREDENTIAL_SUBJECT_PATH: "https://www.w3.org/2018/credentials#credentialSubject",
825
- JSONLD_SCHEMA: {
826
- // JSONLDSchemaIden3Credential is a schema for context with Iden3Credential type
827
- IDEN3_CREDENTIAL: "https://schema.iden3.io/core/jsonld/iden3proofs.jsonld",
828
- // JSONLDSchemaIden3DisplayMethod is a schema for context with Iden3BasicDisplayMethodV1 type
829
- IDEN3_DISPLAY_METHOD: "https://schema.iden3.io/core/jsonld/displayMethod.jsonld",
830
- // JSONLDSchemaW3CCredential2018 is a schema for context with VerifiableCredential type
831
- W3C_CREDENTIAL_2018: "https://www.w3.org/2018/credentials/v1",
832
- 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"}}}`,
833
- IDEN3_PROOFS_DEFINITION_DOCUMENT: `{"@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","Iden3SparseMerkleTreeProof":{"@id":"https://schema.iden3.io/core/jsonld/iden3proofs.jsonld#Iden3SparseMerkleTreeProof","@context":{"@version":1.1,"@protected":true,"@propagate":true,"id":"@id","type":"@type","sec":"https://w3id.org/security#","@vocab":"https://schema.iden3.io/core/vocab/Iden3SparseMerkleTreeProof.md#","xsd":"http://www.w3.org/2001/XMLSchema#","mtp":{"@id":"https://schema.iden3.io/core/jsonld/iden3proofs.jsonld#SparseMerkleTreeProof","@type":"SparseMerkleTreeProof"},"coreClaim":{"@id":"coreClaim","@type":"xsd:string"},"issuerData":{"@id":"issuerData","@context":{"@version":1.1,"state":{"@id":"state","@context":{"txId":{"@id":"txId","@type":"xsd:string"},"blockTimestamp":{"@id":"blockTimestamp","@type":"xsd:integer"},"blockNumber":{"@id":"blockNumber","@type":"xsd:integer"},"rootOfRoots":{"@id":"rootOfRoots","@type":"xsd:string"},"claimsTreeRoot":{"@id":"claimsTreeRoot","@type":"xsd:string"},"revocationTreeRoot":{"@id":"revocationTreeRoot","@type":"xsd:string"},"authCoreClaim":{"@id":"authCoreClaim","@type":"xsd:string"},"value":{"@id":"value","@type":"xsd:string"}}}}}}},"SparseMerkleTreeProof":{"@id":"https://schema.iden3.io/core/jsonld/iden3proofs.jsonld#SparseMerkleTreeProof","@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","sec":"https://w3id.org/security#","smt-proof-vocab":"https://schema.iden3.io/core/vocab/SparseMerkleTreeProof.md#","xsd":"http://www.w3.org/2001/XMLSchema#","existence":{"@id":"smt-proof-vocab:existence","@type":"xsd:boolean"},"revocationNonce":{"@id":"smt-proof-vocab:revocationNonce","@type":"xsd:number"},"siblings":{"@id":"smt-proof-vocab:siblings","@container":"@list"},"nodeAux":"@nest","hIndex":{"@id":"smt-proof-vocab:hIndex","@nest":"nodeAux","@type":"xsd:string"},"hValue":{"@id":"smt-proof-vocab:hValue","@nest":"nodeAux","@type":"xsd:string"}}},"BJJSignature2021":{"@id":"https://schema.iden3.io/core/jsonld/iden3proofs.jsonld#BJJSignature2021","@context":{"@version":1.1,"@protected":true,"id":"@id","@vocab":"https://schema.iden3.io/core/vocab/BJJSignature2021.md#","@propagate":true,"type":"@type","xsd":"http://www.w3.org/2001/XMLSchema#","coreClaim":{"@id":"coreClaim","@type":"xsd:string"},"issuerData":{"@id":"issuerData","@context":{"@version":1.1,"authCoreClaim":{"@id":"authCoreClaim","@type":"xsd:string"},"mtp":{"@id":"https://schema.iden3.io/core/jsonld/iden3proofs.jsonld#SparseMerkleTreeProof","@type":"SparseMerkleTreeProof"},"revocationStatus":{"@id":"revocationStatus","@type":"@id"},"state":{"@id":"state","@context":{"@version":1.1,"rootOfRoots":{"@id":"rootOfRoots","@type":"xsd:string"},"claimsTreeRoot":{"@id":"claimsTreeRoot","@type":"xsd:string"},"revocationTreeRoot":{"@id":"revocationTreeRoot","@type":"xsd:string"},"value":{"@id":"value","@type":"xsd:string"}}}}},"signature":{"@id":"signature","@type":"https://w3id.org/security#multibase"},"domain":"https://w3id.org/security#domain","creator":{"@id":"creator","@type":"http://www.w3.org/2001/XMLSchema#string"},"challenge":"https://w3id.org/security#challenge","created":{"@id":"created","@type":"http://www.w3.org/2001/XMLSchema#dateTime"},"expires":{"@id":"https://w3id.org/security#expiration","@type":"http://www.w3.org/2001/XMLSchema#dateTime"},"nonce":"https://w3id.org/security#nonce","proofPurpose":{"@id":"https://w3id.org/security#proofPurpose","@type":"@vocab","@context":{"@protected":true,"id":"@id","type":"@type","assertionMethod":{"@id":"https://w3id.org/security#assertionMethod","@type":"@id","@container":"@set"},"authentication":{"@id":"https://w3id.org/security#authenticationMethod","@type":"@id","@container":"@set"},"capabilityInvocation":{"@id":"https://w3id.org/security#capabilityInvocationMethod","@type":"@id","@container":"@set"},"capabilityDelegation":{"@id":"https://w3id.org/security#capabilityDelegationMethod","@type":"@id","@container":"@set"},"keyAgreement":{"@id":"https://w3id.org/security#keyAgreementMethod","@type":"@id","@container":"@set"}}},"proofValue":{"@id":"https://w3id.org/security#proofValue","@type":"https://w3id.org/security#multibase"},"verificationMethod":{"@id":"https://w3id.org/security#verificationMethod","@type":"@id"}}},"Iden3ReverseSparseMerkleTreeProof":{"@id":"https://schema.iden3.io/core/jsonld/iden3proofs.jsonld#Iden3ReverseSparseMerkleTreeProof","@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","iden3-reverse-sparse-merkle-tree-proof-vocab":"https://schema.iden3.io/core/vocab/Iden3ReverseSparseMerkleTreeProof.md#","xsd":"http://www.w3.org/2001/XMLSchema#","revocationNonce":{"@id":"iden3-reverse-sparse-merkle-tree-proof-vocab:revocationNonce","@type":"xsd:integer"},"statusIssuer":{"@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type"},"@id":"iden3-reverse-sparse-merkle-tree-proof-vocab:statusIssuer"}}},"Iden3commRevocationStatusV1.0":{"@id":"https://schema.iden3.io/core/jsonld/iden3proofs.jsonld#Iden3commRevocationStatusV1.0","@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","iden3-comm-revocation-statusV1.0-vocab":"https://schema.iden3.io/core/vocab/Iden3commRevocationStatusV1.0.md#","xsd":"http://www.w3.org/2001/XMLSchema#","revocationNonce":{"@id":"iden3-comm-revocation-statusV1.0-vocab:revocationNonce","@type":"xsd:integer"},"statusIssuer":{"@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type"},"@id":"iden3-comm-revocation-statusV1.0-vocab:statusIssuer"}}},"Iden3OnchainSparseMerkleTreeProof2023":{"@id":"https://schema.iden3.io/core/jsonld/iden3proofs.jsonld#Iden3OnchainSparseMerkleTreeProof2023","@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","iden3-onchain-sparse-merkle-tree-proof-2023-vocab":"https://schema.iden3.io/core/vocab/Iden3OnchainSparseMerkleTreeProof2023.md#","xsd":"http://www.w3.org/2001/XMLSchema#","revocationNonce":{"@id":"iden3-onchain-sparse-merkle-tree-proof-2023-vocab:revocationNonce","@type":"xsd:integer"},"statusIssuer":{"@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type"},"@id":"iden3-onchain-sparse-merkle-tree-proof-2023-vocab:statusIssuer"}}},"JsonSchema2023":"https://www.w3.org/ns/credentials#JsonSchema2023","Iden3RefreshService2023":"https://schema.iden3.io/core/jsonld/iden3proofs.jsonld#Iden3RefreshService2023"}}`,
834
- IDEN3_DISPLAY_METHOD_DEFINITION_DOCUMENT: `{"@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","displayMethod":{"@id":"https://schema.iden3.io/core/vocab/displayMethod.md#displayMethod","@type":"@id","@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","Iden3BasicDisplayMethodV1":"https://schema.iden3.io/core/vocab/displayMethod.md#Iden3BasicDisplayMethodV1"}}}}`
835
- },
836
- // JsonSchema2023 JSON schema for verification of Iden3Credential
837
- JSON_SCHEMA_VALIDATOR: "JsonSchema2023",
838
- SERVICE_TYPE: {
839
- // Iden3CommServiceType is service type for iden3comm protocol
840
- IDEN3_COMM: "iden3-communication",
841
- // PushNotificationServiceType is service type for delivering push notifications to identity
842
- PUSH_NOTIFICATION: "push-notification"
843
- },
844
- AUTH: {
845
- AUTH_BJJ_CREDENTIAL_HASH: "013fd3f623559d850fb5b02ff012d0e2",
846
- AUTH_BJJ_CREDENTIAL_SCHEMA_JSON_URL: "https://schema.iden3.io/core/json/auth.json",
847
- AUTH_BJJ_CREDENTIAL_SCHEMA_JSONLD_URL: "https://schema.iden3.io/core/jsonld/auth.jsonld",
848
- AUTH_BJJ_CREDENTIAL_TYPE: "AuthBJJCredential",
849
- AUTH_BJJ_CREDENTIAL_SCHEMA_JSON: `{"$schema":"http://json-schema.org/draft-07/schema#","$metadata":{"uris":{"jsonLdContext":"https://schema.iden3.io/core/jsonld/auth.jsonld","jsonSchema":"https://schema.iden3.io/core/json/auth.json"},"serialization":{"indexDataSlotA":"x","indexDataSlotB":"y"}},"type":"object","required":["@context","id","type","issuanceDate","credentialSubject","credentialSchema","credentialStatus","issuer"],"properties":{"@context":{"type":["string","array","object"]},"id":{"type":"string"},"type":{"type":["string","array"],"items":{"type":"string"}},"issuer":{"type":["string","object"],"format":"uri","required":["id"],"properties":{"id":{"type":"string","format":"uri"}}},"issuanceDate":{"type":"string","format":"date-time"},"expirationDate":{"type":"string","format":"date-time"},"credentialSchema":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string","format":"uri"},"type":{"type":"string"}}},"credentialSubject":{"type":"object","required":["x","y"],"properties":{"id":{"title":"Credential Subject ID","type":"string","format":"uri"},"x":{"type":"string"},"y":{"type":"string"}}}}}`,
850
- AUTH_BJJ_CREDENTIAL_SCHEMA_JSONLD: `{"@context":[{"@version":1.1,"@protected":true,"id":"@id","type":"@type","AuthBJJCredential":{"@id":"https://schema.iden3.io/core/jsonld/auth.jsonld#AuthBJJCredential","@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","iden3_serialization":"iden3:v1:slotIndexA=x&slotIndexB=y","xsd":"http://www.w3.org/2001/XMLSchema#","auth-vocab":"https://schema.iden3.io/core/vocab/auth.md#","x":{"@id":"auth-vocab:x","@type":"xsd:positiveInteger"},"y":{"@id":"auth-vocab:y","@type":"xsd:positiveInteger"}}},"Iden3StateInfo2023":{"@id":"https://schema.iden3.io/core/jsonld/auth.jsonld#Iden3StateInfo2023","@context":{"@version":1.1,"@protected":true,"id":"@id","type":"@type","xsd":"http://www.w3.org/2001/XMLSchema#","@vocab":"https://schema.iden3.io/core/vocab/state-info.md#","@propagate":true,"stateContractAddress":{"@id":"stateContractAddress","@type":"xsd:string"},"published":{"@id":"published","@type":"xsd:boolean"},"info":{"@id":"info","@type":"@id","@context":{"@protected":true,"id":{"@id":"id","@type":"xsd:string"},"state":{"@id":"state","@type":"xsd:string"},"replacedByState":{"@id":"replacedByState","@type":"xsd:string"},"createdAtTimestamp":{"@id":"createdAtTimestamp","@type":"xsd:string"},"replacedAtTimestamp":{"@id":"replacedAtTimestamp","@type":"xsd:string"},"createdAtBlock":{"@id":"createdAtBlock","@type":"xsd:string"},"replacedAtBlock":{"@id":"replacedAtBlock","@type":"xsd:string"}}},"global":{"@id":"global","@type":"@id","@context":{"@protected":true,"sec":"https://w3id.org/security#","root":{"@id":"root","@type":"xsd:string"},"replacedByRoot":{"@id":"replacedByRoot","@type":"xsd:string"},"createdAtTimestamp":{"@id":"createdAtTimestamp","@type":"xsd:string"},"replacedAtTimestamp":{"@id":"replacedAtTimestamp","@type":"xsd:string"},"createdAtBlock":{"@id":"createdAtBlock","@type":"xsd:string"},"replacedAtBlock":{"@id":"replacedAtBlock","@type":"xsd:string"},"proof":{"@id":"sec:proof","@type":"@id","@container":"@graph"}}}}}}]}`
851
- }
852
- });
853
- var ProofType = /* @__PURE__ */ ((ProofType2) => {
854
- ProofType2["BJJSignature"] = "BJJSignature2021";
855
- ProofType2["Iden3SparseMerkleTreeProof"] = "Iden3SparseMerkleTreeProof";
856
- return ProofType2;
857
- })(ProofType || {});
858
- var CredentialStatusType = /* @__PURE__ */ ((CredentialStatusType2) => {
859
- CredentialStatusType2["SparseMerkleTreeProof"] = "SparseMerkleTreeProof";
860
- CredentialStatusType2["Iden3ReverseSparseMerkleTreeProof"] = "Iden3ReverseSparseMerkleTreeProof";
861
- CredentialStatusType2["Iden3commRevocationStatusV1"] = "Iden3commRevocationStatusV1.0";
862
- CredentialStatusType2["Iden3OnchainSparseMerkleTreeProof2023"] = "Iden3OnchainSparseMerkleTreeProof2023";
863
- return CredentialStatusType2;
864
- })(CredentialStatusType || {});
865
- var ProofPurpose = /* @__PURE__ */ ((ProofPurpose2) => {
866
- ProofPurpose2["Authentication"] = "Authentication";
867
- return ProofPurpose2;
868
- })(ProofPurpose || {});
869
- var MerklizedRootPosition = /* @__PURE__ */ ((MerklizedRootPosition4) => {
870
- MerklizedRootPosition4["Index"] = "index";
871
- MerklizedRootPosition4["Value"] = "value";
872
- MerklizedRootPosition4["None"] = "";
873
- return MerklizedRootPosition4;
874
- })(MerklizedRootPosition || {});
875
- var SubjectPosition = /* @__PURE__ */ ((SubjectPosition2) => {
876
- SubjectPosition2["None"] = "";
877
- SubjectPosition2["Index"] = "index";
878
- SubjectPosition2["Value"] = "value";
879
- return SubjectPosition2;
880
- })(SubjectPosition || {});
881
- var RefreshServiceType = /* @__PURE__ */ ((RefreshServiceType2) => {
882
- RefreshServiceType2["Iden3RefreshService2023"] = "Iden3RefreshService2023";
883
- return RefreshServiceType2;
884
- })(RefreshServiceType || {});
885
- var PaymentRequestDataType = /* @__PURE__ */ ((PaymentRequestDataType2) => {
886
- PaymentRequestDataType2["Iden3PaymentRequestCryptoV1"] = "Iden3PaymentRequestCryptoV1";
887
- PaymentRequestDataType2["Iden3PaymentRailsRequestV1"] = "Iden3PaymentRailsRequestV1";
888
- PaymentRequestDataType2["Iden3PaymentRailsERC20RequestV1"] = "Iden3PaymentRailsERC20RequestV1";
889
- return PaymentRequestDataType2;
890
- })(PaymentRequestDataType || {});
891
- var PaymentType = /* @__PURE__ */ ((PaymentType2) => {
892
- PaymentType2["Iden3PaymentCryptoV1"] = "Iden3PaymentCryptoV1";
893
- PaymentType2["Iden3PaymentRailsV1"] = "Iden3PaymentRailsV1";
894
- PaymentType2["Iden3PaymentRailsERC20V1"] = "Iden3PaymentRailsERC20V1";
895
- return PaymentType2;
896
- })(PaymentType || {});
897
- var SupportedPaymentProofType = /* @__PURE__ */ ((SupportedPaymentProofType2) => {
898
- SupportedPaymentProofType2["EthereumEip712Signature2021"] = "EthereumEip712Signature2021";
899
- return SupportedPaymentProofType2;
900
- })(SupportedPaymentProofType || {});
901
- var SupportedCurrencies = /* @__PURE__ */ ((SupportedCurrencies2) => {
902
- SupportedCurrencies2["ETH"] = "ETH";
903
- SupportedCurrencies2["ETH_WEI"] = "ETHWEI";
904
- SupportedCurrencies2["ETH_GWEI"] = "ETHGWEI";
905
- SupportedCurrencies2["MATIC"] = "MATIC";
906
- SupportedCurrencies2["POL"] = "POL";
907
- return SupportedCurrencies2;
908
- })(SupportedCurrencies || {});
909
- var PaymentFeatures = /* @__PURE__ */ ((PaymentFeatures2) => {
910
- PaymentFeatures2["EIP_2612"] = "EIP-2612";
911
- return PaymentFeatures2;
912
- })(PaymentFeatures || {});
913
- var DisplayMethodType = /* @__PURE__ */ ((DisplayMethodType2) => {
914
- DisplayMethodType2["Iden3BasicDisplayMethodV1"] = "Iden3BasicDisplayMethodV1";
915
- return DisplayMethodType2;
916
- })(DisplayMethodType || {});
917
- var DEFAULT_CACHE_MAX_SIZE = 1e4;
791
+ import { Hash as Hash3, rootFromProof, verifyProof } from "@iden3/js-merkletree";
792
+ import { Merklizer as Merklizer2 } from "@iden3/js-jsonld-merklization";
793
+ import { PublicKey as PublicKey2, poseidon } from "@iden3/js-crypto";
918
794
 
919
- // src/verifiable/proof.ts
920
- import { Hex as Hex4, Signature as Signature2 } from "@iden3/js-crypto";
921
- import { Claim, DID as DID2 } from "@iden3/js-iden3-core";
922
- var Iden3SparseMerkleTreeProof = class _Iden3SparseMerkleTreeProof {
923
- type;
924
- issuerData;
925
- mtp;
926
- coreClaim;
927
- /**
928
- * Creates an instance of Iden3SparseMerkleTreeProof.
929
- * @param {object} obj
930
- */
931
- constructor(obj) {
932
- this.coreClaim = obj.coreClaim;
933
- this.issuerData = obj.issuerData;
934
- this.type = "Iden3SparseMerkleTreeProof" /* Iden3SparseMerkleTreeProof */;
935
- this.mtp = obj.mtp;
936
- }
937
- /**
938
- *
939
- *
940
- * @returns `json object in serialized presentation`
941
- */
942
- toJSON() {
943
- const issuerId = this.issuerData.id;
944
- return {
945
- issuerData: {
946
- id: issuerId.string(),
947
- state: {
948
- ...this.issuerData.state,
949
- rootOfRoots: this.issuerData.state.rootOfRoots.hex(),
950
- claimsTreeRoot: this.issuerData.state.claimsTreeRoot.hex(),
951
- revocationTreeRoot: this.issuerData.state.revocationTreeRoot.hex(),
952
- value: this.issuerData.state.value.hex()
953
- }
954
- },
955
- type: this.type,
956
- coreClaim: this.coreClaim.hex(),
957
- mtp: this.mtp.toJSON()
958
- };
795
+ // src/credentials/utils.ts
796
+ import { DID as DID3 } from "@iden3/js-iden3-core";
797
+ import { PublicKey } from "@iden3/js-crypto";
798
+ var getUserDIDFromCredential = (issuerDID, credential) => {
799
+ if (!credential.credentialSubject.id) {
800
+ return issuerDID;
959
801
  }
960
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
961
- static fromJSON(obj) {
962
- let mtp;
963
- if (obj?.mtp?.notEmpties && obj?.mtp?.depth && obj?.mtp?.siblings) {
964
- const ne = obj?.mtp?.notEmpties;
965
- const notEmpties = ne instanceof Uint8Array ? ne : new Uint8Array(Object.values(ne));
966
- const siblingsHashes = obj?.mtp?.siblings.map(
967
- (h) => Hash2.fromString(JSON.stringify(h))
968
- );
969
- const allSiblings = Proof.buildAllSiblings(obj?.mtp?.depth, notEmpties, siblingsHashes);
970
- let nodeAux = obj.mtp.nodeAux || obj.mtp.node_aux;
971
- if (nodeAux) {
972
- nodeAux = {
973
- key: Hash2.fromString(JSON.stringify(nodeAux.key)),
974
- value: Hash2.fromString(JSON.stringify(nodeAux.value))
975
- };
976
- }
977
- mtp = new Proof({ existence: obj?.mtp.existence, nodeAux, siblings: allSiblings });
978
- } else {
979
- mtp = Proof.fromJSON(obj.mtp);
980
- }
981
- return new _Iden3SparseMerkleTreeProof({
982
- coreClaim: new Claim().fromHex(obj.coreClaim),
983
- mtp,
984
- issuerData: {
985
- id: DID2.parse(obj.issuerData.id),
986
- state: {
987
- ...obj.issuerData.state,
988
- rootOfRoots: Hash2.fromHex(obj.issuerData.state.rootOfRoots),
989
- claimsTreeRoot: Hash2.fromHex(obj.issuerData.state.claimsTreeRoot),
990
- revocationTreeRoot: Hash2.fromHex(obj.issuerData.state.revocationTreeRoot),
991
- value: Hash2.fromHex(obj.issuerData.state.value)
992
- }
993
- }
994
- });
802
+ if (typeof credential.credentialSubject.id !== "string") {
803
+ throw new Error("credential subject `id` is not a string");
995
804
  }
805
+ return DID3.parse(credential.credentialSubject.id);
996
806
  };
997
- var BJJSignatureProof2021 = class _BJJSignatureProof2021 {
998
- type;
999
- issuerData;
1000
- signature;
1001
- coreClaim;
1002
- constructor(obj) {
1003
- this.type = "BJJSignature2021" /* BJJSignature */;
1004
- this.issuerData = obj.issuerData;
1005
- this.coreClaim = obj.coreClaim;
1006
- this.signature = obj.signature;
1007
- }
1008
- /**
1009
- * toJSON is a method to serialize BJJSignatureProof2021 to json
1010
- *
1011
- * @returns `json object in serialized presentation`
1012
- */
1013
- toJSON() {
1014
- return {
1015
- issuerData: {
1016
- id: this.issuerData.id.string(),
1017
- state: {
1018
- ...this.issuerData.state,
1019
- rootOfRoots: this.issuerData.state.rootOfRoots.hex(),
1020
- claimsTreeRoot: this.issuerData.state.claimsTreeRoot.hex(),
1021
- revocationTreeRoot: this.issuerData.state.revocationTreeRoot.hex(),
1022
- value: this.issuerData.state.value.hex()
1023
- },
1024
- mtp: this.issuerData.mtp.toJSON(),
1025
- authCoreClaim: this.issuerData.authCoreClaim.hex(),
1026
- credentialStatus: this.issuerData.credentialStatus
1027
- },
1028
- type: this.type,
1029
- coreClaim: this.coreClaim.hex(),
1030
- signature: Hex4.encodeString(this.signature.compress())
1031
- };
1032
- }
1033
- /**
1034
- * fromJSON is a method to deserialize BJJSignatureProof2021 from json
1035
- * @param obj
1036
- */
1037
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1038
- static fromJSON(obj) {
1039
- return new _BJJSignatureProof2021({
1040
- issuerData: {
1041
- id: DID2.parse(obj.issuerData.id),
1042
- mtp: Proof.fromJSON(obj.issuerData.mtp),
1043
- state: {
1044
- ...obj.issuerData.state,
1045
- rootOfRoots: Hash2.fromHex(obj.issuerData.state.rootOfRoots),
1046
- claimsTreeRoot: Hash2.fromHex(obj.issuerData.state.claimsTreeRoot),
1047
- revocationTreeRoot: Hash2.fromHex(obj.issuerData.state.revocationTreeRoot),
1048
- value: Hash2.fromHex(obj.issuerData.state.value)
1049
- },
1050
- credentialStatus: obj.issuerData.credentialStatus,
1051
- authCoreClaim: new Claim().fromHex(obj.issuerData.authCoreClaim)
1052
- },
1053
- coreClaim: new Claim().fromHex(obj.coreClaim),
1054
- signature: Signature2.newFromCompressed(
1055
- Uint8Array.from(Hex4.decodeString(obj.signature)).slice(0, 64)
1056
- )
1057
- });
1058
- }
1059
- };
1060
-
1061
- // src/verifiable/credential.ts
1062
- import {
1063
- Claim as Claim2,
1064
- DID as DID4,
1065
- MerklizedRootPosition as MerklizedRootPositionCore,
1066
- IdPosition,
1067
- ClaimOptions,
1068
- getChainId
1069
- } from "@iden3/js-iden3-core";
1070
- import { Hash as Hash3, rootFromProof, verifyProof } from "@iden3/js-merkletree";
1071
- import { Merklizer as Merklizer2 } from "@iden3/js-jsonld-merklization";
1072
- import { PublicKey as PublicKey3, poseidon } from "@iden3/js-crypto";
1073
-
1074
- // src/credentials/utils.ts
1075
- import { DID as DID3 } from "@iden3/js-iden3-core";
1076
- import { PublicKey as PublicKey2 } from "@iden3/js-crypto";
1077
- var getUserDIDFromCredential = (issuerDID, credential) => {
1078
- if (!credential.credentialSubject.id) {
1079
- return issuerDID;
1080
- }
1081
- if (typeof credential.credentialSubject.id !== "string") {
1082
- throw new Error("credential subject `id` is not a string");
1083
- }
1084
- return DID3.parse(credential.credentialSubject.id);
1085
- };
1086
- var getKMSIdByAuthCredential = (credential) => {
1087
- if (!credential.type.includes("AuthBJJCredential")) {
1088
- throw new Error("can't sign with not AuthBJJCredential credential");
807
+ var getKMSIdByAuthCredential = (credential) => {
808
+ if (!credential.type.includes("AuthBJJCredential")) {
809
+ throw new Error("can't sign with not AuthBJJCredential credential");
1089
810
  }
1090
811
  const x = credential.credentialSubject["x"];
1091
812
  const y = credential.credentialSubject["y"];
1092
- const pb = new PublicKey2([BigInt(x), BigInt(y)]);
813
+ const pb = new PublicKey([BigInt(x), BigInt(y)]);
1093
814
  const kp = keyPath("BJJ" /* BabyJubJub */, pb.hex());
1094
815
  return { type: "BJJ" /* BabyJubJub */, id: kp };
1095
816
  };
1096
817
 
1097
818
  // src/verifiable/core-utils.ts
1098
- import { BytesHelper as BytesHelper2, SchemaHash } from "@iden3/js-iden3-core";
819
+ import { BytesHelper, SchemaHash } from "@iden3/js-iden3-core";
1099
820
  import { Path } from "@iden3/js-jsonld-merklization";
1100
821
  import jsonld from "jsonld";
1101
822
  import { keccak256 as keccak2562 } from "ethers";
@@ -1147,7 +868,7 @@ var fillCoreClaimSlot = async (slotData, mz, path) => {
1147
868
  const p = await mz.resolveDocPath(path, mz.options);
1148
869
  const entry = await mz.entry(p);
1149
870
  const intVal = await entry.getValueMtEntry();
1150
- const bytesVal = BytesHelper2.intToBytes(intVal);
871
+ const bytesVal = BytesHelper.intToBytes(intVal);
1151
872
  slotData.set(bytesVal, 0);
1152
873
  } catch (err) {
1153
874
  if (err.toString().includes("entry not found")) {
@@ -1628,7 +1349,7 @@ var W3CCredential = class _W3CCredential {
1628
1349
  async verifyBJJSignatureProof(proof, coreClaim, resolverURL, userDID, credStatusResolverRegistry) {
1629
1350
  const authClaim = proof.issuerData.authCoreClaim;
1630
1351
  const rawSlotsInt = authClaim.rawSlotsAsInts();
1631
- const pubKey = new PublicKey3([rawSlotsInt[2], rawSlotsInt[3]]);
1352
+ const pubKey = new PublicKey2([rawSlotsInt[2], rawSlotsInt[3]]);
1632
1353
  const { hi, hv } = coreClaim.hiHv();
1633
1354
  const claimHash = poseidon.hash([hi, hv]);
1634
1355
  const bjjValid = pubKey.verifyPoseidon(claimHash, proof.signature);
@@ -2037,13 +1758,681 @@ var DIDDocumentJSONSchema = `{
2037
1758
  },
2038
1759
  "deprecated": true
2039
1760
  }
2040
- },
2041
- "required": [
2042
- "id"
2043
- ]
2044
- }`;
1761
+ },
1762
+ "required": [
1763
+ "id"
1764
+ ]
1765
+ }`;
1766
+
1767
+ // src/utils/payments/solana.ts
1768
+ import { getUnixTimestamp } from "@iden3/js-iden3-core";
1769
+ import { PublicKey as PublicKey3 } from "@solana/web3.js";
1770
+ var SolanaNativePaymentRequest = class {
1771
+ version;
1772
+ chainId;
1773
+ verifyingContract;
1774
+ recipient;
1775
+ amount;
1776
+ expirationDate;
1777
+ nonce;
1778
+ metadata;
1779
+ constructor(fields) {
1780
+ this.version = fields.version;
1781
+ this.chainId = fields.chainId;
1782
+ this.verifyingContract = fields.verifyingContract;
1783
+ this.recipient = fields.recipient;
1784
+ this.amount = fields.amount;
1785
+ this.expirationDate = fields.expirationDate;
1786
+ this.nonce = fields.nonce;
1787
+ this.metadata = fields.metadata;
1788
+ }
1789
+ };
1790
+ var SolanaSplPaymentRequest = class {
1791
+ version;
1792
+ chainId;
1793
+ verifyingContract;
1794
+ tokenAddress;
1795
+ recipient;
1796
+ amount;
1797
+ expirationDate;
1798
+ nonce;
1799
+ metadata;
1800
+ constructor(fields) {
1801
+ this.version = fields.version;
1802
+ this.chainId = fields.chainId;
1803
+ this.verifyingContract = fields.verifyingContract;
1804
+ this.tokenAddress = fields.tokenAddress;
1805
+ this.recipient = fields.recipient;
1806
+ this.amount = fields.amount;
1807
+ this.expirationDate = fields.expirationDate;
1808
+ this.nonce = fields.nonce;
1809
+ this.metadata = fields.metadata;
1810
+ }
1811
+ };
1812
+ var SolanaNativePaymentSchema = /* @__PURE__ */ new Map([
1813
+ [
1814
+ SolanaNativePaymentRequest,
1815
+ {
1816
+ kind: "struct",
1817
+ fields: [
1818
+ ["version", ["u8"]],
1819
+ ["chainId", "u64"],
1820
+ ["verifyingContract", ["u8", 32]],
1821
+ ["recipient", ["u8", 32]],
1822
+ ["amount", "u64"],
1823
+ ["expirationDate", "u64"],
1824
+ ["nonce", "u64"],
1825
+ ["metadata", ["u8"]]
1826
+ ]
1827
+ }
1828
+ ]
1829
+ ]);
1830
+ var SolanaSplPaymentSchema = /* @__PURE__ */ new Map([
1831
+ [
1832
+ SolanaSplPaymentRequest,
1833
+ {
1834
+ kind: "struct",
1835
+ fields: [
1836
+ ["version", ["u8"]],
1837
+ ["chainId", "u64"],
1838
+ ["verifyingContract", ["u8", 32]],
1839
+ ["tokenAddress", ["u8", 32]],
1840
+ ["recipient", ["u8", 32]],
1841
+ ["amount", "u64"],
1842
+ ["expirationDate", "u64"],
1843
+ ["nonce", "u64"],
1844
+ ["metadata", ["u8"]]
1845
+ ]
1846
+ }
1847
+ ]
1848
+ ]);
1849
+ var SolanaPaymentInstruction = class {
1850
+ recipient;
1851
+ amount;
1852
+ expiration_date;
1853
+ nonce;
1854
+ metadata;
1855
+ signature;
1856
+ constructor(fields) {
1857
+ this.recipient = fields.recipient;
1858
+ this.amount = fields.amount;
1859
+ this.expiration_date = fields.expiration_date;
1860
+ this.nonce = fields.nonce;
1861
+ this.metadata = fields.metadata;
1862
+ this.signature = fields.signature;
1863
+ }
1864
+ };
1865
+ var SolanaPaymentInstructionSchema = /* @__PURE__ */ new Map([
1866
+ [
1867
+ SolanaPaymentInstruction,
1868
+ {
1869
+ kind: "struct",
1870
+ fields: [
1871
+ ["recipient", ["u8", 32]],
1872
+ ["amount", "u64"],
1873
+ ["expiration_date", "u64"],
1874
+ ["nonce", "u64"],
1875
+ ["metadata", ["u8"]],
1876
+ ["signature", [64]]
1877
+ ]
1878
+ }
1879
+ ]
1880
+ ]);
1881
+ var buildSolanaPayment = async (solSigner, option, chainId, paymentRails, recipient, amount, expirationDate, nonce) => {
1882
+ let serialized;
1883
+ const proofVersion = option.type === "Iden3PaymentRailsSolanaRequestV1" /* Iden3PaymentRailsSolanaRequestV1 */ ? "SolanaEd25519NativeV1" : "SolanaEd25519SPLV1";
1884
+ let chainRef = chainId;
1885
+ switch (chainId) {
1886
+ case "101":
1887
+ chainRef = SOLANA_CHAIN_REF.DEVNET;
1888
+ break;
1889
+ case "102":
1890
+ chainRef = SOLANA_CHAIN_REF.TESTNET;
1891
+ break;
1892
+ case "103":
1893
+ chainRef = SOLANA_CHAIN_REF.MAINNET;
1894
+ break;
1895
+ }
1896
+ if (option.type === "Iden3PaymentRailsSolanaRequestV1" /* Iden3PaymentRailsSolanaRequestV1 */) {
1897
+ const request = new SolanaNativePaymentRequest({
1898
+ version: byteEncoder.encode(proofVersion),
1899
+ chainId: BigInt(chainId),
1900
+ verifyingContract: new PublicKey3(paymentRails).toBytes(),
1901
+ recipient: new PublicKey3(recipient).toBytes(),
1902
+ amount: BigInt(amount),
1903
+ expirationDate: BigInt(getUnixTimestamp(expirationDate)),
1904
+ nonce,
1905
+ metadata: byteEncoder.encode("0x")
1906
+ });
1907
+ serialized = serialize(SolanaNativePaymentSchema, request);
1908
+ } else {
1909
+ if (!option.contractAddress) {
1910
+ throw new Error(`failed request. no contract address for ${option.type} payment type`);
1911
+ }
1912
+ const request = new SolanaSplPaymentRequest({
1913
+ version: byteEncoder.encode(proofVersion),
1914
+ chainId: BigInt(chainId),
1915
+ verifyingContract: new PublicKey3(paymentRails).toBytes(),
1916
+ tokenAddress: new PublicKey3(option.contractAddress).toBytes(),
1917
+ recipient: new PublicKey3(recipient).toBytes(),
1918
+ amount: BigInt(amount),
1919
+ expirationDate: BigInt(getUnixTimestamp(expirationDate)),
1920
+ nonce,
1921
+ metadata: byteEncoder.encode("0x")
1922
+ });
1923
+ serialized = serialize(SolanaSplPaymentSchema, request);
1924
+ }
1925
+ const privateKey = solSigner.secretKey.slice(0, 32);
1926
+ const signature = await ed25519.sign(serialized, privateKey);
1927
+ const proof = [
1928
+ {
1929
+ type: "SolanaEd25519Signature2025" /* SolanaEd25519Signature2025 */,
1930
+ proofPurpose: "assertionMethod",
1931
+ proofValue: Buffer.from(signature).toString("hex"),
1932
+ created: (/* @__PURE__ */ new Date()).toISOString(),
1933
+ verificationMethod: `did:pkh:solana:${chainRef}:${solSigner.publicKey.toBase58()}`,
1934
+ domain: {
1935
+ version: proofVersion,
1936
+ chainId,
1937
+ verifyingContract: paymentRails
1938
+ }
1939
+ }
1940
+ ];
1941
+ const d = {
1942
+ type: "Iden3PaymentRailsSolanaRequestV1" /* Iden3PaymentRailsSolanaRequestV1 */,
1943
+ "@context": [
1944
+ `https://schema.iden3.io/core/jsonld/payment.jsonld#${option.type}`,
1945
+ "https://schema.iden3.io/core/jsonld/solanaEd25519.jsonld"
1946
+ ],
1947
+ recipient,
1948
+ amount: amount.toString(),
1949
+ expirationDate: expirationDate.toISOString(),
1950
+ nonce: nonce.toString(),
1951
+ metadata: "0x",
1952
+ proof
1953
+ };
1954
+ if (option.type === "Iden3PaymentRailsSolanaRequestV1" /* Iden3PaymentRailsSolanaRequestV1 */) {
1955
+ return d;
1956
+ }
1957
+ return {
1958
+ ...d,
1959
+ type: option.type,
1960
+ tokenAddress: option.contractAddress || "",
1961
+ features: option.features || []
1962
+ };
1963
+ };
1964
+ var serializeSolanaPaymentInstruction = (data) => {
1965
+ let serialized;
1966
+ const proof = Array.isArray(data.proof) ? data.proof[0] : data.proof;
1967
+ const proofVersion = data.type === "Iden3PaymentRailsSolanaRequestV1" /* Iden3PaymentRailsSolanaRequestV1 */ ? "SolanaEd25519NativeV1" : "SolanaEd25519SPLV1";
1968
+ if (data.type === "Iden3PaymentRailsSolanaRequestV1" /* Iden3PaymentRailsSolanaRequestV1 */) {
1969
+ const request = new SolanaNativePaymentRequest({
1970
+ version: byteEncoder.encode(proofVersion),
1971
+ chainId: BigInt(proof.domain.chainId),
1972
+ verifyingContract: new PublicKey3(proof.domain.verifyingContract).toBytes(),
1973
+ recipient: new PublicKey3(data.recipient).toBytes(),
1974
+ amount: BigInt(data.amount),
1975
+ expirationDate: BigInt(getUnixTimestamp(new Date(data.expirationDate))),
1976
+ nonce: BigInt(data.nonce),
1977
+ metadata: byteEncoder.encode("0x")
1978
+ });
1979
+ serialized = serialize(SolanaNativePaymentSchema, request);
1980
+ } else {
1981
+ const request = new SolanaSplPaymentRequest({
1982
+ version: byteEncoder.encode(proofVersion),
1983
+ chainId: BigInt(proof.domain.chainId),
1984
+ verifyingContract: new PublicKey3(proof.domain.verifyingContract).toBytes(),
1985
+ tokenAddress: new PublicKey3(data.tokenAddress).toBytes(),
1986
+ recipient: new PublicKey3(data.recipient).toBytes(),
1987
+ amount: BigInt(data.amount),
1988
+ expirationDate: BigInt(getUnixTimestamp(new Date(data.expirationDate))),
1989
+ nonce: BigInt(data.nonce),
1990
+ metadata: byteEncoder.encode("0x")
1991
+ });
1992
+ serialized = serialize(SolanaSplPaymentSchema, request);
1993
+ }
1994
+ return serialized;
1995
+ };
1996
+ var verifyIden3SolanaPaymentRequest = async (data, resolver) => {
1997
+ const proof = Array.isArray(data.proof) ? data.proof[0] : data.proof;
1998
+ let serialized;
1999
+ if (data.type === "Iden3PaymentRailsSolanaRequestV1" /* Iden3PaymentRailsSolanaRequestV1 */) {
2000
+ const request = new SolanaNativePaymentRequest({
2001
+ version: byteEncoder.encode(proof.domain.version),
2002
+ chainId: BigInt(proof.domain.chainId),
2003
+ verifyingContract: new PublicKey3(proof.domain.verifyingContract).toBytes(),
2004
+ recipient: new PublicKey3(data.recipient).toBytes(),
2005
+ amount: BigInt(data.amount),
2006
+ expirationDate: BigInt(getUnixTimestamp(new Date(data.expirationDate))),
2007
+ nonce: BigInt(data.nonce),
2008
+ metadata: byteEncoder.encode("0x")
2009
+ });
2010
+ serialized = serialize(SolanaNativePaymentSchema, request);
2011
+ } else {
2012
+ const request = new SolanaSplPaymentRequest({
2013
+ version: byteEncoder.encode(proof.domain.version),
2014
+ chainId: BigInt(proof.domain.chainId),
2015
+ verifyingContract: new PublicKey3(proof.domain.verifyingContract).toBytes(),
2016
+ tokenAddress: new PublicKey3(data.tokenAddress).toBytes(),
2017
+ recipient: new PublicKey3(data.recipient).toBytes(),
2018
+ amount: BigInt(data.amount),
2019
+ expirationDate: BigInt(getUnixTimestamp(new Date(data.expirationDate))),
2020
+ nonce: BigInt(data.nonce),
2021
+ metadata: byteEncoder.encode("0x")
2022
+ });
2023
+ serialized = serialize(SolanaSplPaymentSchema, request);
2024
+ }
2025
+ const { didDocument } = await resolver.resolve(proof.verificationMethod);
2026
+ let publicKeyMultibase;
2027
+ if (didDocument?.verificationMethod) {
2028
+ for (const verificationMethod of didDocument.verificationMethod) {
2029
+ if (verificationMethod.type === "Ed25519VerificationKey2020") {
2030
+ publicKeyMultibase = verificationMethod.publicKeyMultibase;
2031
+ }
2032
+ }
2033
+ }
2034
+ if (!publicKeyMultibase) {
2035
+ throw new Error("No Ed25519VerificationKey2020 found in DID document");
2036
+ }
2037
+ return ed25519.verify(proof.proofValue, serialized, new PublicKey3(publicKeyMultibase).toBytes());
2038
+ };
2039
+
2040
+ // src/utils/payments/evm.ts
2041
+ import { ethers } from "ethers";
2042
+ import { getUnixTimestamp as getUnixTimestamp2 } from "@iden3/js-iden3-core";
2043
+ var buildEvmPayment = async (signer, option, chainId, paymentRails, recipient, amount, expirationDateRequired, nonce) => {
2044
+ const typeUrl = `https://schema.iden3.io/core/json/${option.type}.json`;
2045
+ const typesFetchResult = await fetch(typeUrl);
2046
+ const types = await typesFetchResult.json();
2047
+ delete types.EIP712Domain;
2048
+ const paymentData = option.type === "Iden3PaymentRailsRequestV1" /* Iden3PaymentRailsRequestV1 */ ? {
2049
+ recipient,
2050
+ amount,
2051
+ expirationDate: getUnixTimestamp2(expirationDateRequired),
2052
+ nonce,
2053
+ metadata: "0x"
2054
+ } : {
2055
+ tokenAddress: option.contractAddress,
2056
+ recipient,
2057
+ amount,
2058
+ expirationDate: getUnixTimestamp2(expirationDateRequired),
2059
+ nonce,
2060
+ metadata: "0x"
2061
+ };
2062
+ const domain = {
2063
+ name: "MCPayment",
2064
+ version: "1.0.0",
2065
+ chainId,
2066
+ verifyingContract: paymentRails
2067
+ };
2068
+ const signature = await signer.signTypedData(domain, types, paymentData);
2069
+ const proof = [
2070
+ {
2071
+ type: "EthereumEip712Signature2021" /* EthereumEip712Signature2021 */,
2072
+ proofPurpose: "assertionMethod",
2073
+ proofValue: signature,
2074
+ verificationMethod: `did:pkh:eip155:${chainId}:${await signer.getAddress()}`,
2075
+ created: (/* @__PURE__ */ new Date()).toISOString(),
2076
+ eip712: {
2077
+ types: typeUrl,
2078
+ primaryType: "Iden3PaymentRailsRequestV1",
2079
+ domain
2080
+ }
2081
+ }
2082
+ ];
2083
+ const d = {
2084
+ type: "Iden3PaymentRailsRequestV1" /* Iden3PaymentRailsRequestV1 */,
2085
+ "@context": [
2086
+ `https://schema.iden3.io/core/jsonld/payment.jsonld#${option.type}`,
2087
+ "https://w3id.org/security/suites/eip712sig-2021/v1"
2088
+ ],
2089
+ recipient,
2090
+ amount: amount.toString(),
2091
+ expirationDate: expirationDateRequired.toISOString(),
2092
+ nonce: nonce.toString(),
2093
+ metadata: "0x",
2094
+ proof
2095
+ };
2096
+ if (option.type === "Iden3PaymentRailsRequestV1" /* Iden3PaymentRailsRequestV1 */) {
2097
+ return d;
2098
+ }
2099
+ return {
2100
+ ...d,
2101
+ type: option.type,
2102
+ tokenAddress: option.contractAddress || "",
2103
+ features: option.features || []
2104
+ };
2105
+ };
2106
+ async function verifyEIP712TypedData(data, resolver) {
2107
+ const paymentData = data.type === "Iden3PaymentRailsRequestV1" /* Iden3PaymentRailsRequestV1 */ ? {
2108
+ recipient: data.recipient,
2109
+ amount: data.amount,
2110
+ expirationDate: getUnixTimestamp2(new Date(data.expirationDate)),
2111
+ nonce: data.nonce,
2112
+ metadata: "0x"
2113
+ } : {
2114
+ tokenAddress: data.tokenAddress,
2115
+ recipient: data.recipient,
2116
+ amount: data.amount,
2117
+ expirationDate: getUnixTimestamp2(new Date(data.expirationDate)),
2118
+ nonce: data.nonce,
2119
+ metadata: "0x"
2120
+ };
2121
+ const proof = Array.isArray(data.proof) ? data.proof[0] : data.proof;
2122
+ const typesFetchResult = await fetch(proof.eip712.types);
2123
+ const types = await typesFetchResult.json();
2124
+ delete types.EIP712Domain;
2125
+ const recovered = ethers.verifyTypedData(
2126
+ proof.eip712.domain,
2127
+ types,
2128
+ paymentData,
2129
+ proof.proofValue
2130
+ );
2131
+ const { didDocument } = await resolver.resolve(proof.verificationMethod);
2132
+ if (didDocument?.verificationMethod) {
2133
+ for (const verificationMethod of didDocument.verificationMethod) {
2134
+ if (verificationMethod.blockchainAccountId?.split(":").slice(-1)[0].toLowerCase() === recovered.toLowerCase()) {
2135
+ return recovered;
2136
+ }
2137
+ }
2138
+ } else {
2139
+ throw new Error("failed request. issuer DIDDocument does not contain any verificationMethods");
2140
+ }
2141
+ throw new Error(`failed request. no matching verificationMethod`);
2142
+ }
2143
+
2144
+ // src/kms/key-providers/bjj-provider.ts
2145
+ var BjjProvider = class {
2146
+ /**
2147
+ * key type that is handled by BJJ Provider
2148
+ * @type {KmsKeyType}
2149
+ */
2150
+ keyType;
2151
+ keyStore;
2152
+ /**
2153
+ * Creates an instance of BjjProvider.
2154
+ * @param {KmsKeyType} keyType - kms key type
2155
+ * @param {AbstractPrivateKeyStore} keyStore - key store for kms
2156
+ */
2157
+ constructor(keyType, keyStore) {
2158
+ if (keyType !== "BJJ" /* BabyJubJub */) {
2159
+ throw new Error("Key type must be BabyJubJub");
2160
+ }
2161
+ this.keyType = keyType;
2162
+ this.keyStore = keyStore;
2163
+ }
2164
+ /**
2165
+ * get all keys
2166
+ * @returns list of keys
2167
+ */
2168
+ async list() {
2169
+ const allKeysFromKeyStore = await this.keyStore.list();
2170
+ return allKeysFromKeyStore.filter((key) => key.alias.startsWith(this.keyType));
2171
+ }
2172
+ /**
2173
+ * generates a baby jub jub key from a seed phrase
2174
+ * @param {Uint8Array} seed - byte array seed
2175
+ * @returns kms key identifier
2176
+ */
2177
+ async newPrivateKeyFromSeed(seed) {
2178
+ const newKey = new Uint8Array(32);
2179
+ newKey.set(Uint8Array.from(seed), 0);
2180
+ newKey.fill(seed.length, 32, 0);
2181
+ const privateKey = new PrivateKey(seed);
2182
+ const publicKey = privateKey.public();
2183
+ const kmsId = {
2184
+ type: this.keyType,
2185
+ id: keyPath(this.keyType, publicKey.hex())
2186
+ };
2187
+ await this.keyStore.importKey({ alias: kmsId.id, key: privateKey.hex() });
2188
+ return kmsId;
2189
+ }
2190
+ /**
2191
+ * Gets public key by kmsKeyId
2192
+ *
2193
+ * @param {KmsKeyId} keyId - key identifier
2194
+ */
2195
+ async publicKey(keyId) {
2196
+ const privateKey = await this.privateKey(keyId);
2197
+ return privateKey.public().hex();
2198
+ }
2199
+ /**
2200
+ * signs prepared payload of size,
2201
+ * with a key id
2202
+ *
2203
+ * @param {KmsKeyId} keyId - key identifier
2204
+ * @param {Uint8Array} data - data to sign (32 bytes)
2205
+ * @returns Uint8Array signature
2206
+ */
2207
+ async sign(keyId, data) {
2208
+ if (data.length != 32) {
2209
+ throw new Error("data to sign is too large");
2210
+ }
2211
+ const i = BytesHelper2.bytesToInt(data);
2212
+ if (!checkBigIntInField(i)) {
2213
+ throw new Error("data to sign is too large");
2214
+ }
2215
+ const privateKey = await this.privateKey(keyId);
2216
+ const signature = privateKey.signPoseidon(i);
2217
+ return signature.compress();
2218
+ }
2219
+ async privateKey(keyId) {
2220
+ const privateKeyHex = await this.keyStore.get({ alias: keyId.id });
2221
+ return new PrivateKey(Hex4.decodeString(privateKeyHex));
2222
+ }
2223
+ async verify(message, signatureHex, keyId) {
2224
+ const publicKey = await this.publicKey(keyId);
2225
+ return PublicKey4.newFromCompressed(hexToBytes(publicKey)).verifyPoseidon(
2226
+ BytesHelper2.bytesToInt(message),
2227
+ Signature2.newFromCompressed(hexToBytes(signatureHex))
2228
+ );
2229
+ }
2230
+ };
2231
+
2232
+ // src/kms/key-providers/ed25519-provider.ts
2233
+ import { ed25519 as ed255192 } from "@noble/curves/ed25519";
2234
+ var Ed25519Provider = class {
2235
+ /**
2236
+ * Creates an instance of Ed25519Provider.
2237
+ * @param {KmsKeyType} keyType - kms key type
2238
+ * @param {AbstractPrivateKeyStore} keyStore - key store for kms
2239
+ */
2240
+ constructor(keyType, _keyStore) {
2241
+ this.keyType = keyType;
2242
+ this._keyStore = _keyStore;
2243
+ }
2244
+ /**
2245
+ * get all keys
2246
+ * @returns list of keys
2247
+ */
2248
+ async list() {
2249
+ const allKeysFromKeyStore = await this._keyStore.list();
2250
+ return allKeysFromKeyStore.filter((key) => key.alias.startsWith(this.keyType));
2251
+ }
2252
+ /**
2253
+ * generates a ed25519 key from a seed phrase
2254
+ * @param {Uint8Array} seed - byte array seed
2255
+ * @returns {Promise<KmsKeyId>} kms key identifier
2256
+ */
2257
+ async newPrivateKeyFromSeed(seed) {
2258
+ if (seed.length !== 32) {
2259
+ throw new Error("Seed should be 32 bytes");
2260
+ }
2261
+ const publicKey = ed255192.getPublicKey(seed);
2262
+ const kmsId = {
2263
+ type: this.keyType,
2264
+ id: keyPath(this.keyType, bytesToHex(publicKey))
2265
+ };
2266
+ await this._keyStore.importKey({
2267
+ alias: kmsId.id,
2268
+ key: bytesToHex(seed)
2269
+ });
2270
+ return kmsId;
2271
+ }
2272
+ /**
2273
+ * Gets public key by kmsKeyId
2274
+ * @param {KmsKeyId} keyId - key identifier
2275
+ * @returns {Promise<string>} Public key as a hex string
2276
+ */
2277
+ async publicKey(keyId) {
2278
+ const privateKeyHex = await this.privateKey(keyId);
2279
+ const publicKey = ed255192.getPublicKey(privateKeyHex);
2280
+ return bytesToHex(publicKey);
2281
+ }
2282
+ /**
2283
+ * signs prepared payload of size,
2284
+ * with a key id
2285
+ * @param {KmsKeyId} keyId - key identifier
2286
+ * @param {Uint8Array} digest - data to sign (32 bytes)
2287
+ * @returns {Promise<Uint8Array>} signature
2288
+ */
2289
+ async sign(keyId, digest) {
2290
+ const privateKeyHex = await this.privateKey(keyId);
2291
+ return ed255192.sign(digest, privateKeyHex);
2292
+ }
2293
+ /**
2294
+ * Verifies a signature for the given message and key identifier.
2295
+ * @param digest - The message to verify the signature against.
2296
+ * @param signatureHex - The signature to verify, as a hexadecimal string.
2297
+ * @param keyId - The key identifier to use for verification.
2298
+ * @returns A Promise that resolves to a boolean indicating whether the signature is valid.
2299
+ */
2300
+ async verify(digest, signatureHex, keyId) {
2301
+ const publicKeyHex = await this.publicKey(keyId);
2302
+ return ed255192.verify(signatureHex, digest, publicKeyHex);
2303
+ }
2304
+ /**
2305
+ * Retrieves the private key for a given keyId from the key store.
2306
+ * @param {KmsKeyId} keyId - The identifier of the key to retrieve.
2307
+ * @returns {Promise<string>} The private key associated with the keyId.
2308
+ */
2309
+ async privateKey(keyId) {
2310
+ return this._keyStore.get({ alias: keyId.id });
2311
+ }
2312
+ };
2313
+
2314
+ // src/kms/key-providers/secp256k1-provider.ts
2315
+ import { secp256k1 } from "@noble/curves/secp256k1";
2316
+ import { sha256 } from "@iden3/js-crypto";
2317
+ import { ES256KSigner, hexToBytes as hexToBytes2 } from "did-jwt";
2318
+ var Sec256k1Provider = class {
2319
+ /**
2320
+ * key type that is handled by BJJ Provider
2321
+ * @type {KmsKeyType}
2322
+ */
2323
+ keyType;
2324
+ _keyStore;
2325
+ /**
2326
+ * Creates an instance of BjjProvider.
2327
+ * @param {KmsKeyType} keyType - kms key type
2328
+ * @param {AbstractPrivateKeyStore} keyStore - key store for kms
2329
+ */
2330
+ constructor(keyType, keyStore) {
2331
+ if (keyType !== "Secp256k1" /* Secp256k1 */) {
2332
+ throw new Error("Key type must be Secp256k1");
2333
+ }
2334
+ this.keyType = keyType;
2335
+ this._keyStore = keyStore;
2336
+ }
2337
+ /**
2338
+ * get all keys
2339
+ * @returns list of keys
2340
+ */
2341
+ async list() {
2342
+ const allKeysFromKeyStore = await this._keyStore.list();
2343
+ return allKeysFromKeyStore.filter((key) => key.alias.startsWith(this.keyType));
2344
+ }
2345
+ /**
2346
+ * generates a baby jub jub key from a seed phrase
2347
+ * @param {Uint8Array} seed - byte array seed
2348
+ * @returns kms key identifier
2349
+ */
2350
+ async newPrivateKeyFromSeed(seed) {
2351
+ if (seed.length !== 32) {
2352
+ throw new Error("Seed should be 32 bytes");
2353
+ }
2354
+ const publicKey = secp256k1.getPublicKey(seed);
2355
+ const kmsId = {
2356
+ type: this.keyType,
2357
+ id: keyPath(this.keyType, bytesToHex(publicKey))
2358
+ };
2359
+ await this._keyStore.importKey({
2360
+ alias: kmsId.id,
2361
+ key: bytesToHex(seed).padStart(64, "0")
2362
+ });
2363
+ return kmsId;
2364
+ }
2365
+ /**
2366
+ * Gets public key by kmsKeyId
2367
+ *
2368
+ * @param {KmsKeyId} keyId - key identifier
2369
+ */
2370
+ async publicKey(keyId) {
2371
+ const privateKeyHex = await this.privateKey(keyId);
2372
+ const publicKey = secp256k1.getPublicKey(privateKeyHex, false);
2373
+ return bytesToHex(publicKey);
2374
+ }
2375
+ /**
2376
+ * Signs the given data using the private key associated with the specified key identifier.
2377
+ * @param keyId - The key identifier to use for signing.
2378
+ * @param data - The data to sign.
2379
+ * @param opts - Signing options, such as the algorithm to use.
2380
+ * @returns A Promise that resolves to the signature as a Uint8Array.
2381
+ */
2382
+ async sign(keyId, data, opts = { alg: "ES256K" }) {
2383
+ const privateKeyHex = await this.privateKey(keyId);
2384
+ const signatureBase64 = await ES256KSigner(
2385
+ hexToBytes2(privateKeyHex),
2386
+ opts.alg === "ES256K-R"
2387
+ )(data);
2388
+ if (typeof signatureBase64 !== "string") {
2389
+ throw new Error("signatureBase64 must be a string");
2390
+ }
2391
+ return base64UrlToBytes(signatureBase64);
2392
+ }
2393
+ /**
2394
+ * Verifies a signature for the given message and key identifier.
2395
+ * @param message - The message to verify the signature against.
2396
+ * @param signatureHex - The signature to verify, as a hexadecimal string.
2397
+ * @param keyId - The key identifier to use for verification.
2398
+ * @returns A Promise that resolves to a boolean indicating whether the signature is valid.
2399
+ */
2400
+ async verify(message, signatureHex, keyId) {
2401
+ const publicKeyHex = await this.publicKey(keyId);
2402
+ return secp256k1.verify(signatureHex, sha256(message), publicKeyHex);
2403
+ }
2404
+ async privateKey(keyId) {
2405
+ return this._keyStore.get({ alias: keyId.id });
2406
+ }
2407
+ };
2408
+
2409
+ // src/identity/identity-wallet.ts
2410
+ import {
2411
+ Blockchain,
2412
+ buildDIDType as buildDIDType3,
2413
+ BytesHelper as BytesHelper9,
2414
+ Claim as Claim9,
2415
+ ClaimOptions as ClaimOptions2,
2416
+ DID as DID27,
2417
+ DidMethod,
2418
+ getUnixTimestamp as getUnixTimestamp10,
2419
+ Id as Id19,
2420
+ NetworkId,
2421
+ SchemaHash as SchemaHash7
2422
+ } from "@iden3/js-iden3-core";
2423
+ import {
2424
+ poseidon as poseidon4,
2425
+ PublicKey as PublicKey5,
2426
+ sha256 as sha2562,
2427
+ Signature as Signature3,
2428
+ Hex as Hex6,
2429
+ getRandomBytes as getRandomBytes2,
2430
+ Poseidon
2431
+ } from "@iden3/js-crypto";
2432
+ import { hashElems as hashElems2, ZERO_HASH as ZERO_HASH6 } from "@iden3/js-merkletree";
2045
2433
 
2046
2434
  // src/identity/common.ts
2435
+ import { DID as DID5, Id as Id2, IdPosition as IdPosition2, MerklizedRootPosition as MerklizedRootPosition2 } from "@iden3/js-iden3-core";
2047
2436
  var subjectPositionIndex = (idPosition) => {
2048
2437
  switch (idPosition) {
2049
2438
  case IdPosition2.Index:
@@ -4539,9 +4928,9 @@ var TransactionService = class {
4539
4928
  };
4540
4929
 
4541
4930
  // src/storage/blockchain/common.ts
4542
- import { ethers } from "ethers";
4931
+ import { ethers as ethers2 } from "ethers";
4543
4932
  var packZkpProof = (inputs, a, b, c) => {
4544
- return new ethers.AbiCoder().encode(
4933
+ return new ethers2.AbiCoder().encode(
4545
4934
  ["uint256[] inputs", "uint256[2]", "uint256[2][2]", "uint256[2]"],
4546
4935
  [inputs, a, b, c]
4547
4936
  );
@@ -5591,14 +5980,14 @@ var DiscoveryProtocolFeatureType = /* @__PURE__ */ ((DiscoveryProtocolFeatureTyp
5591
5980
  })(DiscoveryProtocolFeatureType || {});
5592
5981
 
5593
5982
  // src/iden3comm/handlers/auth.ts
5594
- import { DID as DID8, getUnixTimestamp as getUnixTimestamp2 } from "@iden3/js-iden3-core";
5983
+ import { DID as DID8, getUnixTimestamp as getUnixTimestamp4 } from "@iden3/js-iden3-core";
5595
5984
  import { proving as proving3 } from "@iden3/js-jwz";
5596
5985
  import * as uuid2 from "uuid";
5597
5986
 
5598
5987
  // src/iden3comm/handlers/common.ts
5599
5988
  import { getRandomBytes } from "@iden3/js-crypto";
5600
- import { getUnixTimestamp } from "@iden3/js-iden3-core";
5601
- import { ethers as ethers2 } from "ethers";
5989
+ import { getUnixTimestamp as getUnixTimestamp3 } from "@iden3/js-iden3-core";
5990
+ import { ethers as ethers3 } from "ethers";
5602
5991
  var getGroupedQueries = (requestScope) => requestScope.reduce((acc, proofReq) => {
5603
5992
  const groupId = proofReq.query.groupId;
5604
5993
  if (!groupId) {
@@ -5765,8 +6154,8 @@ var calcChallengeAuthV2 = (senderAddress, zkpResponses) => {
5765
6154
  };
5766
6155
  });
5767
6156
  return BigInt(
5768
- ethers2.keccak256(
5769
- new ethers2.AbiCoder().encode(
6157
+ ethers3.keccak256(
6158
+ new ethers3.AbiCoder().encode(
5770
6159
  ["address", "(uint256 requestId,bytes proof,bytes metadata)[]"],
5771
6160
  [senderAddress, responses]
5772
6161
  )
@@ -5774,10 +6163,10 @@ var calcChallengeAuthV2 = (senderAddress, zkpResponses) => {
5774
6163
  ) & BigInt("0x0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
5775
6164
  };
5776
6165
  var packMetadatas = (metas) => {
5777
- return new ethers2.AbiCoder().encode(["tuple(string key,bytes value)[]"], [metas]);
6166
+ return new ethers3.AbiCoder().encode(["tuple(string key,bytes value)[]"], [metas]);
5778
6167
  };
5779
6168
  var verifyExpiresTime = (message) => {
5780
- if (message?.expires_time && message.expires_time < getUnixTimestamp(/* @__PURE__ */ new Date())) {
6169
+ if (message?.expires_time && message.expires_time < getUnixTimestamp3(/* @__PURE__ */ new Date())) {
5781
6170
  throw new Error("Message expired");
5782
6171
  }
5783
6172
  };
@@ -5895,8 +6284,8 @@ function createAuthorizationRequestWithMessage(reason, message, sender, callback
5895
6284
  callbackUrl,
5896
6285
  scope: opts?.scope ?? []
5897
6286
  },
5898
- created_time: getUnixTimestamp2(/* @__PURE__ */ new Date()),
5899
- expires_time: opts?.expires_time ? getUnixTimestamp2(opts.expires_time) : void 0,
6287
+ created_time: getUnixTimestamp4(/* @__PURE__ */ new Date()),
6288
+ expires_time: opts?.expires_time ? getUnixTimestamp4(opts.expires_time) : void 0,
5900
6289
  attachments: opts?.attachments
5901
6290
  };
5902
6291
  return request;
@@ -7393,7 +7782,7 @@ var FetchHandler = class _FetchHandler extends AbstractMessageHandler {
7393
7782
  };
7394
7783
 
7395
7784
  // src/iden3comm/handlers/contract-request.ts
7396
- import { DID as DID13, ChainIds, getUnixTimestamp as getUnixTimestamp3, BytesHelper as BytesHelper6 } from "@iden3/js-iden3-core";
7785
+ import { DID as DID13, ChainIds, getUnixTimestamp as getUnixTimestamp5, BytesHelper as BytesHelper6 } from "@iden3/js-iden3-core";
7397
7786
  var ContractRequestHandler = class extends AbstractMessageHandler {
7398
7787
  /**
7399
7788
  * Creates an instance of ContractRequestHandler.
@@ -7564,7 +7953,7 @@ var ContractRequestHandler = class extends AbstractMessageHandler {
7564
7953
  transaction_data: request.body.transaction_data,
7565
7954
  scope: []
7566
7955
  },
7567
- created_time: getUnixTimestamp3(/* @__PURE__ */ new Date())
7956
+ created_time: getUnixTimestamp5(/* @__PURE__ */ new Date())
7568
7957
  };
7569
7958
  for (const [txHash, zkpResponses] of txHashToZkpResponseMap) {
7570
7959
  for (const zkpResponse of zkpResponses.responses) {
@@ -7813,7 +8202,7 @@ var RevocationStatusHandler = class extends AbstractMessageHandler {
7813
8202
  };
7814
8203
 
7815
8204
  // src/iden3comm/handlers/credential-proposal.ts
7816
- import { DID as DID16, getUnixTimestamp as getUnixTimestamp4 } from "@iden3/js-iden3-core";
8205
+ import { DID as DID16, getUnixTimestamp as getUnixTimestamp6 } from "@iden3/js-iden3-core";
7817
8206
  import * as uuid8 from "uuid";
7818
8207
  import { proving as proving7 } from "@iden3/js-jwz";
7819
8208
  function createProposalRequest(sender, receiver, opts) {
@@ -7825,9 +8214,12 @@ function createProposalRequest(sender, receiver, opts) {
7825
8214
  to: receiver.string(),
7826
8215
  typ: "application/iden3comm-plain-json" /* PlainMessage */,
7827
8216
  type: PROTOCOL_MESSAGE_TYPE.PROPOSAL_REQUEST_MESSAGE_TYPE,
7828
- body: opts,
7829
- created_time: getUnixTimestamp4(/* @__PURE__ */ new Date()),
7830
- expires_time: opts?.expires_time ? getUnixTimestamp4(opts.expires_time) : void 0,
8217
+ body: {
8218
+ credentials: opts.credentials,
8219
+ did_doc: opts.did_doc
8220
+ },
8221
+ created_time: getUnixTimestamp6(/* @__PURE__ */ new Date()),
8222
+ expires_time: opts?.expires_time ? getUnixTimestamp6(opts.expires_time) : void 0,
7831
8223
  attachments: opts.attachments
7832
8224
  };
7833
8225
  return request;
@@ -7844,8 +8236,8 @@ function createProposal(sender, receiver, proposals, opts) {
7844
8236
  body: {
7845
8237
  proposals: proposals || []
7846
8238
  },
7847
- created_time: getUnixTimestamp4(/* @__PURE__ */ new Date()),
7848
- expires_time: opts?.expires_time ? getUnixTimestamp4(opts.expires_time) : void 0
8239
+ created_time: getUnixTimestamp6(/* @__PURE__ */ new Date()),
8240
+ expires_time: opts?.expires_time ? getUnixTimestamp6(opts.expires_time) : void 0
7849
8241
  };
7850
8242
  return request;
7851
8243
  }
@@ -8006,10 +8398,9 @@ var CredentialProposalHandler = class extends AbstractMessageHandler {
8006
8398
  };
8007
8399
 
8008
8400
  // src/iden3comm/handlers/payment.ts
8009
- import { DID as DID17, getUnixTimestamp as getUnixTimestamp5 } from "@iden3/js-iden3-core";
8401
+ import { DID as DID17, getUnixTimestamp as getUnixTimestamp7 } from "@iden3/js-iden3-core";
8010
8402
  import * as uuid9 from "uuid";
8011
8403
  import { proving as proving8 } from "@iden3/js-jwz";
8012
- import { ethers as ethers3 } from "ethers";
8013
8404
  function createPaymentRequest(sender, receiver, agent, payments, opts) {
8014
8405
  const uuidv4 = uuid9.v4();
8015
8406
  const request = {
@@ -8023,48 +8414,11 @@ function createPaymentRequest(sender, receiver, agent, payments, opts) {
8023
8414
  agent,
8024
8415
  payments
8025
8416
  },
8026
- created_time: getUnixTimestamp5(/* @__PURE__ */ new Date()),
8027
- expires_time: opts?.expires_time ? getUnixTimestamp5(opts.expires_time) : void 0
8417
+ created_time: getUnixTimestamp7(/* @__PURE__ */ new Date()),
8418
+ expires_time: opts?.expires_time ? getUnixTimestamp7(opts.expires_time) : void 0
8028
8419
  };
8029
8420
  return request;
8030
8421
  }
8031
- async function verifyEIP712TypedData(data, resolver) {
8032
- const paymentData = data.type === "Iden3PaymentRailsRequestV1" /* Iden3PaymentRailsRequestV1 */ ? {
8033
- recipient: data.recipient,
8034
- amount: data.amount,
8035
- expirationDate: getUnixTimestamp5(new Date(data.expirationDate)),
8036
- nonce: data.nonce,
8037
- metadata: "0x"
8038
- } : {
8039
- tokenAddress: data.tokenAddress,
8040
- recipient: data.recipient,
8041
- amount: data.amount,
8042
- expirationDate: getUnixTimestamp5(new Date(data.expirationDate)),
8043
- nonce: data.nonce,
8044
- metadata: "0x"
8045
- };
8046
- const proof = Array.isArray(data.proof) ? data.proof[0] : data.proof;
8047
- const typesFetchResult = await fetch(proof.eip712.types);
8048
- const types = await typesFetchResult.json();
8049
- delete types.EIP712Domain;
8050
- const recovered = ethers3.verifyTypedData(
8051
- proof.eip712.domain,
8052
- types,
8053
- paymentData,
8054
- proof.proofValue
8055
- );
8056
- const { didDocument } = await resolver.resolve(proof.verificationMethod);
8057
- if (didDocument?.verificationMethod) {
8058
- for (const verificationMethod of didDocument.verificationMethod) {
8059
- if (verificationMethod.blockchainAccountId?.split(":").slice(-1)[0].toLowerCase() === recovered.toLowerCase()) {
8060
- return recovered;
8061
- }
8062
- }
8063
- } else {
8064
- throw new Error("failed request. issuer DIDDocument does not contain any verificationMethods");
8065
- }
8066
- throw new Error(`failed request. no matching verificationMethod`);
8067
- }
8068
8422
  function createPayment(sender, receiver, payments, opts) {
8069
8423
  const uuidv4 = uuid9.v4();
8070
8424
  const request = {
@@ -8077,8 +8431,8 @@ function createPayment(sender, receiver, payments, opts) {
8077
8431
  body: {
8078
8432
  payments
8079
8433
  },
8080
- created_time: getUnixTimestamp5(/* @__PURE__ */ new Date()),
8081
- expires_time: opts?.expires_time ? getUnixTimestamp5(opts.expires_time) : void 0
8434
+ created_time: getUnixTimestamp7(/* @__PURE__ */ new Date()),
8435
+ expires_time: opts?.expires_time ? getUnixTimestamp7(opts.expires_time) : void 0
8082
8436
  };
8083
8437
  return request;
8084
8438
  }
@@ -8163,6 +8517,22 @@ var PaymentHandler = class extends AbstractMessageHandler {
8163
8517
  )
8164
8518
  );
8165
8519
  break;
8520
+ case "Iden3PaymentRailsSolanaRequestV1" /* Iden3PaymentRailsSolanaRequestV1 */:
8521
+ payments.push(
8522
+ await this.handleIden3PaymentRailsSolanaRequestV1(selectedPayment, ctx.paymentHandler)
8523
+ );
8524
+ break;
8525
+ case "Iden3PaymentRailsSolanaSPLRequestV1" /* Iden3PaymentRailsSolanaSPLRequestV1 */:
8526
+ payments.push(
8527
+ await this.handleIden3PaymentRailsSolanaSPLRequestV1(
8528
+ {
8529
+ ...selectedPayment,
8530
+ type: "Iden3PaymentRailsSolanaSPLRequestV1" /* Iden3PaymentRailsSolanaSPLRequestV1 */
8531
+ },
8532
+ ctx.paymentHandler
8533
+ )
8534
+ );
8535
+ break;
8166
8536
  }
8167
8537
  }
8168
8538
  const paymentMessage = createPayment(senderDID, receiverDID, payments);
@@ -8241,7 +8611,7 @@ var PaymentHandler = class extends AbstractMessageHandler {
8241
8611
  /**
8242
8612
  * @inheritdoc IPaymentHandler#createPaymentRailsV1
8243
8613
  */
8244
- async createPaymentRailsV1(sender, receiver, agent, signer, payments) {
8614
+ async createPaymentRailsV1(sender, receiver, agent, signer, payments, createOptions) {
8245
8615
  const paymentRequestInfo = [];
8246
8616
  for (let i = 0; i < payments.length; i++) {
8247
8617
  const { credentials, description } = payments[i];
@@ -8259,70 +8629,40 @@ var PaymentHandler = class extends AbstractMessageHandler {
8259
8629
  if (!option) {
8260
8630
  throw new Error(`failed request. no option for id ${optionId}`);
8261
8631
  }
8262
- if (option.type === "Iden3PaymentRailsERC20RequestV1" /* Iden3PaymentRailsERC20RequestV1 */ && !option.contractAddress) {
8632
+ if ((option.type === "Iden3PaymentRailsERC20RequestV1" /* Iden3PaymentRailsERC20RequestV1 */ || option.type === "Iden3PaymentRailsSolanaSPLRequestV1" /* Iden3PaymentRailsSolanaSPLRequestV1 */) && !option.contractAddress) {
8263
8633
  throw new Error(`failed request. no token address for option id ${optionId}`);
8264
8634
  }
8265
8635
  const expirationDateRequired = expirationDate ?? new Date((/* @__PURE__ */ new Date()).setHours((/* @__PURE__ */ new Date()).getHours() + 1));
8266
- const typeUrl = `https://schema.iden3.io/core/json/${option.type}.json`;
8267
- const typesFetchResult = await fetch(typeUrl);
8268
- const types = await typesFetchResult.json();
8269
- delete types.EIP712Domain;
8270
- const paymentData = option.type === "Iden3PaymentRailsRequestV1" /* Iden3PaymentRailsRequestV1 */ ? {
8271
- recipient,
8272
- amount,
8273
- expirationDate: getUnixTimestamp5(expirationDateRequired),
8274
- nonce,
8275
- metadata: "0x"
8276
- } : {
8277
- tokenAddress: option.contractAddress,
8278
- recipient,
8279
- amount,
8280
- expirationDate: getUnixTimestamp5(expirationDateRequired),
8281
- nonce,
8282
- metadata: "0x"
8283
- };
8284
- const domain = {
8285
- name: "MCPayment",
8286
- version: "1.0.0",
8287
- chainId,
8288
- verifyingContract: paymentRails
8289
- };
8290
- const signature = await signer.signTypedData(domain, types, paymentData);
8291
- const proof = [
8292
- {
8293
- type: "EthereumEip712Signature2021" /* EthereumEip712Signature2021 */,
8294
- proofPurpose: "assertionMethod",
8295
- proofValue: signature,
8296
- verificationMethod: `did:pkh:eip155:${chainId}:${await signer.getAddress()}`,
8297
- created: (/* @__PURE__ */ new Date()).toISOString(),
8298
- eip712: {
8299
- types: typeUrl,
8300
- primaryType: "Iden3PaymentRailsRequestV1",
8301
- domain
8302
- }
8303
- }
8304
- ];
8305
- const d = {
8306
- type: "Iden3PaymentRailsRequestV1" /* Iden3PaymentRailsRequestV1 */,
8307
- "@context": [
8308
- `https://schema.iden3.io/core/jsonld/payment.jsonld#${option.type}`,
8309
- "https://w3id.org/security/suites/eip712sig-2021/v1"
8310
- ],
8311
- recipient,
8312
- amount: amount.toString(),
8313
- expirationDate: expirationDateRequired.toISOString(),
8314
- nonce: nonce.toString(),
8315
- metadata: "0x",
8316
- proof
8317
- };
8318
- dataArr.push(
8319
- option.type === "Iden3PaymentRailsRequestV1" /* Iden3PaymentRailsRequestV1 */ ? d : {
8320
- ...d,
8321
- type: option.type,
8322
- tokenAddress: option.contractAddress || "",
8323
- features: option.features || []
8636
+ if (option.type === "Iden3PaymentRailsSolanaRequestV1" /* Iden3PaymentRailsSolanaRequestV1 */ || option.type === "Iden3PaymentRailsSolanaSPLRequestV1" /* Iden3PaymentRailsSolanaSPLRequestV1 */) {
8637
+ if (!createOptions?.solSigner) {
8638
+ throw new Error(
8639
+ `please provide solana signer in context for ${option.type} payment type`
8640
+ );
8324
8641
  }
8325
- );
8642
+ const payment = await buildSolanaPayment(
8643
+ createOptions.solSigner,
8644
+ option,
8645
+ chainId,
8646
+ paymentRails,
8647
+ recipient,
8648
+ BigInt(amount),
8649
+ expirationDateRequired,
8650
+ nonce
8651
+ );
8652
+ dataArr.push(payment);
8653
+ } else {
8654
+ const payment = await buildEvmPayment(
8655
+ signer,
8656
+ option,
8657
+ chainId,
8658
+ paymentRails,
8659
+ recipient,
8660
+ BigInt(amount),
8661
+ expirationDateRequired,
8662
+ nonce
8663
+ );
8664
+ dataArr.push(payment);
8665
+ }
8326
8666
  }
8327
8667
  paymentRequestInfo.push({
8328
8668
  data: dataArr,
@@ -8376,6 +8716,55 @@ var PaymentHandler = class extends AbstractMessageHandler {
8376
8716
  }
8377
8717
  };
8378
8718
  }
8719
+ async handleIden3PaymentRailsSolanaRequestV1(data, paymentHandler) {
8720
+ if (data.expirationDate && new Date(data.expirationDate) < /* @__PURE__ */ new Date()) {
8721
+ throw new Error(`failed request. expired request`);
8722
+ }
8723
+ const isValid = await verifyIden3SolanaPaymentRequest(data, this._params.documentResolver);
8724
+ if (!isValid) {
8725
+ throw new Error(`failed request. invalid Solana payment request signature`);
8726
+ }
8727
+ const proof = Array.isArray(data.proof) ? data.proof[0] : data.proof;
8728
+ const signer = proof.verificationMethod.split(":").slice(-1)[0];
8729
+ if (this._params.allowedSigners && !this._params.allowedSigners.includes(signer)) {
8730
+ throw new Error(`failed request. signer is not in the allowed signers list`);
8731
+ }
8732
+ const txId = await paymentHandler(data);
8733
+ return {
8734
+ nonce: data.nonce,
8735
+ type: "Iden3PaymentRailsSolanaV1" /* Iden3PaymentRailsSolanaV1 */,
8736
+ "@context": "https://schema.iden3.io/core/jsonld/payment.jsonld#Iden3PaymentRailsSolanaV1",
8737
+ paymentData: {
8738
+ txId,
8739
+ chainId: proof.domain.chainId
8740
+ }
8741
+ };
8742
+ }
8743
+ async handleIden3PaymentRailsSolanaSPLRequestV1(data, paymentHandler) {
8744
+ if (data.expirationDate && new Date(data.expirationDate) < /* @__PURE__ */ new Date()) {
8745
+ throw new Error(`failed request. expired request`);
8746
+ }
8747
+ const isValid = await verifyIden3SolanaPaymentRequest(data, this._params.documentResolver);
8748
+ if (!isValid) {
8749
+ throw new Error(`failed request. invalid Solana payment request signature`);
8750
+ }
8751
+ const proof = Array.isArray(data.proof) ? data.proof[0] : data.proof;
8752
+ const signer = proof.verificationMethod.split(":").slice(-1)[0];
8753
+ if (this._params.allowedSigners && !this._params.allowedSigners.includes(signer)) {
8754
+ throw new Error(`failed request. signer is not in the allowed signers list`);
8755
+ }
8756
+ const txId = await paymentHandler(data);
8757
+ return {
8758
+ nonce: data.nonce,
8759
+ type: "Iden3PaymentRailsSolanaSPLV1" /* Iden3PaymentRailsSolanaSPLV1 */,
8760
+ "@context": "https://schema.iden3.io/core/jsonld/payment.jsonld#Iden3PaymentRailsSolanaSPLV1",
8761
+ paymentData: {
8762
+ txId,
8763
+ chainId: proof.domain.chainId,
8764
+ tokenAddress: data.tokenAddress
8765
+ }
8766
+ };
8767
+ }
8379
8768
  async handleIden3PaymentRailsERC20RequestV1(data, paymentHandler, approveHandler) {
8380
8769
  if (data.expirationDate && new Date(data.expirationDate) < /* @__PURE__ */ new Date()) {
8381
8770
  throw new Error(`failed request. expired request`);
@@ -8407,7 +8796,7 @@ var PaymentHandler = class extends AbstractMessageHandler {
8407
8796
 
8408
8797
  // src/iden3comm/handlers/discovery-protocol.ts
8409
8798
  import * as uuid10 from "uuid";
8410
- import { getUnixTimestamp as getUnixTimestamp6 } from "@iden3/js-iden3-core";
8799
+ import { getUnixTimestamp as getUnixTimestamp8 } from "@iden3/js-iden3-core";
8411
8800
  function createDiscoveryFeatureQueryMessage(queries, opts) {
8412
8801
  const uuidv4 = uuid10.v4();
8413
8802
  return {
@@ -8420,7 +8809,7 @@ function createDiscoveryFeatureQueryMessage(queries, opts) {
8420
8809
  },
8421
8810
  from: opts?.from,
8422
8811
  to: opts?.to,
8423
- created_time: getUnixTimestamp6(/* @__PURE__ */ new Date()),
8812
+ created_time: getUnixTimestamp8(/* @__PURE__ */ new Date()),
8424
8813
  expires_time: opts?.expires_time
8425
8814
  };
8426
8815
  }
@@ -8436,7 +8825,7 @@ function createDiscoveryFeatureDiscloseMessage(disclosures, opts) {
8436
8825
  },
8437
8826
  from: opts?.from,
8438
8827
  to: opts?.to,
8439
- created_time: getUnixTimestamp6(/* @__PURE__ */ new Date()),
8828
+ created_time: getUnixTimestamp8(/* @__PURE__ */ new Date()),
8440
8829
  expires_time: opts?.expires_time
8441
8830
  };
8442
8831
  }
@@ -8489,7 +8878,7 @@ var DiscoveryProtocolHandler = class extends AbstractMessageHandler {
8489
8878
  createDiscoveryFeatureDiscloseMessage(disclosures, {
8490
8879
  to: message.from,
8491
8880
  from: message.to,
8492
- expires_time: opts?.disclosureExpiresDate ? getUnixTimestamp6(opts.disclosureExpiresDate) : void 0
8881
+ expires_time: opts?.disclosureExpiresDate ? getUnixTimestamp8(opts.disclosureExpiresDate) : void 0
8493
8882
  })
8494
8883
  );
8495
8884
  }
@@ -11892,7 +12281,7 @@ var NativeProver = class _NativeProver {
11892
12281
  import { getDocumentLoader as getDocumentLoader3 } from "@iden3/js-jsonld-merklization";
11893
12282
 
11894
12283
  // src/proof/provers/inputs-generator.ts
11895
- import { DID as DID23, getUnixTimestamp as getUnixTimestamp7 } from "@iden3/js-iden3-core";
12284
+ import { DID as DID23, getUnixTimestamp as getUnixTimestamp9 } from "@iden3/js-iden3-core";
11896
12285
  var allOperations2 = Object.values(QueryOperators);
11897
12286
  var v2Operations = [
11898
12287
  0 /* NOOP */,
@@ -12040,7 +12429,7 @@ var InputGenerator = class {
12040
12429
  incProof: { proof: circuitClaimData.proof, treeState: circuitClaimData.treeState },
12041
12430
  nonRevProof: circuitClaimData.nonRevProof
12042
12431
  };
12043
- circuitInputs.currentTimeStamp = getUnixTimestamp7(/* @__PURE__ */ new Date());
12432
+ circuitInputs.currentTimeStamp = getUnixTimestamp9(/* @__PURE__ */ new Date());
12044
12433
  circuitInputs.claimSubjectProfileNonce = BigInt(params.credentialSubjectProfileNonce);
12045
12434
  circuitInputs.profileNonce = BigInt(params.authProfileNonce);
12046
12435
  circuitInputs.skipClaimRevocationCheck = params.skipRevocation;
@@ -12096,7 +12485,7 @@ var InputGenerator = class {
12096
12485
  incProof: { proof: circuitClaimData.proof, treeState: circuitClaimData.treeState },
12097
12486
  nonRevProof: circuitClaimData.nonRevProof
12098
12487
  };
12099
- circuitInputs.currentTimeStamp = getUnixTimestamp7(/* @__PURE__ */ new Date());
12488
+ circuitInputs.currentTimeStamp = getUnixTimestamp9(/* @__PURE__ */ new Date());
12100
12489
  circuitInputs.claimSubjectProfileNonce = BigInt(params.credentialSubjectProfileNonce);
12101
12490
  circuitInputs.profileNonce = BigInt(params.authProfileNonce);
12102
12491
  circuitInputs.skipClaimRevocationCheck = params.skipRevocation;
@@ -12127,7 +12516,7 @@ var InputGenerator = class {
12127
12516
  const query = circuitQueries[0];
12128
12517
  query.operator = this.transformV2QueryOperator(query.operator);
12129
12518
  circuitInputs.query = query;
12130
- circuitInputs.currentTimeStamp = getUnixTimestamp7(/* @__PURE__ */ new Date());
12519
+ circuitInputs.currentTimeStamp = getUnixTimestamp9(/* @__PURE__ */ new Date());
12131
12520
  this.checkOperatorSupport(proofReq.circuitId, query.operator);
12132
12521
  return circuitInputs.inputsMarshal();
12133
12522
  };
@@ -12160,7 +12549,7 @@ var InputGenerator = class {
12160
12549
  circuitInputs.skipClaimRevocationCheck = params.skipRevocation;
12161
12550
  const query = circuitQueries[0];
12162
12551
  circuitInputs.query = query;
12163
- circuitInputs.currentTimeStamp = getUnixTimestamp7(/* @__PURE__ */ new Date());
12552
+ circuitInputs.currentTimeStamp = getUnixTimestamp9(/* @__PURE__ */ new Date());
12164
12553
  if (authClaimData.treeState) {
12165
12554
  circuitInputs.treeState = {
12166
12555
  state: authClaimData.treeState?.state,
@@ -12230,7 +12619,7 @@ var InputGenerator = class {
12230
12619
  const query = circuitQueries[0];
12231
12620
  query.values = [16 /* SD */, 0 /* NOOP */].includes(query.operator) ? [] : query.values;
12232
12621
  circuitInputs.query = query;
12233
- circuitInputs.currentTimeStamp = getUnixTimestamp7(/* @__PURE__ */ new Date());
12622
+ circuitInputs.currentTimeStamp = getUnixTimestamp9(/* @__PURE__ */ new Date());
12234
12623
  circuitInputs.proofType = proofType;
12235
12624
  circuitInputs.linkNonce = params.linkNonce ?? BigInt(0);
12236
12625
  circuitInputs.verifierID = params.verifierDid ? DID23.idFromDID(params.verifierDid) : void 0;
@@ -12282,7 +12671,7 @@ var InputGenerator = class {
12282
12671
  const query = circuitQueries[0];
12283
12672
  query.values = [16 /* SD */, 0 /* NOOP */].includes(query.operator) ? [] : query.values;
12284
12673
  circuitInputs.query = query;
12285
- circuitInputs.currentTimeStamp = getUnixTimestamp7(/* @__PURE__ */ new Date());
12674
+ circuitInputs.currentTimeStamp = getUnixTimestamp9(/* @__PURE__ */ new Date());
12286
12675
  circuitInputs.proofType = proofType;
12287
12676
  circuitInputs.linkNonce = params.linkNonce ?? BigInt(0);
12288
12677
  circuitInputs.verifierID = params.verifierDid ? DID23.idFromDID(params.verifierDid) : void 0;
@@ -13477,7 +13866,7 @@ var IdentityWallet = class {
13477
13866
  async createAuthCoreClaim(revNonce, seed) {
13478
13867
  const keyId = await this._kms.createKeyFromSeed("BJJ" /* BabyJubJub */, seed);
13479
13868
  const pubKeyHex = await this._kms.publicKey(keyId);
13480
- const pubKey = PublicKey4.newFromHex(pubKeyHex);
13869
+ const pubKey = PublicKey5.newFromHex(pubKeyHex);
13481
13870
  const schemaHash = SchemaHash7.authSchemaHash;
13482
13871
  const authClaim = Claim9.newClaim(
13483
13872
  schemaHash,
@@ -13489,7 +13878,7 @@ var IdentityWallet = class {
13489
13878
  }
13490
13879
  async createAuthBJJCredential(did, pubKey, authClaim, currentState, revocationOpts) {
13491
13880
  const authData = authClaim.getExpirationDate();
13492
- const expiration = authData ? getUnixTimestamp8(authData) : 0;
13881
+ const expiration = authData ? getUnixTimestamp10(authData) : 0;
13493
13882
  const request = {
13494
13883
  credentialSchema: VerifiableConstants.AUTH.AUTH_BJJ_CREDENTIAL_SCHEMA_JSON_URL,
13495
13884
  type: VerifiableConstants.AUTH.AUTH_BJJ_CREDENTIAL_TYPE,
@@ -14354,9 +14743,16 @@ export {
14354
14743
  RefreshServiceType,
14355
14744
  RevocationStatusHandler,
14356
14745
  SDK_EVENTS,
14746
+ SOLANA_CHAIN_REF,
14357
14747
  Scalar,
14358
14748
  SearchError,
14359
14749
  Sec256k1Provider,
14750
+ SolanaNativePaymentRequest,
14751
+ SolanaNativePaymentSchema,
14752
+ SolanaPaymentInstruction,
14753
+ SolanaPaymentInstructionSchema,
14754
+ SolanaSplPaymentRequest,
14755
+ SolanaSplPaymentSchema,
14360
14756
  StandardJSONCredentialsQueryFilter,
14361
14757
  StateTransitionInputs,
14362
14758
  StateTransitionPubSignals,
@@ -14380,7 +14776,9 @@ export {
14380
14776
  bigIntCompare,
14381
14777
  buildAccept,
14382
14778
  buildDIDFromEthPubKey,
14779
+ buildEvmPayment,
14383
14780
  buildFieldPath,
14781
+ buildSolanaPayment,
14384
14782
  buildTreeState,
14385
14783
  buildVerifierId,
14386
14784
  byteDecoder,
@@ -14478,6 +14876,7 @@ export {
14478
14876
  resolveDidDocument,
14479
14877
  resolvePath,
14480
14878
  resolveVerificationMethods,
14879
+ serializeSolanaPaymentInstruction,
14481
14880
  strMTHex,
14482
14881
  stringByPath,
14483
14882
  subjectPositionIndex,
@@ -14499,6 +14898,7 @@ export {
14499
14898
  verifyExpiresTime,
14500
14899
  verifyFieldValueInclusionNativeExistsSupport,
14501
14900
  verifyFieldValueInclusionV2,
14901
+ verifyIden3SolanaPaymentRequest,
14502
14902
  witnessBuilder
14503
14903
  };
14504
14904
  //# sourceMappingURL=index.js.map