@pharosnames/address-encoder
Version:
Encodes and decodes address formats for various cryptocurrencies with Pharos network support
36 lines • 1.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.hbar = exports.decodeHbarAddress = exports.encodeHbarAddress = void 0;
const name = "hbar";
const coinType = 3030;
const encodeHbarAddress = (source) => {
if (source.length !== 20)
throw new Error("Unrecognised address format");
const view = new DataView(source.buffer, 0, 20);
const shard = view.getUint32(0);
const realm = view.getBigUint64(4);
const account = view.getBigUint64(12, false);
return [shard, realm, account].join(".");
};
exports.encodeHbarAddress = encodeHbarAddress;
const decodeHbarAddress = (source) => {
const view = new DataView(new ArrayBuffer(20), 0, 20);
const components = source.split(".");
if (components.length !== 3)
throw new Error("Unrecognised address format");
const shard = Number(components[0]);
const realm = BigInt(components[1]);
const account = BigInt(components[2]);
view.setUint32(0, shard);
view.setBigUint64(4, realm);
view.setBigUint64(12, account);
return new Uint8Array(view.buffer, 0, 20);
};
exports.decodeHbarAddress = decodeHbarAddress;
exports.hbar = {
name,
coinType,
encode: exports.encodeHbarAddress,
decode: exports.decodeHbarAddress,
};
//# sourceMappingURL=hbar.js.map