@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
+ export interface FiatCurrency {
2
+ decimals: number
3
+ name: {
4
+ message: string
5
+ }
6
+ sign: string
7
+ symbol: string
8
+ }
9
+
10
+ export const supportedFiatCurrencies: FiatCurrency[] = [
11
+ { symbol: 'USD', sign: '$', name: { message: 'US Dollar' }, decimals: 2 },
12
+ { symbol: 'CAD', sign: '$', name: { message: 'Canadian Dollar' }, decimals: 2 },
13
+ { symbol: 'GBP', sign: '£', name: { message: 'British Pound Sterling' }, decimals: 2 },
14
+ { symbol: 'EUR', sign: '€', name: { message: 'Euro' }, decimals: 2 },
15
+ { symbol: 'CNY', sign: '¥', name: { message: 'Chinese Yuan' }, decimals: 2 },
16
+ { symbol: 'JPY', sign: '¥', name: { message: 'Japanese Yen' }, decimals: 2 },
17
+ { symbol: 'KRW', sign: '₩', name: { message: 'South Korean Won' }, decimals: 2 },
18
+ { symbol: 'SGD', sign: '$', name: { message: 'Singapore Dollar' }, decimals: 2 },
19
+ { symbol: 'CHF', sign: 'CHF ', name: { message: 'Swiss Franc' }, decimals: 2 },
20
+ { symbol: 'AUD', sign: '$', name: { message: 'Australian Dollar' }, decimals: 2 },
21
+ { symbol: 'NZD', sign: '$', name: { message: 'New Zealand Dollar' }, decimals: 2 },
22
+ { symbol: 'SEK', sign: 'kr ', name: { message: 'Swedish Krona' }, decimals: 2 },
23
+ { symbol: 'NOK', sign: 'kr ', name: { message: 'Norwegian Krone' }, decimals: 2 },
24
+ { symbol: 'MXN', sign: '$', name: { message: 'Mexican Peso' }, decimals: 2 },
25
+ { symbol: 'INR', sign: '₹', name: { message: 'Indian Rupee' }, decimals: 2 },
26
+ { symbol: 'ZAR', sign: 'R ', name: { message: 'South African Rand' }, decimals: 2 },
27
+ { symbol: 'TRY', sign: '₺', name: { message: 'Turkish Lira' }, decimals: 2 },
28
+ { symbol: 'BRL', sign: 'R$', name: { message: 'Brazilian Real' }, decimals: 2 },
29
+ { symbol: 'DKK', sign: 'kr ', name: { message: 'Danish Krone' }, decimals: 2 },
30
+ { symbol: 'PLN', sign: 'zł ', name: { message: 'Polish Zloty' }, decimals: 2 },
31
+ { symbol: 'THB', sign: '฿', name: { message: 'Thai Baht' }, decimals: 2 },
32
+ { symbol: 'IDR', sign: 'Rp', name: { message: 'Indonesian Rupiah' }, decimals: 2 }
33
+ ]
34
+
35
+ export const defaultFiatCurrency = supportedFiatCurrencies[0]
@@ -0,0 +1,3 @@
1
+ export * from './abi'
2
+ export * from './currency'
3
+ export * from './sizing'
@@ -0,0 +1 @@
1
+ export const HEADER_HEIGHT = '54px'
@@ -0,0 +1,132 @@
1
+ 'use client'
2
+
3
+ import { Transaction } from '@0xsequence/indexer'
4
+
5
+ import { createGenericContext } from './genericContext'
6
+
7
+ export interface CollectionDetailsParams {
8
+ contractAddress: string
9
+ chainId: number
10
+ }
11
+
12
+ export interface CollectionDetailsNavigation {
13
+ location: 'collection-details'
14
+ params: CollectionDetailsParams
15
+ }
16
+
17
+ export interface CoinDetailsParams {
18
+ contractAddress: string
19
+ chainId: number
20
+ }
21
+
22
+ export interface CoinDetailsNavigation {
23
+ location: 'coin-details'
24
+ params: CoinDetailsParams
25
+ }
26
+
27
+ export interface CollectibleDetailsParams {
28
+ contractAddress: string
29
+ chainId: number
30
+ tokenId: string
31
+ }
32
+
33
+ export interface CollectibleDetailsNavigation {
34
+ location: 'collectible-details'
35
+ params: CollectibleDetailsParams
36
+ }
37
+
38
+ export interface TransactionDetailsParams {
39
+ transaction: Transaction
40
+ }
41
+
42
+ export interface TransactionDetailsNavigation {
43
+ location: 'transaction-details'
44
+ params: TransactionDetailsParams
45
+ }
46
+
47
+ export interface SearchViewAllParams {
48
+ defaultTab: 'coins' | 'collections'
49
+ }
50
+
51
+ export interface SearchViewAllNavigation {
52
+ location: 'search-view-all'
53
+ params: SearchViewAllParams
54
+ }
55
+
56
+ export interface SendCoinParams {
57
+ chainId: number
58
+ contractAddress: string
59
+ }
60
+
61
+ export interface SwapCoinParams {
62
+ chainId: number
63
+ contractAddress: string
64
+ }
65
+
66
+ export interface SwapCoinListParams {
67
+ chainId: number
68
+ contractAddress: string
69
+ amount: string
70
+ }
71
+
72
+ export interface SendCoinNavigation {
73
+ location: 'send-coin'
74
+ params: SendCoinParams
75
+ }
76
+
77
+ export interface SwapCoinNavigation {
78
+ location: 'swap-coin'
79
+ params: SwapCoinParams
80
+ }
81
+
82
+ export interface SwapCoinListNavigation {
83
+ location: 'swap-coin-list'
84
+ params: SwapCoinListParams
85
+ }
86
+
87
+ export interface SendCollectibleParams {
88
+ chainId: number
89
+ contractAddress: string
90
+ tokenId: string
91
+ }
92
+
93
+ export interface SendCollectibleNavigation {
94
+ location: 'send-collectible'
95
+ params: SendCollectibleParams
96
+ }
97
+
98
+ export interface BasicNavigation {
99
+ location:
100
+ | 'home'
101
+ | 'receive'
102
+ | 'history'
103
+ | 'receive'
104
+ | 'settings'
105
+ | 'settings-general'
106
+ | 'settings-currency'
107
+ | 'settings-networks'
108
+ | 'search'
109
+ }
110
+
111
+ export type Navigation =
112
+ | BasicNavigation
113
+ | CoinDetailsNavigation
114
+ | CollectibleDetailsNavigation
115
+ | CollectionDetailsNavigation
116
+ | TransactionDetailsNavigation
117
+ | SearchViewAllNavigation
118
+ | SendCoinNavigation
119
+ | SendCollectibleNavigation
120
+ | SwapCoinNavigation
121
+ | SwapCoinListNavigation
122
+
123
+ export type History = Navigation[]
124
+
125
+ type NavigationContext = {
126
+ setHistory: (history: History) => void
127
+ history: History
128
+ isBackButtonEnabled: boolean
129
+ setIsBackButtonEnabled: (enabled: boolean) => void
130
+ }
131
+
132
+ export const [useNavigationContext, NavigationContextProvider] = createGenericContext<NavigationContext>()
@@ -0,0 +1,15 @@
1
+ 'use client'
2
+
3
+ import { createGenericContext } from './genericContext'
4
+ import { Navigation } from './Navigation'
5
+
6
+ export interface WalletOptions {
7
+ defaultNavigation?: Navigation
8
+ }
9
+
10
+ type WalletModalContext = {
11
+ setOpenWalletModal: (open: boolean, options?: WalletOptions) => void
12
+ openWalletModalState: boolean
13
+ }
14
+
15
+ export const [useWalletModalContext, WalletModalContextProvider] = createGenericContext<WalletModalContext>()
@@ -0,0 +1,19 @@
1
+ import { createContext, useContext } from 'react'
2
+
3
+ // https://medium.com/@rivoltafilippo/typing-react-context-to-avoid-an-undefined-default-value-2c7c5a7d5947
4
+
5
+ export const createGenericContext = <T>() => {
6
+ // Create a context with a generic parameter or undefined
7
+ const genericContext = createContext<T | undefined>(undefined)
8
+
9
+ // Check if the value provided to the context is defined or throw an error
10
+ const useGenericContext = () => {
11
+ const contextIsDefined = useContext(genericContext)
12
+ if (!contextIsDefined) {
13
+ throw new Error('useGenericContext must be used within a Provider')
14
+ }
15
+ return contextIsDefined
16
+ }
17
+
18
+ return [useGenericContext, genericContext.Provider] as const
19
+ }
@@ -0,0 +1,2 @@
1
+ export * from './WalletModal'
2
+ export * from './Navigation'
@@ -0,0 +1,3 @@
1
+ export * from './useOpenWalletModal'
2
+ export * from './useNavigation'
3
+ export * from './useSettings'
@@ -0,0 +1,30 @@
1
+ import { useNavigationContext, Navigation, History } from '../contexts/Navigation'
2
+
3
+ interface UseNavigation {
4
+ setNavigation: (navigation: Navigation) => void
5
+ setHistory?: (history: History) => void
6
+ history: History
7
+ goBack: () => void
8
+ }
9
+
10
+ export const useNavigation = (): UseNavigation => {
11
+ const { setHistory, history } = useNavigationContext()
12
+
13
+ const setNavigation = (navigation: Navigation) => {
14
+ // Scroll to top of page when navigating to a new page
15
+ const childElement = document.getElementById('sequence-kit-wallet-content')
16
+ const parentElement = childElement?.parentElement
17
+ parentElement?.scrollTo(0, 0)
18
+
19
+ const newHistory = navigation.location === 'home' ? [] : [...history, navigation]
20
+ setHistory(newHistory)
21
+ }
22
+
23
+ const goBack = () => {
24
+ const newHistory = [...history]
25
+ newHistory.pop()
26
+ setHistory(newHistory)
27
+ }
28
+
29
+ return { setNavigation, history, setHistory, goBack }
30
+ }
@@ -0,0 +1,7 @@
1
+ import { useWalletModalContext } from '../contexts/WalletModal'
2
+
3
+ export const useOpenWalletModal = () => {
4
+ const { setOpenWalletModal, openWalletModalState } = useWalletModalContext()
5
+
6
+ return { setOpenWalletModal, openWalletModalState }
7
+ }
@@ -0,0 +1,11 @@
1
+ import { useEffect, useState } from 'react'
2
+
3
+ export const useScrollbarWidth = () => {
4
+ const [scrollbarWidth, setScrollbarWidth] = useState<string>('0px')
5
+
6
+ useEffect(() => {
7
+ setScrollbarWidth(navigator.userAgent.match(/chrome|chromium|crios/i) ? '13px' : '0px')
8
+ }, [])
9
+
10
+ return scrollbarWidth
11
+ }
@@ -0,0 +1,121 @@
1
+ import { LocalStorageKey, useWalletSettings } from '@0xsequence/connect'
2
+ import { useState } from 'react'
3
+ import { useConfig } from 'wagmi'
4
+
5
+ import { FiatCurrency, defaultFiatCurrency } from '../constants'
6
+
7
+ interface Settings {
8
+ hideCollectibles: boolean
9
+ hideUnlistedTokens: boolean
10
+ fiatCurrency: FiatCurrency
11
+ selectedNetworks: number[]
12
+ setFiatCurrency: (newFiatCurrency: FiatCurrency) => void
13
+ setHideCollectibles: (newState: boolean) => void
14
+ setHideUnlistedTokens: (newState: boolean) => void
15
+ setSelectedNetworks: (newNetworks: number[]) => void
16
+ }
17
+
18
+ type SettingsItems = Pick<Settings, 'hideCollectibles' | 'hideUnlistedTokens' | 'fiatCurrency' | 'selectedNetworks'>
19
+
20
+ export const useSettings = (): Settings => {
21
+ const { readOnlyNetworks, displayedAssets } = useWalletSettings()
22
+ const { chains } = useConfig()
23
+
24
+ const allChains = [
25
+ ...new Set([...chains.map(chain => chain.id), ...(readOnlyNetworks || []), ...displayedAssets.map(asset => asset.chainId)])
26
+ ]
27
+
28
+ const getSettingsFromStorage = (): SettingsItems => {
29
+ let hideUnlistedTokens = true
30
+ let hideCollectibles = false
31
+ let fiatCurrency = defaultFiatCurrency
32
+ let selectedNetworks = allChains
33
+
34
+ try {
35
+ const settingsStorage = localStorage.getItem(LocalStorageKey.Settings)
36
+
37
+ const settings = JSON.parse(settingsStorage || '{}')
38
+ if (settings?.hideUnlistedTokens !== undefined) {
39
+ hideUnlistedTokens = settings?.hideUnlistedTokens
40
+ }
41
+ if (settings?.hideCollectibles !== undefined) {
42
+ hideCollectibles = settings?.hideCollectibles
43
+ }
44
+ if (settings?.fiatCurrency !== undefined) {
45
+ fiatCurrency = settings?.fiatCurrency as FiatCurrency
46
+ }
47
+
48
+ if (settings?.selectedNetworks !== undefined) {
49
+ let areSelectedNetworksValid = true
50
+ settings.selectedNetworks.forEach((chainId: number) => {
51
+ if (allChains.find(chain => chain === chainId) === undefined) {
52
+ areSelectedNetworksValid = false
53
+ }
54
+ })
55
+ if (areSelectedNetworksValid) {
56
+ selectedNetworks = settings?.selectedNetworks as number[]
57
+ }
58
+ }
59
+ } catch (e) {
60
+ console.error(e, 'Failed to fetch settings')
61
+ }
62
+
63
+ return {
64
+ hideUnlistedTokens,
65
+ hideCollectibles,
66
+ fiatCurrency,
67
+ selectedNetworks
68
+ }
69
+ }
70
+ const defaultSettings = getSettingsFromStorage()
71
+
72
+ const [settings, setSettings] = useState(defaultSettings)
73
+
74
+ const setHideUnlistedTokens = (newState: boolean) => {
75
+ const oldSettings = getSettingsFromStorage()
76
+ const newSettings = {
77
+ ...oldSettings,
78
+ hideUnlistedTokens: newState
79
+ }
80
+ localStorage.setItem(LocalStorageKey.Settings, JSON.stringify(newSettings))
81
+ setSettings(newSettings)
82
+ }
83
+
84
+ const setHideCollectibles = (newState: boolean) => {
85
+ const oldSettings = getSettingsFromStorage()
86
+ const newSettings = {
87
+ ...oldSettings,
88
+ hideCollectibles: newState
89
+ }
90
+ localStorage.setItem(LocalStorageKey.Settings, JSON.stringify(newSettings))
91
+ setSettings(newSettings)
92
+ }
93
+
94
+ const setFiatCurrency = (newFiatCurrency: FiatCurrency) => {
95
+ const oldSettings = getSettingsFromStorage()
96
+ const newSettings = {
97
+ ...oldSettings,
98
+ fiatCurrency: newFiatCurrency
99
+ }
100
+ localStorage.setItem(LocalStorageKey.Settings, JSON.stringify(newSettings))
101
+ setSettings(newSettings)
102
+ }
103
+
104
+ const setSelectedNetworks = (newSelectedNetworks: number[]) => {
105
+ const oldSettings = getSettingsFromStorage()
106
+ const newSettings = {
107
+ ...oldSettings,
108
+ selectedNetworks: newSelectedNetworks
109
+ }
110
+ localStorage.setItem(LocalStorageKey.Settings, JSON.stringify(newSettings))
111
+ setSettings(newSettings)
112
+ }
113
+
114
+ return {
115
+ ...settings,
116
+ setFiatCurrency,
117
+ setHideCollectibles,
118
+ setHideUnlistedTokens,
119
+ setSelectedNetworks
120
+ }
121
+ }
package/src/index.ts ADDED
@@ -0,0 +1,6 @@
1
+ // Provider
2
+ export { SequenceWalletProvider } from './components/SequenceWalletProvider'
3
+
4
+ // Hooks
5
+ export { useOpenWalletModal } from './hooks/useOpenWalletModal'
6
+ export { useNavigation as useWalletNavigation } from './hooks/useNavigation'
@@ -0,0 +1,51 @@
1
+ export const limitDecimals = (value: string, decimals: number) => {
2
+ const splitValue = value.split('.')
3
+ if (splitValue.length === 1) {
4
+ return value
5
+ }
6
+ return `${splitValue[0]}.${splitValue[1].slice(0, decimals)}`
7
+ }
8
+
9
+ export const isEthAddress = (value: string) => {
10
+ const ethAddressRegEx = /0x[a-fA-F0-9]{40}/
11
+ const isEthAddress = ethAddressRegEx.test(value)
12
+
13
+ return isEthAddress
14
+ }
15
+
16
+ // Gets n random elements at unique keys from collection up to the size of collection.
17
+ export const sampleSize = <T>(collection: T[], n: number): T[] => {
18
+ const random = seededRandom(1)
19
+ const length = collection.length
20
+
21
+ if (!length || n < 1) {
22
+ return []
23
+ }
24
+
25
+ // Limit n to the size of the collection
26
+ n = n > length ? length : n
27
+
28
+ const sampled = new Array(n)
29
+ const indexes = new Set<number>()
30
+
31
+ // Find n unique indexes
32
+ while (indexes.size < n) {
33
+ indexes.add(Math.floor(random() * length))
34
+ }
35
+
36
+ for (const [idx, value] of Array.from(indexes).entries()) {
37
+ sampled[idx] = collection[value]
38
+ }
39
+
40
+ return sampled
41
+ }
42
+
43
+ export const isTruthy = <T>(value: T | undefined | null): value is T => Boolean(value)
44
+
45
+ // Deterministic random function
46
+ export const seededRandom = (seed: number) => {
47
+ return () => {
48
+ const x = Math.sin(seed++) * 10000
49
+ return x - Math.floor(x)
50
+ }
51
+ }
@@ -0,0 +1,2 @@
1
+ export * from './helpers'
2
+ export * from './tokens'
@@ -0,0 +1,98 @@
1
+ import { TokenPrice } from '@0xsequence/api'
2
+ import { compareAddress } from '@0xsequence/connect'
3
+ import { TokenBalance, GetTransactionHistoryReturn, Transaction } from '@0xsequence/indexer'
4
+ import { InfiniteData } from '@tanstack/react-query'
5
+ import { formatUnits, zeroAddress } from 'viem'
6
+
7
+ export const getPercentageColor = (value: number) => {
8
+ if (value > 0) {
9
+ return 'positive'
10
+ } else if (value < 0) {
11
+ return 'negative'
12
+ } else {
13
+ return 'muted'
14
+ }
15
+ }
16
+
17
+ export const getPercentagePriceChange = (balance: TokenBalance, prices: TokenPrice[]) => {
18
+ const priceForToken = prices.find(p => compareAddress(p.token.contractAddress, balance.contractAddress))
19
+ if (!priceForToken) {
20
+ return 0
21
+ }
22
+
23
+ const price24HourChange = priceForToken?.price24hChange?.value || 0
24
+ return price24HourChange
25
+ }
26
+
27
+ interface ComputeBalanceFiat {
28
+ balance: TokenBalance
29
+ prices: TokenPrice[]
30
+ decimals: number
31
+ conversionRate: number
32
+ }
33
+
34
+ export const computeBalanceFiat = ({ balance, prices, decimals, conversionRate }: ComputeBalanceFiat): string => {
35
+ let totalUsd = 0
36
+
37
+ const priceForToken = prices.find(p => compareAddress(p.token.contractAddress, balance.contractAddress))
38
+ if (!priceForToken) {
39
+ return '0.00'
40
+ }
41
+ const priceFiat = priceForToken.price?.value || 0
42
+ const valueFormatted = formatUnits(BigInt(balance.balance), decimals)
43
+ const usdValue = parseFloat(valueFormatted) * priceFiat
44
+ totalUsd += usdValue
45
+
46
+ const fiatValue = totalUsd * conversionRate
47
+
48
+ return `${fiatValue.toFixed(2)}`
49
+ }
50
+
51
+ interface SortBalancesByTypeReturn {
52
+ nativeTokens: TokenBalance[]
53
+ erc20Tokens: TokenBalance[]
54
+ collectibles: TokenBalance[]
55
+ }
56
+
57
+ const compareTokenBalanceIds = (a: TokenBalance, b: TokenBalance) => {
58
+ return (a.tokenID || '').localeCompare(b.tokenID || '')
59
+ }
60
+
61
+ export const sortBalancesByType = (balances: TokenBalance[]): SortBalancesByTypeReturn => {
62
+ const nativeTokens: TokenBalance[] = []
63
+ const erc20Tokens: TokenBalance[] = []
64
+ const collectibles: TokenBalance[] = []
65
+
66
+ balances.forEach(balance => {
67
+ // Note: contractType for the native token should be "UNKNOWN"
68
+ if (balance.contractAddress === zeroAddress) {
69
+ nativeTokens.push(balance)
70
+ } else if (balance.contractType === 'ERC20') {
71
+ erc20Tokens.push(balance)
72
+ } else if (balance.contractType === 'ERC721' || balance.contractType === 'ERC1155') {
73
+ collectibles.push(balance)
74
+ }
75
+ })
76
+
77
+ const sortedNativeTokens = nativeTokens.sort(compareTokenBalanceIds)
78
+ const sortedErc20Tokens = erc20Tokens.sort(compareTokenBalanceIds)
79
+ const sortedCollectibles = collectibles.sort(compareTokenBalanceIds)
80
+
81
+ return {
82
+ nativeTokens: sortedNativeTokens,
83
+ erc20Tokens: sortedErc20Tokens,
84
+ collectibles: sortedCollectibles
85
+ }
86
+ }
87
+
88
+ export const flattenPaginatedTransactionHistory = (
89
+ transactionHistoryData: InfiniteData<GetTransactionHistoryReturn> | undefined
90
+ ) => {
91
+ const transactionHistory: Transaction[] = []
92
+
93
+ transactionHistoryData?.pages.forEach(page => {
94
+ transactionHistory.push(...page.transactions)
95
+ })
96
+
97
+ return transactionHistory
98
+ }
@@ -0,0 +1,46 @@
1
+ import { Button, SendIcon, Skeleton, Text } from '@0xsequence/design-system'
2
+
3
+ import { NetworkBadge } from '../../components/NetworkBadge'
4
+ import { TransactionHistorySkeleton } from '../../components/TransactionHistoryList/TransactionHistorySkeleton'
5
+ import { HEADER_HEIGHT } from '../../constants'
6
+
7
+ interface CoinDetailsSkeletonProps {
8
+ chainId: number
9
+ isReadOnly: boolean
10
+ }
11
+
12
+ export const CoinDetailsSkeleton = ({ chainId, isReadOnly }: CoinDetailsSkeletonProps) => {
13
+ return (
14
+ <div style={{ paddingTop: HEADER_HEIGHT }}>
15
+ <div className="flex flex-col gap-10 pb-5 px-4 pt-0" style={{ marginTop: '-20px' }}>
16
+ <div className="flex mb-10 gap-2 items-center justify-center flex-col">
17
+ <Skeleton style={{ width: '64px', height: '64px' }} />
18
+ <Skeleton style={{ height: '28px', width: '70px' }} />
19
+ <NetworkBadge chainId={chainId} />
20
+ </div>
21
+ <div>
22
+ <Text variant="normal" fontWeight="medium" color="muted">
23
+ Balance
24
+ </Text>
25
+ <div className="flex flex-row items-end justify-between">
26
+ <Skeleton style={{ width: '150px', height: '36px' }} />
27
+ <Skeleton style={{ width: '33px', height: '17px' }} />
28
+ </div>
29
+ </div>
30
+ {!isReadOnly && (
31
+ <Button
32
+ className="w-full text-primary"
33
+ variant="primary"
34
+ leftIcon={SendIcon}
35
+ label="Send"
36
+ disabled
37
+ onClick={() => {}}
38
+ />
39
+ )}
40
+ <div>
41
+ <TransactionHistorySkeleton />
42
+ </div>
43
+ </div>
44
+ </div>
45
+ )
46
+ }