diff options
author | Florian Dold <florian.dold@gmail.com> | 2019-11-30 00:36:20 +0100 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2019-11-30 00:36:20 +0100 |
commit | aaf7e1338d6cdb1b4e01ad318938b3eaea2f922b (patch) | |
tree | 594129ccdf20757aeb86d434dd62c0c1e8259ed5 /src/headless/bank.ts | |
parent | 809fa186448dbd924f258f89920b9336f1979bb0 (diff) | |
download | wallet-core-aaf7e1338d6cdb1b4e01ad318938b3eaea2f922b.tar.xz |
wallet robustness WIP
Diffstat (limited to 'src/headless/bank.ts')
-rw-r--r-- | src/headless/bank.ts | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/headless/bank.ts b/src/headless/bank.ts index f35021003..36f61a71a 100644 --- a/src/headless/bank.ts +++ b/src/headless/bank.ts @@ -45,6 +45,37 @@ function makeId(length: number): string { export class Bank { constructor(private bankBaseUrl: string) {} + async generateWithdrawUri(bankUser: BankUser, amount: string): Promise<string> { + const body = { + amount, + }; + + const reqUrl = new URI("api/withdraw-headless-uri") + .absoluteTo(this.bankBaseUrl) + .href(); + + const resp = await Axios({ + method: "post", + url: reqUrl, + data: body, + responseType: "json", + headers: { + "X-Taler-Bank-Username": bankUser.username, + "X-Taler-Bank-Password": bankUser.password, + }, + }); + + if (resp.status != 200) { + throw Error("failed to create bank reserve"); + } + + const withdrawUri = resp.data["taler_withdraw_uri"]; + if (!withdrawUri) { + throw Error("Bank's response did not include withdraw URI"); + } + return withdrawUri; + } + async createReserve( bankUser: BankUser, amount: string, |