diff options
| author | Adam Soltys <[email protected]> | 2020-04-06 21:05:49 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2020-04-11 21:29:24 -0700 |
| commit | 6837b7d9d480517775dc5901a99baed01c730e80 (patch) | |
| tree | 28cd27557b2387ed57dae11620d8ef06cfb72476 /routes | |
| parent | e9b8303212f1e463ad6927e1b3df404a4358db96 (diff) | |
| download | coinos-server-6837b7d9d480517775dc5901a99baed01c730e80.tar.gz coinos-server-6837b7d9d480517775dc5901a99baed01c730e80.zip | |
support receiving liquid assets
Diffstat (limited to 'routes')
| -rw-r--r-- | routes/liquid/receive.js | 31 |
1 files changed, 27 insertions, 4 deletions
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 |
