aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2020-03-29 22:36:47 -0700
committerAdam Soltys <[email protected]>2020-03-29 22:39:19 -0700
commited40224a26ed2656ebbbb187a3b76b7c88107afc (patch)
tree047e511eef09ccd2f565de22acca63bc3b85d44e
parenta4f7fa1ddeabe6bfedd78e48c11f8fc88131bfec (diff)
downloadcoinos-server-ed40224a26ed2656ebbbb187a3b76b7c88107afc.tar.gz
coinos-server-ed40224a26ed2656ebbbb187a3b76b7c88107afc.zip
balances endpoint
-rw-r--r--index.js1
-rw-r--r--routes/balances.js19
2 files changed, 20 insertions, 0 deletions
diff --git a/index.js b/index.js
index 369cf5ea..f876f631 100644
--- a/index.js
+++ b/index.js
@@ -24,6 +24,7 @@ require("./lib/sockets");
require("./lib/passport");
require("./lib/rates");
+require("./routes/balances");
require("./routes/invoices");
require("./routes/payments");
require("./routes/users");
diff --git a/routes/balances.js b/routes/balances.js
new file mode 100644
index 00000000..75541730
--- /dev/null
+++ b/routes/balances.js
@@ -0,0 +1,19 @@
+const sequelize = require("sequelize");
+
+app.get("/balances", async (req, res) => {
+ const balances = {
+ bitcoin: parseInt((await bc.getBalance()) * SATS),
+ liquid: parseInt((await lq.getBalance()).bitcoin * SATS),
+ channel: (await lna.channelBalance({})).balance,
+ wallet: (await lna.walletBalance({})).total_balance,
+ user: (await db['User'].findAll({
+ attributes: [[sequelize.fn('sum', sequelize.col('balance')), 'total']],
+ raw: true,
+ order: sequelize.literal('total DESC')
+ }))[0].total,
+ };
+
+ const { bitcoin, liquid, channel, user, wallet } = balances;
+ balances.ratio = ((parseInt(bitcoin) + parseInt(liquid) + parseInt(channel) + parseInt(wallet))/parseInt(user)).toFixed(2);
+ res.send(balances);
+});