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..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": "+S9dM+erS0GOV1AWm2MxKJVJfvigx6knvyF15zGU3HM=", + "shasum": "E0NYWHnFys84r72pOYrCa2M3ZsyNVYYfyQMPAMJ0naI=", "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..6918fcf --- /dev/null +++ b/packages/onchaintrust-snap/src/index.tsx @@ -0,0 +1,58 @@ +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'; + +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 + +
+
+ ), + }; +};