Skip to content

Commit 3b7dedf

Browse files
OttoAllmendingerllm-git
andcommitted
perf(abstract-utxo): optimize test setup to reduce test discovery time
Precalculate keys instead of recalculating them for each test run, reducing test discovery time from 10s to 6s. Issue: BG-62732 Co-authored-by: llm-git <[email protected]>
1 parent 1a3cd22 commit 3b7dedf

File tree

1 file changed

+19
-14
lines changed

1 file changed

+19
-14
lines changed

modules/abstract-utxo/test/unit/recovery/backupKeyRecovery.ts

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,19 @@ function getKeysForFullSignedRecovery(
8686
return getNamedKeys([userKey, backupKey, bitgoKey.neutered()], password);
8787
}
8888

89+
const walletKeys = getDefaultWalletKeys();
90+
const keysUnsignedSweep = getKeysForUnsignedSweep(walletKeys.triple, walletPassphrase);
91+
const keysKeyRecoveryService = getKeysForKeyRecoveryService(walletKeys.triple, walletPassphrase);
92+
const keysFullSignedRecovery = getKeysForFullSignedRecovery(walletKeys.triple, walletPassphrase);
93+
94+
const exoticUserKeyPath = '99/99';
95+
const exoticWalletKeys = new utxolib.bitgo.RootWalletKeys(keychains, [
96+
exoticUserKeyPath,
97+
utxolib.bitgo.RootWalletKeys.defaultPrefix,
98+
utxolib.bitgo.RootWalletKeys.defaultPrefix,
99+
]);
100+
const keysFullSignedRecoveryExotic = getKeysForFullSignedRecovery(exoticWalletKeys.triple, walletPassphrase);
101+
89102
function getScriptTypes2Of3() {
90103
return outputScripts.scriptTypes2Of3;
91104
}
@@ -278,14 +291,13 @@ function run(
278291
}
279292

280293
utxoCoins.forEach((coin) => {
281-
const walletKeys = getDefaultWalletKeys();
282294
getScriptTypes2Of3().forEach((scriptType) => {
283295
run(
284296
coin,
285297
scriptType,
286298
walletKeys,
287299
{
288-
keys: getKeysForUnsignedSweep(walletKeys.triple, walletPassphrase),
300+
keys: keysUnsignedSweep,
289301
hasUserSignature: false,
290302
hasBackupSignature: false,
291303
},
@@ -301,7 +313,7 @@ utxoCoins.forEach((coin) => {
301313
scriptType,
302314
walletKeys,
303315
{
304-
keys: getKeysForKeyRecoveryService(walletKeys.triple, walletPassphrase),
316+
keys: keysKeyRecoveryService,
305317
krsProvider: krsProvider,
306318
hasUserSignature: true,
307319
hasBackupSignature: false,
@@ -316,7 +328,7 @@ utxoCoins.forEach((coin) => {
316328
scriptType,
317329
walletKeys,
318330
{
319-
keys: getKeysForFullSignedRecovery(walletKeys.triple, walletPassphrase),
331+
keys: keysFullSignedRecovery,
320332
hasUserSignature: true,
321333
hasBackupSignature: true,
322334
},
@@ -328,7 +340,7 @@ utxoCoins.forEach((coin) => {
328340
scriptType,
329341
walletKeys,
330342
{
331-
keys: getKeysForFullSignedRecovery(walletKeys.triple, walletPassphrase),
343+
keys: keysFullSignedRecovery,
332344
hasUserSignature: true,
333345
hasBackupSignature: true,
334346
feeRate: 2,
@@ -337,20 +349,13 @@ utxoCoins.forEach((coin) => {
337349
);
338350

339351
{
340-
const userKeyPath = '99/99';
341-
const exoticWalletKeys = new utxolib.bitgo.RootWalletKeys(keychains, [
342-
userKeyPath,
343-
utxolib.bitgo.RootWalletKeys.defaultPrefix,
344-
utxolib.bitgo.RootWalletKeys.defaultPrefix,
345-
]);
346-
347352
run(
348353
coin,
349354
scriptType,
350355
exoticWalletKeys,
351356
{
352-
keys: getKeysForFullSignedRecovery(exoticWalletKeys.triple, walletPassphrase),
353-
userKeyPath,
357+
keys: keysFullSignedRecoveryExotic,
358+
userKeyPath: exoticUserKeyPath,
354359
hasUserSignature: true,
355360
hasBackupSignature: true,
356361
},

0 commit comments

Comments
 (0)