@b3dotfun/sdk 0.0.64 → 0.0.65-test.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/dist/cjs/anyspend/react/components/AnySpend.js +73 -33
  2. package/dist/cjs/anyspend/react/components/AnySpendCustom.js +1 -1
  3. package/dist/cjs/anyspend/react/components/AnySpendCustomExactIn.js +1 -5
  4. package/dist/cjs/anyspend/react/components/AnyspendDepositHype.js +1 -5
  5. package/dist/cjs/anyspend/react/components/common/CryptoPaymentMethod.js +1 -5
  6. package/dist/cjs/anyspend/react/components/common/FeeDetailPanel.js +1 -1
  7. package/dist/cjs/anyspend/react/components/common/FiatPaymentMethod.js +2 -2
  8. package/dist/cjs/anyspend/react/components/common/OrderHistory.d.ts +1 -1
  9. package/dist/cjs/anyspend/react/components/common/OrderHistory.js +7 -3
  10. package/dist/cjs/anyspend/react/components/common/PanelOnrampPayment.js +1 -1
  11. package/dist/cjs/anyspend/react/components/common/PointsDetailPanel.js +1 -1
  12. package/dist/cjs/anyspend/react/components/common/RecipientSelection.js +1 -1
  13. package/dist/cjs/anyspend/utils/index.d.ts +0 -1
  14. package/dist/cjs/anyspend/utils/index.js +0 -1
  15. package/dist/cjs/global-account/react/components/AccountAssets/AccountAssets.js +38 -2
  16. package/dist/cjs/global-account/react/components/AvatarEditor/AvatarEditor.js +139 -33
  17. package/dist/cjs/global-account/react/components/B3DynamicModal.js +29 -13
  18. package/dist/cjs/global-account/react/components/Deposit/Deposit.d.ts +1 -0
  19. package/dist/cjs/global-account/react/components/Deposit/Deposit.js +65 -0
  20. package/dist/cjs/global-account/react/components/LinkAccount/LinkAccount.d.ts +6 -4
  21. package/dist/cjs/global-account/react/components/LinkAccount/LinkAccount.js +113 -279
  22. package/dist/cjs/global-account/react/components/LinkAccount/LinkNewAccount.d.ts +4 -0
  23. package/dist/cjs/global-account/react/components/LinkAccount/LinkNewAccount.js +331 -0
  24. package/dist/cjs/global-account/react/components/ManageAccount/AppsContent.d.ts +6 -0
  25. package/dist/cjs/global-account/react/components/ManageAccount/AppsContent.js +34 -0
  26. package/dist/cjs/global-account/react/components/ManageAccount/BalanceContent.js +2 -2
  27. package/dist/cjs/global-account/react/components/ManageAccount/BottomNavigation.d.ts +2 -0
  28. package/dist/cjs/global-account/react/components/ManageAccount/BottomNavigation.js +23 -0
  29. package/dist/cjs/global-account/react/components/ManageAccount/Header.d.ts +3 -0
  30. package/dist/cjs/global-account/react/components/ManageAccount/Header.js +120 -0
  31. package/dist/cjs/global-account/react/components/ManageAccount/HomeActions.d.ts +5 -0
  32. package/dist/cjs/global-account/react/components/ManageAccount/HomeActions.js +43 -0
  33. package/dist/cjs/global-account/react/components/ManageAccount/HomeContent.d.ts +6 -0
  34. package/dist/cjs/global-account/react/components/ManageAccount/HomeContent.js +16 -0
  35. package/dist/cjs/global-account/react/components/ManageAccount/ManageAccount.js +24 -193
  36. package/dist/cjs/global-account/react/components/ManageAccount/NFTContent.d.ts +2 -0
  37. package/dist/cjs/global-account/react/components/ManageAccount/NFTContent.js +15 -0
  38. package/dist/cjs/global-account/react/components/ManageAccount/ProfileSection.d.ts +2 -0
  39. package/dist/cjs/global-account/react/components/ManageAccount/ProfileSection.js +44 -0
  40. package/dist/cjs/global-account/react/components/ManageAccount/SettingsContent.d.ts +7 -0
  41. package/dist/cjs/global-account/react/components/ManageAccount/SettingsContent.js +50 -0
  42. package/dist/cjs/global-account/react/components/ManageAccount/SettingsMenuItem.d.ts +9 -0
  43. package/dist/cjs/global-account/react/components/ManageAccount/SettingsMenuItem.js +8 -0
  44. package/dist/cjs/global-account/react/components/ManageAccount/SettingsProfileCard.d.ts +2 -0
  45. package/dist/cjs/global-account/react/components/ManageAccount/SettingsProfileCard.js +38 -0
  46. package/dist/cjs/global-account/react/components/ManageAccount/TokenContent.d.ts +2 -0
  47. package/dist/cjs/global-account/react/components/ManageAccount/TokenContent.js +22 -0
  48. package/dist/cjs/global-account/react/components/ModalHeader/ModalHeader.d.ts +10 -0
  49. package/dist/cjs/global-account/react/components/ModalHeader/ModalHeader.js +12 -0
  50. package/dist/cjs/global-account/react/components/Send/Send.d.ts +5 -0
  51. package/dist/cjs/global-account/react/components/Send/Send.js +187 -0
  52. package/dist/cjs/global-account/react/components/icons/BellIcon.d.ts +3 -0
  53. package/dist/cjs/global-account/react/components/icons/BellIcon.js +5 -0
  54. package/dist/cjs/global-account/react/components/icons/ChevronDownIcon.d.ts +2 -0
  55. package/dist/cjs/global-account/react/components/icons/ChevronDownIcon.js +7 -0
  56. package/dist/cjs/global-account/react/components/icons/CopyIcon.d.ts +2 -0
  57. package/dist/cjs/global-account/react/components/icons/CopyIcon.js +7 -0
  58. package/dist/cjs/global-account/react/components/icons/LinkIcon.d.ts +3 -0
  59. package/dist/cjs/global-account/react/components/icons/LinkIcon.js +5 -0
  60. package/dist/cjs/global-account/react/components/icons/LockIcon.d.ts +3 -0
  61. package/dist/cjs/global-account/react/components/icons/LockIcon.js +5 -0
  62. package/dist/cjs/global-account/react/components/icons/WalletIcon.d.ts +2 -0
  63. package/dist/cjs/global-account/react/components/icons/WalletIcon.js +7 -0
  64. package/dist/cjs/global-account/react/components/index.d.ts +4 -2
  65. package/dist/cjs/global-account/react/components/index.js +11 -4
  66. package/dist/cjs/global-account/react/components/ui/Tabs.js +2 -2
  67. package/dist/cjs/global-account/react/components/ui/dialog.js +2 -2
  68. package/dist/cjs/global-account/react/hooks/index.d.ts +1 -1
  69. package/dist/cjs/global-account/react/hooks/index.js +3 -1
  70. package/dist/cjs/global-account/react/hooks/useAuthentication.js +0 -11
  71. package/dist/cjs/global-account/react/hooks/useB3BalanceFromAddresses.js +1 -0
  72. package/dist/cjs/global-account/react/hooks/useGlobalAccount.d.ts +1 -0
  73. package/dist/cjs/global-account/react/hooks/useGlobalAccount.js +3 -0
  74. package/dist/cjs/global-account/react/stores/index.d.ts +1 -0
  75. package/dist/cjs/global-account/react/stores/index.js +3 -1
  76. package/dist/cjs/global-account/react/stores/useModalStore.d.ts +34 -3
  77. package/dist/cjs/global-account/react/stores/useRecentAddressesStore.d.ts +25 -0
  78. package/dist/cjs/global-account/react/stores/useRecentAddressesStore.js +36 -0
  79. package/dist/cjs/global-account/react/utils/profileDisplay.d.ts +2 -0
  80. package/dist/cjs/global-account/react/utils/profileDisplay.js +2 -2
  81. package/dist/cjs/shared/constants/chains/supported.d.ts +2 -2
  82. package/dist/cjs/shared/utils/ipfs.js +1 -1
  83. package/dist/esm/anyspend/react/components/AnySpend.js +74 -34
  84. package/dist/esm/anyspend/react/components/AnySpendCustom.js +1 -1
  85. package/dist/esm/anyspend/react/components/AnySpendCustomExactIn.js +2 -6
  86. package/dist/esm/anyspend/react/components/AnyspendDepositHype.js +2 -6
  87. package/dist/esm/anyspend/react/components/common/CryptoPaymentMethod.js +2 -6
  88. package/dist/esm/anyspend/react/components/common/FeeDetailPanel.js +1 -1
  89. package/dist/esm/anyspend/react/components/common/FiatPaymentMethod.js +2 -2
  90. package/dist/esm/anyspend/react/components/common/OrderHistory.d.ts +1 -1
  91. package/dist/esm/anyspend/react/components/common/OrderHistory.js +6 -5
  92. package/dist/esm/anyspend/react/components/common/PanelOnrampPayment.js +1 -1
  93. package/dist/esm/anyspend/react/components/common/PointsDetailPanel.js +1 -1
  94. package/dist/esm/anyspend/react/components/common/RecipientSelection.js +1 -1
  95. package/dist/esm/anyspend/utils/index.d.ts +0 -1
  96. package/dist/esm/anyspend/utils/index.js +0 -1
  97. package/dist/esm/global-account/react/components/AccountAssets/AccountAssets.js +38 -2
  98. package/dist/esm/global-account/react/components/AvatarEditor/AvatarEditor.js +140 -34
  99. package/dist/esm/global-account/react/components/B3DynamicModal.js +30 -14
  100. package/dist/esm/global-account/react/components/Deposit/Deposit.d.ts +1 -0
  101. package/dist/esm/global-account/react/components/Deposit/Deposit.js +59 -0
  102. package/dist/esm/global-account/react/components/LinkAccount/LinkAccount.d.ts +6 -4
  103. package/dist/esm/global-account/react/components/LinkAccount/LinkAccount.js +113 -280
  104. package/dist/esm/global-account/react/components/LinkAccount/LinkNewAccount.d.ts +4 -0
  105. package/dist/esm/global-account/react/components/LinkAccount/LinkNewAccount.js +325 -0
  106. package/dist/esm/global-account/react/components/ManageAccount/AppsContent.d.ts +6 -0
  107. package/dist/esm/global-account/react/components/ManageAccount/AppsContent.js +32 -0
  108. package/dist/esm/global-account/react/components/ManageAccount/BalanceContent.js +2 -2
  109. package/dist/esm/global-account/react/components/ManageAccount/BottomNavigation.d.ts +2 -0
  110. package/dist/esm/global-account/react/components/ManageAccount/BottomNavigation.js +21 -0
  111. package/dist/esm/global-account/react/components/ManageAccount/Header.d.ts +3 -0
  112. package/dist/esm/global-account/react/components/ManageAccount/Header.js +81 -0
  113. package/dist/esm/global-account/react/components/ManageAccount/HomeActions.d.ts +5 -0
  114. package/dist/esm/global-account/react/components/ManageAccount/HomeActions.js +41 -0
  115. package/dist/esm/global-account/react/components/ManageAccount/HomeContent.d.ts +6 -0
  116. package/dist/esm/global-account/react/components/ManageAccount/HomeContent.js +10 -0
  117. package/dist/esm/global-account/react/components/ManageAccount/ManageAccount.js +26 -195
  118. package/dist/esm/global-account/react/components/ManageAccount/NFTContent.d.ts +2 -0
  119. package/dist/esm/global-account/react/components/ManageAccount/NFTContent.js +13 -0
  120. package/dist/esm/global-account/react/components/ManageAccount/ProfileSection.d.ts +2 -0
  121. package/dist/esm/global-account/react/components/ManageAccount/ProfileSection.js +42 -0
  122. package/dist/esm/global-account/react/components/ManageAccount/SettingsContent.d.ts +7 -0
  123. package/dist/esm/global-account/react/components/ManageAccount/SettingsContent.js +45 -0
  124. package/dist/esm/global-account/react/components/ManageAccount/SettingsMenuItem.d.ts +9 -0
  125. package/dist/esm/global-account/react/components/ManageAccount/SettingsMenuItem.js +6 -0
  126. package/dist/esm/global-account/react/components/ManageAccount/SettingsProfileCard.d.ts +2 -0
  127. package/dist/esm/global-account/react/components/ManageAccount/SettingsProfileCard.js +36 -0
  128. package/dist/esm/global-account/react/components/ManageAccount/TokenContent.d.ts +2 -0
  129. package/dist/esm/global-account/react/components/ManageAccount/TokenContent.js +20 -0
  130. package/dist/esm/global-account/react/components/ModalHeader/ModalHeader.d.ts +10 -0
  131. package/dist/esm/global-account/react/components/ModalHeader/ModalHeader.js +10 -0
  132. package/dist/esm/global-account/react/components/Send/Send.d.ts +5 -0
  133. package/dist/esm/global-account/react/components/Send/Send.js +181 -0
  134. package/dist/esm/global-account/react/components/icons/BellIcon.d.ts +3 -0
  135. package/dist/esm/global-account/react/components/icons/BellIcon.js +3 -0
  136. package/dist/esm/global-account/react/components/icons/ChevronDownIcon.d.ts +2 -0
  137. package/dist/esm/global-account/react/components/icons/ChevronDownIcon.js +4 -0
  138. package/dist/esm/global-account/react/components/icons/CopyIcon.d.ts +2 -0
  139. package/dist/esm/global-account/react/components/icons/CopyIcon.js +4 -0
  140. package/dist/esm/global-account/react/components/icons/LinkIcon.d.ts +3 -0
  141. package/dist/esm/global-account/react/components/icons/LinkIcon.js +3 -0
  142. package/dist/esm/global-account/react/components/icons/LockIcon.d.ts +3 -0
  143. package/dist/esm/global-account/react/components/icons/LockIcon.js +3 -0
  144. package/dist/esm/global-account/react/components/icons/WalletIcon.d.ts +2 -0
  145. package/dist/esm/global-account/react/components/icons/WalletIcon.js +4 -0
  146. package/dist/esm/global-account/react/components/index.d.ts +4 -2
  147. package/dist/esm/global-account/react/components/index.js +7 -2
  148. package/dist/esm/global-account/react/components/ui/Tabs.js +2 -2
  149. package/dist/esm/global-account/react/components/ui/dialog.js +2 -2
  150. package/dist/esm/global-account/react/hooks/index.d.ts +1 -1
  151. package/dist/esm/global-account/react/hooks/index.js +1 -1
  152. package/dist/esm/global-account/react/hooks/useAuthentication.js +0 -11
  153. package/dist/esm/global-account/react/hooks/useB3BalanceFromAddresses.js +1 -0
  154. package/dist/esm/global-account/react/hooks/useGlobalAccount.d.ts +1 -0
  155. package/dist/esm/global-account/react/hooks/useGlobalAccount.js +3 -0
  156. package/dist/esm/global-account/react/stores/index.d.ts +1 -0
  157. package/dist/esm/global-account/react/stores/index.js +1 -0
  158. package/dist/esm/global-account/react/stores/useModalStore.d.ts +34 -3
  159. package/dist/esm/global-account/react/stores/useRecentAddressesStore.d.ts +25 -0
  160. package/dist/esm/global-account/react/stores/useRecentAddressesStore.js +33 -0
  161. package/dist/esm/global-account/react/utils/profileDisplay.d.ts +2 -0
  162. package/dist/esm/global-account/react/utils/profileDisplay.js +2 -2
  163. package/dist/esm/shared/constants/chains/supported.d.ts +2 -2
  164. package/dist/esm/shared/utils/ipfs.js +1 -1
  165. package/dist/styles/index.css +1 -1
  166. package/dist/types/anyspend/react/components/common/OrderHistory.d.ts +1 -1
  167. package/dist/types/anyspend/utils/index.d.ts +0 -1
  168. package/dist/types/global-account/react/components/Deposit/Deposit.d.ts +1 -0
  169. package/dist/types/global-account/react/components/LinkAccount/LinkAccount.d.ts +6 -4
  170. package/dist/types/global-account/react/components/LinkAccount/LinkNewAccount.d.ts +4 -0
  171. package/dist/types/global-account/react/components/ManageAccount/AppsContent.d.ts +6 -0
  172. package/dist/types/global-account/react/components/ManageAccount/BottomNavigation.d.ts +2 -0
  173. package/dist/types/global-account/react/components/ManageAccount/Header.d.ts +3 -0
  174. package/dist/types/global-account/react/components/ManageAccount/HomeActions.d.ts +5 -0
  175. package/dist/types/global-account/react/components/ManageAccount/HomeContent.d.ts +6 -0
  176. package/dist/types/global-account/react/components/ManageAccount/NFTContent.d.ts +2 -0
  177. package/dist/types/global-account/react/components/ManageAccount/ProfileSection.d.ts +2 -0
  178. package/dist/types/global-account/react/components/ManageAccount/SettingsContent.d.ts +7 -0
  179. package/dist/types/global-account/react/components/ManageAccount/SettingsMenuItem.d.ts +9 -0
  180. package/dist/types/global-account/react/components/ManageAccount/SettingsProfileCard.d.ts +2 -0
  181. package/dist/types/global-account/react/components/ManageAccount/TokenContent.d.ts +2 -0
  182. package/dist/types/global-account/react/components/ModalHeader/ModalHeader.d.ts +10 -0
  183. package/dist/types/global-account/react/components/Send/Send.d.ts +5 -0
  184. package/dist/types/global-account/react/components/icons/BellIcon.d.ts +3 -0
  185. package/dist/types/global-account/react/components/icons/ChevronDownIcon.d.ts +2 -0
  186. package/dist/types/global-account/react/components/icons/CopyIcon.d.ts +2 -0
  187. package/dist/types/global-account/react/components/icons/LinkIcon.d.ts +3 -0
  188. package/dist/types/global-account/react/components/icons/LockIcon.d.ts +3 -0
  189. package/dist/types/global-account/react/components/icons/WalletIcon.d.ts +2 -0
  190. package/dist/types/global-account/react/components/index.d.ts +4 -2
  191. package/dist/types/global-account/react/hooks/index.d.ts +1 -1
  192. package/dist/types/global-account/react/hooks/useGlobalAccount.d.ts +1 -0
  193. package/dist/types/global-account/react/stores/index.d.ts +1 -0
  194. package/dist/types/global-account/react/stores/useModalStore.d.ts +34 -3
  195. package/dist/types/global-account/react/stores/useRecentAddressesStore.d.ts +25 -0
  196. package/dist/types/global-account/react/utils/profileDisplay.d.ts +2 -0
  197. package/dist/types/shared/constants/chains/supported.d.ts +2 -2
  198. package/package.json +1 -1
  199. package/src/anyspend/react/components/AnySpend.tsx +225 -167
  200. package/src/anyspend/react/components/AnySpendCustom.tsx +1 -1
  201. package/src/anyspend/react/components/AnySpendCustomExactIn.tsx +2 -6
  202. package/src/anyspend/react/components/AnyspendDepositHype.tsx +2 -6
  203. package/src/anyspend/react/components/common/CryptoPaymentMethod.tsx +2 -7
  204. package/src/anyspend/react/components/common/FeeDetailPanel.tsx +1 -1
  205. package/src/anyspend/react/components/common/FiatPaymentMethod.tsx +2 -2
  206. package/src/anyspend/react/components/common/OrderHistory.tsx +8 -13
  207. package/src/anyspend/react/components/common/PanelOnrampPayment.tsx +1 -1
  208. package/src/anyspend/react/components/common/PointsDetailPanel.tsx +1 -1
  209. package/src/anyspend/react/components/common/RecipientSelection.tsx +1 -1
  210. package/src/anyspend/utils/index.ts +0 -1
  211. package/src/global-account/react/components/AccountAssets/AccountAssets.tsx +115 -25
  212. package/src/global-account/react/components/AvatarEditor/AvatarEditor.tsx +303 -126
  213. package/src/global-account/react/components/B3DynamicModal.tsx +33 -15
  214. package/src/global-account/react/components/Deposit/Deposit.tsx +211 -0
  215. package/src/global-account/react/components/LinkAccount/LinkAccount.tsx +332 -433
  216. package/src/global-account/react/components/LinkAccount/LinkNewAccount.tsx +490 -0
  217. package/src/global-account/react/components/ManageAccount/AppsContent.tsx +79 -0
  218. package/src/global-account/react/components/ManageAccount/BalanceContent.tsx +2 -3
  219. package/src/global-account/react/components/ManageAccount/BottomNavigation.tsx +83 -0
  220. package/src/global-account/react/components/ManageAccount/Header.tsx +230 -0
  221. package/src/global-account/react/components/ManageAccount/HomeActions.tsx +118 -0
  222. package/src/global-account/react/components/ManageAccount/HomeContent.tsx +42 -0
  223. package/src/global-account/react/components/ManageAccount/ManageAccount.tsx +73 -589
  224. package/src/global-account/react/components/ManageAccount/NFTContent.tsx +24 -0
  225. package/src/global-account/react/components/ManageAccount/ProfileSection.tsx +74 -0
  226. package/src/global-account/react/components/ManageAccount/SettingsContent.tsx +87 -0
  227. package/src/global-account/react/components/ManageAccount/SettingsMenuItem.tsx +31 -0
  228. package/src/global-account/react/components/ManageAccount/SettingsProfileCard.tsx +74 -0
  229. package/src/global-account/react/components/ManageAccount/TokenContent.tsx +41 -0
  230. package/src/global-account/react/components/ModalHeader/ModalHeader.tsx +50 -0
  231. package/src/global-account/react/components/Send/Send.tsx +585 -0
  232. package/src/global-account/react/components/icons/BellIcon.tsx +15 -0
  233. package/src/global-account/react/components/icons/ChevronDownIcon.tsx +17 -0
  234. package/src/global-account/react/components/icons/CopyIcon.tsx +22 -0
  235. package/src/global-account/react/components/icons/LinkIcon.tsx +15 -0
  236. package/src/global-account/react/components/icons/LockIcon.tsx +15 -0
  237. package/src/global-account/react/components/icons/WalletIcon.tsx +21 -0
  238. package/src/global-account/react/components/index.ts +9 -2
  239. package/src/global-account/react/components/ui/Tabs.tsx +5 -13
  240. package/src/global-account/react/components/ui/dialog.tsx +32 -14
  241. package/src/global-account/react/hooks/index.ts +3 -0
  242. package/src/global-account/react/hooks/useAuthentication.ts +0 -12
  243. package/src/global-account/react/hooks/useB3BalanceFromAddresses.ts +1 -0
  244. package/src/global-account/react/hooks/useGlobalAccount.tsx +3 -1
  245. package/src/global-account/react/stores/index.ts +1 -0
  246. package/src/global-account/react/stores/useModalStore.ts +39 -2
  247. package/src/global-account/react/stores/useRecentAddressesStore.ts +55 -0
  248. package/src/global-account/react/utils/profileDisplay.ts +4 -2
  249. package/src/shared/utils/ipfs.ts +1 -1
  250. package/src/styles/index.css +6 -1
  251. package/dist/cjs/anyspend/utils/accountStore.d.ts +0 -7
  252. package/dist/cjs/anyspend/utils/accountStore.js +0 -8
  253. package/dist/esm/anyspend/utils/accountStore.d.ts +0 -7
  254. package/dist/esm/anyspend/utils/accountStore.js +0 -5
  255. package/dist/types/anyspend/utils/accountStore.d.ts +0 -7
  256. package/src/anyspend/utils/accountStore.ts +0 -12
@@ -0,0 +1,211 @@
1
+ import { RELAY_SOLANA_MAINNET_CHAIN_ID } from "@b3dotfun/sdk/anyspend/constants";
2
+ import type { components } from "@b3dotfun/sdk/anyspend/types/api";
3
+ import { ALL_CHAINS } from "@b3dotfun/sdk/anyspend/utils/chain";
4
+ import { useAccountWallet, useModalStore } from "@b3dotfun/sdk/global-account/react";
5
+ import { TokenSelector } from "@relayprotocol/relay-kit-ui";
6
+ import { ChevronDown, Copy } from "lucide-react";
7
+ import { QRCodeSVG } from "qrcode.react";
8
+ import { useMemo, useState } from "react";
9
+ import { toast } from "sonner";
10
+ import { base } from "thirdweb/chains";
11
+ import ModalHeader from "../ModalHeader/ModalHeader";
12
+ import { Button } from "../ui/button";
13
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "../ui/dropdown-menu";
14
+
15
+ // Coinbase logo SVG
16
+ const CoinbaseLogo = () => (
17
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
18
+ <path
19
+ d="M8 16C12.4183 16 16 12.4183 16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16Z"
20
+ fill="#0052FF"
21
+ />
22
+ <path
23
+ d="M8.00065 11.3337C6.16065 11.3337 4.66732 9.84033 4.66732 8.00033C4.66732 6.16033 6.16065 4.66699 8.00065 4.66699C9.47399 4.66699 10.734 5.64699 11.1607 7.00033H13.2273C12.774 4.54699 10.6273 2.66699 8.00065 2.66699C5.05399 2.66699 2.66732 5.05366 2.66732 8.00033C2.66732 10.947 5.05399 13.3337 8.00065 13.3337C10.6273 13.3337 12.774 11.4537 13.2273 9.00033H11.1607C10.734 10.3537 9.47399 11.3337 8.00065 11.3337Z"
24
+ fill="white"
25
+ />
26
+ </svg>
27
+ );
28
+
29
+ export function Deposit() {
30
+ const { address } = useAccountWallet();
31
+ const navigateBack = useModalStore(state => state.navigateBack);
32
+ const setB3ModalOpen = useModalStore(state => state.setB3ModalOpen);
33
+ const history = useModalStore(state => state.history);
34
+
35
+ const [selectedChainId, setSelectedChainId] = useState(base.id);
36
+ const [selectedToken, setSelectedToken] = useState<components["schemas"]["Token"]>({
37
+ address: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
38
+ chainId: base.id,
39
+ decimals: 6,
40
+ symbol: "USDC",
41
+ name: "USD Coin",
42
+ metadata: {
43
+ logoURI: "https://assets.relay.link/icons/1/light/usdc.png",
44
+ },
45
+ });
46
+
47
+ // Get the selected chain object
48
+ const selectedChain = useMemo(() => ALL_CHAINS[selectedChainId], [selectedChainId]);
49
+
50
+ // Get all supported chains for the dropdown
51
+ const supportedChains = useMemo(() => Object.values(ALL_CHAINS), []);
52
+
53
+ // The deposit address is the user's active wallet address
54
+ const depositAddress = address || "0x0000000000000000000000000000000000000000";
55
+
56
+ const handleTokenSelect = (token: any) => {
57
+ setSelectedChainId(token.chainId);
58
+ setSelectedToken({
59
+ address: token.address,
60
+ chainId: token.chainId,
61
+ decimals: token.decimals,
62
+ metadata: { logoURI: token.logoURI },
63
+ name: token.name,
64
+ symbol: token.symbol,
65
+ });
66
+ };
67
+
68
+ const handleCopyAddress = async () => {
69
+ try {
70
+ await navigator.clipboard.writeText(depositAddress);
71
+ toast.success("Address copied to clipboard");
72
+ } catch (error) {
73
+ toast.error("Failed to copy address");
74
+ }
75
+ };
76
+
77
+ return (
78
+ <div className="flex w-full flex-col">
79
+ <ModalHeader title="Deposit" showCloseButton={false} />
80
+
81
+ {/* Content */}
82
+ <div className="flex flex-col pb-5 pt-5">
83
+ {/* Header text */}
84
+ <div className="mb-4 px-5">
85
+ <p className="font-neue-montreal-medium text-base leading-snug text-[#3f3f46]">
86
+ Send any accepted token and we'll convert it to B3 on Base for you to use.
87
+ </p>
88
+ </div>
89
+
90
+ {/* Chain and Token Selectors */}
91
+ <div className="space-y-3 px-5">
92
+ {/* Chain Selector */}
93
+ <div>
94
+ <label className="mb-1.5 block text-sm font-medium text-[#3f3f46]">Chain</label>
95
+ <DropdownMenu>
96
+ <DropdownMenuTrigger asChild>
97
+ <button className="flex h-10 w-full items-center justify-between rounded-lg border border-[#d1d1d6] bg-white px-2.5 py-2 transition-colors hover:bg-[#fafafa]">
98
+ <div className="flex items-center gap-2">
99
+ {selectedChain?.logoUrl && (
100
+ <img src={selectedChain.logoUrl} alt={selectedChain.name} className="h-6 w-6 rounded-full" />
101
+ )}
102
+ <span className="text-base text-[#18181b]">{selectedChain?.name || "Select Chain"}</span>
103
+ </div>
104
+ <ChevronDown className="h-4 w-4 text-[#51525c]" />
105
+ </button>
106
+ </DropdownMenuTrigger>
107
+ <DropdownMenuContent className="max-h-[300px] w-full overflow-y-auto">
108
+ {supportedChains.map(chain => (
109
+ <DropdownMenuItem key={chain.id} onClick={() => setSelectedChainId(chain.id)}>
110
+ <div className="flex items-center gap-2">
111
+ {chain.logoUrl && <img src={chain.logoUrl} alt={chain.name} className="h-6 w-6 rounded-full" />}
112
+ <span className="text-[#18181b]">{chain.name}</span>
113
+ </div>
114
+ </DropdownMenuItem>
115
+ ))}
116
+ </DropdownMenuContent>
117
+ </DropdownMenu>
118
+ </div>
119
+
120
+ {/* Accepted Tokens Selector */}
121
+ <div>
122
+ <label className="mb-1.5 block text-sm font-medium text-[#3f3f46]">Accepted tokens</label>
123
+ <TokenSelector
124
+ address={address}
125
+ chainIdsFilter={[selectedChainId]}
126
+ context="from"
127
+ fromChainWalletVMSupported={true}
128
+ isValidAddress={true}
129
+ lockedChainIds={[selectedChainId]}
130
+ multiWalletSupportEnabled={true}
131
+ onAnalyticEvent={undefined}
132
+ popularChainIds={[1, 8453, RELAY_SOLANA_MAINNET_CHAIN_ID]}
133
+ setToken={handleTokenSelect}
134
+ supportedWalletVMs={["evm", "svm"]}
135
+ token={undefined}
136
+ trigger={
137
+ <button className="flex h-10 w-full items-center justify-between rounded-lg border border-[#d1d1d6] bg-white px-2.5 py-2 transition-colors hover:bg-[#fafafa]">
138
+ <div className="flex items-center gap-2">
139
+ {selectedToken?.metadata?.logoURI && (
140
+ <img
141
+ src={selectedToken.metadata.logoURI}
142
+ alt={selectedToken.symbol}
143
+ className="h-6 w-6 rounded-full"
144
+ />
145
+ )}
146
+ <span className="text-base text-[#18181b]">{selectedToken.symbol}</span>
147
+ </div>
148
+ <ChevronDown className="h-4 w-4 text-[#51525c]" />
149
+ </button>
150
+ }
151
+ />
152
+ </div>
153
+ </div>
154
+
155
+ {/* QR Code and Address Container */}
156
+ <div className="mx-5 mt-4 flex items-start rounded-xl border border-[#e4e4e7] bg-[#fafafa]">
157
+ {/* QR Code Section */}
158
+ <div className="flex flex-1 flex-col items-center gap-2 px-5 pb-3 pt-5">
159
+ <div className="flex w-full items-center justify-center">
160
+ <div className="w-full">
161
+ <div className="flex aspect-[144/146] w-full flex-col items-center justify-center overflow-hidden">
162
+ <QRCodeSVG value={depositAddress} size={144} level="M" />
163
+ </div>
164
+ </div>
165
+ </div>
166
+ <div className="flex items-center gap-2">
167
+ <span className="text-xs font-semibold leading-[18px] text-[#0b57c2]">SCAN WITH</span>
168
+ <CoinbaseLogo />
169
+ </div>
170
+ </div>
171
+
172
+ {/* Deposit Address Section */}
173
+ <div className="relative flex flex-1 flex-col gap-2 self-stretch border-l border-[#e4e4e7] p-6">
174
+ <label className="text-sm font-medium leading-5 text-[#3f3f46]">Deposit address:</label>
175
+ <div className="relative flex w-full flex-wrap items-center gap-2">
176
+ <p className="h-[74px] flex-1 overflow-hidden text-ellipsis whitespace-pre-wrap break-all pr-6 text-base font-semibold leading-6 text-[#18181b]">
177
+ {depositAddress}
178
+ </p>
179
+ <button
180
+ onClick={handleCopyAddress}
181
+ className="absolute bottom-0 right-0 h-4 w-4 transition-opacity hover:opacity-70"
182
+ aria-label="Copy address"
183
+ >
184
+ <Copy className="h-full w-full text-[#51525c]" />
185
+ </button>
186
+ </div>
187
+ </div>
188
+ </div>
189
+
190
+ {/* Warning Text */}
191
+ <div className="mx-5 mt-4">
192
+ <p className="font-neue-montreal-italic text-center text-sm leading-[1.3] text-[#3f3f46]">
193
+ Do not send any tokens other than the ones specified.
194
+ <br />
195
+ Tokens not accepted will not be converted.
196
+ </p>
197
+ </div>
198
+
199
+ {/* Action Button */}
200
+ <div className="mt-4 px-5">
201
+ <Button
202
+ onClick={handleCopyAddress}
203
+ className="h-12 w-full rounded-xl bg-[#0c68e9] text-base font-semibold text-white shadow-[inset_0px_0px_0px_1px_rgba(10,13,18,0.18),inset_0px_-2px_0px_0px_rgba(10,13,18,0.05)] hover:bg-[#0b5fd4]"
204
+ >
205
+ Copy deposit address
206
+ </Button>
207
+ </div>
208
+ </div>
209
+ </div>
210
+ );
211
+ }