interface IZeroEx is
    IOwnableFeature,
    ISimpleFunctionRegistryFeature,
    ITokenSpenderFeature,
    ISignatureValidatorFeature,
    ITransformERC20Feature,
    IMetaTransactionsFeature
{
    // solhint-disable state-visibility

    /// @dev Fallback for just receiving ether.
    receive() external payable;

    // solhint-enable state-visibility

    /// @dev Get the implementation contract of a registered function.
    /// @param selector The function selector.
    /// @return impl The implementation contract address.
    function getFunctionImplementation(bytes4 selector)
        external
        view
        returns (address impl);
}
/// @dev Interface for a fully featured Exchange Proxy.
function getFunctionImplementation(bytes4 selector)
    external
    view
    returns (address impl);

/// @dev Get the implementation contract of a registered function.
/// @param selector The function selector.
/// @return impl The implementation contract address.