| 
									
										
										
										
											2024-07-05 16:48:50 +09:00
										 |  |  | import { Component, Input, OnInit, OnChanges } from '@angular/core'; | 
					
						
							| 
									
										
										
										
											2024-07-04 16:54:35 +09:00
										 |  |  | import { ETA } from '../../services/eta.service'; | 
					
						
							|  |  |  | import { Transaction } from '../../interfaces/electrs.interface'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @Component({ | 
					
						
							|  |  |  |   selector: 'app-acceleration-timeline', | 
					
						
							|  |  |  |   templateUrl: './acceleration-timeline.component.html', | 
					
						
							|  |  |  |   styleUrls: ['./acceleration-timeline.component.scss'], | 
					
						
							|  |  |  | }) | 
					
						
							|  |  |  | export class AccelerationTimelineComponent implements OnInit, OnChanges { | 
					
						
							|  |  |  |   @Input() transactionTime: number; | 
					
						
							|  |  |  |   @Input() tx: Transaction; | 
					
						
							|  |  |  |   @Input() eta: ETA; | 
					
						
							| 
									
										
										
										
											2024-07-07 14:41:44 +09:00
										 |  |  |   // A mined transaction has standard ETA and accelerated ETA undefined
 | 
					
						
							|  |  |  |   // A transaction in mempool has either standardETA defined (if accelerated) or acceleratedETA defined (if not accelerated yet)
 | 
					
						
							|  |  |  |   @Input() standardETA: number; | 
					
						
							|  |  |  |   @Input() acceleratedETA: number; | 
					
						
							| 
									
										
										
										
											2024-07-04 16:54:35 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  |   acceleratedAt: number; | 
					
						
							| 
									
										
										
										
											2024-07-07 14:41:44 +09:00
										 |  |  |   now: number; | 
					
						
							|  |  |  |   accelerateRatio: number; | 
					
						
							| 
									
										
										
										
											2024-07-04 16:54:35 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-07-05 16:48:50 +09:00
										 |  |  |   constructor() {} | 
					
						
							| 
									
										
										
										
											2024-07-04 16:54:35 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  |   ngOnInit(): void { | 
					
						
							|  |  |  |     this.acceleratedAt = this.tx.acceleratedAt ?? new Date().getTime() / 1000; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   ngOnChanges(changes): void { | 
					
						
							| 
									
										
										
										
											2024-07-07 14:41:44 +09:00
										 |  |  |     this.now = Math.floor(new Date().getTime() / 1000); | 
					
						
							| 
									
										
										
										
											2024-07-09 01:17:38 +09:00
										 |  |  |     // Hide standard ETA while we don't have a proper standard ETA calculation, see https://github.com/mempool/mempool/issues/65
 | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |     // if (changes?.eta?.currentValue || changes?.standardETA?.currentValue || changes?.acceleratedETA?.currentValue) {
 | 
					
						
							|  |  |  |     //   if (changes?.eta?.currentValue) {
 | 
					
						
							|  |  |  |     //     if (changes?.acceleratedETA?.currentValue) {
 | 
					
						
							|  |  |  |     //       this.accelerateRatio = Math.floor((Math.floor(changes.eta.currentValue.time / 1000) - this.now) / (Math.floor(changes.acceleratedETA.currentValue / 1000) - this.now));
 | 
					
						
							|  |  |  |     //     } else if (changes?.standardETA?.currentValue) {
 | 
					
						
							|  |  |  |     //       this.accelerateRatio = Math.floor((Math.floor(changes.standardETA.currentValue / 1000) - this.now) / (Math.floor(changes.eta.currentValue.time / 1000) - this.now));
 | 
					
						
							|  |  |  |     //     }
 | 
					
						
							|  |  |  |     //   }
 | 
					
						
							|  |  |  |     // }
 | 
					
						
							| 
									
										
										
										
											2024-07-04 16:54:35 +09:00
										 |  |  |   } | 
					
						
							|  |  |  | } |