@spanning/utils
Version:
Javascript utility functions for the Spanning Network
36 lines • 1.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getShortLocalAddress = exports.parseSpanningAddress = exports.getShortSpanningAddress = exports.getSpanningAddress = exports.spanningAddressLength = void 0;
const ethers_1 = require("ethers");
exports.spanningAddressLength = 32;
function getSpanningAddress(chainId, account) {
account = account.length == 42 ? account.slice(2) : account;
const spanningAddress = `0x${chainId.toString(16)}0000000000000000${account}`;
return ethers_1.ethers.utils.hexZeroPad(spanningAddress, exports.spanningAddressLength);
}
exports.getSpanningAddress = getSpanningAddress;
function getShortSpanningAddress(chainId, account) {
const accountContents = account.length == 42 ? account.slice(2) : account;
const accountStart = accountContents.substring(0, 4);
const accountEnd = accountContents.substring(accountContents.length - 4);
const chainIdPadded = ethers_1.ethers.utils.hexZeroPad(`0x${chainId.toString(16)}`, 4);
const spanningAddress = `${chainIdPadded}...${accountStart}...${accountEnd}`;
return spanningAddress;
}
exports.getShortSpanningAddress = getShortSpanningAddress;
function parseSpanningAddress(spanningAddress) {
return {
chainId: parseInt("0x" + spanningAddress.slice(2, 10), 16),
localAddress: "0x" + spanningAddress.slice(26),
};
}
exports.parseSpanningAddress = parseSpanningAddress;
function getShortLocalAddress(account) {
const accountContents = account.length == 42 ? account.slice(2) : account;
const accountStart = accountContents.substring(0, 8);
const accountEnd = accountContents.substring(accountContents.length - 8);
const spanningAddress = `${accountStart}...${accountEnd}`;
return spanningAddress;
}
exports.getShortLocalAddress = getShortLocalAddress;
//# sourceMappingURL=spanningAddress.js.map