diff --git a/src/constants/localization/app.ts b/src/constants/localization/app.ts
index f7c2e6d..55263c8 100644
--- a/src/constants/localization/app.ts
+++ b/src/constants/localization/app.ts
@@ -474,6 +474,7 @@ export const APP_STRING_KEYS = {
LEAVING_WEBSITE: 'LEGAL.LEAVING_WEBSITE',
// Deposit Modal
+ BRIDGE_FEE: 'DEPOSIT_MODAL.BRIDGE_FEE',
ENABLE_FOR_THIS_DEPOSIT: 'DEPOSIT_MODAL.ENABLE_FOR_THIS_DEPOSIT',
ENABLE_SYMBOL_ON_DYDX: 'DEPOSIT_MODAL.ENABLE_SYMBOL_ON_DYDX',
ENABLE_SYMBOL: 'DEPOSIT_MODAL.ENABLE_SYMBOL',
diff --git a/src/hooks/useAccounts.tsx b/src/hooks/useAccounts.tsx
index 8601f05..ba7f9dd 100644
--- a/src/hooks/useAccounts.tsx
+++ b/src/hooks/useAccounts.tsx
@@ -1,10 +1,9 @@
import { useCallback, useContext, createContext, useEffect, useState, useMemo } from 'react';
-import { useSelector, useDispatch, shallowEqual } from 'react-redux';
+import { useDispatch } from 'react-redux';
import { AES, enc } from 'crypto-js';
import { LocalWallet, USDC_DENOM, type Subaccount } from '@dydxprotocol/v4-client';
-import { SubAccountHistoricalPNLs, TransferType } from '@/constants/abacus';
import { OnboardingGuard, OnboardingState, type EvmDerivedAddresses } from '@/constants/account';
import { LocalStorageKey, LOCAL_STORAGE_VERSIONS } from '@/constants/localStorage';
import { DydxAddress, EthereumAddress, PrivateInformation } from '@/constants/wallets';
@@ -12,10 +11,7 @@ import { DydxAddress, EthereumAddress, PrivateInformation } from '@/constants/wa
import {
setOnboardingState,
setOnboardingGuard,
- setSubaccount,
- setHistoricalPnl,
} from '@/state/account';
-import { getTransferInputs } from '@/state/inputsSelectors';
import abacusStateManager from '@/lib/abacus';
import { log } from '@/lib/telemetry';
@@ -37,7 +33,6 @@ export const useAccounts = () => useContext(AccountsContext)!;
const useAccountsContext = () => {
const dispatch = useDispatch();
- const { type: transferType } = useSelector(getTransferInputs, shallowEqual) || {};
// Wallet connection
const {
@@ -65,7 +60,7 @@ const useAccountsContext = () => {
forgetEvmSignature(previousEvmAddress);
}
- if (evmAddress) abacusStateManager.setEvmAddress(evmAddress);
+ if (evmAddress) abacusStateManager.setTransfersSourceAddress(evmAddress);
setPreviousEvmAddress(evmAddress);
}, [evmAddress]);
@@ -227,12 +222,8 @@ const useAccountsContext = () => {
// abacus
// TODO: useAbacus({ dydxAddress })
useEffect(() => {
- if (dydxAddress) {
- abacusStateManager.setAccount(dydxAddress);
- } else if (transferType?.rawValue !== TransferType.deposit.rawValue) {
- // we don't want to disconnect the account if we switch network during the deposit form
- abacusStateManager.disconnectAccount();
- }
+ if (dydxAddress) abacusStateManager.setAccount(dydxAddress);
+ else abacusStateManager.attemptDisconnectAccount();
}, [dydxAddress]);
// clear subaccounts when no dydxAddress is set
diff --git a/src/hooks/useSquidRouter.tsx b/src/hooks/useSquidRouter.tsx
index d1d7340..9801df7 100644
--- a/src/hooks/useSquidRouter.tsx
+++ b/src/hooks/useSquidRouter.tsx
@@ -1,7 +1,6 @@
-import { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
-import { ethers } from 'ethers';
+import { createContext, useContext, useEffect, useMemo, useState } from 'react';
import { useSelector } from 'react-redux';
-import { Squid, type GetRoute, type RouteResponse, ChainData, ChainType } from '@0xsquid/sdk';
+import { Squid } from '@0xsquid/sdk';
import { USDC_DENOM } from '@dydxprotocol/v4-client';
import { DydxV4Network, isDydxV4Network } from '@/constants/networks';
diff --git a/src/hooks/useSubaccount.tsx b/src/hooks/useSubaccount.tsx
index a16d6f6..a65082c 100644
--- a/src/hooks/useSubaccount.tsx
+++ b/src/hooks/useSubaccount.tsx
@@ -3,7 +3,7 @@ import { useDispatch } from 'react-redux';
import type { Nullable } from '@dydxprotocol/abacus';
import Long from 'long';
import type { IndexedTx } from '@cosmjs/stargate';
-import { EncodeObject, type Coin } from '@cosmjs/proto-signing';
+import type { EncodeObject, Coin } from '@cosmjs/proto-signing';
import { Method } from '@cosmjs/tendermint-rpc';
import {
diff --git a/src/lib/abacus/index.ts b/src/lib/abacus/index.ts
index 190665f..d4ed16f 100644
--- a/src/lib/abacus/index.ts
+++ b/src/lib/abacus/index.ts
@@ -18,6 +18,7 @@ import {
IOImplementations,
UIImplementations,
CoroutineTimer,
+ TransferType,
} from '@/constants/abacus';
import { DEFAULT_MARKETID } from '@/constants/markets';
@@ -26,6 +27,7 @@ import { type DydxNetwork } from '@/constants/networks';
import type { RootStore } from '@/state/_store';
import { getInputTradeOptions } from '@/state/inputsSelectors';
+import { getTransferInputs } from '@/state/inputsSelectors';
import AbacusRest from './rest';
import AbacusWebsocket from './websocket';
@@ -90,6 +92,15 @@ class AbacusStateManager {
disconnectAccount = () => {
this.stateManager.accountAddress = null;
};
+
+ attemptDisconnectAccount = () => {
+ const state = this.store?.getState();
+ const { type: transferType }= (state && getTransferInputs(state)) || {};
+ // we don't want to disconnect the account if we switch network during the deposit form
+ if (transferType?.rawValue !== TransferType.deposit.rawValue) {
+ this.disconnectAccount();
+ }
+ }
// ------ Input Values ------ //
clearTradeInputValues = ({ shouldResetSize }: { shouldResetSize?: boolean } = {}) => {
@@ -147,7 +158,7 @@ class AbacusStateManager {
this.stateManager.accountAddress = walletAddress;
};
- setEvmAddress = (evmAddress: string) => {
+ setTransfersSourceAddress = (evmAddress: string) => {
this.stateManager.sourceAddress = evmAddress;
};
diff --git a/src/lib/wagmi.ts b/src/lib/wagmi.ts
index 1bef169..1340cd0 100644
--- a/src/lib/wagmi.ts
+++ b/src/lib/wagmi.ts
@@ -38,10 +38,6 @@ export const WAGMI_SUPPORTED_CHAINS: Chain[] = [
optimismGoerli,
];
-export const WAGMI_SUPPORTED_CHAIN_MAP = Object.fromEntries(
- WAGMI_SUPPORTED_CHAINS.map((supportedChain) => [supportedChain.id, supportedChain])
-);
-
const { chains, publicClient, webSocketPublicClient } = configureChains(WAGMI_SUPPORTED_CHAINS, [
alchemyProvider({ apiKey: import.meta.env.VITE_ALCHEMY_API_KEY }),
jsonRpcProvider({
diff --git a/src/localization/en/app.json b/src/localization/en/app.json
index 25d5a33..95c49cd 100644
--- a/src/localization/en/app.json
+++ b/src/localization/en/app.json
@@ -479,6 +479,7 @@
"LEAVING_WEBSITE": "Leaving website"
},
"DEPOSIT_MODAL": {
+ "BRIDGE_FEE": "Bridge Fee",
"ENABLE_FOR_THIS_DEPOSIT": "Enable for this deposit",
"ENABLE_SYMBOL_ON_DYDX": "Enable {SYMBOL} on dYdX",
"ENABLE_SYMBOL": "Enable {SYMBOL}",
diff --git a/src/views/forms/AccountManagementForms/DepositForm.tsx b/src/views/forms/AccountManagementForms/DepositForm.tsx
index 44d8ea1..d0ba32f 100644
--- a/src/views/forms/AccountManagementForms/DepositForm.tsx
+++ b/src/views/forms/AccountManagementForms/DepositForm.tsx
@@ -7,13 +7,12 @@ import { ethers } from 'ethers';
import {
TransferInputField,
- TransferInputChainResource,
TransferInputTokenResource,
TransferType,
} from '@/constants/abacus';
import { AlertType } from '@/constants/alerts';
import { ButtonSize } from '@/constants/buttons';
-import { StringGetterFunction, STRING_KEYS } from '@/constants/localization';
+import { STRING_KEYS } from '@/constants/localization';
import { NumberSign } from '@/constants/numbers';
import { useAccounts, useDebounce, useStringGetter } from '@/hooks';
diff --git a/src/views/forms/AccountManagementForms/WithdrawForm/WithdrawButtonAndReceipt.tsx b/src/views/forms/AccountManagementForms/WithdrawForm/WithdrawButtonAndReceipt.tsx
index 678cfb6..8c31e2b 100644
--- a/src/views/forms/AccountManagementForms/WithdrawForm/WithdrawButtonAndReceipt.tsx
+++ b/src/views/forms/AccountManagementForms/WithdrawForm/WithdrawButtonAndReceipt.tsx
@@ -78,7 +78,7 @@ export const WithdrawButtonAndReceipt = ({
if (typeof summary?.bridgeFee === 'number') {
feeSubitems.push({
key: 'bridge-fees',
- label: Bridge Fee,
+ label: {stringGetter({ key: STRING_KEYS.BRIDGE_FEE })},
value: ,
});
}