import { createEIP1193Provider, WalletInit } from '@web3-onboard/common' import icon from './icon.js' import type { ConstructorParams } from '@arcana/auth/types' export default function (opts: { clientID: string params?: ConstructorParams }): WalletInit { return () => ({ label: 'Arcana Auth', async getIcon() { return icon }, async getInterface() { const { AuthProvider } = await import('@arcana/auth') const instance = new AuthProvider(opts.clientID, opts.params) await instance.init() return new Promise((resolve, reject) => { // @ts-ignore instance.provider.once('connect', () => { resolve({ provider: createEIP1193Provider(instance.provider), instance }) }) instance.connect().catch(reject) }) } }) }