jr: show balances in popup window (might work?)

This commit is contained in:
2024-03-20 01:09:55 -06:00
parent 46263f7c86
commit 89a11bfe48
2 changed files with 90 additions and 3 deletions
+13 -1
View File
@@ -36,7 +36,19 @@
.account-inactive {
background: var(--b4);
color: var(--g4);
color: var(--b7);
}
.balance-found {
color: var(--g5);
}
.balance-not-found {
color: var(--b7);
}
a {
color: var(--g5);
}
</style>
</head>
+77 -2
View File
@@ -209,6 +209,36 @@ pi_repop
// add
addr_li.appendChild(addr_a);
// balance
let bal_li = document.createElement('li');
bal_li.innerHTML += 'Balance: ';
// old school async/await
pi_balance(this_rkp.akstr).then(
function(maybe_balance) {
// if there is a balance, show it in green
if (maybe_balance.ok)
{
let greentext = document.createElement('span');
greentext.classList.add('balance-found');
// @ts-ignore fuck off i know what i'm doing
greentext.innerHTML = '' + maybe_balance.balance;
bal_li.appendChild(greentext);
}
// if not, show reason and make it red
else
{
let redtext = document.createElement('span');
redtext.classList.add('balance-not-found');
// @ts-ignore fuck off i know what i'm doing
redtext.innerHTML = '' + maybe_balance.reason;
bal_li.appendChild(redtext);
}
}
);
// add delete button
let del_li = document.createElement('li');
@@ -246,10 +276,11 @@ pi_repop
// add everything inside-out
rkp_ul.appendChild(addr_li);
rkp_ul.appendChild(name_li);
rkp_ul.appendChild(del_li);
rkp_ul.appendChild(addr_li);
rkp_ul.appendChild(bal_li);
rkp_ul.appendChild(gphrase_li);
rkp_ul.appendChild(del_li);
this_li.appendChild(rkp_ul);
@@ -280,3 +311,47 @@ pi_repop
}
}
}
/**
* get account balance of ak_... str
*/
async function
pi_balance
(akstr : string)
: Promise< {ok : true,
balance : number}
| {ok : false,
reason : string}
>
{
let endpoint_init_url = 'https://demonet.qpq.swiss/v2/';
let this_endpoint = endpoint_init_url + '/accounts/' + akstr;
let input_params = {pubkey: akstr};
// fetch: https://developer.mozilla.org/en-US/docs/Web/API/fetch
let response = await fetch(this_endpoint);
// 200 = ok
// 400 = pubkey malformed
// 404 = account dne
switch (response.status) {
case 200:
// unstringify the body
let return_data = response.json();
// get the balance
// @ts-ignore talking to foreign api
let balance = return_data.balance;
return {ok : true,
balance : balance};
// pubkey malformed
case 400:
return {ok : false,
reason : 'Pubkey Malformed'};
// account dne
case 404:
return {ok : false,
reason : 'Account does not exist yet'};
// wtf
default:
return {ok : false,
reason : 'Unexpected response from node'};
}
}