@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":"addImportedTokenAtom.js","names":["atom","ImportedToken","Token","ImportTokenDrawerProps","autoImportedTokensAtom","importedTokensAtom","MarkRequired","fetchUnknownTokenData","constructToken","Address","SupportedChainId","tradeModeAtom","tradeModeToSetTokenAtoms","widgetEventsAtom","ImportTokenReason","TokenWithSymbol","
|
|
1
|
+
{"version":3,"file":"addImportedTokenAtom.js","names":["atom","ImportedToken","Token","ImportTokenDrawerProps","autoImportedTokensAtom","importedTokensAtom","MarkRequired","fetchUnknownTokenData","constructToken","Address","SupportedChainId","tradeModeAtom","tradeModeToSetTokenAtoms","widgetEventsAtom","ImportTokenReason","TokenWithSymbol","addImportedTokenAtom","get","set","newToken","afterAction","reason","chainId","network","currentTokens","tokensForChain","newTokenAddressLower","address","toLowerCase","alreadyExists","some","t","tokenToAdd","pickOnlyTokenProps","imported","symbol","onImportToken","event","name","params","token","decimals","img","tradeMode","tokensToSet","tokenAtomToSet","autoAddImportedTokenAtom","minTokenData","fetchedToken","constructedToken","importedToken","currentAutoImportedTokens","tokenType","mainConnector","connectors","allowance","balance","fromList","fromListURL"],"sources":["../../../src/tokens/state/addImportedTokenAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport type { ImportedToken, Token } from \"./types\";\nimport type { ImportTokenDrawerProps } from \"@/components/widget/ImportToken/types\";\nimport {\n autoImportedTokensAtom,\n importedTokensAtom,\n} from \"./importedTokensAtom\";\nimport type { MarkRequired } from \"ts-essentials\";\nimport { fetchUnknownTokenData } from \"@/hooks/tokens/data/useMultichainTokensData\";\nimport { constructToken } from \"@velora-dex/sdk\";\nimport type { Address } from \"viem\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { tradeModeAtom } from \"@/core/state/tradeModeAtom\";\nimport { tradeModeToSetTokenAtoms } from \"@/core/inputs/state/common\";\nimport { widgetEventsAtom } from \"@/core/state/widgetEventsAtom\";\nimport type { ImportTokenReason } from \"@/events/types/importToken\";\n\ntype TokenWithSymbol = MarkRequired<Token, \"symbol\">;\n\nexport const addImportedTokenAtom = atom(\n null,\n (\n get,\n set,\n {\n newToken,\n afterAction,\n reason = \"manual\",\n }: {\n newToken: TokenWithSymbol;\n afterAction?: ImportTokenDrawerProps[\"onConfirmAction\"];\n reason?: ImportTokenReason;\n }\n ) => {\n const chainId = newToken.network;\n const currentTokens = get(importedTokensAtom);\n const tokensForChain = currentTokens[chainId] ?? [];\n // Avoid duplicates by address\n const newTokenAddressLower = newToken.address.toLowerCase();\n const alreadyExists = tokensForChain.some(\n (t) => t.address.toLowerCase() === newTokenAddressLower\n );\n if (alreadyExists) return;\n\n const tokenToAdd: ImportedToken = {\n // get rid of extra props attached for display purposes (usdBalance, fetchedOnChain)\n ...pickOnlyTokenProps(newToken),\n imported: true,\n symbol: newToken.symbol,\n };\n\n set(importedTokensAtom, {\n ...currentTokens,\n [chainId]: [...tokensForChain, tokenToAdd],\n });\n\n get(widgetEventsAtom).onImportToken?.({\n event: {\n name: \"ImportToken:imported\",\n params: {\n reason,\n token: {\n address: tokenToAdd.address,\n network: tokenToAdd.network,\n symbol: tokenToAdd.symbol,\n decimals: tokenToAdd.decimals,\n img: tokenToAdd.img,\n },\n },\n },\n });\n\n if (!afterAction) return tokenToAdd;\n\n const tradeMode = get(tradeModeAtom);\n const tokensToSet = tradeModeToSetTokenAtoms[tradeMode];\n const tokenAtomToSet =\n tokensToSet[\n afterAction === \"set-token-from\" ? \"tokenFromAtom\" : \"tokenToAtom\"\n ];\n // atom setter inside takes care of disallowed pair choices,\n // like invalid crosschain match\n set(tokenAtomToSet, tokenToAdd);\n\n return tokenToAdd;\n }\n);\n\n// fetches Token data onchain internally,\n// adds it to addImportedTokenAtom.\n// then adds it to autoImportedTokensAtom.\nexport const autoAddImportedTokenAtom = atom(\n [],\n async (\n get,\n set,\n minTokenData: { address: Address; chainId: SupportedChainId }\n ) => {\n const fetchedToken = await fetchUnknownTokenData(minTokenData);\n\n if (fetchedToken) {\n const constructedToken = constructToken(fetchedToken);\n const importedToken = set(addImportedTokenAtom, {\n newToken: {\n ...constructedToken,\n symbol: fetchedToken.symbol,\n network: minTokenData.chainId,\n },\n reason: \"auto\",\n });\n\n if (importedToken) {\n const currentAutoImportedTokens = get(autoImportedTokensAtom);\n const alreadyExists = currentAutoImportedTokens.some(\n (t) =>\n t.address.toLowerCase() === importedToken.address.toLowerCase() &&\n t.network === importedToken.network\n );\n if (alreadyExists) return;\n\n set(autoImportedTokensAtom, [\n ...currentAutoImportedTokens,\n importedToken,\n ]);\n }\n }\n }\n);\n\nfunction pickOnlyTokenProps(token: Token): Token {\n return {\n address: token.address,\n decimals: token.decimals,\n symbol: token.symbol,\n tokenType: token.tokenType,\n mainConnector: token.mainConnector,\n connectors: token.connectors,\n network: token.network,\n img: token.img,\n allowance: token.allowance,\n balance: token.balance,\n imported: token.imported,\n name: token.name,\n fromList: token.fromList,\n fromListURL: token.fromListURL,\n };\n}\n"],"mappings":";;;;;;;;AAmBA,IAAagB,IAAuBhB,EAClC,OAEEiB,GACAC,GACA,EACEC,aACAC,gBACAC,YAAS,eAMR;CACH,IAAMC,IAAUH,EAASI,SACnBC,IAAgBP,EAAIZ,EAAmB,EACvCoB,IAAiBD,EAAcF,MAAY,EAAE,EAE7CI,IAAuBP,EAASQ,QAAQC,aAAa;CAI3D,IAHsBH,EAAeK,MAClCC,MAAMA,EAAEJ,QAAQC,aAAa,KAAKF,EAEjCG,EAAe;CAEnB,IAAMG,IAA4B;EAEhC,GAAGC,EAAmBd,EAAS;EAC/Be,UAAU;EACVC,QAAQhB,EAASgB;EAClB;CAuBD,IArBAjB,EAAIb,GAAoB;EACtB,GAAGmB;GACFF,IAAU,CAAC,GAAGG,GAAgBO,EAAU;EAC1C,CAAC,EAEFf,EAAIJ,EAAiB,CAACuB,gBAAgB,EACpCC,OAAO;EACLC,MAAM;EACNC,QAAQ;GACNlB;GACAmB,OAAO;IACLb,SAASK,EAAWL;IACpBJ,SAASS,EAAWT;IACpBY,QAAQH,EAAWG;IACnBM,UAAUT,EAAWS;IACrBC,KAAKV,EAAWU;IAClB;GACF;EACF,EACD,CAAC,EAEE,CAACtB,GAAa,OAAOY;CAIzB,IAAMa,IADcjC,EADFK,EAAIN,EACuBgC,EAGzCvB,MAAgB,mBAAmB,kBAAkB;CAMzD,OAFAF,EAAI2B,GAAgBb,EAAW,EAExBA;EAEV,EAKYc,IAA2B9C,EACtC,EAAE,EACF,OACEiB,GACAC,GACA6B,MACG;CACH,IAAMC,IAAe,MAAMzC,EAAsBwC,EAAa;CAE9D,IAAIC,GAAc;EAEhB,IAAME,IAAgBhC,EAAIF,GAAsB;GAC9CG,UAAU;IACR,GAHqBX,EAAewC,EAGjCC;IACHd,QAAQa,EAAab;IACrBZ,SAASwB,EAAazB;IACvB;GACDD,QAAQ;GACT,CAAC;EAEF,IAAI6B,GAAe;GACjB,IAAMC,IAA4BlC,EAAIb,EAAuB;GAM7D,IALsB+C,EAA0BrB,MAC7CC,MACCA,EAAEJ,QAAQC,aAAa,KAAKsB,EAAcvB,QAAQC,aAAa,IAC/DG,EAAER,YAAY2B,EAAc3B,QAE5BM,EAAe;GAEnBX,EAAId,GAAwB,CAC1B,GAAG+C,GACHD,EACD,CAAC;;;EAIT;AAED,SAASjB,EAAmBO,GAAqB;CAC/C,OAAO;EACLb,SAASa,EAAMb;EACfc,UAAUD,EAAMC;EAChBN,QAAQK,EAAML;EACdiB,WAAWZ,EAAMY;EACjBC,eAAeb,EAAMa;EACrBC,YAAYd,EAAMc;EAClB/B,SAASiB,EAAMjB;EACfmB,KAAKF,EAAME;EACXa,WAAWf,EAAMe;EACjBC,SAAShB,EAAMgB;EACftB,UAAUM,EAAMN;EAChBI,MAAME,EAAMF;EACZmB,UAAUjB,EAAMiB;EAChBC,aAAalB,EAAMkB;EACpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allTokensByChainAtom.d.ts","sourceRoot":"","sources":["../../../src/tokens/state/allTokensByChainAtom.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"allTokensByChainAtom.d.ts","sourceRoot":"","sources":["../../../src/tokens/state/allTokensByChainAtom.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAG3E,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAS5D,eAAO,MAAM,oBAAoB,2EA6C/B,CAAC"}
|
|
@@ -1,38 +1,28 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { apiTokensByChainAtom as e } from "./apiTokensAtom.js";
|
|
2
|
+
import { enabledTokenListsAtom as t } from "../../core/state/tokenListsAtom.js";
|
|
3
|
+
import { fromListsAtom as n } from "./fromListsAtom.js";
|
|
4
|
+
import { importedTokensAtom as r } from "./importedTokensAtom.js";
|
|
5
|
+
import { atom as i } from "jotai";
|
|
5
6
|
//#region src/tokens/state/allTokensByChainAtom.ts
|
|
6
|
-
var
|
|
7
|
-
let
|
|
7
|
+
var a = i((i) => {
|
|
8
|
+
let a = i(t).length > 0, o = i(n), s = i(e), c = i(r), l = a ? o.listByChainId : s, u = {
|
|
8
9
|
listByChainId: {},
|
|
9
|
-
disabledListByChainId:
|
|
10
|
-
tokensFromAllChains:
|
|
11
|
-
};
|
|
12
|
-
for (let
|
|
13
|
-
let
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
s[t] || (i.push(e), s[t] = e, o.tokensFromAllChains.push(e));
|
|
17
|
-
}
|
|
18
|
-
o.listByChainId[n] = {
|
|
19
|
-
tokens: i,
|
|
20
|
-
addressMap: s
|
|
10
|
+
disabledListByChainId: o.disabledListByChainId,
|
|
11
|
+
tokensFromAllChains: []
|
|
12
|
+
}, d = new Set([...Object.keys(l).map(Number), ...Object.keys(c).map(Number)]);
|
|
13
|
+
for (let e of d) {
|
|
14
|
+
let t = [], n = {}, r = (e) => {
|
|
15
|
+
let r = e.address.toLowerCase();
|
|
16
|
+
n[r] || (n[r] = e, t.push(e));
|
|
21
17
|
};
|
|
18
|
+
l[e]?.tokens.forEach(r), (c[e] || []).forEach(r), u.listByChainId[e] = {
|
|
19
|
+
tokens: t,
|
|
20
|
+
addressMap: n
|
|
21
|
+
}, u.tokensFromAllChains.push(...t);
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
let r = Number(t);
|
|
25
|
-
if (!o.listByChainId[r]) {
|
|
26
|
-
let t = e(n, (e) => e.address.toLowerCase());
|
|
27
|
-
o.listByChainId[r] = {
|
|
28
|
-
tokens: n,
|
|
29
|
-
addressMap: t
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return o;
|
|
23
|
+
return u;
|
|
34
24
|
});
|
|
35
25
|
//#endregion
|
|
36
|
-
export {
|
|
26
|
+
export { a as allTokensByChainAtom };
|
|
37
27
|
|
|
38
28
|
//# sourceMappingURL=allTokensByChainAtom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allTokensByChainAtom.js","names":["atom","fromListsAtom","TokensFromListsState","importedTokensAtom","ImportedToken","TokenFromList","
|
|
1
|
+
{"version":3,"file":"allTokensByChainAtom.js","names":["atom","fromListsAtom","TokensFromListsState","importedTokensAtom","apiTokensByChainAtom","ImportedToken","TokenFromList","enabledTokenListsAtom","allTokensByChainAtom","get","enabledLists","usingUserLists","length","fromListsState","apiByChain","importedByChain","baseByChain","listByChainId","result","disabledListByChainId","tokensFromAllChains","chainIds","Set","Object","keys","map","Number","chainId","tokens","addressMap","address","addIfAbsent","token","addressKey","toLowerCase","push","forEach"],"sources":["../../../src/tokens/state/allTokensByChainAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { fromListsAtom, type TokensFromListsState } from \"./fromListsAtom\";\nimport { importedTokensAtom } from \"./importedTokensAtom\";\nimport { apiTokensByChainAtom } from \"./apiTokensAtom\";\nimport type { ImportedToken, TokenFromList } from \"./types\";\nimport { enabledTokenListsAtom } from \"@/core/state/tokenListsAtom\";\n\n// The active token set shown in the widget:\n// - if the user configured tokenLists, ONLY those lists' tokens are used\n// (the API default source is replaced entirely, matching the pre-API behavior)\n// - otherwise the API's full token set (default source) is used\n// Imported tokens are always included on top.\n// Shape matches TokensFromListsState so downstream hooks are unaffected.\nexport const allTokensByChainAtom = atom((get) => {\n const enabledLists = get(enabledTokenListsAtom);\n const usingUserLists = enabledLists.length > 0;\n\n const fromListsState = get(fromListsAtom);\n const apiByChain = get(apiTokensByChainAtom);\n const importedByChain = get(importedTokensAtom);\n\n // user-provided lists replace the API default source when present\n const baseByChain = usingUserLists\n ? fromListsState.listByChainId\n : apiByChain;\n\n const result: TokensFromListsState<TokenFromList | ImportedToken> = {\n listByChainId: {},\n // disabledListByChainId won't be deep-changed, so clone shallowly\n disabledListByChainId: fromListsState.disabledListByChainId,\n tokensFromAllChains: [],\n };\n\n const chainIds = new Set<number>([\n ...Object.keys(baseByChain).map(Number),\n ...Object.keys(importedByChain).map(Number),\n ]);\n\n for (const chainId of chainIds) {\n const tokens: (TokenFromList | ImportedToken)[] = [];\n const addressMap: { [address: string]: TokenFromList | ImportedToken } = {};\n\n const addIfAbsent = (token: TokenFromList | ImportedToken) => {\n const addressKey = token.address.toLowerCase();\n if (addressMap[addressKey]) return;\n addressMap[addressKey] = token;\n tokens.push(token);\n };\n\n // active source (user lists or API), then imported tokens on top\n baseByChain[chainId]?.tokens.forEach(addIfAbsent);\n (importedByChain[chainId] || []).forEach(addIfAbsent);\n\n result.listByChainId[chainId] = { tokens, addressMap };\n result.tokensFromAllChains.push(...tokens);\n }\n\n return result;\n});\n"],"mappings":";;;;;;AAaA,IAAaQ,IAAuBR,GAAMS,MAAQ;CAEhD,IAAME,IADeF,EAAIF,EACFG,CAAaE,SAAS,GAEvCC,IAAiBJ,EAAIR,EAAc,EACnCa,IAAaL,EAAIL,EAAqB,EACtCW,IAAkBN,EAAIN,EAAmB,EAGzCa,IAAcL,IAChBE,EAAeI,gBACfH,GAEEI,IAA8D;EAClED,eAAe,EAAE;EAEjBE,uBAAuBN,EAAeM;EACtCC,qBAAqB,EAAA;EACtB,EAEKC,IAAW,IAAIC,IAAY,CAC/B,GAAGC,OAAOC,KAAKR,EAAY,CAACS,IAAIC,OAAO,EACvC,GAAGH,OAAOC,KAAKT,EAAgB,CAACU,IAAIC,OAAO,CAC5C,CAAC;CAEF,KAAK,IAAMC,KAAWN,GAAU;EAC9B,IAAMO,IAA4C,EAAE,EAC9CC,IAAmE,EAAE,EAErEE,KAAeC,MAAyC;GAC5D,IAAMC,IAAaD,EAAMF,QAAQI,aAAa;GAC1CL,EAAWI,OACfJ,EAAWI,KAAcD,GACzBJ,EAAOO,KAAKH,EAAM;;EAQpBd,AAJAF,EAAYW,IAAUC,OAAOQ,QAAQL,EAAY,GAChDhB,EAAgBY,MAAY,EAAE,EAAES,QAAQL,EAAY,EAErDb,EAAOD,cAAcU,KAAW;GAAEC;GAAQC;GAAY,EACtDX,EAAOE,oBAAoBe,KAAK,GAAGP,EAAO;;CAG5C,OAAOV;EACP"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { TokensFromLists } from './fromListsAtom';
|
|
2
|
+
export declare const API_TOKENS_LIST_URL = "https://api.velora.xyz/fiat/tokens/all";
|
|
3
|
+
/**
|
|
4
|
+
* Query atom that fetches the full token set from the API (all chains at once).
|
|
5
|
+
* Using atomWithQuery so fetched tokens land in atom state directly, with no
|
|
6
|
+
* useQuery + useEffect bridge. It fetches lazily once something subscribes to the
|
|
7
|
+
* token list (allTokensByChainAtom), which Updaters already does.
|
|
8
|
+
*/
|
|
9
|
+
export declare const apiTokensQueryAtom: import('jotai').WritableAtom<import('jotai-tanstack-query').AtomWithQueryResult<{
|
|
10
|
+
symbol?: string | undefined | undefined;
|
|
11
|
+
address: string;
|
|
12
|
+
decimals: number;
|
|
13
|
+
network: number;
|
|
14
|
+
tags?: string[] | undefined | undefined;
|
|
15
|
+
sources: string[];
|
|
16
|
+
categories: string[];
|
|
17
|
+
tokenType: import('@velora-dex/sdk/dist/helpers/token').LendingToken | import('@velora-dex/sdk/dist/helpers/token').TokenType;
|
|
18
|
+
mainConnector: string;
|
|
19
|
+
connectors: string[];
|
|
20
|
+
img?: string | undefined | undefined;
|
|
21
|
+
name: string;
|
|
22
|
+
}[], Error>, [], void>;
|
|
23
|
+
export declare const apiTokensByChainAtom: import('jotai').Atom<Record<number, TokensFromLists>>;
|
|
24
|
+
//# sourceMappingURL=apiTokensAtom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiTokensAtom.d.ts","sourceRoot":"","sources":["../../../src/tokens/state/apiTokensAtom.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvD,eAAO,MAAM,mBAAmB,2CAAoC,CAAC;AASrE;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;sBAkB7B,CAAC;AAoBH,eAAO,MAAM,oBAAoB,uDA0BhC,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { gatherObjectsByProp as e } from "../../lib/utils/index.js";
|
|
2
|
+
import { supportedChainIds as t } from "../../lib/web3/wagmi/constants.js";
|
|
3
|
+
import { PROD_API_URL as n, getApiURL as r } from "../../lib/constants/urls.js";
|
|
4
|
+
import { apiConfigAtom as i } from "../../core/state/apiConfigAtom.js";
|
|
5
|
+
import { isSupportedChainId as a } from "../../lib/web3/wagmi/utils.js";
|
|
6
|
+
import { isBlacklistedToken as o } from "../blacklist.js";
|
|
7
|
+
import { atom as s } from "jotai";
|
|
8
|
+
import c from "axios";
|
|
9
|
+
import { constructAxiosFetcher as l, constructGetTokens as u, constructPartialSDK as d } from "@velora-dex/sdk";
|
|
10
|
+
import { atomWithQuery as f } from "jotai-tanstack-query";
|
|
11
|
+
//#region src/tokens/state/apiTokensAtom.ts
|
|
12
|
+
var p = `${n}/fiat/tokens/all`, m = t[0], h = f((e) => {
|
|
13
|
+
let t = e(i), n = r();
|
|
14
|
+
return {
|
|
15
|
+
queryKey: [
|
|
16
|
+
"tokens/all",
|
|
17
|
+
n,
|
|
18
|
+
t
|
|
19
|
+
],
|
|
20
|
+
queryFn: async () => d({
|
|
21
|
+
apiURL: n,
|
|
22
|
+
chainId: m,
|
|
23
|
+
fetcher: l(c, t)
|
|
24
|
+
}, u).getAllTokens(),
|
|
25
|
+
staleTime: Infinity,
|
|
26
|
+
gcTime: Infinity
|
|
27
|
+
};
|
|
28
|
+
});
|
|
29
|
+
function g(e) {
|
|
30
|
+
let t = e.network, n = e.symbol;
|
|
31
|
+
return !a(t) || !n || o(e) ? null : {
|
|
32
|
+
...e,
|
|
33
|
+
network: t,
|
|
34
|
+
symbol: n,
|
|
35
|
+
fromListURL: p
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
var _ = s((t) => {
|
|
39
|
+
let { data: n } = t(h);
|
|
40
|
+
if (!n) return {};
|
|
41
|
+
let r = n.reduce((e, t) => {
|
|
42
|
+
let n = g(t);
|
|
43
|
+
return n && (e[n.network] ||= []).push(n), e;
|
|
44
|
+
}, {});
|
|
45
|
+
return Object.entries(r).reduce((t, [n, r]) => (t[Number(n)] = {
|
|
46
|
+
tokens: r,
|
|
47
|
+
addressMap: e(r, (e) => e.address.toLowerCase())
|
|
48
|
+
}, t), {});
|
|
49
|
+
});
|
|
50
|
+
//#endregion
|
|
51
|
+
export { p as API_TOKENS_LIST_URL, _ as apiTokensByChainAtom, h as apiTokensQueryAtom };
|
|
52
|
+
|
|
53
|
+
//# sourceMappingURL=apiTokensAtom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiTokensAtom.js","names":["axios","atom","atomWithQuery","constructAxiosFetcher","constructGetTokens","constructPartialSDK","apiConfigAtom","getApiURL","PROD_API_URL","supportedChainIds","gatherObjectsByProp","isSupportedChainId","isBlacklistedToken","TokenFromList","TokensFromLists","TokensSDK","API_TOKENS_LIST_URL","API_TOKENS_CHAIN_ID","APIToken","Awaited","ReturnType","apiTokensQueryAtom","get","apiConfig","apiURL","queryKey","queryFn","fetcher","sdk","chainId","getAllTokens","staleTime","Infinity","gcTime","mapAPITokenToTokenFromList","token","network","symbol","fromListURL","apiTokensByChainAtom","Record","data","tokensByChain","reduce","acc","rawToken","push","Object","entries","chainIdStr","chainTokens","Number","tokens","addressMap","address","toLowerCase"],"sources":["../../../src/tokens/state/apiTokensAtom.ts"],"sourcesContent":["import axios from \"axios\";\nimport { atom } from \"jotai\";\nimport { atomWithQuery } from \"jotai-tanstack-query\";\nimport {\n constructAxiosFetcher,\n constructGetTokens,\n constructPartialSDK,\n} from \"@velora-dex/sdk\";\nimport { apiConfigAtom } from \"@/core/state/apiConfigAtom\";\nimport { getApiURL, PROD_API_URL } from \"@/lib/constants/urls\";\nimport { supportedChainIds } from \"@/lib/web3/wagmi/constants\";\nimport { gatherObjectsByProp } from \"@/lib/utils\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\nimport { isBlacklistedToken } from \"../blacklist\";\nimport type { TokenFromList } from \"./types\";\nimport type { TokensFromLists } from \"./fromListsAtom\";\nimport type { TokensSDK } from \"@/hooks/useSDK\";\n\nexport const API_TOKENS_LIST_URL = `${PROD_API_URL}/fiat/tokens/all`;\n\n// getAllTokens hits `/fiat/tokens/all` and is chain-independent, so the chainId used\n// to construct the SDK is irrelevant — use a stable supported chain.\nconst API_TOKENS_CHAIN_ID = supportedChainIds[0];\n\n// element type of getAllTokens() result — the SDK doesn't export it directly\ntype APIToken = Awaited<ReturnType<TokensSDK[\"getAllTokens\"]>>[number];\n\n/**\n * Query atom that fetches the full token set from the API (all chains at once).\n * Using atomWithQuery so fetched tokens land in atom state directly, with no\n * useQuery + useEffect bridge. It fetches lazily once something subscribes to the\n * token list (allTokensByChainAtom), which Updaters already does.\n */\nexport const apiTokensQueryAtom = atomWithQuery((get) => {\n const apiConfig = get(apiConfigAtom);\n const apiURL = getApiURL();\n\n return {\n queryKey: [\"tokens/all\", apiURL, apiConfig],\n queryFn: async () => {\n const fetcher = constructAxiosFetcher(axios, apiConfig);\n const sdk = constructPartialSDK(\n { apiURL, chainId: API_TOKENS_CHAIN_ID, fetcher },\n constructGetTokens\n );\n // does GET https://api.velora.xyz/fiat/tokens/all internally\n return sdk.getAllTokens();\n },\n staleTime: Infinity,\n gcTime: Infinity,\n };\n});\n\nfunction mapAPITokenToTokenFromList(token: APIToken): TokenFromList | null {\n const network = token.network;\n const symbol = token.symbol;\n // the API returns tokens for all chains; keep only the ones we support\n if (!isSupportedChainId(network)) return null;\n // TokenFromList requires a symbol\n if (!symbol) return null;\n if (isBlacklistedToken(token)) return null;\n\n return {\n ...token,\n network,\n symbol,\n fromListURL: API_TOKENS_LIST_URL,\n };\n}\n\n// API tokens mapped to internal tokens and grouped by chain in the TokensFromLists shape\nexport const apiTokensByChainAtom = atom<Record<number, TokensFromLists>>(\n (get) => {\n const { data } = get(apiTokensQueryAtom);\n if (!data) return {};\n\n const tokensByChain = data.reduce<Record<number, TokenFromList[]>>(\n (acc, rawToken) => {\n const token = mapAPITokenToTokenFromList(rawToken);\n if (token) (acc[token.network] ||= []).push(token);\n return acc;\n },\n {}\n );\n\n return Object.entries(tokensByChain).reduce<\n Record<number, TokensFromLists>\n >((acc, [chainIdStr, chainTokens]) => {\n acc[Number(chainIdStr)] = {\n tokens: chainTokens,\n addressMap: gatherObjectsByProp(chainTokens, (token) =>\n token.address.toLowerCase()\n ),\n };\n return acc;\n }, {});\n }\n);\n"],"mappings":";;;;;;;;;;;AAkBA,IAAagB,IAAsB,GAAGR,EAAY,mBAI5CS,IAAsBR,EAAkB,IAWjCY,IAAqBnB,GAAeoB,MAAQ;CACvD,IAAMC,IAAYD,EAAIhB,EAAc,EAC9BkB,IAASjB,GAAW;CAE1B,OAAO;EACLkB,UAAU;GAAC;GAAcD;GAAQD;GAAU;EAC3CG,SAAS,YAEKrB,EACV;GAAEmB;GAAQK,SAASZ;GAAqBU,SAF1BxB,EAAsBH,GAAOuB,EAEHI;GAAS,EACjDvB,EAGKwB,CAAIE,cAAc;EAE3BC,WAAWC;EACXC,QAAQD;EACT;EACD;AAEF,SAASE,EAA2BC,GAAuC;CACzE,IAAMC,IAAUD,EAAMC,SAChBC,IAASF,EAAME;CAOrB,OALI,CAAC1B,EAAmByB,EAAQ,IAE5B,CAACC,KACDzB,EAAmBuB,EAAM,GAAS,OAE/B;EACL,GAAGA;EACHC;EACAC;EACAC,aAAatB;EACd;;AAIH,IAAauB,IAAuBtC,GACjCqB,MAAQ;CACP,IAAM,EAAEmB,YAASnB,EAAID,EAAmB;CACxC,IAAI,CAACoB,GAAM,OAAO,EAAE;CAEpB,IAAMC,IAAgBD,EAAKE,QACxBC,GAAKC,MAAa;EACjB,IAAMV,IAAQD,EAA2BW,EAAS;EAElD,OADIV,MAAQS,EAAIT,EAAMC,aAAa,EAAE,EAAEU,KAAKX,EAAM,EAC3CS;IAET,EACF,CAAC;CAED,OAAOG,OAAOC,QAAQN,EAAc,CAACC,QAElCC,GAAK,CAACK,GAAYC,QACnBN,EAAIO,OAAOF,EAAW,IAAI;EACxBG,QAAQF;EACRG,YAAY3C,EAAoBwC,IAAcf,MAC5CA,EAAMmB,QAAQC,aAChB,CAAA;EACD,EACMX,IACN,EAAE,CAAC;EAET"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { gatherObjectsByProp as e } from "../../lib/utils/index.js";
|
|
2
2
|
import { isSupportedChainId as t } from "../../lib/web3/wagmi/utils.js";
|
|
3
|
-
import { constructedTokensByURLAtom as n,
|
|
3
|
+
import { constructedTokensByURLAtom as n, enabledTokenURLSAtom as r } from "../lists/state/tokenListsStateAtom.js";
|
|
4
4
|
import { constructTokensFromLists as i } from "./constructTokens.js";
|
|
5
5
|
import { atom as a } from "jotai";
|
|
6
6
|
//#region src/tokens/state/fromListsAtom.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fromListsAtom.js","names":["Token","TokenFromList","constructedTokensByURLAtom","
|
|
1
|
+
{"version":3,"file":"fromListsAtom.js","names":["Token","TokenFromList","constructedTokensByURLAtom","enabledTokenURLSAtom","atom","constructTokensFromLists","gatherObjectsByProp","isSupportedChainId","MarkOptional","TokensFromLists","tokens","TToken","addressMap","Record","TokensFromListsByChain","listByChainId","disabledListByChainId","TokensFromListsState","tokensFromAllChains","fromListsAtom","get","constructedTokensByURLState","enabledTokenURLS","chainsFromLists","Object","keys","map","Number","filter","fromLists","reduce","acc","chainId","tokenListForChain","constructedLists","enabledListURLs","enabled","tokensFromListByURL","allListURLs","all","list","token","address","toLowerCase","disabledList","values","flatMap"],"sources":["../../../src/tokens/state/fromListsAtom.ts"],"sourcesContent":["import type { Token, TokenFromList } from \"./types\";\nimport {\n constructedTokensByURLAtom,\n enabledTokenURLSAtom,\n} from \"../lists/state/tokenListsStateAtom\";\nimport { atom } from \"jotai\";\nimport { constructTokensFromLists } from \"./constructTokens\";\nimport { gatherObjectsByProp } from \"@/lib/utils\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\nimport type { MarkOptional } from \"ts-essentials\";\n\nexport type TokensFromLists<TToken extends Token = TokenFromList> = {\n tokens: TToken[];\n addressMap: Record<string, TToken>;\n};\n\ntype TokensFromListsByChain<TToken extends Token = TokenFromList> = {\n listByChainId: Record<number, TokensFromLists<TToken>>;\n // unlike listByChainId, this contains tokens from disabled lists only, no imported tokens\n disabledListByChainId: Record<number, TokensFromLists<TToken>>;\n};\n\nexport type TokensFromListsState<TToken extends Token = TokenFromList> =\n TokensFromListsByChain<TToken> & {\n tokensFromAllChains: MarkOptional<TokenFromList, \"fromListURL\">[]; // without disabled\n };\n\nexport const fromListsAtom = atom<TokensFromListsState>((get) => {\n // get the current list atoms\n const constructedTokensByURLState = get(constructedTokensByURLAtom);\n const enabledTokenURLS = get(enabledTokenURLSAtom);\n\n const chainsFromLists = Object.keys(enabledTokenURLS)\n .map(Number)\n .filter(isSupportedChainId);\n\n // atom with the lists of constructed SDK tokens\n const fromLists = chainsFromLists.reduce<TokensFromListsByChain>(\n (acc, chainId) => {\n const tokenListForChain = enabledTokenURLS[chainId];\n if (!tokenListForChain) return acc;\n\n const constructedLists = constructTokensFromLists({\n enabledListURLs: tokenListForChain.enabled || [],\n tokensFromListByURL: constructedTokensByURLState,\n allListURLs: tokenListForChain.all || [],\n chainId,\n });\n if (!constructedLists) return acc;\n\n acc.listByChainId[chainId] = {\n tokens: constructedLists.list,\n addressMap: gatherObjectsByProp(constructedLists.list, (token) =>\n token.address.toLowerCase()\n ),\n };\n acc.disabledListByChainId[chainId] = {\n tokens: constructedLists.disabledList,\n addressMap: gatherObjectsByProp(\n constructedLists.disabledList,\n (token) => token.address.toLowerCase()\n ),\n };\n\n return acc;\n },\n {\n listByChainId: {},\n disabledListByChainId: {},\n }\n );\n\n const tokensFromAllChains = Object.values(fromLists.listByChainId).flatMap(\n ({ tokens }) => tokens\n );\n\n return { ...fromLists, tokensFromAllChains };\n});\n"],"mappings":";;;;;;AA2BA,IAAamB,IAAgBf,GAA4BgB,MAAQ;CAE/D,IAAMC,IAA8BD,EAAIlB,EAA2B,EAC7DoB,IAAmBF,EAAIjB,EAAqB,EAO5C0B,IALkBL,OAAOC,KAAKH,EAAiB,CAClDI,IAAIC,OAAO,CACXC,OAAOrB,EAGQgB,CAAgBO,QAC/BC,GAAKC,MAAY;EAChB,IAAMC,IAAoBX,EAAiBU;EAC3C,IAAI,CAACC,GAAmB,OAAOF;EAE/B,IAAMG,IAAmB7B,EAAyB;GAChD8B,iBAAiBF,EAAkBG,WAAW,EAAE;GAChDC,qBAAqBhB;GACrBiB,aAAaL,EAAkBM,OAAO,EAAE;GACxCP;GACD,CAAC;EAiBF,OAhBKE,KAELH,EAAIhB,cAAciB,KAAW;GAC3BtB,QAAQwB,EAAiBM;GACzB5B,YAAYN,EAAoB4B,EAAiBM,OAAOC,MACtDA,EAAMC,QAAQC,aAChB,CAAA;GACD,EACDZ,EAAIf,sBAAsBgB,KAAW;GACnCtB,QAAQwB,EAAiBU;GACzBhC,YAAYN,EACV4B,EAAiBU,eAChBH,MAAUA,EAAMC,QAAQC,aAC3B,CAAA;GACD,EAEMZ,KAhBuBA;IAkBhC;EACEhB,eAAe,EAAE;EACjBC,uBAAuB,EAAC;EAE5B,CAAC,EAEKE,IAAsBM,OAAOqB,OAAOhB,EAAUd,cAAc,CAAC+B,SAChE,EAAEpC,gBAAaA,EACjB;CAED,OAAO;EAAE,GAAGmB;EAAWX;EAAqB;EAC5C"}
|
package/dist/tokens/types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tokens/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK;IACjE,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,KAAK,CAAC;CAClB;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,IACzD,iBAAiB,CAAC,CAAC,CAAC,GACpB,oBAAoB,CAAC;AAEzB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG;IACvE,OAAO,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;CAC5B,CAAC
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tokens/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK;IACjE,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,KAAK,CAAC;CAClB;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,IACzD,iBAAiB,CAAC,CAAC,CAAC,GACpB,oBAAoB,CAAC;AAEzB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG;IACvE,OAAO,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;CAC5B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensureCallsStatus.d.ts","sourceRoot":"","sources":["../../../src/transactions/queries/ensureCallsStatus.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,
|
|
1
|
+
{"version":3,"file":"ensureCallsStatus.d.ts","sourceRoot":"","sources":["../../../src/transactions/queries/ensureCallsStatus.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAqC,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE;IAC1C,EAAE,EAAE,MAAM,CAAC;CACZ,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAEtC,KAAK,wBAAwB,GAAG,CAAC,MAAM,CAAC,EAAE;IACxC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,KAAK,mBAAmB,CAAC;AAE1B,eAAO,MAAM,wBAAwB,EAAE,wBAsCpC,CAAC"}
|
|
@@ -3,7 +3,7 @@ import { wagmiConfig as t } from "../../lib/web3/wagmi/config.js";
|
|
|
3
3
|
import { queryClient as n } from "../../lib/queryClient.js";
|
|
4
4
|
import { isConnectorWithSafeProvider as r } from "../../components/web3/ConnectExternalProvider/utils.js";
|
|
5
5
|
import { isWalletConnectConnectorWithSafe as i } from "../../hooks/connectors/useIsSafeThroughWalletConnect.js";
|
|
6
|
-
import {
|
|
6
|
+
import { getConnection as a, waitForCallsStatus as o } from "@wagmi/core";
|
|
7
7
|
import { waitForCallsStatusQueryKey as s } from "wagmi/query";
|
|
8
8
|
//#region src/transactions/queries/ensureCallsStatus.ts
|
|
9
9
|
var c = ({ queryClient: c = n, wagmiConfig: l = t, isSafe: u } = {}) => async ({ id: t }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensureCallsStatus.js","names":["isConnectorWithSafeProvider","isWalletConnectConnectorWithSafe","SAFE_CALLS_WAIT_TIMEOUT","queryClient","_queryClient","wagmiConfig","_wagmiConfig","QueryClient","
|
|
1
|
+
{"version":3,"file":"ensureCallsStatus.js","names":["isConnectorWithSafeProvider","isWalletConnectConnectorWithSafe","SAFE_CALLS_WAIT_TIMEOUT","queryClient","_queryClient","wagmiConfig","_wagmiConfig","QueryClient","getConnection","waitForCallsStatus","Config","waitForCallsStatusQueryKey","WaitForCallsStatusData","EnsureCallsStatusFn","options","id","Promise","EnsureCallsStatusFactory","params","isSafe","ensureCallsStatusFactory","_isSafe","connector","isConnectedToSafe","timeout","undefined","queryKey","throwOnFailure","status","ensureQueryData","queryFn"],"sources":["../../../src/transactions/queries/ensureCallsStatus.ts"],"sourcesContent":["import { isConnectorWithSafeProvider } from \"@/components/web3/ConnectExternalProvider/utils\";\nimport { isWalletConnectConnectorWithSafe } from \"@/hooks/connectors/useIsSafeThroughWalletConnect\";\nimport { SAFE_CALLS_WAIT_TIMEOUT } from \"@/lib/constants\";\nimport { queryClient as _queryClient } from \"@/lib/queryClient\";\nimport { wagmiConfig as _wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { QueryClient } from \"@tanstack/react-query\";\nimport { getConnection, waitForCallsStatus, type Config } from \"@wagmi/core\";\n\nimport {\n waitForCallsStatusQueryKey,\n type WaitForCallsStatusData,\n} from \"wagmi/query\";\n\nexport type EnsureCallsStatusFn = (options: {\n id: string;\n}) => Promise<WaitForCallsStatusData>;\n\ntype EnsureCallsStatusFactory = (params?: {\n queryClient?: QueryClient;\n wagmiConfig?: Config;\n isSafe?: boolean;\n}) => EnsureCallsStatusFn;\n\nexport const ensureCallsStatusFactory: EnsureCallsStatusFactory =\n ({\n queryClient = _queryClient,\n wagmiConfig = _wagmiConfig,\n isSafe: _isSafe,\n } = {}) =>\n async ({ id }) => {\n const { connector } = getConnection(wagmiConfig);\n\n let isSafe = _isSafe;\n if (!isSafe) {\n const isConnectedToSafe =\n !!connector &&\n (isConnectorWithSafeProvider(connector) ||\n (await isWalletConnectConnectorWithSafe(connector)));\n\n isSafe = isConnectedToSafe;\n }\n\n const timeout = isSafe ? SAFE_CALLS_WAIT_TIMEOUT : undefined;\n\n const queryKey = waitForCallsStatusQueryKey({\n id,\n timeout, // important to include timeout into queryKey to match useAwaitCalls queryKey\n throwOnFailure: true,\n });\n const status = await queryClient.ensureQueryData({\n queryKey,\n queryFn: async () => {\n return waitForCallsStatus(wagmiConfig, {\n id,\n throwOnFailure: true,\n timeout,\n });\n },\n });\n\n return status;\n };\n"],"mappings":";;;;;;;;AAuBA,IAAaoB,KACV,EACCjB,aAAAA,IAAcC,GACdC,aAAAA,IAAcC,GACda,QAAQE,MACN,EAAE,KACN,OAAO,EAAEN,YAAS;CAChB,IAAM,EAAEO,iBAAcd,EAAcH,EAAY,EAE5Cc,IAASE;CACb,AAMEF,MAJE,CAAC,CAACG,MACDtB,EAA4BsB,EAAU,IACpC,MAAMrB,EAAiCqB,EAAU;CAKxD,IAAME,IAAUL,IAASjB,IAA0BuB,KAAAA,GAE7CC,IAAWf,EAA2B;EAC1CI;EACAS;EACAG,gBAAgB;EACjB,CAAC;CAYF,OAAOC,MAXczB,EAAY0B,gBAAgB;EAC/CH;EACAI,SAAS,YACArB,EAAmBJ,GAAa;GACrCU;GACAY,gBAAgB;GAChBH;GACD,CAAC;EAEL,CAAC"}
|
|
@@ -8,7 +8,7 @@ import { ensureCallsStatusFactory as s } from "./ensureCallsStatus.js";
|
|
|
8
8
|
import { assert as c } from "ts-essentials";
|
|
9
9
|
import "wagmi/chains";
|
|
10
10
|
import "viem";
|
|
11
|
-
import {
|
|
11
|
+
import { getConnection as l, getConnectorClient as u } from "@wagmi/core";
|
|
12
12
|
import { waitForTransactionReceiptQueryOptions as d } from "wagmi/query";
|
|
13
13
|
//#region src/transactions/queries/ensureTxReceipt.ts
|
|
14
14
|
var f = t("Transactions:EnsureTxReceipt"), p = (t = {}) => async ({ hash: p, chainId: m, confirmations: h, onReplaced: g }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensureTxReceipt.js","names":["UseAwaitTxParameters","queryClient","_queryClient","wagmiConfig","_wagmiConfig","QueryClient","assert","MarkRequired","ReplacementReturnType","TransactionReceipt","waitForTransactionReceiptQueryOptions","SAFE_CALLS_WAIT_TIMEOUT","Chain","
|
|
1
|
+
{"version":3,"file":"ensureTxReceipt.js","names":["UseAwaitTxParameters","queryClient","_queryClient","wagmiConfig","_wagmiConfig","QueryClient","assert","MarkRequired","ReplacementReturnType","TransactionReceipt","waitForTransactionReceiptQueryOptions","SAFE_CALLS_WAIT_TIMEOUT","Chain","getConnection","getConnectorClient","isConnectorWithSafeIframeProvider","isExternalConnectorSafeWalletConnect","isWalletConnectConnectorWithSafe","ensureCallsStatusFactory","getLogger","OnReplacedCb","data","EnsureTxReceiptFn","options","Pick","onReplaced","Promise","EnsureTxReceiptFactory","params","isSafe","logger","ensureTxReceiptFactory","hash","chainId","confirmations","_isSafe","connector","isWConnectConnectorWithSafe","isConnectedToSafeIframe","isConnectedToSafe","timeout","config","realtxHash","safeClient","getClient","ensureCallsStatus","callsStatusResult","id","classReceipt","receipts","length","transactionHash","error","queryOptions","receipt","ensureQueryData"],"sources":["../../../src/transactions/queries/ensureTxReceipt.ts"],"sourcesContent":["import type { UseAwaitTxParameters } from \"@/hooks/txs/queries/useAwaitTx\";\nimport { queryClient as _queryClient } from \"@/lib/queryClient\";\nimport { wagmiConfig as _wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { QueryClient } from \"@tanstack/react-query\";\n\nimport { assert, type MarkRequired } from \"ts-essentials\";\nimport { type ReplacementReturnType, type TransactionReceipt } from \"viem\";\n\nimport { waitForTransactionReceiptQueryOptions } from \"wagmi/query\";\nimport { SAFE_CALLS_WAIT_TIMEOUT } from \"@/lib/constants\";\nimport { type Chain } from \"wagmi/chains\";\nimport { getConnection, getConnectorClient } from \"@wagmi/core\";\nimport {\n isConnectorWithSafeIframeProvider,\n isExternalConnectorSafeWalletConnect,\n} from \"@/components/web3/ConnectExternalProvider/utils\";\nimport { isWalletConnectConnectorWithSafe } from \"@/hooks/connectors/useIsSafeThroughWalletConnect\";\nimport { ensureCallsStatusFactory } from \"./ensureCallsStatus\";\nimport { getLogger } from \"@/core/logger\";\n\ntype OnReplacedCb = (data: ReplacementReturnType<Chain>) => void;\n\nexport type EnsureTxReceiptFn = (\n options: MarkRequired<\n Pick<UseAwaitTxParameters, \"hash\" | \"chainId\" | \"confirmations\">,\n \"hash\" | \"chainId\"\n > & {\n onReplaced?: OnReplacedCb;\n }\n) => Promise<TransactionReceipt>;\n\ntype EnsureTxReceiptFactory = (params?: {\n queryClient?: QueryClient;\n wagmiConfig?: typeof _wagmiConfig;\n isSafe?: boolean;\n}) => EnsureTxReceiptFn;\n\nconst logger = getLogger(\"Transactions:EnsureTxReceipt\");\n\nexport const ensureTxReceiptFactory: EnsureTxReceiptFactory =\n (options = {}) =>\n async ({ hash, chainId, confirmations, onReplaced }) => {\n const {\n queryClient = _queryClient,\n wagmiConfig = _wagmiConfig,\n isSafe: _isSafe,\n } = options;\n const { connector } = getConnection(wagmiConfig);\n let isWConnectConnectorWithSafe = false;\n let isConnectedToSafeIframe = false;\n if (connector) {\n isWConnectConnectorWithSafe =\n // can determine sync from connector.type and connector.id in case of external provider\n isExternalConnectorSafeWalletConnect(connector);\n // can determine sync from connector.type and connector.id in case of Safe Iframe provider,\n // whether as external provider or in safe connector\n isConnectedToSafeIframe = isConnectorWithSafeIframeProvider(connector);\n if (!isWConnectConnectorWithSafe && !isConnectedToSafeIframe) {\n // neither External Safe WalletConnect connector nor Safe Iframe connector,\n // so we check if it's a WalletConnect connector with Safe\n isWConnectConnectorWithSafe =\n await isWalletConnectConnectorWithSafe(connector);\n }\n }\n const isConnectedToSafe =\n isWConnectConnectorWithSafe || isConnectedToSafeIframe;\n\n const isSafe = _isSafe || isConnectedToSafe;\n\n const timeout = isSafe\n ? SAFE_CALLS_WAIT_TIMEOUT\n : SAFE_CALLS_WAIT_TIMEOUT / 2; // by default timeout is set to 0 inside waitForTransactionReceipt,\n // which makes the receipt query never resolve if the tx is dropped\n\n let config = wagmiConfig;\n let realtxHash = hash;\n\n // always use connector client if connected through native safe connector.\n // safe provider returns a safeTxHash that is different from a real tx hash.\n if (isConnectedToSafeIframe) {\n const safeClient = await getConnectorClient(wagmiConfig, {\n chainId,\n connector,\n });\n\n // force waitForTransactionReceiptQueryOptions to use SafeClient internally\n config = {\n ...wagmiConfig,\n // doesn't work with Safe through WalletConnect connector\n getClient: (options) => {\n assert(!options || options.chainId === chainId, \"chainId mismatch\");\n return safeClient;\n },\n } as typeof wagmiConfig;\n } else if (isWConnectConnectorWithSafe) {\n /**\n * When Safe is connected through WalletConnect\n * (whether as external provider or in WalletConnect connector),\n * the resulting provider only ever returns safeTxHash in response to eth_sendTransaction.\n * And the provider never returns any kind of result in response to eth_getTransactionReceipt\n * or eth_getTransactionByHash for that safeTxHash.\n * Safe iframe provider does return real txHash's receipt in response to eth_getTransactionReceipt for safeTxHash.\n * But Safe through WalletConnect never does that.\n * Options:\n * 1. Use deprecated Safe API v1 to get the real tx hash and await its receipt\n * 2. Use Safe API v2 (optionally through safe-api-kit) but there an API key is required\n * 3. Safe SDK isn't an option as it communicates with Safe only from inside an iframe\n * 4. Surprisingly, wallet_getCallsStatus works with safeTxHash (at least with multiple signers)\n *\n * Here we go with option 4:\n * sendCallsId=safeTxHash -> getCallsStatus -> realTxHash=callsReceipt.txHash -> await receipt of realTxHash\n *\n * refs:\n * https://github.com/safe-global/safe-react-apps/issues/712\n * https://github.com/safe-global/safe-react-apps/issues/62\n */\n const ensureCallsStatus = ensureCallsStatusFactory({\n ...options,\n isSafe: true,\n });\n try {\n const callsStatusResult = await ensureCallsStatus({ id: hash });\n const classReceipt =\n callsStatusResult.receipts?.[callsStatusResult.receipts.length - 1];\n\n assert(\n classReceipt,\n `Transaction receipt not found for Safe tx through WalletConnect ${hash}, on chain ${chainId}`\n );\n\n realtxHash = classReceipt.transactionHash;\n } catch (error) {\n // it is possible Safe through WalletConnect could be connected but called with a past non-Safe tx from localStorage,\n // in that case we should try to get the tx receipt normally\n logger.error(\n \"Error getting calls status for Safe tx through WalletConnect\",\n { error }\n );\n }\n }\n\n // wagmi/core waitForTransactionReceipt throws on receipt.status==\"reverted\",\n // unlike viem waitForTransactionReceipt which returns the receipt as is\n const queryOptions = waitForTransactionReceiptQueryOptions(config, {\n hash: realtxHash,\n chainId,\n confirmations,\n timeout,\n onReplaced,\n });\n\n const receipt = await queryClient.ensureQueryData(queryOptions);\n\n return receipt;\n };\n"],"mappings":";;;;;;;;;;;;;AAqCA,IAAM8B,IAASX,EAAU,+BAA+B,EAE3CY,KACVR,IAAU,EAAE,KACb,OAAO,EAAES,SAAMC,YAASC,kBAAeT,oBAAiB;CACtD,IAAM,EACJxB,aAAAA,IAAcC,GACdC,aAAAA,IAAcC,GACdyB,QAAQM,MACNZ,GACE,EAAEa,iBAAcvB,EAAcV,EAAY,EAC5CkC,IAA8B,IAC9BC,IAA0B;CAC9B,AAAIF,MACFC,IAEErB,EAAqCoB,EAAU,EAGjDE,IAA0BvB,EAAkCqB,EAAU,EAClE,CAACC,KAA+B,CAACC,MAGnCD,IACE,MAAMpB,EAAiCmB,EAAU;CAQvD,IAAMI,IAFSL,KAFbE,KAA+BC,IAK7B3B,IACAA,IAA0B,GAG1B8B,IAAStC,GACTuC,IAAaV;CAIjB,IAAIM,GAAyB;EAC3B,IAAMK,IAAa,MAAM7B,EAAmBX,GAAa;GACvD8B;GACAG;GACD,CAAC;EAGFK,IAAS;GACP,GAAGtC;GAEHyC,YAAYrB,OACVjB,EAAO,CAACiB,KAAWA,EAAQU,YAAYA,GAAS,mBAAmB,EAC5DU;GAEV;QACI,IAAIN,GAA6B;EAsBtC,IAAMQ,IAAoB3B,EAAyB;GACjD,GAAGK;GACHM,QAAQ;GACT,CAAC;EACF,IAAI;GACF,IAAMiB,IAAoB,MAAMD,EAAkB,EAAEE,IAAIf,GAAM,CAAC,EACzDgB,IACJF,EAAkBG,WAAWH,EAAkBG,SAASC,SAAS;GAOnER,AALApC,EACE0C,GACA,mEAAmEhB,EAAI,aAAcC,IACtF,EAEDS,IAAaM,EAAaG;WACnBC,GAAO;GAGdtB,EAAOsB,MACL,gEACA,EAAEA,UACJ,CAAC;;;CAML,IAAMC,IAAe3C,EAAsC+B,GAAQ;EACjET,MAAMU;EACNT;EACAC;EACAM;EACAf;EACD,CAAC;CAIF,OAAO6B,MAFerD,EAAYsD,gBAAgBF,EAAa"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wagmi-register.d.ts","sourceRoot":"","sources":["../src/wagmi-register.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,QAAQ,OAAO,CAAC;IACrB,UAAU,QAAQ;QAChB,MAAM,EAAE,OAAO,WAAW,CAAC;KAC5B;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@velora-dex/widget",
|
|
3
|
-
"version": "0.10.0",
|
|
3
|
+
"version": "0.10.2-dev.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"@tanstack/react-pacer": "^0.22.1",
|
|
80
80
|
"@tanstack/react-virtual": "^3.14.3",
|
|
81
81
|
"@uniswap/token-lists": "1.0.0-beta.34",
|
|
82
|
-
"@velora-dex/sdk": "10.0.
|
|
82
|
+
"@velora-dex/sdk": "10.2.0-dev.0",
|
|
83
83
|
"@wagmi/core": "^3.5.2",
|
|
84
84
|
"@walletconnect/ethereum-provider": "^2.21.5",
|
|
85
85
|
"axios": "^1.16.1",
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
//#region src/tokens/lists/lists.json
|
|
2
|
-
var e = /* @__PURE__ */ JSON.parse("[{\"url\":\"https://raw.githubusercontent.com/paraswap/community-token-list/master/src/sources/paraswap.extralist.json\",\"filename\":\"paraswap_extra\",\"chainId\":1,\"listName\":\"ParaSwap Extra Token List\",\"onByDefault\":true},{\"url\":\"https://tokens.coingecko.com/ethereum/all.json\",\"filename\":\"coingecko\",\"chainId\":1,\"listName\":\"CoinGecko\",\"onByDefault\":true},{\"url\":\"https://tokens.uniswap.org\",\"filename\":\"uniswap_default\",\"chainId\":1,\"listName\":\"Uniswap Default List\",\"onByDefault\":true},{\"url\":\"https://raw.githubusercontent.com/bgd-labs/aave-address-book/main/tokenlist.json\",\"filename\":\"aave_list_multichain\",\"chainId\":1,\"listName\":\"Aave token list\",\"onByDefault\":true},{\"url\":\"https://tokenlist.zerion.eth.link\",\"filename\":\"zerion\",\"chainId\":1,\"listName\":\"Zerion\",\"ipfsUrl\":\"tokenlist.zerion.eth\"},{\"url\":\"https://raw.githubusercontent.com/paraswap/community-token-list/master/src/sources/paraswap.extralist.json\",\"filename\":\"paraswap_extra\",\"chainId\":137,\"listName\":\"ParaSwap Extra Token List\",\"onByDefault\":true},{\"url\":\"https://unpkg.com/quickswap-default-token-list@latest/build/quickswap-default.tokenlist.json\",\"filename\":\"quickswap\",\"chainId\":137,\"listName\":\"Quickswap Token List\",\"onByDefault\":true},{\"url\":\"https://unpkg.com/@cometh-game/default-token-list@latest/build/comethswap-default.tokenlist.json\",\"filename\":\"comethswap_default\",\"chainId\":137,\"listName\":\"Comethswap Default List\",\"onByDefault\":true},{\"url\":\"https://raw.githubusercontent.com/bgd-labs/aave-address-book/main/tokenlist.json\",\"filename\":\"aave_list_multichain\",\"chainId\":137,\"listName\":\"Aave token list\",\"onByDefault\":true},{\"url\":\"https://tokens.coingecko.com/polygon-pos/all.json\",\"filename\":\"coingecko_polygon\",\"chainId\":137,\"listName\":\"Coingecko\",\"onByDefault\":true},{\"url\":\"https://gateway.pinata.cloud/ipfs/QmPs3EX688haEMgp49QLqoKApMukU6yaaApRr6C6ax1kWZ\",\"filename\":\"jarvis\",\"chainId\":137,\"listName\":\"Jarvis Network\"},{\"url\":\"https://raw.githubusercontent.com/paraswap/community-token-list/master/src/sources/paraswap.extralist.json\",\"filename\":\"paraswap_extra\",\"chainId\":56,\"listName\":\"ParaSwap Extra Token List\",\"onByDefault\":true},{\"url\":\"https://tokens.pancakeswap.finance/pancakeswap-extended.json\",\"filename\":\"pancakeswap_extended\",\"chainId\":56,\"listName\":\"PancakeSwap Extended\",\"onByDefault\":true},{\"url\":\"https://tokens.pancakeswap.finance/pancakeswap-top-100.json\",\"filename\":\"pancakeswap_top_100\",\"chainId\":56,\"listName\":\"PancakeSwap Top 100\"},{\"url\":\"https://tokens.coingecko.com/binance-smart-chain/all.json\",\"filename\":\"coingecko_bsc\",\"chainId\":56,\"listName\":\"Coingecko\",\"onByDefault\":true},{\"url\":\"https://raw.githubusercontent.com/bgd-labs/aave-address-book/main/tokenlist.json\",\"filename\":\"aave_list_multichain\",\"chainId\":56,\"listName\":\"Aave token list\",\"onByDefault\":true},{\"url\":\"https://raw.githubusercontent.com/paraswap/community-token-list/master/src/sources/paraswap.extralist.json\",\"filename\":\"paraswap_extra\",\"chainId\":43114,\"listName\":\"ParaSwap Extra Token List\",\"onByDefault\":true},{\"url\":\"https://raw.githubusercontent.com/pangolindex/tokenlists/main/pangolin.tokenlist.json\",\"filename\":\"pangolin_avax\",\"chainId\":43114,\"listName\":\"Pangolin Tokenlist\",\"onByDefault\":true},{\"url\":\"https://raw.githubusercontent.com/traderjoe-xyz/joe-tokenlists/main/mc.tokenlist.json\",\"filename\":\"trader_joe_default\",\"chainId\":43114,\"listName\":\"Trader Joe Default\",\"onByDefault\":true},{\"url\":\"https://tokens.coingecko.com/avalanche/all.json\",\"filename\":\"coingecko_avax\",\"chainId\":43114,\"listName\":\"Coingecko\",\"onByDefault\":true},{\"url\":\"https://raw.githubusercontent.com/bgd-labs/aave-address-book/main/tokenlist.json\",\"filename\":\"aave_list_multichain\",\"chainId\":43114,\"listName\":\"Aave token list\",\"onByDefault\":true},{\"url\":\"https://raw.githubusercontent.com/paraswap/community-token-list/master/src/sources/paraswap.extralist.json\",\"filename\":\"paraswap_extra\",\"chainId\":42161,\"listName\":\"ParaSwap Extra Token List\",\"onByDefault\":true},{\"url\":\"https://bridge.arbitrum.io/token-list-42161.json\",\"filename\":\"arbitrum_tokens_list\",\"chainId\":42161,\"listName\":\"Arbitrum List\",\"onByDefault\":true},{\"url\":\"https://tokens.coingecko.com/arbitrum-one/all.json\",\"filename\":\"coingecko_arbitrum\",\"chainId\":42161,\"listName\":\"Coingecko\",\"onByDefault\":true},{\"url\":\"https://raw.githubusercontent.com/bgd-labs/aave-address-book/main/tokenlist.json\",\"filename\":\"aave_list_multichain\",\"chainId\":42161,\"listName\":\"Aave token list\",\"onByDefault\":true},{\"url\":\"https://raw.githubusercontent.com/paraswap/community-token-list/master/src/sources/paraswap.extralist.json\",\"filename\":\"paraswap_extra\",\"chainId\":10,\"listName\":\"ParaSwap Extra Token List\",\"onByDefault\":true},{\"url\":\"https://static.optimism.io/optimism.tokenlist.json\",\"filename\":\"optimism_tokens_list\",\"chainId\":10,\"listName\":\"Optimism List\",\"onByDefault\":true},{\"url\":\"https://tokens.coingecko.com/optimistic-ethereum/all.json\",\"filename\":\"coingecko_optimism\",\"chainId\":10,\"listName\":\"Coingecko\",\"onByDefault\":true},{\"url\":\"https://raw.githubusercontent.com/bgd-labs/aave-address-book/main/tokenlist.json\",\"filename\":\"aave_list_multichain\",\"chainId\":10,\"listName\":\"Aave token list\",\"onByDefault\":true},{\"url\":\"https://raw.githubusercontent.com/paraswap/community-token-list/master/src/sources/paraswap.extralist.json\",\"filename\":\"paraswap_extra\",\"chainId\":8453,\"listName\":\"ParaSwap Extra Token List\",\"onByDefault\":true},{\"url\":\"https://static.optimism.io/optimism.tokenlist.json\",\"filename\":\"optimism_tokens_list\",\"chainId\":8453,\"listName\":\"Superchain List - Base\",\"onByDefault\":true},{\"url\":\"https://raw.githubusercontent.com/bgd-labs/aave-address-book/main/tokenlist.json\",\"filename\":\"aave_list_multichain\",\"chainId\":8453,\"listName\":\"Aave token list\",\"onByDefault\":true},{\"url\":\"https://raw.githubusercontent.com/paraswap/community-token-list/master/src/sources/paraswap.stablelist.json\",\"filename\":\"paraswap_community_stablecoin_lists\",\"chainId\":\"multi\",\"listName\":\"ParaSwap Community Stablecoin Lists\",\"tags\":[\"stablecoin\"]},{\"url\":\"https://raw.githubusercontent.com/paraswap/community-token-list/master/src/sources/paraswap.extralist.json\",\"filename\":\"paraswap_extra\",\"chainId\":100,\"listName\":\"ParaSwap Extra Token List\",\"onByDefault\":true},{\"url\":\"https://tokens.coingecko.com/xdai/all.json\",\"filename\":\"coingecko_gnosis\",\"chainId\":100,\"listName\":\"Coingecko\",\"onByDefault\":true},{\"url\":\"https://raw.githubusercontent.com/SmolDapp/tokenLists/main/lists/100.json\",\"filename\":\"tokenlistooor_gnosis\",\"chainId\":100,\"listName\":\"Gnosis\",\"onByDefault\":true},{\"url\":\"https://raw.githubusercontent.com/SmolDapp/tokenLists/refs/heads/main/lists/100/cowswap.json\",\"filename\":\"tokenlistooor_cowswap\",\"chainId\":100,\"listName\":\"CoW Swap\",\"onByDefault\":true},{\"url\":\"https://raw.githubusercontent.com/bgd-labs/aave-address-book/main/tokenlist.json\",\"filename\":\"aave_list_multichain\",\"chainId\":100,\"listName\":\"Aave token list\",\"onByDefault\":true},{\"url\":\"https://raw.githubusercontent.com/paraswap/community-token-list/master/src/sources/paraswap.extralist.json\",\"filename\":\"paraswap_extra\",\"chainId\":130,\"listName\":\"ParaSwap Extra Token List\",\"onByDefault\":true},{\"url\":\"https://tokens.uniswap.org\",\"filename\":\"uniswap_default\",\"chainId\":130,\"listName\":\"Uniswap Default List\",\"onByDefault\":true},{\"url\":\"https://tokens.coingecko.com/unichain/all.json\",\"filename\":\"coingecko_unichain\",\"chainId\":130,\"listName\":\"Coingecko\",\"onByDefault\":true},{\"url\":\"https://cdn.velora.xyz/web/token-lists/crosschain_token_list.json\",\"filename\":\"crosschain_token_list\",\"chainId\":1,\"listName\":\"Crosschain Token List\",\"onByDefault\":true,\"tags\":[\"crosschain_swap\"]},{\"url\":\"https://cdn.velora.xyz/web/token-lists/crosschain_token_list.json\",\"filename\":\"crosschain_token_list\",\"chainId\":10,\"listName\":\"Crosschain Token List\",\"onByDefault\":true,\"tags\":[\"crosschain_swap\"]},{\"url\":\"https://cdn.velora.xyz/web/token-lists/crosschain_token_list.json\",\"filename\":\"crosschain_token_list\",\"chainId\":137,\"listName\":\"Crosschain Token List\",\"onByDefault\":true,\"tags\":[\"crosschain_swap\"]},{\"url\":\"https://cdn.velora.xyz/web/token-lists/crosschain_token_list.json\",\"filename\":\"crosschain_token_list\",\"chainId\":56,\"listName\":\"Crosschain Token List\",\"onByDefault\":true,\"tags\":[\"crosschain_swap\"]},{\"url\":\"https://cdn.velora.xyz/web/token-lists/crosschain_token_list.json\",\"filename\":\"crosschain_token_list\",\"chainId\":43114,\"listName\":\"Crosschain Token List\",\"onByDefault\":true,\"tags\":[\"crosschain_swap\"]},{\"url\":\"https://cdn.velora.xyz/web/token-lists/crosschain_token_list.json\",\"filename\":\"crosschain_token_list\",\"chainId\":42161,\"listName\":\"Crosschain Token List\",\"onByDefault\":true,\"tags\":[\"crosschain_swap\"]},{\"url\":\"https://cdn.velora.xyz/web/token-lists/crosschain_token_list.json\",\"filename\":\"crosschain_token_list\",\"chainId\":100,\"listName\":\"Crosschain Token List\",\"onByDefault\":true,\"tags\":[\"crosschain_swap\"]},{\"url\":\"https://cdn.velora.xyz/web/token-lists/crosschain_token_list.json\",\"filename\":\"crosschain_token_list\",\"chainId\":130,\"listName\":\"Crosschain Token List\",\"onByDefault\":true,\"tags\":[\"crosschain_swap\"]},{\"url\":\"https://cdn.velora.xyz/web/token-lists/crosschain_token_list.json\",\"filename\":\"crosschain_token_list\",\"chainId\":8453,\"listName\":\"Crosschain Token List\",\"onByDefault\":true,\"tags\":[\"crosschain_swap\"]}]");
|
|
3
|
-
//#endregion
|
|
4
|
-
export { e as default };
|
|
5
|
-
|
|
6
|
-
//# sourceMappingURL=lists.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lists.js","names":[],"sources":["../../../src/tokens/lists/lists.json"],"sourcesContent":["[\n {\n \"url\": \"https://raw.githubusercontent.com/paraswap/community-token-list/master/src/sources/paraswap.extralist.json\",\n \"filename\": \"paraswap_extra\",\n \"chainId\": 1,\n \"listName\": \"ParaSwap Extra Token List\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://tokens.coingecko.com/ethereum/all.json\",\n \"filename\": \"coingecko\",\n \"chainId\": 1,\n \"listName\": \"CoinGecko\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://tokens.uniswap.org\",\n \"filename\": \"uniswap_default\",\n \"chainId\": 1,\n \"listName\": \"Uniswap Default List\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://raw.githubusercontent.com/bgd-labs/aave-address-book/main/tokenlist.json\",\n \"filename\": \"aave_list_multichain\",\n \"chainId\": 1,\n \"listName\": \"Aave token list\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://tokenlist.zerion.eth.link\",\n \"filename\": \"zerion\",\n \"chainId\": 1,\n \"listName\": \"Zerion\",\n \"ipfsUrl\": \"tokenlist.zerion.eth\"\n },\n {\n \"url\": \"https://raw.githubusercontent.com/paraswap/community-token-list/master/src/sources/paraswap.extralist.json\",\n \"filename\": \"paraswap_extra\",\n \"chainId\": 137,\n \"listName\": \"ParaSwap Extra Token List\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://unpkg.com/quickswap-default-token-list@latest/build/quickswap-default.tokenlist.json\",\n \"filename\": \"quickswap\",\n \"chainId\": 137,\n \"listName\": \"Quickswap Token List\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://unpkg.com/@cometh-game/default-token-list@latest/build/comethswap-default.tokenlist.json\",\n \"filename\": \"comethswap_default\",\n \"chainId\": 137,\n \"listName\": \"Comethswap Default List\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://raw.githubusercontent.com/bgd-labs/aave-address-book/main/tokenlist.json\",\n \"filename\": \"aave_list_multichain\",\n \"chainId\": 137,\n \"listName\": \"Aave token list\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://tokens.coingecko.com/polygon-pos/all.json\",\n \"filename\": \"coingecko_polygon\",\n \"chainId\": 137,\n \"listName\": \"Coingecko\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://gateway.pinata.cloud/ipfs/QmPs3EX688haEMgp49QLqoKApMukU6yaaApRr6C6ax1kWZ\",\n \"filename\": \"jarvis\",\n \"chainId\": 137,\n \"listName\": \"Jarvis Network\"\n },\n {\n \"url\": \"https://raw.githubusercontent.com/paraswap/community-token-list/master/src/sources/paraswap.extralist.json\",\n \"filename\": \"paraswap_extra\",\n \"chainId\": 56,\n \"listName\": \"ParaSwap Extra Token List\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://tokens.pancakeswap.finance/pancakeswap-extended.json\",\n \"filename\": \"pancakeswap_extended\",\n \"chainId\": 56,\n \"listName\": \"PancakeSwap Extended\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://tokens.pancakeswap.finance/pancakeswap-top-100.json\",\n \"filename\": \"pancakeswap_top_100\",\n \"chainId\": 56,\n \"listName\": \"PancakeSwap Top 100\"\n },\n {\n \"url\": \"https://tokens.coingecko.com/binance-smart-chain/all.json\",\n \"filename\": \"coingecko_bsc\",\n \"chainId\": 56,\n \"listName\": \"Coingecko\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://raw.githubusercontent.com/bgd-labs/aave-address-book/main/tokenlist.json\",\n \"filename\": \"aave_list_multichain\",\n \"chainId\": 56,\n \"listName\": \"Aave token list\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://raw.githubusercontent.com/paraswap/community-token-list/master/src/sources/paraswap.extralist.json\",\n \"filename\": \"paraswap_extra\",\n \"chainId\": 43114,\n \"listName\": \"ParaSwap Extra Token List\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://raw.githubusercontent.com/pangolindex/tokenlists/main/pangolin.tokenlist.json\",\n \"filename\": \"pangolin_avax\",\n \"chainId\": 43114,\n \"listName\": \"Pangolin Tokenlist\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://raw.githubusercontent.com/traderjoe-xyz/joe-tokenlists/main/mc.tokenlist.json\",\n \"filename\": \"trader_joe_default\",\n \"chainId\": 43114,\n \"listName\": \"Trader Joe Default\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://tokens.coingecko.com/avalanche/all.json\",\n \"filename\": \"coingecko_avax\",\n \"chainId\": 43114,\n \"listName\": \"Coingecko\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://raw.githubusercontent.com/bgd-labs/aave-address-book/main/tokenlist.json\",\n \"filename\": \"aave_list_multichain\",\n \"chainId\": 43114,\n \"listName\": \"Aave token list\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://raw.githubusercontent.com/paraswap/community-token-list/master/src/sources/paraswap.extralist.json\",\n \"filename\": \"paraswap_extra\",\n \"chainId\": 42161,\n \"listName\": \"ParaSwap Extra Token List\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://bridge.arbitrum.io/token-list-42161.json\",\n \"filename\": \"arbitrum_tokens_list\",\n \"chainId\": 42161,\n \"listName\": \"Arbitrum List\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://tokens.coingecko.com/arbitrum-one/all.json\",\n \"filename\": \"coingecko_arbitrum\",\n \"chainId\": 42161,\n \"listName\": \"Coingecko\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://raw.githubusercontent.com/bgd-labs/aave-address-book/main/tokenlist.json\",\n \"filename\": \"aave_list_multichain\",\n \"chainId\": 42161,\n \"listName\": \"Aave token list\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://raw.githubusercontent.com/paraswap/community-token-list/master/src/sources/paraswap.extralist.json\",\n \"filename\": \"paraswap_extra\",\n \"chainId\": 10,\n \"listName\": \"ParaSwap Extra Token List\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://static.optimism.io/optimism.tokenlist.json\",\n \"filename\": \"optimism_tokens_list\",\n \"chainId\": 10,\n \"listName\": \"Optimism List\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://tokens.coingecko.com/optimistic-ethereum/all.json\",\n \"filename\": \"coingecko_optimism\",\n \"chainId\": 10,\n \"listName\": \"Coingecko\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://raw.githubusercontent.com/bgd-labs/aave-address-book/main/tokenlist.json\",\n \"filename\": \"aave_list_multichain\",\n \"chainId\": 10,\n \"listName\": \"Aave token list\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://raw.githubusercontent.com/paraswap/community-token-list/master/src/sources/paraswap.extralist.json\",\n \"filename\": \"paraswap_extra\",\n \"chainId\": 8453,\n \"listName\": \"ParaSwap Extra Token List\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://static.optimism.io/optimism.tokenlist.json\",\n \"filename\": \"optimism_tokens_list\",\n \"chainId\": 8453,\n \"listName\": \"Superchain List - Base\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://raw.githubusercontent.com/bgd-labs/aave-address-book/main/tokenlist.json\",\n \"filename\": \"aave_list_multichain\",\n \"chainId\": 8453,\n \"listName\": \"Aave token list\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://raw.githubusercontent.com/paraswap/community-token-list/master/src/sources/paraswap.stablelist.json\",\n \"filename\": \"paraswap_community_stablecoin_lists\",\n \"chainId\": \"multi\",\n \"listName\": \"ParaSwap Community Stablecoin Lists\",\n \"tags\": [\"stablecoin\"]\n },\n {\n \"url\": \"https://raw.githubusercontent.com/paraswap/community-token-list/master/src/sources/paraswap.extralist.json\",\n \"filename\": \"paraswap_extra\",\n \"chainId\": 100,\n \"listName\": \"ParaSwap Extra Token List\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://tokens.coingecko.com/xdai/all.json\",\n \"filename\": \"coingecko_gnosis\",\n \"chainId\": 100,\n \"listName\": \"Coingecko\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://raw.githubusercontent.com/SmolDapp/tokenLists/main/lists/100.json\",\n \"filename\": \"tokenlistooor_gnosis\",\n \"chainId\": 100,\n \"listName\": \"Gnosis\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://raw.githubusercontent.com/SmolDapp/tokenLists/refs/heads/main/lists/100/cowswap.json\",\n \"filename\": \"tokenlistooor_cowswap\",\n \"chainId\": 100,\n \"listName\": \"CoW Swap\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://raw.githubusercontent.com/bgd-labs/aave-address-book/main/tokenlist.json\",\n \"filename\": \"aave_list_multichain\",\n \"chainId\": 100,\n \"listName\": \"Aave token list\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://raw.githubusercontent.com/paraswap/community-token-list/master/src/sources/paraswap.extralist.json\",\n \"filename\": \"paraswap_extra\",\n \"chainId\": 130,\n \"listName\": \"ParaSwap Extra Token List\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://tokens.uniswap.org\",\n \"filename\": \"uniswap_default\",\n \"chainId\": 130,\n \"listName\": \"Uniswap Default List\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://tokens.coingecko.com/unichain/all.json\",\n \"filename\": \"coingecko_unichain\",\n \"chainId\": 130,\n \"listName\": \"Coingecko\",\n \"onByDefault\": true\n },\n {\n \"url\": \"https://cdn.velora.xyz/web/token-lists/crosschain_token_list.json\",\n \"filename\": \"crosschain_token_list\",\n \"chainId\": 1,\n \"listName\": \"Crosschain Token List\",\n \"onByDefault\": true,\n \"tags\": [\"crosschain_swap\"]\n },\n {\n \"url\": \"https://cdn.velora.xyz/web/token-lists/crosschain_token_list.json\",\n \"filename\": \"crosschain_token_list\",\n \"chainId\": 10,\n \"listName\": \"Crosschain Token List\",\n \"onByDefault\": true,\n \"tags\": [\"crosschain_swap\"]\n },\n {\n \"url\": \"https://cdn.velora.xyz/web/token-lists/crosschain_token_list.json\",\n \"filename\": \"crosschain_token_list\",\n \"chainId\": 137,\n \"listName\": \"Crosschain Token List\",\n \"onByDefault\": true,\n \"tags\": [\"crosschain_swap\"]\n },\n {\n \"url\": \"https://cdn.velora.xyz/web/token-lists/crosschain_token_list.json\",\n \"filename\": \"crosschain_token_list\",\n \"chainId\": 56,\n \"listName\": \"Crosschain Token List\",\n \"onByDefault\": true,\n \"tags\": [\"crosschain_swap\"]\n },\n {\n \"url\": \"https://cdn.velora.xyz/web/token-lists/crosschain_token_list.json\",\n \"filename\": \"crosschain_token_list\",\n \"chainId\": 43114,\n \"listName\": \"Crosschain Token List\",\n \"onByDefault\": true,\n \"tags\": [\"crosschain_swap\"]\n },\n {\n \"url\": \"https://cdn.velora.xyz/web/token-lists/crosschain_token_list.json\",\n \"filename\": \"crosschain_token_list\",\n \"chainId\": 42161,\n \"listName\": \"Crosschain Token List\",\n \"onByDefault\": true,\n \"tags\": [\"crosschain_swap\"]\n },\n {\n \"url\": \"https://cdn.velora.xyz/web/token-lists/crosschain_token_list.json\",\n \"filename\": \"crosschain_token_list\",\n \"chainId\": 100,\n \"listName\": \"Crosschain Token List\",\n \"onByDefault\": true,\n \"tags\": [\"crosschain_swap\"]\n },\n {\n \"url\": \"https://cdn.velora.xyz/web/token-lists/crosschain_token_list.json\",\n \"filename\": \"crosschain_token_list\",\n \"chainId\": 130,\n \"listName\": \"Crosschain Token List\",\n \"onByDefault\": true,\n \"tags\": [\"crosschain_swap\"]\n },\n {\n \"url\": \"https://cdn.velora.xyz/web/token-lists/crosschain_token_list.json\",\n \"filename\": \"crosschain_token_list\",\n \"chainId\": 8453,\n \"listName\": \"Crosschain Token List\",\n \"onByDefault\": true,\n \"tags\": [\"crosschain_swap\"]\n }\n]\n"],"mappings":""}
|