@pharosnames/address-encoder
Version:
Encodes and decodes address formats for various cryptocurrencies with Pharos network support
36 lines • 1.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.zen = exports.decodeZenAddress = exports.encodeZenAddress = void 0;
const utils_1 = require("@noble/curves/abstract/utils");
const base58_js_1 = require("../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]),
];
const encodeZenAddress = (source) => {
const prefix = source.slice(0, 2);
if (!validPrefixes.some((x) => (0, utils_1.equalBytes)(x, prefix)))
throw new Error("Invalid prefix");
return (0, base58_js_1.base58CheckEncode)(source);
};
exports.encodeZenAddress = encodeZenAddress;
const decodeZenAddress = (source) => {
const decoded = (0, base58_js_1.base58CheckDecode)(source);
const prefix = decoded.slice(0, 2);
if (!validPrefixes.some((x) => (0, utils_1.equalBytes)(x, prefix)))
throw new Error("Invalid prefix");
return decoded;
};
exports.decodeZenAddress = decodeZenAddress;
exports.zen = {
name,
coinType,
encode: exports.encodeZenAddress,
decode: exports.decodeZenAddress,
};
//# sourceMappingURL=zen.js.map