From 0a76e6da6be7e497998394011478c08539cd9b09 Mon Sep 17 00:00:00 2001 From: Chewing Glass Date: Thu, 10 Aug 2023 13:47:48 -0500 Subject: [PATCH] Revert "integrate alldomains to helium wallet: (#416)" This reverts commit c53aee41d55f1eaa35830297967b0e31b5b92f40. --- package.json | 21 +++++++------- src/features/addressBook/ContactDetails.tsx | 30 ------------------- src/features/payment/PaymentItem.tsx | 15 +++++----- src/features/payment/PaymentScreen.tsx | 32 +++------------------ src/utils/getDomainOwner.ts | 16 ----------- yarn.lock | 8 ------ 6 files changed, 22 insertions(+), 100 deletions(-) delete mode 100644 src/utils/getDomainOwner.ts diff --git a/package.json b/package.json index 70dc14377..2a84d3419 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,6 @@ "@ledgerhq/react-native-hw-transport-ble": "6.27.2", "@metaplex-foundation/js": "0.17.6", "@metaplex-foundation/mpl-bubblegum": "0.6.0", - "@onsol/tldparser": "^0.5.3", "@pythnetwork/client": "^2.17.0", "@react-native-async-storage/async-storage": "1.18.1", "@react-native-community/blur": "4.3.0", @@ -292,29 +291,29 @@ "tls": false }, "browser": { - "_stream_duplex": "readable-stream/duplex", - "_stream_passthrough": "readable-stream/passthrough", - "_stream_readable": "readable-stream/readable", - "_stream_transform": "readable-stream/transform", - "_stream_writable": "readable-stream/writable", + "zlib": "browserify-zlib", "console": "console-browserify", "constants": "constants-browserify", "crypto": "react-native-crypto", - "dgram": "react-native-udp", "dns": "dns.js", + "net": "react-native-tcp", "domain": "domain-browser", - "fs": "react-native-level-fs", "http": "@tradle/react-native-http", "https": "https-browserify", - "net": "react-native-tcp", "os": "react-native-os", "path": "path-browserify", "querystring": "querystring-es3", + "fs": "react-native-level-fs", + "_stream_transform": "readable-stream/transform", + "_stream_readable": "readable-stream/readable", + "_stream_writable": "readable-stream/writable", + "_stream_duplex": "readable-stream/duplex", + "_stream_passthrough": "readable-stream/passthrough", + "dgram": "react-native-udp", "stream": "stream-browserify", "timers": "timers-browserify", - "tls": false, "tty": "tty-browserify", "vm": "vm-browserify", - "zlib": "browserify-zlib" + "tls": false } } diff --git a/src/features/addressBook/ContactDetails.tsx b/src/features/addressBook/ContactDetails.tsx index f84ef9026..8471fe956 100644 --- a/src/features/addressBook/ContactDetails.tsx +++ b/src/features/addressBook/ContactDetails.tsx @@ -28,8 +28,6 @@ import useAlert from '@hooks/useAlert' import CloseButton from '@components/CloseButton' import { solAddressIsValid, accountNetType } from '@utils/accountUtils' import { heliumAddressFromSolAddress } from '@helium/spl-utils' -import { useDebounce } from 'use-debounce' -import { fetchDomainOwner } from '@utils/getDomainOwner' import { HomeNavigationProp } from '../home/homeTypes' import { useAccountStorage } from '../../storage/AccountStorageProvider' import { @@ -39,7 +37,6 @@ import { import { useAppStorage } from '../../storage/AppStorageProvider' import AddressExtra from './AddressExtra' import { CSAccount } from '../../storage/cloudStorage' -import { useSolana } from '../../solana/SolanaProvider' const BUTTON_HEIGHT = 55 @@ -65,9 +62,6 @@ const ContactDetails = ({ action, contact }: Props) => { const { scannedAddress, setScannedAddress } = useAppStorage() const spacing = useSpacing() const { showOKCancelAlert } = useAlert() - const { connection } = useSolana() - // debounce is needed to avoid unneccessary rpc calls - const [debouncedAddress] = useDebounce(address, 800) useEffect(() => { if (route.params?.address) { @@ -77,30 +71,6 @@ const ContactDetails = ({ action, contact }: Props) => { } }, [contact, route]) - const handleDomainAddress = useCallback( - async ({ domain }: { domain: string }) => { - if (!connection) return - return fetchDomainOwner(connection, domain) - }, - [connection], - ) - - useEffect(() => { - // only parse addresses which include dots. - if (debouncedAddress.split('.').length === 2) { - handleDomainAddress({ domain: debouncedAddress }).then( - (resolvedAddress) => { - // owner was not found so we do not set the owner address - if (!resolvedAddress) return - setAddress(resolvedAddress) - // if nickname was previously set we ignore setting the domain as nickname - if (nickname) return - setNickname(debouncedAddress) - }, - ) - } - }, [debouncedAddress, handleDomainAddress, nickname]) - const onRequestClose = useCallback(() => { homeNav.goBack() }, [homeNav]) diff --git a/src/features/payment/PaymentItem.tsx b/src/features/payment/PaymentItem.tsx index 575631603..4465956f3 100644 --- a/src/features/payment/PaymentItem.tsx +++ b/src/features/payment/PaymentItem.tsx @@ -23,7 +23,6 @@ import { NativeSyntheticEvent, TextInputEndEditingEventData, } from 'react-native' -import { useDebouncedCallback } from 'use-debounce' import { CSAccount } from '../../storage/cloudStorage' import { useBalance } from '../../utils/Balance' import { accountNetType, ellipsizeAddress } from '../../utils/accountUtils' @@ -121,12 +120,14 @@ const PaymentItem = ({ onToggleMax({ address, index }) }, [address, index, onToggleMax]) - // debounce is needed to avoid unneccessary rpc calls - const handleEditAddress = useDebouncedCallback((text?: string) => { - onEditAddress({ address: text || '', index }) - }, 800) + const handleEditAddress = useCallback( + (text?: string) => { + onEditAddress({ address: text || '', index }) + }, + [index, onEditAddress], + ) - const handleAddressBlur = useDebouncedCallback( + const handleAddressBlur = useCallback( (event?: NativeSyntheticEvent) => { const text = event?.nativeEvent.text handleAddressError({ @@ -135,7 +136,7 @@ const PaymentItem = ({ isHotspotOrValidator: false, }) }, - 800, + [handleAddressError, index], ) const handleRemove = useCallback(() => { diff --git a/src/features/payment/PaymentScreen.tsx b/src/features/payment/PaymentScreen.tsx index 63e35392d..9e1f6b677 100644 --- a/src/features/payment/PaymentScreen.tsx +++ b/src/features/payment/PaymentScreen.tsx @@ -49,7 +49,6 @@ import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view import { useSafeAreaInsets } from 'react-native-safe-area-context' import Toast from 'react-native-simple-toast' import { useSelector } from 'react-redux' -import { fetchDomainOwner } from '@utils/getDomainOwner' import useSubmitTxn from '../../hooks/useSubmitTxn' import { RootNavigationProp } from '../../navigation/rootTypes' import { useSolana } from '../../solana/SolanaProvider' @@ -132,7 +131,7 @@ const PaymentScreen = () => { return new BN(balanceBigint.toString()) } }, [balanceBigint]) - const { anchorProvider, connection } = useSolana() + const { anchorProvider } = useSolana() const appDispatch = useAppDispatch() const navigation = useNavigation() @@ -490,14 +489,6 @@ const PaymentScreen = () => { [dispatch], ) - const handleDomainAddress = useCallback( - async ({ domain }: { domain: string }) => { - if (!connection) return - return fetchDomainOwner(connection, domain) - }, - [connection], - ) - const handleAddressError = useCallback( ({ index, @@ -514,12 +505,6 @@ const PaymentScreen = () => { } let invalidAddress = false - // only handle address which include dots. - if (address.split('.').length === 2) { - // retrieve the address which has been set previously by handleEditAddress. - /* eslint-disable-next-line no-param-reassign */ - address = paymentState.payments[index].address || '' - } invalidAddress = !!address && !solAddressIsValid(address) const wrongNetType = @@ -528,28 +513,20 @@ const PaymentScreen = () => { accountNetType(address) !== networkType handleSetPaymentError(index, invalidAddress || wrongNetType) }, - [handleSetPaymentError, networkType, paymentState], + [handleSetPaymentError, networkType], ) const handleEditAddress = useCallback( async ({ index, address }: { index: number; address: string }) => { if (index === undefined || !currentAccount || !anchorProvider) return - let domain = '' - if (address.split('.').length === 2) { - const resolvedAddress = - (await handleDomainAddress({ domain: address })) || '' - /* eslint-disable-next-line no-param-reassign */ - address = resolvedAddress - // if the address is resolved then the domain could also be an alias/nickname of the address. - if (resolvedAddress) domain = address - } + const allAccounts = unionBy( contacts, Object.values(accounts || {}), ({ address: addr }) => addr, ) let contact = allAccounts.find((c) => c.address === address) - if (!contact) contact = { address, netType: networkType, alias: domain } + if (!contact) contact = { address, netType: networkType, alias: '' } const createTokenAccountFee = await calcCreateAssociatedTokenAccountAccountFee( @@ -574,7 +551,6 @@ const PaymentScreen = () => { networkType, anchorProvider, mint, - handleDomainAddress, ], ) diff --git a/src/utils/getDomainOwner.ts b/src/utils/getDomainOwner.ts deleted file mode 100644 index 305584ba9..000000000 --- a/src/utils/getDomainOwner.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { TldParser } from '@onsol/tldparser' -import { Connection } from '@solana/web3.js' - -// retrives AllDomain domain owner. -// the domain must include the dot -export async function fetchDomainOwner(connection: Connection, domain: string) { - try { - const parser = new TldParser(connection) - const owner = await parser.getOwnerFromDomainTld(domain) - if (!owner) return - return owner.toBase58() - } catch (e) { - // Handle the error here if needed - // console.error("Error fetching domain owner:", e); - } -} diff --git a/yarn.lock b/yarn.lock index d4885e5fe..2f750a3af 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3320,14 +3320,6 @@ mkdirp "^1.0.4" rimraf "^3.0.2" -"@onsol/tldparser@^0.5.3": - version "0.5.3" - resolved "https://registry.yarnpkg.com/@onsol/tldparser/-/tldparser-0.5.3.tgz#f5a0a06fa69af0e8a2783464bbd32b3e88ad0b1a" - integrity sha512-rICUDhYPwDuO81wo4HI7QSCf6kQiaM0mSv3HKBJPrRxliIvgwanAoU5H0p54HEdAKeS3pmeLi5wB6ROpGxTZ/A== - dependencies: - "@ethersproject/sha2" "^5.7.0" - "@metaplex-foundation/beet-solana" "^0.4.0" - "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf"