From 6837b7d9d480517775dc5901a99baed01c730e80 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Mon, 6 Apr 2020 21:05:49 -0700 Subject: support receiving liquid assets --- routes/liquid/receive.js | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) (limited to 'routes') diff --git a/routes/liquid/receive.js b/routes/liquid/receive.js index 68189e38..ff58f1c4 100644 --- a/routes/liquid/receive.js +++ b/routes/liquid/receive.js @@ -22,7 +22,7 @@ zmqRawTx.on("message", async (topic, message, sequence) => { tx.vout.map(async o => { if (!(o.scriptPubKey && o.scriptPubKey.addresses)) return; - const { asset } = o.asset; + const { asset } = o; const value = toSats(o.value); const address = o.scriptPubKey.addresses[0]; @@ -47,7 +47,30 @@ zmqRawTx.on("message", async (topic, message, sequence) => { let confirmed = 0; - user.pending += value; + if (asset === config.liquid.btcasset) { + user.pending += value; + } else { + const params = { + user_id: user.id, + asset, + }; + + const account = await db.Account.findOne({ + where: params + }); + + console.log("params", params); + if (account) { + account.pending += value; + await account.save(); + } else { + params.balance = 0; + params.pending = value; + l.info("creating", params); + await db.Account.create(params); + } + } + user.confidential = await lq.getNewAddress(); user.liquid = (await lq.getAddressInfo( user.confidential @@ -72,7 +95,7 @@ zmqRawTx.on("message", async (topic, message, sequence) => { }); payments.push(blinded.txid); - l.info("liquid detected", user.username, value); + l.info("liquid detected", user.username, asset, value); emit(user.username, "payment", payment); } }) @@ -112,7 +135,7 @@ setInterval(async () => { let user = await p.getUser(); - const asset = await db.Asset.findOne({ + const asset = await db.Account.findOne({ where: { user_id: user.id, asset: p.asset -- cgit v1.2.3