@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.
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.js +7 -7
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.js.map +1 -1
- package/dist/components/widget/DexesList/DexItem.d.ts.map +1 -1
- package/dist/components/widget/DexesList/DexItem.js +57 -62
- package/dist/components/widget/DexesList/DexItem.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.js +6 -6
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.d.ts.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js +0 -5
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/utils.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/utils.js +4 -2
- package/dist/components/widget/TradeOverview/TradeComplete/utils.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +46 -34
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
- package/dist/configurator/Configurator.d.ts.map +1 -1
- package/dist/core/Updaters.d.ts.map +1 -1
- package/dist/core/Updaters.js +2 -0
- package/dist/core/Updaters.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +101 -93
- package/dist/core/index.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.js +25 -16
- package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.js +9 -12
- package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
- package/dist/core/inputs/state/common.d.ts +2 -2
- package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/selectedTokenActionsAtom.js +34 -25
- package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/inputs/state/selectedTokenAtom.d.ts +2 -2
- package/dist/core/inputs/state/selectedTokenAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/selectedTokenAtom.js +9 -2
- package/dist/core/inputs/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/inputs/state/types.d.ts.map +1 -1
- package/dist/core/limit/useLimitRate.js +3 -1
- package/dist/core/limit/useLimitRate.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 +7 -3
- 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 +4 -4
- package/dist/core/state/widgetEventsAtom.js.map +1 -1
- package/dist/core/swapDetails/maxToPay.d.ts +11 -0
- package/dist/core/swapDetails/maxToPay.d.ts.map +1 -0
- package/dist/core/swapDetails/maxToPay.js +41 -0
- package/dist/core/swapDetails/maxToPay.js.map +1 -0
- package/dist/core/swapDetails/useSwapDetailsListProps.d.ts.map +1 -1
- package/dist/core/swapDetails/useSwapDetailsListProps.js +9 -2
- 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.map +1 -1
- package/dist/core/types.d.ts +6 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/events/effects/price.js +3 -3
- package/dist/events/effects/price.js.map +1 -1
- package/dist/events/effects/swapMode.js +2 -2
- package/dist/events/effects/swapMode.js.map +1 -1
- package/dist/events/hooks/useOnPriceUpdates.d.ts +2 -0
- package/dist/events/hooks/useOnPriceUpdates.d.ts.map +1 -0
- package/dist/events/hooks/useOnPriceUpdates.js +104 -0
- package/dist/events/hooks/useOnPriceUpdates.js.map +1 -0
- package/dist/events/types/priceChange.d.ts +12 -4
- package/dist/events/types/priceChange.d.ts.map +1 -1
- package/dist/hooks/gas/useGasPrices.d.ts.map +1 -1
- package/dist/hooks/gas/useGasPrices.js +2 -2
- package/dist/hooks/gas/useGasPrices.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +33 -4
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +98 -29
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/utils.d.ts +3 -0
- package/dist/hooks/swap/prices/delta/queries/utils.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/utils.js +9 -0
- package/dist/hooks/swap/prices/delta/queries/utils.js.map +1 -0
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts +35 -2
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js +102 -98
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.d.ts +8 -0
- package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js +234 -99
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +13 -20
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
- package/dist/hooks/tokens/prices/queries.d.ts.map +1 -1
- package/dist/hooks/tokens/prices/queries.js +2 -2
- package/dist/hooks/tokens/prices/queries.js.map +1 -1
- package/dist/hooks/tokens/useTokenTaxFee.js +2 -2
- package/dist/hooks/tokens/useTokenTaxFee.js.map +1 -1
- package/dist/hooks/txs/queries/useTxHistory.d.ts.map +1 -1
- package/dist/hooks/txs/queries/useTxHistory.js +2 -2
- package/dist/hooks/txs/queries/useTxHistory.js.map +1 -1
- package/dist/hooks/useCachedQueryError.d.ts +3 -0
- package/dist/hooks/useCachedQueryError.d.ts.map +1 -0
- package/dist/hooks/useCachedQueryError.js +11 -0
- package/dist/hooks/useCachedQueryError.js.map +1 -0
- package/dist/hooks/useSDK.d.ts.map +1 -1
- package/dist/hooks/useSDK.js +11 -11
- package/dist/hooks/useSDK.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/constants/index.d.ts +0 -2
- package/dist/lib/constants/index.d.ts.map +1 -1
- package/dist/lib/constants/index.js +1 -4
- package/dist/lib/constants/index.js.map +1 -1
- package/dist/lib/constants/urls.d.ts +4 -0
- package/dist/lib/constants/urls.d.ts.map +1 -0
- package/dist/lib/constants/urls.js +30 -0
- package/dist/lib/constants/urls.js.map +1 -0
- package/dist/lib/utils/explorer.d.ts.map +1 -1
- package/dist/lib/utils/explorer.js +3 -3
- package/dist/lib/utils/explorer.js.map +1 -1
- package/dist/lib/web3/privy/config.js +1 -1
- package/dist/lib/web3/wagmi/config.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/tokens/overrides.d.ts +13 -2
- package/dist/tokens/overrides.d.ts.map +1 -1
- package/dist/tokens/overrides.js +71 -3
- package/dist/tokens/overrides.js.map +1 -1
- package/dist/tokens/types.d.ts +4 -0
- package/dist/tokens/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Token } from '../../../tokens/state/types';
|
|
2
|
-
export declare const swapTokenFromAtom: import('jotai').
|
|
2
|
+
export declare const swapTokenFromAtom: import('jotai').WritableAtom<Token, [token: Token], void> & {
|
|
3
3
|
init: Token;
|
|
4
4
|
};
|
|
5
|
-
export declare const swapTokenToAtom: import('jotai').
|
|
5
|
+
export declare const swapTokenToAtom: import('jotai').WritableAtom<Token | undefined, [token?: Token | undefined], void> & {
|
|
6
6
|
init: Token | undefined;
|
|
7
7
|
};
|
|
8
8
|
export declare const useSwapTokenFrom: () => Token;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectedTokenAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/state/selectedTokenAtom.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"selectedTokenAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/state/selectedTokenAtom.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAQlD,eAAO,MAAM,iBAAiB;;CAO7B,CAAC;AACF,eAAO,MAAM,eAAe;;CAO3B,CAAC;AAEF,eAAO,MAAM,gBAAgB,aAAwC,CAAC;AACtE,eAAO,MAAM,cAAc,yBAAsC,CAAC"}
|
|
@@ -1,10 +1,17 @@
|
|
|
1
|
+
import { currentSwapInputAtom } from '../../state/currentSwapInputAtom.js';
|
|
1
2
|
import { wagmiConfig } from '../../../lib/web3/wagmi/config.js';
|
|
2
3
|
import { pickDefaultTokenPair } from '../../../tokens/defaultTokens.js';
|
|
3
4
|
import { atom, useAtomValue } from 'jotai';
|
|
4
5
|
|
|
5
6
|
const [defaultTokenFrom] = pickDefaultTokenPair(wagmiConfig.state.chainId, "swap");
|
|
6
|
-
const swapTokenFromAtom = atom(defaultTokenFrom)
|
|
7
|
-
|
|
7
|
+
const swapTokenFromAtom = atom(defaultTokenFrom, (_get, set, token) => {
|
|
8
|
+
set(swapTokenFromAtom, token);
|
|
9
|
+
set(currentSwapInputAtom, "from");
|
|
10
|
+
});
|
|
11
|
+
const swapTokenToAtom = atom(void 0, (_get, set, token) => {
|
|
12
|
+
set(swapTokenToAtom, token);
|
|
13
|
+
set(currentSwapInputAtom, "from");
|
|
14
|
+
});
|
|
8
15
|
const useSwapTokenFrom = () => {
|
|
9
16
|
return useAtomValue(swapTokenFromAtom);
|
|
10
17
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectedTokenAtom.js","sources":["../../../../src/core/inputs/state/selectedTokenAtom.ts"],"sourcesContent":["import { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { type Token } from \"@/tokens/state/types\";\nimport { atom, useAtomValue } from \"jotai\";\n\nconst [defaultTokenFrom] = pickDefaultTokenPair(\n wagmiConfig.state.chainId,\n \"swap\"\n);\n\nexport const swapTokenFromAtom = atom(defaultTokenFrom);\nexport const swapTokenToAtom = atom<Token>();\n\nexport const useSwapTokenFrom = () => useAtomValue(swapTokenFromAtom);\nexport const useSwapTokenTo = () => useAtomValue(swapTokenToAtom);\n"],"names":["defaultTokenFrom","pickDefaultTokenPair","wagmiConfig","state","chainId","swapTokenFromAtom","atom","swapTokenToAtom","useSwapTokenFrom","useAtomValue","useSwapTokenTo"],"mappings":"
|
|
1
|
+
{"version":3,"file":"selectedTokenAtom.js","sources":["../../../../src/core/inputs/state/selectedTokenAtom.ts"],"sourcesContent":["import { currentSwapInputAtom } from \"@/core/state/currentSwapInputAtom\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { type Token } from \"@/tokens/state/types\";\nimport { atom, useAtomValue } from \"jotai\";\n\nconst [defaultTokenFrom] = pickDefaultTokenPair(\n wagmiConfig.state.chainId,\n \"swap\"\n);\n\nexport const swapTokenFromAtom = atom<Token, [token: Token], void>(\n defaultTokenFrom,\n (_get, set, token) => {\n set(swapTokenFromAtom, token);\n // whenever selected Token changes, reset the input to \"from\" and therefore swapSide=SELL\n set(currentSwapInputAtom, \"from\");\n }\n);\nexport const swapTokenToAtom = atom<Token | undefined, [token?: Token], void>(\n undefined,\n (_get, set, token) => {\n set(swapTokenToAtom, token);\n // whenever selected Token changes, reset the input to \"from\" and therefore swapSide=SELL\n set(currentSwapInputAtom, \"from\");\n }\n);\n\nexport const useSwapTokenFrom = () => useAtomValue(swapTokenFromAtom);\nexport const useSwapTokenTo = () => useAtomValue(swapTokenToAtom);\n"],"names":["defaultTokenFrom","pickDefaultTokenPair","wagmiConfig","state","chainId","swapTokenFromAtom","atom","_get","set","token","currentSwapInputAtom","swapTokenToAtom","undefined","useSwapTokenFrom","useAtomValue","useSwapTokenTo"],"mappings":";;;;;AAMA,MAAM,CAACA,gBAAgB,CAAA,GAAIC,qBACzBC,WAAAA,CAAYC,KAAAA,CAAMC,SAClB,MACF,CAAA;AAEO,MAAMC,oBAAoBC,IAAAA,CAC/BN,gBAAAA,EACA,CAACO,IAAAA,EAAMC,KAAKC,KAAAA,KAAU;AACpBD,EAAAA,GAAAA,CAAIH,mBAAmBI,KAAK,CAAA;AAE5BD,EAAAA,GAAAA,CAAIE,sBAAsB,MAAM,CAAA;AAClC,CACF;AACO,MAAMC,kBAAkBL,IAAAA,CAC7BM,MAAAA,EACA,CAACL,IAAAA,EAAMC,KAAKC,KAAAA,KAAU;AACpBD,EAAAA,GAAAA,CAAIG,iBAAiBF,KAAK,CAAA;AAE1BD,EAAAA,GAAAA,CAAIE,sBAAsB,MAAM,CAAA;AAClC,CACF;AAEO,MAAMG,mBAAmBA,MAAA;AAAA,EAAA,OAAMC,aAAaT,iBAAiB,CAAA;AAAC;AAC9D,MAAMU,iBAAiBA,MAAA;AAAA,EAAA,OAAMD,aAAaH,eAAe,CAAA;AAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/state/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,MAAM,MAAM,cAAc,GAAG;IAC3B,4DAA4D;IAC5D,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iGAAiG;IACjG,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kGAAkG;IAClG,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/state/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,MAAM,MAAM,cAAc,GAAG;IAC3B,4DAA4D;IAC5D,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iGAAiG;IACjG,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kGAAkG;IAClG,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CAGrB,CAAC"}
|
|
@@ -76,7 +76,9 @@ const useSwapPriceForLimit = (t0) => {
|
|
|
76
76
|
} else {
|
|
77
77
|
t6 = $[11];
|
|
78
78
|
}
|
|
79
|
-
const
|
|
79
|
+
const {
|
|
80
|
+
result: marketPriceQuery
|
|
81
|
+
} = useMarketPriceQuery(t6);
|
|
80
82
|
let t7;
|
|
81
83
|
if ($[12] !== marketPriceQuery.data || $[13] !== marketPriceQuery.isLoading) {
|
|
82
84
|
t7 = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLimitRate.js","sources":["../../../src/core/limit/useLimitRate.ts"],"sourcesContent":["import { useMarketPriceQuery } from \"@/hooks/swap/prices/market/queries/useMarketPriceQuery\";\nimport {\n usePricesParams,\n type FetchPriceParams,\n} from \"@/hooks/swap/prices/usePricesParams\";\nimport { useTokenPrice } from \"@/hooks/tokens/prices/useTokenPrices\";\nimport Big from \"big.js\";\nimport { parseUnits, formatUnits } from \"viem\";\nimport { useWidgetTokens } from \"../inputs/state/common\";\nimport type { UseLimitRateResult } from \"./types\";\nimport { useAtomValue } from \"jotai\";\nimport { tradeModeToTokenAtoms } from \"../inputs/state/common\";\nimport { useMemo } from \"react\";\n\n// 5 min, so as not to change limit price in front of the user too often\nconst PRICE_REFETCH_INTERVAL = 60_000 * 5;\n\nconst useSwapPriceForLimit = ({\n enabled = true,\n refetchInterval = PRICE_REFETCH_INTERVAL,\n tradeMode,\n}: {\n enabled?: boolean;\n refetchInterval?: number;\n tradeMode: \"limit\" | \"otc\";\n}) => {\n const tokenFrom = useAtomValue(\n tradeModeToTokenAtoms[tradeMode].tokenFromAtom\n );\n const { priceParams, chainId } = usePricesParams(tradeMode);\n\n const priceParamsWithAmount: FetchPriceParams = {\n ...priceParams,\n amount: parseUnits(\"1\", tokenFrom.decimals).toString(),\n side: \"SELL\" as const,\n ignoreBadUsdPrice: true,\n };\n\n // @TODO: delta price return quote for less tokens than market price with srcAmount=1,\n // but maybe we should increase srcAmount and use delta prices instead, need to test.\n const marketPriceQuery = useMarketPriceQuery({\n priceParams: priceParamsWithAmount,\n chainId,\n timeout: 5000,\n query: {\n enabled,\n refetchInterval,\n retry: false,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n },\n });\n\n return {\n price: marketPriceQuery.data,\n isLoading: marketPriceQuery.isLoading,\n };\n};\n\n// define how many tokenTo units one tokenFrom (tokenTo if reversed) unit costs, eg 1 ETH = 3000 USDC\nexport const useLimitRate = (\n tradeMode: \"limit\" | \"otc\"\n): UseLimitRateResult => {\n const { tokenFrom, tokenTo } = useWidgetTokens(tradeMode);\n\n const { data: tokenFromPrice, isLoading: isTokenFromPriceLoading } =\n useTokenPrice(tokenFrom, { refetchInterval: PRICE_REFETCH_INTERVAL });\n const { data: tokenToPrice, isLoading: isTokenToPriceLoading } =\n useTokenPrice(tokenTo, { refetchInterval: PRICE_REFETCH_INTERVAL });\n\n const areFiatPricesLoading = isTokenFromPriceLoading || isTokenToPriceLoading;\n\n const fiatPricesAvailable = !!(tokenFromPrice && tokenToPrice);\n const fetchSwapPrice = !fiatPricesAvailable && !areFiatPricesLoading;\n\n const { price: swapPrice, isLoading: isSwapPriceLoading } =\n useSwapPriceForLimit({ enabled: fetchSwapPrice, tradeMode });\n\n const isLoading = areFiatPricesLoading || isSwapPriceLoading;\n\n return useMemo(() => {\n if (!tokenTo) {\n return { isLoading };\n }\n\n let rate: string | undefined = undefined;\n let rateReversed: string | undefined = undefined;\n if (fiatPricesAvailable) {\n rate = Big(tokenFromPrice.price).div(tokenToPrice.price).toFixed();\n rateReversed = Big(tokenToPrice.price)\n .div(tokenFromPrice.price)\n .toFixed();\n } else if (swapPrice) {\n const srcUnits = formatUnits(\n BigInt(swapPrice.srcAmount),\n tokenFrom.decimals\n );\n const destUnits = formatUnits(\n BigInt(swapPrice.destAmount),\n tokenTo.decimals\n );\n\n rate = Big(destUnits).div(srcUnits).toFixed();\n rateReversed = Big(srcUnits).div(destUnits).toFixed();\n }\n\n if (!rate || !rateReversed) {\n return { isLoading };\n }\n\n return {\n rates: { rate, rateReversed },\n isLoading,\n };\n }, [\n fiatPricesAvailable,\n isLoading,\n swapPrice,\n tokenFrom.decimals,\n tokenFromPrice?.price,\n tokenTo,\n tokenToPrice?.price,\n ]);\n};\n"],"names":["PRICE_REFETCH_INTERVAL","useSwapPriceForLimit","t0","$","_c","enabled","t1","refetchInterval","t2","tradeMode","undefined","tokenFrom","useAtomValue","tradeModeToTokenAtoms","tokenFromAtom","priceParams","chainId","usePricesParams","t3","decimals","parseUnits","toString","t4","amount","side","ignoreBadUsdPrice","priceParamsWithAmount","t5","retry","refetchOnWindowFocus","refetchOnMount","t6","timeout","query","marketPriceQuery","useMarketPriceQuery","t7","data","isLoading","price","useLimitRate","tokenTo","useWidgetTokens","tokenFromPrice","isTokenFromPriceLoading","useTokenPrice","tokenToPrice","isTokenToPriceLoading","areFiatPricesLoading","fiatPricesAvailable","fetchSwapPrice","swapPrice","isSwapPriceLoading","useMemo","rate","rateReversed","Big","div","toFixed","srcUnits","formatUnits","BigInt","srcAmount","destUnits","destAmount","rates"],"mappings":";;;;;;;;;;AAeA,MAAMA,yBAAyB,GAAA,GAAS,CAAA;AAExC,MAAMC,uBAAuBC,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAC,EAAA,MAAA;AAAA,IAAAC,OAAAA,EAAAC,EAAAA;AAAAA,IAAAC,eAAAA,EAAAC,EAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAP,EAAAA;AAC5B,EAAA,MAAAG,OAAAA,GAAAC,EAAAA,KAAAI,MAAAA,GAAA,IAAA,GAAAJ,EAAAA;AACA,EAAA,MAAAC,eAAAA,GAAAC,EAAAA,KAAAE,MAAAA,GAAAV,sBAAAA,GAAAQ,EAAAA;AAOA,EAAA,MAAAG,SAAAA,GAAkBC,YAAAA,CAChBC,qBAAAA,CAAsBJ,SAAS,EAACK,aAClC,CAAA;AACA,EAAA,MAAA;AAAA,IAAAC,WAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAiCC,gBAAgBR,SAAS,CAAA;AAAE,EAAA,IAAAS,EAAAA;AAAA,EAAA,IAAAf,CAAAA,CAAA,CAAA,CAAA,KAAAQ,SAAAA,CAAAQ,QAAAA,EAAA;AAIlDD,IAAAA,EAAAA,GAAAE,UAAAA,CAAW,GAAA,EAAKT,SAAAA,CAASQ,QAAS,EAACE,QAAAA,EAAU;AAAClB,IAAAA,CAAAA,CAAA,CAAA,IAAAQ,SAAAA,CAAAQ,QAAAA;AAAAhB,IAAAA,CAAAA,MAAAe,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAf,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAmB,EAAAA;AAAA,EAAA,IAAAnB,EAAA,CAAA,CAAA,KAAAY,eAAAZ,CAAAA,QAAAe,EAAAA,EAAA;AAFRI,IAAAA,EAAAA,GAAA;AAAA,MAAA,GAC3CP,WAAAA;AAAAA,MAAWQ,MAAAA,EACNL,EAAAA;AAAAA,MAA8CM,IAAAA,EAChD,MAAA;AAAA,MAAeC,iBAAAA,EACF;AAAA,KACrB;AAACtB,IAAAA,CAAAA,MAAAY,WAAAA;AAAAZ,IAAAA,CAAAA,MAAAe,EAAAA;AAAAf,IAAAA,CAAAA,MAAAmB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAnB,EAAA,CAAA,CAAA;AAAA,EAAA;AALD,EAAA,MAAAuB,qBAAAA,GAAgDJ,EAAAA;AAK9C,EAAA,IAAAK,EAAAA;AAAA,EAAA,IAAAxB,EAAA,CAAA,CAAA,KAAAE,WAAAF,CAAAA,QAAAI,eAAAA,EAAA;AAQOoB,IAAAA,EAAAA,GAAA;AAAA,MAAAtB,OAAAA;AAAAA,MAAAE,eAAAA;AAAAA,MAAAqB,KAAAA,EAGE,KAAA;AAAA,MAAKC,oBAAAA,EACU,KAAA;AAAA,MAAKC,cAAAA,EACX;AAAA,KAClB;AAAC3B,IAAAA,CAAAA,MAAAE,OAAAA;AAAAF,IAAAA,CAAAA,MAAAI,eAAAA;AAAAJ,IAAAA,CAAAA,MAAAwB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAxB,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAA4B,EAAAA;AAAA,EAAA,IAAA5B,CAAAA,CAAA,CAAA,CAAA,KAAAa,OAAAA,IAAAb,CAAAA,QAAAuB,qBAAAA,IAAAvB,CAAAA,CAAA,EAAA,CAAA,KAAAwB,EAAAA,EAAA;
|
|
1
|
+
{"version":3,"file":"useLimitRate.js","sources":["../../../src/core/limit/useLimitRate.ts"],"sourcesContent":["import { useMarketPriceQuery } from \"@/hooks/swap/prices/market/queries/useMarketPriceQuery\";\nimport {\n usePricesParams,\n type FetchPriceParams,\n} from \"@/hooks/swap/prices/usePricesParams\";\nimport { useTokenPrice } from \"@/hooks/tokens/prices/useTokenPrices\";\nimport Big from \"big.js\";\nimport { parseUnits, formatUnits } from \"viem\";\nimport { useWidgetTokens } from \"../inputs/state/common\";\nimport type { UseLimitRateResult } from \"./types\";\nimport { useAtomValue } from \"jotai\";\nimport { tradeModeToTokenAtoms } from \"../inputs/state/common\";\nimport { useMemo } from \"react\";\n\n// 5 min, so as not to change limit price in front of the user too often\nconst PRICE_REFETCH_INTERVAL = 60_000 * 5;\n\nconst useSwapPriceForLimit = ({\n enabled = true,\n refetchInterval = PRICE_REFETCH_INTERVAL,\n tradeMode,\n}: {\n enabled?: boolean;\n refetchInterval?: number;\n tradeMode: \"limit\" | \"otc\";\n}) => {\n const tokenFrom = useAtomValue(\n tradeModeToTokenAtoms[tradeMode].tokenFromAtom\n );\n const { priceParams, chainId } = usePricesParams(tradeMode);\n\n const priceParamsWithAmount: FetchPriceParams = {\n ...priceParams,\n amount: parseUnits(\"1\", tokenFrom.decimals).toString(),\n side: \"SELL\" as const,\n ignoreBadUsdPrice: true,\n };\n\n // @TODO: delta price return quote for less tokens than market price with srcAmount=1,\n // but maybe we should increase srcAmount and use delta prices instead, need to test.\n const { result: marketPriceQuery } = useMarketPriceQuery({\n priceParams: priceParamsWithAmount,\n chainId,\n timeout: 5000,\n query: {\n enabled,\n refetchInterval,\n retry: false,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n },\n });\n\n return {\n price: marketPriceQuery.data,\n isLoading: marketPriceQuery.isLoading,\n };\n};\n\n// define how many tokenTo units one tokenFrom (tokenTo if reversed) unit costs, eg 1 ETH = 3000 USDC\nexport const useLimitRate = (\n tradeMode: \"limit\" | \"otc\"\n): UseLimitRateResult => {\n const { tokenFrom, tokenTo } = useWidgetTokens(tradeMode);\n\n const { data: tokenFromPrice, isLoading: isTokenFromPriceLoading } =\n useTokenPrice(tokenFrom, { refetchInterval: PRICE_REFETCH_INTERVAL });\n const { data: tokenToPrice, isLoading: isTokenToPriceLoading } =\n useTokenPrice(tokenTo, { refetchInterval: PRICE_REFETCH_INTERVAL });\n\n const areFiatPricesLoading = isTokenFromPriceLoading || isTokenToPriceLoading;\n\n const fiatPricesAvailable = !!(tokenFromPrice && tokenToPrice);\n const fetchSwapPrice = !fiatPricesAvailable && !areFiatPricesLoading;\n\n const { price: swapPrice, isLoading: isSwapPriceLoading } =\n useSwapPriceForLimit({ enabled: fetchSwapPrice, tradeMode });\n\n const isLoading = areFiatPricesLoading || isSwapPriceLoading;\n\n return useMemo(() => {\n if (!tokenTo) {\n return { isLoading };\n }\n\n let rate: string | undefined = undefined;\n let rateReversed: string | undefined = undefined;\n if (fiatPricesAvailable) {\n rate = Big(tokenFromPrice.price).div(tokenToPrice.price).toFixed();\n rateReversed = Big(tokenToPrice.price)\n .div(tokenFromPrice.price)\n .toFixed();\n } else if (swapPrice) {\n const srcUnits = formatUnits(\n BigInt(swapPrice.srcAmount),\n tokenFrom.decimals\n );\n const destUnits = formatUnits(\n BigInt(swapPrice.destAmount),\n tokenTo.decimals\n );\n\n rate = Big(destUnits).div(srcUnits).toFixed();\n rateReversed = Big(srcUnits).div(destUnits).toFixed();\n }\n\n if (!rate || !rateReversed) {\n return { isLoading };\n }\n\n return {\n rates: { rate, rateReversed },\n isLoading,\n };\n }, [\n fiatPricesAvailable,\n isLoading,\n swapPrice,\n tokenFrom.decimals,\n tokenFromPrice?.price,\n tokenTo,\n tokenToPrice?.price,\n ]);\n};\n"],"names":["PRICE_REFETCH_INTERVAL","useSwapPriceForLimit","t0","$","_c","enabled","t1","refetchInterval","t2","tradeMode","undefined","tokenFrom","useAtomValue","tradeModeToTokenAtoms","tokenFromAtom","priceParams","chainId","usePricesParams","t3","decimals","parseUnits","toString","t4","amount","side","ignoreBadUsdPrice","priceParamsWithAmount","t5","retry","refetchOnWindowFocus","refetchOnMount","t6","timeout","query","result","marketPriceQuery","useMarketPriceQuery","t7","data","isLoading","price","useLimitRate","tokenTo","useWidgetTokens","tokenFromPrice","isTokenFromPriceLoading","useTokenPrice","tokenToPrice","isTokenToPriceLoading","areFiatPricesLoading","fiatPricesAvailable","fetchSwapPrice","swapPrice","isSwapPriceLoading","useMemo","rate","rateReversed","Big","div","toFixed","srcUnits","formatUnits","BigInt","srcAmount","destUnits","destAmount","rates"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configActionsAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/configActionsAtom.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,cAAc,EACnB,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"configActionsAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/configActionsAtom.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,cAAc,EACnB,KAAK,eAAe,EAIrB,MAAM,cAAc,CAAC;AAStB,eAAO,MAAM,mBAAmB;;CAgD/B,CAAC;AAIF,eAAO,MAAM,gBAAgB;;CA2B3B,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { atom } from 'jotai';
|
|
2
|
-
import { defaultWidgetConfig, widgetConfigAtom, defaultSubConfig, srcChainsAtom, destChainsAtom, tokenListsAtom, tradeModesAtom, excludeUIAtom } from './configAtom.js';
|
|
2
|
+
import { defaultWidgetConfig, widgetConfigAtom, defaultSubConfig, srcChainsAtom, destChainsAtom, tokenListsAtom, tradeModesAtom, excludeUIAtom, devURLsAtom } from './configAtom.js';
|
|
3
3
|
|
|
4
4
|
const setWidgetConfigAtom = atom(null, (_, set, config) => {
|
|
5
5
|
const enableDelta = typeof config.enableDelta !== "boolean" ? defaultWidgetConfig.enableDelta : config.enableDelta;
|
|
@@ -29,11 +29,13 @@ const setSubConfigAtom = atom(null, (_, set, config) => {
|
|
|
29
29
|
const tokenLists = !Array.isArray(config.tokenLists) ? defaultSubConfig.tokenLists : config.tokenLists;
|
|
30
30
|
const tradeModes = !Array.isArray(config.tradeModes) ? defaultSubConfig.tradeModes : config.tradeModes;
|
|
31
31
|
const excludeUI = !Array.isArray(config.excludeUI) ? defaultSubConfig.excludeUI : config.excludeUI;
|
|
32
|
+
const devURLs = typeof config.devURLs !== "object" || config.devURLs === null ? defaultSubConfig.devURLs : config.devURLs;
|
|
32
33
|
set(srcChainsAtom, srcChains);
|
|
33
34
|
set(destChainsAtom, destChains);
|
|
34
35
|
set(tokenListsAtom, tokenLists);
|
|
35
36
|
set(tradeModesAtom, tradeModes);
|
|
36
37
|
set(excludeUIAtom, excludeUI);
|
|
38
|
+
set(devURLsAtom, devURLs);
|
|
37
39
|
});
|
|
38
40
|
|
|
39
41
|
export { setSubConfigAtom, setWidgetConfigAtom };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configActionsAtom.js","sources":["../../../src/core/state/configActionsAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport {\n defaultWidgetConfig,\n defaultSubConfig,\n destChainsAtom,\n srcChainsAtom,\n tokenListsAtom,\n widgetConfigAtom,\n type IterableConfig,\n type PrimitiveConfig,\n tradeModesAtom,\n excludeUIAtom,\n} from \"./configAtom\";\n\n// for each config/subConfig property, determine new value:\n// - if provided in config param is not valid, use default value\n// - otherwise, use provided value\n// this way we avoid overwriting with invalid values\n\n// this atom is used to sync widget config provided via props to the widgetConfigAtom without preserving previous values\n// if user does not provide any of the config properties or config itself, defaults will be used without falling back to the current value\nexport const setWidgetConfigAtom = atom(\n null,\n (_, set, config: PrimitiveConfig) => {\n const enableDelta =\n typeof config.enableDelta !== \"boolean\"\n ? defaultWidgetConfig.enableDelta\n : config.enableDelta;\n const enableCrossChain =\n typeof config.enableCrossChain !== \"boolean\"\n ? defaultWidgetConfig.enableCrossChain\n : config.enableCrossChain;\n const theme =\n config.theme !== \"dark\" && config.theme !== \"light\"\n ? defaultWidgetConfig.theme\n : config.theme;\n const privyAppId =\n typeof config.privyAppId !== \"string\"\n ? defaultWidgetConfig.privyAppId\n : config.privyAppId;\n const privyClientId =\n typeof config.privyClientId !== \"string\"\n ? defaultWidgetConfig.privyClientId\n : config.privyClientId;\n const debug =\n typeof config.debug !== \"boolean\"\n ? defaultWidgetConfig.debug\n : config.debug;\n const widgetMode =\n config.widgetMode !== \"dapp\" && config.widgetMode !== \"standalone\"\n ? defaultWidgetConfig.widgetMode\n : config.widgetMode;\n const ignoreBadUsdPrice =\n typeof config.ignoreBadUsdPrice !== \"boolean\"\n ? defaultWidgetConfig.ignoreBadUsdPrice\n : config.ignoreBadUsdPrice;\n\n set(widgetConfigAtom, {\n theme,\n enableDelta,\n enableCrossChain,\n partner: config.partner, // except for 'partner' which can be set to undefined\n privyAppId,\n privyClientId,\n debug,\n widgetMode,\n ignoreBadUsdPrice,\n });\n }\n);\n\n// this atom is used to sync partial widget config values provided via props to their atoms without preserving previous values\n// if user does not provide any of the config properties or config itself, defaults will be used without falling back to the current value\nexport const setSubConfigAtom = atom(null, (_, set, config: IterableConfig) => {\n const srcChains = !Array.isArray(config.srcChains)\n ? defaultSubConfig.srcChains\n : config.srcChains;\n const destChains = !Array.isArray(config.destChains)\n ? defaultSubConfig.destChains\n : config.destChains;\n const tokenLists = !Array.isArray(config.tokenLists)\n ? defaultSubConfig.tokenLists\n : config.tokenLists;\n const tradeModes = !Array.isArray(config.tradeModes)\n ? defaultSubConfig.tradeModes\n : config.tradeModes;\n const excludeUI = !Array.isArray(config.excludeUI)\n ? defaultSubConfig.excludeUI\n : config.excludeUI;\n\n set(srcChainsAtom, srcChains);\n set(destChainsAtom, destChains);\n set(tokenListsAtom, tokenLists);\n set(tradeModesAtom, tradeModes);\n set(excludeUIAtom, excludeUI);\n});\n"],"names":["setWidgetConfigAtom","atom","_","set","config","enableDelta","defaultWidgetConfig","enableCrossChain","theme","privyAppId","privyClientId","debug","widgetMode","ignoreBadUsdPrice","widgetConfigAtom","partner","setSubConfigAtom","srcChains","Array","isArray","defaultSubConfig","destChains","tokenLists","tradeModes","excludeUI","srcChainsAtom","destChainsAtom","tokenListsAtom","tradeModesAtom","excludeUIAtom"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"configActionsAtom.js","sources":["../../../src/core/state/configActionsAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport {\n defaultWidgetConfig,\n defaultSubConfig,\n destChainsAtom,\n srcChainsAtom,\n tokenListsAtom,\n widgetConfigAtom,\n type IterableConfig,\n type PrimitiveConfig,\n tradeModesAtom,\n excludeUIAtom,\n devURLsAtom,\n} from \"./configAtom\";\n\n// for each config/subConfig property, determine new value:\n// - if provided in config param is not valid, use default value\n// - otherwise, use provided value\n// this way we avoid overwriting with invalid values\n\n// this atom is used to sync widget config provided via props to the widgetConfigAtom without preserving previous values\n// if user does not provide any of the config properties or config itself, defaults will be used without falling back to the current value\nexport const setWidgetConfigAtom = atom(\n null,\n (_, set, config: PrimitiveConfig) => {\n const enableDelta =\n typeof config.enableDelta !== \"boolean\"\n ? defaultWidgetConfig.enableDelta\n : config.enableDelta;\n const enableCrossChain =\n typeof config.enableCrossChain !== \"boolean\"\n ? defaultWidgetConfig.enableCrossChain\n : config.enableCrossChain;\n const theme =\n config.theme !== \"dark\" && config.theme !== \"light\"\n ? defaultWidgetConfig.theme\n : config.theme;\n const privyAppId =\n typeof config.privyAppId !== \"string\"\n ? defaultWidgetConfig.privyAppId\n : config.privyAppId;\n const privyClientId =\n typeof config.privyClientId !== \"string\"\n ? defaultWidgetConfig.privyClientId\n : config.privyClientId;\n const debug =\n typeof config.debug !== \"boolean\"\n ? defaultWidgetConfig.debug\n : config.debug;\n const widgetMode =\n config.widgetMode !== \"dapp\" && config.widgetMode !== \"standalone\"\n ? defaultWidgetConfig.widgetMode\n : config.widgetMode;\n const ignoreBadUsdPrice =\n typeof config.ignoreBadUsdPrice !== \"boolean\"\n ? defaultWidgetConfig.ignoreBadUsdPrice\n : config.ignoreBadUsdPrice;\n\n set(widgetConfigAtom, {\n theme,\n enableDelta,\n enableCrossChain,\n partner: config.partner, // except for 'partner' which can be set to undefined\n privyAppId,\n privyClientId,\n debug,\n widgetMode,\n ignoreBadUsdPrice,\n });\n }\n);\n\n// this atom is used to sync partial widget config values provided via props to their atoms without preserving previous values\n// if user does not provide any of the config properties or config itself, defaults will be used without falling back to the current value\nexport const setSubConfigAtom = atom(null, (_, set, config: IterableConfig) => {\n const srcChains = !Array.isArray(config.srcChains)\n ? defaultSubConfig.srcChains\n : config.srcChains;\n const destChains = !Array.isArray(config.destChains)\n ? defaultSubConfig.destChains\n : config.destChains;\n const tokenLists = !Array.isArray(config.tokenLists)\n ? defaultSubConfig.tokenLists\n : config.tokenLists;\n const tradeModes = !Array.isArray(config.tradeModes)\n ? defaultSubConfig.tradeModes\n : config.tradeModes;\n const excludeUI = !Array.isArray(config.excludeUI)\n ? defaultSubConfig.excludeUI\n : config.excludeUI;\n const devURLs =\n typeof config.devURLs !== \"object\" || config.devURLs === null\n ? defaultSubConfig.devURLs\n : config.devURLs;\n\n set(srcChainsAtom, srcChains);\n set(destChainsAtom, destChains);\n set(tokenListsAtom, tokenLists);\n set(tradeModesAtom, tradeModes);\n set(excludeUIAtom, excludeUI);\n set(devURLsAtom, devURLs);\n});\n"],"names":["setWidgetConfigAtom","atom","_","set","config","enableDelta","defaultWidgetConfig","enableCrossChain","theme","privyAppId","privyClientId","debug","widgetMode","ignoreBadUsdPrice","widgetConfigAtom","partner","setSubConfigAtom","srcChains","Array","isArray","defaultSubConfig","destChains","tokenLists","tradeModes","excludeUI","devURLs","srcChainsAtom","destChainsAtom","tokenListsAtom","tradeModesAtom","excludeUIAtom","devURLsAtom"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { WidgetElements, WidgetConfig } from '../types';
|
|
1
|
+
import { WidgetElements, WidgetConfig, DevURLs } from '../types';
|
|
2
2
|
import { TradeMode } from './tradeModeAtom';
|
|
3
3
|
export type PrimitiveConfig = Pick<WidgetConfig, "theme" | "enableDelta" | "enableCrossChain" | "partner" | "privyAppId" | "privyClientId" | "debug" | "widgetMode" | "ignoreBadUsdPrice">;
|
|
4
|
-
export type IterableConfig = Pick<WidgetConfig, "srcChains" | "destChains" | "tokenLists" | "tradeModes" | "excludeUI">;
|
|
4
|
+
export type IterableConfig = Pick<WidgetConfig, "srcChains" | "destChains" | "tokenLists" | "tradeModes" | "excludeUI" | "devURLs">;
|
|
5
5
|
export declare const defaultWidgetConfig: {
|
|
6
6
|
readonly theme: "light" | "dark";
|
|
7
7
|
readonly enableDelta: true;
|
|
@@ -52,10 +52,12 @@ export declare const defaultSubConfig: {
|
|
|
52
52
|
readonly destChains: never[];
|
|
53
53
|
readonly tradeModes: never[];
|
|
54
54
|
readonly excludeUI: never[];
|
|
55
|
+
readonly devURLs: Record<string, never>;
|
|
55
56
|
};
|
|
56
57
|
export declare const tokenListsAtom: import('jotai').WritableAtom<string[], [string[]], void>;
|
|
57
58
|
export declare const srcChainsAtom: import('jotai').WritableAtom<(1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130)[], [(1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130)[]], void>;
|
|
58
59
|
export declare const destChainsAtom: import('jotai').WritableAtom<(1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130)[], [(1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130)[]], void>;
|
|
59
60
|
export declare const tradeModesAtom: import('jotai').WritableAtom<TradeMode[], [TradeMode[]], void>;
|
|
60
61
|
export declare const excludeUIAtom: import('jotai').WritableAtom<WidgetElements[], [WidgetElements[]], void>;
|
|
62
|
+
export declare const devURLsAtom: import('jotai').WritableAtom<DevURLs, [DevURLs], void>;
|
|
61
63
|
//# sourceMappingURL=configAtom.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/configAtom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"configAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/configAtom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAMtE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,YAAY,EACV,OAAO,GACP,aAAa,GACb,kBAAkB,GAClB,SAAS,GACT,YAAY,GACZ,eAAe,GACf,OAAO,GACP,YAAY,GACZ,mBAAmB,CACtB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,YAAY,EACV,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,SAAS,CACZ,CAAC;AAcF,eAAO,MAAM,mBAAmB;;;;;;;;;CASI,CAAC;AAErC,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;CAAkD,CAAC;AAEhF,eAAO,MAAM,eAAe;;;;;;;;;;CAE3B,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;CAOM,CAAC;AAIpC,eAAO,MAAM,cAAc,0DAG1B,CAAC;AACF,eAAO,MAAM,aAAa,sKAGzB,CAAC;AACF,eAAO,MAAM,cAAc,sKAG1B,CAAC;AAEF,eAAO,MAAM,cAAc,gEAG1B,CAAC;AAEF,eAAO,MAAM,aAAa,0EAGzB,CAAC;AAEF,eAAO,MAAM,WAAW,wDAUvB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { atom, useAtomValue } from 'jotai';
|
|
2
|
-
import { emptyArray } from '../../lib/constants/index.js';
|
|
2
|
+
import { emptyArray, emptyObject } from '../../lib/constants/index.js';
|
|
3
3
|
import { atomWithCompare } from '../../lib/utils/atomWithCompare.js';
|
|
4
4
|
import { unorderedShallowEqual } from '../../lib/utils/index.js';
|
|
5
5
|
import { getDefaultTheme } from '../../lib/utils/theme.js';
|
|
@@ -23,13 +23,17 @@ const defaultSubConfig = {
|
|
|
23
23
|
srcChains: emptyArray,
|
|
24
24
|
destChains: emptyArray,
|
|
25
25
|
tradeModes: emptyArray,
|
|
26
|
-
excludeUI: emptyArray
|
|
26
|
+
excludeUI: emptyArray,
|
|
27
|
+
devURLs: emptyObject
|
|
27
28
|
};
|
|
28
29
|
const tokenListsAtom = atomWithCompare(defaultSubConfig.tokenLists, unorderedShallowEqual);
|
|
29
30
|
const srcChainsAtom = atomWithCompare(defaultSubConfig.srcChains, unorderedShallowEqual);
|
|
30
31
|
const destChainsAtom = atomWithCompare(defaultSubConfig.destChains, unorderedShallowEqual);
|
|
31
32
|
const tradeModesAtom = atomWithCompare(defaultSubConfig.tradeModes, unorderedShallowEqual);
|
|
32
33
|
const excludeUIAtom = atomWithCompare(defaultSubConfig.excludeUI, unorderedShallowEqual);
|
|
34
|
+
const devURLsAtom = atomWithCompare(defaultSubConfig.devURLs, (a, b) => {
|
|
35
|
+
return a?.apiProxyURL === b?.apiProxyURL && a?.apiURL === b?.apiURL && a?.explorerURL === b?.explorerURL;
|
|
36
|
+
});
|
|
33
37
|
|
|
34
|
-
export { defaultSubConfig, defaultWidgetConfig, destChainsAtom, excludeUIAtom, srcChainsAtom, tokenListsAtom, tradeModesAtom, useWidgetConfig, widgetConfigAtom };
|
|
38
|
+
export { defaultSubConfig, defaultWidgetConfig, destChainsAtom, devURLsAtom, excludeUIAtom, srcChainsAtom, tokenListsAtom, tradeModesAtom, useWidgetConfig, widgetConfigAtom };
|
|
35
39
|
//# sourceMappingURL=configAtom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configAtom.js","sources":["../../../src/core/state/configAtom.ts"],"sourcesContent":["import { atom, useAtomValue } from \"jotai\";\nimport type { WidgetElements, WidgetConfig } from \"../types\";\nimport type { MarkRequired } from \"ts-essentials\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { emptyArray } from \"@/lib/constants\";\nimport { atomWithCompare } from \"@/lib/utils/atomWithCompare\";\nimport { unorderedShallowEqual } from \"@/lib/utils\";\nimport { type TradeMode } from \"./tradeModeAtom\";\nimport { getDefaultTheme } from \"@/lib/utils/theme\";\n\nexport type PrimitiveConfig = Pick<\n WidgetConfig,\n | \"theme\"\n | \"enableDelta\"\n | \"enableCrossChain\"\n | \"partner\"\n | \"privyAppId\"\n | \"privyClientId\"\n | \"debug\"\n | \"widgetMode\"\n | \"ignoreBadUsdPrice\"\n>;\n\nexport type IterableConfig = Pick<\n WidgetConfig,\n \"srcChains\"
|
|
1
|
+
{"version":3,"file":"configAtom.js","sources":["../../../src/core/state/configAtom.ts"],"sourcesContent":["import { atom, useAtomValue } from \"jotai\";\nimport type { WidgetElements, WidgetConfig, DevURLs } from \"../types\";\nimport type { MarkRequired } from \"ts-essentials\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { emptyArray, emptyObject } from \"@/lib/constants\";\nimport { atomWithCompare } from \"@/lib/utils/atomWithCompare\";\nimport { unorderedShallowEqual } from \"@/lib/utils\";\nimport { type TradeMode } from \"./tradeModeAtom\";\nimport { getDefaultTheme } from \"@/lib/utils/theme\";\n\nexport type PrimitiveConfig = Pick<\n WidgetConfig,\n | \"theme\"\n | \"enableDelta\"\n | \"enableCrossChain\"\n | \"partner\"\n | \"privyAppId\"\n | \"privyClientId\"\n | \"debug\"\n | \"widgetMode\"\n | \"ignoreBadUsdPrice\"\n>;\n\nexport type IterableConfig = Pick<\n WidgetConfig,\n | \"srcChains\"\n | \"destChains\"\n | \"tokenLists\"\n | \"tradeModes\"\n | \"excludeUI\"\n | \"devURLs\"\n>;\n\ntype PrimitiveConfigState = MarkRequired<\n PrimitiveConfig,\n | \"theme\"\n | \"enableDelta\"\n | \"enableCrossChain\"\n | \"privyAppId\"\n | \"privyClientId\"\n | \"debug\"\n | \"widgetMode\"\n | \"ignoreBadUsdPrice\"\n>;\n\nexport const defaultWidgetConfig = {\n theme: getDefaultTheme(),\n enableDelta: true,\n enableCrossChain: true,\n privyAppId: import.meta.env.VITE_PRIVY_APP_ID,\n privyClientId: import.meta.env.VITE_PRIVY_CLIENT_ID,\n debug: false,\n widgetMode: \"standalone\",\n ignoreBadUsdPrice: true,\n} as const satisfies PrimitiveConfig;\n\nexport const widgetConfigAtom = atom<PrimitiveConfigState>(defaultWidgetConfig);\n\nexport const useWidgetConfig = () => {\n return useAtomValue(widgetConfigAtom);\n};\n\nexport const defaultSubConfig = {\n tokenLists: emptyArray,\n srcChains: emptyArray,\n destChains: emptyArray,\n tradeModes: emptyArray,\n excludeUI: emptyArray,\n devURLs: emptyObject,\n} as const satisfies IterableConfig;\n\n// independent atoms for each iterable config property\n// with comparison to avoid unnecessary re-renders\nexport const tokenListsAtom = atomWithCompare<string[]>(\n defaultSubConfig.tokenLists,\n unorderedShallowEqual\n);\nexport const srcChainsAtom = atomWithCompare<SupportedChainId[]>(\n defaultSubConfig.srcChains,\n unorderedShallowEqual\n);\nexport const destChainsAtom = atomWithCompare<SupportedChainId[]>(\n defaultSubConfig.destChains,\n unorderedShallowEqual\n);\n\nexport const tradeModesAtom = atomWithCompare<TradeMode[]>(\n defaultSubConfig.tradeModes,\n unorderedShallowEqual\n);\n\nexport const excludeUIAtom = atomWithCompare<WidgetElements[]>(\n defaultSubConfig.excludeUI,\n unorderedShallowEqual\n);\n\nexport const devURLsAtom = atomWithCompare<DevURLs>(\n defaultSubConfig.devURLs,\n (a, b) => {\n // known properties only comparison\n return (\n a?.apiProxyURL === b?.apiProxyURL &&\n a?.apiURL === b?.apiURL &&\n a?.explorerURL === b?.explorerURL\n );\n }\n);\n"],"names":["defaultWidgetConfig","theme","getDefaultTheme","enableDelta","enableCrossChain","privyAppId","import","privyClientId","debug","widgetMode","ignoreBadUsdPrice","widgetConfigAtom","atom","useWidgetConfig","useAtomValue","defaultSubConfig","tokenLists","emptyArray","srcChains","destChains","tradeModes","excludeUI","devURLs","emptyObject","tokenListsAtom","atomWithCompare","unorderedShallowEqual","srcChainsAtom","destChainsAtom","tradeModesAtom","excludeUIAtom","devURLsAtom","a","b","apiProxyURL","apiURL","explorerURL"],"mappings":";;;;;;AA6CO,MAAMA,mBAAAA,GAAsB;AAAA,EACjCC,OAAOC,eAAAA,EAAgB;AAAA,EACvBC,WAAAA,EAAa,IAAA;AAAA,EACbC,gBAAAA,EAAkB,IAAA;AAAA,EAClBC,UAAAA,EAAYC,2BAAAA;AAAAA,EACZC,aAAAA,EAAeD,sDAAAA;AAAAA,EACfE,KAAAA,EAAO,KAAA;AAAA,EACPC,UAAAA,EAAY,YAAA;AAAA,EACZC,iBAAAA,EAAmB;AACrB;AAEO,MAAMC,gBAAAA,GAAmBC,KAA2BZ,mBAAmB;AAEvE,MAAMa,kBAAkBA,MAAA;AAAA,EAAA,OACtBC,aAAaH,gBAAgB,CAAA;AAAC;AAGhC,MAAMI,gBAAAA,GAAmB;AAAA,EAC9BC,UAAAA,EAAYC,UAAAA;AAAAA,EACZC,SAAAA,EAAWD,UAAAA;AAAAA,EACXE,UAAAA,EAAYF,UAAAA;AAAAA,EACZG,UAAAA,EAAYH,UAAAA;AAAAA,EACZI,SAAAA,EAAWJ,UAAAA;AAAAA,EACXK,OAAAA,EAASC;AACX;AAIO,MAAMC,cAAAA,GAAiBC,eAAAA,CAC5BV,gBAAAA,CAAiBC,UAAAA,EACjBU,qBACF;AACO,MAAMC,aAAAA,GAAgBF,eAAAA,CAC3BV,gBAAAA,CAAiBG,SAAAA,EACjBQ,qBACF;AACO,MAAME,cAAAA,GAAiBH,eAAAA,CAC5BV,gBAAAA,CAAiBI,UAAAA,EACjBO,qBACF;AAEO,MAAMG,cAAAA,GAAiBJ,eAAAA,CAC5BV,gBAAAA,CAAiBK,UAAAA,EACjBM,qBACF;AAEO,MAAMI,aAAAA,GAAgBL,eAAAA,CAC3BV,gBAAAA,CAAiBM,SAAAA,EACjBK,qBACF;AAEO,MAAMK,cAAcN,eAAAA,CACzBV,gBAAAA,CAAiBO,OAAAA,EACjB,CAACU,GAAGC,CAAAA,KAAM;AAER,EAAA,OACED,CAAAA,EAAGE,WAAAA,KAAgBD,CAAAA,EAAGC,WAAAA,IACtBF,CAAAA,EAAGG,WAAWF,CAAAA,EAAGE,MAAAA,IACjBH,CAAAA,EAAGI,WAAAA,KAAgBH,CAAAA,EAAGG,WAAAA;AAE1B,CACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widgetEventsAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/widgetEventsAtom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"widgetEventsAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/widgetEventsAtom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,gBAAgB,CAAC;AAQxB,eAAO,MAAM,gBAAgB;;CA+L3B,CAAC;AAEH,eAAO,MAAM,eAAe,QAAO,uBAElC,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,YAAY,oBAAoB,SAiCrE,CAAC"}
|
|
@@ -128,15 +128,15 @@ const widgetEventsAtom = atom({}, (get, set, callbacks) => {
|
|
|
128
128
|
};
|
|
129
129
|
callbacks.onFormInputChange(payloadWithState);
|
|
130
130
|
};
|
|
131
|
-
const
|
|
132
|
-
|
|
131
|
+
const _onPriceChange = callbacks.onPriceChange;
|
|
132
|
+
const onPriceChange = _onPriceChange ? (payload) => {
|
|
133
133
|
const widgetState = getWidgetState(get);
|
|
134
134
|
const payloadWithState = {
|
|
135
135
|
event: payload.event,
|
|
136
136
|
state: widgetState
|
|
137
137
|
};
|
|
138
|
-
|
|
139
|
-
};
|
|
138
|
+
_onPriceChange(payloadWithState);
|
|
139
|
+
} : void 0;
|
|
140
140
|
set(widgetEventsAtom, {
|
|
141
141
|
onSwap,
|
|
142
142
|
onLimitOrder,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widgetEventsAtom.js","sources":["../../../src/core/state/widgetEventsAtom.ts"],"sourcesContent":["import { atom, useAtomValue, useSetAtom } from \"jotai\";\nimport type {\n WidgetEventCallbacks,\n WidgetEventCallbacksMin,\n} from \"@/events/types\";\nimport { useLayoutEffect } from \"react\";\nimport { getWidgetState } from \"@/events/getters/widgetState\";\nimport { assert } from \"ts-essentials\";\nimport type { TokenFormState } from \"@/events/types/common\";\n\nexport const widgetEventsAtom = atom<\n WidgetEventCallbacksMin,\n [WidgetEventCallbacks],\n void\n>({}, (get, set, callbacks) => {\n const onSwap: WidgetEventCallbacksMin[\"onSwap\"] = (payload) => {\n if (!callbacks.onSwap) return;\n const widgetState = getWidgetState(get);\n\n const swapFormState = widgetState.formState.swap;\n assert(\n isFullTokenFormState(swapFormState),\n \"Swap form state is required to perform swap\"\n );\n\n type Input = Parameters<NonNullable<WidgetEventCallbacks[\"onSwap\"]>>[0];\n\n // attaching extra parameters to the event payload\n const payloadWithState = {\n event: {\n ...payload.event,\n params: {\n ...payload.event.params,\n ...swapFormState,\n },\n },\n state: widgetState,\n } as Input;\n\n callbacks.onSwap(payloadWithState);\n };\n\n const onLimitOrder: WidgetEventCallbacksMin[\"onLimitOrder\"] = (payload) => {\n if (!callbacks.onLimitOrder) return;\n const widgetState = getWidgetState(get);\n const limitOrderFormState = widgetState.formState.limit;\n assert(\n isFullTokenFormState(limitOrderFormState),\n \"Limit order form state is required to create a limit order\"\n );\n\n type Input = Parameters<\n NonNullable<WidgetEventCallbacks[\"onLimitOrder\"]>\n >[0];\n\n const payloadWithState = {\n event: {\n ...payload.event,\n params: {\n ...payload.event.params,\n ...limitOrderFormState,\n },\n },\n state: widgetState,\n } as Input;\n callbacks.onLimitOrder(payloadWithState);\n };\n\n const onOTCOrder: WidgetEventCallbacksMin[\"onOTCOrder\"] = (payload) => {\n if (!callbacks.onOTCOrder) return;\n const widgetState = getWidgetState(get);\n const otcOrderFormState = widgetState.formState.otc;\n assert(\n isFullTokenFormState(otcOrderFormState),\n \"OTC order form state is required to create an OTC order\"\n );\n type Input = Parameters<NonNullable<WidgetEventCallbacks[\"onOTCOrder\"]>>[0];\n const payloadWithState = {\n event: {\n ...payload.event,\n params: {\n ...payload.event.params,\n ...otcOrderFormState,\n },\n },\n state: widgetState,\n } as Input;\n callbacks.onOTCOrder(payloadWithState);\n };\n\n const onAllowToken: WidgetEventCallbacksMin[\"onAllowToken\"] = (payload) => {\n if (!callbacks.onAllowToken) return;\n const widgetState = getWidgetState(get);\n\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n\n callbacks.onAllowToken(payloadWithState);\n };\n\n const onWrapETH: WidgetEventCallbacksMin[\"onWrapETH\"] = (payload) => {\n if (!callbacks.onWrapETH) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onWrapETH(payloadWithState);\n };\n\n const onSettingsChange: WidgetEventCallbacksMin[\"onSettingsChange\"] = (\n payload\n ) => {\n if (!callbacks.onSettingsChange) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onSettingsChange(payloadWithState);\n };\n\n const onConnectWallet: WidgetEventCallbacksMin[\"onConnectWallet\"] = (\n payload\n ) => {\n if (!callbacks.onConnectWallet) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onConnectWallet(payloadWithState);\n };\n\n const _onConnectWalletClick = callbacks.onConnectWalletClick;\n const onConnectWalletClick: WidgetEventCallbacksMin[\"onConnectWalletClick\"] =\n _onConnectWalletClick\n ? (payload) => {\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n _onConnectWalletClick(payloadWithState);\n }\n : undefined;\n\n const onCancelOrder: WidgetEventCallbacksMin[\"onCancelOrder\"] = (payload) => {\n if (!callbacks.onCancelOrder) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onCancelOrder(payloadWithState);\n };\n\n const onFillOTCOrder: WidgetEventCallbacksMin[\"onFillOTCOrder\"] = (\n payload\n ) => {\n if (!callbacks.onFillOTCOrder) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onFillOTCOrder(payloadWithState);\n };\n\n const onFormInputChange: WidgetEventCallbacksMin[\"onFormInputChange\"] = (\n payload\n ) => {\n if (!callbacks.onFormInputChange) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onFormInputChange(payloadWithState);\n };\n\n const onPriceChange: WidgetEventCallbacksMin[\"onPriceChange\"] = (payload) => {\n if (!callbacks.onPriceChange) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onPriceChange(payloadWithState);\n };\n\n set(widgetEventsAtom, {\n onSwap,\n onLimitOrder,\n onOTCOrder,\n onAllowToken,\n onWrapETH,\n onSettingsChange,\n onConnectWallet,\n onConnectWalletClick,\n onCancelOrder,\n onFillOTCOrder,\n onFormInputChange,\n onPriceChange,\n });\n});\n\nexport const useWidgetEvents = (): WidgetEventCallbacksMin => {\n return useAtomValue(widgetEventsAtom);\n};\n\nexport const useWidgetEventsSetter = (callbacks?: WidgetEventCallbacks) => {\n const setWidgetEvents = useSetAtom(widgetEventsAtom);\n\n useLayoutEffect(() => {\n setWidgetEvents({\n onConnectWallet: callbacks?.onConnectWallet,\n onConnectWalletClick: callbacks?.onConnectWalletClick,\n onAllowToken: callbacks?.onAllowToken,\n onSwap: callbacks?.onSwap,\n onOTCOrder: callbacks?.onOTCOrder,\n onLimitOrder: callbacks?.onLimitOrder,\n onWrapETH: callbacks?.onWrapETH,\n onSettingsChange: callbacks?.onSettingsChange,\n onCancelOrder: callbacks?.onCancelOrder,\n onFillOTCOrder: callbacks?.onFillOTCOrder,\n onFormInputChange: callbacks?.onFormInputChange,\n onPriceChange: callbacks?.onPriceChange,\n });\n }, [\n callbacks?.onConnectWallet,\n callbacks?.onConnectWalletClick,\n callbacks?.onAllowToken,\n callbacks?.onSwap,\n callbacks?.onOTCOrder,\n callbacks?.onLimitOrder,\n callbacks?.onWrapETH,\n callbacks?.onSettingsChange,\n callbacks?.onCancelOrder,\n callbacks?.onFillOTCOrder,\n callbacks?.onFormInputChange,\n callbacks?.onPriceChange,\n setWidgetEvents,\n ]);\n};\n\nfunction isFullTokenFormState<T extends TokenFormState>(\n state: T\n): state is Required<T> {\n return !!(\n state.tokenTo &&\n state.receiverAddress &&\n state.destChainId &&\n state.connectedAccount\n );\n}\n"],"names":["widgetEventsAtom","atom","get","set","callbacks","onSwap","payload","widgetState","getWidgetState","swapFormState","formState","swap","assert","isFullTokenFormState","payloadWithState","event","params","state","onLimitOrder","limitOrderFormState","limit","onOTCOrder","otcOrderFormState","otc","onAllowToken","onWrapETH","onSettingsChange","onConnectWallet","_onConnectWalletClick","onConnectWalletClick","undefined","onCancelOrder","onFillOTCOrder","onFormInputChange","onPriceChange","useWidgetEvents","useAtomValue","useWidgetEventsSetter","$","_c","setWidgetEvents","useSetAtom","t0","t1","t2","t3","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","useLayoutEffect","tokenTo","receiverAddress","destChainId","connectedAccount"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"widgetEventsAtom.js","sources":["../../../src/core/state/widgetEventsAtom.ts"],"sourcesContent":["import { atom, useAtomValue, useSetAtom } from \"jotai\";\nimport type {\n WidgetEventCallbacks,\n WidgetEventCallbacksMin,\n} from \"@/events/types\";\nimport { useLayoutEffect } from \"react\";\nimport { getWidgetState } from \"@/events/getters/widgetState\";\nimport { assert } from \"ts-essentials\";\nimport type { TokenFormState } from \"@/events/types/common\";\n\ntype Callbacks = Required<WidgetEventCallbacksMin>;\n\nexport const widgetEventsAtom = atom<\n WidgetEventCallbacksMin,\n [WidgetEventCallbacks],\n void\n>({}, (get, set, callbacks) => {\n const onSwap: Callbacks[\"onSwap\"] = (payload) => {\n if (!callbacks.onSwap) return;\n const widgetState = getWidgetState(get);\n\n const swapFormState = widgetState.formState.swap;\n assert(\n isFullTokenFormState(swapFormState),\n \"Swap form state is required to perform swap\"\n );\n\n type Input = Parameters<NonNullable<WidgetEventCallbacks[\"onSwap\"]>>[0];\n\n // attaching extra parameters to the event payload\n const payloadWithState = {\n event: {\n ...payload.event,\n params: {\n ...payload.event.params,\n ...swapFormState,\n },\n },\n state: widgetState,\n } as Input;\n\n callbacks.onSwap(payloadWithState);\n };\n\n const onLimitOrder: Callbacks[\"onLimitOrder\"] = (payload) => {\n if (!callbacks.onLimitOrder) return;\n const widgetState = getWidgetState(get);\n const limitOrderFormState = widgetState.formState.limit;\n assert(\n isFullTokenFormState(limitOrderFormState),\n \"Limit order form state is required to create a limit order\"\n );\n\n type Input = Parameters<\n NonNullable<WidgetEventCallbacks[\"onLimitOrder\"]>\n >[0];\n\n const payloadWithState = {\n event: {\n ...payload.event,\n params: {\n ...payload.event.params,\n ...limitOrderFormState,\n },\n },\n state: widgetState,\n } as Input;\n callbacks.onLimitOrder(payloadWithState);\n };\n\n const onOTCOrder: Callbacks[\"onOTCOrder\"] = (payload) => {\n if (!callbacks.onOTCOrder) return;\n const widgetState = getWidgetState(get);\n const otcOrderFormState = widgetState.formState.otc;\n assert(\n isFullTokenFormState(otcOrderFormState),\n \"OTC order form state is required to create an OTC order\"\n );\n type Input = Parameters<NonNullable<WidgetEventCallbacks[\"onOTCOrder\"]>>[0];\n const payloadWithState = {\n event: {\n ...payload.event,\n params: {\n ...payload.event.params,\n ...otcOrderFormState,\n },\n },\n state: widgetState,\n } as Input;\n callbacks.onOTCOrder(payloadWithState);\n };\n\n const onAllowToken: Callbacks[\"onAllowToken\"] = (payload) => {\n if (!callbacks.onAllowToken) return;\n const widgetState = getWidgetState(get);\n\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n\n callbacks.onAllowToken(payloadWithState);\n };\n\n const onWrapETH: Callbacks[\"onWrapETH\"] = (payload) => {\n if (!callbacks.onWrapETH) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onWrapETH(payloadWithState);\n };\n\n const onSettingsChange: Callbacks[\"onSettingsChange\"] = (payload) => {\n if (!callbacks.onSettingsChange) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onSettingsChange(payloadWithState);\n };\n\n const onConnectWallet: Callbacks[\"onConnectWallet\"] = (payload) => {\n if (!callbacks.onConnectWallet) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onConnectWallet(payloadWithState);\n };\n\n const _onConnectWalletClick = callbacks.onConnectWalletClick;\n const onConnectWalletClick: WidgetEventCallbacksMin[\"onConnectWalletClick\"] =\n _onConnectWalletClick\n ? (payload) => {\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n _onConnectWalletClick(payloadWithState);\n }\n : undefined;\n\n const onCancelOrder: Callbacks[\"onCancelOrder\"] = (payload) => {\n if (!callbacks.onCancelOrder) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onCancelOrder(payloadWithState);\n };\n\n const onFillOTCOrder: Callbacks[\"onFillOTCOrder\"] = (payload) => {\n if (!callbacks.onFillOTCOrder) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onFillOTCOrder(payloadWithState);\n };\n\n const onFormInputChange: Callbacks[\"onFormInputChange\"] = (payload) => {\n if (!callbacks.onFormInputChange) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onFormInputChange(payloadWithState);\n };\n\n const _onPriceChange = callbacks.onPriceChange;\n const onPriceChange: WidgetEventCallbacksMin[\"onPriceChange\"] = _onPriceChange\n ? (payload) => {\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n _onPriceChange(payloadWithState);\n }\n : undefined;\n\n set(widgetEventsAtom, {\n onSwap,\n onLimitOrder,\n onOTCOrder,\n onAllowToken,\n onWrapETH,\n onSettingsChange,\n onConnectWallet,\n onConnectWalletClick,\n onCancelOrder,\n onFillOTCOrder,\n onFormInputChange,\n onPriceChange,\n });\n});\n\nexport const useWidgetEvents = (): WidgetEventCallbacksMin => {\n return useAtomValue(widgetEventsAtom);\n};\n\nexport const useWidgetEventsSetter = (callbacks?: WidgetEventCallbacks) => {\n const setWidgetEvents = useSetAtom(widgetEventsAtom);\n\n useLayoutEffect(() => {\n setWidgetEvents({\n onConnectWallet: callbacks?.onConnectWallet,\n onConnectWalletClick: callbacks?.onConnectWalletClick,\n onAllowToken: callbacks?.onAllowToken,\n onSwap: callbacks?.onSwap,\n onOTCOrder: callbacks?.onOTCOrder,\n onLimitOrder: callbacks?.onLimitOrder,\n onWrapETH: callbacks?.onWrapETH,\n onSettingsChange: callbacks?.onSettingsChange,\n onCancelOrder: callbacks?.onCancelOrder,\n onFillOTCOrder: callbacks?.onFillOTCOrder,\n onFormInputChange: callbacks?.onFormInputChange,\n onPriceChange: callbacks?.onPriceChange,\n });\n }, [\n callbacks?.onConnectWallet,\n callbacks?.onConnectWalletClick,\n callbacks?.onAllowToken,\n callbacks?.onSwap,\n callbacks?.onOTCOrder,\n callbacks?.onLimitOrder,\n callbacks?.onWrapETH,\n callbacks?.onSettingsChange,\n callbacks?.onCancelOrder,\n callbacks?.onFillOTCOrder,\n callbacks?.onFormInputChange,\n callbacks?.onPriceChange,\n setWidgetEvents,\n ]);\n};\n\nfunction isFullTokenFormState<T extends TokenFormState>(\n state: T\n): state is Required<T> {\n return !!(\n state.tokenTo &&\n state.receiverAddress &&\n state.destChainId &&\n state.connectedAccount\n );\n}\n"],"names":["widgetEventsAtom","atom","get","set","callbacks","onSwap","payload","widgetState","getWidgetState","swapFormState","formState","swap","assert","isFullTokenFormState","payloadWithState","event","params","state","onLimitOrder","limitOrderFormState","limit","onOTCOrder","otcOrderFormState","otc","onAllowToken","onWrapETH","onSettingsChange","onConnectWallet","_onConnectWalletClick","onConnectWalletClick","undefined","onCancelOrder","onFillOTCOrder","onFormInputChange","_onPriceChange","onPriceChange","useWidgetEvents","useAtomValue","useWidgetEventsSetter","$","_c","setWidgetEvents","useSetAtom","t0","t1","t2","t3","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","useLayoutEffect","tokenTo","receiverAddress","destChainId","connectedAccount"],"mappings":";;;;;;AAYO,MAAMA,mBAAmBC,IAAAA,CAI9B,IAAI,CAACC,GAAAA,EAAKC,KAAKC,SAAAA,KAAc;AAC7B,EAAA,MAAMC,SAA+BC,CAAAA,OAAAA,KAAY;AAC/C,IAAA,IAAI,CAACF,UAAUC,MAAAA,EAAQ;AACvB,IAAA,MAAME,WAAAA,GAAcC,eAAeN,GAAG,CAAA;AAEtC,IAAA,MAAMO,aAAAA,GAAgBF,YAAYG,SAAAA,CAAUC,IAAAA;AAC5CC,IAAAA,MAAAA,CACEC,oBAAAA,CAAqBJ,aAAa,CAAA,EAClC,6CACF,CAAA;AAKA,IAAA,MAAMK,gBAAAA,GAAmB;AAAA,MACvBC,KAAAA,EAAO;AAAA,QACL,GAAGT,OAAAA,CAAQS,KAAAA;AAAAA,QACXC,MAAAA,EAAQ;AAAA,UACN,GAAGV,QAAQS,KAAAA,CAAMC,MAAAA;AAAAA,UACjB,GAAGP;AAAAA;AACL,OACF;AAAA,MACAQ,KAAAA,EAAOV;AAAAA,KACT;AAEAH,IAAAA,SAAAA,CAAUC,OAAOS,gBAAgB,CAAA;AAAA,EACnC,CAAA;AAEA,EAAA,MAAMI,eAA2CZ,CAAAA,OAAAA,KAAY;AAC3D,IAAA,IAAI,CAACF,UAAUc,YAAAA,EAAc;AAC7B,IAAA,MAAMX,WAAAA,GAAcC,eAAeN,GAAG,CAAA;AACtC,IAAA,MAAMiB,mBAAAA,GAAsBZ,YAAYG,SAAAA,CAAUU,KAAAA;AAClDR,IAAAA,MAAAA,CACEC,oBAAAA,CAAqBM,mBAAmB,CAAA,EACxC,4DACF,CAAA;AAMA,IAAA,MAAML,gBAAAA,GAAmB;AAAA,MACvBC,KAAAA,EAAO;AAAA,QACL,GAAGT,OAAAA,CAAQS,KAAAA;AAAAA,QACXC,MAAAA,EAAQ;AAAA,UACN,GAAGV,QAAQS,KAAAA,CAAMC,MAAAA;AAAAA,UACjB,GAAGG;AAAAA;AACL,OACF;AAAA,MACAF,KAAAA,EAAOV;AAAAA,KACT;AACAH,IAAAA,SAAAA,CAAUc,aAAaJ,gBAAgB,CAAA;AAAA,EACzC,CAAA;AAEA,EAAA,MAAMO,aAAuCf,CAAAA,OAAAA,KAAY;AACvD,IAAA,IAAI,CAACF,UAAUiB,UAAAA,EAAY;AAC3B,IAAA,MAAMd,WAAAA,GAAcC,eAAeN,GAAG,CAAA;AACtC,IAAA,MAAMoB,iBAAAA,GAAoBf,YAAYG,SAAAA,CAAUa,GAAAA;AAChDX,IAAAA,MAAAA,CACEC,oBAAAA,CAAqBS,iBAAiB,CAAA,EACtC,yDACF,CAAA;AAEA,IAAA,MAAMR,gBAAAA,GAAmB;AAAA,MACvBC,KAAAA,EAAO;AAAA,QACL,GAAGT,OAAAA,CAAQS,KAAAA;AAAAA,QACXC,MAAAA,EAAQ;AAAA,UACN,GAAGV,QAAQS,KAAAA,CAAMC,MAAAA;AAAAA,UACjB,GAAGM;AAAAA;AACL,OACF;AAAA,MACAL,KAAAA,EAAOV;AAAAA,KACT;AACAH,IAAAA,SAAAA,CAAUiB,WAAWP,gBAAgB,CAAA;AAAA,EACvC,CAAA;AAEA,EAAA,MAAMU,eAA2ClB,CAAAA,OAAAA,KAAY;AAC3D,IAAA,IAAI,CAACF,UAAUoB,YAAAA,EAAc;AAC7B,IAAA,MAAMjB,WAAAA,GAAcC,eAAeN,GAAG,CAAA;AAEtC,IAAA,MAAMY,gBAAAA,GAAmB;AAAA,MACvBC,OAAOT,OAAAA,CAAQS,KAAAA;AAAAA,MACfE,KAAAA,EAAOV;AAAAA,KACT;AAEAH,IAAAA,SAAAA,CAAUoB,aAAaV,gBAAgB,CAAA;AAAA,EACzC,CAAA;AAEA,EAAA,MAAMW,YAAqCnB,CAAAA,OAAAA,KAAY;AACrD,IAAA,IAAI,CAACF,UAAUqB,SAAAA,EAAW;AAC1B,IAAA,MAAMlB,WAAAA,GAAcC,eAAeN,GAAG,CAAA;AACtC,IAAA,MAAMY,gBAAAA,GAAmB;AAAA,MACvBC,OAAOT,OAAAA,CAAQS,KAAAA;AAAAA,MACfE,KAAAA,EAAOV;AAAAA,KACT;AACAH,IAAAA,SAAAA,CAAUqB,UAAUX,gBAAgB,CAAA;AAAA,EACtC,CAAA;AAEA,EAAA,MAAMY,mBAAmDpB,CAAAA,OAAAA,KAAY;AACnE,IAAA,IAAI,CAACF,UAAUsB,gBAAAA,EAAkB;AACjC,IAAA,MAAMnB,WAAAA,GAAcC,eAAeN,GAAG,CAAA;AACtC,IAAA,MAAMY,gBAAAA,GAAmB;AAAA,MACvBC,OAAOT,OAAAA,CAAQS,KAAAA;AAAAA,MACfE,KAAAA,EAAOV;AAAAA,KACT;AACAH,IAAAA,SAAAA,CAAUsB,iBAAiBZ,gBAAgB,CAAA;AAAA,EAC7C,CAAA;AAEA,EAAA,MAAMa,kBAAiDrB,CAAAA,OAAAA,KAAY;AACjE,IAAA,IAAI,CAACF,UAAUuB,eAAAA,EAAiB;AAChC,IAAA,MAAMpB,WAAAA,GAAcC,eAAeN,GAAG,CAAA;AACtC,IAAA,MAAMY,gBAAAA,GAAmB;AAAA,MACvBC,OAAOT,OAAAA,CAAQS,KAAAA;AAAAA,MACfE,KAAAA,EAAOV;AAAAA,KACT;AACAH,IAAAA,SAAAA,CAAUuB,gBAAgBb,gBAAgB,CAAA;AAAA,EAC5C,CAAA;AAEA,EAAA,MAAMc,wBAAwBxB,SAAAA,CAAUyB,oBAAAA;AACxC,EAAA,MAAMA,oBAAAA,GACJD,wBACKtB,CAAAA,OAAAA,KAAY;AACX,IAAA,MAAMC,WAAAA,GAAcC,eAAeN,GAAG,CAAA;AACtC,IAAA,MAAMY,gBAAAA,GAAmB;AAAA,MACvBC,OAAOT,OAAAA,CAAQS,KAAAA;AAAAA,MACfE,KAAAA,EAAOV;AAAAA,KACT;AACAqB,IAAAA,qBAAAA,CAAsBd,gBAAgB,CAAA;AAAA,EACxC,CAAA,GACAgB,MAAAA;AAEN,EAAA,MAAMC,gBAA6CzB,CAAAA,OAAAA,KAAY;AAC7D,IAAA,IAAI,CAACF,UAAU2B,aAAAA,EAAe;AAC9B,IAAA,MAAMxB,WAAAA,GAAcC,eAAeN,GAAG,CAAA;AACtC,IAAA,MAAMY,gBAAAA,GAAmB;AAAA,MACvBC,OAAOT,OAAAA,CAAQS,KAAAA;AAAAA,MACfE,KAAAA,EAAOV;AAAAA,KACT;AACAH,IAAAA,SAAAA,CAAU2B,cAAcjB,gBAAgB,CAAA;AAAA,EAC1C,CAAA;AAEA,EAAA,MAAMkB,iBAA+C1B,CAAAA,OAAAA,KAAY;AAC/D,IAAA,IAAI,CAACF,UAAU4B,cAAAA,EAAgB;AAC/B,IAAA,MAAMzB,WAAAA,GAAcC,eAAeN,GAAG,CAAA;AACtC,IAAA,MAAMY,gBAAAA,GAAmB;AAAA,MACvBC,OAAOT,OAAAA,CAAQS,KAAAA;AAAAA,MACfE,KAAAA,EAAOV;AAAAA,KACT;AACAH,IAAAA,SAAAA,CAAU4B,eAAelB,gBAAgB,CAAA;AAAA,EAC3C,CAAA;AAEA,EAAA,MAAMmB,oBAAqD3B,CAAAA,OAAAA,KAAY;AACrE,IAAA,IAAI,CAACF,UAAU6B,iBAAAA,EAAmB;AAClC,IAAA,MAAM1B,WAAAA,GAAcC,eAAeN,GAAG,CAAA;AACtC,IAAA,MAAMY,gBAAAA,GAAmB;AAAA,MACvBC,OAAOT,OAAAA,CAAQS,KAAAA;AAAAA,MACfE,KAAAA,EAAOV;AAAAA,KACT;AACAH,IAAAA,SAAAA,CAAU6B,kBAAkBnB,gBAAgB,CAAA;AAAA,EAC9C,CAAA;AAEA,EAAA,MAAMoB,iBAAiB9B,SAAAA,CAAU+B,aAAAA;AACjC,EAAA,MAAMA,aAAAA,GAA0DD,iBAC3D5B,CAAAA,OAAAA,KAAY;AACX,IAAA,MAAMC,WAAAA,GAAcC,eAAeN,GAAG,CAAA;AACtC,IAAA,MAAMY,gBAAAA,GAAmB;AAAA,MACvBC,OAAOT,OAAAA,CAAQS,KAAAA;AAAAA,MACfE,KAAAA,EAAOV;AAAAA,KACT;AACA2B,IAAAA,cAAAA,CAAepB,gBAAgB,CAAA;AAAA,EACjC,CAAA,GACAgB,MAAAA;AAEJ3B,EAAAA,GAAAA,CAAIH,gBAAAA,EAAkB;AAAA,IACpBK,MAAAA;AAAAA,IACAa,YAAAA;AAAAA,IACAG,UAAAA;AAAAA,IACAG,YAAAA;AAAAA,IACAC,SAAAA;AAAAA,IACAC,gBAAAA;AAAAA,IACAC,eAAAA;AAAAA,IACAE,oBAAAA;AAAAA,IACAE,aAAAA;AAAAA,IACAC,cAAAA;AAAAA,IACAC,iBAAAA;AAAAA,IACAE;AAAAA,GACD,CAAA;AACH,CAAC;AAEM,MAAMC,kBAAkBA,MAAA;AAAA,EAAA,OACtBC,aAAarC,gBAAgB,CAAA;AAAC;AAGhC,MAAMsC,wBAAwBlC,CAAAA,SAAAA,KAAA;AAAA,EAAA,MAAAmC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AACnC,EAAA,MAAAC,eAAAA,GAAwBC,WAAW1C,gBAAgB,CAAA;AAAE,EAAA,IAAA2C,EAAAA;AAAA,EAAA,IAAAJ,CAAAA,CAAA,CAAA,CAAA,KAAAnC,SAAAA,EAAAoB,YAAAA,IAAAe,CAAAA,CAAA,CAAA,CAAA,KAAAnC,SAAAA,EAAA2B,aAAAA,IAAAQ,CAAAA,CAAA,CAAA,CAAA,KAAAnC,SAAAA,EAAAuB,eAAAA,IAAAY,CAAAA,QAAAnC,SAAAA,EAAAyB,oBAAAA,IAAAU,CAAAA,CAAA,CAAA,CAAA,KAAAnC,SAAAA,EAAA4B,cAAAA,IAAAO,CAAAA,CAAA,CAAA,CAAA,KAAAnC,WAAA6B,iBAAAA,IAAAM,CAAAA,CAAA,CAAA,CAAA,KAAAnC,SAAAA,EAAAc,YAAAA,IAAAqB,CAAAA,QAAAnC,SAAAA,EAAAiB,UAAAA,IAAAkB,CAAAA,CAAA,CAAA,CAAA,KAAAnC,SAAAA,EAAA+B,aAAAA,IAAAI,EAAA,CAAA,CAAA,KAAAnC,SAAAA,EAAAsB,gBAAAA,IAAAa,CAAAA,CAAA,EAAA,CAAA,KAAAnC,SAAAA,EAAAC,MAAAA,IAAAkC,CAAAA,CAAA,EAAA,CAAA,KAAAnC,SAAAA,EAAAqB,SAAAA,IAAAc,CAAAA,SAAAE,eAAAA,EAAA;AAErCE,IAAAA,EAAAA,GAAAA,MAAA;AACdF,MAAAA,eAAAA,CAAgB;AAAA,QAAAd,iBACGvB,SAAAA,EAASuB,eAAAA;AAAAA,QAAiBE,sBACrBzB,SAAAA,EAASyB,oBAAAA;AAAAA,QAAsBL,cACvCpB,SAAAA,EAASoB,YAAAA;AAAAA,QAAcnB,QAC7BD,SAAAA,EAASC,MAAAA;AAAAA,QAAQgB,YACbjB,SAAAA,EAASiB,UAAAA;AAAAA,QAAYH,cACnBd,SAAAA,EAASc,YAAAA;AAAAA,QAAcO,WAC1BrB,SAAAA,EAASqB,SAAAA;AAAAA,QAAWC,kBACbtB,SAAAA,EAASsB,gBAAAA;AAAAA,QAAkBK,eAC9B3B,SAAAA,EAAS2B,aAAAA;AAAAA,QAAeC,gBACvB5B,SAAAA,EAAS4B,cAAAA;AAAAA,QAAgBC,mBACtB7B,SAAAA,EAAS6B,iBAAAA;AAAAA,QAAmBE,eAChC/B,SAAAA,EAAS+B;AAAAA,OACzB,CAAA;AAAA,IAAC,CAAA;AACHI,IAAAA,CAAAA,CAAA,CAAA,IAAAnC,SAAAA,EAAAoB,YAAAA;AAAAe,IAAAA,CAAAA,CAAA,CAAA,IAAAnC,SAAAA,EAAA2B,aAAAA;AAAAQ,IAAAA,CAAAA,CAAA,CAAA,IAAAnC,SAAAA,EAAAuB,eAAAA;AAAAY,IAAAA,CAAAA,CAAA,CAAA,IAAAnC,SAAAA,EAAAyB,oBAAAA;AAAAU,IAAAA,CAAAA,CAAA,CAAA,IAAAnC,SAAAA,EAAA4B,cAAAA;AAAAO,IAAAA,CAAAA,CAAA,CAAA,IAAAnC,SAAAA,EAAA6B,iBAAAA;AAAAM,IAAAA,CAAAA,CAAA,CAAA,IAAAnC,SAAAA,EAAAc,YAAAA;AAAAqB,IAAAA,CAAAA,CAAA,CAAA,IAAAnC,SAAAA,EAAAiB,UAAAA;AAAAkB,IAAAA,CAAAA,CAAA,CAAA,IAAAnC,SAAAA,EAAA+B,aAAAA;AAAAI,IAAAA,CAAAA,CAAA,CAAA,IAAAnC,SAAAA,EAAAsB,gBAAAA;AAAAa,IAAAA,CAAAA,CAAA,EAAA,IAAAnC,SAAAA,EAAAC,MAAAA;AAAAkC,IAAAA,CAAAA,CAAA,EAAA,IAAAnC,SAAAA,EAAAqB,SAAAA;AAAAc,IAAAA,CAAAA,OAAAE,eAAAA;AAAAF,IAAAA,CAAAA,OAAAI,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAJ,EAAA,EAAA,CAAA;AAAA,EAAA;AACC,EAAA,MAAAK,KAAAxC,SAAAA,EAASuB,eAAAA;AACT,EAAA,MAAAkB,KAAAzC,SAAAA,EAASyB,oBAAAA;AACT,EAAA,MAAAiB,KAAA1C,SAAAA,EAASoB,YAAAA;AACT,EAAA,MAAAuB,KAAA3C,SAAAA,EAASC,MAAAA;AACT,EAAA,MAAA2C,KAAA5C,SAAAA,EAASiB,UAAAA;AACT,EAAA,MAAA4B,KAAA7C,SAAAA,EAASc,YAAAA;AACT,EAAA,MAAAgC,KAAA9C,SAAAA,EAASqB,SAAAA;AACT,EAAA,MAAA0B,KAAA/C,SAAAA,EAASsB,gBAAAA;AACT,EAAA,MAAA0B,KAAAhD,SAAAA,EAAS2B,aAAAA;AACT,EAAA,MAAAsB,MAAAjD,SAAAA,EAAS4B,cAAAA;AACT,EAAA,MAAAsB,MAAAlD,SAAAA,EAAS6B,iBAAAA;AACT,EAAA,MAAAsB,MAAAnD,SAAAA,EAAS+B,aAAAA;AAAe,EAAA,IAAAqB,GAAAA;AAAA,EAAA,IAAAjB,CAAAA,SAAAE,eAAAA,IAAAF,EAAA,EAAA,CAAA,KAAAK,EAAAA,IAAAL,CAAAA,CAAA,EAAA,CAAA,KAAAc,OAAAd,CAAAA,CAAA,EAAA,CAAA,KAAAe,GAAAA,IAAAf,CAAAA,CAAA,EAAA,MAAAgB,GAAAA,IAAAhB,CAAAA,CAAA,EAAA,CAAA,KAAAM,EAAAA,IAAAN,CAAAA,SAAAO,EAAAA,IAAAP,CAAAA,CAAA,EAAA,CAAA,KAAAQ,EAAAA,IAAAR,EAAA,EAAA,CAAA,KAAAS,EAAAA,IAAAT,CAAAA,CAAA,EAAA,CAAA,KAAAU,MAAAV,CAAAA,CAAA,EAAA,CAAA,KAAAW,EAAAA,IAAAX,CAAAA,SAAAY,EAAAA,IAAAZ,CAAAA,CAAA,EAAA,CAAA,KAAAa,EAAAA,EAAA;AAZvBI,IAAAA,GAAAA,GAAA,CACDZ,EAAAA,EACAC,EAAAA,EACAC,EAAAA,EACAC,EAAAA,EACAC,EAAAA,EACAC,EAAAA,EACAC,EAAAA,EACAC,EAAAA,EACAC,EAAAA,EACAC,GAAAA,EACAC,GAAAA,EACAC,KACAd,eAAe,CAAA;AAChBF,IAAAA,CAAAA,OAAAE,eAAAA;AAAAF,IAAAA,CAAAA,OAAAK,EAAAA;AAAAL,IAAAA,CAAAA,OAAAc,GAAAA;AAAAd,IAAAA,CAAAA,OAAAe,GAAAA;AAAAf,IAAAA,CAAAA,OAAAgB,GAAAA;AAAAhB,IAAAA,CAAAA,OAAAM,EAAAA;AAAAN,IAAAA,CAAAA,OAAAO,EAAAA;AAAAP,IAAAA,CAAAA,OAAAQ,EAAAA;AAAAR,IAAAA,CAAAA,OAAAS,EAAAA;AAAAT,IAAAA,CAAAA,OAAAU,EAAAA;AAAAV,IAAAA,CAAAA,OAAAW,EAAAA;AAAAX,IAAAA,CAAAA,OAAAY,EAAAA;AAAAZ,IAAAA,CAAAA,OAAAa,EAAAA;AAAAb,IAAAA,CAAAA,OAAAiB,GAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAAjB,EAAA,EAAA,CAAA;AAAA,EAAA;AA7BDkB,EAAAA,eAAAA,CAAgBd,IAeba,GAcF,CAAA;AAAC;AAGJ,SAAS3C,qBACPI,KAAAA,EACsB;AACtB,EAAA,OAAO,CAAC,EACNA,KAAAA,CAAMyC,OAAAA,IACNzC,MAAM0C,eAAAA,IACN1C,KAAAA,CAAM2C,eACN3C,KAAAA,CAAM4C,gBAAAA,CAAAA;AAEV;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DetailWithValue } from '../../components/widget/Details/types';
|
|
2
|
+
import { DeltaOrMarketPrice } from '../../hooks/swap/prices/types';
|
|
3
|
+
import { Token } from '../../tokens/state/types';
|
|
4
|
+
export declare function constructMaxToPayDetail({ price, slippagePercent, isLoading, tokenFrom, swapSide, }: {
|
|
5
|
+
price?: DeltaOrMarketPrice;
|
|
6
|
+
slippagePercent: number;
|
|
7
|
+
isLoading: boolean;
|
|
8
|
+
tokenFrom?: Token;
|
|
9
|
+
swapSide: "SELL" | "BUY";
|
|
10
|
+
}): DetailWithValue | undefined;
|
|
11
|
+
//# sourceMappingURL=maxToPay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maxToPay.d.ts","sourceRoot":"","sources":["../../../src/core/swapDetails/maxToPay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAOlD,wBAAgB,uBAAuB,CAAC,EACtC,KAAK,EACL,eAAe,EACf,SAAS,EACT,SAAS,EACT,QAAQ,GACT,EAAE;IACD,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;CAC1B,GAAG,eAAe,GAAG,SAAS,CAkC9B"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { amountAfterSlippage } from '../../lib/utils/slippage.js';
|
|
2
|
+
import { toDecimalTrimmed } from '../../lib/utils/toDecimal.js';
|
|
3
|
+
import { formatUnits } from 'viem';
|
|
4
|
+
|
|
5
|
+
const tooltip = "Maximum amount of token to pay to get the receiving amount while accounting for potential slippage.";
|
|
6
|
+
function constructMaxToPayDetail({
|
|
7
|
+
price,
|
|
8
|
+
slippagePercent,
|
|
9
|
+
isLoading,
|
|
10
|
+
tokenFrom,
|
|
11
|
+
swapSide
|
|
12
|
+
}) {
|
|
13
|
+
if (swapSide === "SELL") return;
|
|
14
|
+
const title = "Maximum to Pay";
|
|
15
|
+
if (!price || !tokenFrom) {
|
|
16
|
+
return {
|
|
17
|
+
title,
|
|
18
|
+
value: null,
|
|
19
|
+
isLoading,
|
|
20
|
+
tooltip
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
const maxSrcAmount = amountAfterSlippage(
|
|
24
|
+
// amount after fee
|
|
25
|
+
price.srcAmount,
|
|
26
|
+
// +slippage=maxAmount to pay
|
|
27
|
+
slippagePercent,
|
|
28
|
+
"BUY"
|
|
29
|
+
).toFixed(0);
|
|
30
|
+
const maxSrcAmountUnit = formatUnits(BigInt(maxSrcAmount), tokenFrom.decimals);
|
|
31
|
+
const formattedMaxSrcAmount = toDecimalTrimmed(maxSrcAmountUnit);
|
|
32
|
+
return {
|
|
33
|
+
title,
|
|
34
|
+
value: `${formattedMaxSrcAmount} ${tokenFrom.symbol}`,
|
|
35
|
+
isLoading,
|
|
36
|
+
tooltip
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export { constructMaxToPayDetail };
|
|
41
|
+
//# sourceMappingURL=maxToPay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maxToPay.js","sources":["../../../src/core/swapDetails/maxToPay.tsx"],"sourcesContent":["import type { DetailWithValue } from \"@/components/widget/Details/types\";\nimport type { DeltaOrMarketPrice } from \"@/hooks/swap/prices/types\";\nimport { amountAfterSlippage } from \"@/lib/utils/slippage\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport type { Token } from \"@/tokens/state/types\";\n\nimport { formatUnits } from \"viem\";\n\nconst tooltip =\n \"Maximum amount of token to pay to get the receiving amount while accounting for potential slippage.\";\n\nexport function constructMaxToPayDetail({\n price,\n slippagePercent,\n isLoading,\n tokenFrom,\n swapSide,\n}: {\n price?: DeltaOrMarketPrice;\n slippagePercent: number;\n isLoading: boolean;\n tokenFrom?: Token;\n swapSide: \"SELL\" | \"BUY\";\n}): DetailWithValue | undefined {\n // in case of SELL you pay exactly srcAmount\n if (swapSide === \"SELL\") return;\n\n const title = \"Maximum to Pay\";\n\n if (!price || !tokenFrom) {\n return {\n title,\n value: null,\n isLoading,\n tooltip,\n };\n }\n\n const maxSrcAmount = amountAfterSlippage(\n // amount after fee\n price.srcAmount,\n // +slippage=maxAmount to pay\n slippagePercent,\n \"BUY\"\n ).toFixed(0);\n const maxSrcAmountUnit = formatUnits(\n BigInt(maxSrcAmount),\n tokenFrom.decimals\n );\n const formattedMaxSrcAmount = toDecimalTrimmed(maxSrcAmountUnit);\n\n return {\n title,\n value: `${formattedMaxSrcAmount} ${tokenFrom.symbol}`,\n isLoading,\n tooltip,\n };\n}\n"],"names":["tooltip","constructMaxToPayDetail","price","slippagePercent","isLoading","tokenFrom","swapSide","title","value","maxSrcAmount","amountAfterSlippage","srcAmount","toFixed","maxSrcAmountUnit","formatUnits","BigInt","decimals","formattedMaxSrcAmount","toDecimalTrimmed","symbol"],"mappings":";;;;AAQA,MAAMA,OAAAA,GACJ,qGAAA;AAEK,SAASC,uBAAAA,CAAwB;AAAA,EACtCC,KAAAA;AAAAA,EACAC,eAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC;AAOF,CAAA,EAAgC;AAE9B,EAAA,IAAIA,aAAa,MAAA,EAAQ;AAEzB,EAAA,MAAMC,KAAAA,GAAQ,gBAAA;AAEd,EAAA,IAAI,CAACL,KAAAA,IAAS,CAACG,SAAAA,EAAW;AACxB,IAAA,OAAO;AAAA,MACLE,KAAAA;AAAAA,MACAC,KAAAA,EAAO,IAAA;AAAA,MACPJ,SAAAA;AAAAA,MACAJ;AAAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAMS,YAAAA,GAAeC,mBAAAA;AAAAA;AAAAA,IAEnBR,KAAAA,CAAMS,SAAAA;AAAAA;AAAAA,IAENR,eAAAA;AAAAA,IACA;AAAA,GACF,CAAES,QAAQ,CAAC,CAAA;AACX,EAAA,MAAMC,mBAAmBC,WAAAA,CACvBC,MAAAA,CAAON,YAAY,CAAA,EACnBJ,UAAUW,QACZ,CAAA;AACA,EAAA,MAAMC,qBAAAA,GAAwBC,iBAAiBL,gBAAgB,CAAA;AAE/D,EAAA,OAAO;AAAA,IACLN,KAAAA;AAAAA,IACAC,KAAAA,EAAO,CAAA,EAAGS,qBAAqB,CAAA,CAAA,EAAIZ,UAAUc,MAAM,CAAA,CAAA;AAAA,IACnDf,SAAAA;AAAAA,IACAJ;AAAAA,GACF;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSwapDetailsListProps.d.ts","sourceRoot":"","sources":["../../../src/core/swapDetails/useSwapDetailsListProps.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,kCAAkC,EACnC,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"useSwapDetailsListProps.d.ts","sourceRoot":"","sources":["../../../src/core/swapDetails/useSwapDetailsListProps.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,kCAAkC,EACnC,MAAM,mCAAmC,CAAC;AA2B3C,eAAO,MAAM,uBAAuB,QAC9B,kCAgHH,CAAC"}
|
|
@@ -15,6 +15,7 @@ import { useSlippage } from '../../hooks/useSlippage.js';
|
|
|
15
15
|
import { ReactComponent as ForwardRef } from '../../assets/price-impact.svg.js';
|
|
16
16
|
import { TooltipTrigger, TooltipContent, Tooltip } from '../../components/ui/tooltip.js';
|
|
17
17
|
import { Skeleton } from '../../components/ui/skeleton.js';
|
|
18
|
+
import { constructMaxToPayDetail } from './maxToPay.js';
|
|
18
19
|
|
|
19
20
|
const useSwapDetailsListProps = () => {
|
|
20
21
|
const $ = distExports.c(49);
|
|
@@ -73,14 +74,20 @@ const useSwapDetailsListProps = () => {
|
|
|
73
74
|
swapMode: priceMode,
|
|
74
75
|
isLoading
|
|
75
76
|
});
|
|
76
|
-
const
|
|
77
|
+
const minMaxDetail = swapSide === "SELL" ? constructYouGetDetail({
|
|
77
78
|
price,
|
|
78
79
|
isLoading,
|
|
79
80
|
slippagePercent: resolvedSlippage,
|
|
80
81
|
tokenTo,
|
|
81
82
|
swapSide
|
|
83
|
+
}) : constructMaxToPayDetail({
|
|
84
|
+
price,
|
|
85
|
+
isLoading,
|
|
86
|
+
slippagePercent: resolvedSlippage,
|
|
87
|
+
tokenFrom,
|
|
88
|
+
swapSide
|
|
82
89
|
});
|
|
83
|
-
details = [orderRoutingDetail, priceImpactDetail, swapFeesDetail,
|
|
90
|
+
details = [orderRoutingDetail, priceImpactDetail, swapFeesDetail, minMaxDetail, networkFeesDetail].filter(isTruthy);
|
|
84
91
|
const isBuy = swapSide === "BUY";
|
|
85
92
|
t5 = "flex items-center justify-between";
|
|
86
93
|
let t72;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSwapDetailsListProps.js","sources":["../../../src/core/swapDetails/useSwapDetailsListProps.tsx"],"sourcesContent":["import type {\n DetailWithValue,\n DetailWithValueListExpandableProps,\n} from \"@/components/widget/Details/types\";\nimport { SwapRate } from \"@/components/widget/SwapRate/SwapRate\";\nimport { useCurrentSwapPrice } from \"@/hooks/swap/prices/useSwapPrices\";\nimport { useWidgetTokens } from \"../inputs/state/common\";\nimport { useAtomValue } from \"jotai\";\nimport {\n payInputAmountWeiAtom,\n receiveInputAmountWeiAtom,\n} from \"../inputs/state/inputAmountAtom\";\n\nimport { constructOrderRoutingDetail } from \"./orderRouting\";\nimport { constructPriceImpactDetail } from \"./priceImpact\";\nimport { constructSwapFeesDetail, constructNetworkFeesDetail } from \"./fees\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { cn, isTruthy } from \"@/lib/utils\";\nimport { constructYouGetDetail } from \"./youGet\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\n\nimport { ReactComponent as PriceImpactSVG } from \"@/assets/price-impact.svg\";\nimport {\n Tooltip,\n TooltipTrigger,\n TooltipContent,\n} from \"@/components/ui/tooltip\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\n\nexport const useSwapDetailsListProps =\n (): DetailWithValueListExpandableProps => {\n const { tokenFrom, tokenTo } = useWidgetTokens(\"swap\");\n\n const srcAmountWei = useAtomValue(payInputAmountWeiAtom);\n const destAmountWei = useAtomValue(receiveInputAmountWeiAtom);\n\n const { isLoading, price, priceMode } = useCurrentSwapPrice({\n enabled: false,\n });\n\n const { resolvedSlippage } = useSlippage(\"swap\");\n const swapSide = useSwapSide();\n\n const orderRoutingDetail = constructOrderRoutingDetail({\n bestRoutes: price && \"bestRoute\" in price ? price.bestRoute : undefined,\n swapMode: priceMode,\n isLoading,\n });\n\n const { isHighImpact, ...priceImpactDetail } = constructPriceImpactDetail({\n price,\n isLoading,\n });\n\n const swapFeesDetail = constructSwapFeesDetail({\n price,\n isLoading,\n });\n\n const networkFeesDetail = constructNetworkFeesDetail({\n price,\n swapMode: priceMode,\n isLoading,\n });\n\n const youGetDetail = constructYouGetDetail({\n price,\n isLoading,\n slippagePercent: resolvedSlippage,\n tokenTo,\n swapSide,\n });\n\n const details: DetailWithValue[] = [\n orderRoutingDetail,\n priceImpactDetail,\n swapFeesDetail,\n youGetDetail,\n networkFeesDetail,\n // @TODO: Max To Pay detail for BUY mode\n ].filter(isTruthy);\n\n const isBuy = swapSide === \"BUY\";\n\n return {\n trigger: (\n <div className=\"flex items-center justify-between\">\n <Tooltip>\n <TooltipTrigger asChild>\n <div>\n <SwapRate\n srcToken={tokenFrom}\n destToken={tokenTo}\n srcAmountWei={srcAmountWei}\n destAmountWei={destAmountWei}\n isLoading={isLoading}\n reverse={isBuy}\n />\n </div>\n </TooltipTrigger>\n <TooltipContent>\n Best price for this trade based on the current market conditions\n </TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <div className=\"flex items-center gap-1\">\n {!isHighImpact && <PriceImpactSVG className=\"size-[16px]\" />}\n {priceImpactDetail.isLoading ? (\n <Skeleton className=\"bg-contrast-6 dark:bg-contrast-5 min-w-[42px] h-[12px]\" />\n ) : (\n <div\n className={cn({\n \"text-secondary-orange-peel-1 dark:text-secondary-orange-peel-1\":\n isHighImpact,\n })}\n >\n {priceImpactDetail.value ?? \"-\"}\n </div>\n )}\n </div>\n </TooltipTrigger>\n <TooltipContent>Price Impact</TooltipContent>\n </Tooltip>\n </div>\n ),\n details,\n classes: {\n root: \"mt-4\",\n },\n };\n };\n"],"names":["useSwapDetailsListProps","$","_c","tokenFrom","tokenTo","useWidgetTokens","srcAmountWei","useAtomValue","payInputAmountWeiAtom","destAmountWei","receiveInputAmountWeiAtom","t0","Symbol","for","enabled","isLoading","price","priceMode","useCurrentSwapPrice","resolvedSlippage","useSlippage","swapSide","useSwapSide","T0","T1","details","t1","t2","t3","t4","t5","t6","orderRoutingDetail","constructOrderRoutingDetail","bestRoutes","bestRoute","undefined","swapMode","isHighImpact","priceImpactDetail","constructPriceImpactDetail","swapFeesDetail","constructSwapFeesDetail","networkFeesDetail","constructNetworkFeesDetail","youGetDetail","constructYouGetDetail","slippagePercent","filter","isTruthy","isBuy","t7","t8","Tooltip","TooltipTrigger","PriceImpactSVG","cn","value","t9","t10","t11","t12","root","t13","trigger","classes"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSwapDetailsListProps.js","sources":["../../../src/core/swapDetails/useSwapDetailsListProps.tsx"],"sourcesContent":["import type {\n DetailWithValue,\n DetailWithValueListExpandableProps,\n} from \"@/components/widget/Details/types\";\nimport { SwapRate } from \"@/components/widget/SwapRate/SwapRate\";\nimport { useCurrentSwapPrice } from \"@/hooks/swap/prices/useSwapPrices\";\nimport { useWidgetTokens } from \"../inputs/state/common\";\nimport { useAtomValue } from \"jotai\";\nimport {\n payInputAmountWeiAtom,\n receiveInputAmountWeiAtom,\n} from \"../inputs/state/inputAmountAtom\";\n\nimport { constructOrderRoutingDetail } from \"./orderRouting\";\nimport { constructPriceImpactDetail } from \"./priceImpact\";\nimport { constructSwapFeesDetail, constructNetworkFeesDetail } from \"./fees\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { cn, isTruthy } from \"@/lib/utils\";\nimport { constructYouGetDetail } from \"./youGet\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\n\nimport { ReactComponent as PriceImpactSVG } from \"@/assets/price-impact.svg\";\nimport {\n Tooltip,\n TooltipTrigger,\n TooltipContent,\n} from \"@/components/ui/tooltip\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport { constructMaxToPayDetail } from \"./maxToPay\";\n\nexport const useSwapDetailsListProps =\n (): DetailWithValueListExpandableProps => {\n const { tokenFrom, tokenTo } = useWidgetTokens(\"swap\");\n\n const srcAmountWei = useAtomValue(payInputAmountWeiAtom);\n const destAmountWei = useAtomValue(receiveInputAmountWeiAtom);\n\n const { isLoading, price, priceMode } = useCurrentSwapPrice({\n enabled: false,\n });\n\n const { resolvedSlippage } = useSlippage(\"swap\");\n const swapSide = useSwapSide();\n\n const orderRoutingDetail = constructOrderRoutingDetail({\n bestRoutes: price && \"bestRoute\" in price ? price.bestRoute : undefined,\n swapMode: priceMode,\n isLoading,\n });\n\n const { isHighImpact, ...priceImpactDetail } = constructPriceImpactDetail({\n price,\n isLoading,\n });\n\n const swapFeesDetail = constructSwapFeesDetail({\n price,\n isLoading,\n });\n\n const networkFeesDetail = constructNetworkFeesDetail({\n price,\n swapMode: priceMode,\n isLoading,\n });\n\n const minMaxDetail =\n swapSide === \"SELL\"\n ? // minimum received when SELLing\n constructYouGetDetail({\n price,\n isLoading,\n slippagePercent: resolvedSlippage,\n tokenTo,\n swapSide,\n })\n : // maximum to pay when BUYing\n constructMaxToPayDetail({\n price,\n isLoading,\n slippagePercent: resolvedSlippage,\n tokenFrom,\n swapSide,\n });\n\n const details: DetailWithValue[] = [\n orderRoutingDetail,\n priceImpactDetail,\n swapFeesDetail,\n minMaxDetail,\n networkFeesDetail,\n ].filter(isTruthy);\n\n const isBuy = swapSide === \"BUY\";\n\n return {\n trigger: (\n <div className=\"flex items-center justify-between\">\n <Tooltip>\n <TooltipTrigger asChild>\n <div>\n <SwapRate\n srcToken={tokenFrom}\n destToken={tokenTo}\n srcAmountWei={srcAmountWei}\n destAmountWei={destAmountWei}\n isLoading={isLoading}\n reverse={isBuy}\n />\n </div>\n </TooltipTrigger>\n <TooltipContent>\n Best price for this trade based on the current market conditions\n </TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <div className=\"flex items-center gap-1\">\n {!isHighImpact && <PriceImpactSVG className=\"size-[16px]\" />}\n {priceImpactDetail.isLoading ? (\n <Skeleton className=\"bg-contrast-6 dark:bg-contrast-5 min-w-[42px] h-[12px]\" />\n ) : (\n <div\n className={cn({\n \"text-secondary-orange-peel-1 dark:text-secondary-orange-peel-1\":\n isHighImpact,\n })}\n >\n {priceImpactDetail.value ?? \"-\"}\n </div>\n )}\n </div>\n </TooltipTrigger>\n <TooltipContent>Price Impact</TooltipContent>\n </Tooltip>\n </div>\n ),\n details,\n classes: {\n root: \"mt-4\",\n },\n };\n };\n"],"names":["useSwapDetailsListProps","$","_c","tokenFrom","tokenTo","useWidgetTokens","srcAmountWei","useAtomValue","payInputAmountWeiAtom","destAmountWei","receiveInputAmountWeiAtom","t0","Symbol","for","enabled","isLoading","price","priceMode","useCurrentSwapPrice","resolvedSlippage","useSlippage","swapSide","useSwapSide","T0","T1","details","t1","t2","t3","t4","t5","t6","orderRoutingDetail","constructOrderRoutingDetail","bestRoutes","bestRoute","undefined","swapMode","isHighImpact","priceImpactDetail","constructPriceImpactDetail","swapFeesDetail","constructSwapFeesDetail","networkFeesDetail","constructNetworkFeesDetail","minMaxDetail","constructYouGetDetail","slippagePercent","constructMaxToPayDetail","filter","isTruthy","isBuy","t7","t8","Tooltip","TooltipTrigger","PriceImpactSVG","cn","value","t9","t10","t11","t12","root","t13","trigger","classes"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"youGet.d.ts","sourceRoot":"","sources":["../../../src/core/swapDetails/youGet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAOlD,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,eAAe,EACf,SAAS,EACT,OAAO,EACP,QAAQ,GACT,EAAE;IACD,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;CAC1B,GAAG,eAAe,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"youGet.d.ts","sourceRoot":"","sources":["../../../src/core/swapDetails/youGet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAOlD,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,eAAe,EACf,SAAS,EACT,OAAO,EACP,QAAQ,GACT,EAAE;IACD,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;CAC1B,GAAG,eAAe,GAAG,SAAS,CAiC9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"youGet.js","sources":["../../../src/core/swapDetails/youGet.tsx"],"sourcesContent":["import type { DetailWithValue } from \"@/components/widget/Details/types\";\nimport type { DeltaOrMarketPrice } from \"@/hooks/swap/prices/types\";\nimport { getDestAmountAfterFeeAndSlippage } from \"@/lib/utils/price\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport type { Token } from \"@/tokens/state/types\";\n\nimport { formatUnits } from \"viem\";\n\nconst tooltip =\n \"The minimum amount of token to receive, otherwise the transaction will revert.\";\n\nexport function constructYouGetDetail({\n price,\n slippagePercent,\n isLoading,\n tokenTo,\n swapSide,\n}: {\n price?: DeltaOrMarketPrice;\n slippagePercent: number;\n isLoading: boolean;\n tokenTo?: Token;\n swapSide: \"SELL\" | \"BUY\";\n}): DetailWithValue | undefined {\n if (swapSide === \"BUY\") return;\n\n const title = \"You Get (at least)\";\n\n if (!price || !tokenTo) {\n return {\n title,\n value: null,\n isLoading,\n tooltip,\n };\n }\n\n const minDestAmount = getDestAmountAfterFeeAndSlippage({\n price,\n slippagePercent,\n });\n\n const minDestAmountUnit = formatUnits(\n BigInt(minDestAmount),\n tokenTo.decimals\n );\n\n const formattedMinDestAmountUnit = toDecimalTrimmed(minDestAmountUnit);\n\n return {\n title,\n value: `${formattedMinDestAmountUnit} ${tokenTo.symbol}`,\n isLoading,\n tooltip,\n };\n}\n"],"names":["tooltip","constructYouGetDetail","price","slippagePercent","isLoading","tokenTo","swapSide","title","value","minDestAmount","getDestAmountAfterFeeAndSlippage","minDestAmountUnit","formatUnits","BigInt","decimals","formattedMinDestAmountUnit","toDecimalTrimmed","symbol"],"mappings":";;;;AAQA,MAAMA,OAAAA,GACJ,gFAAA;AAEK,SAASC,qBAAAA,CAAsB;AAAA,EACpCC,KAAAA;AAAAA,EACAC,eAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAC;AAOF,CAAA,EAAgC;
|
|
1
|
+
{"version":3,"file":"youGet.js","sources":["../../../src/core/swapDetails/youGet.tsx"],"sourcesContent":["import type { DetailWithValue } from \"@/components/widget/Details/types\";\nimport type { DeltaOrMarketPrice } from \"@/hooks/swap/prices/types\";\nimport { getDestAmountAfterFeeAndSlippage } from \"@/lib/utils/price\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport type { Token } from \"@/tokens/state/types\";\n\nimport { formatUnits } from \"viem\";\n\nconst tooltip =\n \"The minimum amount of token to receive, otherwise the transaction will revert.\";\n\nexport function constructYouGetDetail({\n price,\n slippagePercent,\n isLoading,\n tokenTo,\n swapSide,\n}: {\n price?: DeltaOrMarketPrice;\n slippagePercent: number;\n isLoading: boolean;\n tokenTo?: Token;\n swapSide: \"SELL\" | \"BUY\";\n}): DetailWithValue | undefined {\n // in case of BUY youGet= exactly destAmount\n if (swapSide === \"BUY\") return;\n\n const title = \"You Get (at least)\";\n\n if (!price || !tokenTo) {\n return {\n title,\n value: null,\n isLoading,\n tooltip,\n };\n }\n\n const minDestAmount = getDestAmountAfterFeeAndSlippage({\n price,\n slippagePercent,\n });\n\n const minDestAmountUnit = formatUnits(\n BigInt(minDestAmount),\n tokenTo.decimals\n );\n\n const formattedMinDestAmountUnit = toDecimalTrimmed(minDestAmountUnit);\n\n return {\n title,\n value: `${formattedMinDestAmountUnit} ${tokenTo.symbol}`,\n isLoading,\n tooltip,\n };\n}\n"],"names":["tooltip","constructYouGetDetail","price","slippagePercent","isLoading","tokenTo","swapSide","title","value","minDestAmount","getDestAmountAfterFeeAndSlippage","minDestAmountUnit","formatUnits","BigInt","decimals","formattedMinDestAmountUnit","toDecimalTrimmed","symbol"],"mappings":";;;;AAQA,MAAMA,OAAAA,GACJ,gFAAA;AAEK,SAASC,qBAAAA,CAAsB;AAAA,EACpCC,KAAAA;AAAAA,EACAC,eAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAC;AAOF,CAAA,EAAgC;AAE9B,EAAA,IAAIA,aAAa,KAAA,EAAO;AAExB,EAAA,MAAMC,KAAAA,GAAQ,oBAAA;AAEd,EAAA,IAAI,CAACL,KAAAA,IAAS,CAACG,OAAAA,EAAS;AACtB,IAAA,OAAO;AAAA,MACLE,KAAAA;AAAAA,MACAC,KAAAA,EAAO,IAAA;AAAA,MACPJ,SAAAA;AAAAA,MACAJ;AAAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAMS,gBAAgBC,gCAAAA,CAAiC;AAAA,IACrDR,KAAAA;AAAAA,IACAC;AAAAA,GACD,CAAA;AAED,EAAA,MAAMQ,oBAAoBC,WAAAA,CACxBC,MAAAA,CAAOJ,aAAa,CAAA,EACpBJ,QAAQS,QACV,CAAA;AAEA,EAAA,MAAMC,0BAAAA,GAA6BC,iBAAiBL,iBAAiB,CAAA;AAErE,EAAA,OAAO;AAAA,IACLJ,KAAAA;AAAAA,IACAC,KAAAA,EAAO,CAAA,EAAGO,0BAA0B,CAAA,CAAA,EAAIV,QAAQY,MAAM,CAAA,CAAA;AAAA,IACtDb,SAAAA;AAAAA,IACAJ;AAAAA,GACF;AACF;;;;"}
|