From 51d5bfcdc5f60af06b9d83c4789693b457741222 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Thu, 17 Dec 2020 11:02:19 -0800 Subject: update sample config --- config/samples/index.sample.js | 22 +++ config/samples/lnurl.sample.js | 17 +-- routes/swaps.js | 313 +++++++++++++++++++---------------------- 3 files changed, 177 insertions(+), 175 deletions(-) diff --git a/config/samples/index.sample.js b/config/samples/index.sample.js index aef2c1be..9ab7f42a 100644 --- a/config/samples/index.sample.js +++ b/config/samples/index.sample.js @@ -7,6 +7,10 @@ try { l.warn("lnurl config not found"); } +const btcasset = "5ac9f65c0efcc4775e0baec4ec03abdde22473cd3cf33c0419ca290e0751b225"; +const cadasset = "e749f7326d0ba155ec1d878e23458bc3f740a38bf91bbce955945ee10d6ab523"; +const usdtasset = "4dddd1d0d0beeaee17df7722b512906cc5bc660c81225083b72b05820ecd3d91"; + module.exports = { lnurl, clientVersion: "x11111xx11xx11x11x11111111xx1111111xx111", @@ -25,6 +29,7 @@ module.exports = { specialFriend: '10102176487832944', }, bitcoin: { + masterkey: 'tprv8ZgxMBicQKsPfBhnpvyFH3PxL7sWhT3bVzk4WE77QRoARn2xxzisfQph34Vv25RnJ5kpoDZunJvy7dSGSSRBkTDkqqVH12W8ikKtWfyj1zw', // get from bitcoin-cli dumpwallet "walletfile" username: "user", password: "password", network: "regtest", @@ -33,6 +38,9 @@ module.exports = { zmqrawtx: "tcp://127.0.0.1:18507" }, liquid: { + masterkey: 'tprv8ZgxMBicQKsPe2qXQ8U9qMQKGE5M3qTKbacCG5nrjsBYCB4AbNeRiJR2rPm86S7UoVLd9ubEmHSVtnZqSrJc76BzKrkhuiPYReNWiFzWWVR', // get from elements-cli dumpwallet "walletfile" + blindkey: '0e66557c1dfa0c7daa371314ffd763979d3f7c5db69380e5c15ea72b85453c2e', + wallet: "coinos", username: "user", password: "password", network: "regtest", @@ -46,4 +54,18 @@ module.exports = { tls: '/home/user/.lnd.testa/tls.cert', macaroon: '/home/user/.lnd.testa/data/chain/bitcoin/testnet/admin.macaroon', }, + maker: [ // special account with username "maker" places orders on the exchange + { + c1: btcasset, + c2: cadasset, + currency: "CAD". + amount: 0.001, + }, + { + c1: btcasset, + c2: usdtasset, + currency: 'USD', + amount: 0.001, + } + ], } diff --git a/config/samples/lnurl.sample.js b/config/samples/lnurl.sample.js index d4cfe410..6de87c11 100644 --- a/config/samples/lnurl.sample.js +++ b/config/samples/lnurl.sample.js @@ -19,16 +19,13 @@ module.exports = { macaroon: "/home/user/.lnd.sima/data/chain/bitcoin/regtest/admin.macaroon" } }, - store: { - backend: "knex", + store: { + backend: 'knex', config: { - client: "mysql", + client: 'sqlite3', connection: { - host: "localhost", - user: "root", - password: "password", - database: "coinos" - } - } - } + filename: './lnurl-server.sqlite3', + }, + }, + }, }; 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 } - ); + const user = await db.User.findOne({ + where: { + username: "maker" + } + }); - 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) - ) - }; - - 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); - } - } - order = await db.Order.findOne( - { - where: { - user_id: user.id, - "$acc1.asset$": c2, - "$acc2.asset$": c1, - accepted: false - }, - include: [ + 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) + ) + }; + + 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; + + broadcast("order", shallow(order)); + } + } else { + try { + await swap(user, params); + } catch (e) { + l.warn("Failed to make ask", e.message); + } + } - 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( + 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; - - broadcast("order", shallow(order)); + 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)); + } 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); + }); -- cgit v1.2.3