Spaces:
Running
Running
| import WalletConnect from '@walletconnect/client'; | |
| import QRCodeModal from '@walletconnect/qrcode-modal'; | |
| let connector: WalletConnect | null = null; | |
| export function createConnector() { | |
| if (!connector) { | |
| connector = new WalletConnect({ | |
| bridge: 'https://bridge.walletconnect.org' | |
| }); | |
| } | |
| return connector; | |
| } | |
| export async function connect() { | |
| const c = createConnector(); | |
| if (!c.connected) { | |
| await c.createSession(); | |
| QRCodeModal.open(c.uri, () => {}); | |
| } | |
| return new Promise((resolve, reject) => { | |
| c.on('connect', (error: any, payload: any) => { | |
| if (error) return reject(error); | |
| QRCodeModal.close(); | |
| const { accounts, chainId } = payload.params[0]; | |
| resolve({ accounts, chainId }); | |
| }); | |
| c.on('disconnect', (err: any) => { | |
| console.log('Disconnected', err); | |
| }); | |
| }); | |
| } | |