Payment "works".
This commit is contained in:
parent
0d5c37a49e
commit
3ddfad1973
@ -490,15 +490,36 @@ class WithdrawRequestPS extends SignatureStruct {
|
||||
}
|
||||
class AbsoluteTimeNbo extends PackedArenaObject {
|
||||
static fromTalerString(s) {
|
||||
throw Error();
|
||||
let x = new AbsoluteTimeNbo();
|
||||
x.alloc();
|
||||
let r = /Date\(([0-9]+)\)/;
|
||||
let m = r.exec(s);
|
||||
if (m.length != 2) {
|
||||
throw Error();
|
||||
}
|
||||
let n = parseInt(m[1]);
|
||||
console.log("setting", n);
|
||||
// XXX: This only works up to 54 bit numbers.
|
||||
set64(x.getNative(), n);
|
||||
return x;
|
||||
}
|
||||
size() {
|
||||
return 8;
|
||||
}
|
||||
}
|
||||
// XXX: This only works up to 54 bit numbers.
|
||||
function set64(p, n) {
|
||||
for (let i = 0; i < 8; ++i) {
|
||||
Module.setValue(p + (8 - i), n & 0xFF, "i8");
|
||||
n >>>= 8;
|
||||
}
|
||||
}
|
||||
class UInt64 extends PackedArenaObject {
|
||||
static fromNumber(n) {
|
||||
throw Error();
|
||||
let x = new UInt64();
|
||||
x.alloc();
|
||||
set64(x.getNative(), n);
|
||||
return x;
|
||||
}
|
||||
size() {
|
||||
return 8;
|
||||
|
@ -709,7 +709,18 @@ class WithdrawRequestPS extends SignatureStruct {
|
||||
|
||||
class AbsoluteTimeNbo extends PackedArenaObject {
|
||||
static fromTalerString(s: string): AbsoluteTimeNbo {
|
||||
throw Error();
|
||||
let x = new AbsoluteTimeNbo();
|
||||
x.alloc();
|
||||
let r = /Date\(([0-9]+)\)/;
|
||||
let m = r.exec(s);
|
||||
if (m.length != 2) {
|
||||
throw Error();
|
||||
}
|
||||
let n = parseInt(m[1]);
|
||||
console.log("setting", n);
|
||||
// XXX: This only works up to 54 bit numbers.
|
||||
set64(x.getNative(), n);
|
||||
return x;
|
||||
}
|
||||
|
||||
size() {
|
||||
@ -718,9 +729,22 @@ class AbsoluteTimeNbo extends PackedArenaObject {
|
||||
}
|
||||
|
||||
|
||||
// XXX: This only works up to 54 bit numbers.
|
||||
function set64(p: number, n: number) {
|
||||
for (let i = 0; i < 8; ++i) {
|
||||
Module.setValue(p + (8 - i), n & 0xFF, "i8");
|
||||
n >>>= 8;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
class UInt64 extends PackedArenaObject {
|
||||
static fromNumber(n: number): UInt64 {
|
||||
throw Error();
|
||||
let x = new UInt64();
|
||||
x.alloc();
|
||||
set64(x.getNative(), n);
|
||||
return x;
|
||||
}
|
||||
|
||||
size() {
|
||||
|
@ -148,9 +148,15 @@ function executePay(db, offer, payCoinInfo, merchantBaseUrl, chosenMint) {
|
||||
let req = new XMLHttpRequest();
|
||||
req.open('post', payUrl.href());
|
||||
req.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
|
||||
req.send(JSON.stringify(reqData));
|
||||
req.addEventListener('readystatechange', (e) => {
|
||||
if (req.readyState == XMLHttpRequest.DONE) {
|
||||
resolve();
|
||||
if (req.status == 200) {
|
||||
resolve();
|
||||
}
|
||||
else {
|
||||
throw Error("bad status " + req.status);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
@ -173,6 +179,9 @@ function confirmPay(db, detail, sendResponse) {
|
||||
let mintUrl = Object.keys(mcs)[0];
|
||||
let ds = signDeposit(db, offer, mcs[mintUrl]);
|
||||
return executePay(db, offer, ds, detail.merchantPageUrl, mintUrl);
|
||||
})
|
||||
.then(() => {
|
||||
sendResponse({ success: true });
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
@ -231,9 +231,14 @@ function executePay(db,
|
||||
req.open('post', payUrl.href());
|
||||
req.setRequestHeader("Content-Type",
|
||||
"application/json;charset=UTF-8");
|
||||
req.send(JSON.stringify(reqData));
|
||||
req.addEventListener('readystatechange', (e) => {
|
||||
if (req.readyState == XMLHttpRequest.DONE) {
|
||||
resolve()
|
||||
if (req.status == 200) {
|
||||
resolve();
|
||||
} else {
|
||||
throw Error("bad status " + req.status);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
@ -262,6 +267,9 @@ function confirmPay(db, detail: ConfirmPayRequest, sendResponse) {
|
||||
let mintUrl = Object.keys(mcs)[0];
|
||||
let ds = signDeposit(db, offer, mcs[mintUrl]);
|
||||
return executePay(db, offer, ds, detail.merchantPageUrl, mintUrl);
|
||||
})
|
||||
.then(() => {
|
||||
sendResponse({success: true});
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
@ -47,8 +47,9 @@ document.addEventListener("DOMContentLoaded", function(e) {
|
||||
let offer = JSON.parse(e.detail);
|
||||
let uri = URI(chrome.extension.getURL("pages/confirm-contract.html"));
|
||||
let params = {
|
||||
offer: JSON.stringify(offer)
|
||||
}
|
||||
offer: JSON.stringify(offer),
|
||||
merchantPageUrl: document.location.href
|
||||
};
|
||||
document.location.href = uri.query(params).href();
|
||||
});
|
||||
});
|
||||
|
@ -23,8 +23,10 @@ document.addEventListener("DOMContentLoaded", (e) => {
|
||||
let html = template(offer.contract);
|
||||
$_("render-contract").innerHTML = html;
|
||||
document.getElementById("confirm-pay").addEventListener("click", (e) => {
|
||||
console.log("Query:", JSON.stringify(query));
|
||||
let d = {
|
||||
offer: JSON.parse(query.offer)
|
||||
offer: JSON.parse(query.offer),
|
||||
merchantPageUrl: query.merchantPageUrl
|
||||
};
|
||||
chrome.runtime.sendMessage({ type: 'confirm-pay', detail: d }, (resp) => {
|
||||
console.log("got response", resp);
|
||||
|
@ -34,8 +34,10 @@ document.addEventListener("DOMContentLoaded", (e) => {
|
||||
$_("render-contract").innerHTML = html;
|
||||
|
||||
document.getElementById("confirm-pay").addEventListener("click", (e) => {
|
||||
console.log("Query:", JSON.stringify(query));
|
||||
let d = {
|
||||
offer: JSON.parse(query.offer)
|
||||
offer: JSON.parse(query.offer),
|
||||
merchantPageUrl: query.merchantPageUrl
|
||||
};
|
||||
chrome.runtime.sendMessage({type:'confirm-pay', detail: d}, (resp) => {
|
||||
console.log("got response", resp);
|
||||
|
Loading…
Reference in New Issue
Block a user