diff --git a/package-lock.json b/package-lock.json index 3f7d6a2..3a54eff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,9 +12,9 @@ "@bonfida/name-offers": "0.0.10", "@bonfida/name-tokenizer": "0.0.12", "@bonfida/sns-emitter": "0.1.7", - "@bonfida/sns-react": "2.0.3", + "@bonfida/sns-react": "2.1.0", "@bonfida/sns-records": "0.0.1-alpha.8", - "@bonfida/spl-name-service": "2.0.4", + "@bonfida/spl-name-service": "2.2.0", "@coral-xyz/common-public": "0.2.0-latest.3375", "@expo-google-fonts/dev": "*", "@expo/html-elements": "0.5.1", @@ -38,6 +38,7 @@ "@solana/wallet-adapter-react-ui": "0.9.34", "@solana/web3.js": "1.87.6", "axios": "1.4.0", + "bn.js": "^5.2.1", "buffer": "6.0.3", "expo": "49.0.18", "expo-blur": "~12.4.1", @@ -72,6 +73,7 @@ "@babel/core": "7.21.3", "@bonfida/prettier-config": "^1.0.0", "@expo/webpack-config": "^19.0.0", + "@types/bn.js": "^5.1.5", "@types/lodash": "4.14.201", "@types/react": "~18.2.14", "@types/react-native-dotenv": "0.2.0", @@ -2345,11 +2347,11 @@ } }, "node_modules/@bonfida/sns-react": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@bonfida/sns-react/-/sns-react-2.0.3.tgz", - "integrity": "sha512-DltSEAR6/eWCDRnuZc0rPsJgd6cFXHEQXmrRfE3WKop64O/h8YrvCmUjyBSXygt9x3TejHFkXlp/yTTHpsEMqw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@bonfida/sns-react/-/sns-react-2.1.0.tgz", + "integrity": "sha512-9IzsG2wJ+HUDF3UL8JdnKXF4EY1s9pm9iLZTErVxtirC+mpXaBdUcd25Z6zIPHhTVwyqLHdHaU828xAy6nwtyg==", "dependencies": { - "@bonfida/spl-name-service": "2.0.4", + "@bonfida/spl-name-service": "2.1.0", "@solana/web3.js": "^1.87.6", "react-async-hook": "^4.0.0" }, @@ -2358,6 +2360,40 @@ "react-dom": ">=16.8" } }, + "node_modules/@bonfida/sns-react/node_modules/@bonfida/spl-name-service": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@bonfida/spl-name-service/-/spl-name-service-2.1.0.tgz", + "integrity": "sha512-C2TX23zT+X3Ok6eVo5Ej0kSeYrymzuV8HdvXeaW11S1u3GEnScfP9MZolKlt+vrqhANdXAdazsONGewlTgyerg==", + "dependencies": { + "@bonfida/sns-records": "0.0.1-alpha.8", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@pythnetwork/client": "^2.19.0", + "@solana/buffer-layout": "^4.0.1", + "@solana/spl-token": "0.3.9", + "bech32-buffer": "^0.2.1", + "bn.js": "^5.2.1", + "borsh": "^0.7.0", + "buffer": "^6.0.3", + "graphemesplit": "^2.4.4", + "ipaddr.js": "^2.1.0", + "punycode": "^2.3.1", + "tweetnacl": "^1.0.3" + }, + "peerDependencies": { + "@solana/web3.js": "^1.87.3" + } + }, + "node_modules/@bonfida/sns-react/node_modules/borsh": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", + "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", + "dependencies": { + "bn.js": "^5.2.0", + "bs58": "^4.0.0", + "text-encoding-utf-8": "^1.0.2" + } + }, "node_modules/@bonfida/sns-records": { "version": "0.0.1-alpha.8", "resolved": "https://registry.npmjs.org/@bonfida/sns-records/-/sns-records-0.0.1-alpha.8.tgz", @@ -2450,9 +2486,9 @@ "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==" }, "node_modules/@bonfida/spl-name-service": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@bonfida/spl-name-service/-/spl-name-service-2.0.4.tgz", - "integrity": "sha512-JZsuK6E6T0ufqfrl/mmaxkkfyyFKcbKn6StvA2BcIf9VBJcObbDhM3nzOSVBtI6LwxWhuPMG6KdtKSA9EJZMeg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@bonfida/spl-name-service/-/spl-name-service-2.2.0.tgz", + "integrity": "sha512-enxO8vhSUliO/Y4GBZk6Xfz4bFhQ9uwO2nhXtsW8SnFw0K4gghlkfZaZTKJWIFkillJzMNazpr6vaE+dugiPsw==", "dependencies": { "@bonfida/sns-records": "0.0.1-alpha.8", "@ethersproject/hash": "^5.7.0", @@ -9132,6 +9168,15 @@ "node": ">=10.13.0" } }, + "node_modules/@types/bn.js": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz", + "integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/body-parser": { "version": "1.19.5", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", diff --git a/package.json b/package.json index 8c1cac8..b75a234 100644 --- a/package.json +++ b/package.json @@ -28,9 +28,9 @@ "@bonfida/name-offers": "0.0.10", "@bonfida/name-tokenizer": "0.0.12", "@bonfida/sns-emitter": "0.1.7", - "@bonfida/sns-react": "2.0.3", + "@bonfida/sns-react": "2.1.0", "@bonfida/sns-records": "0.0.1-alpha.8", - "@bonfida/spl-name-service": "2.0.4", + "@bonfida/spl-name-service": "2.2.0", "@coral-xyz/common-public": "0.2.0-latest.3375", "@expo-google-fonts/dev": "*", "@expo/html-elements": "0.5.1", @@ -54,6 +54,7 @@ "@solana/wallet-adapter-react-ui": "0.9.34", "@solana/web3.js": "1.87.6", "axios": "1.4.0", + "bn.js": "^5.2.1", "buffer": "6.0.3", "expo": "49.0.18", "expo-blur": "~12.4.1", @@ -88,6 +89,7 @@ "@babel/core": "7.21.3", "@bonfida/prettier-config": "^1.0.0", "@expo/webpack-config": "^19.0.0", + "@types/bn.js": "^5.1.5", "@types/lodash": "4.14.201", "@types/react": "~18.2.14", "@types/react-native-dotenv": "0.2.0", diff --git a/src/components/ProgressExplainerModal.tsx b/src/components/ProgressExplainerModal.tsx index 588e00c..829ac2e 100644 --- a/src/components/ProgressExplainerModal.tsx +++ b/src/components/ProgressExplainerModal.tsx @@ -64,7 +64,7 @@ export const ProgressExplainerModal = ({ source={stepsImages[currentStep].image} /> - + {stepsImages[currentStep].icon} diff --git a/src/hooks/useSubdomains.tsx b/src/hooks/useSubdomains.tsx index f32db2c..cd0899a 100644 --- a/src/hooks/useSubdomains.tsx +++ b/src/hooks/useSubdomains.tsx @@ -3,36 +3,20 @@ import { NAME_PROGRAM_ID, findSubdomains, getDomainKeySync, - NameRegistryState, - resolve, - reverseLookup, + getNameAccountKeySync, + ROOT_DOMAIN_ACCOUNT, + getHashedNameSync, + REVERSE_LOOKUP_CLASS, } from "@bonfida/spl-name-service"; import { useSolanaConnection } from "./xnft-hooks"; -import { Connection, PublicKey } from "@solana/web3.js"; +import { AccountInfo, PublicKey } from "@solana/web3.js"; +import BN from "bn.js"; export interface SubdomainResult { key: string; subdomain: string; } -async function findOwnedNameAccountsForUser( - connection: Connection, - userAccount: PublicKey, -): Promise { - const filters = [ - { - memcmp: { - offset: 32, - bytes: userAccount.toBase58(), - }, - }, - ]; - const accounts = await connection.getProgramAccounts(NAME_PROGRAM_ID, { - filters, - }); - return accounts.map((a) => a.pubkey); -} - export const useSubdomains = (domain: string) => { const connection = useSolanaConnection(); @@ -49,73 +33,85 @@ export const useSubdomains = (domain: string) => { return useAsync(fn, [!!connection, domain]); }; +const deserializeReverse = ( + e: AccountInfo | null, +): string | undefined => { + if (!e?.data) return undefined; + const nameLength = new BN(e.data.slice(96, 96 + 4), "le").toNumber(); + return e.data + .slice(96 + 4, 96 + 4 + nameLength) + .toString() + .replace("\0", ""); +}; + export const useSubdomainsFromUser = (owner: string) => { const connection = useSolanaConnection(); const fn = async () => { if (!connection) return; + const accounts = await connection.getProgramAccounts(NAME_PROGRAM_ID, { + filters: [{ memcmp: { offset: 32, bytes: owner } }], + }); - const ownedAccounts = await findOwnedNameAccountsForUser( - connection, - new PublicKey(owner), - ); - - const nameRegistriesState = ( - await NameRegistryState.retrieveBatch(connection, ownedAccounts) - ).filter( - (registryState): registryState is NameRegistryState => - registryState !== undefined, - ); - - const uniqueRegistryStateParents = nameRegistriesState.filter( - (nameRegistryState, idx) => - nameRegistriesState.findIndex((e) => - e.parentName.equals(nameRegistryState.parentName), - ) === idx, + // Very likely .sol subs but can be something else + const maybeSubs = accounts.filter( + (e) => + !e.account.data.slice(0, 32).equals(ROOT_DOMAIN_ACCOUNT.toBuffer()), ); - const userOwnedSubdomainsPromises = uniqueRegistryStateParents.map( - async (registryState) => { - const domain = await reverseLookup( - connection, - registryState.parentName, + // Get the reverse accounts + const subsRev = ( + await connection.getMultipleAccountsInfo( + maybeSubs.map((e) => { + const hashed = getHashedNameSync(e.pubkey.toBase58()); + const key = getNameAccountKeySync( + hashed, + REVERSE_LOOKUP_CLASS, + new PublicKey(e.account.data.slice(0, 32)), + ); + return key; + }), + ) + ).map(deserializeReverse); + + const parentsWithSubsRevKey = subsRev + .map((e, idx) => { + if (e !== undefined) { + const parentKey = new PublicKey( + maybeSubs[idx].account.data.slice(0, 32), + ); + const hashed = getHashedNameSync(parentKey.toBase58()); + const key = getNameAccountKeySync(hashed, REVERSE_LOOKUP_CLASS); + return key; + } + return undefined; + }) + .filter((e) => !!e) as PublicKey[]; + + const parentRev = ( + await connection.getMultipleAccountsInfo(parentsWithSubsRevKey) + ) + .map(deserializeReverse) + .filter((e) => !!e) as string[]; + + const result = subsRev + .map((e, idx) => { + if (!e) return; + const parentKey = new PublicKey( + maybeSubs[idx].account.data.slice(0, 32), ); - const subdomains = await findSubdomains( - connection, - registryState.parentName, + const parent = parentRev.find((e) => + getDomainKeySync(e).pubkey.equals(parentKey), ); - - const ownedSubdomains: SubdomainResult[] = []; - for (let sub of subdomains) { - const subdomain = sub + "." + domain; - const subdomainOwner = await resolve(connection, subdomain); - const key = getDomainKeySync(subdomain).pubkey; - - if (subdomainOwner.equals(new PublicKey(owner))) { - ownedSubdomains.push({ - key: key.toBase58(), - subdomain, - }); - } - } - - return ownedSubdomains; - }, - ); - - const userSubdomainsResult: SubdomainResult[] = []; - const userOwnedSubdomains = await Promise.allSettled( - userOwnedSubdomainsPromises, - ); - userOwnedSubdomains.map((e) => { - if (e.status === "fulfilled") { - userSubdomainsResult.push(...e.value); - } - }); - - userSubdomainsResult.sort((a, b) => a.subdomain.localeCompare(b.subdomain)); - - return userSubdomainsResult; + if (!parent) return undefined; + const subdomain = e + "." + parent; + return { + subdomain, + key: getDomainKeySync(subdomain).pubkey.toBase58(), + }; + }) + .filter((e) => !!e) as SubdomainResult[]; + return result; }; return useAsync(fn, [!!connection, owner]); diff --git a/src/locales/en/messages.po b/src/locales/en/messages.po index b347d1b..fd83434 100644 --- a/src/locales/en/messages.po +++ b/src/locales/en/messages.po @@ -81,11 +81,11 @@ msgstr "" msgid "Add a profile pic that represents you. It can be a photo of yourself, your favourite NFT or something that inspires you." msgstr "" -#: src/screens/DomainView.tsx:750 +#: src/screens/DomainView.tsx:732 msgid "Add subdomain" msgstr "" -#: src/screens/DomainView.tsx:563 +#: src/screens/DomainView.tsx:545 msgid "Addresses" msgstr "" @@ -199,7 +199,7 @@ msgstr "" #: src/components/ProfileBlock.tsx:84 #: src/components/ProfileBlock.tsx:96 -#: src/screens/DomainView.tsx:635 +#: src/screens/DomainView.tsx:617 msgid "Copied!" msgstr "" @@ -217,7 +217,7 @@ msgstr "" #: src/components/DeleteModal.tsx:99 #: src/components/DeleteModal.tsx:105 -#: src/screens/DomainView.tsx:503 +#: src/screens/DomainView.tsx:485 msgid "Delete" msgstr "" @@ -263,8 +263,8 @@ msgid "Each additional kb of memory costs around 0.007 SOL (0.001 USDC)" msgstr "" #: src/screens/Cart/index.tsx:267 -#: src/screens/DomainView.tsx:589 -#: src/screens/DomainView.tsx:709 +#: src/screens/DomainView.tsx:571 +#: src/screens/DomainView.tsx:691 msgid "Edit" msgstr "" @@ -390,7 +390,7 @@ msgstr "" msgid "Into this" msgstr "" -#: src/screens/DomainView.tsx:318 +#: src/screens/DomainView.tsx:300 msgid "Invalid {key} address" msgstr "" @@ -407,7 +407,7 @@ msgstr "" #~ msgstr "" #: src/components/EditPicture.tsx:57 -#: src/screens/DomainView.tsx:309 +#: src/screens/DomainView.tsx:291 msgid "Invalid URL" msgstr "" @@ -444,7 +444,7 @@ msgstr "" msgid "Next" msgstr "" -#: src/screens/DomainView.tsx:708 +#: src/screens/DomainView.tsx:690 msgid "No changes to save" msgstr "" @@ -461,7 +461,7 @@ msgstr "" #~ msgid "No subdomains found" #~ msgstr "" -#: src/screens/DomainView.tsx:656 +#: src/screens/DomainView.tsx:638 msgid "Not set" msgstr "" @@ -552,12 +552,12 @@ msgstr "" msgid "Registration discount" msgstr "" -#: src/screens/DomainView.tsx:589 +#: src/screens/DomainView.tsx:571 msgid "Revert" msgstr "" #: src/components/EditPicture.tsx:217 -#: src/screens/DomainView.tsx:707 +#: src/screens/DomainView.tsx:689 msgid "Save" msgstr "" @@ -616,7 +616,7 @@ msgstr "" msgid "Skip" msgstr "" -#: src/screens/DomainView.tsx:546 +#: src/screens/DomainView.tsx:528 msgid "Socials" msgstr "" @@ -653,7 +653,7 @@ msgstr "" msgid "Subdomain {subdomain}.sol successfully created!" msgstr "" -#: src/screens/DomainView.tsx:579 +#: src/screens/DomainView.tsx:561 msgid "Subdomains" msgstr "" @@ -682,7 +682,7 @@ msgstr "" msgid "The storage size will determine the maximum amount of data you can store on your domain." msgstr "" -#: src/screens/DomainView.tsx:791 +#: src/screens/DomainView.tsx:773 msgid "There are no subdomains." msgstr "" @@ -694,7 +694,7 @@ msgstr "" msgid "This domain has been bridged via Wormhole and is available on BNB" msgstr "" -#: src/screens/DomainView.tsx:459 +#: src/screens/DomainView.tsx:441 msgid "This domain is wrapped in an NFT" msgstr "" @@ -710,7 +710,7 @@ msgstr "" #~ msgid "Total USD" #~ msgstr "" -#: src/screens/DomainView.tsx:487 +#: src/screens/DomainView.tsx:469 msgid "Transfer" msgstr "" @@ -744,7 +744,7 @@ msgstr "" msgid "Unwrap domain" msgstr "" -#: src/screens/DomainView.tsx:517 +#: src/screens/DomainView.tsx:499 msgid "Unwrap NFT" msgstr "" @@ -789,7 +789,7 @@ msgstr "" #~ msgid "Wrap domain into NFT" #~ msgstr "" -#: src/screens/DomainView.tsx:517 +#: src/screens/DomainView.tsx:499 msgid "Wrap to NFT" msgstr "" @@ -801,7 +801,7 @@ msgstr "" msgid "You can enjoy the full benefits of owning a domain now. Get started by filling in the profiles attached to the domains." msgstr "" -#: src/screens/DomainView.tsx:761 +#: src/screens/DomainView.tsx:743 msgid "You can only add subdomains when the domain is unwrapped." msgstr "" @@ -809,7 +809,7 @@ msgstr "" msgid "You do not have enough funds" msgstr "" -#: src/screens/DomainView.tsx:786 +#: src/screens/DomainView.tsx:768 msgid "You don’t have any subdomains yet. You can create as many as you want to use your profiles for different purposes." msgstr "" diff --git a/src/locales/es/messages.po b/src/locales/es/messages.po index 3597af7..2b8bc3b 100644 --- a/src/locales/es/messages.po +++ b/src/locales/es/messages.po @@ -59,11 +59,11 @@ msgstr "Un ID humanizado para el Metaverso" msgid "Add a profile pic that represents you. It can be a photo of yourself, your favourite NFT or something that inspires you." msgstr "Agrega una foto de perfil que te represente. Puede ser una foto tuya, tu NFT favorito o algo que te inspire." -#: src/screens/DomainView.tsx:750 +#: src/screens/DomainView.tsx:732 msgid "Add subdomain" msgstr "Agregar subdominio" -#: src/screens/DomainView.tsx:563 +#: src/screens/DomainView.tsx:545 msgid "Addresses" msgstr "Direcciones" @@ -157,7 +157,7 @@ msgstr "Continuar" #: src/components/ProfileBlock.tsx:84 #: src/components/ProfileBlock.tsx:96 -#: src/screens/DomainView.tsx:635 +#: src/screens/DomainView.tsx:617 msgid "Copied!" msgstr "Copiado!" @@ -175,7 +175,7 @@ msgstr "Crea un perfil atractivo agregando enlaces a Twitter, Discord y Telegram #: src/components/DeleteModal.tsx:99 #: src/components/DeleteModal.tsx:105 -#: src/screens/DomainView.tsx:503 +#: src/screens/DomainView.tsx:485 msgid "Delete" msgstr "Eliminar" @@ -221,8 +221,8 @@ msgid "Each additional kb of memory costs around 0.007 SOL (0.001 USDC)" msgstr "Cada kb adicional de memoria cuesta alrededor de 0.007 SOL (0.001 USDC)" #: src/screens/Cart/index.tsx:267 -#: src/screens/DomainView.tsx:589 -#: src/screens/DomainView.tsx:709 +#: src/screens/DomainView.tsx:571 +#: src/screens/DomainView.tsx:691 msgid "Edit" msgstr "Editar" @@ -328,12 +328,12 @@ msgstr "Injective" msgid "Into this" msgstr "En esto" -#: src/screens/DomainView.tsx:318 +#: src/screens/DomainView.tsx:300 msgid "Invalid {key} address" msgstr "Dirección {key} inválida" #: src/components/EditPicture.tsx:57 -#: src/screens/DomainView.tsx:309 +#: src/screens/DomainView.tsx:291 msgid "Invalid URL" msgstr "URL inválida" @@ -361,7 +361,7 @@ msgstr "Nueva URL de imagen" msgid "Next" msgstr "Siguiente" -#: src/screens/DomainView.tsx:708 +#: src/screens/DomainView.tsx:690 msgid "No changes to save" msgstr "No hay cambios que guardar" @@ -370,7 +370,7 @@ msgstr "No hay cambios que guardar" msgid "No domain found" msgstr "No se encontró ningún dominio" -#: src/screens/DomainView.tsx:656 +#: src/screens/DomainView.tsx:638 msgid "Not set" msgstr "No establecido" @@ -457,12 +457,12 @@ msgstr "Reddit" msgid "Registration discount" msgstr "Descuento de registro" -#: src/screens/DomainView.tsx:589 +#: src/screens/DomainView.tsx:571 msgid "Revert" msgstr "Revertir" #: src/components/EditPicture.tsx:217 -#: src/screens/DomainView.tsx:707 +#: src/screens/DomainView.tsx:689 msgid "Save" msgstr "Guardar" @@ -503,7 +503,7 @@ msgstr "" msgid "Skip" msgstr "Saltar" -#: src/screens/DomainView.tsx:546 +#: src/screens/DomainView.tsx:528 msgid "Socials" msgstr "Redes Sociales" @@ -523,7 +523,7 @@ msgstr "¡Subdominio {domain}.sol eliminado exitosamente!" msgid "Subdomain {subdomain}.sol successfully created!" msgstr "¡Subdominio {subdomain}.sol creado exitosamente!" -#: src/screens/DomainView.tsx:579 +#: src/screens/DomainView.tsx:561 msgid "Subdomains" msgstr "Subdominios" @@ -543,7 +543,7 @@ msgstr "Telegram" msgid "The storage size will determine the maximum amount of data you can store on your domain." msgstr "El tamaño de almacenamiento determinará la cantidad máxima de datos que puedes almacenar en tu dominio." -#: src/screens/DomainView.tsx:791 +#: src/screens/DomainView.tsx:773 msgid "There are no subdomains." msgstr "No hay subdominios." @@ -551,7 +551,7 @@ msgstr "No hay subdominios." msgid "This domain has been bridged via Wormhole and is available on BNB" msgstr "Este dominio ha sido transferido a través de Wormhole y está disponible en BNB" -#: src/screens/DomainView.tsx:459 +#: src/screens/DomainView.tsx:441 msgid "This domain is wrapped in an NFT" msgstr "Este dominio está envuelto en un NFT" @@ -563,7 +563,7 @@ msgstr "" msgid "Total" msgstr "Total" -#: src/screens/DomainView.tsx:487 +#: src/screens/DomainView.tsx:469 msgid "Transfer" msgstr "Transferir" @@ -592,7 +592,7 @@ msgstr "Nombre de dominio único para tu proyecto" msgid "Unwrap domain" msgstr "Desenvolver dominio" -#: src/screens/DomainView.tsx:517 +#: src/screens/DomainView.tsx:499 msgid "Unwrap NFT" msgstr "Desenvolver NFT" @@ -625,7 +625,7 @@ msgstr "Qué considerar:" msgid "Wrap domain" msgstr "Envolver dominio" -#: src/screens/DomainView.tsx:517 +#: src/screens/DomainView.tsx:499 msgid "Wrap to NFT" msgstr "Envolver en NFT" @@ -637,7 +637,7 @@ msgstr "Envuelve tu dominio en un NFT" msgid "You can enjoy the full benefits of owning a domain now. Get started by filling in the profiles attached to the domains." msgstr "Ahora puedes disfrutar de todos los beneficios de ser dueño de un dominio. Comienza completando los perfiles asociados a los dominios." -#: src/screens/DomainView.tsx:761 +#: src/screens/DomainView.tsx:743 msgid "You can only add subdomains when the domain is unwrapped." msgstr "Solo puedes agregar subdominios cuando el dominio no está envuelto en un NFT." @@ -645,7 +645,7 @@ msgstr "Solo puedes agregar subdominios cuando el dominio no está envuelto en u msgid "You do not have enough funds" msgstr "No dispone de fondos suficientes" -#: src/screens/DomainView.tsx:786 +#: src/screens/DomainView.tsx:768 msgid "You don’t have any subdomains yet. You can create as many as you want to use your profiles for different purposes." msgstr "Aún no tienes subdominios. Puedes crear tantos como desees para usar tus perfiles con diferentes propósitos." diff --git a/src/locales/fr/messages.po b/src/locales/fr/messages.po index a47e686..829b862 100644 --- a/src/locales/fr/messages.po +++ b/src/locales/fr/messages.po @@ -61,11 +61,11 @@ msgstr "Un identifiant humanisé pour le métaverse." msgid "Add a profile pic that represents you. It can be a photo of yourself, your favourite NFT or something that inspires you." msgstr "Ajoutez une photo de profil qui vous représente. Cela peut être une photo de vous-même, votre NFT préféré ou quelque chose qui vous inspire." -#: src/screens/DomainView.tsx:750 +#: src/screens/DomainView.tsx:732 msgid "Add subdomain" msgstr "Ajoutez un sous-domaine" -#: src/screens/DomainView.tsx:563 +#: src/screens/DomainView.tsx:545 msgid "Addresses" msgstr "Adresses" @@ -165,7 +165,7 @@ msgstr "Continuer" #: src/components/ProfileBlock.tsx:84 #: src/components/ProfileBlock.tsx:96 -#: src/screens/DomainView.tsx:635 +#: src/screens/DomainView.tsx:617 msgid "Copied!" msgstr "Copié!" @@ -183,7 +183,7 @@ msgstr "Créez un profil captivant en ajoutant des liens Twitter, Discord et Tel #: src/components/DeleteModal.tsx:99 #: src/components/DeleteModal.tsx:105 -#: src/screens/DomainView.tsx:503 +#: src/screens/DomainView.tsx:485 msgid "Delete" msgstr "Supprimer" @@ -229,8 +229,8 @@ msgid "Each additional kb of memory costs around 0.007 SOL (0.001 USDC)" msgstr "Chaque kb supplémentaire de mémoire coûte environ 0,007 SOL (0,001 USDC)." #: src/screens/Cart/index.tsx:267 -#: src/screens/DomainView.tsx:589 -#: src/screens/DomainView.tsx:709 +#: src/screens/DomainView.tsx:571 +#: src/screens/DomainView.tsx:691 msgid "Edit" msgstr "Modifier" @@ -343,12 +343,12 @@ msgstr "Injective" msgid "Into this" msgstr "Dans cela" -#: src/screens/DomainView.tsx:318 +#: src/screens/DomainView.tsx:300 msgid "Invalid {key} address" msgstr "Adresse {key} invalide" #: src/components/EditPicture.tsx:57 -#: src/screens/DomainView.tsx:309 +#: src/screens/DomainView.tsx:291 msgid "Invalid URL" msgstr "URL invalide" @@ -381,7 +381,7 @@ msgstr "Nouvelle photo de profil" msgid "Next" msgstr "Prochain" -#: src/screens/DomainView.tsx:708 +#: src/screens/DomainView.tsx:690 msgid "No changes to save" msgstr "Aucuns changements à sauvegarder" @@ -390,7 +390,7 @@ msgstr "Aucuns changements à sauvegarder" msgid "No domain found" msgstr "Aucun domaine trouvé" -#: src/screens/DomainView.tsx:656 +#: src/screens/DomainView.tsx:638 msgid "Not set" msgstr "Non défini" @@ -483,12 +483,12 @@ msgstr "Reddit" msgid "Registration discount" msgstr "Remise sur l'enregistrement" -#: src/screens/DomainView.tsx:589 +#: src/screens/DomainView.tsx:571 msgid "Revert" msgstr "Annuler" #: src/components/EditPicture.tsx:217 -#: src/screens/DomainView.tsx:707 +#: src/screens/DomainView.tsx:689 msgid "Save" msgstr "Sauvegarder" @@ -529,7 +529,7 @@ msgstr "" msgid "Skip" msgstr "Passer" -#: src/screens/DomainView.tsx:546 +#: src/screens/DomainView.tsx:528 msgid "Socials" msgstr "Réseaux sociaux" @@ -549,7 +549,7 @@ msgstr "Le sous-domaine {domain}.sol a été supprimé avec succès !" msgid "Subdomain {subdomain}.sol successfully created!" msgstr "Le sous-domaine {subdomain}.sol a été créé avec succès !" -#: src/screens/DomainView.tsx:579 +#: src/screens/DomainView.tsx:561 msgid "Subdomains" msgstr "Sous-domaines" @@ -569,7 +569,7 @@ msgstr "Telegram" msgid "The storage size will determine the maximum amount of data you can store on your domain." msgstr "La taille de stockage déterminera la quantité maximale de données que vous pouvez stocker sur votre domaine." -#: src/screens/DomainView.tsx:791 +#: src/screens/DomainView.tsx:773 msgid "There are no subdomains." msgstr "Il n'y a pas de sous-domaines." @@ -577,7 +577,7 @@ msgstr "Il n'y a pas de sous-domaines." msgid "This domain has been bridged via Wormhole and is available on BNB" msgstr "Ce domaine a été bridgé via Wormhole et est disponible sur BNB." -#: src/screens/DomainView.tsx:459 +#: src/screens/DomainView.tsx:441 msgid "This domain is wrapped in an NFT" msgstr "Ce domaine est enveloppé dans un NFT" @@ -589,7 +589,7 @@ msgstr "" msgid "Total" msgstr "Total" -#: src/screens/DomainView.tsx:487 +#: src/screens/DomainView.tsx:469 msgid "Transfer" msgstr "Transfert" @@ -618,7 +618,7 @@ msgstr "Nom de domaine unique pour votre projet" msgid "Unwrap domain" msgstr "Désenvelopper le domain" -#: src/screens/DomainView.tsx:517 +#: src/screens/DomainView.tsx:499 msgid "Unwrap NFT" msgstr "Désenvelopper le NFT" @@ -651,7 +651,7 @@ msgstr "Que faut-il considérer :" msgid "Wrap domain" msgstr "Enveloppez le domaine" -#: src/screens/DomainView.tsx:517 +#: src/screens/DomainView.tsx:499 msgid "Wrap to NFT" msgstr "Envelopper en NFT" @@ -663,7 +663,7 @@ msgstr "Enveloppez votre domaine en NFT" msgid "You can enjoy the full benefits of owning a domain now. Get started by filling in the profiles attached to the domains." msgstr "Vous pouvez maintenant profiter pleinement des avantages de posséder un domaine. Commencez en remplissant les profils attachés aux domaines." -#: src/screens/DomainView.tsx:761 +#: src/screens/DomainView.tsx:743 msgid "You can only add subdomains when the domain is unwrapped." msgstr "Vous ne pouvez ajouter des sous-domaines que lorsque le domaine est désenveloppé." @@ -671,7 +671,7 @@ msgstr "Vous ne pouvez ajouter des sous-domaines que lorsque le domaine est dés msgid "You do not have enough funds" msgstr "Vous n'avez pas assez de fonds" -#: src/screens/DomainView.tsx:786 +#: src/screens/DomainView.tsx:768 msgid "You don’t have any subdomains yet. You can create as many as you want to use your profiles for different purposes." msgstr "Vous n'avez pas encore de sous-domaines. Vous pouvez en créer autant que vous le souhaitez pour utiliser vos profils à des fins différentes." diff --git a/src/locales/kr/messages.po b/src/locales/kr/messages.po index 7256950..bbe339d 100644 --- a/src/locales/kr/messages.po +++ b/src/locales/kr/messages.po @@ -83,11 +83,11 @@ msgstr "메타버스를 위한 인간화된 ID" msgid "Add a profile pic that represents you. It can be a photo of yourself, your favourite NFT or something that inspires you." msgstr "당신의 멋지고 매력적인 프로필 사진을 추가하세요. 당신의 사진, 마음에 드는 NFT, 혹은 영감을 주는 것도 좋아요!" -#: src/screens/DomainView.tsx:750 +#: src/screens/DomainView.tsx:732 msgid "Add subdomain" msgstr "서브도메인 추가" -#: src/screens/DomainView.tsx:563 +#: src/screens/DomainView.tsx:545 msgid "Addresses" msgstr "주소들" @@ -201,7 +201,7 @@ msgstr "계속하기" #: src/components/ProfileBlock.tsx:84 #: src/components/ProfileBlock.tsx:96 -#: src/screens/DomainView.tsx:635 +#: src/screens/DomainView.tsx:617 msgid "Copied!" msgstr "복사 완료!" @@ -219,7 +219,7 @@ msgstr "다양한 사람들과 연결하기 위해 트위터, 디스코드 및 #: src/components/DeleteModal.tsx:99 #: src/components/DeleteModal.tsx:105 -#: src/screens/DomainView.tsx:503 +#: src/screens/DomainView.tsx:485 msgid "Delete" msgstr "삭제" @@ -265,8 +265,8 @@ msgid "Each additional kb of memory costs around 0.007 SOL (0.001 USDC)" msgstr "메모리 1kb 추가당 비용은 약 0.007 SOL (0.001 USDC)입니다" #: src/screens/Cart/index.tsx:267 -#: src/screens/DomainView.tsx:589 -#: src/screens/DomainView.tsx:709 +#: src/screens/DomainView.tsx:571 +#: src/screens/DomainView.tsx:691 msgid "Edit" msgstr "편집" @@ -394,7 +394,7 @@ msgstr "인젝티브" msgid "Into this" msgstr "이것으로" -#: src/screens/DomainView.tsx:318 +#: src/screens/DomainView.tsx:300 msgid "Invalid {key} address" msgstr "유효하지 않은 {key} 주소" @@ -411,7 +411,7 @@ msgstr "유효하지 않은 {key} 주소" #~ msgstr "유효하지 않은 IPFS 기록 - 반드시 ipfs://로 시작해야 합니다" #: src/components/EditPicture.tsx:57 -#: src/screens/DomainView.tsx:309 +#: src/screens/DomainView.tsx:291 msgid "Invalid URL" msgstr "유효하지 않은 URL입니다" @@ -448,7 +448,7 @@ msgstr "사진 업로드 URL" msgid "Next" msgstr "다음" -#: src/screens/DomainView.tsx:708 +#: src/screens/DomainView.tsx:690 msgid "No changes to save" msgstr "저장할 변경 사항이 없습니다" @@ -469,7 +469,7 @@ msgstr "도메인을 찾을 수 없습니다" #~ "\n" #~ "서브도메인을 찾을 수 없습니다" -#: src/screens/DomainView.tsx:656 +#: src/screens/DomainView.tsx:638 msgid "Not set" msgstr "설정되지 않음" @@ -560,12 +560,12 @@ msgstr "레딧" msgid "Registration discount" msgstr "등록 할인" -#: src/screens/DomainView.tsx:589 +#: src/screens/DomainView.tsx:571 msgid "Revert" msgstr "취소" #: src/components/EditPicture.tsx:217 -#: src/screens/DomainView.tsx:707 +#: src/screens/DomainView.tsx:689 msgid "Save" msgstr "저장" @@ -624,7 +624,7 @@ msgstr "" msgid "Skip" msgstr "건너뛰기" -#: src/screens/DomainView.tsx:546 +#: src/screens/DomainView.tsx:528 msgid "Socials" msgstr "소셜" @@ -661,7 +661,7 @@ msgstr "서브도메인 {domain}.sol이(가) 성공적으로 삭제되었습니 msgid "Subdomain {subdomain}.sol successfully created!" msgstr "서브도메인 {subdomain}.sol이(가) 성공적으로 생성되었습니다" -#: src/screens/DomainView.tsx:579 +#: src/screens/DomainView.tsx:561 msgid "Subdomains" msgstr "서브도메인" @@ -685,7 +685,7 @@ msgstr "텔레그램" msgid "The storage size will determine the maximum amount of data you can store on your domain." msgstr "저장 용량은 도메인에 저장할 수 있는 데이터의 최대량입니다." -#: src/screens/DomainView.tsx:791 +#: src/screens/DomainView.tsx:773 msgid "There are no subdomains." msgstr "서브도메인이 없습니다." @@ -697,7 +697,7 @@ msgstr "서브도메인이 없습니다." msgid "This domain has been bridged via Wormhole and is available on BNB" msgstr "이 도메인은 웜홀을 통해 연결되었으며 BNB에서 사용할 수 있습니다" -#: src/screens/DomainView.tsx:459 +#: src/screens/DomainView.tsx:441 msgid "This domain is wrapped in an NFT" msgstr "이 도메인은 NFT로 래핑되어 있습니다." @@ -713,7 +713,7 @@ msgstr "합계" #~ msgid "Total USD" #~ msgstr "USD 합계" -#: src/screens/DomainView.tsx:487 +#: src/screens/DomainView.tsx:469 msgid "Transfer" msgstr "전송" @@ -747,7 +747,7 @@ msgstr "당신의 프로젝트를 위한 개성적인 도메인 이름" msgid "Unwrap domain" msgstr "도메인 언랩하기" -#: src/screens/DomainView.tsx:517 +#: src/screens/DomainView.tsx:499 msgid "Unwrap NFT" msgstr "NFT 언랩하기" @@ -792,7 +792,7 @@ msgstr "도메인 랩하기" #~ msgid "Wrap domain into NFT" #~ msgstr "도메인을 NFT로 랩하기" -#: src/screens/DomainView.tsx:517 +#: src/screens/DomainView.tsx:499 msgid "Wrap to NFT" msgstr "NFT로 랩하기" @@ -804,7 +804,7 @@ msgstr "당신의 도메인을 NFT로 랩하기" msgid "You can enjoy the full benefits of owning a domain now. Get started by filling in the profiles attached to the domains." msgstr "도메인에 연동된 프로필을 작성을 하므로서 도메인의 모든 혜택을 누리세요." -#: src/screens/DomainView.tsx:761 +#: src/screens/DomainView.tsx:743 msgid "You can only add subdomains when the domain is unwrapped." msgstr "도메인이 언랩된 경우에만 서브도메인을 추가할 수 있습니다." @@ -812,7 +812,7 @@ msgstr "도메인이 언랩된 경우에만 서브도메인을 추가할 수 있 msgid "You do not have enough funds" msgstr "자금이 부족합니다." -#: src/screens/DomainView.tsx:786 +#: src/screens/DomainView.tsx:768 msgid "You don’t have any subdomains yet. You can create as many as you want to use your profiles for different purposes." msgstr "아직 보유하고 있는 서브도메인이 없습니다. 다양한 용도로 프로필을 사용하기 위해 원하는 만큼 생성해보세요." diff --git a/src/locales/tr/messages.po b/src/locales/tr/messages.po index f86c104..57e68ea 100644 --- a/src/locales/tr/messages.po +++ b/src/locales/tr/messages.po @@ -59,11 +59,11 @@ msgstr "Metaverse için insanlaştırılmış kimlik" msgid "Add a profile pic that represents you. It can be a photo of yourself, your favourite NFT or something that inspires you." msgstr "Kendinizi tanıtan bir profil resmi ekleyin. Bu; size veya sahip olduğunuz bir NFT'ye ait bir fotoğraf olabileceği gibi size ilham veren bir resim de olabilir. " -#: src/screens/DomainView.tsx:750 +#: src/screens/DomainView.tsx:732 msgid "Add subdomain" msgstr "Subdomain ekle" -#: src/screens/DomainView.tsx:563 +#: src/screens/DomainView.tsx:545 msgid "Addresses" msgstr "Adresler" @@ -157,7 +157,7 @@ msgstr "İlerle" #: src/components/ProfileBlock.tsx:84 #: src/components/ProfileBlock.tsx:96 -#: src/screens/DomainView.tsx:635 +#: src/screens/DomainView.tsx:617 msgid "Copied!" msgstr "Kopyalandı" @@ -175,7 +175,7 @@ msgstr "Sizin gibi düşünen bireylerle iletişim kurmak için Twitter, Discord #: src/components/DeleteModal.tsx:99 #: src/components/DeleteModal.tsx:105 -#: src/screens/DomainView.tsx:503 +#: src/screens/DomainView.tsx:485 msgid "Delete" msgstr "Sil" @@ -221,8 +221,8 @@ msgid "Each additional kb of memory costs around 0.007 SOL (0.001 USDC)" msgstr "Her bir fazladan kb hafıza 0.007 SOL ya da 0.001 USDC masraf çıkartır." #: src/screens/Cart/index.tsx:267 -#: src/screens/DomainView.tsx:589 -#: src/screens/DomainView.tsx:709 +#: src/screens/DomainView.tsx:571 +#: src/screens/DomainView.tsx:691 msgid "Edit" msgstr "Düzenle" @@ -328,12 +328,12 @@ msgstr "Injective" msgid "Into this" msgstr "Buna doğru" -#: src/screens/DomainView.tsx:318 +#: src/screens/DomainView.tsx:300 msgid "Invalid {key} address" msgstr "Geçersiz {key} adresi" #: src/components/EditPicture.tsx:57 -#: src/screens/DomainView.tsx:309 +#: src/screens/DomainView.tsx:291 msgid "Invalid URL" msgstr "Geçersiz URL " @@ -361,7 +361,7 @@ msgstr "Yeni resim URL'si" msgid "Next" msgstr "Sonraki" -#: src/screens/DomainView.tsx:708 +#: src/screens/DomainView.tsx:690 msgid "No changes to save" msgstr "Kaydedilecek değişiklik yok" @@ -370,7 +370,7 @@ msgstr "Kaydedilecek değişiklik yok" msgid "No domain found" msgstr "Domain bulunamadı" -#: src/screens/DomainView.tsx:656 +#: src/screens/DomainView.tsx:638 msgid "Not set" msgstr "Belirlenmemiş" @@ -457,12 +457,12 @@ msgstr "Reddit" msgid "Registration discount" msgstr "Kaydetme indirimi" -#: src/screens/DomainView.tsx:589 +#: src/screens/DomainView.tsx:571 msgid "Revert" msgstr "Eski haline getir" #: src/components/EditPicture.tsx:217 -#: src/screens/DomainView.tsx:707 +#: src/screens/DomainView.tsx:689 msgid "Save" msgstr "Kaydet" @@ -503,7 +503,7 @@ msgstr "" msgid "Skip" msgstr "Atla" -#: src/screens/DomainView.tsx:546 +#: src/screens/DomainView.tsx:528 msgid "Socials" msgstr "Sosyal Medya Hesapları" @@ -523,7 +523,7 @@ msgstr "{domain}.sol subdomaini başarıyla silindi!" msgid "Subdomain {subdomain}.sol successfully created!" msgstr "{domain}.sol başarıyla oluşturuldu!" -#: src/screens/DomainView.tsx:579 +#: src/screens/DomainView.tsx:561 msgid "Subdomains" msgstr "Subdomainler" @@ -543,7 +543,7 @@ msgstr "Telegram" msgid "The storage size will determine the maximum amount of data you can store on your domain." msgstr "Depo kapasitesi, domaininide depolanabilecek azami veri miktarını belirler. " -#: src/screens/DomainView.tsx:791 +#: src/screens/DomainView.tsx:773 msgid "There are no subdomains." msgstr "Hiçbir subdomain bulunamadı." @@ -551,7 +551,7 @@ msgstr "Hiçbir subdomain bulunamadı." msgid "This domain has been bridged via Wormhole and is available on BNB" msgstr "Bu domain Wormhole aracılığıyla BNB ağına aktarılmış ve BNB ağında da kullanılabilir. " -#: src/screens/DomainView.tsx:459 +#: src/screens/DomainView.tsx:441 msgid "This domain is wrapped in an NFT" msgstr "Bu domain, NFT haline katlanmış." @@ -563,7 +563,7 @@ msgstr "" msgid "Total" msgstr "Toplam" -#: src/screens/DomainView.tsx:487 +#: src/screens/DomainView.tsx:469 msgid "Transfer" msgstr "Gönder" @@ -592,7 +592,7 @@ msgstr "Projenize özgü domain ismi" msgid "Unwrap domain" msgstr "Domaini geri katla (unwrapping)" -#: src/screens/DomainView.tsx:517 +#: src/screens/DomainView.tsx:499 msgid "Unwrap NFT" msgstr "NFT'yi geri katla (unwrapping)" @@ -625,7 +625,7 @@ msgstr "Önemsenmesi gerekenler nelerdir?" msgid "Wrap domain" msgstr "Domaini Katla (wrapping)" -#: src/screens/DomainView.tsx:517 +#: src/screens/DomainView.tsx:499 msgid "Wrap to NFT" msgstr "NFT'ye katla (wrapping)" @@ -637,7 +637,7 @@ msgstr "Domaini, NFT'ye katla (wrapping)" msgid "You can enjoy the full benefits of owning a domain now. Get started by filling in the profiles attached to the domains." msgstr "Artık bir domaine sahip olmanın tüm avantajlarından faydalanabilirsin. Domainle ilişkilendirilmiş profili doldurarak başla." -#: src/screens/DomainView.tsx:761 +#: src/screens/DomainView.tsx:743 msgid "You can only add subdomains when the domain is unwrapped." msgstr "Yalnızca domain katlanmamış (unwrapped) haldeyken subdomain ekleyebilirsin." @@ -645,7 +645,7 @@ msgstr "Yalnızca domain katlanmamış (unwrapped) haldeyken subdomain ekleyebil msgid "You do not have enough funds" msgstr "Yeterli bakiyeye sahip değilsiniz" -#: src/screens/DomainView.tsx:786 +#: src/screens/DomainView.tsx:768 msgid "You don’t have any subdomains yet. You can create as many as you want to use your profiles for different purposes." msgstr "Herhangi bir subdomaine sahip değilsiniz. Farklı profillerinizde farklı amaçlarda kullanmak üzere istediğiniz kadar subdomain oluşturabilirsiniz. " diff --git a/src/locales/zh-Hans/messages.po b/src/locales/zh-Hans/messages.po index 6d09dbc..8b44e9a 100644 --- a/src/locales/zh-Hans/messages.po +++ b/src/locales/zh-Hans/messages.po @@ -59,11 +59,11 @@ msgstr "为元宇宙打造的人性化ID" msgid "Add a profile pic that represents you. It can be a photo of yourself, your favourite NFT or something that inspires you." msgstr "上传一张能代表你的头像图片。它可以是你自己的照片,或是你最喜欢的NFT,或是给你带来灵感的图片。" -#: src/screens/DomainView.tsx:750 +#: src/screens/DomainView.tsx:732 msgid "Add subdomain" msgstr "添加子域名" -#: src/screens/DomainView.tsx:563 +#: src/screens/DomainView.tsx:545 msgid "Addresses" msgstr "地址" @@ -157,7 +157,7 @@ msgstr "继续" #: src/components/ProfileBlock.tsx:84 #: src/components/ProfileBlock.tsx:96 -#: src/screens/DomainView.tsx:635 +#: src/screens/DomainView.tsx:617 msgid "Copied!" msgstr "已复制!" @@ -175,7 +175,7 @@ msgstr "通过添加Twitter、Discord和Telegram的链接,创建一个具有 #: src/components/DeleteModal.tsx:99 #: src/components/DeleteModal.tsx:105 -#: src/screens/DomainView.tsx:503 +#: src/screens/DomainView.tsx:485 msgid "Delete" msgstr "删除" @@ -221,8 +221,8 @@ msgid "Each additional kb of memory costs around 0.007 SOL (0.001 USDC)" msgstr "每额外增加的1kb内存需花费约0.007 SOL(0.001 USDC)" #: src/screens/Cart/index.tsx:267 -#: src/screens/DomainView.tsx:589 -#: src/screens/DomainView.tsx:709 +#: src/screens/DomainView.tsx:571 +#: src/screens/DomainView.tsx:691 msgid "Edit" msgstr "编辑" @@ -330,12 +330,12 @@ msgstr "Injective" msgid "Into this" msgstr "进入" -#: src/screens/DomainView.tsx:318 +#: src/screens/DomainView.tsx:300 msgid "Invalid {key} address" msgstr "无效的 {key} 钱包地址" #: src/components/EditPicture.tsx:57 -#: src/screens/DomainView.tsx:309 +#: src/screens/DomainView.tsx:291 msgid "Invalid URL" msgstr "网址无效" @@ -363,7 +363,7 @@ msgstr "新的图片网址" msgid "Next" msgstr "下一步" -#: src/screens/DomainView.tsx:708 +#: src/screens/DomainView.tsx:690 msgid "No changes to save" msgstr "无需保存更改" @@ -372,7 +372,7 @@ msgstr "无需保存更改" msgid "No domain found" msgstr "未找到域名" -#: src/screens/DomainView.tsx:656 +#: src/screens/DomainView.tsx:638 msgid "Not set" msgstr "未设置" @@ -459,12 +459,12 @@ msgstr "Reddit" msgid "Registration discount" msgstr "注册折扣" -#: src/screens/DomainView.tsx:589 +#: src/screens/DomainView.tsx:571 msgid "Revert" msgstr "返回" #: src/components/EditPicture.tsx:217 -#: src/screens/DomainView.tsx:707 +#: src/screens/DomainView.tsx:689 msgid "Save" msgstr "保存" @@ -505,7 +505,7 @@ msgstr "" msgid "Skip" msgstr "跳过" -#: src/screens/DomainView.tsx:546 +#: src/screens/DomainView.tsx:528 msgid "Socials" msgstr "社交媒体" @@ -525,7 +525,7 @@ msgstr "子域名 {domain}.sol 删除成功!" msgid "Subdomain {subdomain}.sol successfully created!" msgstr "子域名 {subdomain}.sol 创建成功!" -#: src/screens/DomainView.tsx:579 +#: src/screens/DomainView.tsx:561 msgid "Subdomains" msgstr "子域名" @@ -545,7 +545,7 @@ msgstr "Telegram" msgid "The storage size will determine the maximum amount of data you can store on your domain." msgstr "存储容量将会决定域名可储存的最大数据量" -#: src/screens/DomainView.tsx:791 +#: src/screens/DomainView.tsx:773 msgid "There are no subdomains." msgstr "尚无任何子域名。" @@ -553,7 +553,7 @@ msgstr "尚无任何子域名。" msgid "This domain has been bridged via Wormhole and is available on BNB" msgstr "该域名已通过Wormhole桥接,可在BNB上使用" -#: src/screens/DomainView.tsx:459 +#: src/screens/DomainView.tsx:441 msgid "This domain is wrapped in an NFT" msgstr "该域名已被封装为NFT" @@ -565,7 +565,7 @@ msgstr "" msgid "Total" msgstr "总计" -#: src/screens/DomainView.tsx:487 +#: src/screens/DomainView.tsx:469 msgid "Transfer" msgstr "转移" @@ -594,7 +594,7 @@ msgstr "为您的项目创建独一无二的域名" msgid "Unwrap domain" msgstr "解除封装域名" -#: src/screens/DomainView.tsx:517 +#: src/screens/DomainView.tsx:499 msgid "Unwrap NFT" msgstr "将NFT解除封装" @@ -627,7 +627,7 @@ msgstr "注意事项:" msgid "Wrap domain" msgstr "封装域名" -#: src/screens/DomainView.tsx:517 +#: src/screens/DomainView.tsx:499 msgid "Wrap to NFT" msgstr "封装为NFT" @@ -639,7 +639,7 @@ msgstr "将你的域名封装成NFT" msgid "You can enjoy the full benefits of owning a domain now. Get started by filling in the profiles attached to the domains." msgstr "现在开始您可以尽情享受拥有域名的益处。从填写域名相关个人资料开始使用。" -#: src/screens/DomainView.tsx:761 +#: src/screens/DomainView.tsx:743 msgid "You can only add subdomains when the domain is unwrapped." msgstr "只有在域名解开封装后才能添加子域名。" @@ -647,7 +647,7 @@ msgstr "只有在域名解开封装后才能添加子域名。" msgid "You do not have enough funds" msgstr "您的资金不足" -#: src/screens/DomainView.tsx:786 +#: src/screens/DomainView.tsx:768 msgid "You don’t have any subdomains yet. You can create as many as you want to use your profiles for different purposes." msgstr "您还没有任何子域名。您可以创建任意数量的子域名,以便将您的个人资料用于不同的用途。" diff --git a/src/screens/DomainView.tsx b/src/screens/DomainView.tsx index 1939a62..a98a734 100644 --- a/src/screens/DomainView.tsx +++ b/src/screens/DomainView.tsx @@ -19,20 +19,8 @@ import { } from "@expo/vector-icons"; import { Record as SNSRecord, - getDomainKeySync, - NameRegistryState, - transferInstruction, - NAME_PROGRAM_ID, - createNameRegistry, - updateInstruction, - Numberu32, - deleteInstruction, - serializeRecord, - serializeSolRecord, - serializeRecordV2Content, updateRecordV2Instruction, createRecordV2Instruction, - getRecordKeySync, getRecordV2Key, deleteRecordV2, Record, @@ -41,15 +29,9 @@ import { writRoaRecordV2, } from "@bonfida/spl-name-service"; import { isMobile } from "@src/utils/platform"; -import { ROOT_DOMAIN } from "@bonfida/name-offers"; -import { - PublicKey, - Transaction, - TransactionInstruction, -} from "@solana/web3.js"; +import { TransactionInstruction } from "@solana/web3.js"; import Clipboard from "@react-native-clipboard/clipboard"; import { useModal } from "react-native-modalfy"; -import { useProfilePic } from "@bonfida/sns-react"; import { ChainId, Network, post } from "@bonfida/sns-emitter"; import { Trans, t } from "@lingui/macro"; import tw from "@src/utils/tailwind"; diff --git a/src/utils/tokens/popular-tokens.tsx b/src/utils/tokens/popular-tokens.tsx index e9b9e22..54b5816 100644 --- a/src/utils/tokens/popular-tokens.tsx +++ b/src/utils/tokens/popular-tokens.tsx @@ -46,7 +46,7 @@ export const tokenList = [ mintAddress: "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263", tokenName: "BONK", pythFeed: "8ihFLu5FimgTQ1Unh4dVyEHUGodJ5gJQCrQf4KUVB9bN", - icon: "https://solana.fm/api/image-proxy?imageUrl=https://arweave.net/hQiPZOsRZXGXBJd_82PhVdlM_hACsT_q6wqwf5cSY7I", + icon: "https://quei6zhlcfsxdfyes577gy7bkxmuz7qqakyt72xlbkyh7fysmoza.arweave.net/hQiPZOsRZXGXBJd_82PhVdlM_hACsT_q6wqwf5cSY7I", }, {