@dgpub/prime-sdk
Version:
Etherspot Prime (Account Abstraction) SDK
58 lines (57 loc) • 1.95 kB
JavaScript
;
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;