@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
JavaScript
;
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