aboutsummaryrefslogtreecommitdiff
path: root/extension
diff options
context:
space:
mode:
Diffstat (limited to 'extension')
-rw-r--r--extension/pages/confirm-contract.js77
-rw-r--r--extension/pages/confirm-create-reserve.js281
-rw-r--r--extension/pages/show-db.js39
3 files changed, 0 insertions, 397 deletions
diff --git a/extension/pages/confirm-contract.js b/extension/pages/confirm-contract.js
deleted file mode 100644
index 296b51f26..000000000
--- a/extension/pages/confirm-contract.js
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- This file is part of TALER
- (C) 2015 GNUnet e.V.
-
- TALER is free software; you can redistribute it and/or modify it under the
- terms of the GNU General Public License as published by the Free Software
- Foundation; either version 3, or (at your option) any later version.
-
- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along with
- TALER; see the file COPYING. If not, If not, see <http://www.gnu.org/licenses/>
- */
-System.register(["../lib/wallet/helpers"], function(exports_1, context_1) {
- /// <reference path="../lib/decl/handlebars/handlebars.d.ts" />
- "use strict";
- var __moduleName = context_1 && context_1.id;
- var helpers_1;
- function prettyAmount(amount) {
- var v = amount.value + amount.fraction / 1e6;
- return v.toFixed(2) + " " + amount.currency;
- }
- function main() {
- var url = URI(document.location.href);
- var query = URI.parseQuery(url.query());
- var offer = JSON.parse(query.offer);
- console.dir(offer);
- var contract = offer.contract;
- var error = null;
- var Contract = {
- view: function (ctrl) {
- return [
- m("p", (_a = ["", "\n wants to enter a contract over ", "\n with you."], _a.raw = ["", "\n wants to enter a contract over ", "\n with you."], i18n.parts(_a, m("strong", contract.merchant.name), m("strong", prettyAmount(contract.amount))))),
- m("p", (_b = ["You are about to purchase:"], _b.raw = ["You are about to purchase:"], i18n(_b))),
- m('ul', _.map(contract.products, function (p) { return m("li", p.description + ": " + prettyAmount(p.price)); })),
- m("button.confirm-pay", { onclick: doPayment }, (_c = ["Confirm Payment"], _c.raw = ["Confirm Payment"], i18n(_c))),
- m("p", error ? error : []),
- ];
- var _a, _b, _c;
- }
- };
- m.mount(document.getElementById("contract"), Contract);
- function doPayment() {
- var d = { offer: offer };
- chrome.runtime.sendMessage({ type: 'confirm-pay', detail: d }, function (resp) {
- if (resp.error) {
- console.log("confirm-pay error", JSON.stringify(resp));
- switch (resp.error) {
- case "coins-insufficient":
- error = "You do not have enough coins of the requested currency.";
- break;
- default:
- error = "Error: " + resp.error;
- break;
- }
- m.redraw();
- return;
- }
- var c = d.offer.contract;
- console.log("contract", c);
- document.location.href = helpers_1.substituteFulfillmentUrl(c.fulfillment_url, offer);
- });
- }
- }
- exports_1("main", main);
- return {
- setters:[
- function (helpers_1_1) {
- helpers_1 = helpers_1_1;
- }],
- execute: function() {
- }
- }
-});
-//# sourceMappingURL=confirm-contract.js.map \ No newline at end of file
diff --git a/extension/pages/confirm-create-reserve.js b/extension/pages/confirm-create-reserve.js
deleted file mode 100644
index 97b2314ff..000000000
--- a/extension/pages/confirm-create-reserve.js
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- This file is part of TALER
- (C) 2015-2016 GNUnet e.V.
-
- TALER is free software; you can redistribute it and/or modify it under the
- terms of the GNU General Public License as published by the Free Software
- Foundation; either version 3, or (at your option) any later version.
-
- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along with
- TALER; see the file COPYING. If not, If not, see <http://www.gnu.org/licenses/>
- */
-System.register(["../lib/wallet/helpers", "../lib/wallet/types", "mithril", "../lib/wallet/wxApi"], function(exports_1, context_1) {
- "use strict";
- var __moduleName = context_1 && context_1.id;
- var helpers_1, types_1, mithril_1, types_2, wxApi_1;
- var DelayTimer, Controller;
- function view(ctrl) {
- var controls = [];
- var mx = function (x) {
- var args = [];
- for (var _i = 1; _i < arguments.length; _i++) {
- args[_i - 1] = arguments[_i];
- }
- return controls.push(mithril_1.default.apply(void 0, [x].concat(args)));
- };
- mx("p", (_a = ["The bank wants to create a reserve over ", "."], _a.raw = ["The bank wants to create a reserve over ", "."], i18n(_a, helpers_1.amountToPretty(ctrl.amount))));
- mx("input", {
- className: "url",
- type: "text",
- spellcheck: false,
- value: ctrl.url(),
- oninput: mithril_1.default.withAttr("value", ctrl.onUrlChanged.bind(ctrl)),
- });
- mx("button", {
- onclick: function () { return ctrl.confirmReserve(ctrl.url(), ctrl.amount, ctrl.callbackUrl); },
- disabled: !ctrl.isValidMint
- }, "Confirm mint selection");
- if (ctrl.statusString) {
- mx("p", ctrl.statusString);
- }
- else {
- mx("p", "Checking URL, please wait ...");
- }
- if (ctrl.reserveCreationInfo) {
- var totalCost = types_2.Amounts.add(ctrl.reserveCreationInfo.overhead, ctrl.reserveCreationInfo.withdrawFee).amount;
- mx("p", "Withdraw cost: " + helpers_1.amountToPretty(totalCost));
- if (ctrl.detailCollapsed()) {
- mx("button.linky", {
- onclick: function () {
- ctrl.detailCollapsed(false);
- }
- }, "show more details");
- }
- else {
- mx("button.linky", {
- onclick: function () {
- ctrl.detailCollapsed(true);
- }
- }, "hide details");
- mx("div", {}, renderReserveCreationDetails(ctrl.reserveCreationInfo));
- }
- }
- return mithril_1.default("div", controls);
- var _a;
- }
- function renderReserveCreationDetails(rci) {
- var denoms = rci.selectedDenoms;
- function row(denom) {
- return mithril_1.default("tr", [
- mithril_1.default("td", denom.pub_hash.substr(0, 5) + "..."),
- mithril_1.default("td", helpers_1.amountToPretty(denom.value)),
- mithril_1.default("td", helpers_1.amountToPretty(denom.fee_withdraw)),
- mithril_1.default("td", helpers_1.amountToPretty(denom.fee_refresh)),
- mithril_1.default("td", helpers_1.amountToPretty(denom.fee_deposit)),
- ]);
- }
- var withdrawFeeStr = helpers_1.amountToPretty(rci.withdrawFee);
- var overheadStr = helpers_1.amountToPretty(rci.overhead);
- return [
- mithril_1.default("p", "Fee for withdrawal: " + withdrawFeeStr),
- mithril_1.default("p", "Overhead: " + overheadStr),
- mithril_1.default("table", [
- mithril_1.default("tr", [
- mithril_1.default("th", "Key Hash"),
- mithril_1.default("th", "Value"),
- mithril_1.default("th", "Withdraw Fee"),
- mithril_1.default("th", "Refresh Fee"),
- mithril_1.default("th", "Deposit Fee"),
- ]),
- denoms.map(row)
- ])
- ];
- }
- function probeMint(mintBaseUrl) {
- throw Error("not implemented");
- }
- function getSuggestedMint(currency) {
- // TODO: make this request go to the wallet backend
- // Right now, this is a stub.
- var defaultMint = {
- "KUDOS": "http://mint.demo.taler.net",
- "PUDOS": "http://mint.test.taler.net",
- };
- var mint = defaultMint[currency];
- if (!mint) {
- mint = "";
- }
- return Promise.resolve(mint);
- }
- function main() {
- var url = URI(document.location.href);
- var query = URI.parseQuery(url.query());
- var amount = types_1.AmountJson.checked(JSON.parse(query.amount));
- var callback_url = query.callback_url;
- var bank_url = query.bank_url;
- getSuggestedMint(amount.currency)
- .then(function (suggestedMintUrl) {
- var controller = function () { return new Controller(suggestedMintUrl, amount, callback_url); };
- var MintSelection = { controller: controller, view: view };
- mithril_1.default.mount(document.getElementById("mint-selection"), MintSelection);
- })
- .catch(function (e) {
- // TODO: provide more context information, maybe factor it out into a
- // TODO:generic error reporting function or component.
- document.body.innerText = "Fatal error: \"" + e.message + "\".";
- console.error("got backend error \"" + e.message + "\"");
- });
- }
- exports_1("main", main);
- return {
- setters:[
- function (helpers_1_1) {
- helpers_1 = helpers_1_1;
- },
- function (types_1_1) {
- types_1 = types_1_1;
- types_2 = types_1_1;
- },
- function (mithril_1_1) {
- mithril_1 = mithril_1_1;
- },
- function (wxApi_1_1) {
- wxApi_1 = wxApi_1_1;
- }],
- execute: function() {
- "use strict";
- /**
- * Execute something after a delay, with the possibility
- * to reset the delay.
- */
- DelayTimer = (function () {
- function DelayTimer(ms, f) {
- this.timerId = null;
- this.f = f;
- this.ms = ms;
- }
- DelayTimer.prototype.bump = function () {
- var _this = this;
- this.stop();
- var handler = function () {
- _this.f();
- };
- this.timerId = window.setTimeout(handler, this.ms);
- };
- DelayTimer.prototype.stop = function () {
- if (this.timerId !== null) {
- window.clearTimeout(this.timerId);
- }
- };
- return DelayTimer;
- }());
- Controller = (function () {
- function Controller(initialMintUrl, amount, callbackUrl) {
- var _this = this;
- this.url = mithril_1.default.prop();
- this.statusString = null;
- this.isValidMint = false;
- this.reserveCreationInfo = null;
- this.detailCollapsed = mithril_1.default.prop(true);
- console.log("creating main controller");
- this.amount = amount;
- this.callbackUrl = callbackUrl;
- this.timer = new DelayTimer(800, function () { return _this.update(); });
- this.url(initialMintUrl);
- this.update();
- }
- Controller.prototype.update = function () {
- var _this = this;
- this.timer.stop();
- var doUpdate = function () {
- if (!_this.url()) {
- _this.statusString = (_a = ["Please enter a URL"], _a.raw = ["Please enter a URL"], i18n(_a));
- return;
- }
- _this.statusString = null;
- var parsedUrl = URI(_this.url());
- if (parsedUrl.is("relative")) {
- _this.statusString = (_b = ["The URL you've entered is not valid (must be absolute)"], _b.raw = ["The URL you've entered is not valid (must be absolute)"], i18n(_b));
- return;
- }
- mithril_1.default.redraw(true);
- console.log("doing get mint info");
- wxApi_1.getReserveCreationInfo(_this.url(), _this.amount)
- .then(function (r) {
- console.log("get mint info resolved");
- _this.isValidMint = true;
- _this.reserveCreationInfo = r;
- console.dir(r);
- _this.statusString = "The mint base URL is valid!";
- mithril_1.default.endComputation();
- })
- .catch(function (e) {
- console.log("get mint info rejected");
- if (e.hasOwnProperty("httpStatus")) {
- _this.statusString = "request failed with status " + _this.request.status;
- }
- else {
- _this.statusString = "unknown request error";
- }
- mithril_1.default.endComputation();
- });
- var _a, _b;
- };
- doUpdate();
- console.log("got update");
- };
- Controller.prototype.reset = function () {
- this.isValidMint = false;
- this.statusString = null;
- this.reserveCreationInfo = null;
- if (this.request) {
- this.request.abort();
- this.request = null;
- }
- };
- Controller.prototype.confirmReserve = function (mint, amount, callback_url) {
- var _this = this;
- var d = { mint: mint, amount: amount };
- var cb = function (rawResp) {
- if (!rawResp) {
- throw Error("empty response");
- }
- if (!rawResp.error) {
- var resp = types_1.CreateReserveResponse.checked(rawResp);
- var q = {
- mint: resp.mint,
- reserve_pub: resp.reservePub,
- amount_value: amount.value,
- amount_fraction: amount.fraction,
- amount_currency: amount.currency,
- };
- var url = URI(callback_url).addQuery(q);
- if (!url.is("absolute")) {
- throw Error("callback url is not absolute");
- }
- console.log("going to", url.href());
- document.location.href = url.href();
- }
- else {
- _this.reset();
- _this.statusString = ("Oops, something went wrong." +
- ("The wallet responded with error status (" + rawResp.error + ")."));
- }
- };
- chrome.runtime.sendMessage({ type: 'create-reserve', detail: d }, cb);
- };
- Controller.prototype.onUrlChanged = function (url) {
- this.reset();
- this.url(url);
- this.timer.bump();
- };
- return Controller;
- }());
- }
- }
-});
-//# sourceMappingURL=confirm-create-reserve.js.map \ No newline at end of file
diff --git a/extension/pages/show-db.js b/extension/pages/show-db.js
deleted file mode 100644
index bcd8485cb..000000000
--- a/extension/pages/show-db.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- This file is part of TALER
- (C) 2015 GNUnet e.V.
-
- TALER is free software; you can redistribute it and/or modify it under the
- terms of the GNU General Public License as published by the Free Software
- Foundation; either version 3, or (at your option) any later version.
-
- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along with
- TALER; see the file COPYING. If not, If not, see <http://www.gnu.org/licenses/>
- */
-function replacer(match, pIndent, pKey, pVal, pEnd) {
- var key = '<span class=json-key>';
- var val = '<span class=json-value>';
- var str = '<span class=json-string>';
- var r = pIndent || '';
- if (pKey)
- r = r + key + pKey.replace(/[": ]/g, '') + '</span>: ';
- if (pVal)
- r = r + (pVal[0] == '"' ? str : val) + pVal + '</span>';
- return r + (pEnd || '');
-}
-function prettyPrint(obj) {
- var jsonLine = /^( *)("[\w]+": )?("[^"]*"|[\w.+-]*)?([,[{])?$/mg;
- return JSON.stringify(obj, null, 3)
- .replace(/&/g, '&amp;').replace(/\\"/g, '&quot;')
- .replace(/</g, '&lt;').replace(/>/g, '&gt;')
- .replace(jsonLine, replacer);
-}
-document.addEventListener("DOMContentLoaded", function (e) {
- chrome.runtime.sendMessage({ type: 'dump-db' }, function (resp) {
- document.getElementById('dump').innerHTML = prettyPrint(resp);
- });
-});
-//# sourceMappingURL=show-db.js.map \ No newline at end of file