diff --git a/lib/core/file.js b/lib/core/file.js index bc97ddaa..c81d3281 100644 --- a/lib/core/file.js +++ b/lib/core/file.js @@ -24,10 +24,11 @@ class File { // Only supported in Solidity return callback(null, content); } - const regex = /import ["|']([-a-zA-Z0-9@:%_+.~#?&\/=]+)["|'];/g; + const regex = /import ["']([-a-zA-Z0-9@:%_+.~#?&\/=]+)["'];/g; let matches; const filesToDownload = []; const pathWithoutFile = path.dirname(self.path); + let newContent = content; while ((matches = regex.exec(content))) { const httpFileObj = utils.getExternalContractUrl(matches[1]); const fileObj = { @@ -36,7 +37,7 @@ class File { }; if (httpFileObj) { // Replace http import by filePath import in content - content = content.replace(matches[1], httpFileObj.filePath); + newContent = newContent.replace(matches[1], httpFileObj.filePath); fileObj.fileRelativePath = httpFileObj.filePath; fileObj.url = httpFileObj.url; @@ -49,7 +50,7 @@ class File { if (self.downloadedImports) { // We already parsed this file - return callback(null, content); + return callback(null, newContent); } self.downloadedImports = true; async.each(filesToDownload, ((fileObj, eachCb) => { @@ -57,7 +58,7 @@ class File { eachCb(); }); }), (err) => { - callback(err, content); + callback(err, newContent); }); }