UNPKG

@solvprotocol/upgrade-safe-transpiler

Version:

Solidity preprocessor used to generate OpenZeppelin Contracts Upgrade Safe.

21 lines 1.46 kB
"use strict"; 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