hardhat-secure-accounts
Version:
Account management plugin for Hardhat
22 lines • 1.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DEFAULT_HD_PATH_PREFIX = exports.DEFAULT_HD_COUNT = void 0;
exports.getSigner = getSigner;
exports.getSigners = getSigners;
const ethers_1 = require("ethers");
const account_1 = require("./account");
exports.DEFAULT_HD_COUNT = 20;
exports.DEFAULT_HD_PATH_PREFIX = `m/44'/60'/0'/0/`;
async function getSigner(accountsDir, provider, accountName, accountPassword) {
const phrase = await (0, account_1.unlockAccount)(accountsDir, accountName, accountPassword);
return deriveWallets(phrase, 1)[0].connect(provider);
}
async function getSigners(accountsDir, provider, accountName, accountPassword) {
const phrase = await (0, account_1.unlockAccount)(accountsDir, accountName, accountPassword);
return deriveWallets(phrase, exports.DEFAULT_HD_COUNT).map(w => w.connect(provider));
}
function deriveWallets(phrase, count) {
const mnemonic = ethers_1.Mnemonic.fromPhrase(phrase);
return Array.from(Array(count).keys()).map((i) => ethers_1.HDNodeWallet.fromMnemonic(mnemonic, `${exports.DEFAULT_HD_PATH_PREFIX}${i}`));
}
//# sourceMappingURL=signer.js.map