@matterlabs/hardhat-zksync-solc
Version:
Hardhat plugin to compile smart contracts for the ZKsync network
59 lines • 1.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isMultiSolcUserConfig = exports.isSolcUserConfig = exports.SolcStringUserConfigExtractor = exports.SolcMultiUserConfigExtractor = exports.SolcSoloUserConfigExtractor = void 0;
class SolcSoloUserConfigExtractor {
suitable(_solidityConfig) {
if (!_solidityConfig) {
return false;
}
return isSolcUserConfig(_solidityConfig);
}
extract(_solidityConfig) {
return {
compilers: [_solidityConfig],
};
}
}
exports.SolcSoloUserConfigExtractor = SolcSoloUserConfigExtractor;
class SolcMultiUserConfigExtractor {
suitable(_solidityConfig) {
if (!_solidityConfig) {
return false;
}
return isMultiSolcUserConfig(_solidityConfig);
}
extract(_solidityConfig) {
const overrides = new Map();
for (const [file, compiler] of Object.entries(_solidityConfig.overrides ?? {})) {
overrides.set(file, compiler);
}
return {
compilers: _solidityConfig.compilers,
overides: overrides,
};
}
}
exports.SolcMultiUserConfigExtractor = SolcMultiUserConfigExtractor;
class SolcStringUserConfigExtractor {
suitable(_solidityConfig) {
if (!_solidityConfig) {
return false;
}
return typeof _solidityConfig === 'string';
}
extract(_solidityConfig) {
return {
compilers: [],
};
}
}
exports.SolcStringUserConfigExtractor = SolcStringUserConfigExtractor;
function isSolcUserConfig(object) {
return 'version' in object;
}
exports.isSolcUserConfig = isSolcUserConfig;
function isMultiSolcUserConfig(object) {
return 'compilers' in object;
}
exports.isMultiSolcUserConfig = isMultiSolcUserConfig;
//# sourceMappingURL=config-extractor.js.map