diff --git a/server/controllers/BlockchainBlock.ts b/server/controllers/BlockchainBlock.ts index f0bb6ce..9b7b4ac 100644 --- a/server/controllers/BlockchainBlock.ts +++ b/server/controllers/BlockchainBlock.ts @@ -1552,83 +1552,119 @@ export class BlockchainBlockController { }); let height = BlockchainLatestBlockQuery[0].height; + var coin_existence; + // if (height > 12960) { + // var remain_block = height - 12960; + // var coin_existence = + // 1440 * 200 + + // 1440 * 180 + + // 1440 * 160 + + // 1440 * 140 + + // 1440 * 120 + + // 1440 * 100 + + // 1440 * 80 + + // 1440 * 60 + + // 1440 * 50 + + // 25 * remain_block; + // } else if (height > 11520) { + // var remain_block = height - 11520; + // var coin_existence = + // 1440 * 200 + + // 1440 * 180 + + // 1440 * 160 + + // 1440 * 140 + + // 1440 * 120 + + // 1440 * 100 + + // 1440 * 80 + + // 1440 * 60 + + // remain_block * 50; + // } else if (height > 10080) { + // var remain_block = height - 10080; + // var coin_existence = + // 1440 * 200 + + // 1440 * 180 + + // 1440 * 160 + + // 1440 * 140 + + // 1440 * 120 + + // 1440 * 100 + + // 1440 * 80 + + // remain_block * 60; + // } else if (height > 8640) { + // var remain_block = height - 8640; + // var coin_existence = + // 1440 * 200 + + // 1440 * 180 + + // 1440 * 160 + + // 1440 * 140 + + // 1440 * 120 + + // 1440 * 100 + + // remain_block * 80; + // } else if (height > 7200) { + // var remain_block = height - 7200; + // var coin_existence = + // 1440 * 200 + + // 1440 * 180 + + // 1440 * 160 + + // 1440 * 140 + + // 1440 * 120 + + // remain_block * 100; + // } else if (height > 5760) { + // var remain_block = height - 5760; + // var coin_existence = + // 1440 * 200 + + // 1440 * 180 + + // 1440 * 160 + + // 1440 * 140 + + // remain_block * 120; + // } else if (height > 4320) { + // var remain_block = height - 4320; + // var coin_existence = + // 1440 * 200 + 1440 * 180 + 1440 * 160 + remain_block * 140; + // } else if (height > 2880) { + // var remain_block = height - 2880; + // var coin_existence = 1440 * 200 + 1440 * 180 + remain_block * 160; + // } else if (height > 1440) { + // var remain_block = height - 1440; + // var coin_existence = 1440 * 200 + remain_block * 180; + // } else { + // var coin_existence = height * 200; + // } + + let DAY_HEIGHT = 1440 +/// Height of the first epic block emission era +const BLOCK_ERA_1 = DAY_HEIGHT * 334; +/// Height of the second epic block emission era +const BLOCK_ERA_2 = BLOCK_ERA_1 + (DAY_HEIGHT * 470); +/// Height of the third epic block emission era +const BLOCK_ERA_3 = BLOCK_ERA_2 + (DAY_HEIGHT * 601); +/// Height of the fourth epic block emission era +const BLOCK_ERA_4 = BLOCK_ERA_3 + (DAY_HEIGHT * 800); +/// Height of the fifth epic block emission era +const BLOCK_ERA_5 = BLOCK_ERA_4 + (DAY_HEIGHT * 1019); +/// After the epic block emission era 6, each era will last 4 years (approximately 1460 days) +const BLOCK_ERA_6_ONWARDS = DAY_HEIGHT * 1460; +/// Block Reward that will be assigned after we change from era 5 to era 6. +const BASE_REWARD_ERA_6_ONWARDS = 0.15625; - if (height > 12960) { - var remain_block = height - 12960; - var coin_existence = - 1440 * 200 + - 1440 * 180 + - 1440 * 160 + - 1440 * 140 + - 1440 * 120 + - 1440 * 100 + - 1440 * 80 + - 1440 * 60 + - 1440 * 50 + - 25 * remain_block; - } else if (height > 11520) { - var remain_block = height - 11520; - var coin_existence = - 1440 * 200 + - 1440 * 180 + - 1440 * 160 + - 1440 * 140 + - 1440 * 120 + - 1440 * 100 + - 1440 * 80 + - 1440 * 60 + - remain_block * 50; - } else if (height > 10080) { - var remain_block = height - 10080; - var coin_existence = - 1440 * 200 + - 1440 * 180 + - 1440 * 160 + - 1440 * 140 + - 1440 * 120 + - 1440 * 100 + - 1440 * 80 + - remain_block * 60; - } else if (height > 8640) { - var remain_block = height - 8640; - var coin_existence = - 1440 * 200 + - 1440 * 180 + - 1440 * 160 + - 1440 * 140 + - 1440 * 120 + - 1440 * 100 + - remain_block * 80; - } else if (height > 7200) { - var remain_block = height - 7200; - var coin_existence = - 1440 * 200 + - 1440 * 180 + - 1440 * 160 + - 1440 * 140 + - 1440 * 120 + - remain_block * 100; - } else if (height > 5760) { - var remain_block = height - 5760; - var coin_existence = - 1440 * 200 + - 1440 * 180 + - 1440 * 160 + - 1440 * 140 + - remain_block * 120; - } else if (height > 4320) { - var remain_block = height - 4320; - var coin_existence = - 1440 * 200 + 1440 * 180 + 1440 * 160 + remain_block * 140; - } else if (height > 2880) { - var remain_block = height - 2880; - var coin_existence = 1440 * 200 + 1440 * 180 + remain_block * 160; - } else if (height > 1440) { - var remain_block = height - 1440; - var coin_existence = 1440 * 200 + remain_block * 180; - } else { - var coin_existence = height * 200; - } +/// Compute the total reward generated by each block in a given height. + if (height <= BLOCK_ERA_1) { + coin_existence = 16; + } else if (height <= BLOCK_ERA_2) { + coin_existence = 8; + } else if (height <= BLOCK_ERA_3) { + coin_existence = 4; + } else if (height <= BLOCK_ERA_4) { + coin_existence = 2; + } else if (height <= BLOCK_ERA_5) { + coin_existence = 1; + } else { + // After the era 6, we reduce the block rewards by half each 1460 days. + // Minus 1 to include multiples in the same index + // (i.e changes greater than to greater or equals to) + let height_with_offset = height - (BLOCK_ERA_5 - 1); + let exp = height_with_offset / BLOCK_ERA_6_ONWARDS; + coin_existence = BASE_REWARD_ERA_6_ONWARDS / (1 << exp); + } letest_block = this.dateDiff(BlockchainLatestBlockQuery[0].timestamp,true); letest_block_num = letest_block; // "72" diff --git a/server/socket/block.ts b/server/socket/block.ts index f542d2e..3eb3692 100644 --- a/server/socket/block.ts +++ b/server/socket/block.ts @@ -3,20 +3,20 @@ import { getConnection } from "typeorm"; var moment = require("moment"); moment.updateLocale('en', { relativeTime: { - future: "in %s", - past: "%s ago", - s: "seconds", - m: "1 minute", - mm: "%d minutes", - h: "1 hour", - hh: "%d hours", - d: "1 day", - dd: "%d days", - M: "1 month", - MM: "%d months", - y: "1 year", - yy: "%d years" - } + future: "in %s", + past: "%s ago", + s: "seconds", + m: "1 minute", + mm: "%d minutes", + h: "1 hour", + hh: "%d hours", + d: "1 day", + dd: "%d days", + M: "1 month", + MM: "%d months", + y: "1 year", + yy: "%d years" + } }); function dateDiff(date2, insec = false) { @@ -29,7 +29,7 @@ function dateDiff(date2, insec = false) { var enddayrnd = Math.round(enddaydif); // if(enddayrnd < 1) { var time = convertMinsToHrmin( - Math.abs(date2.getTime() - current_date.getTime()),insec + Math.abs(date2.getTime() - current_date.getTime()), insec ); return time; // } else if(enddayrnd == 1) { @@ -40,9 +40,9 @@ function dateDiff(date2, insec = false) { } -function convertMinsToHrmin(millseconds,insec) { +function convertMinsToHrmin(millseconds, insec) { var seconds = Math.floor(millseconds / 1000); - if(insec){ + if (insec) { let sec = Math.floor(millseconds / 1000); return sec; } @@ -81,83 +81,118 @@ export async function universalGetLatestBlockDetails(socket) { "SELECT bb.timestamp,bb.proof,bb.height,bb.edge_bits,bb.hash,bb.secondary_scaling, bb.previous_id, bb.total_difficulty_cuckaroo, bb.total_difficulty_cuckatoo, bb.total_difficulty_progpow, bb.total_difficulty_randomx, COUNT(DISTINCT(bi.block_id)) AS input_count, COUNT(DISTINCT(bk.block_id)) AS kernel_count, COUNT(DISTINCT(bo.block_id)) AS output_count FROM blockchain_block bb LEFT JOIN blockchain_input bi ON bi.block_id = bb.hash LEFT JOIN blockchain_kernel bk ON bk.block_id = bb.hash LEFT JOIN blockchain_output bo ON bo.block_id = bb.hash group by bb.hash, bb.timestamp ORDER BY bb.timestamp DESC LIMIT 1"); const BlockchainPreviousBlockQuery = await getConnection().query( "SELECT total_difficulty_cuckaroo, total_difficulty_cuckatoo, total_difficulty_progpow, total_difficulty_randomx FROM blockchain_block WHERE hash=" + - "'" + - BlockchainLatestBlockQuery[0].previous_id + - "'" + "'" + + BlockchainLatestBlockQuery[0].previous_id + + "'" ); let height = BlockchainLatestBlockQuery[0].height; - if (height > 12960) { - var remain_block = height - 12960; - var coin_existence = - 1440 * 200 + - 1440 * 180 + - 1440 * 160 + - 1440 * 140 + - 1440 * 120 + - 1440 * 100 + - 1440 * 80 + - 1440 * 60 + - 1440 * 50 + - 25 * remain_block; - } else if (height > 11520) { - var remain_block = height - 11520; - var coin_existence = - 1440 * 200 + - 1440 * 180 + - 1440 * 160 + - 1440 * 140 + - 1440 * 120 + - 1440 * 100 + - 1440 * 80 + - 1440 * 60 + - remain_block * 50; - } else if (height > 10080) { - var remain_block = height - 10080; - var coin_existence = - 1440 * 200 + - 1440 * 180 + - 1440 * 160 + - 1440 * 140 + - 1440 * 120 + - 1440 * 100 + - 1440 * 80 + - remain_block * 60; - } else if (height > 8640) { - var remain_block = height - 8640; - var coin_existence = - 1440 * 200 + - 1440 * 180 + - 1440 * 160 + - 1440 * 140 + - 1440 * 120 + - 1440 * 100 + - remain_block * 80; - } else if (height > 7200) { - var remain_block = height - 7200; - var coin_existence = - 1440 * 200 + - 1440 * 180 + - 1440 * 160 + - 1440 * 140 + - 1440 * 120 + - remain_block * 100; - } else if (height > 5760) { - var remain_block = height - 5760; - var coin_existence = - 1440 * 200 + 1440 * 180 + 1440 * 160 + 1440 * 140 + remain_block * 120; - } else if (height > 4320) { - var remain_block = height - 4320; - var coin_existence = - 1440 * 200 + 1440 * 180 + 1440 * 160 + remain_block * 140; - } else if (height > 2880) { - var remain_block = height - 2880; - var coin_existence = 1440 * 200 + 1440 * 180 + remain_block * 160; - } else if (height > 1440) { - var remain_block = height - 1440; - var coin_existence = 1440 * 200 + remain_block * 180; + // if (height > 12960) { + // var remain_block = height - 12960; + // var coin_existence = + // 1440 * 200 + + // 1440 * 180 + + // 1440 * 160 + + // 1440 * 140 + + // 1440 * 120 + + // 1440 * 100 + + // 1440 * 80 + + // 1440 * 60 + + // 1440 * 50 + + // 25 * remain_block; + // } else if (height > 11520) { + // var remain_block = height - 11520; + // var coin_existence = + // 1440 * 200 + + // 1440 * 180 + + // 1440 * 160 + + // 1440 * 140 + + // 1440 * 120 + + // 1440 * 100 + + // 1440 * 80 + + // 1440 * 60 + + // remain_block * 50; + // } else if (height > 10080) { + // var remain_block = height - 10080; + // var coin_existence = + // 1440 * 200 + + // 1440 * 180 + + // 1440 * 160 + + // 1440 * 140 + + // 1440 * 120 + + // 1440 * 100 + + // 1440 * 80 + + // remain_block * 60; + // } else if (height > 8640) { + // var remain_block = height - 8640; + // var coin_existence = + // 1440 * 200 + + // 1440 * 180 + + // 1440 * 160 + + // 1440 * 140 + + // 1440 * 120 + + // 1440 * 100 + + // remain_block * 80; + // } else if (height > 7200) { + // var remain_block = height - 7200; + // var coin_existence = + // 1440 * 200 + + // 1440 * 180 + + // 1440 * 160 + + // 1440 * 140 + + // 1440 * 120 + + // remain_block * 100; + // } else if (height > 5760) { + // var remain_block = height - 5760; + // var coin_existence = + // 1440 * 200 + 1440 * 180 + 1440 * 160 + 1440 * 140 + remain_block * 120; + // } else if (height > 4320) { + // var remain_block = height - 4320; + // var coin_existence = + // 1440 * 200 + 1440 * 180 + 1440 * 160 + remain_block * 140; + // } else if (height > 2880) { + // var remain_block = height - 2880; + // var coin_existence = 1440 * 200 + 1440 * 180 + remain_block * 160; + // } else if (height > 1440) { + // var remain_block = height - 1440; + // var coin_existence = 1440 * 200 + remain_block * 180; + // } else { + // var coin_existence = height * 200; + // } + var coin_existence; + let DAY_HEIGHT = 1440 + /// Height of the first epic block emission era + const BLOCK_ERA_1 = DAY_HEIGHT * 334; + /// Height of the second epic block emission era + const BLOCK_ERA_2 = BLOCK_ERA_1 + (DAY_HEIGHT * 470); + /// Height of the third epic block emission era + const BLOCK_ERA_3 = BLOCK_ERA_2 + (DAY_HEIGHT * 601); + /// Height of the fourth epic block emission era + const BLOCK_ERA_4 = BLOCK_ERA_3 + (DAY_HEIGHT * 800); + /// Height of the fifth epic block emission era + const BLOCK_ERA_5 = BLOCK_ERA_4 + (DAY_HEIGHT * 1019); + /// After the epic block emission era 6, each era will last 4 years (approximately 1460 days) + const BLOCK_ERA_6_ONWARDS = DAY_HEIGHT * 1460; + /// Block Reward that will be assigned after we change from era 5 to era 6. + const BASE_REWARD_ERA_6_ONWARDS = 0.15625; + /// Compute the total reward generated by each block in a given height. + if (height <= BLOCK_ERA_1) { + coin_existence = 16; + } else if (height <= BLOCK_ERA_2) { + coin_existence = 8; + } else if (height <= BLOCK_ERA_3) { + coin_existence = 4; + } else if (height <= BLOCK_ERA_4) { + coin_existence = 2; + } else if (height <= BLOCK_ERA_5) { + coin_existence = 1; } else { - var coin_existence = height * 200; + // After the era 6, we reduce the block rewards by half each 1460 days. + // Minus 1 to include multiples in the same index + // (i.e changes greater than to greater or equals to) + let height_with_offset = height - (BLOCK_ERA_5 - 1); + let exp = height_with_offset / BLOCK_ERA_6_ONWARDS; + coin_existence = BASE_REWARD_ERA_6_ONWARDS / (1 << exp); } letest_block = dateDiff(BlockchainLatestBlockQuery[0].timestamp, true); @@ -200,11 +235,11 @@ export async function universalGetLatestBlockDetails(socket) { BlockchainPreviousBlockQuery[0].total_difficulty_randomx; } - if(BlockchainLatestBlockQuery[0].proof == "RandomX"){ - var Difficulty = targetdifficultyrandomx; - }else if(BlockchainLatestBlockQuery[0].proof == "ProgPow"){ + if (BlockchainLatestBlockQuery[0].proof == "RandomX") { + var Difficulty = targetdifficultyrandomx; + } else if (BlockchainLatestBlockQuery[0].proof == "ProgPow") { var Difficulty = targetdifficultyprogpow; - }else if(BlockchainLatestBlockQuery[0].proof == "Cuckoo" ){ + } else if (BlockchainLatestBlockQuery[0].proof == "Cuckoo") { var Difficulty = targetdifficultycuckatoo; } @@ -214,9 +249,9 @@ export async function universalGetLatestBlockDetails(socket) { var TotalCuckoo = parseInt(BlockchainLatestBlockQuery[0].total_difficulty_cuckatoo) + parseInt(BlockchainLatestBlockQuery[0].total_difficulty_cuckaroo); - let balance = BlockchainLatestBlockQuery[0].hash.substring(2, 62); - let arr = balance.match(/.{1,6}/g); - var hasharray = arr.map(i => '#' + i); + let balance = BlockchainLatestBlockQuery[0].hash.substring(2, 62); + let arr = balance.match(/.{1,6}/g); + var hasharray = arr.map(i => '#' + i); socket.emit("latestblockdetail", { block_height, @@ -230,7 +265,7 @@ export async function universalGetLatestBlockDetails(socket) { targetdifficultyprogpow, targetdifficultyrandomx, TotalCuckoo, - age : dateTimeDurationString, + age: dateTimeDurationString, input_count: BlockchainLatestBlockQuery[0].input_count, kernel_count: BlockchainLatestBlockQuery[0].kernel_count, output_count: BlockchainLatestBlockQuery[0].output_count, @@ -238,8 +273,8 @@ export async function universalGetLatestBlockDetails(socket) { proof: BlockchainLatestBlockQuery[0].proof, hasharray: hasharray, Difficulty: Difficulty, - hashstart:BlockchainLatestBlockQuery[0].hash.slice(0, 2), - hashend:BlockchainLatestBlockQuery[0].hash.slice(62,64), + hashstart: BlockchainLatestBlockQuery[0].hash.slice(0, 2), + hashend: BlockchainLatestBlockQuery[0].hash.slice(62, 64), TotalDifficultyCuckaroo: BlockchainLatestBlockQuery[0].total_difficulty_cuckaroo, TotalDifficultyCuckatoo: diff --git a/src/app/view/graph-view/graph-detail/graph-detail.component.html b/src/app/view/graph-view/graph-detail/graph-detail.component.html index 8ed5bbf..ffd3909 100644 --- a/src/app/view/graph-view/graph-detail/graph-detail.component.html +++ b/src/app/view/graph-view/graph-detail/graph-detail.component.html @@ -69,6 +69,9 @@ {{chartType | translate}}
All + Cuckoo RandomX
- All Cuckoo 1 Day 1 {{'home.WEEK' | translate}} 15 {{'home.DAYS' | translate}} 30 {{'home.DAYS' | translate}} 60 {{'home.DAYS' | translate}} 3 {{'home.MONTHS' | translate}}
@@ -152,8 +157,6 @@

{{'home.EXPLORE' | translate}}

diff --git a/src/app/view/graph-view/graph-detail/graph-detail.component.ts b/src/app/view/graph-view/graph-detail/graph-detail.component.ts index 45dac8f..6c2702b 100644 --- a/src/app/view/graph-view/graph-detail/graph-detail.component.ts +++ b/src/app/view/graph-view/graph-detail/graph-detail.component.ts @@ -23,7 +23,7 @@ export class GraphDetailComponent implements OnInit { public chartType : any = []; public selectedItem: Number = 3; public selectedItem8: Number = 2; - public selectedItem12: Number = 1; + public selectedItem12: Number = 4; public Type: any = ''; public selectedTarget: Number = 3; public selectedTarget12: Number = 1; @@ -34,7 +34,6 @@ export class GraphDetailComponent implements OnInit { public GraphtDate: any; public GraphtHour: any; public linearTotalGraphData: any = []; - public TdifficultyRange: any = '1 day'; constructor( private route: ActivatedRoute, diff --git a/src/app/view/home/graph-list/graph-list.component.html b/src/app/view/home/graph-list/graph-list.component.html index 6616ecf..cae6cc1 100644 --- a/src/app/view/home/graph-list/graph-list.component.html +++ b/src/app/view/home/graph-list/graph-list.component.html @@ -1,68 +1,4 @@
-
-
-
-

{{'home.TARGET_DIFFICULTY' | translate}}

- - -
- - - - -
-
- - - -
-
@@ -74,6 +10,10 @@
All + Cuckoo @@ -308,7 +248,7 @@
-
+

{{'home.BLOCKS_MINED' | translate}}

@@ -581,5 +521,71 @@
--> +
+
+
+

{{'home.TARGET_DIFFICULTY' | translate}}

+ + +
+ + + + +
+
+ + +
+
diff --git a/src/app/view/home/graph-list/graph-list.component.ts b/src/app/view/home/graph-list/graph-list.component.ts index 5f3a139..d6f3148 100644 --- a/src/app/view/home/graph-list/graph-list.component.ts +++ b/src/app/view/home/graph-list/graph-list.component.ts @@ -50,16 +50,16 @@ export class GraphListComponent implements OnInit { public selectedItem9: Number = 3; public selectedItem10: Number = 3; public selectedItem11: Number = 3; - public selectedItem12: Number = 1; + public selectedItem12: Number = 4; public selectedTarget: Number = 6; - public selectedTarget12: Number = 1; + public selectedTarget12: Number = 4; public tInput: any; public tOutput: any; public tKernal: any; public tDate: any; public tHour: any; - public Type: any = ''; + public Type: any = 'all'; public difficultyRange: any = '1 day'; public TdifficultyRange: any = '1 day'; @@ -386,7 +386,7 @@ export class GraphListComponent implements OnInit { interval = '', type = '' ) { - this.Type = type != '' ? type : this.Type == '' ? 'cuckatoo' : this.Type; + this.Type = type != '' ? type : this.Type == '' ? 'all' : this.Type; return new Promise((resolve, reject) => { let params = new HttpParams(); params = params.append('FromDate', fromDate); @@ -400,18 +400,73 @@ export class GraphListComponent implements OnInit { res => { if (res['status'] == 200) { let DifficultychartDate = res.response.Date; - let BlocksChartDate = res.response.blockDate; - let TargetDifficulty = res.response.TargetDifficulty; + let DifficultyCuckatoo = res.response.DifficultyCuckatoo; + let DifficultyRandomx = res.response.DifficultyRandomx; + let DifficultyProgpow = res.response.DifficultyProgpow; + let data; + switch(this.Type) { + case 'all': + data = + [ + { + x: DifficultychartDate, + y: DifficultyCuckatoo, + text: DifficultychartDate, + mode: 'lines+markers', + type: 'scatter', + name: '', + line: { color: '#ac3333' }, + hovertemplate: '%{text}
Cuckoo : %{y:,}', + }, + { + x: DifficultychartDate, + y: DifficultyProgpow, + text: DifficultychartDate, + mode: 'lines+markers', + type: 'scatter', + name: '', + line: { color: '#ac3333' }, + hovertemplate: '%{text}
Progpow : %{y:,}', + }, + { + x: DifficultychartDate, + y: DifficultyRandomx, + text: DifficultychartDate, + mode: 'lines+markers', + type: 'scatter', + name: '', + line: { color: '#ac3333' }, + hovertemplate: '%{text}
RandomX : %{y:,}', + }, + ]; + break; + default: + let yvalue = this.Type == 'cuckatoo' ? DifficultyCuckatoo : this.Type == 'progpow' ? DifficultyProgpow : this.Type == 'randomx' ? DifficultyRandomx : [] + data = + [ + { + x: DifficultychartDate, + y: yvalue, + text: DifficultychartDate, + mode: 'lines+markers', + type: 'scatter', + name: '', + line: { color: '#ac3333' }, + hovertemplate: '%{text}
Difficulty : %{y:,}', + }]; + break; + } + let range = [res.response.Minrange, res.response.Maxrange] let tickformat = res.response.tickFormat; - this.lg_last = - TargetDifficulty[TargetDifficulty.length - 1]; + // this.lg_last = + // TargetDifficulty[TargetDifficulty.length - 1]; switch(difftype){ case 'total': this.totaldifficultyChartFunc( DifficultychartDate, - TargetDifficulty, + data, this.Type, range, tickformat @@ -420,7 +475,7 @@ export class GraphListComponent implements OnInit { case 'target': this.difficultyChartFunc( DifficultychartDate, - TargetDifficulty, + data, this.Type, range, tickformat @@ -463,51 +518,10 @@ export class GraphListComponent implements OnInit { }); } - difficultyChartFunc(DifficultychartDate, TargetDifficulty, Type, range, tickformat) { + difficultyChartFunc(DifficultychartDate, data, Type, range, tickformat) { // console.log('range rangerangerange',range); this.linearGraphData = { - data: [ - { - x: DifficultychartDate, - y: TargetDifficulty, - text: DifficultychartDate, - mode: 'lines+markers', - type: 'scatter', - name: '', - line: { color: '#ac3333' }, - hovertemplate: '%{text}
Difficulty : %{y:,}', - }, - // { - // x: DifficultychartDate, - // y: DifficultyCuckatoo, - // text: DifficultyCuckatoo, - // mode: 'lines+markers', - // type: 'scatter', - // name: '', - // line: { color: '#A876C6' }, - // hovertemplate: '%{x}
Cuckatoo : %{text:,}', - // }, - // { - // x: DifficultychartDate, - // y: DifficultyProgpow, - // text: DifficultyProgpow, - // mode: 'lines+markers', - // type: 'scatter', - // name: '', - // line: { color: '#54CFDC' }, - // hovertemplate: '%{x}
Progpow : %{text:,}', - // }, - // { - // x: DifficultychartDate, - // y: DifficultyRandomx, - // text: DifficultyRandomx, - // mode: 'lines+markers', - // type: 'scatter', - // name: '', - // line: { color: '#77817C' }, - // hovertemplate: '%{x}
Randomx : %{text:,}', - // }, - ], + data: data , layout: { hovermode: 'closest', height: 250, @@ -1091,20 +1105,9 @@ export class GraphListComponent implements OnInit { options: null, }; } - totaldifficultyChartFunc(DifficultychartDate, TargetDifficulty, Type, range, tickformat) { + totaldifficultyChartFunc(DifficultychartDate, data, type, range, tickformat) { this.linearTotalGraphData = { - data: [ - { - x: DifficultychartDate, - y: TargetDifficulty, - text: DifficultychartDate, - mode: 'lines+markers', - type: 'scatter', - name: '', - line: { color: '#ac3333' }, - hovertemplate: '%{text}
Difficulty : %{y:,}', - }, - ], + data: data, layout: { hovermode: 'closest', height: 250,