autsequi
Version:
Web3modal's provider layer abstraction for simple implementation of web3 wallet connections
48 lines (43 loc) • 1.21 kB
text/typescript
import { IAbstractConnectorOptions, getChainId } from '../../helpers';
export interface IWalletConnectConnectorOptions
extends IAbstractConnectorOptions {
infuraId?: string;
rpc?: { [chainId: number]: string };
bridge?: string;
qrcode?: boolean;
}
const ConnectToWalletConnect = (
WalletConnectProvider: any,
opts: IWalletConnectConnectorOptions
) => {
return new Promise(async (resolve, reject) => {
let bridge = 'https://bridge.walletconnect.org';
let qrcode = true;
let infuraId = '';
let rpc = undefined;
let chainId = 1;
console.log('wallet connect'); // todo remove dev item
if (opts) {
bridge = opts.bridge || bridge;
qrcode = typeof opts.qrcode !== 'undefined' ? opts.qrcode : qrcode;
infuraId = opts.infuraId || '';
rpc = opts.rpc || undefined;
chainId =
opts.network && getChainId(opts.network) ? getChainId(opts.network) : 1;
}
const provider = new WalletConnectProvider({
bridge,
qrcode,
infuraId,
rpc,
chainId,
});
try {
await provider.enable();
resolve(provider);
} catch (e) {
reject(e);
}
});
};
export default ConnectToWalletConnect;