diff options
author | Florian Dold <florian.dold@gmail.com> | 2019-08-26 01:39:13 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2019-08-26 01:39:13 +0200 |
commit | e2b7441e7398adadc7e69a09f7dfd6a281f2fa41 (patch) | |
tree | f6627170857c61cfe276fed2ea32865d9e97f962 /src/wallet.ts | |
parent | c367669d3bbeac76bc2f2b4d27f338f3bd6c9876 (diff) |
slightly more sane logging
Diffstat (limited to 'src/wallet.ts')
-rw-r--r-- | src/wallet.ts | 138 |
1 files changed, 63 insertions, 75 deletions
diff --git a/src/wallet.ts b/src/wallet.ts index bd2038918..faced994a 100644 --- a/src/wallet.ts +++ b/src/wallet.ts @@ -183,7 +183,7 @@ export function getTotalRefreshCost( ...withdrawDenoms.map(d => d.value), ).amount; const totalCost = Amounts.sub(amountLeft, resultingAmount).amount; - console.log( + Wallet.enableTracing && console.log( "total refresh cost for", amountToPretty(amountLeft), "is", @@ -242,19 +242,20 @@ export function selectPayCoins( ) >= 0; const isBelowFee = Amounts.cmp(accDepositFee, depositFeeLimit) <= 0; - console.log("candidate coin selection", { - coversAmount, - isBelowFee, - accDepositFee, - accAmount, - paymentAmount, - }); + Wallet.enableTracing && + console.log("candidate coin selection", { + coversAmount, + isBelowFee, + accDepositFee, + accAmount, + paymentAmount, + }); if ((coversAmount && isBelowFee) || coversAmountWithFee) { const depositFeeToCover = Amounts.sub(accDepositFee, depositFeeLimit) .amount; leftAmount = Amounts.sub(leftAmount, depositFeeToCover).amount; - console.log("deposit fee to cover", amountToPretty(depositFeeToCover)); + Wallet.enableTracing && console.log("deposit fee to cover", amountToPretty(depositFeeToCover)); let totalFees: AmountJson = Amounts.getZero(currency); if (coversAmountWithFee && !isBelowFee) { @@ -408,8 +409,6 @@ export class Wallet { } async updateExchanges(): Promise<void> { - console.log("updating exchanges"); - const exchangesUrls = await this.q() .iter(Stores.exchanges) .map(e => e.baseUrl) @@ -432,7 +431,8 @@ export class Wallet { this.q() .iter(Stores.reserves) .forEach(reserve => { - Wallet.enableTracing && console.log("resuming reserve", reserve.reserve_pub); + Wallet.enableTracing && + console.log("resuming reserve", reserve.reserve_pub); this.processReserve(reserve.reserve_pub); }); @@ -460,7 +460,8 @@ export class Wallet { .iter(Stores.coins) .forEach((c: CoinRecord) => { if (c.status === CoinStatus.Dirty) { - Wallet.enableTracing && console.log("resuming pending refresh for coin", c); + Wallet.enableTracing && + console.log("resuming pending refresh for coin", c); this.refresh(c.coinPub); } }); @@ -509,9 +510,7 @@ export class Wallet { } if (denom.value.currency !== currency) { console.warn( - `same pubkey for different currencies at exchange ${ - exchange.baseUrl - }`, + `same pubkey for different currencies at exchange ${exchange.baseUrl}`, ); continue; } @@ -619,9 +618,7 @@ export class Wallet { } if (denom.value.currency !== currency) { console.warn( - `same pubkey for different currencies at exchange ${ - exchange.baseUrl - }`, + `same pubkey for different currencies at exchange ${exchange.baseUrl}`, ); continue; } @@ -727,11 +724,8 @@ export class Wallet { let proposalId: number; let checkResult: CheckPayResult; try { - console.log("downloading proposal"); proposalId = await this.downloadProposal(url, downloadSessionId); - console.log("calling checkPay"); checkResult = await this.checkPay(proposalId); - console.log("checkPay result", checkResult); } catch (e) { return { status: "error", @@ -775,14 +769,11 @@ export class Wallet { * downloaded in the context of a session ID. */ async downloadProposal(url: string, sessionId?: string): Promise<number> { - console.log("downloading proposal from", url); - console.log("context session id is", sessionId); const oldProposal = await this.q().getIndexed( Stores.proposals.urlIndex, url, ); if (oldProposal) { - console.log("old proposal exists:", oldProposal); return oldProposal.id!; } @@ -922,9 +913,10 @@ export class Wallet { proposalId: number, sessionIdOverride: string | undefined, ): Promise<ConfirmPayResult> { - console.log( - `executing confirmPay with proposalId ${proposalId} and sessionIdOverride ${sessionIdOverride}`, - ); + Wallet.enableTracing && + console.log( + `executing confirmPay with proposalId ${proposalId} and sessionIdOverride ${sessionIdOverride}`, + ); const proposal: ProposalDownloadRecord | undefined = await this.q().get( Stores.proposals, proposalId, @@ -965,7 +957,7 @@ export class Wallet { wireMethod: proposal.contractTerms.wire_method, }); - console.log("coin selection result", res); + Wallet.enableTracing && console.log("coin selection result", res); if (!res) { // Should not happen, since checkPay should be called first @@ -1037,9 +1029,6 @@ export class Wallet { * look faster to the user. */ async checkPay(proposalId: number): Promise<CheckPayResult> { - - console.log("doing checkPay for proposalId", proposalId) - const proposal = await this.q().get(Stores.proposals, proposalId); if (!proposal) { @@ -1052,7 +1041,7 @@ export class Wallet { proposal.contractTermsHash, ); if (purchase) { - console.log("got purchase", purchase) + Wallet.enableTracing && console.log("got purchase", purchase); return { status: "paid" }; } @@ -1087,8 +1076,6 @@ export class Wallet { return { status: "insufficient-balance" }; } - console.log("checkPay: payment possible!"); - // Only create speculative signature if we don't already have one for this proposal if ( !this.speculativePayData || @@ -1107,7 +1094,8 @@ export class Wallet { proposal, proposalId, }; - console.log("created speculative pay data for payment"); + Wallet.enableTracing && + console.log("created speculative pay data for payment"); } return { status: "payment-possible", coinSelection: res }; @@ -1120,8 +1108,6 @@ export class Wallet { async queryPaymentByFulfillmentUrl( url: string, ): Promise<PurchaseRecord | undefined> { - console.log("query for payment", url); - const t = await this.q().getIndexed( Stores.purchases.fulfillmentUrlIndex, url, @@ -1131,7 +1117,6 @@ export class Wallet { console.log("query for payment failed"); return undefined; } - console.log("query for payment succeeded:", t); return t; } @@ -1164,9 +1149,10 @@ export class Wallet { 2 * retryDelayMs + retryDelayMs * Math.random(), 3000 * 60, ); - console.warn( - `Failed to deplete reserve, trying again in ${retryDelayMs} ms`, - ); + Wallet.enableTracing && + console.warn( + `Failed to deplete reserve, trying again in ${retryDelayMs} ms`, + ); Wallet.enableTracing && console.info("Cause for retry was:", e); this.timerGroup.after(retryDelayMs, () => processReserveInternal(nextDelay), @@ -1426,7 +1412,6 @@ export class Wallet { console.error("Unable to confirm reserve, not found in DB"); return; } - console.log("reserve confirmed"); reserve.timestamp_confirmed = now; await this.q() .put(Stores.reserves, reserve) @@ -1479,7 +1464,7 @@ export class Wallet { * the depleted timestamp. */ private async depleteReserve(reserve: ReserveRecord): Promise<void> { - console.log("depleting reserve"); + Wallet.enableTracing && console.log("depleting reserve"); if (!reserve.current_amount) { throw Error("can't withdraw when amount is unknown"); } @@ -1901,7 +1886,7 @@ export class Wallet { const q = this.q(); resultSuspendedCoins.map((c: CoinRecord) => { - console.log("suspending coin", c); + Wallet.enableTracing && console.log("suspending coin", c); c.suspended = true; q.put(Stores.coins, c); this.badge.showNotification(); @@ -1939,15 +1924,15 @@ export class Wallet { lastUsedTime: 0, masterPublicKey: exchangeKeysJson.master_public_key, }; - console.log("making fresh exchange"); + Wallet.enableTracing && console.log("making fresh exchange"); } else { if (updateTimeSec < r.lastUpdateTime) { - console.log("outdated /keys, not updating"); + Wallet.enableTracing && console.log("outdated /keys, not updating"); return r; } exchangeInfo = r; exchangeInfo.lastUpdateTime = updateTimeSec; - console.log("updating old exchange"); + Wallet.enableTracing && console.log("updating old exchange"); } const updatedExchangeInfo = await this.updateExchangeInfo( @@ -2024,7 +2009,7 @@ export class Wallet { if (!denom) { continue; } - console.log(`cashing back denom`, denom); + Wallet.enableTracing && console.log(`cashing back denom`, denom); const coins = await this.q() .iterIndex(Stores.coins.denomPubIndex, denom.denomPub) .toArray(); @@ -2275,15 +2260,16 @@ export class Wallet { availableDenoms, ); - console.log("refreshing coin", coin); - console.log("refreshing into", newCoinDenoms); + Wallet.enableTracing && console.log("refreshing coin", coin); + Wallet.enableTracing && console.log("refreshing into", newCoinDenoms); if (newCoinDenoms.length === 0) { - console.log( - `not refreshing, available amount ${amountToPretty( - availableAmount, - )} too small`, - ); + Wallet.enableTracing && + console.log( + `not refreshing, available amount ${amountToPretty( + availableAmount, + )} too small`, + ); coin.status = CoinStatus.Useless; await this.q().put(Stores.coins, coin); this.notifier.notify(); @@ -2333,7 +2319,8 @@ export class Wallet { .iter(Stores.refresh) .toArray(); for (const session of oldRefreshSessions) { - Wallet.enableTracing && console.log("got old refresh session for", oldCoinPub, session); + Wallet.enableTracing && + console.log("got old refresh session for", oldCoinPub, session); this.continueRefreshSession(session); } const coin = await this.q().get(Stores.coins, oldCoinPub); @@ -2350,7 +2337,7 @@ export class Wallet { const refreshSession = await this.createRefreshSession(oldCoinPub); if (!refreshSession) { // refreshing not necessary - console.log("not refreshing", oldCoinPub); + Wallet.enableTracing && console.log("not refreshing", oldCoinPub); return; } this.continueRefreshSession(refreshSession); @@ -2401,10 +2388,10 @@ export class Wallet { rc: refreshSession.hash, value_with_fee: refreshSession.valueWithFee, }; - console.log("melt request:", meltReq); + Wallet.enableTracing && console.log("melt request:", meltReq); const resp = await this.http.postJson(reqUrl.href(), meltReq); - console.log("melt response:", resp.responseJson); + Wallet.enableTracing && console.log("melt response:", resp.responseJson); if (resp.status !== 200) { console.error(resp.responseJson); @@ -2474,21 +2461,22 @@ export class Wallet { const reqUrl = new URI("refresh/reveal").absoluteTo( refreshSession.exchangeBaseUrl, ); - console.log("reveal request:", req); + Wallet.enableTracing && console.log("reveal request:", req); const resp = await this.http.postJson(reqUrl.href(), req); - console.log("session:", refreshSession); - console.log("reveal response:", resp); + Wallet.enableTracing && console.log("session:", refreshSession); + Wallet.enableTracing && console.log("reveal response:", resp); if (resp.status !== 200) { - console.log("error: /refresh/reveal returned status " + resp.status); + console.error("error: /refresh/reveal returned status " + resp.status); return; } const respJson = resp.responseJson; if (!respJson.ev_sigs || !Array.isArray(respJson.ev_sigs)) { - console.log("/refresh/reveal did not contain ev_sigs"); + console.error("/refresh/reveal did not contain ev_sigs"); + return; } const exchange = await this.q().get<ExchangeRecord>( @@ -2684,7 +2672,7 @@ export class Wallet { } async updateCurrency(currencyRecord: CurrencyRecord): Promise<void> { - console.log("updating currency to", currencyRecord); + Wallet.enableTracing && console.log("updating currency to", currencyRecord); await this.q() .put(Stores.currencies, currencyRecord) .finish(); @@ -2833,7 +2821,7 @@ export class Wallet { Object.keys(x.feesForType).map(k => s.add(k)); }) .run(); - console.log(m); + Wallet.enableTracing && console.log(m); const exchangeWireTypes: { [url: string]: string[] } = {}; Object.keys(m).map(e => { exchangeWireTypes[e] = Array.from(m[e]); @@ -2858,9 +2846,9 @@ export class Wallet { * Trigger paying coins back into the user's account. */ async returnCoins(req: ReturnCoinsRequest): Promise<void> { - console.log("got returnCoins request", req); + Wallet.enableTracing && console.log("got returnCoins request", req); const wireType = (req.senderWire as any).type; - console.log("wireType", wireType); + Wallet.enableTracing && console.log("wireType", wireType); if (!wireType || typeof wireType !== "string") { console.error(`wire type must be a non-empty string, not ${wireType}`); return; @@ -2871,9 +2859,9 @@ export class Wallet { console.error(`Exchange ${req.exchange} not known to the wallet`); return; } - console.log("selecting coins for return:", req); + Wallet.enableTracing && console.log("selecting coins for return:", req); const cds = await this.getCoinsForReturn(req.exchange, req.amount); - console.log(cds); + Wallet.enableTracing && console.log(cds); if (!cds) { throw Error("coin return impossible, can't select coins"); @@ -2917,7 +2905,7 @@ export class Wallet { Amounts.parseOrThrow(contractTerms.amount), ); - console.log("pci", payCoinInfo); + Wallet.enableTracing && console.log("pci", payCoinInfo); const coins = payCoinInfo.sigs.map(s => ({ coinPaySig: s })); @@ -2962,7 +2950,7 @@ export class Wallet { wire: coinsReturnRecord.wire, wire_transfer_deadline: coinsReturnRecord.contractTerms.pay_deadline, }; - console.log("req", req); + Wallet.enableTracing && console.log("req", req); const reqUrl = new URI("deposit").absoluteTo(coinsReturnRecord.exchange); const resp = await this.http.postJson(reqUrl.href(), req); if (resp.status !== 200) { @@ -3052,12 +3040,12 @@ export class Wallet { * that was involved in the refund. */ async acceptRefund(refundUrl: string): Promise<string> { - console.log("processing refund"); + Wallet.enableTracing && console.log("processing refund"); let resp; try { resp = await this.http.get(refundUrl); } catch (e) { - console.log("error downloading refund permission", e); + console.error("error downloading refund permission", e); throw e; } |