PHP WebShell

Текущая директория: /opt/BitGoJS/modules/utxo-bin/test

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

import * as assert from 'assert';

import * as utxolib from '@bitgo/utxo-lib';

import {
  formatDescriptorAddress,
  formatFixedScriptAddress,
  generateDescriptorAddress,
  generateFixedScriptAddress,
  parseIndexRange,
} from '../src/generateAddress';

import { getKeyTriple } from './bip32.util';

describe('generateAddresses', function () {
  const [userKey, backupKey, bitgoKey] = getKeyTriple('generateAddress').map((k) => k.neutered().toBase58());
  // addr${chain}${index}
  const [addr00, addr10, addr01, addr11] = [
    '38FHxcU7KY4E2nDEezEVcKWGvHy9717ehF',
    '35Qg1UqVWSJdtF1ysfz9h3KRGdk9uH8iYx',
    '3ARnshsLXE9QfJemQdoKL2kp6TRqGohLDz',
    '3QxKW93NN8CQrKaNqkDsAXPyxPsrxfTYME',
  ];
  it('should generate addresses', function () {
    const lines = [];
    for (const l of generateFixedScriptAddress({
      userKey,
      backupKey,
      bitgoKey,
      index: parseIndexRange(['0-1']),
      format: '%a',
      chain: [0, 1],
    })) {
      lines.push(formatFixedScriptAddress(l, '%a'));
    }

    assert.strictEqual(lines.length, 4);
    assert.deepStrictEqual(lines, [addr00, addr10, addr01, addr11]);
  });

  it('should generate descriptor addresses', function () {
    // only generate addresses for chain 0
    const xpubs = [userKey, backupKey, bitgoKey].map((x) => x + '/0/0/0/*');
    const lines = [];
    for (const l of generateDescriptorAddress({
      network: utxolib.networks.bitcoin,
      descriptor: `sh(multi(2,${xpubs.join(',')}))`,
      index: parseIndexRange(['0-1']),
      format: '%d',
    })) {
      lines.push(formatDescriptorAddress(l, '%a'));
    }
    assert.deepStrictEqual(lines, [addr00, addr01]);
  });
});

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


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