diff options
| author | Adam Soltys <[email protected]> | 2020-12-17 11:02:19 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2020-12-17 11:02:19 -0800 |
| commit | 51d5bfcdc5f60af06b9d83c4789693b457741222 (patch) | |
| tree | dbbccc5acb841413bbaf5d2e3680becc2006907f /routes | |
| parent | cd4fa5d347586a470b19e616161e08f0f1a82b93 (diff) | |
| download | coinos-server-51d5bfcdc5f60af06b9d83c4789693b457741222.tar.gz coinos-server-51d5bfcdc5f60af06b9d83c4789693b457741222.zip | |
update sample config
Diffstat (limited to 'routes')
| -rw-r--r-- | routes/swaps.js | 307 |
1 files changed, 145 insertions, 162 deletions
diff --git a/routes/swaps.js b/routes/swaps.js index 2fbe10c1..feaa2ad2 100644 --- a/routes/swaps.js +++ b/routes/swaps.js @@ -755,80 +755,25 @@ app.post( }) ); -[ - /* - { - c1: config.liquid.btcasset, - c2: config.liquid.cadasset, - currency: "CAD" - }, - { - c1: config.liquid.btcasset, - c2: config.liquid.usdtasset, - currency: 'USD', - } - */ -].map(({ c1, c2, currency }) => { - setInterval(async () => { - if (!app.get("rates")) return; - const amount = - { - [config.liquid.cadasset]: 0.01, - [config.liquid.usdtasset]: 0.0001, - }[c2]; - - const user = await db.User.findOne({ - where: { - username: "maker" - } - }); +if (config.maker) + config.maker.map(({ amount, c1, c2, currency }) => { + setInterval(async () => { + if (!app.get("rates")) return; - await db.transaction(async transaction => { - let order = await db.Order.findOne( - { - where: { - user_id: user.id, - "$acc1.asset$": c1, - "$acc2.asset$": c2, - accepted: false - }, - include: [ - { - model: db.Account, - as: "acc1" - }, - { - model: db.Account, - as: "acc2" - } - ] - }, - { transaction } - ); - - let params = { - a1: c1, - a2: c2, - v1: amount * SATS, - v2: Math.round( - amount * - SATS * - (((app.get("ask") * app.get("rates")[currency]) / - app.get("rates")["USD"]) * - 1.01) - ) - }; + const user = await db.User.findOne({ + where: { + username: "maker" + } + }); - if (order) { - let bestBid = await db.Order.findOne( + await db.transaction(async transaction => { + let order = await db.Order.findOne( { where: { - "$acc1.asset$": c2, - "$acc2.asset$": c1, - accepted: false, - id: { - [Op.ne]: order.id - } + user_id: user.id, + "$acc1.asset$": c1, + "$acc2.asset$": c2, + accepted: false }, include: [ { @@ -839,80 +784,80 @@ app.post( model: db.Account, as: "acc2" } - ], - order: [["rate", "DESC"]], - limit: 1 + ] }, { transaction } ); - if ( - !bestBid || - (params.v2 / params.v1 > bestBid.rate && - order.acc2.balance >= params.v2) - ) { - order.v1 = params.v1; - order.v2 = params.v2; - await order.save(); - order = order.get({ plain: true }); - order.a1 = params.a1; - order.a2 = params.a2; - order.rate = order.v2 / order.v1; - broadcast("order", shallow(order)); - } - } else { - try { - await swap(user, params); - } catch (e) { - l.warn("Failed to make ask", e.message); - } - } + let params = { + a1: c1, + a2: c2, + v1: amount * SATS, + v2: Math.round( + amount * + SATS * + (((app.get("ask") * app.get("rates")[currency]) / + app.get("rates")["USD"]) * + 1.01) + ) + }; - order = await db.Order.findOne( - { - where: { - user_id: user.id, - "$acc1.asset$": c2, - "$acc2.asset$": c1, - accepted: false - }, - include: [ + if (order) { + let bestBid = await db.Order.findOne( { - model: db.Account, - as: "acc1" + where: { + "$acc1.asset$": c2, + "$acc2.asset$": c1, + accepted: false, + id: { + [Op.ne]: order.id + } + }, + include: [ + { + model: db.Account, + as: "acc1" + }, + { + model: db.Account, + as: "acc2" + } + ], + order: [["rate", "DESC"]], + limit: 1 }, - { - model: db.Account, - as: "acc2" - } - ] - }, - { transaction } - ); + { transaction } + ); + if ( + !bestBid || + (params.v2 / params.v1 > bestBid.rate && + order.acc2.balance >= params.v2) + ) { + order.v1 = params.v1; + order.v2 = params.v2; + await order.save(); + order = order.get({ plain: true }); + order.a1 = params.a1; + order.a2 = params.a2; + order.rate = order.v2 / order.v1; - params = { - a1: c2, - a2: c1, - v1: Math.round( - amount * - SATS * - ((app.get("bid") * app.get("rates")[currency]) / - app.get("rates")["USD"]) * - 0.99 - ), - v2: amount * SATS - }; + broadcast("order", shallow(order)); + } + } else { + try { + await swap(user, params); + } catch (e) { + l.warn("Failed to make ask", e.message); + } + } - if (order) { - let bestAsk = await db.Order.findOne( + order = await db.Order.findOne( { where: { - "$acc1.asset$": c1, - "$acc2.asset$": c2, - accepted: false, - id: { - [Op.ne]: order.id - } + user_id: user.id, + "$acc1.asset$": c2, + "$acc2.asset$": c1, + accepted: false }, include: [ { @@ -923,39 +868,77 @@ app.post( model: db.Account, as: "acc2" } - ], - order: [["rate", "ASC"]], - limit: 1 + ] }, { transaction } ); - if (bestAsk) - if ( - !bestAsk || - (params.v1 / params.v2 < bestAsk.rate && - order.acc1.balance >= params.v1) - ) { - order.v1 = params.v1; - order.v2 = params.v2; - await order.save(); - order = order.get({ plain: true }); - order.a1 = params.a1; - order.a2 = params.a2; - order.rate = order.v2 / order.v1; + params = { + a1: c2, + a2: c1, + v1: Math.round( + amount * + SATS * + ((app.get("bid") * app.get("rates")[currency]) / + app.get("rates")["USD"]) * + 0.99 + ), + v2: amount * SATS + }; + + if (order) { + let bestAsk = await db.Order.findOne( + { + where: { + "$acc1.asset$": c1, + "$acc2.asset$": c2, + accepted: false, + id: { + [Op.ne]: order.id + } + }, + include: [ + { + model: db.Account, + as: "acc1" + }, + { + model: db.Account, + as: "acc2" + } + ], + order: [["rate", "ASC"]], + limit: 1 + }, + { transaction } + ); + + if (bestAsk) + if ( + !bestAsk || + (params.v1 / params.v2 < bestAsk.rate && + order.acc1.balance >= params.v1) + ) { + order.v1 = params.v1; + order.v2 = params.v2; + await order.save(); + order = order.get({ plain: true }); + order.a1 = params.a1; + order.a2 = params.a2; + order.rate = order.v2 / order.v1; - broadcast("order", shallow(order)); + broadcast("order", shallow(order)); + } else { + broadcast("removeOrder", order.id); + await order.destroy({ transaction }); + } } else { - broadcast("removeOrder", order.id); - await order.destroy({ transaction }); - } - } else { - try { - await swap(user, params); - } catch (e) { - l.warn("Failed to make bid", e.message); + try { + await swap(user, params); + } catch (e) { + l.warn("Failed to make bid", e.message); + } } - } - }); - }, 5000); -}); + }); + }, 5000); + }); |
