From de0809840961eb1e1706c76269411bc11613ed77 Mon Sep 17 00:00:00 2001 From: Bill He Date: Thu, 24 Aug 2023 20:42:32 -0700 Subject: [PATCH] address comments --- src/constants/localization/app.ts | 1 + src/hooks/useAccounts.tsx | 17 ++++------------- src/hooks/useSquidRouter.tsx | 5 ++--- src/hooks/useSubaccount.tsx | 2 +- src/lib/abacus/index.ts | 13 ++++++++++++- src/lib/wagmi.ts | 4 ---- src/localization/en/app.json | 1 + .../AccountManagementForms/DepositForm.tsx | 3 +-- .../WithdrawForm/WithdrawButtonAndReceipt.tsx | 2 +- 9 files changed, 23 insertions(+), 25 deletions(-) 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: , }); }