@solvprotocol/upgrade-safe-transpiler
Version:
Solidity preprocessor used to generate OpenZeppelin Contracts Upgrade Safe.
31 lines • 1.63 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.addRequiredPublicInitializer = void 0;
const utils_1 = require("solidity-ast/utils");
const minimatch_1 = __importDefault(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) {
var _a;
const { getData } = tools;
const requested = (_a = publicInitializers === null || publicInitializers === void 0 ? void 0 : publicInitializers.some(p => (0, minimatch_1.default)(sourceUnit.absolutePath, p))) !== null && _a !== void 0 ? _a : 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