function toHexString(byteArray) {
return Array.from(byteArray, function (byte) {
return ('0' + (byte & 0xFF).toString(16)).slice(-2);
}).join('')
}
function hexToBytes(hexString) {
var result = [];
while (hexString.length >= 2) {
result.push(parseInt(hexString.substring(0, 2), 16));
hexString = hexString.substring(2, hexString.length);
}
return result;
}
function insert_rnd_bundle() {
Rust.bp7.then(function (bp7) {
var b = bp7.rnd_bundle_now();
var bid = bp7.bid_from_bundle(b);
console.log('inserting random bundle: ', bid);
var cbor = bp7.encode_to_cbor(b)
document.getElementById("hexout").textContent = toHexString(cbor);
document.getElementById("hexout").onclick = function () {
window.open("http://cbor.me/?bytes=" + toHexString(cbor));
};
document.getElementById("outlen").textContent = cbor.length;
});
}
function show_msg(buf) {
Rust.bp7.then(function (bp7) {
var b = bp7.decode_from_cbor(buf)
var bid = bp7.bid_from_bundle(b);
var payload = bp7.payload_from_bundle(b);
var sender_eid = bp7.sender_from_bundle(b);
var recepient_eid = bp7.recipient_from_bundle(b);
var timestamp = bp7.timestamp_from_bundle(b);
var msg_str = String.fromCharCode.apply(null, payload)
alert("From: " + sender_eid + "\nTo: " + recepient_eid + "\nCreation Time: " + timestamp + "\nMessage: \n" + msg_str);
});
}
function copyTextToClipboard(text) {
var textArea = document.createElement("textarea");
textArea.style.position = 'fixed';
textArea.style.top = 0;
textArea.style.left = 0;
textArea.style.width = '2em';
textArea.style.height = '2em';
textArea.style.padding = 0;
textArea.style.border = 'none';
textArea.style.outline = 'none';
textArea.style.boxShadow = 'none';
textArea.style.background = 'transparent';
textArea.value = text;
document.body.appendChild(textArea);
textArea.focus();
textArea.select();
try {
var successful = document.execCommand('copy');
var msg = successful ? 'successful' : 'unsuccessful';
console.log('Copying text command was ' + msg);
} catch (err) {
console.log('Oops, unable to copy');
}
document.body.removeChild(textArea);
}
function send_msg() {
console.log("send new message");
var sender_eid = document.getElementById("sender").value;;
var receiver_eid = document.getElementById("receiver").value;
var msg = document.getElementById("msg").value;
console.log(sender_eid + " " + receiver_eid + " " + msg);
Rust.bp7.then(function (bp7) {
var b = bp7.new_std_bundle_now(sender_eid, receiver_eid, msg);
if (bp7.valid_bundle(b)) {
var bid = bp7.bid_from_bundle(b);
var cbor = bp7.encode_to_cbor(b)
document.getElementById("hexout").textContent = toHexString(cbor);
document.getElementById("hexout").onclick = function () {
window.open("http://cbor.me/?bytes=" + toHexString(cbor));
};
document.getElementById("outlen").textContent = cbor.length;
document.getElementById("copy").onclick = function () {
copyTextToClipboard(document.getElementById("hexout").textContent);
};
} else {
console.log("fatal error creating new bundle!");
}
});
}