Skip to content

Commit 945a272

Browse files
OttoAllmendingerllm-git
andcommitted
feat(abstract-utxo): make pubs parameter required for custom signing function
Ensure pubs parameter is always required when using custom signing functions to maintain consistency and prevent errors. Update function signature in the interface and implementation to reflect this requirement. Issue: BTC-3018 Co-authored-by: llm-git <llm-git@ttll.de>
1 parent 4a7d819 commit 945a272

3 files changed

Lines changed: 8 additions & 4 deletions

File tree

modules/abstract-utxo/src/abstractUtxoCoin.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -801,13 +801,13 @@ export abstract class AbstractUtxoCoin
801801
/**
802802
* Sign a transaction with a custom signing function. Example use case is express external signer
803803
* @param customSigningFunction custom signing function that returns a single signed transaction
804-
* @param signTransactionParams parameters for custom signing function. Includes txPrebuild and pubs (for legacy tx only).
804+
* @param signTransactionParams parameters for custom signing function. Includes txPrebuild and pubs
805805
*
806806
* @returns signed transaction as hex string
807807
*/
808808
async signWithCustomSigningFunction<TNumber extends number | bigint>(
809809
customSigningFunction: UtxoCustomSigningFunction<TNumber>,
810-
signTransactionParams: { txPrebuild: TransactionPrebuild<TNumber>; pubs?: string[] }
810+
signTransactionParams: { txPrebuild: TransactionPrebuild<TNumber>; pubs: string[] }
811811
): Promise<SignedTransaction> {
812812
const txHex = signTransactionParams.txPrebuild.txHex;
813813
assert(txHex, 'missing txHex parameter');

modules/sdk-core/src/bitgo/baseCoin/iBaseCoin.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -613,7 +613,7 @@ export interface IBaseCoin {
613613
presignTransaction(params: PresignTransactionOptions): Promise<PresignTransactionOptions>;
614614
signWithCustomSigningFunction?(
615615
customSigningFunction: CustomSigningFunction,
616-
signTransactionParams: { txPrebuild: TransactionPrebuild; pubs?: string[] }
616+
signTransactionParams: { txPrebuild: TransactionPrebuild; pubs: string[] }
617617
): Promise<SignedTransaction>;
618618
newWalletObject(walletParams: any): IWallet;
619619
feeEstimate(params: FeeEstimateOptions): Promise<any>;

modules/sdk-core/src/bitgo/wallet/wallet.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2194,7 +2194,11 @@ export class Wallet implements IWallet {
21942194

21952195
if (_.isFunction(params.customSigningFunction)) {
21962196
if (typeof this.baseCoin.signWithCustomSigningFunction === 'function') {
2197-
return this.baseCoin.signWithCustomSigningFunction(params.customSigningFunction, signTransactionParams);
2197+
assert(pubs, 'pubs are required for custom signing');
2198+
return this.baseCoin.signWithCustomSigningFunction(params.customSigningFunction, {
2199+
...signTransactionParams,
2200+
pubs,
2201+
});
21982202
}
21992203
const keys = await this.baseCoin.keychains().getKeysForSigning({ wallet: this });
22002204
const signTransactionParamsWithSeed = {

0 commit comments

Comments
 (0)