hardhat-secure-accounts
Version:
Account management plugin for Hardhat
63 lines • 3.17 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
require("@nomicfoundation/hardhat-ethers");
const path_1 = __importDefault(require("path"));
const config_1 = require("hardhat/config");
const plugins_1 = require("hardhat/plugins");
const signer_1 = require("./lib/signer");
const logger_1 = require("./helpers/logger");
require("./type-extensions");
require("./tasks");
const account_1 = require("./lib/account");
(0, config_1.extendConfig)((config, userConfig) => {
var _a;
const userPath = (_a = userConfig.paths) === null || _a === void 0 ? void 0 : _a.secureAccounts;
let accounts;
if (userPath === undefined) {
accounts = path_1.default.join(config.paths.root, '.keystore');
}
else {
if (path_1.default.isAbsolute(userPath)) {
accounts = userPath;
}
else {
accounts = path_1.default.normalize(path_1.default.join(config.paths.root, userPath));
}
}
(0, logger_1.logDebug)(`Using accounts directory: ${accounts}`);
config.paths.secureAccounts = accounts;
});
(0, config_1.extendEnvironment)((hre) => {
hre.accounts = (0, plugins_1.lazyObject)(() => {
const { HardhatEthersProvider, } = require('@nomicfoundation/hardhat-ethers/internal/hardhat-ethers-provider');
const provider = new HardhatEthersProvider(hre.network.provider, hre.network.name);
return {
provider: provider,
getSigner: (accountName, accountPassword) => (0, signer_1.getSigner)(hre.config.paths.secureAccounts, provider, accountName, accountPassword),
getSigners: (accountName, accountPassword) => (0, signer_1.getSigners)(hre.config.paths.secureAccounts, provider, accountName, accountPassword),
};
});
});
(0, config_1.extendProvider)(async (provider, config, network) => {
var _a, _b, _c, _d;
if ((((_a = config.networks[network].secureAccounts) === null || _a === void 0 ? void 0 : _a.enabled) ||
((_b = config.secureAccounts) === null || _b === void 0 ? void 0 : _b.enabled)) &&
process.env.SECURE_ACCOUNTS_DISABLE_PROVIDER !== 'true') {
const secureAccounts = (0, account_1.getSecureAccounts)(config.paths.secureAccounts);
if (secureAccounts.length !== 0) {
(0, logger_1.logDebug)('Creating SecureAccounts provider');
const { SecureAccountsProvider } = require('./lib/provider');
const defaultAccount = (_c = config.networks[network].secureAccounts) === null || _c === void 0 ? void 0 : _c.defaultAccount;
const defaultAccountPassword = (_d = config.networks[network].secureAccounts) === null || _d === void 0 ? void 0 : _d.defaultAccountPassword;
return await SecureAccountsProvider.create(provider, config.paths.secureAccounts, defaultAccount, defaultAccountPassword);
}
else {
(0, logger_1.logDebug)('No accounts found, using default provider');
}
}
return provider;
});
//# sourceMappingURL=index.js.map