Skip to content

Commit e352d0d

Browse files
refactor(abstract-utxo): simplify entrypoint for explainTx
Issue: BTC-1450
1 parent 11bd484 commit e352d0d

File tree

2 files changed

+19
-13
lines changed

2 files changed

+19
-13
lines changed

modules/abstract-utxo/src/abstractUtxoCoin.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@ import { signAndVerifyPsbt, signAndVerifyWalletTransaction } from './sign';
7676
import { supportedCrossChainRecoveries } from './config';
7777
import {
7878
assertValidTransactionRecipient,
79-
explainPsbt,
8079
explainTx,
8180
fromExtendedAddressFormat,
8281
getPsbtTxInputs,
@@ -1535,12 +1534,7 @@ export abstract class AbstractUtxoCoin extends BaseCoin {
15351534
if (typeof txHex !== 'string' || !txHex.match(/^([a-f0-9]{2})+$/i)) {
15361535
throw new Error('invalid transaction hex, must be a valid hex string');
15371536
}
1538-
const tx = this.decodeTransaction(txHex);
1539-
if (tx instanceof bitgo.UtxoPsbt) {
1540-
return explainPsbt(tx, params, this.network);
1541-
} else {
1542-
return explainTx(tx, params, this.network);
1543-
}
1537+
return explainTx(this.decodeTransaction(txHex), params, this.network);
15441538
}
15451539

15461540
/**

modules/abstract-utxo/src/transaction/explainTransaction.ts

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ function getTxInputSignaturesCount<TNumber extends number | bigint>(
135135
* Decompose a raw psbt into useful information, such as the total amounts,
136136
* change amounts, and transaction outputs.
137137
*/
138-
export function explainPsbt<TNumber extends number | bigint, Tx extends bitgo.UtxoTransaction<bigint>>(
138+
function explainPsbt<TNumber extends number | bigint, Tx extends bitgo.UtxoTransaction<bigint>>(
139139
psbt: bitgo.UtxoPsbt<Tx>,
140140
params: ExplainTransactionOptions<TNumber>,
141141
network: utxolib.Network
@@ -212,11 +212,7 @@ export function explainPsbt<TNumber extends number | bigint, Tx extends bitgo.Ut
212212
} as TransactionExplanation;
213213
}
214214

215-
/**
216-
* Decompose a raw transaction into useful information, such as the total amounts,
217-
* change amounts, and transaction outputs.
218-
*/
219-
export function explainTx<TNumber extends number | bigint>(
215+
function explainLegacyTx<TNumber extends number | bigint>(
220216
tx: bitgo.UtxoTransaction<TNumber>,
221217
params: ExplainTransactionOptions<TNumber>,
222218
network: utxolib.Network
@@ -229,3 +225,19 @@ export function explainTx<TNumber extends number | bigint>(
229225
signatures: inputSignaturesCount.reduce((prev, curr) => (curr > prev ? curr : prev), 0),
230226
} as TransactionExplanation;
231227
}
228+
229+
/**
230+
* Decompose a raw transaction into useful information, such as the total amounts,
231+
* change amounts, and transaction outputs.
232+
*/
233+
export function explainTx<TNumber extends number | bigint>(
234+
tx: bitgo.UtxoTransaction<TNumber> | bitgo.UtxoPsbt,
235+
params: ExplainTransactionOptions<TNumber>,
236+
network: utxolib.Network
237+
): TransactionExplanation {
238+
if (tx instanceof bitgo.UtxoPsbt) {
239+
return explainPsbt(tx, params, network);
240+
} else {
241+
return explainLegacyTx(tx, params, network);
242+
}
243+
}

0 commit comments

Comments
 (0)