aboutsummaryrefslogtreecommitdiffstats
path: root/routes
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2020-12-17 11:02:19 -0800
committerAdam Soltys <[email protected]>2020-12-17 11:02:19 -0800
commit51d5bfcdc5f60af06b9d83c4789693b457741222 (patch)
treedbbccc5acb841413bbaf5d2e3680becc2006907f /routes
parentcd4fa5d347586a470b19e616161e08f0f1a82b93 (diff)
downloadcoinos-server-51d5bfcdc5f60af06b9d83c4789693b457741222.tar.gz
coinos-server-51d5bfcdc5f60af06b9d83c4789693b457741222.zip
update sample config
Diffstat (limited to 'routes')
-rw-r--r--routes/swaps.js307
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);
+ });