async getOEmbedData(url, externalRequest) {
        const [match, transaction, asset] = url.pathname.match(OPENSEA_ETH_PATH_REGEX);
        if (!match) {
            return null;
        }
        const headers = {};
        if (this.dependencies.config.apiKey) {
            headers['X-API-KEY'] = this.dependencies.config.apiKey;
        }
        const result = await externalRequest(`https://api.opensea.io/api/v1/asset/${transaction}/${asset}/?format=json`, {
            headers
        }).json();
        return {
            version: '1.0',
            type: 'nft',
            title: result.body.name ? result.body.name : `#${result.body.token_id}`,
            author_name: result.body.creator.user.username,
            author_url: `https://opensea.io/${result.body.creator.user.username}`,
            provider_name: 'OpenSea',
            provider_url: 'https://opensea.io',
            image_url: result.body.image_url,
            creator_name: result.body.creator.user.username,
            description: result.body.description,
            collection_name: result.body.collection.name
        };
    }
@param {URL} url
@param {IExternalRequest} externalRequest

@returns {Promise<object>}