Compare commits

...

4 Commits

Author SHA1 Message Date
Charles Bachmeier
8dd6cea7c3
feat: [STAGING] block dynamic link previews for blocked collections (#7346)
feat: block dynamic link previews for blocked collections (#7344)

* feat: block link previews for blocked collections

* update collection test

* single invalid

* move blocklist to its own const file

* rename file to blocklist
2023-09-19 18:20:39 -07:00
Charles Bachmeier
84cf03a977
chore: block requested collection - staging (#7343)
chore: block requested collection
2023-09-19 08:07:02 -07:00
UL Service Account
5906e25eac ci: add global CODEOWNERS 2023-09-15 19:50:29 +00:00
UL Service Account
b958647092 ci(t9n): download translations from crowdin 2023-09-15 19:50:29 +00:00
41 changed files with 120065 additions and 13 deletions

1
CODEOWNERS Normal file
View File

@ -0,0 +1 @@
* @uniswap/web-admins

View File

@ -2,6 +2,7 @@
import { ImageResponse } from '@vercel/og'
import React from 'react'
import { blocklistedCollections } from '../../../../../src/nft/utils/blocklist'
import { WATERMARK_URL } from '../../../../constants'
import getAsset from '../../../../utils/getAsset'
import getFont from '../../../../utils/getFont'
@ -15,6 +16,10 @@ export const onRequest: PagesFunction = async ({ params, request }) => {
const tokenId = index[1]?.toString()
const cacheUrl = origin + '/nfts/asset/' + collectionAddress + '/' + tokenId
if (blocklistedCollections.includes(collectionAddress)) {
return new Response('Collection unsupported.', { status: 404 })
}
const data = await getRequest(
cacheUrl,
() => getAsset(collectionAddress, tokenId, cacheUrl),

View File

@ -18,3 +18,12 @@ test.each(invalidAssetImageUrl)('invalidAssetImageUrl', async (url) => {
const response = await fetch(new Request(url))
expect(response.status).toBe(404)
})
const blockedAssetImageUrl = [
'http://127.0.0.1:3000/api/image/nfts/asset/0xd4d871419714b778ebec2e22c7c53572b573706e/276',
]
test.each(blockedAssetImageUrl)('blockedAssetImageUrl', async (url) => {
const response = await fetch(new Request(url))
expect(response.status).toBe(404)
})

View File

@ -2,6 +2,7 @@
import { ImageResponse } from '@vercel/og'
import React from 'react'
import { blocklistedCollections } from '../../../../../src/nft/utils/blocklist'
import { CHECK_URL, WATERMARK_URL } from '../../../../constants'
import getCollection from '../../../../utils/getCollection'
import getColor from '../../../../utils/getColor'
@ -15,6 +16,10 @@ export const onRequest: PagesFunction = async ({ params, request }) => {
const collectionAddress = index?.toString()
const cacheUrl = origin + '/nfts/collection/' + collectionAddress
if (blocklistedCollections.includes(collectionAddress)) {
return new Response('Collection unsupported.', { status: 404 })
}
const data = await getRequest(
cacheUrl,
() => getCollection(collectionAddress, cacheUrl),

View File

@ -23,3 +23,12 @@ test.each(invalidCollectionImageUrls)('invalidAssetImageUrl', async (url) => {
const response = await fetch(new Request(url))
expect(response.status).toBeOneOf([404, 500])
})
const blockedCollectionImageUrls = [
'http://127.0.0.1:3000/api/image/nfts/collection/0xd4d871419714b778ebec2e22c7c53572b573706e',
]
test.each(blockedCollectionImageUrls)('blockedCollectionImageUrl', async (url) => {
const response = await fetch(new Request(url))
expect(response.status).toBeOneOf([404, 500])
})

3637
src/locales/af-ZA.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/ar-SA.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/ca-ES.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/cs-CZ.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/da-DK.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/de-DE.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/el-GR.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/es-ES.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/fi-FI.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/fr-FR.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/he-IL.po Normal file

File diff suppressed because it is too large Load Diff

3638
src/locales/hu-HU.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/id-ID.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/it-IT.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/ja-JP.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/ko-KR.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/nl-NL.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/no-NO.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/pl-PL.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/pt-BR.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/pt-PT.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/ro-RO.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/ru-RU.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/sl-SI.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/sr-SP.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/sv-SE.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/sw-TZ.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/th-TH.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/tr-TR.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/uk-UA.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/vi-VN.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/zh-CN.po Normal file

File diff suppressed because it is too large Load Diff

3637
src/locales/zh-TW.po Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,13 @@
export const blocklistedCollections = [
'0xd5eeac01b0d1d929d6cffaaf78020af137277293',
'0x85c08fffa9510f87019efdcf986301873cbb10d6',
'0x32d7e58933fceea6b73a13f8e30605d80915b616',
'0x85c08fffa9510f87019efdcf986301873cbb10d6',
'0xd5eeac01b0d1d929d6cffaaf78020af137277293',
'0x88e49f9fd4cc3d30f2f46c652f59fb52c4874f23',
'0xabefbc9fd2f806065b4f3c237d4b59d9a97bcac7',
'0xd945f759d422ae30a6166838317b937de08380e3',
'0x8e52fb89b6311bd9ec36bd7cea9a0c311fd27a92',
'0x2079c2765462af6d78a9ccbddb6ff3c6d4ba2e24',
'0xd4d871419714b778ebec2e22c7c53572b573706e',
]

View File

@ -22,16 +22,3 @@ export const isInSameSudoSwapPool = (assetA: GenieAsset, assetB: GenieAsset): bo
export const isInSameMarketplaceCollection = (assetA: GenieAsset, assetB: GenieAsset): boolean => {
return assetA.address === assetB.address && assetA.marketplace === assetB.marketplace
}
export const blocklistedCollections = [
'0xd5eeac01b0d1d929d6cffaaf78020af137277293',
'0x85c08fffa9510f87019efdcf986301873cbb10d6',
'0x32d7e58933fceea6b73a13f8e30605d80915b616',
'0x85c08fffa9510f87019efdcf986301873cbb10d6',
'0xd5eeac01b0d1d929d6cffaaf78020af137277293',
'0x88e49f9fd4cc3d30f2f46c652f59fb52c4874f23',
'0xabefbc9fd2f806065b4f3c237d4b59d9a97bcac7',
'0xd945f759d422ae30a6166838317b937de08380e3',
'0x8e52fb89b6311bd9ec36bd7cea9a0c311fd27a92',
'0x2079c2765462af6d78a9ccbddb6ff3c6d4ba2e24',
]

View File

@ -1,4 +1,5 @@
export * from './asset'
export * from './blocklist'
export * from './buildActivityAsset'
export * from './buildSellObject'
export * from './carousel'