@reown/appkit-utils
Version:
The full stack toolkit to build onchain app UX.
34 lines • 1.41 kB
JavaScript
import { ChainController, OptionsController } from '@reown/appkit-controllers';
import { EthersProvider } from './EthersProvider.js';
export class CoinbaseWalletProvider extends EthersProvider {
async initialize() {
const caipNetworks = ChainController.getCaipNetworks();
const { metadata, coinbasePreference } = OptionsController.state;
try {
const { CoinbaseWalletSDK } = await import('@coinbase/wallet-sdk');
if (typeof window === 'undefined') {
return Promise.resolve();
}
const chainIds = caipNetworks?.map(caipNetwork => caipNetwork.id) || [1];
const coinbaseWalletSDK = new CoinbaseWalletSDK({
appName: metadata?.name || 'AppKit',
appLogoUrl: metadata?.icons[0],
appChainIds: chainIds
});
this.provider = coinbaseWalletSDK.makeWeb3Provider({
options: coinbasePreference ?? 'all'
});
this.initialized = true;
return Promise.resolve();
}
catch (error) {
// eslint-disable-next-line no-console
console.error('Failed to import Coinbase Wallet SDK:', error);
return Promise.resolve();
}
}
async getProvider() {
return Promise.resolve(this.provider);
}
}
//# sourceMappingURL=CoinbaseProvider.js.map