@velora-dex/widget 0.10.2-dev.0 → 0.10.2
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/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 +37 -37
- package/dist/core/inputs/state/setTokenByAddressAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.js +68 -70
- package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
- package/dist/core/limit/state/selectedTokenActionsAtom.js +27 -27
- package/dist/core/limit/state/selectedTokenAtom.js +7 -7
- package/dist/core/state/chainToAtom.js +14 -14
- package/dist/core/twap/state/selectedTokenActionsAtom.js +33 -33
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.js +4 -4
- package/dist/hooks/tokens/useAllTokensWithFilter.js +15 -15
- package/dist/hooks/tokens/useTokensByAddress.js +6 -6
- package/dist/hooks/useSDK.d.ts +1 -3
- package/dist/hooks/useSDK.d.ts.map +1 -1
- package/dist/hooks/useSDK.js.map +1 -1
- package/dist/lib/constants/urls.d.ts +0 -1
- 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 +23 -15
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/tokens/constructor.d.ts +8 -1
- package/dist/tokens/constructor.d.ts.map +1 -1
- package/dist/tokens/constructor.js +4 -2
- package/dist/tokens/constructor.js.map +1 -1
- package/dist/tokens/defaultTokens.d.ts.map +1 -1
- package/dist/tokens/defaultTokens.js +12 -5
- package/dist/tokens/defaultTokens.js.map +1 -1
- package/dist/tokens/lists/constants.d.ts +8 -0
- package/dist/tokens/lists/constants.d.ts.map +1 -1
- package/dist/tokens/lists/constants.js +13 -3
- 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 +13 -5
- package/dist/tokens/lists/download.js.map +1 -1
- package/dist/tokens/lists/lists.js +22 -0
- package/dist/tokens/lists/lists.js.map +1 -0
- package/dist/tokens/lists/lists.json.d.ts +12 -0
- package/dist/tokens/lists/state/effects.d.ts.map +1 -1
- package/dist/tokens/lists/state/effects.js +21 -22
- 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 +21 -17
- package/dist/tokens/lists/state/tokenListsStateAtom.js.map +1 -1
- package/dist/tokens/lists/types.d.ts +6 -4
- package/dist/tokens/lists/types.d.ts.map +1 -1
- package/dist/tokens/lists/utils.d.ts +2 -1
- package/dist/tokens/lists/utils.d.ts.map +1 -1
- package/dist/tokens/lists/utils.js +6 -5
- package/dist/tokens/lists/utils.js.map +1 -1
- package/dist/tokens/queries.d.ts.map +1 -1
- package/dist/tokens/queries.js +32 -30
- package/dist/tokens/queries.js.map +1 -1
- package/dist/tokens/stabeCoins/hooks.d.ts +4 -1
- package/dist/tokens/stabeCoins/hooks.d.ts.map +1 -1
- package/dist/tokens/stabeCoins/hooks.js +7 -8
- package/dist/tokens/stabeCoins/hooks.js.map +1 -1
- package/dist/tokens/stabeCoins/index.d.ts +2 -0
- package/dist/tokens/stabeCoins/index.d.ts.map +1 -0
- package/dist/tokens/stabeCoins/index.js +6 -0
- package/dist/tokens/stabeCoins/index.js.map +1 -0
- package/dist/tokens/state/addImportedTokenAtom.d.ts +1 -0
- package/dist/tokens/state/addImportedTokenAtom.d.ts.map +1 -1
- package/dist/tokens/state/addImportedTokenAtom.js +4 -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 +30 -20
- package/dist/tokens/state/allTokensByChainAtom.js.map +1 -1
- package/dist/tokens/state/fromListsAtom.js +1 -1
- package/dist/tokens/state/fromListsAtom.js.map +1 -1
- package/dist/tokens/types.d.ts +1 -0
- package/dist/tokens/types.d.ts.map +1 -1
- package/dist/tokens/utils/sets.d.ts +4 -0
- package/dist/tokens/utils/sets.d.ts.map +1 -0
- package/package.json +2 -2
- package/dist/core/state/tokenListsAtom.d.ts +0 -2
- package/dist/core/state/tokenListsAtom.d.ts.map +0 -1
- package/dist/core/state/tokenListsAtom.js +0 -9
- package/dist/core/state/tokenListsAtom.js.map +0 -1
- package/dist/tokens/state/apiTokensAtom.d.ts +0 -24
- package/dist/tokens/state/apiTokensAtom.d.ts.map +0 -1
- package/dist/tokens/state/apiTokensAtom.js +0 -53
- package/dist/tokens/state/apiTokensAtom.js.map +0 -1
|
@@ -1,28 +1,38 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { atom as i } from "jotai";
|
|
1
|
+
import { gatherObjectsByProp as e } from "../../lib/utils/index.js";
|
|
2
|
+
import { fromListsAtom as t } from "./fromListsAtom.js";
|
|
3
|
+
import { importedTokensAtom as n } from "./importedTokensAtom.js";
|
|
4
|
+
import { atom as r } from "jotai";
|
|
6
5
|
//#region src/tokens/state/allTokensByChainAtom.ts
|
|
7
|
-
var
|
|
8
|
-
let
|
|
6
|
+
var i = r((r) => {
|
|
7
|
+
let i = r(t), a = r(n), o = {
|
|
9
8
|
listByChainId: {},
|
|
10
|
-
disabledListByChainId:
|
|
11
|
-
tokensFromAllChains:
|
|
12
|
-
}
|
|
13
|
-
for (let e of
|
|
14
|
-
let
|
|
15
|
-
|
|
16
|
-
|
|
9
|
+
disabledListByChainId: i.disabledListByChainId,
|
|
10
|
+
tokensFromAllChains: i.tokensFromAllChains.slice()
|
|
11
|
+
};
|
|
12
|
+
for (let [e, t] of Object.entries(i.listByChainId)) {
|
|
13
|
+
let n = Number(e), r = a[n] || [], i = t.tokens.slice(), s = { ...t.addressMap };
|
|
14
|
+
for (let e of r) {
|
|
15
|
+
let t = e.address.toLowerCase();
|
|
16
|
+
s[t] || (i.push(e), s[t] = e, o.tokensFromAllChains.push(e));
|
|
17
|
+
}
|
|
18
|
+
o.listByChainId[n] = {
|
|
19
|
+
tokens: i,
|
|
20
|
+
addressMap: s
|
|
17
21
|
};
|
|
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
|
-
|
|
23
|
+
for (let [t, n] of Object.entries(a)) {
|
|
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;
|
|
24
34
|
});
|
|
25
35
|
//#endregion
|
|
26
|
-
export {
|
|
36
|
+
export { i as allTokensByChainAtom };
|
|
27
37
|
|
|
28
38
|
//# sourceMappingURL=allTokensByChainAtom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allTokensByChainAtom.js","names":["atom","fromListsAtom","TokensFromListsState","importedTokensAtom","
|
|
1
|
+
{"version":3,"file":"allTokensByChainAtom.js","names":["atom","fromListsAtom","TokensFromListsState","importedTokensAtom","ImportedToken","TokenFromList","gatherObjectsByProp","allTokensByChainAtom","get","fromListsState","importedByChain","result","listByChainId","disabledListByChainId","tokensFromAllChains","slice","chainIdStr","fromListsArr","Object","entries","chainId","Number","imported","tokens","addressMap","address","token","addressKey","toLowerCase","push","importedArr"],"sources":["../../../src/tokens/state/allTokensByChainAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { fromListsAtom, type TokensFromListsState } from \"./fromListsAtom\";\nimport { importedTokensAtom } from \"./importedTokensAtom\";\nimport type { ImportedToken, TokenFromList } from \"./types\";\n// import { getLogger } from \"@/core/logger\";\nimport { gatherObjectsByProp } from \"@/lib/utils\";\n\n// returns TokenFromListState + ImportedTokenState merged, conforming the shape of the first one\nexport const allTokensByChainAtom = atom((get) => {\n const fromListsState = get(fromListsAtom);\n const importedByChain = get(importedTokensAtom);\n\n // start with a fresh result object to avoid mutating fromListsState\n const result: TokensFromListsState<TokenFromList | ImportedToken> = {\n listByChainId: {},\n // disabledListByChainId won't be deep-changed, so clone shallowly\n disabledListByChainId: fromListsState.disabledListByChainId,\n tokensFromAllChains: fromListsState.tokensFromAllChains.slice(),\n };\n\n // merge tokens list & map for chains present in fromListsState\n for (const [chainIdStr, fromListsArr] of Object.entries(\n fromListsState.listByChainId\n )) {\n const chainId = Number(chainIdStr);\n const imported = importedByChain[chainId] || [];\n\n // clone base tokens and addressMap to avoid mutation\n const tokens: (TokenFromList | ImportedToken)[] =\n fromListsArr.tokens.slice();\n const addressMap: { [address: string]: TokenFromList | ImportedToken } = {\n ...fromListsArr.addressMap,\n };\n\n // add imported tokens if not already present\n for (const token of imported) {\n const addressKey = token.address.toLowerCase();\n if (!addressMap[addressKey]) {\n tokens.push(token);\n addressMap[addressKey] = token;\n\n // add imported to all Tokens\n result.tokensFromAllChains.push(token);\n }\n // @TODO: suppressing the logs for now as it clutters the console\n // else {\n // getLogger(\"AllTokensByChain\").log(\n // `LOGIC ERROR: Token ${token.address} on chain ${chainId} already exists in fromListsAtom, skipping import.`\n // );\n // }\n }\n\n result.listByChainId[chainId] = { tokens, addressMap };\n }\n\n // normally shouldn't happen, but add chains that only have imported tokens\n for (const [chainIdStr, importedArr] of Object.entries(importedByChain)) {\n const chainId = Number(chainIdStr);\n if (!result.listByChainId[chainId]) {\n const addressMap = gatherObjectsByProp(importedArr, (token) =>\n token.address.toLowerCase()\n );\n result.listByChainId[chainId] = { tokens: importedArr, addressMap };\n }\n }\n\n return result;\n});\n"],"mappings":";;;;;AAQA,IAAaO,IAAuBP,GAAMQ,MAAQ;CAChD,IAAMC,IAAiBD,EAAIP,EAAc,EACnCS,IAAkBF,EAAIL,EAAmB,EAGzCQ,IAA8D;EAClEC,eAAe,EAAE;EAEjBC,uBAAuBJ,EAAeI;EACtCC,qBAAqBL,EAAeK,oBAAoBC,OAAM;EAC/D;CAGD,KAAK,IAAM,CAACC,GAAYC,MAAiBC,OAAOC,QAC9CV,EAAeG,cAChB,EAAE;EACD,IAAMQ,IAAUC,OAAOL,EAAW,EAC5BM,IAAWZ,EAAgBU,MAAY,EAAE,EAGzCG,IACJN,EAAaM,OAAOR,OAAO,EACvBS,IAAmE,EACvE,GAAGP,EAAaO,YACjB;EAGD,KAAK,IAAME,KAASJ,GAAU;GAC5B,IAAMK,IAAaD,EAAMD,QAAQG,aAAa;GAC9C,AAAKJ,EAAWG,OACdJ,EAAOM,KAAKH,EAAM,EAClBF,EAAWG,KAAcD,GAGzBf,EAAOG,oBAAoBe,KAAKH,EAAM;;EAU1Cf,EAAOC,cAAcQ,KAAW;GAAEG;GAAQC;GAAY;;CAIxD,KAAK,IAAM,CAACR,GAAYc,MAAgBZ,OAAOC,QAAQT,EAAgB,EAAE;EACvE,IAAMU,IAAUC,OAAOL,EAAW;EAClC,IAAI,CAACL,EAAOC,cAAcQ,IAAU;GAClC,IAAMI,IAAalB,EAAoBwB,IAAcJ,MACnDA,EAAMD,QAAQG,aAChB,CAAC;GACDjB,EAAOC,cAAcQ,KAAW;IAAEG,QAAQO;IAAaN;IAAY;;;CAIvE,OAAOb;EACP"}
|
|
@@ -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, enabledAndDefaultTokenURLSAtom 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","enabledAndDefaultTokenURLSAtom","atom","constructTokensFromLists","gatherObjectsByProp","isSupportedChainId","MarkOptional","TokensFromLists","tokens","TToken","addressMap","Record","TokensFromListsByChain","listByChainId","disabledListByChainId","TokensFromListsState","tokensFromAllChains","fromListsAtom","get","constructedTokensByURLState","enabledAndDefaultTokenURLS","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 enabledAndDefaultTokenURLSAtom,\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 enabledAndDefaultTokenURLS = get(enabledAndDefaultTokenURLSAtom);\n\n const chainsFromLists = Object.keys(enabledAndDefaultTokenURLS)\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 = enabledAndDefaultTokenURLS[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,IAA6BF,EAAIjB,EAA+B,EAOhE0B,IALkBL,OAAOC,KAAKH,EAA2B,CAC5DI,IAAIC,OAAO,CACXC,OAAOrB,EAGQgB,CAAgBO,QAC/BC,GAAKC,MAAY;EAChB,IAAMC,IAAoBX,EAA2BU;EACrD,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;AAGF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { TokenListFetched, ChainTokensSet } from '../types';
|
|
2
|
+
export declare function tokenlistsToSetsByChain<T extends string>(lists: TokenListFetched<T>[]): ChainTokensSet;
|
|
3
|
+
export declare function checkAddressesBelongToChainSet(sets: ChainTokensSet, addresses: (string | undefined)[], chainId?: number): boolean;
|
|
4
|
+
//# sourceMappingURL=sets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sets.d.ts","sourceRoot":"","sources":["../../../src/tokens/utils/sets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAEhB,cAAc,EACf,MAAM,UAAU,CAAC;AAElB,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,EACtD,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAC3B,cAAc,CAchB;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,cAAc,EACpB,SAAS,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,EACjC,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAQT"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@velora-dex/widget",
|
|
3
|
-
"version": "0.10.2
|
|
3
|
+
"version": "0.10.2",
|
|
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.2.0
|
|
82
|
+
"@velora-dex/sdk": "10.2.0",
|
|
83
83
|
"@wagmi/core": "^3.5.2",
|
|
84
84
|
"@walletconnect/ethereum-provider": "^2.21.5",
|
|
85
85
|
"axios": "^1.16.1",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tokenListsAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/tokenListsAtom.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,qBAAqB,gCAEjC,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { tokenListsAtom as e } from "./configAtom.js";
|
|
2
|
-
import { defaultTokenLists as t } from "../../tokens/lists/constants.js";
|
|
3
|
-
import { atom as n } from "jotai";
|
|
4
|
-
//#region src/core/state/tokenListsAtom.ts
|
|
5
|
-
var r = n((n) => n(e).filter((e) => !t.includes(e)));
|
|
6
|
-
//#endregion
|
|
7
|
-
export { r as enabledTokenListsAtom };
|
|
8
|
-
|
|
9
|
-
//# sourceMappingURL=tokenListsAtom.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tokenListsAtom.js","names":[],"sources":["../../../src/core/state/tokenListsAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { tokenListsAtom } from \"./configAtom\";\nimport { defaultTokenLists } from \"@/tokens/lists/constants\";\n\nexport const enabledTokenListsAtom = atom<string[]>((get) =>\n get(tokenListsAtom).filter((url) => !defaultTokenLists.includes(url))\n);\n"],"mappings":";;;;AAIA,IAAa,IAAwB,GAAgB,MACnD,EAAI,EAAe,CAAC,QAAQ,MAAQ,CAAC,EAAkB,SAAS,EAAI,CAAC,CACtE"}
|
|
@@ -1,24 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,53 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|