@0xpolygonid/js-sdk 1.10.4 → 1.11.1

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.
Files changed (105) hide show
  1. package/README.md +11 -0
  2. package/dist/browser/esm/index.js +8360 -17398
  3. package/dist/browser/esm/index.js.map +1 -1
  4. package/dist/browser/umd/index.js +8383 -17416
  5. package/dist/browser/umd/index.js.map +1 -1
  6. package/dist/node/cjs/blockchain/index.js +17 -0
  7. package/dist/node/cjs/blockchain/transaction-service.js +55 -0
  8. package/dist/node/cjs/credentials/credential-wallet.js +1 -1
  9. package/dist/node/cjs/credentials/status/reverse-sparse-merkle-tree.js +5 -1
  10. package/dist/node/cjs/iden3comm/handlers/auth.js +62 -27
  11. package/dist/node/cjs/iden3comm/handlers/common.js +4 -4
  12. package/dist/node/cjs/iden3comm/handlers/contract-request.js +34 -15
  13. package/dist/node/cjs/iden3comm/handlers/credential-proposal.js +33 -14
  14. package/dist/node/cjs/iden3comm/handlers/fetch.js +65 -34
  15. package/dist/node/cjs/iden3comm/handlers/index.js +1 -0
  16. package/dist/node/cjs/iden3comm/handlers/message-handler.js +96 -0
  17. package/dist/node/cjs/iden3comm/handlers/revocation-status.js +58 -30
  18. package/dist/node/cjs/iden3comm/packageManager.js +16 -0
  19. package/dist/node/cjs/iden3comm/packers/jws.js +63 -49
  20. package/dist/node/cjs/iden3comm/packers/plain.js +13 -3
  21. package/dist/node/cjs/iden3comm/packers/zkp.js +9 -0
  22. package/dist/node/cjs/iden3comm/utils/did.js +11 -11
  23. package/dist/node/cjs/identity/identity-wallet.js +228 -43
  24. package/dist/node/cjs/index.js +1 -0
  25. package/dist/node/cjs/kms/key-providers/bjj-provider.js +9 -0
  26. package/dist/node/cjs/kms/key-providers/ed25519-provider.js +14 -3
  27. package/dist/node/cjs/kms/key-providers/index.js +1 -1
  28. package/dist/node/cjs/kms/key-providers/{sec256k1-provider.js → secp256k1-provider.js} +37 -26
  29. package/dist/node/cjs/kms/kms.js +15 -0
  30. package/dist/node/cjs/proof/proof-service.js +3 -33
  31. package/dist/node/cjs/proof/provers/inputs-generator.js +2 -7
  32. package/dist/node/cjs/storage/blockchain/onchain-revocation.js +4 -12
  33. package/dist/node/cjs/storage/blockchain/onchain-zkp-verifier.js +3 -10
  34. package/dist/node/cjs/storage/blockchain/state.js +39 -10
  35. package/dist/node/cjs/utils/did-helper.js +36 -2
  36. package/dist/node/cjs/verifiable/constants.js +2 -1
  37. package/dist/node/esm/blockchain/index.js +1 -0
  38. package/dist/node/esm/blockchain/transaction-service.js +51 -0
  39. package/dist/node/esm/credentials/credential-wallet.js +1 -1
  40. package/dist/node/esm/credentials/status/reverse-sparse-merkle-tree.js +6 -2
  41. package/dist/node/esm/iden3comm/handlers/auth.js +62 -27
  42. package/dist/node/esm/iden3comm/handlers/common.js +4 -4
  43. package/dist/node/esm/iden3comm/handlers/contract-request.js +34 -15
  44. package/dist/node/esm/iden3comm/handlers/credential-proposal.js +33 -14
  45. package/dist/node/esm/iden3comm/handlers/fetch.js +65 -34
  46. package/dist/node/esm/iden3comm/handlers/index.js +1 -0
  47. package/dist/node/esm/iden3comm/handlers/message-handler.js +91 -0
  48. package/dist/node/esm/iden3comm/handlers/revocation-status.js +58 -30
  49. package/dist/node/esm/iden3comm/packageManager.js +16 -0
  50. package/dist/node/esm/iden3comm/packers/jws.js +63 -49
  51. package/dist/node/esm/iden3comm/packers/plain.js +13 -3
  52. package/dist/node/esm/iden3comm/packers/zkp.js +9 -0
  53. package/dist/node/esm/iden3comm/utils/did.js +11 -8
  54. package/dist/node/esm/identity/identity-wallet.js +230 -45
  55. package/dist/node/esm/index.js +1 -0
  56. package/dist/node/esm/kms/key-providers/bjj-provider.js +10 -1
  57. package/dist/node/esm/kms/key-providers/ed25519-provider.js +14 -3
  58. package/dist/node/esm/kms/key-providers/index.js +1 -1
  59. package/dist/node/esm/kms/key-providers/secp256k1-provider.js +85 -0
  60. package/dist/node/esm/kms/kms.js +15 -0
  61. package/dist/node/esm/proof/proof-service.js +4 -34
  62. package/dist/node/esm/proof/provers/inputs-generator.js +3 -8
  63. package/dist/node/esm/storage/blockchain/onchain-revocation.js +4 -12
  64. package/dist/node/esm/storage/blockchain/onchain-zkp-verifier.js +3 -10
  65. package/dist/node/esm/storage/blockchain/state.js +39 -10
  66. package/dist/node/esm/utils/did-helper.js +33 -1
  67. package/dist/node/esm/verifiable/constants.js +2 -1
  68. package/dist/types/blockchain/index.d.ts +1 -0
  69. package/dist/types/blockchain/transaction-service.d.ts +80 -0
  70. package/dist/types/iden3comm/handlers/auth.d.ts +17 -2
  71. package/dist/types/iden3comm/handlers/common.d.ts +2 -2
  72. package/dist/types/iden3comm/handlers/contract-request.d.ts +10 -2
  73. package/dist/types/iden3comm/handlers/credential-proposal.d.ts +5 -2
  74. package/dist/types/iden3comm/handlers/fetch.d.ts +15 -6
  75. package/dist/types/iden3comm/handlers/index.d.ts +1 -0
  76. package/dist/types/iden3comm/handlers/message-handler.d.ts +83 -0
  77. package/dist/types/iden3comm/handlers/revocation-status.d.ts +18 -2
  78. package/dist/types/iden3comm/packageManager.d.ts +10 -0
  79. package/dist/types/iden3comm/packers/jws.d.ts +9 -0
  80. package/dist/types/iden3comm/packers/plain.d.ts +10 -2
  81. package/dist/types/iden3comm/packers/zkp.d.ts +7 -0
  82. package/dist/types/iden3comm/types/packageManager.d.ts +10 -0
  83. package/dist/types/iden3comm/types/packer.d.ts +24 -2
  84. package/dist/types/iden3comm/types/protocol/auth.d.ts +5 -15
  85. package/dist/types/iden3comm/types/protocol/contract-request.d.ts +2 -6
  86. package/dist/types/iden3comm/types/protocol/credentials.d.ts +7 -44
  87. package/dist/types/iden3comm/types/protocol/messages.d.ts +2 -9
  88. package/dist/types/iden3comm/types/protocol/proof.d.ts +3 -16
  89. package/dist/types/iden3comm/types/protocol/revocation.d.ts +3 -16
  90. package/dist/types/identity/identity-wallet.d.ts +80 -7
  91. package/dist/types/index.d.ts +1 -0
  92. package/dist/types/kms/key-providers/bjj-provider.d.ts +1 -0
  93. package/dist/types/kms/key-providers/ed25519-provider.d.ts +10 -2
  94. package/dist/types/kms/key-providers/index.d.ts +1 -1
  95. package/dist/types/kms/key-providers/{sec256k1-provider.d.ts → secp256k1-provider.d.ts} +15 -9
  96. package/dist/types/kms/kms.d.ts +18 -0
  97. package/dist/types/proof/proof-service.d.ts +2 -2
  98. package/dist/types/storage/blockchain/onchain-revocation.d.ts +1 -0
  99. package/dist/types/storage/blockchain/state.d.ts +7 -2
  100. package/dist/types/storage/interfaces/state.d.ts +26 -2
  101. package/dist/types/utils/did-helper.d.ts +9 -1
  102. package/dist/types/verifiable/constants.d.ts +1 -0
  103. package/package.json +10 -12
  104. package/LICENSE +0 -691
  105. package/dist/node/esm/kms/key-providers/sec256k1-provider.js +0 -71
@@ -37,6 +37,15 @@ export interface IKeyProvider {
37
37
  * @returns `Promise<KmsKeyId>`
38
38
  */
39
39
  newPrivateKeyFromSeed(seed: Uint8Array): Promise<KmsKeyId>;
40
+ /**
41
+ * Verifies a message signature using the provided key ID.
42
+ *
43
+ * @param message - The message bytes to verify.
44
+ * @param signatureHex - The signature in hexadecimal format.
45
+ * @param keyId - The KMS key ID used to verify the signature.
46
+ * @returns A promise that resolves to a boolean indicating whether the signature is valid.
47
+ */
48
+ verify(message: Uint8Array, signatureHex: string, keyId: KmsKeyId): Promise<boolean>;
40
49
  }
41
50
  /**
42
51
  * Key management system class contains different key providers.
@@ -79,4 +88,13 @@ export declare class KMS {
79
88
  sign(keyId: KmsKeyId, data: Uint8Array, opts?: {
80
89
  [key: string]: unknown;
81
90
  }): Promise<Uint8Array>;
91
+ /**
92
+ * Verifies a signature against the provided data and key ID.
93
+ *
94
+ * @param data - The data to verify the signature against.
95
+ * @param signatureHex - The signature to verify, in hexadecimal format.
96
+ * @param keyId - The key ID to use for verification.
97
+ * @returns A promise that resolves to a boolean indicating whether the signature is valid.
98
+ */
99
+ verify(data: Uint8Array, signatureHex: string, keyId: KmsKeyId): Promise<boolean>;
82
100
  }
@@ -90,7 +90,6 @@ export interface IProofService {
90
90
  * @param {DID} did - identity that will transit state
91
91
  * @param {TreeState} oldTreeState - previous tree state
92
92
  * @param {boolean} isOldStateGenesis - is a transition state is done from genesis state
93
- * @param {IStateStorage} stateStorage - storage of identity states (only eth based storage currently)
94
93
  * @param {Signer} ethSigner - signer for transaction
95
94
  * @returns `{Promise<string>}` - transaction hash is returned
96
95
  */
@@ -133,7 +132,8 @@ export declare class ProofService implements IProofService {
133
132
  /** {@inheritdoc IProofService.generateProof} */
134
133
  generateProof(proofReq: ZeroKnowledgeProofRequest, identifier: DID, opts?: ProofGenerationOptions): Promise<ZeroKnowledgeProofResponse>;
135
134
  /** {@inheritdoc IProofService.transitState} */
136
- transitState(did: DID, oldTreeState: TreeState, isOldStateGenesis: boolean, stateStorage: IStateStorage, ethSigner: Signer): Promise<string>;
135
+ transitState(did: DID, oldTreeState: TreeState, isOldStateGenesis: boolean, stateStorage: IStateStorage, // for compatibility with previous versions we leave this parameter
136
+ ethSigner: Signer): Promise<string>;
137
137
  private generateInputs;
138
138
  private toCircuitsQuery;
139
139
  private loadLdContext;
@@ -13,6 +13,7 @@ export declare class OnChainRevocationStorage {
13
13
  private _signer?;
14
14
  private readonly _contract;
15
15
  private readonly _provider;
16
+ private readonly _transactionService;
16
17
  /**
17
18
  *
18
19
  * Creates an instance of OnChainIssuer.
@@ -1,6 +1,6 @@
1
1
  import { RootInfo, StateProof } from './../entities/state';
2
2
  import { ZKProof } from '@iden3/js-jwz';
3
- import { IStateStorage } from '../interfaces/state';
3
+ import { IStateStorage, UserStateTransitionInfo } from '../interfaces/state';
4
4
  import { Contract, JsonRpcProvider, Signer } from 'ethers';
5
5
  import { StateInfo } from '../entities/state';
6
6
  /**
@@ -36,7 +36,8 @@ export declare const defaultEthConnectionConfig: EthConnectionConfig;
36
36
  export declare class EthStateStorage implements IStateStorage {
37
37
  private readonly ethConfig;
38
38
  readonly stateContract: Contract;
39
- readonly provider: JsonRpcProvider;
39
+ private readonly provider;
40
+ private readonly _transactionService;
40
41
  /**
41
42
  * Creates an instance of EthStateStorage.
42
43
  * @param {EthConnectionConfig} [ethConfig=defaultEthConnectionConfig]
@@ -48,10 +49,14 @@ export declare class EthStateStorage implements IStateStorage {
48
49
  getStateInfoByIdAndState(id: bigint, state: bigint): Promise<StateInfo>;
49
50
  /** {@inheritdoc IStateStorage.publishState} */
50
51
  publishState(proof: ZKProof, signer: Signer): Promise<string>;
52
+ /** {@inheritdoc IStateStorage.publishStateGeneric} */
53
+ publishStateGeneric(signer: Signer, userStateTransitionInfo: UserStateTransitionInfo): Promise<string>;
51
54
  /** {@inheritdoc IStateStorage.getGISTProof} */
52
55
  getGISTProof(id: bigint): Promise<StateProof>;
53
56
  /** {@inheritdoc IStateStorage.getGISTRootInfo} */
54
57
  getGISTRootInfo(root: bigint, id: bigint): Promise<RootInfo>;
58
+ /** {@inheritdoc IStateStorage.getRpcProvider} */
59
+ getRpcProvider(): JsonRpcProvider;
55
60
  private getStateContractAndProviderForId;
56
61
  private networkByChainId;
57
62
  }
@@ -1,6 +1,16 @@
1
1
  import { ZKProof } from '@iden3/js-jwz';
2
- import { Signer } from 'ethers';
2
+ import { JsonRpcProvider, Signer } from 'ethers';
3
3
  import { RootInfo, StateInfo, StateProof } from '../entities/state';
4
+ import { Id } from '@iden3/js-iden3-core';
5
+ import { Hash } from '@iden3/js-merkletree';
6
+ export interface UserStateTransitionInfo {
7
+ userId: Id;
8
+ oldUserState: Hash;
9
+ newUserState: Hash;
10
+ isOldStateGenesis: boolean;
11
+ methodId: bigint;
12
+ methodParams: string;
13
+ }
4
14
  /**
5
15
  * Interface that defines methods for state storage
6
16
  *
@@ -30,7 +40,15 @@ export interface IStateStorage {
30
40
  * @param {Signer} signer - signer of transaction
31
41
  * @returns `Promise<string>` - transaction identifier
32
42
  */
33
- publishState(proof: ZKProof, signer: Signer): Promise<string>;
43
+ publishState(proof: ZKProof | undefined, signer: Signer): Promise<string>;
44
+ /**
45
+ * method to publish state onchain
46
+ *
47
+ * @param {Signer} signer - signer of transaction
48
+ * @param {UserStateTransitionInfo} userStateTransitionInfo - user state transition information
49
+ * @returns `Promise<string>` - transaction identifier
50
+ */
51
+ publishStateGeneric(signer: Signer, userStateTransitionInfo?: UserStateTransitionInfo): Promise<string>;
34
52
  /**
35
53
  * generates proof of inclusion / non-inclusion to global identity state for given identity
36
54
  *
@@ -46,4 +64,10 @@ export interface IStateStorage {
46
64
  * @returns `Promise<RootInfo>`
47
65
  */
48
66
  getGISTRootInfo(root: bigint, userId: bigint): Promise<RootInfo>;
67
+ /**
68
+ * gets RPC provider
69
+ *
70
+ * @returns `Promise<JsonRpcProvider>`
71
+ */
72
+ getRpcProvider(): JsonRpcProvider;
49
73
  }
@@ -4,11 +4,18 @@ import { VerificationMethod } from 'did-resolver';
4
4
  /**
5
5
  * Checks if state is genesis state
6
6
  *
7
- * @param {string} did - did
7
+ * @param {DID} did - did
8
8
  * @param {bigint|string} state - hash on bigInt or hex string format
9
9
  * @returns boolean
10
10
  */
11
11
  export declare function isGenesisState(did: DID, state: bigint | string): boolean;
12
+ /**
13
+ * Checks if DID is an ethereum identity
14
+ *
15
+ * @param {DID} did - did
16
+ * @returns boolean
17
+ */
18
+ export declare function isEthereumIdentity(did: DID): boolean;
12
19
  export declare const buildVerifierId: (address: string, info: {
13
20
  method: string;
14
21
  blockchain: string;
@@ -16,3 +23,4 @@ export declare const buildVerifierId: (address: string, info: {
16
23
  }) => Id;
17
24
  export declare const validateDIDDocumentAuth: (did: DID, resolverURL: string, state: Hash) => Promise<void>;
18
25
  export declare const resolveDIDDocumentAuth: (did: DID, resolveURL: string, state?: Hash) => Promise<VerificationMethod | undefined>;
26
+ export declare const buildDIDFromEthPubKey: (didType: Uint8Array, pubKeyEth: string) => DID;
@@ -4,6 +4,7 @@ export declare const VerifiableConstants: Readonly<{
4
4
  FiELD_IS_EMPTY: string;
5
5
  CONTEXT_TYPE_IS_EMPTY: string;
6
6
  IDENTITY_DOES_NOT_EXIST: string;
7
+ NO_AUTH_CRED_FOUND: string;
7
8
  };
8
9
  CREDENTIAL_TYPE: {
9
10
  W3C_VERIFIABLE_CREDENTIAL: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xpolygonid/js-sdk",
3
- "version": "1.10.4",
3
+ "version": "1.11.1",
4
4
  "description": "SDK to work with Polygon ID",
5
5
  "main": "dist/node/cjs/index.js",
6
6
  "module": "dist/node/esm/index.js",
@@ -25,7 +25,7 @@
25
25
  "build": "npm run clean && npm run build:node && npm run build:browser",
26
26
  "build:node": "npm run build:tsc && npm run build:esm",
27
27
  "build:esm": "tsc --outDir dist/node/esm --declaration --declarationDir dist/types",
28
- "build:browser": "rollup -c rollup.config.mjs --failAfterWarnings",
28
+ "build:browser": "rollup -c rollup.config.mjs --failAfterWarnings --filterLogs \"/* @__PURE__ */\"",
29
29
  "build:tsc": "tsc --module commonjs --outDir dist/node/cjs",
30
30
  "doc:extract": "ts-node ./scripts/doc-extract.ts",
31
31
  "doc:documenter": "ts-node ./scripts/doc-documenter.ts",
@@ -43,7 +43,7 @@
43
43
  "url": "https://github.com/0xPolygonID/js-sdk.git"
44
44
  },
45
45
  "author": "",
46
- "license": "AGPL-3.0",
46
+ "license": "MIT or Apache-2.0",
47
47
  "bugs": {
48
48
  "url": "https://github.com/0xPolygonID/js-sdk/issues"
49
49
  },
@@ -53,18 +53,17 @@
53
53
  "@iden3/eslint-config": "https://github.com/iden3/eslint-config",
54
54
  "@microsoft/api-documenter": "^7.8.20",
55
55
  "@microsoft/api-extractor": "^7.9.0",
56
- "@rollup/plugin-commonjs": "^25.0.4",
57
- "@rollup/plugin-json": "^6.0.1",
58
- "@rollup/plugin-node-resolve": "^15.2.1",
59
- "@rollup/plugin-replace": "^5.0.3",
56
+ "@rollup/plugin-commonjs": "^25.0.7",
57
+ "@rollup/plugin-json": "^6.1.0",
58
+ "@rollup/plugin-node-resolve": "^15.2.3",
59
+ "@rollup/plugin-replace": "^5.0.5",
60
60
  "@rollup/plugin-terser": "^0.4.4",
61
- "@rollup/plugin-typescript": "^11.1.4",
61
+ "@rollup/plugin-typescript": "^11.1.6",
62
62
  "@rollup/plugin-virtual": "^3.0.2",
63
63
  "@typechain/ethers-v6": "^0.5.1",
64
64
  "@types/chai": "^4.3.9",
65
65
  "@types/chai-as-promised": "^7.1.7",
66
66
  "@types/chai-spies": "^1.0.5",
67
- "@types/elliptic": "^6.4.16",
68
67
  "@types/fs-extra": "^11.0.1",
69
68
  "@types/jsonld": "^1.5.11",
70
69
  "@types/mocha": "^10.0.3",
@@ -81,7 +80,7 @@
81
80
  "mocha": "10.2.0",
82
81
  "prettier": "^2.7.1",
83
82
  "rimraf": "^5.0.5",
84
- "rollup": "^4.2.0",
83
+ "rollup": "^4.14.3",
85
84
  "ts-loader": "^9.4.1",
86
85
  "ts-node": "^10.9.1",
87
86
  "typescript": "^4.8.4"
@@ -100,9 +99,8 @@
100
99
  "@noble/curves": "^1.4.0",
101
100
  "ajv": "8.12.0",
102
101
  "ajv-formats": "2.1.1",
103
- "did-jwt": "6.11.6",
102
+ "did-jwt": "8.0.4",
104
103
  "did-resolver": "4.1.0",
105
- "elliptic": "6.5.4",
106
104
  "ethers": "6.8.0",
107
105
  "idb-keyval": "6.2.0",
108
106
  "js-sha3": "0.9.3",