import type { WalletInit } from '@web3-onboard/common' import type { ExternalProvider } from '@ethersproject/providers' import { createEIP1193Provider } from '@web3-onboard/common' declare const window: Window & { zeal: ExternalProvider & { isZeal: boolean } } function zealWallet(): WalletInit { if (typeof window === 'undefined') return () => null return () => ({ label: 'Zeal', injectedNamespace: 'zeal', checkProviderIdentity: ({ provider }: { provider: any }) => { !!provider && !!provider['isZeal'] }, getIcon: async () => (await import('./icon.js')).default, getInterface: async () => { if ( window.hasOwnProperty('zeal') && 'isZeal' in window.zeal && window.zeal.isZeal ) { return { provider: createEIP1193Provider(window.zeal) } } else { window.open('https://www.zeal.app/', '_blank') throw new Error('Please Install Zeall to use this wallet') } }, platforms: ['desktop'] }) } export default zealWallet