mirror of
https://github.com/pezkuwichain/revive.git
synced 2026-04-22 20:48:01 +00:00
62 lines
1.3 KiB
JavaScript
62 lines
1.3 KiB
JavaScript
const soljson = require('solc/soljson');
|
|
const createRevive = require('./resolc.js');
|
|
|
|
const compilerStandardJsonInput = {
|
|
language: 'Solidity',
|
|
sources: {
|
|
'MyContract.sol': {
|
|
content: `
|
|
// SPDX-License-Identifier: UNLICENSED
|
|
pragma solidity ^0.8.0;
|
|
contract MyContract {
|
|
function greet() public pure returns (string memory) {
|
|
return "Hello";
|
|
}
|
|
}
|
|
`,
|
|
},
|
|
},
|
|
settings: {
|
|
optimizer: {
|
|
enabled: true,
|
|
runs: 200,
|
|
},
|
|
outputSelection: {
|
|
'*': {
|
|
'*': ['abi'],
|
|
},
|
|
},
|
|
},
|
|
};
|
|
|
|
async function runCompiler() {
|
|
const m = createRevive();
|
|
m.soljson = soljson;
|
|
|
|
// Set input data for stdin
|
|
m.setStdinData(JSON.stringify(compilerStandardJsonInput));
|
|
|
|
var stdoutString = "";
|
|
m.setStdoutCallback(function(char) {
|
|
if (char.charCodeAt(0) === '\n') {
|
|
console.log("new line")
|
|
exit
|
|
}
|
|
stdoutString += char;
|
|
});
|
|
|
|
var stderrString = "";
|
|
m.setStderrCallback(function(char) {
|
|
stderrString += char;
|
|
});
|
|
|
|
// Compile the Solidity source code
|
|
let x = m.callMain(['--standard-json']);
|
|
console.log("Stdout: " + stdoutString);
|
|
console.error("Stderr: " + stderrString);
|
|
}
|
|
|
|
runCompiler().catch(err => {
|
|
console.error('Error:', err);
|
|
});
|