aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2024-03-08 04:31:34 +0000
committerAdam Soltys <[email protected]>2024-03-08 04:31:34 +0000
commit972ea530e8139a0357b6b45ccdf9742d19ba6a26 (patch)
treeeb2774d174c12e7304694d1793811d0ae0abf685 /lib
parent2bd73639038bbc9cd4c75758eda685c89011231f (diff)
downloadcoinos-server-972ea530e8139a0357b6b45ccdf9742d19ba6a26.tar.gz
coinos-server-972ea530e8139a0357b6b45ccdf9742d19ba6a26.zip
validate tips
Diffstat (limited to 'lib')
-rw-r--r--lib/app.js4
-rw-r--r--lib/db.js7
-rw-r--r--lib/invoices.js1
-rw-r--r--lib/migrate.js2
-rw-r--r--lib/payments.js1
5 files changed, 12 insertions, 3 deletions
diff --git a/lib/app.js b/lib/app.js
index d289de05..337b2e96 100644
--- a/lib/app.js
+++ b/lib/app.js
@@ -20,8 +20,8 @@ const app = fastify({
});
await app.register(import("@fastify/rate-limit"), {
- max: 500,
- timeWindow: 5000,
+ max: 50,
+ timeWindow: 2000,
keyGenerator: (req) => req.headers["cf-connecting-ip"],
});
diff --git a/lib/db.js b/lib/db.js
index 58472269..4f113a1d 100644
--- a/lib/db.js
+++ b/lib/db.js
@@ -48,6 +48,13 @@ export let archive = createClient({
},
});
+export let arc2 = createClient({
+ url: config.arc2,
+ socket: {
+ reconnectStrategy: (retries) => Math.min(retries * 50, 5000),
+ },
+});
+
async function dbReconnect() {
try {
await db.connect();
diff --git a/lib/invoices.js b/lib/invoices.js
index 89c4f3d6..633072f3 100644
--- a/lib/invoices.js
+++ b/lib/invoices.js
@@ -40,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 (tip< 0) fail("invalid tip");
if (memo && memo.length > 200) fail("memo too long");
let id = v4();
diff --git a/lib/migrate.js b/lib/migrate.js
index 106a6b5f..15ce4a16 100644
--- a/lib/migrate.js
+++ b/lib/migrate.js
@@ -1,6 +1,6 @@
import { err, warn, l, line } from "$lib/logging";
import { types } from "$lib/payments";
-import { archive, db, g, ga, s } from "$lib/db";
+import { archive, arc2, db, g, ga, s } from "$lib/db";
import { wait } from "$lib/utils";
let queued = {};
diff --git a/lib/payments.js b/lib/payments.js
index 76286938..03085280 100644
--- a/lib/payments.js
+++ b/lib/payments.js
@@ -73,6 +73,7 @@ export let debit = async ({
}
let tip = parseInt(invoice?.tip) || null;
+ if (tip < 0) fail("Invalid tip");
if (!amount || amount < 0) fail("Amount must be greater than zero");