import type { WalletInit, SimpleEventEmitter, EIP1193Provider } from '@web3-onboard/common' import { createEIP1193Provider } from '@web3-onboard/common' import { CustomWindow } from './types.js' declare const window: CustomWindow function enkrypt(): WalletInit { if (typeof window === 'undefined') return () => null return () => { return { label: 'Enkrypt', getIcon: async () => (await import('./icon.js')).default, getInterface: async () => { const enkryptExists = window.hasOwnProperty('enkrypt') if (enkryptExists) { const enkryptProvider: EIP1193Provider = window.enkrypt.providers .ethereum as EIP1193Provider const addListener: SimpleEventEmitter['on'] = enkryptProvider.on.bind(enkryptProvider) enkryptProvider.on = (event, func) => { addListener(event, func) } const provider = createEIP1193Provider(enkryptProvider) provider.removeListener = (event, func) => {} return { provider } } else { window.open('https://enkrypt.com', '_blank') throw new Error('Please Install Enkrypt to use this wallet') } } } } } export default enkrypt