@openzeppelin/upgrade-safe-transpiler
Version:
Solidity preprocessor used to generate OpenZeppelin Contracts Upgrade Safe.
23 lines (21 loc) • 664 B
text/typescript
import { SourceUnit } from 'solidity-ast';
import { getNodeBounds } from '../solc/ast-utils';
import { Transformation } from './type';
import { TransformerTools } from '../transform';
import assert from 'assert';
export function* peerImport(
ast: SourceUnit,
{ getData }: TransformerTools,
): Generator<Transformation> {
for (const node of ast.nodes) {
const { importFromPeer } = getData(node);
if (importFromPeer !== undefined) {
assert('name' in node);
yield {
...getNodeBounds(node),
kind: 'replace-declaration-with-peer-import',
text: `import { ${node.name} } from "${importFromPeer}";`,
};
}
}
}