@pharosnames/address-encoder
Version:
Encodes and decodes address formats for various cryptocurrencies with Pharos network support
31 lines • 998 B
JavaScript
import { equalBytes } from "@noble/curves/abstract/utils";
import { base58CheckDecode, base58CheckEncode } from "../utils/base58.js";
const name = "zen";
const coinType = 121;
const validPrefixes = [
new Uint8Array([0x20, 0x89]),
new Uint8Array([0x1c, 0xb8]),
new Uint8Array([0x20, 0x96]),
new Uint8Array([0x1c, 0xbd]),
new Uint8Array([0x16, 0x9a]),
];
export const encodeZenAddress = (source) => {
const prefix = source.slice(0, 2);
if (!validPrefixes.some((x) => equalBytes(x, prefix)))
throw new Error("Invalid prefix");
return base58CheckEncode(source);
};
export const decodeZenAddress = (source) => {
const decoded = base58CheckDecode(source);
const prefix = decoded.slice(0, 2);
if (!validPrefixes.some((x) => equalBytes(x, prefix)))
throw new Error("Invalid prefix");
return decoded;
};
export const zen = {
name,
coinType,
encode: encodeZenAddress,
decode: decodeZenAddress,
};
//# sourceMappingURL=zen.js.map