@solvprotocol/upgrade-safe-transpiler
Version:
Solidity preprocessor used to generate OpenZeppelin Contracts Upgrade Safe.
21 lines • 947 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.newFunctionPosition = void 0;
const ast_utils_1 = require("../../solc/ast-utils");
const match_1 = require("../../utils/match");
function newFunctionPosition(contract, { readOriginal }) {
const offset = (0, ast_utils_1.getNodeBounds)(contract).start;
let searchStart = 0;
if (contract.baseContracts.length > 0) {
const [lastParent] = contract.baseContracts.slice(-1);
const pb = (0, ast_utils_1.getNodeBounds)(lastParent);
searchStart = pb.start + pb.length - offset;
}
const brace = (0, match_1.matchBufferFrom)(readOriginal(contract, 'buffer'), /\{\n?/, searchStart);
if (!brace) {
throw new Error(`Can't find start of contract ${contract.name}`);
}
return offset + brace.start + brace.length;
}
exports.newFunctionPosition = newFunctionPosition;
//# sourceMappingURL=new-function-position.js.map