aboutsummaryrefslogtreecommitdiff
path: root/extension/background
diff options
context:
space:
mode:
Diffstat (limited to 'extension/background')
-rw-r--r--extension/background/db.ts3
-rw-r--r--extension/background/wallet.js14
-rw-r--r--extension/background/wallet.ts23
3 files changed, 30 insertions, 10 deletions
diff --git a/extension/background/db.ts b/extension/background/db.ts
index 12d944a83..40c1cdaca 100644
--- a/extension/background/db.ts
+++ b/extension/background/db.ts
@@ -19,7 +19,7 @@ namespace Db {
}
export interface Keys {
- denoms: { [key: string]: Denomination };
+ denoms: Denomination[];
}
export interface Denomination {
@@ -47,6 +47,7 @@ namespace Db {
denomPub: string;
denomSig: string;
currentAmount: AmountJson;
+ mintBaseUrl: string;
}
diff --git a/extension/background/wallet.js b/extension/background/wallet.js
index f915187ab..422e60ca5 100644
--- a/extension/background/wallet.js
+++ b/extension/background/wallet.js
@@ -61,7 +61,7 @@ function signDeposit(db, offer, cds) {
* @param db
* @param paymentAmount
* @param depositFeeLimit
- * @param mintKeys
+ * @param allowedMints
*/
function getPossibleMintCoins(db, paymentAmount, depositFeeLimit, allowedMints) {
return new Promise((resolve, reject) => {
@@ -83,10 +83,14 @@ function getPossibleMintCoins(db, paymentAmount, depositFeeLimit, allowedMints)
if (!cursor) {
return;
}
+ let value = cursor.value;
let cd = {
coin: cursor.value,
- denom: mint.keys.denoms[cursor.value.denomPub]
+ denom: mint.keys.denoms.find((e) => e.denom_pub === value.denomPub)
};
+ if (!cd.denom) {
+ throw Error("denom not found");
+ }
let x = m[mint.baseUrl];
if (!x) {
m[mint.baseUrl] = [cd];
@@ -94,6 +98,7 @@ function getPossibleMintCoins(db, paymentAmount, depositFeeLimit, allowedMints)
else {
x.push(cd);
}
+ cursor.continue();
};
};
}
@@ -278,7 +283,7 @@ function withdrawPrepare(db, denom, reserve) {
coinPub: coinPub.toCrock(),
coinPriv: coinPriv.toCrock(),
denomPub: denomPub.encode().toCrock(),
- mintBaseUrl: reserve.mintBaseUrl,
+ mintBaseUrl: reserve.mint_base_url,
withdrawSig: sig.toCrock(),
coinEv: ev.toCrock(),
coinValue: denom.value
@@ -330,7 +335,8 @@ function withdrawExecute(db, pc) {
coinPriv: pc.coinPriv,
denomPub: pc.denomPub,
denomSig: denomSig.encode().toCrock(),
- currentAmount: pc.coinValue
+ currentAmount: pc.coinValue,
+ mintBaseUrl: pc.mintBaseUrl,
};
console.log("unblinded coin");
resolve(coin);
diff --git a/extension/background/wallet.ts b/extension/background/wallet.ts
index 281a24c6e..a2ac45dfa 100644
--- a/extension/background/wallet.ts
+++ b/extension/background/wallet.ts
@@ -131,7 +131,7 @@ interface MintInfo {
* @param db
* @param paymentAmount
* @param depositFeeLimit
- * @param mintKeys
+ * @param allowedMints
*/
function getPossibleMintCoins(db: IDBDatabase,
paymentAmount: AmountJson,
@@ -156,16 +156,21 @@ function getPossibleMintCoins(db: IDBDatabase,
if (!cursor) {
return;
}
+ let value: Db.Coin = cursor.value;
let cd = {
coin: cursor.value,
- denom: mint.keys.denoms[cursor.value.denomPub]
+ denom: mint.keys.denoms.find((e) => e.denom_pub === value.denomPub)
};
+ if (!cd.denom) {
+ throw Error("denom not found");
+ }
let x = m[mint.baseUrl];
if (!x) {
m[mint.baseUrl] = [cd];
} else {
x.push(cd);
}
+ cursor.continue();
}
}
}
@@ -340,9 +345,16 @@ function rankDenom(denom1: any, denom2: any) {
}
+interface Reserve {
+ mint_base_url: string
+ reserve_priv: string;
+ reserve_pub: string;
+}
+
+
function withdrawPrepare(db: IDBDatabase,
denom: Db.Denomination,
- reserve): Promise<Db.PreCoin> {
+ reserve: Reserve): Promise<Db.PreCoin> {
let reservePriv = new EddsaPrivateKey();
reservePriv.loadCrock(reserve.reserve_priv);
let reservePub = new EddsaPublicKey();
@@ -383,7 +395,7 @@ function withdrawPrepare(db: IDBDatabase,
coinPub: coinPub.toCrock(),
coinPriv: coinPriv.toCrock(),
denomPub: denomPub.encode().toCrock(),
- mintBaseUrl: reserve.mintBaseUrl,
+ mintBaseUrl: reserve.mint_base_url,
withdrawSig: sig.toCrock(),
coinEv: ev.toCrock(),
coinValue: denom.value
@@ -444,7 +456,8 @@ function withdrawExecute(db, pc: Db.PreCoin): Promise<Db.Coin> {
coinPriv: pc.coinPriv,
denomPub: pc.denomPub,
denomSig: denomSig.encode().toCrock(),
- currentAmount: pc.coinValue
+ currentAmount: pc.coinValue,
+ mintBaseUrl: pc.mintBaseUrl,
};
console.log("unblinded coin");
resolve(coin);