wallet-core/extension/background/wallet.js
2015-12-07 23:39:25 +01:00

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;
}
});