diff --git a/src/lib/components/json.svelte b/src/lib/components/json.svelte
index 10b23968..8b64afd1 100644
--- a/src/lib/components/json.svelte
+++ b/src/lib/components/json.svelte
@@ -25,7 +25,7 @@
>
- {#if label !== "token"}
+ {#if label !== "token" && label !== "update-cNFT"}
- {#if label === "token"}
+ {#if label === "token" || label === "update-cNFT"}
Copy JSON
{/if}
- {#if label !== "token"}
+ {#if label !== "token" && label !== "update-cNFT"}
- {#if showCode || label === "token"}
+ {#if showCode || label === "token" || label === "update-cNFT"}
diff --git a/src/lib/config.ts b/src/lib/config.ts
index 75e54f37..500673d4 100644
--- a/src/lib/config.ts
+++ b/src/lib/config.ts
@@ -101,6 +101,10 @@ export const transactionActionsMetadata: Record<
icon: "lightning",
label: "Transfer",
},
+ COMPRESSED_NFT_UPDATE_METADATA: {
+ icon: "arrowUp",
+ label: "Update NFT Metadata",
+ },
CREATE_ORDER: {
icon: "plus",
label: "Create Order",
diff --git a/src/lib/xray/lib/parser/types.ts b/src/lib/xray/lib/parser/types.ts
index 98ed05a9..399402aa 100644
--- a/src/lib/xray/lib/parser/types.ts
+++ b/src/lib/xray/lib/parser/types.ts
@@ -22,6 +22,7 @@ export enum ProtonSupportedType {
EXECUTE_TRANSACTION,
COMPRESSED_NFT_MINT,
COMPRESSED_NFT_TRANSFER,
+ COMPRESSED_NFT_UPDATE_METADATA,
APPROVE_TRANSACTION,
STAKE_SOL,
SFT_MINT,
@@ -87,6 +88,7 @@ export enum ProtonSupportedActionType {
"XNFT_UNINSTALL",
"COMPRESSED_NFT_MINT",
"COMPRESSED_NFT_TRANSFER",
+ "COMPRESSED_NFT_UPDATE_METADATA",
"APPROVE_TRANSACTION",
"STAKE_SOL",
"SFT_MINT",
@@ -155,6 +157,7 @@ export interface ProtonTransaction {
actions: ProtonTransactionAction[];
accounts: ProtonAccount[];
raw?: EnrichedTransaction;
+ metadata?: { [key: string]: any };
}
export interface ProtonAccount {
diff --git a/src/routes/tx/[tx]/+page.svelte b/src/routes/tx/[tx]/+page.svelte
index 8c0b8078..3889df11 100644
--- a/src/routes/tx/[tx]/+page.svelte
+++ b/src/routes/tx/[tx]/+page.svelte
@@ -25,6 +25,7 @@
let animate = false;
let isLoading = true;
let isMounted = false;
+ let updatedMetadata;
const signature = $page.params.tx;
@@ -164,6 +165,34 @@
{/if}
+ {#if $transaction.data?.type === "COMPRESSED_NFT_UPDATE_METADATA"}
+