mirror of
https://github.com/Qortal/qortal-ui.git
synced 2025-02-11 17:55:51 +00:00
74 lines
1.8 KiB
JavaScript
74 lines
1.8 KiB
JavaScript
const utils = {
|
|
int32ToBytes(word) {
|
|
var byteArray = []
|
|
for (var b = 0; b < 32; b += 8) {
|
|
byteArray.push((word >>> (24 - b % 32)) & 0xFF)
|
|
}
|
|
return byteArray
|
|
},
|
|
|
|
stringtoUTF8Array(message) {
|
|
if (typeof message === 'string') {
|
|
var s = unescape(encodeURIComponent(message)) // UTF-8
|
|
message = new Uint8Array(s.length)
|
|
for (var i = 0; i < s.length; i++) {
|
|
message[i] = s.charCodeAt(i) & 0xff
|
|
}
|
|
}
|
|
return message
|
|
},
|
|
// ...buffers then buffers.foreach and append to buffer1
|
|
appendBuffer(buffer1, buffer2) {
|
|
buffer1 = new Uint8Array(buffer1)
|
|
buffer2 = new Uint8Array(buffer2)
|
|
let tmp = new Uint8Array(buffer1.byteLength + buffer2.byteLength)
|
|
tmp.set(buffer1, 0)
|
|
tmp.set(buffer2, buffer1.byteLength)
|
|
return tmp
|
|
},
|
|
|
|
int64ToBytes(int64) {
|
|
// we want to represent the input as a 8-bytes array
|
|
var byteArray = [0, 0, 0, 0, 0, 0, 0, 0]
|
|
|
|
for (var index = 0; index < byteArray.length; index++) {
|
|
var byte = int64 & 0xff
|
|
byteArray[byteArray.length - index - 1] = byte
|
|
int64 = (int64 - byte) / 256
|
|
}
|
|
|
|
return byteArray
|
|
},
|
|
|
|
hexToBytes(hexString) {
|
|
return new Uint8Array(hexString.match(/.{1,2}/g).map(byte => parseInt(byte, 16)))
|
|
},
|
|
|
|
stringToHex(bytes) {
|
|
return bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '')
|
|
},
|
|
|
|
equal(buf1, buf2) {
|
|
if (buf1.byteLength != buf2.byteLength) return false
|
|
var dv1 = new Uint8Array(buf1)
|
|
var dv2 = new Uint8Array(buf2)
|
|
for (var i = 0; i != buf1.byteLength; i++) {
|
|
if (dv1[i] != dv2[i]) return false
|
|
}
|
|
return true
|
|
},
|
|
|
|
bytesToHex(byteArray) {
|
|
var _byteArrayToHex = []
|
|
|
|
for (var index = 0; index < byteArray.length; index++) {
|
|
_byteArrayToHex.push((byteArray[index] >>> 4).toString(16))
|
|
_byteArrayToHex.push((byteArray[index] & 15).toString(16));
|
|
}
|
|
|
|
return _byteArrayToHex.join("")
|
|
}
|
|
}
|
|
|
|
export default utils
|