UNPKG

@openzeppelin/upgrade-safe-transpiler

Version:

Solidity preprocessor used to generate OpenZeppelin Contracts Upgrade Safe.

23 lines 1.23 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"); const is_storage_variable_1 = require("./is-storage-variable"); function getInitializerItems(contract, resolver) { const constructorNode = (0, ast_utils_1.getConstructor)(contract); const varInitNodes = [...(0, utils_1.findAll)('VariableDeclaration', contract)].filter(v => v.value && (0, is_storage_variable_1.isStorageVariable)(v, resolver) && !(0, upgrades_overrides_1.hasOverride)(v, 'state-variable-assignment', resolver)); const modifiers = constructorNode?.modifiers.filter(call => !contract.linearizedBaseContracts?.includes(call.modifierName.referencedDeclaration)) ?? []; const emptyUnchained = !constructorNode?.body?.statements?.length && varInitNodes.length == 0 && modifiers.length == 0; return { constructorNode, varInitNodes, modifiers, emptyUnchained, }; } exports.getInitializerItems = getInitializerItems; //# sourceMappingURL=get-initializer-items.js.map