@pharosnames/address-encoder
Version:
Encodes and decodes address formats for various cryptocurrencies with Pharos network support
29 lines • 971 B
JavaScript
import { bech32 } from "@scure/base";
const name = "hns";
const coinType = 5353;
const hrp = "hs";
const versionBytes = new Uint8Array([0x00]);
export const encodeHnsAddress = (source) => {
if (source.length !== 20)
throw new Error("Unrecognised address format");
return bech32.encode(hrp, [versionBytes[0], ...bech32.toWords(source)]);
};
export const decodeHnsAddress = (source) => {
const { prefix, words } = bech32.decode(source);
if (prefix !== hrp)
throw new Error("Unrecognised address format");
const version = words[0];
const bytes = bech32.fromWords(words.slice(1));
if (version !== versionBytes[0])
throw new Error("Unrecognised address format");
if (bytes.length !== 20)
throw new Error("Unrecognised address format");
return new Uint8Array(bytes);
};
export const hns = {
name,
coinType,
encode: encodeHnsAddress,
decode: decodeHnsAddress,
};
//# sourceMappingURL=hns.js.map