diff options
| -rw-r--r-- | db/models/proposals.js | 9 | ||||
| -rw-r--r-- | routes/swaps.js | 16 |
2 files changed, 19 insertions, 6 deletions
diff --git a/db/models/proposals.js b/db/models/proposals.js index 842101ac..ca3de8eb 100644 --- a/db/models/proposals.js +++ b/db/models/proposals.js @@ -19,6 +19,15 @@ const attributes = { comment: null, field: "user_id" }, + completedAt: { + type: DataTypes.DATE, + allowNull: true, + defaultValue: null, + primaryKey: false, + autoIncrement: false, + comment: null, + field: "completedAt" + }, createdAt: { type: DataTypes.DATE, allowNull: false, diff --git a/routes/swaps.js b/routes/swaps.js index 12cf72f9..dbf47ab8 100644 --- a/routes/swaps.js +++ b/routes/swaps.js @@ -144,7 +144,7 @@ app.get( v1 = Math.round(v1 * SATS); v2 = Math.round(v2 * SATS); - let rate = v2 / v1; + let rate = v2/v1; if (v1 > account.balance) throw new Error(`insufficient funds, ${v1} ${account.balance}`); @@ -160,10 +160,13 @@ app.get( where: { a1: a2, a2: a1, - rate: { [Op.lte]: 1/rate }, - accepted: false, + rate: { [Op.lte]: v1/v2 }, + accepted: false }, - order: [["rate", "ASC"], ["id", "ASC"]] + order: [ + ["rate", "ASC"], + ["id", "ASC"] + ] }); for (let i = 0; i < proposals.length; i++) { @@ -177,6 +180,7 @@ app.get( } else { v1 -= p.v2; p.accepted = true; + p.completedAt = new Date(); await p.save(); broadcast("proposal", p); } @@ -188,9 +192,9 @@ app.get( { a1, a2, - v1, + v1, v2, - user_id: user.id + user_id: user.id, }, { transaction } ); |
