diff --git a/taqueria-vscode-extension/package.json b/taqueria-vscode-extension/package.json index c5905a39c4..682cfc1ad7 100644 --- a/taqueria-vscode-extension/package.json +++ b/taqueria-vscode-extension/package.json @@ -431,6 +431,13 @@ "title": "Invoke Entrypoint", "shortTitle": "invoke", "icon": "$(call-outgoing)" + }, + { + "command": "taqueria.show_token_metadata", + "category": "Taqueria", + "title": "Show Token Metadata", + "shortTitle": "show token metadata", + "icon": "$(list-unordered)" } ], "menus": { @@ -482,6 +489,10 @@ { "command": "taqueria.originate", "when": "false" + }, + { + "command": "taqueria.show_token_metadata", + "when": "false" } ], "explorer/context": [ @@ -631,6 +642,11 @@ "command": "taqueria.show_operation_details", "when": "view == taqueria-sandboxes && viewItem == operation", "group": "inline" + }, + { + "command": "taqueria.show_token_metadata", + "when": "view == taqueria-sandboxes && viewItem == token", + "group": "inline" } ], "view/title": [ diff --git a/taqueria-vscode-extension/src/lib/gui/SandboxTreeItemTypes.ts b/taqueria-vscode-extension/src/lib/gui/SandboxTreeItemTypes.ts index acc869bb85..1347962889 100644 --- a/taqueria-vscode-extension/src/lib/gui/SandboxTreeItemTypes.ts +++ b/taqueria-vscode-extension/src/lib/gui/SandboxTreeItemTypes.ts @@ -1,5 +1,6 @@ import * as vscode from 'vscode'; import { SandboxState } from './CachedSandboxState'; +import { TokenMetadata } from './DataModels'; export class SandboxTreeItemBase extends vscode.TreeItem { constructor( @@ -146,7 +147,9 @@ export class TokenTreeItem extends SandboxTreeItemBase { constructor( public readonly tokenId: string, public readonly name: string | undefined, + public readonly metadata: TokenMetadata | undefined, ) { super(name || tokenId.toString(), 'token', vscode.TreeItemCollapsibleState.None); + this.contextValue = 'token'; } } diff --git a/taqueria-vscode-extension/src/lib/gui/SandboxesDataProvider.ts b/taqueria-vscode-extension/src/lib/gui/SandboxesDataProvider.ts index 6debe920e4..f95f54a521 100644 --- a/taqueria-vscode-extension/src/lib/gui/SandboxesDataProvider.ts +++ b/taqueria-vscode-extension/src/lib/gui/SandboxesDataProvider.ts @@ -411,7 +411,9 @@ export class SandboxesDataProvider extends TaqueriaDataProviderBase tzKtItem, dipDupItem: dataFromDipdup.find(dipDupItem => dipDupItem.token_id.toString() === tzKtItem.tokenId), })); - return data.map(item => new TokenTreeItem(item.tzKtItem.tokenId, item.dipDupItem?.metadata?.name)); + return data.map(item => + new TokenTreeItem(item.tzKtItem.tokenId, item.dipDupItem?.metadata?.name, item.dipDupItem?.metadata ?? undefined) + ); } private async getTokensFromTzKt(element: SmartContractChildrenTreeItem): Promise { diff --git a/taqueria-vscode-extension/src/lib/helpers.ts b/taqueria-vscode-extension/src/lib/helpers.ts index bf2211b658..de5ead13a8 100644 --- a/taqueria-vscode-extension/src/lib/helpers.ts +++ b/taqueria-vscode-extension/src/lib/helpers.ts @@ -25,6 +25,7 @@ import { SandboxTreeItem, SandboxTreeItemBase, SmartContractEntrypointTreeItem, + TokenTreeItem, } from './gui/SandboxTreeItemTypes'; import { ScaffoldsDataProvider, ScaffoldTreeItem } from './gui/ScaffoldsDataProvider'; import { SystemCheckDataProvider, SystemCheckTreeItem } from './gui/SystemCheckDataProvider'; @@ -241,6 +242,7 @@ export class VsCodeHelper { this.exposeRefreshSandBoxDataCommand(); this.exposeShowEntrypointParametersCommand(); this.exposeShowOperationDetailsCommand(); + this.exposeShowTokenMetadataCommand(); this.exposeInvokeEntrypointCommand(); await this.registerDataProviders(); @@ -1729,6 +1731,13 @@ export class VsCodeHelper { }); } + exposeShowTokenMetadataCommand() { + this.registerCommand('show_token_metadata', async (item: TokenTreeItem) => { + const metadata = item.metadata; + this.logHelper.showOutput(JSON.stringify(metadata, null, 2)); + }); + } + exposeInvokeEntrypointCommand() { this.registerCommand( 'invoke_entrypoint',