@truffle/compile-solidity
Version:
Compiler helper and artifact manager for Solidity files
43 lines • 1.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NoNativeError = exports.Native = void 0;
const { execSync } = require("child_process");
const { normalizeSolcVersion } = require("../normalizeSolcVersion");
const { NoVersionError } = require("../errors");
class Native {
load() {
const versionString = this.validateAndGetSolcVersion();
const command = "solc --standard-json";
const maxBuffer = 1024 * 1024 * 50;
try {
return {
compile: options => String(execSync(command, { input: options, maxBuffer })),
version: () => versionString
};
}
catch (error) {
if (error.message === "No matching version found") {
throw new NoVersionError(versionString);
}
throw error;
}
}
validateAndGetSolcVersion() {
let version;
try {
version = execSync("solc --version");
}
catch (error) {
throw new NoNativeError(error);
}
return normalizeSolcVersion(version);
}
}
exports.Native = Native;
class NoNativeError extends Error {
constructor(error) {
super("Could not execute local solc binary: " + error);
}
}
exports.NoNativeError = NoNativeError;
//# sourceMappingURL=Native.js.map