76 lines
2.3 KiB
JavaScript
76 lines
2.3 KiB
JavaScript
'use strict';
|
|
|
|
//chrome.browserAction.setBadgeBackgroundColor({color: "#000"})
|
|
chrome.browserAction.setBadgeText({text: "42"})
|
|
chrome.browserAction.setTitle({title: "Taler: 42 EUR"})
|
|
|
|
function test_emscripten ()
|
|
{
|
|
var cur_time = TWRALLgetCurrentTime();
|
|
var fancy_time = TWRgetFancyTime(cur_time);
|
|
console.log('current time: '+ fancy_time);
|
|
}
|
|
|
|
test_emscripten();
|
|
|
|
DB.open(function () {
|
|
console.log ("DB: ready");
|
|
});
|
|
|
|
let DONE = 4;
|
|
|
|
chrome.runtime.onMessage.addListener(
|
|
function (req, sender, onresponse) {
|
|
console.log("Message: " + req.type +
|
|
(sender.tab
|
|
? " from a content script: "+ sender.tab.url
|
|
: " from the extension"));
|
|
switch (req.type)
|
|
{
|
|
case "db-get-wallet":
|
|
DB.wallet_get (onresponse);
|
|
break;
|
|
|
|
case "db-list-transactions":
|
|
DB.transaction_list (onresponse);
|
|
break;
|
|
|
|
case "db-list-reserves":
|
|
DB.reserve_list (onresponse);
|
|
break;
|
|
case "confirm-reserve":
|
|
console.log('detail: ' + JSON.stringify(req.detail));
|
|
let keypair = createEddsaKeyPair();
|
|
let form = new FormData();
|
|
form.append(req.detail.field_amount, req.detail.amount_str);
|
|
form.append(req.detail.field_reserve_pub, keypair.pub);
|
|
form.append(req.detail.field_mint, req.detail.mint);
|
|
// XXX: set bank-specified fields.
|
|
let myRequest = new XMLHttpRequest();
|
|
console.log("making request to " + req.detail.post_url);
|
|
myRequest.open('post', req.detail.post_url);
|
|
myRequest.send(form);
|
|
myRequest.addEventListener('readystatechange', (e) => {
|
|
if (myRequest.readyState == DONE) {
|
|
let resp = {};
|
|
resp.status = myRequest.status;
|
|
resp.text = myRequest.responseText;
|
|
switch (myRequest.status) {
|
|
case 200:
|
|
resp.success = true;
|
|
// We can't show the page directly, so
|
|
// we show some generic page from the wallet.
|
|
resp.backlink = chrome.extension.getURL("pages/reserve-success.html");
|
|
break;
|
|
default:
|
|
resp.success = false;
|
|
}
|
|
onresponse(resp);
|
|
}
|
|
});
|
|
// Allow async response
|
|
return true;
|
|
break;
|
|
}
|
|
});
|