summaryrefslogtreecommitdiff
path: root/src/wallet.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-04-13 16:08:41 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-04-13 16:08:41 +0200
commit75cf7ac3c3a00b29fab15b1fe3696617918fc643 (patch)
tree13fbf5fae108a19ba21f48360ea21bfdb8969540 /src/wallet.ts
parentace1a1be349c279fe87b536f786bb32c4e17f889 (diff)
downloadwallet-core-75cf7ac3c3a00b29fab15b1fe3696617918fc643.tar.gz
wallet-core-75cf7ac3c3a00b29fab15b1fe3696617918fc643.tar.bz2
wallet-core-75cf7ac3c3a00b29fab15b1fe3696617918fc643.zip
simplify coin status, don't show refreshed coins in balance
Diffstat (limited to 'src/wallet.ts')
-rw-r--r--src/wallet.ts22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/wallet.ts b/src/wallet.ts
index 916d8e1d1..b47a8257e 100644
--- a/src/wallet.ts
+++ b/src/wallet.ts
@@ -42,6 +42,7 @@ import {
WalletBalance,
WalletBalanceEntry,
WireInfo, DenominationRecord, DenominationStatus, denominationRecordFromKeys,
+ CoinStatus,
} from "./types";
import {
HttpRequestLibrary,
@@ -266,7 +267,7 @@ export function selectCoins(cds: CoinWithDenom[], paymentAmount: AmountJson,
if (coin.suspended) {
continue;
}
- if (coin.dirty) {
+ if (coin.status != CoinStatus.Fresh) {
continue;
}
if (Amounts.cmp(denom.feeDeposit, coin.currentAmount) >= 0) {
@@ -526,7 +527,7 @@ export class Wallet {
this.q()
.iter(Stores.coins)
.reduce((c: CoinRecord) => {
- if (c.dirty && !c.transactionPending && !(c.currentAmount.value == 0 && c.currentAmount.fraction == 0)) {
+ if (c.status == CoinStatus.Dirty) {
console.log("resuming pending refresh for coin", c);
this.refresh(c.coinPub);
}
@@ -581,10 +582,7 @@ export class Wallet {
if (coin.suspended) {
continue;
}
- if (coin.dirty) {
- continue;
- }
- if (coin.transactionPending) {
+ if (coin.status != CoinStatus.Fresh) {
continue;
}
cds.push({coin, denom});
@@ -989,8 +987,7 @@ export class Wallet {
denomSig: denomSig,
currentAmount: pc.coinValue,
exchangeBaseUrl: pc.exchangeBaseUrl,
- dirty: false,
- transactionPending: false,
+ status: CoinStatus.Fresh,
};
return coin;
}
@@ -1348,6 +1345,9 @@ export class Wallet {
if (c.suspended) {
return balance;
}
+ if (!(c.status == CoinStatus.Dirty || c.status == CoinStatus.Fresh)) {
+ return balance;
+ }
let currency = c.currentAmount.currency;
let entry = ensureEntry(balance, currency);
entry.available = Amounts.add(entry.available, c.currentAmount).amount;
@@ -1496,6 +1496,7 @@ export class Wallet {
throw AbortTransaction;
}
c.currentAmount = r.amount;
+ c.status = CoinStatus.Refreshed;
return c;
}
@@ -1667,8 +1668,7 @@ export class Wallet {
denomSig: denomSig,
currentAmount: denom.value,
exchangeBaseUrl: refreshSession.exchangeBaseUrl,
- dirty: false,
- transactionPending: false,
+ status: CoinStatus.Fresh,
};
coins.push(coin);
@@ -1787,7 +1787,7 @@ export class Wallet {
console.error("coin not found");
return;
}
- c.transactionPending = false;
+ c.status = CoinStatus.Dirty;
modifiedCoins.push(c);
}