@b3dotfun/sdk 0.0.86 → 0.0.87-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 (97) hide show
  1. package/dist/cjs/anyspend/react/components/AnySpend.d.ts +5 -0
  2. package/dist/cjs/anyspend/react/components/AnySpend.js +59 -49
  3. package/dist/cjs/anyspend/react/components/AnySpendCustomExactIn.d.ts +1 -1
  4. package/dist/cjs/anyspend/react/components/AnySpendCustomExactIn.js +1 -2
  5. package/dist/cjs/anyspend/react/components/AnySpendDeposit.d.ts +122 -0
  6. package/dist/cjs/anyspend/react/components/AnySpendDeposit.js +190 -0
  7. package/dist/cjs/anyspend/react/components/QRDeposit.d.ts +43 -0
  8. package/dist/cjs/anyspend/react/components/QRDeposit.js +146 -0
  9. package/dist/cjs/anyspend/react/components/common/OrderDetails.js +17 -12
  10. package/dist/cjs/anyspend/react/components/common/OrderDetailsCollapsible.d.ts +2 -0
  11. package/dist/cjs/anyspend/react/components/common/OrderDetailsCollapsible.js +12 -5
  12. package/dist/cjs/anyspend/react/components/common/OrderStatus.js +2 -2
  13. package/dist/cjs/anyspend/react/components/common/WarningText.d.ts +32 -0
  14. package/dist/cjs/anyspend/react/components/common/WarningText.js +36 -0
  15. package/dist/cjs/anyspend/react/components/icons/CreditCardIcon.d.ts +6 -0
  16. package/dist/cjs/anyspend/react/components/icons/CreditCardIcon.js +6 -0
  17. package/dist/cjs/anyspend/react/components/icons/QrCodeIcon.d.ts +6 -0
  18. package/dist/cjs/anyspend/react/components/icons/QrCodeIcon.js +6 -0
  19. package/dist/cjs/anyspend/react/components/index.d.ts +2 -0
  20. package/dist/cjs/anyspend/react/components/index.js +3 -1
  21. package/dist/cjs/anyspend/react/hooks/index.d.ts +1 -0
  22. package/dist/cjs/anyspend/react/hooks/index.js +1 -0
  23. package/dist/cjs/anyspend/react/hooks/useAnyspendFlow.d.ts +2 -2
  24. package/dist/cjs/anyspend/react/hooks/useAnyspendFlow.js +35 -11
  25. package/dist/cjs/anyspend/react/hooks/useAnyspendOrderHistory.d.ts +76 -16
  26. package/dist/cjs/anyspend/react/hooks/useCreateDepositFirstOrder.d.ts +24 -0
  27. package/dist/cjs/anyspend/react/hooks/useCreateDepositFirstOrder.js +86 -0
  28. package/dist/cjs/anyspend/types/api.d.ts +65 -3
  29. package/dist/cjs/anyspend/utils/format.js +28 -5
  30. package/dist/cjs/global-account/react/stores/useModalStore.d.ts +4 -0
  31. package/dist/esm/anyspend/react/components/AnySpend.d.ts +5 -0
  32. package/dist/esm/anyspend/react/components/AnySpend.js +59 -49
  33. package/dist/esm/anyspend/react/components/AnySpendCustomExactIn.d.ts +1 -1
  34. package/dist/esm/anyspend/react/components/AnySpendCustomExactIn.js +1 -2
  35. package/dist/esm/anyspend/react/components/AnySpendDeposit.d.ts +122 -0
  36. package/dist/esm/anyspend/react/components/AnySpendDeposit.js +187 -0
  37. package/dist/esm/anyspend/react/components/QRDeposit.d.ts +43 -0
  38. package/dist/esm/anyspend/react/components/QRDeposit.js +143 -0
  39. package/dist/esm/anyspend/react/components/common/OrderDetails.js +17 -12
  40. package/dist/esm/anyspend/react/components/common/OrderDetailsCollapsible.d.ts +2 -0
  41. package/dist/esm/anyspend/react/components/common/OrderDetailsCollapsible.js +12 -5
  42. package/dist/esm/anyspend/react/components/common/OrderStatus.js +2 -2
  43. package/dist/esm/anyspend/react/components/common/WarningText.d.ts +32 -0
  44. package/dist/esm/anyspend/react/components/common/WarningText.js +32 -0
  45. package/dist/esm/anyspend/react/components/icons/CreditCardIcon.d.ts +6 -0
  46. package/dist/esm/anyspend/react/components/icons/CreditCardIcon.js +2 -0
  47. package/dist/esm/anyspend/react/components/icons/QrCodeIcon.d.ts +6 -0
  48. package/dist/esm/anyspend/react/components/icons/QrCodeIcon.js +2 -0
  49. package/dist/esm/anyspend/react/components/index.d.ts +2 -0
  50. package/dist/esm/anyspend/react/components/index.js +1 -0
  51. package/dist/esm/anyspend/react/hooks/index.d.ts +1 -0
  52. package/dist/esm/anyspend/react/hooks/index.js +1 -0
  53. package/dist/esm/anyspend/react/hooks/useAnyspendFlow.d.ts +2 -2
  54. package/dist/esm/anyspend/react/hooks/useAnyspendFlow.js +35 -11
  55. package/dist/esm/anyspend/react/hooks/useAnyspendOrderHistory.d.ts +76 -16
  56. package/dist/esm/anyspend/react/hooks/useCreateDepositFirstOrder.d.ts +24 -0
  57. package/dist/esm/anyspend/react/hooks/useCreateDepositFirstOrder.js +83 -0
  58. package/dist/esm/anyspend/types/api.d.ts +65 -3
  59. package/dist/esm/anyspend/utils/format.js +28 -5
  60. package/dist/esm/global-account/react/stores/useModalStore.d.ts +4 -0
  61. package/dist/styles/index.css +1 -1
  62. package/dist/types/anyspend/react/components/AnySpend.d.ts +5 -0
  63. package/dist/types/anyspend/react/components/AnySpendCustomExactIn.d.ts +1 -1
  64. package/dist/types/anyspend/react/components/AnySpendDeposit.d.ts +122 -0
  65. package/dist/types/anyspend/react/components/QRDeposit.d.ts +43 -0
  66. package/dist/types/anyspend/react/components/common/OrderDetailsCollapsible.d.ts +2 -0
  67. package/dist/types/anyspend/react/components/common/WarningText.d.ts +32 -0
  68. package/dist/types/anyspend/react/components/icons/CreditCardIcon.d.ts +6 -0
  69. package/dist/types/anyspend/react/components/icons/QrCodeIcon.d.ts +6 -0
  70. package/dist/types/anyspend/react/components/index.d.ts +2 -0
  71. package/dist/types/anyspend/react/hooks/index.d.ts +1 -0
  72. package/dist/types/anyspend/react/hooks/useAnyspendFlow.d.ts +2 -2
  73. package/dist/types/anyspend/react/hooks/useAnyspendOrderHistory.d.ts +76 -16
  74. package/dist/types/anyspend/react/hooks/useCreateDepositFirstOrder.d.ts +24 -0
  75. package/dist/types/anyspend/types/api.d.ts +65 -3
  76. package/dist/types/global-account/react/stores/useModalStore.d.ts +4 -0
  77. package/package.json +3 -3
  78. package/src/anyspend/react/components/AnySpend.tsx +68 -45
  79. package/src/anyspend/react/components/AnySpendCustomExactIn.tsx +2 -3
  80. package/src/anyspend/react/components/AnySpendDeposit.tsx +578 -0
  81. package/src/anyspend/react/components/QRDeposit.tsx +348 -0
  82. package/src/anyspend/react/components/common/OrderDetails.tsx +26 -8
  83. package/src/anyspend/react/components/common/OrderDetailsCollapsible.tsx +20 -8
  84. package/src/anyspend/react/components/common/OrderStatus.tsx +2 -2
  85. package/src/anyspend/react/components/common/WarningText.tsx +52 -0
  86. package/src/anyspend/react/components/icons/CreditCardIcon.tsx +25 -0
  87. package/src/anyspend/react/components/icons/QrCodeIcon.tsx +25 -0
  88. package/src/anyspend/react/components/icons/credit-card.svg +5 -0
  89. package/src/anyspend/react/components/icons/qr-code.svg +5 -0
  90. package/src/anyspend/react/components/index.ts +2 -0
  91. package/src/anyspend/react/hooks/index.ts +1 -0
  92. package/src/anyspend/react/hooks/useAnyspendFlow.ts +37 -12
  93. package/src/anyspend/react/hooks/useCreateDepositFirstOrder.ts +110 -0
  94. package/src/anyspend/types/api.ts +67 -2
  95. package/src/anyspend/utils/format.ts +33 -5
  96. package/src/global-account/react/stores/useModalStore.ts +4 -0
  97. package/src/styles/index.css +2 -0
@@ -0,0 +1,122 @@
1
+ import { components } from "@b3dotfun/sdk/anyspend/types/api";
2
+ import { GetQuoteResponse } from "@b3dotfun/sdk/anyspend/types/api_req_res";
3
+ export interface DepositContractConfig {
4
+ /** Custom function ABI JSON string */
5
+ functionAbi: string;
6
+ /** The function name to call */
7
+ functionName: string;
8
+ /** Custom function arguments. Use "{{amount_out}}" for the deposit amount placeholder */
9
+ functionArgs: string[];
10
+ /** The contract address to deposit to */
11
+ to: string;
12
+ /** Optional spender address if different from contract address */
13
+ spenderAddress?: string;
14
+ /** Custom action label */
15
+ action?: string;
16
+ }
17
+ export interface ChainConfig {
18
+ /** Chain ID */
19
+ id: number;
20
+ /** Display name */
21
+ name: string;
22
+ /** Optional icon URL */
23
+ iconUrl?: string;
24
+ }
25
+ export interface AnySpendDepositProps {
26
+ /** Order ID to load an existing order */
27
+ loadOrder?: string;
28
+ /** Display mode */
29
+ mode?: "modal" | "page";
30
+ /** The recipient address for the deposit */
31
+ recipientAddress: string;
32
+ /** Payment type - crypto or fiat. If not set, shows chain selection first */
33
+ paymentType?: "crypto" | "fiat";
34
+ /** Source token address to pre-select */
35
+ sourceTokenAddress?: string;
36
+ /** Source chain ID to pre-select. If not provided, shows chain selection */
37
+ sourceTokenChainId?: number;
38
+ /** The destination token to receive */
39
+ destinationToken: components["schemas"]["Token"];
40
+ /** The destination chain ID */
41
+ destinationChainId: number;
42
+ /** Callback when deposit succeeds */
43
+ onSuccess?: (amount: string) => void;
44
+ /** Callback for opening a custom modal (e.g., for special token handling) */
45
+ onOpenCustomModal?: () => void;
46
+ /** Custom footer content */
47
+ mainFooter?: React.ReactNode;
48
+ /** Called when a token is selected. Call event.preventDefault() to prevent default behavior */
49
+ onTokenSelect?: (token: components["schemas"]["Token"], event: {
50
+ preventDefault: () => void;
51
+ }) => void;
52
+ /** Custom USD input value presets for fiat payment */
53
+ customUsdInputValues?: string[];
54
+ /** Whether to prefer using connected EOA wallet */
55
+ preferEoa?: boolean;
56
+ /** Minimum destination amount required */
57
+ minDestinationAmount?: number;
58
+ /** Custom header component */
59
+ header?: ({ anyspendPrice, isLoadingAnyspendPrice, }: {
60
+ anyspendPrice: GetQuoteResponse | undefined;
61
+ isLoadingAnyspendPrice: boolean;
62
+ }) => React.JSX.Element;
63
+ /** Order type for the deposit */
64
+ orderType?: "hype_duel" | "custom_exact_in" | "swap";
65
+ /** Custom action label displayed on buttons */
66
+ actionLabel?: string;
67
+ /** Configuration for depositing to a custom contract.
68
+ * If provided, creates a custom_exact_in order that calls the contract.
69
+ * If not provided, creates a simple hype_duel order for direct deposits.
70
+ */
71
+ depositContractConfig?: DepositContractConfig;
72
+ /** Whether to show chain selection step. Defaults to true if sourceTokenChainId is not provided */
73
+ showChainSelection?: boolean;
74
+ /** Custom list of supported chains. If not provided, uses default chains */
75
+ supportedChains?: ChainConfig[];
76
+ /** Minimum pool size for filtering tokens (default: 1,000,000) */
77
+ minPoolSize?: number;
78
+ /** Custom title for chain selection step */
79
+ chainSelectionTitle?: string;
80
+ /** Custom description for chain selection step */
81
+ chainSelectionDescription?: string;
82
+ /** Number of top chains to show (default: 3) */
83
+ topChainsCount?: number;
84
+ /** Callback when close button is clicked */
85
+ onClose?: () => void;
86
+ }
87
+ /**
88
+ * A flexible deposit component that wraps AnySpendCustomExactIn with optional chain selection.
89
+ *
90
+ * @example
91
+ * // Simple deposit with chain selection
92
+ * <AnySpendDeposit
93
+ * recipientAddress={userAddress}
94
+ * destinationToken={myToken}
95
+ * destinationChainId={base.id}
96
+ * onSuccess={(amount) => console.log(`Deposited ${amount}`)}
97
+ * />
98
+ *
99
+ * @example
100
+ * // Skip chain selection by providing sourceTokenChainId
101
+ * <AnySpendDeposit
102
+ * recipientAddress={userAddress}
103
+ * destinationToken={myToken}
104
+ * destinationChainId={base.id}
105
+ * sourceTokenChainId={base.id}
106
+ * onSuccess={(amount) => console.log(`Deposited ${amount}`)}
107
+ * />
108
+ *
109
+ * @example
110
+ * // Deposit with custom contract
111
+ * <AnySpendDeposit
112
+ * recipientAddress={userAddress}
113
+ * destinationToken={myToken}
114
+ * destinationChainId={base.id}
115
+ * depositContractConfig={{
116
+ * contractAddress: "0x...",
117
+ * functionName: "depositFor",
118
+ * }}
119
+ * onSuccess={(amount) => console.log(`Deposited ${amount}`)}
120
+ * />
121
+ */
122
+ export declare function AnySpendDeposit({ loadOrder, mode, recipientAddress, paymentType: initialPaymentType, sourceTokenAddress, sourceTokenChainId: initialSourceChainId, destinationToken, destinationChainId, onSuccess, onOpenCustomModal, mainFooter, onTokenSelect, customUsdInputValues, preferEoa, minDestinationAmount, header, orderType, depositContractConfig, showChainSelection, supportedChains, minPoolSize, topChainsCount, onClose, }: AnySpendDepositProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,43 @@
1
+ import { components } from "@b3dotfun/sdk/anyspend/types/api";
2
+ import { DepositContractConfig } from "./AnySpendDeposit";
3
+ export interface QRDepositProps {
4
+ /** Display mode */
5
+ mode?: "modal" | "page";
6
+ /** The recipient address (user's wallet) */
7
+ recipientAddress: string;
8
+ /** The source token to deposit (defaults to ETH on Base) */
9
+ sourceToken?: components["schemas"]["Token"];
10
+ /** The source chain ID (defaults to Base) */
11
+ sourceChainId?: number;
12
+ /** The destination token to receive */
13
+ destinationToken: components["schemas"]["Token"];
14
+ /** The destination chain ID */
15
+ destinationChainId: number;
16
+ /** Creator address (optional) */
17
+ creatorAddress?: string;
18
+ /** Contract config for custom execution after deposit */
19
+ depositContractConfig?: DepositContractConfig;
20
+ /** Callback when back button is clicked */
21
+ onBack?: () => void;
22
+ /** Callback when close button is clicked */
23
+ onClose?: () => void;
24
+ /** Callback when order is created successfully */
25
+ onOrderCreated?: (orderId: string) => void;
26
+ /** Callback when deposit is completed */
27
+ onSuccess?: (txHash?: string) => void;
28
+ }
29
+ /**
30
+ * A component for displaying QR code deposit functionality.
31
+ * Creates a deposit_first order on mount and shows a QR code that can be scanned to deposit tokens.
32
+ * Users can change the source token/chain using the TokenSelector.
33
+ *
34
+ * @example
35
+ * <QRDeposit
36
+ * recipientAddress={userAddress}
37
+ * destinationToken={usdcArbitrumToken}
38
+ * destinationChainId={42161}
39
+ * onBack={() => setStep("select-chain")}
40
+ * onSuccess={(txHash) => console.log("Deposit complete:", txHash)}
41
+ * />
42
+ */
43
+ export declare function QRDeposit({ mode, recipientAddress, sourceToken: sourceTokenProp, sourceChainId: sourceChainIdProp, destinationToken, destinationChainId, creatorAddress, depositContractConfig, onBack, onClose, onOrderCreated, onSuccess, }: QRDepositProps): import("react/jsx-runtime").JSX.Element;
@@ -14,6 +14,8 @@ interface OrderDetailsCollapsibleProps {
14
14
  showTotal?: boolean;
15
15
  totalAmount?: string;
16
16
  points?: number;
17
+ isOpen?: boolean;
18
+ onOpenChange?: (isOpen: boolean) => void;
17
19
  }
18
20
  export declare const OrderDetailsCollapsible: import("react").NamedExoticComponent<OrderDetailsCollapsibleProps>;
19
21
  export {};
@@ -0,0 +1,32 @@
1
+ export interface WarningTextProps {
2
+ /** The warning message content */
3
+ children: React.ReactNode;
4
+ /** Additional CSS classes */
5
+ className?: string;
6
+ }
7
+ /**
8
+ * A generic warning text component with consistent styling.
9
+ *
10
+ * @example
11
+ * <WarningText>
12
+ * Custom warning message
13
+ * </WarningText>
14
+ */
15
+ export declare function WarningText({ children, className }: WarningTextProps): import("react/jsx-runtime").JSX.Element;
16
+ export interface ChainWarningTextProps {
17
+ /** The chain ID to display warning for */
18
+ chainId: number;
19
+ /** Additional CSS classes */
20
+ className?: string;
21
+ }
22
+ /**
23
+ * A chain-aware warning text component that displays chain-specific warnings.
24
+ * Returns null if there's no warning for the given chain.
25
+ *
26
+ * @example
27
+ * <ChainWarningText chainId={HYPERLIQUID_CHAIN_ID} />
28
+ *
29
+ * @example
30
+ * <ChainWarningText chainId={destinationChainId} className="mt-4" />
31
+ */
32
+ export declare function ChainWarningText({ chainId, className }: ChainWarningTextProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ interface CreditCardIconProps {
3
+ className?: string;
4
+ }
5
+ export declare const CreditCardIcon: React.FC<CreditCardIconProps>;
6
+ export {};
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ interface QrCodeIconProps {
3
+ className?: string;
4
+ }
5
+ export declare const QrCodeIcon: React.FC<QrCodeIconProps>;
6
+ export {};
@@ -4,6 +4,8 @@ export { AnySpendBuySpin } from "./AnySpendBuySpin";
4
4
  export { AnySpendCollectorClubPurchase } from "./AnySpendCollectorClubPurchase";
5
5
  export { AnySpendCustom } from "./AnySpendCustom";
6
6
  export { AnySpendCustomExactIn } from "./AnySpendCustomExactIn";
7
+ export { AnySpendDeposit } from "./AnySpendDeposit";
8
+ export type { AnySpendDepositProps, ChainConfig, DepositContractConfig } from "./AnySpendDeposit";
7
9
  export { AnySpendDepositHype, HYPE_TOKEN_DETAILS } from "./AnyspendDepositHype";
8
10
  export * from "./AnySpendFingerprintWrapper";
9
11
  export { AnySpendNFT } from "./AnySpendNFT";
@@ -1,5 +1,6 @@
1
1
  export * from "./useAnyspendCreateOnrampOrder";
2
2
  export * from "./useAnyspendCreateOrder";
3
+ export * from "./useCreateDepositFirstOrder";
3
4
  export * from "./useAnyspendOrderAndTransactions";
4
5
  export * from "./useAnyspendOrderHistory";
5
6
  export * from "./useAnyspendQuote";
@@ -24,9 +24,9 @@ interface UseAnyspendFlowProps {
24
24
  destinationTokenChainId?: number;
25
25
  slippage?: number;
26
26
  disableUrlParamManagement?: boolean;
27
- orderType?: "hype_duel" | "custom_exact_in";
27
+ orderType?: "hype_duel" | "custom_exact_in" | "swap";
28
28
  }
29
- export declare function useAnyspendFlow({ paymentType, recipientAddress, loadOrder, isDepositMode, onOrderSuccess, onTransactionSuccess, sourceTokenAddress, sourceTokenChainId, destinationTokenAddress, destinationTokenChainId, slippage, disableUrlParamManagement, orderType, }: UseAnyspendFlowProps): {
29
+ export declare function useAnyspendFlow({ paymentType, recipientAddress, loadOrder, onOrderSuccess, onTransactionSuccess, sourceTokenAddress, sourceTokenChainId, destinationTokenAddress, destinationTokenChainId, slippage, disableUrlParamManagement, orderType, }: UseAnyspendFlowProps): {
30
30
  activePanel: PanelView;
31
31
  setActivePanel: import("react").Dispatch<import("react").SetStateAction<PanelView>>;
32
32
  orderId: string | undefined;
@@ -8,7 +8,7 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
8
8
  srcTokenAddress: string;
9
9
  dstTokenAddress: string;
10
10
  srcAmount: string;
11
- status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
11
+ status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "quoting_after_deposit" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
12
12
  errorDetails: string | null;
13
13
  createdAt: number;
14
14
  expiredAt: number;
@@ -38,7 +38,7 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
38
38
  srcTokenAddress: string;
39
39
  dstTokenAddress: string;
40
40
  srcAmount: string;
41
- status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
41
+ status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "quoting_after_deposit" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
42
42
  errorDetails: string | null;
43
43
  createdAt: number;
44
44
  expiredAt: number;
@@ -68,7 +68,7 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
68
68
  srcTokenAddress: string;
69
69
  dstTokenAddress: string;
70
70
  srcAmount: string;
71
- status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
71
+ status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "quoting_after_deposit" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
72
72
  errorDetails: string | null;
73
73
  createdAt: number;
74
74
  expiredAt: number;
@@ -98,7 +98,7 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
98
98
  srcTokenAddress: string;
99
99
  dstTokenAddress: string;
100
100
  srcAmount: string;
101
- status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
101
+ status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "quoting_after_deposit" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
102
102
  errorDetails: string | null;
103
103
  createdAt: number;
104
104
  expiredAt: number;
@@ -128,7 +128,7 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
128
128
  srcTokenAddress: string;
129
129
  dstTokenAddress: string;
130
130
  srcAmount: string;
131
- status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
131
+ status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "quoting_after_deposit" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
132
132
  errorDetails: string | null;
133
133
  createdAt: number;
134
134
  expiredAt: number;
@@ -158,7 +158,7 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
158
158
  srcTokenAddress: string;
159
159
  dstTokenAddress: string;
160
160
  srcAmount: string;
161
- status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
161
+ status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "quoting_after_deposit" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
162
162
  errorDetails: string | null;
163
163
  createdAt: number;
164
164
  expiredAt: number;
@@ -188,7 +188,7 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
188
188
  srcTokenAddress: string;
189
189
  dstTokenAddress: string;
190
190
  srcAmount: string;
191
- status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
191
+ status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "quoting_after_deposit" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
192
192
  errorDetails: string | null;
193
193
  createdAt: number;
194
194
  expiredAt: number;
@@ -218,7 +218,7 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
218
218
  srcTokenAddress: string;
219
219
  dstTokenAddress: string;
220
220
  srcAmount: string;
221
- status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
221
+ status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "quoting_after_deposit" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
222
222
  errorDetails: string | null;
223
223
  createdAt: number;
224
224
  expiredAt: number;
@@ -239,6 +239,36 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
239
239
  type: "fund_tournament";
240
240
  payload: import("../..").components["schemas"]["FundTournamentPayload"];
241
241
  metadata: import("../..").components["schemas"]["TournamentMetadata"];
242
+ }) | ({
243
+ id: string;
244
+ recipientAddress: string;
245
+ globalAddress: string;
246
+ srcChain: number;
247
+ dstChain: number;
248
+ srcTokenAddress: string;
249
+ dstTokenAddress: string;
250
+ srcAmount: string;
251
+ status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "quoting_after_deposit" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
252
+ errorDetails: string | null;
253
+ createdAt: number;
254
+ expiredAt: number;
255
+ filledAt: number | null;
256
+ receivedDepositAt: number | null;
257
+ creatorAddress: string | null;
258
+ partnerId: string | null;
259
+ clientReferenceId?: string | null;
260
+ onrampMetadata: import("../..").components["schemas"]["OnrampMetadata"] | null;
261
+ oneClickBuyUrl: string | null;
262
+ stripePaymentIntentId: string | null;
263
+ settlement: {
264
+ actualDstAmount?: string;
265
+ relay?: Record<string, never>;
266
+ } | null;
267
+ fee?: Omit<import("../..").components["schemas"]["Fee"], "type"> | null;
268
+ } & {
269
+ type: "deposit_first";
270
+ payload: import("../..").components["schemas"]["DepositFirstPayload"];
271
+ metadata: import("../..").components["schemas"]["DepositFirstMetadata"];
242
272
  }))[];
243
273
  isLoadingOrderHistory: boolean;
244
274
  getOrderHistoryError: Error | null;
@@ -251,7 +281,7 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
251
281
  srcTokenAddress: string;
252
282
  dstTokenAddress: string;
253
283
  srcAmount: string;
254
- status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
284
+ status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "quoting_after_deposit" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
255
285
  errorDetails: string | null;
256
286
  createdAt: number;
257
287
  expiredAt: number;
@@ -281,7 +311,7 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
281
311
  srcTokenAddress: string;
282
312
  dstTokenAddress: string;
283
313
  srcAmount: string;
284
- status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
314
+ status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "quoting_after_deposit" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
285
315
  errorDetails: string | null;
286
316
  createdAt: number;
287
317
  expiredAt: number;
@@ -311,7 +341,7 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
311
341
  srcTokenAddress: string;
312
342
  dstTokenAddress: string;
313
343
  srcAmount: string;
314
- status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
344
+ status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "quoting_after_deposit" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
315
345
  errorDetails: string | null;
316
346
  createdAt: number;
317
347
  expiredAt: number;
@@ -341,7 +371,7 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
341
371
  srcTokenAddress: string;
342
372
  dstTokenAddress: string;
343
373
  srcAmount: string;
344
- status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
374
+ status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "quoting_after_deposit" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
345
375
  errorDetails: string | null;
346
376
  createdAt: number;
347
377
  expiredAt: number;
@@ -371,7 +401,7 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
371
401
  srcTokenAddress: string;
372
402
  dstTokenAddress: string;
373
403
  srcAmount: string;
374
- status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
404
+ status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "quoting_after_deposit" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
375
405
  errorDetails: string | null;
376
406
  createdAt: number;
377
407
  expiredAt: number;
@@ -401,7 +431,7 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
401
431
  srcTokenAddress: string;
402
432
  dstTokenAddress: string;
403
433
  srcAmount: string;
404
- status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
434
+ status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "quoting_after_deposit" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
405
435
  errorDetails: string | null;
406
436
  createdAt: number;
407
437
  expiredAt: number;
@@ -431,7 +461,7 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
431
461
  srcTokenAddress: string;
432
462
  dstTokenAddress: string;
433
463
  srcAmount: string;
434
- status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
464
+ status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "quoting_after_deposit" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
435
465
  errorDetails: string | null;
436
466
  createdAt: number;
437
467
  expiredAt: number;
@@ -461,7 +491,7 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
461
491
  srcTokenAddress: string;
462
492
  dstTokenAddress: string;
463
493
  srcAmount: string;
464
- status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
494
+ status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "quoting_after_deposit" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
465
495
  errorDetails: string | null;
466
496
  createdAt: number;
467
497
  expiredAt: number;
@@ -482,5 +512,35 @@ export declare function useAnyspendOrderHistory(creatorAddress: string | undefin
482
512
  type: "fund_tournament";
483
513
  payload: import("../..").components["schemas"]["FundTournamentPayload"];
484
514
  metadata: import("../..").components["schemas"]["TournamentMetadata"];
515
+ }) | ({
516
+ id: string;
517
+ recipientAddress: string;
518
+ globalAddress: string;
519
+ srcChain: number;
520
+ dstChain: number;
521
+ srcTokenAddress: string;
522
+ dstTokenAddress: string;
523
+ srcAmount: string;
524
+ status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "quoting_after_deposit" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
525
+ errorDetails: string | null;
526
+ createdAt: number;
527
+ expiredAt: number;
528
+ filledAt: number | null;
529
+ receivedDepositAt: number | null;
530
+ creatorAddress: string | null;
531
+ partnerId: string | null;
532
+ clientReferenceId?: string | null;
533
+ onrampMetadata: import("../..").components["schemas"]["OnrampMetadata"] | null;
534
+ oneClickBuyUrl: string | null;
535
+ stripePaymentIntentId: string | null;
536
+ settlement: {
537
+ actualDstAmount?: string;
538
+ relay?: Record<string, never>;
539
+ } | null;
540
+ fee?: Omit<import("../..").components["schemas"]["Fee"], "type"> | null;
541
+ } & {
542
+ type: "deposit_first";
543
+ payload: import("../..").components["schemas"]["DepositFirstPayload"];
544
+ metadata: import("../..").components["schemas"]["DepositFirstMetadata"];
485
545
  }))[], Error>>;
486
546
  };
@@ -0,0 +1,24 @@
1
+ import { components } from "@b3dotfun/sdk/anyspend/types/api";
2
+ import { DepositContractConfig } from "../components/AnySpendDeposit";
3
+ export type CreateDepositFirstOrderParams = {
4
+ recipientAddress: string;
5
+ srcChain: number;
6
+ dstChain: number;
7
+ srcToken: components["schemas"]["Token"];
8
+ dstToken: components["schemas"]["Token"];
9
+ creatorAddress?: string;
10
+ /** Optional contract config for custom execution after deposit */
11
+ contractConfig?: DepositContractConfig;
12
+ };
13
+ export type UseCreateDepositFirstOrderProps = {
14
+ onSuccess?: (data: any) => void;
15
+ onError?: (error: Error) => void;
16
+ };
17
+ /**
18
+ * Hook for creating deposit_first orders in the Anyspend protocol.
19
+ * This order type doesn't require srcAmount - the user deposits tokens after the order is created.
20
+ */
21
+ export declare function useCreateDepositFirstOrder({ onSuccess, onError }?: UseCreateDepositFirstOrderProps): {
22
+ createOrder: import("@tanstack/react-query").UseMutateFunction<any, Error, CreateDepositFirstOrderParams, unknown>;
23
+ isCreatingOrder: boolean;
24
+ };
@@ -1952,6 +1952,15 @@ export interface components {
1952
1952
  */
1953
1953
  fundAmount: string;
1954
1954
  };
1955
+ /** @description DepositFirst payload - empty at creation time, details determined after deposit is detected */
1956
+ DepositFirstPayload: Record<string, never>;
1957
+ /** @description DepositFirst metadata for display purposes */
1958
+ DepositFirstMetadata: {
1959
+ /** @description Token accepted for deposit */
1960
+ srcToken: components["schemas"]["Token"];
1961
+ /** @description Token to swap to after deposit */
1962
+ dstToken: components["schemas"]["Token"];
1963
+ };
1955
1964
  /** @description Swap metadata for display purposes */
1956
1965
  SwapMetadata: {
1957
1966
  srcToken: components["schemas"]["Token"];
@@ -2037,7 +2046,7 @@ export interface components {
2037
2046
  * @example executed
2038
2047
  * @enum {string}
2039
2048
  */
2040
- status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
2049
+ status: "scanning_deposit_transaction" | "waiting_stripe_payment" | "expired" | "sending_token_from_vault" | "quoting_after_deposit" | "relay" | "executing" | "executed" | "refunding" | "refunded" | "failure";
2041
2050
  /** @description Error details if order failed */
2042
2051
  errorDetails: string | null;
2043
2052
  /**
@@ -2167,7 +2176,16 @@ export interface components {
2167
2176
  payload: components["schemas"]["FundTournamentPayload"];
2168
2177
  metadata: components["schemas"]["TournamentMetadata"];
2169
2178
  };
2170
- Order: components["schemas"]["SwapOrder"] | components["schemas"]["X402SwapOrder"] | components["schemas"]["HypeDuelOrder"] | components["schemas"]["CustomOrder"] | components["schemas"]["CustomExactInOrder"] | components["schemas"]["MintNftOrder"] | components["schemas"]["JoinTournamentOrder"] | components["schemas"]["FundTournamentOrder"];
2179
+ DepositFirstOrder: components["schemas"]["BaseOrder"] & {
2180
+ /**
2181
+ * @description Order type for deposit-first flow where amount is determined after deposit
2182
+ * @enum {string}
2183
+ */
2184
+ type: "deposit_first";
2185
+ payload: components["schemas"]["DepositFirstPayload"];
2186
+ metadata: components["schemas"]["DepositFirstMetadata"];
2187
+ };
2188
+ Order: components["schemas"]["SwapOrder"] | components["schemas"]["X402SwapOrder"] | components["schemas"]["HypeDuelOrder"] | components["schemas"]["CustomOrder"] | components["schemas"]["CustomExactInOrder"] | components["schemas"]["MintNftOrder"] | components["schemas"]["JoinTournamentOrder"] | components["schemas"]["FundTournamentOrder"] | components["schemas"]["DepositFirstOrder"];
2171
2189
  /** @description Swap order request */
2172
2190
  SwapOrderRequest: {
2173
2191
  /**
@@ -2568,7 +2586,51 @@ export interface components {
2568
2586
  */
2569
2587
  creatorAddress?: string;
2570
2588
  };
2571
- OrderRequest: components["schemas"]["SwapOrderRequest"] | components["schemas"]["X402SwapOrderRequest"] | components["schemas"]["HypeDuelOrderRequest"] | components["schemas"]["CustomOrderRequest"] | components["schemas"]["CustomExactInOrderRequest"] | components["schemas"]["MintNftOrderRequest"] | components["schemas"]["JoinTournamentOrderRequest"] | components["schemas"]["FundTournamentOrderRequest"];
2589
+ /** @description Deposit-first order request. The srcAmount is determined after deposit is detected, so it is not required at creation time. This flow does not support onramp - users deposit crypto directly. */
2590
+ DepositFirstOrderRequest: {
2591
+ /**
2592
+ * @description Order type for deposit-first flow
2593
+ * @enum {string}
2594
+ */
2595
+ type: "deposit_first";
2596
+ /**
2597
+ * @description Address to receive the destination tokens after swap
2598
+ * @example 0x58241893EF1f86C9fBd8109Cd44Ea961fDb474e1
2599
+ */
2600
+ recipientAddress: string;
2601
+ /**
2602
+ * @description Source chain ID where deposit will be made
2603
+ * @example 8453
2604
+ */
2605
+ srcChain: number;
2606
+ /**
2607
+ * @description Destination chain ID for the swap
2608
+ * @example 8453
2609
+ */
2610
+ dstChain: number;
2611
+ /**
2612
+ * @description Token contract address that will be deposited
2613
+ * @example 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
2614
+ */
2615
+ srcTokenAddress: string;
2616
+ /**
2617
+ * @description Token contract address to receive after swap
2618
+ * @example 0x0000000000000000000000000000000000000000
2619
+ */
2620
+ dstTokenAddress: string;
2621
+ payload: components["schemas"]["DepositFirstPayload"];
2622
+ metadata: components["schemas"]["DepositFirstMetadata"];
2623
+ /** @description Optional partner identifier */
2624
+ partnerId?: string;
2625
+ /** @description Optional client reference identifier for tracking purposes (alphanumeric, hyphens, and underscores only, max 255 chars) */
2626
+ clientReferenceId?: string;
2627
+ /**
2628
+ * @description Optional address of the order creator
2629
+ * @example 0x58241893EF1f86C9fBd8109Cd44Ea961fDb474e1
2630
+ */
2631
+ creatorAddress?: string;
2632
+ };
2633
+ OrderRequest: components["schemas"]["SwapOrderRequest"] | components["schemas"]["X402SwapOrderRequest"] | components["schemas"]["HypeDuelOrderRequest"] | components["schemas"]["CustomOrderRequest"] | components["schemas"]["CustomExactInOrderRequest"] | components["schemas"]["MintNftOrderRequest"] | components["schemas"]["JoinTournamentOrderRequest"] | components["schemas"]["FundTournamentOrderRequest"] | components["schemas"]["DepositFirstOrderRequest"];
2572
2634
  /** @description Deposit transaction (payment from user) */
2573
2635
  DepositTx: {
2574
2636
  /**
@@ -144,6 +144,10 @@ export interface AnySpendModalProps extends BaseModalProps {
144
144
  customUsdInputValues?: string[];
145
145
  /** Client-provided reference ID for tracking orders */
146
146
  clientReferenceId?: string;
147
+ /** Whether to hide the header */
148
+ hideHeader?: boolean;
149
+ /** When true, disables URL parameter management for swap configuration */
150
+ disableUrlParamManagement?: boolean;
147
151
  }
148
152
  /**
149
153
  * Props for the AnySpend NFT modal
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@b3dotfun/sdk",
3
- "version": "0.0.86",
3
+ "version": "0.0.87-alpha.1",
4
4
  "source": "src/index.ts",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "react-native": "./dist/cjs/index.native.js",
@@ -360,7 +360,7 @@
360
360
  "postcss-prefix-selector": "^2.1.1",
361
361
  "tailwindcss": "3.4.1",
362
362
  "tailwindcss-animate": "^1.0.7",
363
- "thirdweb": "5.112.3",
363
+ "thirdweb": "5.116.1",
364
364
  "tsc-alias": "^1.8.16",
365
365
  "tsc-watch": "^7.1.1",
366
366
  "vitest": "^3.2.4"
@@ -383,7 +383,7 @@
383
383
  "react": "^18.0.0 || ^19.0.0",
384
384
  "react-dom": "^18.0.0 || ^19.0.0",
385
385
  "react-native-mmkv": "^3.2.0",
386
- "thirdweb": "5.112.3",
386
+ "thirdweb": "5.116.1",
387
387
  "three": "^0.175.0",
388
388
  "viem": "2.37.9",
389
389
  "wagmi": "2.16.9"