@velora-dex/widget 0.4.2-dev.1 → 0.4.2-dev.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/components/widget/AppHeader/Activities/Drawers.d.ts.map +1 -1
  2. package/dist/components/widget/AppHeader/Activities/Drawers.js +18 -23
  3. package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -1
  4. package/dist/components/widget/Button/CancelButton/CancelButton.d.ts +7 -0
  5. package/dist/components/widget/Button/CancelButton/CancelButton.d.ts.map +1 -0
  6. package/dist/components/widget/Button/CancelButton/CancelButton.js +102 -0
  7. package/dist/components/widget/Button/CancelButton/CancelButton.js.map +1 -0
  8. package/dist/components/widget/Button/CancelButton/constants.d.ts +2 -0
  9. package/dist/components/widget/Button/CancelButton/constants.d.ts.map +1 -0
  10. package/dist/components/widget/Button/CancelButton/constants.js +4 -0
  11. package/dist/components/widget/Button/CancelButton/constants.js.map +1 -0
  12. package/dist/components/widget/Button/DismissButton.d.ts +4 -0
  13. package/dist/components/widget/Button/DismissButton.d.ts.map +1 -0
  14. package/dist/components/widget/Button/DismissButton.js +29 -0
  15. package/dist/components/widget/Button/DismissButton.js.map +1 -0
  16. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.d.ts +6 -4
  17. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.d.ts.map +1 -1
  18. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js +133 -147
  19. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js.map +1 -1
  20. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.d.ts +2 -2
  21. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.d.ts.map +1 -1
  22. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.js +138 -55
  23. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.js.map +1 -1
  24. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts +2 -2
  25. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts.map +1 -1
  26. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js +25 -21
  27. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
  28. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.d.ts.map +1 -1
  29. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js +3 -5
  30. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js.map +1 -1
  31. package/dist/components/widget/TradeOverview/TradeError/utils.js.map +1 -1
  32. package/dist/components/widget/TradeOverview/TradeOverviewFooter.d.ts.map +1 -1
  33. package/dist/components/widget/TradeOverview/TradeOverviewFooter.js +57 -28
  34. package/dist/components/widget/TradeOverview/TradeOverviewFooter.js.map +1 -1
  35. package/dist/events/types/cancel.d.ts +7 -1
  36. package/dist/events/types/cancel.d.ts.map +1 -1
  37. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.d.ts +1 -7
  38. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.d.ts.map +1 -1
  39. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.js +13 -85
  40. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.js.map +1 -1
  41. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.d.ts +11 -0
  42. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.d.ts.map +1 -0
  43. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.js +87 -0
  44. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.js.map +1 -0
  45. package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts +31 -0
  46. package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts.map +1 -0
  47. package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js +246 -0
  48. package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js.map +1 -0
  49. package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.d.ts +44 -0
  50. package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.d.ts.map +1 -0
  51. package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js +268 -0
  52. package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js.map +1 -0
  53. package/dist/hooks/swap/prices/delta/queries/useIsDeltaNonceUsed.d.ts +108 -0
  54. package/dist/hooks/swap/prices/delta/queries/useIsDeltaNonceUsed.d.ts.map +1 -0
  55. package/dist/hooks/swap/prices/delta/queries/useIsDeltaNonceUsed.js +168 -0
  56. package/dist/hooks/swap/prices/delta/queries/useIsDeltaNonceUsed.js.map +1 -0
  57. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts +3 -2
  58. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts.map +1 -1
  59. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js +8 -2
  60. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
  61. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +5 -2
  62. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
  63. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +19 -55
  64. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
  65. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts +2 -1
  66. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts.map +1 -1
  67. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js +38 -34
  68. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
  69. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +5 -2
  70. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
  71. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +20 -57
  72. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
  73. package/dist/hooks/swap/tradeFlow/useLimitOrderStep.d.ts.map +1 -1
  74. package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js +23 -33
  75. package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js.map +1 -1
  76. package/dist/hooks/useSDK.d.ts +1 -1
  77. package/dist/hooks/useSDK.d.ts.map +1 -1
  78. package/dist/hooks/useSDK.js.map +1 -1
  79. package/dist/lib/constants/urls.js +6 -2
  80. package/dist/lib/constants/urls.js.map +1 -1
  81. package/dist/styles.css +3 -0
  82. package/package.json +2 -2
@@ -5,7 +5,7 @@ import '../../../_virtual/index.js';
5
5
  import '../../useSDK.js';
6
6
  import 'clsx';
7
7
  import 'tailwind-merge';
8
- import { useQueryClient, useMutation } from '@tanstack/react-query';
8
+ import { useMutation } from '@tanstack/react-query';
9
9
  import { useCreateDeltaOrder } from '../prices/delta/mutations/useCreateDeltaOrder.js';
10
10
  import { useMinViemClient } from '../../useMinViemClient.js';
11
11
  import { useRef } from 'react';
@@ -14,17 +14,15 @@ import { useApproveOrPermit } from './common/useApproveOrPermit.js';
14
14
  import { useLogger } from '../../../core/logger.js';
15
15
  import { usePartner } from '../../usePartner.js';
16
16
  import { useLimitDeadline } from '../../../core/limit/state/deadlineAtom.js';
17
- import { useCancelDeltaOrderEventCallbacks, useCancelDeltaOrders } from '../prices/delta/mutations/useCancelDeltaOrders.js';
18
17
  import { getOverallOrderStatus } from '../prices/delta/orders/utils.js';
19
- import { useWatchDeltaAuction, deltaAuctionPollingQueryKey } from '../prices/delta/queries/useWatchDeltaOrder.js';
18
+ import { useWatchDeltaAuction } from '../prices/delta/queries/useWatchDeltaOrder.js';
20
19
  import { useWidgetEvents } from '../../../core/state/widgetEventsAtom.js';
21
20
  import { usePreSignAndSubmitDeltaOrder, shouldApproveOrBatch } from './common/usePreSignAndSubmitDeltaOrder.js';
22
21
  import { DEFAULT_DELTA_BRIDGE } from '../prices/delta/bridge/const.js';
23
22
  import { useLimitReceiverAddressValue } from '../../../core/limit/state/receiverAddressAtom.js';
24
- import { useChainMatches } from '../../useChainMatches.js';
25
- import { useSwitchChainWithGuard } from '../../useSwitchChainWithGuard.js';
26
23
  import { useDepositAndSubmitDeltaOrder } from './common/useDepositAndSubmitDeltaOrder.js';
27
24
  import { isETHaddress } from '../../../tokens/utils/eth.js';
25
+ import { useCancelOrWithdrawAndCancelDeltaOrder } from '../prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js';
28
26
 
29
27
  const limitOrderFlowType = "limitOrder";
30
28
  const LIMIT_ORDER_MUTATION_KEY = "runLimitOrderFlow";
@@ -33,7 +31,6 @@ function useLimitOrderFlow({
33
31
  }) {
34
32
  const logger = useLogger("LimitOrderFlow");
35
33
  const chainId = useChainId();
36
- const queryClient = useQueryClient();
37
34
  const {
38
35
  approval,
39
36
  approveTxMut,
@@ -136,48 +133,19 @@ function useLimitOrderFlow({
136
133
  isSuccess: orderStatus === "confirmed",
137
134
  error: watchOrderExecution.error
138
135
  };
139
- const cancelOrderEvents = useCancelDeltaOrderEventCallbacks(createOrderMut.data);
140
- const orderChainId = createOrderMut.data?.chainId;
141
- const {
142
- forcedChainMatchesWalletChain
143
- } = useChainMatches(orderChainId);
144
- const {
145
- mutateAsync: switchChain
146
- } = useSwitchChainWithGuard();
147
- const cancelOrderMut = useCancelDeltaOrders({
136
+ const cancelOrderMut = useCancelOrWithdrawAndCancelDeltaOrder({
137
+ // supply the must up-to-date order for cancellation
138
+ order: limitOrderExecution.lastOrderState || limitOrderExecution.sentOrder,
148
139
  chainId,
149
140
  account,
150
141
  client: minClient,
151
- mutationOptions: {
152
- onMutate: async (variables) => {
153
- assert(orderChainId, "orderChainId is undefined");
154
- if (!forcedChainMatchesWalletChain) {
155
- await switchChain({
156
- chainId: orderChainId
157
- });
158
- }
159
- cancelOrderEvents.onMutate?.(variables);
160
- },
161
- onSuccess: (successResponse, vars) => {
162
- logger.log("Cancel Limit Order success", successResponse);
163
- if (limitOrderExecution.sentOrder?.id) {
164
- queryClient.invalidateQueries({
165
- queryKey: deltaAuctionPollingQueryKey({
166
- orderId: limitOrderExecution.sentOrder.id
167
- })
168
- });
169
- }
170
- cancelOrderEvents.onSuccess?.(successResponse, vars);
171
- },
172
- onError: (error_0, vars_0) => {
173
- logger.error("Cancel Limit Order error", error_0);
174
- cancelOrderEvents.onError?.(error_0, vars_0);
175
- }
176
- }
142
+ logger
177
143
  });
178
144
  const limitOrderCancelation = {
145
+ receipt: cancelOrderMut.receipt,
179
146
  isCancelingOrder: cancelOrderMut.isPending,
180
- isOrderCanceled: cancelOrderMut.isSuccess && !!cancelOrderMut.data?.success,
147
+ isOrderCancellable: cancelOrderMut.isOrderCancellable,
148
+ isOrderCanceled: cancelOrderMut.isSuccess,
181
149
  isPending: cancelOrderMut.isPending,
182
150
  isError: cancelOrderMut.isError,
183
151
  isSuccess: cancelOrderMut.isSuccess,
@@ -273,14 +241,14 @@ function useLimitOrderFlow({
273
241
  txReceipt: approveTxReceipt
274
242
  });
275
243
  logger.log("~ approveTx ~ receipt:", approveTxReceipt);
276
- } catch (error_2) {
244
+ } catch (error_1) {
277
245
  approveOrPermitEvents.onApproveTx.failed({
278
246
  allowanceToSet,
279
- error: error_2,
247
+ error: error_1,
280
248
  txHash: approveTxHash
281
249
  // won't necessarily be available
282
250
  });
283
- throw error_2;
251
+ throw error_1;
284
252
  }
285
253
  }
286
254
  signal.throwIfAborted();
@@ -386,34 +354,29 @@ function useLimitOrderFlow({
386
354
  account,
387
355
  receiverAddress
388
356
  };
389
- } catch (error_1) {
390
- logger.error("Order submission error", error_1);
357
+ } catch (error_0) {
358
+ logger.error("Order submission error", error_0);
391
359
  onLimitOrder?.({
392
360
  event: {
393
361
  name: "LimitOrder:failed",
394
362
  params: {
395
363
  price: limitPrice,
396
- error: error_1
364
+ error: error_0
397
365
  }
398
366
  }
399
367
  });
400
- throw error_1;
368
+ throw error_0;
401
369
  }
402
370
  };
403
- const cancelLimitOrder = () => {
404
- assert(limitOrderSubmission.order, "No order to cancel");
405
- cancelOrderMut.mutate({
406
- orderIds: [limitOrderSubmission.order.id]
407
- });
408
- };
371
+ const cancelLimitOrder = cancelOrderMut.cancelDeltaOrder;
409
372
  const limitOrderMut = useMutation({
410
373
  mutationFn: submitLimitOrder,
411
374
  mutationKey: [LIMIT_ORDER_MUTATION_KEY],
412
375
  onSuccess: (data_0) => {
413
376
  logger.log("Order submission success", data_0);
414
377
  },
415
- onError: (error_3) => {
416
- logger.error("Order submission error", error_3);
378
+ onError: (error_2) => {
379
+ logger.error("Order submission error", error_2);
417
380
  },
418
381
  onSettled: () => {
419
382
  logger.log("Order submission settled");
@@ -1 +1 @@
1
- {"version":3,"file":"useLimitOrderFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useLimitOrderFlow.ts"],"sourcesContent":["import { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport { type SubmittedDeltaOrderFromAPI } from \"../prices/delta/queries/useDeltaOrders\";\nimport type { ApprovalFlowResult, SubmitTxResult } from \"./common/types\";\nimport {\n useCreateDeltaOrder,\n type CreateDeltaOrderInput,\n} from \"../prices/delta/mutations/useCreateDeltaOrder\";\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport { useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"./common/errors\";\nimport type {\n CallsSentObject,\n TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport { useApproveOrPermit } from \"./common/useApproveOrPermit\";\n\nimport { useLogger } from \"@/core/logger\";\n\nimport { usePartner } from \"@/hooks/usePartner\";\nimport { useLimitDeadline } from \"@/core/limit/state/deadlineAtom\";\nimport {\n useCancelDeltaOrderEventCallbacks,\n useCancelDeltaOrders,\n} from \"../prices/delta/mutations/useCancelDeltaOrders\";\nimport { getOverallOrderStatus } from \"../prices/delta/orders/utils\";\nimport {\n deltaAuctionPollingQueryKey,\n useWatchDeltaAuction,\n type MaybeVeloraDeltaAuction,\n} from \"../prices/delta/queries/useWatchDeltaOrder\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport {\n shouldApproveOrBatch,\n usePreSignAndSubmitDeltaOrder,\n} from \"./common/usePreSignAndSubmitDeltaOrder\";\nimport type { BridgePrice, DeltaOrderApiResponse } from \"@velora-dex/sdk\";\nimport { DEFAULT_DELTA_BRIDGE } from \"../prices/delta/bridge/const\";\nimport { useLimitReceiverAddressValue } from \"@/core/limit/state/receiverAddressAtom\";\nimport { useChainMatches } from \"@/hooks/useChainMatches\";\nimport { useSwitchChainWithGuard } from \"@/hooks/useSwitchChainWithGuard\";\nimport { useDepositAndSubmitDeltaOrder } from \"./common/useDepositAndSubmitDeltaOrder\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\n\nconst limitOrderFlowType = \"limitOrder\";\n\nexport type UserDefinedLimitPrice = {\n srcTokenAddress: string;\n destTokenAddress: string;\n srcAmount: string;\n destAmount: string;\n bridgePrice?: BridgePrice;\n};\n\nexport type UseLimitOrderFlowInput = {\n limitPrice?: UserDefinedLimitPrice;\n};\n\nexport type SubmitLimitOrderResult = {\n tradeFlowType: typeof limitOrderFlowType;\n approve: SubmitTxResult;\n limitOrder: {\n sentOrder: SubmittedDeltaOrderFromAPI;\n };\n limitPrice: UserDefinedLimitPrice;\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype RunLimitOrderOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseLimitOrderFlowResult = {\n tradeFlowType: typeof limitOrderFlowType;\n chainId: SupportedChainId;\n runLimitOrderFlow: (\n options?: RunLimitOrderOptions\n ) => Promise<SubmitLimitOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunLimitOrderOptions\n ) => Promise<SubmitLimitOrderResult>; // reset and retry flow\n cancelLimitOrder: () => void;\n approval: ApprovalFlowResult;\n limitOrderSubmission: {\n order?: SubmittedDeltaOrderFromAPI;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n limitOrderExecution: {\n sentOrder?: SubmittedDeltaOrderFromAPI;\n lastOrderState?: MaybeVeloraDeltaAuction;\n isOrderPending: boolean;\n isOrderExecuting: boolean;\n isOrderExecuted: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n limitOrderCancelation: {\n isCancelingOrder: boolean;\n isOrderCanceled: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitLimitOrderResult;\n limitPrice?: UserDefinedLimitPrice;\n};\n\nconst LIMIT_ORDER_MUTATION_KEY = \"runLimitOrderFlow\";\n\nexport function useLimitOrderFlow({\n limitPrice,\n}: UseLimitOrderFlowInput): UseLimitOrderFlowResult {\n const logger = useLogger(\"LimitOrderFlow\");\n const chainId = useChainId();\n const queryClient = useQueryClient();\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n\n 3. await Approve tx\n */\n\n const {\n approval,\n approveTxMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: limitPrice?.srcTokenAddress,\n srcAmount: limitPrice?.srcAmount,\n spenderContractType: \"ParaswapDelta\",\n swapSide: \"SELL\",\n tradeMode: \"limit\",\n chainId,\n });\n\n /* 4.1. Build and Submit Delta Order */\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n\n const createOrderMut = useCreateDeltaOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Create Limit Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Create Limit Order error\", error);\n },\n },\n });\n\n const limitOrderCreateAndSubmit: UseLimitOrderFlowResult[\"limitOrderSubmission\"] =\n {\n order: createOrderMut.data,\n isCreatingOrder: createOrderMut.isPending,\n isOrderSent: createOrderMut.isSuccess,\n isPending: createOrderMut.isPending,\n isError: createOrderMut.isError,\n isSuccess: createOrderMut.isSuccess,\n error: createOrderMut.error,\n };\n\n /* 4.2.\n 1. submit Batch tx (Approve + Delta pre-sign)\n 2. await Batch tx\n 3. post Pre-signed Order\n */\n\n const {\n deltaOrderPreSign,\n canBatchTxs,\n isConnectedToSafe,\n preSignAndSubmitDeltaOrder,\n reset: resetPreSignAndSubmitDeltaOrder,\n } = usePreSignAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient: minClient,\n });\n\n const {\n deltaOrderDeposit,\n reset: resetDepositAndSubmitDeltaOrder,\n depositAndSubmitDeltaOrder: depositAndSubmitDeltaOrder,\n } = useDepositAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient: minClient,\n });\n\n /* final Delta Order submission for step 4 */\n const limitOrderSubmission: UseLimitOrderFlowResult[\"limitOrderSubmission\"] =\n {\n order:\n limitOrderCreateAndSubmit.order ||\n deltaOrderPreSign.order ||\n deltaOrderDeposit.order,\n isCreatingOrder:\n limitOrderCreateAndSubmit.isPending ||\n deltaOrderPreSign.isCreatingOrder ||\n deltaOrderDeposit.isCreatingOrder,\n isOrderSent:\n limitOrderCreateAndSubmit.isSuccess ||\n deltaOrderPreSign.isOrderSent ||\n deltaOrderDeposit.isOrderSent,\n isPending:\n limitOrderCreateAndSubmit.isPending ||\n deltaOrderPreSign.isPending ||\n deltaOrderDeposit.isPending,\n isError:\n limitOrderCreateAndSubmit.isError ||\n deltaOrderPreSign.isError ||\n deltaOrderDeposit.isError,\n isSuccess:\n limitOrderCreateAndSubmit.isSuccess ||\n deltaOrderPreSign.isSuccess ||\n deltaOrderDeposit.isSuccess,\n error:\n limitOrderCreateAndSubmit.error ||\n deltaOrderPreSign.error ||\n deltaOrderDeposit.error,\n };\n\n const watchOrderExecution = useWatchDeltaAuction({\n orderId: limitOrderSubmission.order?.id,\n onAuctionSuccess: (order) => {\n logger.log(\"Limit Order success\", order);\n },\n onAuctionFailure: (order) => {\n logger.log(\"Limit Order failure\", order);\n },\n onUpdatedAuction: (order) => {\n logger.log(\"Limit Order updated\", order);\n },\n onTimeoutGettingOrder: (order) => {\n logger.log(\"Limit Order timeout\", order);\n },\n });\n\n const orderStatus = watchOrderExecution.data\n ? getOverallOrderStatus(watchOrderExecution.data)\n : null;\n\n // refetching stops after one minute of not finding an order (order==null)\n const neverFetchedFinishedOrder =\n watchOrderExecution.data === null && watchOrderExecution.isSuccess;\n\n const limitOrderExecution: UseLimitOrderFlowResult[\"limitOrderExecution\"] = {\n sentOrder: createOrderMut.data,\n lastOrderState: watchOrderExecution.data,\n isOrderPending: orderStatus === \"pending\",\n isOrderExecuting: orderStatus === \"executing\",\n isOrderExecuted: orderStatus === \"confirmed\",\n isPending:\n watchOrderExecution.isLoading ||\n watchOrderExecution.isRefetching ||\n orderStatus === \"pending\" ||\n orderStatus === \"executing\",\n isError:\n watchOrderExecution.isError ||\n orderStatus === \"failed\" ||\n neverFetchedFinishedOrder,\n isSuccess: orderStatus === \"confirmed\",\n error: watchOrderExecution.error,\n };\n\n const cancelOrderEvents = useCancelDeltaOrderEventCallbacks(\n createOrderMut.data\n );\n\n const orderChainId = createOrderMut.data?.chainId as\n | SupportedChainId\n | undefined;\n const { forcedChainMatchesWalletChain } = useChainMatches(orderChainId);\n const { mutateAsync: switchChain } = useSwitchChainWithGuard();\n\n const cancelOrderMut = useCancelDeltaOrders({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onMutate: async (variables) => {\n assert(orderChainId, \"orderChainId is undefined\");\n if (!forcedChainMatchesWalletChain) {\n await switchChain({\n chainId: orderChainId,\n });\n }\n cancelOrderEvents.onMutate?.(variables);\n },\n onSuccess: (successResponse, vars) => {\n logger.log(\"Cancel Limit Order success\", successResponse);\n if (limitOrderExecution.sentOrder?.id) {\n // refetch the order to get updated status\n queryClient.invalidateQueries({\n queryKey: deltaAuctionPollingQueryKey({\n orderId: limitOrderExecution.sentOrder.id,\n }),\n });\n }\n cancelOrderEvents.onSuccess?.(successResponse, vars);\n },\n onError: (error, vars) => {\n logger.error(\"Cancel Limit Order error\", error);\n cancelOrderEvents.onError?.(error, vars);\n },\n },\n });\n\n const limitOrderCancelation: UseLimitOrderFlowResult[\"limitOrderCancelation\"] =\n {\n isCancelingOrder: cancelOrderMut.isPending,\n isOrderCanceled:\n cancelOrderMut.isSuccess && !!cancelOrderMut.data?.success,\n isPending: cancelOrderMut.isPending,\n isError: cancelOrderMut.isError,\n isSuccess: cancelOrderMut.isSuccess,\n error: cancelOrderMut.error,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const { partner } = usePartner();\n const receiverAddress = useLimitReceiverAddressValue();\n const deadline = useLimitDeadline();\n\n const { onLimitOrder } = useWidgetEvents();\n\n const submitLimitOrder = async ({\n onTxSent,\n }: RunLimitOrderOptions = {}): Promise<SubmitLimitOrderResult> => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n createOrderMut.reset();\n cancelOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n resetDepositAndSubmitDeltaOrder();\n\n // no sense in starting flow without a price data,\n // Otherwise this flow will be stopped by disabling ReviewOrder button in the first place\n assert(limitPrice, \"Limit price data is not available\");\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n // at this point this is the syncronously available price\n const allowanceToSet = approval.allowanceToSet;\n\n const shouldDepositAndPreSign =\n // @TODO [depositNativeAndPreSign] ensureDeltaEthBalance and compare with price.srcAmount to skip the deposit,\n // or deposit the difference between user dETH balance and price.srcAmount to avoid unnecessary deposits\n isETHaddress(limitPrice.srcTokenAddress);\n\n /* \n if connected to Safe, or needs to approve a token with a tx, or needs to pre-wrap ETH\n and can batch txs, then pre-sign the batch;\n that way Safe does only one action (wrapETH?+Approve+setPreSignature batch tx)\n and a wallet that would otherwise potentially wrap ETH and then Approve Token (tx, no Permit for Limit Orders)\n and then sign Order, basically has to make at least one tx, does only one action as well.\n */\n const {\n shouldDoApprovalTxOrPermit: shouldDoApprovalTx,\n shouldPreSignBatch,\n } = shouldApproveOrBatch({\n approval,\n signPermit: {\n isPermitSupported: false,\n isPermitReadyToSign: false,\n },\n canBatchTxs,\n isConnectedToSafe,\n });\n\n try {\n if (shouldDoApprovalTx && allowanceToSet) {\n try {\n approveOrPermitEvents.onApproveTx.request({ allowanceToSet });\n\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n approveOrPermitEvents.onApproveTx.sent({\n allowanceToSet,\n txHash: approveTxHash,\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"approve\",\n transactionHash: approveTxHash,\n receiptPromise: approveTxReceiptPromise,\n transactionSpecificData: {\n action: \"approve\",\n approvedAmount: allowanceToSet,\n tokenAddress: approval.token as Address,\n spenderAddress: approval.spender as Address,\n },\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n approveOrPermitEvents.onApproveTx.confirmed({\n allowanceToSet,\n txHash: approveTxHash,\n txReceipt: approveTxReceipt,\n });\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n } catch (error) {\n approveOrPermitEvents.onApproveTx.failed({\n allowanceToSet,\n error: error as Error,\n txHash: approveTxHash, // won't necessarily be available\n });\n throw error;\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n\n assert(limitPrice, \"limitPrice is not available\");\n\n onLimitOrder?.({\n event: {\n name: \"LimitOrder:request\",\n params: {\n price: limitPrice,\n },\n },\n });\n const bridgePrice = limitPrice.bridgePrice;\n const destChainId = bridgePrice?.bridge.destinationChainId;\n\n let createOrderInput: CreateDeltaOrderInput;\n if (bridgePrice) {\n // crosschain order\n createOrderInput = {\n signal,\n type: \"LIMIT\",\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n srcToken: limitPrice.srcTokenAddress,\n destToken: limitPrice.destTokenAddress,\n srcAmount: limitPrice.srcAmount,\n destAmount: limitPrice.destAmount,\n destChainId,\n deltaPrice: {\n ...bridgePrice,\n bridge: {\n ...bridgePrice.bridge,\n protocolSelector: DEFAULT_DELTA_BRIDGE.protocolSelector,\n protocolData: DEFAULT_DELTA_BRIDGE.protocolData,\n },\n partner,\n partnerFee: 0,\n },\n partner,\n deadline,\n },\n };\n } else {\n // singlechain order\n createOrderInput = {\n signal,\n type: \"LIMIT\",\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n srcToken: limitPrice.srcTokenAddress,\n srcAmount: limitPrice.srcAmount,\n destToken: limitPrice.destTokenAddress,\n destAmount: limitPrice.destAmount,\n destChainId,\n deltaPrice: {\n destToken: limitPrice.destTokenAddress,\n destAmount: limitPrice.destAmount,\n srcAmount: limitPrice.srcAmount,\n bridge: DEFAULT_DELTA_BRIDGE,\n partner,\n partnerFee: 0,\n },\n partner,\n deadline,\n },\n };\n }\n\n let orderFromAPI: DeltaOrderApiResponse;\n\n if (shouldDepositAndPreSign) {\n orderFromAPI = await depositAndSubmitDeltaOrder({\n createDeltaOrderInput: createOrderInput,\n depositAmount: createOrderInput.orderInput.srcAmount,\n onTxSent,\n });\n } else if (shouldPreSignBatch) {\n // creating signing and POSTing the Order all together in one mutation\n // prepare Order for pre-signing and POSTing:\n // 1. builds the order\n // 2. hashes the built order\n // 3. construct DeltaContract.setPreSignature(orderHash, true) tx calldata\n\n orderFromAPI = await preSignAndSubmitDeltaOrder({\n createDeltaOrderInput: createOrderInput,\n approval,\n onTxSent,\n });\n } else {\n orderFromAPI = await createOrderMut.mutateAsync(createOrderInput);\n }\n\n onLimitOrder?.({\n event: {\n name: \"LimitOrder:sent\",\n params: {\n price: limitPrice,\n order: orderFromAPI,\n },\n },\n });\n\n return {\n tradeFlowType: limitOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n limitOrder: {\n sentOrder: orderFromAPI,\n },\n limitPrice: limitPrice,\n account,\n receiverAddress,\n };\n } catch (error) {\n logger.error(\"Order submission error\", error);\n onLimitOrder?.({\n event: {\n name: \"LimitOrder:failed\",\n params: {\n price: limitPrice,\n error: error as Error,\n },\n },\n });\n throw error;\n }\n };\n\n const cancelLimitOrder = () => {\n assert(limitOrderSubmission.order, \"No order to cancel\");\n cancelOrderMut.mutate({\n orderIds: [limitOrderSubmission.order.id],\n });\n };\n\n const limitOrderMut = useMutation({\n mutationFn: submitLimitOrder,\n mutationKey: [LIMIT_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Order submission success\", data);\n },\n onError: (error) => {\n logger.error(\"Order submission error\", error);\n },\n onSettled: () => {\n logger.log(\"Order submission settled\");\n },\n });\n\n const runLimitOrderFlow = limitOrderMut.mutateAsync;\n\n const reset = () => {\n approveTxMut.reset();\n createOrderMut.reset();\n limitOrderMut.reset();\n cancelOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n resetDepositAndSubmitDeltaOrder();\n };\n\n const retryFlow = (\n options?: RunLimitOrderOptions\n ): Promise<SubmitLimitOrderResult> => {\n reset();\n return runLimitOrderFlow(options);\n };\n\n /* 5. return result */\n return {\n tradeFlowType: limitOrderFlowType,\n chainId,\n runLimitOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n cancelLimitOrder,\n approval,\n limitOrderSubmission,\n limitOrderExecution,\n limitOrderCancelation,\n // deltaOrderMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: limitOrderMut.isPending,\n isSuccess: limitOrderSubmission.isSuccess, // approval is an optional step\n isError: limitOrderMut.isError,\n error: limitOrderMut.error,\n result: limitOrderMut.data,\n limitPrice,\n };\n}\n"],"names":["limitOrderFlowType","LIMIT_ORDER_MUTATION_KEY","useLimitOrderFlow","limitPrice","logger","useLogger","chainId","useChainId","queryClient","useQueryClient","approval","approveTxMut","events","approveOrPermitEvents","useApproveOrPermit","srcToken","srcTokenAddress","srcAmount","spenderContractType","swapSide","tradeMode","address","account","useAccount","minClient","useMinViemClient","createOrderMut","useCreateDeltaOrder","client","mutationOptions","onSuccess","order","log","onError","error","limitOrderCreateAndSubmit","data","isCreatingOrder","isPending","isOrderSent","isSuccess","isError","deltaOrderPreSign","canBatchTxs","isConnectedToSafe","preSignAndSubmitDeltaOrder","reset","resetPreSignAndSubmitDeltaOrder","usePreSignAndSubmitDeltaOrder","viemClient","deltaOrderDeposit","resetDepositAndSubmitDeltaOrder","depositAndSubmitDeltaOrder","useDepositAndSubmitDeltaOrder","limitOrderSubmission","watchOrderExecution","useWatchDeltaAuction","orderId","id","onAuctionSuccess","onAuctionFailure","onUpdatedAuction","onTimeoutGettingOrder","orderStatus","getOverallOrderStatus","neverFetchedFinishedOrder","limitOrderExecution","sentOrder","lastOrderState","isOrderPending","isOrderExecuting","isOrderExecuted","isLoading","isRefetching","cancelOrderEvents","useCancelDeltaOrderEventCallbacks","orderChainId","forcedChainMatchesWalletChain","useChainMatches","mutateAsync","switchChain","useSwitchChainWithGuard","cancelOrderMut","useCancelDeltaOrders","onMutate","variables","assert","successResponse","vars","invalidateQueries","queryKey","deltaAuctionPollingQueryKey","limitOrderCancelation","isCancelingOrder","isOrderCanceled","success","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","cancelFlow","current","abort","UserCancelledError","partner","usePartner","receiverAddress","useLimitReceiverAddressValue","deadline","useLimitDeadline","onLimitOrder","useWidgetEvents","submitLimitOrder","onTxSent","abortController","AbortController","signal","approveTxHash","approveTxReceipt","allowanceToSet","shouldDepositAndPreSign","isETHaddress","shouldDoApprovalTxOrPermit","shouldDoApprovalTx","shouldPreSignBatch","shouldApproveOrBatch","signPermit","isPermitSupported","isPermitReadyToSign","onApproveTx","request","approveAsync","allowanceData","sent","txHash","throwIfAborted","approveTxReceiptPromise","hash","onReplaced","action","transactionHash","receiptPromise","transactionSpecificData","approvedAmount","tokenAddress","token","spenderAddress","spender","confirmed","txReceipt","failed","event","name","params","price","bridgePrice","destChainId","bridge","destinationChainId","createOrderInput","type","orderInput","owner","beneficiary","destToken","destTokenAddress","destAmount","deltaPrice","protocolSelector","DEFAULT_DELTA_BRIDGE","protocolData","partnerFee","orderFromAPI","createDeltaOrderInput","depositAmount","tradeFlowType","approve","receipt","limitOrder","cancelLimitOrder","mutate","orderIds","limitOrderMut","useMutation","mutationFn","mutationKey","onSettled","runLimitOrderFlow","retryFlow","options","result"],"mappings":"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"}
1
+ {"version":3,"file":"useLimitOrderFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useLimitOrderFlow.ts"],"sourcesContent":["import { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport { type SubmittedDeltaOrderFromAPI } from \"../prices/delta/queries/useDeltaOrders\";\nimport type { ApprovalFlowResult, SubmitTxResult } from \"./common/types\";\nimport {\n useCreateDeltaOrder,\n type CreateDeltaOrderInput,\n} from \"../prices/delta/mutations/useCreateDeltaOrder\";\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"./common/errors\";\nimport type {\n CallsSentObject,\n TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport { useApproveOrPermit } from \"./common/useApproveOrPermit\";\n\nimport { useLogger } from \"@/core/logger\";\n\nimport { usePartner } from \"@/hooks/usePartner\";\nimport { useLimitDeadline } from \"@/core/limit/state/deadlineAtom\";\n\nimport { getOverallOrderStatus } from \"../prices/delta/orders/utils\";\nimport {\n useWatchDeltaAuction,\n type MaybeVeloraDeltaAuction,\n} from \"../prices/delta/queries/useWatchDeltaOrder\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport {\n shouldApproveOrBatch,\n usePreSignAndSubmitDeltaOrder,\n} from \"./common/usePreSignAndSubmitDeltaOrder\";\nimport type { BridgePrice, DeltaOrderApiResponse } from \"@velora-dex/sdk\";\nimport { DEFAULT_DELTA_BRIDGE } from \"../prices/delta/bridge/const\";\nimport { useLimitReceiverAddressValue } from \"@/core/limit/state/receiverAddressAtom\";\nimport { useDepositAndSubmitDeltaOrder } from \"./common/useDepositAndSubmitDeltaOrder\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\nimport { useCancelOrWithdrawAndCancelDeltaOrder } from \"../prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder\";\nimport type { CancelDeltaOrdersReturn } from \"../prices/delta/mutations/useCancelDeltaOrders\";\n\nconst limitOrderFlowType = \"limitOrder\";\n\nexport type UserDefinedLimitPrice = {\n srcTokenAddress: string;\n destTokenAddress: string;\n srcAmount: string;\n destAmount: string;\n bridgePrice?: BridgePrice;\n};\n\nexport type UseLimitOrderFlowInput = {\n limitPrice?: UserDefinedLimitPrice;\n};\n\nexport type SubmitLimitOrderResult = {\n tradeFlowType: typeof limitOrderFlowType;\n approve: SubmitTxResult;\n limitOrder: {\n sentOrder: SubmittedDeltaOrderFromAPI;\n };\n limitPrice: UserDefinedLimitPrice;\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype RunLimitOrderOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseLimitOrderFlowResult = {\n tradeFlowType: typeof limitOrderFlowType;\n chainId: SupportedChainId;\n runLimitOrderFlow: (\n options?: RunLimitOrderOptions\n ) => Promise<SubmitLimitOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunLimitOrderOptions\n ) => Promise<SubmitLimitOrderResult>; // reset and retry flow\n cancelLimitOrder: () => Promise<TransactionReceipt | CancelDeltaOrdersReturn>;\n approval: ApprovalFlowResult;\n limitOrderSubmission: {\n order?: SubmittedDeltaOrderFromAPI;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n limitOrderExecution: {\n sentOrder?: SubmittedDeltaOrderFromAPI;\n lastOrderState?: MaybeVeloraDeltaAuction;\n isOrderPending: boolean;\n isOrderExecuting: boolean;\n isOrderExecuted: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n limitOrderCancelation: {\n receipt?: TransactionReceipt;\n isCancelingOrder: boolean;\n isOrderCancellable: boolean;\n isOrderCanceled: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitLimitOrderResult;\n limitPrice?: UserDefinedLimitPrice;\n};\n\nconst LIMIT_ORDER_MUTATION_KEY = \"runLimitOrderFlow\";\n\nexport function useLimitOrderFlow({\n limitPrice,\n}: UseLimitOrderFlowInput): UseLimitOrderFlowResult {\n const logger = useLogger(\"LimitOrderFlow\");\n const chainId = useChainId();\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n\n 3. await Approve tx\n */\n\n const {\n approval,\n approveTxMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: limitPrice?.srcTokenAddress,\n srcAmount: limitPrice?.srcAmount,\n spenderContractType: \"ParaswapDelta\",\n swapSide: \"SELL\",\n tradeMode: \"limit\",\n chainId,\n });\n\n /* 4.1. Build and Submit Delta Order */\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n\n const createOrderMut = useCreateDeltaOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Create Limit Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Create Limit Order error\", error);\n },\n },\n });\n\n const limitOrderCreateAndSubmit: UseLimitOrderFlowResult[\"limitOrderSubmission\"] =\n {\n order: createOrderMut.data,\n isCreatingOrder: createOrderMut.isPending,\n isOrderSent: createOrderMut.isSuccess,\n isPending: createOrderMut.isPending,\n isError: createOrderMut.isError,\n isSuccess: createOrderMut.isSuccess,\n error: createOrderMut.error,\n };\n\n /* 4.2.\n 1. submit Batch tx (Approve + Delta pre-sign)\n 2. await Batch tx\n 3. post Pre-signed Order\n */\n\n const {\n deltaOrderPreSign,\n canBatchTxs,\n isConnectedToSafe,\n preSignAndSubmitDeltaOrder,\n reset: resetPreSignAndSubmitDeltaOrder,\n } = usePreSignAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient: minClient,\n });\n\n const {\n deltaOrderDeposit,\n reset: resetDepositAndSubmitDeltaOrder,\n depositAndSubmitDeltaOrder: depositAndSubmitDeltaOrder,\n } = useDepositAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient: minClient,\n });\n\n /* final Delta Order submission for step 4 */\n const limitOrderSubmission: UseLimitOrderFlowResult[\"limitOrderSubmission\"] =\n {\n order:\n limitOrderCreateAndSubmit.order ||\n deltaOrderPreSign.order ||\n deltaOrderDeposit.order,\n isCreatingOrder:\n limitOrderCreateAndSubmit.isPending ||\n deltaOrderPreSign.isCreatingOrder ||\n deltaOrderDeposit.isCreatingOrder,\n isOrderSent:\n limitOrderCreateAndSubmit.isSuccess ||\n deltaOrderPreSign.isOrderSent ||\n deltaOrderDeposit.isOrderSent,\n isPending:\n limitOrderCreateAndSubmit.isPending ||\n deltaOrderPreSign.isPending ||\n deltaOrderDeposit.isPending,\n isError:\n limitOrderCreateAndSubmit.isError ||\n deltaOrderPreSign.isError ||\n deltaOrderDeposit.isError,\n isSuccess:\n limitOrderCreateAndSubmit.isSuccess ||\n deltaOrderPreSign.isSuccess ||\n deltaOrderDeposit.isSuccess,\n error:\n limitOrderCreateAndSubmit.error ||\n deltaOrderPreSign.error ||\n deltaOrderDeposit.error,\n };\n\n const watchOrderExecution = useWatchDeltaAuction({\n orderId: limitOrderSubmission.order?.id,\n onAuctionSuccess: (order) => {\n logger.log(\"Limit Order success\", order);\n },\n onAuctionFailure: (order) => {\n logger.log(\"Limit Order failure\", order);\n },\n onUpdatedAuction: (order) => {\n logger.log(\"Limit Order updated\", order);\n },\n onTimeoutGettingOrder: (order) => {\n logger.log(\"Limit Order timeout\", order);\n },\n });\n\n const orderStatus = watchOrderExecution.data\n ? getOverallOrderStatus(watchOrderExecution.data)\n : null;\n\n // refetching stops after one minute of not finding an order (order==null)\n const neverFetchedFinishedOrder =\n watchOrderExecution.data === null && watchOrderExecution.isSuccess;\n\n const limitOrderExecution: UseLimitOrderFlowResult[\"limitOrderExecution\"] = {\n sentOrder: createOrderMut.data,\n lastOrderState: watchOrderExecution.data,\n isOrderPending: orderStatus === \"pending\",\n isOrderExecuting: orderStatus === \"executing\",\n isOrderExecuted: orderStatus === \"confirmed\",\n isPending:\n watchOrderExecution.isLoading ||\n watchOrderExecution.isRefetching ||\n orderStatus === \"pending\" ||\n orderStatus === \"executing\",\n isError:\n watchOrderExecution.isError ||\n orderStatus === \"failed\" ||\n neverFetchedFinishedOrder,\n isSuccess: orderStatus === \"confirmed\",\n error: watchOrderExecution.error,\n };\n\n const cancelOrderMut = useCancelOrWithdrawAndCancelDeltaOrder({\n // supply the must up-to-date order for cancellation\n order: limitOrderExecution.lastOrderState || limitOrderExecution.sentOrder,\n chainId,\n account,\n client: minClient,\n logger,\n });\n\n const limitOrderCancelation: UseLimitOrderFlowResult[\"limitOrderCancelation\"] =\n {\n receipt: cancelOrderMut.receipt,\n isCancelingOrder: cancelOrderMut.isPending,\n isOrderCancellable: cancelOrderMut.isOrderCancellable,\n isOrderCanceled: cancelOrderMut.isSuccess,\n isPending: cancelOrderMut.isPending,\n isError: cancelOrderMut.isError,\n isSuccess: cancelOrderMut.isSuccess,\n error: cancelOrderMut.error,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const { partner } = usePartner();\n const receiverAddress = useLimitReceiverAddressValue();\n const deadline = useLimitDeadline();\n\n const { onLimitOrder } = useWidgetEvents();\n\n const submitLimitOrder = async ({\n onTxSent,\n }: RunLimitOrderOptions = {}): Promise<SubmitLimitOrderResult> => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n createOrderMut.reset();\n cancelOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n resetDepositAndSubmitDeltaOrder();\n\n // no sense in starting flow without a price data,\n // Otherwise this flow will be stopped by disabling ReviewOrder button in the first place\n assert(limitPrice, \"Limit price data is not available\");\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n // at this point this is the syncronously available price\n const allowanceToSet = approval.allowanceToSet;\n\n const shouldDepositAndPreSign =\n // @TODO [depositNativeAndPreSign] ensureDeltaEthBalance and compare with price.srcAmount to skip the deposit,\n // or deposit the difference between user dETH balance and price.srcAmount to avoid unnecessary deposits\n isETHaddress(limitPrice.srcTokenAddress);\n\n /* \n if connected to Safe, or needs to approve a token with a tx, or needs to pre-wrap ETH\n and can batch txs, then pre-sign the batch;\n that way Safe does only one action (wrapETH?+Approve+setPreSignature batch tx)\n and a wallet that would otherwise potentially wrap ETH and then Approve Token (tx, no Permit for Limit Orders)\n and then sign Order, basically has to make at least one tx, does only one action as well.\n */\n const {\n shouldDoApprovalTxOrPermit: shouldDoApprovalTx,\n shouldPreSignBatch,\n } = shouldApproveOrBatch({\n approval,\n signPermit: {\n isPermitSupported: false,\n isPermitReadyToSign: false,\n },\n canBatchTxs,\n isConnectedToSafe,\n });\n\n try {\n if (shouldDoApprovalTx && allowanceToSet) {\n try {\n approveOrPermitEvents.onApproveTx.request({ allowanceToSet });\n\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n approveOrPermitEvents.onApproveTx.sent({\n allowanceToSet,\n txHash: approveTxHash,\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"approve\",\n transactionHash: approveTxHash,\n receiptPromise: approveTxReceiptPromise,\n transactionSpecificData: {\n action: \"approve\",\n approvedAmount: allowanceToSet,\n tokenAddress: approval.token as Address,\n spenderAddress: approval.spender as Address,\n },\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n approveOrPermitEvents.onApproveTx.confirmed({\n allowanceToSet,\n txHash: approveTxHash,\n txReceipt: approveTxReceipt,\n });\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n } catch (error) {\n approveOrPermitEvents.onApproveTx.failed({\n allowanceToSet,\n error: error as Error,\n txHash: approveTxHash, // won't necessarily be available\n });\n throw error;\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n\n assert(limitPrice, \"limitPrice is not available\");\n\n onLimitOrder?.({\n event: {\n name: \"LimitOrder:request\",\n params: {\n price: limitPrice,\n },\n },\n });\n const bridgePrice = limitPrice.bridgePrice;\n const destChainId = bridgePrice?.bridge.destinationChainId;\n\n let createOrderInput: CreateDeltaOrderInput;\n if (bridgePrice) {\n // crosschain order\n createOrderInput = {\n signal,\n type: \"LIMIT\",\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n srcToken: limitPrice.srcTokenAddress,\n destToken: limitPrice.destTokenAddress,\n srcAmount: limitPrice.srcAmount,\n destAmount: limitPrice.destAmount,\n destChainId,\n deltaPrice: {\n ...bridgePrice,\n bridge: {\n ...bridgePrice.bridge,\n protocolSelector: DEFAULT_DELTA_BRIDGE.protocolSelector,\n protocolData: DEFAULT_DELTA_BRIDGE.protocolData,\n },\n partner,\n partnerFee: 0,\n },\n partner,\n deadline,\n },\n };\n } else {\n // singlechain order\n createOrderInput = {\n signal,\n type: \"LIMIT\",\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n srcToken: limitPrice.srcTokenAddress,\n srcAmount: limitPrice.srcAmount,\n destToken: limitPrice.destTokenAddress,\n destAmount: limitPrice.destAmount,\n destChainId,\n deltaPrice: {\n destToken: limitPrice.destTokenAddress,\n destAmount: limitPrice.destAmount,\n srcAmount: limitPrice.srcAmount,\n bridge: DEFAULT_DELTA_BRIDGE,\n partner,\n partnerFee: 0,\n },\n partner,\n deadline,\n },\n };\n }\n\n let orderFromAPI: DeltaOrderApiResponse;\n\n if (shouldDepositAndPreSign) {\n orderFromAPI = await depositAndSubmitDeltaOrder({\n createDeltaOrderInput: createOrderInput,\n depositAmount: createOrderInput.orderInput.srcAmount,\n onTxSent,\n });\n } else if (shouldPreSignBatch) {\n // creating signing and POSTing the Order all together in one mutation\n // prepare Order for pre-signing and POSTing:\n // 1. builds the order\n // 2. hashes the built order\n // 3. construct DeltaContract.setPreSignature(orderHash, true) tx calldata\n\n orderFromAPI = await preSignAndSubmitDeltaOrder({\n createDeltaOrderInput: createOrderInput,\n approval,\n onTxSent,\n });\n } else {\n orderFromAPI = await createOrderMut.mutateAsync(createOrderInput);\n }\n\n onLimitOrder?.({\n event: {\n name: \"LimitOrder:sent\",\n params: {\n price: limitPrice,\n order: orderFromAPI,\n },\n },\n });\n\n return {\n tradeFlowType: limitOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n limitOrder: {\n sentOrder: orderFromAPI,\n },\n limitPrice: limitPrice,\n account,\n receiverAddress,\n };\n } catch (error) {\n logger.error(\"Order submission error\", error);\n onLimitOrder?.({\n event: {\n name: \"LimitOrder:failed\",\n params: {\n price: limitPrice,\n error: error as Error,\n },\n },\n });\n throw error;\n }\n };\n\n const cancelLimitOrder = cancelOrderMut.cancelDeltaOrder;\n\n const limitOrderMut = useMutation({\n mutationFn: submitLimitOrder,\n mutationKey: [LIMIT_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Order submission success\", data);\n },\n onError: (error) => {\n logger.error(\"Order submission error\", error);\n },\n onSettled: () => {\n logger.log(\"Order submission settled\");\n },\n });\n\n const runLimitOrderFlow = limitOrderMut.mutateAsync;\n\n const reset = () => {\n approveTxMut.reset();\n createOrderMut.reset();\n limitOrderMut.reset();\n cancelOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n resetDepositAndSubmitDeltaOrder();\n };\n\n const retryFlow = (\n options?: RunLimitOrderOptions\n ): Promise<SubmitLimitOrderResult> => {\n reset();\n return runLimitOrderFlow(options);\n };\n\n /* 5. return result */\n return {\n tradeFlowType: limitOrderFlowType,\n chainId,\n runLimitOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n cancelLimitOrder,\n approval,\n limitOrderSubmission,\n limitOrderExecution,\n limitOrderCancelation,\n // deltaOrderMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: limitOrderMut.isPending,\n isSuccess: limitOrderSubmission.isSuccess, // approval is an optional step\n isError: limitOrderMut.isError,\n error: limitOrderMut.error,\n result: limitOrderMut.data,\n limitPrice,\n };\n}\n"],"names":["limitOrderFlowType","LIMIT_ORDER_MUTATION_KEY","useLimitOrderFlow","limitPrice","logger","useLogger","chainId","useChainId","approval","approveTxMut","events","approveOrPermitEvents","useApproveOrPermit","srcToken","srcTokenAddress","srcAmount","spenderContractType","swapSide","tradeMode","address","account","useAccount","minClient","useMinViemClient","createOrderMut","useCreateDeltaOrder","client","mutationOptions","onSuccess","order","log","onError","error","limitOrderCreateAndSubmit","data","isCreatingOrder","isPending","isOrderSent","isSuccess","isError","deltaOrderPreSign","canBatchTxs","isConnectedToSafe","preSignAndSubmitDeltaOrder","reset","resetPreSignAndSubmitDeltaOrder","usePreSignAndSubmitDeltaOrder","viemClient","deltaOrderDeposit","resetDepositAndSubmitDeltaOrder","depositAndSubmitDeltaOrder","useDepositAndSubmitDeltaOrder","limitOrderSubmission","watchOrderExecution","useWatchDeltaAuction","orderId","id","onAuctionSuccess","onAuctionFailure","onUpdatedAuction","onTimeoutGettingOrder","orderStatus","getOverallOrderStatus","neverFetchedFinishedOrder","limitOrderExecution","sentOrder","lastOrderState","isOrderPending","isOrderExecuting","isOrderExecuted","isLoading","isRefetching","cancelOrderMut","useCancelOrWithdrawAndCancelDeltaOrder","limitOrderCancelation","receipt","isCancelingOrder","isOrderCancellable","isOrderCanceled","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","cancelFlow","current","abort","UserCancelledError","partner","usePartner","receiverAddress","useLimitReceiverAddressValue","deadline","useLimitDeadline","onLimitOrder","useWidgetEvents","submitLimitOrder","onTxSent","assert","abortController","AbortController","signal","approveTxHash","approveTxReceipt","allowanceToSet","shouldDepositAndPreSign","isETHaddress","shouldDoApprovalTxOrPermit","shouldDoApprovalTx","shouldPreSignBatch","shouldApproveOrBatch","signPermit","isPermitSupported","isPermitReadyToSign","onApproveTx","request","approveAsync","allowanceData","sent","txHash","throwIfAborted","approveTxReceiptPromise","hash","onReplaced","action","transactionHash","receiptPromise","transactionSpecificData","approvedAmount","tokenAddress","token","spenderAddress","spender","confirmed","txReceipt","failed","event","name","params","price","bridgePrice","destChainId","bridge","destinationChainId","createOrderInput","type","orderInput","owner","beneficiary","destToken","destTokenAddress","destAmount","deltaPrice","protocolSelector","DEFAULT_DELTA_BRIDGE","protocolData","partnerFee","orderFromAPI","createDeltaOrderInput","depositAmount","mutateAsync","tradeFlowType","approve","limitOrder","cancelLimitOrder","cancelDeltaOrder","limitOrderMut","useMutation","mutationFn","mutationKey","onSettled","runLimitOrderFlow","retryFlow","options","result"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useLimitOrderStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useLimitOrderStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,iBAAiB,EAClB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AAM7B,KAAK,uBAAuB,GAAG;IAC7B,eAAe,EAAE,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;IAC9D,gBAAgB,EAAE,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;IAE9D,KAAK,EAAE,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACxC,UAAU,EAAE,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAClD,SAAS,EAAE,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAChD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,qBAAqB,CAAC,EAAE,WAAW,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,aAAa,EAAE,uBAAuB,CAAC,eAAe,CAAC,CAAC;CACzD,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,sBAAsB,GAC9B,uBAAuB,CAiHzB"}
1
+ {"version":3,"file":"useLimitOrderStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useLimitOrderStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,iBAAiB,EAClB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AAK7B,KAAK,uBAAuB,GAAG;IAC7B,eAAe,EAAE,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;IAC9D,gBAAgB,EAAE,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;IAE9D,KAAK,EAAE,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACxC,UAAU,EAAE,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAClD,SAAS,EAAE,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAChD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,qBAAqB,CAAC,EAAE,WAAW,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,aAAa,EAAE,uBAAuB,CAAC,eAAe,CAAC,CAAC;CACzD,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,sBAAsB,GAC9B,uBAAuB,CA2GzB"}
@@ -3,10 +3,9 @@ import { useLimitOrderFlow } from './useLimitOrderFlow.js';
3
3
  import { useLogger } from '../../../core/logger.js';
4
4
  import { constructExplorerOrderDetailsLink } from '../../../lib/utils/explorer.js';
5
5
  import { isUserCancelledError } from './common/errors.js';
6
- import { DeltaOrderStatusChecker } from '../prices/delta/orders/utils.js';
7
6
 
8
7
  function useLimitOrderStep(options) {
9
- const $ = distExports.c(26);
8
+ const $ = distExports.c(24);
10
9
  const logger = useLogger("LimitOrderStep");
11
10
  const limitOrderFlow = useLimitOrderFlow(options);
12
11
  const startLimitOrder = limitOrderFlow.runLimitOrderFlow;
@@ -55,16 +54,7 @@ function useLimitOrderStep(options) {
55
54
  const approvalIsStarted = step?.key === "signature" && step.subStep === "approval-signature" && limitOrderFlow.approval.isTxPending;
56
55
  const isOrderBeingSigned = step?.key === "signature" && (step.subStep === "order-signature" || step.subStep === "standalone-order-signature");
57
56
  isFlowCancellable = approvalIsStarted || isOrderBeingSigned;
58
- const lastOrderStatus = limitOrderFlow.limitOrderExecution.lastOrderState?.status || limitOrderFlow.limitOrderExecution.sentOrder?.status;
59
- let t02;
60
- if ($[7] !== lastOrderStatus) {
61
- t02 = !!lastOrderStatus && DeltaOrderStatusChecker.cancellable.has(lastOrderStatus);
62
- $[7] = lastOrderStatus;
63
- $[8] = t02;
64
- } else {
65
- t02 = $[8];
66
- }
67
- isOrderCancellable = t02;
57
+ isOrderCancellable = limitOrderFlow.limitOrderCancelation.isOrderCancellable;
68
58
  const orderId = limitOrderFlow.limitOrderSubmission.order?.id;
69
59
  explorerLink = orderId ? constructExplorerOrderDetailsLink(orderId) : void 0;
70
60
  logger.once.log("step", step, limitOrderFlow, {
@@ -87,12 +77,12 @@ function useLimitOrderStep(options) {
87
77
  step = $[6];
88
78
  }
89
79
  let t0;
90
- if ($[9] !== limitOrderFlow.error) {
80
+ if ($[7] !== limitOrderFlow.error) {
91
81
  t0 = isUserCancelledError(limitOrderFlow.error) ? null : limitOrderFlow.error;
92
- $[9] = limitOrderFlow.error;
93
- $[10] = t0;
82
+ $[7] = limitOrderFlow.error;
83
+ $[8] = t0;
94
84
  } else {
95
- t0 = $[10];
85
+ t0 = $[8];
96
86
  }
97
87
  const error = t0;
98
88
  let erroredStep;
@@ -106,7 +96,7 @@ function useLimitOrderStep(options) {
106
96
  }
107
97
  }
108
98
  let t1;
109
- if ($[11] !== cancelFlow || $[12] !== error || $[13] !== erroredStep || $[14] !== explorerLink || $[15] !== isFlowCancellable || $[16] !== isOrderCancellable || $[17] !== limitOrderFlow.cancelLimitOrder || $[18] !== limitOrderFlow.result || $[19] !== limitOrderFlow.tradeFlowType || $[20] !== orderCancellationStep || $[21] !== reset || $[22] !== retryFlow || $[23] !== startLimitOrder || $[24] !== step) {
99
+ if ($[9] !== cancelFlow || $[10] !== error || $[11] !== erroredStep || $[12] !== explorerLink || $[13] !== isFlowCancellable || $[14] !== isOrderCancellable || $[15] !== limitOrderFlow.cancelLimitOrder || $[16] !== limitOrderFlow.result || $[17] !== limitOrderFlow.tradeFlowType || $[18] !== orderCancellationStep || $[19] !== reset || $[20] !== retryFlow || $[21] !== startLimitOrder || $[22] !== step) {
110
100
  t1 = {
111
101
  startLimitOrder,
112
102
  cancelLimitOrder: limitOrderFlow.cancelLimitOrder,
@@ -123,23 +113,23 @@ function useLimitOrderStep(options) {
123
113
  result: limitOrderFlow.result,
124
114
  tradeFlowType: limitOrderFlow.tradeFlowType
125
115
  };
126
- $[11] = cancelFlow;
127
- $[12] = error;
128
- $[13] = erroredStep;
129
- $[14] = explorerLink;
130
- $[15] = isFlowCancellable;
131
- $[16] = isOrderCancellable;
132
- $[17] = limitOrderFlow.cancelLimitOrder;
133
- $[18] = limitOrderFlow.result;
134
- $[19] = limitOrderFlow.tradeFlowType;
135
- $[20] = orderCancellationStep;
136
- $[21] = reset;
137
- $[22] = retryFlow;
138
- $[23] = startLimitOrder;
139
- $[24] = step;
140
- $[25] = t1;
116
+ $[9] = cancelFlow;
117
+ $[10] = error;
118
+ $[11] = erroredStep;
119
+ $[12] = explorerLink;
120
+ $[13] = isFlowCancellable;
121
+ $[14] = isOrderCancellable;
122
+ $[15] = limitOrderFlow.cancelLimitOrder;
123
+ $[16] = limitOrderFlow.result;
124
+ $[17] = limitOrderFlow.tradeFlowType;
125
+ $[18] = orderCancellationStep;
126
+ $[19] = reset;
127
+ $[20] = retryFlow;
128
+ $[21] = startLimitOrder;
129
+ $[22] = step;
130
+ $[23] = t1;
141
131
  } else {
142
- t1 = $[25];
132
+ t1 = $[23];
143
133
  }
144
134
  return t1;
145
135
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useLimitOrderStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useLimitOrderStep.ts"],"sourcesContent":["import type {\n GenericStep,\n LimitOrderStep,\n LimitOrderStepKey,\n} from \"@/components/widget/TradeOverview/steps\";\nimport {\n useLimitOrderFlow,\n type SubmitLimitOrderResult,\n type UseLimitOrderFlowInput,\n type UseLimitOrderFlowResult,\n} from \"./useLimitOrderFlow\";\nimport { useLogger } from \"@/core/logger\";\nimport { constructExplorerOrderDetailsLink } from \"@/lib/utils/explorer\";\nimport { isUserCancelledError } from \"./common/errors\";\nimport { DeltaOrderStatusChecker } from \"../prices/delta/orders/utils\";\n\ntype UseLimitOrderStepResult = {\n startLimitOrder: UseLimitOrderFlowResult[\"runLimitOrderFlow\"];\n cancelLimitOrder: UseLimitOrderFlowResult[\"cancelLimitOrder\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseLimitOrderFlowResult[\"reset\"];\n cancelFlow: UseLimitOrderFlowResult[\"cancelFlow\"];\n retryFlow: UseLimitOrderFlowResult[\"retryFlow\"];\n isFlowCancellable: boolean;\n isOrderCancellable: boolean;\n step?: LimitOrderStep;\n orderCancellationStep?: GenericStep;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: LimitOrderStepKey;\n result?: SubmitLimitOrderResult;\n tradeFlowType: UseLimitOrderFlowResult[\"tradeFlowType\"];\n};\n\nexport function useLimitOrderStep(\n options: UseLimitOrderFlowInput\n): UseLimitOrderStepResult {\n const logger = useLogger(\"LimitOrderStep\");\n const limitOrderFlow = useLimitOrderFlow(options);\n\n const startLimitOrder = limitOrderFlow.runLimitOrderFlow;\n const reset = limitOrderFlow.reset;\n const cancelFlow = limitOrderFlow.cancelFlow;\n const retryFlow = limitOrderFlow.retryFlow;\n\n let step: LimitOrderStep | undefined;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n limitOrderFlow.approval.isPending || !limitOrderFlow.approval.isSuccess;\n\n if (\n limitOrderFlow.approval.needsApproval &&\n approvalHappeningOrNeverHappened\n ) {\n step = { key: \"signature\", subStep: \"approval-signature\" };\n } else if (limitOrderFlow.limitOrderSubmission.isPending) {\n const approvalHappened = !!limitOrderFlow.approval.txHash;\n\n step = {\n key: \"signature\",\n subStep: approvalHappened\n ? \"order-signature\"\n : \"standalone-order-signature\",\n };\n } else if (limitOrderFlow.isPending) {\n // if something is between steps but not clear step,\n // then assume we're at the standalone signature sub-step\n step = { key: \"signature\", subStep: \"standalone-order-signature\" };\n }\n\n let orderCancellationStep: GenericStep | undefined;\n if (limitOrderFlow.limitOrderCancelation.isCancelingOrder) {\n orderCancellationStep = \"pending\";\n } else if (limitOrderFlow.limitOrderCancelation.isOrderCanceled) {\n orderCancellationStep = \"success\";\n } else if (limitOrderFlow.limitOrderCancelation.isError) {\n orderCancellationStep = \"error\";\n }\n\n const approvalIsStarted =\n step?.key === \"signature\" &&\n step.subStep === \"approval-signature\" &&\n limitOrderFlow.approval.isTxPending;\n\n const isOrderBeingSigned =\n step?.key === \"signature\" &&\n (step.subStep === \"order-signature\" ||\n step.subStep === \"standalone-order-signature\");\n\n const isFlowCancellable =\n // final Order is not yet submitted, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n approvalIsStarted || isOrderBeingSigned;\n\n const lastOrderStatus =\n // either from last known status (polling) or from the just submitted Order\n limitOrderFlow.limitOrderExecution.lastOrderState?.status ||\n limitOrderFlow.limitOrderExecution.sentOrder?.status;\n\n const isOrderCancellable =\n !!lastOrderStatus &&\n DeltaOrderStatusChecker.cancellable.has(lastOrderStatus);\n\n const orderId = limitOrderFlow.limitOrderSubmission.order?.id;\n const explorerLink = orderId\n ? constructExplorerOrderDetailsLink(orderId)\n : undefined;\n\n logger.once.log(\"step\", step, limitOrderFlow, {\n isFlowCancellable,\n explorerLink,\n orderId,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(limitOrderFlow.error)\n ? null\n : limitOrderFlow.error;\n\n let erroredStep: LimitOrderStepKey | undefined;\n\n if (limitOrderFlow.isError) {\n if (limitOrderFlow.approval.isError) {\n erroredStep = \"signature\";\n } else if (limitOrderFlow.limitOrderSubmission.isError) {\n erroredStep = \"order-submission\";\n }\n }\n\n return {\n startLimitOrder,\n cancelLimitOrder: limitOrderFlow.cancelLimitOrder,\n reset, // @TODO it maybe makes sense to reset mutation data when TradeOverflow drawer is closed\n // if we ever depend on mutation.result when Drawer is not closed,\n // otherwise the result sticks around until remount or next mutation start\n cancelFlow,\n retryFlow,\n isFlowCancellable,\n isOrderCancellable,\n step,\n orderCancellationStep,\n explorerLink,\n error,\n erroredStep,\n result: limitOrderFlow.result,\n tradeFlowType: limitOrderFlow.tradeFlowType,\n };\n}\n"],"names":["useLimitOrderStep","options","$","_c","logger","useLogger","limitOrderFlow","useLimitOrderFlow","startLimitOrder","runLimitOrderFlow","reset","cancelFlow","retryFlow","explorerLink","isFlowCancellable","isOrderCancellable","orderCancellationStep","step","once","approvalHappeningOrNeverHappened","approval","isPending","isSuccess","needsApproval","limitOrderSubmission","approvalHappened","txHash","limitOrderCancelation","isCancelingOrder","isOrderCanceled","isError","approvalIsStarted","key","subStep","isTxPending","isOrderBeingSigned","lastOrderStatus","limitOrderExecution","lastOrderState","status","sentOrder","t0","DeltaOrderStatusChecker","cancellable","has","orderId","order","id","constructExplorerOrderDetailsLink","undefined","log","error","isUserCancelledError","erroredStep","t1","cancelLimitOrder","result","tradeFlowType"],"mappings":"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"}
1
+ {"version":3,"file":"useLimitOrderStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useLimitOrderStep.ts"],"sourcesContent":["import type {\n GenericStep,\n LimitOrderStep,\n LimitOrderStepKey,\n} from \"@/components/widget/TradeOverview/steps\";\nimport {\n useLimitOrderFlow,\n type SubmitLimitOrderResult,\n type UseLimitOrderFlowInput,\n type UseLimitOrderFlowResult,\n} from \"./useLimitOrderFlow\";\nimport { useLogger } from \"@/core/logger\";\nimport { constructExplorerOrderDetailsLink } from \"@/lib/utils/explorer\";\nimport { isUserCancelledError } from \"./common/errors\";\n\ntype UseLimitOrderStepResult = {\n startLimitOrder: UseLimitOrderFlowResult[\"runLimitOrderFlow\"];\n cancelLimitOrder: UseLimitOrderFlowResult[\"cancelLimitOrder\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseLimitOrderFlowResult[\"reset\"];\n cancelFlow: UseLimitOrderFlowResult[\"cancelFlow\"];\n retryFlow: UseLimitOrderFlowResult[\"retryFlow\"];\n isFlowCancellable: boolean;\n isOrderCancellable: boolean;\n step?: LimitOrderStep;\n orderCancellationStep?: GenericStep;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: LimitOrderStepKey;\n result?: SubmitLimitOrderResult;\n tradeFlowType: UseLimitOrderFlowResult[\"tradeFlowType\"];\n};\n\nexport function useLimitOrderStep(\n options: UseLimitOrderFlowInput\n): UseLimitOrderStepResult {\n const logger = useLogger(\"LimitOrderStep\");\n const limitOrderFlow = useLimitOrderFlow(options);\n\n const startLimitOrder = limitOrderFlow.runLimitOrderFlow;\n const reset = limitOrderFlow.reset;\n const cancelFlow = limitOrderFlow.cancelFlow;\n const retryFlow = limitOrderFlow.retryFlow;\n\n let step: LimitOrderStep | undefined;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n limitOrderFlow.approval.isPending || !limitOrderFlow.approval.isSuccess;\n\n if (\n limitOrderFlow.approval.needsApproval &&\n approvalHappeningOrNeverHappened\n ) {\n step = { key: \"signature\", subStep: \"approval-signature\" };\n } else if (limitOrderFlow.limitOrderSubmission.isPending) {\n const approvalHappened = !!limitOrderFlow.approval.txHash;\n\n step = {\n key: \"signature\",\n subStep: approvalHappened\n ? \"order-signature\"\n : \"standalone-order-signature\",\n };\n } else if (limitOrderFlow.isPending) {\n // if something is between steps but not clear step,\n // then assume we're at the standalone signature sub-step\n step = { key: \"signature\", subStep: \"standalone-order-signature\" };\n }\n\n let orderCancellationStep: GenericStep | undefined;\n if (limitOrderFlow.limitOrderCancelation.isCancelingOrder) {\n orderCancellationStep = \"pending\";\n } else if (limitOrderFlow.limitOrderCancelation.isOrderCanceled) {\n orderCancellationStep = \"success\";\n } else if (limitOrderFlow.limitOrderCancelation.isError) {\n orderCancellationStep = \"error\";\n }\n\n const approvalIsStarted =\n step?.key === \"signature\" &&\n step.subStep === \"approval-signature\" &&\n limitOrderFlow.approval.isTxPending;\n\n const isOrderBeingSigned =\n step?.key === \"signature\" &&\n (step.subStep === \"order-signature\" ||\n step.subStep === \"standalone-order-signature\");\n\n const isFlowCancellable =\n // final Order is not yet submitted, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n approvalIsStarted || isOrderBeingSigned;\n\n const isOrderCancellable =\n limitOrderFlow.limitOrderCancelation.isOrderCancellable;\n\n const orderId = limitOrderFlow.limitOrderSubmission.order?.id;\n const explorerLink = orderId\n ? constructExplorerOrderDetailsLink(orderId)\n : undefined;\n\n logger.once.log(\"step\", step, limitOrderFlow, {\n isFlowCancellable,\n explorerLink,\n orderId,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(limitOrderFlow.error)\n ? null\n : limitOrderFlow.error;\n\n let erroredStep: LimitOrderStepKey | undefined;\n\n if (limitOrderFlow.isError) {\n if (limitOrderFlow.approval.isError) {\n erroredStep = \"signature\";\n } else if (limitOrderFlow.limitOrderSubmission.isError) {\n erroredStep = \"order-submission\";\n }\n }\n\n return {\n startLimitOrder,\n cancelLimitOrder: limitOrderFlow.cancelLimitOrder,\n reset, // @TODO it maybe makes sense to reset mutation data when TradeOverflow drawer is closed\n // if we ever depend on mutation.result when Drawer is not closed,\n // otherwise the result sticks around until remount or next mutation start\n cancelFlow,\n retryFlow,\n isFlowCancellable,\n isOrderCancellable,\n step,\n orderCancellationStep,\n explorerLink,\n error,\n erroredStep,\n result: limitOrderFlow.result,\n tradeFlowType: limitOrderFlow.tradeFlowType,\n };\n}\n"],"names":["useLimitOrderStep","options","$","_c","logger","useLogger","limitOrderFlow","useLimitOrderFlow","startLimitOrder","runLimitOrderFlow","reset","cancelFlow","retryFlow","explorerLink","isFlowCancellable","isOrderCancellable","orderCancellationStep","step","once","approvalHappeningOrNeverHappened","approval","isPending","isSuccess","needsApproval","limitOrderSubmission","approvalHappened","txHash","limitOrderCancelation","isCancelingOrder","isOrderCanceled","isError","approvalIsStarted","key","subStep","isTxPending","isOrderBeingSigned","orderId","order","id","constructExplorerOrderDetailsLink","undefined","log","t0","error","isUserCancelledError","erroredStep","t1","cancelLimitOrder","result","tradeFlowType"],"mappings":";;;;;;AAiCO,SAAAA,kBAAAC,OAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAGL,EAAA,MAAAC,MAAAA,GAAeC,UAAU,gBAAgB,CAAA;AACzC,EAAA,MAAAC,cAAAA,GAAuBC,kBAAkBN,OAAO,CAAA;AAEhD,EAAA,MAAAO,kBAAwBF,cAAAA,CAAcG,iBAAAA;AACtC,EAAA,MAAAC,QAAcJ,cAAAA,CAAcI,KAAAA;AAC5B,EAAA,MAAAC,aAAmBL,cAAAA,CAAcK,UAAAA;AACjC,EAAA,MAAAC,YAAkBN,cAAAA,CAAcM,SAAAA;AAAW,EAAA,IAAAC,YAAAA;AAAA,EAAA,IAAAC,iBAAAA;AAAA,EAAA,IAAAC,kBAAAA;AAAA,EAAA,IAAAC,qBAAAA;AAAA,EAAA,IAAAC,IAAAA;AAAA,EAAA,IAAAf,CAAAA,QAAAI,cAAAA,IAAAJ,EAAA,CAAA,CAAA,KAAAE,OAAAc,IAAAA,EAAA;AAI3C,IAAA,MAAAC,mCAGEb,cAAAA,CAAcc,QAAAA,CAASC,SAAAA,IAAvB,CAAsCf,eAAcc,QAAAA,CAASE,SAAAA;AAE/D,IAAA,IACEhB,cAAAA,CAAcc,QAAAA,CAASG,aAAAA,IAAvBJ,gCAAAA,EACgC;AAEhCF,MAAAA,IAAAA,GAAOA;AAAAA,QAAAA,GAAAA,EAAOA,WAAAA;AAAAA,QAAWA,OAAAA,EAAWA;AAAAA,OAAqBA;AAAAA,IAArD,CAAA,MAAA;AACC,MAAA,IAAIX,cAAAA,CAAckB,qBAAqBH,SAAAA,EAAU;AACtD,QAAA,MAAAI,gBAAAA,GAAyB,CAAC,CAACnB,cAAAA,CAAcc,QAAAA,CAASM,MAAAA;AAElDT,QAAAA,IAAAA,GAAOA;AAAAA,UAAAA,GAAAA,EACAA,WAAAA;AAAAA,UAAWA,OAAAA,EACPQ,mBAAA,iBAAA,GAAA;AAAA,SAGX;AAAA,MALI,CAAA,MAAA;AAMC,QAAA,IAAInB,eAAce,SAAAA,EAAU;AAGjCJ,UAAAA,IAAAA,GAAOA;AAAAA,YAAAA,GAAAA,EAAOA,WAAAA;AAAAA,YAAWA,OAAAA,EAAWA;AAAAA,WAA6BA;AAAAA,QAA7D;AAAA,MACL;AAAA,IAAA;AAGD,IAAA,IAAIX,cAAAA,CAAcqB,sBAAsBC,gBAAAA,EAAiB;AACvDZ,MAAAA,qBAAAA,GAAwBA,SAAAA;AAAAA,IAAH,CAAA,MAAA;AAChB,MAAA,IAAIV,cAAAA,CAAcqB,sBAAsBE,eAAAA,EAAgB;AAC7Db,QAAAA,qBAAAA,GAAwBA,SAAAA;AAAAA,MAAH,CAAA,MAAA;AAChB,QAAA,IAAIV,cAAAA,CAAcqB,sBAAsBG,OAAAA,EAAQ;AACrDd,UAAAA,qBAAAA,GAAwBA,OAAAA;AAAAA,QAAH;AAAA,MACtB;AAAA,IAAA;AAED,IAAA,MAAAe,iBAAAA,GACEd,MAAIe,GAAAA,KAAU,WAAA,IACdf,KAAIgB,OAAAA,KAAa,oBAAA,IACjB3B,eAAcc,QAAAA,CAASc,WAAAA;AAEzB,IAAA,MAAAC,kBAAAA,GACElB,MAAIe,GAAAA,KAAU,WAAA,KACbf,KAAIgB,OAAAA,KAAa,iBAAA,IAChBhB,KAAIgB,OAAAA,KAAa,4BAAA,CAAA;AAErBnB,IAAAA,iBAAAA,GAGEiB,iBAAAA,IAAAI,kBAAAA;AAEFpB,IAAAA,kBAAAA,GACET,eAAcqB,qBAAAA,CAAsBZ,kBAAAA;AAEtC,IAAA,MAAAqB,OAAAA,GAAgB9B,cAAAA,CAAckB,oBAAAA,CAAqBa,KAAAA,EAAUC,EAAAA;AAC7DzB,IAAAA,YAAAA,GAAqBuB,OAAAA,GACjBG,iCAAAA,CAAkCH,OAC1B,CAAA,GAFSI,MAAAA;AAIrBpC,IAAAA,MAAAA,CAAMc,IAAAA,CAAKuB,GAAAA,CAAK,MAAA,EAAQxB,IAAAA,EAAMX,cAAAA,EAAgB;AAAA,MAAAQ,iBAAAA;AAAAA,MAAAD,YAAAA;AAAAA,MAAAuB;AAAAA,KAI7C,CAAA;AAAClC,IAAAA,CAAAA,MAAAI,cAAAA;AAAAJ,IAAAA,CAAAA,CAAA,CAAA,IAAAE,MAAAA,CAAAc,IAAAA;AAAAhB,IAAAA,CAAAA,MAAAW,YAAAA;AAAAX,IAAAA,CAAAA,MAAAY,iBAAAA;AAAAZ,IAAAA,CAAAA,MAAAa,kBAAAA;AAAAb,IAAAA,CAAAA,MAAAc,qBAAAA;AAAAd,IAAAA,CAAAA,MAAAe,IAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAJ,IAAAA,YAAAA,GAAAX,EAAA,CAAA,CAAA;AAAAY,IAAAA,iBAAAA,GAAAZ,EAAA,CAAA,CAAA;AAAAa,IAAAA,kBAAAA,GAAAb,EAAA,CAAA,CAAA;AAAAc,IAAAA,qBAAAA,GAAAd,EAAA,CAAA,CAAA;AAAAe,IAAAA,IAAAA,GAAAf,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAwC,EAAAA;AAAA,EAAA,IAAAxC,CAAAA,CAAA,CAAA,CAAA,KAAAI,cAAAA,CAAAqC,KAAAA,EAAA;AAGYD,IAAAA,EAAAA,GAAAE,oBAAAA,CAAqBtC,cAAAA,CAAcqC,KAE1B,CAAA,GAFT,OAEVrC,cAAAA,CAAcqC,KAAAA;AAAMzC,IAAAA,CAAAA,CAAA,CAAA,IAAAI,cAAAA,CAAAqC,KAAAA;AAAAzC,IAAAA,CAAAA,MAAAwC,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAxC,EAAA,CAAA,CAAA;AAAA,EAAA;AAFxB,EAAA,MAAAyC,KAAAA,GAAcD,EAAAA;AAIVG,EAAAA,IAAAA,WAAAA;AAEJ,EAAA,IAAIvC,eAAcwB,OAAAA,EAAQ;AACxB,IAAA,IAAIxB,cAAAA,CAAcc,SAASU,OAAAA,EAAQ;AACjCe,MAAAA,WAAAA,GAAcA,WAAAA;AAAAA,IAAH,CAAA,MAAA;AACN,MAAA,IAAIvC,cAAAA,CAAckB,qBAAqBM,OAAAA,EAAQ;AACpDe,QAAAA,WAAAA,GAAcA,kBAAAA;AAAAA,MAAH;AAAA,IACZ;AAAA,EAAA;AACF,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAA5C,CAAAA,CAAA,CAAA,CAAA,KAAAS,UAAAA,IAAAT,CAAAA,CAAA,EAAA,CAAA,KAAAyC,KAAAA,IAAAzC,CAAAA,CAAA,EAAA,CAAA,KAAA2C,WAAAA,IAAA3C,CAAAA,CAAA,EAAA,CAAA,KAAAW,YAAAA,IAAAX,CAAAA,CAAA,EAAA,CAAA,KAAAY,iBAAAA,IAAAZ,CAAAA,CAAA,EAAA,CAAA,KAAAa,kBAAAA,IAAAb,CAAAA,CAAA,EAAA,CAAA,KAAAI,cAAAA,CAAAyC,gBAAAA,IAAA7C,EAAA,EAAA,CAAA,KAAAI,cAAAA,CAAA0C,MAAAA,IAAA9C,CAAAA,CAAA,EAAA,CAAA,KAAAI,cAAAA,CAAA2C,aAAAA,IAAA/C,CAAAA,CAAA,EAAA,CAAA,KAAAc,qBAAAA,IAAAd,CAAAA,CAAA,EAAA,CAAA,KAAAQ,KAAAA,IAAAR,CAAAA,CAAA,EAAA,CAAA,KAAAU,SAAAA,IAAAV,CAAAA,CAAA,EAAA,CAAA,KAAAM,eAAAA,IAAAN,CAAAA,CAAA,EAAA,CAAA,KAAAe,IAAAA,EAAA;AAEM6B,IAAAA,EAAAA,GAAA;AAAA,MAAAtC,eAAAA;AAAAA,MAAAuC,kBAEazC,cAAAA,CAAcyC,gBAAAA;AAAAA,MAAiBrC,KAAAA;AAAAA,MAAAC,UAAAA;AAAAA,MAAAC,SAAAA;AAAAA,MAAAE,iBAAAA;AAAAA,MAAAC,kBAAAA;AAAAA,MAAAE,IAAAA;AAAAA,MAAAD,qBAAAA;AAAAA,MAAAH,YAAAA;AAAAA,MAAA8B,KAAAA;AAAAA,MAAAE,WAAAA;AAAAA,MAAAG,QAazC1C,cAAAA,CAAc0C,MAAAA;AAAAA,MAAOC,eACd3C,cAAAA,CAAc2C;AAAAA,KAC/B;AAAC/C,IAAAA,CAAAA,MAAAS,UAAAA;AAAAT,IAAAA,CAAAA,OAAAyC,KAAAA;AAAAzC,IAAAA,CAAAA,OAAA2C,WAAAA;AAAA3C,IAAAA,CAAAA,OAAAW,YAAAA;AAAAX,IAAAA,CAAAA,OAAAY,iBAAAA;AAAAZ,IAAAA,CAAAA,OAAAa,kBAAAA;AAAAb,IAAAA,CAAAA,CAAA,EAAA,IAAAI,cAAAA,CAAAyC,gBAAAA;AAAA7C,IAAAA,CAAAA,CAAA,EAAA,IAAAI,cAAAA,CAAA0C,MAAAA;AAAA9C,IAAAA,CAAAA,CAAA,EAAA,IAAAI,cAAAA,CAAA2C,aAAAA;AAAA/C,IAAAA,CAAAA,OAAAc,qBAAAA;AAAAd,IAAAA,CAAAA,OAAAQ,KAAAA;AAAAR,IAAAA,CAAAA,OAAAU,SAAAA;AAAAV,IAAAA,CAAAA,OAAAM,eAAAA;AAAAN,IAAAA,CAAAA,OAAAe,IAAAA;AAAAf,IAAAA,CAAAA,OAAA4C,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA5C,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAjBM4C,EAAAA;AAiBN;;;;"}
@@ -33,7 +33,7 @@ export declare const useCalldataSDK: ({ chainId, apiURL, client, }: Omit<LimitOr
33
33
  type ReadOnlyDeltaSDK = Prettify<GetDeltaOrdersFunctions & GetDeltaPriceFunctions & BuildDeltaOrderFunctions & PostDeltaOrderFunctions & GetBridgeInfoFunctions & IsTokenSupportedInDeltaFunctions & {
34
34
  chainId: number;
35
35
  }>;
36
- export type DeltaSDK = Prettify<ReadOnlyDeltaSDK & SignDeltaOrderFunctions & CancelDeltaOrderFunctions>;
36
+ export type DeltaSDK = Prettify<ReadOnlyDeltaSDK & SignDeltaOrderFunctions & CancelDeltaOrderFunctions & DeltaTokenModuleFunctions<Hash>>;
37
37
  type DeltaSDKCreateParams = SDKCreateParams & {
38
38
  client?: MinViemClient;
39
39
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useSDK.d.ts","sourceRoot":"","sources":["../../src/hooks/useSDK.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSDK.d.ts","sourceRoot":"","sources":["../../src/hooks/useSDK.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSDK.js","sources":["../../src/hooks/useSDK.ts"],"sourcesContent":["import axios from \"axios\";\nimport { useMemo } from \"react\";\n\nimport {\n constructAxiosFetcher,\n constructFetchFetcher,\n constructPartialSDK,\n constructGetSpender,\n constructBuildTx,\n constructAllLimitOrdersHandlers,\n constructGetRate,\n constructGetDeltaPrice,\n constructGetDeltaOrders,\n constructBuildDeltaOrder,\n constructSignDeltaOrder,\n constructPreSignDeltaOrder,\n constructPostDeltaOrder,\n constructCancelDeltaOrder,\n constructGetBridgeInfo,\n constructIsTokenSupportedInDelta,\n constructDeltaTokenModule,\n constructViemContractCaller,\n type LimitOrderHandlers,\n type GetRateFunctions,\n type APIVersion,\n type GetDeltaOrdersFunctions,\n type GetDeltaPriceFunctions,\n type PostDeltaOrderFunctions,\n type BuildDeltaOrderFunctions,\n type SignDeltaOrderFunctions,\n type PreSignDeltaOrderFunctions,\n type CancelDeltaOrderFunctions,\n type GetBridgeInfoFunctions,\n type IsTokenSupportedInDeltaFunctions,\n type BuildTxFunctions,\n type GetSpenderFunctions,\n type MinViemClient,\n constructGetLimitOrders,\n constructBuildLimitOrder,\n constructPostLimitOrder,\n constructFillOrderDirectly,\n type GetLimitOrdersFunctions,\n type BuildLimitOrderFunctions,\n type PostLimitOrderFunctions,\n type FillOrderDirectlyFunctions,\n type ContractCallerFunctions,\n type DeltaTokenModuleFunctions,\n} from \"@velora-dex/sdk\";\nimport { encodeFunctionData, type Address, type Hash, type Hex } from \"viem\";\nimport type { Prettify } from \"ts-essentials\";\nimport { getLogger } from \"@/core/logger\";\nimport { getApiURL } from \"@/lib/constants/urls\";\nimport { useApiConfig } from \"@/core/state/apiConfigAtom\";\n\nfunction useSDKFetcher() {\n \"use no memo\";\n\n const apiConfig = useApiConfig();\n\n return useMemo(() => {\n return constructAxiosFetcher(axios, apiConfig);\n }, [apiConfig]);\n}\n\nfunction useKeepAliveSDKFetcher() {\n \"use no memo\";\n\n const apiConfig = useApiConfig();\n\n return useMemo(() => {\n if (typeof window === \"undefined\") return;\n return constructFetchFetcher(window.fetch, {\n ...apiConfig,\n keepalive: true,\n });\n }, [apiConfig]);\n}\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 fetcher = useSDKFetcher();\n\n const sdk = useMemo(() => {\n const SDKconfig = {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n };\n\n return constructPartialSDK(\n SDKconfig,\n constructGetRate,\n constructGetSpender,\n constructBuildTx\n );\n }, [apiURL, chainId, fetcher]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\ntype LimitOrdersSDKCreateParams = SDKCreateParams & {\n client?: MinViemClient;\n};\n\ntype ReadOnlyLimitOrdersSDK = Prettify<\n GetLimitOrdersFunctions & BuildLimitOrderFunctions & PostLimitOrderFunctions\n>;\n\nexport type LimitOrdersSDK = Prettify<LimitOrderHandlers<Hash>>;\n\nconst limitSDKLogger = getLogger(\"LimitOrdersSDK\");\n\n// can paraswap.fillOrder from a taker address to simulate happy path\n// @TODO check that we always use correct SDK version\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account?: undefined;\n client?: undefined;\n}): ConstructedSDKOutput<ReadOnlyLimitOrdersSDK>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account: Address;\n client: MinViemClient;\n}): ConstructedSDKOutput<LimitOrdersSDK>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams): ConstructedSDKOutput<\n LimitOrdersSDK | ReadOnlyLimitOrdersSDK\n>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams): ConstructedSDKOutput<\n LimitOrdersSDK | ReadOnlyLimitOrdersSDK\n> {\n \"use no memo\";\n\n const fetcher = useSDKFetcher();\n\n const sdk = useMemo(() => {\n limitSDKLogger.once.log(\"init sdk\");\n const SDKconfig = {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n };\n\n if (!client || !account) {\n return constructPartialSDK(\n SDKconfig,\n constructGetLimitOrders,\n constructBuildLimitOrder,\n constructPostLimitOrder\n );\n }\n\n const contractCaller = constructViemContractCaller(client, account);\n\n return constructPartialSDK(\n { ...SDKconfig, contractCaller },\n constructAllLimitOrdersHandlers\n );\n }, [client, account, apiURL, chainId, fetcher]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n\n// ContractCaller that returns Contract[method](args) calldata instead of sending out a transaction\ntype CalldataContractCaller = ContractCallerFunctions<Hex>;\n\nconst constructCalldataContractCaller = (): CalldataContractCaller => {\n const transactCall: CalldataContractCaller[\"transactCall\"] = async (\n params\n ) => {\n const { abi, contractMethod: functionName, args } = params;\n const calldata = encodeFunctionData<typeof abi, string>({\n abi,\n functionName,\n args,\n });\n return calldata;\n };\n\n // won't be used, but needed for types\n const staticCall = () => {\n throw new Error(\"Not implemented\");\n };\n\n return {\n transactCall,\n staticCall,\n signTypedDataCall: staticCall,\n };\n};\n\n// can be used to POST final data before page is closed\nexport const useFetchOnlySDK = ({\n chainId,\n apiURL,\n}: SDKCreateParams): Partial<ConstructedSDKOutput<PostDeltaOrderFunctions>> => {\n \"use no memo\";\n\n // fetch, unlike axios allows for `keepalive` parameter,\n // so we can use it to keep the request alive a bit after the page is closed.\n // the alternative of using navigator.sendBeacon doesn't work with API because it includes credentials=always\n // which is incompatible with API CORS settings\n const fetcher = useKeepAliveSDKFetcher();\n\n const sdk = useMemo(() => {\n if (!fetcher) return;\n\n return constructPartialSDK(\n {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n },\n constructPostDeltaOrder\n );\n }, [apiURL, chainId, fetcher]);\n\n return {\n appVersion: sdk?.version,\n chainId: sdk?.chainId,\n apiURL: sdk?.apiURL,\n sdk,\n };\n};\n\nconst calldataSDKLogger = getLogger(\"CalldataSDK\");\n\nexport const useCalldataSDK = ({\n chainId,\n apiURL,\n client,\n}: Omit<LimitOrdersSDKCreateParams, \"account\">): Partial<\n ConstructedSDKOutput<\n FillOrderDirectlyFunctions<Hex> &\n PreSignDeltaOrderFunctions<Hex> &\n DeltaTokenModuleFunctions<Hex> &\n BuildDeltaOrderFunctions\n >\n> => {\n \"use no memo\";\n\n const fetcher = useSDKFetcher();\n\n const sdk = useMemo(() => {\n if (!client) return;\n calldataSDKLogger.once.log(\"init sdk\");\n\n const contractCaller = constructCalldataContractCaller();\n\n const SDKconfig = {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n contractCaller,\n };\n\n return constructPartialSDK(\n SDKconfig,\n constructFillOrderDirectly,\n constructPreSignDeltaOrder,\n constructBuildDeltaOrder,\n constructDeltaTokenModule\n );\n }, [apiURL, chainId, client, fetcher]);\n\n return {\n appVersion: sdk?.version,\n chainId: sdk?.chainId,\n apiURL: sdk?.apiURL,\n sdk,\n };\n};\n\ntype ReadOnlyDeltaSDK = Prettify<\n GetDeltaOrdersFunctions &\n GetDeltaPriceFunctions &\n BuildDeltaOrderFunctions &\n PostDeltaOrderFunctions &\n GetBridgeInfoFunctions &\n IsTokenSupportedInDeltaFunctions & { chainId: number }\n>;\n\nexport type DeltaSDK = Prettify<\n ReadOnlyDeltaSDK & SignDeltaOrderFunctions & CancelDeltaOrderFunctions\n>;\n\ntype DeltaSDKCreateParams = SDKCreateParams & {\n client?: MinViemClient;\n};\n\nconst deltaSDKLogger = getLogger(\"DeltaSDK\");\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 fetcher = useSDKFetcher();\n\n const sdk = useMemo(() => {\n deltaSDKLogger.once.log(\"init sdk\");\n const SDKconfig = {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n };\n\n if (!client || !account) {\n return constructPartialSDK(\n SDKconfig,\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructIsTokenSupportedInDelta\n );\n }\n\n const contractCaller = constructViemContractCaller(client, account);\n\n return constructPartialSDK(\n { ...SDKconfig, contractCaller },\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructPostDeltaOrder,\n constructCancelDeltaOrder,\n constructGetBridgeInfo,\n constructIsTokenSupportedInDelta,\n constructSignDeltaOrder,\n constructDeltaTokenModule\n );\n }, [apiURL, chainId, client, account, fetcher]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n"],"names":["useSDKFetcher","apiConfig","useApiConfig","useMemo","constructAxiosFetcher","axios","useKeepAliveSDKFetcher","window","constructFetchFetcher","fetch","keepalive","useMarketSwapSDK","chainId","apiURL","fetcher","sdk","SDKconfig","getApiURL","constructPartialSDK","constructGetRate","constructGetSpender","constructBuildTx","appVersion","version","limitSDKLogger","getLogger","useLimitOrdersSDK","account","client","once","log","constructGetLimitOrders","constructBuildLimitOrder","constructPostLimitOrder","contractCaller","constructViemContractCaller","constructAllLimitOrdersHandlers","constructCalldataContractCaller","transactCall","params","abi","contractMethod","functionName","args","calldata","encodeFunctionData","staticCall","Error","signTypedDataCall","useFetchOnlySDK","constructPostDeltaOrder","calldataSDKLogger","useCalldataSDK","constructFillOrderDirectly","constructPreSignDeltaOrder","constructBuildDeltaOrder","constructDeltaTokenModule","deltaSDKLogger","useDeltaSDK","constructGetDeltaOrders","constructGetDeltaPrice","constructGetBridgeInfo","constructIsTokenSupportedInDelta","constructCancelDeltaOrder","constructSignDeltaOrder"],"mappings":"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"}
1
+ {"version":3,"file":"useSDK.js","sources":["../../src/hooks/useSDK.ts"],"sourcesContent":["import axios from \"axios\";\nimport { useMemo } from \"react\";\n\nimport {\n constructAxiosFetcher,\n constructFetchFetcher,\n constructPartialSDK,\n constructGetSpender,\n constructBuildTx,\n constructAllLimitOrdersHandlers,\n constructGetRate,\n constructGetDeltaPrice,\n constructGetDeltaOrders,\n constructBuildDeltaOrder,\n constructSignDeltaOrder,\n constructPreSignDeltaOrder,\n constructPostDeltaOrder,\n constructCancelDeltaOrder,\n constructGetBridgeInfo,\n constructIsTokenSupportedInDelta,\n constructDeltaTokenModule,\n constructViemContractCaller,\n type LimitOrderHandlers,\n type GetRateFunctions,\n type APIVersion,\n type GetDeltaOrdersFunctions,\n type GetDeltaPriceFunctions,\n type PostDeltaOrderFunctions,\n type BuildDeltaOrderFunctions,\n type SignDeltaOrderFunctions,\n type PreSignDeltaOrderFunctions,\n type CancelDeltaOrderFunctions,\n type GetBridgeInfoFunctions,\n type IsTokenSupportedInDeltaFunctions,\n type BuildTxFunctions,\n type GetSpenderFunctions,\n type MinViemClient,\n constructGetLimitOrders,\n constructBuildLimitOrder,\n constructPostLimitOrder,\n constructFillOrderDirectly,\n type GetLimitOrdersFunctions,\n type BuildLimitOrderFunctions,\n type PostLimitOrderFunctions,\n type FillOrderDirectlyFunctions,\n type ContractCallerFunctions,\n type DeltaTokenModuleFunctions,\n} from \"@velora-dex/sdk\";\nimport { encodeFunctionData, type Address, type Hash, type Hex } from \"viem\";\nimport type { Prettify } from \"ts-essentials\";\nimport { getLogger } from \"@/core/logger\";\nimport { getApiURL } from \"@/lib/constants/urls\";\nimport { useApiConfig } from \"@/core/state/apiConfigAtom\";\n\nfunction useSDKFetcher() {\n \"use no memo\";\n\n const apiConfig = useApiConfig();\n\n return useMemo(() => {\n return constructAxiosFetcher(axios, apiConfig);\n }, [apiConfig]);\n}\n\nfunction useKeepAliveSDKFetcher() {\n \"use no memo\";\n\n const apiConfig = useApiConfig();\n\n return useMemo(() => {\n if (typeof window === \"undefined\") return;\n return constructFetchFetcher(window.fetch, {\n ...apiConfig,\n keepalive: true,\n });\n }, [apiConfig]);\n}\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 fetcher = useSDKFetcher();\n\n const sdk = useMemo(() => {\n const SDKconfig = {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n };\n\n return constructPartialSDK(\n SDKconfig,\n constructGetRate,\n constructGetSpender,\n constructBuildTx\n );\n }, [apiURL, chainId, fetcher]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\ntype LimitOrdersSDKCreateParams = SDKCreateParams & {\n client?: MinViemClient;\n};\n\ntype ReadOnlyLimitOrdersSDK = Prettify<\n GetLimitOrdersFunctions & BuildLimitOrderFunctions & PostLimitOrderFunctions\n>;\n\nexport type LimitOrdersSDK = Prettify<LimitOrderHandlers<Hash>>;\n\nconst limitSDKLogger = getLogger(\"LimitOrdersSDK\");\n\n// can paraswap.fillOrder from a taker address to simulate happy path\n// @TODO check that we always use correct SDK version\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account?: undefined;\n client?: undefined;\n}): ConstructedSDKOutput<ReadOnlyLimitOrdersSDK>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account: Address;\n client: MinViemClient;\n}): ConstructedSDKOutput<LimitOrdersSDK>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams): ConstructedSDKOutput<\n LimitOrdersSDK | ReadOnlyLimitOrdersSDK\n>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams): ConstructedSDKOutput<\n LimitOrdersSDK | ReadOnlyLimitOrdersSDK\n> {\n \"use no memo\";\n\n const fetcher = useSDKFetcher();\n\n const sdk = useMemo(() => {\n limitSDKLogger.once.log(\"init sdk\");\n const SDKconfig = {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n };\n\n if (!client || !account) {\n return constructPartialSDK(\n SDKconfig,\n constructGetLimitOrders,\n constructBuildLimitOrder,\n constructPostLimitOrder\n );\n }\n\n const contractCaller = constructViemContractCaller(client, account);\n\n return constructPartialSDK(\n { ...SDKconfig, contractCaller },\n constructAllLimitOrdersHandlers\n );\n }, [client, account, apiURL, chainId, fetcher]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n\n// ContractCaller that returns Contract[method](args) calldata instead of sending out a transaction\ntype CalldataContractCaller = ContractCallerFunctions<Hex>;\n\nconst constructCalldataContractCaller = (): CalldataContractCaller => {\n const transactCall: CalldataContractCaller[\"transactCall\"] = async (\n params\n ) => {\n const { abi, contractMethod: functionName, args } = params;\n const calldata = encodeFunctionData<typeof abi, string>({\n abi,\n functionName,\n args,\n });\n return calldata;\n };\n\n // won't be used, but needed for types\n const staticCall = () => {\n throw new Error(\"Not implemented\");\n };\n\n return {\n transactCall,\n staticCall,\n signTypedDataCall: staticCall,\n };\n};\n\n// can be used to POST final data before page is closed\nexport const useFetchOnlySDK = ({\n chainId,\n apiURL,\n}: SDKCreateParams): Partial<ConstructedSDKOutput<PostDeltaOrderFunctions>> => {\n \"use no memo\";\n\n // fetch, unlike axios allows for `keepalive` parameter,\n // so we can use it to keep the request alive a bit after the page is closed.\n // the alternative of using navigator.sendBeacon doesn't work with API because it includes credentials=always\n // which is incompatible with API CORS settings\n const fetcher = useKeepAliveSDKFetcher();\n\n const sdk = useMemo(() => {\n if (!fetcher) return;\n\n return constructPartialSDK(\n {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n },\n constructPostDeltaOrder\n );\n }, [apiURL, chainId, fetcher]);\n\n return {\n appVersion: sdk?.version,\n chainId: sdk?.chainId,\n apiURL: sdk?.apiURL,\n sdk,\n };\n};\n\nconst calldataSDKLogger = getLogger(\"CalldataSDK\");\n\nexport const useCalldataSDK = ({\n chainId,\n apiURL,\n client,\n}: Omit<LimitOrdersSDKCreateParams, \"account\">): Partial<\n ConstructedSDKOutput<\n FillOrderDirectlyFunctions<Hex> &\n PreSignDeltaOrderFunctions<Hex> &\n DeltaTokenModuleFunctions<Hex> &\n BuildDeltaOrderFunctions\n >\n> => {\n \"use no memo\";\n\n const fetcher = useSDKFetcher();\n\n const sdk = useMemo(() => {\n if (!client) return;\n calldataSDKLogger.once.log(\"init sdk\");\n\n const contractCaller = constructCalldataContractCaller();\n\n const SDKconfig = {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n contractCaller,\n };\n\n return constructPartialSDK(\n SDKconfig,\n constructFillOrderDirectly,\n constructPreSignDeltaOrder,\n constructBuildDeltaOrder,\n constructDeltaTokenModule\n );\n }, [apiURL, chainId, client, fetcher]);\n\n return {\n appVersion: sdk?.version,\n chainId: sdk?.chainId,\n apiURL: sdk?.apiURL,\n sdk,\n };\n};\n\ntype ReadOnlyDeltaSDK = Prettify<\n GetDeltaOrdersFunctions &\n GetDeltaPriceFunctions &\n BuildDeltaOrderFunctions &\n PostDeltaOrderFunctions &\n GetBridgeInfoFunctions &\n IsTokenSupportedInDeltaFunctions & { chainId: number }\n>;\n\nexport type DeltaSDK = Prettify<\n ReadOnlyDeltaSDK &\n SignDeltaOrderFunctions &\n CancelDeltaOrderFunctions &\n DeltaTokenModuleFunctions<Hash>\n>;\n\ntype DeltaSDKCreateParams = SDKCreateParams & {\n client?: MinViemClient;\n};\n\nconst deltaSDKLogger = getLogger(\"DeltaSDK\");\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 fetcher = useSDKFetcher();\n\n const sdk = useMemo(() => {\n deltaSDKLogger.once.log(\"init sdk\");\n const SDKconfig = {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n };\n\n if (!client || !account) {\n return constructPartialSDK(\n SDKconfig,\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructIsTokenSupportedInDelta\n );\n }\n\n const contractCaller = constructViemContractCaller(client, account);\n\n return constructPartialSDK(\n { ...SDKconfig, contractCaller },\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructPostDeltaOrder,\n constructCancelDeltaOrder,\n constructGetBridgeInfo,\n constructIsTokenSupportedInDelta,\n constructSignDeltaOrder,\n constructDeltaTokenModule\n );\n }, [apiURL, chainId, client, account, fetcher]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n"],"names":["useSDKFetcher","apiConfig","useApiConfig","useMemo","constructAxiosFetcher","axios","useKeepAliveSDKFetcher","window","constructFetchFetcher","fetch","keepalive","useMarketSwapSDK","chainId","apiURL","fetcher","sdk","SDKconfig","getApiURL","constructPartialSDK","constructGetRate","constructGetSpender","constructBuildTx","appVersion","version","limitSDKLogger","getLogger","useLimitOrdersSDK","account","client","once","log","constructGetLimitOrders","constructBuildLimitOrder","constructPostLimitOrder","contractCaller","constructViemContractCaller","constructAllLimitOrdersHandlers","constructCalldataContractCaller","transactCall","params","abi","contractMethod","functionName","args","calldata","encodeFunctionData","staticCall","Error","signTypedDataCall","useFetchOnlySDK","constructPostDeltaOrder","calldataSDKLogger","useCalldataSDK","constructFillOrderDirectly","constructPreSignDeltaOrder","constructBuildDeltaOrder","constructDeltaTokenModule","deltaSDKLogger","useDeltaSDK","constructGetDeltaOrders","constructGetDeltaPrice","constructGetBridgeInfo","constructIsTokenSupportedInDelta","constructCancelDeltaOrder","constructSignDeltaOrder"],"mappings":"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"}