UNPKG

@reown/appkit-utils

Version:

The full stack toolkit to build onchain app UX.

34 lines 1.32 kB
/* eslint-disable max-classes-per-file */ import { SafeAppProvider } from '@safe-global/safe-apps-provider'; import { EthersProvider } from './EthersProvider.js'; class _SafeProvider extends SafeAppProvider { // Safe Provider doesn't support eth_requestAccounts, so we need to override the request method // eslint-disable-next-line @typescript-eslint/no-explicit-any request(request) { if (request.method === 'eth_requestAccounts') { return this.request({ method: 'eth_accounts', params: [] }); } return super.request(request); } } export class SafeProvider extends EthersProvider { async initialize() { const { default: SafeAppsSDK } = await import('@safe-global/safe-apps-sdk'); const appsSdk = new SafeAppsSDK(); const info = await appsSdk.safe.getInfo(); const provider = new _SafeProvider(info, appsSdk); await provider.connect().catch(error => { // eslint-disable-next-line no-console console.info('Failed to auto-connect to Safe:', error); }); this.provider = provider; this.initialized = true; } async getProvider() { return Promise.resolve(this.provider); } } //# sourceMappingURL=SafeProvider.js.map