@hashgraph/cryptography
Version:
Cryptographic utilities and primitives for the Hiero SDK
47 lines (45 loc) • 1.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.arrayEqual = arrayEqual;
exports.arrayStartsWith = arrayStartsWith;
/**
* @param {Uint8Array} array1
* @param {Uint8Array} array2
* @returns {boolean}
*/
function arrayEqual(array1, array2) {
if (array1 === array2) {
return true;
}
if (array1.byteLength !== array2.byteLength) {
return false;
}
const view1 = new DataView(array1.buffer, array1.byteOffset, array1.byteLength);
const view2 = new DataView(array2.buffer, array2.byteOffset, array2.byteLength);
let i = array1.byteLength;
while (i--) {
if (view1.getUint8(i) !== view2.getUint8(i)) {
return false;
}
}
return true;
}
/**
* @param {Uint8Array} array
* @param {Uint8Array} arrayPrefix
* @returns {boolean}
*/
function arrayStartsWith(array, arrayPrefix) {
if (array.byteLength < arrayPrefix.byteLength) {
return false;
}
let i = arrayPrefix.byteLength;
while (i--) {
if (array[i] !== arrayPrefix[i]) {
return false;
}
}
return true;
}