UNPKG

@gnus.ai/upgrade-safe-transpiler-diamond

Version:

Solidity preprocessor used to generate OpenZeppelin Contracts Upgrade Safe using Diamond Pattern (EIP-2535).

31 lines 1.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.removeStateVariables = 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* removeStateVariables(sourceUnit, tools) { for (const contractNode of (0, utils_1.findAll)('ContractDefinition', sourceUnit)) { if ((0, upgrades_overrides_1.hasConstructorOverride)(contractNode)) { continue; } for (const varDecl of (0, utils_1.findAll)('VariableDeclaration', contractNode)) { if ((varDecl.stateVariable && !varDecl.constant) && !(0, upgrades_overrides_1.hasOverride)(varDecl, 'state-variable-assignment') && !(0, upgrades_overrides_1.hasOverride)(varDecl, 'state-variable-immutable')) { const vBounds = (0, ast_utils_1.getNodeBounds)(varDecl); const vCodeStart = tools.originalSource.substring(vBounds.start); const vCode = vCodeStart.match(/.*?;\n?/s); const vLength = vCode === null ? vBounds.length + 1 : vCode[0].length; yield { start: vBounds.start, length: vLength, kind: 'remove-var-states', transform: source => source.replace(/.*/s, ''), }; } } } } exports.removeStateVariables = removeStateVariables; //# sourceMappingURL=remove-state-variables.js.map