const sequelize = require("sequelize"); const { Op } = sequelize; app.get("/info", ah(async (req, res, next) => { const { clientVersion } = config; const info = { fx: app.get("fx"), nodes: networks, clientVersion, }; res.send(info); })); app.get("/balances", ah(async (req, res, next) => { const accounts = await db.Account.findAll({ attributes: [ "asset", "pubkey", [sequelize.fn("sum", sequelize.col("balance")), "total"] ], group: ["asset", "pubkey"], }); let lnchannel; let lnwallet; let lninfo; if (config.lna) { if (config.lna.clightning) { const funds = await lna.listfunds(); lninfo = await lna.getinfo(); lnchannel = parseInt(funds.channels.reduce((a, b) => a + b.channel_sat, 0)); lnwallet = parseInt(funds.outputs.reduce((a, b) => a + b.value, 0)); } else { lninfo = await lna.getInfo({}); lnchannel = parseInt((await lna.channelBalance({})).balance); lnwallet = parseInt((await lna.walletBalance({})).total_balance); } } let bitcoin, bitcoind; if (config.bitcoin) { bitcoin = parseInt((await bc.getBalance()) * SATS); bitcoind = await bc.getNetworkInfo(); } let assets, liquid, elementsd; if (config.liquid) { assets = await lq.getBalance(); liquid = parseInt(assets.bitcoin * SATS); elementsd = await lq.getNetworkInfo(); } const info = { bitcoind, elementsd, accounts, assets, bitcoin, liquid, lnchannel, lnwallet, }; info.total = parseInt(bitcoin) + parseInt(liquid) + parseInt(lnchannel) + parseInt(lnwallet); res.send(info); })); ns coinos server — legacy coinos.io backend (Lightning, on-chain, Liquid)coinos
aboutsummaryrefslogtreecommitdiffstats
path: root/views/layout.html
blob: fb6b9e3010b954755a17dad61e2462ad6a919803 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<html>
  <head>
    <meta charset="utf-8" />
		<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1" />
    <title>CoinOS</title>
    <link href="/img/favicon.ico" rel="shortcut icon" />
    <link rel="stylesheet" href="/jquery-ui/themes/ui-lightness/jquery-ui.min.css" />
    <link rel="stylesheet" href="/bootstrap/dist/css/bootstrap.min.css" />
    <link rel="stylesheet" href="/bootstrap/dist/css/bootstrap.min.css" />
    <link rel="stylesheet" href="/bootstrap/dist/css/bootstrap-theme.min.css" />
    <link rel="stylesheet" href="/font-awesome/css/font-awesome.min.css" />
    <link rel="stylesheet" href="/css/coinos.css" />
    <script src="/jquery/dist/jquery.min.js"></script>
    <script src="/jquery-ui/jquery-ui.min.js"></script>
    <script src="/bootstrap/dist/js/bootstrap.min.js"></script>
    <script src="/js/buffer.min.js"></script>
    <script src="/js/bitcoinjs.min.js"></script>
    <script src="/js/qrcode.js"></script>
    {{{yield-styles}}}
    {{{yield-scripts}}}
  </head>
  <body>
    <div class="container-fluid">
      {{#navigation}}
      <nav class="navbar" role="navigation">
        <button type="button" class="btn btn-primary navbar-toggle" data-toggle="collapse" data-target="#nav">
          <span class="pull-right glyphicon glyphicon-list"></span>
          <span id="connection" class="pull-right glyphicon glyphicon-exclamation-sign"></span>
        </button>
        <div id="nav" class="collapse navbar-collapse">
          <div class="navbar">
            <ul class="nav navbar-nav">
              <li><a href="/{{user}}"><span class="glyphicon glyphicon-home"></span> Home</a></li>
              <li><a href="/{{user}}/report"><span class="glyphicon glyphicon-list-alt"></span> Sales</a></li>
              <li><a href="/{{user}}/wallet"><span class="fa fa-bank"></span> Wallet</a></li>
              <li><a href="/{{user}}/profile"><span class="glyphicon glyphicon-user"></span> Account</a></li>
              <li><a href="/{{user}}/edit"><span class="glyphicon glyphicon-cog"></span> Settings</a></li>
              <li><a href="/logout"><span class="glyphicon glyphicon-off"></span> Logout</a></li>
            </ul>
          </div>
        </div>
      </nav>
      {{/navigation}}

      {{{yield}}}
    </div>
  </body>
</html>