PHP WebShell
Текущая директория: /opt/BitGoJS/modules/utxo-bin/src/commands/cmdPsbt
Просмотр файла: cmdFinalize.ts
import { Argv, CommandModule } from 'yargs';
import { withPsbt, WithPsbtOptions, withPsbtOptions } from './withPsbt';
import * as utxolib from '@bitgo/utxo-lib';
import { toUtxoPsbt, toWrappedPsbt } from './wrap';
type ArgsFinalizePsbt = WithPsbtOptions & {
extract: boolean;
};
export function finalizeWithWrappedPsbt(psbt: utxolib.bitgo.UtxoPsbt | utxolib.Psbt): void {
const wrappedPsbt = toWrappedPsbt(psbt);
wrappedPsbt.finalize();
const unwrappedPsbt = toUtxoPsbt(wrappedPsbt);
for (let i = 0; i < psbt.data.inputs.length; i++) {
psbt.data.inputs[i] = unwrappedPsbt.data.inputs[i];
}
}
export const cmdFinalize: CommandModule<unknown, ArgsFinalizePsbt> = {
command: 'finalize [psbt]',
describe: 'finalize psbt',
builder(b: Argv<unknown>): Argv<ArgsFinalizePsbt> {
return b.options(withPsbtOptions).option('extract', { type: 'boolean', default: false });
},
async handler(argv) {
await withPsbt(argv, async function (psbt) {
finalizeWithWrappedPsbt(psbt);
if (argv.extract) {
return psbt.extractTransaction().toBuffer();
}
return psbt;
});
},
};
export const cmdExtract: CommandModule<unknown, WithPsbtOptions> = {
command: 'extract [psbt]',
describe: 'extract transaction from psbt',
builder(b: Argv<unknown>): Argv<WithPsbtOptions> {
return b.options(withPsbtOptions);
},
async handler(argv) {
await withPsbt(argv, async function (psbt) {
return psbt.extractTransaction().toBuffer();
});
},
};
Выполнить команду
Для локальной разработки. Не используйте в интернете!