@fairmint/canton-node-sdk 0.0.268 → 0.0.269

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 (69) hide show
  1. package/build/src/da-registry/api-client.d.ts +47 -0
  2. package/build/src/da-registry/api-client.d.ts.map +1 -0
  3. package/build/src/da-registry/api-client.js +140 -0
  4. package/build/src/da-registry/api-client.js.map +1 -0
  5. package/build/src/da-registry/choice-context.d.ts +24 -0
  6. package/build/src/da-registry/choice-context.d.ts.map +1 -0
  7. package/build/src/da-registry/choice-context.js +37 -0
  8. package/build/src/da-registry/choice-context.js.map +1 -0
  9. package/build/src/da-registry/commands.d.ts +96 -0
  10. package/build/src/da-registry/commands.d.ts.map +1 -0
  11. package/build/src/da-registry/commands.js +233 -0
  12. package/build/src/da-registry/commands.js.map +1 -0
  13. package/build/src/da-registry/index.d.ts +8 -0
  14. package/build/src/da-registry/index.d.ts.map +1 -0
  15. package/build/src/da-registry/index.js +24 -0
  16. package/build/src/da-registry/index.js.map +1 -0
  17. package/build/src/da-registry/ledger.d.ts +29 -0
  18. package/build/src/da-registry/ledger.d.ts.map +1 -0
  19. package/build/src/da-registry/ledger.js +25 -0
  20. package/build/src/da-registry/ledger.js.map +1 -0
  21. package/build/src/da-registry/packages.d.ts +23 -0
  22. package/build/src/da-registry/packages.d.ts.map +1 -0
  23. package/build/src/da-registry/packages.js +41 -0
  24. package/build/src/da-registry/packages.js.map +1 -0
  25. package/build/src/da-registry/readers.d.ts +43 -0
  26. package/build/src/da-registry/readers.d.ts.map +1 -0
  27. package/build/src/da-registry/readers.js +59 -0
  28. package/build/src/da-registry/readers.js.map +1 -0
  29. package/build/src/da-registry/templates.d.ts +32 -0
  30. package/build/src/da-registry/templates.d.ts.map +1 -0
  31. package/build/src/da-registry/templates.js +33 -0
  32. package/build/src/da-registry/templates.js.map +1 -0
  33. package/build/src/index.d.ts +1 -0
  34. package/build/src/index.d.ts.map +1 -1
  35. package/build/src/index.js +1 -0
  36. package/build/src/index.js.map +1 -1
  37. package/build/src/utils/index.d.ts +1 -0
  38. package/build/src/utils/index.d.ts.map +1 -1
  39. package/build/src/utils/index.js +1 -0
  40. package/build/src/utils/index.js.map +1 -1
  41. package/build/src/utils/ledger/active-contracts.d.ts +26 -0
  42. package/build/src/utils/ledger/active-contracts.d.ts.map +1 -0
  43. package/build/src/utils/ledger/active-contracts.js +43 -0
  44. package/build/src/utils/ledger/active-contracts.js.map +1 -0
  45. package/build/src/utils/ledger/index.d.ts +7 -0
  46. package/build/src/utils/ledger/index.d.ts.map +1 -0
  47. package/build/src/utils/ledger/index.js +23 -0
  48. package/build/src/utils/ledger/index.js.map +1 -0
  49. package/build/src/utils/ledger/packages.d.ts +21 -0
  50. package/build/src/utils/ledger/packages.d.ts.map +1 -0
  51. package/build/src/utils/ledger/packages.js +36 -0
  52. package/build/src/utils/ledger/packages.js.map +1 -0
  53. package/build/src/utils/ledger/submit-commands.d.ts +19 -0
  54. package/build/src/utils/ledger/submit-commands.d.ts.map +1 -0
  55. package/build/src/utils/ledger/submit-commands.js +34 -0
  56. package/build/src/utils/ledger/submit-commands.js.map +1 -0
  57. package/build/src/utils/ledger/synchronizers.d.ts +4 -0
  58. package/build/src/utils/ledger/synchronizers.d.ts.map +1 -0
  59. package/build/src/utils/ledger/synchronizers.js +9 -0
  60. package/build/src/utils/ledger/synchronizers.js.map +1 -0
  61. package/build/src/utils/ledger/types.d.ts +63 -0
  62. package/build/src/utils/ledger/types.d.ts.map +1 -0
  63. package/build/src/utils/ledger/types.js +3 -0
  64. package/build/src/utils/ledger/types.js.map +1 -0
  65. package/build/src/utils/ledger/user-rights.d.ts +17 -0
  66. package/build/src/utils/ledger/user-rights.d.ts.map +1 -0
  67. package/build/src/utils/ledger/user-rights.js +28 -0
  68. package/build/src/utils/ledger/user-rights.js.map +1 -0
  69. package/package.json +1 -1
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./api-client"), exports);
18
+ __exportStar(require("./choice-context"), exports);
19
+ __exportStar(require("./commands"), exports);
20
+ __exportStar(require("./ledger"), exports);
21
+ __exportStar(require("./packages"), exports);
22
+ __exportStar(require("./readers"), exports);
23
+ __exportStar(require("./templates"), exports);
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/da-registry/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,mDAAiC;AACjC,6CAA2B;AAC3B,2CAAyB;AACzB,6CAA2B;AAC3B,4CAA0B;AAC1B,8CAA4B"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * The ledger operations a DA Registry workflow needs, behind a narrow port so flows can be tested with an in-memory
3
+ * fake. `createDaRegistryLedger` implements the port on a {@link LedgerJsonApiClient} using the generic helpers from
4
+ * `utils/ledger`, which are also exported directly for other consumers.
5
+ *
6
+ * Every call names its parties explicitly: a client's default party is typically the validator party, and falling back
7
+ * to it would read or act as the wrong party.
8
+ */
9
+ import { type LedgerJsonApiClient } from '../clients';
10
+ import { type ActiveContract, type LedgerSubmission, type PreferredPackage, type SubmittedTransaction, type UserActAsStatus } from '../utils/ledger';
11
+ export interface DaRegistryLedger {
12
+ /** Active contracts of these templates visible to `parties`, on the configured synchronizer only. */
13
+ activeContracts: (parties: string[], templateIds: string[]) => Promise<ActiveContract[]>;
14
+ submit: (submission: LedgerSubmission) => Promise<SubmittedTransaction>;
15
+ /** The authenticated user's id, which of `parties` it cannot act as, and whether it may upload DARs. */
16
+ checkActAs: (parties: string[]) => Promise<UserActAsStatus>;
17
+ /** Ids of every package uploaded to this participant, vetted or not. */
18
+ listPackageIds: () => Promise<string[]>;
19
+ connectedSynchronizerIds: (party: string) => Promise<string[]>;
20
+ /** The package version each name resolves to when every one of `parties` must have it vetted. */
21
+ preferredPackages: (parties: string[], packageNames: string[], synchronizerId: string) => Promise<PreferredPackage[]>;
22
+ uploadDar: (dar: Buffer, synchronizerId: string) => Promise<void>;
23
+ }
24
+ export declare function createDaRegistryLedger(client: LedgerJsonApiClient, options: {
25
+ synchronizerId: string;
26
+ packageIdSelectionPreference: readonly string[];
27
+ includeCreatedEventBlob?: boolean;
28
+ }): DaRegistryLedger;
29
+ //# sourceMappingURL=ledger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../../../src/da-registry/ledger.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAQL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,gBAAgB;IAC/B,qGAAqG;IACrG,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IACzF,MAAM,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACxE,wGAAwG;IACxG,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5D,wEAAwE;IACxE,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,wBAAwB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/D,iGAAiG;IACjG,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACtH,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE;IACP,cAAc,EAAE,MAAM,CAAC;IACvB,4BAA4B,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,GACA,gBAAgB,CAsBlB"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createDaRegistryLedger = createDaRegistryLedger;
4
+ const ledger_1 = require("../utils/ledger");
5
+ function createDaRegistryLedger(client, options) {
6
+ return {
7
+ activeContracts: async (parties, templateIds) => (0, ledger_1.getActiveContractsByTemplate)(client, {
8
+ parties,
9
+ templateIds,
10
+ synchronizerId: options.synchronizerId,
11
+ // Blobs are only needed for disclosure; DA's API supplies those, so the default read skips them.
12
+ includeCreatedEventBlob: options.includeCreatedEventBlob ?? false,
13
+ }),
14
+ submit: async (submission) => (0, ledger_1.submitLedgerCommands)(client, submission, {
15
+ synchronizerId: options.synchronizerId,
16
+ packageIdSelectionPreference: options.packageIdSelectionPreference,
17
+ }),
18
+ checkActAs: async (parties) => (0, ledger_1.checkUserActAs)(client, parties),
19
+ listPackageIds: async () => (0, ledger_1.listUploadedPackageIds)(client),
20
+ connectedSynchronizerIds: async (party) => (0, ledger_1.getConnectedSynchronizerIds)(client, party),
21
+ preferredPackages: async (parties, packageNames, synchronizerId) => (0, ledger_1.getPreferredPackages)(client, { parties, packageNames, synchronizerId }),
22
+ uploadDar: async (dar, synchronizerId) => (0, ledger_1.uploadAndVetDar)(client, { darFile: dar, synchronizerId }),
23
+ };
24
+ }
25
+ //# sourceMappingURL=ledger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../../src/da-registry/ledger.ts"],"names":[],"mappings":";;;AASA,4CAayB;AAgBzB,gCACE,MAA2B,EAC3B,OAIC;IAED,OAAO;QACL,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAC9C,IAAA,qCAA4B,EAAC,MAAM,EAAE;YACnC,OAAO;YACP,WAAW;YACX,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,iGAAiG;YACjG,uBAAuB,EAAE,OAAO,CAAC,uBAAuB,IAAI,KAAK;SAClE,CAAC;QACJ,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,CAC3B,IAAA,6BAAoB,EAAC,MAAM,EAAE,UAAU,EAAE;YACvC,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,4BAA4B,EAAE,OAAO,CAAC,4BAA4B;SACnE,CAAC;QACJ,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,IAAA,uBAAc,EAAC,MAAM,EAAE,OAAO,CAAC;QAC9D,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,IAAA,+BAAsB,EAAC,MAAM,CAAC;QAC1D,wBAAwB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAA,oCAA2B,EAAC,MAAM,EAAE,KAAK,CAAC;QACrF,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,CACjE,IAAA,6BAAoB,EAAC,MAAM,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;QACzE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,CAAC,IAAA,wBAAe,EAAC,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC;KACpG,CAAC;AACJ,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * The Digital Asset Registry DAR bundle this module's template ids, choices and argument shapes were checked against.
3
+ *
4
+ * DA's terms make the Daml source confidential, so nothing here copies it; these are the published package names,
5
+ * versions and content-hash package ids of the bundle, which any participant can read back after an upload.
6
+ *
7
+ * Template ids in this module use the package-name form (`#<package-name>:<Module>:<Entity>`), which matches contracts
8
+ * created under any version of the package. The pins below are for vetting checks: every confirming node must vet
9
+ * exactly these package ids before package-name-form commands resolve to this bundle's code.
10
+ */
11
+ /** One package of DA's Registry bundle: its name, the version this module supports, and its content-hash id. */
12
+ export interface DaRegistryPackageRequirement {
13
+ name: string;
14
+ version: string;
15
+ packageId: string;
16
+ }
17
+ /** The bundle version whose Daml models this module was checked against. */
18
+ export declare const DA_REGISTRY_BUNDLE_VERSION = "0.14.4";
19
+ /** Every package of the 0.14.4 bundle, pinned by content-hash id. */
20
+ export declare const DA_REGISTRY_PACKAGES: readonly DaRegistryPackageRequirement[];
21
+ /** Package ids of the 0.14.4 bundle, for `packageIdSelectionPreference` on command submissions. */
22
+ export declare const DA_REGISTRY_PACKAGE_IDS: readonly string[];
23
+ //# sourceMappingURL=packages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packages.d.ts","sourceRoot":"","sources":["../../../src/da-registry/packages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,gHAAgH;AAChH,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,4EAA4E;AAC5E,eAAO,MAAM,0BAA0B,WAAW,CAAC;AAEnD,qEAAqE;AACrE,eAAO,MAAM,oBAAoB,EAAE,SAAS,4BAA4B,EAqBvE,CAAC;AAEF,mGAAmG;AACnG,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAAiD,CAAC"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ /**
3
+ * The Digital Asset Registry DAR bundle this module's template ids, choices and argument shapes were checked against.
4
+ *
5
+ * DA's terms make the Daml source confidential, so nothing here copies it; these are the published package names,
6
+ * versions and content-hash package ids of the bundle, which any participant can read back after an upload.
7
+ *
8
+ * Template ids in this module use the package-name form (`#<package-name>:<Module>:<Entity>`), which matches contracts
9
+ * created under any version of the package. The pins below are for vetting checks: every confirming node must vet
10
+ * exactly these package ids before package-name-form commands resolve to this bundle's code.
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.DA_REGISTRY_PACKAGE_IDS = exports.DA_REGISTRY_PACKAGES = exports.DA_REGISTRY_BUNDLE_VERSION = void 0;
14
+ /** The bundle version whose Daml models this module was checked against. */
15
+ exports.DA_REGISTRY_BUNDLE_VERSION = '0.14.4';
16
+ /** Every package of the 0.14.4 bundle, pinned by content-hash id. */
17
+ exports.DA_REGISTRY_PACKAGES = [
18
+ {
19
+ name: 'utility-registry-app-v0',
20
+ version: '0.9.2',
21
+ packageId: '1eddd268bdd50d6e262722bea799c9455da032b3f94489e589975151b274b8c0',
22
+ },
23
+ {
24
+ name: 'utility-registry-v0',
25
+ version: '0.8.2',
26
+ packageId: '8c654487d9f5fb195fbcdd7b44cd8e365b1ea39c15ae62ce6c7a48343f1210dd',
27
+ },
28
+ {
29
+ name: 'utility-registry-holding-v0',
30
+ version: '0.3.2',
31
+ packageId: '415a1ec96a9e2839453e9aa1c5c71b6511c008c79511cb6f873e0b7393fe3b92',
32
+ },
33
+ {
34
+ name: 'utility-credential-v0',
35
+ version: '0.1.2',
36
+ packageId: '044be226f82e81609111569fb7253421cdb86b2bf0ecab781f46a58003e69574',
37
+ },
38
+ ];
39
+ /** Package ids of the 0.14.4 bundle, for `packageIdSelectionPreference` on command submissions. */
40
+ exports.DA_REGISTRY_PACKAGE_IDS = exports.DA_REGISTRY_PACKAGES.map((p) => p.packageId);
41
+ //# sourceMappingURL=packages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packages.js","sourceRoot":"","sources":["../../../src/da-registry/packages.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AASH,4EAA4E;AAC/D,QAAA,0BAA0B,GAAG,QAAQ,CAAC;AAEnD,qEAAqE;AACxD,QAAA,oBAAoB,GAA4C;IAC3E;QACE,IAAI,EAAE,yBAAyB;QAC/B,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,kEAAkE;KAC9E;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,kEAAkE;KAC9E;IACD;QACE,IAAI,EAAE,6BAA6B;QACnC,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,kEAAkE;KAC9E;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,kEAAkE;KAC9E;CACF,CAAC;AAEF,mGAAmG;AACtF,QAAA,uBAAuB,GAAsB,QAAA,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Readers and small Daml-value helpers for Digital Asset's Registry: claims, credential requirements and party sets, as
3
+ * the JSON Ledger API encodes them.
4
+ */
5
+ /** A Daml `(Text, Text)` tuple as the JSON Ledger API encodes it. */
6
+ export interface DamlTuple2 {
7
+ _1: string;
8
+ _2: string;
9
+ }
10
+ /** One credential claim: `property=value` (for example `canTransfer=CNTN`). */
11
+ export interface ClaimSpec {
12
+ property: string;
13
+ value: string;
14
+ }
15
+ /** `InstrumentIdentifier.scheme` for an instrument the registrar defines itself. */
16
+ export declare const DA_REGISTRAR_INTERNAL_SCHEME = "RegistrarInternalScheme";
17
+ export interface PartyCredentialRequirement {
18
+ issuer: string;
19
+ requiredClaims: DamlTuple2[];
20
+ }
21
+ export declare function credentialRequirement(issuer: string, claim: ClaimSpec): PartyCredentialRequirement;
22
+ /** A Daml `DA.Set.Set Party`. */
23
+ export declare function partySet(parties: string[]): {
24
+ map: Array<[string, Record<string, never>]>;
25
+ };
26
+ export declare function partySetMembers(value: unknown): string[];
27
+ /** Normalizes a `(Text, Text)` claim read from the ledger (`{_1,_2}`) or DA's REST API (`{property,value}`). */
28
+ export declare function readClaimTuple(value: unknown): ClaimSpec;
29
+ export declare function readRequirements(value: unknown): Array<{
30
+ issuer: string;
31
+ claims: ClaimSpec[];
32
+ }>;
33
+ /** Order-insensitive equality of two requirement lists. */
34
+ export declare function sameRequirements(a: Array<{
35
+ issuer: string;
36
+ claims: ClaimSpec[];
37
+ }>, b: Array<{
38
+ issuer: string;
39
+ claims: ClaimSpec[];
40
+ }>): boolean;
41
+ /** Daml `Optional Bool` read back from the ledger: absent and `null` are both None. */
42
+ export declare function readOptionalBool(value: unknown): boolean | null;
43
+ //# sourceMappingURL=readers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readers.d.ts","sourceRoot":"","sources":["../../../src/da-registry/readers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,qEAAqE;AACrE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,+EAA+E;AAC/E,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,oFAAoF;AACpF,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;AAEtE,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,UAAU,EAAE,CAAC;CAC9B;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,0BAA0B,CAElG;AAED,iCAAiC;AACjC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG;IAAE,GAAG,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;CAAE,CAE3F;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAIxD;AAED,gHAAgH;AAChH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAGxD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC,CAM/F;AASD,2DAA2D;AAC3D,wBAAgB,gBAAgB,CAC9B,CAAC,EAAE,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC,EACjD,CAAC,EAAE,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC,GAChD,OAAO,CAIT;AAED,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAE/D"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ /**
3
+ * Readers and small Daml-value helpers for Digital Asset's Registry: claims, credential requirements and party sets, as
4
+ * the JSON Ledger API encodes them.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.DA_REGISTRAR_INTERNAL_SCHEME = void 0;
8
+ exports.credentialRequirement = credentialRequirement;
9
+ exports.partySet = partySet;
10
+ exports.partySetMembers = partySetMembers;
11
+ exports.readClaimTuple = readClaimTuple;
12
+ exports.readRequirements = readRequirements;
13
+ exports.sameRequirements = sameRequirements;
14
+ exports.readOptionalBool = readOptionalBool;
15
+ /** `InstrumentIdentifier.scheme` for an instrument the registrar defines itself. */
16
+ exports.DA_REGISTRAR_INTERNAL_SCHEME = 'RegistrarInternalScheme';
17
+ function credentialRequirement(issuer, claim) {
18
+ return { issuer, requiredClaims: [{ _1: claim.property, _2: claim.value }] };
19
+ }
20
+ /** A Daml `DA.Set.Set Party`. */
21
+ function partySet(parties) {
22
+ return { map: [...new Set(parties)].sort().map((p) => [p, {}]) };
23
+ }
24
+ function partySetMembers(value) {
25
+ const map = value?.map;
26
+ if (!Array.isArray(map))
27
+ return [];
28
+ return map.map((entry) => (Array.isArray(entry) ? String(entry[0]) : String(entry)));
29
+ }
30
+ /** Normalizes a `(Text, Text)` claim read from the ledger (`{_1,_2}`) or DA's REST API (`{property,value}`). */
31
+ function readClaimTuple(value) {
32
+ const v = value;
33
+ return { property: String(v['_1'] ?? v['property']), value: String(v['_2'] ?? v['value']) };
34
+ }
35
+ function readRequirements(value) {
36
+ if (!Array.isArray(value))
37
+ return [];
38
+ return value.map((r) => ({
39
+ issuer: String(r['issuer']),
40
+ claims: Array.isArray(r['requiredClaims']) ? r['requiredClaims'].map(readClaimTuple) : [],
41
+ }));
42
+ }
43
+ function requirementKey(r) {
44
+ // JSON keeps claim pairs unambiguous both for equality and for the sort itself: a delimiter-joined key would
45
+ // equate one claim `a=1,b=2` with two claims, and comma-stringified pairs would sort `('a','b,c')` and
46
+ // `('a,b','c')` identically.
47
+ return JSON.stringify([r.issuer, r.claims.map((c) => JSON.stringify([c.property, c.value])).sort()]);
48
+ }
49
+ /** Order-insensitive equality of two requirement lists. */
50
+ function sameRequirements(a, b) {
51
+ const ka = a.map(requirementKey).sort();
52
+ const kb = b.map(requirementKey).sort();
53
+ return ka.length === kb.length && ka.every((k, i) => k === kb[i]);
54
+ }
55
+ /** Daml `Optional Bool` read back from the ledger: absent and `null` are both None. */
56
+ function readOptionalBool(value) {
57
+ return typeof value === 'boolean' ? value : null;
58
+ }
59
+ //# sourceMappingURL=readers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readers.js","sourceRoot":"","sources":["../../../src/da-registry/readers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Template ids of Digital Asset's Registry (DAR bundle 0.14.4, see {@link DA_REGISTRY_BUNDLE_VERSION}).
3
+ *
4
+ * Names come from DA's published Daml models; DA's terms make the source confidential, so nothing here copies it.
5
+ *
6
+ * Templates use the package-name form (`#<package-name>:<Module>:<Entity>`), so a filter also matches contracts created
7
+ * under older versions of a package and each participant picks the version both sides vet.
8
+ */
9
+ import { type ActiveContract } from '../utils/ledger';
10
+ export declare const DA_REGISTRY_TEMPLATES: {
11
+ readonly providerServiceRequest: '#utility-registry-app-v0:Utility.Registry.App.V0.Service.Provider:ProviderServiceRequest';
12
+ readonly providerService: '#utility-registry-app-v0:Utility.Registry.App.V0.Service.Provider:ProviderService';
13
+ readonly rejectedProviderServiceRequest: '#utility-registry-app-v0:Utility.Registry.App.V0.Service.Provider:RejectedProviderServiceRequest';
14
+ readonly providerConfiguration: '#utility-registry-app-v0:Utility.Registry.App.V0.Configuration.Provider:ProviderConfiguration';
15
+ readonly registrarServiceRequest: '#utility-registry-app-v0:Utility.Registry.App.V0.Service.Registrar:RegistrarServiceRequest';
16
+ readonly registrarService: '#utility-registry-app-v0:Utility.Registry.App.V0.Service.Registrar:RegistrarService';
17
+ readonly rejectedRegistrarServiceRequest: '#utility-registry-app-v0:Utility.Registry.App.V0.Service.Registrar:RejectedRegistrarServiceRequest';
18
+ readonly allocationFactory: '#utility-registry-app-v0:Utility.Registry.App.V0.Service.AllocationFactory:AllocationFactory';
19
+ readonly transferPreapproval: '#utility-registry-app-v0:Utility.Registry.App.V0.Model.TransferPreapproval:TransferPreapproval';
20
+ readonly instrumentConfiguration: '#utility-registry-v0:Utility.Registry.V0.Configuration.Instrument:InstrumentConfiguration';
21
+ readonly transferRule: '#utility-registry-v0:Utility.Registry.V0.Rule.Transfer:TransferRule';
22
+ readonly credential: '#utility-credential-v0:Utility.Credential.V0.Credential:Credential';
23
+ readonly holding: '#utility-registry-holding-v0:Utility.Registry.Holding.V0.Holding:Holding';
24
+ readonly mintOffer: '#utility-registry-app-v0:Utility.Registry.App.V0.Model.Mint:MintOffer';
25
+ };
26
+ export type DaRegistryTemplateKey = keyof typeof DA_REGISTRY_TEMPLATES;
27
+ /**
28
+ * Whether a contract read from the ledger (package-id form) is an instance of a DA Registry template, regardless of the
29
+ * package version it was created under.
30
+ */
31
+ export declare function isDaRegistryTemplate(contract: Pick<ActiveContract, 'templateId'>, key: DaRegistryTemplateKey): boolean;
32
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/da-registry/templates.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,eAAO,MAAM,qBAAqB;aAChC,sBAAsB,EAAE,0FAA0F;aAClH,eAAe,EAAE,mFAAmF;aACpG,8BAA8B,EAC5B,kGAAkG;aACpG,qBAAqB,EACnB,+FAA+F;aACjG,uBAAuB,EAAE,4FAA4F;aACrH,gBAAgB,EAAE,qFAAqF;aACvG,+BAA+B,EAC7B,oGAAoG;aACtG,iBAAiB,EAAE,8FAA8F;aACjH,mBAAmB,EAAE,gGAAgG;aACrH,uBAAuB,EAAE,2FAA2F;aACpH,YAAY,EAAE,qEAAqE;aACnF,UAAU,EAAE,oEAAoE;aAChF,OAAO,EAAE,0EAA0E;aAEnF,SAAS,EAAE,uEAAuE;CAC1E,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,MAAM,OAAO,qBAAqB,CAAC;AAOvE;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,EAC5C,GAAG,EAAE,qBAAqB,GACzB,OAAO,CAET"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DA_REGISTRY_TEMPLATES = void 0;
4
+ exports.isDaRegistryTemplate = isDaRegistryTemplate;
5
+ exports.DA_REGISTRY_TEMPLATES = {
6
+ providerServiceRequest: '#utility-registry-app-v0:Utility.Registry.App.V0.Service.Provider:ProviderServiceRequest',
7
+ providerService: '#utility-registry-app-v0:Utility.Registry.App.V0.Service.Provider:ProviderService',
8
+ rejectedProviderServiceRequest: '#utility-registry-app-v0:Utility.Registry.App.V0.Service.Provider:RejectedProviderServiceRequest',
9
+ providerConfiguration: '#utility-registry-app-v0:Utility.Registry.App.V0.Configuration.Provider:ProviderConfiguration',
10
+ registrarServiceRequest: '#utility-registry-app-v0:Utility.Registry.App.V0.Service.Registrar:RegistrarServiceRequest',
11
+ registrarService: '#utility-registry-app-v0:Utility.Registry.App.V0.Service.Registrar:RegistrarService',
12
+ rejectedRegistrarServiceRequest: '#utility-registry-app-v0:Utility.Registry.App.V0.Service.Registrar:RejectedRegistrarServiceRequest',
13
+ allocationFactory: '#utility-registry-app-v0:Utility.Registry.App.V0.Service.AllocationFactory:AllocationFactory',
14
+ transferPreapproval: '#utility-registry-app-v0:Utility.Registry.App.V0.Model.TransferPreapproval:TransferPreapproval',
15
+ instrumentConfiguration: '#utility-registry-v0:Utility.Registry.V0.Configuration.Instrument:InstrumentConfiguration',
16
+ transferRule: '#utility-registry-v0:Utility.Registry.V0.Rule.Transfer:TransferRule',
17
+ credential: '#utility-credential-v0:Utility.Credential.V0.Credential:Credential',
18
+ holding: '#utility-registry-holding-v0:Utility.Registry.Holding.V0.Holding:Holding',
19
+ // The `utility-registry-v0` `Holding.Mint` templates of the same name are legacy and disabled; use these.
20
+ mintOffer: '#utility-registry-app-v0:Utility.Registry.App.V0.Model.Mint:MintOffer',
21
+ };
22
+ /** `#pkg:Mod:Ent` → `:Mod:Ent`, to match a contract read back in package-id form against any package version. */
23
+ function qualifiedNameSuffix(template) {
24
+ return template.slice(template.indexOf(':'));
25
+ }
26
+ /**
27
+ * Whether a contract read from the ledger (package-id form) is an instance of a DA Registry template, regardless of the
28
+ * package version it was created under.
29
+ */
30
+ function isDaRegistryTemplate(contract, key) {
31
+ return contract.templateId.endsWith(qualifiedNameSuffix(exports.DA_REGISTRY_TEMPLATES[key]));
32
+ }
33
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/da-registry/templates.ts"],"names":[],"mappings":";;;;AAUa,QAAA,qBAAqB,GAAG;IACnC,sBAAsB,EAAE,0FAA0F;IAClH,eAAe,EAAE,mFAAmF;IACpG,8BAA8B,EAC5B,kGAAkG;IACpG,qBAAqB,EACnB,+FAA+F;IACjG,uBAAuB,EAAE,4FAA4F;IACrH,gBAAgB,EAAE,qFAAqF;IACvG,+BAA+B,EAC7B,oGAAoG;IACtG,iBAAiB,EAAE,8FAA8F;IACjH,mBAAmB,EAAE,gGAAgG;IACrH,uBAAuB,EAAE,2FAA2F;IACpH,YAAY,EAAE,qEAAqE;IACnF,UAAU,EAAE,oEAAoE;IAChF,OAAO,EAAE,0EAA0E;IACnF,0GAA0G;IAC1G,SAAS,EAAE,uEAAuE;CAC1E,CAAC;AAIX,iHAAiH;AACjH,SAAS,mBAAmB,CAAC,QAAgB;IAC3C,OAAO,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,8BACE,QAA4C,EAC5C,GAA0B;IAE1B,OAAO,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAA,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvF,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export { Canton, type CantonConfig, type CantonHealthCheckOptions, type CantonHealthService, type CantonServiceHealthStatus, type ServiceHealthStatus, } from './Canton';
2
2
  export * from './clients';
3
3
  export * from './core';
4
+ export * from './da-registry';
4
5
  export * from './utils';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,GACzB,MAAM,UAAU,CAAC;AAClB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,GACzB,MAAM,UAAU,CAAC;AAClB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC"}
@@ -19,5 +19,6 @@ var Canton_1 = require("./Canton");
19
19
  Object.defineProperty(exports, "Canton", { enumerable: true, get: function () { return Canton_1.Canton; } });
20
20
  __exportStar(require("./clients"), exports);
21
21
  __exportStar(require("./core"), exports);
22
+ __exportStar(require("./da-registry"), exports);
22
23
  __exportStar(require("./utils"), exports);
23
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mCAOkB;AANhB,gGAAA,MAAM,OAAA;AAOR,4CAA0B;AAC1B,yCAAuB;AACvB,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mCAOkB;AANhB,gGAAA,MAAM,OAAA;AAOR,4CAA0B;AAC1B,yCAAuB;AACvB,gDAA8B;AAC9B,0CAAwB"}
@@ -3,6 +3,7 @@ export * from './canton-response-utils';
3
3
  export * from './contracts';
4
4
  export * from './external-signing';
5
5
  export * from './health';
6
+ export * from './ledger';
6
7
  export * from './mining';
7
8
  export * from './parsers';
8
9
  export * from './party';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC"}
@@ -19,6 +19,7 @@ __exportStar(require("./canton-response-utils"), exports);
19
19
  __exportStar(require("./contracts"), exports);
20
20
  __exportStar(require("./external-signing"), exports);
21
21
  __exportStar(require("./health"), exports);
22
+ __exportStar(require("./ledger"), exports);
22
23
  __exportStar(require("./mining"), exports);
23
24
  __exportStar(require("./parsers"), exports);
24
25
  __exportStar(require("./party"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,0DAAwC;AACxC,8CAA4B;AAC5B,qDAAmC;AACnC,2CAAyB;AACzB,2CAAyB;AACzB,4CAA0B;AAC1B,0CAAwB;AACxB,oDAAkC;AAClC,mDAAiC;AACjC,4CAA0B;AAC1B,iDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,0DAAwC;AACxC,8CAA4B;AAC5B,qDAAmC;AACnC,2CAAyB;AACzB,2CAAyB;AACzB,2CAAyB;AACzB,4CAA0B;AAC1B,0CAAwB;AACxB,oDAAkC;AAClC,mDAAiC;AACjC,4CAA0B;AAC1B,iDAA+B"}
@@ -0,0 +1,26 @@
1
+ import { type LedgerJsonApiClient } from '../../clients';
2
+ import { type ActiveContract } from './types';
3
+ export interface GetActiveContractsByTemplateParams {
4
+ /** Parties whose view of the active contract set is read. Every party must be actable by the client's user. */
5
+ parties: string[];
6
+ /**
7
+ * Template filters, in package-name form (`#<package-name>:<Module>:<Entity>`) or package-id form
8
+ * (`<packageId>:<Module>:<Entity>`).
9
+ */
10
+ templateIds: string[];
11
+ /**
12
+ * When set, contracts on any other synchronizer are dropped: a submission pinned to one synchronizer cannot use them.
13
+ * When omitted, contracts on every connected synchronizer are returned.
14
+ */
15
+ synchronizerId?: string;
16
+ includeCreatedEventBlob?: boolean;
17
+ }
18
+ /**
19
+ * Reads the active contracts of the given templates visible to `parties`.
20
+ *
21
+ * Empty pages (`JsEmpty` entries, returned when nothing matches) are skipped. Malformed entries are skipped rather than
22
+ * throwing, matching the ledger's streaming semantics; use {@link isJsActiveContractItem} directly if strict validation
23
+ * is needed.
24
+ */
25
+ export declare function getActiveContractsByTemplate(client: LedgerJsonApiClient, params: GetActiveContractsByTemplateParams): Promise<ActiveContract[]>;
26
+ //# sourceMappingURL=active-contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"active-contracts.d.ts","sourceRoot":"","sources":["../../../../src/utils/ledger/active-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGzD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,WAAW,kCAAkC;IACjD,+GAA+G;IAC/G,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB;;;OAGG;IACH,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED;;;;;;GAMG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,kCAAkC,GACzC,OAAO,CAAC,cAAc,EAAE,CAAC,CA2B3B"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getActiveContractsByTemplate = getActiveContractsByTemplate;
4
+ const errors_1 = require("../../core/errors");
5
+ const contracts_1 = require("../contracts");
6
+ /**
7
+ * Reads the active contracts of the given templates visible to `parties`.
8
+ *
9
+ * Empty pages (`JsEmpty` entries, returned when nothing matches) are skipped. Malformed entries are skipped rather than
10
+ * throwing, matching the ledger's streaming semantics; use {@link isJsActiveContractItem} directly if strict validation
11
+ * is needed.
12
+ */
13
+ async function getActiveContractsByTemplate(client, params) {
14
+ // The underlying operation replaces an empty party list with the client's default parties; never let an explicit
15
+ // but empty selection fall back to reading as the validator party.
16
+ if (params.parties.length === 0) {
17
+ throw new errors_1.ValidationError('getActiveContractsByTemplate requires at least one party');
18
+ }
19
+ const items = await client.getActiveContracts({
20
+ parties: params.parties,
21
+ templateIds: params.templateIds,
22
+ ...(params.includeCreatedEventBlob !== undefined
23
+ ? { includeCreatedEventBlob: params.includeCreatedEventBlob }
24
+ : {}),
25
+ });
26
+ const contracts = [];
27
+ for (const item of items) {
28
+ if (!(0, contracts_1.isJsActiveContractItem)(item))
29
+ continue;
30
+ const { createdEvent, synchronizerId } = item.contractEntry.JsActiveContract;
31
+ if (params.synchronizerId !== undefined && synchronizerId !== params.synchronizerId)
32
+ continue;
33
+ contracts.push({
34
+ contractId: createdEvent.contractId,
35
+ templateId: createdEvent.templateId,
36
+ createArgument: createdEvent.createArgument,
37
+ synchronizerId,
38
+ ...(createdEvent.createdEventBlob ? { createdEventBlob: createdEvent.createdEventBlob } : {}),
39
+ });
40
+ }
41
+ return contracts;
42
+ }
43
+ //# sourceMappingURL=active-contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"active-contracts.js","sourceRoot":"","sources":["../../../../src/utils/ledger/active-contracts.ts"],"names":[],"mappings":";;;AACA,8CAAoD;AACpD,4CAAsD;AAmBtD;;;;;;GAMG;AACI,KAAK,uCACV,MAA2B,EAC3B,MAA0C;IAE1C,iHAAiH;IACjH,mEAAmE;IACnE,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,wBAAe,CAAC,0DAA0D,CAAC,CAAC;IACxF,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC;QAC5C,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,GAAG,CAAC,MAAM,CAAC,uBAAuB,KAAK,SAAS;YAC9C,CAAC,CAAC,EAAE,uBAAuB,EAAE,MAAM,CAAC,uBAAuB,EAAE;YAC7D,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IACH,MAAM,SAAS,GAAqB,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAA,kCAAsB,EAAC,IAAI,CAAC;YAAE,SAAS;QAC5C,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC;QAC7E,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,MAAM,CAAC,cAAc;YAAE,SAAS;QAC9F,SAAS,CAAC,IAAI,CAAC;YACb,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,cAAc,EAAE,YAAY,CAAC,cAAc;YAC3C,cAAc;YACd,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,YAAY,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9F,CAAC,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from './active-contracts';
2
+ export * from './packages';
3
+ export * from './submit-commands';
4
+ export * from './synchronizers';
5
+ export * from './types';
6
+ export * from './user-rights';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/ledger/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./active-contracts"), exports);
18
+ __exportStar(require("./packages"), exports);
19
+ __exportStar(require("./submit-commands"), exports);
20
+ __exportStar(require("./synchronizers"), exports);
21
+ __exportStar(require("./types"), exports);
22
+ __exportStar(require("./user-rights"), exports);
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/ledger/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,6CAA2B;AAC3B,oDAAkC;AAClC,kDAAgC;AAChC,0CAAwB;AACxB,gDAA8B"}
@@ -0,0 +1,21 @@
1
+ import { type LedgerJsonApiClient } from '../../clients';
2
+ import { type PreferredPackage } from './types';
3
+ /** Ids of every package uploaded to this participant, vetted or not. */
4
+ export declare function listUploadedPackageIds(client: LedgerJsonApiClient): Promise<string[]>;
5
+ /**
6
+ * The package version each name resolves to when every one of `parties` must have it vetted on `synchronizerId`.
7
+ *
8
+ * Use this to confirm that the packages a workflow needs (for example a DA Registry bundle) are vetted by all
9
+ * confirming nodes before submitting package-name-form commands.
10
+ */
11
+ export declare function getPreferredPackages(client: LedgerJsonApiClient, params: {
12
+ parties: string[];
13
+ packageNames: string[];
14
+ synchronizerId: string;
15
+ }): Promise<PreferredPackage[]>;
16
+ /** Uploads a DAR and vets every package in it on the given synchronizer. */
17
+ export declare function uploadAndVetDar(client: LedgerJsonApiClient, params: {
18
+ darFile: Buffer;
19
+ synchronizerId: string;
20
+ }): Promise<void>;
21
+ //# sourceMappingURL=packages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packages.d.ts","sourceRoot":"","sources":["../../../../src/utils/ledger/packages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,wEAAwE;AACxE,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAG3F;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAC5E,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAS7B;AAED,4EAA4E;AAC5E,wBAAsB,eAAe,CACnC,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAClD,OAAO,CAAC,IAAI,CAAC,CAMf"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listUploadedPackageIds = listUploadedPackageIds;
4
+ exports.getPreferredPackages = getPreferredPackages;
5
+ exports.uploadAndVetDar = uploadAndVetDar;
6
+ const core_1 = require("../../core");
7
+ /** Ids of every package uploaded to this participant, vetted or not. */
8
+ async function listUploadedPackageIds(client) {
9
+ const { packageIds } = await client.listPackages();
10
+ return packageIds;
11
+ }
12
+ /**
13
+ * The package version each name resolves to when every one of `parties` must have it vetted on `synchronizerId`.
14
+ *
15
+ * Use this to confirm that the packages a workflow needs (for example a DA Registry bundle) are vetted by all
16
+ * confirming nodes before submitting package-name-form commands.
17
+ */
18
+ async function getPreferredPackages(client, params) {
19
+ const { packageReferences } = await client.interactiveSubmissionGetPreferredPackages({
20
+ packageVettingRequirements: params.packageNames.map((packageName) => ({
21
+ parties: params.parties,
22
+ packageName,
23
+ })),
24
+ synchronizerId: params.synchronizerId,
25
+ });
26
+ return packageReferences;
27
+ }
28
+ /** Uploads a DAR and vets every package in it on the given synchronizer. */
29
+ async function uploadAndVetDar(client, params) {
30
+ await client.uploadDar({
31
+ darFile: params.darFile,
32
+ vetAllPackages: true,
33
+ synchronizerId: (0, core_1.SynchronizerId)(params.synchronizerId),
34
+ });
35
+ }
36
+ //# sourceMappingURL=packages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packages.js","sourceRoot":"","sources":["../../../../src/utils/ledger/packages.ts"],"names":[],"mappings":";;;;;AACA,qCAA4C;AAG5C,wEAAwE;AACjE,KAAK,iCAAiC,MAA2B;IACtE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;IACnD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;GAKG;AACI,KAAK,+BACV,MAA2B,EAC3B,MAA6E;IAE7E,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,yCAAyC,CAAC;QACnF,0BAA0B,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACpE,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,WAAW;SACZ,CAAC,CAAC;QACH,cAAc,EAAE,MAAM,CAAC,cAAc;KACtC,CAAC,CAAC;IACH,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,4EAA4E;AACrE,KAAK,0BACV,MAA2B,EAC3B,MAAmD;IAEnD,MAAM,MAAM,CAAC,SAAS,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,IAAA,qBAAc,EAAC,MAAM,CAAC,cAAc,CAAC;KACtD,CAAC,CAAC;AACL,CAAC"}