PHP WebShell

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

Просмотр файла: create-address-btg.ts

/**
 *
 * Create various types of bitcoin gold addresses. utxolib derives from bitcoinjs-lib.
 *
 */

{
  const utxolib = require('@bitgo/utxo-lib');

  // Generate Random Keypair

  const keyPair = utxolib.ECPair.makeRandom();

  console.log('Public Key: ', keyPair.publicKey.toString('hex'));
  console.log('Private Key: ', keyPair.toWIF());

  // Legacy (P2PKH)

  const { address: legacyAddress } = utxolib.payments.p2pkh({
    pubkey: keyPair.publicKey,
  });

  const legacyDecoded = utxolib.address.fromBase58Check(legacyAddress);
  const legacyBTGAddress = utxolib.address.toBase58Check(legacyDecoded['hash'], _getVersion(legacyDecoded['version']));

  console.log('legacyBTGAddress', legacyBTGAddress);

  // Native SegWit (Bech32)

  const { address: nativeSegWit } = utxolib.payments.p2sh({
    redeem: utxolib.payments.p2wpkh({ pubkey: keyPair.publicKey }),
  });

  const nativeDecoded = utxolib.address.fromBase58Check(nativeSegWit);
  const nativeBTGAddress = utxolib.address.toBase58Check(legacyDecoded['hash'], _getVersion(nativeDecoded['version']));

  console.log('nativeBTGAddress', nativeBTGAddress);

  // -----------------------------

  function _getVersion(version) {
    switch (version) {
      case 0:
        console.log('BTG p2pkh address: ');
        return 38;
      case 38:
        console.log('BTC p2pkh address: ');
        return 0;
      case 5:
        console.log('BTG p2sh address: ');
        return 23;
      case 23:
        console.log('BTC p2sh address: ');
        return 5;
      default:
        throw 'unknown';
    }
  }
}

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


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