diff options
Diffstat (limited to 'src/wallet.ts')
-rw-r--r-- | src/wallet.ts | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/wallet.ts b/src/wallet.ts index a809b94cc..51046159b 100644 --- a/src/wallet.ts +++ b/src/wallet.ts @@ -1787,7 +1787,7 @@ export class Wallet { } - async paymentSucceeded(contractHash: string): Promise<any> { + async paymentSucceeded(contractHash: string, merchantSig: string): Promise<any> { const doPaymentSucceeded = async() => { let t = await this.q().get<TransactionRecord>(Stores.transactions, contractHash); @@ -1795,6 +1795,13 @@ export class Wallet { console.error("contract not found"); return; } + let merchantPub = t.contract.merchant_pub; + let valid = this.cryptoApi.isValidPaymentSignature(merchantSig, contractHash, merchantPub); + if (!valid) { + console.error("merchant payment signature invalid"); + // FIXME: properly display error + return; + } t.finished = true; let modifiedCoins: CoinRecord[] = []; for (let pc of t.payReq.coins) { |