@fairmint/canton-node-sdk 0.0.69 → 0.0.71
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/pre-approve-transfers.d.ts.map +1 -1
- package/build/src/utils/amulet/pre-approve-transfers.js +24 -8
- package/build/src/utils/amulet/pre-approve-transfers.js.map +1 -1
- package/build/src/utils/amulet/transfer-to-preapproved.d.ts +42 -14
- package/build/src/utils/amulet/transfer-to-preapproved.d.ts.map +1 -1
- package/build/src/utils/amulet/transfer-to-preapproved.js +127 -62
- package/build/src/utils/amulet/transfer-to-preapproved.js.map +1 -1
- package/build/src/utils/contracts/index.d.ts +0 -1
- package/build/src/utils/contracts/index.d.ts.map +1 -1
- package/build/src/utils/contracts/index.js +0 -1
- package/build/src/utils/contracts/index.js.map +1 -1
- package/build/src/utils/mining/mining-rounds.d.ts +10 -2
- package/build/src/utils/mining/mining-rounds.d.ts.map +1 -1
- package/build/src/utils/mining/mining-rounds.js +79 -0
- package/build/src/utils/mining/mining-rounds.js.map +1 -1
- package/package.json +1 -1
- package/build/src/utils/contracts/disclosed-contracts.d.ts +0 -41
- package/build/src/utils/contracts/disclosed-contracts.d.ts.map +0 -1
- package/build/src/utils/contracts/disclosed-contracts.js +0 -91
- package/build/src/utils/contracts/disclosed-contracts.js.map +0 -1
|
@@ -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,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"pre-approve-transfers.d.ts","sourceRoot":"","sources":["../../../../src/utils/amulet/pre-approve-transfers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAKjE,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,CAsIpC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.preApproveTransfers = preApproveTransfers;
|
|
4
|
-
const disclosed_contracts_1 = require("../contracts/disclosed-contracts");
|
|
5
4
|
const mining_rounds_1 = require("../mining/mining-rounds");
|
|
6
5
|
const get_amulets_for_transfer_1 = require("./get-amulets-for-transfer");
|
|
7
6
|
/**
|
|
@@ -32,15 +31,32 @@ async function preApproveTransfers(ledgerClient, validatorClient, params) {
|
|
|
32
31
|
// Derive current mining round context (handles opensAt logic)
|
|
33
32
|
const { openMiningRound: openMiningRoundContractId, openMiningRoundContract } = miningRoundContext;
|
|
34
33
|
console.log(`✅ Using open mining round: ${openMiningRoundContractId}`);
|
|
35
|
-
// Build disclosed contracts
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
34
|
+
// Build disclosed contracts array directly
|
|
35
|
+
const disclosedContracts = [
|
|
36
|
+
// AmuletRules contract (required)
|
|
37
|
+
{
|
|
38
|
+
contractId: amuletRules.amulet_rules.contract.contract_id,
|
|
39
|
+
templateId: amuletRules.amulet_rules.contract.template_id,
|
|
40
|
+
createdEventBlob: amuletRules.amulet_rules.contract.created_event_blob,
|
|
41
|
+
synchronizerId: amuletRules.amulet_rules.domain_id || '',
|
|
42
|
+
},
|
|
43
|
+
// Open mining round contract
|
|
44
|
+
{
|
|
45
|
+
contractId: openMiningRoundContract.contractId,
|
|
46
|
+
templateId: openMiningRoundContract.templateId,
|
|
47
|
+
createdEventBlob: openMiningRoundContract.createdEventBlob,
|
|
48
|
+
synchronizerId: openMiningRoundContract.synchronizerId,
|
|
49
|
+
}
|
|
50
|
+
];
|
|
51
|
+
// Add featured app right contract if found
|
|
40
52
|
if (featuredAppRight.featured_app_right) {
|
|
41
|
-
|
|
53
|
+
disclosedContracts.push({
|
|
54
|
+
contractId: featuredAppRight.featured_app_right.contract_id,
|
|
55
|
+
templateId: featuredAppRight.featured_app_right.template_id,
|
|
56
|
+
createdEventBlob: featuredAppRight.featured_app_right.created_event_blob,
|
|
57
|
+
synchronizerId: amuletRules.amulet_rules.domain_id || '',
|
|
58
|
+
});
|
|
42
59
|
}
|
|
43
|
-
const disclosedContracts = (0, disclosed_contracts_1.buildAmuletDisclosedContracts)(disclosedContractsParams);
|
|
44
60
|
console.log(`📋 Built ${disclosedContracts.length} disclosed contracts`);
|
|
45
61
|
// Get amulet inputs for the receiver party
|
|
46
62
|
console.log('🔍 Fetching amulet inputs for receiver party...');
|
|
@@ -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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"}
|
|
@@ -10,33 +10,61 @@ export interface TransferPreapprovalInfo {
|
|
|
10
10
|
/** Synchronizer ID where the TransferPreapproval contract resides */
|
|
11
11
|
synchronizerId: string;
|
|
12
12
|
}
|
|
13
|
-
export interface
|
|
14
|
-
/** Party ID sending the transfer */
|
|
15
|
-
senderPartyId: string;
|
|
13
|
+
export interface TransferRequest {
|
|
16
14
|
/** Recipient party ID */
|
|
17
15
|
recipientPartyId: string;
|
|
18
|
-
/** TransferPreapproval contract information (required for disclosure) */
|
|
19
|
-
transferPreapproval: TransferPreapprovalInfo;
|
|
20
16
|
/** Amount to transfer */
|
|
21
17
|
amount: string;
|
|
22
18
|
/** Optional description for the transfer */
|
|
23
19
|
description?: string;
|
|
24
20
|
}
|
|
21
|
+
export interface TransferToPreapprovedParams {
|
|
22
|
+
/** Party ID sending the transfer */
|
|
23
|
+
senderPartyId: string;
|
|
24
|
+
/** Array of transfer requests */
|
|
25
|
+
transfers: TransferRequest[];
|
|
26
|
+
}
|
|
25
27
|
export interface TransferToPreapprovedResult {
|
|
26
|
-
/**
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
/** Array of transfer results */
|
|
29
|
+
transferResults: Array<{
|
|
30
|
+
/** Recipient party ID */
|
|
31
|
+
recipientPartyId: string;
|
|
32
|
+
/** Contract ID of the TransferPreapproval contract used */
|
|
33
|
+
contractId: string;
|
|
34
|
+
/** Domain ID where the transfer occurred */
|
|
35
|
+
domainId: string;
|
|
36
|
+
/** Transfer result summary */
|
|
37
|
+
transferResult: any;
|
|
38
|
+
}>;
|
|
32
39
|
}
|
|
33
40
|
/**
|
|
34
|
-
* Transfers coins to
|
|
41
|
+
* Transfers coins to multiple parties that have pre-approved transfers enabled
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* const result = await transferToPreapproved(ledgerClient, validatorClient, {
|
|
46
|
+
* senderPartyId: 'sender-party-id',
|
|
47
|
+
* transfers: [
|
|
48
|
+
* {
|
|
49
|
+
* recipientPartyId: 'recipient-1',
|
|
50
|
+
* amount: '100',
|
|
51
|
+
* description: 'Payment for services'
|
|
52
|
+
* },
|
|
53
|
+
* {
|
|
54
|
+
* recipientPartyId: 'recipient-2',
|
|
55
|
+
* amount: '50',
|
|
56
|
+
* description: 'Bonus payment'
|
|
57
|
+
* }
|
|
58
|
+
* ]
|
|
59
|
+
* });
|
|
60
|
+
*
|
|
61
|
+
* console.log(`Completed ${result.transferResults.length} transfers`);
|
|
62
|
+
* ```
|
|
35
63
|
*
|
|
36
64
|
* @param ledgerClient - Ledger JSON API client for submitting commands
|
|
37
65
|
* @param validatorClient - Validator API client for getting network information
|
|
38
|
-
* @param params - Parameters for the
|
|
39
|
-
* @returns Promise resolving to the transfer
|
|
66
|
+
* @param params - Parameters for the transfers
|
|
67
|
+
* @returns Promise resolving to the transfer results
|
|
40
68
|
*/
|
|
41
69
|
export declare function transferToPreapproved(ledgerClient: LedgerJsonApiClient, validatorClient: ValidatorApiClient, params: TransferToPreapprovedParams): Promise<TransferToPreapprovedResult>;
|
|
42
70
|
//# sourceMappingURL=transfer-to-preapproved.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer-to-preapproved.d.ts","sourceRoot":"","sources":["../../../../src/utils/amulet/transfer-to-preapproved.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"transfer-to-preapproved.d.ts","sourceRoot":"","sources":["../../../../src/utils/amulet/transfer-to-preapproved.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAKjE,MAAM,WAAW,uBAAuB;IACtC,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,gBAAgB,EAAE,MAAM,CAAC;IACzB,qEAAqE;IACrE,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,yBAAyB;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,2BAA2B;IAC1C,oCAAoC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,SAAS,EAAE,eAAe,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,2BAA2B;IAC1C,gCAAgC;IAChC,eAAe,EAAE,KAAK,CAAC;QACrB,yBAAyB;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,2DAA2D;QAC3D,UAAU,EAAE,MAAM,CAAC;QACnB,4CAA4C;QAC5C,QAAQ,EAAE,MAAM,CAAC;QACjB,8BAA8B;QAC9B,cAAc,EAAE,GAAG,CAAC;KACrB,CAAC,CAAC;CACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,qBAAqB,CACzC,YAAY,EAAE,mBAAmB,EACjC,eAAe,EAAE,kBAAkB,EACnC,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,2BAA2B,CAAC,CAyJtC"}
|
|
@@ -2,28 +2,46 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.transferToPreapproved = transferToPreapproved;
|
|
4
4
|
const mining_rounds_1 = require("../mining/mining-rounds");
|
|
5
|
-
const disclosed_contracts_1 = require("../contracts/disclosed-contracts");
|
|
6
5
|
const get_amulets_for_transfer_1 = require("./get-amulets-for-transfer");
|
|
7
6
|
/**
|
|
8
|
-
* Transfers coins to
|
|
7
|
+
* Transfers coins to multiple parties that have pre-approved transfers enabled
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const result = await transferToPreapproved(ledgerClient, validatorClient, {
|
|
12
|
+
* senderPartyId: 'sender-party-id',
|
|
13
|
+
* transfers: [
|
|
14
|
+
* {
|
|
15
|
+
* recipientPartyId: 'recipient-1',
|
|
16
|
+
* amount: '100',
|
|
17
|
+
* description: 'Payment for services'
|
|
18
|
+
* },
|
|
19
|
+
* {
|
|
20
|
+
* recipientPartyId: 'recipient-2',
|
|
21
|
+
* amount: '50',
|
|
22
|
+
* description: 'Bonus payment'
|
|
23
|
+
* }
|
|
24
|
+
* ]
|
|
25
|
+
* });
|
|
26
|
+
*
|
|
27
|
+
* console.log(`Completed ${result.transferResults.length} transfers`);
|
|
28
|
+
* ```
|
|
9
29
|
*
|
|
10
30
|
* @param ledgerClient - Ledger JSON API client for submitting commands
|
|
11
31
|
* @param validatorClient - Validator API client for getting network information
|
|
12
|
-
* @param params - Parameters for the
|
|
13
|
-
* @returns Promise resolving to the transfer
|
|
32
|
+
* @param params - Parameters for the transfers
|
|
33
|
+
* @returns Promise resolving to the transfer results
|
|
14
34
|
*/
|
|
15
35
|
async function transferToPreapproved(ledgerClient, validatorClient, params) {
|
|
36
|
+
if (params.transfers.length === 0) {
|
|
37
|
+
throw new Error('At least one transfer must be provided');
|
|
38
|
+
}
|
|
16
39
|
// Get network information
|
|
17
|
-
const [amuletRules, miningRoundContext
|
|
40
|
+
const [amuletRules, miningRoundContext] = await Promise.all([
|
|
18
41
|
validatorClient.getAmuletRules(),
|
|
19
|
-
(0, mining_rounds_1.getCurrentMiningRoundContext)(validatorClient)
|
|
20
|
-
validatorClient.lookupFeaturedAppRight({ partyId: params.recipientPartyId })
|
|
42
|
+
(0, mining_rounds_1.getCurrentMiningRoundContext)(validatorClient)
|
|
21
43
|
]);
|
|
22
44
|
const { openMiningRound: openMiningRoundContractId, } = miningRoundContext;
|
|
23
|
-
if (!featuredAppRight.featured_app_right?.contract_id) {
|
|
24
|
-
throw new Error('No featured app right found');
|
|
25
|
-
}
|
|
26
|
-
const featuredAppRightContractId = featuredAppRight.featured_app_right.contract_id;
|
|
27
45
|
// Get amulet inputs for the sender party
|
|
28
46
|
console.log('🔍 Fetching amulet inputs for sender party...');
|
|
29
47
|
const amulets = await (0, get_amulets_for_transfer_1.getAmuletsForTransfer)({
|
|
@@ -39,60 +57,107 @@ async function transferToPreapproved(ledgerClient, validatorClient, params) {
|
|
|
39
57
|
value: amulet.contractId
|
|
40
58
|
}));
|
|
41
59
|
console.log(`📦 Found ${amulets.length} amulets for transfer`);
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
60
|
+
const transferResults = [];
|
|
61
|
+
// Build base disclosed contracts (shared across all transfers)
|
|
62
|
+
const disclosedContracts = [
|
|
63
|
+
// AmuletRules contract (required)
|
|
64
|
+
{
|
|
65
|
+
contractId: amuletRules.amulet_rules.contract.contract_id,
|
|
66
|
+
templateId: amuletRules.amulet_rules.contract.template_id,
|
|
67
|
+
createdEventBlob: amuletRules.amulet_rules.contract.created_event_blob,
|
|
68
|
+
synchronizerId: amuletRules.amulet_rules.domain_id || '',
|
|
69
|
+
},
|
|
70
|
+
// Open mining round contract (shared)
|
|
71
|
+
{
|
|
72
|
+
contractId: miningRoundContext.openMiningRoundContract.contractId,
|
|
73
|
+
templateId: miningRoundContext.openMiningRoundContract.templateId,
|
|
74
|
+
createdEventBlob: miningRoundContext.openMiningRoundContract.createdEventBlob,
|
|
75
|
+
synchronizerId: miningRoundContext.openMiningRoundContract.synchronizerId,
|
|
76
|
+
}
|
|
77
|
+
];
|
|
78
|
+
// Process each transfer
|
|
79
|
+
for (const transfer of params.transfers) {
|
|
80
|
+
console.log(`🔄 Processing transfer to ${transfer.recipientPartyId}...`);
|
|
81
|
+
// Look up transfer preapproval for the recipient
|
|
82
|
+
const transferPreapprovalResponse = await validatorClient.lookupTransferPreapprovalByParty({
|
|
83
|
+
partyId: transfer.recipientPartyId,
|
|
84
|
+
});
|
|
85
|
+
if (!transferPreapprovalResponse.transfer_preapproval) {
|
|
86
|
+
throw new Error(`No transfer preapproval found for party ${transfer.recipientPartyId}`);
|
|
87
|
+
}
|
|
88
|
+
const transferPreapprovalContract = transferPreapprovalResponse.transfer_preapproval.contract;
|
|
89
|
+
const transferPreapprovalContractId = transferPreapprovalContract.contract_id;
|
|
90
|
+
if (!transferPreapprovalResponse.transfer_preapproval.domain_id) {
|
|
91
|
+
throw new Error(`No domain ID found for transfer preapproval for party ${transfer.recipientPartyId}`);
|
|
92
|
+
}
|
|
93
|
+
// Look up featured app right for the recipient
|
|
94
|
+
const featuredAppRight = await validatorClient.lookupFeaturedAppRight({
|
|
95
|
+
partyId: transfer.recipientPartyId
|
|
96
|
+
});
|
|
97
|
+
if (!featuredAppRight.featured_app_right?.contract_id) {
|
|
98
|
+
throw new Error(`No featured app right found for party ${transfer.recipientPartyId}`);
|
|
99
|
+
}
|
|
100
|
+
const featuredAppRightContractId = featuredAppRight.featured_app_right.contract_id;
|
|
101
|
+
// Build transfer-specific disclosed contracts
|
|
102
|
+
const transferDisclosedContracts = [
|
|
103
|
+
...disclosedContracts, // Include base contracts
|
|
104
|
+
// Featured app right contract for this recipient
|
|
105
|
+
{
|
|
106
|
+
contractId: featuredAppRight.featured_app_right.contract_id,
|
|
107
|
+
templateId: featuredAppRight.featured_app_right.template_id,
|
|
108
|
+
createdEventBlob: featuredAppRight.featured_app_right.created_event_blob,
|
|
109
|
+
synchronizerId: amuletRules.amulet_rules.domain_id || '',
|
|
110
|
+
},
|
|
111
|
+
// Transfer preapproval contract for this recipient
|
|
112
|
+
{
|
|
113
|
+
contractId: transferPreapprovalContractId,
|
|
114
|
+
templateId: transferPreapprovalContract.template_id,
|
|
115
|
+
createdEventBlob: transferPreapprovalContract.created_event_blob,
|
|
116
|
+
synchronizerId: transferPreapprovalResponse.transfer_preapproval.domain_id,
|
|
117
|
+
}
|
|
118
|
+
];
|
|
119
|
+
// Create the transfer command using TransferPreapproval_Send
|
|
120
|
+
const transferCommand = {
|
|
121
|
+
ExerciseCommand: {
|
|
122
|
+
templateId: '#splice-amulet:Splice.AmuletRules:TransferPreapproval',
|
|
123
|
+
contractId: transferPreapprovalContractId,
|
|
124
|
+
choice: 'TransferPreapproval_Send',
|
|
125
|
+
choiceArgument: {
|
|
51
126
|
context: {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
127
|
+
amuletRules: amuletRules.amulet_rules.contract.contract_id,
|
|
128
|
+
context: {
|
|
129
|
+
openMiningRound: openMiningRoundContractId,
|
|
130
|
+
issuingMiningRounds: [],
|
|
131
|
+
validatorRights: [],
|
|
132
|
+
featuredAppRight: featuredAppRightContractId
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
inputs,
|
|
136
|
+
amount: transfer.amount,
|
|
137
|
+
sender: params.senderPartyId,
|
|
138
|
+
description: transfer.description || null
|
|
139
|
+
}
|
|
62
140
|
}
|
|
141
|
+
};
|
|
142
|
+
if (!amuletRules.amulet_rules.domain_id) {
|
|
143
|
+
throw new Error('Amulet rules domain ID is required');
|
|
63
144
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
if (transferPreapprovalContractInfo) {
|
|
80
|
-
disclosedContractsParams.additionalContracts = [transferPreapprovalContractInfo];
|
|
145
|
+
// Submit the command
|
|
146
|
+
const submitParams = {
|
|
147
|
+
commands: [transferCommand],
|
|
148
|
+
commandId: `transfer-preapproved-${transfer.recipientPartyId}-${Date.now()}`,
|
|
149
|
+
actAs: [params.senderPartyId],
|
|
150
|
+
disclosedContracts: transferDisclosedContracts,
|
|
151
|
+
};
|
|
152
|
+
const result = await ledgerClient.submitAndWaitForTransactionTree(submitParams);
|
|
153
|
+
transferResults.push({
|
|
154
|
+
recipientPartyId: transfer.recipientPartyId,
|
|
155
|
+
contractId: transferPreapprovalContractId,
|
|
156
|
+
domainId: amuletRules.amulet_rules.domain_id,
|
|
157
|
+
transferResult: result,
|
|
158
|
+
});
|
|
159
|
+
console.log(`✅ Transfer to ${transfer.recipientPartyId} completed successfully`);
|
|
81
160
|
}
|
|
82
|
-
|
|
83
|
-
// Submit the command
|
|
84
|
-
const submitParams = {
|
|
85
|
-
commands: [transferCommand],
|
|
86
|
-
commandId: `transfer-preapproved-${Date.now()}`,
|
|
87
|
-
actAs: [params.senderPartyId],
|
|
88
|
-
disclosedContracts,
|
|
89
|
-
};
|
|
90
|
-
const result = await ledgerClient.submitAndWaitForTransactionTree(submitParams);
|
|
91
|
-
const finalResult = {
|
|
92
|
-
contractId: params.transferPreapproval.contractId,
|
|
93
|
-
domainId: amuletRules.amulet_rules.domain_id,
|
|
94
|
-
transferResult: result,
|
|
95
|
-
};
|
|
96
|
-
return finalResult;
|
|
161
|
+
return { transferResults };
|
|
97
162
|
}
|
|
98
163
|
//# sourceMappingURL=transfer-to-preapproved.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer-to-preapproved.js","sourceRoot":"","sources":["../../../../src/utils/amulet/transfer-to-preapproved.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"transfer-to-preapproved.js","sourceRoot":"","sources":["../../../../src/utils/amulet/transfer-to-preapproved.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
|
|
@@ -14,6 +14,5 @@ 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("./disclosed-contracts"), exports);
|
|
18
17
|
__exportStar(require("./contract-monitor"), exports);
|
|
19
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/contracts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/contracts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ContractInfo } from '../contracts/disclosed-contracts';
|
|
2
1
|
import { ValidatorApiClient } from '../../clients/validator-api';
|
|
2
|
+
import { DisclosedContract } from '../../clients/ledger-json-api/schemas';
|
|
3
3
|
/**
|
|
4
4
|
* Context information derived from open / issuing mining rounds.
|
|
5
5
|
*/
|
|
@@ -7,7 +7,7 @@ export interface MiningRoundContext {
|
|
|
7
7
|
/** Contract ID of the open mining round to reference in commands */
|
|
8
8
|
openMiningRound: string;
|
|
9
9
|
/** Contract information (for disclosed contracts) of the open mining round */
|
|
10
|
-
openMiningRoundContract:
|
|
10
|
+
openMiningRoundContract: DisclosedContract;
|
|
11
11
|
/** Issuing mining rounds formatted for command arguments */
|
|
12
12
|
issuingMiningRounds: Array<{
|
|
13
13
|
round: number;
|
|
@@ -30,4 +30,12 @@ export declare function getCurrentMiningRoundContext(validatorClient: ValidatorA
|
|
|
30
30
|
* @throws Error if no mining round satisfies the criteria
|
|
31
31
|
*/
|
|
32
32
|
export declare function getCurrentMiningRoundDomainId(validatorClient: ValidatorApiClient): Promise<string>;
|
|
33
|
+
/**
|
|
34
|
+
* Wait until the mining round has actually changed, confirming the change
|
|
35
|
+
* @param validatorClient Validator API client to fetch round information
|
|
36
|
+
* @param initialRoundNumber The round number when we started waiting
|
|
37
|
+
* @param maxWaitTime Maximum time to wait in milliseconds (default: 10 minutes)
|
|
38
|
+
* @returns Promise that resolves when the round has changed
|
|
39
|
+
*/
|
|
40
|
+
export declare function waitForRoundChange(validatorClient: ValidatorApiClient, initialRoundNumber: number, maxWaitTime?: number): Promise<void>;
|
|
33
41
|
//# sourceMappingURL=mining-rounds.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mining-rounds.d.ts","sourceRoot":"","sources":["../../../../src/utils/mining/mining-rounds.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"mining-rounds.d.ts","sourceRoot":"","sources":["../../../../src/utils/mining/mining-rounds.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAyC1E;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,eAAe,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,uBAAuB,EAAE,iBAAiB,CAAC;IAC3C,4DAA4D;IAC5D,mBAAmB,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnE;AAED;;;;;GAKG;AACH,wBAAsB,4BAA4B,CAChD,eAAe,EAAE,kBAAkB,GAClC,OAAO,CAAC,kBAAkB,CAAC,CA2C7B;AAED;;;;;;;GAOG;AACH,wBAAsB,6BAA6B,CACjD,eAAe,EAAE,kBAAkB,GAClC,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,eAAe,EAAE,kBAAkB,EACnC,kBAAkB,EAAE,MAAM,EAC1B,WAAW,GAAE,MAAuB,GACnC,OAAO,CAAC,IAAI,CAAC,CAgDf"}
|
|
@@ -2,6 +2,42 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getCurrentMiningRoundContext = getCurrentMiningRoundContext;
|
|
4
4
|
exports.getCurrentMiningRoundDomainId = getCurrentMiningRoundDomainId;
|
|
5
|
+
exports.waitForRoundChange = waitForRoundChange;
|
|
6
|
+
/**
|
|
7
|
+
* Sleep utility function
|
|
8
|
+
*/
|
|
9
|
+
function sleep(ms) {
|
|
10
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Find the latest mining round from a list of open mining rounds
|
|
14
|
+
*/
|
|
15
|
+
function findLatestMiningRound(openMiningRounds) {
|
|
16
|
+
if (openMiningRounds.length === 0)
|
|
17
|
+
return null;
|
|
18
|
+
// Sort by round number descending and return the first (latest) one
|
|
19
|
+
return openMiningRounds.sort((a, b) => {
|
|
20
|
+
const roundA = getRoundNumber(a);
|
|
21
|
+
const roundB = getRoundNumber(b);
|
|
22
|
+
return roundB - roundA;
|
|
23
|
+
})[0];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Extract round number from a mining round object
|
|
27
|
+
*/
|
|
28
|
+
function getRoundNumber(miningRound) {
|
|
29
|
+
try {
|
|
30
|
+
// Try to get round number from various possible locations
|
|
31
|
+
return (miningRound.round_number ||
|
|
32
|
+
miningRound.roundNumber ||
|
|
33
|
+
miningRound.contract?.payload?.roundNumber ||
|
|
34
|
+
miningRound.contract?.payload?.round_number ||
|
|
35
|
+
0);
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return 0;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
5
41
|
/**
|
|
6
42
|
* Finds the latest mining round that is currently open (\`opensAt\` is in the past)
|
|
7
43
|
* and returns useful context information.
|
|
@@ -57,4 +93,47 @@ async function getCurrentMiningRoundDomainId(validatorClient) {
|
|
|
57
93
|
const miningRoundContext = await getCurrentMiningRoundContext(validatorClient);
|
|
58
94
|
return miningRoundContext.openMiningRoundContract.synchronizerId;
|
|
59
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* Wait until the mining round has actually changed, confirming the change
|
|
98
|
+
* @param validatorClient Validator API client to fetch round information
|
|
99
|
+
* @param initialRoundNumber The round number when we started waiting
|
|
100
|
+
* @param maxWaitTime Maximum time to wait in milliseconds (default: 10 minutes)
|
|
101
|
+
* @returns Promise that resolves when the round has changed
|
|
102
|
+
*/
|
|
103
|
+
async function waitForRoundChange(validatorClient, initialRoundNumber, maxWaitTime = 15 * 60 * 1000 // 15 minutes default
|
|
104
|
+
) {
|
|
105
|
+
const startTime = Date.now();
|
|
106
|
+
const checkInterval = 20000; // Check every 20 seconds
|
|
107
|
+
console.log(`🔄 Waiting for mining round to change from ${initialRoundNumber}...`);
|
|
108
|
+
while (Date.now() - startTime < maxWaitTime) {
|
|
109
|
+
try {
|
|
110
|
+
const miningRoundsResponse = await validatorClient.getOpenAndIssuingMiningRounds();
|
|
111
|
+
const currentOpenMiningRounds = miningRoundsResponse.open_mining_rounds;
|
|
112
|
+
if (currentOpenMiningRounds.length === 0) {
|
|
113
|
+
console.log('⚠️ No open mining rounds found, waiting...');
|
|
114
|
+
await sleep(checkInterval);
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
const latestRound = findLatestMiningRound(currentOpenMiningRounds);
|
|
118
|
+
if (!latestRound) {
|
|
119
|
+
console.log('⚠️ No valid mining rounds found, waiting...');
|
|
120
|
+
await sleep(checkInterval);
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
const currentRoundNumber = getRoundNumber(latestRound);
|
|
124
|
+
process.stdout.write('.');
|
|
125
|
+
if (currentRoundNumber > initialRoundNumber) {
|
|
126
|
+
console.log(`✅ Mining round has changed from ${initialRoundNumber} to ${currentRoundNumber}`);
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
// Round hasn't changed yet, wait and check again
|
|
130
|
+
await sleep(checkInterval);
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
console.error('⚠️ Error checking mining rounds:', error);
|
|
134
|
+
await sleep(checkInterval);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
throw new Error(`Timeout waiting for mining round to change from ${initialRoundNumber} after ${maxWaitTime / 1000} seconds`);
|
|
138
|
+
}
|
|
60
139
|
//# sourceMappingURL=mining-rounds.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mining-rounds.js","sourceRoot":"","sources":["../../../../src/utils/mining/mining-rounds.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"mining-rounds.js","sourceRoot":"","sources":["../../../../src/utils/mining/mining-rounds.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { DisclosedContract } from '../../clients/ledger-json-api/schemas/api/commands';
|
|
2
|
-
export interface ContractInfo {
|
|
3
|
-
/** Contract ID */
|
|
4
|
-
contractId: string;
|
|
5
|
-
/** Template ID (optional) */
|
|
6
|
-
templateId: string;
|
|
7
|
-
/** Created event blob */
|
|
8
|
-
createdEventBlob: string;
|
|
9
|
-
/** Synchronizer ID */
|
|
10
|
-
synchronizerId: string;
|
|
11
|
-
}
|
|
12
|
-
export interface AmuletDisclosedContractsParams {
|
|
13
|
-
/** AmuletRules contract info */
|
|
14
|
-
amuletRules: ContractInfo;
|
|
15
|
-
/** Open mining round contract info */
|
|
16
|
-
openMiningRound?: ContractInfo;
|
|
17
|
-
/** Issuing mining rounds contract info */
|
|
18
|
-
issuingMiningRounds?: ContractInfo[];
|
|
19
|
-
/** Featured app right contract info */
|
|
20
|
-
featuredAppRight?: ContractInfo;
|
|
21
|
-
/** Additional contracts to disclose */
|
|
22
|
-
additionalContracts?: ContractInfo[];
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Builds disclosed contracts array for Amulet operations
|
|
26
|
-
*
|
|
27
|
-
* @param params - Contract information for disclosure
|
|
28
|
-
* @returns Array of disclosed contracts
|
|
29
|
-
*/
|
|
30
|
-
export declare function buildAmuletDisclosedContracts(params: AmuletDisclosedContractsParams): DisclosedContract[];
|
|
31
|
-
/**
|
|
32
|
-
* Helper function to create ContractInfo from API responses
|
|
33
|
-
*
|
|
34
|
-
* @param contractId - The contract ID
|
|
35
|
-
* @param templateId - The template ID (optional)
|
|
36
|
-
* @param createdEventBlob - The created event blob
|
|
37
|
-
* @param synchronizerId - The synchronizer ID
|
|
38
|
-
* @returns ContractInfo object
|
|
39
|
-
*/
|
|
40
|
-
export declare function createContractInfo(contractId: string, createdEventBlob: string, synchronizerId: string, templateId: string): ContractInfo;
|
|
41
|
-
//# sourceMappingURL=disclosed-contracts.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"disclosed-contracts.d.ts","sourceRoot":"","sources":["../../../../src/utils/contracts/disclosed-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAC;AAEvF,MAAM,WAAW,YAAY;IAC3B,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,8BAA8B;IAC7C,gCAAgC;IAChC,WAAW,EAAE,YAAY,CAAC;IAC1B,sCAAsC;IACtC,eAAe,CAAC,EAAE,YAAY,CAAC;IAC/B,0CAA0C;IAC1C,mBAAmB,CAAC,EAAE,YAAY,EAAE,CAAC;IACrC,uCAAuC;IACvC,gBAAgB,CAAC,EAAE,YAAY,CAAC;IAChC,uCAAuC;IACvC,mBAAmB,CAAC,EAAE,YAAY,EAAE,CAAC;CACtC;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,8BAA8B,GACrC,iBAAiB,EAAE,CAwDrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,GACjB,YAAY,CAoBd"}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.buildAmuletDisclosedContracts = buildAmuletDisclosedContracts;
|
|
4
|
-
exports.createContractInfo = createContractInfo;
|
|
5
|
-
/**
|
|
6
|
-
* Builds disclosed contracts array for Amulet operations
|
|
7
|
-
*
|
|
8
|
-
* @param params - Contract information for disclosure
|
|
9
|
-
* @returns Array of disclosed contracts
|
|
10
|
-
*/
|
|
11
|
-
function buildAmuletDisclosedContracts(params) {
|
|
12
|
-
const disclosedContracts = [];
|
|
13
|
-
// Add AmuletRules contract (required)
|
|
14
|
-
disclosedContracts.push({
|
|
15
|
-
contractId: params.amuletRules.contractId,
|
|
16
|
-
templateId: params.amuletRules.templateId,
|
|
17
|
-
createdEventBlob: params.amuletRules.createdEventBlob,
|
|
18
|
-
synchronizerId: params.amuletRules.synchronizerId,
|
|
19
|
-
});
|
|
20
|
-
// Add open mining round contract if provided
|
|
21
|
-
if (params.openMiningRound) {
|
|
22
|
-
disclosedContracts.push({
|
|
23
|
-
contractId: params.openMiningRound.contractId,
|
|
24
|
-
templateId: params.openMiningRound.templateId,
|
|
25
|
-
createdEventBlob: params.openMiningRound.createdEventBlob,
|
|
26
|
-
synchronizerId: params.openMiningRound.synchronizerId,
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
// Add issuing mining rounds contracts if provided
|
|
30
|
-
if (params.issuingMiningRounds) {
|
|
31
|
-
for (const round of params.issuingMiningRounds) {
|
|
32
|
-
disclosedContracts.push({
|
|
33
|
-
contractId: round.contractId,
|
|
34
|
-
templateId: round.templateId,
|
|
35
|
-
createdEventBlob: round.createdEventBlob,
|
|
36
|
-
synchronizerId: round.synchronizerId,
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
// Add featured app right contract if provided
|
|
41
|
-
if (params.featuredAppRight) {
|
|
42
|
-
disclosedContracts.push({
|
|
43
|
-
contractId: params.featuredAppRight.contractId,
|
|
44
|
-
templateId: params.featuredAppRight.templateId,
|
|
45
|
-
createdEventBlob: params.featuredAppRight.createdEventBlob,
|
|
46
|
-
synchronizerId: params.featuredAppRight.synchronizerId,
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
// Add additional contracts if provided
|
|
50
|
-
if (params.additionalContracts) {
|
|
51
|
-
for (const contract of params.additionalContracts) {
|
|
52
|
-
disclosedContracts.push({
|
|
53
|
-
contractId: contract.contractId,
|
|
54
|
-
templateId: contract.templateId,
|
|
55
|
-
createdEventBlob: contract.createdEventBlob,
|
|
56
|
-
synchronizerId: contract.synchronizerId,
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return disclosedContracts;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Helper function to create ContractInfo from API responses
|
|
64
|
-
*
|
|
65
|
-
* @param contractId - The contract ID
|
|
66
|
-
* @param templateId - The template ID (optional)
|
|
67
|
-
* @param createdEventBlob - The created event blob
|
|
68
|
-
* @param synchronizerId - The synchronizer ID
|
|
69
|
-
* @returns ContractInfo object
|
|
70
|
-
*/
|
|
71
|
-
function createContractInfo(contractId, createdEventBlob, synchronizerId, templateId) {
|
|
72
|
-
if (!contractId || contractId.trim() === '') {
|
|
73
|
-
throw new Error('Contract ID is required');
|
|
74
|
-
}
|
|
75
|
-
if (!createdEventBlob || createdEventBlob.trim() === '') {
|
|
76
|
-
throw new Error('Created event blob is required');
|
|
77
|
-
}
|
|
78
|
-
if (!synchronizerId || synchronizerId.trim() === '') {
|
|
79
|
-
throw new Error('Synchronizer ID is required');
|
|
80
|
-
}
|
|
81
|
-
if (!templateId || templateId.trim() === '') {
|
|
82
|
-
throw new Error('Template ID is required');
|
|
83
|
-
}
|
|
84
|
-
return {
|
|
85
|
-
contractId,
|
|
86
|
-
templateId,
|
|
87
|
-
createdEventBlob,
|
|
88
|
-
synchronizerId,
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
//# sourceMappingURL=disclosed-contracts.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"disclosed-contracts.js","sourceRoot":"","sources":["../../../../src/utils/contracts/disclosed-contracts.ts"],"names":[],"mappings":"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"}
|