UNPKG

@solvprotocol/upgrade-safe-transpiler

Version:

Solidity preprocessor used to generate OpenZeppelin Contracts Upgrade Safe.

39 lines 1.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.prependInitializableBase = void 0; const utils_1 = require("solidity-ast/utils"); const ast_utils_1 = require("../solc/ast-utils"); const match_1 = require("../utils/match"); function* prependInitializableBase(sourceUnit, { originalSourceBuf }) { for (const contract of (0, utils_1.findAll)('ContractDefinition', sourceUnit)) { if (contract.contractKind !== 'contract') { continue; } if (contract.baseContracts.length > 0) { const { start } = (0, ast_utils_1.getNodeBounds)(contract.baseContracts[0]); yield { kind: 'prepend-initializable-base', start, length: 0, text: `Initializable, `, }; } else { const bounds = (0, ast_utils_1.getNodeBounds)(contract); const re = /(?:abstract\s+)?contract\s+([a-zA-Z0-9$_]+)/; const match = (0, match_1.matchBufferAt)(originalSourceBuf, re, bounds.start); if (!match) { throw new Error(`Can't find ${contract.name} in ${sourceUnit.absolutePath}`); } const start = match.start + match.length; yield { start, length: 0, kind: 'prepend-initializable-base', text: ' is Initializable', }; } } } exports.prependInitializableBase = prependInitializableBase; //# sourceMappingURL=prepend-initializable-base.js.map