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
interface IVault {
function doSomething() external;
}
contract Pool {
private immutable IVault _vault;
constructor(IVault vault) {
_vault = vault;
}
function getVault() public view returns (IVault) {
return _vault;
}
function doSomethingInVault() external {
getVault().doSomething();
}
}
In this example, a Pool contract holds an immutable reference to a Vault contract, which has a known interface.
When calling doSomethingInVault, the pool gets its internal reference through the public getter, and executes an external call.
When generating the graph however, the parser shows that doSomethingInVault calls getVault (which is correct), but it does not parse the external call to IVault#doSomething (i.e. shows doSomethingInVault --> getVault).
The proposal would be to include the external call as well. In this case, it would be doSomethingInVault --> getVault --> doSomething.
PS: thanks for sharing this tool; it's pretty cool and useful!
The text was updated successfully, but these errors were encountered:
I'll illustrate the case with a code sample:
In this example, a
Pool
contract holds an immutable reference to aVault
contract, which has a known interface.When calling
doSomethingInVault
, the pool gets its internal reference through the public getter, and executes an external call.When generating the graph however, the parser shows that
doSomethingInVault
callsgetVault
(which is correct), but it does not parse the external call toIVault#doSomething
(i.e. showsdoSomethingInVault --> getVault
).The proposal would be to include the external call as well. In this case, it would be
doSomethingInVault --> getVault --> doSomething
.PS: thanks for sharing this tool; it's pretty cool and useful!
The text was updated successfully, but these errors were encountered: