Add 41 new Unstoppable Domains Web3 TLDs (#34238)
This PR adds 41 new Web3 TLDs from Unstoppable Domains that were reviewed and approved in brave/reviews#2128. New TLDs added: .agent, .ai4, .amped, .anyone, .arculus, .ath, .bch, .bunni, .carbon, .cgai, .chip, .collect, .dejay, .depin, .derad, .digibyte, .dsci, .goblin, .gotchi, .hub, .imtoken, .learn, .lunar, .marketer, .mobix, .mooncat, .mycircle, .ohm, .pack, .pbdx, .pendle, .pilot, .pokt, .presearch, .pundi, .spend, .supernova, .twin, .web3, .xyo, .zano Resolves brave/brave-browser#53187 Resolves brave/reviews#2128 --------- Co-authored-by: Christian Mazakas <christian.mazakas@gmail.com>
This commit is contained in:
co-authored by
Christian Mazakas
parent
bf12a5357d
commit
7854c9c548
@@ -212,14 +212,21 @@ TYPED_TEST(DecentralizedDnsNetworkDelegateHelperTest,
|
||||
const char* url;
|
||||
bool is_valid;
|
||||
} test_cases[] = {
|
||||
{"https://brave.888", false},
|
||||
{"https://brave.888", false}, //
|
||||
{"https://brave.agent", true},
|
||||
{"https://brave.ai4", true},
|
||||
{"https://brave.altimist", true},
|
||||
{"https://brave.amped", true},
|
||||
{"https://brave.anime", true},
|
||||
{"https://brave.anyone", true},
|
||||
{"https://brave.arculus", true},
|
||||
{"https://brave.ask", true},
|
||||
{"https://brave.ath", true},
|
||||
{"https://brave.austin", true},
|
||||
{"https://brave.bald", true},
|
||||
{"https://brave.basenji", true},
|
||||
{"https://brave.bay", true},
|
||||
{"https://brave.bch", true},
|
||||
{"https://brave.benji", true},
|
||||
{"https://brave.binanceus", true},
|
||||
{"https://brave.bitcoin", true},
|
||||
@@ -228,65 +235,99 @@ TYPED_TEST(DecentralizedDnsNetworkDelegateHelperTest,
|
||||
{"https://brave.blockchain", true},
|
||||
{"https://brave.boomer", true},
|
||||
{"https://brave.brave", true},
|
||||
{"https://brave.bunni", true},
|
||||
{"https://brave.calicoin", true},
|
||||
{"https://brave.carbon", true},
|
||||
{"https://brave.caw", true},
|
||||
{"https://brave.cgai", true},
|
||||
{"https://brave.chip", true},
|
||||
{"https://brave.chomp", true},
|
||||
{"https://brave.clay", true},
|
||||
{"https://brave.coin", false},
|
||||
{"https://brave.collect", true},
|
||||
{"https://brave.crypto", true},
|
||||
{"https://brave.dao", true},
|
||||
{"https://brave.dejay", true},
|
||||
{"https://brave.depin", true},
|
||||
{"https://brave.derad", true},
|
||||
{"https://brave.dfz", true},
|
||||
{"https://brave.digibyte", true},
|
||||
{"https://brave.doga", true},
|
||||
{"https://brave.donut", true},
|
||||
{"https://brave.dream", true},
|
||||
{"https://brave.dsci", true},
|
||||
{"https://brave.emir", true},
|
||||
{"https://brave.ethermail", true},
|
||||
{"https://brave.farms", true},
|
||||
{"https://brave.goblin", true},
|
||||
{"https://brave.gotchi", true},
|
||||
{"https://brave.grow", true},
|
||||
{"https://brave.her", true},
|
||||
{"https://brave.hub", true},
|
||||
{"https://brave.imtoken", true},
|
||||
{"https://brave.kingdom", true},
|
||||
{"https://brave.klever", true},
|
||||
{"https://brave.kresus", true},
|
||||
{"https://brave.kryptic", true},
|
||||
{"https://brave.learn", true},
|
||||
{"https://brave.lfg", true},
|
||||
{"https://brave.ltc", true},
|
||||
{"https://brave.lunar", true},
|
||||
{"https://brave.manga", true},
|
||||
{"https://brave.marketer", true},
|
||||
{"https://brave.metropolis", true},
|
||||
{"https://brave.miku", true},
|
||||
{"https://brave.ministry", true},
|
||||
{"https://brave.mobix", true},
|
||||
{"https://brave.moon", true},
|
||||
{"https://brave.mooncat", true},
|
||||
{"https://brave.mumu", true},
|
||||
{"https://brave.mycircle", true},
|
||||
{"https://brave.nft", true},
|
||||
{"https://brave.nibi", true},
|
||||
{"https://brave.npc", true},
|
||||
{"https://brave.ohm", true},
|
||||
{"https://brave.onchain", true},
|
||||
{"https://brave.pack", true},
|
||||
{"https://brave.pastor", true},
|
||||
{"https://brave.pbdx", true},
|
||||
{"https://brave.pendle", true},
|
||||
{"https://brave.pilot", true},
|
||||
{"https://brave.podcast", true},
|
||||
{"https://brave.pog", true},
|
||||
{"https://brave.pokt", true},
|
||||
{"https://brave.polygon", true},
|
||||
{"https://brave.presearch", true},
|
||||
{"https://brave.privacy", true},
|
||||
{"https://brave.propykeys", true},
|
||||
{"https://brave.pudgy", true},
|
||||
{"https://brave.pundi", true},
|
||||
{"https://brave.quantum", true},
|
||||
{"https://brave.rad", true},
|
||||
{"https://brave.raiin", true},
|
||||
{"https://brave.secret", true},
|
||||
{"https://brave.smobler", true},
|
||||
{"https://brave.south", true},
|
||||
{"https://brave.spend", true},
|
||||
{"https://brave.stepn", true},
|
||||
{"https://brave.supernova", true},
|
||||
{"https://brave.tball", true},
|
||||
{"https://brave.tea", true},
|
||||
{"https://brave.tribe", true},
|
||||
{"https://brave.twin", true},
|
||||
{"https://brave.u", true},
|
||||
{"https://brave.ubu", true},
|
||||
{"https://brave.unstoppable", true},
|
||||
{"https://brave.wallet", true},
|
||||
{"https://brave.web3", true},
|
||||
{"https://brave.wifi", true},
|
||||
{"https://brave.witg", true},
|
||||
{"https://brave.wrkx", true},
|
||||
{"https://brave.x", true},
|
||||
{"https://brave.xec", true},
|
||||
{"https://brave.xmr", true},
|
||||
{"https://brave.xyo", true},
|
||||
{"https://brave.zano", true},
|
||||
{"https://brave.zil", true},
|
||||
{"https://brave", false},
|
||||
{"https://brave.com", false},
|
||||
|
||||
@@ -142,13 +142,19 @@ constexpr char kSnsDomainPattern[] = R"(^(?:[a-z0-9-]+\.)+sol$)";
|
||||
// Then one of fixed suffixes(should match `supportedUDExtensions` array from
|
||||
// domain-extensions.ts).
|
||||
constexpr char kUDPattern[] =
|
||||
"(?:[a-z0-9-]+)\\.(?:altimist|anime|ask|austin|bald|basenji|bay|benji|"
|
||||
"binanceus|bitcoin|bitget|bitscrunch|blockchain|boomer|brave|calicoin|caw|"
|
||||
"chomp|clay|crypto|dao|dfz|doga|donut|dream|emir|ethermail|farms|grow|her|"
|
||||
"kingdom|klever|kresus|kryptic|lfg|ltc|manga|metropolis|miku|ministry|moon|"
|
||||
"mumu|nft|nibi|npc|onchain|pastor|podcast|pog|polygon|privacy|propykeys|"
|
||||
"pudgy|quantum|rad|raiin|secret|smobler|south|stepn|tball|tea|tribe|u|ubu|"
|
||||
"unstoppable|wallet|wifi|witg|wrkx|x|xec|xmr|zil)";
|
||||
"(?:[a-z0-9-]+)\\.(?:agent|ai4|altimist|amped|anime|anyone|arculus|ask|ath|"
|
||||
"austin|bald|basenji|bay|bch|benji|binanceus|bitcoin|bitget|bitscrunch|"
|
||||
"blockchain|boomer|brave|bunni|calicoin|carbon|caw|cgai|chip|chomp|clay|"
|
||||
"collect|crypto|dao|dejay|depin|derad|dfz|digibyte|doga|donut|dream|dsci|"
|
||||
"emir|ethermail|farms|goblin|gotchi|grow|her|hub|imtoken|kingdom|klever|"
|
||||
"kresus|kryptic|learn|lfg|ltc|lunar|manga|marketer|metropolis|miku|"
|
||||
"ministry|"
|
||||
"mobix|moon|mooncat|mumu|mycircle|nft|nibi|npc|ohm|onchain|pack|pastor|"
|
||||
"pbdx|pendle|pilot|podcast|pog|pokt|polygon|presearch|privacy|propykeys|"
|
||||
"pudgy|pundi|quantum|rad|raiin|secret|smobler|south|spend|stepn|supernova|"
|
||||
"tball|"
|
||||
"tea|tribe|twin|u|ubu|unstoppable|wallet|web3|wifi|witg|wrkx|x|xec|xmr|xyo|"
|
||||
"zano|zil)";
|
||||
|
||||
constexpr auto kUnstoppableDomainsProxyReaderContractAddresses =
|
||||
base::MakeFixedFlatMap<std::string_view, std::string_view>(
|
||||
|
||||
@@ -4032,13 +4032,20 @@ TEST_F(JsonRpcServiceUnitTest, IsValidUnstoppableDomain) {
|
||||
"test.blockchain",
|
||||
"test.bitcoin",
|
||||
"test.brave",
|
||||
"brave.agent",
|
||||
"brave.ai4",
|
||||
"brave.altimist",
|
||||
"brave.amped",
|
||||
"brave.anime",
|
||||
"brave.anyone",
|
||||
"brave.arculus",
|
||||
"brave.ask",
|
||||
"brave.ath",
|
||||
"brave.austin",
|
||||
"brave.bald",
|
||||
"brave.basenji",
|
||||
"brave.bay",
|
||||
"brave.bch",
|
||||
"brave.benji",
|
||||
"brave.binanceus",
|
||||
"brave.bitcoin",
|
||||
@@ -4047,64 +4054,98 @@ TEST_F(JsonRpcServiceUnitTest, IsValidUnstoppableDomain) {
|
||||
"brave.blockchain",
|
||||
"brave.boomer",
|
||||
"brave.brave",
|
||||
"brave.bunni",
|
||||
"brave.calicoin",
|
||||
"brave.carbon",
|
||||
"brave.caw",
|
||||
"brave.cgai",
|
||||
"brave.chip",
|
||||
"brave.chomp",
|
||||
"brave.clay",
|
||||
"brave.collect",
|
||||
"brave.crypto",
|
||||
"brave.dao",
|
||||
"brave.dejay",
|
||||
"brave.depin",
|
||||
"brave.derad",
|
||||
"brave.dfz",
|
||||
"brave.digibyte",
|
||||
"brave.doga",
|
||||
"brave.donut",
|
||||
"brave.dream",
|
||||
"brave.dsci",
|
||||
"brave.emir",
|
||||
"brave.ethermail",
|
||||
"brave.farms",
|
||||
"brave.goblin",
|
||||
"brave.gotchi",
|
||||
"brave.grow",
|
||||
"brave.her",
|
||||
"brave.hub",
|
||||
"brave.imtoken",
|
||||
"brave.kingdom",
|
||||
"brave.klever",
|
||||
"brave.kresus",
|
||||
"brave.kryptic",
|
||||
"brave.learn",
|
||||
"brave.lfg",
|
||||
"brave.ltc",
|
||||
"brave.lunar",
|
||||
"brave.manga",
|
||||
"brave.marketer",
|
||||
"brave.metropolis",
|
||||
"brave.miku",
|
||||
"brave.ministry",
|
||||
"brave.mobix",
|
||||
"brave.moon",
|
||||
"brave.mooncat",
|
||||
"brave.mumu",
|
||||
"brave.mycircle",
|
||||
"brave.nft",
|
||||
"brave.nibi",
|
||||
"brave.npc",
|
||||
"brave.ohm",
|
||||
"brave.onchain",
|
||||
"brave.pack",
|
||||
"brave.pastor",
|
||||
"brave.pbdx",
|
||||
"brave.pendle",
|
||||
"brave.pilot",
|
||||
"brave.podcast",
|
||||
"brave.pog",
|
||||
"brave.pokt",
|
||||
"brave.polygon",
|
||||
"brave.presearch",
|
||||
"brave.privacy",
|
||||
"brave.propykeys",
|
||||
"brave.pudgy",
|
||||
"brave.pundi",
|
||||
"brave.quantum",
|
||||
"brave.rad",
|
||||
"brave.raiin",
|
||||
"brave.secret",
|
||||
"brave.smobler",
|
||||
"brave.south",
|
||||
"brave.spend",
|
||||
"brave.stepn",
|
||||
"brave.supernova",
|
||||
"brave.tball",
|
||||
"brave.tea",
|
||||
"brave.tribe",
|
||||
"brave.twin",
|
||||
"brave.u",
|
||||
"brave.ubu",
|
||||
"brave.unstoppable",
|
||||
"brave.wallet",
|
||||
"brave.web3",
|
||||
"brave.wifi",
|
||||
"brave.witg",
|
||||
"brave.wrkx",
|
||||
"brave.x",
|
||||
"brave.xec",
|
||||
"brave.xmr",
|
||||
"brave.xyo",
|
||||
"brave.zano",
|
||||
"brave.zil",
|
||||
"a.crypto",
|
||||
"1.crypto",
|
||||
|
||||
@@ -7,13 +7,20 @@ export const supportedENSExtensions = ['.eth']
|
||||
export const supportedSNSExtensions = ['.sol']
|
||||
// Should match `kUDPattern` array from json_rpc_service.cc.
|
||||
export const supportedUDExtensions = [
|
||||
'.agent',
|
||||
'.ai4',
|
||||
'.altimist',
|
||||
'.amped',
|
||||
'.anime',
|
||||
'.anyone',
|
||||
'.arculus',
|
||||
'.ask',
|
||||
'.ath',
|
||||
'.austin',
|
||||
'.bald',
|
||||
'.basenji',
|
||||
'.bay',
|
||||
'.bch',
|
||||
'.benji',
|
||||
'.binanceus',
|
||||
'.bitcoin',
|
||||
@@ -22,64 +29,98 @@ export const supportedUDExtensions = [
|
||||
'.blockchain',
|
||||
'.boomer',
|
||||
'.brave',
|
||||
'.bunni',
|
||||
'.calicoin',
|
||||
'.carbon',
|
||||
'.caw',
|
||||
'.cgai',
|
||||
'.chip',
|
||||
'.chomp',
|
||||
'.clay',
|
||||
'.collect',
|
||||
'.crypto',
|
||||
'.dao',
|
||||
'.dejay',
|
||||
'.depin',
|
||||
'.derad',
|
||||
'.dfz',
|
||||
'.digibyte',
|
||||
'.doga',
|
||||
'.donut',
|
||||
'.dream',
|
||||
'.dsci',
|
||||
'.emir',
|
||||
'.ethermail',
|
||||
'.farms',
|
||||
'.goblin',
|
||||
'.gotchi',
|
||||
'.grow',
|
||||
'.her',
|
||||
'.hub',
|
||||
'.imtoken',
|
||||
'.kingdom',
|
||||
'.klever',
|
||||
'.kresus',
|
||||
'.kryptic',
|
||||
'.learn',
|
||||
'.lfg',
|
||||
'.ltc',
|
||||
'.lunar',
|
||||
'.manga',
|
||||
'.marketer',
|
||||
'.metropolis',
|
||||
'.miku',
|
||||
'.ministry',
|
||||
'.mobix',
|
||||
'.moon',
|
||||
'.mooncat',
|
||||
'.mumu',
|
||||
'.mycircle',
|
||||
'.nft',
|
||||
'.nibi',
|
||||
'.npc',
|
||||
'.ohm',
|
||||
'.onchain',
|
||||
'.pack',
|
||||
'.pastor',
|
||||
'.pbdx',
|
||||
'.pendle',
|
||||
'.pilot',
|
||||
'.podcast',
|
||||
'.pog',
|
||||
'.pokt',
|
||||
'.polygon',
|
||||
'.presearch',
|
||||
'.privacy',
|
||||
'.propykeys',
|
||||
'.pudgy',
|
||||
'.pundi',
|
||||
'.quantum',
|
||||
'.rad',
|
||||
'.raiin',
|
||||
'.secret',
|
||||
'.smobler',
|
||||
'.south',
|
||||
'.spend',
|
||||
'.stepn',
|
||||
'.supernova',
|
||||
'.tball',
|
||||
'.tea',
|
||||
'.tribe',
|
||||
'.twin',
|
||||
'.u',
|
||||
'.ubu',
|
||||
'.unstoppable',
|
||||
'.wallet',
|
||||
'.web3',
|
||||
'.wifi',
|
||||
'.witg',
|
||||
'.wrkx',
|
||||
'.x',
|
||||
'.xec',
|
||||
'.xmr',
|
||||
'.xyo',
|
||||
'.zano',
|
||||
'.zil',
|
||||
]
|
||||
export const allSupportedExtensions = [
|
||||
|
||||
@@ -157,13 +157,20 @@ public struct WalletConstants {
|
||||
static let supportedSNSExtensions = [".sol"]
|
||||
/// The supported Unstoppable Domain (UD) extensions
|
||||
public static let supportedUDExtensions = [
|
||||
".agent",
|
||||
".ai4",
|
||||
".altimist",
|
||||
".amped",
|
||||
".anime",
|
||||
".anyone",
|
||||
".arculus",
|
||||
".ask",
|
||||
".ath",
|
||||
".austin",
|
||||
".bald",
|
||||
".basenji",
|
||||
".bay",
|
||||
".bch",
|
||||
".benji",
|
||||
".binanceus",
|
||||
".bitcoin",
|
||||
@@ -172,64 +179,98 @@ public struct WalletConstants {
|
||||
".blockchain",
|
||||
".boomer",
|
||||
".brave",
|
||||
".bunni",
|
||||
".calicoin",
|
||||
".carbon",
|
||||
".caw",
|
||||
".cgai",
|
||||
".chip",
|
||||
".chomp",
|
||||
".clay",
|
||||
".collect",
|
||||
".crypto",
|
||||
".dao",
|
||||
".dejay",
|
||||
".depin",
|
||||
".derad",
|
||||
".dfz",
|
||||
".digibyte",
|
||||
".doga",
|
||||
".donut",
|
||||
".dream",
|
||||
".dsci",
|
||||
".emir",
|
||||
".ethermail",
|
||||
".farms",
|
||||
".goblin",
|
||||
".gotchi",
|
||||
".grow",
|
||||
".her",
|
||||
".hub",
|
||||
".imtoken",
|
||||
".kingdom",
|
||||
".klever",
|
||||
".kresus",
|
||||
".kryptic",
|
||||
".learn",
|
||||
".lfg",
|
||||
".ltc",
|
||||
".lunar",
|
||||
".manga",
|
||||
".marketer",
|
||||
".metropolis",
|
||||
".miku",
|
||||
".ministry",
|
||||
".mobix",
|
||||
".moon",
|
||||
".mooncat",
|
||||
".mumu",
|
||||
".mycircle",
|
||||
".nft",
|
||||
".nibi",
|
||||
".npc",
|
||||
".ohm",
|
||||
".onchain",
|
||||
".pack",
|
||||
".pastor",
|
||||
".pbdx",
|
||||
".pendle",
|
||||
".pilot",
|
||||
".podcast",
|
||||
".pog",
|
||||
".pokt",
|
||||
".polygon",
|
||||
".presearch",
|
||||
".privacy",
|
||||
".propykeys",
|
||||
".pudgy",
|
||||
".pundi",
|
||||
".quantum",
|
||||
".rad",
|
||||
".raiin",
|
||||
".secret",
|
||||
".smobler",
|
||||
".south",
|
||||
".spend",
|
||||
".stepn",
|
||||
".supernova",
|
||||
".tball",
|
||||
".tea",
|
||||
".tribe",
|
||||
".twin",
|
||||
".u",
|
||||
".ubu",
|
||||
".unstoppable",
|
||||
".wallet",
|
||||
".web3",
|
||||
".wifi",
|
||||
".witg",
|
||||
".wrkx",
|
||||
".x",
|
||||
".xec",
|
||||
".xmr",
|
||||
".xyo",
|
||||
".zano",
|
||||
".zil",
|
||||
]
|
||||
|
||||
|
||||
@@ -55,28 +55,32 @@ struct SuffixComparator {
|
||||
}
|
||||
};
|
||||
|
||||
inline constexpr auto kUnstoppableDomains =
|
||||
base::MakeFixedFlatSet<std::string_view>(
|
||||
{".altimist", ".anime", ".ask", ".austin",
|
||||
".bald", ".basenji", ".bay", ".benji",
|
||||
".binanceus", ".bitcoin", ".bitget", ".bitscrunch",
|
||||
".blockchain", ".boomer", ".brave", ".calicoin",
|
||||
".caw", ".chomp", ".clay", ".crypto",
|
||||
".dao", ".dfz", ".doga", ".donut",
|
||||
".dream", ".emir", ".ethermail", ".farms",
|
||||
".grow", ".her", ".kingdom", ".klever",
|
||||
".kresus", ".kryptic", ".lfg", ".ltc",
|
||||
".manga", ".metropolis", ".miku", ".ministry",
|
||||
".moon", ".mumu", ".nft", ".nibi",
|
||||
".npc", ".onchain", ".pastor", ".podcast",
|
||||
".pog", ".polygon", ".privacy", ".propykeys",
|
||||
".pudgy", ".quantum", ".rad", ".raiin",
|
||||
".secret", ".smobler", ".south", ".stepn",
|
||||
".tball", ".tea", ".tribe", ".u",
|
||||
".ubu", ".unstoppable", ".wallet", ".wifi",
|
||||
".witg", ".wrkx", ".x", ".xec",
|
||||
".xmr", ".zil"},
|
||||
SuffixComparator());
|
||||
inline constexpr auto kUnstoppableDomains = base::MakeFixedFlatSet<
|
||||
std::string_view>(
|
||||
{".agent", ".ai4", ".altimist", ".amped", ".anime",
|
||||
".anyone", ".arculus", ".ask", ".ath", ".austin",
|
||||
".bald", ".basenji", ".bay", ".bch", ".benji",
|
||||
".binanceus", ".bitcoin", ".bitget", ".bitscrunch", ".blockchain",
|
||||
".boomer", ".brave", ".bunni", ".calicoin", ".carbon",
|
||||
".caw", ".cgai", ".chip", ".chomp", ".clay",
|
||||
".collect", ".crypto", ".dao", ".dejay", ".depin",
|
||||
".derad", ".dfz", ".digibyte", ".doga", ".donut",
|
||||
".dream", ".dsci", ".emir", ".ethermail", ".farms",
|
||||
".goblin", ".gotchi", ".grow", ".her", ".hub",
|
||||
".imtoken", ".kingdom", ".klever", ".kresus", ".kryptic",
|
||||
".learn", ".lfg", ".ltc", ".lunar", ".manga",
|
||||
".marketer", ".metropolis", ".miku", ".ministry", ".mobix",
|
||||
".moon", ".mooncat", ".mumu", ".mycircle", ".nft",
|
||||
".nibi", ".npc", ".ohm", ".onchain", ".pack",
|
||||
".pastor", ".pbdx", ".pendle", ".pilot", ".podcast",
|
||||
".pog", ".pokt", ".polygon", ".presearch", ".privacy",
|
||||
".propykeys", ".pudgy", ".pundi", ".quantum", ".rad",
|
||||
".raiin", ".secret", ".smobler", ".south", ".spend",
|
||||
".stepn", ".supernova", ".tball", ".tea", ".tribe",
|
||||
".twin", ".u", ".ubu", ".unstoppable", ".wallet",
|
||||
".web3", ".wifi", ".witg", ".wrkx", ".x",
|
||||
".xec", ".xmr", ".xyo", ".zano", ".zil"},
|
||||
SuffixComparator());
|
||||
|
||||
// Ensure all domain suffixes start with `.`
|
||||
constexpr bool CheckAllDomainSuffixesStartWithDot() {
|
||||
|
||||
Reference in New Issue
Block a user