From a534af02df799197c6a83048a6c00bbf38d6ffde Mon Sep 17 00:00:00 2001 From: Alexey Krasnoperov Date: Sat, 4 Oct 2025 13:39:11 +0200 Subject: [PATCH 1/2] Add Home Page --- packages/onchaintrust-snap/images/icon-sm.svg | 24 ++++++++++ packages/onchaintrust-snap/snap.config.ts | 2 +- packages/onchaintrust-snap/snap.manifest.json | 5 +- packages/onchaintrust-snap/src/index.ts | 27 ----------- packages/onchaintrust-snap/src/index.tsx | 48 +++++++++++++++++++ 5 files changed, 76 insertions(+), 30 deletions(-) create mode 100644 packages/onchaintrust-snap/images/icon-sm.svg delete mode 100644 packages/onchaintrust-snap/src/index.ts create mode 100644 packages/onchaintrust-snap/src/index.tsx diff --git a/packages/onchaintrust-snap/images/icon-sm.svg b/packages/onchaintrust-snap/images/icon-sm.svg new file mode 100644 index 0000000..0b864d2 --- /dev/null +++ b/packages/onchaintrust-snap/images/icon-sm.svg @@ -0,0 +1,24 @@ + + + + + + + + + diff --git a/packages/onchaintrust-snap/snap.config.ts b/packages/onchaintrust-snap/snap.config.ts index 6e6100b..b10d7b5 100644 --- a/packages/onchaintrust-snap/snap.config.ts +++ b/packages/onchaintrust-snap/snap.config.ts @@ -2,7 +2,7 @@ import type { SnapConfig } from '@metamask/snaps-cli'; import { resolve } from 'path'; const config: SnapConfig = { - input: resolve(__dirname, 'src/index.ts'), + input: resolve(__dirname, 'src/index.tsx'), server: { port: 8080, }, diff --git a/packages/onchaintrust-snap/snap.manifest.json b/packages/onchaintrust-snap/snap.manifest.json index dd274b0..65c3943 100644 --- a/packages/onchaintrust-snap/snap.manifest.json +++ b/packages/onchaintrust-snap/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/OnChainTrust/onchaintrust-snap.git" }, "source": { - "shasum": "+S9dM+erS0GOV1AWm2MxKJVJfvigx6knvyF15zGU3HM=", + "shasum": "FHnS3DD7s07SNIS+GLdgHZ8IPvAQjxlduik+zjI4SjA=", "location": { "npm": { "filePath": "dist/bundle.js", @@ -21,7 +21,8 @@ "endowment:transaction-insight": { "allowTransactionOrigin": true }, - "endowment:network-access": {} + "endowment:network-access": {}, + "endowment:page-home": {} }, "platformVersion": "9.2.0", "manifestVersion": "0.1" diff --git a/packages/onchaintrust-snap/src/index.ts b/packages/onchaintrust-snap/src/index.ts deleted file mode 100644 index 7c04f06..0000000 --- a/packages/onchaintrust-snap/src/index.ts +++ /dev/null @@ -1,27 +0,0 @@ -import type { OnTransactionHandler } from '@metamask/snaps-sdk'; -import { SeverityLevel } from '@metamask/snaps-sdk'; - -import { requestUiDefinition } from './api'; -import { renderUI, errorElements } from './ui'; - -export const onTransaction: OnTransactionHandler = async ({ - transactionOrigin, - chainId, - transaction, -}) => { - const result = await requestUiDefinition( - transaction.to ?? '', - transactionOrigin ?? '', - chainId, - ); - - const ui = result.ok - ? result.data.ui - : errorElements('Unable to load data. Please try again later.'); - - const content = renderUI(ui); - - return result.ok && result.data.severity === 'critical' - ? { content, severity: SeverityLevel.Critical } - : { content }; -}; diff --git a/packages/onchaintrust-snap/src/index.tsx b/packages/onchaintrust-snap/src/index.tsx new file mode 100644 index 0000000..2eed069 --- /dev/null +++ b/packages/onchaintrust-snap/src/index.tsx @@ -0,0 +1,48 @@ +import type { OnTransactionHandler, OnHomePageHandler } from '@metamask/snaps-sdk'; +import { SeverityLevel } from '@metamask/snaps-sdk'; + +import { requestUiDefinition } from './api'; +import { renderUI, errorElements } from './ui'; + +import { Box, Link, Text, Divider, Section } from "@metamask/snaps-sdk/jsx"; + +export const onTransaction: OnTransactionHandler = async ({ + transactionOrigin, + chainId, + transaction, +}) => { + const result = await requestUiDefinition( + transaction.to ?? '', + transactionOrigin ?? '', + chainId, + ); + + const ui = result.ok + ? result.data.ui + : errorElements('Unable to load data. Please try again later.'); + + const content = renderUI(ui); + + return result.ok && result.data.severity === 'critical' + ? { content, severity: SeverityLevel.Critical } + : { content }; +}; + +export const onHomePage: OnHomePageHandler = async () => { + return { + content: ( + +
+ Make your web3-interactions safer and more transparent. + Protect your assets with advanced security checks and real-time insights before every transaction. + Learn more +
+ +
+ Do you run a Web3 application? Keep your users safe with OnChainTrust. + Verify your domain and enable protection +
+
+ ), + }; +}; From d69f559dab0289701045f5c1b059d19a9c00f3ea Mon Sep 17 00:00:00 2001 From: Alexey Krasnoperov Date: Sat, 4 Oct 2025 13:41:26 +0200 Subject: [PATCH 2/2] lint:fix --- packages/onchaintrust-snap/snap.manifest.json | 2 +- packages/onchaintrust-snap/src/index.tsx | 26 +++++++++++++------ 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/packages/onchaintrust-snap/snap.manifest.json b/packages/onchaintrust-snap/snap.manifest.json index 65c3943..490c243 100644 --- a/packages/onchaintrust-snap/snap.manifest.json +++ b/packages/onchaintrust-snap/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/OnChainTrust/onchaintrust-snap.git" }, "source": { - "shasum": "FHnS3DD7s07SNIS+GLdgHZ8IPvAQjxlduik+zjI4SjA=", + "shasum": "E0NYWHnFys84r72pOYrCa2M3ZsyNVYYfyQMPAMJ0naI=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/onchaintrust-snap/src/index.tsx b/packages/onchaintrust-snap/src/index.tsx index 2eed069..6918fcf 100644 --- a/packages/onchaintrust-snap/src/index.tsx +++ b/packages/onchaintrust-snap/src/index.tsx @@ -1,11 +1,13 @@ -import type { OnTransactionHandler, OnHomePageHandler } from '@metamask/snaps-sdk'; +import type { + OnTransactionHandler, + OnHomePageHandler, +} from '@metamask/snaps-sdk'; import { SeverityLevel } from '@metamask/snaps-sdk'; +import { Box, Link, Text, Divider, Section } from '@metamask/snaps-sdk/jsx'; import { requestUiDefinition } from './api'; import { renderUI, errorElements } from './ui'; -import { Box, Link, Text, Divider, Section } from "@metamask/snaps-sdk/jsx"; - export const onTransaction: OnTransactionHandler = async ({ transactionOrigin, chainId, @@ -33,14 +35,22 @@ export const onHomePage: OnHomePageHandler = async () => { content: (
- Make your web3-interactions safer and more transparent. - Protect your assets with advanced security checks and real-time insights before every transaction. - Learn more + Make your web3-interactions safer and more transparent. + + Protect your assets with advanced security checks and real-time + insights before every transaction. + + Learn more
- Do you run a Web3 application? Keep your users safe with OnChainTrust. - Verify your domain and enable protection + + Do you run a Web3 application? Keep your users safe with + OnChainTrust. + + + Verify your domain and enable protection +
),