83 lines
2.7 KiB
JavaScript
83 lines
2.7 KiB
JavaScript
"use strict";
|
|
/**
|
|
* Title: GRIDS Basic Page Script
|
|
* Description: Page Script for /grids-basic.html
|
|
* Author: Peter Harpending <peterharpending@qpq.swiss>
|
|
* Date: 2025-12-29
|
|
* Last-Updated: 2025-12-29
|
|
*
|
|
* @module
|
|
*/
|
|
main();
|
|
/**
|
|
* Runs on page load
|
|
*/
|
|
async function main() {
|
|
let n_input = document.getElementById('grids-n');
|
|
let r_input = document.getElementById('grids-r');
|
|
let a_input = document.getElementById('grids-a');
|
|
let p_input = document.getElementById('grids-p');
|
|
let submit_btn = document.getElementById('grids-submit');
|
|
let grids_url_elt = document.getElementById('grids-url');
|
|
let grids_png_elt = document.getElementById('grids-png');
|
|
// Page initialization
|
|
submit_btn.addEventListener('click', async function (e) {
|
|
await on_submit(n_input, r_input, a_input, p_input, grids_url_elt, grids_png_elt);
|
|
});
|
|
// enable buttons
|
|
submit_btn.disabled = false;
|
|
}
|
|
async function on_submit(n_input, r_input, a_input, p_input, grids_url_elt, grids_png_elt) {
|
|
// pull out values
|
|
let network_id = n_input.value;
|
|
let recipient = r_input.value;
|
|
let amount = parseInt(a_input.value);
|
|
let payload = p_input.value;
|
|
let result = await grids_request(network_id, recipient, amount, payload);
|
|
// show url field and png
|
|
if (result.ok) {
|
|
let url = result.result.url;
|
|
let png_base64 = result.result.png_base64;
|
|
let src_prefix = 'data:image/png;base64,';
|
|
let src = src_prefix + png_base64;
|
|
grids_url_elt.innerText = url;
|
|
grids_png_elt.src = src;
|
|
grids_url_elt.hidden = false;
|
|
grids_png_elt.hidden = false;
|
|
}
|
|
else {
|
|
alert('ERROR: ' + result.error);
|
|
}
|
|
}
|
|
/**
|
|
* gets the grids url
|
|
*/
|
|
async function grids_request(net_id, recipient, amount, payload) {
|
|
// format for network transmission
|
|
let obj = { 'network_id': net_id,
|
|
'recipient': recipient,
|
|
'amount': amount,
|
|
'payload': payload };
|
|
let obj_text = JSON.stringify(obj, undefined, 4);
|
|
let url = '/grids-spend';
|
|
let req_options = { method: 'POST',
|
|
headers: { 'content-type': 'application/json' },
|
|
body: obj_text };
|
|
let result = { ok: false,
|
|
error: 'IT DO BE LIKE THAT MISTA STANCIL' };
|
|
try {
|
|
let response = await fetch(url, req_options);
|
|
if (response.ok)
|
|
result = await response.json();
|
|
else {
|
|
console.log('bad http response:', response);
|
|
result = { ok: false, error: 'BAD HTTP RESPONSE' };
|
|
}
|
|
}
|
|
catch (x) {
|
|
console.log('network error:', x);
|
|
result = { ok: false, error: 'NETWORK ERROR' };
|
|
}
|
|
return result;
|
|
}
|
|
//# sourceMappingURL=grids-basic.js.map
|