@ayanworks/credo-polygon-w3c-module 1.0.1-alpha.1 → 2.0.0-alpha-20260210061550

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 (89) hide show
  1. package/build/PolygonApi.d.mts +53 -0
  2. package/build/PolygonApi.d.mts.map +1 -0
  3. package/build/PolygonApi.mjs +41 -0
  4. package/build/PolygonApi.mjs.map +1 -0
  5. package/build/PolygonModule.d.mts +14 -0
  6. package/build/PolygonModule.d.mts.map +1 -0
  7. package/build/PolygonModule.mjs +31 -0
  8. package/build/PolygonModule.mjs.map +1 -0
  9. package/build/PolygonModuleConfig.d.mts +28 -0
  10. package/build/PolygonModuleConfig.d.mts.map +1 -0
  11. package/build/PolygonModuleConfig.mjs +14 -0
  12. package/build/PolygonModuleConfig.mjs.map +1 -0
  13. package/build/_virtual/_@oxc-project_runtime@0.110.0/helpers/decorate.mjs +10 -0
  14. package/build/_virtual/_@oxc-project_runtime@0.110.0/helpers/decorateMetadata.mjs +7 -0
  15. package/build/_virtual/_@oxc-project_runtime@0.110.0/helpers/decorateParam.mjs +9 -0
  16. package/build/dids/PolygonDidRegistrar.d.mts +39 -0
  17. package/build/dids/PolygonDidRegistrar.d.mts.map +1 -0
  18. package/build/dids/PolygonDidRegistrar.mjs +260 -0
  19. package/build/dids/PolygonDidRegistrar.mjs.map +1 -0
  20. package/build/dids/PolygonDidResolver.d.mts +14 -0
  21. package/build/dids/PolygonDidResolver.d.mts.map +1 -0
  22. package/build/dids/PolygonDidResolver.mjs +38 -0
  23. package/build/dids/PolygonDidResolver.mjs.map +1 -0
  24. package/build/dids/didPolygonUtil.d.mts +2 -0
  25. package/build/dids/didPolygonUtil.mjs +64 -0
  26. package/build/dids/didPolygonUtil.mjs.map +1 -0
  27. package/build/dids/index.d.mts +3 -0
  28. package/build/dids/index.mjs +3 -0
  29. package/build/index.d.mts +10 -0
  30. package/build/index.mjs +11 -0
  31. package/build/ledger/PolygonLedgerService.d.mts +116 -0
  32. package/build/ledger/PolygonLedgerService.d.mts.map +1 -0
  33. package/build/ledger/PolygonLedgerService.mjs +172 -0
  34. package/build/ledger/PolygonLedgerService.mjs.map +1 -0
  35. package/build/ledger/index.d.mts +1 -0
  36. package/build/ledger/index.mjs +1 -0
  37. package/build/signature-suites/EcdsaSecp256k1Signature2019.mjs +117 -0
  38. package/build/signature-suites/EcdsaSecp256k1Signature2019.mjs.map +1 -0
  39. package/build/signature-suites/index.mjs +1 -0
  40. package/build/utils/index.d.mts +1 -0
  41. package/build/utils/index.mjs +1 -0
  42. package/build/utils/utils.d.mts +12 -0
  43. package/build/utils/utils.d.mts.map +1 -0
  44. package/build/utils/utils.mjs +39 -0
  45. package/build/utils/utils.mjs.map +1 -0
  46. package/package.json +27 -45
  47. package/README.md +0 -30
  48. package/build/PolygonApi.d.ts +0 -35
  49. package/build/PolygonApi.js +0 -42
  50. package/build/PolygonApi.js.map +0 -1
  51. package/build/PolygonModule.d.ts +0 -10
  52. package/build/PolygonModule.js +0 -31
  53. package/build/PolygonModule.js.map +0 -1
  54. package/build/PolygonModuleConfig.d.ts +0 -18
  55. package/build/PolygonModuleConfig.js +0 -14
  56. package/build/PolygonModuleConfig.js.map +0 -1
  57. package/build/dids/PolygonDidRegistrar.d.ts +0 -30
  58. package/build/dids/PolygonDidRegistrar.js +0 -267
  59. package/build/dids/PolygonDidRegistrar.js.map +0 -1
  60. package/build/dids/PolygonDidResolver.d.ts +0 -9
  61. package/build/dids/PolygonDidResolver.js +0 -40
  62. package/build/dids/PolygonDidResolver.js.map +0 -1
  63. package/build/dids/didPolygonUtil.d.ts +0 -7
  64. package/build/dids/didPolygonUtil.js +0 -98
  65. package/build/dids/didPolygonUtil.js.map +0 -1
  66. package/build/dids/index.d.ts +0 -3
  67. package/build/dids/index.js +0 -20
  68. package/build/dids/index.js.map +0 -1
  69. package/build/index.d.ts +0 -5
  70. package/build/index.js +0 -28
  71. package/build/index.js.map +0 -1
  72. package/build/ledger/PolygonLedgerService.d.ts +0 -87
  73. package/build/ledger/PolygonLedgerService.js +0 -210
  74. package/build/ledger/PolygonLedgerService.js.map +0 -1
  75. package/build/ledger/index.d.ts +0 -1
  76. package/build/ledger/index.js +0 -18
  77. package/build/ledger/index.js.map +0 -1
  78. package/build/signature-suites/EcdsaSecp256k1Signature2019.d.ts +0 -60
  79. package/build/signature-suites/EcdsaSecp256k1Signature2019.js +0 -126
  80. package/build/signature-suites/EcdsaSecp256k1Signature2019.js.map +0 -1
  81. package/build/signature-suites/index.d.ts +0 -1
  82. package/build/signature-suites/index.js +0 -18
  83. package/build/signature-suites/index.js.map +0 -1
  84. package/build/utils/index.d.ts +0 -1
  85. package/build/utils/index.js +0 -18
  86. package/build/utils/index.js.map +0 -1
  87. package/build/utils/utils.d.ts +0 -7
  88. package/build/utils/utils.js +0 -38
  89. package/build/utils/utils.js.map +0 -1
@@ -0,0 +1,53 @@
1
+ import { CreateSchemaOperationOptions, DidOperationOptions, PolygonLedgerService } from "./ledger/PolygonLedgerService.mjs";
2
+ import "./ledger/index.mjs";
3
+ import { AgentContext } from "@credo-ts/core";
4
+
5
+ //#region src/PolygonApi.d.ts
6
+ declare class PolygonApi {
7
+ private agentContext;
8
+ private ledgerService;
9
+ constructor(agentContext: AgentContext, ledgerService: PolygonLedgerService);
10
+ createSchema({
11
+ did,
12
+ schemaName,
13
+ schema
14
+ }: {
15
+ did: string;
16
+ schemaName: string;
17
+ schema: object;
18
+ }): Promise<{
19
+ did: string;
20
+ schemaId: string;
21
+ schemaTxnHash: any;
22
+ resourceTxnHash: any;
23
+ tnxSchemaId?: undefined;
24
+ schemaTxhash?: undefined;
25
+ schemaState?: undefined;
26
+ } | {
27
+ tnxSchemaId: string;
28
+ schemaTxhash: string;
29
+ schemaState: {
30
+ state: string;
31
+ reason: string;
32
+ };
33
+ did?: undefined;
34
+ schemaId?: undefined;
35
+ schemaTxnHash?: undefined;
36
+ resourceTxnHash?: undefined;
37
+ }>;
38
+ getSchemaById(did: string, schemaId: string): Promise<any>;
39
+ estimateFeeForDidOperation(options: DidOperationOptions): Promise<{
40
+ transactionFee: string;
41
+ gasLimit: string;
42
+ gasPrice: string;
43
+ maxFeePerGas: number;
44
+ maxPriorityFeePerGas: number;
45
+ network: string;
46
+ chainId: string;
47
+ method: string;
48
+ } | null | undefined>;
49
+ estimateFeeForSchemaOperation(options: CreateSchemaOperationOptions): Promise<{} | undefined>;
50
+ }
51
+ //#endregion
52
+ export { PolygonApi };
53
+ //# sourceMappingURL=PolygonApi.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolygonApi.d.mts","names":[],"sources":["../src/PolygonApi.ts"],"mappings":";;;;;cAMa,UAAA;EAAA,QACH,YAAA;EAAA,QACA,aAAA;cAGgB,YAAA,EAAc,YAAA,EACN,aAAA,EAAe,oBAAA;EAMlC,YAAA,CAAA;IAAe,GAAA;IAAK,UAAA;IAAY;EAAA;IAAY,GAAA;IAAa,UAAA;IAAoB,MAAA;EAAA,IAAgB,OAAA;;;;;;;;;;;;;;;;;;;;EAK7F,aAAA,CAAc,GAAA,UAAa,QAAA,WAAgB,OAAA;EAK3C,0BAAA,CAA2B,OAAA,EAAS,mBAAA,GAAmB,OAAA;;;;;;;;;;EAKvD,6BAAA,CAA8B,OAAA,EAAS,4BAAA,GAA4B,OAAA;AAAA"}
@@ -0,0 +1,41 @@
1
+ import { __decorateMetadata } from "./_virtual/_@oxc-project_runtime@0.110.0/helpers/decorateMetadata.mjs";
2
+ import { __decorate } from "./_virtual/_@oxc-project_runtime@0.110.0/helpers/decorate.mjs";
3
+ import { PolygonLedgerService } from "./ledger/PolygonLedgerService.mjs";
4
+ import "./ledger/index.mjs";
5
+ import { __decorateParam } from "./_virtual/_@oxc-project_runtime@0.110.0/helpers/decorateParam.mjs";
6
+ import { AgentContext, inject, injectable } from "@credo-ts/core";
7
+
8
+ //#region src/PolygonApi.ts
9
+ var _ref, _ref2;
10
+ let PolygonApi = class PolygonApi {
11
+ constructor(agentContext, ledgerService) {
12
+ this.agentContext = agentContext;
13
+ this.ledgerService = ledgerService;
14
+ }
15
+ async createSchema({ did, schemaName, schema }) {
16
+ return await this.ledgerService.createSchema(this.agentContext, {
17
+ did,
18
+ schemaName,
19
+ schema
20
+ });
21
+ }
22
+ async getSchemaById(did, schemaId) {
23
+ return await this.ledgerService.getSchemaByDidAndSchemaId(this.agentContext, did, schemaId);
24
+ }
25
+ async estimateFeeForDidOperation(options) {
26
+ return await this.ledgerService.estimateFeeForDidOperation(this.agentContext, options);
27
+ }
28
+ async estimateFeeForSchemaOperation(options) {
29
+ return await this.ledgerService.estimateFeeForSchemaOperation(this.agentContext, options);
30
+ }
31
+ };
32
+ PolygonApi = __decorate([
33
+ injectable(),
34
+ __decorateParam(0, inject(AgentContext)),
35
+ __decorateParam(1, inject(PolygonLedgerService)),
36
+ __decorateMetadata("design:paramtypes", [typeof (_ref = typeof AgentContext !== "undefined" && AgentContext) === "function" ? _ref : Object, typeof (_ref2 = typeof PolygonLedgerService !== "undefined" && PolygonLedgerService) === "function" ? _ref2 : Object])
37
+ ], PolygonApi);
38
+
39
+ //#endregion
40
+ export { PolygonApi };
41
+ //# sourceMappingURL=PolygonApi.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolygonApi.mjs","names":[],"sources":["../src/PolygonApi.ts"],"sourcesContent":["import { AgentContext, inject, injectable } from '@credo-ts/core'\nimport type { CreateSchemaOperationOptions, DidOperationOptions } from './ledger'\n\nimport { PolygonLedgerService } from './ledger'\n\n@injectable()\nexport class PolygonApi {\n private agentContext: AgentContext\n private ledgerService: PolygonLedgerService\n\n public constructor(\n @inject(AgentContext) agentContext: AgentContext,\n @inject(PolygonLedgerService) ledgerService: PolygonLedgerService\n ) {\n this.agentContext = agentContext\n this.ledgerService = ledgerService\n }\n\n public async createSchema({ did, schemaName, schema }: { did: string; schemaName: string; schema: object }) {\n const schemaDetails = await this.ledgerService.createSchema(this.agentContext, { did, schemaName, schema })\n return schemaDetails\n }\n\n public async getSchemaById(did: string, schemaId: string) {\n const schemaDetails = await this.ledgerService.getSchemaByDidAndSchemaId(this.agentContext, did, schemaId)\n return schemaDetails\n }\n\n public async estimateFeeForDidOperation(options: DidOperationOptions) {\n const estimatedFee = await this.ledgerService.estimateFeeForDidOperation(this.agentContext, options)\n return estimatedFee\n }\n\n public async estimateFeeForSchemaOperation(options: CreateSchemaOperationOptions) {\n const estimatedFee = await this.ledgerService.estimateFeeForSchemaOperation(this.agentContext, options)\n return estimatedFee\n }\n}\n"],"mappings":";;;;;;;;;AAMO,uBAAM,WAAW;CAItB,AAAO,YACL,AAAsB,cACtB,AAA8B,eAC9B;AACA,OAAK,eAAe;AACpB,OAAK,gBAAgB;;CAGvB,MAAa,aAAa,EAAE,KAAK,YAAY,UAA+D;AAE1G,SADsB,MAAM,KAAK,cAAc,aAAa,KAAK,cAAc;GAAE;GAAK;GAAY;GAAQ,CAAC;;CAI7G,MAAa,cAAc,KAAa,UAAkB;AAExD,SADsB,MAAM,KAAK,cAAc,0BAA0B,KAAK,cAAc,KAAK,SAAS;;CAI5G,MAAa,2BAA2B,SAA8B;AAEpE,SADqB,MAAM,KAAK,cAAc,2BAA2B,KAAK,cAAc,QAAQ;;CAItG,MAAa,8BAA8B,SAAuC;AAEhF,SADqB,MAAM,KAAK,cAAc,8BAA8B,KAAK,cAAc,QAAQ;;;;CA7B1G,YAAY;oBAMR,OAAO,aAAa;oBACpB,OAAO,qBAAqB"}
@@ -0,0 +1,14 @@
1
+ import { PolygonModuleConfig, PolygonModuleConfigOptions } from "./PolygonModuleConfig.mjs";
2
+ import { PolygonApi } from "./PolygonApi.mjs";
3
+ import { DependencyManager, Module } from "@credo-ts/core";
4
+
5
+ //#region src/PolygonModule.d.ts
6
+ declare class PolygonModule implements Module {
7
+ readonly config: PolygonModuleConfig;
8
+ readonly api: typeof PolygonApi;
9
+ constructor(options: PolygonModuleConfigOptions);
10
+ register(dependencyManager: DependencyManager): void;
11
+ }
12
+ //#endregion
13
+ export { PolygonModule };
14
+ //# sourceMappingURL=PolygonModule.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolygonModule.d.mts","names":[],"sources":["../src/PolygonModule.ts"],"mappings":";;;;;cAca,aAAA,YAAyB,MAAA;EAAA,SACpB,MAAA,EAAQ,mBAAA;EAAA,SACR,GAAA,SAAG,UAAA;cAEA,OAAA,EAAS,0BAAA;EAIrB,QAAA,CAAS,iBAAA,EAAmB,iBAAA;AAAA"}
@@ -0,0 +1,31 @@
1
+ import { EcdsaSecp256k1Signature2019 } from "./signature-suites/EcdsaSecp256k1Signature2019.mjs";
2
+ import { PolygonModuleConfig } from "./PolygonModuleConfig.mjs";
3
+ import "./signature-suites/index.mjs";
4
+ import { PolygonLedgerService } from "./ledger/PolygonLedgerService.mjs";
5
+ import "./ledger/index.mjs";
6
+ import { PolygonApi } from "./PolygonApi.mjs";
7
+ import { SignatureSuiteToken, VERIFICATION_METHOD_TYPE_ECDSA_SECP256K1_VERIFICATION_KEY_2019 } from "@credo-ts/core";
8
+ import { Secp256k1PublicJwk } from "@credo-ts/core/kms";
9
+
10
+ //#region src/PolygonModule.ts
11
+ var PolygonModule = class {
12
+ constructor(options) {
13
+ this.api = PolygonApi;
14
+ this.config = new PolygonModuleConfig(options);
15
+ }
16
+ register(dependencyManager) {
17
+ dependencyManager.registerInstance(PolygonModuleConfig, this.config);
18
+ dependencyManager.registerSingleton(PolygonLedgerService);
19
+ dependencyManager.registerContextScoped(PolygonApi);
20
+ dependencyManager.registerInstance(SignatureSuiteToken, {
21
+ suiteClass: EcdsaSecp256k1Signature2019,
22
+ proofType: "EcdsaSecp256k1Signature2019",
23
+ verificationMethodTypes: [VERIFICATION_METHOD_TYPE_ECDSA_SECP256K1_VERIFICATION_KEY_2019],
24
+ supportedPublicJwkTypes: [Secp256k1PublicJwk]
25
+ });
26
+ }
27
+ };
28
+
29
+ //#endregion
30
+ export { PolygonModule };
31
+ //# sourceMappingURL=PolygonModule.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolygonModule.mjs","names":[],"sources":["../src/PolygonModule.ts"],"sourcesContent":["import {\n type DependencyManager,\n type Module,\n SignatureSuiteToken,\n type SuiteInfo,\n VERIFICATION_METHOD_TYPE_ECDSA_SECP256K1_VERIFICATION_KEY_2019,\n} from '@credo-ts/core'\nimport { Secp256k1PublicJwk } from '@credo-ts/core/kms'\nimport { PolygonLedgerService } from './ledger'\nimport { PolygonApi } from './PolygonApi'\nimport type { PolygonModuleConfigOptions } from './PolygonModuleConfig'\nimport { PolygonModuleConfig } from './PolygonModuleConfig'\nimport { EcdsaSecp256k1Signature2019 } from './signature-suites'\n\nexport class PolygonModule implements Module {\n public readonly config: PolygonModuleConfig\n public readonly api = PolygonApi\n\n public constructor(options: PolygonModuleConfigOptions) {\n this.config = new PolygonModuleConfig(options)\n }\n\n public register(dependencyManager: DependencyManager) {\n // Warn about experimental module\n dependencyManager.registerInstance(PolygonModuleConfig, this.config)\n\n // Services\n dependencyManager.registerSingleton(PolygonLedgerService)\n\n // Api\n dependencyManager.registerContextScoped(PolygonApi)\n\n // Signature suites.\n dependencyManager.registerInstance(SignatureSuiteToken, {\n suiteClass: EcdsaSecp256k1Signature2019,\n proofType: 'EcdsaSecp256k1Signature2019',\n verificationMethodTypes: [VERIFICATION_METHOD_TYPE_ECDSA_SECP256K1_VERIFICATION_KEY_2019],\n supportedPublicJwkTypes: [Secp256k1PublicJwk],\n } satisfies SuiteInfo)\n }\n}\n"],"mappings":";;;;;;;;;;AAcA,IAAa,gBAAb,MAA6C;CAI3C,AAAO,YAAY,SAAqC;OAFxC,MAAM;AAGpB,OAAK,SAAS,IAAI,oBAAoB,QAAQ;;CAGhD,AAAO,SAAS,mBAAsC;AAEpD,oBAAkB,iBAAiB,qBAAqB,KAAK,OAAO;AAGpE,oBAAkB,kBAAkB,qBAAqB;AAGzD,oBAAkB,sBAAsB,WAAW;AAGnD,oBAAkB,iBAAiB,qBAAqB;GACtD,YAAY;GACZ,WAAW;GACX,yBAAyB,CAAC,+DAA+D;GACzF,yBAAyB,CAAC,mBAAmB;GAC9C,CAAqB"}
@@ -0,0 +1,28 @@
1
+ //#region src/PolygonModuleConfig.d.ts
2
+ /**
3
+ * PolygonModuleConfigOptions defines the interface for the options of the PolygonModuleConfig class.
4
+ */
5
+ interface PolygonModuleConfigOptions {
6
+ rpcUrl?: string;
7
+ didContractAddress?: string;
8
+ fileServerToken?: string;
9
+ schemaManagerContractAddress?: string;
10
+ serverUrl?: string;
11
+ }
12
+ declare class PolygonModuleConfig {
13
+ readonly rpcUrl: string | undefined;
14
+ readonly didContractAddress: string | undefined;
15
+ readonly fileServerToken: string | undefined;
16
+ readonly schemaManagerContractAddress: string | undefined;
17
+ readonly serverUrl: string | undefined;
18
+ constructor({
19
+ didContractAddress,
20
+ fileServerToken,
21
+ rpcUrl,
22
+ schemaManagerContractAddress,
23
+ serverUrl
24
+ }: PolygonModuleConfigOptions);
25
+ }
26
+ //#endregion
27
+ export { PolygonModuleConfig, PolygonModuleConfigOptions };
28
+ //# sourceMappingURL=PolygonModuleConfig.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolygonModuleConfig.d.mts","names":[],"sources":["../src/PolygonModuleConfig.ts"],"mappings":";;AAGA;;UAAiB,0BAAA;EACf,MAAA;EACA,kBAAA;EACA,eAAA;EACA,4BAAA;EACA,SAAA;AAAA;AAAA,cAGW,mBAAA;EAAA,SACK,MAAA;EAAA,SACA,kBAAA;EAAA,SACA,eAAA;EAAA,SACA,4BAAA;EAAA,SACA,SAAA;;IAGd,kBAAA;IACA,eAAA;IACA,MAAA;IACA,4BAAA;IACA;EAAA,GACC,0BAAA;AAAA"}
@@ -0,0 +1,14 @@
1
+ //#region src/PolygonModuleConfig.ts
2
+ var PolygonModuleConfig = class {
3
+ constructor({ didContractAddress, fileServerToken, rpcUrl, schemaManagerContractAddress, serverUrl }) {
4
+ this.rpcUrl = rpcUrl;
5
+ this.didContractAddress = didContractAddress;
6
+ this.fileServerToken = fileServerToken;
7
+ this.schemaManagerContractAddress = schemaManagerContractAddress;
8
+ this.serverUrl = serverUrl;
9
+ }
10
+ };
11
+
12
+ //#endregion
13
+ export { PolygonModuleConfig };
14
+ //# sourceMappingURL=PolygonModuleConfig.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolygonModuleConfig.mjs","names":[],"sources":["../src/PolygonModuleConfig.ts"],"sourcesContent":["/**\n * PolygonModuleConfigOptions defines the interface for the options of the PolygonModuleConfig class.\n */\nexport interface PolygonModuleConfigOptions {\n rpcUrl?: string\n didContractAddress?: string\n fileServerToken?: string\n schemaManagerContractAddress?: string\n serverUrl?: string\n}\n\nexport class PolygonModuleConfig {\n public readonly rpcUrl: string | undefined\n public readonly didContractAddress: string | undefined\n public readonly fileServerToken: string | undefined\n public readonly schemaManagerContractAddress: string | undefined\n public readonly serverUrl: string | undefined\n\n public constructor({\n didContractAddress,\n fileServerToken,\n rpcUrl,\n schemaManagerContractAddress,\n serverUrl,\n }: PolygonModuleConfigOptions) {\n this.rpcUrl = rpcUrl\n this.didContractAddress = didContractAddress\n this.fileServerToken = fileServerToken\n this.schemaManagerContractAddress = schemaManagerContractAddress\n this.serverUrl = serverUrl\n }\n}\n"],"mappings":";AAWA,IAAa,sBAAb,MAAiC;CAO/B,AAAO,YAAY,EACjB,oBACA,iBACA,QACA,8BACA,aAC6B;AAC7B,OAAK,SAAS;AACd,OAAK,qBAAqB;AAC1B,OAAK,kBAAkB;AACvB,OAAK,+BAA+B;AACpC,OAAK,YAAY"}
@@ -0,0 +1,10 @@
1
+ //#region \0@oxc-project+runtime@0.110.0/helpers/decorate.js
2
+ function __decorate(decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ }
8
+
9
+ //#endregion
10
+ export { __decorate };
@@ -0,0 +1,7 @@
1
+ //#region \0@oxc-project+runtime@0.110.0/helpers/decorateMetadata.js
2
+ function __decorateMetadata(k, v) {
3
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
4
+ }
5
+
6
+ //#endregion
7
+ export { __decorateMetadata };
@@ -0,0 +1,9 @@
1
+ //#region \0@oxc-project+runtime@0.110.0/helpers/decorateParam.js
2
+ function __decorateParam(paramIndex, decorator) {
3
+ return function(target, key) {
4
+ decorator(target, key, paramIndex);
5
+ };
6
+ }
7
+
8
+ //#endregion
9
+ export { __decorateParam };
@@ -0,0 +1,39 @@
1
+ import { AgentContext, DidCreateOptions, DidCreateResult, DidDeactivateOptions, DidDeactivateResult, DidDocument, DidRegistrar, DidUpdateOptions, DidUpdateResult } from "@credo-ts/core";
2
+
3
+ //#region src/dids/PolygonDidRegistrar.d.ts
4
+ declare class PolygonDidRegistrar implements DidRegistrar {
5
+ readonly supportedMethods: string[];
6
+ private resolver;
7
+ /**
8
+ * Import a private key to KMS with idempotency check
9
+ * Uses base58 public key as keyId for backward compatibility
10
+ */
11
+ private importKeyToKms;
12
+ create(agentContext: AgentContext, options: PolygonDidCreateOptions): Promise<DidCreateResult>;
13
+ update(agentContext: AgentContext, options: PolygonDidUpdateOptions): Promise<DidUpdateResult>;
14
+ deactivate(agentContext: AgentContext, options: DidDeactivateOptions): Promise<DidDeactivateResult>;
15
+ private getSigningKey;
16
+ private getPublicKeyFromDid;
17
+ }
18
+ interface PolygonDidCreateOptions extends DidCreateOptions {
19
+ method: 'polygon';
20
+ did?: never;
21
+ options: {
22
+ network: 'mainnet' | 'testnet';
23
+ endpoint?: string;
24
+ };
25
+ secret: {
26
+ privateKey: Uint8Array;
27
+ };
28
+ }
29
+ interface PolygonDidUpdateOptions extends DidUpdateOptions {
30
+ method: 'polygon';
31
+ did: string;
32
+ didDocument: DidDocument;
33
+ secret?: {
34
+ privateKey: Uint8Array;
35
+ };
36
+ }
37
+ //#endregion
38
+ export { PolygonDidCreateOptions, PolygonDidRegistrar, PolygonDidUpdateOptions };
39
+ //# sourceMappingURL=PolygonDidRegistrar.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolygonDidRegistrar.d.mts","names":[],"sources":["../../src/dids/PolygonDidRegistrar.ts"],"mappings":";;;cA6Ba,mBAAA,YAA+B,YAAA;EAAA,SAC1B,gBAAA;EAAA,QACR,QAAA;EAFuB;;;;EAAA,QAQjB,cAAA;EA2CD,MAAA,CAAO,YAAA,EAAc,YAAA,EAAc,OAAA,EAAS,uBAAA,GAA0B,OAAA,CAAQ,eAAA;EAsF9E,MAAA,CAAO,YAAA,EAAc,YAAA,EAAc,OAAA,EAAS,uBAAA,GAA0B,OAAA,CAAQ,eAAA;EA2H9E,UAAA,CAAW,YAAA,EAAc,YAAA,EAAc,OAAA,EAAS,oBAAA,GAAuB,OAAA,CAAQ,mBAAA;EAAA,QAqE9E,aAAA;EAAA,QAmBA,mBAAA;AAAA;AAAA,UAkBC,uBAAA,SAAgC,gBAAA;EAC/C,MAAA;EACA,GAAA;EACA,OAAA;IACE,OAAA;IACA,QAAA;EAAA;EAEF,MAAA;IACE,UAAA,EAAY,UAAA;EAAA;AAAA;AAAA,UAIC,uBAAA,SAAgC,gBAAA;EAC/C,MAAA;EACA,GAAA;EACA,WAAA,EAAa,WAAA;EACb,MAAA;IACE,UAAA,EAAY,UAAA;EAAA;AAAA"}
@@ -0,0 +1,260 @@
1
+ import { buildDid, createSecp256k1PublicJwk, getSecp256k1DidDoc, validateSpecCompliantPayload } from "./didPolygonUtil.mjs";
2
+ import { PolygonLedgerService } from "../ledger/PolygonLedgerService.mjs";
3
+ import "../ledger/index.mjs";
4
+ import { Buffer, CredoError, DidDocument, DidDocumentBuilder, DidDocumentRole, DidRecord, DidRepository, JsonTransformer, TypedArrayEncoder, getEcdsaSecp256k1VerificationKey2019 } from "@credo-ts/core";
5
+ import { KeyManagementApi, KeyManagementKeyNotFoundError } from "@credo-ts/core/kms";
6
+ import { JsonRpcProvider, SigningKey, Wallet } from "ethers";
7
+ import { getResolver } from "@ayanworks/polygon-did-resolver";
8
+ import { AskarStoreManager, transformPrivateKeyToPrivateJwk } from "@credo-ts/askar";
9
+ import { Resolver } from "did-resolver";
10
+
11
+ //#region src/dids/PolygonDidRegistrar.ts
12
+ var PolygonDidRegistrar = class {
13
+ constructor() {
14
+ this.supportedMethods = ["polygon"];
15
+ this.resolver = new Resolver(getResolver());
16
+ }
17
+ /**
18
+ * Import a private key to KMS with idempotency check
19
+ * Uses base58 public key as keyId for backward compatibility
20
+ */
21
+ async importKeyToKms(agentContext, privateKey) {
22
+ const kmsApi = agentContext.dependencyManager.resolve(KeyManagementApi);
23
+ const publicKeyHex = new SigningKey(privateKey).compressedPublicKey.substring(2);
24
+ const publicKeyBuffer = Buffer.from(publicKeyHex, "hex");
25
+ const publicKeyBase58 = TypedArrayEncoder.toBase58(publicKeyBuffer);
26
+ const { privateJwk } = transformPrivateKeyToPrivateJwk({
27
+ type: {
28
+ kty: "EC",
29
+ crv: "secp256k1"
30
+ },
31
+ privateKey
32
+ });
33
+ privateJwk.kid = publicKeyBase58;
34
+ let publicJwk;
35
+ try {
36
+ publicJwk = await kmsApi.getPublicKey({ keyId: publicKeyBase58 });
37
+ } catch (error) {
38
+ if (error instanceof KeyManagementKeyNotFoundError) agentContext.config.logger.debug(`Key not found in wallet: ${error}`);
39
+ }
40
+ let keyId = publicKeyBase58;
41
+ if (!publicJwk) {
42
+ const importedKey = await kmsApi.importKey({ privateJwk });
43
+ publicJwk = importedKey.publicJwk;
44
+ keyId = importedKey.keyId;
45
+ agentContext.config.logger.debug(`Imported new key to KMS: ${keyId}`);
46
+ } else agentContext.config.logger.debug(`Key already exists in KMS: ${keyId}`);
47
+ return {
48
+ publicKeyBase58,
49
+ publicJwk,
50
+ keyId
51
+ };
52
+ }
53
+ async create(agentContext, options) {
54
+ const ledgerService = agentContext.dependencyManager.resolve(PolygonLedgerService);
55
+ const didRepository = agentContext.dependencyManager.resolve(DidRepository);
56
+ const privateKey = options.secret.privateKey;
57
+ const wallet = new Wallet(new SigningKey(privateKey));
58
+ const value = await new JsonRpcProvider(ledgerService.rpcUrl).getBalance(wallet.address);
59
+ if (Number(value) === 0) return {
60
+ didDocumentMetadata: {},
61
+ didRegistrationMetadata: {},
62
+ didState: {
63
+ state: "failed",
64
+ reason: "Insufficient balance in wallet"
65
+ }
66
+ };
67
+ const { publicKeyBase58, publicJwk } = await this.importKeyToKms(agentContext, privateKey);
68
+ const ecPublicJwk = publicJwk;
69
+ const fullPublicKeyHex = Buffer.from(ecPublicJwk.x, "base64url").toString("hex") + Buffer.from(ecPublicJwk.y, "base64url").toString("hex");
70
+ const did = buildDid(options.method, options.options.network, fullPublicKeyHex);
71
+ agentContext.config.logger.info(`Creating DID on ledger: ${did}`);
72
+ try {
73
+ const signingKey = await this.getSigningKey(agentContext, publicKeyBase58);
74
+ const didRegistry = ledgerService.createDidRegistryInstance(signingKey);
75
+ const secpDidDoc = getSecp256k1DidDoc(did, createSecp256k1PublicJwk(ecPublicJwk), options.options.endpoint);
76
+ const response = await didRegistry.create(did, secpDidDoc);
77
+ agentContext.config.logger.info(`Published did on ledger: ${did}`);
78
+ const didDoc = response.didDoc;
79
+ const didDocument = JsonTransformer.fromJSON(didDoc, DidDocument);
80
+ const didRecord = new DidRecord({
81
+ did: didDocument.id,
82
+ role: DidDocumentRole.Created,
83
+ didDocument
84
+ });
85
+ agentContext.config.logger.info(`Saving DID record to wallet: ${did} and did document: ${didDocument}`);
86
+ await didRepository.save(agentContext, didRecord);
87
+ return {
88
+ didDocumentMetadata: {},
89
+ didRegistrationMetadata: { txn: response.txnHash },
90
+ didState: {
91
+ state: "finished",
92
+ did: didDocument.id,
93
+ didDocument
94
+ }
95
+ };
96
+ } catch (error) {
97
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
98
+ agentContext.config.logger.error(`Error registering DID ${did} : ${errorMessage}`);
99
+ return {
100
+ didDocumentMetadata: {},
101
+ didRegistrationMetadata: {},
102
+ didState: {
103
+ state: "failed",
104
+ reason: `unknownError: ${errorMessage}`
105
+ }
106
+ };
107
+ }
108
+ }
109
+ async update(agentContext, options) {
110
+ const ledgerService = agentContext.dependencyManager.resolve(PolygonLedgerService);
111
+ const didRepository = agentContext.dependencyManager.resolve(DidRepository);
112
+ let didDocument;
113
+ let didRecord;
114
+ try {
115
+ const isValidDidDoc = validateSpecCompliantPayload(options.didDocument);
116
+ if (options.didDocument && isValidDidDoc === null) {
117
+ didDocument = options.didDocument;
118
+ const resolvedDocument = await this.resolver.resolve(didDocument.id);
119
+ didRecord = await didRepository.findCreatedDid(agentContext, didDocument.id);
120
+ if (!resolvedDocument.didDocument || resolvedDocument.didDocumentMetadata.deactivated || !didRecord) return {
121
+ didDocumentMetadata: {},
122
+ didRegistrationMetadata: {},
123
+ didState: {
124
+ state: "failed",
125
+ reason: "Did not found"
126
+ }
127
+ };
128
+ if (options?.secret?.privateKey) {
129
+ const privateKey = options.secret.privateKey;
130
+ try {
131
+ new SigningKey(privateKey);
132
+ } catch {
133
+ return {
134
+ didDocumentMetadata: {},
135
+ didRegistrationMetadata: {},
136
+ didState: {
137
+ state: "failed",
138
+ reason: "Invalid private key provided"
139
+ }
140
+ };
141
+ }
142
+ const { publicKeyBase58: _, publicJwk } = await this.importKeyToKms(agentContext, privateKey);
143
+ const verificationMethodCount = didDocument?.verificationMethod?.length ?? 0;
144
+ const secp256k1Jwk = createSecp256k1PublicJwk(publicJwk);
145
+ const verificationMethod = getEcdsaSecp256k1VerificationKey2019({
146
+ id: `${didDocument.id}#key-${verificationMethodCount + 1}`,
147
+ publicJwk: secp256k1Jwk,
148
+ controller: didDocument.id
149
+ });
150
+ didDocument.verificationMethod = [...didDocument?.verificationMethod ?? [], verificationMethod];
151
+ }
152
+ } else return {
153
+ didDocumentMetadata: {},
154
+ didRegistrationMetadata: {},
155
+ didState: {
156
+ state: "failed",
157
+ reason: isValidDidDoc ?? "Provide a valid didDocument"
158
+ }
159
+ };
160
+ if (!didRecord) return {
161
+ didDocumentMetadata: {},
162
+ didRegistrationMetadata: {},
163
+ didState: {
164
+ state: "failed",
165
+ reason: "DidRecord not found in wallet"
166
+ }
167
+ };
168
+ const publicKeyBase58 = await this.getPublicKeyFromDid(agentContext, options.did);
169
+ if (!publicKeyBase58) throw new CredoError("Public Key not found in wallet");
170
+ const signingKey = await this.getSigningKey(agentContext, publicKeyBase58);
171
+ const response = await ledgerService.createDidRegistryInstance(signingKey).update(didDocument.id, didDocument);
172
+ if (!response) throw new Error("Unable to update did document");
173
+ didRecord.didDocument = didDocument;
174
+ await didRepository.update(agentContext, didRecord);
175
+ return {
176
+ didDocumentMetadata: {},
177
+ didRegistrationMetadata: { txn: response.txnHash },
178
+ didState: {
179
+ state: "finished",
180
+ did: didDocument.id,
181
+ didDocument
182
+ }
183
+ };
184
+ } catch (error) {
185
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
186
+ agentContext.config.logger.error(`Error Updating DID : ${errorMessage}`);
187
+ return {
188
+ didDocumentMetadata: {},
189
+ didRegistrationMetadata: {},
190
+ didState: {
191
+ state: "failed",
192
+ reason: `unknownError: ${errorMessage}`
193
+ }
194
+ };
195
+ }
196
+ }
197
+ async deactivate(agentContext, options) {
198
+ const didRepository = agentContext.dependencyManager.resolve(DidRepository);
199
+ const ledgerService = agentContext.dependencyManager.resolve(PolygonLedgerService);
200
+ const did = options.did;
201
+ try {
202
+ const { didDocument, didDocumentMetadata } = await this.resolver.resolve(did);
203
+ const didRecord = await didRepository.findCreatedDid(agentContext, did);
204
+ if (!didDocument || didDocumentMetadata.deactivated || !didRecord) return {
205
+ didDocumentMetadata: {},
206
+ didRegistrationMetadata: {},
207
+ didState: {
208
+ state: "failed",
209
+ reason: "Did not found"
210
+ }
211
+ };
212
+ const publicKeyBase58 = await this.getPublicKeyFromDid(agentContext, options.did);
213
+ if (!publicKeyBase58) throw new CredoError("Public Key not found in wallet");
214
+ const signingKey = await this.getSigningKey(agentContext, publicKeyBase58);
215
+ const didRegistry = ledgerService.createDidRegistryInstance(signingKey);
216
+ const updatedDidDocument = new DidDocumentBuilder(options.did).addContext("https://www.w3.org/ns/did/v1").build();
217
+ const response = await didRegistry.update(didDocument.id, updatedDidDocument);
218
+ if (!response) throw new CredoError(`Unable to deactivate did document for did : ${did}`);
219
+ await didRepository.update(agentContext, didRecord);
220
+ return {
221
+ didDocumentMetadata: { deactivated: true },
222
+ didRegistrationMetadata: { txn: response.txnHash },
223
+ didState: {
224
+ state: "finished",
225
+ did: didDocument.id,
226
+ didDocument: JsonTransformer.fromJSON(didDocument, DidDocument),
227
+ secret: options.secret
228
+ }
229
+ };
230
+ } catch (error) {
231
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
232
+ agentContext.config.logger.error(`Error deactivating DID ${errorMessage}`);
233
+ return {
234
+ didDocumentMetadata: {},
235
+ didRegistrationMetadata: {},
236
+ didState: {
237
+ state: "failed",
238
+ reason: `unknownError: ${errorMessage}`
239
+ }
240
+ };
241
+ }
242
+ }
243
+ async getSigningKey(agentContext, publicKeyBase58) {
244
+ const keyEntry = await agentContext.dependencyManager.resolve(AskarStoreManager).withSession(agentContext, async (session) => await session.fetchKey({ name: publicKeyBase58 }));
245
+ if (!keyEntry) throw new CredoError("Key not found in wallet");
246
+ const signingKey = new SigningKey(keyEntry.key.secretBytes);
247
+ keyEntry.key.handle.free();
248
+ return signingKey;
249
+ }
250
+ async getPublicKeyFromDid(agentContext, did) {
251
+ const didRecord = await agentContext.dependencyManager.resolve(DidRepository).findCreatedDid(agentContext, did);
252
+ if (!didRecord) throw new CredoError("DidRecord not found");
253
+ if (!didRecord.didDocument?.verificationMethod) throw new CredoError("VerificationMethod not found cannot get public key");
254
+ return didRecord.didDocument.verificationMethod[0].publicKeyBase58;
255
+ }
256
+ };
257
+
258
+ //#endregion
259
+ export { PolygonDidRegistrar };
260
+ //# sourceMappingURL=PolygonDidRegistrar.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolygonDidRegistrar.mjs","names":["EtherWallet"],"sources":["../../src/dids/PolygonDidRegistrar.ts"],"sourcesContent":["import { getResolver } from '@ayanworks/polygon-did-resolver'\nimport { AskarStoreManager, transformPrivateKeyToPrivateJwk } from '@credo-ts/askar'\nimport {\n type AgentContext,\n Buffer,\n CredoError,\n type DidCreateOptions,\n type DidCreateResult,\n type DidDeactivateOptions,\n type DidDeactivateResult,\n DidDocument,\n DidDocumentBuilder,\n DidDocumentRole,\n DidRecord,\n type DidRegistrar,\n DidRepository,\n type DidUpdateOptions,\n type DidUpdateResult,\n getEcdsaSecp256k1VerificationKey2019,\n JsonTransformer,\n TypedArrayEncoder,\n} from '@credo-ts/core'\nimport type { KmsJwkPublic } from '@credo-ts/core/kms'\nimport { KeyManagementApi, KeyManagementKeyNotFoundError } from '@credo-ts/core/kms'\nimport { Resolver } from 'did-resolver'\nimport { Wallet as EtherWallet, JsonRpcProvider, SigningKey } from 'ethers'\nimport { PolygonLedgerService } from '../ledger'\nimport { buildDid, createSecp256k1PublicJwk, getSecp256k1DidDoc, validateSpecCompliantPayload } from './didPolygonUtil'\n\nexport class PolygonDidRegistrar implements DidRegistrar {\n public readonly supportedMethods = ['polygon']\n private resolver = new Resolver(getResolver())\n\n /**\n * Import a private key to KMS with idempotency check\n * Uses base58 public key as keyId for backward compatibility\n */\n private async importKeyToKms(\n agentContext: AgentContext,\n privateKey: Uint8Array\n ): Promise<{ publicKeyBase58: string; publicJwk: KmsJwkPublic; keyId: string }> {\n const kmsApi = agentContext.dependencyManager.resolve(KeyManagementApi)\n\n // Calculate base58 public key for kid\n const signingKey = new SigningKey(privateKey)\n const publicKeyHex = signingKey.compressedPublicKey.substring(2) // Remove '0x' prefix\n const publicKeyBuffer = Buffer.from(publicKeyHex, 'hex')\n const publicKeyBase58 = TypedArrayEncoder.toBase58(publicKeyBuffer)\n\n // Transform to JWK\n const { privateJwk } = transformPrivateKeyToPrivateJwk({\n type: { kty: 'EC', crv: 'secp256k1' },\n privateKey: privateKey,\n })\n privateJwk.kid = publicKeyBase58\n\n // Check if key already exists\n let publicJwk: any\n try {\n publicJwk = await kmsApi.getPublicKey({ keyId: publicKeyBase58 })\n } catch (error) {\n if (error instanceof KeyManagementKeyNotFoundError) {\n agentContext.config.logger.debug(`Key not found in wallet: ${error}`)\n }\n }\n let keyId = publicKeyBase58\n\n if (!publicJwk) {\n // Import new key\n const importedKey = await kmsApi.importKey({ privateJwk })\n publicJwk = importedKey.publicJwk\n keyId = importedKey.keyId\n agentContext.config.logger.debug(`Imported new key to KMS: ${keyId}`)\n } else {\n agentContext.config.logger.debug(`Key already exists in KMS: ${keyId}`)\n }\n\n return { publicKeyBase58, publicJwk, keyId }\n }\n\n public async create(agentContext: AgentContext, options: PolygonDidCreateOptions): Promise<DidCreateResult> {\n const ledgerService = agentContext.dependencyManager.resolve(PolygonLedgerService)\n const didRepository = agentContext.dependencyManager.resolve(DidRepository)\n\n const privateKey = options.secret.privateKey\n\n // Check balance using ethers wallet\n const signingKey = new SigningKey(privateKey)\n const wallet = new EtherWallet(signingKey)\n const provider = new JsonRpcProvider(ledgerService.rpcUrl)\n const value = await provider.getBalance(wallet.address)\n\n if (Number(value) === 0) {\n return {\n didDocumentMetadata: {},\n didRegistrationMetadata: {},\n didState: {\n state: 'failed',\n reason: 'Insufficient balance in wallet',\n },\n }\n }\n\n // Import key to KMS with base58 keyId\n const { publicKeyBase58, publicJwk } = await this.importKeyToKms(agentContext, privateKey)\n\n // Build DID from public key coordinates (we know it's EC with secp256k1)\n const ecPublicJwk = publicJwk as { x: string; y: string }\n const xHex = Buffer.from(ecPublicJwk.x, 'base64url').toString('hex')\n const yHex = Buffer.from(ecPublicJwk.y, 'base64url').toString('hex')\n const fullPublicKeyHex = xHex + yHex\n const did = buildDid(options.method, options.options.network, fullPublicKeyHex)\n\n agentContext.config.logger.info(`Creating DID on ledger: ${did}`)\n\n try {\n const signingKey = await this.getSigningKey(agentContext, publicKeyBase58)\n\n const didRegistry = ledgerService.createDidRegistryInstance(signingKey)\n\n // Create DID document with PublicJwk\n const secp256k1Jwk = createSecp256k1PublicJwk(ecPublicJwk)\n const secpDidDoc = getSecp256k1DidDoc(did, secp256k1Jwk as any, options.options.endpoint)\n\n const response = await didRegistry.create(did, secpDidDoc as any)\n\n agentContext.config.logger.info(`Published did on ledger: ${did}`)\n\n const didDoc = response.didDoc\n const didDocument = JsonTransformer.fromJSON(didDoc, DidDocument)\n\n const didRecord = new DidRecord({\n did: didDocument.id,\n role: DidDocumentRole.Created,\n didDocument,\n })\n\n agentContext.config.logger.info(`Saving DID record to wallet: ${did} and did document: ${didDocument}`)\n\n await didRepository.save(agentContext, didRecord)\n\n return {\n didDocumentMetadata: {},\n didRegistrationMetadata: {\n txn: response.txnHash,\n },\n didState: {\n state: 'finished',\n did: didDocument.id,\n didDocument: didDocument,\n },\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error'\n agentContext.config.logger.error(`Error registering DID ${did} : ${errorMessage}`)\n return {\n didDocumentMetadata: {},\n didRegistrationMetadata: {},\n didState: {\n state: 'failed',\n reason: `unknownError: ${errorMessage}`,\n },\n }\n }\n }\n\n public async update(agentContext: AgentContext, options: PolygonDidUpdateOptions): Promise<DidUpdateResult> {\n const ledgerService = agentContext.dependencyManager.resolve(PolygonLedgerService)\n const didRepository = agentContext.dependencyManager.resolve(DidRepository)\n\n let didDocument: DidDocument\n let didRecord: DidRecord | null\n\n try {\n const isValidDidDoc = validateSpecCompliantPayload(options.didDocument)\n if (options.didDocument && isValidDidDoc === null) {\n didDocument = options.didDocument\n const resolvedDocument = await this.resolver.resolve(didDocument.id)\n didRecord = await didRepository.findCreatedDid(agentContext, didDocument.id)\n if (!resolvedDocument.didDocument || resolvedDocument.didDocumentMetadata.deactivated || !didRecord) {\n return {\n didDocumentMetadata: {},\n didRegistrationMetadata: {},\n didState: {\n state: 'failed',\n reason: 'Did not found',\n },\n }\n }\n\n if (options?.secret?.privateKey) {\n const privateKey = options.secret.privateKey\n\n // Validate private key\n try {\n new SigningKey(privateKey)\n } catch {\n return {\n didDocumentMetadata: {},\n didRegistrationMetadata: {},\n didState: {\n state: 'failed',\n reason: 'Invalid private key provided',\n },\n }\n }\n\n // Import key to KMS with base58 keyId\n const { publicKeyBase58: _, publicJwk } = await this.importKeyToKms(agentContext, privateKey)\n\n // Create verification method using publicJwk\n const verificationMethodCount = didDocument?.verificationMethod?.length ?? 0\n const ecPublicJwk = publicJwk as { x: string; y: string }\n const secp256k1Jwk = createSecp256k1PublicJwk(ecPublicJwk)\n const verificationMethod = getEcdsaSecp256k1VerificationKey2019({\n id: `${didDocument.id}#key-${verificationMethodCount + 1}`,\n publicJwk: secp256k1Jwk as any,\n controller: didDocument.id,\n })\n\n didDocument.verificationMethod = [...(didDocument?.verificationMethod ?? []), verificationMethod]\n }\n } else {\n return {\n didDocumentMetadata: {},\n didRegistrationMetadata: {},\n didState: {\n state: 'failed',\n reason: isValidDidDoc ?? 'Provide a valid didDocument',\n },\n }\n }\n\n if (!didRecord) {\n return {\n didDocumentMetadata: {},\n didRegistrationMetadata: {},\n didState: {\n state: 'failed',\n reason: 'DidRecord not found in wallet',\n },\n }\n }\n\n const publicKeyBase58 = await this.getPublicKeyFromDid(agentContext, options.did)\n\n if (!publicKeyBase58) {\n throw new CredoError('Public Key not found in wallet')\n }\n\n const signingKey = await this.getSigningKey(agentContext, publicKeyBase58)\n\n const didRegistry = ledgerService.createDidRegistryInstance(signingKey)\n\n const response = await didRegistry.update(didDocument.id, didDocument as any)\n\n if (!response) {\n throw new Error('Unable to update did document')\n }\n\n // Save the did document\n didRecord.didDocument = didDocument\n await didRepository.update(agentContext, didRecord)\n\n return {\n didDocumentMetadata: {},\n didRegistrationMetadata: {\n txn: response.txnHash,\n },\n didState: {\n state: 'finished',\n did: didDocument.id,\n didDocument,\n },\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error'\n agentContext.config.logger.error(`Error Updating DID : ${errorMessage}`)\n return {\n didDocumentMetadata: {},\n didRegistrationMetadata: {},\n didState: {\n state: 'failed',\n reason: `unknownError: ${errorMessage}`,\n },\n }\n }\n }\n\n public async deactivate(agentContext: AgentContext, options: DidDeactivateOptions): Promise<DidDeactivateResult> {\n const didRepository = agentContext.dependencyManager.resolve(DidRepository)\n const ledgerService = agentContext.dependencyManager.resolve(PolygonLedgerService)\n\n const did = options.did\n\n try {\n const { didDocument, didDocumentMetadata } = await this.resolver.resolve(did)\n\n const didRecord = await didRepository.findCreatedDid(agentContext, did)\n if (!didDocument || didDocumentMetadata.deactivated || !didRecord) {\n return {\n didDocumentMetadata: {},\n didRegistrationMetadata: {},\n didState: {\n state: 'failed',\n reason: 'Did not found',\n },\n }\n }\n\n const publicKeyBase58 = await this.getPublicKeyFromDid(agentContext, options.did)\n\n if (!publicKeyBase58) {\n throw new CredoError('Public Key not found in wallet')\n }\n\n const signingKey = await this.getSigningKey(agentContext, publicKeyBase58)\n\n const didRegistry = ledgerService.createDidRegistryInstance(signingKey)\n\n const updatedDidDocument = new DidDocumentBuilder(options.did).addContext('https://www.w3.org/ns/did/v1').build()\n\n const response = await didRegistry.update(didDocument.id, updatedDidDocument as any)\n\n if (!response) {\n throw new CredoError(`Unable to deactivate did document for did : ${did}`)\n }\n\n await didRepository.update(agentContext, didRecord)\n\n return {\n didDocumentMetadata: {\n deactivated: true,\n },\n didRegistrationMetadata: {\n txn: response.txnHash,\n },\n didState: {\n state: 'finished',\n did: didDocument.id,\n didDocument: JsonTransformer.fromJSON(didDocument, DidDocument),\n secret: options.secret,\n },\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error'\n agentContext.config.logger.error(`Error deactivating DID ${errorMessage}`)\n return {\n didDocumentMetadata: {},\n didRegistrationMetadata: {},\n didState: {\n state: 'failed',\n reason: `unknownError: ${errorMessage}`,\n },\n }\n }\n }\n\n private async getSigningKey(agentContext: AgentContext, publicKeyBase58: string): Promise<SigningKey> {\n const askarStoreManager = agentContext.dependencyManager.resolve(AskarStoreManager)\n\n const keyEntry = await askarStoreManager.withSession(\n agentContext,\n async (session) => await session.fetchKey({ name: publicKeyBase58 })\n )\n\n if (!keyEntry) {\n throw new CredoError('Key not found in wallet')\n }\n\n const signingKey = new SigningKey(keyEntry.key.secretBytes)\n\n keyEntry.key.handle.free()\n\n return signingKey\n }\n\n private async getPublicKeyFromDid(agentContext: AgentContext, did: string) {\n const didRepository = agentContext.dependencyManager.resolve(DidRepository)\n\n const didRecord = await didRepository.findCreatedDid(agentContext, did)\n if (!didRecord) {\n throw new CredoError('DidRecord not found')\n }\n\n if (!didRecord.didDocument?.verificationMethod) {\n throw new CredoError('VerificationMethod not found cannot get public key')\n }\n\n const publicKeyBase58 = didRecord.didDocument.verificationMethod[0].publicKeyBase58\n\n return publicKeyBase58\n }\n}\n\nexport interface PolygonDidCreateOptions extends DidCreateOptions {\n method: 'polygon'\n did?: never\n options: {\n network: 'mainnet' | 'testnet'\n endpoint?: string\n }\n secret: {\n privateKey: Uint8Array\n }\n}\n\nexport interface PolygonDidUpdateOptions extends DidUpdateOptions {\n method: 'polygon'\n did: string\n didDocument: DidDocument\n secret?: {\n privateKey: Uint8Array\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { AgentContext, DidResolutionResult, DidResolver } from "@credo-ts/core";
2
+ import { Resolver } from "did-resolver";
3
+
4
+ //#region src/dids/PolygonDidResolver.d.ts
5
+ declare class PolygonDidResolver implements DidResolver {
6
+ readonly allowsCaching = true;
7
+ readonly supportedMethods: string[];
8
+ resolver: Resolver;
9
+ constructor();
10
+ resolve(agentContext: AgentContext, did: string): Promise<DidResolutionResult>;
11
+ }
12
+ //#endregion
13
+ export { PolygonDidResolver };
14
+ //# sourceMappingURL=PolygonDidResolver.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolygonDidResolver.d.mts","names":[],"sources":["../../src/dids/PolygonDidResolver.ts"],"mappings":";;;;cAaa,kBAAA,YAA8B,WAAA;EAAA,SACzB,aAAA;EAAA,SAEA,gBAAA;EAET,QAAA,EAAU,QAAA;;EAMJ,OAAA,CAAQ,YAAA,EAAc,YAAA,EAAc,GAAA,WAAc,OAAA,CAAQ,mBAAA;AAAA"}