@openzeppelin/upgrade-safe-transpiler
Version:
Solidity preprocessor used to generate OpenZeppelin Contracts Upgrade Safe.
23 lines • 1.23 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");
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