Skip to content

Commit 85dbef4

Browse files
authored
fix: remove eth as swappable token (#5)
Signed-off-by: ryanml <[email protected]>
1 parent 37a6f8b commit 85dbef4

File tree

15 files changed

+79
-31
lines changed

15 files changed

+79
-31
lines changed

src/background/services/tokens/handlers/getTokenList.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { TokenManagerService } from '../TokenManagerService';
88
type HandlerType = ExtensionRequestHandler<
99
ExtensionRequest.GET_NETWORK_TOKENS,
1010
{ tokens: { [address: string]: NetworkContractToken } },
11-
[number]
11+
[number, string[]]
1212
>;
1313

1414
@injectable()
@@ -18,7 +18,7 @@ export class GetTokensListHandler implements HandlerType {
1818
constructor(private tokenManagerService: TokenManagerService) {}
1919

2020
handle: HandlerType['handle'] = async ({ request }) => {
21-
const [chainId] = request.params;
21+
const [chainId, disallowedAssets] = request.params;
2222

2323
const [tokens, err] = await resolve<NetworkContractToken[]>(
2424
this.tokenManagerService.getTokensByChainId(chainId)
@@ -35,6 +35,9 @@ export class GetTokensListHandler implements HandlerType {
3535
...request,
3636
result: {
3737
tokens: tokens.reduce((allTokens, token) => {
38+
if (disallowedAssets.includes(token.symbol)) {
39+
return allTokens;
40+
}
3841
allTokens[token.address] = token;
3942
return allTokens;
4043
}, {}),

src/contexts/SwapProvider/SwapProvider.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import {
3737
SwapContextAPI,
3838
SwapParams,
3939
hasParaswapError,
40+
DISALLOWED_SWAP_ASSETS,
4041
} from './models';
4142

4243
export const SwapContext = createContext<SwapContextAPI>({} as any);
@@ -51,7 +52,10 @@ export function SwapContextProvider({ children }: { children: any }) {
5152
const { networkFee } = useNetworkFeeContext();
5253
const { captureEncrypted } = useAnalyticsContext();
5354
const { t } = useTranslation();
54-
const tokens = useTokensWithBalances(true);
55+
const tokens = useTokensWithBalances({
56+
forceShowTokensWithoutBalances: true,
57+
disallowedAssets: DISALLOWED_SWAP_ASSETS,
58+
});
5559

5660
const paraswap = useMemo(
5761
() => new ParaSwap(ChainId.AVALANCHE_MAINNET_ID, undefined, new Web3()),

src/contexts/SwapProvider/models.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,8 @@ export type SwapContextAPI = {
6666
approveTxHash: string;
6767
}>;
6868
};
69+
70+
export const DISALLOWED_SWAP_ASSETS: string[] = [
71+
// ETH is disabled in Swaps per issue CP-8409
72+
'ETH',
73+
];

src/hooks/useTokenFromParams.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ export function useTokenFromParams(
1212
withDefault = true
1313
): TokenWithBalance | undefined {
1414
const { search } = useLocation();
15-
const allTokens = useTokensWithBalances(true);
15+
const allTokens = useTokensWithBalances({
16+
forceShowTokensWithoutBalances: true,
17+
});
1618
const [selectedToken, setSelectedToken] = useState<
1719
TokenWithBalance | undefined
1820
>(undefined);

src/hooks/useTokensWithBalances.ts

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,29 @@ import { ExtensionRequest } from '@src/background/connections/extensionConnectio
1414
import { merge } from 'lodash';
1515
import { getAddressForChain } from '@src/utils/getAddressForChain';
1616

17+
type UseTokensWithBalanceOptions = {
18+
// Requests the tokens WITH and WITHOUT balances
19+
forceShowTokensWithoutBalances?: boolean;
20+
// string array of asset symbols that are to be excluded from the result
21+
disallowedAssets?: string[];
22+
chainId?: number;
23+
};
24+
1725
const bnZero = new BN(0);
1826

1927
const nativeTokensFirst = (tokens: TokenWithBalance[]): TokenWithBalance[] =>
2028
[...tokens].sort((t) => (t.type === TokenType.NATIVE ? -1 : 1));
2129

30+
const DISALLOWED_ASSETS = [];
31+
2232
/**
2333
*
24-
* @param forceShowTokensWithoutBalances - show the tokens WITH and WITHOUT balances
25-
* @param chainId
34+
* @param {UseTokensWithBalanceOptions} options
2635
* @returns Tokens list with OR without balances based on `forceShowTokensWithoutBalances`
2736
*/
28-
export function useTokensWithBalances(
29-
forceShowTokensWithoutBalances?: boolean,
30-
chainId?: number
31-
) {
37+
export const useTokensWithBalances = (
38+
options: UseTokensWithBalanceOptions = {}
39+
) => {
3240
const [selectedChainId, setSelectedChainId] = useState<number | undefined>(
3341
undefined
3442
);
@@ -46,6 +54,11 @@ export function useTokensWithBalances(
4654
accounts: { active: activeAccount },
4755
} = useAccountsContext();
4856
const { network } = useNetworkContext();
57+
const {
58+
forceShowTokensWithoutBalances = false,
59+
disallowedAssets = DISALLOWED_ASSETS,
60+
chainId = undefined,
61+
} = options;
4962

5063
const customTokensWithZeroBalance: {
5164
[address: string]: TokenWithBalance;
@@ -85,7 +98,7 @@ export function useTokensWithBalances(
8598
try {
8699
const networkTokens = await request<GetTokensListHandler>({
87100
method: ExtensionRequest.GET_NETWORK_TOKENS,
88-
params: [selectedChainId],
101+
params: [selectedChainId, disallowedAssets],
89102
});
90103

91104
const tokensWithPlaceholderBalances = Object.entries(
@@ -124,6 +137,7 @@ export function useTokensWithBalances(
124137
forceShowTokensWithoutBalances,
125138
showTokensWithoutBalances,
126139
customTokensWithZeroBalance,
140+
disallowedAssets,
127141
]);
128142

129143
return useMemo<TokenWithBalance[]>(() => {
@@ -176,4 +190,4 @@ export function useTokensWithBalances(
176190
showTokensWithoutBalances,
177191
allTokensWithPlaceholderBalances,
178192
]);
179-
}
193+
};

src/pages/Bridge/hooks/useAssetBalancesEVM.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ export function useAssetBalancesEVM(
4040

4141
const { getTokenSymbolOnNetwork } = useGetTokenSymbolOnNetwork();
4242

43-
const tokens = useTokensWithBalances(true);
43+
const tokens = useTokensWithBalances({
44+
forceShowTokensWithoutBalances: true,
45+
});
4446

4547
// For balances on the Avalanche side, for all bridge assets on avalanche
4648
const balances = useMemo(() => {

src/pages/Bridge/hooks/useBtcBridge.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,16 +53,16 @@ export function useBtcBridge(amountInBtc: Big): BridgeAdapter {
5353
const { getNetworkFee } = useNetworkFeeContext();
5454
const { config } = useBridgeConfig();
5555
const { createBridgeTransaction } = useBridgeContext();
56-
const avalancheTokens = useTokensWithBalances(
57-
true,
58-
isDeveloperMode
56+
const avalancheTokens = useTokensWithBalances({
57+
forceShowTokensWithoutBalances: true,
58+
chainId: isDeveloperMode
5959
? ChainId.AVALANCHE_TESTNET_ID
60-
: ChainId.AVALANCHE_MAINNET_ID
61-
);
62-
const btcTokens = useTokensWithBalances(
63-
true,
64-
isDeveloperMode ? ChainId.BITCOIN_TESTNET : ChainId.BITCOIN
65-
);
60+
: ChainId.AVALANCHE_MAINNET_ID,
61+
});
62+
const btcTokens = useTokensWithBalances({
63+
forceShowTokensWithoutBalances: true,
64+
chainId: isDeveloperMode ? ChainId.BITCOIN_TESTNET : ChainId.BITCOIN,
65+
});
6666
const {
6767
accounts: { active: activeAccount },
6868
} = useAccountsContext();

src/pages/Bridge/hooks/useLogoUriForBridgeTransaction.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,10 @@ export function useLogoUriForBridgeTransaction(
4040
: ChainId.AVALANCHE_TESTNET_ID;
4141
}
4242

43-
const tokens = useTokensWithBalances(true, chainId);
43+
const tokens = useTokensWithBalances({
44+
forceShowTokensWithoutBalances: true,
45+
chainId,
46+
});
4447

4548
if (!bridgeTransaction || !targetBlockchain) {
4649
return;

src/pages/Collectibles/CollectibleSend.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ export function CollectibleSend() {
4040
accounts: { active },
4141
} = useAccountsContext();
4242
const { captureEncrypted } = useAnalyticsContext();
43-
const tokens = useTokensWithBalances(false);
43+
const tokens = useTokensWithBalances();
4444
const { nft } = useCollectibleFromParams();
4545

4646
const { isFunctionAvailable, isFunctionSupported } = useIsFunctionAvailable(

src/pages/ManageTokens/AddToken.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@ export function AddToken() {
2424
const { t } = useTranslation();
2525
const { request } = useConnectionContext();
2626
const { network } = useNetworkContext();
27-
const tokens = useTokensWithBalances(true);
27+
const tokens = useTokensWithBalances({
28+
forceShowTokensWithoutBalances: true,
29+
});
2830
const history = useHistory();
2931

3032
const [addressInput, setAddressInput] = useState<string>('');

0 commit comments

Comments
 (0)