UNPKG

@dgpub/prime-sdk

Version:

Etherspot Prime (Account Abstraction) SDK

58 lines (57 loc) 1.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WalletConnectWalletProvider = void 0; const common_1 = require("../../common"); const dynamic_wallet_provider_1 = require("./dynamic.wallet-provider"); class WalletConnectWalletProvider extends dynamic_wallet_provider_1.DynamicWalletProvider { static connect(connector) { return new WalletConnectWalletProvider(connector); } constructor(connector) { super('WalletConnect'); this.connector = connector; try { const { accounts: [address], chainId, } = connector; this.setAddress(address); this.setNetworkName(chainId); } catch (err) { } this.updateSessionHandler = this.updateSessionHandler.bind(this); connector.on('connect', this.updateSessionHandler); connector.on('session_update', this.updateSessionHandler); connector.on('disconnect', () => { this.setAddress(null); this.setNetworkName(null); }); } async signMessage(message) { const response = await this.connector.signPersonalMessage([ (0, common_1.toHex)(message), this.address, ]); return response || null; } async signTypedData(typedData, message, accountAddress) { throw new Error('Not supported on this provider'); } updateSessionHandler(error, payload) { let address = null; let chainId = null; if (!error) { try { ({ accounts: [address], chainId, } = payload.params[0]); } catch (err) { address = null; chainId = null; } } this.setAddress(address); this.setNetworkName(chainId); } } exports.WalletConnectWalletProvider = WalletConnectWalletProvider;