@velora-dex/widget 0.10.0 → 0.10.2-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/widget/NetworkIcon/NetworkIconSquare.js +23 -23
- package/dist/components/widget/ReceiverAddress/state/subscriptions.js +1 -1
- package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
- package/dist/core/Updaters.d.ts.map +1 -1
- package/dist/core/Updaters.js +11 -11
- package/dist/core/Updaters.js.map +1 -1
- package/dist/core/across/isCrosschainPossible.js +4 -4
- package/dist/core/inputs/state/selectedTokenActionsAtom.js +32 -32
- package/dist/core/inputs/state/setTokenByAddressAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.js +69 -67
- package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
- package/dist/core/limit/state/selectedTokenActionsAtom.js +29 -29
- package/dist/core/limit/state/selectedTokenAtom.js +5 -5
- package/dist/core/state/configAtom.js +2 -2
- package/dist/core/state/configAtom.js.map +1 -1
- package/dist/core/state/tokenListsAtom.d.ts +2 -0
- package/dist/core/state/tokenListsAtom.d.ts.map +1 -0
- package/dist/core/state/tokenListsAtom.js +9 -0
- package/dist/core/state/tokenListsAtom.js.map +1 -0
- package/dist/core/twap/state/selectedTokenActionsAtom.js +29 -29
- package/dist/events/getters/limit.js +1 -1
- package/dist/events/getters/limit.js.map +1 -1
- package/dist/events/getters/otc.js +1 -1
- package/dist/events/getters/otc.js.map +1 -1
- package/dist/events/getters/swap.js +1 -1
- package/dist/events/getters/swap.js.map +1 -1
- package/dist/events/getters/twap.js +1 -1
- package/dist/events/getters/twap.js.map +1 -1
- package/dist/events/getters/widgetState.js +1 -1
- package/dist/events/getters/widgetState.js.map +1 -1
- package/dist/hooks/batch/useCanBatchTxs.d.ts +0 -1
- package/dist/hooks/batch/useCanBatchTxs.d.ts.map +1 -1
- package/dist/hooks/batch/useCanBatchTxs.js +19 -28
- package/dist/hooks/batch/useCanBatchTxs.js.map +1 -1
- package/dist/hooks/connectors/useIsConnectedSafe.js.map +1 -1
- package/dist/hooks/permit/utils/types.d.ts +1 -1
- package/dist/hooks/permit/utils/types.d.ts.map +1 -1
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.js +4 -4
- package/dist/hooks/useSDK.d.ts +3 -1
- package/dist/hooks/useSDK.d.ts.map +1 -1
- package/dist/hooks/useSDK.js.map +1 -1
- package/dist/lib/constants/urls.d.ts +1 -0
- package/dist/lib/constants/urls.d.ts.map +1 -1
- package/dist/lib/constants/urls.js +1 -1
- package/dist/lib/constants/urls.js.map +1 -1
- package/dist/lib/utils/index.js +15 -23
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/lib/web3/wagmi/config.d.ts +0 -5
- package/dist/lib/web3/wagmi/config.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/config.js.map +1 -1
- package/dist/lib/web3/wagmi/external.js +1 -1
- package/dist/lib/web3/wagmi/external.js.map +1 -1
- package/dist/lib/web3/wagmi/switchChain.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/switchChain.js +1 -1
- package/dist/lib/web3/wagmi/switchChain.js.map +1 -1
- package/dist/tokens/lists/constants.d.ts +0 -8
- package/dist/tokens/lists/constants.d.ts.map +1 -1
- package/dist/tokens/lists/constants.js +3 -10
- package/dist/tokens/lists/constants.js.map +1 -1
- package/dist/tokens/lists/download.d.ts +1 -1
- package/dist/tokens/lists/download.d.ts.map +1 -1
- package/dist/tokens/lists/download.js +5 -13
- package/dist/tokens/lists/download.js.map +1 -1
- package/dist/tokens/lists/state/effects.d.ts.map +1 -1
- package/dist/tokens/lists/state/effects.js +22 -21
- package/dist/tokens/lists/state/effects.js.map +1 -1
- package/dist/tokens/lists/state/tokenListsStateAtom.d.ts +1 -1
- package/dist/tokens/lists/state/tokenListsStateAtom.d.ts.map +1 -1
- package/dist/tokens/lists/state/tokenListsStateAtom.js +17 -21
- package/dist/tokens/lists/state/tokenListsStateAtom.js.map +1 -1
- package/dist/tokens/lists/utils.d.ts +1 -2
- package/dist/tokens/lists/utils.d.ts.map +1 -1
- package/dist/tokens/lists/utils.js +5 -6
- package/dist/tokens/lists/utils.js.map +1 -1
- package/dist/tokens/queries.d.ts.map +1 -1
- package/dist/tokens/queries.js +30 -32
- package/dist/tokens/queries.js.map +1 -1
- package/dist/tokens/stabeCoins/hooks.d.ts +2 -4
- package/dist/tokens/stabeCoins/hooks.d.ts.map +1 -1
- package/dist/tokens/stabeCoins/hooks.js +14 -16
- package/dist/tokens/stabeCoins/hooks.js.map +1 -1
- package/dist/tokens/state/addImportedTokenAtom.d.ts +0 -1
- package/dist/tokens/state/addImportedTokenAtom.d.ts.map +1 -1
- package/dist/tokens/state/addImportedTokenAtom.js.map +1 -1
- package/dist/tokens/state/allTokensByChainAtom.d.ts.map +1 -1
- package/dist/tokens/state/allTokensByChainAtom.js +20 -30
- package/dist/tokens/state/allTokensByChainAtom.js.map +1 -1
- package/dist/tokens/state/apiTokensAtom.d.ts +24 -0
- package/dist/tokens/state/apiTokensAtom.d.ts.map +1 -0
- package/dist/tokens/state/apiTokensAtom.js +53 -0
- package/dist/tokens/state/apiTokensAtom.js.map +1 -0
- package/dist/tokens/state/fromListsAtom.js +1 -1
- package/dist/tokens/state/fromListsAtom.js.map +1 -1
- package/dist/tokens/types.d.ts +0 -1
- package/dist/tokens/types.d.ts.map +1 -1
- package/dist/transactions/queries/ensureCallsStatus.d.ts.map +1 -1
- package/dist/transactions/queries/ensureCallsStatus.js +1 -1
- package/dist/transactions/queries/ensureCallsStatus.js.map +1 -1
- package/dist/transactions/queries/ensureTxReceipt.js +1 -1
- package/dist/transactions/queries/ensureTxReceipt.js.map +1 -1
- package/dist/wagmi-register.d.ts +7 -0
- package/dist/wagmi-register.d.ts.map +1 -0
- package/package.json +2 -2
- package/dist/tokens/lists/lists.js +0 -6
- package/dist/tokens/lists/lists.js.map +0 -1
- package/dist/tokens/lists/lists.json.d.ts +0 -362
- package/dist/tokens/stabeCoins/index.d.ts +0 -2
- package/dist/tokens/stabeCoins/index.d.ts.map +0 -1
- package/dist/tokens/stabeCoins/index.js +0 -6
- package/dist/tokens/stabeCoins/index.js.map +0 -1
- package/dist/tokens/utils/sets.d.ts +0 -4
- package/dist/tokens/utils/sets.d.ts.map +0 -1
- package/dist/tokens/utils/sets.js +0 -16
- package/dist/tokens/utils/sets.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switchChain.js","names":["wagmi","wagmiConfig","SupportedChainId","isConnectorWithSafeIframeProvider","switchChain","chainId","connector","isConnected","
|
|
1
|
+
{"version":3,"file":"switchChain.js","names":["wagmi","wagmiConfig","SupportedChainId","isConnectorWithSafeIframeProvider","switchChain","chainId","connector","isConnected","getConnection","isSafeIframeProvider","setState","prev"],"sources":["../../../../src/lib/web3/wagmi/switchChain.ts"],"sourcesContent":["import * as wagmi from \"@wagmi/core\";\nimport { wagmiConfig } from \"./config\";\nimport type { SupportedChainId } from \"./types\";\nimport { isConnectorWithSafeIframeProvider } from \"@/components/web3/ConnectExternalProvider/utils\";\n\nexport async function switchChain({ chainId }: { chainId: SupportedChainId }) {\n const { connector, isConnected } = wagmi.getConnection(wagmiConfig);\n\n // check if connected to Safe iframe provider (whether through safe connector or as external provider)\n const isSafeIframeProvider =\n connector && isConnectorWithSafeIframeProvider(connector);\n\n // wagmi doesn't autoswitch state chainId with syncConnectedChain=false if connected\n if (isConnected) wagmiConfig.setState((prev) => ({ ...prev, chainId }));\n\n // safe doesn't support programmatic chain switching\n if (!isSafeIframeProvider) return wagmi.switchChain(wagmiConfig, { chainId });\n}\n"],"mappings":";;;;AAKA,eAAsBI,EAAY,EAAEC,cAA0C;CAC5E,IAAM,EAAEC,cAAWC,mBAAgBP,EAAMQ,cAAcP,EAAY,EAG7DQ,IACJH,KAAaH,EAAkCG,EAAU;CAM3D,IAHIC,KAAaN,EAAYS,UAAUC,OAAU;EAAE,GAAGA;EAAMN;EAAS,EAAE,EAGnE,CAACI,GAAsB,OAAOT,EAAMI,YAAYH,GAAa,EAAEI,YAAS,CAAC"}
|
|
@@ -1,10 +1,2 @@
|
|
|
1
|
-
import { TokenListDownloadData } from './types';
|
|
2
1
|
export declare const defaultTokenLists: string[];
|
|
3
|
-
export declare const url2TokenList: Record<string, TokenListDownloadData>;
|
|
4
|
-
export declare const urlChain2TokenList: Record<string, TokenListDownloadData>;
|
|
5
|
-
export declare const chainId2TokenListURLs: Record<string, {
|
|
6
|
-
all: string[];
|
|
7
|
-
enabled: string[];
|
|
8
|
-
}>;
|
|
9
|
-
export declare const FALLBACK_CDN_URL = "https://cdn.velora.xyz/web/token-lists";
|
|
10
2
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/tokens/lists/constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/tokens/lists/constants.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAA0B,CAAC"}
|
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import r from "./lists.js";
|
|
1
|
+
import { API_TOKENS_LIST_URL as e } from "../state/apiTokensAtom.js";
|
|
3
2
|
//#region src/tokens/lists/constants.ts
|
|
4
|
-
var
|
|
5
|
-
let n = t || {
|
|
6
|
-
all: [],
|
|
7
|
-
enabled: []
|
|
8
|
-
};
|
|
9
|
-
return e.chainId === "multi" ? n : (n.all.push(e.url), e.onByDefault && n.enabled.push(e.url), n);
|
|
10
|
-
}), l = "https://cdn.velora.xyz/web/token-lists";
|
|
3
|
+
var t = [e];
|
|
11
4
|
//#endregion
|
|
12
|
-
export {
|
|
5
|
+
export { t as defaultTokenLists };
|
|
13
6
|
|
|
14
7
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["
|
|
1
|
+
{"version":3,"file":"constants.js","names":["API_TOKENS_LIST_URL","defaultTokenLists"],"sources":["../../../src/tokens/lists/constants.ts"],"sourcesContent":["// Default tokens now come from the Velora API (getAllTokens), which the API serves\n// at this endpoint. Exposed publicly via `defaults.tokenLists`.\n\nimport { API_TOKENS_LIST_URL } from \"../state/apiTokensAtom\";\n\n// User-provided token lists (WidgetProps.tokenLists) still download and construct as before.\nexport const defaultTokenLists: string[] = [API_TOKENS_LIST_URL];\n"],"mappings":";;AAMA,IAAaC,IAA8B,CAACD,EAAoB"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { TokenList } from '@uniswap/token-lists';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const downloadTokenListData: (listURL: string, signal?: AbortSignal) => Promise<TokenList>;
|
|
3
3
|
//# sourceMappingURL=download.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../../src/tokens/lists/download.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../../src/tokens/lists/download.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,eAAO,MAAM,qBAAqB,GAChC,SAAS,MAAM,EACf,SAAS,WAAW,KACnB,OAAO,CAAC,SAAS,CAWnB,CAAC"}
|
|
@@ -1,18 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import n from "axios";
|
|
1
|
+
import e from "axios";
|
|
3
2
|
//#region src/tokens/lists/download.ts
|
|
4
|
-
var
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
return e.version.major === null && (e.version.major = 0), e.version.minor === null && (e.version.minor = 0), e.version.patch === null && (e.version.patch = 0), e;
|
|
8
|
-
} catch (a) {
|
|
9
|
-
let { filename: o } = t[r] || {};
|
|
10
|
-
if (!o) throw a;
|
|
11
|
-
let s = `${e}/${o}.json`, { data: c } = await n.get(s, { signal: i });
|
|
12
|
-
return c;
|
|
13
|
-
}
|
|
3
|
+
var t = async (t, n) => {
|
|
4
|
+
let { data: r } = await e.get(t, { signal: n });
|
|
5
|
+
return r.version.major === null && (r.version.major = 0), r.version.minor === null && (r.version.minor = 0), r.version.patch === null && (r.version.patch = 0), r;
|
|
14
6
|
};
|
|
15
7
|
//#endregion
|
|
16
|
-
export {
|
|
8
|
+
export { t as downloadTokenListData };
|
|
17
9
|
|
|
18
10
|
//# sourceMappingURL=download.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.js","names":["axios","TokenList","
|
|
1
|
+
{"version":3,"file":"download.js","names":["axios","TokenList","downloadTokenListData","listURL","signal","AbortSignal","Promise","data","get","version","major","minor","patch"],"sources":["../../../src/tokens/lists/download.ts"],"sourcesContent":["import axios from \"axios\";\nimport type { TokenList } from \"@uniswap/token-lists\";\n\nexport const downloadTokenListData = async (\n listURL: string,\n signal?: AbortSignal\n): Promise<TokenList> => {\n const { data } = await axios.get<TokenList>(listURL, {\n signal,\n });\n // @ts-expect-error malformed tokenList.version\n if (data.version.major === null) data.version.major = 0; // https://tokens.coingecko.com/xdai/all.json has `null`\n // @ts-expect-error malformed tokenList.version\n if (data.version.minor === null) data.version.minor = 0;\n // @ts-expect-error malformed tokenList.version\n if (data.version.patch === null) data.version.patch = 0;\n return data;\n};\n"],"mappings":";;AAGA,IAAaE,IAAwB,OACnCC,GACAC,MACuB;CACvB,IAAM,EAAEG,YAAS,MAAMP,EAAMQ,IAAeL,GAAS,EACnDC,WACD,CAAC;CAOF,OALIG,EAAKE,QAAQC,UAAU,SAAMH,EAAKE,QAAQC,QAAQ,IAElDH,EAAKE,QAAQE,UAAU,SAAMJ,EAAKE,QAAQE,QAAQ,IAElDJ,EAAKE,QAAQG,UAAU,SAAML,EAAKE,QAAQG,QAAQ,IAC/CL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../../../../src/tokens/lists/state/effects.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../../../../src/tokens/lists/state/effects.ts"],"names":[],"mappings":"AAkCA,wBAAgB,kBAAkB,SAEjC;AAYD,eAAO,MAAM,wBAAwB,eAEpC,CAAC"}
|
|
@@ -1,30 +1,31 @@
|
|
|
1
1
|
import { jotaiStore as e, useAtomValue as t } from "../../../core/store.js";
|
|
2
2
|
import { queryClient as n } from "../../../lib/queryClient.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
3
|
+
import { apiTokensQueryAtom as r } from "../../state/apiTokensAtom.js";
|
|
4
|
+
import { constructedTokensByURLAtom as i, tokenListUrlsAtom as a } from "./tokenListsStateAtom.js";
|
|
5
|
+
import { produceSingleQueryOptionMin as o } from "../../queries.js";
|
|
6
|
+
import { addTokenListsAtom as s } from "./tokenListsActionsAtom.js";
|
|
7
|
+
import { atom as c } from "jotai";
|
|
8
|
+
import { atomEffect as l } from "jotai-effect";
|
|
8
9
|
//#region src/tokens/lists/state/effects.ts
|
|
9
|
-
var
|
|
10
|
-
async function
|
|
11
|
-
if (
|
|
12
|
-
let r =
|
|
13
|
-
|
|
10
|
+
var u = /* @__PURE__ */ new Set();
|
|
11
|
+
async function d(t) {
|
|
12
|
+
if (u.has(t)) return;
|
|
13
|
+
let r = o(t), i = await n.ensureQueryData(r);
|
|
14
|
+
u.add(t), i?.available && e.set(s, [i]);
|
|
14
15
|
}
|
|
15
|
-
var
|
|
16
|
-
e(
|
|
16
|
+
var f = l((e) => {
|
|
17
|
+
e(a).forEach(d);
|
|
17
18
|
});
|
|
18
|
-
function
|
|
19
|
-
t(
|
|
19
|
+
function p() {
|
|
20
|
+
t(f);
|
|
20
21
|
}
|
|
21
|
-
var
|
|
22
|
-
let t = e(
|
|
23
|
-
if (t.length === 0) return
|
|
24
|
-
let
|
|
25
|
-
return t.every((e) =>
|
|
26
|
-
}),
|
|
22
|
+
var m = c((e) => {
|
|
23
|
+
let t = e(a), { isSuccess: n } = e(r);
|
|
24
|
+
if (t.length === 0) return n;
|
|
25
|
+
let o = e(i);
|
|
26
|
+
return t.every((e) => o[e] !== void 0);
|
|
27
|
+
}), h = () => t(m);
|
|
27
28
|
//#endregion
|
|
28
|
-
export {
|
|
29
|
+
export { p as useActivateEffects, h as useAllTokensListsFetched };
|
|
29
30
|
|
|
30
31
|
//# sourceMappingURL=effects.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effects.js","names":["jotaiStore","queryClient","produceSingleQueryOptionMin","atomEffect","addTokenListsAtom","constructedTokensByURLAtom","tokenListUrlsAtom","useAtomValue","atom","addedUrlsSet","Set","addTokenList","url","has","queryOptions","tokenList","ensureQueryData","add","available","set","addTokenListEffect","get","forEach","useActivateEffects","allTokensListsFetchedSuccesfully","tokenListUrls","length","constructedTokensByURL","every","undefined","useAllTokensListsFetched"],"sources":["../../../../src/tokens/lists/state/effects.ts"],"sourcesContent":["import { jotaiStore } from \"@/core/store\";\nimport { queryClient } from \"@/lib/queryClient\";\nimport { produceSingleQueryOptionMin } from \"@/tokens/queries\";\nimport { atomEffect } from \"jotai-effect\";\nimport { addTokenListsAtom } from \"./tokenListsActionsAtom\";\nimport {\n constructedTokensByURLAtom,\n tokenListUrlsAtom,\n} from \"./tokenListsStateAtom\";\nimport { useAtomValue } from \"@/core/store\";\nimport { atom } from \"jotai\";\n\nconst addedUrlsSet = new Set<string>();\n\nasync function addTokenList(url: string) {\n // list already in store\n if (addedUrlsSet.has(url)) return;\n\n // fetch token list or get from cache\n const queryOptions = produceSingleQueryOptionMin(url);\n const tokenList = await queryClient.ensureQueryData(queryOptions);\n\n // add url to set\n addedUrlsSet.add(url);\n\n // add to state once per fetched list\n if (tokenList?.available) jotaiStore.set(addTokenListsAtom, [tokenList]);\n}\n\nconst addTokenListEffect = atomEffect((get) => {\n get(tokenListUrlsAtom).forEach(addTokenList);\n});\n\nexport function useActivateEffects() {\n useAtomValue(addTokenListEffect);\n}\n\nconst allTokensListsFetchedSuccesfully = atom<boolean>((get) => {\n const tokenListUrls = get(tokenListUrlsAtom);\n if (tokenListUrls.length === 0) return
|
|
1
|
+
{"version":3,"file":"effects.js","names":["jotaiStore","queryClient","produceSingleQueryOptionMin","atomEffect","addTokenListsAtom","constructedTokensByURLAtom","tokenListUrlsAtom","useAtomValue","atom","apiTokensQueryAtom","addedUrlsSet","Set","addTokenList","url","has","queryOptions","tokenList","ensureQueryData","add","available","set","addTokenListEffect","get","forEach","useActivateEffects","allTokensListsFetchedSuccesfully","tokenListUrls","isSuccess","length","constructedTokensByURL","every","undefined","useAllTokensListsFetched"],"sources":["../../../../src/tokens/lists/state/effects.ts"],"sourcesContent":["import { jotaiStore } from \"@/core/store\";\nimport { queryClient } from \"@/lib/queryClient\";\nimport { produceSingleQueryOptionMin } from \"@/tokens/queries\";\nimport { atomEffect } from \"jotai-effect\";\nimport { addTokenListsAtom } from \"./tokenListsActionsAtom\";\nimport {\n constructedTokensByURLAtom,\n tokenListUrlsAtom,\n} from \"./tokenListsStateAtom\";\nimport { useAtomValue } from \"@/core/store\";\nimport { atom } from \"jotai\";\nimport { apiTokensQueryAtom } from \"@/tokens/state/apiTokensAtom\";\n\nconst addedUrlsSet = new Set<string>();\n\nasync function addTokenList(url: string) {\n // list already in store\n if (addedUrlsSet.has(url)) return;\n\n // fetch token list or get from cache\n const queryOptions = produceSingleQueryOptionMin(url);\n const tokenList = await queryClient.ensureQueryData(queryOptions);\n\n // add url to set\n addedUrlsSet.add(url);\n\n // add to state once per fetched list\n if (tokenList?.available) jotaiStore.set(addTokenListsAtom, [tokenList]);\n}\n\nconst addTokenListEffect = atomEffect((get) => {\n get(tokenListUrlsAtom).forEach(addTokenList);\n});\n\nexport function useActivateEffects() {\n useAtomValue(addTokenListEffect);\n}\n\nconst allTokensListsFetchedSuccesfully = atom<boolean>((get) => {\n const tokenListUrls = get(tokenListUrlsAtom);\n const { isSuccess } = get(apiTokensQueryAtom);\n if (tokenListUrls.length === 0) return isSuccess;\n const constructedTokensByURL = get(constructedTokensByURLAtom);\n return tokenListUrls.every(\n (url) => constructedTokensByURL[url] !== undefined\n );\n});\n\nexport const useAllTokensListsFetched = () => {\n return useAtomValue(allTokensListsFetchedSuccesfully);\n};\n"],"mappings":";;;;;;;;;AAaA,IAAMU,oBAAe,IAAIC,KAAa;AAEtC,eAAeC,EAAaC,GAAa;CAEvC,IAAIH,EAAaI,IAAID,EAAI,EAAE;CAG3B,IAAME,IAAeb,EAA4BW,EAAI,EAC/CG,IAAY,MAAMf,EAAYgB,gBAAgBF,EAAa;CAMjE,AAHAL,EAAaQ,IAAIL,EAAI,EAGjBG,GAAWG,aAAWnB,EAAWoB,IAAIhB,GAAmB,CAACY,EAAU,CAAC;;AAG1E,IAAMK,IAAqBlB,GAAYmB,MAAQ;CAC7CA,EAAIhB,EAAkB,CAACiB,QAAQX,EAAa;EAC5C;AAEF,SAAOY,IAAA;CACLjB,EAAac,EAAmB;;AAGlC,IAAMI,IAAmCjB,GAAec,MAAQ;CAC9D,IAAMI,IAAgBJ,EAAIhB,EAAkB,EACtC,EAAEqB,iBAAcL,EAAIb,EAAmB;CAC7C,IAAIiB,EAAcE,WAAW,GAAG,OAAOD;CACvC,IAAME,IAAyBP,EAAIjB,EAA2B;CAC9D,OAAOqB,EAAcI,OAClBjB,MAAQgB,EAAuBhB,OAASkB,KAAAA,EAC1C;EACD,EAEWC,UACJzB,EAAakB,EAAiC"}
|
|
@@ -4,7 +4,7 @@ export declare const tokenListUrlsAtom: import('jotai').Atom<string[]>;
|
|
|
4
4
|
Enabled and default token list URLs by chain ID,
|
|
5
5
|
taking into account any configured lists in the widget config.
|
|
6
6
|
**/
|
|
7
|
-
export declare const
|
|
7
|
+
export declare const enabledTokenURLSAtom: import('jotai').Atom<{
|
|
8
8
|
1: {
|
|
9
9
|
all: string[];
|
|
10
10
|
enabled: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenListsStateAtom.d.ts","sourceRoot":"","sources":["../../../../src/tokens/lists/state/tokenListsStateAtom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"tokenListsStateAtom.d.ts","sourceRoot":"","sources":["../../../../src/tokens/lists/state/tokenListsStateAtom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAWrD,eAAO,MAAM,iBAAiB,gCAK5B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsB/B,CAAC;AAEH;;IAEI;AACJ,eAAO,MAAM,6BAA6B;;CAAkC,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,0BAA0B,6CASrC,CAAC"}
|
|
@@ -1,34 +1,30 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { emptyArray as e } from "../../../lib/constants/index.js";
|
|
2
|
+
import { isValidUrl as t } from "../../../lib/utils/index.js";
|
|
3
3
|
import { isSupportedChainId as n } from "../../../lib/web3/wagmi/utils.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
4
|
+
import { allEnabledChainsAtom as r } from "../../../core/state/enabledChainsAtom.js";
|
|
5
|
+
import { gatherEmptyTokenUrlsMappingByChainId as i } from "../utils.js";
|
|
6
|
+
import { enabledTokenListsAtom as a } from "../../../core/state/tokenListsAtom.js";
|
|
7
|
+
import { atom as o } from "jotai";
|
|
7
8
|
//#region src/tokens/lists/state/tokenListsStateAtom.ts
|
|
8
|
-
var
|
|
9
|
-
let n = t(
|
|
10
|
-
return
|
|
11
|
-
}),
|
|
12
|
-
let
|
|
13
|
-
return
|
|
14
|
-
}), u = a((r) => {
|
|
15
|
-
let i = r(t), a = r(o);
|
|
16
|
-
if (i.length === 0) return a;
|
|
17
|
-
let s = { ...a };
|
|
18
|
-
return i.forEach((t) => {
|
|
9
|
+
var s = (e) => Array.from(new Set(e)).filter(t), c = o((t) => {
|
|
10
|
+
let n = t(a);
|
|
11
|
+
return n.length === 0 ? e : s(n);
|
|
12
|
+
}), l = o((e) => {
|
|
13
|
+
let o = e(a), s = i(e(r));
|
|
14
|
+
return o.length === 0 || o.forEach((e) => {
|
|
19
15
|
Object.keys(s).forEach((r) => {
|
|
20
16
|
let i = Number(r);
|
|
21
|
-
n(i) && e
|
|
17
|
+
n(i) && t(e) && (s[i].all.includes(e) || s[i].all.push(e), s[i].enabled.includes(e) || s[i].enabled.push(e));
|
|
22
18
|
});
|
|
23
19
|
}), s;
|
|
24
|
-
}),
|
|
25
|
-
let t = e(
|
|
26
|
-
return e(
|
|
20
|
+
}), u = o({}), d = o((e) => {
|
|
21
|
+
let t = e(u);
|
|
22
|
+
return e(c).reduce((e, n) => {
|
|
27
23
|
let r = t[n];
|
|
28
24
|
return r && (e[n] = r), e;
|
|
29
25
|
}, {});
|
|
30
26
|
});
|
|
31
27
|
//#endregion
|
|
32
|
-
export {
|
|
28
|
+
export { u as allConstructedTokensByURLAtom, d as constructedTokensByURLAtom, l as enabledTokenURLSAtom, c as tokenListUrlsAtom };
|
|
33
29
|
|
|
34
30
|
//# sourceMappingURL=tokenListsStateAtom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenListsStateAtom.js","names":["ConstructedListsByURL","atom","
|
|
1
|
+
{"version":3,"file":"tokenListsStateAtom.js","names":["ConstructedListsByURL","atom","isValidUrl","isSupportedChainId","allEnabledChainsAtom","gatherEmptyTokenUrlsMappingByChainId","emptyArray","enabledTokenListsAtom","getUniqueValidUrls","urls","Array","from","Set","filter","tokenListUrlsAtom","get","enabledLists","length","enabledTokenURLSAtom","allEnabledChains","result","forEach","url","Object","keys","_chainId","chainId","Number","all","includes","push","enabled","allConstructedTokensByURLAtom","constructedTokensByURLAtom","constructedLists","tokenListUrls","reduce","acc","tokens"],"sources":["../../../../src/tokens/lists/state/tokenListsStateAtom.ts"],"sourcesContent":["import type { ConstructedListsByURL } from \"./types\";\nimport { atom } from \"jotai\";\nimport { isValidUrl } from \"@/lib/utils\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\nimport { allEnabledChainsAtom } from \"@/core/state/enabledChainsAtom\";\nimport { gatherEmptyTokenUrlsMappingByChainId } from \"../utils\";\nimport { emptyArray } from \"@/lib/constants\";\nimport { enabledTokenListsAtom } from \"@/core/state/tokenListsAtom\";\n\nconst getUniqueValidUrls = (urls: string[]) =>\n Array.from(new Set(urls)).filter(isValidUrl);\nexport const tokenListUrlsAtom = atom<string[]>((get) => {\n const enabledLists = get(enabledTokenListsAtom);\n if (enabledLists.length === 0) return emptyArray;\n\n return getUniqueValidUrls(enabledLists);\n});\n\n/** \n Enabled and default token list URLs by chain ID,\n taking into account any configured lists in the widget config. \n**/\nexport const enabledTokenURLSAtom = atom((get) => {\n const enabledLists = get(enabledTokenListsAtom);\n\n const allEnabledChains = get(allEnabledChainsAtom);\n const result = gatherEmptyTokenUrlsMappingByChainId(allEnabledChains);\n\n if (enabledLists.length === 0) return result;\n\n enabledLists.forEach((url) => {\n Object.keys(result).forEach((_chainId) => {\n const chainId = Number(_chainId);\n if (!isSupportedChainId(chainId)) return; // Object.keys destroys types\n if (!isValidUrl(url)) return; // skip if provided URL is not valid\n\n // put URL from config into both enabled and all lists\n if (!result[chainId].all.includes(url)) result[chainId].all.push(url);\n if (!result[chainId].enabled.includes(url))\n result[chainId].enabled.push(url);\n });\n });\n\n return result;\n});\n\n/**\n All constructed tokens from all fetched lists during the widget lifecycle.\n **/\nexport const allConstructedTokensByURLAtom = atom<ConstructedListsByURL>({});\n\n/**\n Constructed tokens from currently enabled lists only (from config or defaults).\n**/\nexport const constructedTokensByURLAtom = atom<ConstructedListsByURL>((get) => {\n const constructedLists = get(allConstructedTokensByURLAtom);\n const tokenListUrls = get(tokenListUrlsAtom);\n\n return tokenListUrls.reduce<ConstructedListsByURL>((acc, url) => {\n const tokens = constructedLists[url];\n if (tokens) acc[url] = tokens;\n return acc;\n }, {});\n});\n"],"mappings":";;;;;;;;AASA,IAAMQ,KAAsBC,MAC1BC,MAAMC,KAAK,IAAIC,IAAIH,EAAK,CAAC,CAACI,OAAOX,EAAW,EACjCY,IAAoBb,GAAgBc,MAAQ;CACvD,IAAMC,IAAeD,EAAIR,EAAsB;CAG/C,OAFIS,EAAaC,WAAW,IAAUX,IAE/BE,EAAmBQ,EAAa;EACvC,EAMWE,IAAuBjB,GAAMc,MAAQ;CAChD,IAAMC,IAAeD,EAAIR,EAAsB,EAGzCa,IAASf,EADUU,EAAIX,EACuBe,CAAiB;CAiBrE,OAfIH,EAAaC,WAAW,KAE5BD,EAAaK,SAASC,MAAQ;EAC5BC,OAAOC,KAAKJ,EAAO,CAACC,SAASI,MAAa;GACxC,IAAMC,IAAUC,OAAOF,EAAS;GAC3BtB,EAAmBuB,EAAQ,IAC3BxB,EAAWoB,EAAI,KAGfF,EAAOM,GAASE,IAAIC,SAASP,EAAI,IAAEF,EAAOM,GAASE,IAAIE,KAAKR,EAAI,EAChEF,EAAOM,GAASK,QAAQF,SAASP,EAAI,IACxCF,EAAOM,GAASK,QAAQD,KAAKR,EAAI;IACnC;GACF,EAboCF;EAgBtC,EAKWY,IAAgC/B,EAA4B,EAAE,CAAC,EAK/DgC,IAA6BhC,GAA6Bc,MAAQ;CAC7E,IAAMmB,IAAmBnB,EAAIiB,EAA8B;CAG3D,OAFsBjB,EAAID,EAEnBqB,CAAcC,QAA+BC,GAAKf,MAAQ;EAC/D,IAAMgB,IAASJ,EAAiBZ;EAEhC,OADIgB,MAAQD,EAAIf,KAAOgB,IAChBD;IACN,EAAE,CAAC;EACN"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { TokenListUnavailable } from '../types';
|
|
2
|
-
export declare const getTokenListPlaceholderName: (listUrl: string, chainId: number) => string | undefined;
|
|
3
2
|
export declare const constructPlaceholderData: (listURL: string) => TokenListUnavailable;
|
|
4
|
-
export declare const
|
|
3
|
+
export declare const gatherEmptyTokenUrlsMappingByChainId: <ChainID extends number>(chainIds: ChainID[]) => { [K in ChainID]: {
|
|
5
4
|
all: string[];
|
|
6
5
|
enabled: string[];
|
|
7
6
|
}; };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/tokens/lists/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/tokens/lists/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD,eAAO,MAAM,wBAAwB,GACnC,SAAS,MAAM,KACd,oBAMF,CAAC;AAEF,eAAO,MAAM,oCAAoC,GAAI,OAAO,SAAS,MAAM,EACzE,UAAU,OAAO,EAAE,KAClB,GAAG,CAAC,IAAI,OAAO,GAAG;IAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAMxD,CAAC"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { gatherObjectsByProp as e } from "../../lib/utils/index.js";
|
|
2
|
-
import { chainId2TokenListURLs as t, urlChain2TokenList as n } from "./constants.js";
|
|
3
2
|
//#region src/tokens/lists/utils.ts
|
|
4
|
-
var
|
|
3
|
+
var t = (e) => ({
|
|
5
4
|
url: e,
|
|
6
5
|
available: !1,
|
|
7
|
-
name:
|
|
8
|
-
}),
|
|
6
|
+
name: void 0
|
|
7
|
+
}), n = (t) => e(t, (e) => String(e), () => ({
|
|
9
8
|
enabled: [],
|
|
10
9
|
all: []
|
|
11
|
-
});
|
|
10
|
+
}));
|
|
12
11
|
//#endregion
|
|
13
|
-
export {
|
|
12
|
+
export { t as constructPlaceholderData, n as gatherEmptyTokenUrlsMappingByChainId };
|
|
14
13
|
|
|
15
14
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["gatherObjectsByProp","TokenListUnavailable","
|
|
1
|
+
{"version":3,"file":"utils.js","names":["gatherObjectsByProp","TokenListUnavailable","constructPlaceholderData","listURL","url","available","name","undefined","gatherEmptyTokenUrlsMappingByChainId","chainIds","ChainID","all","enabled","chainId","String"],"sources":["../../../src/tokens/lists/utils.ts"],"sourcesContent":["import { gatherObjectsByProp } from \"@/lib/utils\";\nimport type { TokenListUnavailable } from \"../types\";\n\nexport const constructPlaceholderData = (\n listURL: string\n): TokenListUnavailable => {\n return {\n url: listURL,\n available: false,\n name: undefined,\n };\n};\n\nexport const gatherEmptyTokenUrlsMappingByChainId = <ChainID extends number>(\n chainIds: ChainID[]\n): { [K in ChainID]: { all: string[]; enabled: string[] } } => {\n return gatherObjectsByProp(\n chainIds,\n (chainId) => String(chainId),\n () => ({ enabled: [], all: [] })\n );\n};\n"],"mappings":";;AAGA,IAAaE,KACXC,OAEO;CACLC,KAAKD;CACLE,WAAW;CACXC,MAAMC,KAAAA;CACP,GAGUC,KACXC,MAEOT,EACLS,IACCI,MAAYC,OAAOD,EAAQ,SACrB;CAAED,SAAS,EAAE;CAAED,KAAK,EAAA;CAAI,EAChC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/tokens/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/tokens/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAQhD,KAAK,mBAAmB,CAAC,CAAC,SAAS,MAAM,IAAI;IAC3C,iBAAiB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;CACzD,CAAC;AAiBF,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EACpE,QAAQ,EAAE,MAAM,EAAE,EAClB,GAAG,CAAC,EAAE,CAAC,6GAaR;AAED,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EAC1E,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,CAAC,GACN,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CA6BlD;AAGD,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EACvE,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,CAAC,GACN,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAOlD;AAED,eAAO,MAAM,4BAA4B,GAAI,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EAC3E,UAAU,MAAM,EAAE,EAClB,MAAM,CAAC,KACN,mBAAmB,CAAC,CAAC,CAAC,EAkBxB,CAAC;AAEF,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EAC5D,QAAQ,EAAE,MAAM,EAAE,EAClB,GAAG,CAAC,EAAE,CAAC,GACN,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAOvB;AAED,wBAAgB,kBAAkB,IAAI,gBAAgB,EAAE,CAIvD"}
|
package/dist/tokens/queries.js
CHANGED
|
@@ -1,27 +1,26 @@
|
|
|
1
1
|
import { useAtomValue as e } from "../core/store.js";
|
|
2
2
|
import { isTruthy as t } from "../lib/utils/index.js";
|
|
3
3
|
import { QUERY_KEY_FETCH_TOKEN_LISTS as n } from "./constants.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
4
|
+
import { constructPlaceholderData as r } from "./lists/utils.js";
|
|
5
|
+
import { tokenListUrlsAtom as i } from "./lists/state/tokenListsStateAtom.js";
|
|
6
|
+
import { downloadTokenListData as a } from "./lists/download.js";
|
|
7
7
|
import { overrideTokenList as o } from "./overrides.js";
|
|
8
|
-
import {
|
|
9
|
-
import { c } from "react-compiler-runtime";
|
|
8
|
+
import { c as s } from "react-compiler-runtime";
|
|
10
9
|
import "react";
|
|
11
|
-
import { replaceEqualDeep as
|
|
12
|
-
import { versionComparator as
|
|
10
|
+
import { replaceEqualDeep as c, useQueries as l } from "@tanstack/react-query";
|
|
11
|
+
import { versionComparator as u } from "@uniswap/token-lists";
|
|
13
12
|
//#region src/tokens/queries.ts
|
|
14
|
-
function
|
|
15
|
-
return e ? !e.available || !t.available ? e.available !== t.available :
|
|
13
|
+
function d(e, t) {
|
|
14
|
+
return e ? !e.available || !t.available ? e.available !== t.available : u(t.data.version, e.data.version) <= 0 : !1;
|
|
16
15
|
}
|
|
17
|
-
function
|
|
18
|
-
return Array.from(new Set(e)).filter(t).map((e) =>
|
|
16
|
+
function f(e, n) {
|
|
17
|
+
return Array.from(new Set(e)).filter(t).map((e) => m(e, n));
|
|
19
18
|
}
|
|
20
|
-
function
|
|
19
|
+
function p(e, t) {
|
|
21
20
|
return {
|
|
22
21
|
queryKey: [n, e],
|
|
23
22
|
queryFn: async ({ signal: n }) => {
|
|
24
|
-
let r = o(await
|
|
23
|
+
let r = o(await a(e, n), e);
|
|
25
24
|
return {
|
|
26
25
|
url: e,
|
|
27
26
|
name: r.name,
|
|
@@ -32,44 +31,43 @@ function m(e, t) {
|
|
|
32
31
|
},
|
|
33
32
|
staleTime: Infinity,
|
|
34
33
|
gcTime: Infinity,
|
|
35
|
-
structuralSharing: (e, t) =>
|
|
34
|
+
structuralSharing: (e, t) => d(e, t) ? e : c(e, t)
|
|
36
35
|
};
|
|
37
36
|
}
|
|
38
|
-
function
|
|
37
|
+
function m(e, t) {
|
|
39
38
|
return {
|
|
40
|
-
...
|
|
39
|
+
...p(e, t),
|
|
41
40
|
notifyOnChangeProps: ["data"],
|
|
42
|
-
placeholderData:
|
|
41
|
+
placeholderData: r(e),
|
|
43
42
|
refetchOnMount: !1
|
|
44
43
|
};
|
|
45
44
|
}
|
|
46
|
-
var
|
|
47
|
-
let n =
|
|
48
|
-
n[0] !== e || n[1] !== t ? (r =
|
|
45
|
+
var h = (e, t) => {
|
|
46
|
+
let n = s(7), r;
|
|
47
|
+
n[0] !== e || n[1] !== t ? (r = f(e, t), n[0] = e, n[1] = t, n[2] = r) : r = n[2];
|
|
49
48
|
let i;
|
|
50
49
|
n[3] === r ? i = n[4] : (i = { queries: r }, n[3] = r, n[4] = i);
|
|
51
|
-
let a =
|
|
52
|
-
return n[5] === a ? o = n[6] : (o = a.map(
|
|
50
|
+
let a = l(i), o;
|
|
51
|
+
return n[5] === a ? o = n[6] : (o = a.map(y), n[5] = a, n[6] = o), o;
|
|
53
52
|
};
|
|
54
|
-
function
|
|
55
|
-
let n =
|
|
56
|
-
return n[0] === r ? i = n[1] : (i = r.map(
|
|
53
|
+
function g(e, t) {
|
|
54
|
+
let n = s(2), r = h(e, t), i;
|
|
55
|
+
return n[0] === r ? i = n[1] : (i = r.map(_), n[0] = r, n[1] = i), i;
|
|
57
56
|
}
|
|
58
|
-
function
|
|
57
|
+
function _(e) {
|
|
59
58
|
let { dataOrPlaceholder: t } = e;
|
|
60
59
|
return t;
|
|
61
60
|
}
|
|
62
|
-
function
|
|
63
|
-
|
|
64
|
-
return t[0] === n ? i = t[1] : (i = r.concat(n), t[0] = n, t[1] = i), _(i);
|
|
61
|
+
function v() {
|
|
62
|
+
return g(e(i));
|
|
65
63
|
}
|
|
66
|
-
function
|
|
64
|
+
function y(e) {
|
|
67
65
|
return {
|
|
68
|
-
dataOrPlaceholder: e.data ||
|
|
66
|
+
dataOrPlaceholder: e.data || r(e.error?.config?.url || ""),
|
|
69
67
|
result: e
|
|
70
68
|
};
|
|
71
69
|
}
|
|
72
70
|
//#endregion
|
|
73
|
-
export {
|
|
71
|
+
export { p as produceSingleQueryOptionMin, v as useFetchTokenLists };
|
|
74
72
|
|
|
75
73
|
//# sourceMappingURL=queries.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","names":["replaceEqualDeep","useQueries","UseQueryOptions","UseQueryResult","versionComparator","AxiosError","useMemo","
|
|
1
|
+
{"version":3,"file":"queries.js","names":["replaceEqualDeep","useQueries","UseQueryOptions","UseQueryResult","versionComparator","AxiosError","useMemo","downloadTokenListData","TokenListFetched","QUERY_KEY_FETCH_TOKEN_LISTS","constructPlaceholderData","isTruthy","overrideTokenList","useAtomValue","tokenListUrlsAtom","UseFetchListsResult","dataOrPlaceholder","T","result","isDataEqual","currentData","incomingData","available","isOlderOrEqual","data","version","produceQueriesOptions","listURLs","tag","uniqueListURLs","Array","from","Set","filter","map","listURL","produceSingleQueryOption","produceSingleQueryOptionMin","queryKey","queryFn","signal","_data","url","name","isArray","tokens","staleTime","Infinity","gcTime","structuralSharing","oldData","newData","notifyOnChangeProps","placeholderData","refetchOnMount","useFetchListsWithQueryResult","$","_c","t0","t1","queries","queryResults","t2","_temp","useFetchLists","_temp2","useFetchTokenLists","currentlyEnabledLists","error","config"],"sources":["../../src/tokens/queries.ts"],"sourcesContent":["import {\n replaceEqualDeep,\n useQueries,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { versionComparator } from \"@uniswap/token-lists\";\nimport type { AxiosError } from \"axios\";\nimport { /* useRef, useLayoutEffect, */ useMemo } from \"react\";\nimport { downloadTokenListData } from \"./lists/download\";\nimport type { TokenListFetched } from \"./types\";\nimport { QUERY_KEY_FETCH_TOKEN_LISTS } from \"./constants\";\nimport { constructPlaceholderData } from \"./lists/utils\";\nimport { isTruthy } from \"@/lib/utils\";\nimport { overrideTokenList } from \"./overrides\";\nimport { useAtomValue } from \"@/core/store\";\nimport { tokenListUrlsAtom } from \"./lists/state/tokenListsStateAtom\";\n\ntype UseFetchListsResult<T extends string> = {\n dataOrPlaceholder: TokenListFetched<T>;\n result: UseQueryResult<TokenListFetched<T>, AxiosError>;\n};\n\nfunction isDataEqual<T extends string | never = never>(\n currentData: TokenListFetched<T> | undefined,\n incomingData: TokenListFetched<T>\n): currentData is typeof incomingData {\n // there was no oldData --> data not equal\n if (!currentData) return false;\n // data was a placeholder (available = false) and data.available changed --> data not equal\n if (!currentData.available || !incomingData.available)\n return currentData.available !== incomingData.available;\n // incoming list.version <= current list.version --> consider data equal (don't replace with incoming older version)\n const isOlderOrEqual =\n versionComparator(incomingData.data.version, currentData.data.version) <= 0;\n return isOlderOrEqual;\n}\n\nexport function produceQueriesOptions<T extends string | never = never>(\n listURLs: string[],\n tag?: T\n) {\n // de-dupe in case the same list URL is configured more than once\n const uniqueListURLs = Array.from(new Set(listURLs));\n\n return (\n uniqueListURLs\n // to prevent occasional `token_list_download_error:\"\"` event tag\n .filter(isTruthy)\n .map<UseQueryOptions<TokenListFetched<T>, AxiosError>>((listURL) =>\n produceSingleQueryOption<T>(listURL, tag)\n )\n );\n}\n\nexport function produceSingleQueryOptionMin<T extends string | never = never>(\n listURL: string,\n tag?: T\n): UseQueryOptions<TokenListFetched<T>, AxiosError> {\n return {\n queryKey: [QUERY_KEY_FETCH_TOKEN_LISTS, listURL],\n queryFn: async ({ signal }) => {\n const _data = await downloadTokenListData(listURL, signal);\n\n const data = overrideTokenList(_data, listURL);\n\n return {\n url: listURL,\n name: data.name,\n data,\n tag,\n // possibly mitigates https://sentry.io/organizations/paraswap/discover/ui:3fa26b87e3594d1998ff9fb4770a26d9\n available: Array.isArray(data.tokens),\n };\n },\n staleTime: Infinity,\n gcTime: Infinity,\n\n // custom comparison to optimize big token list comparison\n structuralSharing: (oldData, newData) =>\n isDataEqual(\n oldData as TokenListFetched<T> | undefined,\n newData as TokenListFetched<T>\n )\n ? oldData\n : replaceEqualDeep(oldData, newData),\n };\n}\n\n// adds useQuery options\nexport function produceSingleQueryOption<T extends string | never = never>(\n listURL: string,\n tag?: T\n): UseQueryOptions<TokenListFetched<T>, AxiosError> {\n return {\n ...produceSingleQueryOptionMin<T>(listURL, tag),\n notifyOnChangeProps: [\"data\"],\n placeholderData: constructPlaceholderData(listURL), // start with unavailable but still with url\n refetchOnMount: false,\n };\n}\n\nexport const useFetchListsWithQueryResult = <T extends string | never = never>(\n listURLs: string[],\n tag?: T\n): UseFetchListsResult<T>[] => {\n const queryResults = useQueries<\n UseQueryOptions<TokenListFetched<T>, AxiosError>[]\n >({\n queries: produceQueriesOptions(listURLs, tag),\n });\n\n return useMemo<UseFetchListsResult<T>[]>(\n () =>\n queryResults.map((result) => ({\n // provide {url, name} even on error\n dataOrPlaceholder:\n result.data ||\n constructPlaceholderData(result.error?.config?.url || \"\"),\n result,\n })),\n [queryResults]\n );\n};\n\nexport function useFetchLists<T extends string | never = never>(\n listURLs: string[],\n tag?: T\n): TokenListFetched<T>[] {\n const queryResults = useFetchListsWithQueryResult(listURLs, tag);\n\n return useMemo(\n () => queryResults.map(({ dataOrPlaceholder }) => dataOrPlaceholder),\n [queryResults]\n );\n}\n\nexport function useFetchTokenLists(): TokenListFetched[] {\n const currentlyEnabledLists = useAtomValue(tokenListUrlsAtom);\n\n return useFetchLists(currentlyEnabledLists);\n}\n"],"mappings":";;;;;;;;;;;;AAuBA,SAASmB,EACPC,GACAC,GACoC;CASpC,OAPKD,IAED,CAACA,EAAYE,aAAa,CAACD,EAAaC,YACnCF,EAAYE,cAAcD,EAAaC,YAG9ClB,EAAkBiB,EAAaG,KAAKC,SAASL,EAAYI,KAAKC,QAAQ,IAAI,IANnD;;AAU3B,SAAgBC,EACdC,GACAC,GACA;CAIA,OAFuBE,MAAMC,KAAK,IAAIC,IAAIL,EAAS,CAGjDE,CAEGI,OAAOtB,EAAS,CAChBuB,KAAuDC,MACtDC,EAA4BD,GAASP,EACvC,CAAC;;AAIP,SAAgBS,EACdF,GACAP,GACkD;CAClD,OAAO;EACLU,UAAU,CAAC7B,GAA6B0B,EAAQ;EAChDI,SAAS,OAAO,EAAEC,gBAAa;GAG7B,IAAMhB,IAAOZ,EAAkB6B,MAFXlC,EAAsB4B,GAASK,EAAO,EAEpBL,EAAQ;GAE9C,OAAO;IACLO,KAAKP;IACLQ,MAAMnB,EAAKmB;IACXnB;IACAI;IAEAN,WAAWQ,MAAMc,QAAQpB,EAAKqB,OAAM;IACrC;;EAEHC,WAAWC;EACXC,QAAQD;EAGRE,oBAAoBC,GAASC,MAC3BhC,EACE+B,GACAC,EACD,GACGD,IACAlD,EAAiBkD,GAASC,EAAO;EACxC;;AAIH,SAAgBf,EACdD,GACAP,GACkD;CAClD,OAAO;EACL,GAAGS,EAA+BF,GAASP,EAAI;EAC/CwB,qBAAqB,CAAC,OAAO;EAC7BC,iBAAiB3C,EAAyByB,EAAQ;EAClDmB,gBAAgB;EACjB;;AAGH,IAAaC,KAA+B5B,GAAAC,MAAA;CAAA,IAAA4B,IAAAC,EAAA,EAAA,EAAAC;CAAA,AAAAF,EAAA,OAAA7B,KAAA6B,EAAA,OAAA5B,KAO/B8B,IAAAhC,EAAsBC,GAAUC,EAAI,EAAA4B,EAAA,KAAA7B,GAAA6B,EAAA,KAAA5B,GAAA4B,EAAA,KAAAE,KAAAA,IAAAF,EAAA;CAAA,IAAAG;CAAA,AAAAH,EAAA,OAAAE,IAC9CC,IAAAH,EAAA,MAFCG,IAAA,EAAAC,SACSF,GACV,EAAAF,EAAA,KAAAE,GAAAF,EAAA,KAAAG;CAJD,IAAAE,IAAqB5D,EAEnB0D,EAEA,EAACG;CAUI,OAVJN,EAAA,OAAAK,IAUIC,IAAAN,EAAA,MANHM,IAAAD,EAAY3B,IAAK6B,EAMd,EAAAP,EAAA,KAAAK,GAAAL,EAAA,KAAAM,IANHA;;AAWN,SAAOE,EAAArC,GAAAC,GAAA;CAAA,IAAA4B,IAAAC,EAAA,EAAA,EAILI,IAAqBN,EAA6B5B,GAAUC,EAAI,EAAC8B;CAGK,OAHLF,EAAA,OAAAK,IAGKH,IAAAF,EAAA,MAA9DE,IAAAG,EAAY3B,IAAK+B,EAA6C,EAAAT,EAAA,KAAAK,GAAAL,EAAA,KAAAE,IAA9DA;;AAPH,SAAAO,EAAAP,GAAA;CAOqB,IAAA,EAAA1C,yBAAA0C;CAAqB,OAAK1C;;AAKtD,SAAOkD,IAAA;CACyD,OAEvDF,EAFuBnD,EAAaC,EAEtBqD,CAAsB;;AAtCD,SAAAJ,EAAA7C,GAAA;CAAA,OAYR;EAAAF,mBAG1BE,EAAMM,QACNd,EAAyBQ,EAAMkD,OAAcC,QAAK3B,OAAzB,GAAgC;EAAAxB;EAE5D"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function
|
|
3
|
-
export declare function useStablecoinSetsByChain(): ChainTokensSet;
|
|
4
|
-
export declare function useIsAddressStablecoin(addresses: (string | undefined)[], chainId?: number): boolean;
|
|
1
|
+
import { SupportedChainId } from '../../lib/web3/wagmi/types';
|
|
2
|
+
export declare function useIsAddressStablecoin(addresses: (string | undefined)[], chainId: SupportedChainId): boolean;
|
|
5
3
|
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/tokens/stabeCoins/hooks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/tokens/stabeCoins/hooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK/D,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,EACjC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAWT"}
|
|
@@ -1,21 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { c as i } from "react-compiler-runtime";
|
|
5
|
-
import "react";
|
|
1
|
+
import { useAtomValue as e } from "../../core/store.js";
|
|
2
|
+
import { apiTokensByChainAtom as t } from "../state/apiTokensAtom.js";
|
|
3
|
+
import { c as n } from "react-compiler-runtime";
|
|
6
4
|
//#region src/tokens/stabeCoins/hooks.ts
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
let
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return
|
|
5
|
+
var r = "paraswap_community_stablecoin_lists";
|
|
6
|
+
function i(i, a) {
|
|
7
|
+
let o = n(5), s = e(t)[a]?.addressMap;
|
|
8
|
+
if (!s) return !1;
|
|
9
|
+
let c;
|
|
10
|
+
if (o[0] !== s || o[1] !== i) {
|
|
11
|
+
let e;
|
|
12
|
+
o[3] === s ? e = o[4] : (e = (e) => e ? !!s[e.toLowerCase()]?.sources?.includes(r) : !1, o[3] = s, o[4] = e), c = i.every(e), o[0] = s, o[1] = i, o[2] = c;
|
|
13
|
+
} else c = o[2];
|
|
14
|
+
return c;
|
|
17
15
|
}
|
|
18
16
|
//#endregion
|
|
19
|
-
export {
|
|
17
|
+
export { i as useIsAddressStablecoin };
|
|
20
18
|
|
|
21
19
|
//# sourceMappingURL=hooks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","names":["
|
|
1
|
+
{"version":3,"file":"hooks.js","names":["useAtomValue","SupportedChainId","apiTokensByChainAtom","STABLECOIN_SOURCE","useIsAddressStablecoin","addresses","chainId","$","_c","apiTokensByChain","addressMap","t0","t1","address","token","toLowerCase","sources","includes","every"],"sources":["../../../src/tokens/stabeCoins/hooks.ts"],"sourcesContent":["import { useAtomValue } from \"@/core/store\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { apiTokensByChainAtom } from \"@/tokens/state/apiTokensAtom\";\n\nconst STABLECOIN_SOURCE = \"paraswap_community_stablecoin_lists\";\n\nexport function useIsAddressStablecoin(\n addresses: (string | undefined)[],\n chainId: SupportedChainId\n): boolean {\n const apiTokensByChain = useAtomValue(apiTokensByChainAtom);\n\n const addressMap = apiTokensByChain[chainId]?.addressMap;\n if (!addressMap) return false;\n\n return addresses.every((address) => {\n if (!address) return false;\n const token = addressMap[address.toLowerCase()];\n return !!token?.sources?.includes(STABLECOIN_SOURCE);\n });\n}\n"],"mappings":";;;;AAIA,IAAMG,IAAoB;AAE1B,SAAOC,EAAAC,GAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAMLE,IAFyBV,EAAaE,EAEnBO,CAAiBH,IAAoBI;CACxD,IAAI,CAACA,GAAU,OAAS;CAAM,IAAAC;CAAA,IAAAJ,EAAA,OAAAG,KAAAH,EAAA,OAAAF,GAAA;EAAA,IAAAO;EAM5BL,AAN4BA,EAAA,OAAAG,IAM7BE,IAAAL,EAAA,MAJsBK,KAAAC,MAChBA,IAEE,CAAC,CADMH,EAAWG,EAAOE,aAAc,GAChCC,SAAmBC,SAACd,EAAkB,GAF/B,IAGtBI,EAAA,KAAAG,GAAAH,EAAA,KAAAK,IAJMD,IAAAN,EAASa,MAAON,EAIrB,EAAAL,EAAA,KAAAG,GAAAH,EAAA,KAAAF,GAAAE,EAAA,KAAAI;QAAAA,IAAAJ,EAAA;CAAA,OAJKI"}
|
|
@@ -5,7 +5,6 @@ import { Address } from 'viem';
|
|
|
5
5
|
import { SupportedChainId } from '../../lib/web3/wagmi/types';
|
|
6
6
|
import { ImportTokenReason } from '../../events/types/importToken';
|
|
7
7
|
type TokenWithSymbol = MarkRequired<Token, "symbol">;
|
|
8
|
-
export type OnImportAction = (tokenImported: TokenWithSymbol) => void;
|
|
9
8
|
export declare const addImportedTokenAtom: import('jotai').WritableAtom<null, [{
|
|
10
9
|
newToken: TokenWithSymbol;
|
|
11
10
|
afterAction?: ImportTokenDrawerProps["onConfirmAction"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addImportedTokenAtom.d.ts","sourceRoot":"","sources":["../../../src/tokens/state/addImportedTokenAtom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAKpF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,KAAK,eAAe,GAAG,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"addImportedTokenAtom.d.ts","sourceRoot":"","sources":["../../../src/tokens/state/addImportedTokenAtom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAKpF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,KAAK,eAAe,GAAG,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAErD,eAAO,MAAM,oBAAoB;cAUjB,eAAe;kBACX,sBAAsB,CAAC,iBAAiB,CAAC;aAC9C,iBAAiB;;;CAuD/B,CAAC;AAKF,eAAO,MAAM,wBAAwB;aAKR,OAAO;aAAW,gBAAgB;;;CA+B9D,CAAC"}
|