UNPKG

idquia

Version:

Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, mul

55 lines (47 loc) 1.77 kB
import { CedeProvider, detectCedeProvider } from '@cedelabs/providers' import type { WalletInit } from '@web3-onboard/common' import { createEIP1193Provider } from '@web3-onboard/common' type CustomWindow = typeof window & { cede: CedeProvider } function cedeStoreWallet(): WalletInit { if (typeof window === 'undefined') return () => null return () => ({ label: 'cede.store', injectedNamespace: 'cede', checkProviderIdentity: () => (window as CustomWindow).cede, getIcon: async () => (await import('./icon.js')).default, getInterface: async () => { const provider = await detectCedeProvider() if (!provider) { window.open('https://cede.store', '_blank') throw new Error('Please, install cede.store to use this wallet') } // handle disconnect provider.once('lock', () => { provider.emit('accountsChanged', []) }) return Promise.resolve({ provider: createEIP1193Provider(provider, { eth_requestAccounts: async () => { const accounts = await provider.request({ method: 'connect' }) if (!accounts.length) { return [] } const activeVault = accounts.find(account => account.isActive) return [activeVault?.name || accounts[0].name] }, eth_chainId: () => Promise.resolve('0x1'), // cede.store doesn't support chains, but we have to provide a value to complete the connection wallet_switchEthereumChain: null, wallet_addEthereumChain: null, eth_getBalance: () => Promise.resolve('0x0'), eth_selectAccounts: null }) }) }, platforms: ['desktop'] }) } export default cedeStoreWallet