From 266b33dc428f853d279a179907a38d999d4dc86b Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 25 Dec 2019 19:24:23 +0100 Subject: fix bug in the WebExtensions pay page --- src/webex/pages/pay.tsx | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/webex/pages/pay.tsx') diff --git a/src/webex/pages/pay.tsx b/src/webex/pages/pay.tsx index b7f09b6f6..7f36cb66e 100644 --- a/src/webex/pages/pay.tsx +++ b/src/webex/pages/pay.tsx @@ -32,6 +32,7 @@ import * as wxApi from "../wxApi"; import React, { useState, useEffect } from "react"; import * as Amounts from "../../util/amounts"; +import { codecForContractTerms, ContractTerms } from "../../types/talerTypes"; function TalerPayDialog({ talerPayUri }: { talerPayUri: string }) { const [payStatus, setPayStatus] = useState(); @@ -74,7 +75,21 @@ function TalerPayDialog({ talerPayUri }: { talerPayUri: string }) { ); } - const contractTerms = payStatus.contractTermsRaw; + let contractTerms: ContractTerms; + + try { + contractTerms = codecForContractTerms().decode(JSON.parse(payStatus.contractTermsRaw)); + } catch (e) { + // This should never happen, as the wallet is supposed to check the contract terms + // before storing them. + console.error(e); + console.log("raw contract terms were", payStatus.contractTermsRaw); + return ( + + Invalid contract terms. + + ); + } if (!contractTerms) { return ( -- cgit v1.2.3