| 
									
										
										
										
											2021-10-19 15:37:45 +04:00
										 |  |  | import { Component, OnInit } from '@angular/core'; | 
					
						
							| 
									
										
										
										
											2022-11-28 11:55:23 +09:00
										 |  |  | import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; | 
					
						
							| 
									
										
										
										
											2022-09-21 17:23:45 +02:00
										 |  |  | import { ApiService } from '../../services/api.service'; | 
					
						
							| 
									
										
										
										
											2021-10-19 15:37:45 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | @Component({ | 
					
						
							|  |  |  |   selector: 'app-push-transaction', | 
					
						
							|  |  |  |   templateUrl: './push-transaction.component.html', | 
					
						
							|  |  |  |   styleUrls: ['./push-transaction.component.scss'] | 
					
						
							|  |  |  | }) | 
					
						
							|  |  |  | export class PushTransactionComponent implements OnInit { | 
					
						
							| 
									
										
										
										
											2022-11-28 11:55:23 +09:00
										 |  |  |   pushTxForm: UntypedFormGroup; | 
					
						
							| 
									
										
										
										
											2021-10-19 15:37:45 +04:00
										 |  |  |   error: string = ''; | 
					
						
							|  |  |  |   txId: string = ''; | 
					
						
							|  |  |  |   isLoading = false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   constructor( | 
					
						
							| 
									
										
										
										
											2022-11-28 11:55:23 +09:00
										 |  |  |     private formBuilder: UntypedFormBuilder, | 
					
						
							| 
									
										
										
										
											2021-10-19 15:37:45 +04:00
										 |  |  |     private apiService: ApiService, | 
					
						
							|  |  |  |   ) { } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   ngOnInit(): void { | 
					
						
							|  |  |  |     this.pushTxForm = this.formBuilder.group({ | 
					
						
							|  |  |  |       txHash: ['', Validators.required], | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   postTx() { | 
					
						
							|  |  |  |     this.isLoading = true; | 
					
						
							|  |  |  |     this.error = ''; | 
					
						
							|  |  |  |     this.txId = ''; | 
					
						
							|  |  |  |     this.apiService.postTransaction$(this.pushTxForm.get('txHash').value) | 
					
						
							|  |  |  |       .subscribe((result) => { | 
					
						
							|  |  |  |         this.isLoading = false; | 
					
						
							|  |  |  |         this.txId = result; | 
					
						
							|  |  |  |         this.pushTxForm.reset(); | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |       (error) => { | 
					
						
							|  |  |  |         if (typeof error.error === 'string') { | 
					
						
							|  |  |  |           const matchText = error.error.match('"message":"(.*?)"'); | 
					
						
							|  |  |  |           this.error = matchText && matchText[1] || error.error; | 
					
						
							|  |  |  |         } else if (error.message) { | 
					
						
							|  |  |  |           this.error = error.message; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         this.isLoading = false; | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |