diff --git a/frontend/src/app/components/transactions-list/transactions-list.component.html b/frontend/src/app/components/transactions-list/transactions-list.component.html index 70f19f357..fa6d3cf12 100644 --- a/frontend/src/app/components/transactions-list/transactions-list.component.html +++ b/frontend/src/app/components/transactions-list/transactions-list.component.html @@ -327,7 +327,7 @@ @if (vout.isRunestone) { } @else { - {{ vout.scriptpubkey_asm | hex2ascii }} + {{ vout.scriptpubkey_asm | slice:0:200 | hex2ascii }} } {{ vout.scriptpubkey_type | scriptpubkeyType }} @@ -384,15 +384,58 @@ ScriptPubKey (ASM) - + + +
+ ... + +
+ ScriptPubKey (HEX) - {{ vout.scriptpubkey }} + + @if (vout.scriptpubkey.length > 1000) { + @if (!showFullScriptPubkeyHex[vindex]) { + {{ vout.scriptpubkey | slice:0:1000 }} + } @else { + {{ vout.scriptpubkey }} + } + } @else { + {{ vout.scriptpubkey }} + } +
+ ... + +
+ OP_RETURN data - {{ vout.scriptpubkey_asm | hex2ascii }} + + @if (vout.scriptpubkey_asm.length > 1000) { + @if (!showFullOpReturnData[vindex]) { + {{ (vout.scriptpubkey_asm | slice:0:1000 | hex2ascii) }} + } @else { + {{ vout.scriptpubkey_asm | hex2ascii }} + } + } @else { + {{ vout.scriptpubkey_asm | hex2ascii }} + } +
+ ... + +
+ Type diff --git a/frontend/src/app/components/transactions-list/transactions-list.component.ts b/frontend/src/app/components/transactions-list/transactions-list.component.ts index 480f45372..b7d6eb5aa 100644 --- a/frontend/src/app/components/transactions-list/transactions-list.component.ts +++ b/frontend/src/app/components/transactions-list/transactions-list.component.ts @@ -62,6 +62,9 @@ export class TransactionsListComponent implements OnInit, OnChanges, OnDestroy { outputRowLimit: number = 12; showFullScript: { [vinIndex: number]: boolean } = {}; showFullWitness: { [vinIndex: number]: { [witnessIndex: number]: boolean } } = {}; + showFullScriptPubkeyAsm: { [voutIndex: number]: boolean } = {}; + showFullScriptPubkeyHex: { [voutIndex: number]: boolean } = {}; + showFullOpReturnData: { [voutIndex: number]: boolean } = {}; showOrdData: { [key: string]: { show: boolean; inscriptions?: Inscription[]; runestone?: Runestone, runeInfo?: { [id: string]: { etching: Etching; txid: string; } }; } } = {}; similarityMatches: Map> = new Map(); @@ -516,6 +519,18 @@ export class TransactionsListComponent implements OnInit, OnChanges, OnDestroy { this.showFullWitness[vinIndex][witnessIndex] = !this.showFullWitness[vinIndex][witnessIndex]; } + toggleShowFullScriptPubkeyAsm(voutIndex: number): void { + this.showFullScriptPubkeyAsm[voutIndex] = !this.showFullScriptPubkeyAsm[voutIndex]; + } + + toggleShowFullScriptPubkeyHex(voutIndex: number): void { + this.showFullScriptPubkeyHex[voutIndex] = !this.showFullScriptPubkeyHex[voutIndex]; + } + + toggleShowFullOpReturnData(voutIndex: number): void { + this.showFullOpReturnData[voutIndex] = !this.showFullOpReturnData[voutIndex]; + } + toggleOrdData(txid: string, type: 'vin' | 'vout', index: number) { const tx = this.transactions.find((tx) => tx.txid === txid); if (!tx) { diff --git a/frontend/src/app/shared/components/asm/asm.component.ts b/frontend/src/app/shared/components/asm/asm.component.ts index 66ae5df4b..d05ced79e 100644 --- a/frontend/src/app/shared/components/asm/asm.component.ts +++ b/frontend/src/app/shared/components/asm/asm.component.ts @@ -28,7 +28,7 @@ export class AsmComponent { } ngOnChanges(changes: SimpleChanges): void { - if (changes['asm']) { + if (changes['asm'] || changes['crop']) { this.parseASM(); } } @@ -82,6 +82,7 @@ export class AsmComponent { ['ELSE', 'control'], ['ENDIF', 'control'], ['VERIFY', 'control'], + ['RETURN', 'control'], ...Array.from({length: 70}, (_, i) => [`RETURN_${i + 186}`, 'control']), // Stack