@cryptovarna/tronbox
Version:
TronBox - Simple development framework for Tron
1 lines • 3.73 kB
JavaScript
;function _createForOfIteratorHelper(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]}},e:function e(_e){throw _e},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o)},n:function n(){var step=it.next();normalCompletion=step.done;return step},e:function e(_e2){didErr=true;err=_e2},f:function f(){try{if(!normalCompletion&&it["return"]!=null)it["return"]()}finally{if(didErr)throw err}}}}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i]}return arr2}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.5.16","0.5.17","0.6.0","0.6.2","0.6.8","0.6.12","0.7.0","0.7.6","0.8.0"];var maxVersion="0.8.0";function getWrapper(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};try{var params=options.networkInfo.parameters;var _iterator=_createForOfIteratorHelper(params),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var p=_step.value;if(p.key==="getAllowTvmSolidity059"){if(p.value&&!supportedVersions.includes("0.5.9")){supportedVersions.push("0.5.9");break}}}}catch(err){_iterator.e(err)}finally{_iterator.f()}}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;