@velora-dex/widget 0.2.3 → 0.2.5-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/dist/components/web3/ConnectedWallet/ConnectedWallet.js +7 -7
  2. package/dist/components/web3/ConnectedWallet/ConnectedWallet.js.map +1 -1
  3. package/dist/components/widget/DexesList/DexItem.d.ts.map +1 -1
  4. package/dist/components/widget/DexesList/DexItem.js +57 -62
  5. package/dist/components/widget/DexesList/DexItem.js.map +1 -1
  6. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.js +6 -6
  7. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.js.map +1 -1
  8. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.d.ts.map +1 -1
  9. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js +0 -5
  10. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
  11. package/dist/components/widget/TradeOverview/TradeComplete/utils.d.ts.map +1 -1
  12. package/dist/components/widget/TradeOverview/TradeComplete/utils.js +4 -2
  13. package/dist/components/widget/TradeOverview/TradeComplete/utils.js.map +1 -1
  14. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts.map +1 -1
  15. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +46 -34
  16. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
  17. package/dist/configurator/Configurator.d.ts.map +1 -1
  18. package/dist/core/Updaters.d.ts.map +1 -1
  19. package/dist/core/Updaters.js +2 -0
  20. package/dist/core/Updaters.js.map +1 -1
  21. package/dist/core/index.d.ts.map +1 -1
  22. package/dist/core/index.js +101 -93
  23. package/dist/core/index.js.map +1 -1
  24. package/dist/core/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
  25. package/dist/core/inputs/hooks/useTokenFromInputProps.js +25 -16
  26. package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
  27. package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
  28. package/dist/core/inputs/hooks/useTokenToInputProps.js +9 -12
  29. package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
  30. package/dist/core/inputs/state/common.d.ts +2 -2
  31. package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts.map +1 -1
  32. package/dist/core/inputs/state/selectedTokenActionsAtom.js +34 -25
  33. package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
  34. package/dist/core/inputs/state/selectedTokenAtom.d.ts +2 -2
  35. package/dist/core/inputs/state/selectedTokenAtom.d.ts.map +1 -1
  36. package/dist/core/inputs/state/selectedTokenAtom.js +9 -2
  37. package/dist/core/inputs/state/selectedTokenAtom.js.map +1 -1
  38. package/dist/core/inputs/state/types.d.ts.map +1 -1
  39. package/dist/core/limit/useLimitRate.js +3 -1
  40. package/dist/core/limit/useLimitRate.js.map +1 -1
  41. package/dist/core/state/configActionsAtom.d.ts.map +1 -1
  42. package/dist/core/state/configActionsAtom.js +3 -1
  43. package/dist/core/state/configActionsAtom.js.map +1 -1
  44. package/dist/core/state/configAtom.d.ts +4 -2
  45. package/dist/core/state/configAtom.d.ts.map +1 -1
  46. package/dist/core/state/configAtom.js +7 -3
  47. package/dist/core/state/configAtom.js.map +1 -1
  48. package/dist/core/state/widgetEventsAtom.d.ts.map +1 -1
  49. package/dist/core/state/widgetEventsAtom.js +4 -4
  50. package/dist/core/state/widgetEventsAtom.js.map +1 -1
  51. package/dist/core/swapDetails/maxToPay.d.ts +11 -0
  52. package/dist/core/swapDetails/maxToPay.d.ts.map +1 -0
  53. package/dist/core/swapDetails/maxToPay.js +41 -0
  54. package/dist/core/swapDetails/maxToPay.js.map +1 -0
  55. package/dist/core/swapDetails/useSwapDetailsListProps.d.ts.map +1 -1
  56. package/dist/core/swapDetails/useSwapDetailsListProps.js +9 -2
  57. package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
  58. package/dist/core/swapDetails/youGet.d.ts.map +1 -1
  59. package/dist/core/swapDetails/youGet.js.map +1 -1
  60. package/dist/core/types.d.ts +6 -0
  61. package/dist/core/types.d.ts.map +1 -1
  62. package/dist/events/effects/price.js +3 -3
  63. package/dist/events/effects/price.js.map +1 -1
  64. package/dist/events/effects/swapMode.js +2 -2
  65. package/dist/events/effects/swapMode.js.map +1 -1
  66. package/dist/events/hooks/useOnPriceUpdates.d.ts +2 -0
  67. package/dist/events/hooks/useOnPriceUpdates.d.ts.map +1 -0
  68. package/dist/events/hooks/useOnPriceUpdates.js +104 -0
  69. package/dist/events/hooks/useOnPriceUpdates.js.map +1 -0
  70. package/dist/events/types/priceChange.d.ts +12 -4
  71. package/dist/events/types/priceChange.d.ts.map +1 -1
  72. package/dist/hooks/gas/useGasPrices.d.ts.map +1 -1
  73. package/dist/hooks/gas/useGasPrices.js +2 -2
  74. package/dist/hooks/gas/useGasPrices.js.map +1 -1
  75. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +33 -4
  76. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
  77. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +98 -29
  78. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
  79. package/dist/hooks/swap/prices/delta/queries/utils.d.ts +3 -0
  80. package/dist/hooks/swap/prices/delta/queries/utils.d.ts.map +1 -0
  81. package/dist/hooks/swap/prices/delta/queries/utils.js +9 -0
  82. package/dist/hooks/swap/prices/delta/queries/utils.js.map +1 -0
  83. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts +35 -2
  84. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts.map +1 -1
  85. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js +102 -98
  86. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
  87. package/dist/hooks/swap/prices/useSwapPrices.d.ts +8 -0
  88. package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
  89. package/dist/hooks/swap/prices/useSwapPrices.js +234 -99
  90. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  91. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
  92. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +13 -20
  93. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
  94. package/dist/hooks/swap/tradeFlow/useMarketFlow.js +1 -1
  95. package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
  96. package/dist/hooks/tokens/prices/queries.d.ts.map +1 -1
  97. package/dist/hooks/tokens/prices/queries.js +2 -2
  98. package/dist/hooks/tokens/prices/queries.js.map +1 -1
  99. package/dist/hooks/tokens/useTokenTaxFee.js +2 -2
  100. package/dist/hooks/tokens/useTokenTaxFee.js.map +1 -1
  101. package/dist/hooks/txs/queries/useTxHistory.d.ts.map +1 -1
  102. package/dist/hooks/txs/queries/useTxHistory.js +2 -2
  103. package/dist/hooks/txs/queries/useTxHistory.js.map +1 -1
  104. package/dist/hooks/useCachedQueryError.d.ts +3 -0
  105. package/dist/hooks/useCachedQueryError.d.ts.map +1 -0
  106. package/dist/hooks/useCachedQueryError.js +11 -0
  107. package/dist/hooks/useCachedQueryError.js.map +1 -0
  108. package/dist/hooks/useSDK.d.ts.map +1 -1
  109. package/dist/hooks/useSDK.js +11 -11
  110. package/dist/hooks/useSDK.js.map +1 -1
  111. package/dist/index.d.ts +2 -1
  112. package/dist/index.d.ts.map +1 -1
  113. package/dist/lib/constants/index.d.ts +0 -2
  114. package/dist/lib/constants/index.d.ts.map +1 -1
  115. package/dist/lib/constants/index.js +1 -4
  116. package/dist/lib/constants/index.js.map +1 -1
  117. package/dist/lib/constants/urls.d.ts +4 -0
  118. package/dist/lib/constants/urls.d.ts.map +1 -0
  119. package/dist/lib/constants/urls.js +30 -0
  120. package/dist/lib/constants/urls.js.map +1 -0
  121. package/dist/lib/utils/explorer.d.ts.map +1 -1
  122. package/dist/lib/utils/explorer.js +3 -3
  123. package/dist/lib/utils/explorer.js.map +1 -1
  124. package/dist/lib/web3/privy/config.js +1 -1
  125. package/dist/lib/web3/wagmi/config.js +1 -1
  126. package/dist/styles.css +1 -1
  127. package/dist/tokens/overrides.d.ts +13 -2
  128. package/dist/tokens/overrides.d.ts.map +1 -1
  129. package/dist/tokens/overrides.js +71 -3
  130. package/dist/tokens/overrides.js.map +1 -1
  131. package/dist/tokens/types.d.ts +4 -0
  132. package/dist/tokens/types.d.ts.map +1 -1
  133. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useTxHistory.js","sources":["../../../../src/hooks/txs/queries/useTxHistory.ts"],"sourcesContent":["import { API_PROXY_URL } from \"@/lib/constants\";\nimport { assertProp } from \"@/lib/utils\";\nimport {\n useQuery,\n useQueryClient,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport axios from \"axios\";\n\nimport {\n constructMetaParams,\n type MetabaseResponse,\n} from \"@/lib/utils/metabase\";\nimport type { MarkOptional } from \"ts-essentials\";\nimport type { TransactionItemSwap } from \"@/transactions/types\";\nimport { isAddress, isHash, type Address } from \"viem\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\nimport { getLogger } from \"@/core/logger\";\nimport Big from \"big.js\";\n\ntype SwapTxParams = {\n account: Address;\n chainId?: number;\n limit?: number;\n offset?: number;\n};\n\ntype SwapTxRow = [\n txhash: string,\n chainId: number,\n srctoken: string,\n srcamount: number,\n srcamountusd: number,\n desttoken: string,\n destamount: number,\n destamountusd: number,\n txorigin: string,\n initiator: string,\n entrytimestamp: string,\n txgasused: number, // can falsely return 0, also this is not gasUsed, this is gasLimit; better rely on gas data from GRP table if available\n txgasprice: number,\n side: string, // \"true\" = BUY, \"false\" = SELL\n];\n\ntype SwapTxsResponse = MetabaseResponse<SwapTxRow>;\n\nconst logger = getLogger(\"SwapTxHistory\");\n\nfunction formatSwapTxsData(\n { data }: SwapTxsResponse,\n { account }: SwapTxParams\n): TransactionItemSwap[] {\n const transactionItems: TransactionItemSwap[] = [];\n\n for (const row of data.rows) {\n const [\n txhash,\n chainId,\n srctoken,\n srcamount,\n srcamountusd,\n desttoken,\n destamount,\n destamountusd,\n ,\n ,\n entrytimestamp,\n txgasused,\n txgasprice,\n ,\n ] = row;\n\n if (\n !isSupportedChainId(chainId) ||\n !isHash(txhash) ||\n !isAddress(srctoken) ||\n !isAddress(desttoken)\n ) {\n logger.warn(\"Invalid swap tx data row, skipping\", row);\n continue;\n }\n\n transactionItems.push({\n account,\n transactionHash: txhash,\n chainId,\n dropped: false,\n timestamp: new Date(entrytimestamp).getTime(),\n action: \"swap\",\n transactionSpecificData: {\n action: \"swap\",\n source: \"metabase\",\n srcTokenAddress: srctoken,\n srcAmount: Big(srcamount).toFixed(),\n srcAmountUSD: Big(srcamountusd).toFixed(),\n destTokenAddress: desttoken,\n destAmount: Big(destamount).toFixed(),\n destAmountUSD: Big(destamountusd).toFixed(),\n gasCost: Big(txgasused).mul(txgasprice).toFixed(),\n },\n });\n }\n\n return transactionItems;\n}\n\nasync function fetchSwapTxs(\n params: SwapTxParams,\n signal?: AbortSignal\n): Promise<TransactionItemSwap[]> {\n const metaParams = constructMetaParams(params);\n\n const url = `${API_PROXY_URL}/swap/txs?parameters=${JSON.stringify(metaParams)}`;\n\n const { data } = await axios.get<SwapTxsResponse>(url, { signal });\n\n return formatSwapTxsData(data, params);\n}\n\ntype SwapParams = MarkOptional<SwapTxParams, \"account\">;\n\nconst SWAP_TX_HISTORY_QUERY_KEY_BASE = \"swap/tx-history\";\ntype SwapTxHistoryQueryKey = [\n base: typeof SWAP_TX_HISTORY_QUERY_KEY_BASE,\n params: SwapParams,\n];\n\ntype SwapTxHistoryQueryParams<TData = TransactionItemSwap[]> = Omit<\n UseQueryOptions<TransactionItemSwap[], Error, TData, SwapTxHistoryQueryKey>,\n \"queryKey\" | \"queryFn\"\n>;\n\nexport function useSwapTxHistory<TData = TransactionItemSwap[]>({\n params,\n query,\n}: {\n params: SwapParams;\n query?: SwapTxHistoryQueryParams<TData>;\n}): UseQueryResult<TData, Error> {\n const queryClient = useQueryClient();\n\n return useQuery<TransactionItemSwap[], Error, TData, SwapTxHistoryQueryKey>({\n queryKey: [SWAP_TX_HISTORY_QUERY_KEY_BASE, params],\n queryFn: ({ signal }) => {\n assertProp(params, \"account\");\n if (params.chainId) {\n // don't bother with picking past data for different limit & offset, it's too hard to get right data slice given different chainIds\n const { chainId, ...queryParamsWithoutChainId } = params;\n const queryKeyWithoutChainId: SwapTxHistoryQueryKey = [\n SWAP_TX_HISTORY_QUERY_KEY_BASE,\n queryParamsWithoutChainId,\n ];\n\n const query = queryClient.getQueryCache().find<TransactionItemSwap[]>({\n queryKey: queryKeyWithoutChainId,\n stale: false, // get only non-stale data\n });\n\n const dataForAllChains = query?.state.data;\n\n if (dataForAllChains) {\n return dataForAllChains.filter((tx) => tx.chainId === chainId);\n }\n }\n\n return fetchSwapTxs(params, signal);\n },\n ...query,\n enabled: !!params.account && (query?.enabled ?? true),\n });\n}\n"],"names":["logger","getLogger","formatSwapTxsData","data","account","transactionItems","row","rows","txhash","chainId","srctoken","srcamount","srcamountusd","desttoken","destamount","destamountusd","entrytimestamp","txgasused","txgasprice","isSupportedChainId","isHash","isAddress","warn","push","transactionHash","dropped","timestamp","Date","getTime","action","transactionSpecificData","source","srcTokenAddress","srcAmount","Big","toFixed","srcAmountUSD","destTokenAddress","destAmount","destAmountUSD","gasCost","mul","fetchSwapTxs","params","signal","metaParams","constructMetaParams","url","API_PROXY_URL","JSON","stringify","axios","get","SWAP_TX_HISTORY_QUERY_KEY_BASE","useSwapTxHistory","t0","$","_c","query","queryClient","useQueryClient","t1","t2","t3","assertProp","queryParamsWithoutChainId","queryKeyWithoutChainId","query_0","getQueryCache","find","queryKey","stale","dataForAllChains","state","filter","tx","enabled","t4","queryFn","useQuery"],"mappings":"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"}
1
+ {"version":3,"file":"useTxHistory.js","sources":["../../../../src/hooks/txs/queries/useTxHistory.ts"],"sourcesContent":["import { assertProp } from \"@/lib/utils\";\nimport {\n useQuery,\n useQueryClient,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport axios from \"axios\";\n\nimport {\n constructMetaParams,\n type MetabaseResponse,\n} from \"@/lib/utils/metabase\";\nimport type { MarkOptional } from \"ts-essentials\";\nimport type { TransactionItemSwap } from \"@/transactions/types\";\nimport { isAddress, isHash, type Address } from \"viem\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\nimport { getLogger } from \"@/core/logger\";\nimport Big from \"big.js\";\nimport { getApiProxyURL } from \"@/lib/constants/urls\";\n\ntype SwapTxParams = {\n account: Address;\n chainId?: number;\n limit?: number;\n offset?: number;\n};\n\ntype SwapTxRow = [\n txhash: string,\n chainId: number,\n srctoken: string,\n srcamount: number,\n srcamountusd: number,\n desttoken: string,\n destamount: number,\n destamountusd: number,\n txorigin: string,\n initiator: string,\n entrytimestamp: string,\n txgasused: number, // can falsely return 0, also this is not gasUsed, this is gasLimit; better rely on gas data from GRP table if available\n txgasprice: number,\n side: string, // \"true\" = BUY, \"false\" = SELL\n];\n\ntype SwapTxsResponse = MetabaseResponse<SwapTxRow>;\n\nconst logger = getLogger(\"SwapTxHistory\");\n\nfunction formatSwapTxsData(\n { data }: SwapTxsResponse,\n { account }: SwapTxParams\n): TransactionItemSwap[] {\n const transactionItems: TransactionItemSwap[] = [];\n\n for (const row of data.rows) {\n const [\n txhash,\n chainId,\n srctoken,\n srcamount,\n srcamountusd,\n desttoken,\n destamount,\n destamountusd,\n ,\n ,\n entrytimestamp,\n txgasused,\n txgasprice,\n ,\n ] = row;\n\n if (\n !isSupportedChainId(chainId) ||\n !isHash(txhash) ||\n !isAddress(srctoken) ||\n !isAddress(desttoken)\n ) {\n logger.warn(\"Invalid swap tx data row, skipping\", row);\n continue;\n }\n\n transactionItems.push({\n account,\n transactionHash: txhash,\n chainId,\n dropped: false,\n timestamp: new Date(entrytimestamp).getTime(),\n action: \"swap\",\n transactionSpecificData: {\n action: \"swap\",\n source: \"metabase\",\n srcTokenAddress: srctoken,\n srcAmount: Big(srcamount).toFixed(),\n srcAmountUSD: Big(srcamountusd).toFixed(),\n destTokenAddress: desttoken,\n destAmount: Big(destamount).toFixed(),\n destAmountUSD: Big(destamountusd).toFixed(),\n gasCost: Big(txgasused).mul(txgasprice).toFixed(),\n },\n });\n }\n\n return transactionItems;\n}\n\nasync function fetchSwapTxs(\n params: SwapTxParams,\n signal?: AbortSignal\n): Promise<TransactionItemSwap[]> {\n const metaParams = constructMetaParams(params);\n\n const url = `${getApiProxyURL()}/swap/txs?parameters=${JSON.stringify(metaParams)}`;\n\n const { data } = await axios.get<SwapTxsResponse>(url, { signal });\n\n return formatSwapTxsData(data, params);\n}\n\ntype SwapParams = MarkOptional<SwapTxParams, \"account\">;\n\nconst SWAP_TX_HISTORY_QUERY_KEY_BASE = \"swap/tx-history\";\ntype SwapTxHistoryQueryKey = [\n base: typeof SWAP_TX_HISTORY_QUERY_KEY_BASE,\n params: SwapParams,\n];\n\ntype SwapTxHistoryQueryParams<TData = TransactionItemSwap[]> = Omit<\n UseQueryOptions<TransactionItemSwap[], Error, TData, SwapTxHistoryQueryKey>,\n \"queryKey\" | \"queryFn\"\n>;\n\nexport function useSwapTxHistory<TData = TransactionItemSwap[]>({\n params,\n query,\n}: {\n params: SwapParams;\n query?: SwapTxHistoryQueryParams<TData>;\n}): UseQueryResult<TData, Error> {\n const queryClient = useQueryClient();\n\n return useQuery<TransactionItemSwap[], Error, TData, SwapTxHistoryQueryKey>({\n queryKey: [SWAP_TX_HISTORY_QUERY_KEY_BASE, params],\n queryFn: ({ signal }) => {\n assertProp(params, \"account\");\n if (params.chainId) {\n // don't bother with picking past data for different limit & offset, it's too hard to get right data slice given different chainIds\n const { chainId, ...queryParamsWithoutChainId } = params;\n const queryKeyWithoutChainId: SwapTxHistoryQueryKey = [\n SWAP_TX_HISTORY_QUERY_KEY_BASE,\n queryParamsWithoutChainId,\n ];\n\n const query = queryClient.getQueryCache().find<TransactionItemSwap[]>({\n queryKey: queryKeyWithoutChainId,\n stale: false, // get only non-stale data\n });\n\n const dataForAllChains = query?.state.data;\n\n if (dataForAllChains) {\n return dataForAllChains.filter((tx) => tx.chainId === chainId);\n }\n }\n\n return fetchSwapTxs(params, signal);\n },\n ...query,\n enabled: !!params.account && (query?.enabled ?? true),\n });\n}\n"],"names":["logger","getLogger","formatSwapTxsData","data","account","transactionItems","row","rows","txhash","chainId","srctoken","srcamount","srcamountusd","desttoken","destamount","destamountusd","entrytimestamp","txgasused","txgasprice","isSupportedChainId","isHash","isAddress","warn","push","transactionHash","dropped","timestamp","Date","getTime","action","transactionSpecificData","source","srcTokenAddress","srcAmount","Big","toFixed","srcAmountUSD","destTokenAddress","destAmount","destAmountUSD","gasCost","mul","fetchSwapTxs","params","signal","metaParams","constructMetaParams","url","getApiProxyURL","JSON","stringify","axios","get","SWAP_TX_HISTORY_QUERY_KEY_BASE","useSwapTxHistory","t0","$","_c","query","queryClient","useQueryClient","t1","t2","t3","assertProp","queryParamsWithoutChainId","queryKeyWithoutChainId","query_0","getQueryCache","find","queryKey","stale","dataForAllChains","state","filter","tx","enabled","t4","queryFn","useQuery"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { DefaultError, UseQueryResult } from '@tanstack/react-query';
2
+ export declare function useCachedQueryError<TData = unknown, TError = DefaultError>(query: UseQueryResult<TData, TError>): TError | null;
3
+ //# sourceMappingURL=useCachedQueryError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCachedQueryError.d.ts","sourceRoot":"","sources":["../../src/hooks/useCachedQueryError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG1E,wBAAgB,mBAAmB,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,YAAY,EACxE,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,GACnC,MAAM,GAAG,IAAI,CAYf"}
@@ -0,0 +1,11 @@
1
+ import { useRef } from 'react';
2
+
3
+ function useCachedQueryError(query) {
4
+ const errorRef = useRef(query.error);
5
+ if (query.error) errorRef.current = query.error;
6
+ if (query.isSuccess) errorRef.current = null;
7
+ return errorRef.current;
8
+ }
9
+
10
+ export { useCachedQueryError };
11
+ //# sourceMappingURL=useCachedQueryError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCachedQueryError.js","sources":["../../src/hooks/useCachedQueryError.ts"],"sourcesContent":["import type { DefaultError, UseQueryResult } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\n\nexport function useCachedQueryError<TData = unknown, TError = DefaultError>(\n query: UseQueryResult<TData, TError>\n): TError | null {\n // keep track if last result was error\n const errorRef = useRef(query.error);\n // by itself isError resets when fetching\n\n /* eslint-disable react-hooks/refs */\n if (query.error) errorRef.current = query.error;\n // keep errorRef until delta succeeds\n if (query.isSuccess) errorRef.current = null;\n /* eslint-disable react-hooks/refs */\n\n return errorRef.current;\n}\n"],"names":["useCachedQueryError","query","errorRef","useRef","error","current","isSuccess"],"mappings":";;AAGO,SAASA,oBACdC,KAAAA,EACe;AAEf,EAAA,MAAMC,QAAAA,GAAWC,MAAAA,CAAOF,KAAAA,CAAMG,KAAK,CAAA;AAInC,EAAA,IAAIH,KAAAA,CAAMG,KAAAA,EAAOF,QAAAA,CAASG,OAAAA,GAAUJ,KAAAA,CAAMG,KAAAA;AAE1C,EAAA,IAAIH,KAAAA,CAAMK,SAAAA,EAAWJ,QAAAA,CAASG,OAAAA,GAAU,IAAA;AAGxC,EAAA,OAAOH,QAAAA,CAASG,OAAAA;AAClB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSDK.d.ts","sourceRoot":"","sources":["../../src/hooks/useSDK.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSDK.d.ts","sourceRoot":"","sources":["../../src/hooks/useSDK.ts"],"names":[],"mappings":"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"}
@@ -2,18 +2,18 @@ import axios from 'axios';
2
2
  import { useMemo } from 'react';
3
3
  import { constructAxiosFetcher, constructPartialSDK, constructGetDeltaOrders, constructGetDeltaPrice, constructBuildDeltaOrder, constructPostDeltaOrder, constructGetBridgeInfo, constructIsTokenSupportedInDelta, constructViemContractCaller, constructCancelDeltaOrder, constructSignDeltaOrder, constructGetRate, constructGetSpender, constructBuildTx, constructFillOrderDirectly, constructPreSignDeltaOrder, constructGetLimitOrders, constructBuildLimitOrder, constructPostLimitOrder, constructAllLimitOrdersHandlers, constructFetchFetcher } from '@velora-dex/sdk';
4
4
  import { encodeFunctionData } from 'viem';
5
- import { API_URL } from '../lib/constants/index.js';
6
5
  import { useLogger } from '../core/logger.js';
6
+ import { getApiURL } from '../lib/constants/urls.js';
7
7
 
8
8
  const fetcher = constructAxiosFetcher(axios);
9
9
  function useMarketSwapSDK({
10
10
  chainId,
11
- apiURL = API_URL
11
+ apiURL
12
12
  }) {
13
13
  "use no memo";
14
14
  const sdk = useMemo(() => {
15
15
  const SDKconfig = {
16
- apiURL,
16
+ apiURL: apiURL ?? getApiURL(),
17
17
  chainId,
18
18
  fetcher
19
19
  };
@@ -28,7 +28,7 @@ function useMarketSwapSDK({
28
28
  }
29
29
  function useLimitOrdersSDK({
30
30
  chainId,
31
- apiURL = API_URL,
31
+ apiURL,
32
32
  account,
33
33
  client
34
34
  }) {
@@ -37,7 +37,7 @@ function useLimitOrdersSDK({
37
37
  const sdk = useMemo(() => {
38
38
  logger.log("init sdk");
39
39
  const SDKconfig = {
40
- apiURL,
40
+ apiURL: apiURL ?? getApiURL(),
41
41
  chainId,
42
42
  fetcher
43
43
  };
@@ -82,7 +82,7 @@ const constructCalldataContractCaller = () => {
82
82
  };
83
83
  const useFetchOnlySDK = ({
84
84
  chainId,
85
- apiURL = API_URL
85
+ apiURL
86
86
  }) => {
87
87
  "use no memo";
88
88
  const sdk = useMemo(() => {
@@ -98,7 +98,7 @@ const useFetchOnlySDK = ({
98
98
  });
99
99
  };
100
100
  return constructPartialSDK({
101
- apiURL,
101
+ apiURL: apiURL ?? getApiURL(),
102
102
  chainId,
103
103
  fetcher: fetcher2
104
104
  }, constructPostDeltaOrder);
@@ -112,7 +112,7 @@ const useFetchOnlySDK = ({
112
112
  };
113
113
  const useCalldataSDK = ({
114
114
  chainId,
115
- apiURL = API_URL,
115
+ apiURL,
116
116
  client
117
117
  }) => {
118
118
  "use no memo";
@@ -122,7 +122,7 @@ const useCalldataSDK = ({
122
122
  logger.log("init sdk");
123
123
  const contractCaller = constructCalldataContractCaller();
124
124
  const SDKconfig = {
125
- apiURL,
125
+ apiURL: apiURL ?? getApiURL(),
126
126
  chainId,
127
127
  fetcher,
128
128
  contractCaller
@@ -138,7 +138,7 @@ const useCalldataSDK = ({
138
138
  };
139
139
  function useDeltaSDK({
140
140
  chainId,
141
- apiURL = API_URL,
141
+ apiURL,
142
142
  account,
143
143
  client
144
144
  }) {
@@ -147,7 +147,7 @@ function useDeltaSDK({
147
147
  const sdk = useMemo(() => {
148
148
  logger.log("init sdk");
149
149
  const SDKconfig = {
150
- apiURL,
150
+ apiURL: apiURL ?? getApiURL(),
151
151
  chainId,
152
152
  fetcher
153
153
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useSDK.js","sources":["../../src/hooks/useSDK.ts"],"sourcesContent":["import axios from \"axios\";\nimport { useMemo } from \"react\";\n\nimport {\n constructAxiosFetcher,\n constructFetchFetcher,\n constructPartialSDK,\n constructGetSpender,\n constructBuildTx,\n constructAllLimitOrdersHandlers,\n constructGetRate,\n constructGetDeltaPrice,\n constructGetDeltaOrders,\n constructBuildDeltaOrder,\n constructSignDeltaOrder,\n constructPreSignDeltaOrder,\n constructPostDeltaOrder,\n constructCancelDeltaOrder,\n constructGetBridgeInfo,\n constructIsTokenSupportedInDelta,\n constructViemContractCaller,\n type LimitOrderHandlers,\n type GetRateFunctions,\n type APIVersion,\n type GetDeltaOrdersFunctions,\n type GetDeltaPriceFunctions,\n type PostDeltaOrderFunctions,\n type BuildDeltaOrderFunctions,\n type SignDeltaOrderFunctions,\n type PreSignDeltaOrderFunctions,\n type CancelDeltaOrderFunctions,\n type GetBridgeInfoFunctions,\n type IsTokenSupportedInDeltaFunctions,\n type BuildTxFunctions,\n type GetSpenderFunctions,\n type MinViemClient,\n constructGetLimitOrders,\n constructBuildLimitOrder,\n constructPostLimitOrder,\n constructFillOrderDirectly,\n type GetLimitOrdersFunctions,\n type BuildLimitOrderFunctions,\n type PostLimitOrderFunctions,\n type FillOrderDirectlyFunctions,\n type ContractCallerFunctions,\n} from \"@velora-dex/sdk\";\nimport { encodeFunctionData, type Address, type Hash, type Hex } from \"viem\";\nimport type { Prettify } from \"ts-essentials\";\nimport { API_URL } from \"@/lib/constants\";\nimport { useLogger } from \"@/core/logger\";\n\nconst fetcher = constructAxiosFetcher(axios);\n\ntype SDKCreateParams = {\n chainId: number;\n apiURL?: string;\n account?: Address;\n};\n\nexport type MarketSwapSDK = Prettify<\n GetSpenderFunctions & BuildTxFunctions & GetRateFunctions\n>;\n\ntype ConstructedSDKOutput<T> = {\n sdk: T;\n appVersion: APIVersion;\n chainId: number;\n apiURL: string;\n};\n\nexport function useMarketSwapSDK({\n chainId,\n apiURL = API_URL,\n}: SDKCreateParams): ConstructedSDKOutput<MarketSwapSDK> {\n \"use no memo\";\n\n const sdk = useMemo(() => {\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n };\n\n return constructPartialSDK(\n SDKconfig,\n constructGetRate,\n constructGetSpender,\n constructBuildTx\n );\n }, [apiURL, chainId]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\ntype LimitOrdersSDKCreateParams = SDKCreateParams & {\n client?: MinViemClient;\n};\n\ntype ReadOnlyLimitOrdersSDK = Prettify<\n GetLimitOrdersFunctions & BuildLimitOrderFunctions & PostLimitOrderFunctions\n>;\n\nexport type LimitOrdersSDK = Prettify<LimitOrderHandlers<Hash>>;\n\n// can paraswap.fillOrder from a taker address to simulate happy path\n// @TODO check that we always use correct SDK version\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account?: undefined;\n client?: undefined;\n}): ConstructedSDKOutput<ReadOnlyLimitOrdersSDK>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account: Address;\n client: MinViemClient;\n}): ConstructedSDKOutput<LimitOrdersSDK>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams): ConstructedSDKOutput<\n LimitOrdersSDK | ReadOnlyLimitOrdersSDK\n>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL = API_URL,\n account,\n client,\n}: LimitOrdersSDKCreateParams): ConstructedSDKOutput<\n LimitOrdersSDK | ReadOnlyLimitOrdersSDK\n> {\n \"use no memo\";\n\n const logger = useLogger(\"LimitOrdersSDK\");\n\n const sdk = useMemo(() => {\n logger.log(\"init sdk\");\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n };\n\n if (!client || !account) {\n return constructPartialSDK(\n SDKconfig,\n constructGetLimitOrders,\n constructBuildLimitOrder,\n constructPostLimitOrder\n );\n }\n\n const contractCaller = constructViemContractCaller(client, account);\n\n return constructPartialSDK(\n { ...SDKconfig, contractCaller },\n constructAllLimitOrdersHandlers\n );\n }, [client, account, apiURL, chainId, logger]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n\n// ContractCaller that returns Contract[method](args) calldata instead of sending out a transaction\ntype CalldataContractCaller = ContractCallerFunctions<Hex>;\n\nconst constructCalldataContractCaller = (): CalldataContractCaller => {\n const transactCall: CalldataContractCaller[\"transactCall\"] = async (\n params\n ) => {\n const { abi, contractMethod: functionName, args } = params;\n const calldata = encodeFunctionData<typeof abi, string>({\n abi,\n functionName,\n args,\n });\n return calldata;\n };\n\n // won't be used, but needed for types\n const staticCall = () => {\n throw new Error(\"Not implemented\");\n };\n\n return {\n transactCall,\n staticCall,\n signTypedDataCall: staticCall,\n };\n};\n\n// can be used to POST final data before page is closed\nexport const useFetchOnlySDK = ({\n chainId,\n apiURL = API_URL,\n}: SDKCreateParams): Partial<ConstructedSDKOutput<PostDeltaOrderFunctions>> => {\n \"use no memo\";\n\n const sdk = useMemo(() => {\n if (typeof window === \"undefined\") return;\n const _fetcher = constructFetchFetcher(window.fetch);\n const fetcher: typeof _fetcher = (params) => {\n return _fetcher({\n ...params,\n requestParams: {\n ...params.requestParams,\n keepalive: true,\n },\n });\n };\n // fetch, unlike axios allows for `keepalive` parameter,\n // so we can use it to keep the request alive a bit after the page is closed.\n // the alternative of using navigator.sendBeacon doesn't work with API because it includes credentials always\n // which is incompatible with API CORS settings\n return constructPartialSDK(\n { apiURL, chainId, fetcher },\n constructPostDeltaOrder\n );\n }, [apiURL, chainId]);\n\n return {\n appVersion: sdk?.version,\n chainId: sdk?.chainId,\n apiURL: sdk?.apiURL,\n sdk,\n };\n};\n\nexport const useCalldataSDK = ({\n chainId,\n apiURL = API_URL,\n client,\n}: Omit<LimitOrdersSDKCreateParams, \"account\">): Partial<\n ConstructedSDKOutput<\n FillOrderDirectlyFunctions<Hex> &\n PreSignDeltaOrderFunctions<Hex> &\n BuildDeltaOrderFunctions\n >\n> => {\n \"use no memo\";\n\n const logger = useLogger(\"CalldataSDK\");\n\n const sdk = useMemo(() => {\n if (!client) return;\n logger.log(\"init sdk\");\n\n const contractCaller = constructCalldataContractCaller();\n\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n contractCaller,\n };\n\n return constructPartialSDK(\n SDKconfig,\n constructFillOrderDirectly,\n constructPreSignDeltaOrder,\n constructBuildDeltaOrder\n );\n }, [client, logger, apiURL, chainId]);\n\n return {\n appVersion: sdk?.version,\n chainId: sdk?.chainId,\n apiURL: sdk?.apiURL,\n sdk,\n };\n};\n\ntype ReadOnlyDeltaSDK = Prettify<\n GetDeltaOrdersFunctions &\n GetDeltaPriceFunctions &\n BuildDeltaOrderFunctions &\n PostDeltaOrderFunctions &\n GetBridgeInfoFunctions &\n IsTokenSupportedInDeltaFunctions & { chainId: number }\n>;\n\nexport type DeltaSDK = Prettify<\n ReadOnlyDeltaSDK & SignDeltaOrderFunctions & CancelDeltaOrderFunctions\n>;\n\ntype DeltaSDKCreateParams = SDKCreateParams & {\n client?: MinViemClient;\n};\n\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams & {\n account?: undefined;\n client?: undefined;\n}): ConstructedSDKOutput<ReadOnlyDeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams & {\n account: Address;\n client: MinViemClient;\n}): ConstructedSDKOutput<DeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams): ConstructedSDKOutput<DeltaSDK | ReadOnlyDeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL = API_URL,\n account,\n client,\n}: DeltaSDKCreateParams): ConstructedSDKOutput<DeltaSDK | ReadOnlyDeltaSDK> {\n \"use no memo\";\n // react-compiler fails here and sdk is created anew\n\n const logger = useLogger(\"DeltaSDK\");\n\n const sdk = useMemo(() => {\n logger.log(\"init sdk\");\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n };\n\n if (!client || !account) {\n return constructPartialSDK(\n SDKconfig,\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructIsTokenSupportedInDelta\n );\n }\n\n const contractCaller = constructViemContractCaller(client, account);\n\n return constructPartialSDK(\n { ...SDKconfig, contractCaller },\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructPostDeltaOrder,\n constructCancelDeltaOrder,\n constructGetBridgeInfo,\n constructIsTokenSupportedInDelta,\n constructSignDeltaOrder\n );\n }, [logger, apiURL, chainId, client, account]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n"],"names":["fetcher","constructAxiosFetcher","axios","useMarketSwapSDK","chainId","apiURL","API_URL","sdk","useMemo","SDKconfig","constructPartialSDK","constructGetRate","constructGetSpender","constructBuildTx","appVersion","version","useLimitOrdersSDK","account","client","logger","useLogger","log","constructGetLimitOrders","constructBuildLimitOrder","constructPostLimitOrder","contractCaller","constructViemContractCaller","constructAllLimitOrdersHandlers","constructCalldataContractCaller","transactCall","params","abi","contractMethod","functionName","args","calldata","encodeFunctionData","staticCall","Error","signTypedDataCall","useFetchOnlySDK","window","_fetcher","constructFetchFetcher","fetch","requestParams","keepalive","constructPostDeltaOrder","useCalldataSDK","constructFillOrderDirectly","constructPreSignDeltaOrder","constructBuildDeltaOrder","useDeltaSDK","constructGetDeltaOrders","constructGetDeltaPrice","constructGetBridgeInfo","constructIsTokenSupportedInDelta","constructCancelDeltaOrder","constructSignDeltaOrder"],"mappings":";;;;;;;AAmDA,MAAMA,OAAAA,GAAUC,sBAAsBC,KAAK,CAAA;AAmBpC,SAASC,gBAAAA,CAAiB;AAAA,EAC/BC,OAAAA;AAAAA,EACAC,MAAAA,GAASC;AACM,CAAA,EAAwC;AACvD,EAAA,aAAA;AAEA,EAAA,MAAMC,GAAAA,GAAMC,QAAQ,MAAM;AACxB,IAAA,MAAMC,SAAAA,GAAY;AAAA,MAChBJ,MAAAA;AAAAA,MACAD,OAAAA;AAAAA,MACAJ;AAAAA,KACF;AAEA,IAAA,OAAOU,mBAAAA,CACLD,SAAAA,EACAE,gBAAAA,EACAC,mBAAAA,EACAC,gBACF,CAAA;AAAA,EACF,CAAA,EAAG,CAACR,MAAAA,EAAQD,OAAO,CAAC,CAAA;AAEpB,EAAA,OAAO;AAAA,IACLU,YAAYP,GAAAA,CAAIQ,OAAAA;AAAAA,IAChBX,SAASG,GAAAA,CAAIH,OAAAA;AAAAA,IACbC,QAAQE,GAAAA,CAAIF,MAAAA;AAAAA,IACZE;AAAAA,GACF;AACF;AAuCO,SAASS,iBAAAA,CAAkB;AAAA,EAChCZ,OAAAA;AAAAA,EACAC,MAAAA,GAASC,OAAAA;AAAAA,EACTW,OAAAA;AAAAA,EACAC;AAC0B,CAAA,EAE1B;AACA,EAAA,aAAA;AAEA,EAAA,MAAMC,MAAAA,GAASC,UAAU,gBAAgB,CAAA;AAEzC,EAAA,MAAMb,GAAAA,GAAMC,QAAQ,MAAM;AACxBW,IAAAA,MAAAA,CAAOE,IAAI,UAAU,CAAA;AACrB,IAAA,MAAMZ,SAAAA,GAAY;AAAA,MAChBJ,MAAAA;AAAAA,MACAD,OAAAA;AAAAA,MACAJ;AAAAA,KACF;AAEA,IAAA,IAAI,CAACkB,MAAAA,IAAU,CAACD,OAAAA,EAAS;AACvB,MAAA,OAAOP,mBAAAA,CACLD,SAAAA,EACAa,uBAAAA,EACAC,wBAAAA,EACAC,uBACF,CAAA;AAAA,IACF;AAEA,IAAA,MAAMC,cAAAA,GAAiBC,2BAAAA,CAA4BR,MAAAA,EAAQD,OAAO,CAAA;AAElE,IAAA,OAAOP,mBAAAA,CACL;AAAA,MAAE,GAAGD,SAAAA;AAAAA,MAAWgB;AAAAA,OAChBE,+BACF,CAAA;AAAA,EACF,GAAG,CAACT,MAAAA,EAAQD,SAASZ,MAAAA,EAAQD,OAAAA,EAASe,MAAM,CAAC,CAAA;AAE7C,EAAA,OAAO;AAAA,IACLL,YAAYP,GAAAA,CAAIQ,OAAAA;AAAAA,IAChBX,SAASG,GAAAA,CAAIH,OAAAA;AAAAA,IACbC,QAAQE,GAAAA,CAAIF,MAAAA;AAAAA,IACZE;AAAAA,GACF;AACF;AAKA,MAAMqB,kCAAkCA,MAA8B;AACpE,EAAA,MAAMC,YAAAA,GAAuD,OAC3DC,MAAAA,KACG;AACH,IAAA,MAAM;AAAA,MAAEC,GAAAA;AAAAA,MAAKC,cAAAA,EAAgBC,YAAAA;AAAAA,MAAcC;AAAAA,KAAK,GAAIJ,MAAAA;AACpD,IAAA,MAAMK,WAAWC,kBAAAA,CAAuC;AAAA,MACtDL,GAAAA;AAAAA,MACAE,YAAAA;AAAAA,MACAC;AAAAA,KACD,CAAA;AACD,IAAA,OAAOC,QAAAA;AAAAA,EACT,CAAA;AAGA,EAAA,MAAME,aAAaA,MAAM;AACvB,IAAA,MAAM,IAAIC,MAAM,iBAAiB,CAAA;AAAA,EACnC,CAAA;AAEA,EAAA,OAAO;AAAA,IACLT,YAAAA;AAAAA,IACAQ,UAAAA;AAAAA,IACAE,iBAAAA,EAAmBF;AAAAA,GACrB;AACF,CAAA;AAGO,MAAMG,kBAAkBA,CAAC;AAAA,EAC9BpC,OAAAA;AAAAA,EACAC,MAAAA,GAASC;AACM,CAAA,KAA8D;AAC7E,EAAA,aAAA;AAEA,EAAA,MAAMC,GAAAA,GAAMC,QAAQ,MAAM;AACxB,IAAA,IAAI,OAAOiC,WAAW,WAAA,EAAa;AACnC,IAAA,MAAMC,QAAAA,GAAWC,qBAAAA,CAAsBF,MAAAA,CAAOG,KAAK,CAAA;AACnD,IAAA,MAAM5C,WAA4B8B,CAAAA,MAAAA,KAAW;AAC3C,MAAA,OAAOY,QAAAA,CAAS;AAAA,QACd,GAAGZ,MAAAA;AAAAA,QACHe,aAAAA,EAAe;AAAA,UACb,GAAGf,MAAAA,CAAOe,aAAAA;AAAAA,UACVC,SAAAA,EAAW;AAAA;AACb,OACD,CAAA;AAAA,IACH,CAAA;AAKA,IAAA,OAAOpC,mBAAAA,CACL;AAAA,MAAEL,MAAAA;AAAAA,MAAQD,OAAAA;AAAAA,MAASJ,OAAAA,EAAAA;AAAAA,OACnB+C,uBACF,CAAA;AAAA,EACF,CAAA,EAAG,CAAC1C,MAAAA,EAAQD,OAAO,CAAC,CAAA;AAEpB,EAAA,OAAO;AAAA,IACLU,YAAYP,GAAAA,EAAKQ,OAAAA;AAAAA,IACjBX,SAASG,GAAAA,EAAKH,OAAAA;AAAAA,IACdC,QAAQE,GAAAA,EAAKF,MAAAA;AAAAA,IACbE;AAAAA,GACF;AACF;AAEO,MAAMyC,iBAAiBA,CAAC;AAAA,EAC7B5C,OAAAA;AAAAA,EACAC,MAAAA,GAASC,OAAAA;AAAAA,EACTY;AAC2C,CAAA,KAMxC;AACH,EAAA,aAAA;AAEA,EAAA,MAAMC,MAAAA,GAASC,UAAU,aAAa,CAAA;AAEtC,EAAA,MAAMb,GAAAA,GAAMC,QAAQ,MAAM;AACxB,IAAA,IAAI,CAACU,MAAAA,EAAQ;AACbC,IAAAA,MAAAA,CAAOE,IAAI,UAAU,CAAA;AAErB,IAAA,MAAMI,iBAAiBG,+BAAAA,EAAgC;AAEvD,IAAA,MAAMnB,SAAAA,GAAY;AAAA,MAChBJ,MAAAA;AAAAA,MACAD,OAAAA;AAAAA,MACAJ,OAAAA;AAAAA,MACAyB;AAAAA,KACF;AAEA,IAAA,OAAOf,mBAAAA,CACLD,SAAAA,EACAwC,0BAAAA,EACAC,0BAAAA,EACAC,wBACF,CAAA;AAAA,EACF,GAAG,CAACjC,MAAAA,EAAQC,MAAAA,EAAQd,MAAAA,EAAQD,OAAO,CAAC,CAAA;AAEpC,EAAA,OAAO;AAAA,IACLU,YAAYP,GAAAA,EAAKQ,OAAAA;AAAAA,IACjBX,SAASG,GAAAA,EAAKH,OAAAA;AAAAA,IACdC,QAAQE,GAAAA,EAAKF,MAAAA;AAAAA,IACbE;AAAAA,GACF;AACF;AA2CO,SAAS6C,WAAAA,CAAY;AAAA,EAC1BhD,OAAAA;AAAAA,EACAC,MAAAA,GAASC,OAAAA;AAAAA,EACTW,OAAAA;AAAAA,EACAC;AACoB,CAAA,EAAsD;AAC1E,EAAA,aAAA;AAGA,EAAA,MAAMC,MAAAA,GAASC,UAAU,UAAU,CAAA;AAEnC,EAAA,MAAMb,GAAAA,GAAMC,QAAQ,MAAM;AACxBW,IAAAA,MAAAA,CAAOE,IAAI,UAAU,CAAA;AACrB,IAAA,MAAMZ,SAAAA,GAAY;AAAA,MAChBJ,MAAAA;AAAAA,MACAD,OAAAA;AAAAA,MACAJ;AAAAA,KACF;AAEA,IAAA,IAAI,CAACkB,MAAAA,IAAU,CAACD,OAAAA,EAAS;AACvB,MAAA,OAAOP,oBACLD,SAAAA,EACA4C,uBAAAA,EACAC,wBACAH,wBAAAA,EACAJ,uBAAAA,EACAQ,wBACAC,gCACF,CAAA;AAAA,IACF;AAEA,IAAA,MAAM/B,cAAAA,GAAiBC,2BAAAA,CAA4BR,MAAAA,EAAQD,OAAO,CAAA;AAElE,IAAA,OAAOP,mBAAAA,CACL;AAAA,MAAE,GAAGD,SAAAA;AAAAA,MAAWgB;AAAAA,KAAe,EAC/B4B,yBACAC,sBAAAA,EACAH,wBAAAA,EACAJ,yBACAU,yBAAAA,EACAF,sBAAAA,EACAC,kCACAE,uBACF,CAAA;AAAA,EACF,GAAG,CAACvC,MAAAA,EAAQd,QAAQD,OAAAA,EAASc,MAAAA,EAAQD,OAAO,CAAC,CAAA;AAE7C,EAAA,OAAO;AAAA,IACLH,YAAYP,GAAAA,CAAIQ,OAAAA;AAAAA,IAChBX,SAASG,GAAAA,CAAIH,OAAAA;AAAAA,IACbC,QAAQE,GAAAA,CAAIF,MAAAA;AAAAA,IACZE;AAAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"useSDK.js","sources":["../../src/hooks/useSDK.ts"],"sourcesContent":["import axios from \"axios\";\nimport { useMemo } from \"react\";\n\nimport {\n constructAxiosFetcher,\n constructFetchFetcher,\n constructPartialSDK,\n constructGetSpender,\n constructBuildTx,\n constructAllLimitOrdersHandlers,\n constructGetRate,\n constructGetDeltaPrice,\n constructGetDeltaOrders,\n constructBuildDeltaOrder,\n constructSignDeltaOrder,\n constructPreSignDeltaOrder,\n constructPostDeltaOrder,\n constructCancelDeltaOrder,\n constructGetBridgeInfo,\n constructIsTokenSupportedInDelta,\n constructViemContractCaller,\n type LimitOrderHandlers,\n type GetRateFunctions,\n type APIVersion,\n type GetDeltaOrdersFunctions,\n type GetDeltaPriceFunctions,\n type PostDeltaOrderFunctions,\n type BuildDeltaOrderFunctions,\n type SignDeltaOrderFunctions,\n type PreSignDeltaOrderFunctions,\n type CancelDeltaOrderFunctions,\n type GetBridgeInfoFunctions,\n type IsTokenSupportedInDeltaFunctions,\n type BuildTxFunctions,\n type GetSpenderFunctions,\n type MinViemClient,\n constructGetLimitOrders,\n constructBuildLimitOrder,\n constructPostLimitOrder,\n constructFillOrderDirectly,\n type GetLimitOrdersFunctions,\n type BuildLimitOrderFunctions,\n type PostLimitOrderFunctions,\n type FillOrderDirectlyFunctions,\n type ContractCallerFunctions,\n} from \"@velora-dex/sdk\";\nimport { encodeFunctionData, type Address, type Hash, type Hex } from \"viem\";\nimport type { Prettify } from \"ts-essentials\";\nimport { useLogger } from \"@/core/logger\";\nimport { getApiURL } from \"@/lib/constants/urls\";\n\nconst fetcher = constructAxiosFetcher(axios);\n\ntype SDKCreateParams = {\n chainId: number;\n apiURL?: string;\n account?: Address;\n};\n\nexport type MarketSwapSDK = Prettify<\n GetSpenderFunctions & BuildTxFunctions & GetRateFunctions\n>;\n\ntype ConstructedSDKOutput<T> = {\n sdk: T;\n appVersion: APIVersion;\n chainId: number;\n apiURL: string;\n};\n\nexport function useMarketSwapSDK({\n chainId,\n apiURL,\n}: SDKCreateParams): ConstructedSDKOutput<MarketSwapSDK> {\n \"use no memo\";\n\n const sdk = useMemo(() => {\n const SDKconfig = {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n };\n\n return constructPartialSDK(\n SDKconfig,\n constructGetRate,\n constructGetSpender,\n constructBuildTx\n );\n }, [apiURL, chainId]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\ntype LimitOrdersSDKCreateParams = SDKCreateParams & {\n client?: MinViemClient;\n};\n\ntype ReadOnlyLimitOrdersSDK = Prettify<\n GetLimitOrdersFunctions & BuildLimitOrderFunctions & PostLimitOrderFunctions\n>;\n\nexport type LimitOrdersSDK = Prettify<LimitOrderHandlers<Hash>>;\n\n// can paraswap.fillOrder from a taker address to simulate happy path\n// @TODO check that we always use correct SDK version\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account?: undefined;\n client?: undefined;\n}): ConstructedSDKOutput<ReadOnlyLimitOrdersSDK>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account: Address;\n client: MinViemClient;\n}): ConstructedSDKOutput<LimitOrdersSDK>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams): ConstructedSDKOutput<\n LimitOrdersSDK | ReadOnlyLimitOrdersSDK\n>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams): ConstructedSDKOutput<\n LimitOrdersSDK | ReadOnlyLimitOrdersSDK\n> {\n \"use no memo\";\n\n const logger = useLogger(\"LimitOrdersSDK\");\n\n const sdk = useMemo(() => {\n logger.log(\"init sdk\");\n const SDKconfig = {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n };\n\n if (!client || !account) {\n return constructPartialSDK(\n SDKconfig,\n constructGetLimitOrders,\n constructBuildLimitOrder,\n constructPostLimitOrder\n );\n }\n\n const contractCaller = constructViemContractCaller(client, account);\n\n return constructPartialSDK(\n { ...SDKconfig, contractCaller },\n constructAllLimitOrdersHandlers\n );\n }, [client, account, apiURL, chainId, logger]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n\n// ContractCaller that returns Contract[method](args) calldata instead of sending out a transaction\ntype CalldataContractCaller = ContractCallerFunctions<Hex>;\n\nconst constructCalldataContractCaller = (): CalldataContractCaller => {\n const transactCall: CalldataContractCaller[\"transactCall\"] = async (\n params\n ) => {\n const { abi, contractMethod: functionName, args } = params;\n const calldata = encodeFunctionData<typeof abi, string>({\n abi,\n functionName,\n args,\n });\n return calldata;\n };\n\n // won't be used, but needed for types\n const staticCall = () => {\n throw new Error(\"Not implemented\");\n };\n\n return {\n transactCall,\n staticCall,\n signTypedDataCall: staticCall,\n };\n};\n\n// can be used to POST final data before page is closed\nexport const useFetchOnlySDK = ({\n chainId,\n apiURL,\n}: SDKCreateParams): Partial<ConstructedSDKOutput<PostDeltaOrderFunctions>> => {\n \"use no memo\";\n\n const sdk = useMemo(() => {\n if (typeof window === \"undefined\") return;\n const _fetcher = constructFetchFetcher(window.fetch);\n const fetcher: typeof _fetcher = (params) => {\n return _fetcher({\n ...params,\n requestParams: {\n ...params.requestParams,\n keepalive: true,\n },\n });\n };\n // fetch, unlike axios allows for `keepalive` parameter,\n // so we can use it to keep the request alive a bit after the page is closed.\n // the alternative of using navigator.sendBeacon doesn't work with API because it includes credentials always\n // which is incompatible with API CORS settings\n return constructPartialSDK(\n {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n },\n constructPostDeltaOrder\n );\n }, [apiURL, chainId]);\n\n return {\n appVersion: sdk?.version,\n chainId: sdk?.chainId,\n apiURL: sdk?.apiURL,\n sdk,\n };\n};\n\nexport const useCalldataSDK = ({\n chainId,\n apiURL,\n client,\n}: Omit<LimitOrdersSDKCreateParams, \"account\">): Partial<\n ConstructedSDKOutput<\n FillOrderDirectlyFunctions<Hex> &\n PreSignDeltaOrderFunctions<Hex> &\n BuildDeltaOrderFunctions\n >\n> => {\n \"use no memo\";\n\n const logger = useLogger(\"CalldataSDK\");\n\n const sdk = useMemo(() => {\n if (!client) return;\n logger.log(\"init sdk\");\n\n const contractCaller = constructCalldataContractCaller();\n\n const SDKconfig = {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n contractCaller,\n };\n\n return constructPartialSDK(\n SDKconfig,\n constructFillOrderDirectly,\n constructPreSignDeltaOrder,\n constructBuildDeltaOrder\n );\n }, [client, logger, apiURL, chainId]);\n\n return {\n appVersion: sdk?.version,\n chainId: sdk?.chainId,\n apiURL: sdk?.apiURL,\n sdk,\n };\n};\n\ntype ReadOnlyDeltaSDK = Prettify<\n GetDeltaOrdersFunctions &\n GetDeltaPriceFunctions &\n BuildDeltaOrderFunctions &\n PostDeltaOrderFunctions &\n GetBridgeInfoFunctions &\n IsTokenSupportedInDeltaFunctions & { chainId: number }\n>;\n\nexport type DeltaSDK = Prettify<\n ReadOnlyDeltaSDK & SignDeltaOrderFunctions & CancelDeltaOrderFunctions\n>;\n\ntype DeltaSDKCreateParams = SDKCreateParams & {\n client?: MinViemClient;\n};\n\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams & {\n account?: undefined;\n client?: undefined;\n}): ConstructedSDKOutput<ReadOnlyDeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams & {\n account: Address;\n client: MinViemClient;\n}): ConstructedSDKOutput<DeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams): ConstructedSDKOutput<DeltaSDK | ReadOnlyDeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams): ConstructedSDKOutput<DeltaSDK | ReadOnlyDeltaSDK> {\n \"use no memo\";\n // react-compiler fails here and sdk is created anew\n\n const logger = useLogger(\"DeltaSDK\");\n\n const sdk = useMemo(() => {\n logger.log(\"init sdk\");\n const SDKconfig = {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n };\n\n if (!client || !account) {\n return constructPartialSDK(\n SDKconfig,\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructIsTokenSupportedInDelta\n );\n }\n\n const contractCaller = constructViemContractCaller(client, account);\n\n return constructPartialSDK(\n { ...SDKconfig, contractCaller },\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructPostDeltaOrder,\n constructCancelDeltaOrder,\n constructGetBridgeInfo,\n constructIsTokenSupportedInDelta,\n constructSignDeltaOrder\n );\n }, [logger, apiURL, chainId, client, account]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n"],"names":["fetcher","constructAxiosFetcher","axios","useMarketSwapSDK","chainId","apiURL","sdk","useMemo","SDKconfig","getApiURL","constructPartialSDK","constructGetRate","constructGetSpender","constructBuildTx","appVersion","version","useLimitOrdersSDK","account","client","logger","useLogger","log","constructGetLimitOrders","constructBuildLimitOrder","constructPostLimitOrder","contractCaller","constructViemContractCaller","constructAllLimitOrdersHandlers","constructCalldataContractCaller","transactCall","params","abi","contractMethod","functionName","args","calldata","encodeFunctionData","staticCall","Error","signTypedDataCall","useFetchOnlySDK","window","_fetcher","constructFetchFetcher","fetch","requestParams","keepalive","constructPostDeltaOrder","useCalldataSDK","constructFillOrderDirectly","constructPreSignDeltaOrder","constructBuildDeltaOrder","useDeltaSDK","constructGetDeltaOrders","constructGetDeltaPrice","constructGetBridgeInfo","constructIsTokenSupportedInDelta","constructCancelDeltaOrder","constructSignDeltaOrder"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  export { Widget } from './core';
2
2
  export type { WidgetProps, WidgetConfig, WidgetTheme, WidgetElements, EIP1193ProviderLax, } from './core/types';
3
3
  export type { SupportedChainId } from './lib/web3/wagmi/types';
4
- export type { Token } from './tokens/state/types';
4
+ export type { SwapMode } from './components/widget/SwapModeSwitcher/state/types';
5
+ export type { MinTradeFlowToken } from './components/widget/TradeOverview';
5
6
  export type { LimitOrderFormState, OTCOrderFormState, SwapFormState, SettingsState, TokenFormState, WidgetState, } from './events/types/common';
6
7
  export type { WidgetEventCallbacks, OnConnectWallet, OnAllowToken, OnWrapETH, OnSwap, OnLimitOrder, OnOTCOrder, OnSettingsChange, OnCancelOrder, OnFillOTCOrder, OnFormInputChange, OnPriceChange, } from './events/types';
7
8
  export type { FormInputProps } from './core/inputs/state/types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,YAAY,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,cAAc,EACd,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,YAAY,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,cAAc,EACd,WAAW,GACZ,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,SAAS,EACT,MAAM,EACN,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGhE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,YAAY,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,cAAc,EACd,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,YAAY,EAAE,QAAQ,EAAE,MAAM,kDAAkD,CAAC;AACjF,YAAY,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,cAAc,EACd,WAAW,GACZ,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,SAAS,EACT,MAAM,EACN,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGhE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,5 +1,3 @@
1
- export declare const API_URL: any;
2
- export declare const API_PROXY_URL: any;
3
1
  export declare const emptyArray: never[];
4
2
  export declare const emptyObject: Record<string, never>;
5
3
  export declare const WRAP_ETH_GAS_LIMIT_INACCURATE = 30000;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/constants/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,KACuC,CAAC;AAC5D,eAAO,MAAM,aAAa,KAC4C,CAAC;AAEvE,eAAO,MAAM,UAAU,EAAE,KAAK,EAAO,CAAC;AACtC,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAM,CAAC;AAErD,eAAO,MAAM,6BAA6B,QAAS,CAAC;AACpD,eAAO,MAAM,+BAA+B,SAAU,CAAC;AAEvD,eAAO,MAAM,uBAAuB,QAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/constants/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,EAAE,KAAK,EAAO,CAAC;AACtC,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAM,CAAC;AAErD,eAAO,MAAM,6BAA6B,QAAS,CAAC;AACpD,eAAO,MAAM,+BAA+B,SAAU,CAAC;AAEvD,eAAO,MAAM,uBAAuB,QAAc,CAAC"}
@@ -1,11 +1,8 @@
1
- const __vite_import_meta_env__ = {};
2
- const API_URL = "https://api.paraswap.io";
3
- const API_PROXY_URL = __vite_import_meta_env__["VITE_API_PROXY_URL"] ?? "https://proxy.paraswap.io";
4
1
  const emptyArray = [];
5
2
  const emptyObject = {};
6
3
  const WRAP_ETH_GAS_LIMIT_INACCURATE = 3e4;
7
4
  const FILL_ORDER_GAS_LIMIT_INACCURATE = 2e5;
8
5
  const SAFE_CALLS_WAIT_TIMEOUT = 10 * 6e4;
9
6
 
10
- export { API_PROXY_URL, API_URL, FILL_ORDER_GAS_LIMIT_INACCURATE, SAFE_CALLS_WAIT_TIMEOUT, WRAP_ETH_GAS_LIMIT_INACCURATE, emptyArray, emptyObject };
7
+ export { FILL_ORDER_GAS_LIMIT_INACCURATE, SAFE_CALLS_WAIT_TIMEOUT, WRAP_ETH_GAS_LIMIT_INACCURATE, emptyArray, emptyObject };
11
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/lib/constants/index.ts"],"sourcesContent":["export const API_URL =\n import.meta.env.VITE_API_URL ?? \"https://api.paraswap.io\";\nexport const API_PROXY_URL =\n import.meta.env[\"VITE_API_PROXY_URL\"] ?? \"https://proxy.paraswap.io\";\n\nexport const emptyArray: never[] = [];\nexport const emptyObject: Record<string, never> = {};\n\nexport const WRAP_ETH_GAS_LIMIT_INACCURATE = 30_000;\nexport const FILL_ORDER_GAS_LIMIT_INACCURATE = 200_000;\n\nexport const SAFE_CALLS_WAIT_TIMEOUT = 10 * 60_000; // 10 min\n// Safe returns callsId right away on inital tx creation,\n// the default wait is 1 min for at least `pending` status,\n// but Safe doesn't return any status until all signers are done and the actual tx is sent,\n// so the timeout may expire even before the call is sent onchain\n"],"names":["API_URL","API_PROXY_URL","import","emptyArray","emptyObject","WRAP_ETH_GAS_LIMIT_INACCURATE","FILL_ORDER_GAS_LIMIT_INACCURATE","SAFE_CALLS_WAIT_TIMEOUT"],"mappings":";AAAO,MAAMA,OAAAA,GACqB;AAC3B,MAAMC,aAAAA,GACXC,wBAAAA,CAAgB,oBAAoB,CAAA,IAAK;AAEpC,MAAMC,aAAsB;AAC5B,MAAMC,cAAqC;AAE3C,MAAMC,6BAAAA,GAAgC;AACtC,MAAMC,+BAAAA,GAAkC;AAExC,MAAMC,0BAA0B,EAAA,GAAK;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/lib/constants/index.ts"],"sourcesContent":["export const emptyArray: never[] = [];\nexport const emptyObject: Record<string, never> = {};\n\nexport const WRAP_ETH_GAS_LIMIT_INACCURATE = 30_000;\nexport const FILL_ORDER_GAS_LIMIT_INACCURATE = 200_000;\n\nexport const SAFE_CALLS_WAIT_TIMEOUT = 10 * 60_000; // 10 min\n// Safe returns callsId right away on inital tx creation,\n// the default wait is 1 min for at least `pending` status,\n// but Safe doesn't return any status until all signers are done and the actual tx is sent,\n// so the timeout may expire even before the call is sent onchain\n"],"names":["emptyArray","emptyObject","WRAP_ETH_GAS_LIMIT_INACCURATE","FILL_ORDER_GAS_LIMIT_INACCURATE","SAFE_CALLS_WAIT_TIMEOUT"],"mappings":"AAAO,MAAMA,aAAsB;AAC5B,MAAMC,cAAqC;AAE3C,MAAMC,6BAAAA,GAAgC;AACtC,MAAMC,+BAAAA,GAAkC;AAExC,MAAMC,0BAA0B,EAAA,GAAK;;;;"}
@@ -0,0 +1,4 @@
1
+ export declare function getApiURL(): string;
2
+ export declare function getApiProxyURL(): string;
3
+ export declare function getExplorerURL(): string;
4
+ //# sourceMappingURL=urls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urls.d.ts","sourceRoot":"","sources":["../../../src/lib/constants/urls.ts"],"names":[],"mappings":"AAOA,wBAAgB,SAAS,IAAI,MAAM,CAQlC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAQvC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAOvC"}
@@ -0,0 +1,30 @@
1
+ import { jotaiStore } from '../../core/inputs/state/store.js';
2
+ import { devURLsAtom } from '../../core/state/configAtom.js';
3
+
4
+ const PROD_API_URL = "https://api.paraswap.io";
5
+ const PROD_PROXY_API_URL = "https://proxy.paraswap.io";
6
+ const PROD_EXPLORER_URL = "https://explorer.velora.xyz";
7
+ function getApiURL() {
8
+ const {
9
+ apiURL
10
+ } = jotaiStore.get(devURLsAtom);
11
+ if (apiURL) return apiURL;
12
+ return PROD_API_URL;
13
+ }
14
+ function getApiProxyURL() {
15
+ const {
16
+ apiProxyURL
17
+ } = jotaiStore.get(devURLsAtom);
18
+ if (apiProxyURL) return apiProxyURL;
19
+ return PROD_PROXY_API_URL;
20
+ }
21
+ function getExplorerURL() {
22
+ const {
23
+ explorerURL
24
+ } = jotaiStore.get(devURLsAtom);
25
+ if (explorerURL) return explorerURL;
26
+ return PROD_EXPLORER_URL;
27
+ }
28
+
29
+ export { getApiProxyURL, getApiURL, getExplorerURL };
30
+ //# sourceMappingURL=urls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urls.js","sources":["../../../src/lib/constants/urls.ts"],"sourcesContent":["import { jotaiStore } from \"@/core/inputs/state/store\";\nimport { devURLsAtom } from \"@/core/state/configAtom\";\n\nconst PROD_API_URL = \"https://api.paraswap.io\";\nconst PROD_PROXY_API_URL = \"https://proxy.paraswap.io\";\nconst PROD_EXPLORER_URL = \"https://explorer.velora.xyz\";\n\nexport function getApiURL(): string {\n const fromEnv = import.meta.env.VITE_API_URL;\n if (fromEnv) return fromEnv;\n\n const { apiURL } = jotaiStore.get(devURLsAtom);\n if (apiURL) return apiURL;\n\n return PROD_API_URL;\n}\n\nexport function getApiProxyURL(): string {\n const fromEnv = import.meta.env.VITE_API_PROXY_URL;\n if (fromEnv) return fromEnv;\n\n const { apiProxyURL } = jotaiStore.get(devURLsAtom);\n if (apiProxyURL) return apiProxyURL;\n\n return PROD_PROXY_API_URL;\n}\n\nexport function getExplorerURL(): string {\n const fromEnv = import.meta.env.VITE_EXPLORER_URL;\n if (fromEnv) return fromEnv;\n\n const { explorerURL } = jotaiStore.get(devURLsAtom);\n if (explorerURL) return explorerURL;\n return PROD_EXPLORER_URL;\n}\n"],"names":["PROD_API_URL","PROD_PROXY_API_URL","PROD_EXPLORER_URL","getApiURL","apiURL","jotaiStore","get","devURLsAtom","getApiProxyURL","apiProxyURL","getExplorerURL","explorerURL"],"mappings":";;;AAGA,MAAMA,YAAAA,GAAe,yBAAA;AACrB,MAAMC,kBAAAA,GAAqB,2BAAA;AAC3B,MAAMC,iBAAAA,GAAoB,6BAAA;AAEnB,SAASC,SAAAA,GAAoB;AAIlC,EAAA,MAAM;AAAA,IAAEC;AAAAA,GAAO,GAAIC,UAAAA,CAAWC,GAAAA,CAAIC,WAAW,CAAA;AAC7C,EAAA,IAAIH,QAAQ,OAAOA,MAAAA;AAEnB,EAAA,OAAOJ,YAAAA;AACT;AAEO,SAASQ,cAAAA,GAAyB;AAIvC,EAAA,MAAM;AAAA,IAAEC;AAAAA,GAAY,GAAIJ,UAAAA,CAAWC,GAAAA,CAAIC,WAAW,CAAA;AAClD,EAAA,IAAIE,aAAa,OAAOA,WAAAA;AAExB,EAAA,OAAOR,kBAAAA;AACT;AAEO,SAASS,cAAAA,GAAyB;AAIvC,EAAA,MAAM;AAAA,IAAEC;AAAAA,GAAY,GAAIN,UAAAA,CAAWC,GAAAA,CAAIC,WAAW,CAAA;AAClD,EAAA,IAAII,aAAa,OAAOA,WAAAA;AACxB,EAAA,OAAOT,iBAAAA;AACT;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"explorer.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/explorer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,eAAO,MAAM,oBAAoB,GAC/B,UAAU,MAAM,EAChB,SAAS,MAAM,KACd,MAEF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,UAAU,MAAM,EAChB,SAAS,MAAM,KACd,MAEF,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,EAAE,SAAS,MAAM,KAAG,MAEnE,CAAC;AAKF,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,wBAAgB,gCAAgC,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,CAE7E;AAED,KAAK,iCAAiC,GAAG;IACvC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,uBAG1C,iCAAiC,KAAG,MAAM,GAAG,SAK/C,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,uBAGxC,iCAAiC,KAAG,MAAM,GAAG,SAK/C,CAAC;AAEF,KAAK,4BAA4B,GAAG;IAClC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,sBAGrC,4BAA4B,KAAG,MAAM,GAAG,SAK1C,CAAC"}
1
+ {"version":3,"file":"explorer.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/explorer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,eAAO,MAAM,oBAAoB,GAC/B,UAAU,MAAM,EAChB,SAAS,MAAM,KACd,MAEF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,UAAU,MAAM,EAChB,SAAS,MAAM,KACd,MAEF,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,EAAE,SAAS,MAAM,KAAG,MAEnE,CAAC;AAEF,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,wBAAgB,gCAAgC,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,CAE7E;AAED,KAAK,iCAAiC,GAAG;IACvC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,uBAG1C,iCAAiC,KAAG,MAAM,GAAG,SAK/C,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,uBAGxC,iCAAiC,KAAG,MAAM,GAAG,SAK/C,CAAC;AAEF,KAAK,4BAA4B,GAAG;IAClC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,sBAGrC,4BAA4B,KAAG,MAAM,GAAG,SAK1C,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { chainConfigMap } from '../web3/wagmi/constants.js';
2
+ import { getExplorerURL } from '../constants/urls.js';
2
3
 
3
4
  const constructAddressLink = (explorer, address) => {
4
5
  return `${explorer}/address/${address}`;
@@ -9,12 +10,11 @@ const constructTokenLink = (explorer, address) => {
9
10
  const constructTxLink = (explorer, address) => {
10
11
  return `${explorer}/tx/${address}`;
11
12
  };
12
- const VELORA_EXPLORER_URL = "https://explorer.velora.xyz";
13
13
  function constructExplorerOrderDetailsLink(orderId) {
14
- return `${VELORA_EXPLORER_URL}/order/${orderId}`;
14
+ return `${getExplorerURL()}/order/${orderId}`;
15
15
  }
16
16
  function constructExplorerUserDetailsLink(userAddress) {
17
- return `${VELORA_EXPLORER_URL}/address/${userAddress}`;
17
+ return `${getExplorerURL()}/address/${userAddress}`;
18
18
  }
19
19
  const constructAddressLinkForChain = ({
20
20
  chainId,
@@ -1 +1 @@
1
- {"version":3,"file":"explorer.js","sources":["../../../src/lib/utils/explorer.ts"],"sourcesContent":["import type { SupportedChainId } from \"../web3/wagmi/types\";\nimport { chainConfigMap } from \"../web3/wagmi/constants\";\nimport type { Address } from \"viem\";\n\nexport const constructAddressLink = (\n explorer: string,\n address: string\n): string => {\n return `${explorer}/address/${address}`;\n};\n\nexport const constructTokenLink = (\n explorer: string,\n address: string\n): string => {\n return `${explorer}/token/${address}`;\n};\n\nexport const constructTxLink = (explorer: string, address: string): string => {\n return `${explorer}/tx/${address}`;\n};\n\nconst VELORA_EXPLORER_URL =\n import.meta.env.VITE_EXPLORER_URL ?? \"https://explorer.velora.xyz\";\n\nexport function constructExplorerOrderDetailsLink(orderId: string): string {\n return `${VELORA_EXPLORER_URL}/order/${orderId}`;\n}\n\nexport function constructExplorerUserDetailsLink(userAddress: Address): string {\n return `${VELORA_EXPLORER_URL}/address/${userAddress}`;\n}\n\ntype ConstructAddressLinkForChainInput = {\n chainId: SupportedChainId;\n address: string;\n};\n\nexport const constructAddressLinkForChain = ({\n chainId,\n address,\n}: ConstructAddressLinkForChainInput): string | undefined => {\n const explorer = chainConfigMap[chainId].blockExplorers?.default.url;\n if (!explorer) return;\n\n return constructAddressLink(explorer, address);\n};\n\nexport const constructTokenLinkForChain = ({\n chainId,\n address,\n}: ConstructAddressLinkForChainInput): string | undefined => {\n const explorer = chainConfigMap[chainId].blockExplorers?.default.url;\n if (!explorer) return;\n\n return constructTokenLink(explorer, address);\n};\n\ntype ConstructTxLinkForChainInput = {\n chainId: SupportedChainId;\n txHash: string;\n};\n\nexport const constructTxLinkForChain = ({\n chainId,\n txHash,\n}: ConstructTxLinkForChainInput): string | undefined => {\n const explorer = chainConfigMap[chainId].blockExplorers?.default.url;\n if (!explorer) return;\n\n return constructTxLink(explorer, txHash);\n};\n"],"names":["constructAddressLink","explorer","address","constructTokenLink","constructTxLink","VELORA_EXPLORER_URL","constructExplorerOrderDetailsLink","orderId","constructExplorerUserDetailsLink","userAddress","constructAddressLinkForChain","chainId","chainConfigMap","blockExplorers","default","url","constructTokenLinkForChain","constructTxLinkForChain","txHash"],"mappings":";;AAIO,MAAMA,oBAAAA,GAAuBA,CAClCC,QAAAA,EACAC,OAAAA,KACW;AACX,EAAA,OAAO,CAAA,EAAGD,QAAQ,CAAA,SAAA,EAAYC,OAAO,CAAA,CAAA;AACvC;AAEO,MAAMC,kBAAAA,GAAqBA,CAChCF,QAAAA,EACAC,OAAAA,KACW;AACX,EAAA,OAAO,CAAA,EAAGD,QAAQ,CAAA,OAAA,EAAUC,OAAO,CAAA,CAAA;AACrC;AAEO,MAAME,eAAAA,GAAkBA,CAACH,QAAAA,EAAkBC,OAAAA,KAA4B;AAC5E,EAAA,OAAO,CAAA,EAAGD,QAAQ,CAAA,IAAA,EAAOC,OAAO,CAAA,CAAA;AAClC;AAEA,MAAMG,mBAAAA,GACiC,6BAAA;AAEhC,SAASC,kCAAkCC,OAAAA,EAAyB;AACzE,EAAA,OAAO,CAAA,EAAGF,mBAAmB,CAAA,OAAA,EAAUE,OAAO,CAAA,CAAA;AAChD;AAEO,SAASC,iCAAiCC,WAAAA,EAA8B;AAC7E,EAAA,OAAO,CAAA,EAAGJ,mBAAmB,CAAA,SAAA,EAAYI,WAAW,CAAA,CAAA;AACtD;AAOO,MAAMC,+BAA+BA,CAAC;AAAA,EAC3CC,OAAAA;AAAAA,EACAT;AACiC,CAAA,KAA0B;AAC3D,EAAA,MAAMD,QAAAA,GAAWW,cAAAA,CAAeD,OAAO,CAAA,CAAEE,gBAAgBC,OAAAA,CAAQC,GAAAA;AACjE,EAAA,IAAI,CAACd,QAAAA,EAAU;AAEf,EAAA,OAAOD,oBAAAA,CAAqBC,UAAUC,OAAO,CAAA;AAC/C;AAEO,MAAMc,6BAA6BA,CAAC;AAAA,EACzCL,OAAAA;AAAAA,EACAT;AACiC,CAAA,KAA0B;AAC3D,EAAA,MAAMD,QAAAA,GAAWW,cAAAA,CAAeD,OAAO,CAAA,CAAEE,gBAAgBC,OAAAA,CAAQC,GAAAA;AACjE,EAAA,IAAI,CAACd,QAAAA,EAAU;AAEf,EAAA,OAAOE,kBAAAA,CAAmBF,UAAUC,OAAO,CAAA;AAC7C;AAOO,MAAMe,0BAA0BA,CAAC;AAAA,EACtCN,OAAAA;AAAAA,EACAO;AAC4B,CAAA,KAA0B;AACtD,EAAA,MAAMjB,QAAAA,GAAWW,cAAAA,CAAeD,OAAO,CAAA,CAAEE,gBAAgBC,OAAAA,CAAQC,GAAAA;AACjE,EAAA,IAAI,CAACd,QAAAA,EAAU;AAEf,EAAA,OAAOG,eAAAA,CAAgBH,UAAUiB,MAAM,CAAA;AACzC;;;;"}
1
+ {"version":3,"file":"explorer.js","sources":["../../../src/lib/utils/explorer.ts"],"sourcesContent":["import type { SupportedChainId } from \"../web3/wagmi/types\";\nimport { chainConfigMap } from \"../web3/wagmi/constants\";\nimport type { Address } from \"viem\";\nimport { getExplorerURL } from \"../constants/urls\";\n\nexport const constructAddressLink = (\n explorer: string,\n address: string\n): string => {\n return `${explorer}/address/${address}`;\n};\n\nexport const constructTokenLink = (\n explorer: string,\n address: string\n): string => {\n return `${explorer}/token/${address}`;\n};\n\nexport const constructTxLink = (explorer: string, address: string): string => {\n return `${explorer}/tx/${address}`;\n};\n\nexport function constructExplorerOrderDetailsLink(orderId: string): string {\n return `${getExplorerURL()}/order/${orderId}`;\n}\n\nexport function constructExplorerUserDetailsLink(userAddress: Address): string {\n return `${getExplorerURL()}/address/${userAddress}`;\n}\n\ntype ConstructAddressLinkForChainInput = {\n chainId: SupportedChainId;\n address: string;\n};\n\nexport const constructAddressLinkForChain = ({\n chainId,\n address,\n}: ConstructAddressLinkForChainInput): string | undefined => {\n const explorer = chainConfigMap[chainId].blockExplorers?.default.url;\n if (!explorer) return;\n\n return constructAddressLink(explorer, address);\n};\n\nexport const constructTokenLinkForChain = ({\n chainId,\n address,\n}: ConstructAddressLinkForChainInput): string | undefined => {\n const explorer = chainConfigMap[chainId].blockExplorers?.default.url;\n if (!explorer) return;\n\n return constructTokenLink(explorer, address);\n};\n\ntype ConstructTxLinkForChainInput = {\n chainId: SupportedChainId;\n txHash: string;\n};\n\nexport const constructTxLinkForChain = ({\n chainId,\n txHash,\n}: ConstructTxLinkForChainInput): string | undefined => {\n const explorer = chainConfigMap[chainId].blockExplorers?.default.url;\n if (!explorer) return;\n\n return constructTxLink(explorer, txHash);\n};\n"],"names":["constructAddressLink","explorer","address","constructTokenLink","constructTxLink","constructExplorerOrderDetailsLink","orderId","getExplorerURL","constructExplorerUserDetailsLink","userAddress","constructAddressLinkForChain","chainId","chainConfigMap","blockExplorers","default","url","constructTokenLinkForChain","constructTxLinkForChain","txHash"],"mappings":";;;AAKO,MAAMA,oBAAAA,GAAuBA,CAClCC,QAAAA,EACAC,OAAAA,KACW;AACX,EAAA,OAAO,CAAA,EAAGD,QAAQ,CAAA,SAAA,EAAYC,OAAO,CAAA,CAAA;AACvC;AAEO,MAAMC,kBAAAA,GAAqBA,CAChCF,QAAAA,EACAC,OAAAA,KACW;AACX,EAAA,OAAO,CAAA,EAAGD,QAAQ,CAAA,OAAA,EAAUC,OAAO,CAAA,CAAA;AACrC;AAEO,MAAME,eAAAA,GAAkBA,CAACH,QAAAA,EAAkBC,OAAAA,KAA4B;AAC5E,EAAA,OAAO,CAAA,EAAGD,QAAQ,CAAA,IAAA,EAAOC,OAAO,CAAA,CAAA;AAClC;AAEO,SAASG,kCAAkCC,OAAAA,EAAyB;AACzE,EAAA,OAAO,CAAA,EAAGC,cAAAA,EAAgB,CAAA,OAAA,EAAUD,OAAO,CAAA,CAAA;AAC7C;AAEO,SAASE,iCAAiCC,WAAAA,EAA8B;AAC7E,EAAA,OAAO,CAAA,EAAGF,cAAAA,EAAgB,CAAA,SAAA,EAAYE,WAAW,CAAA,CAAA;AACnD;AAOO,MAAMC,+BAA+BA,CAAC;AAAA,EAC3CC,OAAAA;AAAAA,EACAT;AACiC,CAAA,KAA0B;AAC3D,EAAA,MAAMD,QAAAA,GAAWW,cAAAA,CAAeD,OAAO,CAAA,CAAEE,gBAAgBC,OAAAA,CAAQC,GAAAA;AACjE,EAAA,IAAI,CAACd,QAAAA,EAAU;AAEf,EAAA,OAAOD,oBAAAA,CAAqBC,UAAUC,OAAO,CAAA;AAC/C;AAEO,MAAMc,6BAA6BA,CAAC;AAAA,EACzCL,OAAAA;AAAAA,EACAT;AACiC,CAAA,KAA0B;AAC3D,EAAA,MAAMD,QAAAA,GAAWW,cAAAA,CAAeD,OAAO,CAAA,CAAEE,gBAAgBC,OAAAA,CAAQC,GAAAA;AACjE,EAAA,IAAI,CAACd,QAAAA,EAAU;AAEf,EAAA,OAAOE,kBAAAA,CAAmBF,UAAUC,OAAO,CAAA;AAC7C;AAOO,MAAMe,0BAA0BA,CAAC;AAAA,EACtCN,OAAAA;AAAAA,EACAO;AAC4B,CAAA,KAA0B;AACtD,EAAA,MAAMjB,QAAAA,GAAWW,cAAAA,CAAeD,OAAO,CAAA,CAAEE,gBAAgBC,OAAAA,CAAQC,GAAAA;AACjE,EAAA,IAAI,CAACd,QAAAA,EAAU;AAEf,EAAA,OAAOG,eAAAA,CAAgBH,UAAUiB,MAAM,CAAA;AACzC;;;;"}
@@ -28,7 +28,7 @@ const privyConfig = {
28
28
  },
29
29
  // another option is to give an invalid ID,
30
30
  // but then it retries indefinitely
31
- walletConnectCloudProjectId: "7535ce67d223b89670980f2442899904",
31
+ walletConnectCloudProjectId: "9796e40630a6bea7605ac281b0deb939",
32
32
  // Privy doesn't accept const Chain[]
33
33
  supportedChains: chains
34
34
  // defaultChain: chains[0], @TODO set to App's selected chain
@@ -6,7 +6,7 @@ import { isInIframe } from './isInsideSafeIframe.js';
6
6
 
7
7
  const connectors = [
8
8
  walletConnect({
9
- projectId: "7535ce67d223b89670980f2442899904"
9
+ projectId: "9796e40630a6bea7605ac281b0deb939"
10
10
  }),
11
11
  injected(),
12
12
  // metaMask() as CreateConnectorFn, // injected() detects metamask already
package/dist/styles.css CHANGED
@@ -67,7 +67,7 @@
67
67
  }
68
68
  }
69
69
  }
70
- .velora-widget {
70
+ :root, :host {
71
71
  --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
72
72
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
73
73
  --color-red-800: oklch(44.4% .177 26.899);
@@ -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 {