@mezo-org/passport 0.4.0-dev.9 → 0.5.1-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (305) hide show
  1. package/README.md +18 -22
  2. package/dist/src/api/auth.d.ts +7 -3
  3. package/dist/src/api/auth.d.ts.map +1 -1
  4. package/dist/src/api/auth.js +3 -1
  5. package/dist/src/api/auth.js.map +1 -1
  6. package/dist/src/api/client.d.ts +4 -1
  7. package/dist/src/api/client.d.ts.map +1 -1
  8. package/dist/src/api/client.js +9 -2
  9. package/dist/src/api/client.js.map +1 -1
  10. package/dist/src/api/portal.d.ts +3 -9
  11. package/dist/src/api/portal.d.ts.map +1 -1
  12. package/dist/src/api/portal.js +8 -5
  13. package/dist/src/api/portal.js.map +1 -1
  14. package/dist/src/components/Dropdown/ConnectedTrigger.d.ts +2 -1
  15. package/dist/src/components/Dropdown/ConnectedTrigger.d.ts.map +1 -1
  16. package/dist/src/components/Dropdown/ConnectedTrigger.js +29 -20
  17. package/dist/src/components/Dropdown/ConnectedTrigger.js.map +1 -1
  18. package/dist/src/components/Dropdown/Content.d.ts +4 -5
  19. package/dist/src/components/Dropdown/Content.d.ts.map +1 -1
  20. package/dist/src/components/Dropdown/Content.js +19 -61
  21. package/dist/src/components/Dropdown/Content.js.map +1 -1
  22. package/dist/src/components/Dropdown/DisconnectedTrigger.d.ts.map +1 -1
  23. package/dist/src/components/Dropdown/DisconnectedTrigger.js +2 -2
  24. package/dist/src/components/Dropdown/DisconnectedTrigger.js.map +1 -1
  25. package/dist/src/components/Dropdown/Dropdown.d.ts +9 -6
  26. package/dist/src/components/Dropdown/Dropdown.d.ts.map +1 -1
  27. package/dist/src/components/Dropdown/Dropdown.js +10 -10
  28. package/dist/src/components/Dropdown/Dropdown.js.map +1 -1
  29. package/dist/src/components/Dropdown/ListingItem.d.ts +14 -0
  30. package/dist/src/components/Dropdown/ListingItem.d.ts.map +1 -0
  31. package/dist/src/components/Dropdown/ListingItem.js +42 -0
  32. package/dist/src/components/Dropdown/ListingItem.js.map +1 -0
  33. package/dist/src/components/Dropdown/NestedViewLayout.d.ts +8 -0
  34. package/dist/src/components/Dropdown/NestedViewLayout.d.ts.map +1 -0
  35. package/dist/src/components/Dropdown/NestedViewLayout.js +32 -0
  36. package/dist/src/components/Dropdown/NestedViewLayout.js.map +1 -0
  37. package/dist/src/components/Dropdown/Receive/Receive.d.ts +4 -0
  38. package/dist/src/components/Dropdown/Receive/Receive.d.ts.map +1 -0
  39. package/dist/src/components/Dropdown/Receive/Receive.js +64 -0
  40. package/dist/src/components/Dropdown/Receive/Receive.js.map +1 -0
  41. package/dist/src/components/Dropdown/Root/AccountAddressActions.d.ts +4 -0
  42. package/dist/src/components/Dropdown/Root/AccountAddressActions.d.ts.map +1 -0
  43. package/dist/src/components/Dropdown/Root/AccountAddressActions.js +49 -0
  44. package/dist/src/components/Dropdown/Root/AccountAddressActions.js.map +1 -0
  45. package/dist/src/components/Dropdown/Root/AccountBalance.d.ts +6 -0
  46. package/dist/src/components/Dropdown/Root/AccountBalance.d.ts.map +1 -0
  47. package/dist/src/components/Dropdown/Root/AccountBalance.js +35 -0
  48. package/dist/src/components/Dropdown/Root/AccountBalance.js.map +1 -0
  49. package/dist/src/components/Dropdown/Root/AccountBtcListing.d.ts +6 -0
  50. package/dist/src/components/Dropdown/Root/AccountBtcListing.d.ts.map +1 -0
  51. package/dist/src/components/Dropdown/Root/AccountBtcListing.js +27 -0
  52. package/dist/src/components/Dropdown/Root/AccountBtcListing.js.map +1 -0
  53. package/dist/src/components/Dropdown/Root/AccountError.d.ts +8 -0
  54. package/dist/src/components/Dropdown/Root/AccountError.d.ts.map +1 -0
  55. package/dist/src/components/Dropdown/Root/AccountError.js +17 -0
  56. package/dist/src/components/Dropdown/Root/AccountError.js.map +1 -0
  57. package/dist/src/components/Dropdown/Root/AccountMusdListing.d.ts +4 -0
  58. package/dist/src/components/Dropdown/Root/AccountMusdListing.d.ts.map +1 -0
  59. package/dist/src/components/Dropdown/Root/AccountMusdListing.js +21 -0
  60. package/dist/src/components/Dropdown/Root/AccountMusdListing.js.map +1 -0
  61. package/dist/src/components/Dropdown/Root/AccountOtherAssets.d.ts +8 -0
  62. package/dist/src/components/Dropdown/Root/AccountOtherAssets.d.ts.map +1 -0
  63. package/dist/src/components/Dropdown/Root/AccountOtherAssets.js +43 -0
  64. package/dist/src/components/Dropdown/Root/AccountOtherAssets.js.map +1 -0
  65. package/dist/src/components/Dropdown/Root/Root.d.ts +8 -0
  66. package/dist/src/components/Dropdown/Root/Root.d.ts.map +1 -0
  67. package/dist/src/components/Dropdown/Root/Root.js +45 -0
  68. package/dist/src/components/Dropdown/Root/Root.js.map +1 -0
  69. package/dist/src/components/Dropdown/Root/WalletAddress.d.ts +4 -0
  70. package/dist/src/components/Dropdown/Root/WalletAddress.d.ts.map +1 -0
  71. package/dist/src/components/Dropdown/Root/WalletAddress.js +66 -0
  72. package/dist/src/components/Dropdown/Root/WalletAddress.js.map +1 -0
  73. package/dist/src/components/Dropdown/Root/WelcomeBlock.d.ts +6 -0
  74. package/dist/src/components/Dropdown/Root/WelcomeBlock.d.ts.map +1 -0
  75. package/dist/src/components/Dropdown/Root/WelcomeBlock.js +88 -0
  76. package/dist/src/components/Dropdown/Root/WelcomeBlock.js.map +1 -0
  77. package/dist/src/components/Dropdown/SlotNumber.d.ts +19 -0
  78. package/dist/src/components/Dropdown/SlotNumber.d.ts.map +1 -0
  79. package/dist/src/components/Dropdown/SlotNumber.js +67 -0
  80. package/dist/src/components/Dropdown/SlotNumber.js.map +1 -0
  81. package/dist/src/components/Dropdown/TestnetTopBanner.d.ts +3 -0
  82. package/dist/src/components/Dropdown/TestnetTopBanner.d.ts.map +1 -0
  83. package/dist/src/components/Dropdown/TestnetTopBanner.js +14 -0
  84. package/dist/src/components/Dropdown/TestnetTopBanner.js.map +1 -0
  85. package/dist/src/config.d.ts +19 -5
  86. package/dist/src/config.d.ts.map +1 -1
  87. package/dist/src/config.js +58 -14
  88. package/dist/src/config.js.map +1 -1
  89. package/dist/src/constants.d.ts +11 -3
  90. package/dist/src/constants.d.ts.map +1 -1
  91. package/dist/src/constants.js +12 -4
  92. package/dist/src/constants.js.map +1 -1
  93. package/dist/src/hooks/index.d.ts +4 -0
  94. package/dist/src/hooks/index.d.ts.map +1 -1
  95. package/dist/src/hooks/index.js +4 -0
  96. package/dist/src/hooks/index.js.map +1 -1
  97. package/dist/src/hooks/useAssetsConversionRates.d.ts +18 -0
  98. package/dist/src/hooks/useAssetsConversionRates.d.ts.map +1 -0
  99. package/dist/src/hooks/useAssetsConversionRates.js +67 -0
  100. package/dist/src/hooks/useAssetsConversionRates.js.map +1 -0
  101. package/dist/src/hooks/useAuthenticateWithWallet.d.ts +13 -13
  102. package/dist/src/hooks/useAuthenticateWithWallet.d.ts.map +1 -1
  103. package/dist/src/hooks/useAuthenticateWithWallet.js +9 -8
  104. package/dist/src/hooks/useAuthenticateWithWallet.js.map +1 -1
  105. package/dist/src/hooks/useBorrowData.d.ts +108 -0
  106. package/dist/src/hooks/useBorrowData.d.ts.map +1 -0
  107. package/dist/src/hooks/useBorrowData.js +201 -0
  108. package/dist/src/hooks/useBorrowData.js.map +1 -0
  109. package/dist/src/hooks/useCreateAccount.d.ts.map +1 -1
  110. package/dist/src/hooks/useCreateAccount.js +22 -1
  111. package/dist/src/hooks/useCreateAccount.js.map +1 -1
  112. package/dist/src/hooks/useGetCurrentAccount.d.ts.map +1 -1
  113. package/dist/src/hooks/useGetCurrentAccount.js +4 -6
  114. package/dist/src/hooks/useGetCurrentAccount.js.map +1 -1
  115. package/dist/src/hooks/useLinkAccount.d.ts +19 -13
  116. package/dist/src/hooks/useLinkAccount.d.ts.map +1 -1
  117. package/dist/src/hooks/useLinkAccount.js +20 -1
  118. package/dist/src/hooks/useLinkAccount.js.map +1 -1
  119. package/dist/src/hooks/useRefreshPassport.d.ts +19 -0
  120. package/dist/src/hooks/useRefreshPassport.d.ts.map +1 -0
  121. package/dist/src/hooks/useRefreshPassport.js +44 -0
  122. package/dist/src/hooks/useRefreshPassport.js.map +1 -0
  123. package/dist/src/hooks/useSignInWithWallet.d.ts +13 -13
  124. package/dist/src/hooks/useSignInWithWallet.d.ts.map +1 -1
  125. package/dist/src/hooks/useSignUpWithWallet.d.ts +13 -13
  126. package/dist/src/hooks/useSignUpWithWallet.d.ts.map +1 -1
  127. package/dist/src/hooks/useTokensBalances.d.ts +75 -0
  128. package/dist/src/hooks/useTokensBalances.d.ts.map +1 -0
  129. package/dist/src/hooks/useTokensBalances.js +181 -0
  130. package/dist/src/hooks/useTokensBalances.js.map +1 -0
  131. package/dist/src/hooks/useValidateMezoId.d.ts +8 -0
  132. package/dist/src/hooks/useValidateMezoId.d.ts.map +1 -0
  133. package/dist/src/hooks/useValidateMezoId.js +24 -0
  134. package/dist/src/hooks/useValidateMezoId.js.map +1 -0
  135. package/dist/src/hooks/useWalletAccount.d.ts +2 -1
  136. package/dist/src/hooks/useWalletAccount.d.ts.map +1 -1
  137. package/dist/src/hooks/useWalletAccount.js +20 -15
  138. package/dist/src/hooks/useWalletAccount.js.map +1 -1
  139. package/dist/src/hooks/useWatchTransferEvents.d.ts +5 -0
  140. package/dist/src/hooks/useWatchTransferEvents.d.ts.map +1 -0
  141. package/dist/src/hooks/useWatchTransferEvents.js +63 -0
  142. package/dist/src/hooks/useWatchTransferEvents.js.map +1 -0
  143. package/dist/src/index.d.ts +2 -1
  144. package/dist/src/index.d.ts.map +1 -1
  145. package/dist/src/index.js +2 -1
  146. package/dist/src/index.js.map +1 -1
  147. package/dist/src/lib/contracts/index.d.ts +13 -0
  148. package/dist/src/lib/contracts/index.d.ts.map +1 -0
  149. package/dist/src/lib/contracts/index.js +66 -0
  150. package/dist/src/lib/contracts/index.js.map +1 -0
  151. package/dist/src/lib/contracts/priceOracle.d.ts +43 -0
  152. package/dist/src/lib/contracts/priceOracle.d.ts.map +1 -0
  153. package/dist/src/lib/contracts/priceOracle.js +52 -0
  154. package/dist/src/lib/contracts/priceOracle.js.map +1 -0
  155. package/dist/src/provider.d.ts +7 -1
  156. package/dist/src/provider.d.ts.map +1 -1
  157. package/dist/src/provider.js +4 -1
  158. package/dist/src/provider.js.map +1 -1
  159. package/dist/src/stores/dropdownStore.d.ts +12 -0
  160. package/dist/src/stores/dropdownStore.d.ts.map +1 -0
  161. package/dist/src/stores/dropdownStore.js +13 -0
  162. package/dist/src/stores/dropdownStore.js.map +1 -0
  163. package/dist/src/utils/address.d.ts +1 -1
  164. package/dist/src/utils/address.d.ts.map +1 -1
  165. package/dist/src/utils/address.js +2 -0
  166. package/dist/src/utils/address.js.map +1 -1
  167. package/dist/src/utils/address.test.js +8 -5
  168. package/dist/src/utils/address.test.js.map +1 -1
  169. package/dist/src/utils/assets.d.ts +145 -0
  170. package/dist/src/utils/assets.d.ts.map +1 -0
  171. package/dist/src/utils/assets.js +100 -0
  172. package/dist/src/utils/assets.js.map +1 -0
  173. package/dist/src/utils/assets.test.d.ts +2 -0
  174. package/dist/src/utils/assets.test.d.ts.map +1 -0
  175. package/dist/src/utils/assets.test.js +46 -0
  176. package/dist/src/utils/assets.test.js.map +1 -0
  177. package/dist/src/utils/currency.d.ts +13 -2
  178. package/dist/src/utils/currency.d.ts.map +1 -1
  179. package/dist/src/utils/currency.js +22 -8
  180. package/dist/src/utils/currency.js.map +1 -1
  181. package/dist/src/utils/currency.test.js +44 -1
  182. package/dist/src/utils/currency.test.js.map +1 -1
  183. package/dist/src/utils/mezoId.d.ts +7 -0
  184. package/dist/src/utils/mezoId.d.ts.map +1 -0
  185. package/dist/src/utils/mezoId.js +41 -0
  186. package/dist/src/utils/mezoId.js.map +1 -0
  187. package/dist/src/utils/number2.d.ts +106 -0
  188. package/dist/src/utils/number2.d.ts.map +1 -0
  189. package/dist/src/utils/number2.js +289 -0
  190. package/dist/src/utils/number2.js.map +1 -0
  191. package/dist/src/utils/numbers.d.ts +15 -33
  192. package/dist/src/utils/numbers.d.ts.map +1 -1
  193. package/dist/src/utils/numbers.js +26 -70
  194. package/dist/src/utils/numbers.js.map +1 -1
  195. package/dist/src/utils/numbers.test.js +46 -42
  196. package/dist/src/utils/numbers.test.js.map +1 -1
  197. package/dist/src/utils/siww.d.ts +1 -0
  198. package/dist/src/utils/siww.d.ts.map +1 -1
  199. package/dist/src/utils/siww.js +50 -12
  200. package/dist/src/utils/siww.js.map +1 -1
  201. package/dist/src/utils/wagmi.d.ts +3 -0
  202. package/dist/src/utils/wagmi.d.ts.map +1 -0
  203. package/dist/src/utils/wagmi.js +7 -0
  204. package/dist/src/utils/wagmi.js.map +1 -0
  205. package/dist/src/wallet/index.d.ts +1 -1
  206. package/dist/src/wallet/index.d.ts.map +1 -1
  207. package/dist/src/wallet/index.js +1 -1
  208. package/dist/src/wallet/index.js.map +1 -1
  209. package/package.json +11 -8
  210. package/src/api/auth.ts +8 -4
  211. package/src/api/client.ts +11 -2
  212. package/src/api/portal.ts +11 -14
  213. package/src/components/Dropdown/ConnectedTrigger.tsx +52 -32
  214. package/src/components/Dropdown/Content.tsx +26 -121
  215. package/src/components/Dropdown/DisconnectedTrigger.tsx +2 -1
  216. package/src/components/Dropdown/Dropdown.tsx +29 -17
  217. package/src/components/Dropdown/ListingItem.tsx +176 -0
  218. package/src/components/Dropdown/NestedViewLayout.tsx +87 -0
  219. package/src/components/Dropdown/README.md +10 -18
  220. package/src/components/Dropdown/Receive/Receive.tsx +144 -0
  221. package/src/components/Dropdown/Root/AccountAddressActions.tsx +99 -0
  222. package/src/components/Dropdown/Root/AccountBalance.tsx +75 -0
  223. package/src/components/Dropdown/Root/AccountBtcListing.tsx +52 -0
  224. package/src/components/Dropdown/Root/AccountError.tsx +34 -0
  225. package/src/components/Dropdown/Root/AccountMusdListing.tsx +45 -0
  226. package/src/components/Dropdown/Root/AccountOtherAssets.tsx +85 -0
  227. package/src/components/Dropdown/Root/Root.tsx +77 -0
  228. package/src/components/Dropdown/Root/WalletAddress.tsx +123 -0
  229. package/src/components/Dropdown/Root/WelcomeBlock.tsx +173 -0
  230. package/src/components/Dropdown/SlotNumber.tsx +131 -0
  231. package/src/components/Dropdown/TestnetTopBanner.tsx +32 -0
  232. package/src/config.ts +88 -20
  233. package/src/constants.ts +12 -4
  234. package/src/hooks/index.ts +7 -0
  235. package/src/hooks/useAssetsConversionRates.ts +79 -0
  236. package/src/hooks/useAuthenticateWithWallet.ts +30 -14
  237. package/src/hooks/useBorrowData.ts +246 -0
  238. package/src/hooks/useCreateAccount.ts +29 -2
  239. package/src/hooks/useGetCurrentAccount.ts +5 -7
  240. package/src/hooks/useLinkAccount.ts +37 -4
  241. package/src/hooks/useRefreshPassport.ts +56 -0
  242. package/src/hooks/useSignInWithWallet.ts +2 -2
  243. package/src/hooks/useSignUpWithWallet.ts +2 -2
  244. package/src/hooks/useTokensBalances.ts +265 -0
  245. package/src/hooks/useValidateMezoId.ts +31 -0
  246. package/src/hooks/useWalletAccount.ts +32 -20
  247. package/src/hooks/useWatchTransferEvents.ts +74 -0
  248. package/src/index.ts +12 -1
  249. package/src/lib/contracts/index.ts +99 -0
  250. package/src/lib/contracts/priceOracle.ts +53 -0
  251. package/src/provider.ts +11 -3
  252. package/src/stores/dropdownStore.ts +20 -0
  253. package/src/utils/address.test.ts +10 -6
  254. package/src/utils/address.ts +5 -3
  255. package/src/utils/assets.test.ts +57 -0
  256. package/src/utils/assets.ts +103 -0
  257. package/src/utils/currency.test.ts +77 -1
  258. package/src/utils/currency.ts +35 -9
  259. package/src/utils/mezoId.ts +51 -0
  260. package/src/utils/number2.ts +419 -0
  261. package/src/utils/numbers.test.ts +49 -42
  262. package/src/utils/numbers.ts +33 -95
  263. package/src/utils/siww.ts +71 -16
  264. package/src/utils/wagmi.ts +12 -0
  265. package/src/wallet/index.ts +3 -2
  266. package/dist/src/components/Dropdown/AccountAddress.d.ts +0 -8
  267. package/dist/src/components/Dropdown/AccountAddress.d.ts.map +0 -1
  268. package/dist/src/components/Dropdown/AccountAddress.js +0 -58
  269. package/dist/src/components/Dropdown/AccountAddress.js.map +0 -1
  270. package/dist/src/components/Dropdown/AccountAssets.d.ts +0 -14
  271. package/dist/src/components/Dropdown/AccountAssets.d.ts.map +0 -1
  272. package/dist/src/components/Dropdown/AccountAssets.js +0 -44
  273. package/dist/src/components/Dropdown/AccountAssets.js.map +0 -1
  274. package/dist/src/components/Dropdown/AccountBalance.d.ts +0 -7
  275. package/dist/src/components/Dropdown/AccountBalance.d.ts.map +0 -1
  276. package/dist/src/components/Dropdown/AccountBalance.js +0 -18
  277. package/dist/src/components/Dropdown/AccountBalance.js.map +0 -1
  278. package/dist/src/components/Dropdown/WelcomeBlock.d.ts +0 -8
  279. package/dist/src/components/Dropdown/WelcomeBlock.d.ts.map +0 -1
  280. package/dist/src/components/Dropdown/WelcomeBlock.js +0 -44
  281. package/dist/src/components/Dropdown/WelcomeBlock.js.map +0 -1
  282. package/dist/src/hooks/useAssetsUSDConversion.d.ts +0 -8
  283. package/dist/src/hooks/useAssetsUSDConversion.d.ts.map +0 -1
  284. package/dist/src/hooks/useAssetsUSDConversion.js +0 -21
  285. package/dist/src/hooks/useAssetsUSDConversion.js.map +0 -1
  286. package/dist/src/hooks/useDropdownData.d.ts +0 -44
  287. package/dist/src/hooks/useDropdownData.d.ts.map +0 -1
  288. package/dist/src/hooks/useDropdownData.js +0 -73
  289. package/dist/src/hooks/useDropdownData.js.map +0 -1
  290. package/dist/src/utils/cryptoAssets.d.ts +0 -28
  291. package/dist/src/utils/cryptoAssets.d.ts.map +0 -1
  292. package/dist/src/utils/cryptoAssets.js +0 -73
  293. package/dist/src/utils/cryptoAssets.js.map +0 -1
  294. package/dist/src/utils/cryptoAssets.test.d.ts +0 -2
  295. package/dist/src/utils/cryptoAssets.test.d.ts.map +0 -1
  296. package/dist/src/utils/cryptoAssets.test.js +0 -49
  297. package/dist/src/utils/cryptoAssets.test.js.map +0 -1
  298. package/src/components/Dropdown/AccountAddress.tsx +0 -111
  299. package/src/components/Dropdown/AccountAssets.tsx +0 -110
  300. package/src/components/Dropdown/AccountBalance.tsx +0 -38
  301. package/src/components/Dropdown/WelcomeBlock.tsx +0 -92
  302. package/src/hooks/useAssetsUSDConversion.ts +0 -31
  303. package/src/hooks/useDropdownData.ts +0 -130
  304. package/src/utils/cryptoAssets.test.ts +0 -59
  305. package/src/utils/cryptoAssets.ts +0 -93
@@ -1,73 +0,0 @@
1
- import { useBitcoinAccount } from "@mezo-org/orangekit";
2
- import { useGetCurrentAccount } from ".";
3
- import { getCryptoAsset, isBitcoinLikeCryptoAsset, isUsdLikeCryptoAsset, } from "../utils/cryptoAssets";
4
- import { fromFixedPoint } from "../utils/numbers";
5
- import { useAssetsUsdConversion } from "./useAssetsUSDConversion";
6
- import useWalletAccount from "./useWalletAccount";
7
- /**
8
- * Formats crypto asset to balance details (balance in USD and decimals)
9
- * @param type The type of crypto asset
10
- * @param balance The balance of crypto asset
11
- * @param btcUsdConversionRate The USD conversion rate
12
- * @returns The balance details
13
- */
14
- export function formatCryptoAsset(type, balance, btcUsdConversionRate) {
15
- const { decimals } = getCryptoAsset(type);
16
- const nativeBalance = fromFixedPoint(balance, decimals, 4);
17
- let balanceInUsd = 0;
18
- if (isBitcoinLikeCryptoAsset(type)) {
19
- balanceInUsd = nativeBalance * btcUsdConversionRate;
20
- }
21
- if (isUsdLikeCryptoAsset(type)) {
22
- balanceInUsd = nativeBalance;
23
- }
24
- return {
25
- type,
26
- balance: nativeBalance,
27
- balanceInUsd,
28
- decimals,
29
- };
30
- }
31
- /**
32
- * Aggregates dropdown data for Dropdown component.
33
- * @param options - Options for the dropdown data.
34
- * @param options.evmNativeAssets - Native assets for EVM wallet.
35
- * @param options.matsnetAssets - Matsnet tokens. Rendered as separate section.
36
- * @returns Dropdown data.
37
- */
38
- export default function useDropdownData(options) {
39
- const { evmNativeAssets = [], matsnetAssets = [] } = options || {};
40
- const { btcBalance } = useBitcoinAccount();
41
- const { address, networkFamily, isConnected } = useWalletAccount();
42
- const { data: passportAccount } = useGetCurrentAccount();
43
- const { data: assetsUsdConversion } = useAssetsUsdConversion();
44
- if (!address || !isConnected || !passportAccount) {
45
- return null;
46
- }
47
- const mezoId = passportAccount.mezoId;
48
- const nativeAssets = networkFamily === "bitcoin"
49
- ? [
50
- {
51
- type: "btc",
52
- balance: BigInt(btcBalance?.total ?? 0),
53
- },
54
- ]
55
- : evmNativeAssets;
56
- const btcUsdConversionRate = Number(assetsUsdConversion?.btcUsd ?? 0);
57
- const formattedNativeAssets = nativeAssets.map((asset) => formatCryptoAsset(asset.type, asset.balance, btcUsdConversionRate));
58
- const totalBalanceInUsd = formattedNativeAssets.reduce((sum, value) => sum + value.balanceInUsd, 0);
59
- const matsBalance = passportAccount.mats.totalMats;
60
- const matsnetFormattedAssets = matsnetAssets.map((asset) => formatCryptoAsset(asset.type, asset.balance, btcUsdConversionRate));
61
- return {
62
- mezoId,
63
- address,
64
- walletType: networkFamily,
65
- totalBalanceInUsd,
66
- formattedNativeAssets,
67
- matsnet: {
68
- mats: matsBalance,
69
- formattedAssets: matsnetFormattedAssets,
70
- },
71
- };
72
- }
73
- //# sourceMappingURL=useDropdownData.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDropdownData.js","sourceRoot":"","sources":["../../../src/hooks/useDropdownData.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- import { IconProps } from "@mezo-org/mezo-clay";
2
- import { FC } from "react";
3
- export type CryptoAssetKey = "btc" | "eth" | "tbtc" | "wbtc" | "mbtc" | "musd";
4
- export type CryptoAsset = {
5
- name: string;
6
- symbol: string;
7
- icon: FC<IconProps>;
8
- decimals: number;
9
- };
10
- /**
11
- * Gets details of given crypto asset
12
- * @param key The key of crypto asset
13
- * @returns The crypto asset details
14
- */
15
- export declare function getCryptoAsset(key: CryptoAssetKey): CryptoAsset;
16
- /**
17
- * Checks if given crypto asset is Bitcoin-like
18
- * @param key The key of crypto asset
19
- * @returns True if crypto asset is Bitcoin-like
20
- */
21
- export declare function isBitcoinLikeCryptoAsset(key: CryptoAssetKey): boolean;
22
- /**
23
- * Checks if given crypto asset is USD-like
24
- * @param key The key of crypto asset
25
- * @returns True if crypto asset is USD-like
26
- */
27
- export declare function isUsdLikeCryptoAsset(key: CryptoAssetKey): boolean;
28
- //# sourceMappingURL=cryptoAssets.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cryptoAssets.d.ts","sourceRoot":"","sources":["../../../src/utils/cryptoAssets.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EAGV,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAiB,EAAE,EAAE,MAAM,OAAO,CAAA;AAEzC,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;AAE9E,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAmDD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,cAAc,eAEjD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,cAAc,WAE3D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,cAAc,WAEvD"}
@@ -1,73 +0,0 @@
1
- import { BitcoinCircle, EthCircle, MUsdCircle, TBtcCircle, } from "@mezo-org/mezo-clay";
2
- import { createElement } from "react";
3
- const CRYPTO_ASSETS = {
4
- btc: {
5
- name: "Bitcoin",
6
- symbol: "BTC",
7
- icon: BitcoinCircle,
8
- decimals: 8,
9
- },
10
- eth: {
11
- name: "Ethereum",
12
- symbol: "ETH",
13
- icon: EthCircle,
14
- decimals: 18,
15
- },
16
- tbtc: {
17
- name: "Threshold Bitcoin",
18
- symbol: "tBTC",
19
- icon: TBtcCircle,
20
- decimals: 18,
21
- },
22
- wbtc: {
23
- name: "Wrapped Bitcoin",
24
- symbol: "wBTC",
25
- icon: (props) => createElement(BitcoinCircle, {
26
- ...props,
27
- symbolColor: "#FF8A00",
28
- color: "#000000",
29
- }),
30
- decimals: 8,
31
- },
32
- mbtc: {
33
- name: "Matsnet Bitcoin",
34
- symbol: "BTC",
35
- icon: (props) => createElement(BitcoinCircle, {
36
- ...props,
37
- symbolColor: "#000000",
38
- color: "#FFC907",
39
- }),
40
- decimals: 18,
41
- },
42
- musd: {
43
- name: "Mezo USD",
44
- symbol: "MUSD",
45
- icon: MUsdCircle,
46
- decimals: 18,
47
- },
48
- };
49
- /**
50
- * Gets details of given crypto asset
51
- * @param key The key of crypto asset
52
- * @returns The crypto asset details
53
- */
54
- export function getCryptoAsset(key) {
55
- return CRYPTO_ASSETS[key];
56
- }
57
- /**
58
- * Checks if given crypto asset is Bitcoin-like
59
- * @param key The key of crypto asset
60
- * @returns True if crypto asset is Bitcoin-like
61
- */
62
- export function isBitcoinLikeCryptoAsset(key) {
63
- return ["btc", "tbtc", "wbtc", "mbtc"].includes(key);
64
- }
65
- /**
66
- * Checks if given crypto asset is USD-like
67
- * @param key The key of crypto asset
68
- * @returns True if crypto asset is USD-like
69
- */
70
- export function isUsdLikeCryptoAsset(key) {
71
- return ["musd"].includes(key);
72
- }
73
- //# sourceMappingURL=cryptoAssets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cryptoAssets.js","sourceRoot":"","sources":["../../../src/utils/cryptoAssets.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,SAAS,EAET,UAAU,EACV,UAAU,GACX,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAM,MAAM,OAAO,CAAA;AAWzC,MAAM,aAAa,GAAwC;IACzD,GAAG,EAAE;QACH,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,CAAC;KACZ;IACD,GAAG,EAAE;QACH,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,EAAE;KACb;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,mBAAmB;QACzB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,EAAE;KACb;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CACd,aAAa,CAAC,aAAa,EAAE;YAC3B,GAAG,KAAK;YACR,WAAW,EAAE,SAAS;YACtB,KAAK,EAAE,SAAS;SACjB,CAAC;QACJ,QAAQ,EAAE,CAAC;KACZ;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CACd,aAAa,CAAC,aAAa,EAAE;YAC3B,GAAG,KAAK;YACR,WAAW,EAAE,SAAS;YACtB,KAAK,EAAE,SAAS;SACjB,CAAC;QACJ,QAAQ,EAAE,EAAE;KACb;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,EAAE;KACb;CACF,CAAA;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,GAAmB;IAChD,OAAO,aAAa,CAAC,GAAG,CAAC,CAAA;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,GAAmB;IAC1D,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AACtD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAmB;IACtD,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAC/B,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=cryptoAssets.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cryptoAssets.test.d.ts","sourceRoot":"","sources":["../../../src/utils/cryptoAssets.test.ts"],"names":[],"mappings":""}
@@ -1,49 +0,0 @@
1
- import { BitcoinCircle, EthCircle, MUsdCircle, TBtcCircle, } from "@mezo-org/mezo-clay";
2
- import { getCryptoAsset } from "./cryptoAssets";
3
- describe("getCryptoAsset", () => {
4
- it("returns the correct asset for 'btc'", () => {
5
- const asset = getCryptoAsset("btc");
6
- expect(asset.name).toBe("Bitcoin");
7
- expect(asset.symbol).toBe("BTC");
8
- expect(asset.decimals).toBe(8);
9
- expect(asset.icon).toBe(BitcoinCircle);
10
- });
11
- it("returns the correct asset for 'eth'", () => {
12
- const asset = getCryptoAsset("eth");
13
- expect(asset.name).toBe("Ethereum");
14
- expect(asset.symbol).toBe("ETH");
15
- expect(asset.decimals).toBe(18);
16
- expect(asset.icon).toBe(EthCircle);
17
- });
18
- it("returns the correct asset for 'tbtc'", () => {
19
- const asset = getCryptoAsset("tbtc");
20
- expect(asset.name).toBe("Threshold Bitcoin");
21
- expect(asset.symbol).toBe("tBTC");
22
- expect(asset.decimals).toBe(18);
23
- expect(asset.icon).toBe(TBtcCircle);
24
- });
25
- it("returns the correct asset for 'wbtc'", () => {
26
- const asset = getCryptoAsset("wbtc");
27
- expect(asset.name).toBe("Wrapped Bitcoin");
28
- expect(asset.symbol).toBe("wBTC");
29
- expect(asset.decimals).toBe(8);
30
- // FIXME: Test should expect the exact icon component
31
- expect(asset.icon).toEqual(expect.any(Function));
32
- });
33
- it("returns the correct asset for 'mbtc'", () => {
34
- const asset = getCryptoAsset("mbtc");
35
- expect(asset.name).toBe("Matsnet Bitcoin");
36
- expect(asset.symbol).toBe("BTC");
37
- expect(asset.decimals).toBe(18);
38
- // FIXME: Test should expect the exact icon component
39
- expect(asset.icon).toEqual(expect.any(Function));
40
- });
41
- it("returns the correct asset for 'musd'", () => {
42
- const asset = getCryptoAsset("musd");
43
- expect(asset.name).toBe("Mezo USD");
44
- expect(asset.symbol).toBe("mUSD");
45
- expect(asset.decimals).toBe(18);
46
- expect(asset.icon).toBe(MUsdCircle);
47
- });
48
- });
49
- //# sourceMappingURL=cryptoAssets.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cryptoAssets.test.js","sourceRoot":"","sources":["../../../src/utils/cryptoAssets.test.ts"],"names":[],"mappings":"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"}
@@ -1,111 +0,0 @@
1
- import {
2
- Block,
3
- Copy03 as CopyIcon,
4
- LinkExternal02 as LinkIcon,
5
- ParagraphSmall,
6
- useStyletron,
7
- } from "@mezo-org/mezo-clay"
8
- import React from "react"
9
- import { useCopyToClipboard } from "usehooks-ts"
10
- import { usePassportContext } from "../../hooks/usePassportContext"
11
- import { getAddressExplorerUrl, trimAddress } from "../../utils/address"
12
- import { getCryptoAsset } from "../../utils/cryptoAssets"
13
-
14
- type AccountAddressProps = {
15
- address: string
16
- type: "bitcoin" | "evm"
17
- }
18
-
19
- // TODO: Add visual feedback on copy
20
-
21
- export default function AccountAddress(props: AccountAddressProps) {
22
- const { address, type } = props
23
-
24
- const { environment } = usePassportContext()
25
- const blockExplorerUrl = getAddressExplorerUrl(
26
- address,
27
- type,
28
- environment === "testnet",
29
- )
30
- const trimmedAddress = trimAddress(address)
31
- const { icon: accountIcon } = getCryptoAsset(
32
- type === "bitcoin" ? "btc" : "eth",
33
- )
34
-
35
- const [, theme] = useStyletron()
36
-
37
- const [, copy] = useCopyToClipboard()
38
-
39
- return (
40
- <Block
41
- as="button"
42
- onClick={() => copy(address)}
43
- display="flex"
44
- alignItems="center"
45
- backgroundColor="transparent"
46
- padding={`${theme.sizing.scale600} ${theme.sizing.scale500}`}
47
- overrides={{
48
- Block: {
49
- style: {
50
- borderWidth: 0,
51
- cursor: "pointer",
52
- ":hover": {
53
- backgroundColor: theme.colors.backgroundTertiary,
54
- },
55
- },
56
- },
57
- }}
58
- >
59
- <Block as={accountIcon} size={theme.sizing.scale600} />
60
- <Block
61
- as="a"
62
- marginLeft={theme.sizing.scale300}
63
- href={blockExplorerUrl}
64
- target="_blank"
65
- overrides={{
66
- Block: {
67
- style: {
68
- color: "inherit",
69
- textDecoration: "none",
70
- ":hover": {
71
- textDecoration: "underline",
72
- },
73
- },
74
- },
75
- }}
76
- >
77
- <ParagraphSmall
78
- display="flex"
79
- alignItems="center"
80
- margin={0}
81
- color={theme.colors.gray800}
82
- >
83
- {trimmedAddress}
84
- <LinkIcon
85
- display="inline"
86
- size={theme.sizing.scale550}
87
- overrides={{
88
- Svg: {
89
- style: {
90
- stroke: "currentColor",
91
- marginLeft: theme.sizing.scale200,
92
- },
93
- },
94
- }}
95
- />
96
- </ParagraphSmall>
97
- </Block>
98
- <CopyIcon
99
- size={theme.sizing.scale550}
100
- overrides={{
101
- Svg: {
102
- style: {
103
- marginLeft: "auto",
104
- stroke: "currentColor",
105
- },
106
- },
107
- }}
108
- />
109
- </Block>
110
- )
111
- }
@@ -1,110 +0,0 @@
1
- import {
2
- Block,
3
- LabelSmall,
4
- ParagraphSmall,
5
- useStyletron,
6
- } from "@mezo-org/mezo-clay"
7
- import React, { useMemo } from "react"
8
- import { CryptoAssetKey, getCryptoAsset } from "../../utils/cryptoAssets"
9
- import { formatUsd } from "../../utils/currency"
10
-
11
- type AccountAssetsProps = {
12
- label: string | React.ReactNode
13
- assets: {
14
- type: CryptoAssetKey
15
- decimals: number
16
- balance: number
17
- balanceInUsd: number
18
- }[]
19
- }
20
-
21
- export default function AccountAssets(props: AccountAssetsProps) {
22
- const { label, assets } = props
23
-
24
- const [, theme] = useStyletron()
25
-
26
- const assetsData = useMemo(
27
- () =>
28
- assets.map((token) => {
29
- const { name, symbol, icon } = getCryptoAsset(token.type)
30
-
31
- return {
32
- ...token,
33
- icon,
34
- label: name,
35
- symbol,
36
- }
37
- }),
38
- [assets],
39
- )
40
-
41
- const labelContent =
42
- typeof label === "string" ? (
43
- <ParagraphSmall margin={0} color={theme.colors.gray800}>
44
- {label}
45
- </ParagraphSmall>
46
- ) : (
47
- label
48
- )
49
-
50
- if (assetsData.length === 0) {
51
- return null
52
- }
53
-
54
- return (
55
- <Block padding={`0 ${theme.sizing.scale500}`}>
56
- <Block margin={`${theme.sizing.scale400} 0`}>{labelContent}</Block>
57
-
58
- <Block
59
- as="ul"
60
- marginBottom={theme.sizing.scale600}
61
- padding={0}
62
- display="flex"
63
- flexDirection="column"
64
- overrides={{
65
- Block: {
66
- style: {
67
- gap: theme.sizing.scale100,
68
- },
69
- },
70
- }}
71
- >
72
- {assetsData.map((asset) => (
73
- <Block
74
- as="li"
75
- key={`${asset.type}-${asset.balance}`}
76
- display="flex"
77
- justifyContent="space-between"
78
- alignItems="center"
79
- margin={`${theme.sizing.scale100} 0`}
80
- >
81
- <asset.icon
82
- size={theme.sizing.scale800}
83
- overrides={{
84
- Svg: {
85
- style: {
86
- marginRight: theme.sizing.scale500,
87
- },
88
- },
89
- }}
90
- />
91
-
92
- <Block flex={1}>
93
- <LabelSmall margin={0}>{asset.label}</LabelSmall>
94
- <ParagraphSmall margin={0} color={theme.colors.gray500}>
95
- {asset.symbol}
96
- </ParagraphSmall>
97
- </Block>
98
-
99
- <Block display="flex" alignItems="end" flexDirection="column">
100
- <LabelSmall margin={0}>{asset.balance}</LabelSmall>
101
- <ParagraphSmall margin={0} color={theme.colors.gray500}>
102
- {formatUsd(asset.balanceInUsd)}
103
- </ParagraphSmall>
104
- </Block>
105
- </Block>
106
- ))}
107
- </Block>
108
- </Block>
109
- )
110
- }
@@ -1,38 +0,0 @@
1
- import {
2
- Block,
3
- HeadingSmall,
4
- ParagraphSmall,
5
- useStyletron,
6
- } from "@mezo-org/mezo-clay"
7
- import React from "react"
8
- import { formatUsd } from "../../utils/currency"
9
-
10
- type AccountBalanceProps = {
11
- amount: number
12
- }
13
-
14
- export default function AccountBalance(props: AccountBalanceProps) {
15
- const { amount } = props
16
-
17
- const formattedUsdBalance = formatUsd(amount)
18
-
19
- const [, theme] = useStyletron()
20
-
21
- return (
22
- <Block
23
- padding={theme.sizing.scale500}
24
- overrides={{
25
- Block: {
26
- style: {
27
- borderBottom: `1px solid ${theme.colors.backgroundPrimary}`,
28
- },
29
- },
30
- }}
31
- >
32
- <ParagraphSmall margin={0} color={theme.colors.gray800}>
33
- Available balance
34
- </ParagraphSmall>
35
- <HeadingSmall margin={0}>{formattedUsdBalance}</HeadingSmall>
36
- </Block>
37
- )
38
- }
@@ -1,92 +0,0 @@
1
- import {
2
- Block,
3
- HeadingSmall,
4
- LabelSmall,
5
- Mats,
6
- useStyletron,
7
- } from "@mezo-org/mezo-clay"
8
- import React from "react"
9
- import DefaultAvatar from "../../assets/DefaultAvatar"
10
- import { formatHumanReadableNumber } from "../../utils/numbers"
11
-
12
- const DOT_DELIMITER_REGEX = /(?=\.)/
13
-
14
- type WelcomeBlockProps = {
15
- mezoId: string
16
- matsBalance: number
17
- }
18
-
19
- export default function WelcomeBlock(props: WelcomeBlockProps) {
20
- const { mezoId, matsBalance } = props
21
-
22
- const [name, nameSuffix] = mezoId.split(DOT_DELIMITER_REGEX)
23
- const [, theme] = useStyletron()
24
-
25
- return (
26
- <Block
27
- display="flex"
28
- alignItems="center"
29
- padding={`${theme.sizing.scale600} 0`}
30
- marginBottom={theme.sizing.scale300}
31
- overrides={{
32
- Block: {
33
- style: {
34
- gap: theme.sizing.scale600,
35
- },
36
- },
37
- }}
38
- >
39
- <Block
40
- as={DefaultAvatar}
41
- width={theme.sizing.scale1200}
42
- height={theme.sizing.scale1200}
43
- overrides={{
44
- Block: {
45
- style: {
46
- borderRadius: "100%",
47
- },
48
- },
49
- }}
50
- />
51
-
52
- <Block
53
- display="flex"
54
- flexDirection="column"
55
- overrides={{
56
- Block: {
57
- style: {
58
- gap: theme.sizing.scale100,
59
- },
60
- },
61
- }}
62
- >
63
- <HeadingSmall as="span">
64
- <Block as="span">{name}</Block>
65
- <Block as="span" color={theme.colors.gray500}>
66
- {nameSuffix}
67
- </Block>
68
- </HeadingSmall>
69
-
70
- <LabelSmall
71
- display="flex"
72
- alignItems="center"
73
- margin={0}
74
- color={theme.colors.contentTertiary}
75
- overrides={{
76
- Block: {
77
- style: {
78
- gap: theme.sizing.scale300,
79
- },
80
- },
81
- }}
82
- >
83
- <Mats
84
- color={theme.colors.contentPrimary}
85
- size={theme.sizing.scale600}
86
- />
87
- {formatHumanReadableNumber(matsBalance, 0)}
88
- </LabelSmall>
89
- </Block>
90
- </Block>
91
- )
92
- }
@@ -1,31 +0,0 @@
1
- import { UseBaseQueryOptions, useQuery } from "@tanstack/react-query"
2
- import { ONE_MINUTE_MS } from "../utils/time"
3
- import { QUERY_KEYS } from "./constants"
4
- import { usePortalApiClient } from "./usePortalApiClient"
5
-
6
- type AssetsUsdConversion = {
7
- btcUsd: string
8
- ethUsd: string
9
- }
10
-
11
- export function useAssetsUsdConversion(
12
- useQueryOptions: Partial<UseBaseQueryOptions<AssetsUsdConversion>> = {},
13
- ) {
14
- const portalApiClient = usePortalApiClient()
15
-
16
- return useQuery({
17
- queryKey: [QUERY_KEYS.ASSETS_USD_CONVERSION],
18
- queryFn: async () => {
19
- const { currentUsdPerBtc, currentUsdPerEth } =
20
- await portalApiClient.getPortalStatistics()
21
-
22
- return {
23
- btcUsd: currentUsdPerBtc,
24
- ethUsd: currentUsdPerEth,
25
- }
26
- },
27
- staleTime: 30 * ONE_MINUTE_MS,
28
- retry: 1,
29
- ...useQueryOptions,
30
- })
31
- }