@velora-dex/widget 0.2.4 → 0.2.5-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.js +7 -7
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +101 -93
- package/dist/core/index.js.map +1 -1
- package/dist/core/state/configActionsAtom.d.ts.map +1 -1
- package/dist/core/state/configActionsAtom.js +3 -1
- package/dist/core/state/configActionsAtom.js.map +1 -1
- package/dist/core/state/configAtom.d.ts +4 -2
- package/dist/core/state/configAtom.d.ts.map +1 -1
- package/dist/core/state/configAtom.js +7 -3
- package/dist/core/state/configAtom.js.map +1 -1
- package/dist/core/types.d.ts +6 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/hooks/gas/useGasPrices.d.ts.map +1 -1
- package/dist/hooks/gas/useGasPrices.js +2 -2
- package/dist/hooks/gas/useGasPrices.js.map +1 -1
- package/dist/hooks/tokens/prices/queries.d.ts.map +1 -1
- package/dist/hooks/tokens/prices/queries.js +2 -2
- package/dist/hooks/tokens/prices/queries.js.map +1 -1
- package/dist/hooks/tokens/useTokenTaxFee.js +2 -2
- package/dist/hooks/tokens/useTokenTaxFee.js.map +1 -1
- package/dist/hooks/txs/queries/useTxHistory.d.ts.map +1 -1
- package/dist/hooks/txs/queries/useTxHistory.js +2 -2
- package/dist/hooks/txs/queries/useTxHistory.js.map +1 -1
- package/dist/hooks/useSDK.d.ts.map +1 -1
- package/dist/hooks/useSDK.js +11 -11
- package/dist/hooks/useSDK.js.map +1 -1
- package/dist/lib/constants/index.d.ts +0 -2
- package/dist/lib/constants/index.d.ts.map +1 -1
- package/dist/lib/constants/index.js +1 -4
- package/dist/lib/constants/index.js.map +1 -1
- package/dist/lib/constants/urls.d.ts +4 -0
- package/dist/lib/constants/urls.d.ts.map +1 -0
- package/dist/lib/constants/urls.js +30 -0
- package/dist/lib/constants/urls.js.map +1 -0
- package/dist/lib/utils/explorer.d.ts.map +1 -1
- package/dist/lib/utils/explorer.js +3 -3
- package/dist/lib/utils/explorer.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sources":["../../../../src/hooks/tokens/prices/queries.ts"],"sourcesContent":["import { queryClient } from \"@/lib/queryClient\";\nimport {
|
|
1
|
+
{"version":3,"file":"queries.js","sources":["../../../../src/hooks/tokens/prices/queries.ts"],"sourcesContent":["import { queryClient } from \"@/lib/queryClient\";\nimport {\n LONG_STALE_TIME_FOR_REACTIVENESS,\n ONE_MINUTE_MS,\n} from \"@/lib/constants/time\";\n\nimport axios from \"axios\";\nimport { isAddress } from \"viem\";\n\nimport type { UseQueryOptions } from \"@tanstack/react-query\";\nimport type {\n FiatPriceFromApi,\n FiatPriceMap,\n TokenPricesQueryKey,\n} from \"./types\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { getApiURL } from \"@/lib/constants/urls\";\n\nconst keysToSkip: (keyof FiatPriceFromApi)[] = [\n \"source\",\n \"address\",\n \"updatedAt\",\n];\n\nfunction shouldTryOverride(key: string): boolean {\n return !keysToSkip.includes(key as keyof FiatPriceFromApi);\n}\n\nexport async function fetchTokenPricesWithFallback({\n chainId,\n fallbackToCachedPrices,\n signal,\n}: {\n chainId: SupportedChainId;\n fallbackToCachedPrices?: boolean;\n signal?: AbortSignal;\n}) {\n const {\n data: { prices },\n } = await axios.get<{ prices: FiatPriceMap }>(\n `${getApiURL()}/fiat/prices/${chainId}`,\n { signal }\n );\n\n if (!fallbackToCachedPrices) return prices;\n\n // fiat-fetcher gives the prices either from coingecko or chainlink,\n // and in case of chainlink there are some missing values in price object\n\n const lastPrices = queryClient.getQueryData<FiatPriceMap>(\n constructTokenPricesQueryKey(chainId)\n );\n\n if (!lastPrices) return prices;\n\n const combined = Object.entries(prices).reduce<FiatPriceMap>(\n (acc, [address, price]) => {\n // skip if address is not valid\n if (!isAddress(address)) return acc;\n\n const lastPrice = lastPrices[address];\n // no previous price, do nothing\n if (!lastPrice) return acc;\n\n // assume that coinGecko prices have more data\n // and we don't want to change them\n if (price.source === \"coinGecko\") return acc;\n\n // no need to override the price when from the same source\n if (price.source === lastPrice.source) return acc;\n\n // make sure we have all the keys\n // not just the ones that are in the new price object\n const mergedPrice = { ...lastPrice, ...price };\n\n let changed = false;\n\n for (const key of Object.keys(mergedPrice)) {\n if (shouldTryOverride(key)) {\n const val =\n price[key as keyof typeof price] ??\n ((changed = true), lastPrice[key as keyof typeof lastPrice]);\n\n (mergedPrice[\n key as keyof typeof mergedPrice\n ] as FiatPriceFromApi[keyof FiatPriceFromApi]) = val;\n }\n }\n\n // we updated the price\n if (changed) {\n // let's keep updatedAt, source from the last price\n mergedPrice.updatedAt = lastPrice.updatedAt;\n mergedPrice.source = lastPrice.source;\n }\n\n acc[address] = mergedPrice;\n return acc;\n },\n prices\n );\n\n return combined;\n}\n\nexport function constructTokenPricesQueryKey(\n chainId: number\n): TokenPricesQueryKey {\n return [\"token-prices\", chainId];\n}\n\nexport function constructTokenPricesQueryOptions({\n chainId,\n fallbackToCachedPrices,\n enabled,\n}: {\n chainId: SupportedChainId;\n fallbackToCachedPrices?: boolean;\n enabled?: boolean;\n}): UseQueryOptions<FiatPriceMap, Error, FiatPriceMap, TokenPricesQueryKey> {\n {\n return {\n queryKey: constructTokenPricesQueryKey(chainId),\n queryFn: ({ signal }) =>\n fetchTokenPricesWithFallback({\n chainId,\n fallbackToCachedPrices,\n signal,\n }),\n enabled,\n notifyOnChangeProps: [\"data\", \"isLoading\", \"isError\"],\n staleTime: LONG_STALE_TIME_FOR_REACTIVENESS,\n refetchInterval: ONE_MINUTE_MS,\n };\n }\n}\n"],"names":["keysToSkip","shouldTryOverride","key","includes","fetchTokenPricesWithFallback","chainId","fallbackToCachedPrices","signal","data","prices","axios","get","getApiURL","lastPrices","queryClient","getQueryData","constructTokenPricesQueryKey","combined","Object","entries","reduce","acc","address","price","isAddress","lastPrice","source","mergedPrice","changed","keys","val","updatedAt","constructTokenPricesQueryOptions","enabled","queryKey","queryFn","notifyOnChangeProps","staleTime","LONG_STALE_TIME_FOR_REACTIVENESS","refetchInterval","ONE_MINUTE_MS"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { d as distExports } from '../../_virtual/index.js';
|
|
2
|
-
import { API_URL } from '../../lib/constants/index.js';
|
|
3
2
|
import { LONG_STALE_TIME_FOR_REACTIVENESS } from '../../lib/constants/time.js';
|
|
3
|
+
import { getApiURL } from '../../lib/constants/urls.js';
|
|
4
4
|
import { useQuery } from '@tanstack/react-query';
|
|
5
5
|
import axios from 'axios';
|
|
6
6
|
import { assert } from 'ts-essentials';
|
|
@@ -35,7 +35,7 @@ function useTokenTaxFee(t0) {
|
|
|
35
35
|
assert(chainId, "chainId is required");
|
|
36
36
|
const {
|
|
37
37
|
data
|
|
38
|
-
} = await axios.get(`${
|
|
38
|
+
} = await axios.get(`${getApiURL()}/delta/tokens/${chainId}/${tokenAddress}`);
|
|
39
39
|
return data;
|
|
40
40
|
};
|
|
41
41
|
$[5] = chainId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokenTaxFee.js","sources":["../../../src/hooks/tokens/useTokenTaxFee.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"useTokenTaxFee.js","sources":["../../../src/hooks/tokens/useTokenTaxFee.ts"],"sourcesContent":["import { LONG_STALE_TIME_FOR_REACTIVENESS } from \"@/lib/constants/time\";\nimport { getApiURL } from \"@/lib/constants/urls\";\nimport { useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport axios from \"axios\";\nimport { assert } from \"ts-essentials\";\n\ntype UseTokenTaxFeeInput = {\n tokenAddress?: string;\n chainId?: number;\n};\n\ntype TokenTaxFeeResponse = {\n // empty object when not a tax Token\n sellTax?: number; // used as srcTokenDexTransferFee in GET /prices\n buyTax?: number; // used as destTokenDexTransferFee in GET /prices\n // for Delta no support for tax Tokens so far\n};\n\nexport function useTokenTaxFee({\n tokenAddress,\n chainId,\n}: UseTokenTaxFeeInput): UseQueryResult<TokenTaxFeeResponse, Error> {\n return useQuery<\n TokenTaxFeeResponse,\n Error,\n TokenTaxFeeResponse,\n [\"token-tax-fee\", string?, number?]\n >({\n queryKey: [\"token-tax-fee\", tokenAddress?.toLowerCase(), chainId],\n queryFn: async () => {\n assert(tokenAddress, \"tokenAddress is required\");\n assert(chainId, \"chainId is required\");\n\n const { data } = await axios.get<TokenTaxFeeResponse>(\n `${getApiURL()}/delta/tokens/${chainId}/${tokenAddress}`\n );\n return data;\n },\n staleTime: LONG_STALE_TIME_FOR_REACTIVENESS,\n enabled: !!tokenAddress && !!chainId,\n });\n}\n"],"names":["useTokenTaxFee","t0","$","_c","tokenAddress","chainId","t1","toLowerCase","t2","t3","assert","data","axios","get","getApiURL","t4","t5","queryKey","queryFn","staleTime","LONG_STALE_TIME_FOR_REACTIVENESS","enabled","useQuery"],"mappings":";;;;;;;AAkBO,SAAAA,eAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAwB,EAAA,MAAA;AAAA,IAAAC,YAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAJ,EAAAA;AAGT,EAAA,IAAAK,EAAAA;AAAA,EAAA,IAAAJ,CAAAA,QAAAE,YAAAA,EAAA;AAOUE,IAAAA,EAAAA,GAAAF,cAAYG,WAAAA,EAAc;AAACL,IAAAA,CAAAA,MAAAE,YAAAA;AAAAF,IAAAA,CAAAA,MAAAI,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAJ,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAM,EAAAA;AAAA,EAAA,IAAAN,EAAA,CAAA,CAAA,KAAAG,WAAAH,CAAAA,QAAAI,EAAAA,EAAA;AAA7CE,IAAAA,EAAAA,IAAC,eAAA,EAAiBF,EAAAA,EAA6BD,OAAO,CAAA;AAACH,IAAAA,CAAAA,MAAAG,OAAAA;AAAAH,IAAAA,CAAAA,MAAAI,EAAAA;AAAAJ,IAAAA,CAAAA,MAAAM,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAN,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAO,EAAAA;AAAA,EAAA,IAAAP,EAAA,CAAA,CAAA,KAAAG,WAAAH,CAAAA,QAAAE,YAAAA,EAAA;AACxDK,IAAAA,EAAAA,eAAA;AACPC,MAAAA,MAAAA,CAAON,cAAc,0BAA0B,CAAA;AAC/CM,MAAAA,MAAAA,CAAOL,SAAS,qBAAqB,CAAA;AAErC,MAAA,MAAA;AAAA,QAAAM;AAAAA,OAAA,GAAiB,MAAMC,KAAAA,CAAKC,GAAAA,CAC1B,CAAA,EAAGC,SAAAA,EAAW,CAAA,cAAA,EAAiBT,OAAO,CAAA,CAAA,EAAID,YAAY,CAAA,CACxD,CAAA;AAAE,MAAA,OACKO,IAAAA;AAAAA,IAAI,CAAA;AACZT,IAAAA,CAAAA,MAAAG,OAAAA;AAAAH,IAAAA,CAAAA,MAAAE,YAAAA;AAAAF,IAAAA,CAAAA,MAAAO,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAP,EAAA,CAAA,CAAA;AAAA,EAAA;AAEQ,EAAA,MAAAa,EAAAA,GAAA,CAAC,CAACX,YAAAA,IAAF,CAAmB,CAACC,OAAAA;AAAO,EAAA,IAAAW,EAAAA;AAAA,EAAA,IAAAd,CAAAA,CAAA,CAAA,CAAA,KAAAM,EAAAA,IAAAN,CAAAA,QAAAO,EAAAA,IAAAP,CAAAA,CAAA,EAAA,CAAA,KAAAa,EAAAA,EAAA;AAZpCC,IAAAA,EAAAA,GAAA;AAAA,MAAAC,QAAAA,EACUT,EAAAA;AAAAA,MAAuDU,OAAAA,EACxDT,EAAAA;AAAAA,MAQRU,SAAAA,EACUC,gCAAAA;AAAAA,MAAgCC,OAAAA,EAClCN;AAAAA,KACX;AAACb,IAAAA,CAAAA,MAAAM,EAAAA;AAAAN,IAAAA,CAAAA,MAAAO,EAAAA;AAAAP,IAAAA,CAAAA,OAAAa,EAAAA;AAAAb,IAAAA,CAAAA,OAAAc,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAd,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAlBMoB,SAKLN,EAaD,CAAA;AAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTxHistory.d.ts","sourceRoot":"","sources":["../../../../src/hooks/txs/queries/useTxHistory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useTxHistory.d.ts","sourceRoot":"","sources":["../../../../src/hooks/txs/queries/useTxHistory.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAqB,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAMvD,KAAK,YAAY,GAAG;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AA8FF,KAAK,UAAU,GAAG,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AAExD,QAAA,MAAM,8BAA8B,oBAAoB,CAAC;AACzD,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,OAAO,8BAA8B;IAC3C,MAAM,EAAE,UAAU;CACnB,CAAC;AAEF,KAAK,wBAAwB,CAAC,KAAK,GAAG,mBAAmB,EAAE,IAAI,IAAI,CACjE,eAAe,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,CAAC,EAC3E,UAAU,GAAG,SAAS,CACvB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,KAAK,GAAG,mBAAmB,EAAE,EAAE,EAC9D,MAAM,EACN,KAAK,GACN,EAAE;IACD,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,wBAAwB,CAAC,KAAK,CAAC,CAAC;CACzC,GAAG,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAgC/B"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { d as distExports } from '../../../_virtual/index.js';
|
|
2
|
-
import { API_PROXY_URL } from '../../../lib/constants/index.js';
|
|
3
2
|
import { assertProp } from '../../../lib/utils/index.js';
|
|
4
3
|
import { useQueryClient, useQuery } from '@tanstack/react-query';
|
|
5
4
|
import axios from 'axios';
|
|
@@ -8,6 +7,7 @@ import { isHash, isAddress } from 'viem';
|
|
|
8
7
|
import { isSupportedChainId } from '../../../lib/web3/wagmi/utils.js';
|
|
9
8
|
import { getLogger } from '../../../core/logger.js';
|
|
10
9
|
import Big from 'big.js';
|
|
10
|
+
import { getApiProxyURL } from '../../../lib/constants/urls.js';
|
|
11
11
|
|
|
12
12
|
const logger = getLogger("SwapTxHistory");
|
|
13
13
|
function formatSwapTxsData({
|
|
@@ -46,7 +46,7 @@ function formatSwapTxsData({
|
|
|
46
46
|
}
|
|
47
47
|
async function fetchSwapTxs(params, signal) {
|
|
48
48
|
const metaParams = constructMetaParams(params);
|
|
49
|
-
const url = `${
|
|
49
|
+
const url = `${getApiProxyURL()}/swap/txs?parameters=${JSON.stringify(metaParams)}`;
|
|
50
50
|
const {
|
|
51
51
|
data
|
|
52
52
|
} = await axios.get(url, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTxHistory.js","sources":["../../../../src/hooks/txs/queries/useTxHistory.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"useTxHistory.js","sources":["../../../../src/hooks/txs/queries/useTxHistory.ts"],"sourcesContent":["import { assertProp } from \"@/lib/utils\";\nimport {\n useQuery,\n useQueryClient,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport axios from \"axios\";\n\nimport {\n constructMetaParams,\n type MetabaseResponse,\n} from \"@/lib/utils/metabase\";\nimport type { MarkOptional } from \"ts-essentials\";\nimport type { TransactionItemSwap } from \"@/transactions/types\";\nimport { isAddress, isHash, type Address } from \"viem\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\nimport { getLogger } from \"@/core/logger\";\nimport Big from \"big.js\";\nimport { getApiProxyURL } from \"@/lib/constants/urls\";\n\ntype SwapTxParams = {\n account: Address;\n chainId?: number;\n limit?: number;\n offset?: number;\n};\n\ntype SwapTxRow = [\n txhash: string,\n chainId: number,\n srctoken: string,\n srcamount: number,\n srcamountusd: number,\n desttoken: string,\n destamount: number,\n destamountusd: number,\n txorigin: string,\n initiator: string,\n entrytimestamp: string,\n txgasused: number, // can falsely return 0, also this is not gasUsed, this is gasLimit; better rely on gas data from GRP table if available\n txgasprice: number,\n side: string, // \"true\" = BUY, \"false\" = SELL\n];\n\ntype SwapTxsResponse = MetabaseResponse<SwapTxRow>;\n\nconst logger = getLogger(\"SwapTxHistory\");\n\nfunction formatSwapTxsData(\n { data }: SwapTxsResponse,\n { account }: SwapTxParams\n): TransactionItemSwap[] {\n const transactionItems: TransactionItemSwap[] = [];\n\n for (const row of data.rows) {\n const [\n txhash,\n chainId,\n srctoken,\n srcamount,\n srcamountusd,\n desttoken,\n destamount,\n destamountusd,\n ,\n ,\n entrytimestamp,\n txgasused,\n txgasprice,\n ,\n ] = row;\n\n if (\n !isSupportedChainId(chainId) ||\n !isHash(txhash) ||\n !isAddress(srctoken) ||\n !isAddress(desttoken)\n ) {\n logger.warn(\"Invalid swap tx data row, skipping\", row);\n continue;\n }\n\n transactionItems.push({\n account,\n transactionHash: txhash,\n chainId,\n dropped: false,\n timestamp: new Date(entrytimestamp).getTime(),\n action: \"swap\",\n transactionSpecificData: {\n action: \"swap\",\n source: \"metabase\",\n srcTokenAddress: srctoken,\n srcAmount: Big(srcamount).toFixed(),\n srcAmountUSD: Big(srcamountusd).toFixed(),\n destTokenAddress: desttoken,\n destAmount: Big(destamount).toFixed(),\n destAmountUSD: Big(destamountusd).toFixed(),\n gasCost: Big(txgasused).mul(txgasprice).toFixed(),\n },\n });\n }\n\n return transactionItems;\n}\n\nasync function fetchSwapTxs(\n params: SwapTxParams,\n signal?: AbortSignal\n): Promise<TransactionItemSwap[]> {\n const metaParams = constructMetaParams(params);\n\n const url = `${getApiProxyURL()}/swap/txs?parameters=${JSON.stringify(metaParams)}`;\n\n const { data } = await axios.get<SwapTxsResponse>(url, { signal });\n\n return formatSwapTxsData(data, params);\n}\n\ntype SwapParams = MarkOptional<SwapTxParams, \"account\">;\n\nconst SWAP_TX_HISTORY_QUERY_KEY_BASE = \"swap/tx-history\";\ntype SwapTxHistoryQueryKey = [\n base: typeof SWAP_TX_HISTORY_QUERY_KEY_BASE,\n params: SwapParams,\n];\n\ntype SwapTxHistoryQueryParams<TData = TransactionItemSwap[]> = Omit<\n UseQueryOptions<TransactionItemSwap[], Error, TData, SwapTxHistoryQueryKey>,\n \"queryKey\" | \"queryFn\"\n>;\n\nexport function useSwapTxHistory<TData = TransactionItemSwap[]>({\n params,\n query,\n}: {\n params: SwapParams;\n query?: SwapTxHistoryQueryParams<TData>;\n}): UseQueryResult<TData, Error> {\n const queryClient = useQueryClient();\n\n return useQuery<TransactionItemSwap[], Error, TData, SwapTxHistoryQueryKey>({\n queryKey: [SWAP_TX_HISTORY_QUERY_KEY_BASE, params],\n queryFn: ({ signal }) => {\n assertProp(params, \"account\");\n if (params.chainId) {\n // don't bother with picking past data for different limit & offset, it's too hard to get right data slice given different chainIds\n const { chainId, ...queryParamsWithoutChainId } = params;\n const queryKeyWithoutChainId: SwapTxHistoryQueryKey = [\n SWAP_TX_HISTORY_QUERY_KEY_BASE,\n queryParamsWithoutChainId,\n ];\n\n const query = queryClient.getQueryCache().find<TransactionItemSwap[]>({\n queryKey: queryKeyWithoutChainId,\n stale: false, // get only non-stale data\n });\n\n const dataForAllChains = query?.state.data;\n\n if (dataForAllChains) {\n return dataForAllChains.filter((tx) => tx.chainId === chainId);\n }\n }\n\n return fetchSwapTxs(params, signal);\n },\n ...query,\n enabled: !!params.account && (query?.enabled ?? true),\n });\n}\n"],"names":["logger","getLogger","formatSwapTxsData","data","account","transactionItems","row","rows","txhash","chainId","srctoken","srcamount","srcamountusd","desttoken","destamount","destamountusd","entrytimestamp","txgasused","txgasprice","isSupportedChainId","isHash","isAddress","warn","push","transactionHash","dropped","timestamp","Date","getTime","action","transactionSpecificData","source","srcTokenAddress","srcAmount","Big","toFixed","srcAmountUSD","destTokenAddress","destAmount","destAmountUSD","gasCost","mul","fetchSwapTxs","params","signal","metaParams","constructMetaParams","url","getApiProxyURL","JSON","stringify","axios","get","SWAP_TX_HISTORY_QUERY_KEY_BASE","useSwapTxHistory","t0","$","_c","query","queryClient","useQueryClient","t1","t2","t3","assertProp","queryParamsWithoutChainId","queryKeyWithoutChainId","query_0","getQueryCache","find","queryKey","stale","dataForAllChains","state","filter","tx","enabled","t4","queryFn","useQuery"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSDK.d.ts","sourceRoot":"","sources":["../../src/hooks/useSDK.ts"],"names":[],"mappings":"AAGA,OAAO,EAkBL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,gCAAgC,EACrC,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAKlB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAEhC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAsB,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAM9C,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,QAAQ,CAClC,mBAAmB,GAAG,gBAAgB,GAAG,gBAAgB,CAC1D,CAAC;AAEF,KAAK,oBAAoB,CAAC,CAAC,IAAI;IAC7B,GAAG,EAAE,CAAC,CAAC;IACP,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,
|
|
1
|
+
{"version":3,"file":"useSDK.d.ts","sourceRoot":"","sources":["../../src/hooks/useSDK.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks/useSDK.js
CHANGED
|
@@ -2,18 +2,18 @@ import axios from 'axios';
|
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
3
|
import { constructAxiosFetcher, constructPartialSDK, constructGetDeltaOrders, constructGetDeltaPrice, constructBuildDeltaOrder, constructPostDeltaOrder, constructGetBridgeInfo, constructIsTokenSupportedInDelta, constructViemContractCaller, constructCancelDeltaOrder, constructSignDeltaOrder, constructGetRate, constructGetSpender, constructBuildTx, constructFillOrderDirectly, constructPreSignDeltaOrder, constructGetLimitOrders, constructBuildLimitOrder, constructPostLimitOrder, constructAllLimitOrdersHandlers, constructFetchFetcher } from '@velora-dex/sdk';
|
|
4
4
|
import { encodeFunctionData } from 'viem';
|
|
5
|
-
import { API_URL } from '../lib/constants/index.js';
|
|
6
5
|
import { useLogger } from '../core/logger.js';
|
|
6
|
+
import { getApiURL } from '../lib/constants/urls.js';
|
|
7
7
|
|
|
8
8
|
const fetcher = constructAxiosFetcher(axios);
|
|
9
9
|
function useMarketSwapSDK({
|
|
10
10
|
chainId,
|
|
11
|
-
apiURL
|
|
11
|
+
apiURL
|
|
12
12
|
}) {
|
|
13
13
|
"use no memo";
|
|
14
14
|
const sdk = useMemo(() => {
|
|
15
15
|
const SDKconfig = {
|
|
16
|
-
apiURL,
|
|
16
|
+
apiURL: apiURL ?? getApiURL(),
|
|
17
17
|
chainId,
|
|
18
18
|
fetcher
|
|
19
19
|
};
|
|
@@ -28,7 +28,7 @@ function useMarketSwapSDK({
|
|
|
28
28
|
}
|
|
29
29
|
function useLimitOrdersSDK({
|
|
30
30
|
chainId,
|
|
31
|
-
apiURL
|
|
31
|
+
apiURL,
|
|
32
32
|
account,
|
|
33
33
|
client
|
|
34
34
|
}) {
|
|
@@ -37,7 +37,7 @@ function useLimitOrdersSDK({
|
|
|
37
37
|
const sdk = useMemo(() => {
|
|
38
38
|
logger.log("init sdk");
|
|
39
39
|
const SDKconfig = {
|
|
40
|
-
apiURL,
|
|
40
|
+
apiURL: apiURL ?? getApiURL(),
|
|
41
41
|
chainId,
|
|
42
42
|
fetcher
|
|
43
43
|
};
|
|
@@ -82,7 +82,7 @@ const constructCalldataContractCaller = () => {
|
|
|
82
82
|
};
|
|
83
83
|
const useFetchOnlySDK = ({
|
|
84
84
|
chainId,
|
|
85
|
-
apiURL
|
|
85
|
+
apiURL
|
|
86
86
|
}) => {
|
|
87
87
|
"use no memo";
|
|
88
88
|
const sdk = useMemo(() => {
|
|
@@ -98,7 +98,7 @@ const useFetchOnlySDK = ({
|
|
|
98
98
|
});
|
|
99
99
|
};
|
|
100
100
|
return constructPartialSDK({
|
|
101
|
-
apiURL,
|
|
101
|
+
apiURL: apiURL ?? getApiURL(),
|
|
102
102
|
chainId,
|
|
103
103
|
fetcher: fetcher2
|
|
104
104
|
}, constructPostDeltaOrder);
|
|
@@ -112,7 +112,7 @@ const useFetchOnlySDK = ({
|
|
|
112
112
|
};
|
|
113
113
|
const useCalldataSDK = ({
|
|
114
114
|
chainId,
|
|
115
|
-
apiURL
|
|
115
|
+
apiURL,
|
|
116
116
|
client
|
|
117
117
|
}) => {
|
|
118
118
|
"use no memo";
|
|
@@ -122,7 +122,7 @@ const useCalldataSDK = ({
|
|
|
122
122
|
logger.log("init sdk");
|
|
123
123
|
const contractCaller = constructCalldataContractCaller();
|
|
124
124
|
const SDKconfig = {
|
|
125
|
-
apiURL,
|
|
125
|
+
apiURL: apiURL ?? getApiURL(),
|
|
126
126
|
chainId,
|
|
127
127
|
fetcher,
|
|
128
128
|
contractCaller
|
|
@@ -138,7 +138,7 @@ const useCalldataSDK = ({
|
|
|
138
138
|
};
|
|
139
139
|
function useDeltaSDK({
|
|
140
140
|
chainId,
|
|
141
|
-
apiURL
|
|
141
|
+
apiURL,
|
|
142
142
|
account,
|
|
143
143
|
client
|
|
144
144
|
}) {
|
|
@@ -147,7 +147,7 @@ function useDeltaSDK({
|
|
|
147
147
|
const sdk = useMemo(() => {
|
|
148
148
|
logger.log("init sdk");
|
|
149
149
|
const SDKconfig = {
|
|
150
|
-
apiURL,
|
|
150
|
+
apiURL: apiURL ?? getApiURL(),
|
|
151
151
|
chainId,
|
|
152
152
|
fetcher
|
|
153
153
|
};
|
package/dist/hooks/useSDK.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSDK.js","sources":["../../src/hooks/useSDK.ts"],"sourcesContent":["import axios from \"axios\";\nimport { useMemo } from \"react\";\n\nimport {\n constructAxiosFetcher,\n constructFetchFetcher,\n constructPartialSDK,\n constructGetSpender,\n constructBuildTx,\n constructAllLimitOrdersHandlers,\n constructGetRate,\n constructGetDeltaPrice,\n constructGetDeltaOrders,\n constructBuildDeltaOrder,\n constructSignDeltaOrder,\n constructPreSignDeltaOrder,\n constructPostDeltaOrder,\n constructCancelDeltaOrder,\n constructGetBridgeInfo,\n constructIsTokenSupportedInDelta,\n constructViemContractCaller,\n type LimitOrderHandlers,\n type GetRateFunctions,\n type APIVersion,\n type GetDeltaOrdersFunctions,\n type GetDeltaPriceFunctions,\n type PostDeltaOrderFunctions,\n type BuildDeltaOrderFunctions,\n type SignDeltaOrderFunctions,\n type PreSignDeltaOrderFunctions,\n type CancelDeltaOrderFunctions,\n type GetBridgeInfoFunctions,\n type IsTokenSupportedInDeltaFunctions,\n type BuildTxFunctions,\n type GetSpenderFunctions,\n type MinViemClient,\n constructGetLimitOrders,\n constructBuildLimitOrder,\n constructPostLimitOrder,\n constructFillOrderDirectly,\n type GetLimitOrdersFunctions,\n type BuildLimitOrderFunctions,\n type PostLimitOrderFunctions,\n type FillOrderDirectlyFunctions,\n type ContractCallerFunctions,\n} from \"@velora-dex/sdk\";\nimport { encodeFunctionData, type Address, type Hash, type Hex } from \"viem\";\nimport type { Prettify } from \"ts-essentials\";\nimport { API_URL } from \"@/lib/constants\";\nimport { useLogger } from \"@/core/logger\";\n\nconst fetcher = constructAxiosFetcher(axios);\n\ntype SDKCreateParams = {\n chainId: number;\n apiURL?: string;\n account?: Address;\n};\n\nexport type MarketSwapSDK = Prettify<\n GetSpenderFunctions & BuildTxFunctions & GetRateFunctions\n>;\n\ntype ConstructedSDKOutput<T> = {\n sdk: T;\n appVersion: APIVersion;\n chainId: number;\n apiURL: string;\n};\n\nexport function useMarketSwapSDK({\n chainId,\n apiURL = API_URL,\n}: SDKCreateParams): ConstructedSDKOutput<MarketSwapSDK> {\n \"use no memo\";\n\n const sdk = useMemo(() => {\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n };\n\n return constructPartialSDK(\n SDKconfig,\n constructGetRate,\n constructGetSpender,\n constructBuildTx\n );\n }, [apiURL, chainId]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\ntype LimitOrdersSDKCreateParams = SDKCreateParams & {\n client?: MinViemClient;\n};\n\ntype ReadOnlyLimitOrdersSDK = Prettify<\n GetLimitOrdersFunctions & BuildLimitOrderFunctions & PostLimitOrderFunctions\n>;\n\nexport type LimitOrdersSDK = Prettify<LimitOrderHandlers<Hash>>;\n\n// can paraswap.fillOrder from a taker address to simulate happy path\n// @TODO check that we always use correct SDK version\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account?: undefined;\n client?: undefined;\n}): ConstructedSDKOutput<ReadOnlyLimitOrdersSDK>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account: Address;\n client: MinViemClient;\n}): ConstructedSDKOutput<LimitOrdersSDK>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams): ConstructedSDKOutput<\n LimitOrdersSDK | ReadOnlyLimitOrdersSDK\n>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL = API_URL,\n account,\n client,\n}: LimitOrdersSDKCreateParams): ConstructedSDKOutput<\n LimitOrdersSDK | ReadOnlyLimitOrdersSDK\n> {\n \"use no memo\";\n\n const logger = useLogger(\"LimitOrdersSDK\");\n\n const sdk = useMemo(() => {\n logger.log(\"init sdk\");\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n };\n\n if (!client || !account) {\n return constructPartialSDK(\n SDKconfig,\n constructGetLimitOrders,\n constructBuildLimitOrder,\n constructPostLimitOrder\n );\n }\n\n const contractCaller = constructViemContractCaller(client, account);\n\n return constructPartialSDK(\n { ...SDKconfig, contractCaller },\n constructAllLimitOrdersHandlers\n );\n }, [client, account, apiURL, chainId, logger]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n\n// ContractCaller that returns Contract[method](args) calldata instead of sending out a transaction\ntype CalldataContractCaller = ContractCallerFunctions<Hex>;\n\nconst constructCalldataContractCaller = (): CalldataContractCaller => {\n const transactCall: CalldataContractCaller[\"transactCall\"] = async (\n params\n ) => {\n const { abi, contractMethod: functionName, args } = params;\n const calldata = encodeFunctionData<typeof abi, string>({\n abi,\n functionName,\n args,\n });\n return calldata;\n };\n\n // won't be used, but needed for types\n const staticCall = () => {\n throw new Error(\"Not implemented\");\n };\n\n return {\n transactCall,\n staticCall,\n signTypedDataCall: staticCall,\n };\n};\n\n// can be used to POST final data before page is closed\nexport const useFetchOnlySDK = ({\n chainId,\n apiURL = API_URL,\n}: SDKCreateParams): Partial<ConstructedSDKOutput<PostDeltaOrderFunctions>> => {\n \"use no memo\";\n\n const sdk = useMemo(() => {\n if (typeof window === \"undefined\") return;\n const _fetcher = constructFetchFetcher(window.fetch);\n const fetcher: typeof _fetcher = (params) => {\n return _fetcher({\n ...params,\n requestParams: {\n ...params.requestParams,\n keepalive: true,\n },\n });\n };\n // fetch, unlike axios allows for `keepalive` parameter,\n // so we can use it to keep the request alive a bit after the page is closed.\n // the alternative of using navigator.sendBeacon doesn't work with API because it includes credentials always\n // which is incompatible with API CORS settings\n return constructPartialSDK(\n { apiURL, chainId, fetcher },\n constructPostDeltaOrder\n );\n }, [apiURL, chainId]);\n\n return {\n appVersion: sdk?.version,\n chainId: sdk?.chainId,\n apiURL: sdk?.apiURL,\n sdk,\n };\n};\n\nexport const useCalldataSDK = ({\n chainId,\n apiURL = API_URL,\n client,\n}: Omit<LimitOrdersSDKCreateParams, \"account\">): Partial<\n ConstructedSDKOutput<\n FillOrderDirectlyFunctions<Hex> &\n PreSignDeltaOrderFunctions<Hex> &\n BuildDeltaOrderFunctions\n >\n> => {\n \"use no memo\";\n\n const logger = useLogger(\"CalldataSDK\");\n\n const sdk = useMemo(() => {\n if (!client) return;\n logger.log(\"init sdk\");\n\n const contractCaller = constructCalldataContractCaller();\n\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n contractCaller,\n };\n\n return constructPartialSDK(\n SDKconfig,\n constructFillOrderDirectly,\n constructPreSignDeltaOrder,\n constructBuildDeltaOrder\n );\n }, [client, logger, apiURL, chainId]);\n\n return {\n appVersion: sdk?.version,\n chainId: sdk?.chainId,\n apiURL: sdk?.apiURL,\n sdk,\n };\n};\n\ntype ReadOnlyDeltaSDK = Prettify<\n GetDeltaOrdersFunctions &\n GetDeltaPriceFunctions &\n BuildDeltaOrderFunctions &\n PostDeltaOrderFunctions &\n GetBridgeInfoFunctions &\n IsTokenSupportedInDeltaFunctions & { chainId: number }\n>;\n\nexport type DeltaSDK = Prettify<\n ReadOnlyDeltaSDK & SignDeltaOrderFunctions & CancelDeltaOrderFunctions\n>;\n\ntype DeltaSDKCreateParams = SDKCreateParams & {\n client?: MinViemClient;\n};\n\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams & {\n account?: undefined;\n client?: undefined;\n}): ConstructedSDKOutput<ReadOnlyDeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams & {\n account: Address;\n client: MinViemClient;\n}): ConstructedSDKOutput<DeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams): ConstructedSDKOutput<DeltaSDK | ReadOnlyDeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL = API_URL,\n account,\n client,\n}: DeltaSDKCreateParams): ConstructedSDKOutput<DeltaSDK | ReadOnlyDeltaSDK> {\n \"use no memo\";\n // react-compiler fails here and sdk is created anew\n\n const logger = useLogger(\"DeltaSDK\");\n\n const sdk = useMemo(() => {\n logger.log(\"init sdk\");\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n };\n\n if (!client || !account) {\n return constructPartialSDK(\n SDKconfig,\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructIsTokenSupportedInDelta\n );\n }\n\n const contractCaller = constructViemContractCaller(client, account);\n\n return constructPartialSDK(\n { ...SDKconfig, contractCaller },\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructPostDeltaOrder,\n constructCancelDeltaOrder,\n constructGetBridgeInfo,\n constructIsTokenSupportedInDelta,\n constructSignDeltaOrder\n );\n }, [logger, apiURL, chainId, client, account]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n"],"names":["fetcher","constructAxiosFetcher","axios","useMarketSwapSDK","chainId","apiURL","API_URL","sdk","useMemo","SDKconfig","constructPartialSDK","constructGetRate","constructGetSpender","constructBuildTx","appVersion","version","useLimitOrdersSDK","account","client","logger","useLogger","log","constructGetLimitOrders","constructBuildLimitOrder","constructPostLimitOrder","contractCaller","constructViemContractCaller","constructAllLimitOrdersHandlers","constructCalldataContractCaller","transactCall","params","abi","contractMethod","functionName","args","calldata","encodeFunctionData","staticCall","Error","signTypedDataCall","useFetchOnlySDK","window","_fetcher","constructFetchFetcher","fetch","requestParams","keepalive","constructPostDeltaOrder","useCalldataSDK","constructFillOrderDirectly","constructPreSignDeltaOrder","constructBuildDeltaOrder","useDeltaSDK","constructGetDeltaOrders","constructGetDeltaPrice","constructGetBridgeInfo","constructIsTokenSupportedInDelta","constructCancelDeltaOrder","constructSignDeltaOrder"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSDK.js","sources":["../../src/hooks/useSDK.ts"],"sourcesContent":["import axios from \"axios\";\nimport { useMemo } from \"react\";\n\nimport {\n constructAxiosFetcher,\n constructFetchFetcher,\n constructPartialSDK,\n constructGetSpender,\n constructBuildTx,\n constructAllLimitOrdersHandlers,\n constructGetRate,\n constructGetDeltaPrice,\n constructGetDeltaOrders,\n constructBuildDeltaOrder,\n constructSignDeltaOrder,\n constructPreSignDeltaOrder,\n constructPostDeltaOrder,\n constructCancelDeltaOrder,\n constructGetBridgeInfo,\n constructIsTokenSupportedInDelta,\n constructViemContractCaller,\n type LimitOrderHandlers,\n type GetRateFunctions,\n type APIVersion,\n type GetDeltaOrdersFunctions,\n type GetDeltaPriceFunctions,\n type PostDeltaOrderFunctions,\n type BuildDeltaOrderFunctions,\n type SignDeltaOrderFunctions,\n type PreSignDeltaOrderFunctions,\n type CancelDeltaOrderFunctions,\n type GetBridgeInfoFunctions,\n type IsTokenSupportedInDeltaFunctions,\n type BuildTxFunctions,\n type GetSpenderFunctions,\n type MinViemClient,\n constructGetLimitOrders,\n constructBuildLimitOrder,\n constructPostLimitOrder,\n constructFillOrderDirectly,\n type GetLimitOrdersFunctions,\n type BuildLimitOrderFunctions,\n type PostLimitOrderFunctions,\n type FillOrderDirectlyFunctions,\n type ContractCallerFunctions,\n} from \"@velora-dex/sdk\";\nimport { encodeFunctionData, type Address, type Hash, type Hex } from \"viem\";\nimport type { Prettify } from \"ts-essentials\";\nimport { useLogger } from \"@/core/logger\";\nimport { getApiURL } from \"@/lib/constants/urls\";\n\nconst fetcher = constructAxiosFetcher(axios);\n\ntype SDKCreateParams = {\n chainId: number;\n apiURL?: string;\n account?: Address;\n};\n\nexport type MarketSwapSDK = Prettify<\n GetSpenderFunctions & BuildTxFunctions & GetRateFunctions\n>;\n\ntype ConstructedSDKOutput<T> = {\n sdk: T;\n appVersion: APIVersion;\n chainId: number;\n apiURL: string;\n};\n\nexport function useMarketSwapSDK({\n chainId,\n apiURL,\n}: SDKCreateParams): ConstructedSDKOutput<MarketSwapSDK> {\n \"use no memo\";\n\n const sdk = useMemo(() => {\n const SDKconfig = {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n };\n\n return constructPartialSDK(\n SDKconfig,\n constructGetRate,\n constructGetSpender,\n constructBuildTx\n );\n }, [apiURL, chainId]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\ntype LimitOrdersSDKCreateParams = SDKCreateParams & {\n client?: MinViemClient;\n};\n\ntype ReadOnlyLimitOrdersSDK = Prettify<\n GetLimitOrdersFunctions & BuildLimitOrderFunctions & PostLimitOrderFunctions\n>;\n\nexport type LimitOrdersSDK = Prettify<LimitOrderHandlers<Hash>>;\n\n// can paraswap.fillOrder from a taker address to simulate happy path\n// @TODO check that we always use correct SDK version\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account?: undefined;\n client?: undefined;\n}): ConstructedSDKOutput<ReadOnlyLimitOrdersSDK>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account: Address;\n client: MinViemClient;\n}): ConstructedSDKOutput<LimitOrdersSDK>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams): ConstructedSDKOutput<\n LimitOrdersSDK | ReadOnlyLimitOrdersSDK\n>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams): ConstructedSDKOutput<\n LimitOrdersSDK | ReadOnlyLimitOrdersSDK\n> {\n \"use no memo\";\n\n const logger = useLogger(\"LimitOrdersSDK\");\n\n const sdk = useMemo(() => {\n logger.log(\"init sdk\");\n const SDKconfig = {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n };\n\n if (!client || !account) {\n return constructPartialSDK(\n SDKconfig,\n constructGetLimitOrders,\n constructBuildLimitOrder,\n constructPostLimitOrder\n );\n }\n\n const contractCaller = constructViemContractCaller(client, account);\n\n return constructPartialSDK(\n { ...SDKconfig, contractCaller },\n constructAllLimitOrdersHandlers\n );\n }, [client, account, apiURL, chainId, logger]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n\n// ContractCaller that returns Contract[method](args) calldata instead of sending out a transaction\ntype CalldataContractCaller = ContractCallerFunctions<Hex>;\n\nconst constructCalldataContractCaller = (): CalldataContractCaller => {\n const transactCall: CalldataContractCaller[\"transactCall\"] = async (\n params\n ) => {\n const { abi, contractMethod: functionName, args } = params;\n const calldata = encodeFunctionData<typeof abi, string>({\n abi,\n functionName,\n args,\n });\n return calldata;\n };\n\n // won't be used, but needed for types\n const staticCall = () => {\n throw new Error(\"Not implemented\");\n };\n\n return {\n transactCall,\n staticCall,\n signTypedDataCall: staticCall,\n };\n};\n\n// can be used to POST final data before page is closed\nexport const useFetchOnlySDK = ({\n chainId,\n apiURL,\n}: SDKCreateParams): Partial<ConstructedSDKOutput<PostDeltaOrderFunctions>> => {\n \"use no memo\";\n\n const sdk = useMemo(() => {\n if (typeof window === \"undefined\") return;\n const _fetcher = constructFetchFetcher(window.fetch);\n const fetcher: typeof _fetcher = (params) => {\n return _fetcher({\n ...params,\n requestParams: {\n ...params.requestParams,\n keepalive: true,\n },\n });\n };\n // fetch, unlike axios allows for `keepalive` parameter,\n // so we can use it to keep the request alive a bit after the page is closed.\n // the alternative of using navigator.sendBeacon doesn't work with API because it includes credentials always\n // which is incompatible with API CORS settings\n return constructPartialSDK(\n {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n },\n constructPostDeltaOrder\n );\n }, [apiURL, chainId]);\n\n return {\n appVersion: sdk?.version,\n chainId: sdk?.chainId,\n apiURL: sdk?.apiURL,\n sdk,\n };\n};\n\nexport const useCalldataSDK = ({\n chainId,\n apiURL,\n client,\n}: Omit<LimitOrdersSDKCreateParams, \"account\">): Partial<\n ConstructedSDKOutput<\n FillOrderDirectlyFunctions<Hex> &\n PreSignDeltaOrderFunctions<Hex> &\n BuildDeltaOrderFunctions\n >\n> => {\n \"use no memo\";\n\n const logger = useLogger(\"CalldataSDK\");\n\n const sdk = useMemo(() => {\n if (!client) return;\n logger.log(\"init sdk\");\n\n const contractCaller = constructCalldataContractCaller();\n\n const SDKconfig = {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n contractCaller,\n };\n\n return constructPartialSDK(\n SDKconfig,\n constructFillOrderDirectly,\n constructPreSignDeltaOrder,\n constructBuildDeltaOrder\n );\n }, [client, logger, apiURL, chainId]);\n\n return {\n appVersion: sdk?.version,\n chainId: sdk?.chainId,\n apiURL: sdk?.apiURL,\n sdk,\n };\n};\n\ntype ReadOnlyDeltaSDK = Prettify<\n GetDeltaOrdersFunctions &\n GetDeltaPriceFunctions &\n BuildDeltaOrderFunctions &\n PostDeltaOrderFunctions &\n GetBridgeInfoFunctions &\n IsTokenSupportedInDeltaFunctions & { chainId: number }\n>;\n\nexport type DeltaSDK = Prettify<\n ReadOnlyDeltaSDK & SignDeltaOrderFunctions & CancelDeltaOrderFunctions\n>;\n\ntype DeltaSDKCreateParams = SDKCreateParams & {\n client?: MinViemClient;\n};\n\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams & {\n account?: undefined;\n client?: undefined;\n}): ConstructedSDKOutput<ReadOnlyDeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams & {\n account: Address;\n client: MinViemClient;\n}): ConstructedSDKOutput<DeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams): ConstructedSDKOutput<DeltaSDK | ReadOnlyDeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams): ConstructedSDKOutput<DeltaSDK | ReadOnlyDeltaSDK> {\n \"use no memo\";\n // react-compiler fails here and sdk is created anew\n\n const logger = useLogger(\"DeltaSDK\");\n\n const sdk = useMemo(() => {\n logger.log(\"init sdk\");\n const SDKconfig = {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n };\n\n if (!client || !account) {\n return constructPartialSDK(\n SDKconfig,\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructIsTokenSupportedInDelta\n );\n }\n\n const contractCaller = constructViemContractCaller(client, account);\n\n return constructPartialSDK(\n { ...SDKconfig, contractCaller },\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructPostDeltaOrder,\n constructCancelDeltaOrder,\n constructGetBridgeInfo,\n constructIsTokenSupportedInDelta,\n constructSignDeltaOrder\n );\n }, [logger, apiURL, chainId, client, account]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n"],"names":["fetcher","constructAxiosFetcher","axios","useMarketSwapSDK","chainId","apiURL","sdk","useMemo","SDKconfig","getApiURL","constructPartialSDK","constructGetRate","constructGetSpender","constructBuildTx","appVersion","version","useLimitOrdersSDK","account","client","logger","useLogger","log","constructGetLimitOrders","constructBuildLimitOrder","constructPostLimitOrder","contractCaller","constructViemContractCaller","constructAllLimitOrdersHandlers","constructCalldataContractCaller","transactCall","params","abi","contractMethod","functionName","args","calldata","encodeFunctionData","staticCall","Error","signTypedDataCall","useFetchOnlySDK","window","_fetcher","constructFetchFetcher","fetch","requestParams","keepalive","constructPostDeltaOrder","useCalldataSDK","constructFillOrderDirectly","constructPreSignDeltaOrder","constructBuildDeltaOrder","useDeltaSDK","constructGetDeltaOrders","constructGetDeltaPrice","constructGetBridgeInfo","constructIsTokenSupportedInDelta","constructCancelDeltaOrder","constructSignDeltaOrder"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/constants/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/constants/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,EAAE,KAAK,EAAO,CAAC;AACtC,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAM,CAAC;AAErD,eAAO,MAAM,6BAA6B,QAAS,CAAC;AACpD,eAAO,MAAM,+BAA+B,SAAU,CAAC;AAEvD,eAAO,MAAM,uBAAuB,QAAc,CAAC"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
const __vite_import_meta_env__ = {};
|
|
2
|
-
const API_URL = "https://api.paraswap.io";
|
|
3
|
-
const API_PROXY_URL = __vite_import_meta_env__["VITE_API_PROXY_URL"] ?? "https://proxy.paraswap.io";
|
|
4
1
|
const emptyArray = [];
|
|
5
2
|
const emptyObject = {};
|
|
6
3
|
const WRAP_ETH_GAS_LIMIT_INACCURATE = 3e4;
|
|
7
4
|
const FILL_ORDER_GAS_LIMIT_INACCURATE = 2e5;
|
|
8
5
|
const SAFE_CALLS_WAIT_TIMEOUT = 10 * 6e4;
|
|
9
6
|
|
|
10
|
-
export {
|
|
7
|
+
export { FILL_ORDER_GAS_LIMIT_INACCURATE, SAFE_CALLS_WAIT_TIMEOUT, WRAP_ETH_GAS_LIMIT_INACCURATE, emptyArray, emptyObject };
|
|
11
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/lib/constants/index.ts"],"sourcesContent":["export const
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/lib/constants/index.ts"],"sourcesContent":["export const emptyArray: never[] = [];\nexport const emptyObject: Record<string, never> = {};\n\nexport const WRAP_ETH_GAS_LIMIT_INACCURATE = 30_000;\nexport const FILL_ORDER_GAS_LIMIT_INACCURATE = 200_000;\n\nexport const SAFE_CALLS_WAIT_TIMEOUT = 10 * 60_000; // 10 min\n// Safe returns callsId right away on inital tx creation,\n// the default wait is 1 min for at least `pending` status,\n// but Safe doesn't return any status until all signers are done and the actual tx is sent,\n// so the timeout may expire even before the call is sent onchain\n"],"names":["emptyArray","emptyObject","WRAP_ETH_GAS_LIMIT_INACCURATE","FILL_ORDER_GAS_LIMIT_INACCURATE","SAFE_CALLS_WAIT_TIMEOUT"],"mappings":"AAAO,MAAMA,aAAsB;AAC5B,MAAMC,cAAqC;AAE3C,MAAMC,6BAAAA,GAAgC;AACtC,MAAMC,+BAAAA,GAAkC;AAExC,MAAMC,0BAA0B,EAAA,GAAK;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"urls.d.ts","sourceRoot":"","sources":["../../../src/lib/constants/urls.ts"],"names":[],"mappings":"AAOA,wBAAgB,SAAS,IAAI,MAAM,CAQlC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAQvC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAOvC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jotaiStore } from '../../core/inputs/state/store.js';
|
|
2
|
+
import { devURLsAtom } from '../../core/state/configAtom.js';
|
|
3
|
+
|
|
4
|
+
const PROD_API_URL = "https://api.paraswap.io";
|
|
5
|
+
const PROD_PROXY_API_URL = "https://proxy.paraswap.io";
|
|
6
|
+
const PROD_EXPLORER_URL = "https://explorer.velora.xyz";
|
|
7
|
+
function getApiURL() {
|
|
8
|
+
const {
|
|
9
|
+
apiURL
|
|
10
|
+
} = jotaiStore.get(devURLsAtom);
|
|
11
|
+
if (apiURL) return apiURL;
|
|
12
|
+
return PROD_API_URL;
|
|
13
|
+
}
|
|
14
|
+
function getApiProxyURL() {
|
|
15
|
+
const {
|
|
16
|
+
apiProxyURL
|
|
17
|
+
} = jotaiStore.get(devURLsAtom);
|
|
18
|
+
if (apiProxyURL) return apiProxyURL;
|
|
19
|
+
return PROD_PROXY_API_URL;
|
|
20
|
+
}
|
|
21
|
+
function getExplorerURL() {
|
|
22
|
+
const {
|
|
23
|
+
explorerURL
|
|
24
|
+
} = jotaiStore.get(devURLsAtom);
|
|
25
|
+
if (explorerURL) return explorerURL;
|
|
26
|
+
return PROD_EXPLORER_URL;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export { getApiProxyURL, getApiURL, getExplorerURL };
|
|
30
|
+
//# sourceMappingURL=urls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"urls.js","sources":["../../../src/lib/constants/urls.ts"],"sourcesContent":["import { jotaiStore } from \"@/core/inputs/state/store\";\nimport { devURLsAtom } from \"@/core/state/configAtom\";\n\nconst PROD_API_URL = \"https://api.paraswap.io\";\nconst PROD_PROXY_API_URL = \"https://proxy.paraswap.io\";\nconst PROD_EXPLORER_URL = \"https://explorer.velora.xyz\";\n\nexport function getApiURL(): string {\n const fromEnv = import.meta.env.VITE_API_URL;\n if (fromEnv) return fromEnv;\n\n const { apiURL } = jotaiStore.get(devURLsAtom);\n if (apiURL) return apiURL;\n\n return PROD_API_URL;\n}\n\nexport function getApiProxyURL(): string {\n const fromEnv = import.meta.env.VITE_API_PROXY_URL;\n if (fromEnv) return fromEnv;\n\n const { apiProxyURL } = jotaiStore.get(devURLsAtom);\n if (apiProxyURL) return apiProxyURL;\n\n return PROD_PROXY_API_URL;\n}\n\nexport function getExplorerURL(): string {\n const fromEnv = import.meta.env.VITE_EXPLORER_URL;\n if (fromEnv) return fromEnv;\n\n const { explorerURL } = jotaiStore.get(devURLsAtom);\n if (explorerURL) return explorerURL;\n return PROD_EXPLORER_URL;\n}\n"],"names":["PROD_API_URL","PROD_PROXY_API_URL","PROD_EXPLORER_URL","getApiURL","apiURL","jotaiStore","get","devURLsAtom","getApiProxyURL","apiProxyURL","getExplorerURL","explorerURL"],"mappings":";;;AAGA,MAAMA,YAAAA,GAAe,yBAAA;AACrB,MAAMC,kBAAAA,GAAqB,2BAAA;AAC3B,MAAMC,iBAAAA,GAAoB,6BAAA;AAEnB,SAASC,SAAAA,GAAoB;AAIlC,EAAA,MAAM;AAAA,IAAEC;AAAAA,GAAO,GAAIC,UAAAA,CAAWC,GAAAA,CAAIC,WAAW,CAAA;AAC7C,EAAA,IAAIH,QAAQ,OAAOA,MAAAA;AAEnB,EAAA,OAAOJ,YAAAA;AACT;AAEO,SAASQ,cAAAA,GAAyB;AAIvC,EAAA,MAAM;AAAA,IAAEC;AAAAA,GAAY,GAAIJ,UAAAA,CAAWC,GAAAA,CAAIC,WAAW,CAAA;AAClD,EAAA,IAAIE,aAAa,OAAOA,WAAAA;AAExB,EAAA,OAAOR,kBAAAA;AACT;AAEO,SAASS,cAAAA,GAAyB;AAIvC,EAAA,MAAM;AAAA,IAAEC;AAAAA,GAAY,GAAIN,UAAAA,CAAWC,GAAAA,CAAIC,WAAW,CAAA;AAClD,EAAA,IAAII,aAAa,OAAOA,WAAAA;AACxB,EAAA,OAAOT,iBAAAA;AACT;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explorer.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/explorer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"explorer.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/explorer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,eAAO,MAAM,oBAAoB,GAC/B,UAAU,MAAM,EAChB,SAAS,MAAM,KACd,MAEF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,UAAU,MAAM,EAChB,SAAS,MAAM,KACd,MAEF,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,EAAE,SAAS,MAAM,KAAG,MAEnE,CAAC;AAEF,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,wBAAgB,gCAAgC,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,CAE7E;AAED,KAAK,iCAAiC,GAAG;IACvC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,uBAG1C,iCAAiC,KAAG,MAAM,GAAG,SAK/C,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,uBAGxC,iCAAiC,KAAG,MAAM,GAAG,SAK/C,CAAC;AAEF,KAAK,4BAA4B,GAAG;IAClC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,sBAGrC,4BAA4B,KAAG,MAAM,GAAG,SAK1C,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { chainConfigMap } from '../web3/wagmi/constants.js';
|
|
2
|
+
import { getExplorerURL } from '../constants/urls.js';
|
|
2
3
|
|
|
3
4
|
const constructAddressLink = (explorer, address) => {
|
|
4
5
|
return `${explorer}/address/${address}`;
|
|
@@ -9,12 +10,11 @@ const constructTokenLink = (explorer, address) => {
|
|
|
9
10
|
const constructTxLink = (explorer, address) => {
|
|
10
11
|
return `${explorer}/tx/${address}`;
|
|
11
12
|
};
|
|
12
|
-
const VELORA_EXPLORER_URL = "https://explorer.velora.xyz";
|
|
13
13
|
function constructExplorerOrderDetailsLink(orderId) {
|
|
14
|
-
return `${
|
|
14
|
+
return `${getExplorerURL()}/order/${orderId}`;
|
|
15
15
|
}
|
|
16
16
|
function constructExplorerUserDetailsLink(userAddress) {
|
|
17
|
-
return `${
|
|
17
|
+
return `${getExplorerURL()}/address/${userAddress}`;
|
|
18
18
|
}
|
|
19
19
|
const constructAddressLinkForChain = ({
|
|
20
20
|
chainId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explorer.js","sources":["../../../src/lib/utils/explorer.ts"],"sourcesContent":["import type { SupportedChainId } from \"../web3/wagmi/types\";\nimport { chainConfigMap } from \"../web3/wagmi/constants\";\nimport type { Address } from \"viem\";\n\nexport const constructAddressLink = (\n explorer: string,\n address: string\n): string => {\n return `${explorer}/address/${address}`;\n};\n\nexport const constructTokenLink = (\n explorer: string,\n address: string\n): string => {\n return `${explorer}/token/${address}`;\n};\n\nexport const constructTxLink = (explorer: string, address: string): string => {\n return `${explorer}/tx/${address}`;\n};\n\
|
|
1
|
+
{"version":3,"file":"explorer.js","sources":["../../../src/lib/utils/explorer.ts"],"sourcesContent":["import type { SupportedChainId } from \"../web3/wagmi/types\";\nimport { chainConfigMap } from \"../web3/wagmi/constants\";\nimport type { Address } from \"viem\";\nimport { getExplorerURL } from \"../constants/urls\";\n\nexport const constructAddressLink = (\n explorer: string,\n address: string\n): string => {\n return `${explorer}/address/${address}`;\n};\n\nexport const constructTokenLink = (\n explorer: string,\n address: string\n): string => {\n return `${explorer}/token/${address}`;\n};\n\nexport const constructTxLink = (explorer: string, address: string): string => {\n return `${explorer}/tx/${address}`;\n};\n\nexport function constructExplorerOrderDetailsLink(orderId: string): string {\n return `${getExplorerURL()}/order/${orderId}`;\n}\n\nexport function constructExplorerUserDetailsLink(userAddress: Address): string {\n return `${getExplorerURL()}/address/${userAddress}`;\n}\n\ntype ConstructAddressLinkForChainInput = {\n chainId: SupportedChainId;\n address: string;\n};\n\nexport const constructAddressLinkForChain = ({\n chainId,\n address,\n}: ConstructAddressLinkForChainInput): string | undefined => {\n const explorer = chainConfigMap[chainId].blockExplorers?.default.url;\n if (!explorer) return;\n\n return constructAddressLink(explorer, address);\n};\n\nexport const constructTokenLinkForChain = ({\n chainId,\n address,\n}: ConstructAddressLinkForChainInput): string | undefined => {\n const explorer = chainConfigMap[chainId].blockExplorers?.default.url;\n if (!explorer) return;\n\n return constructTokenLink(explorer, address);\n};\n\ntype ConstructTxLinkForChainInput = {\n chainId: SupportedChainId;\n txHash: string;\n};\n\nexport const constructTxLinkForChain = ({\n chainId,\n txHash,\n}: ConstructTxLinkForChainInput): string | undefined => {\n const explorer = chainConfigMap[chainId].blockExplorers?.default.url;\n if (!explorer) return;\n\n return constructTxLink(explorer, txHash);\n};\n"],"names":["constructAddressLink","explorer","address","constructTokenLink","constructTxLink","constructExplorerOrderDetailsLink","orderId","getExplorerURL","constructExplorerUserDetailsLink","userAddress","constructAddressLinkForChain","chainId","chainConfigMap","blockExplorers","default","url","constructTokenLinkForChain","constructTxLinkForChain","txHash"],"mappings":";;;AAKO,MAAMA,oBAAAA,GAAuBA,CAClCC,QAAAA,EACAC,OAAAA,KACW;AACX,EAAA,OAAO,CAAA,EAAGD,QAAQ,CAAA,SAAA,EAAYC,OAAO,CAAA,CAAA;AACvC;AAEO,MAAMC,kBAAAA,GAAqBA,CAChCF,QAAAA,EACAC,OAAAA,KACW;AACX,EAAA,OAAO,CAAA,EAAGD,QAAQ,CAAA,OAAA,EAAUC,OAAO,CAAA,CAAA;AACrC;AAEO,MAAME,eAAAA,GAAkBA,CAACH,QAAAA,EAAkBC,OAAAA,KAA4B;AAC5E,EAAA,OAAO,CAAA,EAAGD,QAAQ,CAAA,IAAA,EAAOC,OAAO,CAAA,CAAA;AAClC;AAEO,SAASG,kCAAkCC,OAAAA,EAAyB;AACzE,EAAA,OAAO,CAAA,EAAGC,cAAAA,EAAgB,CAAA,OAAA,EAAUD,OAAO,CAAA,CAAA;AAC7C;AAEO,SAASE,iCAAiCC,WAAAA,EAA8B;AAC7E,EAAA,OAAO,CAAA,EAAGF,cAAAA,EAAgB,CAAA,SAAA,EAAYE,WAAW,CAAA,CAAA;AACnD;AAOO,MAAMC,+BAA+BA,CAAC;AAAA,EAC3CC,OAAAA;AAAAA,EACAT;AACiC,CAAA,KAA0B;AAC3D,EAAA,MAAMD,QAAAA,GAAWW,cAAAA,CAAeD,OAAO,CAAA,CAAEE,gBAAgBC,OAAAA,CAAQC,GAAAA;AACjE,EAAA,IAAI,CAACd,QAAAA,EAAU;AAEf,EAAA,OAAOD,oBAAAA,CAAqBC,UAAUC,OAAO,CAAA;AAC/C;AAEO,MAAMc,6BAA6BA,CAAC;AAAA,EACzCL,OAAAA;AAAAA,EACAT;AACiC,CAAA,KAA0B;AAC3D,EAAA,MAAMD,QAAAA,GAAWW,cAAAA,CAAeD,OAAO,CAAA,CAAEE,gBAAgBC,OAAAA,CAAQC,GAAAA;AACjE,EAAA,IAAI,CAACd,QAAAA,EAAU;AAEf,EAAA,OAAOE,kBAAAA,CAAmBF,UAAUC,OAAO,CAAA;AAC7C;AAOO,MAAMe,0BAA0BA,CAAC;AAAA,EACtCN,OAAAA;AAAAA,EACAO;AAC4B,CAAA,KAA0B;AACtD,EAAA,MAAMjB,QAAAA,GAAWW,cAAAA,CAAeD,OAAO,CAAA,CAAEE,gBAAgBC,OAAAA,CAAQC,GAAAA;AACjE,EAAA,IAAI,CAACd,QAAAA,EAAU;AAEf,EAAA,OAAOG,eAAAA,CAAgBH,UAAUiB,MAAM,CAAA;AACzC;;;;"}
|