From 72902b574d1e9ed4669878bc68fd284bf49b6e98 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Fri, 23 Feb 2024 12:56:52 -0800 Subject: constrain memo length --- lib/invoices.js | 2 ++ lib/payments.js | 1 + 2 files changed, 3 insertions(+) (limited to 'lib') diff --git a/lib/invoices.js b/lib/invoices.js index 6962898a..89c4f3d6 100644 --- a/lib/invoices.js +++ b/lib/invoices.js @@ -28,6 +28,7 @@ export let generate = async ({ invoice, user, sender, }) => { secret, } = invoice; + amount = parseInt(amount || 0); tip = parseInt(tip) || null; @@ -39,6 +40,7 @@ export let generate = async ({ invoice, user, sender, }) => { if (!rate) rate = store.rates[currency]; if (fiat) amount = Math.round((SATS * fiat) / rate); if (amount < 0) fail("invalid amount"); + if (memo && memo.length > 200) fail("memo too long"); let id = v4(); diff --git a/lib/payments.js b/lib/payments.js index 54c901e6..ea17783b 100644 --- a/lib/payments.js +++ b/lib/payments.js @@ -132,6 +132,7 @@ export let credit = async (hash, amount, memo, ref, type = types.internal) => { tip = parseInt(tip) || 0; if (!memo) ({ memo } = inv); + if (memo && memo.length > 200) fail("memo too long"); if (amount < 0 || tip < 0) fail("Invalid amount"); if (type === types.internal) amount += tip; -- cgit v1.2.3