var models = require('../models'); var express = require('express'); var router = express.Router(); /* GET home page. */ router.post('/', async function(req, res, next) { let search = encodeURI(req.body.search).trim(); // checking extra -000 in the end if (search.endsWith('-000')) { search = search.slice(0, -4); } // checking if it is block index const blockIndex = parseInt(search); if (isNaN(blockIndex) === false && blockIndex.toString() === search) { const block = await models.Block.findOne({ attributes: ['hash'], where: { height: blockIndex, }, }); if (block) { res.redirect(`/block/${block.hash}/`); return; } } if (search.length === 34) { // looking for address const address = await models.Address.findOne({ where: { address: search, }, }); if (address) { res.redirect(`/address/${address.address}/`); return; } } else if(search.length === 64) { // looking for transaction const transaction = await models.Transaction.findOne({ where: { txid: search, }, }); if (transaction) { res.redirect(`/transaction/${transaction.txid}/`); return; } // looking for block const block = await models.Block.findOne({ attributes: ['hash'], where: { hash: search, }, }); if (block) { res.redirect(`/block/${block.hash}/`); return; } } res.status(404).render('404'); }); module.exports = router;