@etherspot/prime-sdk
Version:
Etherspot Prime (Account Abstraction) SDK
29 lines (28 loc) • 1.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.KeyWalletProvider = void 0;
const ethers_1 = require("ethers");
class KeyWalletProvider {
constructor(privateKey) {
this.type = 'Key';
this.wallet = new ethers_1.Wallet(privateKey);
const { address } = this.wallet;
this.address = address;
}
async signMessage(message) {
return this.wallet.signMessage(message);
}
async signTypedData(typedData, message, factoryAddress, initCode) {
const { domain, types } = typedData;
if (types["EIP712Domain"]) {
delete typedData.types["EIP712Domain"];
}
const signature = await this.wallet._signTypedData(domain, types, message);
if (initCode !== '0x') {
const abiCoderResult = ethers_1.utils.defaultAbiCoder.encode(['address', 'bytes', 'bytes'], [factoryAddress, initCode, signature]);
return abiCoderResult + '6492649264926492649264926492649264926492649264926492649264926492';
}
return signature;
}
}
exports.KeyWalletProvider = KeyWalletProvider;