UNPKG

@newos/upgradeability-transpiler

Version:

Transpiles Solidity contracts to updgradable versions compatible with NewOs.

29 lines 1.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const ast_utils_1 = require("../solc/ast-utils"); function fixImportDirectives(artifact, artifacts, contracts) { const imports = ast_utils_1.getImportDirectives(artifact.ast); return imports .map(imp => { const [start, len] = ast_utils_1.getSourceIndices(imp); const isTranspiled = artifacts.some(art => art.ast.id === imp.sourceUnit && contracts.includes(art)); const isLocal = imp.file.startsWith('.'); const prefix = !isLocal ? './' : ''; const fixedPath = `import "${prefix}${imp.file.replace('.sol', 'Upgradeable.sol')}";`; const absoluteOriginalImport = `import "${imp.absolutePath}";`; const finalImportDirective = !isTranspiled ? absoluteOriginalImport : fixedPath; const finalTransformation = isTranspiled ? `${absoluteOriginalImport}\n${finalImportDirective}` : absoluteOriginalImport; return !isLocal && !isTranspiled ? null : { start: start, end: start + len, text: finalTransformation, }; }) .filter((transformation) => transformation !== null); } exports.fixImportDirectives = fixImportDirectives; //# sourceMappingURL=fix-import-directives.js.map