@fairmint/canton-node-sdk 0.0.57 → 0.0.59

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.
Files changed (85) hide show
  1. package/build/src/clients/index.d.ts +1 -0
  2. package/build/src/clients/index.d.ts.map +1 -1
  3. package/build/src/clients/index.js +1 -0
  4. package/build/src/clients/index.js.map +1 -1
  5. package/build/src/clients/lighthouse-api/LighthouseApiClient.d.ts +9 -0
  6. package/build/src/clients/lighthouse-api/LighthouseApiClient.d.ts.map +1 -0
  7. package/build/src/clients/lighthouse-api/LighthouseApiClient.js +15 -0
  8. package/build/src/clients/lighthouse-api/LighthouseApiClient.js.map +1 -0
  9. package/build/src/clients/lighthouse-api/index.d.ts +3 -0
  10. package/build/src/clients/lighthouse-api/index.d.ts.map +1 -0
  11. package/build/src/clients/lighthouse-api/index.js +21 -0
  12. package/build/src/clients/lighthouse-api/index.js.map +1 -0
  13. package/build/src/clients/lighthouse-api/operations/get-transfer-agent.d.ts +64 -0
  14. package/build/src/clients/lighthouse-api/operations/get-transfer-agent.d.ts.map +1 -0
  15. package/build/src/clients/lighthouse-api/operations/get-transfer-agent.js +26 -0
  16. package/build/src/clients/lighthouse-api/operations/get-transfer-agent.js.map +1 -0
  17. package/build/src/clients/lighthouse-api/types.d.ts +74 -0
  18. package/build/src/clients/lighthouse-api/types.d.ts.map +1 -0
  19. package/build/src/clients/lighthouse-api/types.js +49 -0
  20. package/build/src/clients/lighthouse-api/types.js.map +1 -0
  21. package/build/src/clients/register.d.ts.map +1 -1
  22. package/build/src/clients/register.js +3 -0
  23. package/build/src/clients/register.js.map +1 -1
  24. package/build/src/clients/validator-api/ValidatorApiClient.d.ts +3 -2
  25. package/build/src/clients/validator-api/ValidatorApiClient.d.ts.map +1 -1
  26. package/build/src/clients/validator-api/ValidatorApiClient.js +2 -0
  27. package/build/src/clients/validator-api/ValidatorApiClient.js.map +1 -1
  28. package/build/src/clients/validator-api/operations/v0/scan-proxy/get-member-traffic-status.d.ts +16 -21
  29. package/build/src/clients/validator-api/operations/v0/scan-proxy/get-member-traffic-status.d.ts.map +1 -1
  30. package/build/src/clients/validator-api/operations/v0/scan-proxy/get-member-traffic-status.js +23 -10
  31. package/build/src/clients/validator-api/operations/v0/scan-proxy/get-member-traffic-status.js.map +1 -1
  32. package/build/src/clients/validator-api/operations/v0/wallet/buy-traffic-requests/create.js +1 -1
  33. package/build/src/clients/validator-api/operations/v0/wallet/buy-traffic-requests/create.js.map +1 -1
  34. package/build/src/clients/validator-api/schemas/operations/scan-proxy.d.ts +2 -2
  35. package/build/src/clients/validator-api/schemas/operations/scan-proxy.js +2 -2
  36. package/build/src/clients/validator-api/schemas/operations/scan-proxy.js.map +1 -1
  37. package/build/src/core/BaseClient.d.ts +26 -2
  38. package/build/src/core/BaseClient.d.ts.map +1 -1
  39. package/build/src/core/BaseClient.js +54 -2
  40. package/build/src/core/BaseClient.js.map +1 -1
  41. package/build/src/core/ClientFactory.d.ts +3 -3
  42. package/build/src/core/ClientFactory.d.ts.map +1 -1
  43. package/build/src/core/ClientFactory.js.map +1 -1
  44. package/build/src/core/config/EnvLoader.d.ts.map +1 -1
  45. package/build/src/core/config/EnvLoader.js +54 -12
  46. package/build/src/core/config/EnvLoader.js.map +1 -1
  47. package/build/src/core/operations/ApiOperation.d.ts +22 -1
  48. package/build/src/core/operations/ApiOperation.d.ts.map +1 -1
  49. package/build/src/core/operations/ApiOperation.js +37 -1
  50. package/build/src/core/operations/ApiOperation.js.map +1 -1
  51. package/build/src/core/operations/ApiOperationFactory.d.ts +29 -1
  52. package/build/src/core/operations/ApiOperationFactory.d.ts.map +1 -1
  53. package/build/src/core/operations/ApiOperationFactory.js +34 -0
  54. package/build/src/core/operations/ApiOperationFactory.js.map +1 -1
  55. package/build/src/core/types.d.ts +7 -3
  56. package/build/src/core/types.d.ts.map +1 -1
  57. package/build/src/utils/amulet/get-amulets-for-transfer.d.ts +21 -0
  58. package/build/src/utils/amulet/get-amulets-for-transfer.d.ts.map +1 -0
  59. package/build/src/utils/amulet/get-amulets-for-transfer.js +106 -0
  60. package/build/src/utils/amulet/get-amulets-for-transfer.js.map +1 -0
  61. package/build/src/utils/amulet/index.d.ts +1 -0
  62. package/build/src/utils/amulet/index.d.ts.map +1 -1
  63. package/build/src/utils/amulet/index.js +1 -0
  64. package/build/src/utils/amulet/index.js.map +1 -1
  65. package/build/src/utils/amulet/pre-approve-transfers.d.ts +0 -7
  66. package/build/src/utils/amulet/pre-approve-transfers.d.ts.map +1 -1
  67. package/build/src/utils/amulet/pre-approve-transfers.js +20 -4
  68. package/build/src/utils/amulet/pre-approve-transfers.js.map +1 -1
  69. package/build/src/utils/amulet/transfer-to-preapproved.d.ts +0 -5
  70. package/build/src/utils/amulet/transfer-to-preapproved.d.ts.map +1 -1
  71. package/build/src/utils/amulet/transfer-to-preapproved.js +17 -1
  72. package/build/src/utils/amulet/transfer-to-preapproved.js.map +1 -1
  73. package/build/src/utils/contracts/contract-monitor.d.ts +23 -0
  74. package/build/src/utils/contracts/contract-monitor.d.ts.map +1 -0
  75. package/build/src/utils/contracts/contract-monitor.js +54 -0
  76. package/build/src/utils/contracts/contract-monitor.js.map +1 -0
  77. package/build/src/utils/contracts/index.d.ts +1 -0
  78. package/build/src/utils/contracts/index.d.ts.map +1 -1
  79. package/build/src/utils/contracts/index.js +1 -0
  80. package/build/src/utils/contracts/index.js.map +1 -1
  81. package/build/src/utils/mining/mining-rounds.d.ts +9 -0
  82. package/build/src/utils/mining/mining-rounds.d.ts.map +1 -1
  83. package/build/src/utils/mining/mining-rounds.js +13 -0
  84. package/build/src/utils/mining/mining-rounds.js.map +1 -1
  85. package/package.json +1 -1
@@ -0,0 +1,21 @@
1
+ import { LedgerJsonApiClient } from '../../clients/ledger-json-api';
2
+ export interface AmuletForTransfer {
3
+ contractId: string;
4
+ templateId: string;
5
+ effectiveAmount: string;
6
+ owner: string;
7
+ }
8
+ export interface GetAmuletsForTransferParams {
9
+ /** Ledger JSON API client for querying active contracts */
10
+ jsonApiClient: LedgerJsonApiClient;
11
+ /** Party IDs to read as (first one is used as sender) */
12
+ readAs?: string[];
13
+ }
14
+ /**
15
+ * Gets unlocked amulets owned by the sender party that can be used for transfers
16
+ *
17
+ * @param params - Parameters for getting amulets
18
+ * @returns Promise resolving to array of amulets suitable for transfer
19
+ */
20
+ export declare function getAmuletsForTransfer(params: GetAmuletsForTransferParams): Promise<AmuletForTransfer[]>;
21
+ //# sourceMappingURL=get-amulets-for-transfer.d.ts.map
@@ -0,0 +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,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,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;CACnB;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAyH9B"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAmuletsForTransfer = getAmuletsForTransfer;
4
+ /**
5
+ * Gets unlocked amulets owned by the sender party that can be used for transfers
6
+ *
7
+ * @param params - Parameters for getting amulets
8
+ * @returns Promise resolving to array of amulets suitable for transfer
9
+ */
10
+ async function getAmuletsForTransfer(params) {
11
+ const { jsonApiClient, readAs } = params;
12
+ // Query ledger for active contracts for this party (unlocked amulets)
13
+ if (!readAs?.[0]) {
14
+ return [];
15
+ }
16
+ const senderParty = readAs[0];
17
+ const filtersByParty = { [senderParty]: {} };
18
+ const activeContracts = await jsonApiClient.getActiveContracts({
19
+ filter: { filtersByParty },
20
+ verbose: true,
21
+ activeAtOffset: (await jsonApiClient.getLedgerEnd(undefined)).offset,
22
+ });
23
+ const allAmulets = [];
24
+ const contractsArr = Array.isArray(activeContracts) ? activeContracts : [];
25
+ contractsArr.forEach((ctr) => {
26
+ let payload, templateId, contractId;
27
+ console.log('ctr: ', ctr);
28
+ if (ctr.contractEntry &&
29
+ ctr.contractEntry.JsActiveContract &&
30
+ ctr.contractEntry.JsActiveContract.createdEvent) {
31
+ const created = ctr.contractEntry.JsActiveContract.createdEvent;
32
+ payload = created.createArgument;
33
+ templateId = created.templateId;
34
+ contractId = created.contractId;
35
+ }
36
+ else if (ctr.contract) {
37
+ payload = ctr.contract.payload;
38
+ templateId =
39
+ ctr.contract.contract?.template_id || ctr.contract.template_id;
40
+ contractId =
41
+ ctr.contract.contract?.contract_id || ctr.contract.contract_id;
42
+ }
43
+ console.log('payload: ', payload);
44
+ console.log('templateId: ', templateId);
45
+ console.log('contractId: ', contractId);
46
+ if (!payload || !templateId || !contractId)
47
+ return;
48
+ const isUnlockedAmulet = templateId.includes('Splice.Amulet:Amulet') &&
49
+ !templateId.includes('LockedAmulet');
50
+ if (!isUnlockedAmulet)
51
+ return;
52
+ allAmulets.push({ contractId, templateId, payload });
53
+ });
54
+ // Helper to extract owner and numeric amount from diverse amulet shapes
55
+ const extract = (amulet) => {
56
+ const payload = amulet?.payload ?? amulet?.contract?.contract?.payload ?? {};
57
+ const ownerFull = payload.owner ??
58
+ amulet.owner ??
59
+ amulet.partyId ??
60
+ amulet.party_id ??
61
+ '';
62
+ const rawAmountCandidate = payload.amount ??
63
+ amulet.amount ??
64
+ amulet.effective_amount ??
65
+ amulet.effectiveAmount ??
66
+ amulet.initialAmount ??
67
+ '0';
68
+ let rawAmount = rawAmountCandidate;
69
+ if (typeof rawAmountCandidate === 'object' &&
70
+ rawAmountCandidate !== null) {
71
+ rawAmount = rawAmountCandidate.initialAmount ?? '0';
72
+ }
73
+ const numericAmount = parseFloat(rawAmount);
74
+ return { owner: ownerFull, numericAmount };
75
+ };
76
+ // Note: Processing amulets to extract contract information
77
+ // Keep amulets owned by sender (readAs[0]) and with positive balance
78
+ const partyAmulets = allAmulets.filter(a => {
79
+ const { owner, numericAmount } = extract(a);
80
+ return numericAmount > 0 && owner === senderParty;
81
+ });
82
+ if (partyAmulets.length === 0) {
83
+ return [];
84
+ }
85
+ // Sort biggest → smallest so we pick high-value amulets first
86
+ partyAmulets.sort((a, b) => extract(b).numericAmount - extract(a).numericAmount);
87
+ // Note: partyAmulets is now sorted by amount (biggest first)
88
+ // Map to the structure expected by buildAmuletInputs
89
+ const result = partyAmulets.map(a => {
90
+ const inner = a.contract?.contract ?? {};
91
+ const payload = inner.payload ?? {};
92
+ const amtObj = payload.amount ?? {};
93
+ const intAmount = typeof amtObj === 'object' ? amtObj.initialAmount : amtObj;
94
+ return {
95
+ contractId: inner.contract_id ?? a.contractId ?? a.contract_id,
96
+ templateId: inner.template_id ??
97
+ a.templateId ??
98
+ a.template_id ??
99
+ 'splice-amulet:Splice.Amulet:Amulet',
100
+ effectiveAmount: a.effective_amount ?? intAmount ?? '0',
101
+ owner: payload.owner ?? extract(a).owner,
102
+ };
103
+ });
104
+ return result;
105
+ }
106
+ //# sourceMappingURL=get-amulets-for-transfer.js.map
@@ -0,0 +1 @@
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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"}
@@ -1,3 +1,4 @@
1
1
  export * from './pre-approve-transfers';
2
2
  export * from './transfer-to-preapproved';
3
+ export * from './get-amulets-for-transfer';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/amulet/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/amulet/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC"}
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./pre-approve-transfers"), exports);
18
18
  __exportStar(require("./transfer-to-preapproved"), exports);
19
+ __exportStar(require("./get-amulets-for-transfer"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/amulet/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,4DAA0C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/amulet/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,4DAA0C;AAC1C,6DAA2C"}
@@ -3,15 +3,8 @@ import { 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 that will manage the pre-approval (provider) */
7
- providerPartyId: string;
8
6
  /** When the pre-approval expires */
9
7
  expiresAt: Date;
10
- /** Amulet inputs to pay for the pre-approval fee */
11
- inputs: Array<{
12
- tag: 'InputAmulet';
13
- value: string;
14
- }>;
15
8
  /** Contract details for disclosed contracts (optional - will be fetched if not provided) */
16
9
  contractDetails?: {
17
10
  amuletRules?: {
@@ -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;AAKjE,MAAM,WAAW,yBAAyB;IACxC,+DAA+D;IAC/D,eAAe,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,eAAe,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,SAAS,EAAE,IAAI,CAAC;IAChB,oDAAoD;IACpD,MAAM,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,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,CA+GpC"}
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,oCAAoC;IACpC,SAAS,EAAE,IAAI,CAAC;IAChB,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,CAkIpC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.preApproveTransfers = preApproveTransfers;
4
4
  const disclosed_contracts_1 = require("../contracts/disclosed-contracts");
5
5
  const mining_rounds_1 = require("../mining/mining-rounds");
6
+ const get_amulets_for_transfer_1 = require("./get-amulets-for-transfer");
6
7
  /**
7
8
  * Creates a TransferPreapproval contract to enable pre-approved transfers for a party
8
9
  *
@@ -18,7 +19,7 @@ async function preApproveTransfers(ledgerClient, validatorClient, params) {
18
19
  validatorClient.getAmuletRules(),
19
20
  validatorClient.getDsoPartyId(),
20
21
  (0, mining_rounds_1.getCurrentMiningRoundContext)(validatorClient),
21
- validatorClient.lookupFeaturedAppRight({ partyId: params.providerPartyId })
22
+ validatorClient.lookupFeaturedAppRight({ partyId: params.receiverPartyId })
22
23
  ]);
23
24
  console.log('📊 Network information fetched:');
24
25
  console.log(` Amulet Rules Contract ID: ${amuletRules.amulet_rules.contract.contract_id}`);
@@ -39,6 +40,21 @@ async function preApproveTransfers(ledgerClient, validatorClient, params) {
39
40
  }
40
41
  const disclosedContracts = (0, disclosed_contracts_1.buildAmuletDisclosedContracts)(disclosedContractsParams);
41
42
  console.log(`📋 Built ${disclosedContracts.length} disclosed contracts`);
43
+ // Get amulet inputs for the receiver party
44
+ console.log('🔍 Fetching amulet inputs for receiver party...');
45
+ const amulets = await (0, get_amulets_for_transfer_1.getAmuletsForTransfer)({
46
+ jsonApiClient: ledgerClient,
47
+ readAs: [params.receiverPartyId]
48
+ });
49
+ if (amulets.length === 0) {
50
+ throw new Error(`No unlocked amulets found for provider party ${params.receiverPartyId}`);
51
+ }
52
+ // Convert amulets to input format
53
+ const inputs = amulets.map(amulet => ({
54
+ tag: 'InputAmulet',
55
+ value: amulet.contractId
56
+ }));
57
+ console.log(`📦 Found ${amulets.length} amulets for transfer`);
42
58
  // Create the TransferPreapproval contract using AmuletRules_CreateTransferPreapproval
43
59
  const createCommand = {
44
60
  ExerciseCommand: {
@@ -55,9 +71,9 @@ async function preApproveTransfers(ledgerClient, validatorClient, params) {
55
71
  featuredAppRight: featuredAppRight.featured_app_right?.contract_id || null
56
72
  }
57
73
  },
58
- inputs: params.inputs,
74
+ inputs,
59
75
  receiver: params.receiverPartyId,
60
- provider: params.providerPartyId,
76
+ provider: params.receiverPartyId,
61
77
  expiresAt: params.expiresAt.toISOString()
62
78
  }
63
79
  }
@@ -67,7 +83,7 @@ async function preApproveTransfers(ledgerClient, validatorClient, params) {
67
83
  const submitParams = {
68
84
  commands: [createCommand],
69
85
  commandId: `create-preapproval-${Date.now()}`,
70
- actAs: [params.providerPartyId, params.receiverPartyId],
86
+ actAs: [params.receiverPartyId],
71
87
  disclosedContracts,
72
88
  };
73
89
  console.log('🚀 Submitting command to ledger...');
@@ -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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"}
@@ -21,11 +21,6 @@ export interface TransferToPreapprovedParams {
21
21
  amount: string;
22
22
  /** Optional description for the transfer */
23
23
  description?: string;
24
- /** Amulet inputs to transfer */
25
- inputs: Array<{
26
- tag: 'InputAmulet';
27
- value: string;
28
- }>;
29
24
  }
30
25
  export interface TransferToPreapprovedResult {
31
26
  /** Contract ID of the TransferPreapproval contract used */
@@ -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;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,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;IACrB,gCAAgC;IAChC,MAAM,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtD;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,CAmGtC"}
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"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.transferToPreapproved = transferToPreapproved;
4
4
  const mining_rounds_1 = require("../mining/mining-rounds");
5
5
  const disclosed_contracts_1 = require("../contracts/disclosed-contracts");
6
+ const get_amulets_for_transfer_1 = require("./get-amulets-for-transfer");
6
7
  /**
7
8
  * Transfers coins to a party that has pre-approved transfers enabled
8
9
  *
@@ -23,6 +24,21 @@ async function transferToPreapproved(ledgerClient, validatorClient, params) {
23
24
  throw new Error('No featured app right found');
24
25
  }
25
26
  const featuredAppRightContractId = featuredAppRight.featured_app_right.contract_id;
27
+ // Get amulet inputs for the sender party
28
+ console.log('🔍 Fetching amulet inputs for sender party...');
29
+ const amulets = await (0, get_amulets_for_transfer_1.getAmuletsForTransfer)({
30
+ jsonApiClient: ledgerClient,
31
+ readAs: [params.senderPartyId]
32
+ });
33
+ if (amulets.length === 0) {
34
+ throw new Error(`No unlocked amulets found for sender party ${params.senderPartyId}`);
35
+ }
36
+ // Convert amulets to input format
37
+ const inputs = amulets.map(amulet => ({
38
+ tag: 'InputAmulet',
39
+ value: amulet.contractId
40
+ }));
41
+ console.log(`📦 Found ${amulets.length} amulets for transfer`);
26
42
  // Create the transfer command using TransferPreapproval_Send
27
43
  const transferCommand = {
28
44
  ExerciseCommand: {
@@ -39,7 +55,7 @@ async function transferToPreapproved(ledgerClient, validatorClient, params) {
39
55
  featuredAppRight: featuredAppRightContractId
40
56
  }
41
57
  },
42
- inputs: params.inputs,
58
+ inputs,
43
59
  amount: params.amount,
44
60
  sender: params.senderPartyId,
45
61
  description: params.description || null
@@ -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":"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"}
@@ -0,0 +1,23 @@
1
+ import { LedgerJsonApiClient } from '../../clients/ledger-json-api';
2
+ /**
3
+ * Options for waiting for contract archival
4
+ */
5
+ export interface WaitForContractArchivalOptions {
6
+ /** Maximum time to wait in milliseconds (default: 300000 = 5 minutes) */
7
+ maxWaitTimeMs?: number;
8
+ /** Interval between checks in milliseconds (default: 5000 = 5 seconds) */
9
+ checkIntervalMs?: number;
10
+ /** Whether to enable verbose logging */
11
+ verbose?: boolean;
12
+ }
13
+ /**
14
+ * Waits for a contract to be archived by periodically checking active contracts
15
+ *
16
+ * @param ledgerJsonApiClient - The Ledger JSON API client instance
17
+ * @param contractId - The ID of the contract to monitor
18
+ * @param options - Configuration options for the wait operation
19
+ * @returns Promise that resolves when the contract is archived or rejects on timeout
20
+ * @throws Error if the contract is not archived within the specified timeout
21
+ */
22
+ export declare function waitForContractToBeArchived(ledgerJsonApiClient: LedgerJsonApiClient, contractId: string, options?: WaitForContractArchivalOptions): Promise<void>;
23
+ //# sourceMappingURL=contract-monitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-monitor.d.ts","sourceRoot":"","sources":["../../../../src/utils/contracts/contract-monitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAsB,2BAA2B,CAC/C,mBAAmB,EAAE,mBAAmB,EACxC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,8BAAmC,GAC3C,OAAO,CAAC,IAAI,CAAC,CAiDf"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.waitForContractToBeArchived = waitForContractToBeArchived;
4
+ /**
5
+ * Waits for a contract to be archived by periodically checking active contracts
6
+ *
7
+ * @param ledgerJsonApiClient - The Ledger JSON API client instance
8
+ * @param contractId - The ID of the contract to monitor
9
+ * @param options - Configuration options for the wait operation
10
+ * @returns Promise that resolves when the contract is archived or rejects on timeout
11
+ * @throws Error if the contract is not archived within the specified timeout
12
+ */
13
+ async function waitForContractToBeArchived(ledgerJsonApiClient, contractId, options = {}) {
14
+ const { maxWaitTimeMs = 300000, // 5 minutes default
15
+ checkIntervalMs = 5000, // 5 seconds default
16
+ verbose = true } = options;
17
+ const startTime = Date.now();
18
+ if (verbose) {
19
+ console.log(`⏳ Waiting for contract ${contractId} to be archived...`);
20
+ }
21
+ while (Date.now() - startTime < maxWaitTimeMs) {
22
+ try {
23
+ // Get active contracts to check if our contract is still active
24
+ const activeContracts = await ledgerJsonApiClient.getActiveContracts({
25
+ filter: { filtersByParty: { [ledgerJsonApiClient.getPartyId()]: {} } },
26
+ verbose: true,
27
+ activeAtOffset: (await ledgerJsonApiClient.getLedgerEnd(undefined)).offset,
28
+ });
29
+ // Check if our contract is still in the active contracts list
30
+ const isStillActive = Array.isArray(activeContracts) &&
31
+ activeContracts.some((contract) => {
32
+ const createdEvent = contract?.contractEntry?.JsActiveContract?.createdEvent;
33
+ return createdEvent?.contractId === contractId;
34
+ });
35
+ if (!isStillActive) {
36
+ if (verbose) {
37
+ console.log(`✅ Contract ${contractId} has been archived successfully`);
38
+ }
39
+ return;
40
+ }
41
+ if (verbose) {
42
+ console.log(`⏳ Contract ${contractId} is still active, waiting...`);
43
+ }
44
+ await new Promise(resolve => setTimeout(resolve, checkIntervalMs));
45
+ }
46
+ catch (error) {
47
+ console.error('❌ Error checking contract status:', error instanceof Error ? error.message : 'Unknown error');
48
+ // Continue waiting even if there's an error checking status
49
+ await new Promise(resolve => setTimeout(resolve, checkIntervalMs));
50
+ }
51
+ }
52
+ throw new Error(`Timeout waiting for contract ${contractId} to be archived after ${maxWaitTimeMs / 1000} seconds`);
53
+ }
54
+ //# sourceMappingURL=contract-monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-monitor.js","sourceRoot":"","sources":["../../../../src/utils/contracts/contract-monitor.ts"],"names":[],"mappings":";;AAuBA,kEAqDC;AA9DD;;;;;;;;GAQG;AACI,KAAK,UAAU,2BAA2B,CAC/C,mBAAwC,EACxC,UAAkB,EAClB,UAA0C,EAAE;IAE5C,MAAM,EACJ,aAAa,GAAG,MAAM,EAAE,oBAAoB;IAC5C,eAAe,GAAG,IAAI,EAAE,oBAAoB;IAC5C,OAAO,GAAG,IAAI,EACf,GAAG,OAAO,CAAC;IAEZ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,0BAA0B,UAAU,oBAAoB,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,aAAa,EAAE,CAAC;QAC9C,IAAI,CAAC;YACH,gEAAgE;YAChE,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,kBAAkB,CAAC;gBACnE,MAAM,EAAE,EAAE,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;gBACtE,OAAO,EAAE,IAAI;gBACb,cAAc,EAAE,CAAC,MAAM,mBAAmB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;aAC3E,CAAC,CAAC;YAEH,8DAA8D;YAC9D,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;gBAClD,eAAe,CAAC,IAAI,CAAC,CAAC,QAAa,EAAE,EAAE;oBACrC,MAAM,YAAY,GAAG,QAAQ,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,CAAC;oBAC7E,OAAO,YAAY,EAAE,UAAU,KAAK,UAAU,CAAC;gBACjD,CAAC,CAAC,CAAC;YAEL,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,cAAc,UAAU,iCAAiC,CAAC,CAAC;gBACzE,CAAC;gBACD,OAAO;YACT,CAAC;YAED,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,GAAG,CAAC,cAAc,UAAU,8BAA8B,CAAC,CAAC;YACtE,CAAC;YACD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;QAErE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YAC7G,4DAA4D;YAC5D,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,gCAAgC,UAAU,yBAAyB,aAAa,GAAG,IAAI,UAAU,CAAC,CAAC;AACrH,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from './disclosed-contracts';
2
+ export * from './contract-monitor';
2
3
  //# 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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./disclosed-contracts"), exports);
18
+ __exportStar(require("./contract-monitor"), exports);
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/contracts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/contracts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,qDAAmC"}
@@ -21,4 +21,13 @@ export interface MiningRoundContext {
21
21
  * @throws Error if no mining round satisfies the criteria
22
22
  */
23
23
  export declare function getCurrentMiningRoundContext(validatorClient: ValidatorApiClient): Promise<MiningRoundContext>;
24
+ /**
25
+ * Gets the domain ID from the current mining round context.
26
+ * This is useful for operations that need to automatically determine the domain ID.
27
+ *
28
+ * @param validatorClient - Validator API client for getting mining round information
29
+ * @returns Promise resolving to the domain ID string
30
+ * @throws Error if no mining round satisfies the criteria
31
+ */
32
+ export declare function getCurrentMiningRoundDomainId(validatorClient: ValidatorApiClient): Promise<string>;
24
33
  //# 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"}
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,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getCurrentMiningRoundContext = getCurrentMiningRoundContext;
4
+ exports.getCurrentMiningRoundDomainId = getCurrentMiningRoundDomainId;
4
5
  /**
5
6
  * Finds the latest mining round that is currently open (\`opensAt\` is in the past)
6
7
  * and returns useful context information.
@@ -44,4 +45,16 @@ async function getCurrentMiningRoundContext(validatorClient) {
44
45
  issuingMiningRounds,
45
46
  };
46
47
  }
48
+ /**
49
+ * Gets the domain ID from the current mining round context.
50
+ * This is useful for operations that need to automatically determine the domain ID.
51
+ *
52
+ * @param validatorClient - Validator API client for getting mining round information
53
+ * @returns Promise resolving to the domain ID string
54
+ * @throws Error if no mining round satisfies the criteria
55
+ */
56
+ async function getCurrentMiningRoundDomainId(validatorClient) {
57
+ const miningRoundContext = await getCurrentMiningRoundContext(validatorClient);
58
+ return miningRoundContext.openMiningRoundContract.synchronizerId;
59
+ }
47
60
  //# 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;AAnDD;;;;;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"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fairmint/canton-node-sdk",
3
- "version": "0.0.57",
3
+ "version": "0.0.59",
4
4
  "description": "Canton Node SDK",
5
5
  "main": "build/src/index.js",
6
6
  "types": "build/src/index.d.ts",