From 191e492647479621a71dfaf36797b266ca5902e7 Mon Sep 17 00:00:00 2001 From: Aleka Cheung Date: Thu, 15 Feb 2024 10:38:39 -0500 Subject: [PATCH] util function for getting mintscan link --- src/hooks/useSubaccount.tsx | 2 +- src/lib/abacus/dydxChainTransactions.ts | 19 +++++++------------ src/lib/hashfromTx.ts | 3 --- src/lib/network.ts | 6 +++++- src/lib/txUtils.ts | 7 +++++++ 5 files changed, 20 insertions(+), 17 deletions(-) delete mode 100644 src/lib/hashfromTx.ts create mode 100644 src/lib/txUtils.ts diff --git a/src/hooks/useSubaccount.tsx b/src/hooks/useSubaccount.tsx index e5900bc..c975f76 100644 --- a/src/hooks/useSubaccount.tsx +++ b/src/hooks/useSubaccount.tsx @@ -28,7 +28,7 @@ import { setSubaccount, setHistoricalPnl, removeUncommittedOrderClientId } from import { getBalances } from '@/state/accountSelectors'; import abacusStateManager from '@/lib/abacus'; -import { hashFromTx } from '@/lib/hashfromTx'; +import { hashFromTx } from '@/lib/txUtils'; import { log } from '@/lib/telemetry'; import { useAccounts } from './useAccounts'; diff --git a/src/lib/abacus/dydxChainTransactions.ts b/src/lib/abacus/dydxChainTransactions.ts index f5f85c1..5338efa 100644 --- a/src/lib/abacus/dydxChainTransactions.ts +++ b/src/lib/abacus/dydxChainTransactions.ts @@ -34,13 +34,7 @@ import { import { DEFAULT_TRANSACTION_MEMO } from '@/constants/analytics'; import { DialogTypes } from '@/constants/dialogs'; import { UNCOMMITTED_ORDER_TIMEOUT_MS } from '@/constants/trade'; -import { - ENVIRONMENT_CONFIG_MAP, - DydxNetwork, - isTestnet, - LINKS_CONFIG_MAP, - DydxChainId, -} from '@/constants/networks'; +import { DydxNetwork, isTestnet } from '@/constants/networks'; import { RootStore } from '@/state/_store'; import { addUncommittedOrderClientId, removeUncommittedOrderClientId } from '@/state/account'; @@ -49,7 +43,8 @@ import { openDialog } from '@/state/dialogs'; import { StatefulOrderError } from '../errors'; import { bytesToBigInt } from '../numbers'; import { log } from '../telemetry'; -import { hashFromTx } from '../hashfromTx'; +import { hashFromTx, getMintscanTxLink } from '../txUtils'; +import { getDydxChainIdFromNetwork } from '../network'; class DydxChainTransactions implements AbacusDYDXChainTransactionsProtocol { private compositeClient: CompositeClient | undefined; @@ -244,10 +239,10 @@ class DydxChainTransactions implements AbacusDYDXChainTransactionsProtocol { if (isTestnet) { console.log( - `${LINKS_CONFIG_MAP[ - ENVIRONMENT_CONFIG_MAP[this.compositeClient.network.getString() as DydxNetwork] - .dydxChainId as DydxChainId - ]?.mintscan?.replace('{tx_hash}', hash.toString())}` + getMintscanTxLink( + getDydxChainIdFromNetwork(this.compositeClient.network.getString() as DydxNetwork), + hash + ) ); } else console.log(`txHash: ${hash}`); diff --git a/src/lib/hashfromTx.ts b/src/lib/hashfromTx.ts deleted file mode 100644 index 98696e6..0000000 --- a/src/lib/hashfromTx.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const hashFromTx = ( - txHash: string | Uint8Array -): string => `0x${Buffer.from(txHash).toString('hex')}`; diff --git a/src/lib/network.ts b/src/lib/network.ts index 56131de..d6b5418 100644 --- a/src/lib/network.ts +++ b/src/lib/network.ts @@ -1,4 +1,8 @@ -import { type DydxNetwork, ENVIRONMENT_CONFIG_MAP } from '@/constants/networks'; +import { type DydxNetwork, ENVIRONMENT_CONFIG_MAP, type DydxChainId } from '@/constants/networks'; export const validateAgainstAvailableEnvironments = (value: DydxNetwork) => Object.keys(ENVIRONMENT_CONFIG_MAP).includes(value); + +export const getDydxChainIdFromNetwork = (network: DydxNetwork) => { + return ENVIRONMENT_CONFIG_MAP[network].dydxChainId as DydxChainId; +}; diff --git a/src/lib/txUtils.ts b/src/lib/txUtils.ts new file mode 100644 index 0000000..81413fb --- /dev/null +++ b/src/lib/txUtils.ts @@ -0,0 +1,7 @@ +import { DydxChainId, LINKS_CONFIG_MAP } from '@/constants/networks'; + +export const hashFromTx = (txHash: string | Uint8Array): string => + `0x${Buffer.from(txHash).toString('hex')}`; + +export const getMintscanTxLink = (dydxChainId: DydxChainId, txHash: string): string => + `${LINKS_CONFIG_MAP[dydxChainId]?.mintscan?.replace('{tx_hash}', txHash.toString())}`;