Skip to content

Commit

Permalink
fix: error message if metadata can't be updated (#906)
Browse files Browse the repository at this point in the history
  • Loading branch information
0xKheops authored Jul 3, 2023
1 parent 22bfa27 commit 9bf810d
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 8 deletions.
20 changes: 12 additions & 8 deletions apps/extension/src/core/domains/metadata/handler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { db } from "@core/db"
import { RequestMetadataApprove, RequestMetadataReject } from "@core/domains/metadata/types"
import { ExtensionHandler } from "@core/libs/Handler"
import { requestStore } from "@core/libs/requests/store"
import { log } from "@core/log"
import type { MessageTypes, RequestTypes, ResponseType } from "@core/types"
import { Port } from "@core/types/base"
import { assert } from "@polkadot/util"
Expand All @@ -10,19 +11,22 @@ import { metadataUpdatesStore } from "./metadataUpdates"

export default class MetadataHandler extends ExtensionHandler {
private async metadataApprove({ id }: RequestMetadataApprove): Promise<boolean> {
const queued = requestStore.getRequest(id)
try {
const queued = requestStore.getRequest(id)

assert(queued, "Unable to find request")
assert(queued, "Unable to find request")

const { request, resolve } = queued
const { request, resolve } = queued

// NOTE: If this throws, errors are handled in the UI (we show a nice error message toast to the user)
// For more info check out @ui/apps/popup/pages/Metadata.tsx
await db.metadata.put(request)
await db.metadata.put(request)

resolve(true)
resolve(true)

return true
return true
} catch (err) {
log.error("Failed to update metadata", { err })
throw new Error("Failed to update metadata")
}
}

private metadataReject({ id }: RequestMetadataReject): boolean {
Expand Down
6 changes: 6 additions & 0 deletions apps/playground/src/components/Substrate/NavSubstrate.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,12 @@ export const NavSubstrate = () => {
>
Encryption
</Link>
<Link
to="/substrate/misc"
className={classNames(location.pathname === "/substrate/misc" && "text-primary-500")}
>
Misc
</Link>
</div>
)
}
2 changes: 2 additions & 0 deletions apps/playground/src/components/Substrate/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { Navigate, Route, Routes } from "react-router-dom"
import { BalancesPage } from "./balances/BalancesPage"
import { EncryptionPage } from "./encryption/EncryptionPage"
import { IdentityPage } from "./identity/IdentityPage"
import { MiscPage } from "./misc/MiscPage"
import { NavSubstrate } from "./NavSubstrate"
import { ApiProvider } from "./shared/useApi"
import { NetworkProvider } from "./shared/useNetwork"
Expand All @@ -27,6 +28,7 @@ export const Substrate = () => {
<Route path="identity" element={<IdentityPage />} />
<Route path="sign" element={<SignPage />} />
<Route path="encryption" element={<EncryptionPage />} />
<Route path="Misc" element={<MiscPage />} />
<Route path="*" element={<Navigate to="identity" />} />
</Routes>
</WalletProvider>
Expand Down
21 changes: 21 additions & 0 deletions apps/playground/src/components/Substrate/misc/InvalidMetadata.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { Button } from "talisman-ui"

import { Section } from "../../shared/Section"

const handleAddInvalidMetadata = () => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
;(window as any).postMessage({
id: "1657056165593.8",
message: "pub(metadata.provide)",
origin: "talisman-page",
request: { origin: "Talisman" },
})
}

export const InvalidMetadata = () => {
return (
<Section title="Metadata">
<Button onClick={handleAddInvalidMetadata}>Invalid Metadata</Button>
</Section>
)
}
10 changes: 10 additions & 0 deletions apps/playground/src/components/Substrate/misc/MiscPage.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { SubstrateLayout } from "../shared/SubstrateLayout"
import { InvalidMetadata } from "./InvalidMetadata"

export const MiscPage = () => {
return (
<SubstrateLayout title="Metadata">
<InvalidMetadata />
</SubstrateLayout>
)
}

0 comments on commit 9bf810d

Please sign in to comment.