I'm trying to make my contracts upgradable with solidity, openzeppelin transparent upgradable proxies but I have some functions that use delegate calls, I found this in the documents, but I don't understand if I can use delegate calls in my functions when I add the modifier or I can't use it in any case: https://docs.openzeppelin.com/upgrades-plugins/1.x/faq#delegatecall-selfdestruct
Also, I see that the AddressUpgradable.sol deletes the delegate call functionality.
Could someone please tell me if I can use it or not?
I don't have any self-destruct code anywhere, I just need to allow the users to use delegate call.
Code to reproduce
function _multicall(bytes[] calldata _data)
internal
virtual
returns (bytes[] memory)
{
uint256 _dataLength = _data.length;
bytes[] memory results = new bytes[](_dataLength);
for (uint256 i; i < _dataLength; i++) {
results[i] = Address.functionDelegateCall(
address(this),
_data[i]
);
}
return results;
}