PHP WebShell

Текущая директория: /opt/BitGoJS/modules/abstract-utxo/src/descriptor

Просмотр файла: descriptorWallet.ts

import * as t from 'io-ts';
import { IWallet, WalletCoinSpecific } from '@bitgo/sdk-core';
import { DescriptorMap } from '@bitgo/utxo-core/descriptor';

import { UtxoWallet, UtxoWalletData } from '../wallet';

import { NamedDescriptor } from './NamedDescriptor';
import { DescriptorValidationPolicy, KeyTriple, toDescriptorMapValidate } from './validatePolicy';

type DescriptorWalletCoinSpecific = {
  descriptors: NamedDescriptor[];
};

function isDescriptorWalletCoinSpecific(obj: unknown): obj is DescriptorWalletCoinSpecific {
  return (
    obj !== null && typeof obj === 'object' && 'descriptors' in obj && t.array(NamedDescriptor).is(obj.descriptors)
  );
}

type DescriptorWalletData = UtxoWalletData & {
  coinSpecific: DescriptorWalletCoinSpecific;
};

export interface IDescriptorWallet extends UtxoWallet {
  coinSpecific(): WalletCoinSpecific & DescriptorWalletCoinSpecific;
}

export function isDescriptorWalletData(obj: UtxoWalletData): obj is DescriptorWalletData {
  return isDescriptorWalletCoinSpecific(obj.coinSpecific);
}

export function isDescriptorWallet(obj: IWallet): obj is IDescriptorWallet {
  return isDescriptorWalletCoinSpecific(obj.coinSpecific());
}

export function getDescriptorMapFromWallet(
  wallet: IDescriptorWallet,
  walletKeys: KeyTriple,
  policy: DescriptorValidationPolicy
): DescriptorMap {
  return toDescriptorMapValidate(wallet.coinSpecific().descriptors, walletKeys, policy);
}

Выполнить команду


Для локальной разработки. Не используйте в интернете!