taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit e4cafe672d07781c4cfcfa3b9d0e062ce367646c
parent 250069d86097a966366d21e447f6c3fcc70659bd
Author: Florian Dold <florian.dold@gmail.com>
Date:   Thu, 13 Oct 2016 02:36:33 +0200

manual refresh triggering

Diffstat:
Mlib/wallet/wallet.ts | 6+++++-
Mlib/wallet/wxApi.ts | 4++++
Mlib/wallet/wxMessaging.ts | 6++++++
Mpages/tree.tsx | 7+++++--
Mpopup/popup.tsx | 7+++++--
5 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/lib/wallet/wallet.ts b/lib/wallet/wallet.ts @@ -1136,8 +1136,12 @@ export class Wallet { coin.currentAmount, oldDenom.fee_refresh)); - // FIXME: implement rest + let reqUrl = URI("reserve/withdraw").absoluteTo(exchange!.baseUrl); + let resp = await this.http.postJson(reqUrl, {}); + + console.log("melt response:", resp.responseText); + // FIXME: implement rest } diff --git a/lib/wallet/wxApi.ts b/lib/wallet/wxApi.ts @@ -68,4 +68,8 @@ export async function getCoins(exchangeBaseUrl: string): Promise<Coin[]> { export async function getPreCoins(exchangeBaseUrl: string): Promise<PreCoin[]> { return await callBackend("get-precoins", { exchangeBaseUrl }); +} + +export async function refresh(coinPub: string): Promise<void> { + return await callBackend("refresh-coin", { coinPub }); } \ No newline at end of file diff --git a/lib/wallet/wxMessaging.ts b/lib/wallet/wxMessaging.ts @@ -204,6 +204,12 @@ function makeHandlers(db: IDBDatabase, } return wallet.getPreCoins(detail.exchangeBaseUrl); }, + ["refresh-coin"]: function (detail, sender) { + if (typeof detail.coinPub !== "string") { + return Promise.reject(Error("coinPub missing")); + } + return wallet.refresh(detail.coinPub); + }, ["payment-failed"]: function (detail, sender) { // For now we just update exchanges (maybe the exchange did something // wrong and the keys were messed up). diff --git a/pages/tree.tsx b/pages/tree.tsx @@ -25,7 +25,10 @@ import { IExchangeInfo } from "../lib/wallet/types"; import { ReserveRecord, Coin, PreCoin, Denomination } from "../lib/wallet/types"; import { ImplicitStateComponent, StateHolder } from "../lib/components"; -import { getReserves, getExchanges, getCoins, getPreCoins } from "../lib/wallet/wxApi"; +import { + getReserves, getExchanges, getCoins, getPreCoins, + refresh +} from "../lib/wallet/wxApi"; import { prettyAmount, abbrev } from "../lib/wallet/renderHtml"; interface ReserveViewProps { @@ -101,7 +104,7 @@ class RefreshDialog extends ImplicitStateComponent<RefreshDialogProps> { return ( <div> Refresh amount: <input type="text" size={10} /> - <button>ok</button> + <button onClick={() => refresh(this.props.coin.coinPub)}>ok</button> <button onClick={() => this.refreshRequested(false)}>cancel</button> </div> ); diff --git a/popup/popup.tsx b/popup/popup.tsx @@ -52,9 +52,9 @@ class Router extends preact.Component<any,any> { } static onRoute(f: any): () => void { - this.routeHandlers.push(f); + Router.routeHandlers.push(f); return () => { - let i = this.routeHandlers.indexOf(f); + let i = Router.routeHandlers.indexOf(f); this.routeHandlers = this.routeHandlers.splice(i, 1); } } @@ -391,6 +391,9 @@ function WalletDebug(props: any) { <button onClick={openExtensionPage("pages/show-db.html")}> show db </button> + <button onClick={openExtensionPage("pages/tree.html")}> + show tree + </button> <br /> <button onClick={confirmReset}> reset