Вызов Called при помощи address

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
contract Called {
    bool public myBool;
    function foo() public pure returns (string memory) {
        return "A";
    }
}

contract Caller {
    function callFooFunction(address _a) public returns (bytes memory) {
        (bool success, bytes memory data) = _a.call(abi.encodeWithSignature("foo()"));
        require(success, "Call failed");
        return data;
    }
}