@yubing744/rooch-sdk
Version:
34 lines (33 loc) • 1.14 kB
JavaScript
function toHexString(byteArray) {
const hexArray = Array.from(byteArray).map((byte) => {
const roundedByte = Math.floor(byte);
return (roundedByte < 0 ? 256 + roundedByte : roundedByte).toString(16).padStart(2, "0");
});
return `0x${hexArray.join("")}`;
}
function fromHexString(hex, padding) {
let hexWithoutPrefix = hex.startsWith("0x") ? hex.substring(2) : hex;
if (padding && hexWithoutPrefix.length < padding) {
hexWithoutPrefix = padLeft(hexWithoutPrefix, padding);
} else if (!padding && hexWithoutPrefix.length % 2 !== 0) {
hexWithoutPrefix = `0${hexWithoutPrefix}`;
}
const byteArray = new Uint8Array(hexWithoutPrefix.length / 2);
for (let i = 0; i < hexWithoutPrefix.length; i += 2) {
byteArray[i / 2] = parseInt(hexWithoutPrefix.substring(i, i + 2), 16);
}
return byteArray;
}
function padLeft(str, chars, sign = "0") {
return new Array(chars - str.length + 1).join(sign) + str;
}
function padRight(str, chars, sign = "0") {
return str + new Array(chars - str.length + 1).join(sign);
}
export {
fromHexString,
padLeft,
padRight,
toHexString
};
//# sourceMappingURL=hex.js.map