PHP WebShell

Текущая директория: /opt/BitGoJS/modules/sdk-core/test/unit/bitgo/utils

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

import assert from 'assert';

import { getUtxoCoinScriptTypes2Of3 } from '../../../../src';
import * as utxolib from '@bitgo/utxo-lib';

describe('getUtxoCoinScriptTypes', function () {
  it('success', function () {
    const fn = (coin: string, arr: utxolib.bitgo.outputScripts.ScriptType2Of3[]) => {
      const scriptTypes = getUtxoCoinScriptTypes2Of3(coin);
      return arr.find((v) => scriptTypes.includes(v));
    };
    assert.ok(fn('btc', ['p2sh', 'p2shP2wsh', 'p2wsh', 'p2tr', 'p2trMusig2']));
    assert.ok(fn('ltc', ['p2sh', 'p2shP2wsh', 'p2wsh']));
    assert.ok(fn('doge', ['p2sh']));
  });

  it('fail for invalid coin name', function () {
    assert.throws(
      () => getUtxoCoinScriptTypes2Of3('dummy'),
      (e: any) => e.message === `coin 'dummy' is not defined`
    );
  });

  it('fail for non-utxo coin name', function () {
    assert.throws(
      () => getUtxoCoinScriptTypes2Of3('eth'),
      (e: any) => e.message === 'coin eth is not a utxo coin'
    );
  });
});

describe('getUtxoCoinScriptTypesForWalletType', function () {
  it('success', function () {
    const fn = (coin: string, walletType: 'hot' | 'cold', arr: utxolib.bitgo.outputScripts.ScriptType2Of3[]) => {
      const scriptTypes = getUtxoCoinScriptTypes2Of3(coin);
      return arr.find((v) => scriptTypes.includes(v));
    };
    assert.ok(fn('btc', 'hot', ['p2sh', 'p2shP2wsh', 'p2wsh', 'p2tr', 'p2trMusig2']));
    assert.ok(fn('btc', 'cold', ['p2sh', 'p2shP2wsh', 'p2wsh', 'p2tr']));
    assert.ok(fn('ltc', 'hot', ['p2sh', 'p2shP2wsh', 'p2wsh']));
    assert.ok(fn('ltc', 'cold', ['p2sh', 'p2shP2wsh', 'p2wsh']));
    assert.ok(fn('doge', 'hot', ['p2sh']));
    assert.ok(fn('doge', 'cold', ['p2sh']));
  });

  it('fail for invalid coin name', function () {
    assert.throws(
      () => getUtxoCoinScriptTypes2Of3('dummy'),
      (e: any) => e.message === `coin 'dummy' is not defined`
    );
  });

  it('fail for non-utxo coin name', function () {
    assert.throws(
      () => getUtxoCoinScriptTypes2Of3('eth'),
      (e: any) => e.message === 'coin eth is not a utxo coin'
    );
  });
});

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


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