function bigIntToBigEndianBytesLoopParseInt(value) {
const hex = value.toString(16).padStart(16, '0');
const bytes = new Uint8Array(8);
for (let i = 0; i < 8; i++) {
bytes[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16);
}
return bytes;
}
function bigIntToBigEndianBytesLoopConstructor(value) {
const hex = value.toString(16).padStart(16, '0');
const bytes = new Uint8Array(8);
for (let i = 0; i < 8; i++) {
bytes[i] = Number(hex.slice(i * 2, i * 2 + 2), 16);
}
return bytes;
}
function bigIntToBigEndianBytesDataView(value) {
const buf = new ArrayBuffer(8);
const view = new DataView(buf);
view.setBigUint64(0, value);
return new Uint8Array(buf);
}
function bigIntToUint8ArrayDirectConstructor(value) {
const result = new Uint8Array(8);
result[7] = Number(value & 0xffn);
result[6] = Number((value >> 8n) & 0xffn);
result[5] = Number((value >> 16n) & 0xffn);
result[4] = Number((value >> 24n) & 0xffn );
result[3] = Number((value >> 32n) & 0xffn);
result[2] = Number((value >> 40n) & 0xffn);
result[1] = Number((value >> 48n) & 0xffn);
result[0] = Number((value >> 56n) & 0xffn);
return result;
}
function bigIntToUint8ArrayDirectConstructor2(value) {
const result = new Uint8Array(8);
const low = Number(value & 0xffffffffn);
const high = Number((value >> 32n) & 0xffffffffn);
result[7] = low & 0xff;
result[6] = (low >> 8) & 0xff;
result[5] = (low >> 16) & 0xff;
result[4] = (low >> 24) & 0xff;
result[3] = high & 0xff;
result[2] = (high >> 8) & 0xff;
result[1] = (high >> 16) & 0xff;
result[0] = (high >> 24) & 0xff;
return result;
}
function bigIntToUint8ArrayDirectParseInt(value) {
const result = new Uint8Array(8);
result[7] = parseInt(value & 0xffn);
result[6] = parseInt((value >> 8n) & 0xffn);
result[5] = parseInt((value >> 16n) & 0xffn);
result[4] = parseInt((value >> 24n) & 0xffn );
result[3] = parseInt((value >> 32n) & 0xffn);
result[2] = parseInt((value >> 40n) & 0xffn);
result[1] = parseInt((value >> 48n) & 0xffn);
result[0] = parseInt((value >> 56n) & 0xffn);
return result;
}