From 70912b07250e7c86ace4a0b0b16e90352df93ece Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Sun, 1 Sep 2019 01:05:38 +0200 Subject: fix error in index iteration --- bin/taler-wallet-cli | 1 + packages/idb-bridge/package.json | 2 +- packages/idb-bridge/src/MemoryBackend.ts | 1 + src/android/index.ts | 10 ++++++++++ src/headless/helpers.ts | 3 ++- src/headless/taler-wallet-cli.ts | 2 +- src/query.ts | 6 +++++- src/wallet.ts | 6 +++--- 8 files changed, 24 insertions(+), 7 deletions(-) diff --git a/bin/taler-wallet-cli b/bin/taler-wallet-cli index 1dbf05a08..04aef8922 100755 --- a/bin/taler-wallet-cli +++ b/bin/taler-wallet-cli @@ -1,2 +1,3 @@ #!/usr/bin/env node +require('source-map-support').install(); require('../dist/node/headless/taler-wallet-cli.js') diff --git a/packages/idb-bridge/package.json b/packages/idb-bridge/package.json index b8579b053..f0072a6be 100644 --- a/packages/idb-bridge/package.json +++ b/packages/idb-bridge/package.json @@ -1,6 +1,6 @@ { "name": "idb-bridge", - "version": "0.0.9", + "version": "0.0.10", "description": "IndexedDB implementation that uses SQLite3 as storage", "main": "./build/index.js", "types": "./build/index.d.ts", diff --git a/packages/idb-bridge/src/MemoryBackend.ts b/packages/idb-bridge/src/MemoryBackend.ts index 44da137ff..99582a1b6 100644 --- a/packages/idb-bridge/src/MemoryBackend.ts +++ b/packages/idb-bridge/src/MemoryBackend.ts @@ -1156,6 +1156,7 @@ export class MemoryBackend implements Backend { indexPos = res[1].indexKey; indexEntry = res[1]; primkeySubPos = forward ? 0 : indexEntry.primaryKeys.length - 1; + continue; } else { break; } diff --git a/src/android/index.ts b/src/android/index.ts index e7d24c8b4..d3f5cd0d6 100644 --- a/src/android/index.ts +++ b/src/android/index.ts @@ -171,6 +171,16 @@ export function installAndroidWalletListener() { httpLib.handleTunnelResponse(msg.args); break; } + case "getWithdrawalInfo": { + const wallet = await wp.promise; + result = await wallet.getWithdrawalInfo(msg.args.talerWithdrawUri); + break; + } + case "acceptWithdrawal": { + const wallet = await wp.promise; + result = await wallet.acceptWithdrawal(msg.args.talerWithdrawUri, msg.args.selectedExchange); + break; + } case "reset": { const wallet = await wp.promise; wallet.stop(); diff --git a/src/headless/helpers.ts b/src/headless/helpers.ts index a86b26738..6716ccef4 100644 --- a/src/headless/helpers.ts +++ b/src/headless/helpers.ts @@ -133,8 +133,9 @@ export async function getDefaultNodeWallet( const myBadge = new ConsoleBadge(); + BridgeIDBFactory.enableTracing = true; const myBackend = new MemoryBackend(); - myBackend.enableTracing = false; + myBackend.enableTracing = true; const storagePath = args.persistentStoragePath; if (storagePath) { diff --git a/src/headless/taler-wallet-cli.ts b/src/headless/taler-wallet-cli.ts index bfa1ac4b9..da68f46ae 100644 --- a/src/headless/taler-wallet-cli.ts +++ b/src/headless/taler-wallet-cli.ts @@ -135,7 +135,7 @@ program persistentStoragePath: walletDbPath, }); - const withdrawInfo = await wallet.downloadWithdrawInfo(withdrawUrl); + const withdrawInfo = await wallet.getWithdrawalInfo(withdrawUrl); console.log("withdraw info", withdrawInfo); diff --git a/src/query.ts b/src/query.ts index 7308d9ede..766696874 100644 --- a/src/query.ts +++ b/src/query.ts @@ -21,6 +21,7 @@ */ import { openPromise } from "./promiseUtils"; +import { join } from "path"; /** * Result of an inner join. @@ -463,11 +464,14 @@ class QueryStreamIndexJoin extends QueryStreamBase> { f(true, undefined, tx); return; } + const joinKey = this.key(value); + console.log("***** JOINING ON", joinKey); const s = tx.objectStore(this.storeName).index(this.indexName); - const req = s.openCursor(IDBKeyRange.only(this.key(value))); + const req = s.openCursor(IDBKeyRange.only(joinKey)); req.onsuccess = () => { const cursor = req.result; if (cursor) { + console.log(`join result for ${joinKey}`, { left: value, right: cursor.value }); f(false, { left: value, right: cursor.value }, tx); cursor.continue(); } diff --git a/src/wallet.ts b/src/wallet.ts index 3785f912e..1d231f2df 100644 --- a/src/wallet.ts +++ b/src/wallet.ts @@ -1822,7 +1822,7 @@ export class Wallet { talerWithdrawUri: string, maybeSelectedExchange?: string, ): Promise { - const info = await this.downloadWithdrawInfo(talerWithdrawUri); + const info = await this.getWithdrawalInfo(talerWithdrawUri); let rci: ReserveCreationInfo | undefined = undefined; if (maybeSelectedExchange) { rci = await this.getWithdrawDetailsForAmount( @@ -3551,7 +3551,7 @@ export class Wallet { // strategy to test it. } - async downloadWithdrawInfo( + async getWithdrawalInfo( talerWithdrawUri: string, ): Promise { const uriResult = parseWithdrawUri(talerWithdrawUri); @@ -3577,7 +3577,7 @@ export class Wallet { talerWithdrawUri: string, selectedExchange: string, ): Promise { - const withdrawInfo = await this.downloadWithdrawInfo(talerWithdrawUri); + const withdrawInfo = await this.getWithdrawalInfo(talerWithdrawUri); const exchangeWire = await this.getExchangePaytoUri( selectedExchange, withdrawInfo.wireTypes, -- cgit v1.2.3