@fairmint/canton-node-sdk 0.0.218 → 0.0.220
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.
- package/build/src/core/config/CantonRuntimeCredentials.d.ts +63 -0
- package/build/src/core/config/CantonRuntimeCredentials.d.ts.map +1 -0
- package/build/src/core/config/CantonRuntimeCredentials.js +146 -0
- package/build/src/core/config/CantonRuntimeCredentials.js.map +1 -0
- package/build/src/core/config/index.d.ts +1 -0
- package/build/src/core/config/index.d.ts.map +1 -1
- package/build/src/core/config/index.js +1 -0
- package/build/src/core/config/index.js.map +1 -1
- package/build/src/utils/amulet/external-party-transfer-offer.d.ts.map +1 -1
- package/build/src/utils/amulet/external-party-transfer-offer.js +10 -36
- package/build/src/utils/amulet/external-party-transfer-offer.js.map +1 -1
- package/build/src/utils/external-signing/external-party-onboarding.d.ts +53 -0
- package/build/src/utils/external-signing/external-party-onboarding.d.ts.map +1 -1
- package/build/src/utils/external-signing/external-party-onboarding.js +109 -0
- package/build/src/utils/external-signing/external-party-onboarding.js.map +1 -1
- package/build/src/utils/external-signing/external-party-wallet.d.ts.map +1 -1
- package/build/src/utils/external-signing/external-party-wallet.js +5 -30
- package/build/src/utils/external-signing/external-party-wallet.js.map +1 -1
- package/build/src/utils/index.d.ts +1 -0
- package/build/src/utils/index.d.ts.map +1 -1
- package/build/src/utils/index.js +1 -0
- package/build/src/utils/index.js.map +1 -1
- package/build/src/utils/party-readiness/index.d.ts +65 -0
- package/build/src/utils/party-readiness/index.d.ts.map +1 -0
- package/build/src/utils/party-readiness/index.js +238 -0
- package/build/src/utils/party-readiness/index.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { type ClientConfig, type NetworkType, type ProviderType } from '../types';
|
|
2
|
+
/** Env-var suffixes used for explicit Canton runtime credentials. */
|
|
3
|
+
export declare const CANTON_RUNTIME_CREDENTIAL_ENV_SUFFIXES: readonly ["PARTY_ID", "USER_ID", "VALIDATOR_ADMIN_TOKEN", "VALIDATOR_JSON_API_ENDPOINT", "LEDGER_JSON_API_ENDPOINT", "SPLICE_SCAN_API_ENDPOINT"];
|
|
4
|
+
/** Supported env-var suffix for explicit Canton runtime credentials. */
|
|
5
|
+
export type CantonRuntimeCredentialEnvSuffix = (typeof CANTON_RUNTIME_CREDENTIAL_ENV_SUFFIXES)[number];
|
|
6
|
+
/** Env-var prefix emitted for one network/provider runtime credential set. */
|
|
7
|
+
export type CantonRuntimeCredentialEnvPrefix = `CANTON_${string}_${string}`;
|
|
8
|
+
/** Env-var key emitted for one network/provider runtime credential set. */
|
|
9
|
+
export type CantonRuntimeCredentialEnvKey = `${CantonRuntimeCredentialEnvPrefix}_${CantonRuntimeCredentialEnvSuffix}`;
|
|
10
|
+
/** Env-var map for one explicit Canton runtime credential set. */
|
|
11
|
+
export type CantonRuntimeCredentialEnvMap = Readonly<Record<CantonRuntimeCredentialEnvKey, string>>;
|
|
12
|
+
/** Raw Canton runtime credential values loaded by an application from SSM, env, or another explicit source. */
|
|
13
|
+
export interface CantonRuntimeCredentialsInput {
|
|
14
|
+
readonly partyId: string;
|
|
15
|
+
readonly userId: string;
|
|
16
|
+
readonly validatorAdminToken: string;
|
|
17
|
+
readonly validatorJsonApiEndpoint: string;
|
|
18
|
+
readonly ledgerJsonApiEndpoint: string;
|
|
19
|
+
readonly spliceScanApiEndpoint: string;
|
|
20
|
+
}
|
|
21
|
+
/** Normalized, validated Canton runtime credential values. */
|
|
22
|
+
export interface CantonRuntimeCredentials {
|
|
23
|
+
readonly partyId: string;
|
|
24
|
+
readonly userId: string;
|
|
25
|
+
readonly validatorAdminToken: string;
|
|
26
|
+
readonly validatorJsonApiEndpoint: string;
|
|
27
|
+
readonly ledgerJsonApiEndpoint: string;
|
|
28
|
+
readonly spliceScanApiEndpoint: string;
|
|
29
|
+
}
|
|
30
|
+
/** Target network/provider prefix for emitted Canton runtime credential env keys. */
|
|
31
|
+
export interface CantonRuntimeCredentialTarget {
|
|
32
|
+
readonly network: NetworkType;
|
|
33
|
+
readonly provider: ProviderType;
|
|
34
|
+
}
|
|
35
|
+
/** Options for emitting a Canton runtime credential env map. */
|
|
36
|
+
export interface CantonRuntimeCredentialEnvMapOptions extends CantonRuntimeCredentialTarget {
|
|
37
|
+
readonly credentials: CantonRuntimeCredentialsInput;
|
|
38
|
+
}
|
|
39
|
+
/** Options for building an explicit SDK client config from Canton runtime credentials. */
|
|
40
|
+
export interface CantonRuntimeCredentialClientConfigOptions extends CantonRuntimeCredentialTarget {
|
|
41
|
+
readonly credentials: CantonRuntimeCredentialsInput;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Normalize and validate one explicit Canton runtime credential set.
|
|
45
|
+
*
|
|
46
|
+
* This helper is intentionally pure: it does not read from or write to `process.env`.
|
|
47
|
+
*/
|
|
48
|
+
export declare function normalizeCantonRuntimeCredentials(credentials: CantonRuntimeCredentialsInput): CantonRuntimeCredentials;
|
|
49
|
+
/** Build the env-var keys for one network/provider Canton runtime credential prefix. */
|
|
50
|
+
export declare function buildCantonRuntimeCredentialEnvKeys(target: CantonRuntimeCredentialTarget): readonly CantonRuntimeCredentialEnvKey[];
|
|
51
|
+
/**
|
|
52
|
+
* Emit an env-var map for one explicit Canton runtime credential set.
|
|
53
|
+
*
|
|
54
|
+
* Callers can pass the returned map through their own runtime boundary without mutating global process state.
|
|
55
|
+
*/
|
|
56
|
+
export declare function buildCantonRuntimeCredentialEnvMap(options: CantonRuntimeCredentialEnvMapOptions): CantonRuntimeCredentialEnvMap;
|
|
57
|
+
/**
|
|
58
|
+
* Build an explicit SDK client config from Canton runtime credentials.
|
|
59
|
+
*
|
|
60
|
+
* This avoids environment lookup entirely for the SDK clients configured here.
|
|
61
|
+
*/
|
|
62
|
+
export declare function buildCantonRuntimeCredentialClientConfig(options: CantonRuntimeCredentialClientConfigOptions): ClientConfig;
|
|
63
|
+
//# sourceMappingURL=CantonRuntimeCredentials.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CantonRuntimeCredentials.d.ts","sourceRoot":"","sources":["../../../../src/core/config/CantonRuntimeCredentials.ts"],"names":[],"mappings":"AACA,OAAO,EAAmC,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAInH,qEAAqE;AACrE,eAAO,MAAM,sCAAsC,kJAOzC,CAAC;AAEX,wEAAwE;AACxE,MAAM,MAAM,gCAAgC,GAAG,CAAC,OAAO,sCAAsC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvG,8EAA8E;AAC9E,MAAM,MAAM,gCAAgC,GAAG,UAAU,MAAM,IAAI,MAAM,EAAE,CAAC;AAE5E,2EAA2E;AAC3E,MAAM,MAAM,6BAA6B,GAAG,GAAG,gCAAgC,IAAI,gCAAgC,EAAE,CAAC;AAEtH,kEAAkE;AAClE,MAAM,MAAM,6BAA6B,GAAG,QAAQ,CAAC,MAAM,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC,CAAC;AAEpG,+GAA+G;AAC/G,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;CACxC;AAED,8DAA8D;AAC9D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;CACxC;AAED,qFAAqF;AACrF,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;CACjC;AAED,gEAAgE;AAChE,MAAM,WAAW,oCAAqC,SAAQ,6BAA6B;IACzF,QAAQ,CAAC,WAAW,EAAE,6BAA6B,CAAC;CACrD;AAED,0FAA0F;AAC1F,MAAM,WAAW,0CAA2C,SAAQ,6BAA6B;IAC/F,QAAQ,CAAC,WAAW,EAAE,6BAA6B,CAAC;CACrD;AAcD;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,WAAW,EAAE,6BAA6B,GACzC,wBAAwB,CAS1B;AAED,wFAAwF;AACxF,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,6BAA6B,GACpC,SAAS,6BAA6B,EAAE,CAG1C;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,oCAAoC,GAC5C,6BAA6B,CAY/B;AAED;;;;GAIG;AACH,wBAAgB,wCAAwC,CACtD,OAAO,EAAE,0CAA0C,GAClD,YAAY,CAed"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CANTON_RUNTIME_CREDENTIAL_ENV_SUFFIXES = void 0;
|
|
4
|
+
exports.normalizeCantonRuntimeCredentials = normalizeCantonRuntimeCredentials;
|
|
5
|
+
exports.buildCantonRuntimeCredentialEnvKeys = buildCantonRuntimeCredentialEnvKeys;
|
|
6
|
+
exports.buildCantonRuntimeCredentialEnvMap = buildCantonRuntimeCredentialEnvMap;
|
|
7
|
+
exports.buildCantonRuntimeCredentialClientConfig = buildCantonRuntimeCredentialClientConfig;
|
|
8
|
+
const errors_1 = require("../errors");
|
|
9
|
+
const CANTON_RUNTIME_ENV_SEGMENT_REGEX = /^[A-Za-z0-9_-]+$/;
|
|
10
|
+
/** Env-var suffixes used for explicit Canton runtime credentials. */
|
|
11
|
+
exports.CANTON_RUNTIME_CREDENTIAL_ENV_SUFFIXES = [
|
|
12
|
+
'PARTY_ID',
|
|
13
|
+
'USER_ID',
|
|
14
|
+
'VALIDATOR_ADMIN_TOKEN',
|
|
15
|
+
'VALIDATOR_JSON_API_ENDPOINT',
|
|
16
|
+
'LEDGER_JSON_API_ENDPOINT',
|
|
17
|
+
'SPLICE_SCAN_API_ENDPOINT',
|
|
18
|
+
];
|
|
19
|
+
const CANTON_RUNTIME_CREDENTIAL_FIELD_BY_SUFFIX = {
|
|
20
|
+
PARTY_ID: 'partyId',
|
|
21
|
+
USER_ID: 'userId',
|
|
22
|
+
VALIDATOR_ADMIN_TOKEN: 'validatorAdminToken',
|
|
23
|
+
VALIDATOR_JSON_API_ENDPOINT: 'validatorJsonApiEndpoint',
|
|
24
|
+
LEDGER_JSON_API_ENDPOINT: 'ledgerJsonApiEndpoint',
|
|
25
|
+
SPLICE_SCAN_API_ENDPOINT: 'spliceScanApiEndpoint',
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Normalize and validate one explicit Canton runtime credential set.
|
|
29
|
+
*
|
|
30
|
+
* This helper is intentionally pure: it does not read from or write to `process.env`.
|
|
31
|
+
*/
|
|
32
|
+
function normalizeCantonRuntimeCredentials(credentials) {
|
|
33
|
+
return {
|
|
34
|
+
partyId: normalizeRequiredString('partyId', credentials.partyId),
|
|
35
|
+
userId: normalizeRequiredString('userId', credentials.userId),
|
|
36
|
+
validatorAdminToken: normalizeRequiredString('validatorAdminToken', credentials.validatorAdminToken),
|
|
37
|
+
validatorJsonApiEndpoint: normalizeHttpEndpoint('validatorJsonApiEndpoint', credentials.validatorJsonApiEndpoint),
|
|
38
|
+
ledgerJsonApiEndpoint: normalizeHttpEndpoint('ledgerJsonApiEndpoint', credentials.ledgerJsonApiEndpoint),
|
|
39
|
+
spliceScanApiEndpoint: normalizeHttpEndpoint('spliceScanApiEndpoint', credentials.spliceScanApiEndpoint),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/** Build the env-var keys for one network/provider Canton runtime credential prefix. */
|
|
43
|
+
function buildCantonRuntimeCredentialEnvKeys(target) {
|
|
44
|
+
const prefix = buildCantonRuntimeCredentialEnvPrefix(target);
|
|
45
|
+
return exports.CANTON_RUNTIME_CREDENTIAL_ENV_SUFFIXES.map((suffix) => buildCantonRuntimeCredentialEnvKey(prefix, suffix));
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Emit an env-var map for one explicit Canton runtime credential set.
|
|
49
|
+
*
|
|
50
|
+
* Callers can pass the returned map through their own runtime boundary without mutating global process state.
|
|
51
|
+
*/
|
|
52
|
+
function buildCantonRuntimeCredentialEnvMap(options) {
|
|
53
|
+
const credentials = normalizeCantonRuntimeCredentials(options.credentials);
|
|
54
|
+
const prefix = buildCantonRuntimeCredentialEnvPrefix(options);
|
|
55
|
+
const envMap = {};
|
|
56
|
+
for (const suffix of exports.CANTON_RUNTIME_CREDENTIAL_ENV_SUFFIXES) {
|
|
57
|
+
const envKey = buildCantonRuntimeCredentialEnvKey(prefix, suffix);
|
|
58
|
+
const credentialField = CANTON_RUNTIME_CREDENTIAL_FIELD_BY_SUFFIX[suffix];
|
|
59
|
+
envMap[envKey] = credentials[credentialField];
|
|
60
|
+
}
|
|
61
|
+
return envMap;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Build an explicit SDK client config from Canton runtime credentials.
|
|
65
|
+
*
|
|
66
|
+
* This avoids environment lookup entirely for the SDK clients configured here.
|
|
67
|
+
*/
|
|
68
|
+
function buildCantonRuntimeCredentialClientConfig(options) {
|
|
69
|
+
const credentials = normalizeCantonRuntimeCredentials(options.credentials);
|
|
70
|
+
const adminTokenAuth = buildBearerTokenAuth(credentials.validatorAdminToken);
|
|
71
|
+
return {
|
|
72
|
+
network: options.network,
|
|
73
|
+
provider: options.provider,
|
|
74
|
+
partyId: credentials.partyId,
|
|
75
|
+
userId: credentials.userId,
|
|
76
|
+
apis: {
|
|
77
|
+
LEDGER_JSON_API: buildApiConfig(credentials.ledgerJsonApiEndpoint, credentials, adminTokenAuth),
|
|
78
|
+
VALIDATOR_API: buildApiConfig(credentials.validatorJsonApiEndpoint, credentials, adminTokenAuth),
|
|
79
|
+
SCAN_API: buildApiConfig(credentials.spliceScanApiEndpoint, credentials, buildNoAuthConfig()),
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
function buildCantonRuntimeCredentialEnvPrefix(target) {
|
|
84
|
+
const network = normalizeEnvSegment('network', target.network);
|
|
85
|
+
const provider = normalizeEnvSegment('provider', target.provider);
|
|
86
|
+
return `CANTON_${network}_${provider}`;
|
|
87
|
+
}
|
|
88
|
+
function buildCantonRuntimeCredentialEnvKey(prefix, suffix) {
|
|
89
|
+
return `${prefix}_${suffix}`;
|
|
90
|
+
}
|
|
91
|
+
function buildApiConfig(apiUrl, credentials, auth) {
|
|
92
|
+
return {
|
|
93
|
+
apiUrl,
|
|
94
|
+
auth,
|
|
95
|
+
partyId: credentials.partyId,
|
|
96
|
+
userId: credentials.userId,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
function buildBearerTokenAuth(token) {
|
|
100
|
+
return {
|
|
101
|
+
grantType: 'client_credentials',
|
|
102
|
+
clientId: '',
|
|
103
|
+
bearerToken: token,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
function buildNoAuthConfig() {
|
|
107
|
+
return {
|
|
108
|
+
grantType: 'client_credentials',
|
|
109
|
+
clientId: '',
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
function normalizeHttpEndpoint(name, value) {
|
|
113
|
+
const normalized = trimTrailingSlashes(normalizeRequiredString(name, value));
|
|
114
|
+
try {
|
|
115
|
+
const parsed = new URL(normalized);
|
|
116
|
+
if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {
|
|
117
|
+
throw new Error('Unsupported protocol');
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
throw new errors_1.ConfigurationError(`Invalid Canton runtime credential ${name}: expected an http(s) URL`);
|
|
122
|
+
}
|
|
123
|
+
return normalized;
|
|
124
|
+
}
|
|
125
|
+
function normalizeRequiredString(name, value) {
|
|
126
|
+
const normalized = typeof value === 'string' ? value.trim() : '';
|
|
127
|
+
if (!normalized) {
|
|
128
|
+
throw new errors_1.ConfigurationError(`Missing Canton runtime credential: ${name}`);
|
|
129
|
+
}
|
|
130
|
+
return normalized;
|
|
131
|
+
}
|
|
132
|
+
function normalizeEnvSegment(name, value) {
|
|
133
|
+
const normalized = normalizeRequiredString(name, value).toUpperCase();
|
|
134
|
+
if (!CANTON_RUNTIME_ENV_SEGMENT_REGEX.test(normalized)) {
|
|
135
|
+
throw new errors_1.ConfigurationError(`Invalid Canton runtime credential ${name}: expected only letters, numbers, underscores, and hyphens`);
|
|
136
|
+
}
|
|
137
|
+
return normalized;
|
|
138
|
+
}
|
|
139
|
+
function trimTrailingSlashes(value) {
|
|
140
|
+
let end = value.length;
|
|
141
|
+
while (end > 0 && value.charCodeAt(end - 1) === 47) {
|
|
142
|
+
end -= 1;
|
|
143
|
+
}
|
|
144
|
+
return value.slice(0, end);
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=CantonRuntimeCredentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CantonRuntimeCredentials.js","sourceRoot":"","sources":["../../../../src/core/config/CantonRuntimeCredentials.ts"],"names":[],"mappings":";;;AAgFA,8EAWC;AAGD,kFAKC;AAOD,gFAcC;AAOD,4FAiBC;AAhJD,sCAA+C;AAG/C,MAAM,gCAAgC,GAAG,kBAAkB,CAAC;AAE5D,qEAAqE;AACxD,QAAA,sCAAsC,GAAG;IACpD,UAAU;IACV,SAAS;IACT,uBAAuB;IACvB,6BAA6B;IAC7B,0BAA0B;IAC1B,0BAA0B;CAClB,CAAC;AAkDX,MAAM,yCAAyC,GAG3C;IACF,QAAQ,EAAE,SAAS;IACnB,OAAO,EAAE,QAAQ;IACjB,qBAAqB,EAAE,qBAAqB;IAC5C,2BAA2B,EAAE,0BAA0B;IACvD,wBAAwB,EAAE,uBAAuB;IACjD,wBAAwB,EAAE,uBAAuB;CAClD,CAAC;AAEF;;;;GAIG;AACH,SAAgB,iCAAiC,CAC/C,WAA0C;IAE1C,OAAO;QACL,OAAO,EAAE,uBAAuB,CAAC,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC;QAChE,MAAM,EAAE,uBAAuB,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC;QAC7D,mBAAmB,EAAE,uBAAuB,CAAC,qBAAqB,EAAE,WAAW,CAAC,mBAAmB,CAAC;QACpG,wBAAwB,EAAE,qBAAqB,CAAC,0BAA0B,EAAE,WAAW,CAAC,wBAAwB,CAAC;QACjH,qBAAqB,EAAE,qBAAqB,CAAC,uBAAuB,EAAE,WAAW,CAAC,qBAAqB,CAAC;QACxG,qBAAqB,EAAE,qBAAqB,CAAC,uBAAuB,EAAE,WAAW,CAAC,qBAAqB,CAAC;KACzG,CAAC;AACJ,CAAC;AAED,wFAAwF;AACxF,SAAgB,mCAAmC,CACjD,MAAqC;IAErC,MAAM,MAAM,GAAG,qCAAqC,CAAC,MAAM,CAAC,CAAC;IAC7D,OAAO,8CAAsC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,kCAAkC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AACpH,CAAC;AAED;;;;GAIG;AACH,SAAgB,kCAAkC,CAChD,OAA6C;IAE7C,MAAM,WAAW,GAAG,iCAAiC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,qCAAqC,CAAC,OAAO,CAAC,CAAC;IAC9D,MAAM,MAAM,GAA2D,EAAE,CAAC;IAE1E,KAAK,MAAM,MAAM,IAAI,8CAAsC,EAAE,CAAC;QAC5D,MAAM,MAAM,GAAG,kCAAkC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAClE,MAAM,eAAe,GAAG,yCAAyC,CAAC,MAAM,CAAC,CAAC;QAC1E,MAAM,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,MAAuC,CAAC;AACjD,CAAC;AAED;;;;GAIG;AACH,SAAgB,wCAAwC,CACtD,OAAmD;IAEnD,MAAM,WAAW,GAAG,iCAAiC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3E,MAAM,cAAc,GAAG,oBAAoB,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAE7E,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,IAAI,EAAE;YACJ,eAAe,EAAE,cAAc,CAAC,WAAW,CAAC,qBAAqB,EAAE,WAAW,EAAE,cAAc,CAAC;YAC/F,aAAa,EAAE,cAAc,CAAC,WAAW,CAAC,wBAAwB,EAAE,WAAW,EAAE,cAAc,CAAC;YAChG,QAAQ,EAAE,cAAc,CAAC,WAAW,CAAC,qBAAqB,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;SAC9F;KACF,CAAC;AACJ,CAAC;AAED,SAAS,qCAAqC,CAC5C,MAAqC;IAErC,MAAM,OAAO,GAAG,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClE,OAAO,UAAU,OAAO,IAAI,QAAQ,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,kCAAkC,CACzC,MAAwC,EACxC,MAAwC;IAExC,OAAO,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,cAAc,CAAC,MAAc,EAAE,WAAqC,EAAE,IAAgB;IAC7F,OAAO;QACL,MAAM;QACN,IAAI;QACJ,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,MAAM,EAAE,WAAW,CAAC,MAAM;KAC3B,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa;IACzC,OAAO;QACL,SAAS,EAAE,oBAAoB;QAC/B,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,KAAK;KACnB,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO;QACL,SAAS,EAAE,oBAAoB;QAC/B,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY,EAAE,KAAa;IACxD,MAAM,UAAU,GAAG,mBAAmB,CAAC,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAE7E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;QACnC,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,2BAAkB,CAAC,qCAAqC,IAAI,2BAA2B,CAAC,CAAC;IACrG,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAY,EAAE,KAAa;IAC1D,MAAM,UAAU,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,2BAAkB,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY,EAAE,KAAa;IACtD,MAAM,UAAU,GAAG,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IACtE,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,2BAAkB,CAC1B,qCAAqC,IAAI,4DAA4D,CACtG,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;IACvB,OAAO,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACnD,GAAG,IAAI,CAAC,CAAC;IACX,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,aAAa,CAAC"}
|
|
@@ -14,5 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./CantonRuntimeCredentials"), exports);
|
|
17
18
|
__exportStar(require("./EnvLoader"), exports);
|
|
18
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,8CAA4B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-party-transfer-offer.d.ts","sourceRoot":"","sources":["../../../../src/utils/amulet/external-party-transfer-offer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAStE,OAAO,EAEL,KAAK,uCAAuC,EAC7C,MAAM,kDAAkD,CAAC;
|
|
1
|
+
{"version":3,"file":"external-party-transfer-offer.d.ts","sourceRoot":"","sources":["../../../../src/utils/amulet/external-party-transfer-offer.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ const canton_protocol_1 = require("../external-signing/canton-protocol");
|
|
|
14
14
|
const execute_external_transaction_1 = require("../external-signing/execute-external-transaction");
|
|
15
15
|
const external_party_onboarding_1 = require("../external-signing/external-party-onboarding");
|
|
16
16
|
const prepare_external_transaction_1 = require("../external-signing/prepare-external-transaction");
|
|
17
|
+
const party_readiness_1 = require("../party-readiness");
|
|
17
18
|
exports.CANTON_TRANSFER_OFFER_TEMPLATE_ID = '#splice-wallet:Splice.Wallet.TransferOffer:TransferOffer';
|
|
18
19
|
/**
|
|
19
20
|
* Prepares `TransferOffer_Accept` for an externally hosted party.
|
|
@@ -243,45 +244,18 @@ function readDisclosedContractFromPossibleOffer(source, offerContractId, default
|
|
|
243
244
|
}
|
|
244
245
|
async function readRequiredConnectedSynchronizerId(ledgerClient, providerPartyId) {
|
|
245
246
|
const raw = await ledgerClient.getConnectedSynchronizers({ party: providerPartyId });
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
if (!(0, utils_1.isRecord)(raw) && !Array.isArray(raw))
|
|
253
|
-
return null;
|
|
254
|
-
const direct = (0, utils_1.isRecord)(raw) ? raw['connectedSynchronizers'] : undefined;
|
|
255
|
-
const itemsField = (0, utils_1.isRecord)(raw) ? raw['items'] : undefined;
|
|
256
|
-
const items = Array.isArray(raw)
|
|
257
|
-
? raw
|
|
258
|
-
: Array.isArray(direct)
|
|
259
|
-
? direct
|
|
260
|
-
: Array.isArray(itemsField)
|
|
261
|
-
? itemsField
|
|
262
|
-
: [];
|
|
263
|
-
const synchronizerIds = [];
|
|
264
|
-
for (const item of items) {
|
|
265
|
-
if (typeof item === 'string' && item.trim()) {
|
|
266
|
-
synchronizerIds.push(item);
|
|
267
|
-
continue;
|
|
268
|
-
}
|
|
269
|
-
if (!(0, utils_1.isRecord)(item)) {
|
|
270
|
-
continue;
|
|
247
|
+
try {
|
|
248
|
+
return (0, party_readiness_1.assertSingleConnectedSynchronizerId)(raw);
|
|
249
|
+
}
|
|
250
|
+
catch (error) {
|
|
251
|
+
if (error instanceof errors_1.OperationError && error.message === 'Canton party did not report a connected synchronizer') {
|
|
252
|
+
throw new errors_1.OperationError('Canton provider did not report a connected synchronizer', errors_1.OperationErrorCode.MISSING_DOMAIN_ID);
|
|
271
253
|
}
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
if (typeof value === 'string' && value.trim()) {
|
|
275
|
-
synchronizerIds.push(value);
|
|
276
|
-
break;
|
|
277
|
-
}
|
|
254
|
+
if (error instanceof errors_1.OperationError && error.message === 'Canton party reported multiple connected synchronizers') {
|
|
255
|
+
throw new errors_1.OperationError('Canton provider reported multiple connected synchronizers', errors_1.OperationErrorCode.MISSING_DOMAIN_ID, error.context);
|
|
278
256
|
}
|
|
257
|
+
throw error;
|
|
279
258
|
}
|
|
280
|
-
const uniqueSynchronizerIds = new Set(synchronizerIds);
|
|
281
|
-
if (uniqueSynchronizerIds.size > 1) {
|
|
282
|
-
throw new errors_1.OperationError('Canton provider reported multiple connected synchronizers', errors_1.OperationErrorCode.MISSING_DOMAIN_ID, { synchronizerIds });
|
|
283
|
-
}
|
|
284
|
-
return synchronizerIds[0] ?? null;
|
|
285
259
|
}
|
|
286
260
|
function validateRequiredString(name, value) {
|
|
287
261
|
if (!value.trim()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-party-transfer-offer.js","sourceRoot":"","sources":["../../../../src/utils/amulet/external-party-transfer-offer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"external-party-transfer-offer.js","sourceRoot":"","sources":["../../../../src/utils/amulet/external-party-transfer-offer.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,14 @@ export interface PrepareExternalPartyOnboardingOptions {
|
|
|
9
9
|
readonly synchronizerId: string;
|
|
10
10
|
readonly partyHint: string;
|
|
11
11
|
readonly publicKeyBase64: string;
|
|
12
|
+
/** If true, the local participant will only observe, not confirm (default: false). */
|
|
13
|
+
readonly localParticipantObservationOnly?: boolean;
|
|
14
|
+
/** Other participant UIDs that should confirm for this party. */
|
|
15
|
+
readonly otherConfirmingParticipantUids?: readonly string[];
|
|
16
|
+
/** Confirmation threshold for multi-hosted party (default: all confirmers). */
|
|
17
|
+
readonly confirmationThreshold?: number;
|
|
18
|
+
/** Other participant UIDs that should only observe. */
|
|
19
|
+
readonly observingParticipantUids?: readonly string[];
|
|
12
20
|
}
|
|
13
21
|
export interface PreparedExternalPartyOnboarding {
|
|
14
22
|
readonly partyId: string;
|
|
@@ -41,12 +49,57 @@ export interface SubmittedExternalPartyOnboarding {
|
|
|
41
49
|
readonly raw: Record<string, unknown>;
|
|
42
50
|
readonly alreadyExisted: boolean;
|
|
43
51
|
}
|
|
52
|
+
export interface ExternalPartyHashSigningRequest {
|
|
53
|
+
readonly partyHint: string;
|
|
54
|
+
readonly partyId: string;
|
|
55
|
+
readonly publicKeyBase64: string;
|
|
56
|
+
readonly publicKeyFingerprint: string;
|
|
57
|
+
readonly synchronizerId: string;
|
|
58
|
+
readonly multiHashHex: string;
|
|
59
|
+
readonly multiHashBase64: string;
|
|
60
|
+
readonly topologyTransactions: readonly string[];
|
|
61
|
+
readonly signingAlgorithmSpec: typeof CANTON_ED25519_SIGNATURE_ALGORITHM;
|
|
62
|
+
}
|
|
63
|
+
export type ExternalPartyHashSignature = {
|
|
64
|
+
readonly signatureBase64: string;
|
|
65
|
+
} | {
|
|
66
|
+
readonly signatureHex: string;
|
|
67
|
+
} | {
|
|
68
|
+
readonly signatureBytes: Buffer | Uint8Array;
|
|
69
|
+
};
|
|
70
|
+
export type ExternalPartyHashSigner = (request: ExternalPartyHashSigningRequest) => ExternalPartyHashSignature | Promise<ExternalPartyHashSignature>;
|
|
71
|
+
export interface CreateExternalPartyWithSignerOptions extends PrepareExternalPartyOnboardingOptions {
|
|
72
|
+
readonly signMultiHash: ExternalPartyHashSigner;
|
|
73
|
+
readonly identityProviderId?: string;
|
|
74
|
+
/**
|
|
75
|
+
* Treat a 409 allocation conflict as success when the party already exists and the party details endpoint confirms
|
|
76
|
+
* it.
|
|
77
|
+
*/
|
|
78
|
+
readonly allowAlreadyExists?: boolean;
|
|
79
|
+
}
|
|
80
|
+
export interface CreatedExternalPartyWithSigner {
|
|
81
|
+
readonly partyId: string;
|
|
82
|
+
readonly publicKeyFingerprint: string;
|
|
83
|
+
readonly publicKeyBase64: string;
|
|
84
|
+
readonly synchronizerId: string;
|
|
85
|
+
readonly prepared: PreparedExternalPartyOnboarding;
|
|
86
|
+
readonly submitted: SubmittedExternalPartyOnboarding;
|
|
87
|
+
readonly alreadyExisted: boolean;
|
|
88
|
+
}
|
|
44
89
|
/**
|
|
45
90
|
* Prepares external-party topology for a raw or DER-wrapped Ed25519 public key.
|
|
46
91
|
*
|
|
47
92
|
* The caller should ask the end-user wallet to sign `multiHashHex` before calling {@link submitExternalPartyOnboarding}.
|
|
48
93
|
*/
|
|
49
94
|
export declare function prepareExternalPartyOnboarding(options: PrepareExternalPartyOnboardingOptions): Promise<PreparedExternalPartyOnboarding>;
|
|
95
|
+
/**
|
|
96
|
+
* Creates an external party using an external Ed25519 signer.
|
|
97
|
+
*
|
|
98
|
+
* Use this when the private key is held by a wallet service or browser wallet. The SDK prepares Canton topology, passes
|
|
99
|
+
* the multihash to `signMultiHash`, validates the returned signature against the submitted public key, and submits the
|
|
100
|
+
* allocation.
|
|
101
|
+
*/
|
|
102
|
+
export declare function createExternalPartyWithSigner(options: CreateExternalPartyWithSignerOptions): Promise<CreatedExternalPartyWithSigner>;
|
|
50
103
|
/** Verifies the end-user Ed25519 signature and submits prepared external-party topology to Canton. */
|
|
51
104
|
export declare function submitExternalPartyOnboarding(options: SubmitExternalPartyOnboardingOptions): Promise<SubmittedExternalPartyOnboarding>;
|
|
52
105
|
/** Lists party ids whose suffix matches the supplied Ed25519 public key fingerprint. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-party-onboarding.d.ts","sourceRoot":"","sources":["../../../../src/utils/external-signing/external-party-onboarding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"external-party-onboarding.d.ts","sourceRoot":"","sources":["../../../../src/utils/external-signing/external-party-onboarding.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DEFAULT_CANTON_IDENTITY_PROVIDER_ID = exports.CANTON_ED25519_SIGNATURE_ALGORITHM = exports.CANTON_RAW_SIGNATURE_FORMAT = exports.CANTON_EC_CURVE25519_PUBLIC_KEY_SPEC = exports.CANTON_DER_X509_PUBLIC_KEY_FORMAT = void 0;
|
|
4
4
|
exports.prepareExternalPartyOnboarding = prepareExternalPartyOnboarding;
|
|
5
|
+
exports.createExternalPartyWithSigner = createExternalPartyWithSigner;
|
|
5
6
|
exports.submitExternalPartyOnboarding = submitExternalPartyOnboarding;
|
|
6
7
|
exports.listExternalPartyIdsForPublicKey = listExternalPartyIdsForPublicKey;
|
|
7
8
|
exports.getExternalPartyIdForHintAndPublicKey = getExternalPartyIdForHintAndPublicKey;
|
|
@@ -33,6 +34,16 @@ async function prepareExternalPartyOnboarding(options) {
|
|
|
33
34
|
keyData: (0, canton_protocol_1.normalizeEd25519PublicKeyForCanton)(options.publicKeyBase64),
|
|
34
35
|
keySpec: exports.CANTON_EC_CURVE25519_PUBLIC_KEY_SPEC,
|
|
35
36
|
},
|
|
37
|
+
...(options.localParticipantObservationOnly !== undefined
|
|
38
|
+
? { localParticipantObservationOnly: options.localParticipantObservationOnly }
|
|
39
|
+
: {}),
|
|
40
|
+
...(options.otherConfirmingParticipantUids !== undefined
|
|
41
|
+
? { otherConfirmingParticipantUids: options.otherConfirmingParticipantUids }
|
|
42
|
+
: {}),
|
|
43
|
+
...(options.confirmationThreshold !== undefined ? { confirmationThreshold: options.confirmationThreshold } : {}),
|
|
44
|
+
...(options.observingParticipantUids !== undefined
|
|
45
|
+
? { observingParticipantUids: options.observingParticipantUids }
|
|
46
|
+
: {}),
|
|
36
47
|
});
|
|
37
48
|
const partyId = (0, canton_response_utils_1.readRequiredString)(topology, 'partyId', 'topology generation');
|
|
38
49
|
const publicKeyFingerprint = assertGeneratedPartyMatchesPublicKey({
|
|
@@ -50,6 +61,64 @@ async function prepareExternalPartyOnboarding(options) {
|
|
|
50
61
|
raw: topology,
|
|
51
62
|
};
|
|
52
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Creates an external party using an external Ed25519 signer.
|
|
66
|
+
*
|
|
67
|
+
* Use this when the private key is held by a wallet service or browser wallet. The SDK prepares Canton topology, passes
|
|
68
|
+
* the multihash to `signMultiHash`, validates the returned signature against the submitted public key, and submits the
|
|
69
|
+
* allocation.
|
|
70
|
+
*/
|
|
71
|
+
async function createExternalPartyWithSigner(options) {
|
|
72
|
+
const publicKeyBase64 = (0, canton_protocol_1.normalizeEd25519PublicKeyForCanton)(options.publicKeyBase64);
|
|
73
|
+
const prepared = await prepareExternalPartyOnboarding({
|
|
74
|
+
ledgerClient: options.ledgerClient,
|
|
75
|
+
synchronizerId: options.synchronizerId,
|
|
76
|
+
partyHint: options.partyHint,
|
|
77
|
+
publicKeyBase64,
|
|
78
|
+
...(options.localParticipantObservationOnly !== undefined
|
|
79
|
+
? { localParticipantObservationOnly: options.localParticipantObservationOnly }
|
|
80
|
+
: {}),
|
|
81
|
+
...(options.otherConfirmingParticipantUids !== undefined
|
|
82
|
+
? { otherConfirmingParticipantUids: options.otherConfirmingParticipantUids }
|
|
83
|
+
: {}),
|
|
84
|
+
...(options.confirmationThreshold !== undefined ? { confirmationThreshold: options.confirmationThreshold } : {}),
|
|
85
|
+
...(options.observingParticipantUids !== undefined
|
|
86
|
+
? { observingParticipantUids: options.observingParticipantUids }
|
|
87
|
+
: {}),
|
|
88
|
+
});
|
|
89
|
+
const signature = await options.signMultiHash({
|
|
90
|
+
partyHint: options.partyHint,
|
|
91
|
+
partyId: prepared.partyId,
|
|
92
|
+
publicKeyBase64,
|
|
93
|
+
publicKeyFingerprint: prepared.publicKeyFingerprint,
|
|
94
|
+
synchronizerId: prepared.synchronizerId,
|
|
95
|
+
multiHashHex: prepared.multiHashHex,
|
|
96
|
+
multiHashBase64: (0, canton_protocol_1.hashHexToBase64)(prepared.multiHashHex),
|
|
97
|
+
topologyTransactions: prepared.topologyTransactions,
|
|
98
|
+
signingAlgorithmSpec: prepared.signingAlgorithmSpec,
|
|
99
|
+
});
|
|
100
|
+
const submitted = await submitExternalPartyOnboarding({
|
|
101
|
+
ledgerClient: options.ledgerClient,
|
|
102
|
+
synchronizerId: prepared.synchronizerId,
|
|
103
|
+
partyId: prepared.partyId,
|
|
104
|
+
publicKeyBase64,
|
|
105
|
+
publicKeyFingerprint: prepared.publicKeyFingerprint,
|
|
106
|
+
multiHashHex: prepared.multiHashHex,
|
|
107
|
+
topologyTransactions: prepared.topologyTransactions,
|
|
108
|
+
multiHashSignatureBase64: normalizeExternalPartyHashSignature(signature),
|
|
109
|
+
...(options.identityProviderId !== undefined ? { identityProviderId: options.identityProviderId } : {}),
|
|
110
|
+
...(options.allowAlreadyExists !== undefined ? { allowAlreadyExists: options.allowAlreadyExists } : {}),
|
|
111
|
+
});
|
|
112
|
+
return {
|
|
113
|
+
partyId: submitted.partyId,
|
|
114
|
+
publicKeyFingerprint: prepared.publicKeyFingerprint,
|
|
115
|
+
publicKeyBase64,
|
|
116
|
+
synchronizerId: prepared.synchronizerId,
|
|
117
|
+
prepared,
|
|
118
|
+
submitted,
|
|
119
|
+
alreadyExisted: submitted.alreadyExisted,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
53
122
|
/** Verifies the end-user Ed25519 signature and submits prepared external-party topology to Canton. */
|
|
54
123
|
async function submitExternalPartyOnboarding(options) {
|
|
55
124
|
validateRequiredString('synchronizerId', options.synchronizerId);
|
|
@@ -104,6 +173,46 @@ async function submitExternalPartyOnboarding(options) {
|
|
|
104
173
|
};
|
|
105
174
|
}
|
|
106
175
|
}
|
|
176
|
+
function normalizeExternalPartyHashSignature(signature) {
|
|
177
|
+
if ('signatureBase64' in signature) {
|
|
178
|
+
return encodeSignatureBytes(decodeBase64Signature(signature.signatureBase64));
|
|
179
|
+
}
|
|
180
|
+
if ('signatureHex' in signature) {
|
|
181
|
+
return encodeSignatureBytes(decodeHexSignature(signature.signatureHex));
|
|
182
|
+
}
|
|
183
|
+
return encodeSignatureBytes(Buffer.from(signature.signatureBytes));
|
|
184
|
+
}
|
|
185
|
+
function decodeBase64Signature(value) {
|
|
186
|
+
const normalized = value.trim().replace(/-/g, '+').replace(/_/g, '/');
|
|
187
|
+
if (!/^[A-Za-z0-9+/]+={0,2}$/.test(normalized) || normalized.length % 4 === 1) {
|
|
188
|
+
throw invalidExternalPartySignature();
|
|
189
|
+
}
|
|
190
|
+
const padded = normalized.padEnd(normalized.length + ((4 - (normalized.length % 4)) % 4), '=');
|
|
191
|
+
const decoded = Buffer.from(padded, 'base64');
|
|
192
|
+
if (decoded.toString('base64').replace(/=+$/, '') !== normalized.replace(/=+$/, '')) {
|
|
193
|
+
throw invalidExternalPartySignature();
|
|
194
|
+
}
|
|
195
|
+
return decoded;
|
|
196
|
+
}
|
|
197
|
+
function decodeHexSignature(value) {
|
|
198
|
+
const normalized = value.trim().replace(/^0x/i, '');
|
|
199
|
+
if (!/^[0-9a-fA-F]+$/.test(normalized) || normalized.length % 2 !== 0) {
|
|
200
|
+
throw invalidExternalPartySignature();
|
|
201
|
+
}
|
|
202
|
+
return Buffer.from(normalized, 'hex');
|
|
203
|
+
}
|
|
204
|
+
function encodeSignatureBytes(signature) {
|
|
205
|
+
if (signature.length !== 64) {
|
|
206
|
+
throw invalidExternalPartySignature(signature.length);
|
|
207
|
+
}
|
|
208
|
+
return signature.toString('base64');
|
|
209
|
+
}
|
|
210
|
+
function invalidExternalPartySignature(actualLength) {
|
|
211
|
+
return new errors_1.ValidationError('External-party signer must return a 64-byte Ed25519 signature', {
|
|
212
|
+
...(actualLength !== undefined ? { actualLength } : {}),
|
|
213
|
+
expectedLength: 64,
|
|
214
|
+
});
|
|
215
|
+
}
|
|
107
216
|
/** Lists party ids whose suffix matches the supplied Ed25519 public key fingerprint. */
|
|
108
217
|
async function listExternalPartyIdsForPublicKey(ledgerClient, publicKeyBase64) {
|
|
109
218
|
const publicKeyFingerprint = (0, canton_protocol_1.deriveCantonEd25519PublicKeyFingerprint)(publicKeyBase64);
|