+
+ {platform !== 'futa' &&
+ isWrappedNativeToken(validatedInput) && (
+ {
+ try {
+ const wethToken =
+ tokens.getTokenByAddress(
+ validatedInput,
+ );
+ if (wethToken) {
+ chooseToken(
+ wethToken,
+ false,
+ );
+ }
+ } catch (err) {
+ IS_LOCAL_ENV &&
+ console.warn(err);
+ onClose();
}
- } catch (err) {
- IS_LOCAL_ENV &&
- console.warn(err);
- onClose();
- }
- }}
- >
- I understand, use WETH
-
+ }}
+ >
+ I understand, use WETH
+
+ }
+ />
+ )}
+
+ {platform === 'ambient' && (
+ <>
+ {isWrappedNativeToken(validatedInput) &&
+ [
+ tokens.getTokenByAddress(
+ ZERO_ADDRESS,
+ ) as TokenIF,
+ ].map((token: TokenIF) => (
+
+ ))}
+ {showSoloSelectTokenButtons ? (
+
+ {removeWrappedNative(chainId, outputTokens)
+ .slice(0, MAX_TOKEN_COUNT)
+ .map((token: TokenIF) => {
+ return (
+
+ );
+ })}
+
+ ) : (
+
+ )}
+ >
+ )}
+ {platform === 'futa' &&
+ tokens
+ .getTokensFromList('/futa-token-list.json')
+ .filter((tk: TokenIF) => {
+ // fn to compare name and symbol to search input
+ function matchSymbolOrName(
+ ...args: [string, ...string[]]
+ ): boolean {
+ const isMatch: boolean = args.some(
+ (a: string) => {
+ return a
+ .toLowerCase()
+ .includes(
+ validatedInput.toLowerCase(),
+ );
+ },
+ );
+ return isMatch;
}
- />
- )}
-
- {platform === 'ambient' && (
- <>
- {isWrappedNativeToken(validatedInput) &&
- [
- tokens.getTokenByAddress(
- ZERO_ADDRESS,
- ) as TokenIF,
- ].map((token: TokenIF) => (
+ // fn to compare token address to search input
+ function matchAddress(
+ reference: string,
+ ): boolean {
+ let isMatch: boolean;
+ if (reference.length === 42) {
+ isMatch =
+ reference.toLowerCase() ===
+ validatedInput.toLowerCase();
+ console.log(isMatch);
+ } else if (reference.length === 40) {
+ isMatch =
+ '0x' + reference.toLowerCase() ===
+ validatedInput.toLowerCase();
+ } else {
+ isMatch = false;
+ }
+ return isMatch;
+ }
+ // logic router for search type: name, symbol, address
+ function checkForMatches(): boolean {
+ return validatedInput.length === 40 ||
+ validatedInput.length === 42
+ ? matchAddress(tk.address)
+ : matchSymbolOrName(tk.name, tk.symbol);
+ }
+ // if user entered search input text, check for matches,
+ // ... else return `true` (no tokens filtered out)
+ return validatedInput
+ ? checkForMatches()
+ : true;
+ })
+ .map((ticker: TokenIF) => (
- {removeWrappedNative(chainId, outputTokens)
- .slice(0, MAX_TOKEN_COUNT)
- .map((token: TokenIF) => {
- return (
-
- );
- })}
-
- ) : (
-