@b3dotfun/sdk 0.0.43 → 0.0.44-alpha.1

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 (35) hide show
  1. package/dist/cjs/anyspend/react/components/AnySpend.js +82 -24
  2. package/dist/cjs/anyspend/react/components/common/OrderDetails.js +2 -7
  3. package/dist/cjs/anyspend/react/components/common/OrderHistoryItem.js +1 -6
  4. package/dist/cjs/anyspend/react/hooks/useAnyspendFlow.d.ts +1 -0
  5. package/dist/cjs/anyspend/react/hooks/useAnyspendFlow.js +3 -3
  6. package/dist/cjs/anyspend/react/hooks/useAnyspendOrderAndTransactions.d.ts +2 -0
  7. package/dist/cjs/anyspend/react/hooks/useAnyspendOrderHistory.d.ts +48 -0
  8. package/dist/cjs/anyspend/types/api.d.ts +15 -20
  9. package/dist/cjs/anyspend/utils/orderPayload.js +0 -4
  10. package/dist/cjs/shared/react/hooks/useCurrencyConversion.d.ts +1 -1
  11. package/dist/cjs/shared/react/hooks/useCurrencyConversion.js +30 -12
  12. package/dist/esm/anyspend/react/components/AnySpend.js +82 -24
  13. package/dist/esm/anyspend/react/components/common/OrderDetails.js +2 -7
  14. package/dist/esm/anyspend/react/components/common/OrderHistoryItem.js +1 -6
  15. package/dist/esm/anyspend/react/hooks/useAnyspendFlow.d.ts +1 -0
  16. package/dist/esm/anyspend/react/hooks/useAnyspendFlow.js +3 -3
  17. package/dist/esm/anyspend/react/hooks/useAnyspendOrderAndTransactions.d.ts +2 -0
  18. package/dist/esm/anyspend/react/hooks/useAnyspendOrderHistory.d.ts +48 -0
  19. package/dist/esm/anyspend/types/api.d.ts +15 -20
  20. package/dist/esm/anyspend/utils/orderPayload.js +0 -4
  21. package/dist/esm/shared/react/hooks/useCurrencyConversion.d.ts +1 -1
  22. package/dist/esm/shared/react/hooks/useCurrencyConversion.js +30 -12
  23. package/dist/types/anyspend/react/hooks/useAnyspendFlow.d.ts +1 -0
  24. package/dist/types/anyspend/react/hooks/useAnyspendOrderAndTransactions.d.ts +2 -0
  25. package/dist/types/anyspend/react/hooks/useAnyspendOrderHistory.d.ts +48 -0
  26. package/dist/types/anyspend/types/api.d.ts +15 -20
  27. package/dist/types/shared/react/hooks/useCurrencyConversion.d.ts +1 -1
  28. package/package.json +1 -1
  29. package/src/anyspend/react/components/AnySpend.tsx +93 -28
  30. package/src/anyspend/react/components/common/OrderDetails.tsx +3 -9
  31. package/src/anyspend/react/components/common/OrderHistoryItem.tsx +1 -7
  32. package/src/anyspend/react/hooks/useAnyspendFlow.ts +3 -3
  33. package/src/anyspend/types/api.ts +15 -20
  34. package/src/anyspend/utils/orderPayload.ts +0 -4
  35. package/src/shared/react/hooks/useCurrencyConversion.ts +39 -12
@@ -59,11 +59,27 @@ function AnySpendInner({ destinationTokenAddress, destinationTokenChainId, mode
59
59
  const lastUrlUpdate = (0, react_4.useRef)(null);
60
60
  // Track if onSuccess has been called for the current order
61
61
  const onSuccessCalled = (0, react_4.useRef)(false);
62
+ // Track animation direction for TransitionPanel
63
+ const animationDirection = (0, react_4.useRef)(null);
64
+ // Track previous panel for proper back navigation
65
+ const previousPanel = (0, react_4.useRef)(PanelView.MAIN);
62
66
  const [activeTab, setActiveTab] = (0, react_4.useState)(defaultActiveTab);
63
67
  const [orderId, setOrderId] = (0, react_4.useState)(loadOrder);
64
68
  const { orderAndTransactions: oat, getOrderAndTransactionsError } = (0, react_1.useAnyspendOrderAndTransactions)(orderId);
65
69
  !!getOrderAndTransactionsError && console.log("getOrderAndTransactionsError", getOrderAndTransactionsError);
66
70
  const [activePanel, setActivePanel] = (0, react_4.useState)(loadOrder ? PanelView.ORDER_DETAILS : PanelView.MAIN);
71
+ // Helper functions to navigate with animation direction
72
+ const navigateToPanel = (0, react_4.useCallback)((panel, direction = "forward") => {
73
+ previousPanel.current = activePanel;
74
+ animationDirection.current = direction;
75
+ setActivePanel(panel);
76
+ }, [activePanel]);
77
+ const navigateBack = (0, react_4.useCallback)(() => {
78
+ animationDirection.current = "back";
79
+ // Navigate back to previous panel or default to MAIN
80
+ const targetPanel = previousPanel.current !== activePanel ? previousPanel.current : PanelView.MAIN;
81
+ setActivePanel(targetPanel);
82
+ }, [activePanel]);
67
83
  const [customRecipients, setCustomRecipients] = (0, react_4.useState)([]);
68
84
  // Add state for selected payment method
69
85
  const [selectedCryptoPaymentMethod, setSelectedCryptoPaymentMethod] = (0, react_4.useState)(CryptoPaymentMethod_1.CryptoPaymentMethodType.NONE);
@@ -412,7 +428,7 @@ function AnySpendInner({ destinationTokenAddress, destinationTokenChainId, mode
412
428
  const orderId = data.data.id;
413
429
  setOrderId(orderId);
414
430
  // setNewRecipientAddress("");
415
- setActivePanel(PanelView.ORDER_DETAILS);
431
+ navigateToPanel(PanelView.ORDER_DETAILS, "forward");
416
432
  // Debug: Check payment method before setting URL
417
433
  console.log("Creating order - selectedCryptoPaymentMethod:", selectedCryptoPaymentMethod);
418
434
  // Add orderId and payment method to URL for persistence
@@ -438,7 +454,7 @@ function AnySpendInner({ destinationTokenAddress, destinationTokenChainId, mode
438
454
  onSuccess: data => {
439
455
  const orderId = data.data.id;
440
456
  setOrderId(orderId);
441
- setActivePanel(PanelView.ORDER_DETAILS);
457
+ navigateToPanel(PanelView.ORDER_DETAILS, "forward");
442
458
  // Add orderId and payment method to URL for persistence
443
459
  const params = new URLSearchParams(searchParams.toString());
444
460
  params.set("orderId", orderId);
@@ -501,7 +517,7 @@ function AnySpendInner({ destinationTokenAddress, destinationTokenChainId, mode
501
517
  if (btnInfo.disable)
502
518
  return;
503
519
  if (!recipientAddress) {
504
- setActivePanel(PanelView.RECIPIENT_SELECTION);
520
+ navigateToPanel(PanelView.RECIPIENT_SELECTION, "forward");
505
521
  return;
506
522
  }
507
523
  try {
@@ -510,7 +526,7 @@ function AnySpendInner({ destinationTokenAddress, destinationTokenChainId, mode
510
526
  if (activeTab === "fiat") {
511
527
  // If no fiat payment method selected, show payment method selection
512
528
  if (selectedFiatPaymentMethod === FiatPaymentMethod_1.FiatPaymentMethod.NONE) {
513
- setActivePanel(PanelView.FIAT_PAYMENT_METHOD);
529
+ navigateToPanel(PanelView.FIAT_PAYMENT_METHOD, "forward");
514
530
  return;
515
531
  }
516
532
  // If payment method is selected, create order directly
@@ -521,7 +537,7 @@ function AnySpendInner({ destinationTokenAddress, destinationTokenChainId, mode
521
537
  // If no payment method selected, show payment method selection
522
538
  if (selectedCryptoPaymentMethod === CryptoPaymentMethod_1.CryptoPaymentMethodType.NONE) {
523
539
  console.log("No payment method selected, showing selection panel");
524
- setActivePanel(PanelView.CRYPTO_PAYMENT_METHOD);
540
+ navigateToPanel(PanelView.CRYPTO_PAYMENT_METHOD, "forward");
525
541
  return;
526
542
  }
527
543
  // If payment method is selected, create order with payment method info
@@ -541,7 +557,7 @@ function AnySpendInner({ destinationTokenAddress, destinationTokenChainId, mode
541
557
  };
542
558
  const onClickHistory = () => {
543
559
  setOrderId(undefined);
544
- setActivePanel(PanelView.HISTORY);
560
+ navigateToPanel(PanelView.HISTORY, "forward");
545
561
  // Remove orderId and paymentMethod from URL when going back to history
546
562
  const params = new URLSearchParams(searchParams.toString());
547
563
  params.delete("orderId");
@@ -654,8 +670,8 @@ function AnySpendInner({ destinationTokenAddress, destinationTokenChainId, mode
654
670
  }
655
671
  }, [searchParams, loadOrder]);
656
672
  const onSelectOrder = (selectedOrderId) => {
657
- setActivePanel(PanelView.MAIN);
658
673
  setOrderId(selectedOrderId);
674
+ navigateToPanel(PanelView.ORDER_DETAILS, "forward");
659
675
  // Update URL with the new orderId and preserve existing parameters
660
676
  const params = new URLSearchParams(searchParams.toString());
661
677
  params.set("orderId", selectedOrderId);
@@ -675,13 +691,49 @@ function AnySpendInner({ destinationTokenAddress, destinationTokenChainId, mode
675
691
  (0, react_4.useEffect)(() => {
676
692
  window.scrollTo({ top: 0, behavior: "smooth" });
677
693
  }, [activePanel]);
678
- const historyView = ((0, jsx_runtime_1.jsx)("div", { className: "mx-auto flex w-[560px] max-w-full flex-col items-center", children: (0, jsx_runtime_1.jsx)(OrderHistory_1.OrderHistory, { mode: mode, onBack: () => setActivePanel(PanelView.MAIN), onSelectOrder: onSelectOrder }) }));
694
+ // Handle browser back button for recipient selection and payment method views
695
+ (0, react_4.useEffect)(() => {
696
+ // Push a new history state when navigating to specific panels
697
+ if (activePanel === PanelView.RECIPIENT_SELECTION) {
698
+ window.history.pushState({ panel: "recipient-selection" }, "");
699
+ }
700
+ else if (activePanel === PanelView.CRYPTO_PAYMENT_METHOD) {
701
+ window.history.pushState({ panel: "crypto-payment-method" }, "");
702
+ }
703
+ else if (activePanel === PanelView.FIAT_PAYMENT_METHOD) {
704
+ window.history.pushState({ panel: "fiat-payment-method" }, "");
705
+ }
706
+ // Listen for popstate event (browser back button)
707
+ const handlePopState = (event) => {
708
+ if (activePanel === PanelView.RECIPIENT_SELECTION ||
709
+ activePanel === PanelView.CRYPTO_PAYMENT_METHOD ||
710
+ activePanel === PanelView.FIAT_PAYMENT_METHOD) {
711
+ // User pressed back while on these panels
712
+ event.preventDefault();
713
+ navigateBack();
714
+ }
715
+ };
716
+ window.addEventListener("popstate", handlePopState);
717
+ return () => {
718
+ window.removeEventListener("popstate", handlePopState);
719
+ };
720
+ }, [activePanel, navigateBack]);
721
+ const historyView = ((0, jsx_runtime_1.jsx)("div", { className: "mx-auto flex w-[560px] max-w-full flex-col items-center", children: (0, jsx_runtime_1.jsx)(OrderHistory_1.OrderHistory, { mode: mode, onBack: navigateBack, onSelectOrder: onSelectOrder }) }));
679
722
  const orderDetailsView = ((0, jsx_runtime_1.jsx)("div", { className: "mx-auto w-[460px] max-w-full", children: (0, jsx_runtime_1.jsx)("div", { className: "relative flex flex-col gap-4", children: oat && ((0, jsx_runtime_1.jsx)(OrderDetails_1.OrderDetails, { mode: mode, order: oat.data.order, depositTxs: oat.data.depositTxs, relayTxs: oat.data.relayTxs, executeTx: oat.data.executeTx, refundTxs: oat.data.refundTxs, selectedCryptoPaymentMethod: selectedCryptoPaymentMethod, onPaymentMethodChange: setSelectedCryptoPaymentMethod, onBack: () => {
680
723
  setOrderId(undefined);
681
- setActivePanel(PanelView.MAIN);
724
+ navigateBack();
682
725
  setSelectedCryptoPaymentMethod(CryptoPaymentMethod_1.CryptoPaymentMethodType.NONE); // Reset payment method when going back
683
726
  } })) }) }));
684
- const mainView = ((0, jsx_runtime_1.jsxs)("div", { className: "mx-auto flex w-[460px] max-w-full flex-col items-center gap-2", children: [isBuyMode && ((0, jsx_runtime_1.jsxs)("div", { className: "mb-4 flex flex-col items-center gap-3 text-center", children: [selectedDstToken.metadata?.logoURI && ((0, jsx_runtime_1.jsx)("div", { className: "relative", children: (0, jsx_runtime_1.jsx)("img", { src: selectedDstToken.metadata.logoURI, alt: selectedDstToken.symbol, className: "border-as-stroke h-12 w-12 rounded-full border-2 shadow-md" }) })), (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsxs)("h1", { className: "text-as-primary text-xl font-bold", children: ["Buy ", selectedDstToken.symbol] }) })] })), (0, jsx_runtime_1.jsx)(TabSection_1.TabSection, { activeTab: activeTab, setActiveTab: setActiveTab, setSelectedCryptoPaymentMethod: setSelectedCryptoPaymentMethod, setSelectedFiatPaymentMethod: setSelectedFiatPaymentMethod }), (0, jsx_runtime_1.jsxs)("div", { className: "relative flex w-full max-w-[calc(100vw-32px)] flex-col gap-2", children: [activeTab === "crypto" ? ((0, jsx_runtime_1.jsx)(CryptoPaySection_1.CryptoPaySection, { selectedSrcChainId: selectedSrcChainId, setSelectedSrcChainId: setSelectedSrcChainId, selectedSrcToken: selectedSrcToken, setSelectedSrcToken: setSelectedSrcToken, srcAmount: srcAmount, setSrcAmount: setSrcAmount, setIsSrcInputDirty: setIsSrcInputDirty, selectedCryptoPaymentMethod: selectedCryptoPaymentMethod, onSelectCryptoPaymentMethod: () => setActivePanel(PanelView.CRYPTO_PAYMENT_METHOD), anyspendQuote: anyspendQuote, onTokenSelect: onTokenSelect })) : ((0, jsx_runtime_1.jsx)(react_3.motion.div, { initial: { opacity: 0, y: 20, filter: "blur(10px)" }, animate: { opacity: 1, y: 0, filter: "blur(0px)" }, transition: { duration: 0.3, delay: 0, ease: "easeInOut" }, children: (0, jsx_runtime_1.jsx)(PanelOnramp_1.PanelOnramp, { srcAmountOnRamp: srcAmountOnRamp, setSrcAmountOnRamp: setSrcAmountOnRamp, selectedPaymentMethod: selectedFiatPaymentMethod, setActivePanel: setActivePanel, _recipientAddress: recipientAddress, destinationToken: selectedDstToken, destinationChainId: selectedDstChainId, destinationAmount: dstAmount, onDestinationTokenChange: setSelectedDstToken, onDestinationChainChange: setSelectedDstChainId, fiatPaymentMethodIndex: PanelView.FIAT_PAYMENT_METHOD, recipientSelectionPanelIndex: PanelView.RECIPIENT_SELECTION, hideDstToken: isBuyMode, anyspendQuote: anyspendQuote, onShowPointsDetail: () => setActivePanel(PanelView.POINTS_DETAIL), customUsdInputValues: customUsdInputValues }) })), (0, jsx_runtime_1.jsx)(react_2.Button, { variant: "ghost", className: (0, cn_1.cn)("border-as-stroke bg-as-surface-primary absolute left-1/2 top-1/2 z-10 h-10 w-10 -translate-x-1/2 -translate-y-1/2 rounded-xl border-2 sm:h-8 sm:w-8 sm:rounded-xl", isBuyMode && "top-[calc(50%+56px)] cursor-default", activeTab === "fiat" && "hidden"), onClick: () => {
727
+ const mainView = ((0, jsx_runtime_1.jsxs)("div", { className: "mx-auto flex w-[460px] max-w-full flex-col items-center gap-2", children: [isBuyMode && ((0, jsx_runtime_1.jsxs)("div", { className: "mb-4 flex flex-col items-center gap-3 text-center", children: [selectedDstToken.metadata?.logoURI && ((0, jsx_runtime_1.jsx)("div", { className: "relative", children: (0, jsx_runtime_1.jsx)("img", { src: selectedDstToken.metadata.logoURI, alt: selectedDstToken.symbol, className: "border-as-stroke h-12 w-12 rounded-full border-2 shadow-md" }) })), (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsxs)("h1", { className: "text-as-primary text-xl font-bold", children: ["Buy ", selectedDstToken.symbol] }) })] })), (0, jsx_runtime_1.jsx)(TabSection_1.TabSection, { activeTab: activeTab, setActiveTab: setActiveTab, setSelectedCryptoPaymentMethod: setSelectedCryptoPaymentMethod, setSelectedFiatPaymentMethod: setSelectedFiatPaymentMethod }), (0, jsx_runtime_1.jsxs)("div", { className: "relative flex w-full max-w-[calc(100vw-32px)] flex-col gap-2", children: [activeTab === "crypto" ? ((0, jsx_runtime_1.jsx)(CryptoPaySection_1.CryptoPaySection, { selectedSrcChainId: selectedSrcChainId, setSelectedSrcChainId: setSelectedSrcChainId, selectedSrcToken: selectedSrcToken, setSelectedSrcToken: setSelectedSrcToken, srcAmount: srcAmount, setSrcAmount: setSrcAmount, setIsSrcInputDirty: setIsSrcInputDirty, selectedCryptoPaymentMethod: selectedCryptoPaymentMethod, onSelectCryptoPaymentMethod: () => navigateToPanel(PanelView.CRYPTO_PAYMENT_METHOD, "forward"), anyspendQuote: anyspendQuote, onTokenSelect: onTokenSelect })) : ((0, jsx_runtime_1.jsx)(react_3.motion.div, { initial: { opacity: 0, y: 20, filter: "blur(10px)" }, animate: { opacity: 1, y: 0, filter: "blur(0px)" }, transition: { duration: 0.3, delay: 0, ease: "easeInOut" }, children: (0, jsx_runtime_1.jsx)(PanelOnramp_1.PanelOnramp, { srcAmountOnRamp: srcAmountOnRamp, setSrcAmountOnRamp: setSrcAmountOnRamp, selectedPaymentMethod: selectedFiatPaymentMethod, setActivePanel: (panelIndex) => {
728
+ // Map panel index to navigation with direction
729
+ const panelsWithForwardNav = [PanelView.FIAT_PAYMENT_METHOD, PanelView.RECIPIENT_SELECTION];
730
+ if (panelsWithForwardNav.includes(panelIndex)) {
731
+ navigateToPanel(panelIndex, "forward");
732
+ }
733
+ else {
734
+ setActivePanel(panelIndex);
735
+ }
736
+ }, _recipientAddress: recipientAddress, destinationToken: selectedDstToken, destinationChainId: selectedDstChainId, destinationAmount: dstAmount, onDestinationTokenChange: setSelectedDstToken, onDestinationChainChange: setSelectedDstChainId, fiatPaymentMethodIndex: PanelView.FIAT_PAYMENT_METHOD, recipientSelectionPanelIndex: PanelView.RECIPIENT_SELECTION, hideDstToken: isBuyMode, anyspendQuote: anyspendQuote, onShowPointsDetail: () => navigateToPanel(PanelView.POINTS_DETAIL, "forward"), customUsdInputValues: customUsdInputValues }) })), (0, jsx_runtime_1.jsx)(react_2.Button, { variant: "ghost", className: (0, cn_1.cn)("border-as-stroke bg-as-surface-primary absolute left-1/2 top-1/2 z-10 h-10 w-10 -translate-x-1/2 -translate-y-1/2 rounded-xl border-2 sm:h-8 sm:w-8 sm:rounded-xl", isBuyMode && "top-[calc(50%+56px)] cursor-default", activeTab === "fiat" && "hidden"), onClick: () => {
685
737
  if (activeTab === "fiat" || isBuyMode) {
686
738
  return;
687
739
  }
@@ -700,13 +752,13 @@ function AnySpendInner({ destinationTokenAddress, destinationTokenChainId, mode
700
752
  const tempDstAmount = dstAmount;
701
753
  setSrcAmount(tempDstAmount);
702
754
  setDstAmount(tempSrcAmount);
703
- }, children: (0, jsx_runtime_1.jsx)("div", { className: "relative flex items-center justify-center transition-opacity", children: (0, jsx_runtime_1.jsx)(lucide_react_1.ArrowDown, { className: "text-as-primary/50 h-5 w-5" }) }) }), activeTab === "crypto" && ((0, jsx_runtime_1.jsx)(CryptoReceiveSection_1.CryptoReceiveSection, { isDepositMode: false, isBuyMode: isBuyMode, selectedRecipientAddress: recipientAddress, recipientName: recipientName || undefined, onSelectRecipient: () => setActivePanel(PanelView.RECIPIENT_SELECTION), dstAmount: dstAmount, dstToken: selectedDstToken, selectedDstChainId: selectedDstChainId, setSelectedDstChainId: setSelectedDstChainId, setSelectedDstToken: setSelectedDstToken, onChangeDstAmount: value => {
755
+ }, children: (0, jsx_runtime_1.jsx)("div", { className: "relative flex items-center justify-center transition-opacity", children: (0, jsx_runtime_1.jsx)(lucide_react_1.ArrowDown, { className: "text-as-primary/50 h-5 w-5" }) }) }), activeTab === "crypto" && ((0, jsx_runtime_1.jsx)(CryptoReceiveSection_1.CryptoReceiveSection, { isDepositMode: false, isBuyMode: isBuyMode, selectedRecipientAddress: recipientAddress, recipientName: recipientName || undefined, onSelectRecipient: () => navigateToPanel(PanelView.RECIPIENT_SELECTION, "forward"), dstAmount: dstAmount, dstToken: selectedDstToken, selectedDstChainId: selectedDstChainId, setSelectedDstChainId: setSelectedDstChainId, setSelectedDstToken: setSelectedDstToken, onChangeDstAmount: value => {
704
756
  setIsSrcInputDirty(false);
705
757
  setDstAmount(value);
706
- }, anyspendQuote: anyspendQuote, onShowPointsDetail: () => setActivePanel(PanelView.POINTS_DETAIL) }))] }), (0, jsx_runtime_1.jsx)(ErrorSection_1.ErrorSection, { error: getAnyspendQuoteError }), (0, jsx_runtime_1.jsxs)(react_3.motion.div, { initial: { opacity: 0, y: 20, filter: "blur(10px)" }, animate: { opacity: 1, y: 0, filter: "blur(0px)" }, transition: { duration: 0.3, delay: 0.2, ease: "easeInOut" }, className: (0, cn_1.cn)("mt-4 flex w-full max-w-[460px] flex-col gap-2", getAnyspendQuoteError && "mt-0"), children: [(0, jsx_runtime_1.jsx)(react_2.ShinyButton, { accentColor: "hsl(var(--as-brand))", disabled: btnInfo.disable, onClick: onMainButtonClick, className: (0, cn_1.cn)("as-main-button relative w-full", btnInfo.error ? "!bg-as-red" : btnInfo.disable ? "!bg-as-on-surface-2" : "!bg-as-brand"), textClassName: (0, cn_1.cn)(btnInfo.error ? "text-white" : btnInfo.disable ? "text-as-secondary" : "text-white"), children: btnInfo.text }), !hideTransactionHistoryButton && (globalAddress || recipientAddress) ? ((0, jsx_runtime_1.jsxs)(react_2.Button, { variant: "link", onClick: onClickHistory, className: "text-as-primary/50 hover:text-as-primary flex items-center gap-1 transition-colors", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.HistoryIcon, { className: "h-4 w-4" }), " ", (0, jsx_runtime_1.jsx)("span", { className: "pr-4", children: "Transaction History" })] })) : null] })] }));
758
+ }, anyspendQuote: anyspendQuote, onShowPointsDetail: () => navigateToPanel(PanelView.POINTS_DETAIL, "forward") }))] }), (0, jsx_runtime_1.jsx)(ErrorSection_1.ErrorSection, { error: getAnyspendQuoteError }), (0, jsx_runtime_1.jsxs)(react_3.motion.div, { initial: { opacity: 0, y: 20, filter: "blur(10px)" }, animate: { opacity: 1, y: 0, filter: "blur(0px)" }, transition: { duration: 0.3, delay: 0.2, ease: "easeInOut" }, className: (0, cn_1.cn)("mt-4 flex w-full max-w-[460px] flex-col gap-2", getAnyspendQuoteError && "mt-0"), children: [(0, jsx_runtime_1.jsx)(react_2.ShinyButton, { accentColor: "hsl(var(--as-brand))", disabled: btnInfo.disable, onClick: onMainButtonClick, className: (0, cn_1.cn)("as-main-button relative w-full", btnInfo.error ? "!bg-as-red" : btnInfo.disable ? "!bg-as-on-surface-2" : "!bg-as-brand"), textClassName: (0, cn_1.cn)(btnInfo.error ? "text-white" : btnInfo.disable ? "text-as-secondary" : "text-white"), children: btnInfo.text }), !hideTransactionHistoryButton && (globalAddress || recipientAddress) ? ((0, jsx_runtime_1.jsxs)(react_2.Button, { variant: "link", onClick: onClickHistory, className: "text-as-primary/50 hover:text-as-primary flex items-center gap-1 transition-colors", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.HistoryIcon, { className: "h-4 w-4" }), " ", (0, jsx_runtime_1.jsx)("span", { className: "pr-4", children: "Transaction History" })] })) : null] })] }));
707
759
  const onrampPaymentView = ((0, jsx_runtime_1.jsx)(PanelOnrampPayment_1.PanelOnrampPayment, { srcAmountOnRamp: srcAmountOnRamp, recipientName: recipientName || undefined, recipientAddress: recipientAddress, isBuyMode: isBuyMode, destinationTokenChainId: destinationTokenChainId, destinationTokenAddress: destinationTokenAddress, selectedDstChainId: selectedDstChainId, selectedDstToken: selectedDstToken, orderType: "swap", anyspendQuote: anyspendQuote, globalAddress: globalAddress, onOrderCreated: orderId => {
708
760
  setOrderId(orderId);
709
- setActivePanel(PanelView.ORDER_DETAILS);
761
+ navigateToPanel(PanelView.ORDER_DETAILS, "forward");
710
762
  // Add orderId and payment method to URL for persistence
711
763
  const params = new URLSearchParams(searchParams.toString()); // Preserve existing params
712
764
  params.set("orderId", orderId);
@@ -718,20 +770,20 @@ function AnySpendInner({ destinationTokenAddress, destinationTokenChainId, mode
718
770
  params.set("paymentMethod", selectedCryptoPaymentMethod);
719
771
  }
720
772
  router.push(`${window.location.pathname}?${params.toString()}`);
721
- }, onBack: () => setActivePanel(PanelView.MAIN), recipientEnsName: globalWallet?.ensName, recipientImageUrl: globalWallet?.meta?.icon }));
722
- const recipientSelectionView = ((0, jsx_runtime_1.jsx)(RecipientSelection_1.RecipientSelection, { initialValue: recipientAddress || "", onBack: () => setActivePanel(PanelView.MAIN), onConfirm: address => {
773
+ }, onBack: navigateBack, recipientEnsName: globalWallet?.ensName, recipientImageUrl: globalWallet?.meta?.icon }));
774
+ const recipientSelectionView = ((0, jsx_runtime_1.jsx)(RecipientSelection_1.RecipientSelection, { initialValue: recipientAddress || "", onBack: navigateBack, onConfirm: address => {
723
775
  setRecipientAddress(address);
724
- setActivePanel(PanelView.MAIN);
776
+ navigateBack();
725
777
  } }));
726
- const cryptoPaymentMethodView = ((0, jsx_runtime_1.jsx)(CryptoPaymentMethod_1.CryptoPaymentMethod, { globalAddress: globalAddress, globalWallet: globalWallet, selectedPaymentMethod: selectedCryptoPaymentMethod, setSelectedPaymentMethod: setSelectedCryptoPaymentMethod, isCreatingOrder: isCreatingOrder, onBack: () => setActivePanel(PanelView.MAIN), onSelectPaymentMethod: (method) => {
778
+ const cryptoPaymentMethodView = ((0, jsx_runtime_1.jsx)(CryptoPaymentMethod_1.CryptoPaymentMethod, { globalAddress: globalAddress, globalWallet: globalWallet, selectedPaymentMethod: selectedCryptoPaymentMethod, setSelectedPaymentMethod: setSelectedCryptoPaymentMethod, isCreatingOrder: isCreatingOrder, onBack: navigateBack, onSelectPaymentMethod: (method) => {
727
779
  setSelectedCryptoPaymentMethod(method);
728
- setActivePanel(PanelView.MAIN);
780
+ navigateBack();
729
781
  } }));
730
- const fiatPaymentMethodView = ((0, jsx_runtime_1.jsx)(FiatPaymentMethod_1.FiatPaymentMethodComponent, { selectedPaymentMethod: selectedFiatPaymentMethod, setSelectedPaymentMethod: setSelectedFiatPaymentMethod, onBack: () => setActivePanel(PanelView.MAIN), onSelectPaymentMethod: (method) => {
782
+ const fiatPaymentMethodView = ((0, jsx_runtime_1.jsx)(FiatPaymentMethod_1.FiatPaymentMethodComponent, { selectedPaymentMethod: selectedFiatPaymentMethod, setSelectedPaymentMethod: setSelectedFiatPaymentMethod, onBack: navigateBack, onSelectPaymentMethod: (method) => {
731
783
  setSelectedFiatPaymentMethod(method);
732
- setActivePanel(PanelView.MAIN); // Go back to main panel to show updated pricing
784
+ navigateBack(); // Go back to main panel to show updated pricing
733
785
  }, srcAmountOnRamp: srcAmountOnRamp }));
734
- const pointsDetailView = ((0, jsx_runtime_1.jsx)(PointsDetailPanel_1.PointsDetailPanel, { pointsAmount: anyspendQuote?.data?.pointsAmount || 0, onBack: () => setActivePanel(PanelView.MAIN) }));
786
+ const pointsDetailView = ((0, jsx_runtime_1.jsx)(PointsDetailPanel_1.PointsDetailPanel, { pointsAmount: anyspendQuote?.data?.pointsAmount || 0, onBack: navigateBack }));
735
787
  // Add tabs to the main component when no order is loaded
736
788
  return ((0, jsx_runtime_1.jsx)(react_2.StyleRoot, { children: (0, jsx_runtime_1.jsx)("div", { className: (0, cn_1.cn)("anyspend-container font-inter mx-auto w-full max-w-[460px]", mode === "page" &&
737
789
  "bg-as-surface-primary border-as-border-secondary overflow-hidden rounded-2xl border shadow-xl"), children: (0, jsx_runtime_1.jsx)(react_2.TransitionPanel, { activeIndex: orderId
@@ -742,10 +794,16 @@ function AnySpendInner({ destinationTokenAddress, destinationTokenChainId, mode
742
794
  ? PanelView.MAIN
743
795
  : activePanel, className: (0, cn_1.cn)("rounded-2xl", {
744
796
  "mt-0": mode === "modal",
745
- }), variants: {
746
- enter: { x: 300, opacity: 0 },
797
+ }), custom: animationDirection.current, variants: {
798
+ enter: direction => ({
799
+ x: direction === "back" ? -300 : 300,
800
+ opacity: 0,
801
+ }),
747
802
  center: { x: 0, opacity: 1 },
748
- exit: { x: -300, opacity: 0 },
803
+ exit: direction => ({
804
+ x: direction === "back" ? 300 : -300,
805
+ opacity: 0,
806
+ }),
749
807
  }, transition: { type: "spring", stiffness: 300, damping: 30 }, children: [
750
808
  (0, jsx_runtime_1.jsx)("div", { className: (0, cn_1.cn)(mode === "page" && "p-6"), children: mainView }, "main-view"),
751
809
  (0, jsx_runtime_1.jsx)("div", { className: (0, cn_1.cn)(mode === "page" && "p-6"), children: historyView }, "history-view"),
@@ -280,12 +280,7 @@ exports.OrderDetails = (0, react_4.memo)(function OrderDetails({ mode = "modal",
280
280
  ? "0"
281
281
  : order.payload.expectedDstAmount.toString();
282
282
  const formattedExpectedDstAmount = (0, number_1.formatTokenAmount)(BigInt(expectedDstAmount), dstToken.decimals);
283
- const actualDstAmount = order.type === "mint_nft" ||
284
- order.type === "join_tournament" ||
285
- order.type === "fund_tournament" ||
286
- order.type === "custom"
287
- ? undefined
288
- : order.payload.actualDstAmount;
283
+ const actualDstAmount = order.settlement?.actualDstAmount;
289
284
  const formattedActualDstAmount = actualDstAmount
290
285
  ? (0, number_1.formatTokenAmount)(BigInt(actualDstAmount), dstToken.decimals)
291
286
  : undefined;
@@ -487,7 +482,7 @@ exports.OrderDetails = (0, react_4.memo)(function OrderDetails({ mode = "modal",
487
482
  ? "Funding Tournament"
488
483
  : "Processing Transaction", chainId: order.srcChain, tx: null, isProcessing: true, delay: 0.5 })) : ((0, jsx_runtime_1.jsx)(TransactionDetails, { title: order.onrampMetadata?.vendor === "stripe-web2"
489
484
  ? `Waiting for payment`
490
- : `Waiting for deposit ${formattedDepositDeficit} ${srcToken.symbol}`, chainId: order.srcChain, tx: null, isProcessing: true, delay: 0.5 }))] }) })] }) }), !depositEnoughAmount && order.status !== "expired" && ((0, jsx_runtime_1.jsx)(InsufficientDepositPayment_1.InsufficientDepositPayment, { order: order, srcToken: srcToken, depositDeficit: depositDeficit, phantomWalletAddress: phantomWalletAddress, txLoading: txLoading, isSwitchingOrExecuting: isSwitchingOrExecuting, onPayment: handlePayment }))] }));
485
+ : `Waiting for deposit ${formattedDepositDeficit} ${srcToken.symbol}`, chainId: order.srcChain, tx: null, isProcessing: true, delay: 0.5 }))] }) })] }) }), depositTxs?.length > 0 && !depositEnoughAmount && order.status === "scanning_deposit_transaction" && ((0, jsx_runtime_1.jsx)(InsufficientDepositPayment_1.InsufficientDepositPayment, { order: order, srcToken: srcToken, depositDeficit: depositDeficit, phantomWalletAddress: phantomWalletAddress, txLoading: txLoading, isSwitchingOrExecuting: isSwitchingOrExecuting, onPayment: handlePayment }))] }));
491
486
  }
492
487
  return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(OrderStatus_1.OrderStatus, { order: order, selectedCryptoPaymentMethod: effectiveCryptoPaymentMethod }), statusDisplay === "processing" && ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: order.onrampMetadata ? ((0, jsx_runtime_1.jsx)(PaymentVendorUI_1.default, { order: order, dstTokenSymbol: dstToken.symbol })) : effectiveCryptoPaymentMethod === CryptoPaymentMethod_1.CryptoPaymentMethodType.CONNECT_WALLET ||
493
488
  effectiveCryptoPaymentMethod === CryptoPaymentMethod_1.CryptoPaymentMethodType.GLOBAL_WALLET ? ((0, jsx_runtime_1.jsx)(ConnectWalletPayment_1.default, { order: order, onPayment: handlePayment, onCancel: handleBack, txLoading: txLoading, isSwitchingOrExecuting: isSwitchingOrExecuting, phantomWalletAddress: phantomWalletAddress, tournament: tournament, nft: nft, cryptoPaymentMethod: effectiveCryptoPaymentMethod, onPaymentMethodChange: onPaymentMethodChange })) : effectiveCryptoPaymentMethod === CryptoPaymentMethod_1.CryptoPaymentMethodType.TRANSFER_CRYPTO ? (
@@ -16,12 +16,7 @@ function OrderHistoryItem({ order, onSelectOrder, mode }) {
16
16
  const nft = order.type === "mint_nft" ? order.metadata.nft : undefined;
17
17
  const tournament = order.type === "join_tournament" || order.type === "fund_tournament" ? order.metadata.tournament : undefined;
18
18
  const dstToken = order.metadata.dstToken;
19
- const actualDstAmount = order.type === "mint_nft" ||
20
- order.type === "join_tournament" ||
21
- order.type === "fund_tournament" ||
22
- order.type === "custom"
23
- ? undefined
24
- : order.payload.actualDstAmount;
19
+ const actualDstAmount = order.settlement?.actualDstAmount;
25
20
  const expectedDstAmount = order.type === "mint_nft" ||
26
21
  order.type === "join_tournament" ||
27
22
  order.type === "fund_tournament" ||
@@ -36,6 +36,7 @@ export declare function useAnyspendFlow({ paymentType, recipientAddress, loadOrd
36
36
  relayTxs: components["schemas"]["RelayTx"][];
37
37
  executeTx: components["schemas"]["ExecuteTx"] | null;
38
38
  refundTxs: components["schemas"]["RefundTx"][];
39
+ points: number | null;
39
40
  };
40
41
  statusCode: number;
41
42
  } | undefined;
@@ -192,8 +192,8 @@ function useAnyspendFlow({ paymentType = "crypto", recipientAddress, loadOrder,
192
192
  // Handle order completion
193
193
  (0, react_3.useEffect)(() => {
194
194
  if (oat?.data?.order.status === "executed") {
195
- // get the actualDstAmount if available from custompayload
196
- const amount = oat.data.order.payload?.actualDstAmount;
195
+ // get the actualDstAmount if available from settlement
196
+ const amount = oat.data.order.settlement?.actualDstAmount;
197
197
  const formattedActualDstAmount = amount
198
198
  ? (0, number_1.formatTokenAmount)(BigInt(amount), oat.data.order.metadata.dstToken.decimals)
199
199
  : undefined;
@@ -201,7 +201,7 @@ function useAnyspendFlow({ paymentType = "crypto", recipientAddress, loadOrder,
201
201
  }
202
202
  }, [
203
203
  oat?.data?.order.status,
204
- oat?.data?.order.payload,
204
+ oat?.data?.order.settlement?.actualDstAmount,
205
205
  onTransactionSuccess,
206
206
  oat?.data?.order.metadata.dstToken.decimals,
207
207
  ]);
@@ -8,6 +8,7 @@ export declare function useAnyspendOrderAndTransactions(orderId: string | undefi
8
8
  relayTxs: import("../..").components["schemas"]["RelayTx"][];
9
9
  executeTx: import("../..").components["schemas"]["ExecuteTx"] | null;
10
10
  refundTxs: import("../..").components["schemas"]["RefundTx"][];
11
+ points: number | null;
11
12
  };
12
13
  statusCode: number;
13
14
  } | undefined;
@@ -22,6 +23,7 @@ export declare function useAnyspendOrderAndTransactions(orderId: string | undefi
22
23
  relayTxs: import("../..").components["schemas"]["RelayTx"][];
23
24
  executeTx: import("../..").components["schemas"]["ExecuteTx"] | null;
24
25
  refundTxs: import("../..").components["schemas"]["RefundTx"][];
26
+ points: number | null;
25
27
  };
26
28
  statusCode: number;
27
29
  }, Error>>;
@@ -12,11 +12,15 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
12
12
  errorDetails: string | null;
13
13
  createdAt: number;
14
14
  expiredAt: number;
15
+ filledAt: number | null;
15
16
  creatorAddress: string | null;
16
17
  partnerId: string | null;
17
18
  onrampMetadata: import("../..").components["schemas"]["OnrampMetadata"] | null;
18
19
  oneClickBuyUrl: string | null;
19
20
  stripePaymentIntentId: string | null;
21
+ settlement: {
22
+ actualDstAmount: string | null;
23
+ } | null;
20
24
  } & {
21
25
  type: "swap";
22
26
  payload: import("../..").components["schemas"]["SwapPayload"];
@@ -34,11 +38,15 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
34
38
  errorDetails: string | null;
35
39
  createdAt: number;
36
40
  expiredAt: number;
41
+ filledAt: number | null;
37
42
  creatorAddress: string | null;
38
43
  partnerId: string | null;
39
44
  onrampMetadata: import("../..").components["schemas"]["OnrampMetadata"] | null;
40
45
  oneClickBuyUrl: string | null;
41
46
  stripePaymentIntentId: string | null;
47
+ settlement: {
48
+ actualDstAmount: string | null;
49
+ } | null;
42
50
  } & {
43
51
  type: "hype_duel";
44
52
  payload: import("../..").components["schemas"]["HypeDuelPayload"];
@@ -56,11 +64,15 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
56
64
  errorDetails: string | null;
57
65
  createdAt: number;
58
66
  expiredAt: number;
67
+ filledAt: number | null;
59
68
  creatorAddress: string | null;
60
69
  partnerId: string | null;
61
70
  onrampMetadata: import("../..").components["schemas"]["OnrampMetadata"] | null;
62
71
  oneClickBuyUrl: string | null;
63
72
  stripePaymentIntentId: string | null;
73
+ settlement: {
74
+ actualDstAmount: string | null;
75
+ } | null;
64
76
  } & {
65
77
  type: "custom";
66
78
  payload: import("../..").components["schemas"]["CustomPayload"];
@@ -78,11 +90,15 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
78
90
  errorDetails: string | null;
79
91
  createdAt: number;
80
92
  expiredAt: number;
93
+ filledAt: number | null;
81
94
  creatorAddress: string | null;
82
95
  partnerId: string | null;
83
96
  onrampMetadata: import("../..").components["schemas"]["OnrampMetadata"] | null;
84
97
  oneClickBuyUrl: string | null;
85
98
  stripePaymentIntentId: string | null;
99
+ settlement: {
100
+ actualDstAmount: string | null;
101
+ } | null;
86
102
  } & {
87
103
  type: "mint_nft";
88
104
  payload: import("../..").components["schemas"]["MintNftPayload"];
@@ -100,11 +116,15 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
100
116
  errorDetails: string | null;
101
117
  createdAt: number;
102
118
  expiredAt: number;
119
+ filledAt: number | null;
103
120
  creatorAddress: string | null;
104
121
  partnerId: string | null;
105
122
  onrampMetadata: import("../..").components["schemas"]["OnrampMetadata"] | null;
106
123
  oneClickBuyUrl: string | null;
107
124
  stripePaymentIntentId: string | null;
125
+ settlement: {
126
+ actualDstAmount: string | null;
127
+ } | null;
108
128
  } & {
109
129
  type: "join_tournament";
110
130
  payload: import("../..").components["schemas"]["JoinTournamentPayload"];
@@ -122,11 +142,15 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
122
142
  errorDetails: string | null;
123
143
  createdAt: number;
124
144
  expiredAt: number;
145
+ filledAt: number | null;
125
146
  creatorAddress: string | null;
126
147
  partnerId: string | null;
127
148
  onrampMetadata: import("../..").components["schemas"]["OnrampMetadata"] | null;
128
149
  oneClickBuyUrl: string | null;
129
150
  stripePaymentIntentId: string | null;
151
+ settlement: {
152
+ actualDstAmount: string | null;
153
+ } | null;
130
154
  } & {
131
155
  type: "fund_tournament";
132
156
  payload: import("../..").components["schemas"]["FundTournamentPayload"];
@@ -147,11 +171,15 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
147
171
  errorDetails: string | null;
148
172
  createdAt: number;
149
173
  expiredAt: number;
174
+ filledAt: number | null;
150
175
  creatorAddress: string | null;
151
176
  partnerId: string | null;
152
177
  onrampMetadata: import("../..").components["schemas"]["OnrampMetadata"] | null;
153
178
  oneClickBuyUrl: string | null;
154
179
  stripePaymentIntentId: string | null;
180
+ settlement: {
181
+ actualDstAmount: string | null;
182
+ } | null;
155
183
  } & {
156
184
  type: "swap";
157
185
  payload: import("../..").components["schemas"]["SwapPayload"];
@@ -169,11 +197,15 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
169
197
  errorDetails: string | null;
170
198
  createdAt: number;
171
199
  expiredAt: number;
200
+ filledAt: number | null;
172
201
  creatorAddress: string | null;
173
202
  partnerId: string | null;
174
203
  onrampMetadata: import("../..").components["schemas"]["OnrampMetadata"] | null;
175
204
  oneClickBuyUrl: string | null;
176
205
  stripePaymentIntentId: string | null;
206
+ settlement: {
207
+ actualDstAmount: string | null;
208
+ } | null;
177
209
  } & {
178
210
  type: "hype_duel";
179
211
  payload: import("../..").components["schemas"]["HypeDuelPayload"];
@@ -191,11 +223,15 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
191
223
  errorDetails: string | null;
192
224
  createdAt: number;
193
225
  expiredAt: number;
226
+ filledAt: number | null;
194
227
  creatorAddress: string | null;
195
228
  partnerId: string | null;
196
229
  onrampMetadata: import("../..").components["schemas"]["OnrampMetadata"] | null;
197
230
  oneClickBuyUrl: string | null;
198
231
  stripePaymentIntentId: string | null;
232
+ settlement: {
233
+ actualDstAmount: string | null;
234
+ } | null;
199
235
  } & {
200
236
  type: "custom";
201
237
  payload: import("../..").components["schemas"]["CustomPayload"];
@@ -213,11 +249,15 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
213
249
  errorDetails: string | null;
214
250
  createdAt: number;
215
251
  expiredAt: number;
252
+ filledAt: number | null;
216
253
  creatorAddress: string | null;
217
254
  partnerId: string | null;
218
255
  onrampMetadata: import("../..").components["schemas"]["OnrampMetadata"] | null;
219
256
  oneClickBuyUrl: string | null;
220
257
  stripePaymentIntentId: string | null;
258
+ settlement: {
259
+ actualDstAmount: string | null;
260
+ } | null;
221
261
  } & {
222
262
  type: "mint_nft";
223
263
  payload: import("../..").components["schemas"]["MintNftPayload"];
@@ -235,11 +275,15 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
235
275
  errorDetails: string | null;
236
276
  createdAt: number;
237
277
  expiredAt: number;
278
+ filledAt: number | null;
238
279
  creatorAddress: string | null;
239
280
  partnerId: string | null;
240
281
  onrampMetadata: import("../..").components["schemas"]["OnrampMetadata"] | null;
241
282
  oneClickBuyUrl: string | null;
242
283
  stripePaymentIntentId: string | null;
284
+ settlement: {
285
+ actualDstAmount: string | null;
286
+ } | null;
243
287
  } & {
244
288
  type: "join_tournament";
245
289
  payload: import("../..").components["schemas"]["JoinTournamentPayload"];
@@ -257,11 +301,15 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
257
301
  errorDetails: string | null;
258
302
  createdAt: number;
259
303
  expiredAt: number;
304
+ filledAt: number | null;
260
305
  creatorAddress: string | null;
261
306
  partnerId: string | null;
262
307
  onrampMetadata: import("../..").components["schemas"]["OnrampMetadata"] | null;
263
308
  oneClickBuyUrl: string | null;
264
309
  stripePaymentIntentId: string | null;
310
+ settlement: {
311
+ actualDstAmount: string | null;
312
+ } | null;
265
313
  } & {
266
314
  type: "fund_tournament";
267
315
  payload: import("../..").components["schemas"]["FundTournamentPayload"];
@@ -434,6 +434,11 @@ export interface paths {
434
434
  executeTx: components["schemas"]["ExecuteTx"] | null;
435
435
  /** @description Refund transactions if order failed */
436
436
  refundTxs: components["schemas"]["RefundTx"][];
437
+ /**
438
+ * @description Points awarded for this order (only present when order status is executed)
439
+ * @example 100
440
+ */
441
+ points: number | null;
437
442
  };
438
443
  /** @example 200 */
439
444
  statusCode: number;
@@ -1112,16 +1117,6 @@ export interface components {
1112
1117
  * @example 990000
1113
1118
  */
1114
1119
  expectedDstAmount: string;
1115
- /**
1116
- * @description Actual received amount (null for new orders)
1117
- * @example 990000
1118
- */
1119
- actualDstAmount: string | null;
1120
- /**
1121
- * @description Amount in after fee
1122
- * @example 990000
1123
- */
1124
- amountInAfterFee: string | null;
1125
1120
  };
1126
1121
  /** @description HypeDuel-specific payload */
1127
1122
  HypeDuelPayload: {
@@ -1130,16 +1125,6 @@ export interface components {
1130
1125
  * @example 990000
1131
1126
  */
1132
1127
  expectedDstAmount: string;
1133
- /**
1134
- * @description Actual received amount (null for new orders)
1135
- * @example 990000
1136
- */
1137
- actualDstAmount: string | null;
1138
- /**
1139
- * @description Amount in after fee
1140
- * @example 990000
1141
- */
1142
- amountInAfterFee: string | null;
1143
1128
  };
1144
1129
  /** @description Custom execution payload */
1145
1130
  CustomPayload: {
@@ -1307,6 +1292,8 @@ export interface components {
1307
1292
  * @example 1752506694679
1308
1293
  */
1309
1294
  expiredAt: number;
1295
+ /** @description Timestamp when the order was filled/executed */
1296
+ filledAt: number | null;
1310
1297
  /**
1311
1298
  * @description Optional creator address
1312
1299
  * @example 0xb34facb90a200251318e8841c05102366f2158cf
@@ -1323,6 +1310,14 @@ export interface components {
1323
1310
  * @example pi_3Rko0sJnoDg53PsP0PDLsHkR
1324
1311
  */
1325
1312
  stripePaymentIntentId: string | null;
1313
+ /** @description Settlement information for executed orders */
1314
+ settlement: {
1315
+ /**
1316
+ * @description Actual received amount after execution
1317
+ * @example 990000
1318
+ */
1319
+ actualDstAmount: string | null;
1320
+ } | null;
1326
1321
  };
1327
1322
  SwapOrder: components["schemas"]["BaseOrder"] & {
1328
1323
  /**
@@ -8,8 +8,6 @@ const buildPayload = (orderType, params) => {
8
8
  case "swap":
9
9
  return {
10
10
  expectedDstAmount,
11
- actualDstAmount: null,
12
- amountInAfterFee: null,
13
11
  };
14
12
  case "mint_nft":
15
13
  if (nft?.type === "erc1155") {
@@ -46,8 +44,6 @@ const buildPayload = (orderType, params) => {
46
44
  case "hype_duel":
47
45
  return {
48
46
  expectedDstAmount,
49
- actualDstAmount: null,
50
- amountInAfterFee: null,
51
47
  };
52
48
  default:
53
49
  throw new Error(`Invalid order type: ${orderType}`);
@@ -20,7 +20,7 @@ export declare function useCurrencyConversion(): {
20
20
  /** Base currency used for conversion (typically B3) */
21
21
  baseCurrency: import("../stores/currencyStore").SupportedCurrency;
22
22
  /** Current exchange rate from base to selected currency (undefined while loading) */
23
- exchangeRate: number;
23
+ exchangeRate: number | undefined;
24
24
  /** Format a value with currency conversion and proper symbol/decimal handling */
25
25
  formatCurrencyValue: (value: number, options?: {
26
26
  decimals?: number;