aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2020-09-25 12:48:47 -0700
committerAdam Soltys <[email protected]>2020-09-25 12:48:47 -0700
commitc97ede8b3a29e5f742ac73542c83e6d170326760 (patch)
tree86c5b2c93699fd55c4dc180d25d79cfdd9b84130
parent072dd8dcce4f28eba78838855f6ae977b868c8b6 (diff)
downloadcoinos-server-c97ede8b3a29e5f742ac73542c83e6d170326760.tar.gz
coinos-server-c97ede8b3a29e5f742ac73542c83e6d170326760.zip
record trade completion time
-rw-r--r--db/models/proposals.js9
-rw-r--r--routes/swaps.js16
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 }
);