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) |
- |
+
+
+ 1000" style="display: flex;">
+ ...
+
+
+ |
ScriptPubKey (HEX) |
- {{ vout.scriptpubkey }} |
+
+ @if (vout.scriptpubkey.length > 1000) {
+ @if (!showFullScriptPubkeyHex[vindex]) {
+ {{ vout.scriptpubkey | slice:0:1000 }}
+ } @else {
+ {{ vout.scriptpubkey }}
+ }
+ } @else {
+ {{ vout.scriptpubkey }}
+ }
+ 1000" style="display: flex;">
+ ...
+
+
+ |
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 }}
+ }
+ 1000" style="display: flex;">
+ ...
+
+
+ |
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