aboutsummaryrefslogtreecommitdiffstats
path: root/lib/payments.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2023-11-23 23:08:09 -0800
committerAdam Soltys <[email protected]>2023-11-23 23:34:35 -0800
commit13f3c21b9ddf9884f190a6fcf7acf50440c82547 (patch)
treed29a3d8c91b9f5df5e38990800a3259732dc557b /lib/payments.js
parent04a941b76b916384a3215502d362f4f3b51074a5 (diff)
downloadcoinos-server-13f3c21b9ddf9884f190a6fcf7acf50440c82547.tar.gz
coinos-server-13f3c21b9ddf9884f190a6fcf7acf50440c82547.zip
use payment ids
Diffstat (limited to 'lib/payments.js')
-rw-r--r--lib/payments.js15
1 files changed, 9 insertions, 6 deletions
diff --git a/lib/payments.js b/lib/payments.js
index 148a6ea1..369d0aec 100644
--- a/lib/payments.js
+++ b/lib/payments.js
@@ -133,7 +133,9 @@ export let credit = async (hash, amount, memo, ref, type = types.internal) => {
warn("rate slipped", hash, invoice.rate, equivalentRate);
}
+ let id = v4();
let p = {
+ id,
hash,
amount: parseInt(amount - tip),
uid,
@@ -153,12 +155,12 @@ export let credit = async (hash, amount, memo, ref, type = types.internal) => {
let balance = "balance";
if (type === types.bitcoin) {
let [txid, vout] = ref.split(":").slice(-2);
- p.id = `${txid}:${vout}`;
p.confirmed = false;
balance = "pending";
+ await s(`payment:${txid}:${vout}`, id);
} else {
- p.id = hash;
- }
+ await s(`payment:${hash}`, id);
+ }
let m = await db.multi();
@@ -192,17 +194,18 @@ export let credit = async (hash, amount, memo, ref, type = types.internal) => {
export let confirm = async (address, txid, vout) => {
let id = `payment:${txid}:${vout}`;
let p = await g(id);
+ if (typeof p === "string") p = await g(`payment:${p}`);
if (!p) return db.sAdd("missed", id);
if (p.confirmed) return;
p.confirmed = true;
emit(p.uid, "payment", p);
- l("confirming", txid, p.uid);
+ l("confirming", txid);
- await db
+ let r = await db
.multi()
- .set(id, JSON.stringify(p))
+ .set(`payment:${p.id}`, JSON.stringify(p))
.decrBy(`pending:${p.uid}`, p.amount)
.incrBy(`balance:${p.uid}`, p.amount)
.exec();