From 0770d3f4cd60d9648dccd2519536a8de07bfee85 Mon Sep 17 00:00:00 2001 From: Dhruv Kelawala Date: Sun, 12 Nov 2023 13:39:08 +0300 Subject: [PATCH] fix: minor errors --- src/connectors/argentMobile/modal/adapter.ts | 2 +- src/connectors/argentMobile/modal/index.ts | 3 ++- src/connectors/argentMobile/modal/login.ts | 10 +++++++++- src/connectors/webwallet/helpers/trpc.ts | 2 +- .../webwallet/starknetWindowObject/account.ts | 6 +++++- src/main.ts | 14 ++++++++++---- src/modal/Modal.svelte | 2 +- tsconfig.json | 6 ++++-- 8 files changed, 33 insertions(+), 12 deletions(-) diff --git a/src/connectors/argentMobile/modal/adapter.ts b/src/connectors/argentMobile/modal/adapter.ts index 637f46c..c0be7c3 100644 --- a/src/connectors/argentMobile/modal/adapter.ts +++ b/src/connectors/argentMobile/modal/adapter.ts @@ -63,7 +63,7 @@ export abstract class NamespaceAdapter { }: SessionTypes.Struct) => { const chain = this.formatChainId(this.chainId) if (requiredNamespaces) { - return !!requiredNamespaces[this.namespace]?.chains.includes(chain) + return !!requiredNamespaces[this.namespace]?.chains?.includes(chain) } return !!namespaces?.[this.namespace]?.accounts.some((account) => account.startsWith(chain), diff --git a/src/connectors/argentMobile/modal/index.ts b/src/connectors/argentMobile/modal/index.ts index 35231f9..1c799a5 100644 --- a/src/connectors/argentMobile/modal/index.ts +++ b/src/connectors/argentMobile/modal/index.ts @@ -11,4 +11,5 @@ export type { StarknetWindowObject, IArgentLoginOptions } export const getStarknetWindowObject = async ( options: IArgentLoginOptions, -): Promise => login(options, StarknetAdapter) +): Promise => + login(options, StarknetAdapter) diff --git a/src/connectors/argentMobile/modal/login.ts b/src/connectors/argentMobile/modal/login.ts index 46e1a1d..8db7d64 100644 --- a/src/connectors/argentMobile/modal/login.ts +++ b/src/connectors/argentMobile/modal/login.ts @@ -37,7 +37,14 @@ export const login = async ( walletConnect, }: IArgentLoginOptions, Adapter: new (options: NamespaceAdapterOptions) => TAdapter, -): Promise => { +): Promise => { + if (!bridgeUrl) { + throw new Error("bridgeUrl is required") + } + + if (!mobileUrl) { + throw new Error("mobileUrl is required") + } argentModal.bridgeUrl = bridgeUrl argentModal.mobileUrl = mobileUrl argentModal.type = modalType @@ -101,6 +108,7 @@ export const login = async ( } catch (error) { console.error("@argent/login::error") argentModal.closeModal() + return null } } diff --git a/src/connectors/webwallet/helpers/trpc.ts b/src/connectors/webwallet/helpers/trpc.ts index ce50a01..b1b5f72 100644 --- a/src/connectors/webwallet/helpers/trpc.ts +++ b/src/connectors/webwallet/helpers/trpc.ts @@ -43,7 +43,7 @@ export const setPopupOptions = ({ : parentTop + parentHeight / 2 - height / 2 popupOrigin = origin ?? popupOrigin - popupLocation = location ?? location + popupLocation = location ?? popupLocation popupParams = `width=${width},height=${height},top=${y},left=${x},toolbar=no,menubar=no,scrollbars=no,location=no,status=no,popup=1` } diff --git a/src/connectors/webwallet/starknetWindowObject/account.ts b/src/connectors/webwallet/starknetWindowObject/account.ts index 2fde840..5a3a525 100644 --- a/src/connectors/webwallet/starknetWindowObject/account.ts +++ b/src/connectors/webwallet/starknetWindowObject/account.ts @@ -61,7 +61,11 @@ export class MessageAccount extends Account implements AccountInterface { height: EXECUTE_POPUP_HEIGHT, location: "/review", }) - if (calls[0] && calls[0].entrypoint === "use_offchain_session") { + if ( + Array.isArray(calls) && + calls[0] && + calls[0].entrypoint === "use_offchain_session" + ) { setPopupOptions({ width: 1, height: 1, diff --git a/src/main.ts b/src/main.ts index dea60ac..ddbb659 100644 --- a/src/main.ts +++ b/src/main.ts @@ -68,7 +68,9 @@ export const connect = async ({ if (wallet) { const connector = availableConnectors.find((c) => c.id === lastWalletId) await connector?.connect() - selectedConnector = connector + if (connector) { + selectedConnector = connector + } return wallet } // otherwise fallback to modal } @@ -93,11 +95,13 @@ export const connect = async ({ dappName, callback: async (value: StarknetWindowObject | null) => { try { - if (value.id !== "argentWebWallet") { + if (value !== null && value.id !== "argentWebWallet") { setStarknetLastConnectedWallet(value.id) } selectedConnector = - availableConnectors.find((c) => c.id === value.id) ?? null + availableConnectors.find( + (c) => value !== null && c.id === value.id, + ) ?? null resolve(value) } finally { setTimeout(() => modal.$destroy()) @@ -116,7 +120,9 @@ export const getSelectedConnectorWallet = () => export const disconnect = async (options: DisconnectOptions = {}) => { removeStarknetLastConnectedWallet() - await selectedConnector.disconnect() + if (selectedConnector) { + await selectedConnector.disconnect() + } selectedConnector = null return sn.disconnect(options) diff --git a/src/modal/Modal.svelte b/src/modal/Modal.svelte index 5cc346c..b84de23 100644 --- a/src/modal/Modal.svelte +++ b/src/modal/Modal.svelte @@ -51,7 +51,7 @@ darkModeControlClass = "" } - if (isInAppBrowser) { + if (isInAppBrowser && window?.starknet_argentX) { try { const enabledValue = await sn.enable(window?.starknet_argentX) callback(enabledValue ?? window?.starknet_argentX) diff --git a/tsconfig.json b/tsconfig.json index 4a1139e..b458ac4 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -16,7 +16,9 @@ */ "allowJs": true, "checkJs": true, - "declaration": true + "declaration": true, + "verbatimModuleSyntax": false }, - "include": ["src"] + "include": ["src"], + "exclude": ["node_modules"] }