latest block
This commit is contained in:
parent
bd9a19e342
commit
a01b2ca069
@ -189,7 +189,7 @@ console.log(__dirname);
|
||||
console.log(`Node Express server listening on http://localhost:${PORT}`);
|
||||
});
|
||||
|
||||
cron.schedule('* * * * * *', () => {
|
||||
cron.schedule('* * * * *', () => {
|
||||
universalGetLatestBlockDetails('Testnet');
|
||||
universalGetLatestBlockDetails('Floonet');
|
||||
});
|
||||
|
@ -1,6 +1,8 @@
|
||||
import { getConnection } from "typeorm";
|
||||
import { Global } from "../global";
|
||||
|
||||
import {
|
||||
BlockchainBlock,
|
||||
} from '../entities';
|
||||
var moment = require("moment");
|
||||
moment.updateLocale('en', {
|
||||
relativeTime: {
|
||||
@ -300,6 +302,105 @@ export async function universalGetLatestBlockDetails(current_network) {
|
||||
BlockchainLatestBlockQuery[0].total_difficulty_randomx
|
||||
}
|
||||
|
||||
|
||||
const BlockchainBlockPaginationQuery = await getConnection(current_network).getRepository(
|
||||
BlockchainBlock,
|
||||
)
|
||||
.createQueryBuilder('blockchain_block')
|
||||
.select([
|
||||
'blockchain_block.Hash',
|
||||
'blockchain_block.Timestamp',
|
||||
'(blockchain_block.TotalDifficultyCuckaroo + blockchain_block.TotalDifficultyCuckatoo) as TotalCuckoo',
|
||||
'blockchain_block.TotalDifficultyCuckaroo',
|
||||
'blockchain_block.TotalDifficultyCuckatoo',
|
||||
'blockchain_block.TotalDifficultyProgpow',
|
||||
'blockchain_block.TotalDifficultyRandomx',
|
||||
'blockchain_block.previous_id',
|
||||
'blockchain_block.total_difficulty_cuckaroo - LAG(blockchain_block.total_difficulty_cuckaroo) OVER (ORDER BY blockchain_block.total_difficulty_cuckaroo) AS target_difficulty_cuckaroo',
|
||||
'blockchain_block.total_difficulty_cuckatoo - LAG(blockchain_block.total_difficulty_cuckatoo) OVER (ORDER BY blockchain_block.total_difficulty_cuckatoo) AS target_difficulty_cuckatoo',
|
||||
'blockchain_block.total_difficulty_progpow - LAG(blockchain_block.total_difficulty_progpow) OVER (ORDER BY blockchain_block.total_difficulty_progpow) AS target_difficulty_progpow',
|
||||
'blockchain_block.total_difficulty_randomx - LAG(blockchain_block.total_difficulty_randomx) OVER (ORDER BY blockchain_block.total_difficulty_randomx) AS target_difficulty_randomx',
|
||||
'blockchain_block.Height',
|
||||
'blockchain_block.EdgeBits',
|
||||
'COUNT(DISTINCT(blockchain_input.block_id)) AS input_count',
|
||||
'COUNT(DISTINCT(blockchain_kernel.block_id)) AS kernal_count',
|
||||
'COUNT(DISTINCT(blockchain_output.block_id)) AS output_count',
|
||||
'blockchain_block.Proof As PoWAlgo',
|
||||
])
|
||||
.leftJoin('blockchain_block.BlockchainInputs', 'blockchain_input')
|
||||
.leftJoin('blockchain_block.BlockchainKernels', 'blockchain_kernel')
|
||||
.leftJoin('blockchain_block.BlockchainOutputs', 'blockchain_output')
|
||||
.skip(0)
|
||||
.take(20)
|
||||
.orderBy('blockchain_block.Timestamp', 'DESC')
|
||||
.groupBy('blockchain_block.Hash')
|
||||
.getRawAndEntities();
|
||||
|
||||
//console.log(BlockchainBlockPaginationQuery.raw);
|
||||
|
||||
let BlockchainBlockResult = BlockchainBlockPaginationQuery.raw;
|
||||
let lastElemt =
|
||||
BlockchainBlockResult[BlockchainBlockResult.length - 1];
|
||||
const BlockchainPreviousBlockFetchQuery = await getConnection(Global.network).getRepository(
|
||||
BlockchainBlock,
|
||||
).findOne({
|
||||
select: ['TotalDifficultyCuckaroo', 'TotalDifficultyCuckatoo', 'TotalDifficultyProgpow', 'TotalDifficultyRandomx'],
|
||||
where: { Hash: lastElemt.previous_id },
|
||||
});
|
||||
|
||||
BlockchainBlockResult[BlockchainBlockResult.length - 1][
|
||||
'target_difficulty_cuckaroo'
|
||||
] = BlockchainPreviousBlockFetchQuery &&
|
||||
BlockchainPreviousBlockFetchQuery != undefined ?
|
||||
(parseInt(lastElemt.blockchain_block_total_difficulty_cuckaroo)
|
||||
? parseInt(lastElemt.blockchain_block_total_difficulty_cuckaroo)
|
||||
: 0) -
|
||||
(parseInt(BlockchainPreviousBlockFetchQuery.TotalDifficultyCuckaroo) ? parseInt(BlockchainPreviousBlockFetchQuery.TotalDifficultyCuckaroo) : 0)
|
||||
: 0;
|
||||
|
||||
BlockchainBlockResult[BlockchainBlockResult.length - 1][
|
||||
'target_difficulty_cuckatoo'
|
||||
] = BlockchainPreviousBlockFetchQuery &&
|
||||
BlockchainPreviousBlockFetchQuery != undefined ?
|
||||
(parseInt(lastElemt.blockchain_block_total_difficulty_cuckatoo)
|
||||
? parseInt(lastElemt.blockchain_block_total_difficulty_cuckatoo)
|
||||
: 0) -
|
||||
(parseInt(BlockchainPreviousBlockFetchQuery.TotalDifficultyCuckatoo) ? parseInt(BlockchainPreviousBlockFetchQuery.TotalDifficultyCuckatoo) : 0)
|
||||
: 0;
|
||||
|
||||
BlockchainBlockResult[BlockchainBlockResult.length - 1][
|
||||
'target_difficulty_progpow'
|
||||
] = BlockchainPreviousBlockFetchQuery &&
|
||||
BlockchainPreviousBlockFetchQuery != undefined ?
|
||||
(parseInt(lastElemt.blockchain_block_total_difficulty_progpow)
|
||||
? parseInt(lastElemt.blockchain_block_total_difficulty_progpow)
|
||||
: 0) -
|
||||
(parseInt(BlockchainPreviousBlockFetchQuery.TotalDifficultyProgpow) ? parseInt(BlockchainPreviousBlockFetchQuery.TotalDifficultyProgpow) : 0)
|
||||
: 0;
|
||||
|
||||
BlockchainBlockResult[BlockchainBlockResult.length - 1][
|
||||
'target_difficulty_randomx'
|
||||
] = BlockchainPreviousBlockFetchQuery &&
|
||||
BlockchainPreviousBlockFetchQuery != undefined ?
|
||||
(parseInt(lastElemt.blockchain_block_total_difficulty_randomx)
|
||||
? parseInt(lastElemt.blockchain_block_total_difficulty_randomx)
|
||||
: 0) -
|
||||
(parseInt(BlockchainPreviousBlockFetchQuery.TotalDifficultyRandomx) ? parseInt(BlockchainPreviousBlockFetchQuery.TotalDifficultyRandomx) : 0)
|
||||
: 0;
|
||||
|
||||
BlockchainBlockResult.forEach(e => {
|
||||
var latest_block = dateDiff(e.blockchain_block_timestamp);
|
||||
e['hashstart'] = e.blockchain_block_hash.slice(0, 2);
|
||||
e['hashend'] = e.blockchain_block_hash.slice(62, 64);
|
||||
let balance = e.blockchain_block_hash.substring(2, 62);
|
||||
let arr = balance.match(/.{1,6}/g);
|
||||
e['hasharray'] = arr.map(i => '#' + i);
|
||||
e['age'] = latest_block;
|
||||
});
|
||||
|
||||
//console.log(BlockchainBlockResult);
|
||||
|
||||
final_result['BlockchainBlockResult']= BlockchainBlockResult;
|
||||
Global.client.set(key, JSON.stringify(final_result), 'EX', parseInt(process.env.REDIS_EXPIRY), function(err){
|
||||
//client.set(key, JSON.stringify(body));
|
||||
});
|
||||
|
@ -18,7 +18,7 @@
|
||||
<div class="block_div"><h6 >Age</h6><span class="blck_value">{{ blockdetails.age }}</span></div>
|
||||
</div>
|
||||
<div class="col-6 col-md-3 tble_col">
|
||||
<div class="block_div"><h6>Difficulty</h6><span class="blck_value">{{ blockdetails.target_difficulty | number }}</span></div>
|
||||
<div class="block_div"><h6>Difficulty</h6><span class="blck_value">{{(blockdetails.PoWAlgo == 'Cuckoo') ? (blockdetails.target_difficulty_cuckatoo | number) : (blockdetails.PoWAlgo == 'RandomX') ? (blockdetails.target_difficulty_randomx | number) : (blockdetails.PoWAlgo == 'ProgPow') ? (blockdetails.target_difficulty_progpow | number) : 0}}</span></div>
|
||||
</div>
|
||||
<div class="col-6 col-sm-6 col-md-3 tble_col">
|
||||
<div class="block_div"><h6 class="mb-0">Pow Algo</h6><span class="blck_value">{{ blockdetails.PoWAlgo }}</span></div>
|
||||
|
@ -15,6 +15,9 @@ import { BlockAppendComponent } from '../block-append/block-append.component';
|
||||
export class LatestblocksComponent implements OnInit {
|
||||
public hashvalues: any;
|
||||
public pagedata: any = [];
|
||||
public CurrentpageNumber: Number;
|
||||
public FirstPageListData: any = [];
|
||||
public DifferentList: any = [];
|
||||
public blockAppend: any;
|
||||
public blockdetails: any;
|
||||
public lastblock: any;
|
||||
@ -41,6 +44,7 @@ export class LatestblocksComponent implements OnInit {
|
||||
|
||||
public gettinghashList(CurrentPage, PageSize) {
|
||||
let params = new HttpParams();
|
||||
this.CurrentpageNumber = CurrentPage;
|
||||
params = params.append('CurrentPage', CurrentPage);
|
||||
params = params.append('PageSize', PageSize);
|
||||
this.chartService.apiGetRequest(params, '/blockchain_block/list').subscribe(
|
||||
@ -49,6 +53,7 @@ export class LatestblocksComponent implements OnInit {
|
||||
this.pagedata = res.response;
|
||||
this.hashvalues = res.response.BlockchainBlockResult;
|
||||
if(CurrentPage == 1){
|
||||
this.FirstPageListData = res.response.BlockchainBlockResult;
|
||||
this.lastblock = res.response.BlockchainBlockResult[0].blockchain_block_height;
|
||||
//console.log(this.lastblock);
|
||||
|
||||
@ -67,30 +72,61 @@ export class LatestblocksComponent implements OnInit {
|
||||
//console.log('Create');
|
||||
//this.createBlock();
|
||||
}
|
||||
if (this.CurrentpageNumber == 1) {
|
||||
|
||||
// console.log("Enter If");
|
||||
// console.log(this.blockdetails);
|
||||
console.log(this.FirstPageListData);
|
||||
|
||||
var onlyInA = this.FirstPageListData.filter(this.comparer(this.blockdetails.BlockchainBlockResult));
|
||||
var onlyInB = this.blockdetails.BlockchainBlockResult.filter(this.comparer(this.FirstPageListData));
|
||||
|
||||
this.DifferentList = onlyInA.concat(onlyInB);
|
||||
this.DifferentList.forEach(DifferentList => {
|
||||
this.createBlock(DifferentList)
|
||||
});
|
||||
|
||||
console.log(this.DifferentList);
|
||||
}
|
||||
this.lastblock = this.blockdetails.block_height;
|
||||
//console.log(this.lastblock);
|
||||
});
|
||||
}
|
||||
|
||||
public createBlock() {
|
||||
public comparer(otherArray){
|
||||
return function(current){
|
||||
return otherArray.filter(function(other){
|
||||
return other.blockchain_block_height == current.blockchain_block_height
|
||||
}).length == 0;
|
||||
}
|
||||
}
|
||||
|
||||
public createBlock(DifferentList) {
|
||||
this.FirstPageListData.unshift(DifferentList);
|
||||
const blockFactory = this.resolver.resolveComponentFactory(
|
||||
BlockAppendComponent,
|
||||
);
|
||||
const block = this.block.createComponent(blockFactory, 0);
|
||||
this.blockAppend = {};
|
||||
this.blockAppend['blockchain_block_hash'] = this.blockdetails.hash;
|
||||
this.blockAppend['blockchain_block_hash'] = DifferentList.blockchain_block_hash;
|
||||
this.blockAppend[
|
||||
'blockchain_block_height'
|
||||
] = this.blockdetails.block_height;
|
||||
this.blockAppend['age'] = this.blockdetails.age;
|
||||
this.blockAppend['target_difficulty'] = this.blockdetails.Difficulty;
|
||||
this.blockAppend['PoWAlgo'] = this.blockdetails.proof;
|
||||
this.blockAppend['input_count'] = this.blockdetails.input_count;
|
||||
this.blockAppend['output_count'] = this.blockdetails.output_count;
|
||||
this.blockAppend['kernal_count'] = this.blockdetails.kernel_count;
|
||||
this.blockAppend['hashstart'] = this.blockdetails.hashstart;
|
||||
this.blockAppend['hashend'] = this.blockdetails.hashend;
|
||||
this.blockAppend['hasharray'] = this.blockdetails.hasharray;
|
||||
] = DifferentList.blockchain_block_height;
|
||||
this.blockAppend['age'] = DifferentList.age;
|
||||
//this.blockAppend['target_difficulty'] = 0;
|
||||
this.blockAppend['PoWAlgo'] = DifferentList.powalgo;
|
||||
this.blockAppend['input_count'] = DifferentList.input_count;
|
||||
this.blockAppend['output_count'] = DifferentList.output_count;
|
||||
this.blockAppend['kernal_count'] = DifferentList.kernal_count;
|
||||
this.blockAppend['hashstart'] = DifferentList.hashstart;
|
||||
this.blockAppend['hashend'] = DifferentList.hashend;
|
||||
this.blockAppend['hasharray'] = DifferentList.hasharray;
|
||||
this.blockAppend['target_difficulty_cuckaroo'] = DifferentList.target_difficulty_cuckaroo;
|
||||
this.blockAppend['target_difficulty_cuckatoo'] = DifferentList.target_difficulty_cuckatoo;
|
||||
this.blockAppend['target_difficulty_progpow'] = DifferentList.target_difficulty_progpow;
|
||||
this.blockAppend['target_difficulty_randomx'] = DifferentList.target_difficulty_randomx;
|
||||
|
||||
//console.log( this.blockAppend);
|
||||
|
||||
block.instance.blockdetails = this.blockAppend;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user