PHP WebShell

Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@bitgo-forks/avalanchejs/src/utils

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

import { bech32 } from '@scure/base';

const addressSep = '-';

// parse takes in an address string and returns an array of
// [chain ID alias, bech32 HRP, address bytes].
export function parse(addrStr: string): [string, string, Uint8Array] {
  const parts = addrStr.split(addressSep);
  if (parts.length < 2) {
    throw new Error(`Invalid address: ${addrStr}`);
  }

  const chainID = parts[0];
  const rawAddr = parts[1];

  const [hrp, addr] = parseBech32(rawAddr);

  return [chainID, hrp, addr];
}

export function bech32ToBytes(addrStr: string): Uint8Array {
  return parse(addrStr)[2];
}

// format takes in a chain ID alias, bech32 HRP, and byte slice to produce a
// string for an address.
export function format(chainIDAlias: string, hrp: string, addr: Uint8Array) {
  const addrStr = formatBech32(hrp, addr);
  return `${chainIDAlias}${addressSep}${addrStr}`;
}

// parseBech32 takes a bech32 address as input and returns the HRP and data
// section of a bech32 address.
export function parseBech32(addrStr: string): [string, Uint8Array] {
  const { prefix, words } = bech32.decode(addrStr);
  return [prefix, bech32.fromWords(words)];
}

// formatBech32 takes an address's bytes as input and returns a bech32 address.
export function formatBech32(hrp: string, payload: Uint8Array) {
  const words = bech32.toWords(payload);
  return bech32.encode(hrp, words);
}

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


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