Merge pull request #5600 from mempool/natsoni/tx-input-overflow
Fix input/output overflow in transaction list
This commit is contained in:
commit
348a12c4a1
@ -81,7 +81,7 @@
|
|||||||
</ng-container>
|
</ng-container>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-right nowrap amount" [class]="{large: vin?.prevout?.value > 1000000000 || vin.isInscription}">
|
<td class="text-right nowrap amount" [class]="{large: tx.largeInput}">
|
||||||
<button *ngIf="vin.isInscription" (click)="toggleOrdData(tx.txid, 'vin', vindex)" type="button" class="btn btn-sm badge badge-ord primary" style="margin-right: 10px;">Inscription</button>
|
<button *ngIf="vin.isInscription" (click)="toggleOrdData(tx.txid, 'vin', vindex)" type="button" class="btn btn-sm badge badge-ord primary" style="margin-right: 10px;">Inscription</button>
|
||||||
<ng-template [ngIf]="vin.prevout && vin.prevout.asset && vin.prevout.asset !== nativeAssetId" [ngIfElse]="defaultOutput">
|
<ng-template [ngIf]="vin.prevout && vin.prevout.asset && vin.prevout.asset !== nativeAssetId" [ngIfElse]="defaultOutput">
|
||||||
<div *ngIf="assetsMinimal && assetsMinimal[vin.prevout.asset] else assetVinNotFound">
|
<div *ngIf="assetsMinimal && assetsMinimal[vin.prevout.asset] else assetVinNotFound">
|
||||||
@ -257,7 +257,7 @@
|
|||||||
</ng-template>
|
</ng-template>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-right nowrap amount" [class]="{large: vout?.value > 1000000000}">
|
<td class="text-right nowrap amount" [class]="{large: tx.largeOutput}">
|
||||||
<ng-template [ngIf]="vout.asset && vout.asset !== nativeAssetId" [ngIfElse]="defaultOutput">
|
<ng-template [ngIf]="vout.asset && vout.asset !== nativeAssetId" [ngIfElse]="defaultOutput">
|
||||||
<div *ngIf="assetsMinimal && assetsMinimal[vout.asset] else assetNotFound">
|
<div *ngIf="assetsMinimal && assetsMinimal[vout.asset] else assetNotFound">
|
||||||
<ng-container *ngTemplateOutlet="assetBox; context:{ $implicit: vout }"></ng-container>
|
<ng-container *ngTemplateOutlet="assetBox; context:{ $implicit: vout }"></ng-container>
|
||||||
|
@ -258,6 +258,7 @@ export class TransactionsListComponent implements OnInit, OnChanges {
|
|||||||
const hasAnnex = tx.vin[i].witness?.[tx.vin[i].witness.length - 1].startsWith('50');
|
const hasAnnex = tx.vin[i].witness?.[tx.vin[i].witness.length - 1].startsWith('50');
|
||||||
if (tx.vin[i].witness.length > (hasAnnex ? 2 : 1) && tx.vin[i].witness[tx.vin[i].witness.length - (hasAnnex ? 3 : 2)].includes('0063036f7264')) {
|
if (tx.vin[i].witness.length > (hasAnnex ? 2 : 1) && tx.vin[i].witness[tx.vin[i].witness.length - (hasAnnex ? 3 : 2)].includes('0063036f7264')) {
|
||||||
tx.vin[i].isInscription = true;
|
tx.vin[i].isInscription = true;
|
||||||
|
tx.largeInput = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -268,6 +269,9 @@ export class TransactionsListComponent implements OnInit, OnChanges {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tx.largeInput = tx.largeInput || tx.vin.some(vin => (vin?.prevout?.value > 1000000000));
|
||||||
|
tx.largeOutput = tx.vout.some(vout => (vout?.value > 1000000000));
|
||||||
});
|
});
|
||||||
|
|
||||||
if (this.blockTime && this.transactions?.length && this.currency) {
|
if (this.blockTime && this.transactions?.length && this.currency) {
|
||||||
|
@ -32,6 +32,8 @@ export interface Transaction {
|
|||||||
price?: Price;
|
price?: Price;
|
||||||
sigops?: number;
|
sigops?: number;
|
||||||
flags?: bigint;
|
flags?: bigint;
|
||||||
|
largeInput?: boolean;
|
||||||
|
largeOutput?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface TransactionChannels {
|
export interface TransactionChannels {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user