UNPKG

@zlattice/lattice-js

Version:

Lattice blockchain TypeScript SDK with dual module support (CJS + ESM)

53 lines 1.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Address = void 0; const base58_1 = require("../../utils/base58.js"); const constants_1 = require("../constants.js"); // This is a address class. Can be converted to eth address or zltc address class Address { constructor(address) { this.address = address; } /** * @description convert eth address to zltc address, * @returns {string} zltc address */ toZLTC() { if (!this.address) { return constants_1.HEX_PREFIX; } if (this.address.startsWith(constants_1.ADDRESS_TITLE)) { return this.address; } if (this.address.startsWith(constants_1.HEX_PREFIX)) { const base58 = new base58_1.Base58Impl(); const converted = base58.checkEncode(Buffer.from(this.address.substring(2), "hex"), constants_1.ADDRESS_VERSION); return `${constants_1.ADDRESS_TITLE}_${converted}`; } return this.address; } /** * @description convert zltc address to eth address, * @returns {string} eth address */ toETH() { if (!this.address) { return constants_1.ADDRESS_TITLE; } const splitArr = this.address.split("_"); if (splitArr.length !== 2) { throw new Error(`invalid address ${this.address}`); } if (splitArr[0] !== constants_1.ADDRESS_TITLE) { throw new Error(`invalid address ${this.address}`); } const base58 = new base58_1.Base58Impl(); const { result: dec, version } = base58.checkDecode(splitArr[1]); if (version !== constants_1.ADDRESS_VERSION) { throw new Error(`invalid address ${this.address}`); } return `${constants_1.HEX_PREFIX}${dec.toString("hex")}`; } } exports.Address = Address; //# sourceMappingURL=address.js.map