@b3dotfun/sdk 0.0.40-test.6 → 0.0.41-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/dist/cjs/anyspend/constants/index.d.ts +0 -1
  2. package/dist/cjs/anyspend/constants/index.js +1 -2
  3. package/dist/cjs/anyspend/react/components/AnySpend.d.ts +11 -1
  4. package/dist/cjs/anyspend/react/components/AnySpend.js +22 -10
  5. package/dist/cjs/anyspend/react/components/AnySpendBondKit.js +0 -1
  6. package/dist/cjs/anyspend/react/components/AnySpendBuySpin.js +0 -1
  7. package/dist/cjs/anyspend/react/components/AnySpendCustom.d.ts +1 -0
  8. package/dist/cjs/anyspend/react/components/AnySpendCustom.js +41 -20
  9. package/dist/cjs/anyspend/react/components/AnySpendNFT.d.ts +2 -1
  10. package/dist/cjs/anyspend/react/components/AnySpendNFT.js +2 -2
  11. package/dist/cjs/anyspend/react/components/AnySpendStakeB3.js +0 -1
  12. package/dist/cjs/anyspend/react/components/AnyspendDepositHype.d.ts +8 -0
  13. package/dist/cjs/anyspend/react/components/AnyspendDepositHype.js +10 -8
  14. package/dist/cjs/anyspend/react/components/AnyspendSignatureMint.js +1 -2
  15. package/dist/cjs/anyspend/react/components/common/ConnectWalletPayment.d.ts +2 -1
  16. package/dist/cjs/anyspend/react/components/common/ConnectWalletPayment.js +7 -4
  17. package/dist/cjs/anyspend/react/components/common/CryptoPaySection.d.ts +4 -1
  18. package/dist/cjs/anyspend/react/components/common/CryptoPaySection.js +9 -9
  19. package/dist/cjs/anyspend/react/components/common/CryptoPaymentMethod.js +80 -10
  20. package/dist/cjs/anyspend/react/components/common/CryptoReceiveSection.d.ts +2 -1
  21. package/dist/cjs/anyspend/react/components/common/CryptoReceiveSection.js +40 -37
  22. package/dist/cjs/anyspend/react/components/common/OrderDetails.d.ts +2 -0
  23. package/dist/cjs/anyspend/react/components/common/OrderDetails.js +24 -23
  24. package/dist/cjs/anyspend/react/components/common/OrderDetailsCollapsible.js +9 -8
  25. package/dist/cjs/anyspend/react/components/common/OrderTokenAmount.d.ts +4 -1
  26. package/dist/cjs/anyspend/react/components/common/OrderTokenAmount.js +23 -9
  27. package/dist/cjs/anyspend/react/components/common/PanelOnramp.d.ts +4 -1
  28. package/dist/cjs/anyspend/react/components/common/PanelOnramp.js +10 -6
  29. package/dist/cjs/anyspend/react/components/common/PaymentMethodSwitch.d.ts +7 -0
  30. package/dist/cjs/anyspend/react/components/common/PaymentMethodSwitch.js +24 -0
  31. package/dist/cjs/anyspend/react/components/common/PointsBadge.d.ts +7 -0
  32. package/dist/cjs/anyspend/react/components/common/PointsBadge.js +7 -0
  33. package/dist/cjs/anyspend/react/components/common/PointsDetailPanel.d.ts +6 -0
  34. package/dist/cjs/anyspend/react/components/common/PointsDetailPanel.js +14 -0
  35. package/dist/cjs/anyspend/react/components/common/TransferCryptoDetails.d.ts +2 -0
  36. package/dist/cjs/anyspend/react/components/common/TransferCryptoDetails.js +6 -4
  37. package/dist/cjs/anyspend/react/contexts/FeatureFlagsContext.d.ts +11 -0
  38. package/dist/cjs/anyspend/react/contexts/FeatureFlagsContext.js +21 -0
  39. package/dist/cjs/anyspend/react/hooks/useAnyspendFlow.d.ts +4 -1
  40. package/dist/cjs/anyspend/react/hooks/useAnyspendFlow.js +18 -8
  41. package/dist/cjs/anyspend/react/providers/AnyspendProvider.d.ts +5 -2
  42. package/dist/cjs/anyspend/react/providers/AnyspendProvider.js +5 -3
  43. package/dist/cjs/anyspend/react/providers/index.d.ts +1 -0
  44. package/dist/cjs/anyspend/react/providers/index.js +3 -0
  45. package/dist/cjs/anyspend/services/anyspend.d.ts +1 -1
  46. package/dist/cjs/anyspend/services/anyspend.js +2 -0
  47. package/dist/cjs/anyspend/types/api.d.ts +51 -1
  48. package/dist/cjs/anyspend/utils/chain.js +1 -1
  49. package/dist/cjs/anyspend/utils/orderPayload.js +3 -0
  50. package/dist/cjs/bondkit/bondkitToken.d.ts +37 -2
  51. package/dist/cjs/bondkit/bondkitToken.js +268 -2
  52. package/dist/cjs/bondkit/bondkitTokenFactory.d.ts +1 -1
  53. package/dist/cjs/bondkit/bondkitTokenFactory.js +2 -2
  54. package/dist/cjs/bondkit/components/TradingView.js +3 -4
  55. package/dist/cjs/bondkit/config.d.ts +1 -1
  56. package/dist/cjs/bondkit/config.js +5 -2
  57. package/dist/cjs/bondkit/constants.d.ts +4 -0
  58. package/dist/cjs/bondkit/constants.js +6 -1
  59. package/dist/cjs/bondkit/index.d.ts +1 -0
  60. package/dist/cjs/bondkit/index.js +4 -1
  61. package/dist/cjs/bondkit/swapService.d.ts +43 -0
  62. package/dist/cjs/bondkit/swapService.js +376 -0
  63. package/dist/cjs/bondkit/types.d.ts +10 -4
  64. package/dist/cjs/bondkit/types.js +4 -5
  65. package/dist/cjs/global-account/react/components/B3Provider/B3Provider.d.ts +2 -1
  66. package/dist/cjs/global-account/react/components/B3Provider/B3Provider.js +27 -28
  67. package/dist/cjs/global-account/react/components/LinkAccount/LinkAccount.js +63 -3
  68. package/dist/cjs/global-account/react/components/ManageAccount/ManageAccount.js +35 -2
  69. package/dist/cjs/global-account/react/components/SignInWithB3/steps/LoginStepCustom.js +4 -3
  70. package/dist/cjs/global-account/react/hooks/index.d.ts +1 -0
  71. package/dist/cjs/global-account/react/hooks/index.js +3 -1
  72. package/dist/cjs/global-account/react/hooks/useAccountAssets.js +5 -2
  73. package/dist/cjs/global-account/react/hooks/useAccountWallet.js +0 -12
  74. package/dist/cjs/global-account/react/hooks/useAuthentication.js +2 -3
  75. package/dist/cjs/global-account/react/hooks/useGlobalAccount.d.ts +6 -0
  76. package/dist/cjs/global-account/react/hooks/useGlobalAccount.js +32 -0
  77. package/dist/cjs/global-account/react/hooks/useQueryB3.js +5 -2
  78. package/dist/cjs/global-account/react/hooks/useQueryBSMNT.js +5 -2
  79. package/dist/cjs/global-account/react/hooks/useSimBalance.js +2 -2
  80. package/dist/cjs/global-account/react/hooks/useTokenBalancesByChain.js +7 -1
  81. package/dist/cjs/global-account/react/hooks/useTokenFromUrl.js +2 -2
  82. package/dist/cjs/global-account/react/hooks/useUnifiedChainSwitchAndExecute.js +28 -24
  83. package/dist/cjs/shared/utils/fetchBalances.d.ts +1 -1
  84. package/dist/esm/anyspend/constants/index.d.ts +0 -1
  85. package/dist/esm/anyspend/constants/index.js +0 -1
  86. package/dist/esm/anyspend/react/components/AnySpend.d.ts +11 -1
  87. package/dist/esm/anyspend/react/components/AnySpend.js +23 -11
  88. package/dist/esm/anyspend/react/components/AnySpendBondKit.js +0 -1
  89. package/dist/esm/anyspend/react/components/AnySpendBuySpin.js +0 -1
  90. package/dist/esm/anyspend/react/components/AnySpendCustom.d.ts +1 -0
  91. package/dist/esm/anyspend/react/components/AnySpendCustom.js +41 -20
  92. package/dist/esm/anyspend/react/components/AnySpendNFT.d.ts +2 -1
  93. package/dist/esm/anyspend/react/components/AnySpendNFT.js +2 -2
  94. package/dist/esm/anyspend/react/components/AnySpendStakeB3.js +0 -1
  95. package/dist/esm/anyspend/react/components/AnyspendDepositHype.d.ts +8 -0
  96. package/dist/esm/anyspend/react/components/AnyspendDepositHype.js +11 -9
  97. package/dist/esm/anyspend/react/components/AnyspendSignatureMint.js +1 -2
  98. package/dist/esm/anyspend/react/components/common/ConnectWalletPayment.d.ts +2 -1
  99. package/dist/esm/anyspend/react/components/common/ConnectWalletPayment.js +8 -5
  100. package/dist/esm/anyspend/react/components/common/CryptoPaySection.d.ts +4 -1
  101. package/dist/esm/anyspend/react/components/common/CryptoPaySection.js +9 -9
  102. package/dist/esm/anyspend/react/components/common/CryptoPaymentMethod.js +80 -10
  103. package/dist/esm/anyspend/react/components/common/CryptoReceiveSection.d.ts +2 -1
  104. package/dist/esm/anyspend/react/components/common/CryptoReceiveSection.js +40 -37
  105. package/dist/esm/anyspend/react/components/common/OrderDetails.d.ts +2 -0
  106. package/dist/esm/anyspend/react/components/common/OrderDetails.js +25 -24
  107. package/dist/esm/anyspend/react/components/common/OrderDetailsCollapsible.js +10 -9
  108. package/dist/esm/anyspend/react/components/common/OrderTokenAmount.d.ts +4 -1
  109. package/dist/esm/anyspend/react/components/common/OrderTokenAmount.js +23 -9
  110. package/dist/esm/anyspend/react/components/common/PanelOnramp.d.ts +4 -1
  111. package/dist/esm/anyspend/react/components/common/PanelOnramp.js +10 -6
  112. package/dist/esm/anyspend/react/components/common/PaymentMethodSwitch.d.ts +7 -0
  113. package/dist/esm/anyspend/react/components/common/PaymentMethodSwitch.js +21 -0
  114. package/dist/esm/anyspend/react/components/common/PointsBadge.d.ts +7 -0
  115. package/dist/esm/anyspend/react/components/common/PointsBadge.js +4 -0
  116. package/dist/esm/anyspend/react/components/common/PointsDetailPanel.d.ts +6 -0
  117. package/dist/esm/anyspend/react/components/common/PointsDetailPanel.js +8 -0
  118. package/dist/esm/anyspend/react/components/common/TransferCryptoDetails.d.ts +2 -0
  119. package/dist/esm/anyspend/react/components/common/TransferCryptoDetails.js +6 -4
  120. package/dist/esm/anyspend/react/contexts/FeatureFlagsContext.d.ts +11 -0
  121. package/dist/esm/anyspend/react/contexts/FeatureFlagsContext.js +17 -0
  122. package/dist/esm/anyspend/react/hooks/useAnyspendFlow.d.ts +4 -1
  123. package/dist/esm/anyspend/react/hooks/useAnyspendFlow.js +18 -8
  124. package/dist/esm/anyspend/react/providers/AnyspendProvider.d.ts +5 -2
  125. package/dist/esm/anyspend/react/providers/AnyspendProvider.js +5 -3
  126. package/dist/esm/anyspend/react/providers/index.d.ts +1 -0
  127. package/dist/esm/anyspend/react/providers/index.js +1 -0
  128. package/dist/esm/anyspend/services/anyspend.d.ts +1 -1
  129. package/dist/esm/anyspend/services/anyspend.js +2 -0
  130. package/dist/esm/anyspend/types/api.d.ts +51 -1
  131. package/dist/esm/anyspend/utils/chain.js +1 -1
  132. package/dist/esm/anyspend/utils/orderPayload.js +3 -0
  133. package/dist/esm/bondkit/bondkitToken.d.ts +37 -2
  134. package/dist/esm/bondkit/bondkitToken.js +268 -2
  135. package/dist/esm/bondkit/bondkitTokenFactory.d.ts +1 -1
  136. package/dist/esm/bondkit/bondkitTokenFactory.js +2 -2
  137. package/dist/esm/bondkit/components/TradingView.js +3 -4
  138. package/dist/esm/bondkit/config.d.ts +1 -1
  139. package/dist/esm/bondkit/config.js +5 -2
  140. package/dist/esm/bondkit/constants.d.ts +4 -0
  141. package/dist/esm/bondkit/constants.js +5 -0
  142. package/dist/esm/bondkit/index.d.ts +1 -0
  143. package/dist/esm/bondkit/index.js +2 -0
  144. package/dist/esm/bondkit/swapService.d.ts +43 -0
  145. package/dist/esm/bondkit/swapService.js +372 -0
  146. package/dist/esm/bondkit/types.d.ts +10 -4
  147. package/dist/esm/bondkit/types.js +4 -5
  148. package/dist/esm/global-account/react/components/B3Provider/B3Provider.d.ts +2 -1
  149. package/dist/esm/global-account/react/components/B3Provider/B3Provider.js +27 -28
  150. package/dist/esm/global-account/react/components/LinkAccount/LinkAccount.js +65 -5
  151. package/dist/esm/global-account/react/components/ManageAccount/ManageAccount.js +35 -2
  152. package/dist/esm/global-account/react/components/SignInWithB3/steps/LoginStepCustom.js +3 -2
  153. package/dist/esm/global-account/react/hooks/index.d.ts +1 -0
  154. package/dist/esm/global-account/react/hooks/index.js +1 -0
  155. package/dist/esm/global-account/react/hooks/useAccountAssets.js +2 -2
  156. package/dist/esm/global-account/react/hooks/useAccountWallet.js +0 -12
  157. package/dist/esm/global-account/react/hooks/useAuthentication.js +2 -3
  158. package/dist/esm/global-account/react/hooks/useGlobalAccount.d.ts +6 -0
  159. package/dist/esm/global-account/react/hooks/useGlobalAccount.js +29 -0
  160. package/dist/esm/global-account/react/hooks/useQueryB3.js +5 -2
  161. package/dist/esm/global-account/react/hooks/useQueryBSMNT.js +5 -2
  162. package/dist/esm/global-account/react/hooks/useSimBalance.js +2 -2
  163. package/dist/esm/global-account/react/hooks/useTokenBalancesByChain.js +4 -1
  164. package/dist/esm/global-account/react/hooks/useTokenFromUrl.js +2 -2
  165. package/dist/esm/global-account/react/hooks/useUnifiedChainSwitchAndExecute.js +29 -25
  166. package/dist/esm/shared/utils/fetchBalances.d.ts +1 -1
  167. package/dist/styles/index.css +1 -1
  168. package/dist/types/anyspend/constants/index.d.ts +0 -1
  169. package/dist/types/anyspend/react/components/AnySpend.d.ts +11 -1
  170. package/dist/types/anyspend/react/components/AnySpendCustom.d.ts +1 -0
  171. package/dist/types/anyspend/react/components/AnySpendNFT.d.ts +2 -1
  172. package/dist/types/anyspend/react/components/AnyspendDepositHype.d.ts +8 -0
  173. package/dist/types/anyspend/react/components/common/ConnectWalletPayment.d.ts +2 -1
  174. package/dist/types/anyspend/react/components/common/CryptoPaySection.d.ts +4 -1
  175. package/dist/types/anyspend/react/components/common/CryptoReceiveSection.d.ts +2 -1
  176. package/dist/types/anyspend/react/components/common/OrderDetails.d.ts +2 -0
  177. package/dist/types/anyspend/react/components/common/OrderTokenAmount.d.ts +4 -1
  178. package/dist/types/anyspend/react/components/common/PanelOnramp.d.ts +4 -1
  179. package/dist/types/anyspend/react/components/common/PaymentMethodSwitch.d.ts +7 -0
  180. package/dist/types/anyspend/react/components/common/PointsBadge.d.ts +7 -0
  181. package/dist/types/anyspend/react/components/common/PointsDetailPanel.d.ts +6 -0
  182. package/dist/types/anyspend/react/components/common/TransferCryptoDetails.d.ts +2 -0
  183. package/dist/types/anyspend/react/contexts/FeatureFlagsContext.d.ts +11 -0
  184. package/dist/types/anyspend/react/hooks/useAnyspendFlow.d.ts +4 -1
  185. package/dist/types/anyspend/react/providers/AnyspendProvider.d.ts +5 -2
  186. package/dist/types/anyspend/react/providers/index.d.ts +1 -0
  187. package/dist/types/anyspend/services/anyspend.d.ts +1 -1
  188. package/dist/types/anyspend/types/api.d.ts +51 -1
  189. package/dist/types/bondkit/bondkitToken.d.ts +37 -2
  190. package/dist/types/bondkit/bondkitTokenFactory.d.ts +1 -1
  191. package/dist/types/bondkit/config.d.ts +1 -1
  192. package/dist/types/bondkit/constants.d.ts +4 -0
  193. package/dist/types/bondkit/index.d.ts +1 -0
  194. package/dist/types/bondkit/swapService.d.ts +43 -0
  195. package/dist/types/bondkit/types.d.ts +10 -4
  196. package/dist/types/global-account/react/components/B3Provider/B3Provider.d.ts +2 -1
  197. package/dist/types/global-account/react/hooks/index.d.ts +1 -0
  198. package/dist/types/global-account/react/hooks/useGlobalAccount.d.ts +6 -0
  199. package/dist/types/shared/utils/fetchBalances.d.ts +1 -1
  200. package/package.json +1 -1
  201. package/src/anyspend/constants/index.ts +0 -2
  202. package/src/anyspend/react/components/AnySpend.tsx +52 -18
  203. package/src/anyspend/react/components/AnySpendBondKit.tsx +0 -1
  204. package/src/anyspend/react/components/AnySpendBuySpin.tsx +0 -1
  205. package/src/anyspend/react/components/AnySpendCustom.tsx +82 -34
  206. package/src/anyspend/react/components/AnySpendNFT.tsx +3 -0
  207. package/src/anyspend/react/components/AnySpendStakeB3.tsx +0 -1
  208. package/src/anyspend/react/components/AnyspendDepositHype.tsx +38 -18
  209. package/src/anyspend/react/components/AnyspendSignatureMint.tsx +1 -2
  210. package/src/anyspend/react/components/common/ConnectWalletPayment.tsx +12 -4
  211. package/src/anyspend/react/components/common/CryptoPaySection.tsx +13 -8
  212. package/src/anyspend/react/components/common/CryptoPaymentMethod.tsx +170 -44
  213. package/src/anyspend/react/components/common/CryptoReceiveSection.tsx +61 -45
  214. package/src/anyspend/react/components/common/OrderDetails.tsx +60 -47
  215. package/src/anyspend/react/components/common/OrderDetailsCollapsible.tsx +62 -41
  216. package/src/anyspend/react/components/common/OrderTokenAmount.tsx +28 -8
  217. package/src/anyspend/react/components/common/PanelOnramp.tsx +28 -15
  218. package/src/anyspend/react/components/common/PaymentMethodSwitch.tsx +38 -0
  219. package/src/anyspend/react/components/common/PointsBadge.tsx +20 -0
  220. package/src/anyspend/react/components/common/PointsDetailPanel.tsx +55 -0
  221. package/src/anyspend/react/components/common/TransferCryptoDetails.tsx +65 -43
  222. package/src/anyspend/react/contexts/FeatureFlagsContext.tsx +34 -0
  223. package/src/anyspend/react/hooks/useAnyspendFlow.ts +18 -8
  224. package/src/anyspend/react/hooks/useAnyspendOrderAndTransactions.ts +1 -1
  225. package/src/anyspend/react/hooks/useCoinbaseOnrampOptions.ts +1 -1
  226. package/src/anyspend/react/providers/AnyspendProvider.tsx +11 -6
  227. package/src/anyspend/react/providers/index.ts +1 -0
  228. package/src/anyspend/services/anyspend.ts +3 -1
  229. package/src/anyspend/types/api.ts +51 -1
  230. package/src/anyspend/types/api_req_res.ts +6 -10
  231. package/src/anyspend/utils/chain.ts +1 -1
  232. package/src/anyspend/utils/orderPayload.ts +3 -0
  233. package/src/bondkit/bondkitToken.ts +323 -3
  234. package/src/bondkit/bondkitTokenFactory.ts +2 -2
  235. package/src/bondkit/components/TradingView.tsx +3 -5
  236. package/src/bondkit/config.ts +5 -2
  237. package/src/bondkit/constants.ts +7 -0
  238. package/src/bondkit/index.ts +3 -0
  239. package/src/bondkit/swapService.ts +464 -0
  240. package/src/bondkit/types.ts +12 -5
  241. package/src/global-account/react/components/B3Provider/B3Provider.tsx +31 -32
  242. package/src/global-account/react/components/LinkAccount/LinkAccount.tsx +106 -32
  243. package/src/global-account/react/components/ManageAccount/ManageAccount.tsx +60 -5
  244. package/src/global-account/react/components/SignInWithB3/steps/LoginStepCustom.tsx +4 -2
  245. package/src/global-account/react/hooks/index.ts +1 -0
  246. package/src/global-account/react/hooks/useAccountAssets.ts +4 -3
  247. package/src/global-account/react/hooks/useAccountWallet.tsx +0 -13
  248. package/src/global-account/react/hooks/useAuthentication.ts +2 -3
  249. package/src/global-account/react/hooks/useGlobalAccount.tsx +36 -0
  250. package/src/global-account/react/hooks/useOneBalance.tsx +1 -1
  251. package/src/global-account/react/hooks/useQueryB3.ts +22 -15
  252. package/src/global-account/react/hooks/useQueryBSMNT.ts +22 -15
  253. package/src/global-account/react/hooks/useSimBalance.ts +2 -2
  254. package/src/global-account/react/hooks/useTokenBalancesByChain.tsx +4 -1
  255. package/src/global-account/react/hooks/useTokenFromUrl.tsx +2 -2
  256. package/src/global-account/react/hooks/useUnifiedChainSwitchAndExecute.ts +30 -26
  257. package/src/shared/utils/fetchBalances.ts +1 -1
  258. package/dist/cjs/global-account/examples/client-selection-example.d.ts +0 -5
  259. package/dist/cjs/global-account/examples/client-selection-example.js +0 -96
  260. package/dist/esm/global-account/examples/client-selection-example.d.ts +0 -5
  261. package/dist/esm/global-account/examples/client-selection-example.js +0 -93
  262. package/dist/types/global-account/examples/client-selection-example.d.ts +0 -5
  263. package/src/global-account/docs/client-selection.md +0 -292
  264. package/src/global-account/examples/client-selection-example.tsx +0 -197
@@ -6,18 +6,18 @@ import { formatDisplayNumber } from "../../../../shared/utils/number.js";
6
6
  import { ChevronRight } from "lucide-react";
7
7
  import { motion } from "motion/react";
8
8
  import { useEffect, useRef } from "react";
9
- import { useAccount } from "wagmi";
10
9
  import { CryptoPaymentMethodType } from "./CryptoPaymentMethod.js";
11
10
  import { OrderTokenAmount } from "./OrderTokenAmount.js";
12
11
  import { TokenBalance } from "./TokenBalance.js";
13
- export function CryptoPaySection({ selectedSrcChainId, setSelectedSrcChainId, selectedSrcToken, setSelectedSrcToken, srcAmount, setSrcAmount, setIsSrcInputDirty, selectedCryptoPaymentMethod, onSelectCryptoPaymentMethod, anyspendQuote, }) {
14
- const { address: connectedAddress, isConnected } = useAccount();
15
- const { data: profileData } = useProfile({ address: connectedAddress });
16
- const connectedName = profileData?.displayName;
17
- const { address: globalAddress } = useAccountWallet();
12
+ export function CryptoPaySection({ selectedSrcChainId, setSelectedSrcChainId, selectedSrcToken, setSelectedSrcToken, srcAmount, setSrcAmount, setIsSrcInputDirty, selectedCryptoPaymentMethod, onSelectCryptoPaymentMethod, anyspendQuote, onTokenSelect, }) {
13
+ const { connectedSmartWallet, connectedEOAWallet } = useAccountWallet();
18
14
  const { data: srcTokenMetadata } = useTokenData(selectedSrcToken?.chainId, selectedSrcToken?.address);
19
15
  // Determine which address to use based on payment method
20
- const walletAddress = selectedCryptoPaymentMethod === CryptoPaymentMethodType.GLOBAL_WALLET ? globalAddress : connectedAddress;
16
+ const walletAddress = selectedCryptoPaymentMethod === CryptoPaymentMethodType.GLOBAL_WALLET
17
+ ? connectedSmartWallet?.getAccount()?.address
18
+ : connectedEOAWallet?.getAccount()?.address;
19
+ const { data: profileData } = useProfile({ address: walletAddress });
20
+ const connectedName = profileData?.displayName;
21
21
  // Add ref to track if we've applied metadata
22
22
  const appliedSrcMetadataRef = useRef(false);
23
23
  // Update source token with metadata
@@ -42,10 +42,10 @@ export function CryptoPaySection({ selectedSrcChainId, setSelectedSrcChainId, se
42
42
  useEffect(() => {
43
43
  appliedSrcMetadataRef.current = false;
44
44
  }, [selectedSrcToken.address, selectedSrcToken.chainId]);
45
- return (_jsxs(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" }, className: "pay-section bg-as-surface-secondary border-as-border-secondary relative flex w-full flex-col gap-2 rounded-2xl border p-4 sm:p-6", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("div", { className: "text-as-primary/50 flex h-7 items-center text-sm", children: "Pay" }), _jsx("button", { className: "text-as-tertiarry flex h-7 items-center gap-2 text-sm transition-colors focus:!outline-none", onClick: onSelectCryptoPaymentMethod, children: selectedCryptoPaymentMethod === CryptoPaymentMethodType.CONNECT_WALLET ? (_jsxs(_Fragment, { children: [isConnected ? (_jsx("div", { className: "flex items-center gap-1", children: connectedName ? formatUsername(connectedName) : shortenAddress(connectedAddress || "") })) : ("Connect wallet"), _jsx(ChevronRight, { className: "h-4 w-4" })] })) : selectedCryptoPaymentMethod === CryptoPaymentMethodType.GLOBAL_WALLET ? (_jsxs(_Fragment, { children: ["Global Account", _jsx(ChevronRight, { className: "h-4 w-4" })] })) : selectedCryptoPaymentMethod === CryptoPaymentMethodType.TRANSFER_CRYPTO ? (_jsxs(_Fragment, { children: ["Transfer crypto", _jsx(ChevronRight, { className: "h-4 w-4" })] })) : (_jsxs(_Fragment, { children: ["Select payment method", _jsx(ChevronRight, { className: "h-4 w-4" })] })) })] }), _jsx(OrderTokenAmount, { address: walletAddress, context: "from", inputValue: srcAmount, onChangeInput: value => {
45
+ return (_jsxs(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" }, className: "pay-section bg-as-surface-secondary border-as-border-secondary relative flex w-full flex-col gap-2 rounded-2xl border p-4 sm:p-6", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("div", { className: "text-as-primary/50 flex h-7 items-center text-sm", children: "Pay" }), _jsx("button", { className: "text-as-tertiarry flex h-7 items-center gap-2 text-sm transition-colors focus:!outline-none", onClick: onSelectCryptoPaymentMethod, children: selectedCryptoPaymentMethod === CryptoPaymentMethodType.CONNECT_WALLET ? (_jsxs(_Fragment, { children: [walletAddress ? (_jsx("div", { className: "flex items-center gap-1", children: connectedName ? formatUsername(connectedName) : shortenAddress(walletAddress || "") })) : ("Connect wallet"), _jsx(ChevronRight, { className: "h-4 w-4" })] })) : selectedCryptoPaymentMethod === CryptoPaymentMethodType.GLOBAL_WALLET ? (_jsxs(_Fragment, { children: ["Global Account", _jsx(ChevronRight, { className: "h-4 w-4" })] })) : selectedCryptoPaymentMethod === CryptoPaymentMethodType.TRANSFER_CRYPTO ? (_jsxs(_Fragment, { children: ["Transfer crypto", _jsx(ChevronRight, { className: "h-4 w-4" })] })) : (_jsxs(_Fragment, { children: ["Select payment method", _jsx(ChevronRight, { className: "h-4 w-4" })] })) })] }), _jsx(OrderTokenAmount, { address: walletAddress, context: "from", inputValue: srcAmount, onChangeInput: value => {
46
46
  setIsSrcInputDirty(true);
47
47
  setSrcAmount(value);
48
- }, chainId: selectedSrcChainId, setChainId: setSelectedSrcChainId, token: selectedSrcToken, setToken: setSelectedSrcToken }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("div", { className: "text-as-primary/50 flex h-5 items-center text-sm", children: formatDisplayNumber(anyspendQuote?.data?.currencyIn?.amountUsd, {
48
+ }, chainId: selectedSrcChainId, setChainId: setSelectedSrcChainId, token: selectedSrcToken, setToken: setSelectedSrcToken, onTokenSelect: onTokenSelect }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("div", { className: "text-as-primary/50 flex h-5 items-center text-sm", children: formatDisplayNumber(anyspendQuote?.data?.currencyIn?.amountUsd, {
49
49
  style: "currency",
50
50
  fallback: "",
51
51
  }) }), _jsx(TokenBalance, { token: selectedSrcToken, walletAddress: walletAddress, onChangeInput: value => {
@@ -3,11 +3,14 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useAccountWallet } from "../../../../global-account/react/index.js";
4
4
  import { cn } from "../../../../shared/utils/cn.js";
5
5
  import { shortenAddress } from "../../../../shared/utils/formatAddress.js";
6
+ import { client } from "../../../../shared/utils/thirdweb.js";
6
7
  import { WalletCoinbase, WalletMetamask, WalletPhantom, WalletRainbow, WalletWalletConnect } from "@web3icons/react";
7
8
  import { ChevronLeft, ChevronRightCircle, Wallet, X, ZapIcon } from "lucide-react";
8
9
  import { useState } from "react";
9
10
  import { createPortal } from "react-dom";
10
11
  import { toast } from "sonner";
12
+ import { useSetActiveWallet, useWalletInfo } from "thirdweb/react";
13
+ import { createWallet } from "thirdweb/wallets";
11
14
  import { useAccount, useConnect, useDisconnect, useWalletClient } from "wagmi";
12
15
  export var CryptoPaymentMethodType;
13
16
  (function (CryptoPaymentMethodType) {
@@ -17,12 +20,58 @@ export var CryptoPaymentMethodType;
17
20
  CryptoPaymentMethodType["TRANSFER_CRYPTO"] = "transfer_crypto";
18
21
  })(CryptoPaymentMethodType || (CryptoPaymentMethodType = {}));
19
22
  export function CryptoPaymentMethod({ selectedPaymentMethod, setSelectedPaymentMethod, isCreatingOrder, onBack, onSelectPaymentMethod, }) {
20
- const { wallet: globalWallet, address: globalAddress } = useAccountWallet();
21
- const { address, isConnected, connector } = useAccount();
23
+ const { wallet: globalWallet, connectedEOAWallet: connectedEOAWallet, connectedSmartWallet: connectedSmartWallet, } = useAccountWallet();
24
+ const { connector, address, isConnected: wagmiWalletIsConnected } = useAccount();
22
25
  const { connect, connectors, isPending } = useConnect();
23
26
  const { disconnect } = useDisconnect();
24
27
  const { data: walletClient } = useWalletClient();
25
28
  const [showWalletModal, setShowWalletModal] = useState(false);
29
+ const setActiveWallet = useSetActiveWallet();
30
+ const { data: eoaWalletInfo } = useWalletInfo(connectedEOAWallet?.id);
31
+ const isConnected = !!connectedEOAWallet;
32
+ const globalAddress = connectedSmartWallet?.getAccount()?.address;
33
+ // Helper function to check if two addresses are the same
34
+ const isSameAddress = (addr1, addr2) => {
35
+ if (!addr1 || !addr2)
36
+ return false;
37
+ return addr1.toLowerCase() === addr2.toLowerCase();
38
+ };
39
+ // Check if connectedEOAWallet and wagmi wallet represent the same wallet
40
+ const connectedEOAAddress = connectedEOAWallet?.getAccount()?.address;
41
+ const wagmiAddress = address;
42
+ const isWalletDuplicated = isSameAddress(connectedEOAAddress, wagmiAddress);
43
+ // Determine which wallet to show (prefer connectedEOAWallet if both exist and are the same)
44
+ const shouldShowConnectedEOA = !!connectedEOAWallet;
45
+ const shouldShowWagmiWallet = wagmiWalletIsConnected && (!isWalletDuplicated || !connectedEOAWallet);
46
+ // Map wagmi connector names to thirdweb wallet IDs
47
+ const getThirdwebWalletId = (connectorName) => {
48
+ const walletMap = {
49
+ MetaMask: "io.metamask",
50
+ "Coinbase Wallet": "com.coinbase.wallet",
51
+ Rainbow: "me.rainbow",
52
+ WalletConnect: "walletConnect",
53
+ Phantom: "app.phantom",
54
+ };
55
+ return walletMap[connectorName] || null;
56
+ };
57
+ // Create thirdweb wallet from wagmi connector
58
+ const createThirdwebWalletFromConnector = async (connectorName) => {
59
+ const walletId = getThirdwebWalletId(connectorName);
60
+ if (!walletId) {
61
+ console.warn(`No thirdweb wallet ID found for connector: ${connectorName}`);
62
+ return null;
63
+ }
64
+ try {
65
+ const thirdwebWallet = createWallet(walletId);
66
+ // Connect the wallet to sync with the existing wagmi connection
67
+ await thirdwebWallet.connect({ client });
68
+ return thirdwebWallet;
69
+ }
70
+ catch (error) {
71
+ console.error(`Failed to create thirdweb wallet for ${connectorName}:`, error);
72
+ return null;
73
+ }
74
+ };
26
75
  // Define available wallet connectors
27
76
  const availableConnectors = connectors.filter(connector => ["MetaMask", "WalletConnect", "Coinbase Wallet", "Rainbow", "Phantom"].includes(connector.name));
28
77
  // Define wallet options with icons and info
@@ -117,15 +166,30 @@ export function CryptoPaymentMethod({ selectedPaymentMethod, setSelectedPaymentM
117
166
  }
118
167
  }
119
168
  };
120
- return (_jsxs("div", { className: "crypto-payment-method mx-auto h-fit w-[460px] max-w-full", children: [_jsxs("div", { className: cn("relative flex flex-col gap-10"), children: [_jsx("button", { onClick: onBack, className: "text-as-quaternary hover:text-as-primary absolute flex h-8 w-8 items-center justify-center rounded-lg transition-colors", children: _jsx(ChevronLeft, { className: "h-6 w-6" }) }), _jsx("div", { className: "flex items-center justify-around gap-4", children: _jsx("div", { className: "flex-1 text-center", children: _jsx("h2", { className: "text-as-primary text-lg font-semibold", children: "Select a payment method" }) }) }), _jsxs("div", { className: "crypto-payment-methods flex flex-col gap-6", children: [_jsxs("button", { onClick: () => {
121
- // Always show wallet selection modal first
122
- setShowWalletModal(true);
123
- }, className: "crypto-payment-method-connect-wallet bg-as-surface-primary border-as-border-secondary hover:border-as-secondary/80 group flex w-full items-center justify-between gap-4 rounded-xl border px-4 py-3.5 transition-all duration-200 hover:shadow-md", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "wallet-icon flex h-8 w-8 items-center justify-center rounded-full bg-blue-100", children: _jsx(Wallet, { className: "h-4 w-4 text-blue-600" }) }), _jsx("div", { className: "flex flex-col items-start text-left", children: _jsx("h4", { className: "text-as-primary font-semibold", children: "Connect wallet" }) })] }), _jsx(ChevronRightCircle, { className: "text-as-primary/40 group-hover:text-as-primary/60 h-5 w-5 transition-colors" })] }), _jsxs("button", { onClick: () => {
124
- setSelectedPaymentMethod(CryptoPaymentMethodType.TRANSFER_CRYPTO);
125
- onSelectPaymentMethod(CryptoPaymentMethodType.TRANSFER_CRYPTO);
126
- }, disabled: isCreatingOrder, className: "crypto-payment-method-transfer bg-as-surface-primary border-as-border-secondary hover:border-as-secondary/80 group flex w-full items-center justify-between gap-4 rounded-xl border px-4 py-3.5 transition-all duration-200 hover:shadow-md", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "wallet-icon flex h-8 w-8 items-center justify-center rounded-full bg-orange-100", children: _jsx(ZapIcon, { className: "h-4 w-4" }) }), _jsx("div", { className: "flex flex-col items-start text-left", children: _jsx("h4", { className: "text-as-primary font-semibold", children: "Transfer crypto" }) })] }), _jsx(ChevronRightCircle, { className: "text-as-primary/40 group-hover:text-as-primary/60 h-5 w-5 transition-colors" })] }), (isConnected || globalAddress) && (_jsxs("div", { className: "installed-wallets", children: [_jsx("h3", { className: "text-as-primary/80 mb-3 text-sm font-medium", children: "Connected wallets" }), _jsxs("div", { className: "space-y-2", children: [isConnected && (_jsx("button", { onClick: () => {
169
+ return (_jsxs("div", { className: "crypto-payment-method mx-auto h-fit w-[460px] max-w-full", children: [_jsxs("div", { className: cn("relative flex flex-col gap-10"), children: [_jsx("button", { onClick: onBack, className: "text-as-quaternary hover:text-as-primary absolute flex h-8 w-8 items-center justify-center rounded-lg transition-colors", children: _jsx(ChevronLeft, { className: "h-6 w-6" }) }), _jsx("div", { className: "flex items-center justify-around gap-4", children: _jsx("div", { className: "flex-1 text-center", children: _jsx("h2", { className: "text-as-primary text-lg font-semibold", children: "Select a payment method" }) }) }), _jsxs("div", { className: "crypto-payment-methods flex flex-col gap-4", children: [(shouldShowConnectedEOA || shouldShowWagmiWallet || globalAddress) && (_jsxs("div", { className: "installed-wallets", children: [_jsx("h3", { className: "text-as-primary/80 mb-3 text-sm font-medium", children: "Connected wallets" }), _jsxs("div", { className: "space-y-2", children: [shouldShowConnectedEOA && (_jsx("button", { onClick: () => {
170
+ setSelectedPaymentMethod(CryptoPaymentMethodType.CONNECT_WALLET);
171
+ onSelectPaymentMethod(CryptoPaymentMethodType.CONNECT_WALLET);
172
+ setActiveWallet(connectedEOAWallet);
173
+ toast.success(`Selected ${eoaWalletInfo?.name || connector?.name || "wallet"}`);
174
+ }, className: cn("crypto-payment-method-connect-wallet w-full rounded-xl border p-4 text-left transition-all hover:shadow-md", selectedPaymentMethod === CryptoPaymentMethodType.CONNECT_WALLET
175
+ ? "connected-wallet border-as-brand bg-as-brand/5"
176
+ : "border-as-border-secondary bg-as-surface-primary hover:border-as-secondary/80"), children: _jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "wallet-icon flex h-10 w-10 items-center justify-center rounded-full bg-blue-100", children: _jsx(Wallet, { className: "h-5 w-5 text-blue-600" }) }), _jsxs("div", { className: "flex flex-col", children: [_jsx("span", { className: "text-as-primary font-semibold", children: eoaWalletInfo?.name || connector?.name || "Connected Wallet" }), _jsx("span", { className: "text-as-primary/60 text-sm", children: shortenAddress(connectedEOAWallet?.getAccount()?.address || "") })] })] }), _jsxs("div", { className: "flex items-center gap-2", children: [selectedPaymentMethod === CryptoPaymentMethodType.CONNECT_WALLET && (_jsx("div", { className: "h-2 w-2 rounded-full bg-green-500" })), _jsx("button", { onClick: e => {
177
+ e.stopPropagation();
178
+ disconnect();
179
+ toast.success("Wallet disconnected");
180
+ if (selectedPaymentMethod === CryptoPaymentMethodType.CONNECT_WALLET) {
181
+ setSelectedPaymentMethod(CryptoPaymentMethodType.NONE);
182
+ }
183
+ }, className: "text-as-primary/60 hover:text-as-primary/80 rounded-lg p-1.5 transition-colors", children: _jsx(X, { className: "h-4 w-4" }) })] })] }) })), shouldShowWagmiWallet && (_jsx("button", { onClick: async () => {
127
184
  setSelectedPaymentMethod(CryptoPaymentMethodType.CONNECT_WALLET);
128
185
  onSelectPaymentMethod(CryptoPaymentMethodType.CONNECT_WALLET);
186
+ // Create thirdweb wallet from wagmi connector
187
+ if (connector?.name) {
188
+ const thirdwebWallet = await createThirdwebWalletFromConnector(connector.name);
189
+ if (thirdwebWallet) {
190
+ setActiveWallet(thirdwebWallet);
191
+ }
192
+ }
129
193
  toast.success(`Selected ${connector?.name || "wallet"}`);
130
194
  }, className: cn("crypto-payment-method-connect-wallet w-full rounded-xl border p-4 text-left transition-all hover:shadow-md", selectedPaymentMethod === CryptoPaymentMethodType.CONNECT_WALLET
131
195
  ? "connected-wallet border-as-brand bg-as-brand/5"
@@ -142,7 +206,13 @@ export function CryptoPaymentMethod({ selectedPaymentMethod, setSelectedPaymentM
142
206
  toast.success("Selected B3 Account");
143
207
  }, className: cn("crypto-payment-method-global-wallet w-full rounded-xl border p-4 text-left transition-all hover:shadow-md", selectedPaymentMethod === CryptoPaymentMethodType.GLOBAL_WALLET
144
208
  ? "connected-wallet border-as-brand bg-as-brand/5"
145
- : "border-as-border-secondary bg-as-surface-primary hover:border-as-secondary/80"), children: _jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-3", children: [globalWallet?.meta?.icon ? (_jsx("img", { src: globalWallet.meta.icon, alt: "Global Account", className: "h-10 w-10 rounded-full" })) : (_jsx("div", { className: "wallet-icon flex h-10 w-10 items-center justify-center rounded-full bg-purple-100", children: _jsx(Wallet, { className: "h-5 w-5 text-purple-600" }) })), _jsxs("div", { className: "flex flex-col", children: [_jsx("span", { className: "text-as-primary font-semibold", children: "Global Account" }), _jsx("span", { className: "text-as-primary/60 text-sm", children: shortenAddress(globalAddress || "") })] })] }), _jsx("div", { className: "flex items-center gap-2", children: selectedPaymentMethod === CryptoPaymentMethodType.GLOBAL_WALLET && (_jsx("div", { className: "h-2 w-2 rounded-full bg-green-500" })) })] }) }))] })] }))] })] }), showWalletModal &&
209
+ : "border-as-border-secondary bg-as-surface-primary hover:border-as-secondary/80"), children: _jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-3", children: [globalWallet?.meta?.icon ? (_jsx("img", { src: globalWallet.meta.icon, alt: "Global Account", className: "h-10 w-10 rounded-full" })) : (_jsx("div", { className: "wallet-icon flex h-10 w-10 items-center justify-center rounded-full bg-purple-100", children: _jsx(Wallet, { className: "h-5 w-5 text-purple-600" }) })), _jsxs("div", { className: "flex flex-col", children: [_jsx("span", { className: "text-as-primary font-semibold", children: "Global Account" }), _jsx("span", { className: "text-as-primary/60 text-sm", children: shortenAddress(globalAddress || "") })] })] }), _jsx("div", { className: "flex items-center gap-2", children: selectedPaymentMethod === CryptoPaymentMethodType.GLOBAL_WALLET && (_jsx("div", { className: "h-2 w-2 rounded-full bg-green-500" })) })] }) }))] })] })), _jsxs("div", { className: "other-payment-methods", children: [_jsx("h3", { className: "text-as-primary/80 mb-3 text-sm font-medium", children: "Payment methods" }), _jsxs("div", { className: "space-y-3", children: [_jsxs("button", { onClick: () => {
210
+ // Always show wallet selection modal first
211
+ setShowWalletModal(true);
212
+ }, className: "crypto-payment-method-connect-wallet bg-as-surface-primary border-as-border-secondary hover:border-as-secondary/80 group flex w-full items-center justify-between gap-4 rounded-xl border px-4 py-3.5 transition-all duration-200 hover:shadow-md", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "wallet-icon flex h-8 w-8 items-center justify-center rounded-full bg-blue-100", children: _jsx(Wallet, { className: "h-4 w-4 text-blue-600" }) }), _jsx("div", { className: "flex flex-col items-start text-left", children: _jsx("h4", { className: "text-as-primary font-semibold", children: "Connect wallet" }) })] }), _jsx(ChevronRightCircle, { className: "text-as-primary/40 group-hover:text-as-primary/60 h-5 w-5 transition-colors" })] }), _jsxs("button", { onClick: () => {
213
+ setSelectedPaymentMethod(CryptoPaymentMethodType.TRANSFER_CRYPTO);
214
+ onSelectPaymentMethod(CryptoPaymentMethodType.TRANSFER_CRYPTO);
215
+ }, disabled: isCreatingOrder, className: "crypto-payment-method-transfer bg-as-surface-primary border-as-border-secondary hover:border-as-secondary/80 group flex w-full items-center justify-between gap-4 rounded-xl border px-4 py-3.5 transition-all duration-200 hover:shadow-md", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "wallet-icon flex h-8 w-8 items-center justify-center rounded-full bg-orange-100", children: _jsx(ZapIcon, { className: "h-4 w-4" }) }), _jsx("div", { className: "flex flex-col items-start text-left", children: _jsx("h4", { className: "text-as-primary font-semibold", children: "Transfer crypto" }) })] }), _jsx(ChevronRightCircle, { className: "text-as-primary/40 group-hover:text-as-primary/60 h-5 w-5 transition-colors" })] })] })] })] })] }), showWalletModal &&
146
216
  createPortal(_jsx("div", { className: "wallet-connection-modal pointer-events-auto fixed inset-0 z-[9999] flex items-center justify-center bg-black/50", children: _jsxs("div", { className: "max-h-[80vh] w-[400px] max-w-[90vw] overflow-auto rounded-xl bg-white p-6 dark:bg-gray-900", children: [_jsxs("div", { className: "mb-4 flex items-center justify-between", children: [_jsx("h3", { className: "text-lg font-semibold text-gray-900 dark:text-white", children: isConnected ? "Switch wallet or account" : "Choose wallet to connect" }), _jsx("button", { onClick: handleCloseModal, className: "text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200", children: _jsx(X, { className: "h-5 w-5" }) })] }), _jsx("div", { className: "space-y-4", children: _jsx("div", { className: "space-y-3", children: walletOptions.map(walletOption => {
147
217
  const isCurrentWallet = isConnected && connector?.name === walletOption.connector?.name;
148
218
  return (_jsx("button", { onClick: async () => {
@@ -14,6 +14,7 @@ interface CryptoReceiveSectionProps {
14
14
  anyspendQuote?: any;
15
15
  dstTokenSymbol?: string;
16
16
  dstTokenLogoURI?: string;
17
+ onShowPointsDetail?: () => void;
17
18
  }
18
- export declare function CryptoReceiveSection({ isDepositMode, isBuyMode, selectedRecipientAddress, recipientName, onSelectRecipient, dstAmount, dstToken, selectedDstChainId, setSelectedDstChainId, setSelectedDstToken, onChangeDstAmount, anyspendQuote, dstTokenSymbol, dstTokenLogoURI, }: CryptoReceiveSectionProps): import("react/jsx-runtime").JSX.Element;
19
+ export declare function CryptoReceiveSection({ isDepositMode, isBuyMode, selectedRecipientAddress, recipientName, onSelectRecipient, dstAmount, dstToken, selectedDstChainId, setSelectedDstChainId, setSelectedDstToken, onChangeDstAmount, anyspendQuote, dstTokenSymbol, dstTokenLogoURI, onShowPointsDetail, }: CryptoReceiveSectionProps): import("react/jsx-runtime").JSX.Element;
19
20
  export {};
@@ -5,46 +5,49 @@ import { shortenAddress } from "../../../../shared/utils/formatAddress.js";
5
5
  import { formatDisplayNumber } from "../../../../shared/utils/number.js";
6
6
  import { ChevronRight } from "lucide-react";
7
7
  import { motion } from "motion/react";
8
+ import { useFeatureFlags } from "../../contexts/FeatureFlagsContext.js";
8
9
  import { OrderTokenAmount } from "./OrderTokenAmount.js";
9
- export function CryptoReceiveSection({ isDepositMode = false, isBuyMode = false, selectedRecipientAddress, recipientName, onSelectRecipient, dstAmount, dstToken, selectedDstChainId, setSelectedDstChainId, setSelectedDstToken, onChangeDstAmount, anyspendQuote, dstTokenSymbol, dstTokenLogoURI, }) {
10
+ import { PointsBadge } from "./PointsBadge.js";
11
+ export function CryptoReceiveSection({ isDepositMode = false, isBuyMode = false, selectedRecipientAddress, recipientName, onSelectRecipient, dstAmount, dstToken, selectedDstChainId, setSelectedDstChainId, setSelectedDstToken, onChangeDstAmount, anyspendQuote, dstTokenSymbol, dstTokenLogoURI, onShowPointsDetail, }) {
12
+ const featureFlags = useFeatureFlags();
10
13
  return (_jsxs(motion.div, { initial: { opacity: 0, y: 20, filter: "blur(10px)" }, animate: { opacity: 1, y: 0, filter: "blur(0px)" }, transition: { duration: 0.3, delay: 0.1, ease: "easeInOut" }, className: "receive-section bg-as-surface-secondary border-as-border-secondary relative flex w-full flex-col gap-2 rounded-2xl border p-4 sm:p-6", children: [_jsxs("div", { className: "flex w-full items-center justify-between", children: [_jsx("div", { className: "text-as-primary/50 flex h-7 items-center text-sm", children: isDepositMode ? "Deposit" : "Receive" }), selectedRecipientAddress ? (_jsx("button", { className: cn("text-as-tertiarry flex h-7 items-center gap-2 rounded-lg"), onClick: onSelectRecipient, children: _jsxs(_Fragment, { children: [_jsx("span", { className: "text-as-tertiarry flex items-center gap-1 text-sm", children: recipientName ? formatUsername(recipientName) : shortenAddress(selectedRecipientAddress || "") }), _jsx(ChevronRight, { className: "h-4 w-4" })] }) })) : (_jsx("button", { className: "text-as-primary/70 flex items-center gap-1 rounded-lg", onClick: onSelectRecipient, children: _jsx("div", { className: "text-sm font-medium", children: "Select recipient" }) }))] }), isBuyMode || isDepositMode ? (
11
14
  // Fixed destination token display for buy mode and deposit mode
12
15
  _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("div", { className: "text-as-primary text-2xl font-bold", children: dstAmount || "0" }), _jsxs("div", { className: "bg-as-brand/10 border-as-brand/30 flex items-center gap-3 rounded-xl border px-4 py-3", children: [(dstTokenLogoURI || dstToken.metadata?.logoURI) && (_jsx("img", { src: dstTokenLogoURI || dstToken.metadata?.logoURI, alt: dstTokenSymbol || dstToken.symbol, className: "h-8 w-8 rounded-full" })), _jsx("span", { className: "text-as-brand text-lg font-bold", children: dstTokenSymbol || dstToken.symbol })] })] })) : (
13
16
  // Token selection for regular swap mode
14
- _jsx(OrderTokenAmount, { address: selectedRecipientAddress, context: "to", inputValue: dstAmount, onChangeInput: onChangeDstAmount || (() => { }), chainId: selectedDstChainId || dstToken.chainId, setChainId: setSelectedDstChainId || (() => { }), token: dstToken, setToken: setSelectedDstToken || (() => { }) })), _jsxs("div", { className: "text-as-primary/50 flex h-5 items-center text-sm", children: [formatDisplayNumber(anyspendQuote?.data?.currencyOut?.amountUsd, {
15
- style: "currency",
16
- fallback: "",
17
- }), anyspendQuote?.data?.currencyIn?.amountUsd &&
18
- anyspendQuote?.data?.currencyOut?.amountUsd &&
19
- (() => {
20
- const calculatePriceImpact = (inputUsd, outputUsd) => {
21
- if (!inputUsd || !outputUsd) {
22
- return { percentage: "0.00", isNegative: false };
23
- }
24
- const input = Number(inputUsd);
25
- const output = Number(outputUsd);
26
- // Handle edge cases
27
- if (input === 0 || isNaN(input) || isNaN(output) || input <= output) {
28
- return { percentage: "0.00", isNegative: false };
29
- }
30
- const percentageValue = ((output - input) / input) * 100;
31
- // Handle the -0.00% case
32
- if (percentageValue > -0.005 && percentageValue < 0) {
33
- return { percentage: "0.00", isNegative: false };
34
- }
35
- return {
36
- percentage: Math.abs(percentageValue).toFixed(2),
37
- isNegative: percentageValue < 0,
38
- };
39
- };
40
- const { percentage, isNegative } = calculatePriceImpact(anyspendQuote.data.currencyIn.amountUsd, anyspendQuote.data.currencyOut.amountUsd);
41
- // Parse the percentage as a number for comparison
42
- const percentageNum = parseFloat(percentage);
43
- // Don't show if less than 1%
44
- if (percentageNum < 1) {
45
- return null;
46
- }
47
- // Using inline style to ensure color displays
48
- return (_jsxs("span", { className: "ml-2", style: { color: percentageNum >= 10 ? "red" : "#FFD700" }, children: ["(", isNegative ? "-" : "", percentage, "%)"] }));
49
- })()] })] }));
17
+ _jsx(OrderTokenAmount, { address: selectedRecipientAddress, context: "to", inputValue: dstAmount, onChangeInput: onChangeDstAmount || (() => { }), chainId: selectedDstChainId || dstToken.chainId, setChainId: setSelectedDstChainId || (() => { }), token: dstToken, setToken: setSelectedDstToken || (() => { }) })), _jsxs("div", { className: "text-as-primary/50 flex h-5 items-center justify-start gap-2 text-sm", children: [_jsxs("div", { className: "flex items-center gap-2", children: [formatDisplayNumber(anyspendQuote?.data?.currencyOut?.amountUsd, {
18
+ style: "currency",
19
+ fallback: "",
20
+ }), anyspendQuote?.data?.currencyIn?.amountUsd &&
21
+ anyspendQuote?.data?.currencyOut?.amountUsd &&
22
+ (() => {
23
+ const calculatePriceImpact = (inputUsd, outputUsd) => {
24
+ if (!inputUsd || !outputUsd) {
25
+ return { percentage: "0.00", isNegative: false };
26
+ }
27
+ const input = Number(inputUsd);
28
+ const output = Number(outputUsd);
29
+ // Handle edge cases
30
+ if (input === 0 || isNaN(input) || isNaN(output) || input <= output) {
31
+ return { percentage: "0.00", isNegative: false };
32
+ }
33
+ const percentageValue = ((output - input) / input) * 100;
34
+ // Handle the -0.00% case
35
+ if (percentageValue > -0.005 && percentageValue < 0) {
36
+ return { percentage: "0.00", isNegative: false };
37
+ }
38
+ return {
39
+ percentage: Math.abs(percentageValue).toFixed(2),
40
+ isNegative: percentageValue < 0,
41
+ };
42
+ };
43
+ const { percentage, isNegative } = calculatePriceImpact(anyspendQuote.data.currencyIn.amountUsd, anyspendQuote.data.currencyOut.amountUsd);
44
+ // Parse the percentage as a number for comparison
45
+ const percentageNum = parseFloat(percentage);
46
+ // Don't show if less than 1%
47
+ if (percentageNum < 1) {
48
+ return null;
49
+ }
50
+ // Using inline style to ensure color displays
51
+ return (_jsxs("span", { className: "ml-2", style: { color: percentageNum >= 10 ? "red" : "#FFD700" }, children: ["(", isNegative ? "-" : "", percentage, "%)"] }));
52
+ })()] }), featureFlags.showPoints && anyspendQuote?.data?.pointsAmount > 0 && (_jsx(PointsBadge, { pointsAmount: anyspendQuote.data.pointsAmount, pointsMultiplier: anyspendQuote.data.pointsMultiplier, onClick: () => onShowPointsDetail?.() }))] })] }));
50
53
  }
@@ -8,6 +8,8 @@ interface OrderDetailsProps {
8
8
  executeTx: components["schemas"]["ExecuteTx"] | null;
9
9
  refundTxs: components["schemas"]["RefundTx"][];
10
10
  cryptoPaymentMethod?: CryptoPaymentMethodType;
11
+ selectedCryptoPaymentMethod?: CryptoPaymentMethodType;
12
+ onPaymentMethodChange?: (method: CryptoPaymentMethodType) => void;
11
13
  onBack?: () => void;
12
14
  disableUrlParamManagement?: boolean;
13
15
  }
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
- import { ALL_CHAINS, DEPOSIT_HYPE_ACTION, getChainName, getErrorDisplay, getExplorerTxUrl, getPaymentUrl, getStatusDisplay, isNativeToken, RELAY_ETH_ADDRESS, RELAY_SOLANA_MAINNET_CHAIN_ID, } from "../../../../anyspend/index.js";
3
+ import { ALL_CHAINS, getChainName, getErrorDisplay, getExplorerTxUrl, getPaymentUrl, getStatusDisplay, isNativeToken, RELAY_ETH_ADDRESS, RELAY_SOLANA_MAINNET_CHAIN_ID, } from "../../../../anyspend/index.js";
4
4
  import { Badge, Button, CopyToClipboard, ShinyButton, Skeleton, TextLoop, TextShimmer, useAccountWallet, useB3, useModalStore, useProfile, useUnifiedChainSwitchAndExecute, } from "../../../../global-account/react/index.js";
5
5
  import { useRouter, useSearchParams } from "../../../../shared/react/hooks/index.js";
6
6
  import { cn } from "../../../../shared/utils/index.js";
@@ -23,10 +23,11 @@ import ConnectWalletPayment from "./ConnectWalletPayment.js";
23
23
  import { CryptoPaymentMethodType } from "./CryptoPaymentMethod.js";
24
24
  import { InsufficientDepositPayment } from "./InsufficientDepositPayment.js";
25
25
  import { OrderDetailsCollapsible } from "./OrderDetailsCollapsible.js";
26
+ import { OrderStatus } from "./OrderStatus.js";
26
27
  import PaymentVendorUI from "./PaymentVendorUI.js";
27
28
  import { TransferCryptoDetails } from "./TransferCryptoDetails.js";
28
29
  // Add this helper function near the top or just above the component
29
- function getOrderSuccessText({ order, tournament, formattedActualDstAmount, dstToken, recipientName, centerTruncate, }) {
30
+ function getOrderSuccessText({ order, tournament, formattedActualDstAmount, formattedExpectedDstAmount, dstToken, recipientName, centerTruncate, }) {
30
31
  const recipient = recipientName || centerTruncate(order.recipientAddress, 8);
31
32
  let actionText = "";
32
33
  switch (order.type) {
@@ -42,15 +43,12 @@ function getOrderSuccessText({ order, tournament, formattedActualDstAmount, dstT
42
43
  case "fund_tournament":
43
44
  actionText = `funded ${tournament?.name}`;
44
45
  return `Successfully ${actionText}`;
46
+ case "hype_duel":
47
+ actionText = `deposited ${formattedExpectedDstAmount || "--"} HYPE`;
48
+ return `Successfully ${actionText} to ${recipient}`;
45
49
  case "custom":
46
- if (order.metadata.action === DEPOSIT_HYPE_ACTION) {
47
- return `Successfully deposited ${formatTokenAmount(BigInt(order.payload?.amount || "0"), 18)} HYPE to ${recipient}`;
48
- }
49
50
  actionText = order.metadata.action || `executed contract`;
50
51
  return `Successfully ${actionText}`;
51
- case "hype_duel":
52
- actionText = `deposited ${formattedActualDstAmount || "--"} HYPE`;
53
- return `Successfully ${actionText} to ${recipient}`;
54
52
  default:
55
53
  throw new Error("Invalid order type");
56
54
  }
@@ -127,7 +125,7 @@ function roundTokenAmount(amount) {
127
125
  const roundedDecimalPart = digits.join("");
128
126
  return `${wholePart}.${roundedDecimalPart}`;
129
127
  }
130
- export const OrderDetails = memo(function OrderDetails({ mode = "modal", order, depositTxs, relayTxs, executeTx, refundTxs, cryptoPaymentMethod, onBack, disableUrlParamManagement = false, }) {
128
+ export const OrderDetails = memo(function OrderDetails({ mode = "modal", order, depositTxs, relayTxs, executeTx, refundTxs, cryptoPaymentMethod, selectedCryptoPaymentMethod, onPaymentMethodChange, onBack, disableUrlParamManagement = false, }) {
131
129
  const router = useRouter();
132
130
  const searchParams = useSearchParams();
133
131
  // Get theme from B3Provider context
@@ -135,7 +133,9 @@ export const OrderDetails = memo(function OrderDetails({ mode = "modal", order,
135
133
  const colorMode = theme || "light";
136
134
  // Read crypto payment method from URL parameters
137
135
  const cryptoPaymentMethodFromUrl = searchParams.get("cryptoPaymentMethod");
138
- const effectiveCryptoPaymentMethod = cryptoPaymentMethod || cryptoPaymentMethodFromUrl || CryptoPaymentMethodType.NONE;
136
+ const effectiveCryptoPaymentMethod = selectedCryptoPaymentMethod !== CryptoPaymentMethodType.NONE
137
+ ? selectedCryptoPaymentMethod
138
+ : cryptoPaymentMethod || cryptoPaymentMethodFromUrl || CryptoPaymentMethodType.NONE;
139
139
  const setB3ModalOpen = useModalStore((state) => state.setB3ModalOpen);
140
140
  const srcToken = order.metadata.srcToken;
141
141
  const dstToken = order.metadata.dstToken;
@@ -416,16 +416,16 @@ export const OrderDetails = memo(function OrderDetails({ mode = "modal", order,
416
416
  }
417
417
  };
418
418
  if (refundTxs.length > 0) {
419
- return (_jsxs(_Fragment, { children: [_jsx(OrderDetailsCollapsible, { order: order, dstToken: dstToken, tournament: tournament, nft: nft, recipientName: recipientName, formattedExpectedDstAmount: formattedExpectedDstAmount }), _jsx(Accordion, { type: "single", collapsible: true, className: "w-full", children: _jsxs(AccordionItem, { value: "refund-details", children: [_jsx(AccordionTrigger, { children: "Transaction Details" }), _jsx(AccordionContent, { className: "pl-2", children: _jsxs("div", { className: "relative flex w-full flex-col gap-4", children: [_jsx("div", { className: "bg-as-surface-secondary absolute bottom-2 left-4 top-2 z-[5] w-2", children: _jsx(motion.div, { className: "bg-as-border-primary absolute left-[2px] top-0 z-10 w-[3px]", initial: { height: "0%" }, animate: { height: "100%" }, transition: { duration: 1.5, ease: "easeInOut" } }) }), depositTxs
419
+ return (_jsxs(_Fragment, { children: [_jsx(OrderStatus, { order: order, selectedCryptoPaymentMethod: effectiveCryptoPaymentMethod }), _jsx(OrderDetailsCollapsible, { order: order, dstToken: dstToken, tournament: tournament, nft: nft, recipientName: recipientName, formattedExpectedDstAmount: formattedExpectedDstAmount }), _jsx(Accordion, { type: "single", collapsible: true, className: "order-details-accordion w-full", children: _jsxs(AccordionItem, { value: "refund-details", className: "order-details-refund-item", children: [_jsx(AccordionTrigger, { className: "accordion-trigger", children: "Transaction Details" }), _jsx(AccordionContent, { className: "accordion-content pl-2", children: _jsxs("div", { className: "relative flex w-full flex-col gap-4", children: [_jsx("div", { className: "bg-as-surface-secondary absolute bottom-2 left-4 top-2 z-[5] w-2", children: _jsx(motion.div, { className: "bg-as-border-primary absolute left-[2px] top-0 z-10 w-[3px]", initial: { height: "0%" }, animate: { height: "100%" }, transition: { duration: 1.5, ease: "easeInOut" } }) }), depositTxs
420
420
  ? depositTxs.map(dTx => (_jsx(TransactionDetails, { title: order.onrampMetadata?.vendor === "stripe-web2"
421
421
  ? `Received payment`
422
422
  : `Received ${formatTokenAmount(BigInt(dTx.amount), srcToken.decimals)} ${srcToken.symbol}`, chainId: order.srcChain, tx: dTx, isProcessing: false }, dTx.txHash)))
423
423
  : null, refundTxs
424
424
  ? refundTxs.map(rTx => (_jsx(TransactionDetails, { title: `Refunded ${formatTokenAmount(BigInt(rTx.amount), srcToken.decimals)} ${srcToken.symbol}`, chainId: order.srcChain, tx: rTx, isProcessing: false }, rTx.txHash)))
425
- : null] }) })] }) }), order.errorDetails && (_jsx("div", { className: "flex justify-center", children: _jsx("span", { className: "text-as-primary/50 text-center text-sm", style: { maxWidth: "40ch" }, children: getErrorDisplay(order.errorDetails) }) })), _jsx("button", { className: "order-close-button bg-as-brand flex w-full items-center justify-center gap-2 rounded-lg p-2 font-semibold text-white", onClick: mode === "page" ? handleBack : handleCloseModal, children: mode === "page" ? (_jsxs(_Fragment, { children: ["Return to Home ", _jsx(Home, { className: "ml-2 h-4 w-4" })] })) : ("Close") })] }));
425
+ : null] }) })] }) }), order.errorDetails && (_jsx("div", { className: "flex justify-center", children: _jsx("span", { className: "text-as-primary/50 text-center text-sm", style: { maxWidth: "40ch" }, children: getErrorDisplay(order.errorDetails) }) })), _jsx("button", { className: "order-close-button order-details-close-btn bg-as-brand flex w-full items-center justify-center gap-2 rounded-lg p-2 font-semibold text-white", onClick: mode === "page" ? handleBack : handleCloseModal, children: mode === "page" ? (_jsxs(_Fragment, { children: ["Return to Home ", _jsx(Home, { className: "ml-2 h-4 w-4" })] })) : ("Close") })] }));
426
426
  }
427
427
  if (executeTx) {
428
- return (_jsxs(_Fragment, { children: [_jsx(OrderDetailsCollapsible, { order: order, dstToken: dstToken, tournament: tournament, nft: nft, recipientName: recipientName, formattedExpectedDstAmount: formattedExpectedDstAmount }), _jsx(Accordion, { type: "single", collapsible: true, className: "w-full", children: _jsxs(AccordionItem, { value: "execute-details", children: [_jsx(AccordionTrigger, { children: "Transaction Details" }), _jsx(AccordionContent, { className: "pl-2", children: _jsxs("div", { className: "relative flex w-full flex-col gap-4", children: [_jsx("div", { className: "bg-as-surface-secondary absolute bottom-2 left-4 top-2 z-[5] w-2", children: _jsx(motion.div, { className: "bg-as-border-primary absolute left-[2px] top-0 z-10 w-[3px]", initial: { height: "0%" }, animate: { height: "100%" }, transition: { duration: 1.5, ease: "easeInOut" } }) }), depositTxs
428
+ return (_jsxs(_Fragment, { children: [_jsx(OrderStatus, { order: order, selectedCryptoPaymentMethod: effectiveCryptoPaymentMethod }), _jsx(OrderDetailsCollapsible, { order: order, dstToken: dstToken, tournament: tournament, nft: nft, recipientName: recipientName, formattedExpectedDstAmount: formattedExpectedDstAmount }), _jsx(Accordion, { type: "single", collapsible: true, className: "order-details-accordion w-full", children: _jsxs(AccordionItem, { value: "execute-details", className: "order-details-execute-item", children: [_jsx(AccordionTrigger, { className: "accordion-trigger", children: "Transaction Details" }), _jsx(AccordionContent, { className: "accordion-content pl-2", children: _jsxs("div", { className: "relative flex w-full flex-col gap-4", children: [_jsx("div", { className: "bg-as-surface-secondary absolute bottom-2 left-4 top-2 z-[5] w-2", children: _jsx(motion.div, { className: "bg-as-border-primary absolute left-[2px] top-0 z-10 w-[3px]", initial: { height: "0%" }, animate: { height: "100%" }, transition: { duration: 1.5, ease: "easeInOut" } }) }), depositTxs
429
429
  ? depositTxs.map(dTxs => (_jsx(TransactionDetails, { title: order.onrampMetadata?.vendor === "stripe-web2"
430
430
  ? `Received payment`
431
431
  : `Received ${formatTokenAmount(BigInt(dTxs.amount), srcToken.decimals)} ${srcToken.symbol}`, chainId: order.srcChain, tx: dTxs, isProcessing: false }, dTxs.txHash)))
@@ -443,13 +443,14 @@ export const OrderDetails = memo(function OrderDetails({ mode = "modal", order,
443
443
  order,
444
444
  tournament,
445
445
  formattedActualDstAmount: formattedActualDstAmount,
446
+ formattedExpectedDstAmount: formattedExpectedDstAmount,
446
447
  dstToken,
447
448
  recipientName,
448
449
  centerTruncate,
449
- }), _jsx(ExternalLink, { className: "ml-2 h-4 w-4" })] }) }) }), order.type === "join_tournament" && order.status === "executed" && (_jsxs(ShinyButton, { accentColor: "hsl(var(--as-brand))", textColor: "text-white", className: "flex w-full items-center gap-2", disabled: txLoading || isSwitchingOrExecuting, onClick: handleCloseModal, children: [_jsx("span", { className: "pl-4", children: "Continue to Tournament" }), _jsx(ChevronRight, { className: "h-4 w-4" })] })), order.status === "executed" && (_jsx("button", { className: "order-close-button bg-as-brand flex w-full items-center justify-center gap-2 rounded-lg p-2 font-semibold text-white", onClick: mode === "page" ? handleBack : handleCloseModal, children: mode === "page" ? (_jsxs(_Fragment, { children: ["Return to Home ", _jsx(Home, { className: "ml-2 h-4 w-4" })] })) : ("Close") }))] }));
450
+ }), _jsx(ExternalLink, { className: "ml-2 h-4 w-4" })] }) }) }), order.type === "join_tournament" && order.status === "executed" && (_jsxs(ShinyButton, { accentColor: "hsl(var(--as-brand))", textColor: "text-white", className: "flex w-full items-center gap-2", disabled: txLoading || isSwitchingOrExecuting, onClick: handleCloseModal, children: [_jsx("span", { className: "pl-4", children: "Continue to Tournament" }), _jsx(ChevronRight, { className: "h-4 w-4" })] })), order.status === "executed" && (_jsx("button", { className: "order-close-button order-details-close-btn bg-as-brand flex w-full items-center justify-center gap-2 rounded-lg p-2 font-semibold text-white", onClick: mode === "page" ? handleBack : handleCloseModal, children: mode === "page" ? (_jsxs(_Fragment, { children: ["Return to Home ", _jsx(Home, { className: "ml-2 h-4 w-4" })] })) : ("Close") }))] }));
450
451
  }
451
452
  if (relayTxs.length > 0 && relayTxs.every(tx => tx.status === "success")) {
452
- return (_jsxs(_Fragment, { children: [_jsx(OrderDetailsCollapsible, { order: order, dstToken: dstToken, tournament: tournament, nft: nft, recipientName: recipientName, formattedExpectedDstAmount: formattedExpectedDstAmount }), _jsx(Accordion, { type: "single", collapsible: true, className: "w-full", children: _jsxs(AccordionItem, { value: "more-details", children: [_jsx(AccordionTrigger, { children: "More Details" }), _jsx(AccordionContent, { className: "pl-2", children: _jsxs("div", { className: "relative flex w-full flex-col gap-4", children: [_jsx("div", { className: "bg-as-surface-secondary absolute bottom-2 left-4 top-2 z-[5] w-2", children: _jsx(motion.div, { className: "bg-as-border-primary absolute left-[2px] top-0 z-10 w-[3px]", initial: { height: "0%" }, animate: { height: "100%" }, transition: { duration: 1.5, ease: "easeInOut" } }) }), depositTxs
453
+ return (_jsxs(_Fragment, { children: [_jsx(OrderStatus, { order: order, selectedCryptoPaymentMethod: effectiveCryptoPaymentMethod }), _jsx(OrderDetailsCollapsible, { order: order, dstToken: dstToken, tournament: tournament, nft: nft, recipientName: recipientName, formattedExpectedDstAmount: formattedExpectedDstAmount }), _jsx(Accordion, { type: "single", collapsible: true, className: "order-details-accordion w-full", children: _jsxs(AccordionItem, { value: "more-details", className: "order-details-more-item", children: [_jsx(AccordionTrigger, { className: "accordion-trigger", children: "More Details" }), _jsx(AccordionContent, { className: "accordion-content pl-2", children: _jsxs("div", { className: "relative flex w-full flex-col gap-4", children: [_jsx("div", { className: "bg-as-surface-secondary absolute bottom-2 left-4 top-2 z-[5] w-2", children: _jsx(motion.div, { className: "bg-as-border-primary absolute left-[2px] top-0 z-10 w-[3px]", initial: { height: "0%" }, animate: { height: "100%" }, transition: { duration: 1.5, ease: "easeInOut" } }) }), depositTxs
453
454
  ? depositTxs.map(dTxs => (_jsx(TransactionDetails, { title: order.onrampMetadata?.vendor === "stripe-web2"
454
455
  ? `Received payment`
455
456
  : `Received ${formatTokenAmount(BigInt(dTxs.amount), srcToken.decimals)} ${srcToken.symbol}`, chainId: order.srcChain, tx: dTxs, isProcessing: false }, dTxs.txHash)))
@@ -463,12 +464,12 @@ export const OrderDetails = memo(function OrderDetails({ mode = "modal", order,
463
464
  ? "Funding Tournament"
464
465
  : order.type === "hype_duel"
465
466
  ? "Depositing Hype Duel"
466
- : "Processing Bridge", chainId: order.dstChain, isProcessing: true, tx: null, delay: 1 }))] }) })] }) }), order.type === "join_tournament" && order.status === "executed" && (_jsxs(ShinyButton, { accentColor: "hsl(var(--as-brand))", textColor: "text-white", className: "flex w-full items-center gap-2", disabled: txLoading || isSwitchingOrExecuting, onClick: handleCloseModal, children: [_jsx("span", { className: "pl-4", children: "Continue to Tournament" }), _jsx(ChevronRight, { className: "h-4 w-4" })] })), order.status === "executed" && (_jsx("button", { className: "order-close-button bg-as-brand flex w-full items-center justify-center gap-2 rounded-lg p-2 font-semibold text-white", onClick: mode === "page" ? handleBack : handleCloseModal, children: mode === "page" ? (_jsxs(_Fragment, { children: ["Return to Home ", _jsx(Home, { className: "ml-2 h-4 w-4" })] })) : ("Close") }))] }));
467
+ : "Processing Bridge", chainId: order.dstChain, isProcessing: true, tx: null, delay: 1 }))] }) })] }) }), order.type === "join_tournament" && order.status === "executed" && (_jsxs(ShinyButton, { accentColor: "hsl(var(--as-brand))", textColor: "text-white", className: "flex w-full items-center gap-2", disabled: txLoading || isSwitchingOrExecuting, onClick: handleCloseModal, children: [_jsx("span", { className: "pl-4", children: "Continue to Tournament" }), _jsx(ChevronRight, { className: "h-4 w-4" })] })), order.status === "executed" && (_jsx("button", { className: "order-close-button order-details-close-btn bg-as-brand flex w-full items-center justify-center gap-2 rounded-lg p-2 font-semibold text-white", onClick: mode === "page" ? handleBack : handleCloseModal, children: mode === "page" ? (_jsxs(_Fragment, { children: ["Return to Home ", _jsx(Home, { className: "ml-2 h-4 w-4" })] })) : ("Close") }))] }));
467
468
  }
468
469
  // This boolean indicates that user finish payment, and waiting for the deposit to be confirmed. We get this from query params (waitingForDeposit=true)
469
470
  const waitingForDeposit = new URLSearchParams(window.location.search).get("waitingForDeposit") === "true";
470
471
  if (depositTxs?.length || waitingForDeposit) {
471
- return (_jsxs(_Fragment, { children: [_jsx(OrderDetailsCollapsible, { order: order, dstToken: dstToken, tournament: tournament, nft: nft, recipientName: recipientName, formattedExpectedDstAmount: formattedExpectedDstAmount }), _jsx(Accordion, { type: "single", collapsible: true, className: "w-full", children: _jsxs(AccordionItem, { value: "deposit-details", children: [_jsx(AccordionTrigger, { children: "Transaction Details" }), _jsx(AccordionContent, { className: "pl-2", children: _jsxs("div", { className: "relative flex w-full flex-col gap-6", children: [_jsx("div", { className: "bg-as-surface-secondary absolute bottom-2 left-4 top-2 z-[5] w-2", children: _jsx(motion.div, { className: "from-as-brand/50 absolute left-[2px] top-0 z-10 w-[3px] bg-gradient-to-b from-20% via-purple-500/50 via-80% to-transparent", initial: { height: "0%" }, animate: { height: "100%" }, transition: { duration: 1, ease: "easeInOut" } }) }), (depositTxs || []).map((dTxs, index) => (_jsx(TransactionDetails, { title: order.onrampMetadata?.vendor === "stripe-web2"
472
+ return (_jsxs(_Fragment, { children: [_jsx(OrderStatus, { order: order, selectedCryptoPaymentMethod: effectiveCryptoPaymentMethod }), _jsx(OrderDetailsCollapsible, { order: order, dstToken: dstToken, tournament: tournament, nft: nft, recipientName: recipientName, formattedExpectedDstAmount: formattedExpectedDstAmount }), _jsx(Accordion, { type: "single", collapsible: true, className: "order-details-accordion w-full", children: _jsxs(AccordionItem, { value: "deposit-details", className: "order-details-deposit-item", children: [_jsx(AccordionTrigger, { className: "accordion-trigger", children: "Transaction Details" }), _jsx(AccordionContent, { className: "accordion-content pl-2", children: _jsxs("div", { className: "relative flex w-full flex-col gap-6", children: [_jsx("div", { className: "bg-as-surface-secondary absolute bottom-2 left-4 top-2 z-[5] w-2", children: _jsx(motion.div, { className: "from-as-brand/50 absolute left-[2px] top-0 z-10 w-[3px] bg-gradient-to-b from-20% via-purple-500/50 via-80% to-transparent", initial: { height: "0%" }, animate: { height: "100%" }, transition: { duration: 1, ease: "easeInOut" } }) }), (depositTxs || []).map((dTxs, index) => (_jsx(TransactionDetails, { title: order.onrampMetadata?.vendor === "stripe-web2"
472
473
  ? `Received payment`
473
474
  : `Received ${formatTokenAmount(BigInt(dTxs.amount), srcToken.decimals)} ${srcToken.symbol}`, chainId: order.srcChain, tx: dTxs, isProcessing: index < (depositTxs || []).length - 1 ? false : !depositEnoughAmount }, dTxs.txHash))), statusDisplay === "failure" ? (_jsx(TransactionDetails, { title: statusText, chainId: order.srcChain, tx: null, isProcessing: false, delay: 0.5 })) : depositEnoughAmount ? (_jsx(TransactionDetails, { title: order.type === "swap"
474
475
  ? "Processing Swap"
@@ -482,22 +483,22 @@ export const OrderDetails = memo(function OrderDetails({ mode = "modal", order,
482
483
  ? `Waiting for payment`
483
484
  : `Waiting for deposit ${formattedDepositDeficit} ${srcToken.symbol}`, chainId: order.srcChain, tx: null, isProcessing: true, delay: 0.5 }))] }) })] }) }), !depositEnoughAmount && order.status !== "expired" && (_jsx(InsufficientDepositPayment, { order: order, srcToken: srcToken, depositDeficit: depositDeficit, phantomWalletAddress: phantomWalletAddress, txLoading: txLoading, isSwitchingOrExecuting: isSwitchingOrExecuting, onPayment: handlePayment }))] }));
484
485
  }
485
- return (_jsxs(_Fragment, { children: [statusDisplay === "processing" && (_jsx(_Fragment, { children: order.onrampMetadata ? (_jsx(PaymentVendorUI, { order: order, dstTokenSymbol: dstToken.symbol })) : effectiveCryptoPaymentMethod === CryptoPaymentMethodType.CONNECT_WALLET ||
486
- effectiveCryptoPaymentMethod === CryptoPaymentMethodType.GLOBAL_WALLET ? (_jsx(ConnectWalletPayment, { order: order, onPayment: handlePayment, onCancel: handleBack, txLoading: txLoading, isSwitchingOrExecuting: isSwitchingOrExecuting, phantomWalletAddress: phantomWalletAddress, tournament: tournament, nft: nft, cryptoPaymentMethod: effectiveCryptoPaymentMethod })) : effectiveCryptoPaymentMethod === CryptoPaymentMethodType.TRANSFER_CRYPTO ? (
486
+ return (_jsxs(_Fragment, { children: [_jsx(OrderStatus, { order: order, selectedCryptoPaymentMethod: effectiveCryptoPaymentMethod }), statusDisplay === "processing" && (_jsx(_Fragment, { children: order.onrampMetadata ? (_jsx(PaymentVendorUI, { order: order, dstTokenSymbol: dstToken.symbol })) : effectiveCryptoPaymentMethod === CryptoPaymentMethodType.CONNECT_WALLET ||
487
+ effectiveCryptoPaymentMethod === CryptoPaymentMethodType.GLOBAL_WALLET ? (_jsx(ConnectWalletPayment, { order: order, onPayment: handlePayment, onCancel: handleBack, txLoading: txLoading, isSwitchingOrExecuting: isSwitchingOrExecuting, phantomWalletAddress: phantomWalletAddress, tournament: tournament, nft: nft, cryptoPaymentMethod: effectiveCryptoPaymentMethod, onPaymentMethodChange: onPaymentMethodChange })) : effectiveCryptoPaymentMethod === CryptoPaymentMethodType.TRANSFER_CRYPTO ? (
487
488
  // Transfer Crypto Payment Method - Show new card-based UI
488
- _jsx(TransferCryptoDetails, { order: order, recipientName: recipientName, srcToken: srcToken, dstToken: dstToken, tournament: tournament, nft: nft, onBack: handleBack })) : (_jsxs("div", { className: "relative flex w-full flex-1 flex-col", children: [_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("span", { className: "text-as-primary/50", children: "Please send" }), _jsxs("div", { className: "flex w-full flex-wrap items-center gap-6 sm:justify-between sm:gap-0", children: [_jsx(CopyToClipboard, { text: roundedUpSrcAmount, onCopy: () => {
489
+ _jsx(TransferCryptoDetails, { order: order, recipientName: recipientName, srcToken: srcToken, dstToken: dstToken, tournament: tournament, nft: nft, onBack: handleBack, onPaymentMethodChange: onPaymentMethodChange })) : (_jsxs("div", { className: "order-details-payment-section relative flex w-full flex-1 flex-col", children: [_jsxs("div", { className: "order-details-amount-section flex flex-col gap-1", children: [_jsx("span", { className: "text-as-primary/50 order-details-amount-label", children: "Please send" }), _jsxs("div", { className: "order-details-amount-container flex w-full flex-wrap items-center gap-6 sm:justify-between sm:gap-0", children: [_jsx(CopyToClipboard, { text: roundedUpSrcAmount, onCopy: () => {
489
490
  toast.success("Copied to clipboard");
490
- }, children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("strong", { className: "border-as-brand text-as-primary border-b-2 pb-1 text-2xl font-semibold sm:text-xl", children: [roundedUpSrcAmount, " ", srcToken.symbol] }), _jsx(Copy, { className: "text-as-primary/50 hover:text-as-primary h-5 w-5 cursor-pointer transition-all duration-200" })] }) }), _jsxs(Badge, { variant: "outline", className: "flex h-10 items-center gap-2 px-3 py-1 pr-2 text-sm", children: ["on ", getChainName(order.srcChain), _jsx("img", { src: ALL_CHAINS[order.srcChain].logoUrl, alt: getChainName(order.srcChain), className: cn("h-6 rounded-full", order.srcChain === b3.id && "h-5 rounded-none") })] })] }), _jsx("span", { className: "text-as-primary/50 mb-1 mt-2", children: " to the address:" })] }), _jsx(CopyToClipboard, { text: order.globalAddress, onCopy: () => {
491
+ }, children: _jsxs("div", { className: "order-details-amount-display flex items-center gap-2", children: [_jsxs("strong", { className: "border-as-brand text-as-primary order-details-amount-text border-b-2 pb-1 text-2xl font-semibold sm:text-xl", children: [roundedUpSrcAmount, " ", srcToken.symbol] }), _jsx(Copy, { className: "text-as-primary/50 hover:text-as-primary order-details-copy-icon h-5 w-5 cursor-pointer transition-all duration-200" })] }) }), _jsxs(Badge, { variant: "outline", className: "flex h-10 items-center gap-2 px-3 py-1 pr-2 text-sm", children: ["on ", getChainName(order.srcChain), _jsx("img", { src: ALL_CHAINS[order.srcChain].logoUrl, alt: getChainName(order.srcChain), className: cn("h-6 rounded-full", order.srcChain === b3.id && "h-5 rounded-none") })] })] }), _jsx("span", { className: "text-as-primary/50 order-details-address-label mb-1 mt-2", children: " to the address:" })] }), _jsx(CopyToClipboard, { text: order.globalAddress, onCopy: () => {
491
492
  toast.success("Copied to clipboard");
492
- }, children: _jsxs("div", { className: "bg-b3-react-background border-b3-react-border hover:border-as-brand group flex cursor-pointer items-center justify-between gap-4 rounded-lg border p-3 px-4 shadow-md transition-all duration-200", children: [_jsx("div", { className: "text-as-primary overflow-hidden text-ellipsis whitespace-nowrap text-sm", children: order.globalAddress }), _jsx(Copy, { className: "group-hover:text-as-brand text-as-primary/50 h-5 w-5 cursor-pointer transition-all duration-200" })] }) }), (account?.address || phantomWalletAddress) && !showQRCode ? (_jsx("div", { className: "mb-4 mt-8 flex w-full flex-col items-center gap-4", children: _jsxs(_Fragment, { children: [_jsxs("div", { className: "relative flex w-full flex-col items-center gap-2", children: [_jsx(ShinyButton, { accentColor: "hsl(var(--as-brand))", textColor: "text-white", className: "flex w-5/6 items-center gap-2 sm:px-0", disabled: txLoading || isSwitchingOrExecuting, onClick: handlePayment, children: txLoading ? (_jsxs(_Fragment, { children: ["Transaction Pending", _jsx(Loader2, { className: "ml-2 h-5 w-5 animate-spin" })] })) : (_jsxs(_Fragment, { children: [_jsx("span", { className: "pl-4 text-lg md:text-sm", children: order.srcChain === RELAY_SOLANA_MAINNET_CHAIN_ID && phantomWalletAddress
493
+ }, children: _jsxs("div", { className: "bg-b3-react-background border-b3-react-border hover:border-as-brand order-details-address-container group flex cursor-pointer items-center justify-between gap-4 rounded-lg border p-3 px-4 shadow-md transition-all duration-200", children: [_jsx("div", { className: "text-as-primary order-details-address-text overflow-hidden text-ellipsis whitespace-nowrap text-sm", children: order.globalAddress }), _jsx(Copy, { className: "group-hover:text-as-brand text-as-primary/50 order-details-address-copy-icon h-5 w-5 cursor-pointer transition-all duration-200" })] }) }), (account?.address || phantomWalletAddress) && !showQRCode ? (_jsx("div", { className: "mb-4 mt-8 flex w-full flex-col items-center gap-4", children: _jsxs(_Fragment, { children: [_jsxs("div", { className: "relative flex w-full flex-col items-center gap-2", children: [_jsx(ShinyButton, { accentColor: "hsl(var(--as-brand))", textColor: "text-white", className: "flex w-5/6 items-center gap-2 sm:px-0", disabled: txLoading || isSwitchingOrExecuting, onClick: handlePayment, children: txLoading ? (_jsxs(_Fragment, { children: ["Transaction Pending", _jsx(Loader2, { className: "ml-2 h-5 w-5 animate-spin" })] })) : (_jsxs(_Fragment, { children: [_jsx("span", { className: "pl-4 text-lg md:text-sm", children: order.srcChain === RELAY_SOLANA_MAINNET_CHAIN_ID && phantomWalletAddress
493
494
  ? "Pay from Phantom Wallet"
494
495
  : "Pay from Connected Wallet" }), _jsx(ChevronRight, { className: "h-4 w-4" })] })) }), _jsxs("span", { className: "label-style text-as-primary/50 text-xs", children: ["Connected to:", " ", order.srcChain === RELAY_SOLANA_MAINNET_CHAIN_ID && phantomWalletAddress
495
496
  ? centerTruncate(phantomWalletAddress, 6)
496
497
  : centerTruncate(account?.address || "", 6)] })] }), _jsxs("div", { className: "flex w-full flex-col items-center gap-2", children: [_jsxs(ShinyButton, { accentColor: colorMode === "dark" ? "#ffffff" : "#000000", className: "flex w-5/6 items-center gap-2 sm:px-0", onClick: () => setShowQRCode(true), children: [_jsx("span", { className: "pl-4 text-lg md:text-sm", children: "Pay from a different wallet" }), _jsx(ChevronRight, { className: "h-4 w-4" })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(WalletMetamask, { className: "h-5 w-5", variant: "branded" }), _jsx(WalletCoinbase, { className: "h-5 w-5", variant: "branded" }), _jsx(WalletPhantom, { className: "h-5 w-5", variant: "branded" }), _jsx(WalletTrust, { className: "h-5 w-5", variant: "branded" }), _jsx(WalletWalletConnect, { className: "h-5 w-5", variant: "branded" }), _jsx("span", { className: "label-style text-as-primary/30 text-xs", children: "& more" })] })] })] }) })) : (
497
498
  // Default case - existing QR code flow
498
- _jsx(motion.div, { initial: { opacity: 0, filter: "blur(10px)" }, animate: { opacity: 1, filter: "blur(0px)" }, transition: { duration: 0.5, ease: "easeInOut" }, className: "flex w-full items-center justify-evenly gap-4", children: _jsxs("div", { className: "mt-8 flex flex-col items-center rounded-lg bg-white p-6 pb-3", children: [_jsx(QRCodeSVG, { value: getPaymentUrl(order.globalAddress, BigInt(order.srcAmount), order.srcTokenAddress === RELAY_ETH_ADDRESS ? srcToken?.symbol || "ETH" : order.srcTokenAddress, order.srcChain, srcToken?.decimals), className: "max-w-[200px]" }), _jsxs("div", { className: "mt-3 flex items-center justify-center gap-2 text-sm", children: [_jsx("span", { className: "label-style text-as-brand/70 text-sm", children: "Scan with" }), _jsxs(TextLoop, { interval: 3, children: [_jsx(WalletMetamask, { className: "h-5 w-5", variant: "branded" }), _jsx(WalletCoinbase, { className: "h-5 w-5", variant: "branded" }), _jsx(WalletPhantom, { className: "h-5 w-5", variant: "branded" }), _jsx(WalletTrust, { className: "h-5 w-5", variant: "branded" })] })] })] }) }))] })) })), _jsxs("div", { className: "flex w-full items-center justify-center gap-1 text-sm", children: [_jsx("div", { className: "text-as-primary/30", children: "Time remaining:" }), _jsx("div", { className: "text-as-primary", children: depositEnoughAmount ? ("Received") : order.status === "expired" ? ("Expired") : (_jsx(TimeAgo, { date: new Date(order.expiredAt), live: true })) })] }), statusDisplay !== "processing" && (_jsx(OrderDetailsCollapsible, { order: order, dstToken: dstToken, tournament: tournament, nft: nft, recipientName: recipientName, formattedExpectedDstAmount: formattedExpectedDstAmount })), _jsxs("button", { className: "flex w-full items-center justify-center gap-2", onClick: handleBack, children: [_jsx(RefreshCcw, { className: "ml-2 h-4 w-4" }), " Cancel and start over"] })] }));
499
+ _jsx(motion.div, { initial: { opacity: 0, filter: "blur(10px)" }, animate: { opacity: 1, filter: "blur(0px)" }, transition: { duration: 0.5, ease: "easeInOut" }, className: "flex w-full items-center justify-evenly gap-4", children: _jsxs("div", { className: "order-details-qr-container mt-8 flex flex-col items-center rounded-lg bg-white p-6 pb-3", children: [_jsx(QRCodeSVG, { value: getPaymentUrl(order.globalAddress, BigInt(order.srcAmount), order.srcTokenAddress === RELAY_ETH_ADDRESS ? srcToken?.symbol || "ETH" : order.srcTokenAddress, order.srcChain, srcToken?.decimals), className: "order-details-qr-code max-w-[200px]" }), _jsxs("div", { className: "order-details-qr-wallets mt-3 flex items-center justify-center gap-2 text-sm", children: [_jsx("span", { className: "label-style text-as-brand/70 text-sm", children: "Scan with" }), _jsxs(TextLoop, { interval: 3, children: [_jsx(WalletMetamask, { className: "h-5 w-5", variant: "branded" }), _jsx(WalletCoinbase, { className: "h-5 w-5", variant: "branded" }), _jsx(WalletPhantom, { className: "h-5 w-5", variant: "branded" }), _jsx(WalletTrust, { className: "h-5 w-5", variant: "branded" })] })] })] }) }))] })) })), _jsxs("div", { className: "order-details-time-remaining flex w-full items-center justify-center gap-1 text-sm", children: [_jsx("div", { className: "text-as-primary/30 order-details-time-label", children: "Time remaining:" }), _jsx("div", { className: "text-as-primary order-details-time-value", children: depositEnoughAmount ? ("Received") : order.status === "expired" ? ("Expired") : (_jsx(TimeAgo, { date: new Date(order.expiredAt), live: true })) })] }), statusDisplay !== "processing" && (_jsx(OrderDetailsCollapsible, { order: order, dstToken: dstToken, tournament: tournament, nft: nft, recipientName: recipientName, formattedExpectedDstAmount: formattedExpectedDstAmount })), _jsxs("button", { className: "order-details-cancel-btn flex w-full items-center justify-center gap-2", onClick: handleBack, children: [_jsx(RefreshCcw, { className: "ml-2 h-4 w-4" }), " Cancel and start over"] })] }));
499
500
  });
500
501
  function TransactionDetails({ title, chainId, tx, isProcessing, delay, }) {
501
- return (_jsxs("div", { className: "relative flex w-full flex-1 items-center justify-between gap-4", children: [_jsxs("div", { className: "flex grow items-center gap-4", children: [_jsx(motion.div, { className: "bg-as-surface-secondary relative h-10 w-10 rounded-full", children: isProcessing ? (_jsx(motion.div, { initial: { opacity: 0, scale: 0.3 }, animate: { opacity: 1, scale: 1 }, transition: { duration: 0.5, ease: "easeInOut", delay }, className: "border-as-border-secondary absolute z-10 m-2 flex h-6 w-6 items-center justify-center rounded-full border-2 shadow-lg backdrop-blur-sm", children: _jsx(Loader2, { className: "text-as-primary h-4 w-4 animate-spin" }) })) : (_jsx(motion.div, { initial: { opacity: 0, scale: 0.3 }, animate: { opacity: 1, scale: 1 }, transition: { duration: 0.5, ease: "easeOut", delay }, className: "bg-as-success-secondary absolute z-10 m-2 flex h-6 w-6 items-center justify-center rounded-full border border-white/30 shadow-lg backdrop-blur-sm", children: _jsx(CheckIcon, { className: "text-as-content-icon-success h-4 w-4" }) })) }), _jsx(motion.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, transition: { duration: 0.3, ease: "easeInOut", delay }, className: "shrink-0 text-base", children: isProcessing ? (_jsx(TextShimmer, { duration: 1, children: title })) : (_jsx("span", { className: "text-as-primary", children: title })) })] }), _jsx("div", { className: "flex flex-col gap-1", children: tx ? (_jsx(motion.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, transition: { duration: 0.3, ease: "easeInOut", delay: (delay || 0) + 0.3 }, className: "flex items-center gap-3", children: _jsx("a", { href: getExplorerTxUrl(chainId, tx.txHash), target: "_blank", children: _jsx("div", { className: "text-as-primary/30 font-mono text-xs", children: centerTruncate(tx?.txHash, 6) }) }) })) : null })] }));
502
+ return (_jsxs("div", { className: "order-details-transaction-item relative flex w-full flex-1 items-center justify-between gap-4", children: [_jsxs("div", { className: "order-details-transaction-content flex grow items-center gap-4", children: [_jsx(motion.div, { className: "bg-as-surface-secondary relative h-10 w-10 rounded-full", children: isProcessing ? (_jsx(motion.div, { initial: { opacity: 0, scale: 0.3 }, animate: { opacity: 1, scale: 1 }, transition: { duration: 0.5, ease: "easeInOut", delay }, className: "border-as-border-secondary absolute z-10 m-2 flex h-6 w-6 items-center justify-center rounded-full border-2 shadow-lg backdrop-blur-sm", children: _jsx(Loader2, { className: "text-as-primary h-4 w-4 animate-spin" }) })) : (_jsx(motion.div, { initial: { opacity: 0, scale: 0.3 }, animate: { opacity: 1, scale: 1 }, transition: { duration: 0.5, ease: "easeOut", delay }, className: "bg-as-success-secondary absolute z-10 m-2 flex h-6 w-6 items-center justify-center rounded-full border border-white/30 shadow-lg backdrop-blur-sm", children: _jsx(CheckIcon, { className: "text-as-content-icon-success h-4 w-4" }) })) }), _jsx(motion.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, transition: { duration: 0.3, ease: "easeInOut", delay }, className: "shrink-0 text-base", children: isProcessing ? (_jsx(TextShimmer, { duration: 1, children: title })) : (_jsx("span", { className: "text-as-primary", children: title })) })] }), _jsx("div", { className: "flex flex-col gap-1", children: tx ? (_jsx(motion.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, transition: { duration: 0.3, ease: "easeInOut", delay: (delay || 0) + 0.3 }, className: "flex items-center gap-3", children: _jsx("a", { href: getExplorerTxUrl(chainId, tx.txHash), target: "_blank", children: _jsx("div", { className: "text-as-primary/30 font-mono text-xs", children: centerTruncate(tx?.txHash, 6) }) }) })) : null })] }));
502
503
  }
503
504
  export const OrderDetailsLoadingView = (_jsxs("div", { className: "mx-auto flex w-[460px] max-w-full flex-col items-center gap-4", children: [_jsxs(Badge, { variant: "default", className: "hover:bg-b3-react-background flex items-center gap-3 border-white/20 bg-white/10 px-4 py-1 text-base transition-colors", children: [_jsx(Loader2, { className: "text-as-primary h-4 w-4 animate-spin" }), _jsx(TextShimmer, { duration: 1, className: "font-sf-rounded text-base font-semibold", children: "Loading..." })] }), _jsxs("div", { className: "flex w-full flex-1 flex-col", children: [_jsxs("div", { className: "mb-4 flex flex-col gap-1", children: [_jsx(Skeleton, { className: "h-4 w-24" }), _jsxs("div", { className: "mt-2 flex items-center gap-2", children: [_jsx(Skeleton, { className: "h-8 w-48" }), _jsx(Skeleton, { className: "ml-4 h-8 w-32" })] }), _jsx(Skeleton, { className: "mt-4 h-8 w-24" })] }), _jsx(Skeleton, { className: "mb-4 h-12 w-full" }), _jsxs("div", { className: "flex w-full items-center justify-between gap-4", children: [_jsxs(Skeleton, { className: "rounded-lg p-6 pb-3", children: [_jsx("div", { className: "h-[200px] w-[200px]" }), _jsx("div", { className: "mt-3 flex items-center justify-center gap-2", children: _jsx("div", { className: "h-5 w-5 rounded-full" }) })] }), _jsx("div", { className: "flex flex-1 flex-col gap-2", children: [1, 2, 3].map(i => (_jsx(Skeleton, { className: "h-10 w-full" }, i))) })] })] }), _jsxs("div", { className: "bg-b3-react-background mt-8 w-full rounded-lg p-4", children: [_jsx(Skeleton, { className: "mb-3 h-4 w-48" }), _jsxs("div", { className: "flex items-center gap-4", children: [_jsx(Skeleton, { className: "h-10 flex-1" }), _jsx(Skeleton, { className: "h-10 flex-1" })] })] }), _jsx(Skeleton, { className: "h-10 w-full" })] }));
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { ALL_CHAINS, capitalizeFirstLetter, DEPOSIT_HYPE_ACTION, getChainName } from "../../../../anyspend/index.js";
3
+ import { ALL_CHAINS, capitalizeFirstLetter, getChainName } from "../../../../anyspend/index.js";
4
4
  import { CopyToClipboard } from "../../../../global-account/react/index.js";
5
5
  import { cn } from "../../../../shared/utils/index.js";
6
6
  import centerTruncate from "../../../../shared/utils/centerTruncate.js";
@@ -16,23 +16,24 @@ export const OrderDetailsCollapsible = memo(function OrderDetailsCollapsible({ o
16
16
  const expectedDstAmount = order.type === "mint_nft" ||
17
17
  order.type === "join_tournament" ||
18
18
  order.type === "fund_tournament" ||
19
- order.type === "custom"
19
+ order.type === "custom" ||
20
+ order.type === "hype_duel"
20
21
  ? "0"
21
22
  : order.payload.expectedDstAmount.toString();
22
23
  const finalFormattedExpectedDstAmount = formattedExpectedDstAmount || formatTokenAmount(BigInt(expectedDstAmount), dstToken.decimals);
23
- return (_jsx("div", { className: cn("bg-as-surface-secondary border-as-border-secondary rounded-xl border px-4 py-2", className), children: showOrderDetails ? (_jsx(motion.div, { className: "w-full", 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: _jsxs("div", { className: "flex w-full flex-col items-center gap-3 whitespace-nowrap py-2 text-sm", children: [_jsxs("div", { className: "flex w-full justify-between gap-4", children: [_jsx("div", { className: "text-as-tertiarry", children: "Recipient" }), _jsxs("div", { className: "flex flex-col items-end gap-1", children: [recipientName && _jsx("div", { className: "text-as-primary font-semibold", children: recipientName }), _jsx(CopyToClipboard, { text: order.recipientAddress, onCopy: () => {
24
+ return (_jsx("div", { className: cn("order-details-collapsible bg-as-surface-secondary border-as-border-secondary rounded-xl border px-4 py-2", className), children: showOrderDetails ? (_jsx(motion.div, { className: "order-details-expanded w-full", 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: _jsxs("div", { className: "order-details-content flex w-full flex-col items-center gap-3 whitespace-nowrap py-2 text-sm", children: [_jsxs("div", { className: "order-details-recipient-section flex w-full justify-between gap-4", children: [_jsx("div", { className: "order-details-recipient-label text-as-tertiarry", children: "Recipient" }), _jsxs("div", { className: "order-details-recipient-info flex flex-col items-end gap-1", children: [recipientName && (_jsx("div", { className: "order-details-recipient-name text-as-primary font-semibold", children: recipientName })), _jsx(CopyToClipboard, { text: order.recipientAddress, onCopy: () => {
24
25
  toast.success("Copied recipient address to clipboard");
25
- }, children: _jsxs("div", { className: "text-as-primary flex items-center gap-2", children: [centerTruncate(order.recipientAddress, 10), _jsx(Copy, { className: "text-as-primary/50 hover:text-as-primary h-4 w-4 cursor-pointer transition-all duration-200" })] }) })] })] }), _jsx("div", { className: "divider w-full" }), _jsxs("div", { className: "flex w-full items-center justify-between gap-2", children: [_jsx("div", { className: "text-as-tertiarry", children: order.type === "swap" || order.type === "mint_nft"
26
+ }, children: _jsxs("div", { className: "order-details-recipient-address text-as-primary flex items-center gap-2", children: [centerTruncate(order.recipientAddress, 10), _jsx(Copy, { className: "order-details-recipient-copy-icon text-as-primary/50 hover:text-as-primary h-4 w-4 cursor-pointer transition-all duration-200" })] }) })] })] }), _jsx("div", { className: "order-details-divider divider w-full" }), _jsxs("div", { className: "order-details-expected-section flex w-full items-center justify-between gap-2", children: [_jsx("div", { className: "order-details-expected-label text-as-tertiarry", children: order.type === "swap" || order.type === "mint_nft"
26
27
  ? "Expected to receive"
27
28
  : order.type === "join_tournament"
28
29
  ? "Join tournament"
29
30
  : order.type === "fund_tournament"
30
31
  ? "Fund tournament"
31
- : order.type === "custom"
32
- ? order.metadata.action === DEPOSIT_HYPE_ACTION
33
- ? "Deposit HYPE"
34
- : order.metadata.action
32
+ : order.type === "hype_duel"
33
+ ? "Deposit HYPE"
34
+ : order.type === "custom"
35
+ ? order.metadata.action
35
36
  ? capitalizeFirstLetter(order.metadata.action)
36
37
  : "Contract execution"
37
- : "" }), _jsxs("div", { className: "flex items-end gap-2", children: [order.type === "swap" ? (`~${finalFormattedExpectedDstAmount} ${dstToken.symbol}`) : order.type === "mint_nft" ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("img", { src: nft?.imageUrl, alt: nft?.name || "NFT", className: "h-5 w-5" }), _jsx("div", { children: nft?.name || "NFT" })] })) : order.type === "join_tournament" || order.type === "fund_tournament" ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("img", { src: tournament?.imageUrl, alt: tournament?.name || "Tournament", className: "h-5 w-5" }), _jsx("div", { children: tournament?.name || "Tournament" })] })) : order.type === "custom" && order.metadata.action === DEPOSIT_HYPE_ACTION ? (_jsx("div", { className: "flex items-center gap-2", children: _jsxs("div", { children: [formatTokenAmount(BigInt(order.payload.amount), dstToken.decimals), " HYPE"] }) })) : null, _jsxs("div", { className: "text-as-primary/50 flex items-center gap-2", children: [_jsxs("span", { children: ["on ", order.dstChain !== b3.id && getChainName(order.dstChain)] }), _jsx("img", { src: ALL_CHAINS[order.dstChain].logoUrl, alt: getChainName(order.dstChain), className: cn("h-3", order.dstChain !== b3.id && "w-3 rounded-full", order.dstChain === b3.id && "h-4") })] })] })] }), _jsx("div", { className: "divider w-full" }), _jsxs("div", { className: "flex w-full justify-between gap-4", children: [_jsx("div", { className: "text-as-tertiarry", children: showTotal ? "Total (included fee)" : "Order ID" }), _jsx("div", { className: "text-as-primary overflow-hidden text-ellipsis whitespace-nowrap", children: showTotal && totalAmount ? totalAmount : order.id })] })] }) })) : (_jsxs("div", { className: "flex w-full items-center", children: [_jsx("div", { className: "divider w-full" }), _jsx("button", { className: "whitespace-nowrap text-sm", onClick: () => setShowOrderDetails(true), children: "Order Details" }), _jsx(ChevronDown, { className: "text-as-primary mx-1 h-4 min-h-4 w-4 min-w-4" }), _jsx("div", { className: "divider w-full" })] })) }));
38
+ : "" }), _jsxs("div", { className: "order-details-expected-value flex items-end gap-2", children: [order.type === "swap" ? (`~${finalFormattedExpectedDstAmount} ${dstToken.symbol}`) : order.type === "mint_nft" ? (_jsxs("div", { className: "order-details-nft-info flex items-center gap-2", children: [_jsx("img", { src: nft?.imageUrl, alt: nft?.name || "NFT", className: "order-details-nft-image h-5 w-5" }), _jsx("div", { className: "order-details-nft-name", children: nft?.name || "NFT" })] })) : order.type === "join_tournament" || order.type === "fund_tournament" ? (_jsxs("div", { className: "order-details-tournament-info flex items-center gap-2", children: [_jsx("img", { src: tournament?.imageUrl, alt: tournament?.name || "Tournament", className: "order-details-tournament-image h-5 w-5" }), _jsx("div", { className: "order-details-tournament-name", children: tournament?.name || "Tournament" })] })) : order.type === "hype_duel" ? (_jsx("div", { className: "order-details-hype-info flex items-center gap-2", children: _jsxs("div", { className: "order-details-hype-amount", children: [formatTokenAmount(BigInt(order.payload.expectedDstAmount), dstToken.decimals), " HYPE"] }) })) : null, _jsxs("div", { className: "order-details-chain-info text-as-primary/50 flex items-center gap-2", children: [_jsxs("span", { className: "order-details-chain-text", children: ["on ", order.dstChain !== b3.id && getChainName(order.dstChain)] }), _jsx("img", { src: ALL_CHAINS[order.dstChain].logoUrl, alt: getChainName(order.dstChain), className: cn("order-details-chain-logo h-3", order.dstChain !== b3.id && "w-3 rounded-full", order.dstChain === b3.id && "h-4") })] })] })] }), _jsx("div", { className: "order-details-divider divider w-full" }), _jsxs("div", { className: "order-details-id-total-section flex w-full justify-between gap-4", children: [_jsx("div", { className: "order-details-id-total-label text-as-tertiarry", children: showTotal ? "Total (included fee)" : "Order ID" }), _jsx("div", { className: "order-details-id-total-value text-as-primary overflow-hidden text-ellipsis whitespace-nowrap", children: showTotal && totalAmount ? totalAmount : order.id })] })] }) })) : (_jsxs("div", { className: "order-details-collapsed flex w-full items-center", children: [_jsx("div", { className: "order-details-collapsed-divider divider w-full" }), _jsx("button", { className: "order-details-collapsed-button whitespace-nowrap text-sm", onClick: () => setShowOrderDetails(true), children: "Order Details" }), _jsx(ChevronDown, { className: "order-details-collapsed-chevron text-as-primary mx-1 h-4 min-h-4 w-4 min-w-4" }), _jsx("div", { className: "order-details-collapsed-divider divider w-full" })] })) }));
38
39
  });