@fairmint/canton-node-sdk 0.0.267 → 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 (76) hide show
  1. package/build/src/clients/ledger-json-api/operations/v2/state/stream-active-contracts.d.ts +1 -1
  2. package/build/src/clients/ledger-json-api/operations/v2/state/stream-active-contracts.d.ts.map +1 -1
  3. package/build/src/clients/ledger-json-api/operations/v2/state/stream-active-contracts.js +47 -28
  4. package/build/src/clients/ledger-json-api/operations/v2/state/stream-active-contracts.js.map +1 -1
  5. package/build/src/core/ws/WebSocketClient.d.ts.map +1 -1
  6. package/build/src/core/ws/WebSocketClient.js +4 -0
  7. package/build/src/core/ws/WebSocketClient.js.map +1 -1
  8. package/build/src/da-registry/api-client.d.ts +47 -0
  9. package/build/src/da-registry/api-client.d.ts.map +1 -0
  10. package/build/src/da-registry/api-client.js +140 -0
  11. package/build/src/da-registry/api-client.js.map +1 -0
  12. package/build/src/da-registry/choice-context.d.ts +24 -0
  13. package/build/src/da-registry/choice-context.d.ts.map +1 -0
  14. package/build/src/da-registry/choice-context.js +37 -0
  15. package/build/src/da-registry/choice-context.js.map +1 -0
  16. package/build/src/da-registry/commands.d.ts +96 -0
  17. package/build/src/da-registry/commands.d.ts.map +1 -0
  18. package/build/src/da-registry/commands.js +233 -0
  19. package/build/src/da-registry/commands.js.map +1 -0
  20. package/build/src/da-registry/index.d.ts +8 -0
  21. package/build/src/da-registry/index.d.ts.map +1 -0
  22. package/build/src/da-registry/index.js +24 -0
  23. package/build/src/da-registry/index.js.map +1 -0
  24. package/build/src/da-registry/ledger.d.ts +29 -0
  25. package/build/src/da-registry/ledger.d.ts.map +1 -0
  26. package/build/src/da-registry/ledger.js +25 -0
  27. package/build/src/da-registry/ledger.js.map +1 -0
  28. package/build/src/da-registry/packages.d.ts +23 -0
  29. package/build/src/da-registry/packages.d.ts.map +1 -0
  30. package/build/src/da-registry/packages.js +41 -0
  31. package/build/src/da-registry/packages.js.map +1 -0
  32. package/build/src/da-registry/readers.d.ts +43 -0
  33. package/build/src/da-registry/readers.d.ts.map +1 -0
  34. package/build/src/da-registry/readers.js +59 -0
  35. package/build/src/da-registry/readers.js.map +1 -0
  36. package/build/src/da-registry/templates.d.ts +32 -0
  37. package/build/src/da-registry/templates.d.ts.map +1 -0
  38. package/build/src/da-registry/templates.js +33 -0
  39. package/build/src/da-registry/templates.js.map +1 -0
  40. package/build/src/index.d.ts +1 -0
  41. package/build/src/index.d.ts.map +1 -1
  42. package/build/src/index.js +1 -0
  43. package/build/src/index.js.map +1 -1
  44. package/build/src/utils/index.d.ts +1 -0
  45. package/build/src/utils/index.d.ts.map +1 -1
  46. package/build/src/utils/index.js +1 -0
  47. package/build/src/utils/index.js.map +1 -1
  48. package/build/src/utils/ledger/active-contracts.d.ts +26 -0
  49. package/build/src/utils/ledger/active-contracts.d.ts.map +1 -0
  50. package/build/src/utils/ledger/active-contracts.js +43 -0
  51. package/build/src/utils/ledger/active-contracts.js.map +1 -0
  52. package/build/src/utils/ledger/index.d.ts +7 -0
  53. package/build/src/utils/ledger/index.d.ts.map +1 -0
  54. package/build/src/utils/ledger/index.js +23 -0
  55. package/build/src/utils/ledger/index.js.map +1 -0
  56. package/build/src/utils/ledger/packages.d.ts +21 -0
  57. package/build/src/utils/ledger/packages.d.ts.map +1 -0
  58. package/build/src/utils/ledger/packages.js +36 -0
  59. package/build/src/utils/ledger/packages.js.map +1 -0
  60. package/build/src/utils/ledger/submit-commands.d.ts +19 -0
  61. package/build/src/utils/ledger/submit-commands.d.ts.map +1 -0
  62. package/build/src/utils/ledger/submit-commands.js +34 -0
  63. package/build/src/utils/ledger/submit-commands.js.map +1 -0
  64. package/build/src/utils/ledger/synchronizers.d.ts +4 -0
  65. package/build/src/utils/ledger/synchronizers.d.ts.map +1 -0
  66. package/build/src/utils/ledger/synchronizers.js +9 -0
  67. package/build/src/utils/ledger/synchronizers.js.map +1 -0
  68. package/build/src/utils/ledger/types.d.ts +63 -0
  69. package/build/src/utils/ledger/types.d.ts.map +1 -0
  70. package/build/src/utils/ledger/types.js +3 -0
  71. package/build/src/utils/ledger/types.js.map +1 -0
  72. package/build/src/utils/ledger/user-rights.d.ts +17 -0
  73. package/build/src/utils/ledger/user-rights.d.ts.map +1 -0
  74. package/build/src/utils/ledger/user-rights.js +28 -0
  75. package/build/src/utils/ledger/user-rights.js.map +1 -0
  76. package/package.json +1 -1
@@ -0,0 +1,233 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.requestProviderService = requestProviderService;
4
+ exports.createProviderConfiguration = createProviderConfiguration;
5
+ exports.archiveAndCreateProviderConfiguration = archiveAndCreateProviderConfiguration;
6
+ exports.requestAndAcceptRegistrarService = requestAndAcceptRegistrarService;
7
+ exports.acceptRegistrarServiceRequest = acceptRegistrarServiceRequest;
8
+ exports.deleteRejectedRegistrarServiceRequest = deleteRejectedRegistrarServiceRequest;
9
+ exports.createTransferRule = createTransferRule;
10
+ exports.createAllocationFactory = createAllocationFactory;
11
+ exports.createInstrumentConfiguration = createInstrumentConfiguration;
12
+ exports.archiveAndCreateInstrumentConfiguration = archiveAndCreateInstrumentConfiguration;
13
+ exports.archiveInstrumentConfiguration = archiveInstrumentConfiguration;
14
+ exports.createTransferPreapproval = createTransferPreapproval;
15
+ exports.issuerHeldCredential = issuerHeldCredential;
16
+ exports.createCredential = createCredential;
17
+ exports.archiveDaRegistryContract = archiveDaRegistryContract;
18
+ exports.offerMint = offerMint;
19
+ exports.cancelMintOffer = cancelMintOffer;
20
+ exports.acceptMintOffer = acceptMintOffer;
21
+ exports.transferViaFactory = transferViaFactory;
22
+ const token_standard_1 = require("../utils/token-standard");
23
+ const choice_context_1 = require("./choice-context");
24
+ const templates_1 = require("./templates");
25
+ const readers_1 = require("./readers");
26
+ // ── Provider onboarding ─────────────────────────────────────────────────────────────────────────────────────────────
27
+ function requestProviderService(operator, provider) {
28
+ return {
29
+ CreateCommand: {
30
+ templateId: templates_1.DA_REGISTRY_TEMPLATES.providerServiceRequest,
31
+ createArguments: { operator, provider },
32
+ },
33
+ };
34
+ }
35
+ function createProviderConfiguration(providerServiceCid) {
36
+ return {
37
+ ExerciseCommand: {
38
+ templateId: templates_1.DA_REGISTRY_TEMPLATES.providerService,
39
+ contractId: providerServiceCid,
40
+ choice: 'ProviderService_CreateProviderConfiguration',
41
+ // No credential is needed to request a registrar seat; this provider serves only itself.
42
+ choiceArgument: { registrarRequirements: [], holderRequirements: [] },
43
+ },
44
+ };
45
+ }
46
+ function archiveAndCreateProviderConfiguration(providerServiceCid, cid) {
47
+ return {
48
+ ExerciseCommand: {
49
+ templateId: templates_1.DA_REGISTRY_TEMPLATES.providerService,
50
+ contractId: providerServiceCid,
51
+ choice: 'ProviderService_ArchiveAndCreateProviderConfiguration',
52
+ choiceArgument: { cid, payload: { registrarRequirements: [], holderRequirements: [] } },
53
+ },
54
+ };
55
+ }
56
+ // ── Registrar onboarding ────────────────────────────────────────────────────────────────────────────────────────────
57
+ /** Creates the registrar request and accepts it as provider in one transaction, when one party holds both roles. */
58
+ function requestAndAcceptRegistrarService(operator, registrarAndProvider, providerConfigurationCid) {
59
+ return {
60
+ CreateAndExerciseCommand: {
61
+ templateId: templates_1.DA_REGISTRY_TEMPLATES.registrarServiceRequest,
62
+ createArguments: {
63
+ operator,
64
+ provider: registrarAndProvider,
65
+ registrar: registrarAndProvider,
66
+ createTransferRule: true,
67
+ createAllocationFactory: true,
68
+ },
69
+ choice: 'RegistrarServiceRequest_Accept',
70
+ choiceArgument: { providerConfigurationCid, credentialCids: [] },
71
+ },
72
+ };
73
+ }
74
+ function acceptRegistrarServiceRequest(requestCid, providerConfigurationCid) {
75
+ return {
76
+ ExerciseCommand: {
77
+ templateId: templates_1.DA_REGISTRY_TEMPLATES.registrarServiceRequest,
78
+ contractId: requestCid,
79
+ choice: 'RegistrarServiceRequest_Accept',
80
+ choiceArgument: { providerConfigurationCid, credentialCids: [] },
81
+ },
82
+ };
83
+ }
84
+ function deleteRejectedRegistrarServiceRequest(cid) {
85
+ return {
86
+ ExerciseCommand: {
87
+ templateId: templates_1.DA_REGISTRY_TEMPLATES.rejectedRegistrarServiceRequest,
88
+ contractId: cid,
89
+ choice: 'RejectedRegistrarServiceRequest_Delete',
90
+ choiceArgument: {},
91
+ },
92
+ };
93
+ }
94
+ function createTransferRule(registrarServiceCid) {
95
+ return {
96
+ ExerciseCommand: {
97
+ templateId: templates_1.DA_REGISTRY_TEMPLATES.registrarService,
98
+ contractId: registrarServiceCid,
99
+ choice: 'RegistrarService_CreateTransferRule',
100
+ choiceArgument: {},
101
+ },
102
+ };
103
+ }
104
+ function createAllocationFactory(registrarServiceCid) {
105
+ return {
106
+ ExerciseCommand: {
107
+ templateId: templates_1.DA_REGISTRY_TEMPLATES.registrarService,
108
+ contractId: registrarServiceCid,
109
+ choice: 'RegistrarService_CreateAllocationFactory',
110
+ choiceArgument: {},
111
+ },
112
+ };
113
+ }
114
+ function createInstrumentConfiguration(registrarServiceCid, payload) {
115
+ return {
116
+ ExerciseCommand: {
117
+ templateId: templates_1.DA_REGISTRY_TEMPLATES.registrarService,
118
+ contractId: registrarServiceCid,
119
+ choice: 'RegistrarService_CreateInstrumentConfiguration',
120
+ choiceArgument: { ...payload },
121
+ },
122
+ };
123
+ }
124
+ function archiveAndCreateInstrumentConfiguration(registrarServiceCid, cid, payload) {
125
+ return {
126
+ ExerciseCommand: {
127
+ templateId: templates_1.DA_REGISTRY_TEMPLATES.registrarService,
128
+ contractId: registrarServiceCid,
129
+ choice: 'RegistrarService_ArchiveAndCreateInstrumentConfiguration',
130
+ choiceArgument: { cid, payload },
131
+ },
132
+ };
133
+ }
134
+ function archiveInstrumentConfiguration(registrarServiceCid, cid) {
135
+ return {
136
+ ExerciseCommand: {
137
+ templateId: templates_1.DA_REGISTRY_TEMPLATES.registrarService,
138
+ contractId: registrarServiceCid,
139
+ choice: 'RegistrarService_ArchiveInstrumentConfiguration',
140
+ choiceArgument: { cid },
141
+ },
142
+ };
143
+ }
144
+ // ── Transfer preapprovals ───────────────────────────────────────────────────────────────────────────────────────────
145
+ function createTransferPreapproval(operator, receiver, instrumentAdmin, instrumentIds) {
146
+ return {
147
+ CreateCommand: {
148
+ templateId: templates_1.DA_REGISTRY_TEMPLATES.transferPreapproval,
149
+ createArguments: {
150
+ operator,
151
+ receiver,
152
+ instrumentAdmin,
153
+ instrumentAllowances: instrumentIds.map((id) => ({ id })),
154
+ },
155
+ },
156
+ };
157
+ }
158
+ /**
159
+ * An issuer-held credential: issuer and holder are both the registrar and the allowlisted party appears only as the
160
+ * claims' subject, so it signs nothing. DA's operator observes it so DA's API can disclose it in choice contexts.
161
+ */
162
+ function issuerHeldCredential(params) {
163
+ return {
164
+ issuer: params.registrar,
165
+ holder: params.registrar,
166
+ id: params.id,
167
+ description: params.description,
168
+ // Unset: a not-yet-valid credential anywhere in a transaction's supplied set aborts it.
169
+ validFrom: null,
170
+ validUntil: params.validUntil,
171
+ claims: params.claims.map((c) => ({ subject: params.subject, property: c.property, value: c.value })),
172
+ observers: (0, readers_1.partySet)([params.operator]),
173
+ };
174
+ }
175
+ function createCredential(payload) {
176
+ return { CreateCommand: { templateId: templates_1.DA_REGISTRY_TEMPLATES.credential, createArguments: { ...payload } } };
177
+ }
178
+ /** The `Archive` choice every DA Registry template carries. */
179
+ function archiveDaRegistryContract(templateKey, contractId) {
180
+ return {
181
+ ExerciseCommand: {
182
+ templateId: templates_1.DA_REGISTRY_TEMPLATES[templateKey],
183
+ contractId,
184
+ choice: 'Archive',
185
+ choiceArgument: {},
186
+ },
187
+ };
188
+ }
189
+ function offerMint(allocationFactoryCid, admin, mint, context) {
190
+ return {
191
+ ExerciseCommand: {
192
+ templateId: templates_1.DA_REGISTRY_TEMPLATES.allocationFactory,
193
+ contractId: allocationFactoryCid,
194
+ choice: 'AllocationFactory_OfferMint',
195
+ choiceArgument: { expectedAdmin: admin, mint, extraArgs: (0, choice_context_1.daRegistryExtraArgs)(context) },
196
+ },
197
+ };
198
+ }
199
+ function cancelMintOffer(mintOfferCid) {
200
+ return {
201
+ ExerciseCommand: {
202
+ templateId: templates_1.DA_REGISTRY_TEMPLATES.mintOffer,
203
+ contractId: mintOfferCid,
204
+ choice: 'MintOffer_Cancel',
205
+ choiceArgument: { extraArgs: null },
206
+ },
207
+ };
208
+ }
209
+ function acceptMintOffer(mintOfferCid, context) {
210
+ return {
211
+ ExerciseCommand: {
212
+ templateId: templates_1.DA_REGISTRY_TEMPLATES.mintOffer,
213
+ contractId: mintOfferCid,
214
+ choice: 'MintOffer_Accept',
215
+ choiceArgument: { extraArgs: (0, choice_context_1.daRegistryExtraArgs)(context) },
216
+ },
217
+ };
218
+ }
219
+ // ── Transfers ─────────────────────────────────────────────────────────────────────────────────────────────────────
220
+ /**
221
+ * A transfer through the registry's transfer factory (the Token Standard V1 `TransferFactory_Transfer` choice). The
222
+ * factory contract id and its choice context come from DA's API (`transferFactory`); the builder itself is the
223
+ * token-standard one, so the payload is validated the same way as any other Token Standard transfer.
224
+ */
225
+ function transferViaFactory(factoryCid, admin, transfer, context) {
226
+ return (0, token_standard_1.buildTokenStandardV1TransferCommand)({
227
+ transferFactoryContractId: factoryCid,
228
+ expectedAdmin: admin,
229
+ transfer,
230
+ extraArgs: { context, meta: { values: {} } },
231
+ });
232
+ }
233
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/da-registry/commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export * from './api-client';
2
+ export * from './choice-context';
3
+ export * from './commands';
4
+ export * from './ledger';
5
+ export * from './packages';
6
+ export * from './readers';
7
+ export * from './templates';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/da-registry/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
@@ -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"}