@velora-dex/widget 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/web3/AccountButton.js +1 -1
- package/dist/components/web3/AccountButton.js.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.js +29 -35
- package/dist/components/widget/AppHeader/AppHeader.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.d.ts.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js +0 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js.map +1 -1
- package/dist/components/widget/TokenInput/index.d.ts.map +1 -1
- package/dist/components/widget/TokenInput/index.js +99 -110
- package/dist/components/widget/TokenInput/index.js.map +1 -1
- package/dist/components/widget/TokenInput/types.d.ts +1 -2
- package/dist/components/widget/TokenInput/types.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js +52 -39
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
- package/dist/hooks/useSDK.d.ts.map +1 -1
- package/dist/hooks/useSDK.js +43 -86
- package/dist/hooks/useSDK.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/utils/explorer.d.ts +0 -2
- package/dist/lib/utils/explorer.d.ts.map +1 -1
- package/dist/lib/utils/explorer.js +1 -4
- package/dist/lib/utils/explorer.js.map +1 -1
- package/dist/styles.css +0 -4
- package/dist/tokens/defaultTokens.js.map +1 -1
- package/dist/widget/index.d.ts.map +1 -1
- package/dist/widget/index.js +72 -85
- package/dist/widget/index.js.map +1 -1
- package/dist/widget/inputs/hooks/useTokenFromInputProps.d.ts +1 -3
- package/dist/widget/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
- package/dist/widget/inputs/hooks/useTokenFromInputProps.js +54 -102
- package/dist/widget/inputs/hooks/useTokenFromInputProps.js.map +1 -1
- package/dist/widget/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
- package/dist/widget/inputs/hooks/useTokenToInputProps.js +43 -28
- package/dist/widget/inputs/hooks/useTokenToInputProps.js.map +1 -1
- package/package.json +1 -1
- package/dist/components/widget/AppHeader/ActivityButton.d.ts +0 -2
- package/dist/components/widget/AppHeader/ActivityButton.d.ts.map +0 -1
- package/dist/components/widget/AppHeader/ActivityButton.js +0 -46
- package/dist/components/widget/AppHeader/ActivityButton.js.map +0 -1
- package/dist/hooks/gas/config.d.ts +0 -6
- package/dist/hooks/gas/config.d.ts.map +0 -1
- package/dist/hooks/gas/config.js +0 -53
- package/dist/hooks/gas/config.js.map +0 -1
- package/dist/hooks/gas/types.d.ts +0 -42
- package/dist/hooks/gas/types.d.ts.map +0 -1
- package/dist/hooks/gas/useGasPrices.d.ts +0 -4
- package/dist/hooks/gas/useGasPrices.d.ts.map +0 -1
- package/dist/hooks/gas/useGasPrices.js +0 -106
- package/dist/hooks/gas/useGasPrices.js.map +0 -1
- package/dist/hooks/gas/utils.d.ts +0 -8
- package/dist/hooks/gas/utils.d.ts.map +0 -1
- package/dist/hooks/gas/utils.js +0 -21
- package/dist/hooks/gas/utils.js.map +0 -1
- package/dist/widget/inputs/hooks/types.d.ts +0 -4
- package/dist/widget/inputs/hooks/types.d.ts.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { d as distExports } from '../../../../../_virtual/index.js';
|
|
2
2
|
import { useQuery, useQueryClient, QueryObserver } from '@tanstack/react-query';
|
|
3
|
-
import 'react';
|
|
3
|
+
import { useRef, useLayoutEffect, useMemo } from 'react';
|
|
4
4
|
import { assert } from 'ts-essentials';
|
|
5
5
|
import { useDeltaSDK } from '../../../../useSDK.js';
|
|
6
6
|
import { isMetaWithTimeStart } from '../bridge/utils.js';
|
|
@@ -28,8 +28,13 @@ function constructDeltaAuctionPollingQueryOptions({
|
|
|
28
28
|
onAuctionFailure,
|
|
29
29
|
onTimeoutGettingOrder
|
|
30
30
|
}) {
|
|
31
|
+
const doneState = false;
|
|
32
|
+
const isMetaWithDoneState = (queryMeta) => {
|
|
33
|
+
return "doneState" in queryMeta && typeof queryMeta.doneState === "boolean";
|
|
34
|
+
};
|
|
31
35
|
const meta = {
|
|
32
|
-
startedQueryAt: Date.now()
|
|
36
|
+
startedQueryAt: Date.now(),
|
|
37
|
+
doneState
|
|
33
38
|
};
|
|
34
39
|
return {
|
|
35
40
|
queryKey: [SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX, orderId],
|
|
@@ -44,18 +49,29 @@ function constructDeltaAuctionPollingQueryOptions({
|
|
|
44
49
|
meta,
|
|
45
50
|
refetchInterval: (query) => {
|
|
46
51
|
const maybeOrder = query.state.data;
|
|
52
|
+
const queryMeta = query.options.meta;
|
|
53
|
+
const isWithDoneState = !!queryMeta && isMetaWithDoneState(queryMeta);
|
|
54
|
+
if (isWithDoneState && queryMeta.doneState) {
|
|
55
|
+
console.log("Shortcut return for refetchInterval");
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
47
58
|
if (maybeOrder) onUpdatedAuction?.(maybeOrder);
|
|
48
59
|
if (maybeOrder && DeltaOrderStatusChecker.completed.has(maybeOrder.status)) {
|
|
49
60
|
if (isExecutedDeltaAuction(maybeOrder)) {
|
|
50
61
|
onAuctionSuccess?.(maybeOrder);
|
|
62
|
+
if (isWithDoneState) {
|
|
63
|
+
queryMeta.doneState = true;
|
|
64
|
+
}
|
|
51
65
|
return false;
|
|
52
66
|
}
|
|
53
67
|
if (isFailedDeltaAuction(maybeOrder) || isOrderExpired(maybeOrder)) {
|
|
54
68
|
onAuctionFailure?.(maybeOrder);
|
|
69
|
+
if (isWithDoneState) {
|
|
70
|
+
queryMeta.doneState = true;
|
|
71
|
+
}
|
|
55
72
|
return false;
|
|
56
73
|
}
|
|
57
74
|
}
|
|
58
|
-
const queryMeta = query.options.meta;
|
|
59
75
|
if (maybeOrder === null && queryMeta && isMetaWithTimeStart(queryMeta)) {
|
|
60
76
|
const elapsed = Date.now() - queryMeta.startedQueryAt;
|
|
61
77
|
if (elapsed > LOOK_FOR_ORDER_TIMEOUT) {
|
|
@@ -63,6 +79,9 @@ function constructDeltaAuctionPollingQueryOptions({
|
|
|
63
79
|
onTimeoutGettingOrder?.({
|
|
64
80
|
id: orderId
|
|
65
81
|
});
|
|
82
|
+
if (isWithDoneState) {
|
|
83
|
+
queryMeta.doneState = true;
|
|
84
|
+
}
|
|
66
85
|
return false;
|
|
67
86
|
}
|
|
68
87
|
}
|
|
@@ -71,52 +90,46 @@ function constructDeltaAuctionPollingQueryOptions({
|
|
|
71
90
|
enabled: !!orderId && enabled
|
|
72
91
|
};
|
|
73
92
|
}
|
|
74
|
-
function useWatchDeltaAuction(
|
|
75
|
-
|
|
93
|
+
function useWatchDeltaAuction({
|
|
94
|
+
orderId,
|
|
95
|
+
enabled = true,
|
|
96
|
+
onAuctionSuccess,
|
|
97
|
+
onAuctionFailure,
|
|
98
|
+
onUpdatedAuction,
|
|
99
|
+
onTimeoutGettingOrder
|
|
100
|
+
}) {
|
|
76
101
|
const {
|
|
77
|
-
|
|
78
|
-
|
|
102
|
+
sdk
|
|
103
|
+
} = useDeltaSDK({
|
|
104
|
+
chainId: 1
|
|
105
|
+
});
|
|
106
|
+
const callbacksRef = useRef({
|
|
79
107
|
onAuctionSuccess,
|
|
80
108
|
onAuctionFailure,
|
|
81
109
|
onUpdatedAuction,
|
|
82
110
|
onTimeoutGettingOrder
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
111
|
+
});
|
|
112
|
+
useLayoutEffect(() => {
|
|
113
|
+
console.log("Recalculating callbacksRef");
|
|
114
|
+
callbacksRef.current = {
|
|
115
|
+
onAuctionSuccess,
|
|
116
|
+
onAuctionFailure,
|
|
117
|
+
onUpdatedAuction,
|
|
118
|
+
onTimeoutGettingOrder
|
|
89
119
|
};
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
const {
|
|
95
|
-
sdk
|
|
96
|
-
} = useDeltaSDK(t2);
|
|
97
|
-
let t3;
|
|
98
|
-
if ($[1] !== enabled || $[2] !== onAuctionFailure || $[3] !== onAuctionSuccess || $[4] !== onTimeoutGettingOrder || $[5] !== onUpdatedAuction || $[6] !== orderId || $[7] !== sdk.getDeltaOrderById) {
|
|
99
|
-
t3 = constructDeltaAuctionPollingQueryOptions({
|
|
120
|
+
}, [onAuctionSuccess, onAuctionFailure, onUpdatedAuction, onTimeoutGettingOrder]);
|
|
121
|
+
const queryOptions = useMemo(() => {
|
|
122
|
+
console.log("Recalculating queryOptions");
|
|
123
|
+
return constructDeltaAuctionPollingQueryOptions({
|
|
100
124
|
orderId,
|
|
101
125
|
enabled,
|
|
102
126
|
getAuction: sdk.getDeltaOrderById,
|
|
103
|
-
onUpdatedAuction,
|
|
104
|
-
onAuctionSuccess,
|
|
105
|
-
onAuctionFailure,
|
|
106
|
-
onTimeoutGettingOrder
|
|
127
|
+
onUpdatedAuction: callbacksRef.current.onUpdatedAuction,
|
|
128
|
+
onAuctionSuccess: callbacksRef.current.onAuctionSuccess,
|
|
129
|
+
onAuctionFailure: callbacksRef.current.onAuctionFailure,
|
|
130
|
+
onTimeoutGettingOrder: callbacksRef.current.onTimeoutGettingOrder
|
|
107
131
|
});
|
|
108
|
-
|
|
109
|
-
$[2] = onAuctionFailure;
|
|
110
|
-
$[3] = onAuctionSuccess;
|
|
111
|
-
$[4] = onTimeoutGettingOrder;
|
|
112
|
-
$[5] = onUpdatedAuction;
|
|
113
|
-
$[6] = orderId;
|
|
114
|
-
$[7] = sdk.getDeltaOrderById;
|
|
115
|
-
$[8] = t3;
|
|
116
|
-
} else {
|
|
117
|
-
t3 = $[8];
|
|
118
|
-
}
|
|
119
|
-
const queryOptions = t3;
|
|
132
|
+
}, [orderId, enabled, sdk.getDeltaOrderById]);
|
|
120
133
|
return useQuery(queryOptions);
|
|
121
134
|
}
|
|
122
135
|
function useEnsureDeltaOrderExecuted() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWatchDeltaOrder.js","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useWatchDeltaOrder.ts"],"sourcesContent":["import {\n QueryObserver,\n useQueries,\n useQuery,\n useQueryClient,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useMemo } from \"react\";\nimport { assert, type MarkOptional } from \"ts-essentials\";\nimport { useDeltaSDK } from \"@/hooks/useSDK\";\nimport type { DeltaOrderFromAPI } from \"./useDeltaOrders\";\nimport {\n isMetaWithTimeStart,\n type BridgedDepositResponseFailure,\n type BridgedDepositResponseSuccess,\n type GetBridgedDepositStatusInput,\n type RefetchMetaWithTiming,\n} from \"../bridge/utils\";\nimport type { BridgedDepositResponse } from \"../bridge/types\";\nimport { useBridgedDepositStatus } from \"../bridge/useBridgedDeposit\";\nimport type { DeltaAuction } from \"@velora-dex/sdk\";\nimport {\n DeltaOrderStatusChecker,\n isExecutedDeltaAuction,\n isFailedDeltaAuction,\n isOrderExpired,\n} from \"../orders/utils\";\nimport type { ExecutedDeltaAuction, FailedDeltaAuction } from \"../orders/types\";\n\n// ------------------------------------ Single Delta Auction -----------------------------------\n\nconst SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX = \"single_delta_auction\";\ntype SingleDeltaAuctionQueryKey = [\n base: typeof SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX,\n orderId?: string,\n];\n\nexport type MaybeVeloraDeltaAuction = DeltaOrderFromAPI | null; // null is when no such Order for orderId\n\ntype UseDeltaAuctionQueryOptions<TData = MaybeVeloraDeltaAuction> =\n UseQueryOptions<\n MaybeVeloraDeltaAuction,\n Error,\n TData,\n SingleDeltaAuctionQueryKey\n >;\n\nconst DELTA_ORDER_POLLING_INTERVAL = 3_000;\n\ntype ConstructDeltaAuctionPollingQueryOptionsInput = {\n orderId?: string;\n enabled?: boolean;\n getAuction(\n orderId: string,\n requestParams: { signal?: AbortSignal }\n ): Promise<MaybeVeloraDeltaAuction>;\n} & Pick<\n UseWatchMultiDeltaAuctions,\n | \"onAuctionSuccess\"\n | \"onAuctionFailure\"\n | \"onUpdatedAuction\"\n | \"onTimeoutGettingOrder\"\n>;\n\nconst LOOK_FOR_ORDER_TIMEOUT = 60_000;\n\nfunction constructDeltaAuctionPollingQueryOptions({\n orderId,\n enabled,\n getAuction,\n onUpdatedAuction,\n onAuctionSuccess,\n onAuctionFailure,\n onTimeoutGettingOrder,\n}: ConstructDeltaAuctionPollingQueryOptionsInput): Pick<\n UseDeltaAuctionQueryOptions<MaybeVeloraDeltaAuction>,\n \"queryKey\" | \"queryFn\" | \"meta\" | \"refetchInterval\" | \"enabled\"\n> {\n const meta: RefetchMetaWithTiming = { startedQueryAt: Date.now() };\n\n return {\n queryKey: [SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX, orderId],\n queryFn: ({ signal }) => {\n assert(orderId, \"orderId is required\");\n return getAuction(orderId, { signal });\n },\n meta,\n refetchInterval: (query) => {\n const maybeOrder = query.state.data;\n\n // refetchInterval is called on each render, regardless of queryOptions memoizations.\n // @TODO rework Watch Order logic to avoid callbacks inside refetchInterval,\n // or do away with these callbacks, they are unused currently.\n\n // Order could have an updated status during its lifecycle\n if (maybeOrder) onUpdatedAuction?.(maybeOrder);\n\n // Order done with one way or the other\n if (\n maybeOrder &&\n DeltaOrderStatusChecker.completed.has(maybeOrder.status)\n ) {\n // Crosschain Orders are considered executed when both srcChain and destChain are executed\n if (isExecutedDeltaAuction(maybeOrder)) {\n onAuctionSuccess?.(maybeOrder);\n return false; // stop polling\n }\n if (isFailedDeltaAuction(maybeOrder) || isOrderExpired(maybeOrder)) {\n onAuctionFailure?.(maybeOrder);\n return false; // stop polling\n }\n }\n\n const queryMeta = query.options.meta;\n if (maybeOrder === null && queryMeta && isMetaWithTimeStart(queryMeta)) {\n // no Order for this orderId for a long time\n const elapsed = Date.now() - queryMeta.startedQueryAt;\n if (elapsed > LOOK_FOR_ORDER_TIMEOUT) {\n assert(orderId, \"orderId is required\");\n onTimeoutGettingOrder?.({ id: orderId });\n return false; // stop polling after 1 minute\n }\n }\n\n return DELTA_ORDER_POLLING_INTERVAL; // default interval for both crosschain and singlechain Orders\n },\n enabled: !!orderId && enabled,\n };\n}\n\n// ----------------- Single Delta Query -----------------------------------\n\ntype UseWatchDeltaAuctionQueryInput = {\n orderId?: string;\n enabled?: boolean;\n onAuctionSuccess?: (auction: ExecutedDeltaAuction) => void;\n onAuctionFailure?: (auction: FailedDeltaAuction) => void;\n onUpdatedAuction?: (auction: MarkOptional<DeltaAuction, \"signature\">) => void;\n onTimeoutGettingOrder?: (auction: Pick<DeltaAuction, \"id\">) => void;\n};\n\nexport function useWatchDeltaAuction({\n orderId,\n enabled = true,\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n}: UseWatchDeltaAuctionQueryInput): UseQueryResult<MaybeVeloraDeltaAuction> {\n const { sdk } = useDeltaSDK({ chainId: 1 }); // chain doesn't matter\n\n const queryOptions = constructDeltaAuctionPollingQueryOptions({\n orderId,\n enabled,\n getAuction: sdk.getDeltaOrderById,\n onUpdatedAuction,\n onAuctionSuccess,\n onAuctionFailure,\n onTimeoutGettingOrder,\n });\n\n return useQuery<\n MaybeVeloraDeltaAuction,\n Error,\n MaybeVeloraDeltaAuction,\n SingleDeltaAuctionQueryKey\n >(queryOptions);\n}\n\ntype EnsureOrderExecutedFn = (options: {\n orderId: string;\n signal?: AbortSignal;\n}) => Promise<MaybeVeloraDeltaAuction>;\n\nexport function useEnsureDeltaOrderExecuted(): EnsureOrderExecutedFn {\n const queryClient = useQueryClient();\n\n const ensureOrderSent: EnsureOrderExecutedFn = async ({\n orderId,\n signal,\n }): Promise<MaybeVeloraDeltaAuction> => {\n const queryKey: SingleDeltaAuctionQueryKey = [\n SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX,\n orderId,\n ];\n\n const observer = new QueryObserver<\n MaybeVeloraDeltaAuction,\n Error,\n MaybeVeloraDeltaAuction,\n SingleDeltaAuctionQueryKey\n >(queryClient, {\n queryKey,\n enabled: false, // no queryFn, just subscription\n // @TODO consider if we want queryFn to have refetching separate from useDeltaFlow\n });\n\n const promise = new Promise<MaybeVeloraDeltaAuction>((resolve, reject) => {\n const startedQueryAt = Date.now();\n\n // don't leave the promise and therefore the observer hanging,\n // if useWatchDeltaAuction doesn't finish its job and stops triggering the subscription\n let timeout: NodeJS.Timeout | null = setTimeout(() => {\n console.log(\"QueryObserver\", queryKey, \"timeout\");\n unsubscribe();\n reject(new Error(`Order ${orderId} not found`));\n }, LOOK_FOR_ORDER_TIMEOUT + 1000); // a bit of jitter time\n\n signal?.addEventListener(\"abort\", () => {\n if (timeout) {\n clearTimeout(timeout);\n }\n unsubscribe();\n reject(new Error(`Order execution aborted: ${signal.reason}`));\n });\n\n const unsubscribe = observer.subscribe((result) => {\n const cleanup = () => {\n console.log(\"QueryObserver\", queryKey, \"cleanup\");\n unsubscribe();\n };\n\n console.log(\"QueryObserver\", queryKey, result);\n\n const maybeOrder = result.data;\n\n if (maybeOrder && timeout !== null) {\n // Order fetched at least once\n clearTimeout(timeout);\n timeout = null;\n }\n\n // Order done with one way or the other\n if (\n maybeOrder &&\n DeltaOrderStatusChecker.completed.has(maybeOrder.status)\n ) {\n // Crosschain Orders are considered executed when both srcChain and destChain are executed\n if (isExecutedDeltaAuction(maybeOrder)) {\n cleanup();\n resolve(maybeOrder);\n return;\n }\n if (isFailedDeltaAuction(maybeOrder)) {\n cleanup();\n reject(maybeOrder);\n return;\n }\n }\n\n if (maybeOrder === null) {\n // no Order for this orderId for a long time\n const elapsed = Date.now() - startedQueryAt;\n if (elapsed > LOOK_FOR_ORDER_TIMEOUT) {\n cleanup();\n reject(new Error(`Order ${orderId} not found`));\n return;\n }\n }\n if (result.error) {\n cleanup();\n reject(result.error);\n return;\n }\n });\n });\n\n return promise;\n };\n\n return ensureOrderSent;\n}\n\n// ----------------- Multi Delta Queries -----------------------------------\n\ntype UseWatchMultiDeltaAuctions = {\n orderIds: string[];\n enabled?: boolean;\n onAuctionSuccess?: (auction: ExecutedDeltaAuction) => void;\n onAuctionFailure?: (auction: FailedDeltaAuction) => void;\n onUpdatedAuction?: (auction: MarkOptional<DeltaAuction, \"signature\">) => void;\n onTimeoutGettingOrder?: (auction: Pick<DeltaAuction, \"id\">) => void;\n};\n\nexport function useWatchMultiDeltaAuctions({\n orderIds,\n enabled = true,\n ...callbacks\n}: UseWatchMultiDeltaAuctions): UseQueryResult<MaybeVeloraDeltaAuction>[] {\n const { sdk } = useDeltaSDK({ chainId: 1 }); // chain doesn't matter\n\n const queries = useMemo<\n UseDeltaAuctionQueryOptions<MaybeVeloraDeltaAuction>[]\n >(\n () =>\n orderIds.map((orderId) =>\n constructDeltaAuctionPollingQueryOptions({\n orderId,\n enabled,\n getAuction: sdk.getDeltaOrderById,\n onUpdatedAuction: callbacks.onUpdatedAuction,\n onAuctionSuccess: callbacks.onAuctionSuccess,\n onAuctionFailure: callbacks.onAuctionFailure,\n onTimeoutGettingOrder: callbacks.onTimeoutGettingOrder,\n })\n ),\n [\n enabled,\n orderIds,\n callbacks.onUpdatedAuction,\n callbacks.onAuctionSuccess,\n callbacks.onAuctionFailure,\n callbacks.onTimeoutGettingOrder,\n sdk.getDeltaOrderById,\n ]\n );\n\n const auctionsResults = useQueries({ queries });\n\n return auctionsResults;\n}\n\ntype MultiOrdersStatusCrossChainInput = {\n orders: DeltaOrderFromAPI[];\n onAuctionSuccess?: (order: DeltaOrderFromAPI) => void;\n onAuctionFailure?: (order: DeltaOrderFromAPI) => void;\n onUpdatedAuction?: (\n auction: MarkOptional<DeltaAuction, \"signature\">,\n bridgeResponse: BridgedDepositResponse\n ) => void;\n};\n\n// can be used for checking Crosschain Order status checking\n// if status check from API is slow to update\nexport function useWatchMultiOrdersStatusCrossChain({\n orders,\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n}: MultiOrdersStatusCrossChainInput): UseQueryResult<BridgedDepositResponse>[] {\n const { deposits, onNewResponse, onDepositSuccess, onDepositFailure } =\n useMemo(() => {\n const { deposits, depositId2Order } = orders.reduce<{\n deposits: GetBridgedDepositStatusInput[];\n depositId2Order: Record<string, DeltaOrderFromAPI>;\n }>(\n (acc, order) => {\n if (order.bridgeMetadata?.depositId) {\n acc.deposits.push({\n depositId: String(order.bridgeMetadata.depositId),\n originChainId: order.chainId,\n });\n acc.depositId2Order[order.bridgeMetadata.depositId] = order;\n }\n return acc;\n },\n { deposits: [], depositId2Order: {} }\n );\n const onNewResponse = (response: BridgedDepositResponse) => {\n const order = depositId2Order[response.depositId];\n if (order) {\n onUpdatedAuction?.(order, response);\n }\n };\n\n const onDepositSuccess = onAuctionSuccess\n ? (deposit: BridgedDepositResponseSuccess) => {\n const order = depositId2Order[deposit.depositId];\n if (order) {\n const successfulOrder = {\n ...order,\n bridgeStatus: deposit.status,\n bridgeMetadata: {\n ...order.bridgeMetadata,\n fillTx: deposit.fillTx,\n },\n } as DeltaOrderFromAPI; // order.bridgeMetadata should be filled but not according to types\n onAuctionSuccess(successfulOrder);\n }\n }\n : undefined;\n\n const onDepositFailure = onAuctionFailure\n ? (deposit: BridgedDepositResponseFailure) => {\n const order = depositId2Order[deposit.depositId];\n if (order) {\n const failedOrder = {\n ...order,\n bridgeStatus: deposit.status,\n bridgeMetadata: {\n ...order.bridgeMetadata,\n fillTx: deposit.fillTx || undefined,\n },\n } as DeltaOrderFromAPI; // order.bridgeMetadata should be filled but not according to types\n onAuctionFailure(failedOrder);\n }\n }\n : undefined;\n\n return { deposits, onNewResponse, onDepositSuccess, onDepositFailure };\n }, [orders, onAuctionSuccess, onAuctionFailure, onUpdatedAuction]);\n\n const depositStatuses = useBridgedDepositStatus({\n deposits,\n onNewResponse,\n onDepositSuccess,\n onDepositFailure,\n });\n\n return depositStatuses;\n}\n"],"names":["SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX","DELTA_ORDER_POLLING_INTERVAL","LOOK_FOR_ORDER_TIMEOUT","constructDeltaAuctionPollingQueryOptions","orderId","enabled","getAuction","onUpdatedAuction","onAuctionSuccess","onAuctionFailure","onTimeoutGettingOrder","meta","startedQueryAt","Date","now","queryKey","queryFn","signal","assert","refetchInterval","query","maybeOrder","state","data","DeltaOrderStatusChecker","completed","has","status","isExecutedDeltaAuction","isFailedDeltaAuction","isOrderExpired","queryMeta","options","isMetaWithTimeStart","elapsed","id","useWatchDeltaAuction","t0","$","_c","t1","undefined","t2","Symbol","for","chainId","sdk","useDeltaSDK","t3","getDeltaOrderById","queryOptions","useQuery","useEnsureDeltaOrderExecuted","queryClient","useQueryClient","observer","QueryObserver","promise","Promise","resolve","reject","timeout","setTimeout","console","log","unsubscribe","Error","addEventListener","clearTimeout","reason","subscribe","result","cleanup","error","ensureOrderSent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useWatchDeltaOrder.js","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useWatchDeltaOrder.ts"],"sourcesContent":["import {\n QueryObserver,\n useQueries,\n useQuery,\n useQueryClient,\n type QueryMeta,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useLayoutEffect, useMemo, useRef } from \"react\";\nimport { assert, type MarkOptional } from \"ts-essentials\";\nimport { useDeltaSDK } from \"@/hooks/useSDK\";\nimport type { DeltaOrderFromAPI } from \"./useDeltaOrders\";\nimport {\n isMetaWithTimeStart,\n type BridgedDepositResponseFailure,\n type BridgedDepositResponseSuccess,\n type GetBridgedDepositStatusInput,\n type RefetchMetaWithTiming,\n} from \"../bridge/utils\";\nimport type { BridgedDepositResponse } from \"../bridge/types\";\nimport { useBridgedDepositStatus } from \"../bridge/useBridgedDeposit\";\nimport type { DeltaAuction } from \"@velora-dex/sdk\";\nimport {\n DeltaOrderStatusChecker,\n isExecutedDeltaAuction,\n isFailedDeltaAuction,\n isOrderExpired,\n} from \"../orders/utils\";\nimport type { ExecutedDeltaAuction, FailedDeltaAuction } from \"../orders/types\";\n\n// ------------------------------------ Single Delta Auction -----------------------------------\n\nconst SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX = \"single_delta_auction\";\ntype SingleDeltaAuctionQueryKey = [\n base: typeof SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX,\n orderId?: string,\n];\n\nexport type MaybeVeloraDeltaAuction = DeltaOrderFromAPI | null; // null is when no such Order for orderId\n\ntype UseDeltaAuctionQueryOptions<TData = MaybeVeloraDeltaAuction> =\n UseQueryOptions<\n MaybeVeloraDeltaAuction,\n Error,\n TData,\n SingleDeltaAuctionQueryKey\n >;\n\nconst DELTA_ORDER_POLLING_INTERVAL = 3_000;\n\ntype ConstructDeltaAuctionPollingQueryOptionsInput = {\n orderId?: string;\n enabled?: boolean;\n getAuction(\n orderId: string,\n requestParams: { signal?: AbortSignal }\n ): Promise<MaybeVeloraDeltaAuction>;\n} & Pick<\n UseWatchMultiDeltaAuctions,\n | \"onAuctionSuccess\"\n | \"onAuctionFailure\"\n | \"onUpdatedAuction\"\n | \"onTimeoutGettingOrder\"\n>;\n\nconst LOOK_FOR_ORDER_TIMEOUT = 60_000;\n\nfunction constructDeltaAuctionPollingQueryOptions({\n orderId,\n enabled,\n getAuction,\n onUpdatedAuction,\n onAuctionSuccess,\n onAuctionFailure,\n onTimeoutGettingOrder,\n}: ConstructDeltaAuctionPollingQueryOptionsInput): Pick<\n UseDeltaAuctionQueryOptions<MaybeVeloraDeltaAuction>,\n \"queryKey\" | \"queryFn\" | \"meta\" | \"refetchInterval\" | \"enabled\"\n> {\n const doneState = false;\n\n const isMetaWithDoneState = (\n queryMeta: QueryMeta\n ): queryMeta is { doneState: boolean } => {\n return \"doneState\" in queryMeta && typeof queryMeta.doneState === \"boolean\";\n };\n\n // queryOptions has to be memoized, otherwise queryMeta is updated on each render,\n // including startedQueryAt\n const meta: RefetchMetaWithTiming & {\n doneState: boolean;\n } = {\n startedQueryAt: Date.now(),\n doneState,\n };\n\n return {\n queryKey: [SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX, orderId],\n queryFn: ({ signal }) => {\n assert(orderId, \"orderId is required\");\n return getAuction(orderId, { signal });\n },\n meta,\n refetchInterval: (query) => {\n const maybeOrder = query.state.data;\n\n const queryMeta = query.options.meta;\n // refetchInterval is called on each render, regardless of queryOptions memoizations.\n // @TODO rework Watch Order logic to avoid callbacks inside refetchInterval,\n // or do away with these callbacks, they are unused currently.\n const isWithDoneState = !!queryMeta && isMetaWithDoneState(queryMeta);\n if (isWithDoneState && queryMeta.doneState) {\n console.log(\"Shortcut return for refetchInterval\");\n return false;\n }\n\n // Order could have an updated status during its lifecycle\n if (maybeOrder) onUpdatedAuction?.(maybeOrder);\n\n // Order done with one way or the other\n if (\n maybeOrder &&\n DeltaOrderStatusChecker.completed.has(maybeOrder.status)\n ) {\n // Crosschain Orders are considered executed when both srcChain and destChain are executed\n if (isExecutedDeltaAuction(maybeOrder)) {\n onAuctionSuccess?.(maybeOrder);\n if (isWithDoneState) {\n queryMeta.doneState = true;\n }\n return false; // stop polling\n }\n if (isFailedDeltaAuction(maybeOrder) || isOrderExpired(maybeOrder)) {\n onAuctionFailure?.(maybeOrder);\n if (isWithDoneState) {\n queryMeta.doneState = true;\n }\n return false; // stop polling\n }\n }\n\n if (maybeOrder === null && queryMeta && isMetaWithTimeStart(queryMeta)) {\n // no Order for this orderId for a long time\n const elapsed = Date.now() - queryMeta.startedQueryAt;\n if (elapsed > LOOK_FOR_ORDER_TIMEOUT) {\n assert(orderId, \"orderId is required\");\n onTimeoutGettingOrder?.({ id: orderId });\n if (isWithDoneState) {\n queryMeta.doneState = true;\n }\n return false; // stop polling after 1 minute\n }\n }\n\n return DELTA_ORDER_POLLING_INTERVAL; // default interval for both crosschain and singlechain Orders\n },\n enabled: !!orderId && enabled,\n };\n}\n\n// ----------------- Single Delta Query -----------------------------------\n\ntype UseWatchDeltaAuctionQueryInput = {\n orderId?: string;\n enabled?: boolean;\n onAuctionSuccess?: (auction: ExecutedDeltaAuction) => void;\n onAuctionFailure?: (auction: FailedDeltaAuction) => void;\n onUpdatedAuction?: (auction: MarkOptional<DeltaAuction, \"signature\">) => void;\n onTimeoutGettingOrder?: (auction: Pick<DeltaAuction, \"id\">) => void;\n};\n\nexport function useWatchDeltaAuction({\n orderId,\n enabled = true,\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n}: UseWatchDeltaAuctionQueryInput): UseQueryResult<MaybeVeloraDeltaAuction> {\n const { sdk } = useDeltaSDK({ chainId: 1 }); // chain doesn't matter\n\n const callbacksRef = useRef({\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n });\n\n useLayoutEffect(() => {\n console.log(\"Recalculating callbacksRef\");\n callbacksRef.current = {\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n };\n }, [\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n ]);\n\n const queryOptions = useMemo(() => {\n console.log(\"Recalculating queryOptions\");\n return constructDeltaAuctionPollingQueryOptions({\n orderId,\n enabled,\n getAuction: sdk.getDeltaOrderById,\n onUpdatedAuction: callbacksRef.current.onUpdatedAuction,\n onAuctionSuccess: callbacksRef.current.onAuctionSuccess,\n onAuctionFailure: callbacksRef.current.onAuctionFailure,\n onTimeoutGettingOrder: callbacksRef.current.onTimeoutGettingOrder,\n });\n }, [orderId, enabled, sdk.getDeltaOrderById]);\n\n return useQuery<\n MaybeVeloraDeltaAuction,\n Error,\n MaybeVeloraDeltaAuction,\n SingleDeltaAuctionQueryKey\n >(queryOptions);\n}\n\ntype EnsureOrderExecutedFn = (options: {\n orderId: string;\n signal?: AbortSignal;\n}) => Promise<MaybeVeloraDeltaAuction>;\n\nexport function useEnsureDeltaOrderExecuted(): EnsureOrderExecutedFn {\n const queryClient = useQueryClient();\n\n const ensureOrderSent: EnsureOrderExecutedFn = async ({\n orderId,\n signal,\n }): Promise<MaybeVeloraDeltaAuction> => {\n const queryKey: SingleDeltaAuctionQueryKey = [\n SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX,\n orderId,\n ];\n\n const observer = new QueryObserver<\n MaybeVeloraDeltaAuction,\n Error,\n MaybeVeloraDeltaAuction,\n SingleDeltaAuctionQueryKey\n >(queryClient, {\n queryKey,\n enabled: false, // no queryFn, just subscription\n // @TODO consider if we want queryFn to have refetching separate from useDeltaFlow\n });\n\n const promise = new Promise<MaybeVeloraDeltaAuction>((resolve, reject) => {\n const startedQueryAt = Date.now();\n\n // don't leave the promise and therefore the observer hanging,\n // if useWatchDeltaAuction doesn't finish its job and stops triggering the subscription\n let timeout: NodeJS.Timeout | null = setTimeout(() => {\n console.log(\"QueryObserver\", queryKey, \"timeout\");\n unsubscribe();\n reject(new Error(`Order ${orderId} not found`));\n }, LOOK_FOR_ORDER_TIMEOUT + 1000); // a bit of jitter time\n\n signal?.addEventListener(\"abort\", () => {\n if (timeout) {\n clearTimeout(timeout);\n }\n unsubscribe();\n reject(new Error(`Order execution aborted: ${signal.reason}`));\n });\n\n const unsubscribe = observer.subscribe((result) => {\n const cleanup = () => {\n console.log(\"QueryObserver\", queryKey, \"cleanup\");\n unsubscribe();\n };\n\n console.log(\"QueryObserver\", queryKey, result);\n\n const maybeOrder = result.data;\n\n if (maybeOrder && timeout !== null) {\n // Order fetched at least once\n clearTimeout(timeout);\n timeout = null;\n }\n\n // Order done with one way or the other\n if (\n maybeOrder &&\n DeltaOrderStatusChecker.completed.has(maybeOrder.status)\n ) {\n // Crosschain Orders are considered executed when both srcChain and destChain are executed\n if (isExecutedDeltaAuction(maybeOrder)) {\n cleanup();\n resolve(maybeOrder);\n return;\n }\n if (isFailedDeltaAuction(maybeOrder)) {\n cleanup();\n reject(maybeOrder);\n return;\n }\n }\n\n if (maybeOrder === null) {\n // no Order for this orderId for a long time\n const elapsed = Date.now() - startedQueryAt;\n if (elapsed > LOOK_FOR_ORDER_TIMEOUT) {\n cleanup();\n reject(new Error(`Order ${orderId} not found`));\n return;\n }\n }\n if (result.error) {\n cleanup();\n reject(result.error);\n return;\n }\n });\n });\n\n return promise;\n };\n\n return ensureOrderSent;\n}\n\n// ----------------- Multi Delta Queries -----------------------------------\n\ntype UseWatchMultiDeltaAuctions = {\n orderIds: string[];\n enabled?: boolean;\n onAuctionSuccess?: (auction: ExecutedDeltaAuction) => void;\n onAuctionFailure?: (auction: FailedDeltaAuction) => void;\n onUpdatedAuction?: (auction: MarkOptional<DeltaAuction, \"signature\">) => void;\n onTimeoutGettingOrder?: (auction: Pick<DeltaAuction, \"id\">) => void;\n};\n\nexport function useWatchMultiDeltaAuctions({\n orderIds,\n enabled = true,\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n}: UseWatchMultiDeltaAuctions): UseQueryResult<MaybeVeloraDeltaAuction>[] {\n const { sdk } = useDeltaSDK({ chainId: 1 }); // chain doesn't matter\n\n const callbacksRef = useRef({\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n });\n\n useLayoutEffect(() => {\n console.log(\"Recalculating callbacksRef\");\n callbacksRef.current = {\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n };\n }, [\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n ]);\n\n const queries = useMemo<\n UseDeltaAuctionQueryOptions<MaybeVeloraDeltaAuction>[]\n >(\n () =>\n orderIds.map((orderId) =>\n constructDeltaAuctionPollingQueryOptions({\n orderId,\n enabled,\n getAuction: sdk.getDeltaOrderById,\n onUpdatedAuction: callbacksRef.current.onUpdatedAuction,\n onAuctionSuccess: callbacksRef.current.onAuctionSuccess,\n onAuctionFailure: callbacksRef.current.onAuctionFailure,\n onTimeoutGettingOrder: callbacksRef.current.onTimeoutGettingOrder,\n })\n ),\n [enabled, orderIds, sdk.getDeltaOrderById]\n );\n\n const auctionsResults = useQueries({ queries });\n\n return auctionsResults;\n}\n\ntype MultiOrdersStatusCrossChainInput = {\n orders: DeltaOrderFromAPI[];\n onAuctionSuccess?: (order: DeltaOrderFromAPI) => void;\n onAuctionFailure?: (order: DeltaOrderFromAPI) => void;\n onUpdatedAuction?: (\n auction: MarkOptional<DeltaAuction, \"signature\">,\n bridgeResponse: BridgedDepositResponse\n ) => void;\n};\n\n// can be used for checking Crosschain Order status checking\n// if status check from API is slow to update\nexport function useWatchMultiOrdersStatusCrossChain({\n orders,\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n}: MultiOrdersStatusCrossChainInput): UseQueryResult<BridgedDepositResponse>[] {\n const { deposits, onNewResponse, onDepositSuccess, onDepositFailure } =\n useMemo(() => {\n const { deposits, depositId2Order } = orders.reduce<{\n deposits: GetBridgedDepositStatusInput[];\n depositId2Order: Record<string, DeltaOrderFromAPI>;\n }>(\n (acc, order) => {\n if (order.bridgeMetadata?.depositId) {\n acc.deposits.push({\n depositId: String(order.bridgeMetadata.depositId),\n originChainId: order.chainId,\n });\n acc.depositId2Order[order.bridgeMetadata.depositId] = order;\n }\n return acc;\n },\n { deposits: [], depositId2Order: {} }\n );\n const onNewResponse = (response: BridgedDepositResponse) => {\n const order = depositId2Order[response.depositId];\n if (order) {\n onUpdatedAuction?.(order, response);\n }\n };\n\n const onDepositSuccess = onAuctionSuccess\n ? (deposit: BridgedDepositResponseSuccess) => {\n const order = depositId2Order[deposit.depositId];\n if (order) {\n const successfulOrder = {\n ...order,\n bridgeStatus: deposit.status,\n bridgeMetadata: {\n ...order.bridgeMetadata,\n fillTx: deposit.fillTx,\n },\n } as DeltaOrderFromAPI; // order.bridgeMetadata should be filled but not according to types\n onAuctionSuccess(successfulOrder);\n }\n }\n : undefined;\n\n const onDepositFailure = onAuctionFailure\n ? (deposit: BridgedDepositResponseFailure) => {\n const order = depositId2Order[deposit.depositId];\n if (order) {\n const failedOrder = {\n ...order,\n bridgeStatus: deposit.status,\n bridgeMetadata: {\n ...order.bridgeMetadata,\n fillTx: deposit.fillTx || undefined,\n },\n } as DeltaOrderFromAPI; // order.bridgeMetadata should be filled but not according to types\n onAuctionFailure(failedOrder);\n }\n }\n : undefined;\n\n return { deposits, onNewResponse, onDepositSuccess, onDepositFailure };\n }, [orders, onAuctionSuccess, onAuctionFailure, onUpdatedAuction]);\n\n const depositStatuses = useBridgedDepositStatus({\n deposits,\n onNewResponse,\n onDepositSuccess,\n onDepositFailure,\n });\n\n return depositStatuses;\n}\n"],"names":["SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX","DELTA_ORDER_POLLING_INTERVAL","LOOK_FOR_ORDER_TIMEOUT","constructDeltaAuctionPollingQueryOptions","orderId","enabled","getAuction","onUpdatedAuction","onAuctionSuccess","onAuctionFailure","onTimeoutGettingOrder","doneState","isMetaWithDoneState","queryMeta","meta","startedQueryAt","Date","now","queryKey","queryFn","signal","assert","refetchInterval","query","maybeOrder","state","data","options","isWithDoneState","console","log","DeltaOrderStatusChecker","completed","has","status","isExecutedDeltaAuction","isFailedDeltaAuction","isOrderExpired","isMetaWithTimeStart","elapsed","id","useWatchDeltaAuction","sdk","useDeltaSDK","chainId","callbacksRef","useRef","useLayoutEffect","current","queryOptions","useMemo","getDeltaOrderById","useQuery","useEnsureDeltaOrderExecuted","$","_c","queryClient","useQueryClient","t0","t1","observer","QueryObserver","promise","Promise","resolve","reject","timeout","setTimeout","unsubscribe","Error","addEventListener","clearTimeout","reason","subscribe","result","cleanup","error","ensureOrderSent"],"mappings":";;;;;;;;;;;;;;;;;;AAiCA,MAAMA,qCAAAA,GAAwC,sBAAA;AAgB9C,MAAMC,4BAAAA,GAA+B,GAAA;AAiBrC,MAAMC,sBAAAA,GAAyB,GAAA;AAE/B,SAASC,wCAAAA,CAAyC;AAAA,EAChDC,OAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,gBAAAA;AAAAA,EACAC,gBAAAA;AAAAA,EACAC,gBAAAA;AAAAA,EACAC;AAC6C,CAAA,EAG7C;AACA,EAAA,MAAMC,SAAAA,GAAY,KAAA;AAElB,EAAA,MAAMC,mBAAAA,GAAsBA,CAC1BC,SAAAA,KACwC;AACxC,IAAA,OAAO,WAAA,IAAeA,SAAAA,IAAa,OAAOA,SAAAA,CAAUF,SAAAA,KAAc,SAAA;AAAA,GACpE;AAIA,EAAA,MAAMG,IAAAA,GAEF;AAAA,IACFC,cAAAA,EAAgBC,KAAKC,GAAAA,EAAI;AAAA,IACzBN;AAAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACLO,QAAAA,EAAU,CAAClB,qCAAAA,EAAuCI,OAAO,CAAA;AAAA,IACzDe,SAASA,CAAC;AAAA,MAAEC;AAAAA,KAAO,KAAM;AACvBC,MAAAA,MAAAA,CAAOjB,SAAS,qBAAqB,CAAA;AACrC,MAAA,OAAOE,WAAWF,OAAAA,EAAS;AAAA,QAAEgB;AAAAA,OAAQ,CAAA;AAAA,KACvC;AAAA,IACAN,IAAAA;AAAAA,IACAQ,iBAAkBC,CAAAA,KAAAA,KAAU;AAC1B,MAAA,MAAMC,UAAAA,GAAaD,MAAME,KAAAA,CAAMC,IAAAA;AAE/B,MAAA,MAAMb,SAAAA,GAAYU,MAAMI,OAAAA,CAAQb,IAAAA;AAIhC,MAAA,MAAMc,eAAAA,GAAkB,CAAC,CAACf,SAAAA,IAAaD,oBAAoBC,SAAS,CAAA;AACpE,MAAA,IAAIe,eAAAA,IAAmBf,UAAUF,SAAAA,EAAW;AAC1CkB,QAAAA,OAAAA,CAAQC,IAAI,qCAAqC,CAAA;AACjD,QAAA,OAAO,KAAA;AAAA;AAIT,MAAA,IAAIN,UAAAA,qBAA+BA,UAAU,CAAA;AAG7C,MAAA,IACEA,cACAO,uBAAAA,CAAwBC,SAAAA,CAAUC,GAAAA,CAAIT,UAAAA,CAAWU,MAAM,CAAA,EACvD;AAEA,QAAA,IAAIC,sBAAAA,CAAuBX,UAAU,CAAA,EAAG;AACtChB,UAAAA,gBAAAA,GAAmBgB,UAAU,CAAA;AAC7B,UAAA,IAAII,eAAAA,EAAiB;AACnBf,YAAAA,SAAAA,CAAUF,SAAAA,GAAY,IAAA;AAAA;AAExB,UAAA,OAAO,KAAA;AAAA;AAET,QAAA,IAAIyB,oBAAAA,CAAqBZ,UAAU,CAAA,IAAKa,cAAAA,CAAeb,UAAU,CAAA,EAAG;AAClEf,UAAAA,gBAAAA,GAAmBe,UAAU,CAAA;AAC7B,UAAA,IAAII,eAAAA,EAAiB;AACnBf,YAAAA,SAAAA,CAAUF,SAAAA,GAAY,IAAA;AAAA;AAExB,UAAA,OAAO,KAAA;AAAA;AACT;AAGF,MAAA,IAAIa,UAAAA,KAAe,IAAA,IAAQX,SAAAA,IAAayB,mBAAAA,CAAoBzB,SAAS,CAAA,EAAG;AAEtE,QAAA,MAAM0B,OAAAA,GAAUvB,IAAAA,CAAKC,GAAAA,EAAI,GAAIJ,SAAAA,CAAUE,cAAAA;AACvC,QAAA,IAAIwB,UAAUrC,sBAAAA,EAAwB;AACpCmB,UAAAA,MAAAA,CAAOjB,SAAS,qBAAqB,CAAA;AACrCM,UAAAA,qBAAAA,GAAwB;AAAA,YAAE8B,EAAAA,EAAIpC;AAAAA,WAAS,CAAA;AACvC,UAAA,IAAIwB,eAAAA,EAAiB;AACnBf,YAAAA,SAAAA,CAAUF,SAAAA,GAAY,IAAA;AAAA;AAExB,UAAA,OAAO,KAAA;AAAA;AACT;AAGF,MAAA,OAAOV,4BAAAA;AAAAA,KACT;AAAA,IACAI,OAAAA,EAAS,CAAC,CAACD,OAAAA,IAAWC;AAAAA,GACxB;AACF;AAaO,SAASoC,oBAAAA,CAAqB;AAAA,EACnCrC,OAAAA;AAAAA,EACAC,OAAAA,GAAU,IAAA;AAAA,EACVG,gBAAAA;AAAAA,EACAC,gBAAAA;AAAAA,EACAF,gBAAAA;AAAAA,EACAG;AAC8B,CAAA,EAA4C;AAC1E,EAAA,MAAM;AAAA,IAAEgC;AAAAA,MAAQC,WAAAA,CAAY;AAAA,IAAEC,OAAAA,EAAS;AAAA,GAAG,CAAA;AAE1C,EAAA,MAAMC,eAAeC,MAAAA,CAAO;AAAA,IAC1BtC,gBAAAA;AAAAA,IACAC,gBAAAA;AAAAA,IACAF,gBAAAA;AAAAA,IACAG;AAAAA,GACD,CAAA;AAEDqC,EAAAA,eAAAA,CAAgB,MAAM;AACpBlB,IAAAA,OAAAA,CAAQC,IAAI,4BAA4B,CAAA;AACxCe,IAAAA,YAAAA,CAAaG,OAAAA,GAAU;AAAA,MACrBxC,gBAAAA;AAAAA,MACAC,gBAAAA;AAAAA,MACAF,gBAAAA;AAAAA,MACAG;AAAAA,KACF;AAAA,KACC,CACDF,gBAAAA,EACAC,gBAAAA,EACAF,gBAAAA,EACAG,qBAAqB,CACtB,CAAA;AAED,EAAA,MAAMuC,YAAAA,GAAeC,QAAQ,MAAM;AACjCrB,IAAAA,OAAAA,CAAQC,IAAI,4BAA4B,CAAA;AACxC,IAAA,OAAO3B,wCAAAA,CAAyC;AAAA,MAC9CC,OAAAA;AAAAA,MACAC,OAAAA;AAAAA,MACAC,YAAYoC,GAAAA,CAAIS,iBAAAA;AAAAA,MAChB5C,gBAAAA,EAAkBsC,aAAaG,OAAAA,CAAQzC,gBAAAA;AAAAA,MACvCC,gBAAAA,EAAkBqC,aAAaG,OAAAA,CAAQxC,gBAAAA;AAAAA,MACvCC,gBAAAA,EAAkBoC,aAAaG,OAAAA,CAAQvC,gBAAAA;AAAAA,MACvCC,qBAAAA,EAAuBmC,aAAaG,OAAAA,CAAQtC;AAAAA,KAC7C,CAAA;AAAA,KACA,CAACN,OAAAA,EAASC,OAAAA,EAASqC,GAAAA,CAAIS,iBAAiB,CAAC,CAAA;AAE5C,EAAA,OAAOC,SAKLH,YAAY,CAAA;AAChB;AAOO,SAAAI,2BAAAA,GAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACL,EAAA,MAAAC,cAAoBC,cAAAA,EAAe;AAAE,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAJ,CAAAA,QAAAE,WAAAA,EAAA;AAEUE,IAAAA,EAAAA,UAAAC,EAAAA,KAAA;AAAO,MAAA,MAAA;AAAA,QAAAvD,OAAAA;AAAAA,QAAAgB;AAAAA,OAAA,GAAAuC,EAAAA;AAIpD,MAAA,MAAAzC,QAAAA,GAAA,CAAAlB,qCAAAA,EAEEI,OAAO,CAAA;AAGT,MAAA,MAAAwD,QAAAA,GAAA,IAAAC,aAAAA,CAKEL,WAAAA,EAAW;AAAA,QAAAtC,QAAAA;AAAAA,QAAAb,OAAAA,EAAA;AAAA,OAAA,CAAA;AAMb,MAAA,MAAAyD,OAAAA,GAAA,IAAAC,OAAAA,CAAA,CAAAC,SAAAC,MAAAA,KAAA;AACE,QAAA,MAAAlD,cAAAA,GAAuBC,KAAAC,GAAAA,EAAS;AAIhC,QAAA,IAAAiD,OAAAA,GAAqCC,WAAA,MAAA;AACnCtC,UAAAA,OAAAA,CAAAC,GAAAA,CAAY,eAAA,EAAiBZ,QAAAA,EAAU,SAAS,CAAA;AAChDkD,UAAAA,WAAAA,EAAY;AACZH,UAAAA,MAAAA,KAAMI,KAAAA,CAAW,CAAA,MAAA,EAASjE,OAAO,YAAY,CAAC,CAAA;AAAA,SAAC,EAC9CF,4BAA6B,CAAA;AAEhCkB,QAAAA,MAAAA,EAAMkD,gBAAAA,CAAmB,SAAO,MAAA;AAAA,UAAA,IAC1BJ,OAAAA,EAAO;AACTK,YAAAA,YAAAA,CAAaL,OAAO,CAAA;AAAA;AAEtBE,UAAAA,WAAAA,EAAY;AACZH,UAAAA,MAAAA,CAAM,IAAAI,KAAAA,CAAW,CAAA,yBAAA,EAA4BjD,MAAAA,CAAMoD,MAAA,EAAS,CAAC,CAAA;AAAA,SAAC,CAAA;AAGhE,QAAA,MAAAJ,WAAAA,GAAoBR,QAAAA,CAAQa,SAAAA,CAAAC,CAAAA,MAAAA,KAAA;AAC1B,UAAA,MAAAC,UAAAA,MAAA;AACE9C,YAAAA,OAAAA,CAAAC,GAAAA,CAAY,eAAA,EAAiBZ,QAAAA,EAAU,SAAS,CAAA;AAChDkD,YAAAA,WAAAA,EAAY;AAAA,WAAC;AAGfvC,UAAAA,OAAAA,CAAAC,GAAAA,CAAY,eAAA,EAAiBZ,QAAAA,EAAUwD,MAAM,CAAA;AAE7C,UAAA,MAAAlD,aAAmBkD,MAAAA,CAAMhD,IAAAA;AAAM,UAAA,IAE3BF,UAAAA,IAAc0C,YAAO,IAAA,EAAS;AAEhCK,YAAAA,YAAAA,CAAaL,OAAO,CAAA;AACpBA,YAAAA,OAAAA,GAAAA,IAAAA;AAAAA;AAAO,UAAA,IAKP1C,cACAO,uBAAAA,CAAAC,SAAAA,CAAAC,GAAAA,CAAsCT,UAAAA,CAAUU,MAAO,CAAA,EAAC;AAAA,YAAA,IAGpDC,sBAAAA,CAAuBX,UAAU,CAAA,EAAC;AACpCmD,cAAAA,OAAAA,EAAQ;AACRX,cAAAA,OAAAA,CAAQxC,UAAU,CAAA;AAAC,cAAA;AAAA;AAAA,YAAA,IAGjBY,oBAAAA,CAAqBZ,UAAU,CAAA,EAAC;AAClCmD,cAAAA,OAAAA,EAAQ;AACRV,cAAAA,MAAAA,CAAOzC,UAAU,CAAA;AAAC,cAAA;AAAA;AAAA;AAAA,UAAA,IAKlBA,eAAU,IAAA,EAAS;AAErB,YAAA,MAAAe,OAAAA,GAAgBvB,IAAAA,CAAAC,GAAAA,EAAS,GAAIF,cAAAA;AAAe,YAAA,IACxCwB,UAAOrC,sBAAAA,EAAyB;AAClCyE,cAAAA,OAAAA,EAAQ;AACRV,cAAAA,MAAAA,KAAMI,KAAAA,CAAW,CAAA,MAAA,EAASjE,OAAO,YAAY,CAAC,CAAA;AAAC,cAAA;AAAA;AAAA;AAAA,UAAA,IAI/CsE,OAAME,KAAAA,EAAA;AACRD,YAAAA,OAAAA,EAAQ;AACRV,YAAAA,MAAAA,CAAOS,OAAME,KAAM,CAAA;AAAC,YAAA;AAAA;AAAA,SAGvB,CAAA;AAAA,OAAE,CAAA;AACF,MAAA,OAEId,OAAAA;AAAAA,KAAO;AACfR,IAAAA,CAAAA,MAAAE,WAAAA;AAAAF,IAAAA,CAAAA,MAAAI,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAJ,EAAA,CAAA,CAAA;AAAA;AA3FD,EAAA,MAAAuB,eAAAA,GAA+CnB,EAAAA;AA2F7C,EAAA,OAEKmB,eAAAA;AAAe;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSDK.d.ts","sourceRoot":"","sources":["../../src/hooks/useSDK.ts"],"names":[],"mappings":"AAGA,OAAO,EAiBL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,6BAA6B,EAClC,KAAK,gCAAgC,EACrC,KAAK,mCAAmC,EACxC,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAI9C,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,QAAQ,CAClC,mBAAmB,GAAG,gBAAgB,GAAG,gBAAgB,CAC1D,CAAC;AAEF,KAAK,oBAAoB,CAAC,CAAC,IAAI;IAC7B,GAAG,EAAE,CAAC,CAAC;IACP,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,MAAM,GACP,EAAE,eAAe,GAAG,oBAAoB,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"useSDK.d.ts","sourceRoot":"","sources":["../../src/hooks/useSDK.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks/useSDK.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { d as distExports } from '../_virtual/index.js';
|
|
2
1
|
import axios from 'axios';
|
|
3
|
-
import 'react';
|
|
2
|
+
import { useMemo } from 'react';
|
|
4
3
|
import { constructPartialSDK, constructAxiosFetcher, constructGetDeltaOrders, constructGetDeltaPrice, constructBuildDeltaOrder, constructBuildCrosschainOrderBridge, constructPostDeltaOrder, constructGetBridgeInfo, constructGetMulticallHandlers, constructIsTokenSupportedInDelta, constructViemContractCaller, constructSignDeltaOrder, constructGetRate, constructGetSpender, constructBuildTx } from '@velora-dex/sdk';
|
|
5
4
|
|
|
6
5
|
globalThis.jotaiAtomCache = globalThis.jotaiAtomCache || {
|
|
@@ -14,97 +13,55 @@ globalThis.jotaiAtomCache = globalThis.jotaiAtomCache || {
|
|
|
14
13
|
}
|
|
15
14
|
};
|
|
16
15
|
const fetcher = constructAxiosFetcher(axios);
|
|
17
|
-
function useMarketSwapSDK(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
let t1;
|
|
24
|
-
let t2;
|
|
25
|
-
if ($[0] !== apiURL || $[1] !== chainId) {
|
|
16
|
+
function useMarketSwapSDK({
|
|
17
|
+
chainId,
|
|
18
|
+
apiURL
|
|
19
|
+
}) {
|
|
20
|
+
"use no memo";
|
|
21
|
+
const sdk = useMemo(() => {
|
|
26
22
|
const SDKconfig = {
|
|
27
23
|
apiURL,
|
|
28
24
|
chainId,
|
|
29
25
|
fetcher
|
|
30
26
|
};
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const sdk = t1;
|
|
40
|
-
let t3;
|
|
41
|
-
if ($[3] !== sdk) {
|
|
42
|
-
t3 = {
|
|
43
|
-
appVersion: sdk.version,
|
|
44
|
-
chainId: sdk.chainId,
|
|
45
|
-
apiURL: sdk.apiURL,
|
|
46
|
-
sdk
|
|
47
|
-
};
|
|
48
|
-
$[3] = sdk;
|
|
49
|
-
$[4] = t3;
|
|
50
|
-
} else {
|
|
51
|
-
t3 = $[4];
|
|
52
|
-
}
|
|
53
|
-
return t3;
|
|
27
|
+
return constructPartialSDK(SDKconfig, constructGetRate, constructGetSpender, constructBuildTx);
|
|
28
|
+
}, [apiURL, chainId]);
|
|
29
|
+
return {
|
|
30
|
+
appVersion: sdk.version,
|
|
31
|
+
chainId: sdk.chainId,
|
|
32
|
+
apiURL: sdk.apiURL,
|
|
33
|
+
sdk
|
|
34
|
+
};
|
|
54
35
|
}
|
|
55
|
-
function useDeltaSDK(
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
apiURL,
|
|
69
|
-
chainId,
|
|
70
|
-
fetcher
|
|
71
|
-
};
|
|
72
|
-
if (!client || !account) {
|
|
73
|
-
t1 = constructPartialSDK(SDKconfig, constructGetDeltaOrders, constructGetDeltaPrice, constructBuildDeltaOrder, constructBuildCrosschainOrderBridge, constructPostDeltaOrder, constructGetBridgeInfo, constructGetMulticallHandlers, constructIsTokenSupportedInDelta);
|
|
74
|
-
break bb0;
|
|
75
|
-
}
|
|
76
|
-
const contractCaller = constructViemContractCaller(client, account);
|
|
77
|
-
t22 = constructPartialSDK({
|
|
78
|
-
...SDKconfig,
|
|
79
|
-
contractCaller
|
|
80
|
-
}, constructGetDeltaOrders, constructGetDeltaPrice, constructBuildDeltaOrder, constructBuildCrosschainOrderBridge, constructPostDeltaOrder, constructGetBridgeInfo, constructGetMulticallHandlers, constructIsTokenSupportedInDelta, constructSignDeltaOrder);
|
|
81
|
-
$[0] = account;
|
|
82
|
-
$[1] = apiURL;
|
|
83
|
-
$[2] = chainId;
|
|
84
|
-
$[3] = client;
|
|
85
|
-
$[4] = t22;
|
|
86
|
-
$[5] = t1;
|
|
87
|
-
} else {
|
|
88
|
-
t22 = $[4];
|
|
89
|
-
t1 = $[5];
|
|
90
|
-
}
|
|
91
|
-
t1 = t22;
|
|
92
|
-
}
|
|
93
|
-
const sdk = t1;
|
|
94
|
-
let t2;
|
|
95
|
-
if ($[6] !== sdk) {
|
|
96
|
-
t2 = {
|
|
97
|
-
appVersion: sdk.version,
|
|
98
|
-
chainId: sdk.chainId,
|
|
99
|
-
apiURL: sdk.apiURL,
|
|
100
|
-
sdk
|
|
36
|
+
function useDeltaSDK({
|
|
37
|
+
chainId,
|
|
38
|
+
apiURL,
|
|
39
|
+
account,
|
|
40
|
+
client
|
|
41
|
+
}) {
|
|
42
|
+
"use no memo";
|
|
43
|
+
const sdk = useMemo(() => {
|
|
44
|
+
console.log("Recalculating sdk");
|
|
45
|
+
const SDKconfig = {
|
|
46
|
+
apiURL,
|
|
47
|
+
chainId,
|
|
48
|
+
fetcher
|
|
101
49
|
};
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
50
|
+
if (!client || !account) {
|
|
51
|
+
return constructPartialSDK(SDKconfig, constructGetDeltaOrders, constructGetDeltaPrice, constructBuildDeltaOrder, constructBuildCrosschainOrderBridge, constructPostDeltaOrder, constructGetBridgeInfo, constructGetMulticallHandlers, constructIsTokenSupportedInDelta);
|
|
52
|
+
}
|
|
53
|
+
const contractCaller = constructViemContractCaller(client, account);
|
|
54
|
+
return constructPartialSDK({
|
|
55
|
+
...SDKconfig,
|
|
56
|
+
contractCaller
|
|
57
|
+
}, constructGetDeltaOrders, constructGetDeltaPrice, constructBuildDeltaOrder, constructBuildCrosschainOrderBridge, constructPostDeltaOrder, constructGetBridgeInfo, constructGetMulticallHandlers, constructIsTokenSupportedInDelta, constructSignDeltaOrder);
|
|
58
|
+
}, [account, apiURL, client, chainId]);
|
|
59
|
+
return {
|
|
60
|
+
appVersion: sdk.version,
|
|
61
|
+
chainId: sdk.chainId,
|
|
62
|
+
apiURL: sdk.apiURL,
|
|
63
|
+
sdk
|
|
64
|
+
};
|
|
108
65
|
}
|
|
109
66
|
|
|
110
67
|
export { useDeltaSDK, useMarketSwapSDK };
|
package/dist/hooks/useSDK.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSDK.js","sources":["../../src/hooks/useSDK.ts"],"sourcesContent":["import axios from \"axios\";\nimport { useMemo } from \"react\";\n\nimport {\n constructAxiosFetcher,\n constructPartialSDK,\n constructGetSpender,\n constructBuildTx,\n constructAllLimitOrdersHandlers,\n constructGetRate,\n constructGetDeltaPrice,\n constructGetDeltaOrders,\n constructBuildDeltaOrder,\n constructSignDeltaOrder,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructGetMulticallHandlers,\n constructIsTokenSupportedInDelta,\n constructBuildCrosschainOrderBridge,\n constructViemContractCaller,\n type LimitOrderHandlers,\n type GetRateFunctions,\n type APIVersion,\n type GetDeltaOrdersFunctions,\n type GetDeltaPriceFunctions,\n type PostDeltaOrderFunctions,\n type BuildDeltaOrderFunctions,\n type SignDeltaOrderFunctions,\n type GetBridgeInfoFunctions,\n type GetMulticallHandlersFunctions,\n type IsTokenSupportedInDeltaFunctions,\n type BuildCrosschainOrderBridgeFunctions,\n type BuildTxFunctions,\n type GetSpenderFunctions,\n type MinViemClient,\n} from \"@velora-dex/sdk\";\nimport type { Address, Hash } from \"viem\";\nimport type { Prettify } from \"ts-essentials\";\n\nconst fetcher = constructAxiosFetcher(axios);\n\ntype SDKCreateParams = {\n chainId: number;\n apiURL?: string;\n account?: Address;\n};\n\nexport type MarketSwapSDK = Prettify<\n GetSpenderFunctions & BuildTxFunctions & GetRateFunctions\n>;\n\ntype ConstructedSDKOutput<T> = {\n sdk: T;\n appVersion: APIVersion;\n chainId: number;\n apiURL: string;\n};\n\nexport function useMarketSwapSDK({\n chainId,\n apiURL,\n}: SDKCreateParams): ConstructedSDKOutput<MarketSwapSDK> {\n const sdk = useMemo(() => {\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n };\n\n return constructPartialSDK(\n SDKconfig,\n constructGetRate,\n constructGetSpender,\n constructBuildTx\n );\n }, [apiURL, chainId]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\ntype LimitOrdersSDKCreateParams = SDKCreateParams & {\n account?: Address;\n client?: MinViemClient;\n};\n\nexport type LimitOrdersSDK = Prettify<LimitOrderHandlers<Hash>>;\n// can paraswap.fillOrder from a taker address to simulate happy path\n// @TODO check that we always use correct SDK version\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account?: undefined;\n client?: undefined;\n}): Record<keyof ConstructedSDKOutput<unknown>, undefined>; // keyof allows for autocomplete in destructuring\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account: Address;\n client: MinViemClient;\n}): ConstructedSDKOutput<LimitOrdersSDK>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams):\n | ConstructedSDKOutput<LimitOrdersSDK>\n | Record<keyof ConstructedSDKOutput<unknown>, undefined>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams):\n | ConstructedSDKOutput<LimitOrdersSDK>\n | Partial<Record<keyof ConstructedSDKOutput<unknown>, undefined>> {\n const sdk = useMemo(() => {\n if (!client || !account) return;\n\n const contractCaller = constructViemContractCaller(client, account);\n\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n contractCaller,\n };\n\n return constructPartialSDK(SDKconfig, constructAllLimitOrdersHandlers);\n }, [account, apiURL, client, chainId]);\n\n if (!sdk) return {};\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n\ntype ReadOnlyDeltaSDK = Prettify<\n GetDeltaOrdersFunctions &\n GetDeltaPriceFunctions &\n BuildDeltaOrderFunctions &\n BuildCrosschainOrderBridgeFunctions &\n PostDeltaOrderFunctions &\n GetBridgeInfoFunctions &\n GetMulticallHandlersFunctions &\n IsTokenSupportedInDeltaFunctions & { chainId: number }\n>;\n\nexport type DeltaSDK = Prettify<ReadOnlyDeltaSDK & SignDeltaOrderFunctions>;\n\ntype DeltaSDKCreateParams = SDKCreateParams & {\n client?: MinViemClient;\n};\n\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams & {\n account?: undefined;\n client?: undefined;\n}): ConstructedSDKOutput<ReadOnlyDeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams & {\n account: Address;\n client: MinViemClient;\n}): ConstructedSDKOutput<DeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams): ConstructedSDKOutput<DeltaSDK | ReadOnlyDeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams): ConstructedSDKOutput<DeltaSDK | ReadOnlyDeltaSDK> {\n const sdk = useMemo(() => {\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n };\n\n if (!client || !account) {\n return constructPartialSDK(\n SDKconfig,\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructBuildCrosschainOrderBridge,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructGetMulticallHandlers,\n constructIsTokenSupportedInDelta\n );\n }\n\n const contractCaller = constructViemContractCaller(client, account);\n\n return constructPartialSDK(\n { ...SDKconfig, contractCaller },\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructBuildCrosschainOrderBridge,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructGetMulticallHandlers,\n constructIsTokenSupportedInDelta,\n constructSignDeltaOrder\n );\n }, [account, apiURL, client, chainId]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n"],"names":["fetcher","constructAxiosFetcher","axios","useMarketSwapSDK","
|
|
1
|
+
{"version":3,"file":"useSDK.js","sources":["../../src/hooks/useSDK.ts"],"sourcesContent":["import axios from \"axios\";\nimport { useMemo } from \"react\";\n\nimport {\n constructAxiosFetcher,\n constructPartialSDK,\n constructGetSpender,\n constructBuildTx,\n constructAllLimitOrdersHandlers,\n constructGetRate,\n constructGetDeltaPrice,\n constructGetDeltaOrders,\n constructBuildDeltaOrder,\n constructSignDeltaOrder,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructGetMulticallHandlers,\n constructIsTokenSupportedInDelta,\n constructBuildCrosschainOrderBridge,\n constructViemContractCaller,\n type LimitOrderHandlers,\n type GetRateFunctions,\n type APIVersion,\n type GetDeltaOrdersFunctions,\n type GetDeltaPriceFunctions,\n type PostDeltaOrderFunctions,\n type BuildDeltaOrderFunctions,\n type SignDeltaOrderFunctions,\n type GetBridgeInfoFunctions,\n type GetMulticallHandlersFunctions,\n type IsTokenSupportedInDeltaFunctions,\n type BuildCrosschainOrderBridgeFunctions,\n type BuildTxFunctions,\n type GetSpenderFunctions,\n type MinViemClient,\n} from \"@velora-dex/sdk\";\nimport type { Address, Hash } from \"viem\";\nimport type { Prettify } from \"ts-essentials\";\n\nconst fetcher = constructAxiosFetcher(axios);\n\ntype SDKCreateParams = {\n chainId: number;\n apiURL?: string;\n account?: Address;\n};\n\nexport type MarketSwapSDK = Prettify<\n GetSpenderFunctions & BuildTxFunctions & GetRateFunctions\n>;\n\ntype ConstructedSDKOutput<T> = {\n sdk: T;\n appVersion: APIVersion;\n chainId: number;\n apiURL: string;\n};\n\nexport function useMarketSwapSDK({\n chainId,\n apiURL,\n}: SDKCreateParams): ConstructedSDKOutput<MarketSwapSDK> {\n \"use no memo\";\n\n const sdk = useMemo(() => {\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n };\n\n return constructPartialSDK(\n SDKconfig,\n constructGetRate,\n constructGetSpender,\n constructBuildTx\n );\n }, [apiURL, chainId]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\ntype LimitOrdersSDKCreateParams = SDKCreateParams & {\n account?: Address;\n client?: MinViemClient;\n};\n\nexport type LimitOrdersSDK = Prettify<LimitOrderHandlers<Hash>>;\n// can paraswap.fillOrder from a taker address to simulate happy path\n// @TODO check that we always use correct SDK version\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account?: undefined;\n client?: undefined;\n}): Record<keyof ConstructedSDKOutput<unknown>, undefined>; // keyof allows for autocomplete in destructuring\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account: Address;\n client: MinViemClient;\n}): ConstructedSDKOutput<LimitOrdersSDK>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams):\n | ConstructedSDKOutput<LimitOrdersSDK>\n | Record<keyof ConstructedSDKOutput<unknown>, undefined>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams):\n | ConstructedSDKOutput<LimitOrdersSDK>\n | Partial<Record<keyof ConstructedSDKOutput<unknown>, undefined>> {\n \"use no memo\";\n\n const sdk = useMemo(() => {\n if (!client || !account) return;\n\n const contractCaller = constructViemContractCaller(client, account);\n\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n contractCaller,\n };\n\n return constructPartialSDK(SDKconfig, constructAllLimitOrdersHandlers);\n }, [account, apiURL, client, chainId]);\n\n if (!sdk) return {};\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n\ntype ReadOnlyDeltaSDK = Prettify<\n GetDeltaOrdersFunctions &\n GetDeltaPriceFunctions &\n BuildDeltaOrderFunctions &\n BuildCrosschainOrderBridgeFunctions &\n PostDeltaOrderFunctions &\n GetBridgeInfoFunctions &\n GetMulticallHandlersFunctions &\n IsTokenSupportedInDeltaFunctions & { chainId: number }\n>;\n\nexport type DeltaSDK = Prettify<ReadOnlyDeltaSDK & SignDeltaOrderFunctions>;\n\ntype DeltaSDKCreateParams = SDKCreateParams & {\n client?: MinViemClient;\n};\n\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams & {\n account?: undefined;\n client?: undefined;\n}): ConstructedSDKOutput<ReadOnlyDeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams & {\n account: Address;\n client: MinViemClient;\n}): ConstructedSDKOutput<DeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams): ConstructedSDKOutput<DeltaSDK | ReadOnlyDeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams): ConstructedSDKOutput<DeltaSDK | ReadOnlyDeltaSDK> {\n \"use no memo\";\n // react-compiler fails here and sdk is created anew\n\n const sdk = useMemo(() => {\n console.log(\"Recalculating sdk\");\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n };\n\n if (!client || !account) {\n return constructPartialSDK(\n SDKconfig,\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructBuildCrosschainOrderBridge,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructGetMulticallHandlers,\n constructIsTokenSupportedInDelta\n );\n }\n\n const contractCaller = constructViemContractCaller(client, account);\n\n return constructPartialSDK(\n { ...SDKconfig, contractCaller },\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructBuildCrosschainOrderBridge,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructGetMulticallHandlers,\n constructIsTokenSupportedInDelta,\n constructSignDeltaOrder\n );\n }, [account, apiURL, client, chainId]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n"],"names":["fetcher","constructAxiosFetcher","axios","useMarketSwapSDK","chainId","apiURL","sdk","useMemo","SDKconfig","constructPartialSDK","constructGetRate","constructGetSpender","constructBuildTx","appVersion","version","useDeltaSDK","account","client","console","log","constructGetDeltaOrders","constructGetDeltaPrice","constructBuildDeltaOrder","constructBuildCrosschainOrderBridge","constructPostDeltaOrder","constructGetBridgeInfo","constructGetMulticallHandlers","constructIsTokenSupportedInDelta","contractCaller","constructViemContractCaller","constructSignDeltaOrder"],"mappings":";;;;;;;;;;;;;;AAuCA,MAAMA,OAAAA,GAAUC,sBAAsBC,KAAK,CAAA;AAmBpC,SAASC,gBAAAA,CAAiB;AAAA,EAC/BC,OAAAA;AAAAA,EACAC;AACe,CAAA,EAAwC;AACvD,EAAA,aAAA;AAEA,EAAA,MAAMC,GAAAA,GAAMC,QAAQ,MAAM;AACxB,IAAA,MAAMC,SAAAA,GAAY;AAAA,MAChBH,MAAAA;AAAAA,MACAD,OAAAA;AAAAA,MACAJ;AAAAA,KACF;AAEA,IAAA,OAAOS,mBAAAA,CACLD,SAAAA,EACAE,gBAAAA,EACAC,mBAAAA,EACAC,gBACF,CAAA;AAAA,GACF,EAAG,CAACP,MAAAA,EAAQD,OAAO,CAAC,CAAA;AAEpB,EAAA,OAAO;AAAA,IACLS,YAAYP,GAAAA,CAAIQ,OAAAA;AAAAA,IAChBV,SAASE,GAAAA,CAAIF,OAAAA;AAAAA,IACbC,QAAQC,GAAAA,CAAID,MAAAA;AAAAA,IACZC;AAAAA,GACF;AACF;AA+GO,SAASS,WAAAA,CAAY;AAAA,EAC1BX,OAAAA;AAAAA,EACAC,MAAAA;AAAAA,EACAW,OAAAA;AAAAA,EACAC;AACoB,CAAA,EAAsD;AAC1E,EAAA,aAAA;AAGA,EAAA,MAAMX,GAAAA,GAAMC,QAAQ,MAAM;AACxBW,IAAAA,OAAAA,CAAQC,IAAI,mBAAmB,CAAA;AAC/B,IAAA,MAAMX,SAAAA,GAAY;AAAA,MAChBH,MAAAA;AAAAA,MACAD,OAAAA;AAAAA,MACAJ;AAAAA,KACF;AAEA,IAAA,IAAI,CAACiB,MAAAA,IAAU,CAACD,OAAAA,EAAS;AACvB,MAAA,OAAOP,mBAAAA,CACLD,WACAY,uBAAAA,EACAC,sBAAAA,EACAC,0BACAC,mCAAAA,EACAC,uBAAAA,EACAC,sBAAAA,EACAC,6BAAAA,EACAC,gCACF,CAAA;AAAA;AAGF,IAAA,MAAMC,cAAAA,GAAiBC,2BAAAA,CAA4BZ,MAAAA,EAAQD,OAAO,CAAA;AAElE,IAAA,OAAOP,mBAAAA,CACL;AAAA,MAAE,GAAGD,SAAAA;AAAAA,MAAWoB;AAAAA,KAAe,EAC/BR,yBACAC,sBAAAA,EACAC,wBAAAA,EACAC,qCACAC,uBAAAA,EACAC,sBAAAA,EACAC,6BAAAA,EACAC,gCAAAA,EACAG,uBACF,CAAA;AAAA,KACC,CAACd,OAAAA,EAASX,MAAAA,EAAQY,MAAAA,EAAQb,OAAO,CAAC,CAAA;AAErC,EAAA,OAAO;AAAA,IACLS,YAAYP,GAAAA,CAAIQ,OAAAA;AAAAA,IAChBV,SAASE,GAAAA,CAAIF,OAAAA;AAAAA,IACbC,QAAQC,GAAAA,CAAID,MAAAA;AAAAA,IACZC;AAAAA,GACF;AACF;;;;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -15,5 +15,7 @@ export * from './components/widget/TradeOverview';
|
|
|
15
15
|
export * from './components/widget/WrapEth';
|
|
16
16
|
export * from './components/web3/providers';
|
|
17
17
|
export * from './widget';
|
|
18
|
+
export * from './widget/types';
|
|
19
|
+
export * as widgetStyles from './styles/global.css';
|
|
18
20
|
export * from './test/connect/App';
|
|
19
21
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,2DAA2D,CAAC;AAC1E,cAAc,iEAAiE,CAAC;AAChF,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,6BAA6B,CAAC;AAE5C,cAAc,6BAA6B,CAAC;AAE5C,cAAc,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,2DAA2D,CAAC;AAC1E,cAAc,iEAAiE,CAAC;AAChF,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,6BAA6B,CAAC;AAE5C,cAAc,6BAA6B,CAAC;AAE5C,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAE/B,OAAO,KAAK,YAAY,MAAM,qBAAqB,CAAC;AAGpD,cAAc,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -13,7 +13,8 @@ export { SwapModeSwitcherExpandable } from './components/widget/SwapModeSwitcher
|
|
|
13
13
|
export { TokenInput } from './components/widget/TokenInput/index.js';
|
|
14
14
|
export { Web3Providers } from './components/web3/providers.js';
|
|
15
15
|
export { Widget } from './widget/index.js';
|
|
16
|
-
|
|
16
|
+
import * as global from './styles/global.css.js';
|
|
17
|
+
export { global as widgetStyles };
|
|
17
18
|
export { ConnectApp } from './test/connect/App.js';
|
|
18
19
|
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
19
20
|
export { AccordionPrimitive };
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { SupportedChainId } from '../web3/wagmi/types';
|
|
2
|
-
import { Address } from 'viem';
|
|
3
2
|
export declare const constructAddressLink: (explorer: string, address: string) => string;
|
|
4
3
|
export declare const constructTxLink: (explorer: string, address: string) => string;
|
|
5
4
|
export declare function constructExplorerOrderDetailsLink(orderId: string): string;
|
|
6
|
-
export declare function constructExplorerUserDetailsLink(userAddress: Address): string;
|
|
7
5
|
type ConstructAddressLinkForChainInput = {
|
|
8
6
|
chainId: SupportedChainId;
|
|
9
7
|
address: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explorer.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/explorer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"explorer.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/explorer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG5D,eAAO,MAAM,oBAAoB,GAC/B,UAAU,MAAM,EAChB,SAAS,MAAM,KACd,MAEF,CAAC;AACF,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,EAAE,SAAS,MAAM,KAAG,MAEnE,CAAC;AAIF,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,KAAK,iCAAiC,GAAG;IACvC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,uBAG1C,iCAAiC,KAAG,MAAM,GAAG,SAK/C,CAAC;AAEF,KAAK,4BAA4B,GAAG;IAClC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,sBAGrC,4BAA4B,KAAG,MAAM,GAAG,SAK1C,CAAC"}
|
|
@@ -17,9 +17,6 @@ const VELORA_EXPLORER_URL = "https://explorer.velora.xyz";
|
|
|
17
17
|
function constructExplorerOrderDetailsLink(orderId) {
|
|
18
18
|
return `${VELORA_EXPLORER_URL}/order/${orderId}`;
|
|
19
19
|
}
|
|
20
|
-
function constructExplorerUserDetailsLink(userAddress) {
|
|
21
|
-
return `${VELORA_EXPLORER_URL}/address/${userAddress}`;
|
|
22
|
-
}
|
|
23
20
|
const constructTxLinkForChain = ({
|
|
24
21
|
chainId,
|
|
25
22
|
txHash
|
|
@@ -29,5 +26,5 @@ const constructTxLinkForChain = ({
|
|
|
29
26
|
return constructTxLink(explorer, txHash);
|
|
30
27
|
};
|
|
31
28
|
|
|
32
|
-
export { constructExplorerOrderDetailsLink,
|
|
29
|
+
export { constructExplorerOrderDetailsLink, constructTxLink, constructTxLinkForChain };
|
|
33
30
|
//# sourceMappingURL=explorer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explorer.js","sources":["../../../src/lib/utils/explorer.ts"],"sourcesContent":["import type { SupportedChainId } from \"../web3/wagmi/types\";\nimport { chainConfigMap } from \"../web3/wagmi/constants\";\
|
|
1
|
+
{"version":3,"file":"explorer.js","sources":["../../../src/lib/utils/explorer.ts"],"sourcesContent":["import type { SupportedChainId } from \"../web3/wagmi/types\";\nimport { chainConfigMap } from \"../web3/wagmi/constants\";\n\nexport const constructAddressLink = (\n explorer: string,\n address: string\n): string => {\n return `${explorer}/address/${address}`;\n};\nexport const constructTxLink = (explorer: string, address: string): string => {\n return `${explorer}/tx/${address}`;\n};\n\nconst VELORA_EXPLORER_URL = \"https://explorer.velora.xyz\";\n\nexport function constructExplorerOrderDetailsLink(orderId: string): string {\n return `${VELORA_EXPLORER_URL}/order/${orderId}`;\n}\n\ntype ConstructAddressLinkForChainInput = {\n chainId: SupportedChainId;\n address: string;\n};\n\nexport const constructAddressLinkForChain = ({\n chainId,\n address,\n}: ConstructAddressLinkForChainInput): string | undefined => {\n const explorer = chainConfigMap[chainId].blockExplorers?.default.url;\n if (!explorer) return;\n\n return constructAddressLink(explorer, address);\n};\n\ntype ConstructTxLinkForChainInput = {\n chainId: SupportedChainId;\n txHash: string;\n};\n\nexport const constructTxLinkForChain = ({\n chainId,\n txHash,\n}: ConstructTxLinkForChainInput): string | undefined => {\n const explorer = chainConfigMap[chainId].blockExplorers?.default.url;\n if (!explorer) return;\n\n return constructTxLink(explorer, txHash);\n};\n"],"names":["constructTxLink","explorer","address","VELORA_EXPLORER_URL","constructExplorerOrderDetailsLink","orderId","constructTxLinkForChain","chainId","txHash","chainConfigMap","blockExplorers","default","url"],"mappings":";;;;;;;;;;;;AASO,MAAMA,eAAAA,GAAkBA,CAACC,QAAAA,EAAkBC,OAAAA,KAA4B;AAC5E,EAAA,OAAO,CAAA,EAAGD,QAAQ,CAAA,IAAA,EAAOC,OAAO,CAAA,CAAA;AAClC;AAEA,MAAMC,mBAAAA,GAAsB,6BAAA;AAErB,SAASC,kCAAkCC,OAAAA,EAAyB;AACzE,EAAA,OAAO,CAAA,EAAGF,mBAAmB,CAAA,OAAA,EAAUE,OAAO,CAAA,CAAA;AAChD;AAsBO,MAAMC,0BAA0BA,CAAC;AAAA,EACtCC,OAAAA;AAAAA,EACAC;AAC4B,CAAA,KAA0B;AACtD,EAAA,MAAMP,QAAAA,GAAWQ,cAAAA,CAAeF,OAAO,CAAA,CAAEG,gBAAgBC,OAAAA,CAAQC,GAAAA;AACjE,EAAA,IAAI,CAACX,QAAAA,EAAU;AAEf,EAAA,OAAOD,eAAAA,CAAgBC,UAAUO,MAAM,CAAA;AACzC;;;;"}
|