@openzeppelin/cli
Version:
Command-line interface for the OpenZeppelin smart contract platform
42 lines • 1.55 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const semver_1 = require("semver");
const fuzzy_solidity_import_parser_1 = require("@openzeppelin/fuzzy-solidity-import-parser");
function getPragma(source) {
if (!source)
return null;
const match = source.match(/pragma solidity\s+([^;]+?)\s*;/m);
if (!match)
return null;
return match[1];
}
exports.getPragma = getPragma;
function compilerVersionsMatch(v1, v2) {
if (!v1 || !v2)
return false;
const parseVersion = (version) => {
const cleaned = version
.replace(/^soljson-v?/, '')
.replace(/\.js$/, '')
.replace('g++', 'gcc'); // semver fails when parsing '+' characters as part of the build
const semver = semver_1.parse(cleaned);
if (!semver)
throw new Error(`Invalid compiler version ${version}`);
return semver;
};
return semver_1.eq(parseVersion(v1), parseVersion(v2));
}
exports.compilerVersionsMatch = compilerVersionsMatch;
function compilerSettingsMatch(s1, s2) {
if (!s1 || !s2)
return false;
return (s1.evmVersion === s2.evmVersion &&
((!s1.optimizer && !s2.optimizer) ||
(s1.optimizer.enabled == s2.optimizer.enabled && s1.optimizer.runs == s2.optimizer.runs)));
}
exports.compilerSettingsMatch = compilerSettingsMatch;
function getImports(source) {
return fuzzy_solidity_import_parser_1.getMetadata(source).imports;
}
exports.getImports = getImports;
//# sourceMappingURL=solidity.js.map
;