UNPKG

bebox

Version:

TronBox - Simple development framework for Tron

1 lines 2.56 kB
"use strict";var wrapper=require("solc/wrapper");var _require=require("../../package"),name=_require.name;var path=require("path");var fs=require("fs-extra");var homedir=require("homedir");var _require2=require("child_process"),execSync=_require2.execSync;var supportedVersions=["0.4.24","0.4.25","0.5.4","0.5.8","0.5.10","0.5.12","0.5.13","0.5.14","0.5.15","0.6.0"];var maxVersion="0.6.0";function getWrapper(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};try{var params=options.networkInfo.parameters;var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=params[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var p=_step.value;if(p.key==="getAllowTvmSolidity059"){if(p.value&&!supportedVersions.includes("0.5.9")){supportedVersions.push("0.5.9");break}}}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator["return"]!=null){_iterator["return"]()}}finally{if(_didIteratorError){throw _iteratorError}}}}catch(e){}supportedVersions=supportedVersions.map(function(a){return a.split(".").map(function(n){return+n+100000}).join(".")}).sort().map(function(a){return a.split(".").map(function(n){return+n-100000}).join(".")});var compilerVersion="0.5.4";var solcDir=path.join(homedir(),".tronbox","solc");if(options.networks){if(options.networks.useZeroFourCompiler){compilerVersion="0.4.25"}else if(options.networks.useZeroFiveCompiler){compilerVersion="0.5.4"}try{var version=options.networks.compilers.solc.version;if(supportedVersions.includes(version)){compilerVersion=version}else{console.error("Error:\nTronBox supports only the following versions:\n".concat(supportedVersions.join(" - "),"\n"));process.exit()}}catch(e){}}var soljsonPath=path.join(solcDir,"soljson_v".concat(compilerVersion,".js"));if(!fs.existsSync(soljsonPath)){if(process.env.TRONBOX_NAME){name=process.env.TRONBOX_NAME}var output=execSync("".concat(name," --download-compiler ").concat(compilerVersion)).toString();if(output.indexOf("Permission required")!==-1){console.error("\nError: Permissions required.\n\nMost likely, you installed Node as root.\nPlease, download the compiler manually, running:\n\ntronbox --download-compiler ".concat(compilerVersion,"\n"));process.exit()}}var soljson=eval("require")(soljsonPath);return wrapper(soljson)}module.exports.getWrapper=getWrapper;module.exports.supportedVersions=supportedVersions;module.exports.maxVersion=maxVersion;