P2A address format decoding

This commit is contained in:
natsoni 2025-01-08 15:25:19 +01:00
parent 74fa3c7eb1
commit 5b331c144b
No known key found for this signature in database
GPG key ID: C65917583181743B

View file

@ -988,7 +988,7 @@ function scriptPubKeyToAddress(scriptPubKey: string, network: string): { address
}
// anchor
if (scriptPubKey === '51024e73') {
return { address: 'bc1pfeessrawgf', type: 'anchor' };
return { address: p2a(network), type: 'anchor' };
}
// op_return
if (/^6a/.test(scriptPubKey)) {
@ -1048,6 +1048,15 @@ function p2tr(pubKeyHash: string, network: string): string {
return bech32Address;
}
function p2a(network: string): string {
const pubkeyHashArray = hexStringToUint8Array('4e73');
const hrp = ['testnet', 'testnet4', 'signet'].includes(network) ? 'tb' : 'bc';
const version = 1;
const words = [version].concat(toWords(pubkeyHashArray));
const bech32Address = bech32Encode(hrp, words, 0x2bc830a3);
return bech32Address;
}
// base58 encoding
function base58Encode(data: Uint8Array): string {
const BASE58_ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";