diff --git a/packages/examples/examples/insights/package.json b/packages/examples/examples/insights/package.json index 40ac6b75e7..a93af078d9 100644 --- a/packages/examples/examples/insights/package.json +++ b/packages/examples/examples/insights/package.json @@ -27,6 +27,7 @@ }, "dependencies": { "@metamask/abi-utils": "^1.0.0", + "@metamask/snaps-ui": "^0.26.2", "@metamask/utils": "^3.3.1" }, "devDependencies": { diff --git a/packages/examples/examples/insights/snap.manifest.json b/packages/examples/examples/insights/snap.manifest.json index 3d66f9c9b5..e63f6ab063 100644 --- a/packages/examples/examples/insights/snap.manifest.json +++ b/packages/examples/examples/insights/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps-monorepo.git" }, "source": { - "shasum": "a6DXy5lnzdhX/f1YSb0pRFgY8JC2kqbAqd6Rf4iA55g=", + "shasum": "RcPonQimhnc2MFKDfIKvYsfXtZRZQlV26YCwqgQFLeE=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/examples/insights/src/index.ts b/packages/examples/examples/insights/src/index.ts index ea52bb4526..974ee59d09 100644 --- a/packages/examples/examples/insights/src/index.ts +++ b/packages/examples/examples/insights/src/index.ts @@ -1,4 +1,5 @@ import { OnTransactionHandler } from '@metamask/snaps-types'; +import { panel, text, copyable } from '@metamask/snaps-ui'; import { getInsights } from './insights'; @@ -10,7 +11,14 @@ import { getInsights } from './insights'; * @returns The transaction insights. */ export const onTransaction: OnTransactionHandler = async ({ transaction }) => { + const { type, args } = await getInsights(transaction); + const content = panel([ + text(`**Type:** ${type}`), + ...(args + ? [text('**Args:**'), copyable(JSON.stringify(args, null, 2))] + : []), + ]); return { - insights: await getInsights(transaction), + content, }; }; diff --git a/packages/snaps-ui/tsconfig.build.json b/packages/snaps-ui/tsconfig.build.json index 4dc952c93e..4deae76c08 100644 --- a/packages/snaps-ui/tsconfig.build.json +++ b/packages/snaps-ui/tsconfig.build.json @@ -11,10 +11,5 @@ "./src/**/test-utils", "./src/**/__mocks__", "./src/**/__snapshots__" - ], - "references": [ - { - "path": "../snaps-utils/tsconfig.build.json" - } ] } diff --git a/packages/snaps-ui/tsconfig.json b/packages/snaps-ui/tsconfig.json index a4f2b5a12e..7d6092a4d3 100644 --- a/packages/snaps-ui/tsconfig.json +++ b/packages/snaps-ui/tsconfig.json @@ -3,6 +3,5 @@ "compilerOptions": { "baseUrl": "./" }, - "include": ["./src"], - "references": [{ "path": "../snaps-utils" }] + "include": ["./src"] } diff --git a/packages/snaps-utils/package.json b/packages/snaps-utils/package.json index 5894ebcb07..ba4ca4dc03 100644 --- a/packages/snaps-utils/package.json +++ b/packages/snaps-utils/package.json @@ -53,6 +53,7 @@ "@babel/core": "^7.18.6", "@babel/types": "^7.18.7", "@metamask/providers": "^10.2.1", + "@metamask/snaps-ui": "^0.26.2", "@metamask/utils": "^3.3.1", "@noble/hashes": "^1.1.3", "@scure/base": "^1.1.1", diff --git a/packages/snaps-utils/src/handlers.ts b/packages/snaps-utils/src/handlers.ts index a5d4a5d70c..09c3a5b9c5 100644 --- a/packages/snaps-utils/src/handlers.ts +++ b/packages/snaps-utils/src/handlers.ts @@ -1,4 +1,5 @@ import type { StreamProvider } from '@metamask/providers'; +import { Component } from '@metamask/snaps-ui'; import { Json, JsonRpcRequest } from '@metamask/utils'; import { AccountId, ChainId, RequestArguments } from './namespace'; @@ -34,7 +35,7 @@ export type OnRpcRequestHandler = (args: { * If the snap has no insights about the transaction, this should be `null`. */ export type OnTransactionResponse = { - insights: { [key: string]: Json } | null; + content: Component; }; /** diff --git a/packages/snaps-utils/tsconfig.build.json b/packages/snaps-utils/tsconfig.build.json index 4deae76c08..5bf34dd669 100644 --- a/packages/snaps-utils/tsconfig.build.json +++ b/packages/snaps-utils/tsconfig.build.json @@ -11,5 +11,10 @@ "./src/**/test-utils", "./src/**/__mocks__", "./src/**/__snapshots__" + ], + "references": [ + { + "path": "../snaps-ui/tsconfig.build.json" + } ] } diff --git a/packages/snaps-utils/tsconfig.json b/packages/snaps-utils/tsconfig.json index 7d6092a4d3..d48cf06e37 100644 --- a/packages/snaps-utils/tsconfig.json +++ b/packages/snaps-utils/tsconfig.json @@ -3,5 +3,6 @@ "compilerOptions": { "baseUrl": "./" }, - "include": ["./src"] + "include": ["./src"], + "references": [{ "path": "../snaps-ui" }] } diff --git a/yarn.lock b/yarn.lock index 799abe08b1..29140d4dcc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3013,7 +3013,7 @@ __metadata: languageName: unknown linkType: soft -"@metamask/snaps-ui@workspace:packages/snaps-ui": +"@metamask/snaps-ui@^0.26.2, @metamask/snaps-ui@workspace:packages/snaps-ui": version: 0.0.0-use.local resolution: "@metamask/snaps-ui@workspace:packages/snaps-ui" dependencies: @@ -3060,6 +3060,7 @@ __metadata: "@metamask/eslint-config-nodejs": ^11.0.1 "@metamask/eslint-config-typescript": ^11.0.0 "@metamask/providers": ^10.2.1 + "@metamask/snaps-ui": ^0.26.2 "@metamask/utils": ^3.3.1 "@noble/hashes": ^1.1.3 "@scure/base": ^1.1.1 @@ -15613,6 +15614,7 @@ __metadata: "@metamask/eslint-config-typescript": ^11.0.0 "@metamask/snaps-cli": ^0.26.2 "@metamask/snaps-types": ^0.26.2 + "@metamask/snaps-ui": ^0.26.2 "@metamask/utils": ^3.3.1 "@typescript-eslint/eslint-plugin": ^5.42.1 "@typescript-eslint/parser": ^5.42.1