diff --git a/package.json b/package.json
index 355ff83..ae82166 100644
--- a/package.json
+++ b/package.json
@@ -38,7 +38,7 @@
"@cosmjs/proto-signing": "^0.31.0",
"@cosmjs/stargate": "^0.31.0",
"@cosmjs/tendermint-rpc": "^0.31.0",
- "@dydxprotocol/v4-abacus": "^0.6.4",
+ "@dydxprotocol/v4-abacus": "^0.7.0",
"@dydxprotocol/v4-client-js": "^0.36.1",
"@dydxprotocol/v4-localization": "^0.1.30",
"@ethersproject/providers": "^5.7.2",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 3e01552..541ef18 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -27,8 +27,8 @@ dependencies:
specifier: ^0.31.0
version: 0.31.0
'@dydxprotocol/v4-abacus':
- specifier: ^0.6.4
- version: 0.6.4
+ specifier: ^0.7.0
+ version: 0.7.0
'@dydxprotocol/v4-client-js':
specifier: ^0.36.1
version: 0.36.1
@@ -979,8 +979,8 @@ packages:
resolution: {integrity: sha512-RpfLEtTlyIxeNPGKcokS+p3BZII/Q3bYxryFRglh5H3A3T8q9fsLYm72VYAMEOOIBLEa8o93kFLiBDUWKrwXZA==}
dev: true
- /@dydxprotocol/v4-abacus@0.6.4:
- resolution: {integrity: sha512-eH+/9Q/OnQtwzBwM1BJyXybFPdivGmFQWrxM71MFWGs6uIQGbZX775mpoa8deweSTyQ/QrRLRQ1mP2BPDgBQYg==}
+ /@dydxprotocol/v4-abacus@0.7.0:
+ resolution: {integrity: sha512-XheqfIpOODfQFG860oH0fneVgp9qQKPMDTwrvFXaM/JtKH9ekOUUO6De72EsJ7qOuxWwl1WgoALA8b4tRs0tiw==}
dev: false
/@dydxprotocol/v4-client-js@0.36.1:
diff --git a/src/components/Icon.tsx b/src/components/Icon.tsx
index 935bd3c..5a36f1d 100644
--- a/src/components/Icon.tsx
+++ b/src/components/Icon.tsx
@@ -6,6 +6,8 @@ import {
AddressConnectorIcon,
ArrowIcon,
Bar3Icon,
+ BellIcon,
+ BellStrokeIcon,
BoxCloseIcon,
CalculatorIcon,
CaretIcon,
@@ -71,6 +73,8 @@ export enum IconName {
AddressConnector = 'AddressConnector',
Arrow = 'Arrow',
Bar3 = 'Bar3',
+ Bell = 'Bell',
+ BellStroked = 'BellStroked',
BoxClose = 'BoxClose',
Calculator = 'Calculator',
Caret = 'Caret',
@@ -137,6 +141,8 @@ const icons = {
[IconName.AddressConnector]: AddressConnectorIcon,
[IconName.Arrow]: ArrowIcon,
[IconName.Bar3]: Bar3Icon,
+ [IconName.Bell]: BellIcon,
+ [IconName.BellStroked]: BellStrokeIcon,
[IconName.BoxClose]: BoxCloseIcon,
[IconName.Calculator]: CalculatorIcon,
[IconName.Caret]: CaretIcon,
@@ -213,7 +219,8 @@ export const Icon = styled(
iconComponent: Component = iconName && icons[iconName],
className,
...props
- }: ElementProps & StyleProps) => (Component ? : null)
+ }: ElementProps & StyleProps) =>
+ Component ? : null
)`
width: 1em;
height: 1em;
diff --git a/src/constants/abacus.ts b/src/constants/abacus.ts
index 592cb33..4e761e3 100644
--- a/src/constants/abacus.ts
+++ b/src/constants/abacus.ts
@@ -59,16 +59,6 @@ export const TransactionType = Abacus.exchange.dydx.abacus.protocols.Transaction
const transactionTypes = [...TransactionType.values()] as const;
export type TransactionTypes = (typeof transactionTypes)[number];
-export type NetworkConfig = {
- chainId: string;
- indexerUrl: string;
- indexerSocketUrl: string;
- validatorUrl: string;
- faucetUrl?: string | null;
-};
-
-export type ConnectNetworkEvent = CustomEvent>;
-
// ------ State ------
export type AbacusApiState = Abacus.exchange.dydx.abacus.state.manager.ApiState;
export const AbacusApiStatus = Abacus.exchange.dydx.abacus.state.manager.ApiStatus;
@@ -267,3 +257,20 @@ export const TRADE_TYPES: Record<
[AbacusOrderType.liquidation.name]: null,
[AbacusOrderType.trailingStop.name]: null,
};
+
+// Custom types involving Abacus
+
+export type NetworkConfig = Partial<{
+ indexerUrl: Nullable;
+ websocketUrl: Nullable;
+ validatorUrl: Nullable;
+ chainId: Nullable;
+ faucetUrl: Nullable;
+ USDC_DENOM: Nullable;
+ USDC_DECIMALS: Nullable;
+ USDC_GAS_DENOM: Nullable;
+ CHAINTOKEN_DENOM: Nullable;
+ CHAINTOKEN_DECIMALS: Nullable;
+}>;
+
+export type ConnectNetworkEvent = CustomEvent>;
diff --git a/src/hooks/tradingView/useTradingView.ts b/src/hooks/tradingView/useTradingView.ts
index 5206e2f..8a4e8a1 100644
--- a/src/hooks/tradingView/useTradingView.ts
+++ b/src/hooks/tradingView/useTradingView.ts
@@ -33,7 +33,7 @@ export const useTradingView = ({
const marketIds = useSelector(getMarketIds, shallowEqual);
const selectedLocale = useSelector(getSelectedLocale);
const selectedNetwork = useSelector(getSelectedNetwork);
- const { getCandlesForDatafeed } = useDydxClient();
+ const { getCandlesForDatafeed, isConnected: isClientConnected } = useDydxClient();
const [savedTvChartConfig, setTvChartConfig] = useLocalStorage