PHP WebShell
Текущая директория: /opt/BitGoJS/modules/utxo-core/src/descriptor
Просмотр файла: Output.ts
import assert from 'assert';
import { Descriptor } from '@bitgo/wasm-miniscript';
import { getFixedOutputSum, MaxOutput, Output, PrevOutput } from '../Output';
import { DescriptorMap } from './DescriptorMap';
import { getDescriptorAtIndexCheckScript } from './derive';
export type WithDescriptor<T> = T & {
descriptor: Descriptor;
};
export type WithOptDescriptor<T> = T & {
descriptor?: Descriptor;
};
export function isInternalOutput<T extends object>(output: T | WithDescriptor<T>): output is WithDescriptor<T> {
return 'descriptor' in output && output.descriptor !== undefined;
}
export function isExternalOutput<T extends object>(output: T | WithDescriptor<T>): output is T {
return !isInternalOutput(output);
}
/**
* @return the sum of the external outputs that are not 'max'
* @param outputs
*/
export function getExternalFixedAmount(outputs: WithOptDescriptor<Output | MaxOutput>[]): bigint {
return getFixedOutputSum(outputs.filter(isExternalOutput));
}
export type DescriptorWalletOutput = PrevOutput & {
descriptorName: string;
descriptorIndex: number | undefined;
};
export type DerivedDescriptorWalletOutput = WithDescriptor<PrevOutput>;
export function toDerivedDescriptorWalletOutput(
output: DescriptorWalletOutput,
descriptorMap: DescriptorMap
): DerivedDescriptorWalletOutput {
const descriptor = descriptorMap.get(output.descriptorName);
if (!descriptor) {
throw new Error(`Descriptor not found: ${output.descriptorName}`);
}
assert(descriptor instanceof Descriptor);
const descriptorAtIndex = getDescriptorAtIndexCheckScript(
descriptor,
output.descriptorIndex,
output.witnessUtxo.script,
output.descriptorName
);
return {
hash: output.hash,
index: output.index,
witnessUtxo: output.witnessUtxo,
descriptor: descriptorAtIndex,
};
}
Выполнить команду
Для локальной разработки. Не используйте в интернете!