var models = require('../models'); var express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/:txid', async function(req, res, next) { const txid = encodeURI(req.params.txid); const transaction = await models.Transaction.findOne({ where: { txid, }, include: [{ attributes: ['hash', 'time', 'height'], model: models.Block, },{ model: models.Vout, include: [ { model: models.Address, }, { model: models.Transaction, } ], },], }); if (transaction === null) { res.status(404).render('404'); return; } const lastBlock = await models.Block.findOne({ attributes: [ [models.sequelize.fn('MAX', models.sequelize.col('height')), 'maxheight'] ], raw: true, }); const confirmations = lastBlock.maxheight - transaction.Block.height + 1; const txJson = transaction.toJSON(); const txTemplate = Object.assign(txJson, { vins: txJson.Vouts.filter((vout) => vout.TransactionVouts.direction === 0), vouts: txJson.Vouts.filter((vout) => vout.TransactionVouts.direction === 1), }); txTemplate.blockTime = transaction.Block.time.toUTCString(); res.render('transaction', { transaction: txTemplate, // vouts, confirmations, }); }); module.exports = router;