@velora-dex/widget 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/assets/price-impact.svg.js +12 -0
- package/dist/assets/price-impact.svg.js.map +1 -0
- package/dist/components/ui/accordion.js +1 -1
- package/dist/components/ui/accordion.js.map +1 -1
- package/dist/components/ui/progress.d.ts.map +1 -1
- package/dist/components/ui/progress.js.map +1 -1
- package/dist/components/web3/AccountButton.d.ts.map +1 -1
- package/dist/components/web3/AccountButton.js +24 -27
- package/dist/components/web3/AccountButton.js.map +1 -1
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.d.ts.map +1 -1
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.js +103 -133
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.js.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.js +39 -33
- package/dist/components/widget/AppHeader/AppHeader.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts +3 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +70 -64
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.d.ts +3 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.js +39 -21
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.js +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js.map +1 -1
- package/dist/components/widget/Drawer/index.d.ts.map +1 -1
- package/dist/components/widget/Drawer/index.js +119 -54
- package/dist/components/widget/Drawer/index.js.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.js +5 -0
- package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
- package/dist/components/widget/ImportToken/ImportToken.d.ts.map +1 -1
- package/dist/components/widget/ImportToken/ImportToken.js +1 -1
- package/dist/components/widget/ImportToken/ImportToken.js.map +1 -1
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/Controls.js +4 -4
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.d.ts.map +1 -1
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.js +21 -18
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.js.map +1 -1
- package/dist/components/widget/NetworkSwitcher/types.d.ts +1 -0
- package/dist/components/widget/NetworkSwitcher/types.d.ts.map +1 -1
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.d.ts.map +1 -1
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.js +33 -39
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.js.map +1 -1
- package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.d.ts.map +1 -1
- package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.js +1 -1
- package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.js.map +1 -1
- package/dist/components/widget/SelectToken/SelectTokenButton.d.ts +6 -2
- package/dist/components/widget/SelectToken/SelectTokenButton.d.ts.map +1 -1
- package/dist/components/widget/SelectToken/SelectTokenButton.js +117 -109
- package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
- package/dist/components/widget/SelectToken/types.d.ts +3 -1
- package/dist/components/widget/SelectToken/types.d.ts.map +1 -1
- package/dist/components/widget/TokenInput/index.d.ts.map +1 -1
- package/dist/components/widget/TokenInput/index.js +102 -141
- package/dist/components/widget/TokenInput/index.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.d.ts +1 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js.map +1 -1
- package/dist/configurator/Configurator.d.ts.map +1 -1
- package/dist/configurator/components/FormPropsInputs.d.ts +1 -1
- package/dist/configurator/components/FormPropsInputs.d.ts.map +1 -1
- package/dist/core/ConnectWalletDrawerButton.d.ts.map +1 -1
- package/dist/core/ConnectWalletDrawerButton.js +48 -26
- package/dist/core/ConnectWalletDrawerButton.js.map +1 -1
- package/dist/core/Toaster.js +1 -1
- package/dist/core/Toaster.js.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts +1 -0
- package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js +90 -50
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +98 -90
- package/dist/core/index.js.map +1 -1
- package/dist/core/inputs/state/common.d.ts +2 -2
- package/dist/core/inputs/state/setTokenByAddressAtom.d.ts +1 -14
- package/dist/core/inputs/state/setTokenByAddressAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
- package/dist/core/inputs/state/types.d.ts +15 -0
- package/dist/core/inputs/state/types.d.ts.map +1 -0
- package/dist/core/limit/state/selectedTokenActionsAtom.d.ts.map +1 -1
- package/dist/core/limit/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/limit/state/selectedTokenAtom.d.ts.map +1 -1
- package/dist/core/limit/state/selectedTokenAtom.js +5 -1
- package/dist/core/limit/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/limit/useLimitTokenToInputProps.d.ts +7 -0
- package/dist/core/limit/useLimitTokenToInputProps.d.ts.map +1 -1
- package/dist/core/limit/useLimitTokenToInputProps.js +167 -23
- package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
- package/dist/core/otc/state/selectedTokenAtom.d.ts.map +1 -1
- package/dist/core/otc/state/selectedTokenAtom.js +3 -1
- package/dist/core/otc/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/otc/useOtcTokenToInputProps.d.ts.map +1 -1
- package/dist/core/otc/useOtcTokenToInputProps.js +42 -16
- package/dist/core/otc/useOtcTokenToInputProps.js.map +1 -1
- package/dist/core/state/configActionsAtom.d.ts.map +1 -1
- package/dist/core/state/configActionsAtom.js +3 -1
- package/dist/core/state/configActionsAtom.js.map +1 -1
- package/dist/core/state/configAtom.d.ts +4 -2
- package/dist/core/state/configAtom.d.ts.map +1 -1
- package/dist/core/state/configAtom.js +4 -2
- package/dist/core/state/configAtom.js.map +1 -1
- package/dist/core/state/widgetEventsAtom.d.ts.map +1 -1
- package/dist/core/state/widgetEventsAtom.js +55 -41
- package/dist/core/state/widgetEventsAtom.js.map +1 -1
- package/dist/core/swapDetails/fees.d.ts.map +1 -1
- package/dist/core/swapDetails/fees.js +4 -2
- package/dist/core/swapDetails/fees.js.map +1 -1
- package/dist/core/swapDetails/orderRouting.d.ts.map +1 -1
- package/dist/core/swapDetails/orderRouting.js +7 -3
- package/dist/core/swapDetails/orderRouting.js.map +1 -1
- package/dist/core/swapDetails/priceImpact.d.ts +3 -1
- package/dist/core/swapDetails/priceImpact.d.ts.map +1 -1
- package/dist/core/swapDetails/priceImpact.js +6 -2
- package/dist/core/swapDetails/priceImpact.js.map +1 -1
- package/dist/core/swapDetails/useSwapDetailsListProps.d.ts.map +1 -1
- package/dist/core/swapDetails/useSwapDetailsListProps.js +155 -42
- package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
- package/dist/core/swapDetails/youGet.d.ts.map +1 -1
- package/dist/core/swapDetails/youGet.js +5 -2
- package/dist/core/swapDetails/youGet.js.map +1 -1
- package/dist/core/types.d.ts +4 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/events/getters/limit.d.ts.map +1 -1
- package/dist/events/getters/limit.js +3 -2
- package/dist/events/getters/limit.js.map +1 -1
- package/dist/events/getters/otc.d.ts.map +1 -1
- package/dist/events/getters/otc.js +3 -2
- package/dist/events/getters/otc.js.map +1 -1
- package/dist/events/getters/swap.d.ts.map +1 -1
- package/dist/events/getters/swap.js +3 -2
- package/dist/events/getters/swap.js.map +1 -1
- package/dist/events/hooks/useOnWalletConnect.d.ts.map +1 -1
- package/dist/events/hooks/useOnWalletConnect.js +2 -0
- package/dist/events/hooks/useOnWalletConnect.js.map +1 -1
- package/dist/events/types/common.d.ts +3 -2
- package/dist/events/types/common.d.ts.map +1 -1
- package/dist/events/types/connectWallet.d.ts +2 -0
- package/dist/events/types/connectWallet.d.ts.map +1 -1
- package/dist/events/types/index.d.ts +5 -2
- package/dist/events/types/index.d.ts.map +1 -1
- package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts +4 -4
- package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts.map +1 -1
- package/dist/hooks/otc/mutations/useCancelLimitOrder.js +2 -2
- package/dist/hooks/otc/mutations/useCancelLimitOrder.js.map +1 -1
- package/dist/hooks/otc/mutations/useCreateLimitOrder.d.ts +2 -2
- package/dist/hooks/otc/mutations/useCreateLimitOrder.d.ts.map +1 -1
- package/dist/hooks/otc/mutations/useCreateLimitOrder.js +2 -2
- package/dist/hooks/otc/mutations/useCreateLimitOrder.js.map +1 -1
- package/dist/hooks/otc/mutations/useFillOrder.d.ts +5 -5
- package/dist/hooks/otc/mutations/useFillOrder.d.ts.map +1 -1
- package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/bridge/useBridgedDeposit.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.d.ts +2 -2
- package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts +2 -2
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js +2 -2
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts +2 -2
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts +2 -2
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useBuildTx.d.ts +2 -2
- package/dist/hooks/swap/prices/market/mutations/useBuildTx.d.ts.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useBuildTx.js.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js +15 -1
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.d.ts +7 -1
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.d.ts.map +1 -1
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.js +81 -67
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.js.map +1 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.js +1 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/utils/tradeFlow.d.ts +3 -0
- package/dist/lib/utils/tradeFlow.d.ts.map +1 -0
- package/dist/lib/utils/tradeFlow.js +12 -0
- package/dist/lib/utils/tradeFlow.js.map +1 -0
- package/dist/lib/utils/useDateNow.d.ts +2 -0
- package/dist/lib/utils/useDateNow.d.ts.map +1 -0
- package/dist/lib/utils/useDateNow.js +7 -0
- package/dist/lib/utils/useDateNow.js.map +1 -0
- package/dist/lib/web3/privy/config.js +1 -1
- package/dist/lib/web3/wagmi/config.js +1 -1
- package/dist/styles.css +20 -17
- package/dist/tokens/state/addImportedTokenAtom.d.ts.map +1 -1
- package/dist/tokens/state/addImportedTokenAtom.js +6 -23
- package/dist/tokens/state/addImportedTokenAtom.js.map +1 -1
- package/package.json +8 -7
- package/dist/components/widget/TokenInput/EmptyInput.js +0 -58
- package/dist/components/widget/TokenInput/EmptyInput.js.map +0 -1
|
@@ -5,11 +5,11 @@ type BuildTxInput = {
|
|
|
5
5
|
swapTxOptions?: BuildOptions;
|
|
6
6
|
};
|
|
7
7
|
export type BuildTxReturn = TransactionParams;
|
|
8
|
-
type BuildTxMutationOptions = Omit<UseMutationOptions<BuildTxReturn, Error, BuildTxInput>, "mutationFn">;
|
|
8
|
+
type BuildTxMutationOptions = Omit<UseMutationOptions<BuildTxReturn, Error, BuildTxInput, void>, "mutationFn">;
|
|
9
9
|
type BuildTxMutationInput = {
|
|
10
10
|
mutationOptions?: BuildTxMutationOptions;
|
|
11
11
|
chainId: number;
|
|
12
12
|
};
|
|
13
|
-
export declare function useBuildTx({ mutationOptions, chainId, }: BuildTxMutationInput): UseMutationResult<BuildTxReturn, Error, BuildTxInput>;
|
|
13
|
+
export declare function useBuildTx({ mutationOptions, chainId, }: BuildTxMutationInput): UseMutationResult<BuildTxReturn, Error, BuildTxInput, void>;
|
|
14
14
|
export {};
|
|
15
15
|
//# sourceMappingURL=useBuildTx.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBuildTx.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/market/mutations/useBuildTx.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAEzB,KAAK,YAAY,GAAG;IAClB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAE9C,KAAK,sBAAsB,GAAG,IAAI,CAChC,kBAAkB,CAAC,aAAa,EAAE,KAAK,EAAE,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"useBuildTx.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/market/mutations/useBuildTx.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAEzB,KAAK,YAAY,GAAG;IAClB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAE9C,KAAK,sBAAsB,GAAG,IAAI,CAChC,kBAAkB,CAAC,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,EAC5D,YAAY,CACb,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,UAAU,CAAC,EACzB,eAAe,EACf,OAAO,GACR,EAAE,oBAAoB,GAAG,iBAAiB,CACzC,aAAa,EACb,KAAK,EACL,YAAY,EACZ,IAAI,CACL,CAUA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBuildTx.js","sources":["../../../../../../src/hooks/swap/prices/market/mutations/useBuildTx.ts"],"sourcesContent":["import { useMarketSwapSDK } from \"@/hooks/useSDK\";\nimport {\n useMutation,\n type UseMutationOptions,\n type UseMutationResult,\n} from \"@tanstack/react-query\";\nimport type {\n BuildSwapTxInput,\n BuildOptions,\n TransactionParams,\n} from \"@velora-dex/sdk\";\n\ntype BuildTxInput = {\n swapTxInput: BuildSwapTxInput;\n swapTxOptions?: BuildOptions;\n};\nexport type BuildTxReturn = TransactionParams;\n\ntype BuildTxMutationOptions = Omit<\n UseMutationOptions<BuildTxReturn, Error, BuildTxInput>,\n \"mutationFn\"\n>;\n\ntype BuildTxMutationInput = {\n mutationOptions?: BuildTxMutationOptions;\n chainId: number;\n};\n\nexport function useBuildTx({\n mutationOptions,\n chainId,\n}: BuildTxMutationInput): UseMutationResult<\n BuildTxReturn,\n Error,\n BuildTxInput\n> {\n const { sdk } = useMarketSwapSDK({ chainId });\n\n return useMutation<BuildTxReturn, Error, BuildTxInput>({\n mutationFn: async ({ swapTxInput, swapTxOptions }: BuildTxInput) => {\n const tx = await sdk.buildTx(swapTxInput, swapTxOptions);\n return tx;\n },\n ...mutationOptions,\n });\n}\n"],"names":["useBuildTx","t0","$","_c","mutationOptions","chainId","t1","sdk","useMarketSwapSDK","t2","t3","swapTxInput","swapTxOptions","tx","buildTx","mutationFn","useMutation"],"mappings":";;;;AA4BO,SAAAA,WAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAoB,EAAA,MAAA;AAAA,IAAAC,eAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAJ,EAAAA;AAGJ,EAAA,IAAAK,EAAAA;AAAA,EAAA,IAAAJ,CAAAA,QAAAG,OAAAA,EAAA;
|
|
1
|
+
{"version":3,"file":"useBuildTx.js","sources":["../../../../../../src/hooks/swap/prices/market/mutations/useBuildTx.ts"],"sourcesContent":["import { useMarketSwapSDK } from \"@/hooks/useSDK\";\nimport {\n useMutation,\n type UseMutationOptions,\n type UseMutationResult,\n} from \"@tanstack/react-query\";\nimport type {\n BuildSwapTxInput,\n BuildOptions,\n TransactionParams,\n} from \"@velora-dex/sdk\";\n\ntype BuildTxInput = {\n swapTxInput: BuildSwapTxInput;\n swapTxOptions?: BuildOptions;\n};\nexport type BuildTxReturn = TransactionParams;\n\ntype BuildTxMutationOptions = Omit<\n UseMutationOptions<BuildTxReturn, Error, BuildTxInput, void>,\n \"mutationFn\"\n>;\n\ntype BuildTxMutationInput = {\n mutationOptions?: BuildTxMutationOptions;\n chainId: number;\n};\n\nexport function useBuildTx({\n mutationOptions,\n chainId,\n}: BuildTxMutationInput): UseMutationResult<\n BuildTxReturn,\n Error,\n BuildTxInput,\n void\n> {\n const { sdk } = useMarketSwapSDK({ chainId });\n\n return useMutation<BuildTxReturn, Error, BuildTxInput, void>({\n mutationFn: async ({ swapTxInput, swapTxOptions }: BuildTxInput) => {\n const tx = await sdk.buildTx(swapTxInput, swapTxOptions);\n return tx;\n },\n ...mutationOptions,\n });\n}\n"],"names":["useBuildTx","t0","$","_c","mutationOptions","chainId","t1","sdk","useMarketSwapSDK","t2","t3","swapTxInput","swapTxOptions","tx","buildTx","mutationFn","useMutation"],"mappings":";;;;AA4BO,SAAAA,WAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAoB,EAAA,MAAA;AAAA,IAAAC,eAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAJ,EAAAA;AAGJ,EAAA,IAAAK,EAAAA;AAAA,EAAA,IAAAJ,CAAAA,QAAAG,OAAAA,EAAA;AAMYC,IAAAA,EAAAA,GAAA;AAAA,MAAAD;AAAAA,KAAU;AAACH,IAAAA,CAAAA,MAAAG,OAAAA;AAAAH,IAAAA,CAAAA,MAAAI,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAJ,EAAA,CAAA,CAAA;AAAA,EAAA;AAA5C,EAAA,MAAA;AAAA,IAAAK;AAAAA,GAAA,GAAgBC,iBAAiBF,EAAW,CAAA;AAAE,EAAA,IAAAG,EAAAA;AAAA,EAAA,IAAAP,CAAAA,QAAAK,GAAAA,EAAA;AAGhCE,IAAAA,EAAAA,UAAAC,GAAAA,KAAA;AAAO,MAAA,MAAA;AAAA,QAAAC,WAAAA;AAAAA,QAAAC;AAAAA,OAAA,GAAAF,GAAAA;AACjB,MAAA,MAAAG,EAAAA,GAAW,MAAMN,GAAAA,CAAGO,OAAAA,CAASH,aAAaC,aAAa,CAAA;AAAE,MAAA,OAClDC,EAAAA;AAAAA,IAAE,CAAA;AACVX,IAAAA,CAAAA,MAAAK,GAAAA;AAAAL,IAAAA,CAAAA,MAAAO,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAP,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAQ,EAAAA;AAAA,EAAA,IAAAR,EAAA,CAAA,CAAA,KAAAE,mBAAAF,CAAAA,QAAAO,EAAAA,EAAA;AAJ0DC,IAAAA,EAAAA,GAAA;AAAA,MAAAK,UAAAA,EAC/CN,EAAAA;AAAAA,MAGX,GACEL;AAAAA,KACL;AAACF,IAAAA,CAAAA,MAAAE,eAAAA;AAAAF,IAAAA,CAAAA,MAAAO,EAAAA;AAAAP,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAR,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OANMc,YAAsDN,EAM5D,CAAA;AAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSwapPrices.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,kDAAkD,CAAC;AAEjF,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"useSwapPrices.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,kDAAkD,CAAC;AAEjF,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AASlD,KAAK,mBAAmB,GAAG;IACzB,SAAS,EAAE,QAAQ,CAAC;IACpB,qBAAqB,EAAE,QAAQ,CAAC;IAChC,MAAM,EAAE;QACN,KAAK,CAAC,EAAE,WAAW,CAAC;QACpB,qFAAqF;QACrF,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;KACrB,CAAC;IACF,KAAK,EAAE;QACL,KAAK,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;QACjC,qGAAqG;QACrG,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;KACrB,CAAC;CACH,CAAC;AAEF,wBAAgB,aAAa,CAC3B,MAAM,GAAE,kBAAuB,GAC9B,mBAAmB,CAwJrB;AAED,KAAK,yBAAyB,GAAG;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB,GAAG,CACA;IACE,SAAS,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,GACD;IACE,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;CAClC,CACJ,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,MAAM,GAAE,kBAAsC,GAC7C,yBAAyB,CAoB3B"}
|
|
@@ -8,6 +8,7 @@ import { useGlobalDeltaEnabled } from '../../useGlobalDeltaEnabled.js';
|
|
|
8
8
|
import { useRef } from 'react';
|
|
9
9
|
import { isETH, isWETH } from '../../../tokens/utils/eth.js';
|
|
10
10
|
import { wrappedNativeCurrency } from '../../../lib/constants/weth.js';
|
|
11
|
+
import { useIsTokenSupportedInDeltaQuery } from './delta/queries/useIsTokenSupportedInDelta.js';
|
|
11
12
|
|
|
12
13
|
const PRICE_REFETCH_INTERVAL = 5e3;
|
|
13
14
|
function useSwapPrices(params = {}) {
|
|
@@ -35,6 +36,18 @@ function useSwapPrices(params = {}) {
|
|
|
35
36
|
}, chainId) && isETH({
|
|
36
37
|
address: priceParams.destToken
|
|
37
38
|
});
|
|
39
|
+
const {
|
|
40
|
+
data: isSrcTokenSupported
|
|
41
|
+
} = useIsTokenSupportedInDeltaQuery({
|
|
42
|
+
token: priceParams.srcToken,
|
|
43
|
+
chainId
|
|
44
|
+
});
|
|
45
|
+
const {
|
|
46
|
+
data: isDestTokenSupported
|
|
47
|
+
} = useIsTokenSupportedInDeltaQuery({
|
|
48
|
+
token: priceParams.destToken,
|
|
49
|
+
chainId
|
|
50
|
+
});
|
|
38
51
|
const deltaEnabled = (
|
|
39
52
|
// enabled in widget config
|
|
40
53
|
deltaEnabledInConfig && // enabled in user settings
|
|
@@ -43,7 +56,8 @@ function useSwapPrices(params = {}) {
|
|
|
43
56
|
priceParams.side === "SELL" && // ETH -> WETH same chain is market only
|
|
44
57
|
!isEthToWethSameChain && // WETH -> ETH same chain is market only
|
|
45
58
|
!isWethToEthSameChain && // user selected Delta
|
|
46
|
-
swapMode === "delta"
|
|
59
|
+
swapMode === "delta" && // tokens are supported in Delta
|
|
60
|
+
isSrcTokenSupported !== false && isDestTokenSupported !== false
|
|
47
61
|
);
|
|
48
62
|
const deltaCanBeUsed = fetchAnyPrice && deltaEnabledInConfig && deltaEnabledOnCurrentChain && priceParams.side === "SELL" && // @TODO add BUY support for Delta when available
|
|
49
63
|
!isEthToWethSameChain && !isWethToEthSameChain;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSwapPrices.js","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"sourcesContent":["import { useMarketPriceQuery } from \"./market/queries/useMarketPriceQuery\";\nimport { usePricesParams } from \"./usePricesParams\";\nimport { useDeltaPriceQuery } from \"./delta/queries/useDeltaPriceQuery\";\nimport { swapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeAtom\";\nimport { type SwapMode } from \"@/components/widget/SwapModeSwitcher/state/types\";\nimport { useAtomValue } from \"jotai\";\nimport type { BridgePrice, DeltaPrice, OptimalRate } from \"@velora-dex/sdk\";\nimport type { UseSwapPricesInput } from \"./types\";\nimport { useGlobalDeltaEnabled } from \"@/hooks/useGlobalDeltaEnabled\";\nimport { useRef } from \"react\";\nimport { isETH, isWETH } from \"@/tokens/utils/eth\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\n\nconst PRICE_REFETCH_INTERVAL = 5000; // 5 seconds\n\ntype UseSwapPricesReturn = {\n priceMode: SwapMode;\n userSelectedPriceMode: SwapMode;\n market: {\n price?: OptimalRate;\n /** @description whether the market price can be used for the current price params */\n canBeUsed: boolean;\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n };\n delta: {\n price?: DeltaPrice | BridgePrice;\n /** @description whether the delta price can be used for the current price params && widget config */\n canBeUsed: boolean;\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n };\n};\n\nexport function useSwapPrices(\n params: UseSwapPricesInput = {}\n): UseSwapPricesReturn {\n const { priceParams, isCrossChain, chainId, destChainId } =\n usePricesParams(\"swap\");\n\n // selected by the user if both options are available, otherwise always \"market\"\n const swapMode = useAtomValue(swapModeAtom);\n\n const {\n enabledInConfig: deltaEnabledInConfig,\n enabledInSettings: deltaEnabledInSettings,\n enabledOnCurrentChain: deltaEnabledOnCurrentChain,\n } = useGlobalDeltaEnabled();\n\n const fetchAnyPrice = priceParams.amount !== \"0\" && !!priceParams.destToken;\n\n const isBUY = priceParams.side === \"BUY\";\n\n const isEthToWethSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isETH({ address: priceParams.srcToken }) &&\n isWETH({ address: priceParams.destToken }, chainId);\n const isWethToEthSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isWETH({ address: priceParams.srcToken }, chainId) &&\n isETH({ address: priceParams.destToken });\n\n const deltaEnabled =\n // enabled in widget config\n deltaEnabledInConfig &&\n // enabled in user settings\n deltaEnabledInSettings &&\n // enabled on API for current chain\n deltaEnabledOnCurrentChain &&\n // SELL side only\n priceParams.side === \"SELL\" &&\n // ETH -> WETH same chain is market only\n !isEthToWethSameChain &&\n // WETH -> ETH same chain is market only\n !isWethToEthSameChain &&\n // user selected Delta\n swapMode === \"delta\";\n // @TODO add BUY support for Delta when available\n\n // whether delta price can be used in principle for current price params,\n // irrespective of user settings\n const deltaCanBeUsed =\n fetchAnyPrice &&\n deltaEnabledInConfig &&\n deltaEnabledOnCurrentChain &&\n priceParams.side === \"SELL\" &&\n // @TODO add BUY support for Delta when available\n !isEthToWethSameChain &&\n !isWethToEthSameChain;\n\n // Delta /prices errors when srcToken=ETH;\n // we will pre-wrap ETH->WETH before Swap anyway;\n // be careful not to use deltaPrices.srcToken with the assumption that (tokenFrom=ETH) !== (deltaPrices.srcToken=WETH)\n const srcTokenForDelta = isETH({ address: priceParams.srcToken })\n ? wrappedNativeCurrency[chainId]\n : priceParams.srcToken;\n\n const deltaPriceQuery = useDeltaPriceQuery({\n priceParams: {\n ...priceParams,\n srcToken: srcTokenForDelta,\n },\n chainId,\n destChainId,\n timeout: 5000,\n query: {\n enabled: deltaEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: PRICE_REFETCH_INTERVAL,\n // already refetched on short interval\n // prevents delay before deltaPriceQuery.error is set\n retry: false,\n },\n });\n\n // keep track if last result was error\n const deltaErrorRef = useRef(deltaPriceQuery.error);\n // by itself isError resets when fetching\n if (deltaPriceQuery.error) deltaErrorRef.current = deltaPriceQuery.error;\n // keep errorRef until delta succeeds\n if (deltaPriceQuery.isSuccess) deltaErrorRef.current = null;\n\n const deltaErrorCached = deltaErrorRef.current;\n\n // no market for Crosschain swaps, otherwise always enabled as a fallback for Delta\n const marketEnabled = !isCrossChain;\n const marketCanBeUsed = marketEnabled && fetchAnyPrice;\n\n const marketIsFallback = deltaErrorCached && marketEnabled;\n\n // @TODO remove isBUY once BUY is supported for Delta\n const marketIsMainMode =\n (swapMode === \"market\" && marketEnabled) || !deltaEnabled || isBUY;\n const priceMode = marketIsFallback || marketIsMainMode ? \"market\" : \"delta\";\n\n const marketRefetchInterval =\n // if only market mode or delta has an error\n !deltaEnabled || deltaErrorCached // using cached error here so we don't continuously switch between 2 intervals,\n ? // which caused market price query reschedule and no fetch ever happening\n // frequent updates for Market price\n PRICE_REFETCH_INTERVAL\n : // otherwise when Delta is working, less frequent updates for Market price\n 2 * PRICE_REFETCH_INTERVAL;\n\n const marketPriceQuery = useMarketPriceQuery({\n priceParams,\n chainId,\n timeout: 5000,\n query: {\n enabled: marketEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: marketRefetchInterval,\n retry: false,\n },\n });\n\n return {\n priceMode,\n userSelectedPriceMode: swapMode,\n market: {\n price: marketPriceQuery.data,\n isLoading: marketPriceQuery.isLoading,\n isError: marketPriceQuery.isError,\n error: marketPriceQuery.error,\n canBeUsed: marketCanBeUsed,\n },\n delta: {\n price: deltaPriceQuery.data,\n isLoading: deltaPriceQuery.isLoading,\n isError: deltaPriceQuery.isError,\n error: deltaPriceQuery.error,\n canBeUsed: deltaCanBeUsed,\n },\n };\n}\n\ntype UseCurrentSwapPriceReturn = {\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n} & (\n | {\n priceMode: \"market\";\n price?: OptimalRate;\n }\n | {\n priceMode: \"delta\";\n price?: DeltaPrice | BridgePrice;\n }\n);\n\nexport function useCurrentSwapPrice(\n params: UseSwapPricesInput = { enabled: true }\n): UseCurrentSwapPriceReturn {\n const { market, delta, priceMode } = useSwapPrices(params);\n\n if (priceMode === \"market\") {\n return {\n priceMode,\n price: market.price,\n isLoading: market.isLoading,\n isError: market.isError,\n error: market.error,\n };\n }\n\n return {\n priceMode,\n price: delta.price,\n isLoading: delta.isLoading,\n isError: delta.isError,\n error: delta.error,\n };\n}\n"],"names":["PRICE_REFETCH_INTERVAL","useSwapPrices","params","priceParams","isCrossChain","chainId","destChainId","usePricesParams","swapMode","useAtomValue","swapModeAtom","enabledInConfig","deltaEnabledInConfig","enabledInSettings","deltaEnabledInSettings","enabledOnCurrentChain","deltaEnabledOnCurrentChain","useGlobalDeltaEnabled","fetchAnyPrice","amount","destToken","isBUY","side","isEthToWethSameChain","isETH","address","srcToken","isWETH","isWethToEthSameChain","deltaEnabled","deltaCanBeUsed","srcTokenForDelta","wrappedNativeCurrency","deltaPriceQuery","useDeltaPriceQuery","timeout","query","enabled","refetchInterval","retry","deltaErrorRef","useRef","error","current","isSuccess","deltaErrorCached","marketEnabled","marketCanBeUsed","marketIsFallback","marketIsMainMode","priceMode","marketRefetchInterval","marketPriceQuery","useMarketPriceQuery","userSelectedPriceMode","market","price","data","isLoading","isError","canBeUsed","delta","useCurrentSwapPrice","t0","$","_c","t1","undefined","t2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSwapPrices.js","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"sourcesContent":["import { useMarketPriceQuery } from \"./market/queries/useMarketPriceQuery\";\nimport { usePricesParams } from \"./usePricesParams\";\nimport { useDeltaPriceQuery } from \"./delta/queries/useDeltaPriceQuery\";\nimport { swapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeAtom\";\nimport { type SwapMode } from \"@/components/widget/SwapModeSwitcher/state/types\";\nimport { useAtomValue } from \"jotai\";\nimport type { BridgePrice, DeltaPrice, OptimalRate } from \"@velora-dex/sdk\";\nimport type { UseSwapPricesInput } from \"./types\";\nimport { useGlobalDeltaEnabled } from \"@/hooks/useGlobalDeltaEnabled\";\nimport { useRef } from \"react\";\nimport { isETH, isWETH } from \"@/tokens/utils/eth\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\nimport { useIsTokenSupportedInDeltaQuery } from \"./delta/queries/useIsTokenSupportedInDelta\";\n\nconst PRICE_REFETCH_INTERVAL = 5000; // 5 seconds\n\ntype UseSwapPricesReturn = {\n priceMode: SwapMode;\n userSelectedPriceMode: SwapMode;\n market: {\n price?: OptimalRate;\n /** @description whether the market price can be used for the current price params */\n canBeUsed: boolean;\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n };\n delta: {\n price?: DeltaPrice | BridgePrice;\n /** @description whether the delta price can be used for the current price params && widget config */\n canBeUsed: boolean;\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n };\n};\n\nexport function useSwapPrices(\n params: UseSwapPricesInput = {}\n): UseSwapPricesReturn {\n const { priceParams, isCrossChain, chainId, destChainId } =\n usePricesParams(\"swap\");\n\n // selected by the user if both options are available, otherwise always \"market\"\n const swapMode = useAtomValue(swapModeAtom);\n\n const {\n enabledInConfig: deltaEnabledInConfig,\n enabledInSettings: deltaEnabledInSettings,\n enabledOnCurrentChain: deltaEnabledOnCurrentChain,\n } = useGlobalDeltaEnabled();\n\n const fetchAnyPrice = priceParams.amount !== \"0\" && !!priceParams.destToken;\n\n const isBUY = priceParams.side === \"BUY\";\n\n const isEthToWethSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isETH({ address: priceParams.srcToken }) &&\n isWETH({ address: priceParams.destToken }, chainId);\n const isWethToEthSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isWETH({ address: priceParams.srcToken }, chainId) &&\n isETH({ address: priceParams.destToken });\n\n const { data: isSrcTokenSupported } = useIsTokenSupportedInDeltaQuery({\n token: priceParams.srcToken,\n chainId,\n });\n const { data: isDestTokenSupported } = useIsTokenSupportedInDeltaQuery({\n token: priceParams.destToken,\n chainId,\n });\n\n const deltaEnabled =\n // enabled in widget config\n deltaEnabledInConfig &&\n // enabled in user settings\n deltaEnabledInSettings &&\n // enabled on API for current chain\n deltaEnabledOnCurrentChain &&\n // SELL side only\n priceParams.side === \"SELL\" &&\n // ETH -> WETH same chain is market only\n !isEthToWethSameChain &&\n // WETH -> ETH same chain is market only\n !isWethToEthSameChain &&\n // user selected Delta\n swapMode === \"delta\" &&\n // tokens are supported in Delta\n isSrcTokenSupported !== false &&\n isDestTokenSupported !== false;\n // @TODO add BUY support for Delta when available\n\n // whether delta price can be used in principle for current price params,\n // irrespective of user settings\n const deltaCanBeUsed =\n fetchAnyPrice &&\n deltaEnabledInConfig &&\n deltaEnabledOnCurrentChain &&\n priceParams.side === \"SELL\" &&\n // @TODO add BUY support for Delta when available\n !isEthToWethSameChain &&\n !isWethToEthSameChain;\n\n // Delta /prices errors when srcToken=ETH;\n // we will pre-wrap ETH->WETH before Swap anyway;\n // be careful not to use deltaPrices.srcToken with the assumption that (tokenFrom=ETH) !== (deltaPrices.srcToken=WETH)\n const srcTokenForDelta = isETH({ address: priceParams.srcToken })\n ? wrappedNativeCurrency[chainId]\n : priceParams.srcToken;\n\n const deltaPriceQuery = useDeltaPriceQuery({\n priceParams: {\n ...priceParams,\n srcToken: srcTokenForDelta,\n },\n chainId,\n destChainId,\n timeout: 5000,\n query: {\n enabled: deltaEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: PRICE_REFETCH_INTERVAL,\n // already refetched on short interval\n // prevents delay before deltaPriceQuery.error is set\n retry: false,\n },\n });\n\n // keep track if last result was error\n const deltaErrorRef = useRef(deltaPriceQuery.error);\n // by itself isError resets when fetching\n /* eslint-disable react-hooks/refs */\n if (deltaPriceQuery.error) deltaErrorRef.current = deltaPriceQuery.error;\n // keep errorRef until delta succeeds\n if (deltaPriceQuery.isSuccess) deltaErrorRef.current = null;\n\n const deltaErrorCached = deltaErrorRef.current;\n /* eslint-enable react-hooks/refs */\n\n // no market for Crosschain swaps, otherwise always enabled as a fallback for Delta\n const marketEnabled = !isCrossChain;\n const marketCanBeUsed = marketEnabled && fetchAnyPrice;\n\n const marketIsFallback = deltaErrorCached && marketEnabled;\n\n // @TODO remove isBUY once BUY is supported for Delta\n const marketIsMainMode =\n (swapMode === \"market\" && marketEnabled) || !deltaEnabled || isBUY;\n const priceMode = marketIsFallback || marketIsMainMode ? \"market\" : \"delta\";\n\n const marketRefetchInterval =\n // if only market mode or delta has an error\n !deltaEnabled || deltaErrorCached // using cached error here so we don't continuously switch between 2 intervals,\n ? // which caused market price query reschedule and no fetch ever happening\n // frequent updates for Market price\n PRICE_REFETCH_INTERVAL\n : // otherwise when Delta is working, less frequent updates for Market price\n 2 * PRICE_REFETCH_INTERVAL;\n\n const marketPriceQuery = useMarketPriceQuery({\n priceParams,\n chainId,\n timeout: 5000,\n query: {\n enabled: marketEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: marketRefetchInterval,\n retry: false,\n },\n });\n\n return {\n priceMode,\n userSelectedPriceMode: swapMode,\n market: {\n price: marketPriceQuery.data,\n isLoading: marketPriceQuery.isLoading,\n isError: marketPriceQuery.isError,\n error: marketPriceQuery.error,\n canBeUsed: marketCanBeUsed,\n },\n delta: {\n price: deltaPriceQuery.data,\n isLoading: deltaPriceQuery.isLoading,\n isError: deltaPriceQuery.isError,\n error: deltaPriceQuery.error,\n canBeUsed: deltaCanBeUsed,\n },\n };\n}\n\ntype UseCurrentSwapPriceReturn = {\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n} & (\n | {\n priceMode: \"market\";\n price?: OptimalRate;\n }\n | {\n priceMode: \"delta\";\n price?: DeltaPrice | BridgePrice;\n }\n);\n\nexport function useCurrentSwapPrice(\n params: UseSwapPricesInput = { enabled: true }\n): UseCurrentSwapPriceReturn {\n const { market, delta, priceMode } = useSwapPrices(params);\n\n if (priceMode === \"market\") {\n return {\n priceMode,\n price: market.price,\n isLoading: market.isLoading,\n isError: market.isError,\n error: market.error,\n };\n }\n\n return {\n priceMode,\n price: delta.price,\n isLoading: delta.isLoading,\n isError: delta.isError,\n error: delta.error,\n };\n}\n"],"names":["PRICE_REFETCH_INTERVAL","useSwapPrices","params","priceParams","isCrossChain","chainId","destChainId","usePricesParams","swapMode","useAtomValue","swapModeAtom","enabledInConfig","deltaEnabledInConfig","enabledInSettings","deltaEnabledInSettings","enabledOnCurrentChain","deltaEnabledOnCurrentChain","useGlobalDeltaEnabled","fetchAnyPrice","amount","destToken","isBUY","side","isEthToWethSameChain","isETH","address","srcToken","isWETH","isWethToEthSameChain","data","isSrcTokenSupported","useIsTokenSupportedInDeltaQuery","token","isDestTokenSupported","deltaEnabled","deltaCanBeUsed","srcTokenForDelta","wrappedNativeCurrency","deltaPriceQuery","useDeltaPriceQuery","timeout","query","enabled","refetchInterval","retry","deltaErrorRef","useRef","error","current","isSuccess","deltaErrorCached","marketEnabled","marketCanBeUsed","marketIsFallback","marketIsMainMode","priceMode","marketRefetchInterval","marketPriceQuery","useMarketPriceQuery","userSelectedPriceMode","market","price","isLoading","isError","canBeUsed","delta","useCurrentSwapPrice","t0","$","_c","t1","undefined","t2"],"mappings":"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"}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { TokenMaybeWithUsdBalance } from '../../../tokens/state/types';
|
|
2
2
|
import { TokenRowForFetchedToken } from '../../../components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow';
|
|
3
|
+
import { SupportedChainId } from '../../../lib/web3/wagmi/types';
|
|
3
4
|
type UseCombineTokensWithFetchedReturn = {
|
|
4
5
|
tokenRowsCombined: TokenRowForFetchedToken[];
|
|
5
6
|
};
|
|
6
|
-
|
|
7
|
+
type UseCombineTokensWithFetchedInput = {
|
|
8
|
+
allTokenRows: TokenMaybeWithUsdBalance[];
|
|
9
|
+
tokenFilter: string;
|
|
10
|
+
selectableChains?: SupportedChainId[];
|
|
11
|
+
};
|
|
12
|
+
export declare const useCombineTokensWithFetched: ({ allTokenRows, tokenFilter, selectableChains, }: UseCombineTokensWithFetchedInput) => UseCombineTokensWithFetchedReturn;
|
|
7
13
|
export {};
|
|
8
14
|
//# sourceMappingURL=useCombineTokensWithFetched.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCombineTokensWithFetched.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/data/useCombineTokensWithFetched.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yEAAyE,CAAC;
|
|
1
|
+
{"version":3,"file":"useCombineTokensWithFetched.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/data/useCombineTokensWithFetched.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yEAAyE,CAAC;AACvH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAM/D,KAAK,iCAAiC,GAAG;IACvC,iBAAiB,EAAE,uBAAuB,EAAE,CAAC;CAC9C,CAAC;AAEF,KAAK,gCAAgC,GAAG;IACtC,YAAY,EAAE,wBAAwB,EAAE,CAAC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACvC,CAAC;AACF,eAAO,MAAM,2BAA2B,GAAI,kDAIzC,gCAAgC,KAAG,iCAsErC,CAAC"}
|
|
@@ -6,108 +6,122 @@ import { constructToken } from '@velora-dex/sdk';
|
|
|
6
6
|
import { isBlacklistedToken } from '../../../tokens/blacklist.js';
|
|
7
7
|
import { useAllEnabledChains } from '../../../core/state/enabledChainsAtom.js';
|
|
8
8
|
|
|
9
|
-
const useCombineTokensWithFetched = (
|
|
10
|
-
const $ = distExports.c(
|
|
11
|
-
|
|
9
|
+
const useCombineTokensWithFetched = (t0) => {
|
|
10
|
+
const $ = distExports.c(19);
|
|
11
|
+
const {
|
|
12
|
+
allTokenRows,
|
|
13
|
+
tokenFilter,
|
|
14
|
+
selectableChains
|
|
15
|
+
} = t0;
|
|
16
|
+
let t1;
|
|
12
17
|
if ($[0] !== tokenFilter) {
|
|
13
|
-
|
|
18
|
+
t1 = isAddress(tokenFilter) && !isBlacklistedToken({
|
|
14
19
|
address: tokenFilter
|
|
15
20
|
});
|
|
16
21
|
$[0] = tokenFilter;
|
|
17
|
-
$[1] =
|
|
22
|
+
$[1] = t1;
|
|
18
23
|
} else {
|
|
19
|
-
|
|
24
|
+
t1 = $[1];
|
|
20
25
|
}
|
|
21
|
-
const isTokenFilterValidAddress =
|
|
26
|
+
const isTokenFilterValidAddress = t1;
|
|
22
27
|
const enabledChains = useAllEnabledChains();
|
|
23
|
-
let
|
|
24
|
-
if (
|
|
25
|
-
|
|
26
|
-
$[2]
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
let chainsToFetchOn = selectableChains || enabledChains;
|
|
29
|
+
if (isTokenFilterValidAddress) {
|
|
30
|
+
let t22;
|
|
31
|
+
if ($[2] !== allTokenRows) {
|
|
32
|
+
t22 = new Set(allTokenRows.map(_temp));
|
|
33
|
+
$[2] = allTokenRows;
|
|
34
|
+
$[3] = t22;
|
|
35
|
+
} else {
|
|
36
|
+
t22 = $[3];
|
|
37
|
+
}
|
|
38
|
+
const foundChains = t22;
|
|
39
|
+
let t32;
|
|
40
|
+
if ($[4] !== chainsToFetchOn || $[5] !== foundChains) {
|
|
41
|
+
let t42;
|
|
42
|
+
if ($[7] !== foundChains) {
|
|
43
|
+
t42 = (chainId) => !foundChains.has(chainId);
|
|
44
|
+
$[7] = foundChains;
|
|
45
|
+
$[8] = t42;
|
|
46
|
+
} else {
|
|
47
|
+
t42 = $[8];
|
|
48
|
+
}
|
|
49
|
+
t32 = chainsToFetchOn.filter(t42);
|
|
50
|
+
$[4] = chainsToFetchOn;
|
|
51
|
+
$[5] = foundChains;
|
|
52
|
+
$[6] = t32;
|
|
53
|
+
} else {
|
|
54
|
+
t32 = $[6];
|
|
55
|
+
}
|
|
56
|
+
chainsToFetchOn = t32;
|
|
32
57
|
}
|
|
33
|
-
const chainsWithNoTokenFound = t1;
|
|
34
58
|
let t2;
|
|
35
|
-
if ($[
|
|
59
|
+
if ($[9] !== isTokenFilterValidAddress || $[10] !== tokenFilter) {
|
|
36
60
|
t2 = isTokenFilterValidAddress ? [tokenFilter] : [];
|
|
37
|
-
$[
|
|
38
|
-
$[
|
|
39
|
-
$[
|
|
61
|
+
$[9] = isTokenFilterValidAddress;
|
|
62
|
+
$[10] = tokenFilter;
|
|
63
|
+
$[11] = t2;
|
|
40
64
|
} else {
|
|
41
|
-
t2 = $[
|
|
65
|
+
t2 = $[11];
|
|
42
66
|
}
|
|
43
67
|
let t3;
|
|
44
|
-
if ($[
|
|
68
|
+
if ($[12] !== chainsToFetchOn || $[13] !== t2) {
|
|
45
69
|
t3 = {
|
|
46
70
|
addresses: t2,
|
|
47
|
-
chainIds:
|
|
71
|
+
chainIds: chainsToFetchOn
|
|
48
72
|
};
|
|
49
|
-
$[
|
|
50
|
-
$[
|
|
51
|
-
$[
|
|
73
|
+
$[12] = chainsToFetchOn;
|
|
74
|
+
$[13] = t2;
|
|
75
|
+
$[14] = t3;
|
|
52
76
|
} else {
|
|
53
|
-
t3 = $[
|
|
77
|
+
t3 = $[14];
|
|
54
78
|
}
|
|
55
79
|
const tokenRowsFetched = useFetchTokens(t3);
|
|
80
|
+
const possibleTokenImage = !isTokenFilterValidAddress ? void 0 : allTokenRows.find(_temp2)?.img;
|
|
56
81
|
const tokensFetched = tokenRowsFetched.tokens;
|
|
57
82
|
let t4;
|
|
58
|
-
if ($[
|
|
59
|
-
t4 = tokensFetched.reduce(
|
|
60
|
-
$[
|
|
61
|
-
$[
|
|
83
|
+
if ($[15] !== tokensFetched) {
|
|
84
|
+
t4 = tokensFetched.reduce(_temp3, {});
|
|
85
|
+
$[15] = tokensFetched;
|
|
86
|
+
$[16] = t4;
|
|
62
87
|
} else {
|
|
63
|
-
t4 = $[
|
|
88
|
+
t4 = $[16];
|
|
64
89
|
}
|
|
65
90
|
const tokenFetchedAddressesMap = t4;
|
|
66
91
|
let t5;
|
|
67
|
-
if ($[
|
|
92
|
+
if ($[17] !== tokenFetchedAddressesMap) {
|
|
68
93
|
t5 = {
|
|
69
94
|
addressesMap: tokenFetchedAddressesMap
|
|
70
95
|
};
|
|
71
|
-
$[
|
|
72
|
-
$[
|
|
96
|
+
$[17] = tokenFetchedAddressesMap;
|
|
97
|
+
$[18] = t5;
|
|
73
98
|
} else {
|
|
74
|
-
t5 = $[
|
|
99
|
+
t5 = $[18];
|
|
75
100
|
}
|
|
76
101
|
const attachTokenBalance = useAttachTokenBalanceMultichain(t5);
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
$[21] = t7;
|
|
88
|
-
} else {
|
|
89
|
-
t7 = $[21];
|
|
90
|
-
}
|
|
91
|
-
const tokensFetchedWithBalance = tokenRowsFetched.tokens.map(t7);
|
|
92
|
-
const combinedTokenRows = [...allTokenRows, ...tokensFetchedWithBalance];
|
|
93
|
-
t6 = {
|
|
94
|
-
tokenRowsCombined: combinedTokenRows
|
|
95
|
-
};
|
|
96
|
-
$[16] = allTokenRows;
|
|
97
|
-
$[17] = attachTokenBalance;
|
|
98
|
-
$[18] = tokenRowsFetched.tokens;
|
|
99
|
-
$[19] = t6;
|
|
100
|
-
} else {
|
|
101
|
-
t6 = $[19];
|
|
102
|
-
}
|
|
103
|
-
return t6;
|
|
102
|
+
const tokensFetchedWithBalance = tokenRowsFetched.tokens.map((token_2) => attachTokenBalance({
|
|
103
|
+
...constructToken(token_2),
|
|
104
|
+
network: token_2.network,
|
|
105
|
+
fetchedOnChain: true,
|
|
106
|
+
img: possibleTokenImage
|
|
107
|
+
}));
|
|
108
|
+
const combinedTokenRows = [...allTokenRows, ...tokensFetchedWithBalance];
|
|
109
|
+
return {
|
|
110
|
+
tokenRowsCombined: combinedTokenRows
|
|
111
|
+
};
|
|
104
112
|
};
|
|
105
|
-
function _temp(
|
|
106
|
-
|
|
113
|
+
function _temp(token) {
|
|
114
|
+
return token.network;
|
|
115
|
+
}
|
|
116
|
+
function _temp2(token_0) {
|
|
117
|
+
return token_0.img;
|
|
118
|
+
}
|
|
119
|
+
function _temp3(acc, token_1) {
|
|
120
|
+
const chainId_0 = token_1.network;
|
|
107
121
|
if (!acc[chainId_0]) {
|
|
108
122
|
acc[chainId_0] = [];
|
|
109
123
|
}
|
|
110
|
-
acc[chainId_0].push(
|
|
124
|
+
acc[chainId_0].push(token_1.address);
|
|
111
125
|
return acc;
|
|
112
126
|
}
|
|
113
127
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCombineTokensWithFetched.js","sources":["../../../../src/hooks/tokens/data/useCombineTokensWithFetched.ts"],"sourcesContent":["import type { TokenMaybeWithUsdBalance } from \"@/tokens/state/types\";\nimport { useFetchTokens } from \"./useFetchTokens\";\nimport { isAddress } from \"viem\";\nimport type { TokenRowForFetchedToken } from \"@/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useAttachTokenBalanceMultichain } from \"../balances/useAttachTokenBalanceMultichain\";\nimport { constructToken } from \"@velora-dex/sdk\";\nimport { isBlacklistedToken } from \"@/tokens/blacklist\";\nimport { useAllEnabledChains } from \"@/core/state/enabledChainsAtom\";\n\ntype UseCombineTokensWithFetchedReturn = {\n tokenRowsCombined: TokenRowForFetchedToken[];\n};\
|
|
1
|
+
{"version":3,"file":"useCombineTokensWithFetched.js","sources":["../../../../src/hooks/tokens/data/useCombineTokensWithFetched.ts"],"sourcesContent":["import type { TokenMaybeWithUsdBalance } from \"@/tokens/state/types\";\nimport { useFetchTokens } from \"./useFetchTokens\";\nimport { isAddress } from \"viem\";\nimport type { TokenRowForFetchedToken } from \"@/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useAttachTokenBalanceMultichain } from \"../balances/useAttachTokenBalanceMultichain\";\nimport { constructToken } from \"@velora-dex/sdk\";\nimport { isBlacklistedToken } from \"@/tokens/blacklist\";\nimport { useAllEnabledChains } from \"@/core/state/enabledChainsAtom\";\n\ntype UseCombineTokensWithFetchedReturn = {\n tokenRowsCombined: TokenRowForFetchedToken[];\n};\n\ntype UseCombineTokensWithFetchedInput = {\n allTokenRows: TokenMaybeWithUsdBalance[];\n tokenFilter: string;\n selectableChains?: SupportedChainId[];\n};\nexport const useCombineTokensWithFetched = ({\n allTokenRows,\n tokenFilter,\n selectableChains,\n}: UseCombineTokensWithFetchedInput): UseCombineTokensWithFetchedReturn => {\n const isTokenFilterValidAddress =\n isAddress(tokenFilter) && !isBlacklistedToken({ address: tokenFilter });\n\n // fetch on enabled chains only\n const enabledChains = useAllEnabledChains();\n let chainsToFetchOn: SupportedChainId[] = selectableChains || enabledChains;\n if (isTokenFilterValidAddress) {\n const foundChains = new Set(allTokenRows.map((token) => token.network));\n // if exact match by address found in tokenLists, no need to fetch Token data onchain for that chain\n chainsToFetchOn = chainsToFetchOn.filter(\n (chainId) => !foundChains.has(chainId)\n );\n }\n\n // if user's typed filter is a valid address, fetch tokens for all networks (as it's possible that lists data not enough -- even if token is spotted in one of the lists for one chain, it could be missing in another one)\n const tokenRowsFetched = useFetchTokens({\n addresses: isTokenFilterValidAddress ? [tokenFilter] : [],\n chainIds: chainsToFetchOn,\n });\n\n /**\n no way to get token icon for a token which data we just fetched onchain when knowing its address only:\n 1. coingecko, coinmarket and other APIs that return token data including icon are paid only,\n 2. public repos with many token icons (trustwallet, cowswap) don't include more than our tokenLists already have,\n 3. if token was not found in any of the lists, there are likely no other bigger lists out there.\n BUT it is possible that tokenLists have this token (same address) on other chains, with icon present,\n we can assume if addresses are same then tokens are too, coincidences are unlikely, though in reality tokens sometimes have old vs new icon on different chains:\n case in point -- USDT and USDT0\n */\n const possibleTokenImage = !isTokenFilterValidAddress\n ? undefined\n : // tokens here are found by address, so they must be the same as the fetched ones but on different chains\n allTokenRows.find((token) => token.img)?.img;\n\n const tokensFetched = tokenRowsFetched.tokens;\n\n const tokenFetchedAddressesMap = tokensFetched.reduce<\n Partial<Record<SupportedChainId, string[]>>\n >((acc, token) => {\n const chainId = token.network;\n if (!acc[chainId]) acc[chainId] = [];\n\n acc[chainId].push(token.address);\n return acc;\n }, {});\n\n const attachTokenBalance = useAttachTokenBalanceMultichain({\n addressesMap: tokenFetchedAddressesMap,\n });\n\n const tokensFetchedWithBalance =\n tokenRowsFetched.tokens.map<TokenRowForFetchedToken>((token) =>\n attachTokenBalance({\n ...constructToken(token),\n network: token.network,\n fetchedOnChain: true,\n img: possibleTokenImage,\n })\n );\n\n const combinedTokenRows: TokenRowForFetchedToken[] = [\n ...allTokenRows,\n ...tokensFetchedWithBalance, // tokens not present in allTokenRows,\n // because chains to fetch on exclude chains found for exact token in another chain\n ];\n\n return {\n tokenRowsCombined: combinedTokenRows,\n };\n};\n"],"names":["useCombineTokensWithFetched","t0","$","_c","allTokenRows","tokenFilter","selectableChains","t1","isAddress","isBlacklistedToken","address","isTokenFilterValidAddress","enabledChains","useAllEnabledChains","chainsToFetchOn","t2","Set","map","_temp","foundChains","t3","t4","chainId","has","filter","addresses","chainIds","tokenRowsFetched","useFetchTokens","possibleTokenImage","undefined","find","_temp2","img","tokensFetched","tokens","reduce","_temp3","tokenFetchedAddressesMap","t5","addressesMap","attachTokenBalance","useAttachTokenBalanceMultichain","tokensFetchedWithBalance","token_2","constructToken","token","network","fetchedOnChain","combinedTokenRows","tokenRowsCombined","token_0","acc","token_1","chainId_0","push"],"mappings":"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"}
|
|
@@ -40,7 +40,7 @@ const useAllTokensWithFilter = (t0) => {
|
|
|
40
40
|
tokenArray: allIncludedTokens
|
|
41
41
|
});
|
|
42
42
|
const isTokenFilterValidAddress = isAddress(tokenFilter);
|
|
43
|
-
const searchOnAllChains = isTokenFilterValidAddress || filteredTokens.length === 0 && !!tokenFilter && searchOnOtherChainsIfNothingFound;
|
|
43
|
+
const searchOnAllChains = isTokenFilterValidAddress && searchOnOtherChainsIfNothingFound || filteredTokens.length === 0 && !!tokenFilter && searchOnOtherChainsIfNothingFound;
|
|
44
44
|
const t3 = !searchOnAllChains ? emptyArray : void 0;
|
|
45
45
|
let t4;
|
|
46
46
|
if ($[4] !== t3) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAllTokensWithFilter.js","sources":["../../../src/hooks/tokens/useAllTokensWithFilter.ts"],"sourcesContent":["import { sortTokens } from \"@/tokens/utils/sorting\";\nimport { filterTokens } from \"@/tokens/utils/filtering\";\nimport { useAllTokens } from \"@/tokens/hooks\";\nimport type { Token, TokenMaybeWithUsdBalance } from \"@/tokens/state/types\";\nimport { useAtomValue } from \"jotai\";\nimport { useMemo } from \"react\";\nimport { useNativeToken } from \"./useNativeToken\";\nimport { useAttachTokenBalanceMultichain } from \"./balances/useAttachTokenBalanceMultichain\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useChainId } from \"wagmi\";\nimport { useTokensFromAcross } from \"./useTokensFromAcross\";\nimport { emptyArray } from \"@/lib/constants\";\nimport { isAddress } from \"viem\";\nimport { allTokensByChainAtom } from \"@/tokens/state/allTokensByChainAtom\";\n\nexport const useAllTokensWithFilter = ({\n tokenFilter,\n forcedChainId,\n searchOnOtherChainsIfNothingFound,\n withETH = true,\n}: {\n tokenFilter: string;\n forcedChainId?: SupportedChainId;\n searchOnOtherChainsIfNothingFound?: boolean;\n withETH?: boolean;\n}): TokenMaybeWithUsdBalance[] => {\n const appChainId = useChainId();\n\n const allTokens = useAllTokens(forcedChainId);\n const nativeToken = useNativeToken(forcedChainId);\n\n const allIncludedTokens = withETH\n ? [nativeToken].concat(allTokens)\n : allTokens;\n\n const filteredTokens = useMemo(() => {\n return filterTokens({\n filterString: tokenFilter.trim(),\n tokenArray: allIncludedTokens,\n });\n }, [tokenFilter, allIncludedTokens]);\n\n const isTokenFilterValidAddress = isAddress(tokenFilter);\n const searchOnAllChains =\n isTokenFilterValidAddress || // if it's a token address, always search on other chains\n // -- we want to show this token on all chains.\n (filteredTokens.length === 0 &&\n // not already found tokens on current chain &&\n // filter given, and explicitly asked to search other chains\n !!tokenFilter &&\n searchOnOtherChainsIfNothingFound);\n\n const { tokens: tokensFromAllChains, addressMap: tokensFromAllChainsMap } =\n useAllTokensFromChains({\n // no need to exclude any chains, we actually want to search on all chains in this scenario\n // excludeChains: forcedChainId ? [forcedChainId] : [appChainId],\n includeChains: !searchOnAllChains ? emptyArray : undefined,\n });\n\n const { addressesMap, tokensToDisplay } = useMemo(() => {\n if (searchOnAllChains)\n return {\n tokensToDisplay: tokensFromAllChains,\n addressesMap: tokensFromAllChainsMap,\n };\n\n const currentChainId = forcedChainId ?? appChainId;\n const allTokensWithNativeAddresses = allIncludedTokens.map(\n ({ address }) => address\n );\n\n return {\n tokensToDisplay: allIncludedTokens,\n addressesMap: {\n [currentChainId]: allTokensWithNativeAddresses,\n },\n };\n }, [\n appChainId,\n forcedChainId,\n searchOnAllChains,\n tokensFromAllChains,\n tokensFromAllChainsMap,\n allIncludedTokens,\n ]);\n\n const attachTokenBalance = useAttachTokenBalanceMultichain({\n addressesMap,\n });\n\n const filteredAndSortedTokens = useMemo<TokenMaybeWithUsdBalance[]>(() => {\n return filterTokens({\n filterString: tokenFilter.trim(),\n tokenArray: tokensToDisplay,\n })\n .map(attachTokenBalance)\n .sort(sortTokens);\n }, [attachTokenBalance, tokenFilter, tokensToDisplay]);\n\n return filteredAndSortedTokens;\n};\n\nexport const usePrefetchTokenBalances = () => {\n // will fetch balances for all tokens from tokenLists for current chain,\n // if necessary, can be made to fetch for all chains, but that may be too many requests\n useAllTokensWithFilter({\n tokenFilter: \"\",\n });\n};\n\ntype AllTokensFromChainsInput = {\n includeChains?: number[];\n excludeChains?: number[];\n};\n\n/**\n * @description\n * Returns tokens and token address maps from all chains, optionally filtered by include/exclude chains.\n * If no chains are specified, it will return all tokens from all chains.\n * If includeChains is specified, it will only return tokens from those chains.\n * If excludeChains is specified, it will exclude tokens from those chains.\n */\nexport function useAllTokensFromChains({\n includeChains,\n excludeChains,\n}: AllTokensFromChainsInput): {\n tokens: Token[];\n addressMap: Record<number, string[]>;\n} {\n const { listByChainId: tokensListsByChain } =\n useAtomValue(allTokensByChainAtom);\n\n return useMemo(() => {\n const tokens: Token[] = [];\n const addressMap: Record<number, string[]> = {};\n\n for (const [_chainId, { tokens: _tokens }] of Object.entries(\n tokensListsByChain\n )) {\n const chainId = Number(_chainId);\n if (includeChains && !includeChains.includes(chainId)) continue;\n if (excludeChains && excludeChains.includes(chainId)) continue;\n\n tokens.push(..._tokens);\n addressMap[chainId] = _tokens.map((token) => token.address);\n }\n\n return { tokens, addressMap };\n }, [tokensListsByChain, includeChains, excludeChains]);\n}\n\nexport function useAcrossTokenLists({\n tokenFilter,\n fromChainId,\n toChainId,\n}: {\n tokenFilter: string;\n fromChainId: SupportedChainId;\n toChainId: SupportedChainId;\n}) {\n const { crossTokens } = useTokensFromAcross({\n fromChainId,\n toChainId,\n });\n\n const attachTokenBalance = useAttachTokenBalanceMultichain({\n addressesMap: {\n [toChainId]: crossTokens.map((token) => token.address),\n },\n });\n\n return useMemo<TokenMaybeWithUsdBalance[]>(\n () =>\n filterTokens({\n filterString: tokenFilter.trim(),\n tokenArray: crossTokens,\n })\n .map(attachTokenBalance)\n .sort(sortTokens),\n [attachTokenBalance, crossTokens, tokenFilter]\n );\n}\n"],"names":["useAllTokensWithFilter","t0","$","_c","tokenFilter","forcedChainId","searchOnOtherChainsIfNothingFound","withETH","t1","undefined","appChainId","useChainId","allTokens","useAllTokens","nativeToken","useNativeToken","t2","concat","allIncludedTokens","filteredTokens","filterTokens","filterString","trim","tokenArray","isTokenFilterValidAddress","isAddress","searchOnAllChains","length","t3","emptyArray","t4","includeChains","tokens","tokensFromAllChains","addressMap","tokensFromAllChainsMap","useAllTokensFromChains","t5","bb0","t6","tokensToDisplay","addressesMap","currentChainId","map","_temp","allTokensWithNativeAddresses","t7","t8","attachTokenBalance","useAttachTokenBalanceMultichain","sort","sortTokens","filteredAndSortedTokens","usePrefetchTokenBalances","Symbol","for","excludeChains","listByChainId","tokensListsByChain","useAtomValue","allTokensByChainAtom","useMemo","_chainId","_tokens","Object","entries","chainId","Number","includes","push","token","address","useAcrossTokenLists","fromChainId","toChainId","crossTokens","useTokensFromAcross","_temp3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useAllTokensWithFilter.js","sources":["../../../src/hooks/tokens/useAllTokensWithFilter.ts"],"sourcesContent":["import { sortTokens } from \"@/tokens/utils/sorting\";\nimport { filterTokens } from \"@/tokens/utils/filtering\";\nimport { useAllTokens } from \"@/tokens/hooks\";\nimport type { Token, TokenMaybeWithUsdBalance } from \"@/tokens/state/types\";\nimport { useAtomValue } from \"jotai\";\nimport { useMemo } from \"react\";\nimport { useNativeToken } from \"./useNativeToken\";\nimport { useAttachTokenBalanceMultichain } from \"./balances/useAttachTokenBalanceMultichain\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useChainId } from \"wagmi\";\nimport { useTokensFromAcross } from \"./useTokensFromAcross\";\nimport { emptyArray } from \"@/lib/constants\";\nimport { isAddress } from \"viem\";\nimport { allTokensByChainAtom } from \"@/tokens/state/allTokensByChainAtom\";\n\nexport const useAllTokensWithFilter = ({\n tokenFilter,\n forcedChainId,\n searchOnOtherChainsIfNothingFound,\n withETH = true,\n}: {\n tokenFilter: string;\n forcedChainId?: SupportedChainId;\n searchOnOtherChainsIfNothingFound?: boolean;\n withETH?: boolean;\n}): TokenMaybeWithUsdBalance[] => {\n const appChainId = useChainId();\n\n const allTokens = useAllTokens(forcedChainId);\n const nativeToken = useNativeToken(forcedChainId);\n\n const allIncludedTokens = withETH\n ? [nativeToken].concat(allTokens)\n : allTokens;\n\n const filteredTokens = useMemo(() => {\n return filterTokens({\n filterString: tokenFilter.trim(),\n tokenArray: allIncludedTokens,\n });\n }, [tokenFilter, allIncludedTokens]);\n\n const isTokenFilterValidAddress = isAddress(tokenFilter);\n const searchOnAllChains =\n (isTokenFilterValidAddress && searchOnOtherChainsIfNothingFound) || // if it's a token address, always search on other chains, if allowed\n // -- we want to show this token on all chains.\n (filteredTokens.length === 0 &&\n // not already found tokens on current chain &&\n // filter given, and explicitly asked to search other chains\n !!tokenFilter &&\n searchOnOtherChainsIfNothingFound);\n\n const { tokens: tokensFromAllChains, addressMap: tokensFromAllChainsMap } =\n useAllTokensFromChains({\n // no need to exclude any chains, we actually want to search on all chains in this scenario\n // excludeChains: forcedChainId ? [forcedChainId] : [appChainId],\n includeChains: !searchOnAllChains ? emptyArray : undefined,\n });\n\n const { addressesMap, tokensToDisplay } = useMemo(() => {\n if (searchOnAllChains)\n return {\n tokensToDisplay: tokensFromAllChains,\n addressesMap: tokensFromAllChainsMap,\n };\n\n const currentChainId = forcedChainId ?? appChainId;\n const allTokensWithNativeAddresses = allIncludedTokens.map(\n ({ address }) => address\n );\n\n return {\n tokensToDisplay: allIncludedTokens,\n addressesMap: {\n [currentChainId]: allTokensWithNativeAddresses,\n },\n };\n }, [\n appChainId,\n forcedChainId,\n searchOnAllChains,\n tokensFromAllChains,\n tokensFromAllChainsMap,\n allIncludedTokens,\n ]);\n\n const attachTokenBalance = useAttachTokenBalanceMultichain({\n addressesMap,\n });\n\n const filteredAndSortedTokens = useMemo<TokenMaybeWithUsdBalance[]>(() => {\n return filterTokens({\n filterString: tokenFilter.trim(),\n tokenArray: tokensToDisplay,\n })\n .map(attachTokenBalance)\n .sort(sortTokens);\n }, [attachTokenBalance, tokenFilter, tokensToDisplay]);\n\n return filteredAndSortedTokens;\n};\n\nexport const usePrefetchTokenBalances = () => {\n // will fetch balances for all tokens from tokenLists for current chain,\n // if necessary, can be made to fetch for all chains, but that may be too many requests\n useAllTokensWithFilter({\n tokenFilter: \"\",\n });\n};\n\ntype AllTokensFromChainsInput = {\n includeChains?: number[];\n excludeChains?: number[];\n};\n\n/**\n * @description\n * Returns tokens and token address maps from all chains, optionally filtered by include/exclude chains.\n * If no chains are specified, it will return all tokens from all chains.\n * If includeChains is specified, it will only return tokens from those chains.\n * If excludeChains is specified, it will exclude tokens from those chains.\n */\nexport function useAllTokensFromChains({\n includeChains,\n excludeChains,\n}: AllTokensFromChainsInput): {\n tokens: Token[];\n addressMap: Record<number, string[]>;\n} {\n const { listByChainId: tokensListsByChain } =\n useAtomValue(allTokensByChainAtom);\n\n return useMemo(() => {\n const tokens: Token[] = [];\n const addressMap: Record<number, string[]> = {};\n\n for (const [_chainId, { tokens: _tokens }] of Object.entries(\n tokensListsByChain\n )) {\n const chainId = Number(_chainId);\n if (includeChains && !includeChains.includes(chainId)) continue;\n if (excludeChains && excludeChains.includes(chainId)) continue;\n\n tokens.push(..._tokens);\n addressMap[chainId] = _tokens.map((token) => token.address);\n }\n\n return { tokens, addressMap };\n }, [tokensListsByChain, includeChains, excludeChains]);\n}\n\nexport function useAcrossTokenLists({\n tokenFilter,\n fromChainId,\n toChainId,\n}: {\n tokenFilter: string;\n fromChainId: SupportedChainId;\n toChainId: SupportedChainId;\n}) {\n const { crossTokens } = useTokensFromAcross({\n fromChainId,\n toChainId,\n });\n\n const attachTokenBalance = useAttachTokenBalanceMultichain({\n addressesMap: {\n [toChainId]: crossTokens.map((token) => token.address),\n },\n });\n\n return useMemo<TokenMaybeWithUsdBalance[]>(\n () =>\n filterTokens({\n filterString: tokenFilter.trim(),\n tokenArray: crossTokens,\n })\n .map(attachTokenBalance)\n .sort(sortTokens),\n [attachTokenBalance, crossTokens, tokenFilter]\n );\n}\n"],"names":["useAllTokensWithFilter","t0","$","_c","tokenFilter","forcedChainId","searchOnOtherChainsIfNothingFound","withETH","t1","undefined","appChainId","useChainId","allTokens","useAllTokens","nativeToken","useNativeToken","t2","concat","allIncludedTokens","filteredTokens","filterTokens","filterString","trim","tokenArray","isTokenFilterValidAddress","isAddress","searchOnAllChains","length","t3","emptyArray","t4","includeChains","tokens","tokensFromAllChains","addressMap","tokensFromAllChainsMap","useAllTokensFromChains","t5","bb0","t6","tokensToDisplay","addressesMap","currentChainId","map","_temp","allTokensWithNativeAddresses","t7","t8","attachTokenBalance","useAttachTokenBalanceMultichain","sort","sortTokens","filteredAndSortedTokens","usePrefetchTokenBalances","Symbol","for","excludeChains","listByChainId","tokensListsByChain","useAtomValue","allTokensByChainAtom","useMemo","_chainId","_tokens","Object","entries","chainId","Number","includes","push","token","address","useAcrossTokenLists","fromChainId","toChainId","crossTokens","useTokensFromAcross","_temp3"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
export { Widget } from './core';
|
|
2
|
-
export type { WidgetProps, WidgetConfig, WidgetTheme, EIP1193ProviderLax, } from './core/types';
|
|
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';
|
|
5
|
+
export type { LimitOrderFormState, OTCOrderFormState, SwapFormState, SettingsState, TokenFormState, WidgetState, } from './events/types/common';
|
|
6
|
+
export type { WidgetEventCallbacks, OnConnectWallet, OnAllowToken, OnWrapETH, OnSwap, OnLimitOrder, OnOTCOrder, OnSettingsChange, OnCancelOrder, OnFillOTCOrder, OnFormInputChange, OnPriceChange, } from './events/types';
|
|
7
|
+
export type { FormInputProps } from './core/inputs/state/types';
|
|
4
8
|
export { defaults } from './core/constants';
|
|
5
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,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,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tradeFlow.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/tradeFlow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAE3E,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,iBAAiB,GACvB,iBAAiB,CAQnB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
function sanitizeTradeFlowToken(token) {
|
|
2
|
+
return {
|
|
3
|
+
address: token.address,
|
|
4
|
+
decimals: token.decimals,
|
|
5
|
+
symbol: token.symbol,
|
|
6
|
+
img: token.img,
|
|
7
|
+
network: token.network
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export { sanitizeTradeFlowToken };
|
|
12
|
+
//# sourceMappingURL=tradeFlow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tradeFlow.js","sources":["../../../src/lib/utils/tradeFlow.ts"],"sourcesContent":["import type { MinTradeFlowToken } from \"@/components/widget/TradeOverview\";\n\nexport function sanitizeTradeFlowToken(\n token: MinTradeFlowToken\n): MinTradeFlowToken {\n return {\n address: token.address,\n decimals: token.decimals,\n symbol: token.symbol,\n img: token.img,\n network: token.network,\n };\n}\n"],"names":["sanitizeTradeFlowToken","token","address","decimals","symbol","img","network"],"mappings":"AAEO,SAASA,uBACdC,KAAAA,EACmB;AACnB,EAAA,OAAO;AAAA,IACLC,SAASD,KAAAA,CAAMC,OAAAA;AAAAA,IACfC,UAAUF,KAAAA,CAAME,QAAAA;AAAAA,IAChBC,QAAQH,KAAAA,CAAMG,MAAAA;AAAAA,IACdC,KAAKJ,KAAAA,CAAMI,GAAAA;AAAAA,IACXC,SAASL,KAAAA,CAAMK;AAAAA,GACjB;AACF;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDateNow.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/useDateNow.ts"],"names":[],"mappings":"AACA,wBAAgB,UAAU,IAAI,MAAM,CAGnC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDateNow.js","sources":["../../../src/lib/utils/useDateNow.ts"],"sourcesContent":["// workaround for react-compiler trying to memoize Date.now() result based on an unrelated cached value\nexport function useDateNow(): number {\n \"use no memo\";\n return Date.now();\n}\n"],"names":["useDateNow","Date","now"],"mappings":"AACO,SAASA,UAAAA,GAAqB;AACnC,EAAA,aAAA;AACA,EAAA,OAAOC,KAAKC,GAAAA,EAAI;AAClB;;;;"}
|
|
@@ -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: "
|
|
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: "
|
|
9
|
+
projectId: "9796e40630a6bea7605ac281b0deb939"
|
|
10
10
|
}),
|
|
11
11
|
injected(),
|
|
12
12
|
// metaMask() as CreateConnectorFn, // injected() detects metamask already
|