@fairmint/canton-node-sdk 0.0.71 → 0.0.72
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.
|
@@ -30,12 +30,18 @@ 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
|
+
* Gets the current mining round number by fetching the latest open mining round
|
|
35
|
+
* @param validatorClient Validator API client to fetch round information
|
|
36
|
+
* @returns Promise resolving to the current round number
|
|
37
|
+
* @throws Error if no open mining rounds are found
|
|
38
|
+
*/
|
|
39
|
+
export declare function getCurrentRoundNumber(validatorClient: ValidatorApiClient): Promise<number>;
|
|
33
40
|
/**
|
|
34
41
|
* Wait until the mining round has actually changed, confirming the change
|
|
35
42
|
* @param validatorClient Validator API client to fetch round information
|
|
36
|
-
* @param
|
|
37
|
-
* @param maxWaitTime Maximum time to wait in milliseconds (default: 10 minutes)
|
|
43
|
+
* @param maxWaitTime Maximum time to wait in milliseconds (default: 20 minutes)
|
|
38
44
|
* @returns Promise that resolves when the round has changed
|
|
39
45
|
*/
|
|
40
|
-
export declare function waitForRoundChange(validatorClient: ValidatorApiClient,
|
|
46
|
+
export declare function waitForRoundChange(validatorClient: ValidatorApiClient, maxWaitTime?: number): Promise<void>;
|
|
41
47
|
//# 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,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;
|
|
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;AA0C1E;;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;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,eAAe,EAAE,kBAAkB,GAClC,OAAO,CAAC,MAAM,CAAC,CAuBjB;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,eAAe,EAAE,kBAAkB,EACnC,WAAW,GAAE,MAAuB,GACnC,OAAO,CAAC,IAAI,CAAC,CAmDf"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getCurrentMiningRoundContext = getCurrentMiningRoundContext;
|
|
4
4
|
exports.getCurrentMiningRoundDomainId = getCurrentMiningRoundDomainId;
|
|
5
|
+
exports.getCurrentRoundNumber = getCurrentRoundNumber;
|
|
5
6
|
exports.waitForRoundChange = waitForRoundChange;
|
|
6
7
|
/**
|
|
7
8
|
* Sleep utility function
|
|
@@ -9,19 +10,6 @@ exports.waitForRoundChange = waitForRoundChange;
|
|
|
9
10
|
function sleep(ms) {
|
|
10
11
|
return new Promise(resolve => setTimeout(resolve, ms));
|
|
11
12
|
}
|
|
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
13
|
/**
|
|
26
14
|
* Extract round number from a mining round object
|
|
27
15
|
*/
|
|
@@ -32,12 +20,26 @@ function getRoundNumber(miningRound) {
|
|
|
32
20
|
miningRound.roundNumber ||
|
|
33
21
|
miningRound.contract?.payload?.roundNumber ||
|
|
34
22
|
miningRound.contract?.payload?.round_number ||
|
|
23
|
+
parseInt(miningRound.contract?.payload?.round?.number || '0') ||
|
|
35
24
|
0);
|
|
36
25
|
}
|
|
37
26
|
catch {
|
|
38
27
|
return 0;
|
|
39
28
|
}
|
|
40
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Find the latest mining round from a list of open mining rounds
|
|
32
|
+
*/
|
|
33
|
+
function findLatestMiningRound(openMiningRounds) {
|
|
34
|
+
if (openMiningRounds.length === 0)
|
|
35
|
+
return null;
|
|
36
|
+
// Sort by round number descending and return the first (latest) one
|
|
37
|
+
return openMiningRounds.sort((a, b) => {
|
|
38
|
+
const roundA = getRoundNumber(a);
|
|
39
|
+
const roundB = getRoundNumber(b);
|
|
40
|
+
return roundB - roundA;
|
|
41
|
+
})[0];
|
|
42
|
+
}
|
|
41
43
|
/**
|
|
42
44
|
* Finds the latest mining round that is currently open (\`opensAt\` is in the past)
|
|
43
45
|
* and returns useful context information.
|
|
@@ -93,17 +95,41 @@ async function getCurrentMiningRoundDomainId(validatorClient) {
|
|
|
93
95
|
const miningRoundContext = await getCurrentMiningRoundContext(validatorClient);
|
|
94
96
|
return miningRoundContext.openMiningRoundContract.synchronizerId;
|
|
95
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* Gets the current mining round number by fetching the latest open mining round
|
|
100
|
+
* @param validatorClient Validator API client to fetch round information
|
|
101
|
+
* @returns Promise resolving to the current round number
|
|
102
|
+
* @throws Error if no open mining rounds are found
|
|
103
|
+
*/
|
|
104
|
+
async function getCurrentRoundNumber(validatorClient) {
|
|
105
|
+
try {
|
|
106
|
+
const miningRoundsResponse = await validatorClient.getOpenAndIssuingMiningRounds();
|
|
107
|
+
const currentOpenMiningRounds = miningRoundsResponse.open_mining_rounds;
|
|
108
|
+
if (currentOpenMiningRounds.length === 0) {
|
|
109
|
+
throw new Error('No open mining rounds found');
|
|
110
|
+
}
|
|
111
|
+
const latestRound = findLatestMiningRound(currentOpenMiningRounds);
|
|
112
|
+
if (!latestRound) {
|
|
113
|
+
throw new Error('No valid mining rounds found');
|
|
114
|
+
}
|
|
115
|
+
return getRoundNumber(latestRound);
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
console.error('❌ Failed to get current round number:', error instanceof Error ? error.message : 'Unknown error');
|
|
119
|
+
throw error;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
96
122
|
/**
|
|
97
123
|
* Wait until the mining round has actually changed, confirming the change
|
|
98
124
|
* @param validatorClient Validator API client to fetch round information
|
|
99
|
-
* @param
|
|
100
|
-
* @param maxWaitTime Maximum time to wait in milliseconds (default: 10 minutes)
|
|
125
|
+
* @param maxWaitTime Maximum time to wait in milliseconds (default: 20 minutes)
|
|
101
126
|
* @returns Promise that resolves when the round has changed
|
|
102
127
|
*/
|
|
103
|
-
async function waitForRoundChange(validatorClient,
|
|
128
|
+
async function waitForRoundChange(validatorClient, maxWaitTime = 20 * 60 * 1000 // 20 minutes default
|
|
104
129
|
) {
|
|
105
130
|
const startTime = Date.now();
|
|
106
131
|
const checkInterval = 20000; // Check every 20 seconds
|
|
132
|
+
const initialRoundNumber = await getCurrentRoundNumber(validatorClient);
|
|
107
133
|
console.log(`🔄 Waiting for mining round to change from ${initialRoundNumber}...`);
|
|
108
134
|
while (Date.now() - startTime < maxWaitTime) {
|
|
109
135
|
try {
|
|
@@ -134,6 +160,7 @@ async function waitForRoundChange(validatorClient, initialRoundNumber, maxWaitTi
|
|
|
134
160
|
await sleep(checkInterval);
|
|
135
161
|
}
|
|
136
162
|
}
|
|
163
|
+
console.log('❌ Timeout exceeded');
|
|
137
164
|
throw new Error(`Timeout waiting for mining round to change from ${initialRoundNumber} after ${maxWaitTime / 1000} seconds`);
|
|
138
165
|
}
|
|
139
166
|
//# 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":";;AA8DA,oEA6CC;AAUD,sEAKC;AAQD,sDAyBC;AAQD,gDAsDC;AArND;;GAEG;AACH,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,WAAgB;IACtC,IAAI,CAAC;QACH,0DAA0D;QAC1D,OAAO,CACL,WAAW,CAAC,YAAY;YACxB,WAAW,CAAC,WAAW;YACtB,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAsB;YACrD,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAuB;YACvD,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,GAAG,CAAC;YAC7D,CAAC,CACF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,gBAAuB;IACpD,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/C,oEAAoE;IACpE,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACjC,OAAO,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AAcD;;;;;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,GAAsB;QACjD,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;AAED;;;;;GAKG;AACI,KAAK,UAAU,qBAAqB,CACzC,eAAmC;IAEnC,IAAI,CAAC;QACH,MAAM,oBAAoB,GACxB,MAAM,eAAe,CAAC,6BAA6B,EAAE,CAAC;QACxD,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,kBAAkB,CAAC;QAExE,IAAI,uBAAuB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,WAAW,GAAG,qBAAqB,CAAC,uBAAuB,CAAC,CAAC;QACnE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,cAAc,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,uCAAuC,EACvC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CACzD,CAAC;QACF,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,kBAAkB,CACtC,eAAmC,EACnC,cAAsB,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,qBAAqB;;IAE1D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,yBAAyB;IAEtD,MAAM,kBAAkB,GAAG,MAAM,qBAAqB,CAAC,eAAe,CAAC,CAAC;IAExE,OAAO,CAAC,GAAG,CACT,8CAA8C,kBAAkB,KAAK,CACtE,CAAC;IAEF,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,WAAW,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,oBAAoB,GACxB,MAAM,eAAe,CAAC,6BAA6B,EAAE,CAAC;YACxD,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,kBAAkB,CAAC;YAExE,IAAI,uBAAuB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzC,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;gBAC1D,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC3B,SAAS;YACX,CAAC;YAED,MAAM,WAAW,GAAG,qBAAqB,CAAC,uBAAuB,CAAC,CAAC;YACnE,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;gBAC3D,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC3B,SAAS;YACX,CAAC;YAED,MAAM,kBAAkB,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;YACvD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAE1B,IAAI,kBAAkB,GAAG,kBAAkB,EAAE,CAAC;gBAC5C,OAAO,CAAC,GAAG,CACT,mCAAmC,kBAAkB,OAAO,kBAAkB,EAAE,CACjF,CAAC;gBACF,OAAO;YACT,CAAC;YAED,iDAAiD;YACjD,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;YACzD,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,MAAM,IAAI,KAAK,CACb,mDAAmD,kBAAkB,UAAU,WAAW,GAAG,IAAI,UAAU,CAC5G,CAAC;AACJ,CAAC"}
|