Blockchain explorer
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

54 lines
1.2 KiB

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,
as: 'txtx',
}],
});
if (transaction === null) {
res.status(404).render('404');
return;
}
const vouts = [];
transaction.Vouts.forEach((vout) => {
vout.Addresses.forEach((address) => {
vouts.push({
address: address.address,
value: vout.value,
});
});
});
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;
transaction.blockTime = transaction.Block.time.toUTCString();
res.render('transaction', {
transaction,
vouts,
confirmations,
});
});
module.exports = router;