PHP WebShell
Текущая директория: /opt/BitGoJS/modules/utxo-lib/src/bitgo
Просмотр файла: transactionAmounts.ts
import { UtxoPsbt } from './UtxoPsbt';
import { createTransactionFromBuffer } from './transaction';
export function getTransactionAmountsFromPsbt(psbt: UtxoPsbt): {
inputCount: number;
outputCount: number;
inputAmount: bigint;
outputAmount: bigint;
fee: bigint;
} {
const inputCount = psbt.data.inputs.length;
const outputCount = psbt.data.outputs.length;
const txInputs = psbt.txInputs;
const txOutputs = psbt.txOutputs;
const inputAmount = psbt.data.inputs.reduce((acc, input, inputIndex) => {
if (input.witnessUtxo) {
return acc + BigInt(input.witnessUtxo.value);
} else if (input.nonWitnessUtxo) {
const tx = createTransactionFromBuffer(input.nonWitnessUtxo, psbt.network, { amountType: 'bigint' });
return acc + tx.outs[txInputs[inputIndex].index].value;
} else {
throw new Error('missing witnessUtxo and nonWitnessUtxo');
}
}, BigInt(0));
const outputAmount = psbt.data.outputs.reduce(
(acc, output, outputIndex) => acc + txOutputs[outputIndex].value,
BigInt(0)
);
const fee = inputAmount - outputAmount;
return {
inputCount,
outputCount,
inputAmount,
outputAmount,
fee,
};
}
Выполнить команду
Для локальной разработки. Не используйте в интернете!