const soljson = require("solc/soljson"); const createRevive = require("./resolc.js"); async function compile(standardJsonInput) { if (!standardJsonInput) { throw new Error("Input JSON for the Solidity compiler is required."); } // Initialize the compiler const compiler = createRevive(); compiler.soljson = soljson; // Provide input to the compiler compiler.writeToStdin(JSON.stringify(standardJsonInput)); // Run the compiler compiler.callMain(["--standard-json"]); // Collect output const stdout = compiler.readFromStdout(); const stderr = compiler.readFromStderr(); // Check for errors and throw if stderr exists if (stderr) { throw new Error(`Compilation failed: ${stderr}`); } // Return the output if no errors return stdout; } module.exports = { compile };