@solvprotocol/upgrade-safe-transpiler
Version:
Solidity preprocessor used to generate OpenZeppelin Contracts Upgrade Safe.
25 lines (21 loc) • 688 B
text/typescript
import { ContractDefinition } from 'solidity-ast';
import { TransformerTools } from '../../transform';
import { formatLines } from './format-lines';
import { getConstructor } from '../../solc/ast-utils';
export function buildPublicInitialize(
contract: ContractDefinition,
tools: TransformerTools,
): string {
const ctor = getConstructor(contract);
let args = '()';
let argNames = '';
if (ctor) {
args = tools.readOriginal(ctor.parameters);
argNames = ctor.parameters.parameters.map(p => p.name).join(', ');
}
return formatLines(1, [
`function initialize${args} public virtual initializer {`,
[`__${contract.name}_init(${argNames});`],
'}',
]);
}