Skip to content

Commit b619d16

Browse files
committed
fix(mbe): forward walletPubs in consolidateUnspents and accelerate
consolidateUnspents and accelerate were failing for UTXO coins with "pubs are required for fixed script signing" after the SDK bump added assert(params.pubs) in abstract-utxo BitGoPsbt signing path. Update makeCustomSigningFunction to accept and forward walletPubs to awmClient.signMultisig. Update handleConsolidateUnspents and handleAccelerate to fetch all 3 keychains (user, backup, bitgo) and pass them as walletPubs, matching the sendMany flow. Ticket: WCN-447 Session-Id: 79c78e55-7d60-4e54-b656-da465c33eb23 Task-Id: 7abc45de-23d0-4914-8dad-885882f82710
1 parent 020ec0d commit b619d16

3 files changed

Lines changed: 27 additions & 2 deletions

File tree

src/masterBitgoExpress/handlers/handleAccelerate.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export async function handleAccelerate(
1313
const walletId = req.params.walletId;
1414
const coin = req.params.coin;
1515

16-
const { wallet, signingKeychain } = await getWalletAndSigningKeychain({
16+
const { baseCoin, wallet, signingKeychain } = await getWalletAndSigningKeychain({
1717
bitgo,
1818
coin,
1919
walletId,
@@ -22,12 +22,23 @@ export async function handleAccelerate(
2222
KeyIndices,
2323
});
2424

25+
const [userKeychain, backupKeychain, bitgoKeychain] = await Promise.all([
26+
baseCoin.keychains().get({ id: wallet.keyIds()[KeyIndices.USER] }),
27+
baseCoin.keychains().get({ id: wallet.keyIds()[KeyIndices.BACKUP] }),
28+
baseCoin.keychains().get({ id: wallet.keyIds()[KeyIndices.BITGO] }),
29+
]);
30+
const walletPubs =
31+
userKeychain?.pub && backupKeychain?.pub && bitgoKeychain?.pub
32+
? [userKeychain.pub, backupKeychain.pub, bitgoKeychain.pub]
33+
: undefined;
34+
2535
try {
2636
// Create custom signing function that delegates to EBE
2737
const customSigningFunction = makeCustomSigningFunction({
2838
awmClient,
2939
source: params.source,
3040
pub: signingKeychain.pub!,
41+
walletPubs,
3142
});
3243

3344
// Prepare acceleration parameters

src/masterBitgoExpress/handlers/handleConsolidateUnspents.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export async function handleConsolidateUnspents(
1313
const walletId = req.params.walletId;
1414
const coin = req.params.coin;
1515

16-
const { wallet, signingKeychain } = await getWalletAndSigningKeychain({
16+
const { baseCoin, wallet, signingKeychain } = await getWalletAndSigningKeychain({
1717
bitgo,
1818
coin,
1919
walletId,
@@ -22,12 +22,23 @@ export async function handleConsolidateUnspents(
2222
KeyIndices,
2323
});
2424

25+
const [userKeychain, backupKeychain, bitgoKeychain] = await Promise.all([
26+
baseCoin.keychains().get({ id: wallet.keyIds()[KeyIndices.USER] }),
27+
baseCoin.keychains().get({ id: wallet.keyIds()[KeyIndices.BACKUP] }),
28+
baseCoin.keychains().get({ id: wallet.keyIds()[KeyIndices.BITGO] }),
29+
]);
30+
const walletPubs =
31+
userKeychain?.pub && backupKeychain?.pub && bitgoKeychain?.pub
32+
? [userKeychain.pub, backupKeychain.pub, bitgoKeychain.pub]
33+
: undefined;
34+
2535
try {
2636
// Create custom signing function that delegates to EBE
2737
const customSigningFunction = makeCustomSigningFunction({
2838
awmClient,
2939
source: params.source,
3040
pub: signingKeychain.pub!,
41+
walletPubs,
3142
});
3243

3344
// Prepare consolidation parameters

src/masterBitgoExpress/handlers/utils/utils.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,16 +65,19 @@ export function makeCustomSigningFunction({
6565
awmClient,
6666
source,
6767
pub,
68+
walletPubs,
6869
}: {
6970
awmClient: AdvancedWalletManagerClient;
7071
source: 'user' | 'backup';
7172
pub: string;
73+
walletPubs?: string[];
7274
}): CustomSigningFunction {
7375
return async function customSigningFunction(signParams: any) {
7476
return awmClient.signMultisig({
7577
txPrebuild: signParams.txPrebuild,
7678
source,
7779
pub,
80+
walletPubs,
7881
});
7982
};
8083
}

0 commit comments

Comments
 (0)