You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug]: Solidity: library calls Lib.f() get no calls edge #5004
I have checked the Troubleshooting section in the README
What happened?
A Solidity library call Lib.f(...) gets no calls edge, not even when it is made inside the library itself. Base.f() on a contract has the same problem. On OpenZeppelin Contracts v5.4.0 the compiler (solc 0.8.28 AST, referencedDeclaration) resolves 208 library calls inside functions. graphify links 0 of them.
The cause: extract_solidity sends every dotted call to raw_calls with is_member_call: True and no receiver name. The shared cross-file pass in extract.py skips all member calls, and Solidity has no member pass of its own.
Steps to reproduce
Three files in one folder, then graphify update .:
MathLib.sol
// SPDX-License-Identifier: MITpragma solidity^0.8.20;
libraryMathLib {
function max(uint256a, uint256b) internalpurereturns (uint256) { return a > b ? a : b; }
function clamp(uint256x, uint256hi) internalpurereturns (uint256) { return MathLib.max(x, hi) == x ? hi : x; }
}
Activity
github-actions commentedon Nov 4, 2026
Thanks for opening this issue, @rohit-jsfreaky. A maintainer will take a look soon.
If you would like to discuss it in real time, come say hi on our Discord server. For longer-form questions and ideas there is also GitHub Discussions.
To help us triage, please make sure the report includes what you expected, what actually happened, and the steps (and a small sample) to reproduce it.