The low-level .delegatecall() does not return the execution outcome, but converts the value returned by the functioned called to a boolean instead.
The return value of the low-level .delegatecall() function is taken from a position in memory, where the call data or the return data resides. This value is interpreted as a boolean and put onto the stack. This means if the called function returns at least 32 zero bytes, .delegatecall() returns false even if the call was successful. - First Introduced: 0.3.0 - Fixed in Version: 0.4.15 - Published: - Severity<: low