@0xsequence/wallet-widget 0.0.0-20250314205219

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 (514) hide show
  1. package/LICENSE +219 -0
  2. package/README.md +53 -0
  3. package/dist/cjs/components/Alert.js +15 -0
  4. package/dist/cjs/components/Alert.js.map +1 -0
  5. package/dist/cjs/components/CoinRow.js +19 -0
  6. package/dist/cjs/components/CoinRow.js.map +1 -0
  7. package/dist/cjs/components/CollectibleTileImage.js +10 -0
  8. package/dist/cjs/components/CollectibleTileImage.js.map +1 -0
  9. package/dist/cjs/components/CopyButton.js +25 -0
  10. package/dist/cjs/components/CopyButton.js.map +1 -0
  11. package/dist/cjs/components/DefaultIcon.js +13 -0
  12. package/dist/cjs/components/DefaultIcon.js.map +1 -0
  13. package/dist/cjs/components/FeeOptionSelector.js +48 -0
  14. package/dist/cjs/components/FeeOptionSelector.js.map +1 -0
  15. package/dist/cjs/components/InfiniteScroll.js +42 -0
  16. package/dist/cjs/components/InfiniteScroll.js.map +1 -0
  17. package/dist/cjs/components/Loader.js +10 -0
  18. package/dist/cjs/components/Loader.js.map +1 -0
  19. package/dist/cjs/components/NavigationHeader/index.js +26 -0
  20. package/dist/cjs/components/NavigationHeader/index.js.map +1 -0
  21. package/dist/cjs/components/NetworkBadge.js +18 -0
  22. package/dist/cjs/components/NetworkBadge.js.map +1 -0
  23. package/dist/cjs/components/SelectButton/SelectButton.js +12 -0
  24. package/dist/cjs/components/SelectButton/SelectButton.js.map +1 -0
  25. package/dist/cjs/components/SelectButton/SelectedIndicator.js +12 -0
  26. package/dist/cjs/components/SelectButton/SelectedIndicator.js.map +1 -0
  27. package/dist/cjs/components/SelectButton/index.js +6 -0
  28. package/dist/cjs/components/SelectButton/index.js.map +1 -0
  29. package/dist/cjs/components/SendItemInfo.js +21 -0
  30. package/dist/cjs/components/SendItemInfo.js.map +1 -0
  31. package/dist/cjs/components/SequenceWalletProvider/SequenceWalletProvider.js +55 -0
  32. package/dist/cjs/components/SequenceWalletProvider/SequenceWalletProvider.js.map +1 -0
  33. package/dist/cjs/components/SequenceWalletProvider/index.js +18 -0
  34. package/dist/cjs/components/SequenceWalletProvider/index.js.map +1 -0
  35. package/dist/cjs/components/SequenceWalletProvider/utils/index.js +84 -0
  36. package/dist/cjs/components/SequenceWalletProvider/utils/index.js.map +1 -0
  37. package/dist/cjs/components/TransactionConfirmation.js +65 -0
  38. package/dist/cjs/components/TransactionConfirmation.js.map +1 -0
  39. package/dist/cjs/components/TransactionHistoryList/TransactionHistoryItem.js +117 -0
  40. package/dist/cjs/components/TransactionHistoryList/TransactionHistoryItem.js.map +1 -0
  41. package/dist/cjs/components/TransactionHistoryList/TransactionHistorySkeleton.js +17 -0
  42. package/dist/cjs/components/TransactionHistoryList/TransactionHistorySkeleton.js.map +1 -0
  43. package/dist/cjs/components/TransactionHistoryList/index.js +97 -0
  44. package/dist/cjs/components/TransactionHistoryList/index.js.map +1 -0
  45. package/dist/cjs/components/WalletHeader/components/AccountInformation.js +15 -0
  46. package/dist/cjs/components/WalletHeader/components/AccountInformation.js.map +1 -0
  47. package/dist/cjs/components/WalletHeader/components/WalletDropdownContent.js +57 -0
  48. package/dist/cjs/components/WalletHeader/components/WalletDropdownContent.js.map +1 -0
  49. package/dist/cjs/components/WalletHeader/index.js +87 -0
  50. package/dist/cjs/components/WalletHeader/index.js.map +1 -0
  51. package/dist/cjs/constants/abi.js +92 -0
  52. package/dist/cjs/constants/abi.js.map +1 -0
  53. package/dist/cjs/constants/currency.js +29 -0
  54. package/dist/cjs/constants/currency.js.map +1 -0
  55. package/dist/cjs/constants/index.js +20 -0
  56. package/dist/cjs/constants/index.js.map +1 -0
  57. package/dist/cjs/constants/sizing.js +5 -0
  58. package/dist/cjs/constants/sizing.js.map +1 -0
  59. package/dist/cjs/contexts/Navigation.js +8 -0
  60. package/dist/cjs/contexts/Navigation.js.map +1 -0
  61. package/dist/cjs/contexts/WalletModal.js +8 -0
  62. package/dist/cjs/contexts/WalletModal.js.map +1 -0
  63. package/dist/cjs/contexts/genericContext.js +20 -0
  64. package/dist/cjs/contexts/genericContext.js.map +1 -0
  65. package/dist/cjs/contexts/index.js +19 -0
  66. package/dist/cjs/contexts/index.js.map +1 -0
  67. package/dist/cjs/hooks/index.js +20 -0
  68. package/dist/cjs/hooks/index.js.map +1 -0
  69. package/dist/cjs/hooks/useNavigation.js +23 -0
  70. package/dist/cjs/hooks/useNavigation.js.map +1 -0
  71. package/dist/cjs/hooks/useOpenWalletModal.js +10 -0
  72. package/dist/cjs/hooks/useOpenWalletModal.js.map +1 -0
  73. package/dist/cjs/hooks/useScrollbarWidth.js +13 -0
  74. package/dist/cjs/hooks/useScrollbarWidth.js.map +1 -0
  75. package/dist/cjs/hooks/useSettings.js +100 -0
  76. package/dist/cjs/hooks/useSettings.js.map +1 -0
  77. package/dist/cjs/index.js +12 -0
  78. package/dist/cjs/index.js.map +1 -0
  79. package/dist/cjs/utils/helpers.js +49 -0
  80. package/dist/cjs/utils/helpers.js.map +1 -0
  81. package/dist/cjs/utils/index.js +19 -0
  82. package/dist/cjs/utils/index.js.map +1 -0
  83. package/dist/cjs/utils/tokens.js +78 -0
  84. package/dist/cjs/utils/tokens.js.map +1 -0
  85. package/dist/cjs/views/CoinDetails/Skeleton.js +13 -0
  86. package/dist/cjs/views/CoinDetails/Skeleton.js.map +1 -0
  87. package/dist/cjs/views/CoinDetails/index.js +90 -0
  88. package/dist/cjs/views/CoinDetails/index.js.map +1 -0
  89. package/dist/cjs/views/CollectibleDetails/Skeleton.js +14 -0
  90. package/dist/cjs/views/CollectibleDetails/Skeleton.js.map +1 -0
  91. package/dist/cjs/views/CollectibleDetails/index.js +83 -0
  92. package/dist/cjs/views/CollectibleDetails/index.js.map +1 -0
  93. package/dist/cjs/views/CollectionDetails/Skeleton.js +15 -0
  94. package/dist/cjs/views/CollectionDetails/Skeleton.js.map +1 -0
  95. package/dist/cjs/views/CollectionDetails/index.js +50 -0
  96. package/dist/cjs/views/CollectionDetails/index.js.map +1 -0
  97. package/dist/cjs/views/History.js +19 -0
  98. package/dist/cjs/views/History.js.map +1 -0
  99. package/dist/cjs/views/Home/components/AssetSummary/CoinTile/CoinTileContent.js +14 -0
  100. package/dist/cjs/views/Home/components/AssetSummary/CoinTile/CoinTileContent.js.map +1 -0
  101. package/dist/cjs/views/Home/components/AssetSummary/CoinTile/index.js +60 -0
  102. package/dist/cjs/views/Home/components/AssetSummary/CoinTile/index.js.map +1 -0
  103. package/dist/cjs/views/Home/components/AssetSummary/CollectibleTile/index.js +17 -0
  104. package/dist/cjs/views/Home/components/AssetSummary/CollectibleTile/index.js.map +1 -0
  105. package/dist/cjs/views/Home/components/AssetSummary/SkeletonTiles.js +14 -0
  106. package/dist/cjs/views/Home/components/AssetSummary/SkeletonTiles.js.map +1 -0
  107. package/dist/cjs/views/Home/components/AssetSummary/index.js +98 -0
  108. package/dist/cjs/views/Home/components/AssetSummary/index.js.map +1 -0
  109. package/dist/cjs/views/Home/index.js +10 -0
  110. package/dist/cjs/views/Home/index.js.map +1 -0
  111. package/dist/cjs/views/Receive.js +42 -0
  112. package/dist/cjs/views/Receive.js.map +1 -0
  113. package/dist/cjs/views/Search/SearchWallet.js +112 -0
  114. package/dist/cjs/views/Search/SearchWallet.js.map +1 -0
  115. package/dist/cjs/views/Search/SearchWalletViewAll.js +169 -0
  116. package/dist/cjs/views/Search/SearchWalletViewAll.js.map +1 -0
  117. package/dist/cjs/views/Search/components/BalanceItem.js +52 -0
  118. package/dist/cjs/views/Search/components/BalanceItem.js.map +1 -0
  119. package/dist/cjs/views/Search/components/CoinsTab.js +49 -0
  120. package/dist/cjs/views/Search/components/CoinsTab.js.map +1 -0
  121. package/dist/cjs/views/Search/components/CollectionsTab.js +49 -0
  122. package/dist/cjs/views/Search/components/CollectionsTab.js.map +1 -0
  123. package/dist/cjs/views/Search/components/WalletLink.js +15 -0
  124. package/dist/cjs/views/Search/components/WalletLink.js.map +1 -0
  125. package/dist/cjs/views/Search/index.js +19 -0
  126. package/dist/cjs/views/Search/index.js.map +1 -0
  127. package/dist/cjs/views/SendCoin.js +198 -0
  128. package/dist/cjs/views/SendCoin.js.map +1 -0
  129. package/dist/cjs/views/SendCollectible.js +237 -0
  130. package/dist/cjs/views/SendCollectible.js.map +1 -0
  131. package/dist/cjs/views/Settings/Currency.js +16 -0
  132. package/dist/cjs/views/Settings/Currency.js.map +1 -0
  133. package/dist/cjs/views/Settings/General.js +23 -0
  134. package/dist/cjs/views/Settings/General.js.map +1 -0
  135. package/dist/cjs/views/Settings/Menu.js +28 -0
  136. package/dist/cjs/views/Settings/Menu.js.map +1 -0
  137. package/dist/cjs/views/Settings/Network.js +35 -0
  138. package/dist/cjs/views/Settings/Network.js.map +1 -0
  139. package/dist/cjs/views/Settings/index.js +21 -0
  140. package/dist/cjs/views/Settings/index.js.map +1 -0
  141. package/dist/cjs/views/SwapCoin/SwapList.js +190 -0
  142. package/dist/cjs/views/SwapCoin/SwapList.js.map +1 -0
  143. package/dist/cjs/views/SwapCoin/index.js +89 -0
  144. package/dist/cjs/views/SwapCoin/index.js.map +1 -0
  145. package/dist/cjs/views/TransactionDetails/index.js +88 -0
  146. package/dist/cjs/views/TransactionDetails/index.js.map +1 -0
  147. package/dist/cjs/views/index.js +30 -0
  148. package/dist/cjs/views/index.js.map +1 -0
  149. package/dist/esm/components/Alert.js +11 -0
  150. package/dist/esm/components/Alert.js.map +1 -0
  151. package/dist/esm/components/CoinRow.js +14 -0
  152. package/dist/esm/components/CoinRow.js.map +1 -0
  153. package/dist/esm/components/CollectibleTileImage.js +6 -0
  154. package/dist/esm/components/CollectibleTileImage.js.map +1 -0
  155. package/dist/esm/components/CopyButton.js +21 -0
  156. package/dist/esm/components/CopyButton.js.map +1 -0
  157. package/dist/esm/components/DefaultIcon.js +9 -0
  158. package/dist/esm/components/DefaultIcon.js.map +1 -0
  159. package/dist/esm/components/FeeOptionSelector.js +41 -0
  160. package/dist/esm/components/FeeOptionSelector.js.map +1 -0
  161. package/dist/esm/components/InfiniteScroll.js +37 -0
  162. package/dist/esm/components/InfiniteScroll.js.map +1 -0
  163. package/dist/esm/components/Loader.js +6 -0
  164. package/dist/esm/components/Loader.js.map +1 -0
  165. package/dist/esm/components/NavigationHeader/index.js +22 -0
  166. package/dist/esm/components/NavigationHeader/index.js.map +1 -0
  167. package/dist/esm/components/NetworkBadge.js +14 -0
  168. package/dist/esm/components/NetworkBadge.js.map +1 -0
  169. package/dist/esm/components/SelectButton/SelectButton.js +8 -0
  170. package/dist/esm/components/SelectButton/SelectButton.js.map +1 -0
  171. package/dist/esm/components/SelectButton/SelectedIndicator.js +8 -0
  172. package/dist/esm/components/SelectButton/SelectedIndicator.js.map +1 -0
  173. package/dist/esm/components/SelectButton/index.js +2 -0
  174. package/dist/esm/components/SelectButton/index.js.map +1 -0
  175. package/dist/esm/components/SendItemInfo.js +16 -0
  176. package/dist/esm/components/SendItemInfo.js.map +1 -0
  177. package/dist/esm/components/SequenceWalletProvider/SequenceWalletProvider.js +50 -0
  178. package/dist/esm/components/SequenceWalletProvider/SequenceWalletProvider.js.map +1 -0
  179. package/dist/esm/components/SequenceWalletProvider/index.js +2 -0
  180. package/dist/esm/components/SequenceWalletProvider/index.js.map +1 -0
  181. package/dist/esm/components/SequenceWalletProvider/utils/index.js +79 -0
  182. package/dist/esm/components/SequenceWalletProvider/utils/index.js.map +1 -0
  183. package/dist/esm/components/TransactionConfirmation.js +61 -0
  184. package/dist/esm/components/TransactionConfirmation.js.map +1 -0
  185. package/dist/esm/components/TransactionHistoryList/TransactionHistoryItem.js +110 -0
  186. package/dist/esm/components/TransactionHistoryList/TransactionHistoryItem.js.map +1 -0
  187. package/dist/esm/components/TransactionHistoryList/TransactionHistorySkeleton.js +13 -0
  188. package/dist/esm/components/TransactionHistoryList/TransactionHistorySkeleton.js.map +1 -0
  189. package/dist/esm/components/TransactionHistoryList/index.js +93 -0
  190. package/dist/esm/components/TransactionHistoryList/index.js.map +1 -0
  191. package/dist/esm/components/WalletHeader/components/AccountInformation.js +12 -0
  192. package/dist/esm/components/WalletHeader/components/AccountInformation.js.map +1 -0
  193. package/dist/esm/components/WalletHeader/components/WalletDropdownContent.js +54 -0
  194. package/dist/esm/components/WalletHeader/components/WalletDropdownContent.js.map +1 -0
  195. package/dist/esm/components/WalletHeader/index.js +50 -0
  196. package/dist/esm/components/WalletHeader/index.js.map +1 -0
  197. package/dist/esm/constants/abi.js +89 -0
  198. package/dist/esm/constants/abi.js.map +1 -0
  199. package/dist/esm/constants/currency.js +26 -0
  200. package/dist/esm/constants/currency.js.map +1 -0
  201. package/dist/esm/constants/index.js +4 -0
  202. package/dist/esm/constants/index.js.map +1 -0
  203. package/dist/esm/constants/sizing.js +2 -0
  204. package/dist/esm/constants/sizing.js.map +1 -0
  205. package/dist/esm/contexts/Navigation.js +4 -0
  206. package/dist/esm/contexts/Navigation.js.map +1 -0
  207. package/dist/esm/contexts/WalletModal.js +4 -0
  208. package/dist/esm/contexts/WalletModal.js.map +1 -0
  209. package/dist/esm/contexts/genericContext.js +16 -0
  210. package/dist/esm/contexts/genericContext.js.map +1 -0
  211. package/dist/esm/contexts/index.js +3 -0
  212. package/dist/esm/contexts/index.js.map +1 -0
  213. package/dist/esm/hooks/index.js +4 -0
  214. package/dist/esm/hooks/index.js.map +1 -0
  215. package/dist/esm/hooks/useNavigation.js +19 -0
  216. package/dist/esm/hooks/useNavigation.js.map +1 -0
  217. package/dist/esm/hooks/useOpenWalletModal.js +6 -0
  218. package/dist/esm/hooks/useOpenWalletModal.js.map +1 -0
  219. package/dist/esm/hooks/useScrollbarWidth.js +9 -0
  220. package/dist/esm/hooks/useScrollbarWidth.js.map +1 -0
  221. package/dist/esm/hooks/useSettings.js +96 -0
  222. package/dist/esm/hooks/useSettings.js.map +1 -0
  223. package/dist/esm/index.js +6 -0
  224. package/dist/esm/index.js.map +1 -0
  225. package/dist/esm/utils/helpers.js +41 -0
  226. package/dist/esm/utils/helpers.js.map +1 -0
  227. package/dist/esm/utils/index.js +3 -0
  228. package/dist/esm/utils/index.js.map +1 -0
  229. package/dist/esm/utils/tokens.js +70 -0
  230. package/dist/esm/utils/tokens.js.map +1 -0
  231. package/dist/esm/views/CoinDetails/Skeleton.js +9 -0
  232. package/dist/esm/views/CoinDetails/Skeleton.js.map +1 -0
  233. package/dist/esm/views/CoinDetails/index.js +86 -0
  234. package/dist/esm/views/CoinDetails/index.js.map +1 -0
  235. package/dist/esm/views/CollectibleDetails/Skeleton.js +10 -0
  236. package/dist/esm/views/CollectibleDetails/Skeleton.js.map +1 -0
  237. package/dist/esm/views/CollectibleDetails/index.js +79 -0
  238. package/dist/esm/views/CollectibleDetails/index.js.map +1 -0
  239. package/dist/esm/views/CollectionDetails/Skeleton.js +11 -0
  240. package/dist/esm/views/CollectionDetails/Skeleton.js.map +1 -0
  241. package/dist/esm/views/CollectionDetails/index.js +46 -0
  242. package/dist/esm/views/CollectionDetails/index.js.map +1 -0
  243. package/dist/esm/views/History.js +15 -0
  244. package/dist/esm/views/History.js.map +1 -0
  245. package/dist/esm/views/Home/components/AssetSummary/CoinTile/CoinTileContent.js +10 -0
  246. package/dist/esm/views/Home/components/AssetSummary/CoinTile/CoinTileContent.js.map +1 -0
  247. package/dist/esm/views/Home/components/AssetSummary/CoinTile/index.js +56 -0
  248. package/dist/esm/views/Home/components/AssetSummary/CoinTile/index.js.map +1 -0
  249. package/dist/esm/views/Home/components/AssetSummary/CollectibleTile/index.js +13 -0
  250. package/dist/esm/views/Home/components/AssetSummary/CollectibleTile/index.js.map +1 -0
  251. package/dist/esm/views/Home/components/AssetSummary/SkeletonTiles.js +10 -0
  252. package/dist/esm/views/Home/components/AssetSummary/SkeletonTiles.js.map +1 -0
  253. package/dist/esm/views/Home/components/AssetSummary/index.js +94 -0
  254. package/dist/esm/views/Home/components/AssetSummary/index.js.map +1 -0
  255. package/dist/esm/views/Home/index.js +6 -0
  256. package/dist/esm/views/Home/index.js.map +1 -0
  257. package/dist/esm/views/Receive.js +38 -0
  258. package/dist/esm/views/Receive.js.map +1 -0
  259. package/dist/esm/views/Search/SearchWallet.js +105 -0
  260. package/dist/esm/views/Search/SearchWallet.js.map +1 -0
  261. package/dist/esm/views/Search/SearchWalletViewAll.js +162 -0
  262. package/dist/esm/views/Search/SearchWalletViewAll.js.map +1 -0
  263. package/dist/esm/views/Search/components/BalanceItem.js +48 -0
  264. package/dist/esm/views/Search/components/BalanceItem.js.map +1 -0
  265. package/dist/esm/views/Search/components/CoinsTab.js +45 -0
  266. package/dist/esm/views/Search/components/CoinsTab.js.map +1 -0
  267. package/dist/esm/views/Search/components/CollectionsTab.js +45 -0
  268. package/dist/esm/views/Search/components/CollectionsTab.js.map +1 -0
  269. package/dist/esm/views/Search/components/WalletLink.js +11 -0
  270. package/dist/esm/views/Search/components/WalletLink.js.map +1 -0
  271. package/dist/esm/views/Search/index.js +3 -0
  272. package/dist/esm/views/Search/index.js.map +1 -0
  273. package/dist/esm/views/SendCoin.js +194 -0
  274. package/dist/esm/views/SendCoin.js.map +1 -0
  275. package/dist/esm/views/SendCollectible.js +233 -0
  276. package/dist/esm/views/SendCollectible.js.map +1 -0
  277. package/dist/esm/views/Settings/Currency.js +12 -0
  278. package/dist/esm/views/Settings/Currency.js.map +1 -0
  279. package/dist/esm/views/Settings/General.js +19 -0
  280. package/dist/esm/views/Settings/General.js.map +1 -0
  281. package/dist/esm/views/Settings/Menu.js +24 -0
  282. package/dist/esm/views/Settings/Menu.js.map +1 -0
  283. package/dist/esm/views/Settings/Network.js +31 -0
  284. package/dist/esm/views/Settings/Network.js.map +1 -0
  285. package/dist/esm/views/Settings/index.js +5 -0
  286. package/dist/esm/views/Settings/index.js.map +1 -0
  287. package/dist/esm/views/SwapCoin/SwapList.js +186 -0
  288. package/dist/esm/views/SwapCoin/SwapList.js.map +1 -0
  289. package/dist/esm/views/SwapCoin/index.js +85 -0
  290. package/dist/esm/views/SwapCoin/index.js.map +1 -0
  291. package/dist/esm/views/TransactionDetails/index.js +81 -0
  292. package/dist/esm/views/TransactionDetails/index.js.map +1 -0
  293. package/dist/esm/views/index.js +14 -0
  294. package/dist/esm/views/index.js.map +1 -0
  295. package/dist/types/components/Alert.d.ts +12 -0
  296. package/dist/types/components/Alert.d.ts.map +1 -0
  297. package/dist/types/components/CoinRow.d.ts +13 -0
  298. package/dist/types/components/CoinRow.d.ts.map +1 -0
  299. package/dist/types/components/CollectibleTileImage.d.ts +6 -0
  300. package/dist/types/components/CollectibleTileImage.d.ts.map +1 -0
  301. package/dist/types/components/CopyButton.d.ts +10 -0
  302. package/dist/types/components/CopyButton.d.ts.map +1 -0
  303. package/dist/types/components/DefaultIcon.d.ts +6 -0
  304. package/dist/types/components/DefaultIcon.d.ts.map +1 -0
  305. package/dist/types/components/FeeOptionSelector.d.ts +29 -0
  306. package/dist/types/components/FeeOptionSelector.d.ts.map +1 -0
  307. package/dist/types/components/InfiniteScroll.d.ts +9 -0
  308. package/dist/types/components/InfiniteScroll.d.ts.map +1 -0
  309. package/dist/types/components/Loader.d.ts +2 -0
  310. package/dist/types/components/Loader.d.ts.map +1 -0
  311. package/dist/types/components/NavigationHeader/index.d.ts +7 -0
  312. package/dist/types/components/NavigationHeader/index.d.ts.map +1 -0
  313. package/dist/types/components/NetworkBadge.d.ts +6 -0
  314. package/dist/types/components/NetworkBadge.d.ts.map +1 -0
  315. package/dist/types/components/SelectButton/SelectButton.d.ts +13 -0
  316. package/dist/types/components/SelectButton/SelectButton.d.ts.map +1 -0
  317. package/dist/types/components/SelectButton/SelectedIndicator.d.ts +8 -0
  318. package/dist/types/components/SelectButton/SelectedIndicator.d.ts.map +1 -0
  319. package/dist/types/components/SelectButton/index.d.ts +2 -0
  320. package/dist/types/components/SelectButton/index.d.ts.map +1 -0
  321. package/dist/types/components/SendItemInfo.d.ts +15 -0
  322. package/dist/types/components/SendItemInfo.d.ts.map +1 -0
  323. package/dist/types/components/SequenceWalletProvider/SequenceWalletProvider.d.ts +7 -0
  324. package/dist/types/components/SequenceWalletProvider/SequenceWalletProvider.d.ts.map +1 -0
  325. package/dist/types/components/SequenceWalletProvider/index.d.ts +2 -0
  326. package/dist/types/components/SequenceWalletProvider/index.d.ts.map +1 -0
  327. package/dist/types/components/SequenceWalletProvider/utils/index.d.ts +4 -0
  328. package/dist/types/components/SequenceWalletProvider/utils/index.d.ts.map +1 -0
  329. package/dist/types/components/TransactionConfirmation.d.ts +24 -0
  330. package/dist/types/components/TransactionConfirmation.d.ts.map +1 -0
  331. package/dist/types/components/TransactionHistoryList/TransactionHistoryItem.d.ts +7 -0
  332. package/dist/types/components/TransactionHistoryList/TransactionHistoryItem.d.ts.map +1 -0
  333. package/dist/types/components/TransactionHistoryList/TransactionHistorySkeleton.d.ts +2 -0
  334. package/dist/types/components/TransactionHistoryList/TransactionHistorySkeleton.d.ts.map +1 -0
  335. package/dist/types/components/TransactionHistoryList/index.d.ts +9 -0
  336. package/dist/types/components/TransactionHistoryList/index.d.ts.map +1 -0
  337. package/dist/types/components/WalletHeader/components/AccountInformation.d.ts +7 -0
  338. package/dist/types/components/WalletHeader/components/AccountInformation.d.ts.map +1 -0
  339. package/dist/types/components/WalletHeader/components/WalletDropdownContent.d.ts +7 -0
  340. package/dist/types/components/WalletHeader/components/WalletDropdownContent.d.ts.map +1 -0
  341. package/dist/types/components/WalletHeader/index.d.ts +2 -0
  342. package/dist/types/components/WalletHeader/index.d.ts.map +1 -0
  343. package/dist/types/constants/abi.d.ts +40 -0
  344. package/dist/types/constants/abi.d.ts.map +1 -0
  345. package/dist/types/constants/currency.d.ts +11 -0
  346. package/dist/types/constants/currency.d.ts.map +1 -0
  347. package/dist/types/constants/index.d.ts +4 -0
  348. package/dist/types/constants/index.d.ts.map +1 -0
  349. package/dist/types/constants/sizing.d.ts +2 -0
  350. package/dist/types/constants/sizing.d.ts.map +1 -0
  351. package/dist/types/contexts/Navigation.d.ts +88 -0
  352. package/dist/types/contexts/Navigation.d.ts.map +1 -0
  353. package/dist/types/contexts/WalletModal.d.ts +11 -0
  354. package/dist/types/contexts/WalletModal.d.ts.map +1 -0
  355. package/dist/types/contexts/genericContext.d.ts +2 -0
  356. package/dist/types/contexts/genericContext.d.ts.map +1 -0
  357. package/dist/types/contexts/index.d.ts +3 -0
  358. package/dist/types/contexts/index.d.ts.map +1 -0
  359. package/dist/types/hooks/index.d.ts +4 -0
  360. package/dist/types/hooks/index.d.ts.map +1 -0
  361. package/dist/types/hooks/useNavigation.d.ts +10 -0
  362. package/dist/types/hooks/useNavigation.d.ts.map +1 -0
  363. package/dist/types/hooks/useOpenWalletModal.d.ts +5 -0
  364. package/dist/types/hooks/useOpenWalletModal.d.ts.map +1 -0
  365. package/dist/types/hooks/useScrollbarWidth.d.ts +2 -0
  366. package/dist/types/hooks/useScrollbarWidth.d.ts.map +1 -0
  367. package/dist/types/hooks/useSettings.d.ts +14 -0
  368. package/dist/types/hooks/useSettings.d.ts.map +1 -0
  369. package/dist/types/index.d.ts +4 -0
  370. package/dist/types/index.d.ts.map +1 -0
  371. package/dist/types/utils/helpers.d.ts +6 -0
  372. package/dist/types/utils/helpers.d.ts.map +1 -0
  373. package/dist/types/utils/index.d.ts +3 -0
  374. package/dist/types/utils/index.d.ts.map +1 -0
  375. package/dist/types/utils/tokens.d.ts +21 -0
  376. package/dist/types/utils/tokens.d.ts.map +1 -0
  377. package/dist/types/views/CoinDetails/Skeleton.d.ts +7 -0
  378. package/dist/types/views/CoinDetails/Skeleton.d.ts.map +1 -0
  379. package/dist/types/views/CoinDetails/index.d.ts +6 -0
  380. package/dist/types/views/CoinDetails/index.d.ts.map +1 -0
  381. package/dist/types/views/CollectibleDetails/Skeleton.d.ts +6 -0
  382. package/dist/types/views/CollectibleDetails/Skeleton.d.ts.map +1 -0
  383. package/dist/types/views/CollectibleDetails/index.d.ts +7 -0
  384. package/dist/types/views/CollectibleDetails/index.d.ts.map +1 -0
  385. package/dist/types/views/CollectionDetails/Skeleton.d.ts +6 -0
  386. package/dist/types/views/CollectionDetails/Skeleton.d.ts.map +1 -0
  387. package/dist/types/views/CollectionDetails/index.d.ts +7 -0
  388. package/dist/types/views/CollectionDetails/index.d.ts.map +1 -0
  389. package/dist/types/views/History.d.ts +2 -0
  390. package/dist/types/views/History.d.ts.map +1 -0
  391. package/dist/types/views/Home/components/AssetSummary/CoinTile/CoinTileContent.d.ts +12 -0
  392. package/dist/types/views/Home/components/AssetSummary/CoinTile/CoinTileContent.d.ts.map +1 -0
  393. package/dist/types/views/Home/components/AssetSummary/CoinTile/index.d.ts +7 -0
  394. package/dist/types/views/Home/components/AssetSummary/CoinTile/index.d.ts.map +1 -0
  395. package/dist/types/views/Home/components/AssetSummary/CollectibleTile/index.d.ts +7 -0
  396. package/dist/types/views/Home/components/AssetSummary/CollectibleTile/index.d.ts.map +1 -0
  397. package/dist/types/views/Home/components/AssetSummary/SkeletonTiles.d.ts +2 -0
  398. package/dist/types/views/Home/components/AssetSummary/SkeletonTiles.d.ts.map +1 -0
  399. package/dist/types/views/Home/components/AssetSummary/index.d.ts +2 -0
  400. package/dist/types/views/Home/components/AssetSummary/index.d.ts.map +1 -0
  401. package/dist/types/views/Home/index.d.ts +2 -0
  402. package/dist/types/views/Home/index.d.ts.map +1 -0
  403. package/dist/types/views/Receive.d.ts +2 -0
  404. package/dist/types/views/Receive.d.ts.map +1 -0
  405. package/dist/types/views/Search/SearchWallet.d.ts +2 -0
  406. package/dist/types/views/Search/SearchWallet.d.ts.map +1 -0
  407. package/dist/types/views/Search/SearchWalletViewAll.d.ts +10 -0
  408. package/dist/types/views/Search/SearchWalletViewAll.d.ts.map +1 -0
  409. package/dist/types/views/Search/components/BalanceItem.d.ts +7 -0
  410. package/dist/types/views/Search/components/BalanceItem.d.ts.map +1 -0
  411. package/dist/types/views/Search/components/CoinsTab.d.ts +16 -0
  412. package/dist/types/views/Search/components/CoinsTab.d.ts.map +1 -0
  413. package/dist/types/views/Search/components/CollectionsTab.d.ts +16 -0
  414. package/dist/types/views/Search/components/CollectionsTab.d.ts.map +1 -0
  415. package/dist/types/views/Search/components/WalletLink.d.ts +8 -0
  416. package/dist/types/views/Search/components/WalletLink.d.ts.map +1 -0
  417. package/dist/types/views/Search/index.d.ts +3 -0
  418. package/dist/types/views/Search/index.d.ts.map +1 -0
  419. package/dist/types/views/SendCoin.d.ts +7 -0
  420. package/dist/types/views/SendCoin.d.ts.map +1 -0
  421. package/dist/types/views/SendCollectible.d.ts +8 -0
  422. package/dist/types/views/SendCollectible.d.ts.map +1 -0
  423. package/dist/types/views/Settings/Currency.d.ts +2 -0
  424. package/dist/types/views/Settings/Currency.d.ts.map +1 -0
  425. package/dist/types/views/Settings/General.d.ts +2 -0
  426. package/dist/types/views/Settings/General.d.ts.map +1 -0
  427. package/dist/types/views/Settings/Menu.d.ts +2 -0
  428. package/dist/types/views/Settings/Menu.d.ts.map +1 -0
  429. package/dist/types/views/Settings/Network.d.ts +2 -0
  430. package/dist/types/views/Settings/Network.d.ts.map +1 -0
  431. package/dist/types/views/Settings/index.d.ts +5 -0
  432. package/dist/types/views/Settings/index.d.ts.map +1 -0
  433. package/dist/types/views/SwapCoin/SwapList.d.ts +8 -0
  434. package/dist/types/views/SwapCoin/SwapList.d.ts.map +1 -0
  435. package/dist/types/views/SwapCoin/index.d.ts +6 -0
  436. package/dist/types/views/SwapCoin/index.d.ts.map +1 -0
  437. package/dist/types/views/TransactionDetails/index.d.ts +7 -0
  438. package/dist/types/views/TransactionDetails/index.d.ts.map +1 -0
  439. package/dist/types/views/index.d.ts +14 -0
  440. package/dist/types/views/index.d.ts.map +1 -0
  441. package/package.json +69 -0
  442. package/src/components/Alert.tsx +51 -0
  443. package/src/components/CoinRow.tsx +62 -0
  444. package/src/components/CollectibleTileImage.tsx +14 -0
  445. package/src/components/CopyButton.tsx +41 -0
  446. package/src/components/DefaultIcon.tsx +22 -0
  447. package/src/components/FeeOptionSelector.tsx +133 -0
  448. package/src/components/InfiniteScroll.tsx +56 -0
  449. package/src/components/Loader.tsx +12 -0
  450. package/src/components/NavigationHeader/index.tsx +59 -0
  451. package/src/components/NetworkBadge.tsx +35 -0
  452. package/src/components/SelectButton/SelectButton.tsx +33 -0
  453. package/src/components/SelectButton/SelectedIndicator.tsx +34 -0
  454. package/src/components/SelectButton/index.ts +1 -0
  455. package/src/components/SendItemInfo.tsx +83 -0
  456. package/src/components/SequenceWalletProvider/SequenceWalletProvider.tsx +96 -0
  457. package/src/components/SequenceWalletProvider/index.ts +1 -0
  458. package/src/components/SequenceWalletProvider/utils/index.tsx +119 -0
  459. package/src/components/TransactionConfirmation.tsx +183 -0
  460. package/src/components/TransactionHistoryList/TransactionHistoryItem.tsx +190 -0
  461. package/src/components/TransactionHistoryList/TransactionHistorySkeleton.tsx +36 -0
  462. package/src/components/TransactionHistoryList/index.tsx +160 -0
  463. package/src/components/WalletHeader/components/AccountInformation.tsx +31 -0
  464. package/src/components/WalletHeader/components/WalletDropdownContent.tsx +96 -0
  465. package/src/components/WalletHeader/index.tsx +84 -0
  466. package/src/constants/abi.ts +90 -0
  467. package/src/constants/currency.ts +35 -0
  468. package/src/constants/index.ts +3 -0
  469. package/src/constants/sizing.ts +1 -0
  470. package/src/contexts/Navigation.ts +132 -0
  471. package/src/contexts/WalletModal.ts +15 -0
  472. package/src/contexts/genericContext.ts +19 -0
  473. package/src/contexts/index.ts +2 -0
  474. package/src/hooks/index.ts +3 -0
  475. package/src/hooks/useNavigation.ts +30 -0
  476. package/src/hooks/useOpenWalletModal.ts +7 -0
  477. package/src/hooks/useScrollbarWidth.ts +11 -0
  478. package/src/hooks/useSettings.ts +121 -0
  479. package/src/index.ts +6 -0
  480. package/src/utils/helpers.ts +51 -0
  481. package/src/utils/index.ts +2 -0
  482. package/src/utils/tokens.ts +98 -0
  483. package/src/views/CoinDetails/Skeleton.tsx +46 -0
  484. package/src/views/CoinDetails/index.tsx +153 -0
  485. package/src/views/CollectibleDetails/Skeleton.tsx +50 -0
  486. package/src/views/CollectibleDetails/index.tsx +184 -0
  487. package/src/views/CollectionDetails/Skeleton.tsx +36 -0
  488. package/src/views/CollectionDetails/index.tsx +98 -0
  489. package/src/views/History.tsx +28 -0
  490. package/src/views/Home/components/AssetSummary/CoinTile/CoinTileContent.tsx +60 -0
  491. package/src/views/Home/components/AssetSummary/CoinTile/index.tsx +93 -0
  492. package/src/views/Home/components/AssetSummary/CollectibleTile/index.tsx +20 -0
  493. package/src/views/Home/components/AssetSummary/SkeletonTiles.tsx +21 -0
  494. package/src/views/Home/components/AssetSummary/index.tsx +128 -0
  495. package/src/views/Home/index.tsx +11 -0
  496. package/src/views/Receive.tsx +83 -0
  497. package/src/views/Search/SearchWallet.tsx +177 -0
  498. package/src/views/Search/SearchWalletViewAll.tsx +265 -0
  499. package/src/views/Search/components/BalanceItem.tsx +76 -0
  500. package/src/views/Search/components/CoinsTab.tsx +89 -0
  501. package/src/views/Search/components/CollectionsTab.tsx +88 -0
  502. package/src/views/Search/components/WalletLink.tsx +32 -0
  503. package/src/views/Search/index.ts +2 -0
  504. package/src/views/SendCoin.tsx +397 -0
  505. package/src/views/SendCollectible.tsx +447 -0
  506. package/src/views/Settings/Currency.tsx +34 -0
  507. package/src/views/Settings/General.tsx +55 -0
  508. package/src/views/Settings/Menu.tsx +60 -0
  509. package/src/views/Settings/Network.tsx +60 -0
  510. package/src/views/Settings/index.ts +4 -0
  511. package/src/views/SwapCoin/SwapList.tsx +320 -0
  512. package/src/views/SwapCoin/index.tsx +150 -0
  513. package/src/views/TransactionDetails/index.tsx +213 -0
  514. package/src/views/index.ts +13 -0
@@ -0,0 +1,35 @@
1
+ import { getNetwork, getNetworkColor, getNetworkBackgroundColor } from '@0xsequence/connect'
2
+ import { NetworkImage, Text } from '@0xsequence/design-system'
3
+ import React from 'react'
4
+
5
+ interface NetworkBadgeProps {
6
+ chainId: number
7
+ }
8
+
9
+ export const NetworkBadge = ({ chainId }: NetworkBadgeProps) => {
10
+ const network = getNetwork(chainId)
11
+ const chainColor = getNetworkColor(chainId)
12
+ const chainBGColor = getNetworkBackgroundColor(chainId)
13
+
14
+ return (
15
+ <div
16
+ className="flex h-6 px-2 gap-1 rounded-sm flex-row justify-center items-center w-fit"
17
+ style={{
18
+ background: chainBGColor
19
+ }}
20
+ >
21
+ <NetworkImage chainId={chainId} size="xs" />
22
+ <Text
23
+ variant="xsmall"
24
+ fontWeight="bold"
25
+ capitalize
26
+ ellipsis
27
+ style={{
28
+ color: chainColor
29
+ }}
30
+ >
31
+ {network.title ?? network.name}
32
+ </Text>
33
+ </div>
34
+ )
35
+ }
@@ -0,0 +1,33 @@
1
+ import { Card, cn } from '@0xsequence/design-system'
2
+ import React, { ReactNode } from 'react'
3
+
4
+ import { SelectedIndicator } from './SelectedIndicator'
5
+
6
+ export interface SelectButtonProps {
7
+ children?: ReactNode
8
+ className?: string
9
+ onClick: (value: any) => void
10
+ value: any
11
+ selected: boolean
12
+ disabled?: boolean
13
+ hideIndicator?: boolean
14
+ squareIndicator?: boolean
15
+ }
16
+
17
+ export const SelectButton = (props: SelectButtonProps) => {
18
+ const { value, selected, children, disabled, onClick, className, hideIndicator, squareIndicator = false, ...rest } = props
19
+
20
+ return (
21
+ <Card
22
+ className={cn('flex select-none items-center justify-between text-left w-full border-none appearance-none', className)}
23
+ clickable
24
+ disabled={disabled}
25
+ asChild
26
+ >
27
+ <button onClick={() => onClick(value)} {...rest}>
28
+ {children}
29
+ {!hideIndicator && <SelectedIndicator selected={selected} squareIndicator={squareIndicator} />}
30
+ </button>
31
+ </Card>
32
+ )
33
+ }
@@ -0,0 +1,34 @@
1
+ import { CheckmarkIcon, cn } from '@0xsequence/design-system'
2
+ import { motion } from 'motion/react'
3
+ import React from 'react'
4
+
5
+ interface SelectedIndicatorProps {
6
+ selected: boolean
7
+ squareIndicator?: boolean
8
+ className?: string
9
+ }
10
+
11
+ export const SelectedIndicator = (props: SelectedIndicatorProps) => {
12
+ const { selected, className, squareIndicator = false } = props
13
+ return (
14
+ <div
15
+ className={cn(
16
+ `w-5 h-5 flex border-solid border-1 relative items-center justify-center shrink-0 border-border-normal`,
17
+ squareIndicator ? 'rounded-sm' : 'rounded-full',
18
+ className
19
+ )}
20
+ >
21
+ <motion.div
22
+ className={cn(
23
+ 'flex absolute text-text-inverse100 justify-center items-center bg-border-normal',
24
+ squareIndicator ? 'rounded-sm w-5 h-5' : 'rounded-full w-[14px] h-[14px]'
25
+ )}
26
+ initial={{ opacity: selected ? 1 : 0, scale: selected ? 1 : 0.5 }}
27
+ animate={{ opacity: selected ? 1 : 0, scale: selected ? 1 : 0.5 }}
28
+ transition={{ ease: 'backOut' }}
29
+ >
30
+ {squareIndicator && <CheckmarkIcon className="text-white w-[14px] h-[14px]" />}
31
+ </motion.div>
32
+ </div>
33
+ )
34
+ }
@@ -0,0 +1 @@
1
+ export { SelectButton } from './SelectButton'
@@ -0,0 +1,83 @@
1
+ import { formatDisplay } from '@0xsequence/connect'
2
+ import { NetworkImage, Skeleton, Text, TokenImage } from '@0xsequence/design-system'
3
+ import React from 'react'
4
+ import { formatUnits } from 'viem'
5
+
6
+ import { useSettings } from '../hooks'
7
+
8
+ import { CollectibleTileImage } from './CollectibleTileImage'
9
+
10
+ interface SendItemInfoProps {
11
+ name: string
12
+ symbol: string
13
+ decimals: number
14
+ balance: string
15
+ imageUrl?: string
16
+ fiatValue?: string
17
+ chainId: number
18
+ showSquareImage?: boolean
19
+ balanceSuffix?: string
20
+ }
21
+
22
+ export const SendItemInfoSkeleton = () => {
23
+ return (
24
+ <div className="flex items-center justify-between">
25
+ <div className="flex justify-center items-center gap-2">
26
+ <Skeleton className="rounded-full" style={{ width: 30, height: 30 }} />
27
+ <div className="flex flex-col gap-2 items-start">
28
+ <Skeleton style={{ width: 100, height: 14 }} />
29
+ <Skeleton style={{ width: 75, height: 14 }} />
30
+ </div>
31
+ </div>
32
+ <div className="flex flex-col gap-2 items-end">
33
+ <Skeleton style={{ width: 100, height: 14 }} />
34
+ <Skeleton style={{ width: 50, height: 12 }} />
35
+ </div>
36
+ </div>
37
+ )
38
+ }
39
+
40
+ export const SendItemInfo = ({
41
+ imageUrl,
42
+ name,
43
+ decimals,
44
+ balance,
45
+ symbol,
46
+ fiatValue,
47
+ chainId,
48
+ showSquareImage,
49
+ balanceSuffix = 'available'
50
+ }: SendItemInfoProps) => {
51
+ const { fiatCurrency } = useSettings()
52
+ const formattedBalance = formatUnits(BigInt(balance), decimals)
53
+ const balanceDisplayed = formatDisplay(formattedBalance)
54
+
55
+ return (
56
+ <div className="flex items-end justify-between">
57
+ <div className="flex justify-between items-center gap-2">
58
+ {showSquareImage ? (
59
+ <div style={{ width: '40px' }}>
60
+ <CollectibleTileImage imageUrl={imageUrl} />
61
+ </div>
62
+ ) : (
63
+ <TokenImage src={imageUrl} size="lg" />
64
+ )}
65
+ <div className="flex flex-col items-start">
66
+ <div className="flex flex-row items-center gap-1">
67
+ <Text variant="medium" color="primary">
68
+ {name}
69
+ </Text>
70
+ <NetworkImage chainId={chainId} size="xs" />
71
+ </div>
72
+ <Text color="muted" variant="normal">
73
+ {' '}
74
+ {`${balanceDisplayed} ${symbol} ${balanceSuffix}`}
75
+ </Text>
76
+ </div>
77
+ </div>
78
+ <div className="flex flex-col items-end justify-end">
79
+ {fiatValue && <Text variant="normal" color="primary">{`${fiatCurrency.sign}${fiatValue}`}</Text>}
80
+ </div>
81
+ </div>
82
+ )
83
+ }
@@ -0,0 +1,96 @@
1
+ 'use client'
2
+
3
+ import { getModalPositionCss, useTheme, ShadowRoot } from '@0xsequence/connect'
4
+ import { Modal, Scroll } from '@0xsequence/design-system'
5
+ import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
6
+ import { AnimatePresence } from 'motion/react'
7
+ import React, { useState } from 'react'
8
+
9
+ import { HEADER_HEIGHT } from '../../constants'
10
+ import { History, Navigation, NavigationContextProvider, WalletModalContextProvider, WalletOptions } from '../../contexts'
11
+
12
+ import { getHeader, getContent } from './utils'
13
+
14
+ export type SequenceWalletProviderProps = {
15
+ children: React.ReactNode
16
+ }
17
+
18
+ const DEFAULT_LOCATION: Navigation = {
19
+ location: 'home'
20
+ }
21
+
22
+ export const SequenceWalletProvider = (props: SequenceWalletProviderProps) => {
23
+ const queryClient = new QueryClient()
24
+
25
+ return (
26
+ <QueryClientProvider client={queryClient}>
27
+ <WalletContent {...props} />
28
+ </QueryClientProvider>
29
+ )
30
+ }
31
+
32
+ export const WalletContent = ({ children }: SequenceWalletProviderProps) => {
33
+ const { theme, position } = useTheme()
34
+
35
+ // Wallet Modal Context
36
+ const [openWalletModal, setOpenWalletModalState] = useState<boolean>(false)
37
+
38
+ const setOpenWalletModal = (open: boolean, options?: WalletOptions) => {
39
+ setOpenWalletModalState(open)
40
+ setTimeout(() => {
41
+ setHistory(options?.defaultNavigation ? [options.defaultNavigation] : [])
42
+ }, 0)
43
+ }
44
+
45
+ // Navigation Context
46
+ const [history, setHistory] = useState<History>([])
47
+ const [isBackButtonEnabled, setIsBackButtonEnabled] = useState(true)
48
+ const navigation = history.length > 0 ? history[history.length - 1] : DEFAULT_LOCATION
49
+
50
+ const displayScrollbar =
51
+ navigation.location === 'home' ||
52
+ navigation.location === 'collection-details' ||
53
+ navigation.location === 'collectible-details' ||
54
+ navigation.location === 'coin-details' ||
55
+ navigation.location === 'history' ||
56
+ navigation.location === 'search' ||
57
+ navigation.location === 'search-view-all' ||
58
+ navigation.location === 'settings-currency'
59
+
60
+ return (
61
+ <WalletModalContextProvider value={{ setOpenWalletModal, openWalletModalState: openWalletModal }}>
62
+ <NavigationContextProvider value={{ setHistory, history, isBackButtonEnabled, setIsBackButtonEnabled }}>
63
+ <ShadowRoot theme={theme}>
64
+ <AnimatePresence>
65
+ {openWalletModal && (
66
+ <Modal
67
+ contentProps={{
68
+ style: {
69
+ maxWidth: '400px',
70
+ height: 'fit-content',
71
+ ...getModalPositionCss(position),
72
+ scrollbarColor: 'gray black',
73
+ scrollbarWidth: 'thin'
74
+ }
75
+ }}
76
+ scroll={false}
77
+ onClose={() => setOpenWalletModal(false)}
78
+ >
79
+ <div id="sequence-kit-wallet-content">
80
+ {getHeader(navigation)}
81
+
82
+ {displayScrollbar ? (
83
+ <Scroll style={{ paddingTop: HEADER_HEIGHT, height: 'min(800px, 80vh)' }}>{getContent(navigation)}</Scroll>
84
+ ) : (
85
+ getContent(navigation)
86
+ )}
87
+ </div>
88
+ </Modal>
89
+ )}
90
+ </AnimatePresence>
91
+ </ShadowRoot>
92
+ {children}
93
+ </NavigationContextProvider>
94
+ </WalletModalContextProvider>
95
+ )
96
+ }
@@ -0,0 +1 @@
1
+ export * from './SequenceWalletProvider'
@@ -0,0 +1,119 @@
1
+ import React from 'react'
2
+
3
+ import { Navigation } from '../../../contexts'
4
+ import {
5
+ CoinDetails,
6
+ CollectibleDetails,
7
+ CollectionDetails,
8
+ Home,
9
+ Receive,
10
+ SendCoin,
11
+ SendCollectible,
12
+ History,
13
+ SearchWallet,
14
+ SearchWalletViewAll,
15
+ SettingsMenu,
16
+ SettingsCurrency,
17
+ SettingsNetwork,
18
+ SettingsGeneral,
19
+ TransactionDetails,
20
+ SwapCoin,
21
+ SwapList
22
+ } from '../../../views'
23
+ import { NavigationHeader } from '../../NavigationHeader'
24
+ import { WalletHeader } from '../../WalletHeader'
25
+
26
+ export const getContent = (navigation: Navigation) => {
27
+ const { location } = navigation
28
+
29
+ switch (location) {
30
+ case 'send-coin':
31
+ return <SendCoin chainId={navigation.params.chainId} contractAddress={navigation.params.contractAddress} />
32
+ case 'send-collectible':
33
+ return (
34
+ <SendCollectible
35
+ chainId={navigation.params.chainId}
36
+ contractAddress={navigation.params.contractAddress}
37
+ tokenId={navigation.params.tokenId}
38
+ />
39
+ )
40
+ case 'receive':
41
+ return <Receive />
42
+ case 'history':
43
+ return <History />
44
+ case 'search':
45
+ return <SearchWallet />
46
+ case 'search-view-all':
47
+ return <SearchWalletViewAll defaultTab={navigation.params.defaultTab} />
48
+ case 'settings':
49
+ return <SettingsMenu />
50
+ case 'settings-general':
51
+ return <SettingsGeneral />
52
+ case 'settings-currency':
53
+ return <SettingsCurrency />
54
+ case 'settings-networks':
55
+ return <SettingsNetwork />
56
+ case 'coin-details':
57
+ return <CoinDetails contractAddress={navigation.params.contractAddress} chainId={navigation.params.chainId} />
58
+ case 'collectible-details':
59
+ return (
60
+ <CollectibleDetails
61
+ contractAddress={navigation.params.contractAddress}
62
+ chainId={navigation.params.chainId}
63
+ tokenId={navigation.params.tokenId}
64
+ />
65
+ )
66
+ case 'collection-details':
67
+ return <CollectionDetails contractAddress={navigation.params.contractAddress} chainId={navigation.params.chainId} />
68
+ case 'transaction-details':
69
+ return <TransactionDetails transaction={navigation.params.transaction} />
70
+ case 'swap-coin':
71
+ return <SwapCoin contractAddress={navigation.params.contractAddress} chainId={navigation.params.chainId} />
72
+ case 'swap-coin-list':
73
+ return (
74
+ <SwapList
75
+ contractAddress={navigation.params.contractAddress}
76
+ chainId={navigation.params.chainId}
77
+ amount={navigation.params.amount}
78
+ />
79
+ )
80
+ default:
81
+ return <Home />
82
+ }
83
+ }
84
+
85
+ export const getHeader = (navigation: Navigation) => {
86
+ const { location } = navigation
87
+ switch (location) {
88
+ case 'search':
89
+ return <NavigationHeader primaryText="Search wallet" />
90
+ case 'search-view-all':
91
+ return <NavigationHeader secondaryText="Search wallet / " primaryText="View all" />
92
+ case 'settings':
93
+ return <NavigationHeader secondaryText="Wallet / " primaryText="Settings" />
94
+ case 'settings-general':
95
+ return <NavigationHeader secondaryText="Wallet / Settings / " primaryText="General" />
96
+ case 'settings-currency':
97
+ return <NavigationHeader secondaryText="Wallet / Settings / " primaryText="Currency" />
98
+ case 'settings-networks':
99
+ return <NavigationHeader secondaryText="Wallet / Settings / " primaryText="Networks" />
100
+ case 'receive':
101
+ return <NavigationHeader secondaryText="Wallet / " primaryText="Receive" />
102
+ case 'history':
103
+ return <NavigationHeader secondaryText="Wallet / " primaryText="History" />
104
+ case 'coin-details':
105
+ return <WalletHeader />
106
+ case 'collectible-details':
107
+ return <WalletHeader />
108
+ case 'transaction-details':
109
+ return <NavigationHeader secondaryText="" primaryText="" />
110
+ case 'send-collectible':
111
+ case 'send-coin':
112
+ return <NavigationHeader secondaryText="Wallet / " primaryText="Send" />
113
+ case 'swap-coin':
114
+ case 'swap-coin-list':
115
+ return <NavigationHeader secondaryText="Wallet / " primaryText="Buy" />
116
+ default:
117
+ return <WalletHeader />
118
+ }
119
+ }
@@ -0,0 +1,183 @@
1
+ import { truncateAtMiddle } from '@0xsequence/connect'
2
+ import { Button, ChevronRightIcon, Text, Card, GradientAvatar, Spinner } from '@0xsequence/design-system'
3
+ import { useIndexerClient } from '@0xsequence/react-hooks'
4
+ import { useQuery } from '@tanstack/react-query'
5
+ import React, { useState } from 'react'
6
+ import { useAccount } from 'wagmi'
7
+
8
+ import { FeeOption, FeeOptionSelector } from './FeeOptionSelector'
9
+ import { SendItemInfo } from './SendItemInfo'
10
+
11
+ interface TransactionConfirmationProps {
12
+ // Display data
13
+ name: string
14
+ symbol: string
15
+ imageUrl?: string
16
+ amount: string
17
+ toAddress: string
18
+ showSquareImage?: boolean
19
+ fiatValue?: string
20
+ chainId: number
21
+ balance: string
22
+ decimals: number
23
+ feeOptions?: {
24
+ options: FeeOption[]
25
+ chainId: number
26
+ }
27
+ onSelectFeeOption?: (feeTokenAddress: string | null) => void
28
+ isLoading?: boolean
29
+
30
+ // Callbacks
31
+ onConfirm: () => void
32
+ onCancel: () => void
33
+ }
34
+
35
+ const useFeeOptionBalances = (feeOptions: TransactionConfirmationProps['feeOptions'], chainId: number) => {
36
+ const { address: accountAddress } = useAccount()
37
+ const indexerClient = useIndexerClient(chainId)
38
+
39
+ return useQuery({
40
+ queryKey: ['feeOptionBalances', chainId, accountAddress, feeOptions?.options?.length],
41
+ queryFn: async () => {
42
+ if (!feeOptions?.options || !accountAddress || !indexerClient) {
43
+ return []
44
+ }
45
+
46
+ const nativeTokenBalance = await indexerClient.getEtherBalance({
47
+ accountAddress
48
+ })
49
+
50
+ const tokenBalances = await indexerClient.getTokenBalances({
51
+ accountAddress
52
+ })
53
+
54
+ return feeOptions.options.map(option => {
55
+ if (option.token.contractAddress === null) {
56
+ return {
57
+ tokenName: option.token.name,
58
+ decimals: option.token.decimals || 0,
59
+ balance: nativeTokenBalance.balance.balanceWei
60
+ }
61
+ } else {
62
+ return {
63
+ tokenName: option.token.name,
64
+ decimals: option.token.decimals || 0,
65
+ balance:
66
+ tokenBalances.balances.find(b => b.contractAddress.toLowerCase() === option.token.contractAddress?.toLowerCase())
67
+ ?.balance || '0'
68
+ }
69
+ }
70
+ })
71
+ },
72
+ enabled: Boolean(feeOptions?.options && accountAddress && indexerClient),
73
+ refetchInterval: 10000,
74
+ staleTime: 10000
75
+ })
76
+ }
77
+
78
+ export const TransactionConfirmation = ({
79
+ name,
80
+ symbol,
81
+ imageUrl,
82
+ amount,
83
+ toAddress,
84
+ showSquareImage,
85
+ fiatValue,
86
+ chainId,
87
+ balance,
88
+ decimals,
89
+ feeOptions,
90
+ onSelectFeeOption,
91
+ isLoading,
92
+ onConfirm,
93
+ onCancel
94
+ }: TransactionConfirmationProps) => {
95
+ const [selectedFeeOptionAddress, setSelectedFeeOptionAddress] = useState<string>()
96
+ const { data: feeOptionBalances = [] } = useFeeOptionBalances(feeOptions, chainId)
97
+
98
+ const handleFeeOptionSelect = (address: string) => {
99
+ setSelectedFeeOptionAddress(address)
100
+ onSelectFeeOption?.(address)
101
+ }
102
+
103
+ // If feeOptions exist and have options, a selection is required
104
+ // If feeOptions don't exist or have no options, no selection is required
105
+ const isFeeSelectionRequired = Boolean(feeOptions?.options?.length)
106
+ const isConfirmDisabled = isFeeSelectionRequired && !selectedFeeOptionAddress
107
+
108
+ return (
109
+ <div className="flex w-full h-full items-center justify-center bg-background-primary">
110
+ <div className="flex gap-2 flex-col bg-background-primary w-full">
111
+ <div className="flex bg-background-secondary rounded-xl p-4 pb-3 gap-2 flex-col">
112
+ <SendItemInfo
113
+ imageUrl={imageUrl}
114
+ showSquareImage={showSquareImage}
115
+ name={name}
116
+ symbol={symbol}
117
+ chainId={chainId}
118
+ balance={balance}
119
+ decimals={decimals}
120
+ />
121
+
122
+ <div className="flex mt-2 gap-1 flex-col">
123
+ <Text variant="small" color="muted">
124
+ Amount
125
+ </Text>
126
+ <div className="flex flex-row items-center gap-2">
127
+ <Text variant="normal" color="primary">
128
+ {amount} {symbol}
129
+ </Text>
130
+ {fiatValue && (
131
+ <Text variant="small" color="muted">
132
+ ~${fiatValue}
133
+ </Text>
134
+ )}
135
+ </div>
136
+ </div>
137
+
138
+ <div className="flex mt-2 gap-1 flex-col">
139
+ <Text variant="small" color="muted">
140
+ To
141
+ </Text>
142
+ <Card className="flex w-full flex-row items-center" style={{ height: '52px' }}>
143
+ <div className="flex flex-row justify-center items-center gap-2">
144
+ <GradientAvatar size="sm" address={toAddress} />
145
+ <Text color="primary" variant="normal">{`0x${truncateAtMiddle(toAddress.substring(2), 10)}`}</Text>
146
+ </div>
147
+ </Card>
148
+ </div>
149
+
150
+ {isFeeSelectionRequired && feeOptions?.options && (
151
+ <FeeOptionSelector
152
+ txnFeeOptions={feeOptions.options}
153
+ feeOptionBalances={feeOptionBalances}
154
+ selectedFeeOptionAddress={selectedFeeOptionAddress}
155
+ setSelectedFeeOptionAddress={handleFeeOptionSelect}
156
+ />
157
+ )}
158
+ </div>
159
+
160
+ <div className="flex mt-3 gap-2">
161
+ {isLoading ? (
162
+ <div className="flex w-full items-center justify-center" style={{ height: '52px' }}>
163
+ <Spinner />
164
+ </div>
165
+ ) : (
166
+ <>
167
+ <Button
168
+ className="w-full"
169
+ variant="primary"
170
+ size="lg"
171
+ onClick={onConfirm}
172
+ label="Confirm"
173
+ rightIcon={ChevronRightIcon}
174
+ disabled={isConfirmDisabled}
175
+ />
176
+ <Button className="w-full" variant="glass" size="lg" onClick={onCancel} label="Cancel" />
177
+ </>
178
+ )}
179
+ </div>
180
+ </div>
181
+ </div>
182
+ )
183
+ }