@fairmint/canton-node-sdk 0.0.260 → 0.0.261

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.
@@ -0,0 +1,69 @@
1
+ import type { GetActiveContractsParams } from '../../../clients/ledger-json-api/operations/v2/state/get-active-contracts';
2
+ import type { JsGetActiveContractsResponse } from '../../../clients/ledger-json-api/schemas';
3
+ import { CantonError, type ErrorContext } from '../../../core/errors';
4
+ import type { TokenStandardV1InstrumentId, TokenStandardV1Metadata } from './transfer-factory';
5
+ export declare const TOKEN_STANDARD_V1_AMOUNT_DECIMALS = 10;
6
+ export declare const TokenStandardV1HoldingErrorCode: {
7
+ readonly INPUT_INVALID: 'TOKEN_STANDARD_V1_HOLDING_INPUT_INVALID';
8
+ readonly INTERFACE_VIEW_INVALID: 'TOKEN_STANDARD_V1_HOLDING_INTERFACE_VIEW_INVALID';
9
+ readonly BALANCE_INSUFFICIENT: 'TOKEN_STANDARD_V1_HOLDING_BALANCE_INSUFFICIENT';
10
+ };
11
+ export type TokenStandardV1HoldingErrorCode = (typeof TokenStandardV1HoldingErrorCode)[keyof typeof TokenStandardV1HoldingErrorCode];
12
+ export declare class TokenStandardV1HoldingError extends CantonError {
13
+ readonly name: string;
14
+ constructor(code: TokenStandardV1HoldingErrorCode, message: string, context?: ErrorContext);
15
+ }
16
+ export interface TokenStandardV1HoldingActiveContractsClient {
17
+ getActiveContracts(params: GetActiveContractsParams): Promise<JsGetActiveContractsResponse>;
18
+ }
19
+ export interface TokenStandardV1Lock {
20
+ readonly holders: readonly string[];
21
+ readonly expiresAt: string | null;
22
+ /** Duration from the holding's createdAt ledger time after which the lock expires. */
23
+ readonly expiresAfter: {
24
+ readonly microseconds: string;
25
+ } | null;
26
+ readonly context: string | null;
27
+ }
28
+ export interface TokenStandardV1Holding {
29
+ readonly contractId: string;
30
+ readonly templateId: string;
31
+ readonly synchronizerId: string;
32
+ /** ISO 8601 ledger effective time at which the active holding was created. */
33
+ readonly createdAt: string;
34
+ readonly owner: string;
35
+ readonly instrumentId: TokenStandardV1InstrumentId;
36
+ readonly amount: string;
37
+ readonly amountBaseUnits: string;
38
+ readonly lock: TokenStandardV1Lock | null;
39
+ readonly meta: TokenStandardV1Metadata;
40
+ }
41
+ export interface ListTokenStandardV1HoldingsParams {
42
+ readonly ledger: TokenStandardV1HoldingActiveContractsClient;
43
+ readonly parties: readonly string[];
44
+ readonly owner: string;
45
+ readonly instrumentId: TokenStandardV1InstrumentId;
46
+ readonly instrumentDecimals: number;
47
+ readonly synchronizerId?: string;
48
+ readonly activeAtOffset?: number;
49
+ readonly holdingInterfaceId?: string;
50
+ }
51
+ export interface SelectTokenStandardV1HoldingsParams extends Omit<ListTokenStandardV1HoldingsParams, 'synchronizerId' | 'activeAtOffset'> {
52
+ readonly synchronizerId: string;
53
+ /** ACS snapshot offset. Requiring it keeps selection to one Canton network read. */
54
+ readonly activeAtOffset: number;
55
+ readonly amountBaseUnits: string;
56
+ /**
57
+ * Token-specific spendability policy. Use holding.createdAt with lock.expiresAfter to derive a relative lock's
58
+ * absolute expiry. Defaults to holdings whose HoldingV1 lock is None.
59
+ */
60
+ readonly isSpendable?: (holding: TokenStandardV1Holding) => boolean;
61
+ }
62
+ export interface SelectedTokenStandardV1Holdings {
63
+ readonly holdings: readonly TokenStandardV1Holding[];
64
+ readonly contractIds: readonly string[];
65
+ readonly totalBaseUnits: string;
66
+ }
67
+ export declare function listTokenStandardV1Holdings(params: ListTokenStandardV1HoldingsParams): Promise<readonly TokenStandardV1Holding[]>;
68
+ export declare function selectTokenStandardV1Holdings(params: SelectTokenStandardV1HoldingsParams): Promise<SelectedTokenStandardV1Holdings>;
69
+ //# sourceMappingURL=holdings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"holdings.d.ts","sourceRoot":"","sources":["../../../../../src/utils/token-standard/v1/holdings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,439 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TokenStandardV1HoldingError = exports.TokenStandardV1HoldingErrorCode = exports.TOKEN_STANDARD_V1_AMOUNT_DECIMALS = void 0;
4
+ exports.listTokenStandardV1Holdings = listTokenStandardV1Holdings;
5
+ exports.selectTokenStandardV1Holdings = selectTokenStandardV1Holdings;
6
+ const errors_1 = require("../../../core/errors");
7
+ const utils_1 = require("../../../core/utils");
8
+ const contracts_1 = require("../../contracts");
9
+ const constants_1 = require("./constants");
10
+ exports.TOKEN_STANDARD_V1_AMOUNT_DECIMALS = 10;
11
+ const ISO_8601_TIMESTAMP_PATTERN = /^(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d{1,9})?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/;
12
+ const SIGNED_INTEGER_PATTERN = /^-?\d+$/;
13
+ const DECIMAL_AMOUNT_PATTERN = /^(\d+)(?:\.(\d+))?$/;
14
+ const TRAILING_ZEROS_PATTERN = /0+$/;
15
+ const NON_NEGATIVE_INTEGER_PATTERN = /^\d+$/;
16
+ exports.TokenStandardV1HoldingErrorCode = {
17
+ INPUT_INVALID: 'TOKEN_STANDARD_V1_HOLDING_INPUT_INVALID',
18
+ INTERFACE_VIEW_INVALID: 'TOKEN_STANDARD_V1_HOLDING_INTERFACE_VIEW_INVALID',
19
+ BALANCE_INSUFFICIENT: 'TOKEN_STANDARD_V1_HOLDING_BALANCE_INSUFFICIENT',
20
+ };
21
+ class TokenStandardV1HoldingError extends errors_1.CantonError {
22
+ constructor(code, message, context) {
23
+ super(message, code, context);
24
+ this.name = 'TokenStandardV1HoldingError';
25
+ }
26
+ }
27
+ exports.TokenStandardV1HoldingError = TokenStandardV1HoldingError;
28
+ function inputInvalid(message, context) {
29
+ throw new TokenStandardV1HoldingError(exports.TokenStandardV1HoldingErrorCode.INPUT_INVALID, message, context);
30
+ }
31
+ function interfaceViewInvalid(message, context) {
32
+ throw new TokenStandardV1HoldingError(exports.TokenStandardV1HoldingErrorCode.INTERFACE_VIEW_INVALID, message, context);
33
+ }
34
+ function normalizeRequiredString(value, field) {
35
+ if (typeof value !== 'string' || value.trim().length === 0) {
36
+ inputInvalid(`${field} must be a non-empty string.`, { field });
37
+ }
38
+ return value.trim();
39
+ }
40
+ function normalizeParties(parties) {
41
+ if (!Array.isArray(parties)) {
42
+ inputInvalid('parties must be an array of explicit read parties.', {
43
+ field: 'parties',
44
+ });
45
+ }
46
+ const normalized = new Set();
47
+ for (const [index, party] of parties.entries()) {
48
+ if (typeof party !== 'string') {
49
+ inputInvalid('parties must contain only strings.', {
50
+ field: 'parties',
51
+ index,
52
+ });
53
+ }
54
+ if (party.trim().length > 0)
55
+ normalized.add(party.trim());
56
+ }
57
+ if (normalized.size === 0) {
58
+ inputInvalid('parties must contain at least one read party.', {
59
+ field: 'parties',
60
+ });
61
+ }
62
+ return [...normalized];
63
+ }
64
+ function normalizeInstrumentDecimals(value) {
65
+ if (!Number.isSafeInteger(value) || value < 0 || value > exports.TOKEN_STANDARD_V1_AMOUNT_DECIMALS) {
66
+ inputInvalid(`instrumentDecimals must be a safe integer between 0 and ${exports.TOKEN_STANDARD_V1_AMOUNT_DECIMALS}.`, {
67
+ field: 'instrumentDecimals',
68
+ instrumentDecimals: value,
69
+ });
70
+ }
71
+ return value;
72
+ }
73
+ function normalizeActiveAtOffset(value) {
74
+ if (!Number.isSafeInteger(value) || value < 0) {
75
+ inputInvalid('activeAtOffset must be a non-negative safe integer.', {
76
+ field: 'activeAtOffset',
77
+ activeAtOffset: value,
78
+ });
79
+ }
80
+ return value;
81
+ }
82
+ function normalizeRequiredActiveAtOffset(value) {
83
+ if (value === undefined) {
84
+ inputInvalid('activeAtOffset is required for Token Standard V1 holding selection.', {
85
+ field: 'activeAtOffset',
86
+ });
87
+ }
88
+ if (typeof value !== 'number') {
89
+ inputInvalid('activeAtOffset must be a non-negative safe integer.', {
90
+ field: 'activeAtOffset',
91
+ activeAtOffset: value,
92
+ });
93
+ }
94
+ return normalizeActiveAtOffset(value);
95
+ }
96
+ function validateOwner(owner) {
97
+ if (!(0, utils_1.isNonEmptyString)(owner)) {
98
+ inputInvalid('owner must be a non-empty party.', { field: 'owner' });
99
+ }
100
+ }
101
+ function validateInstrumentId(instrumentId) {
102
+ if (!(0, utils_1.isRecord)(instrumentId) || !(0, utils_1.isNonEmptyString)(instrumentId.admin) || !(0, utils_1.isNonEmptyString)(instrumentId.id)) {
103
+ inputInvalid('instrumentId must be a valid Token Standard V1 InstrumentId.', { field: 'instrumentId' });
104
+ }
105
+ }
106
+ function readNullableString(value) {
107
+ if (value === null)
108
+ return null;
109
+ return (0, utils_1.isNonEmptyString)(value) ? value : undefined;
110
+ }
111
+ function readCreatedAt(value) {
112
+ if (typeof value !== 'string')
113
+ return undefined;
114
+ const match = ISO_8601_TIMESTAMP_PATTERN.exec(value);
115
+ if (!match || Number.isNaN(Date.parse(value)))
116
+ return undefined;
117
+ const year = Number(match[1]);
118
+ const month = Number(match[2]);
119
+ const day = Number(match[3]);
120
+ const isLeapYear = year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
121
+ const daysInMonth = month === 2 ? (isLeapYear ? 29 : 28) : [4, 6, 9, 11].includes(month) ? 30 : 31;
122
+ return day <= daysInMonth ? value : undefined;
123
+ }
124
+ function requireCreatedAt(value, context) {
125
+ const createdAt = readCreatedAt(value);
126
+ if (createdAt === undefined) {
127
+ interfaceViewInvalid('Active Holding contract is missing a valid createdAt ledger timestamp.', {
128
+ ...context,
129
+ createdAt: value,
130
+ });
131
+ }
132
+ return createdAt;
133
+ }
134
+ function readRawActiveContract(item) {
135
+ if (!(0, utils_1.isRecord)(item))
136
+ return undefined;
137
+ const { contractEntry } = item;
138
+ if (!(0, utils_1.isRecord)(contractEntry))
139
+ return undefined;
140
+ const activeContract = contractEntry['JsActiveContract'];
141
+ return (0, utils_1.isRecord)(activeContract) ? activeContract : undefined;
142
+ }
143
+ function readInstrumentId(value) {
144
+ if (!(0, utils_1.isRecord)(value))
145
+ return undefined;
146
+ const admin = (0, utils_1.isNonEmptyString)(value['admin']) ? value['admin'] : undefined;
147
+ const id = (0, utils_1.isNonEmptyString)(value['id']) ? value['id'] : undefined;
148
+ return admin && id ? { admin, id } : undefined;
149
+ }
150
+ function readMetadata(value) {
151
+ if (!(0, utils_1.isRecord)(value) || !(0, utils_1.isRecord)(value['values']))
152
+ return undefined;
153
+ const values = Object.create(null);
154
+ for (const [key, metadataValue] of Object.entries(value['values'])) {
155
+ if (typeof metadataValue !== 'string')
156
+ return undefined;
157
+ Object.defineProperty(values, key, {
158
+ value: metadataValue,
159
+ enumerable: true,
160
+ configurable: true,
161
+ writable: false,
162
+ });
163
+ }
164
+ return { values };
165
+ }
166
+ function readLock(value) {
167
+ if (value === null)
168
+ return null;
169
+ if (!(0, utils_1.isRecord)(value) || !Array.isArray(value['holders']))
170
+ return undefined;
171
+ const { holders } = value;
172
+ if (!holders.every(utils_1.isNonEmptyString))
173
+ return undefined;
174
+ const expiresAt = readNullableString(value['expiresAt']);
175
+ const context = readNullableString(value['context']);
176
+ const rawExpiresAfter = value['expiresAfter'];
177
+ let expiresAfter;
178
+ if (rawExpiresAfter === null) {
179
+ expiresAfter = null;
180
+ }
181
+ else if ((0, utils_1.isRecord)(rawExpiresAfter) &&
182
+ typeof rawExpiresAfter['microseconds'] === 'string' &&
183
+ SIGNED_INTEGER_PATTERN.test(rawExpiresAfter['microseconds'])) {
184
+ expiresAfter = { microseconds: rawExpiresAfter['microseconds'] };
185
+ }
186
+ else {
187
+ return undefined;
188
+ }
189
+ if (expiresAt === undefined || context === undefined)
190
+ return undefined;
191
+ return { holders, expiresAt, expiresAfter, context };
192
+ }
193
+ function instrumentIdsEqual(left, right) {
194
+ return left.admin === right.admin && left.id === right.id;
195
+ }
196
+ function locksEqual(left, right) {
197
+ if (left === null || right === null)
198
+ return left === right;
199
+ return (left.expiresAt === right.expiresAt &&
200
+ left.expiresAfter?.microseconds === right.expiresAfter?.microseconds &&
201
+ left.context === right.context &&
202
+ left.holders.length === right.holders.length &&
203
+ left.holders.every((holder, index) => holder === right.holders[index]));
204
+ }
205
+ function metadataEqual(left, right) {
206
+ const leftEntries = Object.entries(left.values);
207
+ return (leftEntries.length === Object.keys(right.values).length &&
208
+ leftEntries.every(([key, value]) => right.values[key] === value));
209
+ }
210
+ function identifierModuleEntitySuffix(identifier) {
211
+ const separator = identifier.indexOf(':');
212
+ return separator === -1 ? undefined : identifier.slice(separator + 1);
213
+ }
214
+ function interfaceIdsMatch(left, right) {
215
+ return identifierModuleEntitySuffix(left) === identifierModuleEntitySuffix(right);
216
+ }
217
+ function failedInterfaceView(params) {
218
+ interfaceViewInvalid('HoldingV1 interface view request failed.', {
219
+ itemIndex: params.itemIndex,
220
+ contractId: params.contractId,
221
+ interfaceId: params.interfaceId,
222
+ viewStatusCode: params.statusCode,
223
+ viewStatusMessage: params.statusMessage,
224
+ });
225
+ }
226
+ function decimalAmountToBaseUnits(amount, decimals) {
227
+ const match = DECIMAL_AMOUNT_PATTERN.exec(amount.trim());
228
+ if (!match)
229
+ throw new Error('amount must be a non-negative decimal');
230
+ const whole = match[1] ?? '0';
231
+ const fractional = (match[2] ?? '').replace(TRAILING_ZEROS_PATTERN, '');
232
+ if (fractional.length > decimals) {
233
+ throw new Error(`amount exceeds ${decimals} decimal places`);
234
+ }
235
+ const scale = 10n ** BigInt(decimals);
236
+ return (BigInt(whole) * scale + BigInt(fractional.padEnd(decimals, '0') || '0')).toString();
237
+ }
238
+ function normalizeBaseUnitAmount(value) {
239
+ if (typeof value !== 'string' || !NON_NEGATIVE_INTEGER_PATTERN.test(value.trim())) {
240
+ inputInvalid('amountBaseUnits must be a non-negative integer string.', {
241
+ field: 'amountBaseUnits',
242
+ });
243
+ }
244
+ return BigInt(value.trim()).toString();
245
+ }
246
+ function readHolding(params) {
247
+ const activeContract = params.item.contractEntry.JsActiveContract;
248
+ if (params.synchronizerId !== undefined && activeContract.synchronizerId !== params.synchronizerId) {
249
+ return undefined;
250
+ }
251
+ const { createdEvent } = activeContract;
252
+ const matchingViews = createdEvent.interfaceViews.filter((view) => interfaceIdsMatch(view.interfaceId, params.holdingInterfaceId));
253
+ if (matchingViews.length !== 1) {
254
+ interfaceViewInvalid('Active Holding contract must contain exactly one HoldingV1 interface view.', {
255
+ itemIndex: params.itemIndex,
256
+ contractId: createdEvent.contractId,
257
+ matchingViewCount: matchingViews.length,
258
+ });
259
+ }
260
+ const interfaceView = matchingViews[0];
261
+ if (!interfaceView) {
262
+ interfaceViewInvalid('HoldingV1 interface view is missing.', {
263
+ itemIndex: params.itemIndex,
264
+ contractId: createdEvent.contractId,
265
+ });
266
+ }
267
+ const viewValue = (0, utils_1.isRecord)(interfaceView.viewValue) ? interfaceView.viewValue : undefined;
268
+ const owner = viewValue && (0, utils_1.isNonEmptyString)(viewValue['owner']) ? viewValue['owner'] : undefined;
269
+ const instrumentId = viewValue ? readInstrumentId(viewValue['instrumentId']) : undefined;
270
+ if ((owner && owner !== params.owner) || (instrumentId && !instrumentIdsEqual(instrumentId, params.instrumentId))) {
271
+ return undefined;
272
+ }
273
+ if (interfaceView.viewStatus.code !== 0) {
274
+ failedInterfaceView({
275
+ itemIndex: params.itemIndex,
276
+ contractId: createdEvent.contractId,
277
+ interfaceId: interfaceView.interfaceId,
278
+ statusCode: interfaceView.viewStatus.code,
279
+ statusMessage: interfaceView.viewStatus.message,
280
+ });
281
+ }
282
+ if (!viewValue) {
283
+ interfaceViewInvalid('HoldingV1 interface view is missing viewValue.', {
284
+ itemIndex: params.itemIndex,
285
+ contractId: createdEvent.contractId,
286
+ });
287
+ }
288
+ if (!owner || !instrumentId) {
289
+ interfaceViewInvalid('HoldingV1 interface view is missing a valid owner or instrumentId.', {
290
+ itemIndex: params.itemIndex,
291
+ contractId: createdEvent.contractId,
292
+ });
293
+ }
294
+ const createdAt = requireCreatedAt(createdEvent.createdAt, {
295
+ itemIndex: params.itemIndex,
296
+ contractId: createdEvent.contractId,
297
+ });
298
+ const lock = readLock(viewValue['lock']);
299
+ const meta = readMetadata(viewValue['meta']);
300
+ if (lock === undefined || !meta) {
301
+ interfaceViewInvalid('HoldingV1 interface view has an invalid lock or metadata value.', {
302
+ itemIndex: params.itemIndex,
303
+ contractId: createdEvent.contractId,
304
+ });
305
+ }
306
+ const { amount } = viewValue;
307
+ if (!(0, utils_1.isNonEmptyString)(amount)) {
308
+ interfaceViewInvalid('HoldingV1 interface view is missing amount.', {
309
+ itemIndex: params.itemIndex,
310
+ contractId: createdEvent.contractId,
311
+ });
312
+ }
313
+ let amountBaseUnits;
314
+ try {
315
+ amountBaseUnits = decimalAmountToBaseUnits(amount, params.instrumentDecimals);
316
+ }
317
+ catch {
318
+ interfaceViewInvalid('HoldingV1 amount is invalid for the configured instrument decimals.', {
319
+ itemIndex: params.itemIndex,
320
+ contractId: createdEvent.contractId,
321
+ amount,
322
+ instrumentDecimals: params.instrumentDecimals,
323
+ });
324
+ }
325
+ return {
326
+ contractId: createdEvent.contractId,
327
+ templateId: createdEvent.templateId,
328
+ synchronizerId: activeContract.synchronizerId,
329
+ createdAt,
330
+ owner,
331
+ instrumentId,
332
+ amount,
333
+ amountBaseUnits,
334
+ lock,
335
+ meta,
336
+ };
337
+ }
338
+ async function listTokenStandardV1Holdings(params) {
339
+ if (!(0, utils_1.isRecord)(params.ledger) || typeof params.ledger.getActiveContracts !== 'function') {
340
+ inputInvalid('ledger must provide getActiveContracts.', { field: 'ledger' });
341
+ }
342
+ validateOwner(params.owner);
343
+ validateInstrumentId(params.instrumentId);
344
+ const parties = normalizeParties(params.parties);
345
+ const instrumentDecimals = normalizeInstrumentDecimals(params.instrumentDecimals);
346
+ const holdingInterfaceId = normalizeRequiredString(params.holdingInterfaceId ?? constants_1.TOKEN_STANDARD_V1_HOLDING_INTERFACE_ID, 'holdingInterfaceId');
347
+ const synchronizerId = params.synchronizerId === undefined ? undefined : normalizeRequiredString(params.synchronizerId, 'synchronizerId');
348
+ const activeAtOffset = params.activeAtOffset === undefined ? undefined : normalizeActiveAtOffset(params.activeAtOffset);
349
+ const response = await params.ledger.getActiveContracts({
350
+ parties,
351
+ interfaceIds: [holdingInterfaceId],
352
+ includeInterfaceView: true,
353
+ includeCreatedEventBlob: false,
354
+ ...(activeAtOffset === undefined ? {} : { activeAtOffset }),
355
+ });
356
+ const holdings = new Map();
357
+ for (const [itemIndex, item] of response.entries()) {
358
+ if (!(0, contracts_1.isJsActiveContractItem)(item)) {
359
+ const activeContract = readRawActiveContract(item);
360
+ if (activeContract && (synchronizerId === undefined || activeContract['synchronizerId'] === synchronizerId)) {
361
+ const { createdEvent } = activeContract;
362
+ requireCreatedAt((0, utils_1.isRecord)(createdEvent) ? createdEvent['createdAt'] : undefined, {
363
+ itemIndex,
364
+ contractId: (0, utils_1.isRecord)(createdEvent) ? createdEvent['contractId'] : undefined,
365
+ });
366
+ }
367
+ continue;
368
+ }
369
+ const holding = readHolding({
370
+ item,
371
+ itemIndex,
372
+ holdingInterfaceId,
373
+ owner: params.owner,
374
+ instrumentId: params.instrumentId,
375
+ instrumentDecimals,
376
+ ...(synchronizerId === undefined ? {} : { synchronizerId }),
377
+ });
378
+ if (!holding)
379
+ continue;
380
+ const existing = holdings.get(holding.contractId);
381
+ if (existing &&
382
+ (existing.templateId !== holding.templateId ||
383
+ existing.synchronizerId !== holding.synchronizerId ||
384
+ existing.createdAt !== holding.createdAt ||
385
+ existing.owner !== holding.owner ||
386
+ existing.amount !== holding.amount ||
387
+ existing.amountBaseUnits !== holding.amountBaseUnits ||
388
+ !locksEqual(existing.lock, holding.lock) ||
389
+ !metadataEqual(existing.meta, holding.meta))) {
390
+ interfaceViewInvalid('Duplicate HoldingV1 contract rows contain inconsistent data.', {
391
+ contractId: holding.contractId,
392
+ });
393
+ }
394
+ if (!existing)
395
+ holdings.set(holding.contractId, holding);
396
+ }
397
+ return [...holdings.values()];
398
+ }
399
+ async function selectTokenStandardV1Holdings(params) {
400
+ const activeAtOffset = normalizeRequiredActiveAtOffset(params.activeAtOffset);
401
+ const required = BigInt(normalizeBaseUnitAmount(params.amountBaseUnits));
402
+ if (required <= 0n) {
403
+ inputInvalid('amountBaseUnits must be positive.', {
404
+ field: 'amountBaseUnits',
405
+ amountBaseUnits: params.amountBaseUnits,
406
+ });
407
+ }
408
+ const isSpendable = params.isSpendable ?? ((holding) => holding.lock === null);
409
+ const holdings = [...(await listTokenStandardV1Holdings({ ...params, activeAtOffset }))]
410
+ .filter((holding) => isSpendable(holding) && BigInt(holding.amountBaseUnits) > 0n)
411
+ .sort((left, right) => {
412
+ const difference = BigInt(right.amountBaseUnits) - BigInt(left.amountBaseUnits);
413
+ if (difference !== 0n)
414
+ return difference > 0n ? 1 : -1;
415
+ return left.contractId.localeCompare(right.contractId);
416
+ });
417
+ const selected = [];
418
+ let total = 0n;
419
+ for (const holding of holdings) {
420
+ selected.push(holding);
421
+ total += BigInt(holding.amountBaseUnits);
422
+ if (total >= required)
423
+ break;
424
+ }
425
+ if (total < required) {
426
+ throw new TokenStandardV1HoldingError(exports.TokenStandardV1HoldingErrorCode.BALANCE_INSUFFICIENT, 'Available spendable Token Standard V1 holdings do not cover the requested amount.', {
427
+ requiredBaseUnits: required.toString(),
428
+ availableBaseUnits: total.toString(),
429
+ owner: params.owner,
430
+ instrumentId: params.instrumentId,
431
+ });
432
+ }
433
+ return {
434
+ holdings: selected,
435
+ contractIds: selected.map((holding) => holding.contractId),
436
+ totalBaseUnits: total.toString(),
437
+ };
438
+ }
439
+ //# sourceMappingURL=holdings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"holdings.js","sourceRoot":"","sources":["../../../../../src/utils/token-standard/v1/holdings.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ export * from './allocation';
2
2
  export * from './burn-mint';
3
3
  export * from './constants';
4
4
  export * from './errors';
5
+ export * from './holdings';
5
6
  export * from './result';
6
7
  export * from './transfer';
8
+ export * from './transfer-factory';
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/utils/token-standard/v1/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/utils/token-standard/v1/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC"}
@@ -18,6 +18,8 @@ __exportStar(require("./allocation"), exports);
18
18
  __exportStar(require("./burn-mint"), exports);
19
19
  __exportStar(require("./constants"), exports);
20
20
  __exportStar(require("./errors"), exports);
21
+ __exportStar(require("./holdings"), exports);
21
22
  __exportStar(require("./result"), exports);
22
23
  __exportStar(require("./transfer"), exports);
24
+ __exportStar(require("./transfer-factory"), exports);
23
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/utils/token-standard/v1/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,8CAA4B;AAC5B,8CAA4B;AAC5B,2CAAyB;AACzB,2CAAyB;AACzB,6CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/utils/token-standard/v1/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,8CAA4B;AAC5B,8CAA4B;AAC5B,2CAAyB;AACzB,6CAA2B;AAC3B,2CAAyB;AACzB,6CAA2B;AAC3B,qDAAmC"}
@@ -0,0 +1,52 @@
1
+ import type { Command } from '../../../clients/ledger-json-api/schemas';
2
+ import { CantonError, type ErrorContext } from '../../../core/errors';
3
+ export declare const TokenStandardV1TransferFactoryErrorCode: {
4
+ readonly INPUT_INVALID: 'TOKEN_STANDARD_V1_TRANSFER_FACTORY_INPUT_INVALID';
5
+ };
6
+ export type TokenStandardV1TransferFactoryErrorCode = (typeof TokenStandardV1TransferFactoryErrorCode)[keyof typeof TokenStandardV1TransferFactoryErrorCode];
7
+ export declare class TokenStandardV1TransferFactoryError extends CantonError {
8
+ readonly name: string;
9
+ constructor(code: TokenStandardV1TransferFactoryErrorCode, message: string, context?: ErrorContext);
10
+ }
11
+ export interface TokenStandardV1InstrumentId {
12
+ readonly admin: string;
13
+ readonly id: string;
14
+ }
15
+ export interface TokenStandardV1Metadata {
16
+ readonly values: Readonly<Record<string, string>>;
17
+ }
18
+ export interface TokenStandardV1ChoiceContext {
19
+ readonly values: Readonly<Record<string, unknown>>;
20
+ }
21
+ export interface TokenStandardV1ExtraArgs {
22
+ readonly context: TokenStandardV1ChoiceContext;
23
+ readonly meta: TokenStandardV1Metadata;
24
+ }
25
+ export interface TokenStandardV1Transfer {
26
+ readonly sender: string;
27
+ readonly receiver: string;
28
+ readonly amount: string;
29
+ readonly instrumentId: TokenStandardV1InstrumentId;
30
+ readonly requestedAt: string;
31
+ readonly executeBefore: string;
32
+ readonly inputHoldingCids: readonly string[];
33
+ readonly meta?: TokenStandardV1Metadata;
34
+ }
35
+ export interface TokenStandardV1TransferFactoryTransferArgument {
36
+ readonly expectedAdmin: string;
37
+ readonly transfer: Omit<TokenStandardV1Transfer, 'meta'> & {
38
+ readonly meta: TokenStandardV1Metadata;
39
+ };
40
+ readonly extraArgs: TokenStandardV1ExtraArgs;
41
+ }
42
+ export interface BuildTokenStandardV1TransferChoiceArgumentParams {
43
+ readonly expectedAdmin: string;
44
+ readonly transfer: TokenStandardV1Transfer;
45
+ readonly extraArgs?: TokenStandardV1ExtraArgs;
46
+ }
47
+ export interface BuildTokenStandardV1TransferCommandParams extends BuildTokenStandardV1TransferChoiceArgumentParams {
48
+ readonly transferFactoryContractId: string;
49
+ }
50
+ export declare function buildTokenStandardV1TransferChoiceArgument(params: BuildTokenStandardV1TransferChoiceArgumentParams): TokenStandardV1TransferFactoryTransferArgument;
51
+ export declare function buildTokenStandardV1TransferCommand(params: BuildTokenStandardV1TransferCommandParams): Command;
52
+ //# sourceMappingURL=transfer-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer-factory.d.ts","sourceRoot":"","sources":["../../../../../src/utils/token-standard/v1/transfer-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAmB,MAAM,0CAA0C,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAOtE,eAAO,MAAM,uCAAuC;aAClD,aAAa,EAAE,kDAAkD;CACzD,CAAC;AAEX,MAAM,MAAM,uCAAuC,GACjD,CAAC,OAAO,uCAAuC,CAAC,CAAC,MAAM,OAAO,uCAAuC,CAAC,CAAC;AAEzG,qBAAa,mCAAoC,SAAQ,WAAW;IAClE,SAAyB,IAAI,EAAE,MAAM,CAAC;IAEtC,YAAmB,IAAI,EAAE,uCAAuC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,EAGxG;CACF;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,4BAA4B,CAAC;IAC/C,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;CACxC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,2BAA2B,CAAC;IACnD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,IAAI,CAAC,EAAE,uBAAuB,CAAC;CACzC;AAED,MAAM,WAAW,8CAA8C;IAC7D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAA;KAAE,CAAC;IACtG,QAAQ,CAAC,SAAS,EAAE,wBAAwB,CAAC;CAC9C;AAED,MAAM,WAAW,gDAAgD;IAC/D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,wBAAwB,CAAC;CAC/C;AAED,MAAM,WAAW,yCAA0C,SAAQ,gDAAgD;IACjH,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;CAC5C;AAkID,wBAAgB,0CAA0C,CACxD,MAAM,EAAE,gDAAgD,GACvD,8CAA8C,CAmBhD;AAED,wBAAgB,mCAAmC,CAAC,MAAM,EAAE,yCAAyC,GAAG,OAAO,CAW9G"}
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TokenStandardV1TransferFactoryError = exports.TokenStandardV1TransferFactoryErrorCode = void 0;
4
+ exports.buildTokenStandardV1TransferChoiceArgument = buildTokenStandardV1TransferChoiceArgument;
5
+ exports.buildTokenStandardV1TransferCommand = buildTokenStandardV1TransferCommand;
6
+ const errors_1 = require("../../../core/errors");
7
+ const utils_1 = require("../../../core/utils");
8
+ const constants_1 = require("./constants");
9
+ const DAML_DECIMAL_PATTERN = /^(-?)(\d{1,28})(?:\.(\d{1,10}))?$/;
10
+ const ZERO_DIGITS_PATTERN = /^0+$/;
11
+ exports.TokenStandardV1TransferFactoryErrorCode = {
12
+ INPUT_INVALID: 'TOKEN_STANDARD_V1_TRANSFER_FACTORY_INPUT_INVALID',
13
+ };
14
+ class TokenStandardV1TransferFactoryError extends errors_1.CantonError {
15
+ constructor(code, message, context) {
16
+ super(message, code, context);
17
+ this.name = 'TokenStandardV1TransferFactoryError';
18
+ }
19
+ }
20
+ exports.TokenStandardV1TransferFactoryError = TokenStandardV1TransferFactoryError;
21
+ function inputInvalid(message, context) {
22
+ throw new TokenStandardV1TransferFactoryError(exports.TokenStandardV1TransferFactoryErrorCode.INPUT_INVALID, message, context);
23
+ }
24
+ function requireInputRecord(value, field) {
25
+ if (!(0, utils_1.isRecord)(value)) {
26
+ inputInvalid(`${field} must be an object.`, { field, value });
27
+ }
28
+ }
29
+ function requireNonEmpty(value, field) {
30
+ if (typeof value !== 'string') {
31
+ inputInvalid(`${field} must be a string.`, { field, value });
32
+ }
33
+ const normalized = value.trim();
34
+ if (normalized.length === 0) {
35
+ inputInvalid(`${field} must be non-empty.`, { field, value });
36
+ }
37
+ return normalized;
38
+ }
39
+ function requireText(value, field) {
40
+ if (typeof value !== 'string') {
41
+ inputInvalid(`${field} must be text.`, { field, value });
42
+ }
43
+ return value;
44
+ }
45
+ function copyStringRecord(value, field) {
46
+ if (!(0, utils_1.isRecord)(value)) {
47
+ inputInvalid(`${field} must be a string map.`, { field, value });
48
+ }
49
+ const result = Object.create(null);
50
+ for (const [key, entry] of Object.entries(value)) {
51
+ if (typeof entry !== 'string') {
52
+ inputInvalid(`${field}.${key} must be a string.`, { field: `${field}.${key}`, value: entry });
53
+ }
54
+ Object.defineProperty(result, key, {
55
+ value: entry,
56
+ enumerable: true,
57
+ configurable: true,
58
+ writable: false,
59
+ });
60
+ }
61
+ return result;
62
+ }
63
+ function normalizeMetadata(value, field) {
64
+ if (!(0, utils_1.isRecord)(value)) {
65
+ inputInvalid(`${field} must be Token Standard metadata.`, { field, value });
66
+ }
67
+ return { values: copyStringRecord(value['values'], `${field}.values`) };
68
+ }
69
+ function normalizeMetadataOrDefault(value, field) {
70
+ return value === undefined ? { values: copyStringRecord({}, `${field}.values`) } : normalizeMetadata(value, field);
71
+ }
72
+ function normalizeChoiceContext(value, field) {
73
+ if (!(0, utils_1.isRecord)(value) || !(0, utils_1.isRecord)(value['values'])) {
74
+ inputInvalid(`${field} must be a Token Standard choice context.`, { field, value });
75
+ }
76
+ const values = Object.create(null);
77
+ for (const [key, entry] of Object.entries(value['values'])) {
78
+ Object.defineProperty(values, key, {
79
+ value: entry,
80
+ enumerable: true,
81
+ configurable: true,
82
+ writable: false,
83
+ });
84
+ }
85
+ return { values };
86
+ }
87
+ function parseDecimalText(value, field) {
88
+ const text = requireNonEmpty(value, field);
89
+ const match = DAML_DECIMAL_PATTERN.exec(text);
90
+ if (!match) {
91
+ inputInvalid(`${field} must be a valid Daml Decimal string.`, { field, value });
92
+ }
93
+ const digits = `${match[2]}${match[3] ?? ''}`;
94
+ const sign = ZERO_DIGITS_PATTERN.test(digits) ? 0 : match[1] === '-' ? -1 : 1;
95
+ return { text, sign };
96
+ }
97
+ function normalizePositiveDecimal(value, field) {
98
+ const decimal = parseDecimalText(value, field);
99
+ if (decimal.sign !== 1) {
100
+ inputInvalid(`${field} must be positive.`, { field, value });
101
+ }
102
+ return decimal.text;
103
+ }
104
+ function normalizeInstrumentId(value, field) {
105
+ requireInputRecord(value, field);
106
+ return {
107
+ admin: requireNonEmpty(value['admin'], `${field}.admin`),
108
+ id: requireText(value['id'], `${field}.id`),
109
+ };
110
+ }
111
+ function normalizeHoldingCids(value, field) {
112
+ if (!Array.isArray(value)) {
113
+ inputInvalid(`${field} must be an array.`, { field, value });
114
+ }
115
+ return value.map((entry, index) => requireNonEmpty(entry, `${field}[${index}]`));
116
+ }
117
+ function emptyTokenStandardV1ExtraArgs() {
118
+ return {
119
+ context: { values: Object.create(null) },
120
+ meta: { values: Object.create(null) },
121
+ };
122
+ }
123
+ function normalizeExtraArgs(value) {
124
+ if (value === undefined)
125
+ return emptyTokenStandardV1ExtraArgs();
126
+ requireInputRecord(value, 'extraArgs');
127
+ return {
128
+ context: normalizeChoiceContext(value['context'], 'extraArgs.context'),
129
+ meta: normalizeMetadata(value['meta'], 'extraArgs.meta'),
130
+ };
131
+ }
132
+ function buildTokenStandardV1TransferChoiceArgument(params) {
133
+ requireInputRecord(params, 'params');
134
+ requireInputRecord(params.transfer, 'transfer');
135
+ if (params.extraArgs !== undefined)
136
+ requireInputRecord(params.extraArgs, 'extraArgs');
137
+ if (params.transfer.meta !== undefined)
138
+ requireInputRecord(params.transfer.meta, 'transfer.meta');
139
+ return {
140
+ expectedAdmin: requireNonEmpty(params.expectedAdmin, 'expectedAdmin'),
141
+ transfer: {
142
+ sender: requireNonEmpty(params.transfer.sender, 'transfer.sender'),
143
+ receiver: requireNonEmpty(params.transfer.receiver, 'transfer.receiver'),
144
+ amount: normalizePositiveDecimal(params.transfer.amount, 'transfer.amount'),
145
+ instrumentId: normalizeInstrumentId(params.transfer.instrumentId, 'transfer.instrumentId'),
146
+ requestedAt: requireNonEmpty(params.transfer.requestedAt, 'transfer.requestedAt'),
147
+ executeBefore: requireNonEmpty(params.transfer.executeBefore, 'transfer.executeBefore'),
148
+ inputHoldingCids: normalizeHoldingCids(params.transfer.inputHoldingCids, 'transfer.inputHoldingCids'),
149
+ meta: normalizeMetadataOrDefault(params.transfer.meta, 'transfer.meta'),
150
+ },
151
+ extraArgs: normalizeExtraArgs(params.extraArgs),
152
+ };
153
+ }
154
+ function buildTokenStandardV1TransferCommand(params) {
155
+ requireInputRecord(params, 'params');
156
+ const choiceArgument = buildTokenStandardV1TransferChoiceArgument(params);
157
+ return {
158
+ ExerciseCommand: {
159
+ templateId: constants_1.TOKEN_STANDARD_V1_TRANSFER_FACTORY_INTERFACE_ID,
160
+ contractId: requireNonEmpty(params.transferFactoryContractId, 'transferFactoryContractId'),
161
+ choice: constants_1.TokenStandardV1Choice.transfer,
162
+ choiceArgument: choiceArgument,
163
+ },
164
+ };
165
+ }
166
+ //# sourceMappingURL=transfer-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer-factory.js","sourceRoot":"","sources":["../../../../../src/utils/token-standard/v1/transfer-factory.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fairmint/canton-node-sdk",
3
- "version": "0.0.260",
3
+ "version": "0.0.261",
4
4
  "description": "Canton Node SDK",
5
5
  "keywords": [
6
6
  "canton",