@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.
@@ -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;AAMjE,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,CAqIpC"}
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 disclosedContractsParams = {
37
- amuletRules: (0, disclosed_contracts_1.createContractInfo)(amuletRules.amulet_rules.contract.contract_id, amuletRules.amulet_rules.contract.created_event_blob, amuletRules.amulet_rules.domain_id || '', amuletRules.amulet_rules.contract.template_id),
38
- openMiningRound: (0, disclosed_contracts_1.createContractInfo)(openMiningRoundContract.contractId, openMiningRoundContract.createdEventBlob, openMiningRoundContract.synchronizerId, openMiningRoundContract.templateId),
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
- disclosedContractsParams.featuredAppRight = (0, disclosed_contracts_1.createContractInfo)(featuredAppRight.featured_app_right.contract_id, featuredAppRight.featured_app_right.created_event_blob, amuletRules.amulet_rules.domain_id || '', featuredAppRight.featured_app_right.template_id);
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":"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"}
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 TransferToPreapprovedParams {
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
- /** Contract ID of the TransferPreapproval contract used */
27
- contractId: string;
28
- /** Domain ID where the transfer occurred */
29
- domainId: string;
30
- /** Transfer result summary */
31
- transferResult: any;
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 a party that has pre-approved transfers enabled
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 transfer
39
- * @returns Promise resolving to the transfer result
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;AAMjE,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,2BAA2B;IAC1C,oCAAoC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,mBAAmB,EAAE,uBAAuB,CAAC;IAC7C,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,2BAA2B;IAC1C,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,cAAc,EAAE,GAAG,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,YAAY,EAAE,mBAAmB,EACjC,eAAe,EAAE,kBAAkB,EACnC,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,2BAA2B,CAAC,CAsHtC"}
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 a party that has pre-approved transfers enabled
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 transfer
13
- * @returns Promise resolving to the transfer result
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, featuredAppRight] = await Promise.all([
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
- // Create the transfer command using TransferPreapproval_Send
43
- const transferCommand = {
44
- ExerciseCommand: {
45
- templateId: '#splice-amulet:Splice.AmuletRules:TransferPreapproval',
46
- contractId: params.transferPreapproval.contractId,
47
- choice: 'TransferPreapproval_Send',
48
- choiceArgument: {
49
- context: {
50
- amuletRules: amuletRules.amulet_rules.contract.contract_id,
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
- openMiningRound: openMiningRoundContractId,
53
- issuingMiningRounds: [],
54
- validatorRights: [],
55
- featuredAppRight: featuredAppRightContractId
56
- }
57
- },
58
- inputs,
59
- amount: params.amount,
60
- sender: params.senderPartyId,
61
- description: params.description || null
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
- // Build disclosed contracts (TransferPreapproval contract details are provided explicitly)
66
- const transferPreapprovalContractInfo = (0, disclosed_contracts_1.createContractInfo)(params.transferPreapproval.contractId, params.transferPreapproval.createdEventBlob, params.transferPreapproval.synchronizerId, params.transferPreapproval.templateId);
67
- if (!amuletRules.amulet_rules.domain_id) {
68
- throw new Error('Amulet rules domain ID is required');
69
- }
70
- // Build the full disclosed contracts list
71
- const disclosedContractsParams = {
72
- amuletRules: (0, disclosed_contracts_1.createContractInfo)(amuletRules.amulet_rules.contract.contract_id, amuletRules.amulet_rules.contract.created_event_blob, amuletRules.amulet_rules.domain_id, amuletRules.amulet_rules.contract.template_id),
73
- openMiningRound: miningRoundContext.openMiningRoundContract,
74
- };
75
- if (featuredAppRight.featured_app_right) {
76
- const featuredAppRightContractInfo = (0, disclosed_contracts_1.createContractInfo)(featuredAppRight.featured_app_right.contract_id, featuredAppRight.featured_app_right.created_event_blob, amuletRules.amulet_rules.domain_id, featuredAppRight.featured_app_right.template_id);
77
- disclosedContractsParams.featuredAppRight = featuredAppRightContractInfo;
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
- const disclosedContracts = (0, disclosed_contracts_1.buildAmuletDisclosedContracts)(disclosedContractsParams);
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":"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"}
1
+ {"version":3,"file":"transfer-to-preapproved.js","sourceRoot":"","sources":["../../../../src/utils/amulet/transfer-to-preapproved.ts"],"names":[],"mappings":";;AA4EA,sDA6JC;AAtOD,2DAAuE;AACvE,yEAAmE;AA2CnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACI,KAAK,UAAU,qBAAqB,CACzC,YAAiC,EACjC,eAAmC,EACnC,MAAmC;IAEnC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,0BAA0B;IAC1B,MAAM,CAAC,WAAW,EAAE,kBAAkB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC1D,eAAe,CAAC,cAAc,EAAE;QAChC,IAAA,4CAA4B,EAAC,eAAe,CAAC;KAC9C,CAAC,CAAC;IAEH,MAAM,EACJ,eAAe,EAAE,yBAAyB,GAC3C,GAAG,kBAAkB,CAAC;IAEvB,yCAAyC;IACzC,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,MAAM,IAAA,gDAAqB,EAAC;QAC1C,aAAa,EAAE,YAAY;QAC3B,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC;KAC/B,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,8CAA8C,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,kCAAkC;IAClC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpC,GAAG,EAAE,aAAsB;QAC3B,KAAK,EAAE,MAAM,CAAC,UAAU;KACzB,CAAC,CAAC,CAAC;IAEJ,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,MAAM,uBAAuB,CAAC,CAAC;IAE/D,MAAM,eAAe,GAAmD,EAAE,CAAC;IAE3E,+DAA+D;IAC/D,MAAM,kBAAkB,GAAwB;QAC9C,kCAAkC;QAClC;YACE,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW;YACzD,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW;YACzD,gBAAgB,EAAE,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,kBAAkB;YACtE,cAAc,EAAE,WAAW,CAAC,YAAY,CAAC,SAAS,IAAI,EAAE;SACzD;QACD,sCAAsC;QACtC;YACE,UAAU,EAAE,kBAAkB,CAAC,uBAAuB,CAAC,UAAU;YACjE,UAAU,EAAE,kBAAkB,CAAC,uBAAuB,CAAC,UAAU;YACjE,gBAAgB,EAAE,kBAAkB,CAAC,uBAAuB,CAAC,gBAAgB;YAC7E,cAAc,EAAE,kBAAkB,CAAC,uBAAuB,CAAC,cAAc;SAC1E;KACF,CAAC;IAEF,wBAAwB;IACxB,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,6BAA6B,QAAQ,CAAC,gBAAgB,KAAK,CAAC,CAAC;QAEzE,iDAAiD;QACjD,MAAM,2BAA2B,GAAG,MAAM,eAAe,CAAC,gCAAgC,CAAC;YACzF,OAAO,EAAE,QAAQ,CAAC,gBAAgB;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC,2BAA2B,CAAC,oBAAoB,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,2CAA2C,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC1F,CAAC;QAED,MAAM,2BAA2B,GAAG,2BAA2B,CAAC,oBAAoB,CAAC,QAAQ,CAAC;QAC9F,MAAM,6BAA6B,GAAG,2BAA2B,CAAC,WAAW,CAAC;QAE9E,IAAI,CAAC,2BAA2B,CAAC,oBAAoB,CAAC,SAAS,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,yDAAyD,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACxG,CAAC;QAED,+CAA+C;QAC/C,MAAM,gBAAgB,GAAG,MAAM,eAAe,CAAC,sBAAsB,CAAC;YACpE,OAAO,EAAE,QAAQ,CAAC,gBAAgB;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,WAAW,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,yCAAyC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACxF,CAAC;QAED,MAAM,0BAA0B,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,WAAW,CAAC;QAEnF,8CAA8C;QAC9C,MAAM,0BAA0B,GAAwB;YACtD,GAAG,kBAAkB,EAAE,yBAAyB;YAChD,iDAAiD;YACjD;gBACE,UAAU,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,WAAW;gBAC3D,UAAU,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,WAAW;gBAC3D,gBAAgB,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,kBAAkB;gBACxE,cAAc,EAAE,WAAW,CAAC,YAAY,CAAC,SAAS,IAAI,EAAE;aACzD;YACD,mDAAmD;YACnD;gBACE,UAAU,EAAE,6BAA6B;gBACzC,UAAU,EAAE,2BAA2B,CAAC,WAAW;gBACnD,gBAAgB,EAAE,2BAA2B,CAAC,kBAAkB;gBAChE,cAAc,EAAE,2BAA2B,CAAC,oBAAoB,CAAC,SAAS;aAC3E;SACF,CAAC;QAEF,6DAA6D;QAC7D,MAAM,eAAe,GAAoB;YACvC,eAAe,EAAE;gBACf,UAAU,EAAE,uDAAuD;gBACnE,UAAU,EAAE,6BAA6B;gBACzC,MAAM,EAAE,0BAA0B;gBAClC,cAAc,EAAE;oBACd,OAAO,EAAE;wBACP,WAAW,EAAE,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW;wBAC1D,OAAO,EAAE;4BACP,eAAe,EAAE,yBAAyB;4BAC1C,mBAAmB,EAAE,EAAE;4BACvB,eAAe,EAAE,EAAE;4BACnB,gBAAgB,EAAE,0BAA0B;yBAC7C;qBACF;oBACD,MAAM;oBACN,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,MAAM,EAAE,MAAM,CAAC,aAAa;oBAC5B,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,IAAI;iBAC1C;aACF;SACF,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,qBAAqB;QACrB,MAAM,YAAY,GAAQ;YACxB,QAAQ,EAAE,CAAC,eAAe,CAAC;YAC3B,SAAS,EAAE,wBAAwB,QAAQ,CAAC,gBAAgB,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;YAC5E,KAAK,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC;YAC7B,kBAAkB,EAAE,0BAA0B;SAC/C,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,+BAA+B,CAAC,YAAY,CAAC,CAAC;QAEhF,eAAe,CAAC,IAAI,CAAC;YACnB,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;YAC3C,UAAU,EAAE,6BAA6B;YACzC,QAAQ,EAAE,WAAW,CAAC,YAAY,CAAC,SAAS;YAC5C,cAAc,EAAE,MAAM;SACvB,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,iBAAiB,QAAQ,CAAC,gBAAgB,yBAAyB,CAAC,CAAC;IACnF,CAAC;IAED,OAAO,EAAE,eAAe,EAAE,CAAC;AAC7B,CAAC"}
@@ -1,3 +1,2 @@
1
- export * from './disclosed-contracts';
2
1
  export * from './contract-monitor';
3
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,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,wDAAsC;AACtC,qDAAmC"}
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: ContractInfo;
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,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,eAAe,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,uBAAuB,EAAE,YAAY,CAAC;IACtC,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"}
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":";;AAsBA,oEA6CC;AAUD,sEAKC;AAlED;;;;;GAKG;AACI,KAAK,UAAU,4BAA4B,CAChD,eAAmC;IAEnC,MAAM,oBAAoB,GACxB,MAAM,eAAe,CAAC,6BAA6B,EAAE,CAAC;IAExD,8DAA8D;IAC9D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,eAAe,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QAC7E,IAAI,CAAC;YACH,MAAM,UAAU,GAAI,KAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,OAA6B,CAAC;YACpF,IAAI,CAAC,UAAU;gBAAE,OAAO,KAAK,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;YACrC,OAAO,OAAO,IAAI,GAAG,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,kEAAkE;IAClE,MAAM,aAAa,GAAG,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAQ,CAAC;IAEzE,MAAM,uBAAuB,GAAiB;QAC5C,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC,WAAW;QAC9C,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC,WAAW;QAC9C,gBAAgB,EAAE,aAAa,CAAC,QAAQ,CAAC,kBAAkB;QAC3D,cAAc,EAAE,aAAa,CAAC,SAAS,EAAE,sDAAsD;KAChG,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAAC,oBAAoB,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC,GAAG,CAChF,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC;QACf,KAAK,EAAE,KAAK,CAAC,YAAsB;QACnC,UAAU,EAAE,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAW;KACzE,CAAC,CACH,CAAC;IAEF,OAAO;QACL,eAAe,EAAE,uBAAuB,CAAC,UAAU;QACnD,uBAAuB;QACvB,mBAAmB;KACpB,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,6BAA6B,CACjD,eAAmC;IAEnC,MAAM,kBAAkB,GAAG,MAAM,4BAA4B,CAAC,eAAe,CAAC,CAAC;IAC/E,OAAO,kBAAkB,CAAC,uBAAuB,CAAC,cAAc,CAAC;AACnE,CAAC"}
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@fairmint/canton-node-sdk",
3
- "version": "0.0.69",
3
+ "version": "0.0.71",
4
4
  "description": "Canton Node SDK",
5
5
  "main": "build/src/index.js",
6
6
  "types": "build/src/index.d.ts",
@@ -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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"}