@solvprotocol/upgrade-safe-transpiler
Version:
Solidity preprocessor used to generate OpenZeppelin Contracts Upgrade Safe.
21 lines • 1.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getInitializerItems = void 0;
const utils_1 = require("solidity-ast/utils");
const ast_utils_1 = require("../../solc/ast-utils");
const upgrades_overrides_1 = require("../../utils/upgrades-overrides");
function getInitializerItems(contract) {
var _a, _b, _c;
const constructorNode = (0, ast_utils_1.getConstructor)(contract);
const varInitNodes = [...(0, utils_1.findAll)('VariableDeclaration', contract)].filter(v => v.stateVariable && v.value && !v.constant && !(0, upgrades_overrides_1.hasOverride)(v, 'state-variable-assignment'));
const modifiers = (_a = constructorNode === null || constructorNode === void 0 ? void 0 : constructorNode.modifiers.filter(call => { var _a; return !((_a = contract.linearizedBaseContracts) === null || _a === void 0 ? void 0 : _a.includes(call.modifierName.referencedDeclaration)); })) !== null && _a !== void 0 ? _a : [];
const emptyUnchained = !((_c = (_b = constructorNode === null || constructorNode === void 0 ? void 0 : constructorNode.body) === null || _b === void 0 ? void 0 : _b.statements) === null || _c === void 0 ? void 0 : _c.length) && varInitNodes.length == 0 && modifiers.length == 0;
return {
constructorNode,
varInitNodes,
modifiers,
emptyUnchained,
};
}
exports.getInitializerItems = getInitializerItems;
//# sourceMappingURL=get-initializer-items.js.map