40 lines
897 B
TypeScript
Raw Normal View History

2022-02-04 14:12:00 +11:00
import { keccak256, Message } from "js-sha3";
2022-01-13 11:33:26 +11:00
export function hexToBuf(hex: string | Buffer | Uint8Array): Buffer {
2022-02-04 14:12:00 +11:00
if (typeof hex === "string") {
return Buffer.from(hex.replace(/^0x/i, ""), "hex");
} else {
return Buffer.from(hex);
}
}
2021-07-09 15:57:47 +10:00
export function bufToHex(buf: Uint8Array | Buffer | ArrayBuffer): string {
const _buf = Buffer.from(buf);
2022-02-04 14:12:00 +11:00
return _buf.toString("hex");
}
export function equalByteArrays(
a: Uint8Array | Buffer | string,
b: Uint8Array | Buffer | string
): boolean {
let aBuf: Buffer;
let bBuf: Buffer;
2022-02-04 14:12:00 +11:00
if (typeof a === "string") {
aBuf = hexToBuf(a);
} else {
aBuf = Buffer.from(a);
}
2022-02-04 14:12:00 +11:00
if (typeof b === "string") {
bBuf = hexToBuf(b);
} else {
bBuf = Buffer.from(b);
}
return aBuf.compare(bBuf) === 0;
}
2022-01-13 11:33:26 +11:00
export function keccak256Buf(message: Message): Buffer {
return Buffer.from(keccak256.arrayBuffer(message));
}