aboutsummaryrefslogtreecommitdiff
path: root/extension/pages/confirm-create-reserve.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2016-02-18 22:50:17 +0100
committerFlorian Dold <florian.dold@gmail.com>2016-02-18 22:50:27 +0100
commit079e764ae6f827b1fa7c12b26f370199fc5e4d48 (patch)
treee938a0868edfaa7bfc7d38b92ed26e978446f142 /extension/pages/confirm-create-reserve.js
parent0f607edbb2146ff82f9dcd71a1fe2905630c0d58 (diff)
downloadwallet-core-079e764ae6f827b1fa7c12b26f370199fc5e4d48.tar.xz
fix #4121 and #4115
Diffstat (limited to 'extension/pages/confirm-create-reserve.js')
-rw-r--r--extension/pages/confirm-create-reserve.js101
1 files changed, 78 insertions, 23 deletions
diff --git a/extension/pages/confirm-create-reserve.js b/extension/pages/confirm-create-reserve.js
index 4cb8c03fb..6241fcab0 100644
--- a/extension/pages/confirm-create-reserve.js
+++ b/extension/pages/confirm-create-reserve.js
@@ -45,9 +45,49 @@ System.register(["../lib/wallet/helpers", "../lib/wallet/types", "mithril"], fun
else {
mx("p", "Checking URL, please wait ...");
}
+ if (ctrl.reserveCreationInfo) {
+ var withdrawFeeStr = helpers_1.amountToPretty(ctrl.reserveCreationInfo.withdrawFee);
+ mx("p", "Fee for withdrawal: " + withdrawFeeStr);
+ if (ctrl.detailCollapsed()) {
+ mx("button.linky", {
+ onclick: function () {
+ ctrl.detailCollapsed(false);
+ }
+ }, "show more");
+ }
+ else {
+ mx("button.linky", {
+ onclick: function () {
+ ctrl.detailCollapsed(true);
+ }
+ }, "show less");
+ mx("div", {}, renderCoinTable(ctrl.reserveCreationInfo.selectedDenoms));
+ }
+ }
return mithril_1.default("div", controls);
var _a;
}
+ function renderCoinTable(denoms) {
+ 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)),
+ ]);
+ }
+ return 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");
}
@@ -64,6 +104,21 @@ System.register(["../lib/wallet/helpers", "../lib/wallet/types", "mithril"], fun
}
return Promise.resolve(mint);
}
+ function getReserveCreationInfo(baseUrl, amount) {
+ var m = { type: "reserve-creation-info", detail: { baseUrl: baseUrl, amount: amount } };
+ return new Promise(function (resolve, reject) {
+ chrome.runtime.sendMessage(m, function (resp) {
+ if (resp.error) {
+ console.error("error response", resp);
+ var e = Error("call to reserve-creation-info failed");
+ e.errorResponse = resp;
+ reject(e);
+ return;
+ }
+ resolve(resp);
+ });
+ });
+ }
function main() {
var url = URI(document.location.href);
var query = URI.parseQuery(url.query());
@@ -128,6 +183,9 @@ System.register(["../lib/wallet/helpers", "../lib/wallet/types", "mithril"], fun
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(); });
@@ -140,47 +198,44 @@ System.register(["../lib/wallet/helpers", "../lib/wallet/types", "mithril"], fun
var doUpdate = function () {
if (!_this.url()) {
_this.statusString = (_a = ["Please enter a URL"], _a.raw = ["Please enter a URL"], i18n(_a));
- mithril_1.default.endComputation();
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));
- mithril_1.default.endComputation();
return;
}
- var keysUrl = URI("/keys").absoluteTo(helpers_1.canonicalizeBaseUrl(_this.url()));
- console.log("requesting keys from '" + keysUrl + "'");
- _this.request = new XMLHttpRequest();
- _this.request.onreadystatechange = function () {
- if (_this.request.readyState == XMLHttpRequest.DONE) {
- switch (_this.request.status) {
- case 200:
- _this.isValidMint = true;
- _this.statusString = "The mint base URL is valid!";
- break;
- case 0:
- _this.statusString = "unknown request error";
- break;
- default:
- _this.statusString = "request failed with status " + _this.request.status;
- break;
- }
+ mithril_1.default.redraw(true);
+ console.log("doing get mint info");
+ 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();
- };
- _this.request.open("get", keysUrl.href());
- _this.request.send();
+ });
var _a, _b;
};
- mithril_1.default.startComputation();
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;