@fairmint/canton-node-sdk 0.0.116 → 0.0.117
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/utils/amulet/get-amulets-for-transfer.d.ts +28 -3
- package/build/src/utils/amulet/get-amulets-for-transfer.d.ts.map +1 -1
- package/build/src/utils/amulet/get-amulets-for-transfer.js +87 -45
- package/build/src/utils/amulet/get-amulets-for-transfer.js.map +1 -1
- package/build/src/utils/amulet/pre-approve-transfers.d.ts +2 -0
- package/build/src/utils/amulet/pre-approve-transfers.d.ts.map +1 -1
- package/build/src/utils/amulet/pre-approve-transfers.js +5 -3
- package/build/src/utils/amulet/pre-approve-transfers.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,17 +5,42 @@ export interface AmuletForTransfer {
|
|
|
5
5
|
effectiveAmount: string;
|
|
6
6
|
owner: string;
|
|
7
7
|
}
|
|
8
|
+
export type TransferInputForTransfer = {
|
|
9
|
+
tag: 'InputAmulet';
|
|
10
|
+
contractId: string;
|
|
11
|
+
templateId: string;
|
|
12
|
+
effectiveAmount: string;
|
|
13
|
+
owner: string;
|
|
14
|
+
} | {
|
|
15
|
+
tag: 'InputAppRewardCoupon';
|
|
16
|
+
contractId: string;
|
|
17
|
+
templateId: string;
|
|
18
|
+
effectiveAmount: string;
|
|
19
|
+
beneficiary: string;
|
|
20
|
+
} | {
|
|
21
|
+
tag: 'InputValidatorRewardCoupon';
|
|
22
|
+
contractId: string;
|
|
23
|
+
templateId: string;
|
|
24
|
+
effectiveAmount: string;
|
|
25
|
+
beneficiary: string;
|
|
26
|
+
};
|
|
8
27
|
export interface GetAmuletsForTransferParams {
|
|
9
28
|
/** Ledger JSON API client for querying active contracts */
|
|
10
29
|
jsonApiClient: LedgerJsonApiClient;
|
|
11
30
|
/** Party IDs to read as (first one is used as sender) */
|
|
12
31
|
readAs?: string[];
|
|
32
|
+
/**
|
|
33
|
+
* If true, returns all valid transfer inputs (Amulet, AppRewardCoupon, ValidatorRewardCoupon). Defaults to false
|
|
34
|
+
* (only Amulet).
|
|
35
|
+
*/
|
|
36
|
+
includeAllTransferInputs?: boolean;
|
|
13
37
|
}
|
|
14
38
|
/**
|
|
15
|
-
* Gets unlocked amulets owned by the sender party that can be used for transfers
|
|
39
|
+
* Gets unlocked amulets owned by the sender party that can be used for transfers. Optionally returns all valid transfer
|
|
40
|
+
* inputs (Amulet, AppRewardCoupon, ValidatorRewardCoupon).
|
|
16
41
|
*
|
|
17
|
-
* @param params - Parameters for getting
|
|
18
|
-
* @returns Promise resolving to array of
|
|
42
|
+
* @param params - Parameters for getting transfer inputs
|
|
43
|
+
* @returns Promise resolving to array of transfer inputs suitable for transfer
|
|
19
44
|
*/
|
|
20
45
|
export declare function getAmuletsForTransfer(params: GetAmuletsForTransferParams): Promise<AmuletForTransfer[]>;
|
|
21
46
|
//# sourceMappingURL=get-amulets-for-transfer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-amulets-for-transfer.d.ts","sourceRoot":"","sources":["../../../../src/utils/amulet/get-amulets-for-transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,2BAA2B;IAC1C,2DAA2D;IAC3D,aAAa,EAAE,mBAAmB,CAAC;IACnC,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"get-amulets-for-transfer.d.ts","sourceRoot":"","sources":["../../../../src/utils/amulet/get-amulets-for-transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,GAAG,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACtG;IACE,GAAG,EAAE,sBAAsB,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB,GACD;IACE,GAAG,EAAE,4BAA4B,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEN,MAAM,WAAW,2BAA2B;IAC1C,2DAA2D;IAC3D,aAAa,EAAE,mBAAmB,CAAC;IACnC,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AA0BD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA+I7G"}
|
|
@@ -2,23 +2,32 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getAmuletsForTransfer = getAmuletsForTransfer;
|
|
4
4
|
/**
|
|
5
|
-
* Gets unlocked amulets owned by the sender party that can be used for transfers
|
|
5
|
+
* Gets unlocked amulets owned by the sender party that can be used for transfers. Optionally returns all valid transfer
|
|
6
|
+
* inputs (Amulet, AppRewardCoupon, ValidatorRewardCoupon).
|
|
6
7
|
*
|
|
7
|
-
* @param params - Parameters for getting
|
|
8
|
-
* @returns Promise resolving to array of
|
|
8
|
+
* @param params - Parameters for getting transfer inputs
|
|
9
|
+
* @returns Promise resolving to array of transfer inputs suitable for transfer
|
|
9
10
|
*/
|
|
10
11
|
async function getAmuletsForTransfer(params) {
|
|
11
|
-
const { jsonApiClient, readAs } = params;
|
|
12
|
-
// Query ledger for active contracts for this party
|
|
12
|
+
const { jsonApiClient, readAs, includeAllTransferInputs } = params;
|
|
13
|
+
// Query ledger for active contracts for this party
|
|
13
14
|
if (!readAs?.[0]) {
|
|
14
15
|
return [];
|
|
15
16
|
}
|
|
16
17
|
const senderParty = readAs[0];
|
|
18
|
+
// Build template IDs to query based on includeAllTransferInputs flag
|
|
19
|
+
const templateIds = includeAllTransferInputs
|
|
20
|
+
? [
|
|
21
|
+
'#splice-amulet:Splice.Amulet:Amulet',
|
|
22
|
+
'#splice-amulet:Splice.Amulet:AppRewardCoupon',
|
|
23
|
+
'#splice-amulet:Splice.Amulet:ValidatorRewardCoupon',
|
|
24
|
+
]
|
|
25
|
+
: ['#splice-amulet:Splice.Amulet:Amulet'];
|
|
17
26
|
const activeContracts = await jsonApiClient.getActiveContracts({
|
|
18
27
|
parties: [senderParty],
|
|
19
|
-
templateIds
|
|
28
|
+
templateIds,
|
|
20
29
|
});
|
|
21
|
-
const
|
|
30
|
+
const allContracts = [];
|
|
22
31
|
const contractsArr = Array.isArray(activeContracts) ? activeContracts : [];
|
|
23
32
|
contractsArr.forEach((ctr) => {
|
|
24
33
|
const typedCtr = ctr;
|
|
@@ -38,56 +47,89 @@ async function getAmuletsForTransfer(params) {
|
|
|
38
47
|
}
|
|
39
48
|
if (!payload || !templateId || !contractId)
|
|
40
49
|
return;
|
|
50
|
+
// Filter for valid transfer input contracts
|
|
41
51
|
const isUnlockedAmulet = templateId.includes('Splice.Amulet:Amulet') && !templateId.includes('LockedAmulet');
|
|
42
|
-
|
|
52
|
+
const isAppRewardCoupon = templateId.includes('AppRewardCoupon');
|
|
53
|
+
const isValidatorRewardCoupon = templateId.includes('ValidatorRewardCoupon');
|
|
54
|
+
if (!isUnlockedAmulet && !isAppRewardCoupon && !isValidatorRewardCoupon)
|
|
43
55
|
return;
|
|
44
|
-
|
|
56
|
+
allContracts.push({ contractId, templateId, payload });
|
|
45
57
|
});
|
|
46
|
-
// Helper to extract owner and numeric amount from diverse
|
|
47
|
-
const extract = (
|
|
48
|
-
const
|
|
49
|
-
const payload =
|
|
50
|
-
const
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
58
|
+
// Helper to extract owner/beneficiary and numeric amount from diverse contract shapes
|
|
59
|
+
const extract = (contract) => {
|
|
60
|
+
const contractPayload = 'payload' in contract ? contract.payload : undefined;
|
|
61
|
+
const payload = contractPayload ?? contract.contract?.contract?.payload ?? {};
|
|
62
|
+
const contractRecord = contract;
|
|
63
|
+
const templateId = 'templateId' in contract ? contract.templateId : undefined;
|
|
64
|
+
// Extract owner/beneficiary based on contract type
|
|
65
|
+
let ownerFull = '';
|
|
66
|
+
if (templateId?.includes('AppRewardCoupon') || templateId?.includes('ValidatorRewardCoupon')) {
|
|
67
|
+
// For coupons, beneficiary is optional and falls back to provider
|
|
68
|
+
const beneficiary = payload['beneficiary'];
|
|
69
|
+
const provider = payload['provider'];
|
|
70
|
+
ownerFull = beneficiary ?? provider ?? '';
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
// For amulets, use owner field
|
|
74
|
+
ownerFull =
|
|
75
|
+
payload['owner'] ??
|
|
76
|
+
contractRecord['owner'] ??
|
|
77
|
+
contractRecord['partyId'] ??
|
|
78
|
+
contractRecord['party_id'] ??
|
|
79
|
+
'';
|
|
80
|
+
}
|
|
81
|
+
// Extract amount based on contract type
|
|
82
|
+
let rawAmount = '0';
|
|
83
|
+
if (templateId?.includes('AppRewardCoupon') || templateId?.includes('ValidatorRewardCoupon')) {
|
|
84
|
+
// For coupons, amount is directly in payload
|
|
85
|
+
rawAmount = payload['amount'] ?? '0';
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
// For amulets, amount might be nested
|
|
89
|
+
const rawAmountCandidate = payload['amount'] ??
|
|
90
|
+
contractRecord['amount'] ??
|
|
91
|
+
contractRecord['effective_amount'] ??
|
|
92
|
+
contractRecord['effectiveAmount'] ??
|
|
93
|
+
contractRecord['initialAmount'] ??
|
|
94
|
+
'0';
|
|
95
|
+
rawAmount = rawAmountCandidate;
|
|
96
|
+
if (typeof rawAmountCandidate === 'object') {
|
|
97
|
+
rawAmount = rawAmountCandidate['initialAmount'] ?? '0';
|
|
98
|
+
}
|
|
65
99
|
}
|
|
66
100
|
const numericAmount = parseFloat(rawAmount);
|
|
67
101
|
return { owner: ownerFull, numericAmount };
|
|
68
102
|
};
|
|
69
|
-
//
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
const { owner, numericAmount } = extract(a);
|
|
103
|
+
// Filter contracts owned by sender (readAs[0]) and with positive balance
|
|
104
|
+
const partyContracts = allContracts.filter((c) => {
|
|
105
|
+
const { owner, numericAmount } = extract(c);
|
|
73
106
|
return numericAmount > 0 && owner === senderParty;
|
|
74
107
|
});
|
|
75
|
-
if (
|
|
108
|
+
if (partyContracts.length === 0) {
|
|
76
109
|
return [];
|
|
77
110
|
}
|
|
78
|
-
// Sort biggest → smallest so we pick high-value
|
|
79
|
-
|
|
80
|
-
//
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
111
|
+
// Sort biggest → smallest so we pick high-value contracts first
|
|
112
|
+
partyContracts.sort((a, b) => extract(b).numericAmount - extract(a).numericAmount);
|
|
113
|
+
// Map to the structure expected by buildAmuletInputs (maintaining backward compatibility)
|
|
114
|
+
const result = partyContracts.map((c) => {
|
|
115
|
+
const { payload, templateId } = c;
|
|
116
|
+
// Extract amount based on contract type
|
|
117
|
+
let effectiveAmount = '0';
|
|
118
|
+
if (templateId.includes('AppRewardCoupon') || templateId.includes('ValidatorRewardCoupon')) {
|
|
119
|
+
// For coupons, amount is directly in payload
|
|
120
|
+
effectiveAmount = payload['amount'] ?? '0';
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
// For amulets, amount might be nested
|
|
124
|
+
const amtObj = payload['amount'] ?? {};
|
|
125
|
+
const intAmount = typeof amtObj === 'object' ? amtObj['initialAmount'] : amtObj;
|
|
126
|
+
effectiveAmount = intAmount ?? '0';
|
|
127
|
+
}
|
|
86
128
|
return {
|
|
87
|
-
contractId:
|
|
88
|
-
templateId:
|
|
89
|
-
effectiveAmount
|
|
90
|
-
owner:
|
|
129
|
+
contractId: c.contractId,
|
|
130
|
+
templateId: c.templateId,
|
|
131
|
+
effectiveAmount,
|
|
132
|
+
owner: extract(c).owner,
|
|
91
133
|
};
|
|
92
134
|
});
|
|
93
135
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-amulets-for-transfer.js","sourceRoot":"","sources":["../../../../src/utils/amulet/get-amulets-for-transfer.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"get-amulets-for-transfer.js","sourceRoot":"","sources":["../../../../src/utils/amulet/get-amulets-for-transfer.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@ import { type ValidatorApiClient } from '../../clients/validator-api';
|
|
|
3
3
|
export interface PreApproveTransfersParams {
|
|
4
4
|
/** Party ID to enable pre-approved transfers for (receiver) */
|
|
5
5
|
receiverPartyId: string;
|
|
6
|
+
/** Party ID of the provider (defaults to receiverPartyId if not specified) */
|
|
7
|
+
providerPartyId?: string;
|
|
6
8
|
/** When the pre-approval expires (defaults to 1 day from now) */
|
|
7
9
|
expiresAt?: Date;
|
|
8
10
|
/** Contract details for disclosed contracts (optional - will be fetched if not provided) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-approve-transfers.d.ts","sourceRoot":"","sources":["../../../../src/utils/amulet/pre-approve-transfers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAItE,MAAM,WAAW,yBAAyB;IACxC,+DAA+D;IAC/D,eAAe,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,4FAA4F;IAC5F,eAAe,CAAC,EAAE;QAChB,WAAW,CAAC,EAAE;YAAE,gBAAgB,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAA;SAAE,CAAC;QACnE,eAAe,CAAC,EAAE;YAAE,gBAAgB,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAA;SAAE,CAAC;QACvE,mBAAmB,CAAC,EAAE,KAAK,CAAC;YAAE,gBAAgB,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAClF,gBAAgB,CAAC,EAAE;YAAE,gBAAgB,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAA;SAAE,CAAC;KACzE,CAAC;CACH;AAED,MAAM,WAAW,yBAAyB;IACxC,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,mBAAmB,EACjC,eAAe,EAAE,kBAAkB,EACnC,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,yBAAyB,CAAC,
|
|
1
|
+
{"version":3,"file":"pre-approve-transfers.d.ts","sourceRoot":"","sources":["../../../../src/utils/amulet/pre-approve-transfers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAItE,MAAM,WAAW,yBAAyB;IACxC,+DAA+D;IAC/D,eAAe,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iEAAiE;IACjE,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,4FAA4F;IAC5F,eAAe,CAAC,EAAE;QAChB,WAAW,CAAC,EAAE;YAAE,gBAAgB,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAA;SAAE,CAAC;QACnE,eAAe,CAAC,EAAE;YAAE,gBAAgB,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAA;SAAE,CAAC;QACvE,mBAAmB,CAAC,EAAE,KAAK,CAAC;YAAE,gBAAgB,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAClF,gBAAgB,CAAC,EAAE;YAAE,gBAAgB,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAA;SAAE,CAAC;KACzE,CAAC;CACH;AAED,MAAM,WAAW,yBAAyB;IACxC,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,mBAAmB,EACjC,eAAe,EAAE,kBAAkB,EACnC,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,yBAAyB,CAAC,CA2HpC"}
|
|
@@ -12,8 +12,10 @@ const get_amulets_for_transfer_1 = require("./get-amulets-for-transfer");
|
|
|
12
12
|
* @returns Promise resolving to the pre-approval result
|
|
13
13
|
*/
|
|
14
14
|
async function preApproveTransfers(ledgerClient, validatorClient, params) {
|
|
15
|
-
// Set default expiration to 1
|
|
16
|
-
const expiresAt = params.expiresAt ?? new Date(Date.now() + 24 * 60 * 60 * 1000);
|
|
15
|
+
// Set default expiration to 1 year from now if not provided
|
|
16
|
+
const expiresAt = params.expiresAt ?? new Date(Date.now() + 365 * 24 * 60 * 60 * 1000);
|
|
17
|
+
// Use receiverPartyId as provider if not specified
|
|
18
|
+
const providerPartyId = params.providerPartyId ?? params.receiverPartyId;
|
|
17
19
|
// Get network information
|
|
18
20
|
const [amuletRules, dsoPartyId, miningRoundContext, featuredAppRight] = await Promise.all([
|
|
19
21
|
validatorClient.getAmuletRules(),
|
|
@@ -80,7 +82,7 @@ async function preApproveTransfers(ledgerClient, validatorClient, params) {
|
|
|
80
82
|
},
|
|
81
83
|
inputs,
|
|
82
84
|
receiver: params.receiverPartyId,
|
|
83
|
-
provider:
|
|
85
|
+
provider: providerPartyId,
|
|
84
86
|
expiresAt: expiresAt.toISOString(),
|
|
85
87
|
expectedDso: dsoPartyId.dso_party_id,
|
|
86
88
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-approve-transfers.js","sourceRoot":"","sources":["../../../../src/utils/amulet/pre-approve-transfers.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"pre-approve-transfers.js","sourceRoot":"","sources":["../../../../src/utils/amulet/pre-approve-transfers.ts"],"names":[],"mappings":"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"}
|