Label channel closes
This commit is contained in:
		
							parent
							
								
									4bb23cf0c8
								
							
						
					
					
						commit
						da9834d272
					
				| @ -34,7 +34,8 @@ export class AddressLabelsComponent implements OnChanges { | ||||
|   } | ||||
| 
 | ||||
|   handleChannel() { | ||||
|     this.label = `Channel open: ${this.channel.node_left.alias} <> ${this.channel.node_right.alias}`; | ||||
|     const type = this.vout ? 'open' : 'close'; | ||||
|     this.label = `Channel ${type}: ${this.channel.node_left.alias} <> ${this.channel.node_right.alias}`; | ||||
|   } | ||||
| 
 | ||||
|   handleVin() { | ||||
|  | ||||
| @ -77,7 +77,7 @@ | ||||
|                           {{ vin.prevout.scriptpubkey_type?.toUpperCase() }} | ||||
|                         </ng-template> | ||||
|                         <div> | ||||
|                           <app-address-labels [vin]="vin"></app-address-labels> | ||||
|                           <app-address-labels [vin]="vin" [channel]="channels && channels.inputs[i] || null"></app-address-labels> | ||||
|                         </div> | ||||
|                       </ng-template> | ||||
|                     </ng-container> | ||||
| @ -172,7 +172,7 @@ | ||||
|                     </span> | ||||
|                   </a> | ||||
|                   <div> | ||||
|                     <app-address-labels [vout]="vout" [channel]="channels && channels[i] && channels[i].transaction_vout === vindex ? channels[i] : null"></app-address-labels> | ||||
|                     <app-address-labels [vout]="vout" [channel]="channels && channels.outputs[i] && channels.outputs[i].transaction_vout === vindex ? channels.outputs[i] : null"></app-address-labels> | ||||
|                   </div> | ||||
|                   <ng-template #scriptpubkey_type> | ||||
|                     <ng-template [ngIf]="vout.pegout" [ngIfElse]="defaultscriptpubkey_type"> | ||||
|  | ||||
| @ -36,7 +36,7 @@ export class TransactionsListComponent implements OnInit, OnChanges { | ||||
|   showDetails$ = new BehaviorSubject<boolean>(false); | ||||
|   outspends: Outspend[][] = []; | ||||
|   assetsMinimal: any; | ||||
|   channels: any[]; | ||||
|   channels: { inputs: any[], outputs: any[] }; | ||||
| 
 | ||||
|   constructor( | ||||
|     public stateService: StateService, | ||||
|  | ||||
| @ -232,12 +232,12 @@ export class ApiService { | ||||
|     return this.httpClient.get<RewardStats>(this.apiBaseUrl + this.apiBasePath + `/api/v1/mining/reward-stats/${blockCount}`); | ||||
|   } | ||||
| 
 | ||||
|   getChannelByTxIds$(txIds: string[]): Observable<any[]> { | ||||
|   getChannelByTxIds$(txIds: string[]): Observable<{ inputs: any[], outputs: any[] }> { | ||||
|     let params = new HttpParams(); | ||||
|     txIds.forEach((txId: string) => { | ||||
|       params = params.append('txId[]', txId); | ||||
|     }); | ||||
|     return this.httpClient.get<any[]>(this.apiBaseUrl + this.apiBasePath + '/lightning/api/v1/channels/txids/', { params }); | ||||
|     return this.httpClient.get<{ inputs: any[], outputs: any[] }>(this.apiBaseUrl + this.apiBasePath + '/lightning/api/v1/channels/txids/', { params }); | ||||
|   } | ||||
| 
 | ||||
|   lightningSearch$(searchText: string): Observable<any[]> { | ||||
|  | ||||
| @ -74,7 +74,7 @@ class ChannelsApi { | ||||
|   public async $getChannelsByTransactionId(transactionIds: string[]): Promise<any[]> { | ||||
|     try { | ||||
|       transactionIds = transactionIds.map((id) => '\'' + id + '\''); | ||||
|       const query = `SELECT n1.alias AS alias_left, n2.alias AS alias_right, channels.* FROM channels LEFT JOIN nodes AS n1 ON n1.public_key = channels.node1_public_key LEFT JOIN nodes AS n2 ON n2.public_key = channels.node2_public_key WHERE channels.transaction_id IN (${transactionIds.join(', ')})`; | ||||
|       const query = `SELECT n1.alias AS alias_left, n2.alias AS alias_right, channels.* FROM channels LEFT JOIN nodes AS n1 ON n1.public_key = channels.node1_public_key LEFT JOIN nodes AS n2 ON n2.public_key = channels.node2_public_key WHERE channels.transaction_id IN (${transactionIds.join(', ')}) OR channels.closing_transaction_id IN (${transactionIds.join(', ')})`; | ||||
|       const [rows]: any = await DB.query(query); | ||||
|       const channels = rows.map((row) => this.convertChannel(row)); | ||||
|       return channels; | ||||
|  | ||||
| @ -67,17 +67,27 @@ class ChannelsRoutes { | ||||
|         } | ||||
|       } | ||||
|       const channels = await channelsApi.$getChannelsByTransactionId(txIds); | ||||
|       const result: any[] = []; | ||||
|       const inputs: any[] = []; | ||||
|       const outputs: any[] = []; | ||||
|       for (const txid of txIds) { | ||||
|         const foundChannel = channels.find((channel) => channel.transaction_id === txid); | ||||
|         if (foundChannel) { | ||||
|           result.push(foundChannel); | ||||
|         const foundChannelInputs = channels.find((channel) => channel.closing_transaction_id === txid); | ||||
|         if (foundChannelInputs) { | ||||
|           inputs.push(foundChannelInputs); | ||||
|         } else { | ||||
|           result.push(null); | ||||
|           inputs.push(null); | ||||
|         } | ||||
|         const foundChannelOutputs = channels.find((channel) => channel.transaction_id === txid); | ||||
|         if (foundChannelOutputs) { | ||||
|           outputs.push(foundChannelOutputs); | ||||
|         } else { | ||||
|           outputs.push(null); | ||||
|         } | ||||
|       } | ||||
| 
 | ||||
|       res.json(result); | ||||
|       res.json({ | ||||
|         inputs: inputs, | ||||
|         outputs: outputs, | ||||
|       }); | ||||
|     } catch (e) { | ||||
|       res.status(500).send(e instanceof Error ? e.message : e); | ||||
|     } | ||||
|  | ||||
| @ -236,7 +236,8 @@ class DatabaseMigration { | ||||
|       KEY node2_public_key (node2_public_key), | ||||
|       KEY status (status), | ||||
|       KEY short_id (short_id), | ||||
|       KEY transaction_id (transaction_id) | ||||
|       KEY transaction_id (transaction_id), | ||||
|       KEY closing_transaction_id (closing_transaction_id) | ||||
|     ) ENGINE=InnoDB DEFAULT CHARSET=utf8;`;
 | ||||
|   } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user