PHP WebShell
Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@bitgo-forks/avalanchejs/src/utils
Просмотр файла: builderUtils.ts
import { TransferableInput } from '../serializable/avax';
import type { Utxo } from '../serializable/avax/utxo';
import { addressesFromBytes } from './addressesFromBytes';
import { matchOwners } from './matchOwners';
import { isTransferOut } from './typeGuards';
type GetImportedInputsFromUtxosOutput = {
importedInputs: TransferableInput[];
inputUTXOs: Utxo[];
importedAmounts: Record<string, bigint>;
};
export const getImportedInputsFromUtxos = (
utxos: Utxo[],
fromAddressesBytes: Uint8Array[],
minIssuanceTime: bigint,
): GetImportedInputsFromUtxosOutput => {
const fromAddresses = addressesFromBytes(fromAddressesBytes);
const outputs: GetImportedInputsFromUtxosOutput = {
importedInputs: [],
inputUTXOs: [],
importedAmounts: {},
};
return utxos.reduce((agg, utxo): GetImportedInputsFromUtxosOutput => {
const { importedInputs, inputUTXOs, importedAmounts } = agg;
const out = utxo.output;
if (!isTransferOut(out)) return agg;
const sigData = matchOwners(
out.outputOwners,
fromAddresses,
minIssuanceTime,
);
if (!sigData) return agg;
importedInputs.push(
TransferableInput.fromUtxoAndSigindicies(utxo, sigData.sigIndicies),
);
inputUTXOs.push(utxo);
importedAmounts[utxo.getAssetId()] =
(importedAmounts[utxo.getAssetId()] ?? 0n) + out.amount();
return agg;
}, outputs);
};
Выполнить команду
Для локальной разработки. Не используйте в интернете!