@velora-dex/widget 0.2.3 → 0.2.4

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.
Files changed (94) hide show
  1. package/dist/components/widget/DexesList/DexItem.d.ts.map +1 -1
  2. package/dist/components/widget/DexesList/DexItem.js +57 -62
  3. package/dist/components/widget/DexesList/DexItem.js.map +1 -1
  4. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.js +6 -6
  5. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.js.map +1 -1
  6. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.d.ts.map +1 -1
  7. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js +0 -5
  8. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
  9. package/dist/components/widget/TradeOverview/TradeComplete/utils.d.ts.map +1 -1
  10. package/dist/components/widget/TradeOverview/TradeComplete/utils.js +4 -2
  11. package/dist/components/widget/TradeOverview/TradeComplete/utils.js.map +1 -1
  12. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts.map +1 -1
  13. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +46 -34
  14. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
  15. package/dist/configurator/Configurator.d.ts.map +1 -1
  16. package/dist/core/Updaters.d.ts.map +1 -1
  17. package/dist/core/Updaters.js +2 -0
  18. package/dist/core/Updaters.js.map +1 -1
  19. package/dist/core/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
  20. package/dist/core/inputs/hooks/useTokenFromInputProps.js +25 -16
  21. package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
  22. package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
  23. package/dist/core/inputs/hooks/useTokenToInputProps.js +9 -12
  24. package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
  25. package/dist/core/inputs/state/common.d.ts +2 -2
  26. package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts.map +1 -1
  27. package/dist/core/inputs/state/selectedTokenActionsAtom.js +34 -25
  28. package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
  29. package/dist/core/inputs/state/selectedTokenAtom.d.ts +2 -2
  30. package/dist/core/inputs/state/selectedTokenAtom.d.ts.map +1 -1
  31. package/dist/core/inputs/state/selectedTokenAtom.js +9 -2
  32. package/dist/core/inputs/state/selectedTokenAtom.js.map +1 -1
  33. package/dist/core/inputs/state/types.d.ts.map +1 -1
  34. package/dist/core/limit/useLimitRate.js +3 -1
  35. package/dist/core/limit/useLimitRate.js.map +1 -1
  36. package/dist/core/state/widgetEventsAtom.d.ts.map +1 -1
  37. package/dist/core/state/widgetEventsAtom.js +4 -4
  38. package/dist/core/state/widgetEventsAtom.js.map +1 -1
  39. package/dist/core/swapDetails/maxToPay.d.ts +11 -0
  40. package/dist/core/swapDetails/maxToPay.d.ts.map +1 -0
  41. package/dist/core/swapDetails/maxToPay.js +41 -0
  42. package/dist/core/swapDetails/maxToPay.js.map +1 -0
  43. package/dist/core/swapDetails/useSwapDetailsListProps.d.ts.map +1 -1
  44. package/dist/core/swapDetails/useSwapDetailsListProps.js +9 -2
  45. package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
  46. package/dist/core/swapDetails/youGet.d.ts.map +1 -1
  47. package/dist/core/swapDetails/youGet.js.map +1 -1
  48. package/dist/events/effects/price.js +3 -3
  49. package/dist/events/effects/price.js.map +1 -1
  50. package/dist/events/effects/swapMode.js +2 -2
  51. package/dist/events/effects/swapMode.js.map +1 -1
  52. package/dist/events/hooks/useOnPriceUpdates.d.ts +2 -0
  53. package/dist/events/hooks/useOnPriceUpdates.d.ts.map +1 -0
  54. package/dist/events/hooks/useOnPriceUpdates.js +104 -0
  55. package/dist/events/hooks/useOnPriceUpdates.js.map +1 -0
  56. package/dist/events/types/priceChange.d.ts +12 -4
  57. package/dist/events/types/priceChange.d.ts.map +1 -1
  58. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +33 -4
  59. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
  60. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +98 -29
  61. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
  62. package/dist/hooks/swap/prices/delta/queries/utils.d.ts +3 -0
  63. package/dist/hooks/swap/prices/delta/queries/utils.d.ts.map +1 -0
  64. package/dist/hooks/swap/prices/delta/queries/utils.js +9 -0
  65. package/dist/hooks/swap/prices/delta/queries/utils.js.map +1 -0
  66. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts +35 -2
  67. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts.map +1 -1
  68. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js +102 -98
  69. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
  70. package/dist/hooks/swap/prices/useSwapPrices.d.ts +8 -0
  71. package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
  72. package/dist/hooks/swap/prices/useSwapPrices.js +234 -99
  73. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  74. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
  75. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +13 -20
  76. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
  77. package/dist/hooks/swap/tradeFlow/useMarketFlow.js +1 -1
  78. package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
  79. package/dist/hooks/useCachedQueryError.d.ts +3 -0
  80. package/dist/hooks/useCachedQueryError.d.ts.map +1 -0
  81. package/dist/hooks/useCachedQueryError.js +11 -0
  82. package/dist/hooks/useCachedQueryError.js.map +1 -0
  83. package/dist/index.d.ts +2 -1
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/lib/web3/privy/config.js +1 -1
  86. package/dist/lib/web3/wagmi/config.js +1 -1
  87. package/dist/styles.css +1 -1
  88. package/dist/tokens/overrides.d.ts +13 -2
  89. package/dist/tokens/overrides.d.ts.map +1 -1
  90. package/dist/tokens/overrides.js +71 -3
  91. package/dist/tokens/overrides.js.map +1 -1
  92. package/dist/tokens/types.d.ts +4 -0
  93. package/dist/tokens/types.d.ts.map +1 -1
  94. package/package.json +1 -1
@@ -1,3 +1,14 @@
1
- import { TokenList } from '@uniswap/token-lists';
2
- export declare function overrideTokenList(tokenList: TokenList, listURL: string): TokenList;
1
+ import { TokenInfo, TokenList } from '@uniswap/token-lists';
2
+ export declare function overrideTokenList(tokenList: TokenList, listURL: string): {
3
+ tokens: TokenInfo[];
4
+ name: string;
5
+ timestamp: string;
6
+ version: import('@uniswap/token-lists').Version;
7
+ tokenMap?: {
8
+ readonly [key: string]: TokenInfo;
9
+ };
10
+ keywords?: string[];
11
+ tags?: import('@uniswap/token-lists').Tags;
12
+ logoURI?: string;
13
+ };
3
14
  //# sourceMappingURL=overrides.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"overrides.d.ts","sourceRoot":"","sources":["../../src/tokens/overrides.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAmGjE,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,aAwBtE"}
1
+ {"version":3,"file":"overrides.d.ts","sourceRoot":"","sources":["../../src/tokens/overrides.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AA2JjE,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM;;;;;;;;;;;EA+CtE"}
@@ -81,13 +81,81 @@ const TokenListsOverrides = {
81
81
  }
82
82
  }
83
83
  };
84
+ const USDT0Icon = "https://static.optimism.io/data/USD%E2%82%AE0/logo.png";
85
+ const IndividualTokensOverrides = {
86
+ // USDT on Ethereum stays USDT
87
+ "0xdac17f958d2ee523a2206206994597c13d831ec7@1": {
88
+ merge: {
89
+ symbol: "USDT",
90
+ name: "Tether USD",
91
+ logoURI: "https://etherscan.io/token/images/tethernew_32.svg"
92
+ }
93
+ },
94
+ // USDT on other chains is USDT0 but tokenLists may have it under USDT,
95
+ // basically USDT on Ethereum bridged through LayerZero = USDT0.
96
+ // overriding their symbol from USD₮0 to USDT0 to make it consistent with other chains and searchable
97
+ "0xc2132d05d31c914a87c6611c10748aeb04b58e8f@137": {
98
+ merge: {
99
+ symbol: "USDT0",
100
+ name: "USD₮0",
101
+ logoURI: USDT0Icon
102
+ }
103
+ },
104
+ "0x01bff41798a0bcf287b996046ca68b395dbc1071@10": {
105
+ merge: {
106
+ symbol: "USDT0",
107
+ name: "USD₮0",
108
+ logoURI: USDT0Icon
109
+ }
110
+ },
111
+ "0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9@42161": {
112
+ merge: {
113
+ symbol: "USDT0",
114
+ name: "USD₮0",
115
+ logoURI: USDT0Icon
116
+ }
117
+ },
118
+ "0x9151434b16b9763660705744891fa906f660ecc5@130": {
119
+ merge: {
120
+ symbol: "USDT0",
121
+ name: "USD₮0",
122
+ logoURI: USDT0Icon
123
+ }
124
+ },
125
+ // separate USDT0 on Base through Stargate bridge,
126
+ // included to make the symbol consistent with other chains and searchable
127
+ "0x102d758f688a4c1c5a80b116bd945d4455460282@8453": {
128
+ merge: {
129
+ symbol: "USDT0",
130
+ name: "Stargate USD₮0 (Bridged)",
131
+ logoURI: USDT0Icon
132
+ }
133
+ }
134
+ };
84
135
  function overrideTokenList(tokenList, listURL) {
85
136
  const overrides = TokenListsOverrides[listURL];
86
- if (!overrides) return tokenList;
87
137
  const overriddenTokens = tokenList.tokens.reduce((accum, tokenInfo) => {
138
+ const individualOverride = IndividualTokensOverrides[`${tokenInfo.address.toLowerCase()}@${tokenInfo.chainId}`];
139
+ if (individualOverride) {
140
+ if (individualOverride.remove) {
141
+ return accum;
142
+ }
143
+ if (individualOverride.merge) {
144
+ const override2 = {
145
+ ...tokenInfo,
146
+ ...individualOverride.merge
147
+ };
148
+ accum.push(override2);
149
+ return accum;
150
+ }
151
+ }
152
+ if (!overrides) {
153
+ accum.push(tokenInfo);
154
+ return accum;
155
+ }
88
156
  const remove = overrides.remove?.has(tokenInfo.address.toLowerCase());
89
157
  if (remove) return accum;
90
- const override = overrides?.merge?.[tokenInfo.address.toLowerCase()];
158
+ const override = overrides.merge?.[tokenInfo.address.toLowerCase()];
91
159
  const token = override ? {
92
160
  ...tokenInfo,
93
161
  ...override
@@ -95,7 +163,7 @@ function overrideTokenList(tokenList, listURL) {
95
163
  accum.push(token);
96
164
  return accum;
97
165
  }, []);
98
- if (overrides.add) {
166
+ if (overrides?.add) {
99
167
  overriddenTokens.push(...overrides.add);
100
168
  }
101
169
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"overrides.js","sources":["../../src/tokens/overrides.ts"],"sourcesContent":["import type { TokenInfo, TokenList } from \"@uniswap/token-lists\";\nimport type { TokenListOverride } from \"./types\";\n\n// AAVE and GHO tokens have deprecated logos in some lists\nconst AAVE_OverrideTokenInfo: Partial<TokenInfo> = {\n logoURI:\n \"https://coin-images.coingecko.com/coins/images/12645/large/aave-token-round.png?1720472354\",\n};\nconst GHO_OverrideTokenInfo: Partial<TokenInfo> = {\n logoURI:\n \"https://coin-images.coingecko.com/coins/images/30663/large/gho-token-logo.png?1720517092\",\n};\n\n// override decimals that we know are wrong in Gemini token list https://paraswap.slack.com/archives/C01AUMPP56J/p1669810101097819?thread_ts=1669804269.667909&cid=C01AUMPP56J\nconst TokenListsOverrides: Record<string, TokenListOverride> = {\n // Ethereum\n \"https://tokens.uniswap.org\": {\n merge: {\n \"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9\": AAVE_OverrideTokenInfo,\n \"0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f\": GHO_OverrideTokenInfo,\n },\n },\n\n \"https://raw.githubusercontent.com/paraswap/community-token-list/master/src/sources/paraswap.extralist.json\":\n {\n merge: {\n \"0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f\": GHO_OverrideTokenInfo,\n },\n },\n\n // Optimism\n \"https://static.optimism.io/optimism.tokenlist.json\": {\n merge: {\n \"0x76fb31fb4af56892a25e32cfc43de717950c9278\": AAVE_OverrideTokenInfo,\n },\n },\n\n // Avalanche\n \"https://raw.githubusercontent.com/pangolindex/tokenlists/main/pangolin.tokenlist.json\":\n {\n merge: {\n \"0x63a72806098bd3d9520cc43356dd78afe5d386d9\": AAVE_OverrideTokenInfo,\n },\n },\n \"https://raw.githubusercontent.com/traderjoe-xyz/joe-tokenlists/main/mc.tokenlist.json\":\n {\n merge: {\n \"0x63a72806098bd3d9520cc43356dd78afe5d386d9\": AAVE_OverrideTokenInfo,\n },\n },\n\n // Polygon\n \"https://unpkg.com/quickswap-default-token-list@latest/build/quickswap-default.tokenlist.json\":\n {\n merge: {\n \"0xd6df932a45c0f255f85145f286ea0b292b21c90b\": AAVE_OverrideTokenInfo,\n \"0x7ceb23fd6bc0add59e62ac25578270cff1b9f619\": {\n symbol: \"WETH\",\n name: \"Wrapped Ether\",\n },\n },\n },\n \"https://unpkg.com/@cometh-game/default-token-list@latest/build/comethswap-default.tokenlist.json\":\n {\n merge: {\n \"0xd6df932a45c0f255f85145f286ea0b292b21c90b\": AAVE_OverrideTokenInfo,\n \"0x7ceb23fd6bc0add59e62ac25578270cff1b9f619\": {\n symbol: \"WETH\",\n name: \"Wrapped Ether\",\n },\n },\n },\n\n // Arbitrum\n \"https://bridge.arbitrum.io/token-list-42161.json\": {\n // Gemini tokens list has been removed from our dApp, but we keep the overrides in case of similar issues in the future and a need of quick fix\n // \"https://www.gemini.com/uniswap/manifest.json\": {merge: {\n // \"0x6b0b3a982b4634ac68dd83a4dbf02311ce324181\": { decimals: 18 },\n // \"0xbb0e17ef65f82ab018d8edd776e8dd940327b28b\": { decimals: 18 },\n // \"0x18aaa7115705e8be94bffebde57af9bfc265b998\": { decimals: 18 },\n // }},\n // Arbitrum GMX is under an old address in the list\n remove: new Set([\"0x590020b1005b8b25f1a2c82c5f743c540dcfa24d\"]),\n },\n\n // Gnosis\n \"https://tokens.coingecko.com/xdai/all.json\": {\n merge: {\n \"0xe91d153e0b41518a2ce8dd3d7944fa863463a97d\": { symbol: \"WXDAI\" },\n },\n },\n \"https://tokens.coingecko.com/polygon-pos/all.json\": {\n merge: {\n // MLN token with wrong decimals in the tokenList\n \"0xa9f37d84c856fda3812ad0519dad44fa0a3fe207\": { decimals: 18 },\n },\n },\n};\n\nexport function overrideTokenList(tokenList: TokenList, listURL: string) {\n const overrides = TokenListsOverrides[listURL];\n if (!overrides) return tokenList;\n\n const overriddenTokens = tokenList.tokens.reduce<TokenInfo[]>(\n (accum, tokenInfo) => {\n const remove = overrides.remove?.has(tokenInfo.address.toLowerCase());\n if (remove) return accum;\n\n const override = overrides?.merge?.[tokenInfo.address.toLowerCase()];\n const token = override ? { ...tokenInfo, ...override } : tokenInfo;\n\n accum.push(token);\n\n return accum;\n },\n []\n );\n\n if (overrides.add) {\n overriddenTokens.push(...overrides.add);\n }\n\n return { ...tokenList, tokens: overriddenTokens };\n}\n"],"names":["AAVE_OverrideTokenInfo","logoURI","GHO_OverrideTokenInfo","TokenListsOverrides","merge","symbol","name","remove","Set","decimals","overrideTokenList","tokenList","listURL","overrides","overriddenTokens","tokens","reduce","accum","tokenInfo","has","address","toLowerCase","override","token","push","add"],"mappings":"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"}
1
+ {"version":3,"file":"overrides.js","sources":["../../src/tokens/overrides.ts"],"sourcesContent":["import type { TokenInfo, TokenList } from \"@uniswap/token-lists\";\nimport type { TokenListOverride, IndividualTokenOverride } from \"./types\";\n\n// AAVE and GHO tokens have deprecated logos in some lists\nconst AAVE_OverrideTokenInfo: Partial<TokenInfo> = {\n logoURI:\n \"https://coin-images.coingecko.com/coins/images/12645/large/aave-token-round.png?1720472354\",\n};\nconst GHO_OverrideTokenInfo: Partial<TokenInfo> = {\n logoURI:\n \"https://coin-images.coingecko.com/coins/images/30663/large/gho-token-logo.png?1720517092\",\n};\n\n// override decimals that we know are wrong in Gemini token list https://paraswap.slack.com/archives/C01AUMPP56J/p1669810101097819?thread_ts=1669804269.667909&cid=C01AUMPP56J\nconst TokenListsOverrides: Record<string, TokenListOverride> = {\n // Ethereum\n \"https://tokens.uniswap.org\": {\n merge: {\n \"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9\": AAVE_OverrideTokenInfo,\n \"0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f\": GHO_OverrideTokenInfo,\n },\n },\n\n \"https://raw.githubusercontent.com/paraswap/community-token-list/master/src/sources/paraswap.extralist.json\":\n {\n merge: {\n \"0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f\": GHO_OverrideTokenInfo,\n },\n },\n\n // Optimism\n \"https://static.optimism.io/optimism.tokenlist.json\": {\n merge: {\n \"0x76fb31fb4af56892a25e32cfc43de717950c9278\": AAVE_OverrideTokenInfo,\n },\n },\n\n // Avalanche\n \"https://raw.githubusercontent.com/pangolindex/tokenlists/main/pangolin.tokenlist.json\":\n {\n merge: {\n \"0x63a72806098bd3d9520cc43356dd78afe5d386d9\": AAVE_OverrideTokenInfo,\n },\n },\n \"https://raw.githubusercontent.com/traderjoe-xyz/joe-tokenlists/main/mc.tokenlist.json\":\n {\n merge: {\n \"0x63a72806098bd3d9520cc43356dd78afe5d386d9\": AAVE_OverrideTokenInfo,\n },\n },\n\n // Polygon\n \"https://unpkg.com/quickswap-default-token-list@latest/build/quickswap-default.tokenlist.json\":\n {\n merge: {\n \"0xd6df932a45c0f255f85145f286ea0b292b21c90b\": AAVE_OverrideTokenInfo,\n \"0x7ceb23fd6bc0add59e62ac25578270cff1b9f619\": {\n symbol: \"WETH\",\n name: \"Wrapped Ether\",\n },\n },\n },\n \"https://unpkg.com/@cometh-game/default-token-list@latest/build/comethswap-default.tokenlist.json\":\n {\n merge: {\n \"0xd6df932a45c0f255f85145f286ea0b292b21c90b\": AAVE_OverrideTokenInfo,\n \"0x7ceb23fd6bc0add59e62ac25578270cff1b9f619\": {\n symbol: \"WETH\",\n name: \"Wrapped Ether\",\n },\n },\n },\n\n // Arbitrum\n \"https://bridge.arbitrum.io/token-list-42161.json\": {\n // Gemini tokens list has been removed from our dApp, but we keep the overrides in case of similar issues in the future and a need of quick fix\n // \"https://www.gemini.com/uniswap/manifest.json\": {merge: {\n // \"0x6b0b3a982b4634ac68dd83a4dbf02311ce324181\": { decimals: 18 },\n // \"0xbb0e17ef65f82ab018d8edd776e8dd940327b28b\": { decimals: 18 },\n // \"0x18aaa7115705e8be94bffebde57af9bfc265b998\": { decimals: 18 },\n // }},\n // Arbitrum GMX is under an old address in the list\n remove: new Set([\"0x590020b1005b8b25f1a2c82c5f743c540dcfa24d\"]),\n },\n\n // Gnosis\n \"https://tokens.coingecko.com/xdai/all.json\": {\n merge: {\n \"0xe91d153e0b41518a2ce8dd3d7944fa863463a97d\": { symbol: \"WXDAI\" },\n },\n },\n \"https://tokens.coingecko.com/polygon-pos/all.json\": {\n merge: {\n // MLN token with wrong decimals in the tokenList\n \"0xa9f37d84c856fda3812ad0519dad44fa0a3fe207\": { decimals: 18 },\n },\n },\n};\n\nconst USDT0Icon = \"https://static.optimism.io/data/USD%E2%82%AE0/logo.png\";\n// `lowercase_address@chainId`: override\nconst IndividualTokensOverrides: Record<\n `${string}@${number}`,\n IndividualTokenOverride\n> = {\n // USDT on Ethereum stays USDT\n \"0xdac17f958d2ee523a2206206994597c13d831ec7@1\": {\n merge: {\n symbol: \"USDT\",\n name: \"Tether USD\",\n logoURI: \"https://etherscan.io/token/images/tethernew_32.svg\",\n },\n },\n // USDT on other chains is USDT0 but tokenLists may have it under USDT,\n // basically USDT on Ethereum bridged through LayerZero = USDT0.\n // overriding their symbol from USD₮0 to USDT0 to make it consistent with other chains and searchable\n \"0xc2132d05d31c914a87c6611c10748aeb04b58e8f@137\": {\n merge: {\n symbol: \"USDT0\",\n name: \"USD₮0\",\n logoURI: USDT0Icon,\n },\n },\n \"0x01bff41798a0bcf287b996046ca68b395dbc1071@10\": {\n merge: {\n symbol: \"USDT0\",\n name: \"USD₮0\",\n logoURI: USDT0Icon,\n },\n },\n \"0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9@42161\": {\n merge: {\n symbol: \"USDT0\",\n name: \"USD₮0\",\n logoURI: USDT0Icon,\n },\n },\n \"0x9151434b16b9763660705744891fa906f660ecc5@130\": {\n merge: {\n symbol: \"USDT0\",\n name: \"USD₮0\",\n logoURI: USDT0Icon,\n },\n },\n // separate USDT0 on Base through Stargate bridge,\n // included to make the symbol consistent with other chains and searchable\n \"0x102d758f688a4c1c5a80b116bd945d4455460282@8453\": {\n merge: {\n symbol: \"USDT0\",\n name: \"Stargate USD₮0 (Bridged)\",\n logoURI: USDT0Icon,\n },\n },\n};\n\nexport function overrideTokenList(tokenList: TokenList, listURL: string) {\n const overrides = TokenListsOverrides[listURL];\n\n const overriddenTokens = tokenList.tokens.reduce<TokenInfo[]>(\n (accum, tokenInfo) => {\n const individualOverride =\n IndividualTokensOverrides[\n `${tokenInfo.address.toLowerCase()}@${tokenInfo.chainId}`\n ];\n\n // override individual token in all tokenLists\n if (individualOverride) {\n if (individualOverride.remove) {\n return accum;\n }\n if (individualOverride.merge) {\n const override = { ...tokenInfo, ...individualOverride.merge };\n accum.push(override);\n return accum;\n }\n }\n\n if (!overrides) {\n // no overrides specifically for this tokenList\n accum.push(tokenInfo);\n return accum;\n }\n\n // override token in this tokenList\n const remove = overrides.remove?.has(tokenInfo.address.toLowerCase());\n if (remove) return accum;\n\n const override = overrides.merge?.[tokenInfo.address.toLowerCase()];\n const token = override ? { ...tokenInfo, ...override } : tokenInfo;\n\n accum.push(token);\n\n return accum;\n },\n []\n );\n\n if (overrides?.add) {\n overriddenTokens.push(...overrides.add);\n }\n\n return { ...tokenList, tokens: overriddenTokens };\n}\n"],"names":["AAVE_OverrideTokenInfo","logoURI","GHO_OverrideTokenInfo","TokenListsOverrides","merge","symbol","name","remove","Set","decimals","USDT0Icon","IndividualTokensOverrides","overrideTokenList","tokenList","listURL","overrides","overriddenTokens","tokens","reduce","accum","tokenInfo","individualOverride","address","toLowerCase","chainId","override","push","has","token","add"],"mappings":"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"}
@@ -21,5 +21,9 @@ export type TokenListOverride = {
21
21
  export type TokenInfoWithSupportedChainId = Omit<TokenInfo, "chainId"> & {
22
22
  chainId: SupportedChainId;
23
23
  };
24
+ export type IndividualTokenOverride = {
25
+ remove?: boolean;
26
+ merge?: Partial<TokenInfo>;
27
+ };
24
28
  export type ChainTokensSet = Record<number, Set<string>>;
25
29
  //# sourceMappingURL=types.d.ts.map
@@ -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;AAGF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@velora-dex/widget",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "files": [