From 1e5811b117c663b8af08d98770aa27cf13d7daf7 Mon Sep 17 00:00:00 2001 From: ennmichael Date: Mon, 17 Apr 2023 22:07:54 +0200 Subject: [PATCH] fix build error --- packages/app/src/Pages/Login.tsx | 4 ++-- packages/app/src/System/EventPublisher.ts | 24 +++++------------------ packages/nostr/src/nostr-object.ts | 6 +++--- 3 files changed, 10 insertions(+), 24 deletions(-) diff --git a/packages/app/src/Pages/Login.tsx b/packages/app/src/Pages/Login.tsx index 0586586e4..a3d931834 100644 --- a/packages/app/src/Pages/Login.tsx +++ b/packages/app/src/Pages/Login.tsx @@ -145,8 +145,8 @@ export default function LoginPage() { } async function doNip07Login() { - const relays = "getRelays" in window.nostr ? await window.nostr.getRelays() : undefined; - const pubKey = await window.nostr.getPublicKey(); + const relays = "getRelays" in unwrap(window.nostr) ? await unwrap(window.nostr?.getRelays)() : undefined; + const pubKey = await unwrap(window.nostr).getPublicKey(); LoginStore.loginWithPubkey(pubKey, relays); } diff --git a/packages/app/src/System/EventPublisher.ts b/packages/app/src/System/EventPublisher.ts index 4a56b4d04..90f3efff0 100644 --- a/packages/app/src/System/EventPublisher.ts +++ b/packages/app/src/System/EventPublisher.ts @@ -17,20 +17,6 @@ import { unwrap } from "Util"; import { EventBuilder } from "./EventBuilder"; import { EventExt } from "./EventExt"; -declare global { - interface Window { - nostr: { - getPublicKey: () => Promise; - signEvent: (event: RawEvent) => Promise; - getRelays: () => Promise>; - nip04: { - encrypt: (pubkey: HexKey, content: string) => Promise; - decrypt: (pubkey: HexKey, content: string) => Promise; - }; - }; - } -} - interface Nip7QueueItem { next: () => Promise; resolve(v: unknown): void; @@ -88,12 +74,12 @@ export class EventPublisher { async #sign(eb: EventBuilder) { if (this.#hasNip07 && !this.#privateKey) { - const nip7PubKey = await barrierNip07(() => window.nostr.getPublicKey()); + const nip7PubKey = await barrierNip07(() => unwrap(window.nostr).getPublicKey()); if (nip7PubKey !== this.#pubKey) { throw new Error("Can't sign event, NIP-07 pubkey does not match"); } const ev = eb.build(); - return await barrierNip07(() => window.nostr.signEvent(ev)); + return await barrierNip07(() => unwrap(window.nostr).signEvent(ev)); } else if (this.#privateKey) { return await eb.buildAndSign(this.#privateKey); } else { @@ -103,11 +89,11 @@ export class EventPublisher { async nip4Encrypt(content: string, key: HexKey) { if (this.#hasNip07 && !this.#privateKey) { - const nip7PubKey = await barrierNip07(() => window.nostr.getPublicKey()); + const nip7PubKey = await barrierNip07(() => unwrap(window.nostr).getPublicKey()); if (nip7PubKey !== this.#pubKey) { throw new Error("Can't encrypt content, NIP-07 pubkey does not match"); } - return await barrierNip07(() => window.nostr.nip04.encrypt(key, content)); + return await barrierNip07(() => unwrap(window.nostr?.nip04?.encrypt)(key, content)); } else if (this.#privateKey) { return await EventExt.encryptData(content, key, this.#privateKey); } else { @@ -117,7 +103,7 @@ export class EventPublisher { async nip4Decrypt(content: string, otherKey: HexKey) { if (this.#hasNip07 && !this.#privateKey) { - return await barrierNip07(() => window.nostr.nip04.decrypt(otherKey, content)); + return await barrierNip07(() => unwrap(window.nostr?.nip04?.decrypt)(otherKey, content)); } else if (this.#privateKey) { return await EventExt.decryptDm(content, this.#privateKey, otherKey); } else { diff --git a/packages/nostr/src/nostr-object.ts b/packages/nostr/src/nostr-object.ts index 3f837f70e..da74197de 100644 --- a/packages/nostr/src/nostr-object.ts +++ b/packages/nostr/src/nostr-object.ts @@ -7,9 +7,9 @@ declare global { getPublicKey: () => Promise signEvent: (event: Unsigned) => Promise - getRelays?: () => Promise<{ - [url: string]: { read: boolean; write: boolean } - }> + getRelays?: () => Promise< + Record + > nip04?: { encrypt?: (pubkey: PublicKey, plaintext: string) => Promise