@openzeppelin/upgrade-safe-transpiler
Version:
Solidity preprocessor used to generate OpenZeppelin Contracts Upgrade Safe.
27 lines • 1.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.addRequiredPublicInitializer = void 0;
const utils_1 = require("solidity-ast/utils");
const minimatch_1 = require("minimatch");
const new_function_position_1 = require("./utils/new-function-position");
const build_pulic_initialize_1 = require("./utils/build-pulic-initialize");
function addRequiredPublicInitializer(publicInitializers) {
return function* (sourceUnit, tools) {
const { getData } = tools;
const requested = publicInitializers?.some(p => (0, minimatch_1.minimatch)(sourceUnit.absolutePath, p)) ?? false;
for (const contract of (0, utils_1.findAll)('ContractDefinition', sourceUnit)) {
if (getData(contract).isUsedInNewStatement ||
(requested && contract.contractKind === 'contract')) {
const start = (0, new_function_position_1.newFunctionPosition)(contract, tools);
yield {
start,
length: 0,
kind: 'add-external-initializer',
text: (0, build_pulic_initialize_1.buildPublicInitialize)(contract, tools),
};
}
}
};
}
exports.addRequiredPublicInitializer = addRequiredPublicInitializer;
//# sourceMappingURL=add-required-public-initializers.js.map