@fairmint/canton-node-sdk 0.0.233 → 0.0.235

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 (72) hide show
  1. package/build/src/clients/scan-api/ScanApiClient.d.ts.map +1 -1
  2. package/build/src/clients/scan-api/ScanApiClient.generated.d.ts +6 -0
  3. package/build/src/clients/scan-api/ScanApiClient.generated.d.ts.map +1 -1
  4. package/build/src/clients/scan-api/ScanApiClient.generated.js +4 -0
  5. package/build/src/clients/scan-api/ScanApiClient.generated.js.map +1 -1
  6. package/build/src/clients/scan-api/ScanApiClient.js +2 -5
  7. package/build/src/clients/scan-api/ScanApiClient.js.map +1 -1
  8. package/build/src/clients/scan-api/operations/v0/registry/metadata/v1/get-instrument.d.ts +4 -3
  9. package/build/src/clients/scan-api/operations/v0/registry/metadata/v1/get-instrument.d.ts.map +1 -1
  10. package/build/src/clients/scan-api/operations/v0/registry/metadata/v1/get-instrument.js +6 -20
  11. package/build/src/clients/scan-api/operations/v0/registry/metadata/v1/get-instrument.js.map +1 -1
  12. package/build/src/clients/scan-api/operations/v0/registry/metadata/v1/get-registry-info.d.ts +10 -0
  13. package/build/src/clients/scan-api/operations/v0/registry/metadata/v1/get-registry-info.d.ts.map +1 -0
  14. package/build/src/clients/scan-api/operations/v0/registry/metadata/v1/get-registry-info.js +16 -0
  15. package/build/src/clients/scan-api/operations/v0/registry/metadata/v1/get-registry-info.js.map +1 -0
  16. package/build/src/clients/scan-api/operations/v0/registry/metadata/v1/index.d.ts +2 -0
  17. package/build/src/clients/scan-api/operations/v0/registry/metadata/v1/index.d.ts.map +1 -1
  18. package/build/src/clients/scan-api/operations/v0/registry/metadata/v1/index.js +2 -0
  19. package/build/src/clients/scan-api/operations/v0/registry/metadata/v1/index.js.map +1 -1
  20. package/build/src/clients/scan-api/operations/v0/registry/metadata/v1/list-instruments.d.ts +26 -0
  21. package/build/src/clients/scan-api/operations/v0/registry/metadata/v1/list-instruments.d.ts.map +1 -0
  22. package/build/src/clients/scan-api/operations/v0/registry/metadata/v1/list-instruments.js +52 -0
  23. package/build/src/clients/scan-api/operations/v0/registry/metadata/v1/list-instruments.js.map +1 -0
  24. package/build/src/clients/scan-api/operations/v0/registry/metadata/v1/registry-metadata.d.ts +10 -0
  25. package/build/src/clients/scan-api/operations/v0/registry/metadata/v1/registry-metadata.d.ts.map +1 -0
  26. package/build/src/clients/scan-api/operations/v0/registry/metadata/v1/registry-metadata.js +21 -0
  27. package/build/src/clients/scan-api/operations/v0/registry/metadata/v1/registry-metadata.js.map +1 -0
  28. package/build/src/clients/scan-api/scan-endpoints.d.ts +2 -0
  29. package/build/src/clients/scan-api/scan-endpoints.d.ts.map +1 -1
  30. package/build/src/clients/scan-api/scan-endpoints.js +5 -0
  31. package/build/src/clients/scan-api/scan-endpoints.js.map +1 -1
  32. package/build/src/core/errors.d.ts +2 -0
  33. package/build/src/core/errors.d.ts.map +1 -1
  34. package/build/src/core/errors.js +14 -0
  35. package/build/src/core/errors.js.map +1 -1
  36. package/build/src/core/utils/abort.d.ts +3 -0
  37. package/build/src/core/utils/abort.d.ts.map +1 -0
  38. package/build/src/core/utils/abort.js +57 -0
  39. package/build/src/core/utils/abort.js.map +1 -0
  40. package/build/src/utils/external-signing/canton-ed25519-signer.d.ts +64 -0
  41. package/build/src/utils/external-signing/canton-ed25519-signer.d.ts.map +1 -0
  42. package/build/src/utils/external-signing/canton-ed25519-signer.js +206 -0
  43. package/build/src/utils/external-signing/canton-ed25519-signer.js.map +1 -0
  44. package/build/src/utils/external-signing/execute-external-transaction.d.ts +16 -0
  45. package/build/src/utils/external-signing/execute-external-transaction.d.ts.map +1 -1
  46. package/build/src/utils/external-signing/execute-external-transaction.js +17 -5
  47. package/build/src/utils/external-signing/execute-external-transaction.js.map +1 -1
  48. package/build/src/utils/external-signing/external-party-details.d.ts +3 -0
  49. package/build/src/utils/external-signing/external-party-details.d.ts.map +1 -0
  50. package/build/src/utils/external-signing/external-party-details.js +23 -0
  51. package/build/src/utils/external-signing/external-party-details.js.map +1 -0
  52. package/build/src/utils/external-signing/external-party-lifecycle.d.ts +95 -0
  53. package/build/src/utils/external-signing/external-party-lifecycle.d.ts.map +1 -0
  54. package/build/src/utils/external-signing/external-party-lifecycle.js +207 -0
  55. package/build/src/utils/external-signing/external-party-lifecycle.js.map +1 -0
  56. package/build/src/utils/external-signing/external-party-onboarding.d.ts +3 -7
  57. package/build/src/utils/external-signing/external-party-onboarding.d.ts.map +1 -1
  58. package/build/src/utils/external-signing/external-party-onboarding.js +12 -55
  59. package/build/src/utils/external-signing/external-party-onboarding.js.map +1 -1
  60. package/build/src/utils/external-signing/external-signing-client.d.ts +114 -0
  61. package/build/src/utils/external-signing/external-signing-client.d.ts.map +1 -0
  62. package/build/src/utils/external-signing/external-signing-client.js +271 -0
  63. package/build/src/utils/external-signing/external-signing-client.js.map +1 -0
  64. package/build/src/utils/external-signing/index.d.ts +3 -0
  65. package/build/src/utils/external-signing/index.d.ts.map +1 -1
  66. package/build/src/utils/external-signing/index.js +3 -0
  67. package/build/src/utils/external-signing/index.js.map +1 -1
  68. package/build/src/utils/party-readiness/index.d.ts +2 -0
  69. package/build/src/utils/party-readiness/index.d.ts.map +1 -1
  70. package/build/src/utils/party-readiness/index.js +22 -12
  71. package/build/src/utils/party-readiness/index.js.map +1 -1
  72. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/core/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/core/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function runWithAbortSignal<T>(signal: AbortSignal | undefined, createAbortError: () => Error, operation: () => Promise<T>): Promise<T>;
2
+ export declare function delayWithAbortSignal(ms: number, signal: AbortSignal | undefined, createAbortError: () => Error): Promise<void>;
3
+ //# sourceMappingURL=abort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abort.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/abort.ts"],"names":[],"mappings":"AAAA,wBAAsB,kBAAkB,CAAC,CAAC,EACxC,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,gBAAgB,EAAE,MAAM,KAAK,EAC7B,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC,CAAC,CAAC,CAoCZ;AAED,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,gBAAgB,EAAE,MAAM,KAAK,GAC5B,OAAO,CAAC,IAAI,CAAC,CAmBf"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runWithAbortSignal = runWithAbortSignal;
4
+ exports.delayWithAbortSignal = delayWithAbortSignal;
5
+ async function runWithAbortSignal(signal, createAbortError, operation) {
6
+ if (!signal)
7
+ return operation();
8
+ return new Promise((resolve, reject) => {
9
+ let settled = false;
10
+ const cleanup = () => signal.removeEventListener('abort', onAbort);
11
+ const finish = (callback) => {
12
+ if (settled)
13
+ return;
14
+ settled = true;
15
+ cleanup();
16
+ callback();
17
+ };
18
+ const onAbort = () => {
19
+ // Preserve event order when the operation fulfilled before a synchronous abort but its handler has not run yet.
20
+ queueMicrotask(() => finish(() => reject(createAbortError())));
21
+ };
22
+ signal.addEventListener('abort', onAbort, { once: true });
23
+ if (signal.aborted) {
24
+ onAbort();
25
+ return;
26
+ }
27
+ let pending;
28
+ try {
29
+ pending = operation();
30
+ }
31
+ catch (error) {
32
+ finish(() => reject(error));
33
+ return;
34
+ }
35
+ pending.then((value) => finish(() => resolve(value)), (error) => finish(() => reject(error)));
36
+ });
37
+ }
38
+ async function delayWithAbortSignal(ms, signal, createAbortError) {
39
+ if (!signal)
40
+ return new Promise((resolve) => setTimeout(resolve, ms));
41
+ return new Promise((resolve, reject) => {
42
+ const timeout = setTimeout(() => {
43
+ signal.removeEventListener('abort', onAbort);
44
+ resolve();
45
+ }, ms);
46
+ const onAbort = () => {
47
+ clearTimeout(timeout);
48
+ signal.removeEventListener('abort', onAbort);
49
+ reject(createAbortError());
50
+ };
51
+ signal.addEventListener('abort', onAbort, { once: true });
52
+ if (signal.aborted) {
53
+ onAbort();
54
+ }
55
+ });
56
+ }
57
+ //# sourceMappingURL=abort.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abort.js","sourceRoot":"","sources":["../../../../src/core/utils/abort.ts"],"names":[],"mappings":";;;;AAAO,KAAK,6BACV,MAA+B,EAC/B,gBAA6B,EAC7B,SAA2B;IAE3B,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,EAAE,CAAC;IAEhC,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,OAAO,GAAG,GAAS,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,CAAC,QAAoB,EAAQ,EAAE;YAC5C,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,CAAC;QACb,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,gHAAgH;YAChH,cAAc,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,IAAI,OAAmB,CAAC;QACxB,IAAI,CAAC;YACH,OAAO,GAAG,SAAS,EAAE,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,OAAO,CAAC,IAAI,CACV,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EACvC,CAAC,KAAc,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAChD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,+BACV,EAAU,EACV,MAA+B,EAC/B,gBAA6B;IAE7B,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAEtE,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,64 @@
1
+ export declare const CantonEd25519SigningPurpose: {
2
+ readonly EXTERNAL_PARTY_TOPOLOGY: 'external-party-topology';
3
+ readonly INTERACTIVE_SUBMISSION: 'interactive-submission';
4
+ };
5
+ export type CantonEd25519SigningPurposeType = (typeof CantonEd25519SigningPurpose)[keyof typeof CantonEd25519SigningPurpose];
6
+ export declare const DEFAULT_CANTON_ED25519_SIGNING_REQUEST_TTL_MS: number;
7
+ export declare const MAX_CANTON_ED25519_SIGNING_REQUEST_TTL_MS: number;
8
+ export type CantonEd25519SigningContextValue = string | number | boolean | null;
9
+ export type CantonEd25519SigningContext = Readonly<Record<string, CantonEd25519SigningContextValue>>;
10
+ /**
11
+ * A provider-neutral Canton payload that must be signed by an externally held Ed25519 key.
12
+ *
13
+ * Signers should display or enforce policy using `purpose`, `operationId`, `partyId`, and `synchronizerId`. Only the
14
+ * decoded bytes represented by `payloadHex`/`payloadBase64` are signed; the contextual fields are not part of the
15
+ * signed payload.
16
+ */
17
+ export interface CantonEd25519SigningRequest {
18
+ readonly purpose: CantonEd25519SigningPurposeType;
19
+ readonly operationId: string;
20
+ readonly partyId: string;
21
+ readonly publicKeyBase64: string;
22
+ readonly publicKeyFingerprint: string;
23
+ readonly synchronizerId: string;
24
+ readonly payloadHex: string;
25
+ readonly payloadBase64: string;
26
+ readonly issuedAt: string;
27
+ readonly expiresAt: string;
28
+ readonly context?: CantonEd25519SigningContext;
29
+ }
30
+ export type CantonEd25519Signature = {
31
+ readonly signatureBase64: string;
32
+ } | {
33
+ readonly signatureHex: string;
34
+ } | {
35
+ readonly signatureBytes: Uint8Array;
36
+ };
37
+ /** Provider-neutral external key that can sign Canton topology and interactive-submission hashes. */
38
+ export interface CantonEd25519Signer {
39
+ readonly publicKeyBase64: string;
40
+ readonly signCantonPayload: (request: CantonEd25519SigningRequest, options?: {
41
+ readonly signal?: AbortSignal;
42
+ }) => CantonEd25519Signature | Promise<CantonEd25519Signature>;
43
+ }
44
+ export interface SignAndVerifyCantonEd25519PayloadOptions {
45
+ readonly signer: CantonEd25519Signer;
46
+ readonly purpose: CantonEd25519SigningPurposeType;
47
+ readonly operationId: string;
48
+ readonly partyId: string;
49
+ readonly synchronizerId: string;
50
+ readonly payloadHex: string;
51
+ readonly context?: CantonEd25519SigningContext;
52
+ readonly requestTtlMs?: number;
53
+ readonly now?: () => number;
54
+ readonly signal?: AbortSignal;
55
+ }
56
+ export interface SignedCantonEd25519Payload {
57
+ readonly request: CantonEd25519SigningRequest;
58
+ readonly signatureBase64: string;
59
+ }
60
+ /** Calls an external signer and independently verifies its response against the signer's declared public key. */
61
+ export declare function signAndVerifyCantonEd25519Payload(options: SignAndVerifyCantonEd25519PayloadOptions): Promise<SignedCantonEd25519Payload>;
62
+ /** Normalizes supported signer outputs into canonical, padded base64. */
63
+ export declare function normalizeCantonEd25519Signature(signature: CantonEd25519Signature): string;
64
+ //# sourceMappingURL=canton-ed25519-signer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canton-ed25519-signer.d.ts","sourceRoot":"","sources":["../../../../src/utils/external-signing/canton-ed25519-signer.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,2BAA2B;aACtC,uBAAuB,EAAE,yBAAyB;aAClD,sBAAsB,EAAE,wBAAwB;CACxC,CAAC;AAEX,MAAM,MAAM,+BAA+B,GACzC,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,OAAO,2BAA2B,CAAC,CAAC;AAEjF,eAAO,MAAM,6CAA6C,QAAiB,CAAC;AAC5E,eAAO,MAAM,yCAAyC,QAAkB,CAAC;AAEzE,MAAM,MAAM,gCAAgC,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAChF,MAAM,MAAM,2BAA2B,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC,CAAC;AAErG;;;;;;GAMG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,EAAE,+BAA+B,CAAC;IAClD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,2BAA2B,CAAC;CAChD;AAED,MAAM,MAAM,sBAAsB,GAC9B;IACE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC,GACD;IACE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B,GACD;IACE,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAC;CACrC,CAAC;AAEN,qGAAqG;AACrG,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,iBAAiB,EAAE,CAC1B,OAAO,EAAE,2BAA2B,EACpC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,KACxC,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,wCAAwC;IACvD,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,+BAA+B,CAAC;IAClD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,2BAA2B,CAAC;IAC/C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC;IAC9C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,iHAAiH;AACjH,wBAAsB,iCAAiC,CACrD,OAAO,EAAE,wCAAwC,GAChD,OAAO,CAAC,0BAA0B,CAAC,CA+CrC;AAmED,yEAAyE;AACzE,wBAAgB,+BAA+B,CAAC,SAAS,EAAE,sBAAsB,GAAG,MAAM,CAQzF"}
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MAX_CANTON_ED25519_SIGNING_REQUEST_TTL_MS = exports.DEFAULT_CANTON_ED25519_SIGNING_REQUEST_TTL_MS = exports.CantonEd25519SigningPurpose = void 0;
4
+ exports.signAndVerifyCantonEd25519Payload = signAndVerifyCantonEd25519Payload;
5
+ exports.normalizeCantonEd25519Signature = normalizeCantonEd25519Signature;
6
+ const errors_1 = require("../../core/errors");
7
+ const canton_protocol_1 = require("./canton-protocol");
8
+ exports.CantonEd25519SigningPurpose = {
9
+ EXTERNAL_PARTY_TOPOLOGY: 'external-party-topology',
10
+ INTERACTIVE_SUBMISSION: 'interactive-submission',
11
+ };
12
+ exports.DEFAULT_CANTON_ED25519_SIGNING_REQUEST_TTL_MS = 5 * 60 * 1000;
13
+ exports.MAX_CANTON_ED25519_SIGNING_REQUEST_TTL_MS = 15 * 60 * 1000;
14
+ /** Calls an external signer and independently verifies its response against the signer's declared public key. */
15
+ async function signAndVerifyCantonEd25519Payload(options) {
16
+ const purpose = validateSigningPurpose(options.purpose);
17
+ const operationId = validateRequiredString('operationId', options.operationId);
18
+ const synchronizerId = validateRequiredString('synchronizerId', options.synchronizerId);
19
+ const payloadHex = normalizeHexPayload(options.payloadHex);
20
+ const requestTtlMs = validateRequestTtlMs(options.requestTtlMs ?? exports.DEFAULT_CANTON_ED25519_SIGNING_REQUEST_TTL_MS);
21
+ const now = options.now ?? Date.now;
22
+ const issuedAtMs = validateTimestamp(now());
23
+ const issuedAt = new Date(issuedAtMs).toISOString();
24
+ const expiresAt = new Date(issuedAtMs + requestTtlMs).toISOString();
25
+ const context = options.context === undefined ? undefined : normalizeSigningContext(options.context);
26
+ const publicKeyBase64 = (0, canton_protocol_1.normalizeEd25519PublicKeyForCanton)(options.signer.publicKeyBase64);
27
+ const publicKeyFingerprint = (0, canton_protocol_1.assertCantonPartyMatchesPublicKey)({
28
+ partyId: options.partyId,
29
+ publicKeyBase64,
30
+ });
31
+ const request = {
32
+ purpose,
33
+ operationId,
34
+ partyId: options.partyId,
35
+ publicKeyBase64,
36
+ publicKeyFingerprint,
37
+ synchronizerId,
38
+ payloadHex,
39
+ payloadBase64: (0, canton_protocol_1.hashHexToBase64)(payloadHex),
40
+ issuedAt,
41
+ expiresAt,
42
+ ...(context !== undefined ? { context } : {}),
43
+ };
44
+ const signatureBase64 = normalizeCantonEd25519Signature(await waitForCantonSigner(options.signer, request, requestTtlMs, options.signal));
45
+ if (validateTimestamp(now()) >= issuedAtMs + requestTtlMs) {
46
+ throw new errors_1.ValidationError('Canton Ed25519 signing request expired before the signer completed', {
47
+ operationId,
48
+ expiresAt,
49
+ });
50
+ }
51
+ (0, canton_protocol_1.assertEd25519Signature)({
52
+ publicKeyBase64,
53
+ payload: Buffer.from(payloadHex, 'hex'),
54
+ signatureBase64,
55
+ failureMessage: 'External Canton signer returned an invalid Ed25519 signature',
56
+ });
57
+ return { request, signatureBase64 };
58
+ }
59
+ async function waitForCantonSigner(signer, request, requestTtlMs, externalSignal) {
60
+ if (externalSignal?.aborted) {
61
+ throw signingAborted(request.operationId);
62
+ }
63
+ const controller = new AbortController();
64
+ return new Promise((resolve, reject) => {
65
+ let settled = false;
66
+ const finish = (callback) => {
67
+ if (settled)
68
+ return;
69
+ settled = true;
70
+ clearTimeout(timeout);
71
+ externalSignal?.removeEventListener('abort', onAbort);
72
+ callback();
73
+ };
74
+ const onAbort = () => {
75
+ // Preserve a signer result that settled before abort but whose promise handler is already queued.
76
+ queueMicrotask(() => finish(() => reject(signingAborted(request.operationId))));
77
+ controller.abort();
78
+ };
79
+ const timeout = setTimeout(() => {
80
+ controller.abort();
81
+ finish(() => reject(new errors_1.ValidationError('Canton Ed25519 signing request expired before the signer completed', {
82
+ operationId: request.operationId,
83
+ expiresAt: request.expiresAt,
84
+ })));
85
+ }, requestTtlMs);
86
+ externalSignal?.addEventListener('abort', onAbort, { once: true });
87
+ if (externalSignal?.aborted) {
88
+ onAbort();
89
+ return;
90
+ }
91
+ queueMicrotask(() => {
92
+ if (settled || controller.signal.aborted) {
93
+ finish(() => reject(signingAborted(request.operationId)));
94
+ return;
95
+ }
96
+ let pending;
97
+ try {
98
+ pending = signer.signCantonPayload(request, { signal: controller.signal });
99
+ }
100
+ catch (error) {
101
+ finish(() => reject(error));
102
+ return;
103
+ }
104
+ Promise.resolve(pending).then((signature) => finish(() => resolve(signature)), (error) => finish(() => reject(error)));
105
+ });
106
+ });
107
+ }
108
+ function signingAborted(operationId) {
109
+ return new errors_1.ValidationError('Canton Ed25519 signing request was aborted', { operationId });
110
+ }
111
+ /** Normalizes supported signer outputs into canonical, padded base64. */
112
+ function normalizeCantonEd25519Signature(signature) {
113
+ if ('signatureBase64' in signature) {
114
+ return encodeSignatureBytes(decodeBase64Signature(signature.signatureBase64));
115
+ }
116
+ if ('signatureHex' in signature) {
117
+ return encodeSignatureBytes(decodeHexSignature(signature.signatureHex));
118
+ }
119
+ return encodeSignatureBytes(Buffer.from(signature.signatureBytes));
120
+ }
121
+ function decodeBase64Signature(value) {
122
+ const normalized = value.trim().replace(/-/g, '+').replace(/_/g, '/');
123
+ if (!/^[A-Za-z0-9+/]+={0,2}$/.test(normalized) || normalized.length % 4 === 1) {
124
+ throw invalidCantonEd25519Signature();
125
+ }
126
+ const padded = normalized.padEnd(normalized.length + ((4 - (normalized.length % 4)) % 4), '=');
127
+ const decoded = Buffer.from(padded, 'base64');
128
+ if (decoded.toString('base64').replace(/=+$/, '') !== normalized.replace(/=+$/, '')) {
129
+ throw invalidCantonEd25519Signature();
130
+ }
131
+ return decoded;
132
+ }
133
+ function decodeHexSignature(value) {
134
+ const normalized = value.trim().replace(/^0x/i, '');
135
+ if (!/^[0-9a-fA-F]+$/.test(normalized) || normalized.length % 2 !== 0) {
136
+ throw invalidCantonEd25519Signature();
137
+ }
138
+ return Buffer.from(normalized, 'hex');
139
+ }
140
+ function encodeSignatureBytes(signature) {
141
+ if (signature.length !== 64) {
142
+ throw invalidCantonEd25519Signature(signature.length);
143
+ }
144
+ return signature.toString('base64');
145
+ }
146
+ function invalidCantonEd25519Signature(actualLength) {
147
+ return new errors_1.ValidationError('External Canton signer must return a 64-byte Ed25519 signature', {
148
+ ...(actualLength !== undefined ? { actualLength } : {}),
149
+ expectedLength: 64,
150
+ });
151
+ }
152
+ function normalizeHexPayload(value) {
153
+ const normalized = value.trim();
154
+ if (!/^(?:[0-9a-fA-F]{2})+$/.test(normalized)) {
155
+ throw new errors_1.ValidationError('payloadHex must be non-empty, even-length hexadecimal bytes', { payloadHex: value });
156
+ }
157
+ return normalized.toLowerCase();
158
+ }
159
+ function validateRequiredString(name, value) {
160
+ const normalized = value.trim();
161
+ if (!normalized) {
162
+ throw new errors_1.ValidationError(`${name} is required`, { [name]: value });
163
+ }
164
+ return normalized;
165
+ }
166
+ function validateRequestTtlMs(value) {
167
+ if (!Number.isSafeInteger(value) || value <= 0 || value > exports.MAX_CANTON_ED25519_SIGNING_REQUEST_TTL_MS) {
168
+ throw new errors_1.ValidationError(`requestTtlMs must be a positive safe integer no greater than ${exports.MAX_CANTON_ED25519_SIGNING_REQUEST_TTL_MS}`, { requestTtlMs: value, maxRequestTtlMs: exports.MAX_CANTON_ED25519_SIGNING_REQUEST_TTL_MS });
169
+ }
170
+ return value;
171
+ }
172
+ function validateTimestamp(value) {
173
+ const latestIssuedAtMs = 8640000000000000 - exports.MAX_CANTON_ED25519_SIGNING_REQUEST_TTL_MS;
174
+ if (!Number.isSafeInteger(value) || value < 0 || value > latestIssuedAtMs) {
175
+ throw new errors_1.ValidationError('now must return a non-negative, valid Unix timestamp in milliseconds', { now: value });
176
+ }
177
+ return value;
178
+ }
179
+ function normalizeSigningContext(context) {
180
+ if (typeof context !== 'object' || context === null || Array.isArray(context)) {
181
+ throw new errors_1.ValidationError('Canton signing context must be an object of primitive JSON values');
182
+ }
183
+ const entries = [];
184
+ for (const [key, value] of Object.entries(context)) {
185
+ if (!key.trim()) {
186
+ throw new errors_1.ValidationError('Canton signing context keys must not be empty');
187
+ }
188
+ if (value !== null &&
189
+ typeof value !== 'string' &&
190
+ typeof value !== 'boolean' &&
191
+ (typeof value !== 'number' || !Number.isFinite(value))) {
192
+ throw new errors_1.ValidationError('Canton signing context values must be primitive JSON values', { key });
193
+ }
194
+ entries.push([key, value]);
195
+ }
196
+ // Object.fromEntries defines `__proto__` as an own data property instead of invoking Object.prototype's setter.
197
+ return Object.fromEntries(entries);
198
+ }
199
+ function validateSigningPurpose(value) {
200
+ if (value !== exports.CantonEd25519SigningPurpose.EXTERNAL_PARTY_TOPOLOGY &&
201
+ value !== exports.CantonEd25519SigningPurpose.INTERACTIVE_SUBMISSION) {
202
+ throw new errors_1.ValidationError('Unsupported Canton Ed25519 signing purpose', { purpose: value });
203
+ }
204
+ return value;
205
+ }
206
+ //# sourceMappingURL=canton-ed25519-signer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canton-ed25519-signer.js","sourceRoot":"","sources":["../../../../src/utils/external-signing/canton-ed25519-signer.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,22 @@
1
1
  import { type LedgerJsonApiClient } from '../../clients/ledger-json-api';
2
2
  import { type InteractiveSubmissionExecuteRequest, type InteractiveSubmissionExecuteResponse } from '../../clients/ledger-json-api/schemas/api/interactive-submission';
3
3
  export type PartySignature = InteractiveSubmissionExecuteRequest['partySignatures']['signatures'][number];
4
+ /** Immutable compatibility value. Use the factory below when building a submission request. */
5
+ export declare const DEFAULT_INTERACTIVE_SUBMISSION_DEDUPLICATION_PERIOD: Readonly<{
6
+ DeduplicationDuration: Readonly<{
7
+ value: Readonly<{
8
+ duration: "30s";
9
+ }>;
10
+ }>;
11
+ }>;
12
+ /** Returns an isolated default deduplication period for one interactive submission. */
13
+ export declare function createDefaultInteractiveSubmissionDeduplicationPeriod(): {
14
+ DeduplicationDuration: {
15
+ value: {
16
+ duration: string;
17
+ };
18
+ };
19
+ };
4
20
  export interface ExecuteExternalTransactionOptions {
5
21
  readonly ledgerClient: LedgerJsonApiClient;
6
22
  readonly userId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"execute-external-transaction.d.ts","sourceRoot":"","sources":["../../../../src/utils/external-signing/execute-external-transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EACL,KAAK,mCAAmC,EACxC,KAAK,oCAAoC,EAC1C,MAAM,kEAAkE,CAAC;AAG1E,MAAM,MAAM,cAAc,GAAG,mCAAmC,CAAC,iBAAiB,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1G,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,SAAS,cAAc,EAAE,CAAC;IACpD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,mCAAmC,CAAC,qBAAqB,CAAC,CAAC;CAC3F;AAED,MAAM,WAAW,uCAAuC;IACtD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,oCAAoC,CAAC,CAE/C;AAED;;;;;GAKG;AACH,wBAAsB,iCAAiC,CACrD,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,uCAAuC,CAAC,CAclD"}
1
+ {"version":3,"file":"execute-external-transaction.d.ts","sourceRoot":"","sources":["../../../../src/utils/external-signing/execute-external-transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EACL,KAAK,mCAAmC,EACxC,KAAK,oCAAoC,EAC1C,MAAM,kEAAkE,CAAC;AAG1E,MAAM,MAAM,cAAc,GAAG,mCAAmC,CAAC,iBAAiB,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1G,+FAA+F;AAC/F,eAAO,MAAM,mDAAmD;;;;;;EAIoB,CAAC;AAErF,uFAAuF;AACvF,wBAAgB,qDAAqD,IAAI;IACvE,qBAAqB,EAAE;QAAE,KAAK,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CACxD,CAMA;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,SAAS,cAAc,EAAE,CAAC;IACpD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,mCAAmC,CAAC,qBAAqB,CAAC,CAAC;CAC3F;AAED,MAAM,WAAW,uCAAuC;IACtD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,oCAAoC,CAAC,CAE/C;AAED;;;;;GAKG;AACH,wBAAsB,iCAAiC,CACrD,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,uCAAuC,CAAC,CAclD"}
@@ -1,8 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_INTERACTIVE_SUBMISSION_DEDUPLICATION_PERIOD = void 0;
4
+ exports.createDefaultInteractiveSubmissionDeduplicationPeriod = createDefaultInteractiveSubmissionDeduplicationPeriod;
3
5
  exports.executeExternalTransaction = executeExternalTransaction;
4
6
  exports.executeExternalTransactionAndWait = executeExternalTransactionAndWait;
5
7
  const canton_response_utils_1 = require("../canton-response-utils");
8
+ /** Immutable compatibility value. Use the factory below when building a submission request. */
9
+ exports.DEFAULT_INTERACTIVE_SUBMISSION_DEDUPLICATION_PERIOD = Object.freeze({
10
+ DeduplicationDuration: Object.freeze({
11
+ value: Object.freeze({ duration: '30s' }),
12
+ }),
13
+ });
14
+ /** Returns an isolated default deduplication period for one interactive submission. */
15
+ function createDefaultInteractiveSubmissionDeduplicationPeriod() {
16
+ return {
17
+ DeduplicationDuration: {
18
+ value: { duration: exports.DEFAULT_INTERACTIVE_SUBMISSION_DEDUPLICATION_PERIOD.DeduplicationDuration.value.duration },
19
+ },
20
+ };
21
+ }
6
22
  /**
7
23
  * Executes an interactive submission after offline signing (`interactiveSubmissionExecute`).
8
24
  *
@@ -35,11 +51,7 @@ function buildExecuteExternalTransactionRequest(options) {
35
51
  preparedTransaction: options.preparedTransaction,
36
52
  hashingSchemeVersion: options.hashingSchemeVersion ?? 'HASHING_SCHEME_VERSION_V2',
37
53
  submissionId: options.submissionId,
38
- deduplicationPeriod: options.deduplicationPeriod ?? {
39
- DeduplicationDuration: {
40
- value: { duration: '30s' },
41
- },
42
- },
54
+ deduplicationPeriod: options.deduplicationPeriod ?? createDefaultInteractiveSubmissionDeduplicationPeriod(),
43
55
  partySignatures: {
44
56
  signatures: [...options.partySignatures],
45
57
  },
@@ -1 +1 @@
1
- {"version":3,"file":"execute-external-transaction.js","sourceRoot":"","sources":["../../../../src/utils/external-signing/execute-external-transaction.ts"],"names":[],"mappings":";;;;AAKA,oEAA6E;AAmB7E;;;;;GAKG;AACI,KAAK,qCACV,OAA0C;IAE1C,OAAO,OAAO,CAAC,YAAY,CAAC,4BAA4B,CAAC,sCAAsC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5G,CAAC;AAED;;;;;GAKG;AACI,KAAK,4CACV,OAA0C;IAE1C,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,eAAe,CACpD,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,2CAA2C,EAC9E,sCAAsC,CAAC,OAAO,CAAC,EAC/C;QACE,WAAW,EAAE,kBAAkB;QAC/B,kBAAkB,EAAE,IAAI;KACzB,CACF,CAAC;IACF,MAAM,QAAQ,GAAG,IAAA,0CAAkB,EAAC,GAAG,EAAE,UAAU,EAAE,uCAAuC,CAAC,CAAC;IAC9F,OAAO;QACL,QAAQ;QACR,GAAG,EAAE,IAAA,qCAAa,EAAC,GAAG,CAAC;KACxB,CAAC;AACJ,CAAC;AAED,SAAS,sCAAsC,CAC7C,OAA0C;IAE1C,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;QAChD,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,IAAI,2BAA2B;QACjF,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,IAAI;YAClD,qBAAqB,EAAE;gBACrB,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;aAC3B;SACF;QACD,eAAe,EAAE;YACf,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;SACzC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"execute-external-transaction.js","sourceRoot":"","sources":["../../../../src/utils/external-signing/execute-external-transaction.ts"],"names":[],"mappings":";;;;;;AAKA,oEAA6E;AAI7E,+FAA+F;AAClF,QAAA,mDAAmD,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/E,qBAAqB,EAAE,MAAM,CAAC,MAAM,CAAC;QACnC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;KAC1C,CAAC;CACH,CAAmF,CAAC;AAErF,uFAAuF;AACvF;IAGE,OAAO;QACL,qBAAqB,EAAE;YACrB,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAA,mDAAmD,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,EAAE;SAC9G;KACgF,CAAC;AACtF,CAAC;AAiBD;;;;;GAKG;AACI,KAAK,qCACV,OAA0C;IAE1C,OAAO,OAAO,CAAC,YAAY,CAAC,4BAA4B,CAAC,sCAAsC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5G,CAAC;AAED;;;;;GAKG;AACI,KAAK,4CACV,OAA0C;IAE1C,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,eAAe,CACpD,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,2CAA2C,EAC9E,sCAAsC,CAAC,OAAO,CAAC,EAC/C;QACE,WAAW,EAAE,kBAAkB;QAC/B,kBAAkB,EAAE,IAAI;KACzB,CACF,CAAC;IACF,MAAM,QAAQ,GAAG,IAAA,0CAAkB,EAAC,GAAG,EAAE,UAAU,EAAE,uCAAuC,CAAC,CAAC;IAC9F,OAAO;QACL,QAAQ;QACR,GAAG,EAAE,IAAA,qCAAa,EAAC,GAAG,CAAC;KACxB,CAAC;AACJ,CAAC;AAED,SAAS,sCAAsC,CAC7C,OAA0C;IAE1C,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;QAChD,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,IAAI,2BAA2B;QACjF,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,IAAI,qDAAqD,EAAE;QAC3G,eAAe,EAAE;YACf,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;SACzC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Reads the first valid party-details record, optionally requiring one exact party id. */
2
+ export declare function readMatchingExternalPartyDetails(source: unknown, partyId?: string): Record<string, unknown> | null;
3
+ //# sourceMappingURL=external-party-details.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-party-details.d.ts","sourceRoot":"","sources":["../../../../src/utils/external-signing/external-party-details.ts"],"names":[],"mappings":"AAEA,2FAA2F;AAC3F,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAYlH"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readMatchingExternalPartyDetails = readMatchingExternalPartyDetails;
4
+ const utils_1 = require("../../core/utils");
5
+ /** Reads the first valid party-details record, optionally requiring one exact party id. */
6
+ function readMatchingExternalPartyDetails(source, partyId) {
7
+ if (!(0, utils_1.isRecord)(source))
8
+ return null;
9
+ const { partyDetails } = source;
10
+ const details = Array.isArray(partyDetails) ? partyDetails : [partyDetails];
11
+ for (const detail of details) {
12
+ if (!(0, utils_1.isRecord)(detail))
13
+ continue;
14
+ const { party } = detail;
15
+ if (typeof party !== 'string' || !party.trim())
16
+ continue;
17
+ if (partyId !== undefined && party !== partyId)
18
+ continue;
19
+ return detail;
20
+ }
21
+ return null;
22
+ }
23
+ //# sourceMappingURL=external-party-details.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-party-details.js","sourceRoot":"","sources":["../../../../src/utils/external-signing/external-party-details.ts"],"names":[],"mappings":";;;AAAA,4CAA4C;AAE5C,2FAA2F;AAC3F,0CAAiD,MAAe,EAAE,OAAgB;IAChF,IAAI,CAAC,IAAA,gBAAQ,EAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAChC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAC5E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAA,gBAAQ,EAAC,MAAM,CAAC;YAAE,SAAS;QAChC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YAAE,SAAS;QACzD,IAAI,OAAO,KAAK,SAAS,IAAI,KAAK,KAAK,OAAO;YAAE,SAAS;QACzD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,95 @@
1
+ import { type LedgerJsonApiClient } from '../../clients/ledger-json-api';
2
+ import { type PartySynchronizerReadiness } from '../party-readiness';
3
+ export type ExternalPartyOnboardingState = 'not-found' | 'allocated' | 'in-flight' | 'ready' | 'unknown';
4
+ interface ExternalPartyOnboardingStatusBase {
5
+ readonly state: ExternalPartyOnboardingState;
6
+ readonly partyId: string;
7
+ readonly publicKeyFingerprint: string;
8
+ readonly synchronizerId: string;
9
+ readonly exists: boolean | null;
10
+ readonly ready: boolean;
11
+ }
12
+ export interface ExternalPartyNotFoundStatus extends ExternalPartyOnboardingStatusBase {
13
+ readonly state: 'not-found';
14
+ readonly exists: false;
15
+ readonly ready: false;
16
+ readonly partyDetails: null;
17
+ }
18
+ export interface ExternalPartyInFlightStatus extends ExternalPartyOnboardingStatusBase {
19
+ readonly state: 'in-flight';
20
+ readonly exists: true;
21
+ readonly ready: false;
22
+ readonly partyDetails: Record<string, unknown>;
23
+ readonly readiness: PartySynchronizerReadiness;
24
+ }
25
+ export interface ExternalPartyAllocatedStatus extends ExternalPartyOnboardingStatusBase {
26
+ readonly state: 'allocated';
27
+ readonly exists: true;
28
+ readonly ready: false;
29
+ readonly partyDetails: Record<string, unknown>;
30
+ readonly readiness: PartySynchronizerReadiness;
31
+ }
32
+ export interface ExternalPartyReadyStatus extends ExternalPartyOnboardingStatusBase {
33
+ readonly state: 'ready';
34
+ readonly exists: true;
35
+ readonly ready: true;
36
+ readonly partyDetails: Record<string, unknown>;
37
+ readonly readiness: PartySynchronizerReadiness;
38
+ }
39
+ export interface ExternalPartyUnknownStatus extends ExternalPartyOnboardingStatusBase {
40
+ readonly state: 'unknown';
41
+ readonly exists: boolean | null;
42
+ readonly ready: false;
43
+ readonly failedAt: 'party-details' | 'readiness';
44
+ readonly failure: ExternalPartyStatusFailure;
45
+ readonly partyDetails?: Record<string, unknown>;
46
+ }
47
+ export type ExternalPartyOnboardingStatus = ExternalPartyNotFoundStatus | ExternalPartyAllocatedStatus | ExternalPartyInFlightStatus | ExternalPartyReadyStatus | ExternalPartyUnknownStatus;
48
+ export interface ExternalPartyStatusFailure {
49
+ readonly name: string;
50
+ readonly message: string;
51
+ readonly status?: number;
52
+ readonly code?: string;
53
+ readonly context?: unknown;
54
+ }
55
+ export interface ReconcileExternalPartyOnboardingOptions {
56
+ readonly ledgerClient: LedgerJsonApiClient;
57
+ readonly partyId: string;
58
+ readonly publicKeyBase64: string;
59
+ readonly synchronizerId: string;
60
+ readonly identityProviderId?: string;
61
+ readonly participantId?: string;
62
+ /** Set false when local observation, rather than local submit permission, is the intended terminal state. */
63
+ readonly expectSubmitReady?: boolean;
64
+ /** Cancels pending reconciliation reads. */
65
+ readonly signal?: AbortSignal;
66
+ }
67
+ /**
68
+ * Reconciles external-party visibility and submit readiness without relying on allocation error text.
69
+ *
70
+ * `in-flight` means the party is allocated locally but has not yet become submission-capable on the requested
71
+ * synchronizer. `unknown` preserves transport/API uncertainty instead of incorrectly treating it as absence.
72
+ */
73
+ export declare function reconcileExternalPartyOnboarding(options: ReconcileExternalPartyOnboardingOptions): Promise<ExternalPartyOnboardingStatus>;
74
+ export type ExternalPartyAllocationFailureKind = 'already-exists' | 'definite-rejection' | 'ambiguous';
75
+ export interface ExternalPartyAllocationFailure {
76
+ readonly kind: ExternalPartyAllocationFailureKind;
77
+ readonly definite: boolean;
78
+ readonly shouldReconcile: boolean;
79
+ readonly status?: number;
80
+ readonly code?: string;
81
+ readonly details: ExternalPartyStatusFailure;
82
+ }
83
+ /** Classifies allocation failures from structured SDK/Canton fields, never from localized error messages. */
84
+ export declare function classifyExternalPartyAllocationFailure(error: unknown): ExternalPartyAllocationFailure;
85
+ export interface ReconcileExternalPartyAllocationFailureOptions extends ReconcileExternalPartyOnboardingOptions {
86
+ readonly error: unknown;
87
+ }
88
+ export interface ExternalPartyAllocationReconciliation {
89
+ readonly failure: ExternalPartyAllocationFailure;
90
+ readonly status: ExternalPartyOnboardingStatus;
91
+ }
92
+ /** Returns one structured allocation failure plus the currently observable party lifecycle state. */
93
+ export declare function reconcileExternalPartyAllocationFailure(options: ReconcileExternalPartyAllocationFailureOptions): Promise<ExternalPartyAllocationReconciliation>;
94
+ export {};
95
+ //# sourceMappingURL=external-party-lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-party-lifecycle.d.ts","sourceRoot":"","sources":["../../../../src/utils/external-signing/external-party-lifecycle.ts"],"names":[],"mappings":"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"}