// SPDX-License-Identifier: UNLICENSED pragma solidity =0.8.18; import "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol"; library Forwarder { function forwardCall(address target, string memory selector, bytes memory args, address sender) internal returns (bytes memory data) { bytes4 signature = bytes4(keccak256(bytes(selector))); return AddressUpgradeable.functionCall(target, abi.encodePacked(signature, args, sender)); } }