UNPKG

charms-js

Version:

TypeScript SDK for decoding Bitcoin transactions containing Charms data

24 lines (23 loc) 880 B
import { Address, OutScript } from '@scure/btc-signer'; /** * Extracts a Bitcoin address from an output script. * Supports all standard output types including P2PKH, P2SH, P2WPKH, P2WSH, and P2TR (Taproot). * * @param scriptBuf - The scriptPubKey as a Buffer * @param network - Target network ('mainnet' or 'testnet4') * @returns The decoded address string, or empty string if decoding fails */ export function extractAddress(scriptBuf, network = 'testnet4') { try { const scriptBytes = new Uint8Array(scriptBuf); const decoded = OutScript.decode(scriptBytes); // @scure/btc-signer uses undefined for mainnet, 'testnet' for testnet const address = network === 'mainnet' ? Address().encode(decoded) : Address('testnet').encode(decoded); return address; } catch (error) { return ''; } }