@mezo-org/passport 0.4.0-dev.81 → 0.4.0-dev.83

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 (187) hide show
  1. package/dist/src/api/auth.d.ts +1 -1
  2. package/dist/src/api/auth.d.ts.map +1 -1
  3. package/dist/src/components/Dropdown/Content.d.ts +0 -15
  4. package/dist/src/components/Dropdown/Content.d.ts.map +1 -1
  5. package/dist/src/components/Dropdown/Content.js +3 -3
  6. package/dist/src/components/Dropdown/Content.js.map +1 -1
  7. package/dist/src/components/Dropdown/Dropdown.d.ts +0 -4
  8. package/dist/src/components/Dropdown/Dropdown.d.ts.map +1 -1
  9. package/dist/src/components/Dropdown/Dropdown.js +10 -33
  10. package/dist/src/components/Dropdown/Dropdown.js.map +1 -1
  11. package/dist/src/components/Dropdown/ListingItem.d.ts +8 -7
  12. package/dist/src/components/Dropdown/ListingItem.d.ts.map +1 -1
  13. package/dist/src/components/Dropdown/ListingItem.js +36 -28
  14. package/dist/src/components/Dropdown/ListingItem.js.map +1 -1
  15. package/dist/src/components/Dropdown/NestedViewLayout.d.ts +2 -1
  16. package/dist/src/components/Dropdown/NestedViewLayout.d.ts.map +1 -1
  17. package/dist/src/components/Dropdown/NestedViewLayout.js +13 -15
  18. package/dist/src/components/Dropdown/NestedViewLayout.js.map +1 -1
  19. package/dist/src/components/Dropdown/Receive/Receive.d.ts +1 -4
  20. package/dist/src/components/Dropdown/Receive/Receive.d.ts.map +1 -1
  21. package/dist/src/components/Dropdown/Receive/Receive.js +36 -19
  22. package/dist/src/components/Dropdown/Receive/Receive.js.map +1 -1
  23. package/dist/src/components/Dropdown/Root/AccountAddressActions.d.ts +2 -5
  24. package/dist/src/components/Dropdown/Root/AccountAddressActions.d.ts.map +1 -1
  25. package/dist/src/components/Dropdown/Root/AccountAddressActions.js +28 -12
  26. package/dist/src/components/Dropdown/Root/AccountAddressActions.js.map +1 -1
  27. package/dist/src/components/Dropdown/Root/AccountBalance.d.ts +2 -4
  28. package/dist/src/components/Dropdown/Root/AccountBalance.d.ts.map +1 -1
  29. package/dist/src/components/Dropdown/Root/AccountBalance.js +24 -8
  30. package/dist/src/components/Dropdown/Root/AccountBalance.js.map +1 -1
  31. package/dist/src/components/Dropdown/Root/AccountBtcListing.d.ts +6 -0
  32. package/dist/src/components/Dropdown/Root/AccountBtcListing.d.ts.map +1 -0
  33. package/dist/src/components/Dropdown/Root/AccountBtcListing.js +27 -0
  34. package/dist/src/components/Dropdown/Root/AccountBtcListing.js.map +1 -0
  35. package/dist/src/components/Dropdown/Root/AccountError.d.ts +8 -0
  36. package/dist/src/components/Dropdown/Root/AccountError.d.ts.map +1 -0
  37. package/dist/src/components/Dropdown/Root/AccountError.js +17 -0
  38. package/dist/src/components/Dropdown/Root/AccountError.js.map +1 -0
  39. package/dist/src/components/Dropdown/Root/AccountMusdListing.d.ts +4 -0
  40. package/dist/src/components/Dropdown/Root/AccountMusdListing.d.ts.map +1 -0
  41. package/dist/src/components/Dropdown/Root/AccountMusdListing.js +21 -0
  42. package/dist/src/components/Dropdown/Root/AccountMusdListing.js.map +1 -0
  43. package/dist/src/components/Dropdown/Root/AccountOtherAssets.d.ts +2 -3
  44. package/dist/src/components/Dropdown/Root/AccountOtherAssets.d.ts.map +1 -1
  45. package/dist/src/components/Dropdown/Root/AccountOtherAssets.js +34 -39
  46. package/dist/src/components/Dropdown/Root/AccountOtherAssets.js.map +1 -1
  47. package/dist/src/components/Dropdown/Root/Root.d.ts +0 -15
  48. package/dist/src/components/Dropdown/Root/Root.d.ts.map +1 -1
  49. package/dist/src/components/Dropdown/Root/Root.js +22 -34
  50. package/dist/src/components/Dropdown/Root/Root.js.map +1 -1
  51. package/dist/src/components/Dropdown/Root/WalletAddress.d.ts +2 -6
  52. package/dist/src/components/Dropdown/Root/WalletAddress.d.ts.map +1 -1
  53. package/dist/src/components/Dropdown/Root/WalletAddress.js +43 -34
  54. package/dist/src/components/Dropdown/Root/WalletAddress.js.map +1 -1
  55. package/dist/src/components/Dropdown/Root/WelcomeBlock.d.ts +2 -4
  56. package/dist/src/components/Dropdown/Root/WelcomeBlock.d.ts.map +1 -1
  57. package/dist/src/components/Dropdown/Root/WelcomeBlock.js +60 -16
  58. package/dist/src/components/Dropdown/Root/WelcomeBlock.js.map +1 -1
  59. package/dist/src/components/Dropdown/SlotNumber.d.ts +19 -0
  60. package/dist/src/components/Dropdown/SlotNumber.d.ts.map +1 -0
  61. package/dist/src/components/Dropdown/SlotNumber.js +67 -0
  62. package/dist/src/components/Dropdown/SlotNumber.js.map +1 -0
  63. package/dist/src/config.d.ts +1 -11
  64. package/dist/src/config.d.ts.map +1 -1
  65. package/dist/src/config.js +3 -40
  66. package/dist/src/config.js.map +1 -1
  67. package/dist/src/constants.d.ts +0 -2
  68. package/dist/src/constants.d.ts.map +1 -1
  69. package/dist/src/constants.js +0 -2
  70. package/dist/src/constants.js.map +1 -1
  71. package/dist/src/hooks/useAssetsConversionRates.d.ts +8 -13
  72. package/dist/src/hooks/useAssetsConversionRates.d.ts.map +1 -1
  73. package/dist/src/hooks/useAssetsConversionRates.js +44 -67
  74. package/dist/src/hooks/useAssetsConversionRates.js.map +1 -1
  75. package/dist/src/hooks/useAuthenticateWithWallet.d.ts.map +1 -1
  76. package/dist/src/hooks/useAuthenticateWithWallet.js +1 -1
  77. package/dist/src/hooks/useAuthenticateWithWallet.js.map +1 -1
  78. package/dist/src/hooks/useBorrowData.d.ts +31 -5
  79. package/dist/src/hooks/useBorrowData.d.ts.map +1 -1
  80. package/dist/src/hooks/useBorrowData.js +53 -11
  81. package/dist/src/hooks/useBorrowData.js.map +1 -1
  82. package/dist/src/hooks/useCreateAccount.d.ts.map +1 -1
  83. package/dist/src/hooks/useCreateAccount.js +3 -3
  84. package/dist/src/hooks/useCreateAccount.js.map +1 -1
  85. package/dist/src/hooks/useGetCurrentAccount.d.ts +2 -2
  86. package/dist/src/hooks/useGetCurrentAccount.d.ts.map +1 -1
  87. package/dist/src/hooks/useGetCurrentAccount.js +4 -6
  88. package/dist/src/hooks/useGetCurrentAccount.js.map +1 -1
  89. package/dist/src/hooks/useLinkAccount.d.ts.map +1 -1
  90. package/dist/src/hooks/useLinkAccount.js +3 -3
  91. package/dist/src/hooks/useLinkAccount.js.map +1 -1
  92. package/dist/src/hooks/useTokensBalances.d.ts +36 -35
  93. package/dist/src/hooks/useTokensBalances.d.ts.map +1 -1
  94. package/dist/src/hooks/useTokensBalances.js +93 -52
  95. package/dist/src/hooks/useTokensBalances.js.map +1 -1
  96. package/dist/src/hooks/useWalletAccount.d.ts +8 -10
  97. package/dist/src/hooks/useWalletAccount.d.ts.map +1 -1
  98. package/dist/src/hooks/useWalletAccount.js +22 -19
  99. package/dist/src/hooks/useWalletAccount.js.map +1 -1
  100. package/dist/src/index.d.ts +1 -1
  101. package/dist/src/index.d.ts.map +1 -1
  102. package/dist/src/index.js +1 -1
  103. package/dist/src/index.js.map +1 -1
  104. package/dist/src/lib/contracts/index.d.ts +1 -1
  105. package/dist/src/lib/contracts/index.d.ts.map +1 -1
  106. package/dist/src/lib/contracts/index.js +4 -0
  107. package/dist/src/lib/contracts/index.js.map +1 -1
  108. package/dist/src/provider.d.ts +7 -1
  109. package/dist/src/provider.d.ts.map +1 -1
  110. package/dist/src/provider.js +4 -1
  111. package/dist/src/provider.js.map +1 -1
  112. package/dist/src/utils/assets.d.ts +145 -0
  113. package/dist/src/utils/assets.d.ts.map +1 -0
  114. package/dist/src/utils/assets.js +100 -0
  115. package/dist/src/utils/assets.js.map +1 -0
  116. package/dist/src/utils/assets.test.d.ts +2 -0
  117. package/dist/src/utils/assets.test.d.ts.map +1 -0
  118. package/dist/src/utils/assets.test.js +46 -0
  119. package/dist/src/utils/assets.test.js.map +1 -0
  120. package/dist/src/utils/currency.d.ts +6 -3
  121. package/dist/src/utils/currency.d.ts.map +1 -1
  122. package/dist/src/utils/currency.js +13 -10
  123. package/dist/src/utils/currency.js.map +1 -1
  124. package/dist/src/utils/currency.test.js +44 -2
  125. package/dist/src/utils/currency.test.js.map +1 -1
  126. package/dist/src/utils/numbers.d.ts +13 -53
  127. package/dist/src/utils/numbers.d.ts.map +1 -1
  128. package/dist/src/utils/numbers.js +16 -118
  129. package/dist/src/utils/numbers.js.map +1 -1
  130. package/dist/src/utils/numbers.test.js +24 -142
  131. package/dist/src/utils/numbers.test.js.map +1 -1
  132. package/package.json +2 -1
  133. package/src/api/auth.ts +1 -1
  134. package/src/components/Dropdown/Content.tsx +3 -48
  135. package/src/components/Dropdown/Dropdown.tsx +7 -55
  136. package/src/components/Dropdown/ListingItem.tsx +155 -59
  137. package/src/components/Dropdown/NestedViewLayout.tsx +32 -20
  138. package/src/components/Dropdown/Receive/Receive.tsx +69 -32
  139. package/src/components/Dropdown/Root/AccountAddressActions.tsx +64 -35
  140. package/src/components/Dropdown/Root/AccountBalance.tsx +54 -16
  141. package/src/components/Dropdown/Root/AccountBtcListing.tsx +52 -0
  142. package/src/components/Dropdown/Root/AccountError.tsx +34 -0
  143. package/src/components/Dropdown/Root/AccountMusdListing.tsx +45 -0
  144. package/src/components/Dropdown/Root/AccountOtherAssets.tsx +63 -46
  145. package/src/components/Dropdown/Root/Root.tsx +28 -98
  146. package/src/components/Dropdown/Root/WalletAddress.tsx +95 -89
  147. package/src/components/Dropdown/Root/WelcomeBlock.tsx +109 -29
  148. package/src/components/Dropdown/SlotNumber.tsx +131 -0
  149. package/src/config.ts +3 -59
  150. package/src/constants.ts +0 -6
  151. package/src/hooks/useAssetsConversionRates.ts +49 -67
  152. package/src/hooks/useAuthenticateWithWallet.ts +7 -5
  153. package/src/hooks/useBorrowData.ts +71 -12
  154. package/src/hooks/useCreateAccount.ts +5 -4
  155. package/src/hooks/useGetCurrentAccount.ts +5 -7
  156. package/src/hooks/useLinkAccount.ts +5 -4
  157. package/src/hooks/useTokensBalances.ts +152 -74
  158. package/src/hooks/useWalletAccount.ts +27 -36
  159. package/src/index.ts +0 -1
  160. package/src/lib/contracts/index.ts +8 -1
  161. package/src/provider.ts +11 -3
  162. package/src/utils/assets.test.ts +57 -0
  163. package/src/utils/assets.ts +103 -0
  164. package/src/utils/currency.test.ts +76 -2
  165. package/src/utils/currency.ts +20 -15
  166. package/src/utils/numbers.test.ts +29 -180
  167. package/src/utils/numbers.ts +22 -171
  168. package/dist/src/components/Dropdown/Root/AccountAssetItem.d.ts +0 -11
  169. package/dist/src/components/Dropdown/Root/AccountAssetItem.d.ts.map +0 -1
  170. package/dist/src/components/Dropdown/Root/AccountAssetItem.js +0 -9
  171. package/dist/src/components/Dropdown/Root/AccountAssetItem.js.map +0 -1
  172. package/dist/src/hooks/useDropdownData.d.ts +0 -47
  173. package/dist/src/hooks/useDropdownData.d.ts.map +0 -1
  174. package/dist/src/hooks/useDropdownData.js +0 -97
  175. package/dist/src/hooks/useDropdownData.js.map +0 -1
  176. package/dist/src/utils/cryptoAssets.d.ts +0 -44
  177. package/dist/src/utils/cryptoAssets.d.ts.map +0 -1
  178. package/dist/src/utils/cryptoAssets.js +0 -129
  179. package/dist/src/utils/cryptoAssets.js.map +0 -1
  180. package/dist/src/utils/cryptoAssets.test.d.ts +0 -2
  181. package/dist/src/utils/cryptoAssets.test.d.ts.map +0 -1
  182. package/dist/src/utils/cryptoAssets.test.js +0 -67
  183. package/dist/src/utils/cryptoAssets.test.js.map +0 -1
  184. package/src/components/Dropdown/Root/AccountAssetItem.tsx +0 -26
  185. package/src/hooks/useDropdownData.ts +0 -152
  186. package/src/utils/cryptoAssets.test.ts +0 -79
  187. package/src/utils/cryptoAssets.ts +0 -171
@@ -1 +0,0 @@
1
- {"version":3,"file":"cryptoAssets.test.js","sourceRoot":"","sources":["../../../src/utils/cryptoAssets.test.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- import React from "react"
2
- import { CryptoAssetKey, getCryptoAsset } from "../../../utils/cryptoAssets"
3
- import ListingItem from "../ListingItem"
4
-
5
- type AccountAssetItemProps = {
6
- type: CryptoAssetKey
7
- amount: string
8
- subLabel: string
9
- subValue: string
10
- }
11
-
12
- export default function AccountAssetItem(props: AccountAssetItemProps) {
13
- const { type, amount, subLabel, subValue } = props
14
-
15
- const { icon: Icon, name: label } = getCryptoAsset(type)
16
-
17
- return (
18
- <ListingItem
19
- icon={Icon}
20
- label={label}
21
- subLabel={subLabel}
22
- value={amount}
23
- subValue={subValue}
24
- />
25
- )
26
- }
@@ -1,152 +0,0 @@
1
- import { useBalance } from "wagmi"
2
- import { useGetCurrentAccount } from "."
3
- import {
4
- CryptoAssetKey,
5
- getCryptoAsset,
6
- isBitcoinLikeCryptoAsset,
7
- mapCryptoAssetToDetails,
8
- } from "../utils/cryptoAssets"
9
- import { fromFixedPoint } from "../utils/numbers"
10
- import { useAssetsConversionRates } from "./useAssetsConversionRates"
11
- import useWalletAccount from "./useWalletAccount"
12
- import { useTokensBalances } from "./useTokensBalances"
13
- import { useBorrowData } from "./useBorrowData"
14
- import { CHAIN_ID } from "../constants"
15
- import { usePassportContext } from "./usePassportContext"
16
- import { useWatchTransferEventsForAllTokens } from "./useWatchTransferEvents"
17
- import { convertToUsd } from "../utils/currency"
18
-
19
- export type DropdownCryptoAsset<T = CryptoAssetKey> = {
20
- type: T
21
- balance: bigint
22
- }
23
-
24
- const DEFAULT_ASSET_DATA = {
25
- rawBalance: 0n,
26
- formattedBalance: "0.0000",
27
- usdBalance: 0,
28
- formattedUsdBalance: "$0.00",
29
- }
30
-
31
- /**
32
- * Aggregates dropdown data for Dropdown component.
33
- * @param {accountDataRefetchInterval: number, nativeBalanceRefetchInterval: number }
34
- * Object containing refetch intervals time (in milliseconds) for account data
35
- * (like mats or mezo id) and for native balance. After that time the specific
36
- * value should be marked as stale and re-fetched. Default value for both is
37
- * 90000 (90 secs).
38
- * @returns Dropdown data.
39
- * @dev This hook is for internal use only.
40
- */
41
- export default function useDropdownData({
42
- accountDataRefetchInterval = 90000,
43
- nativeBalanceRefetchInterval = 90000,
44
- }) {
45
- const {
46
- walletAddress,
47
- accountAddress,
48
- networkFamily: walletType,
49
- } = useWalletAccount()
50
- const { environment = "mainnet" } = usePassportContext()
51
- const { data: btcBalance } = useBalance({
52
- address: accountAddress,
53
- chainId: CHAIN_ID[environment],
54
- query: {
55
- staleTime: nativeBalanceRefetchInterval,
56
- refetchInterval: nativeBalanceRefetchInterval,
57
- },
58
- })
59
- const { data: passportAccount } = useGetCurrentAccount({
60
- staleTime: accountDataRefetchInterval,
61
- refetchInterval: accountDataRefetchInterval,
62
- enabled: !!accountAddress,
63
- })
64
- const { data: assetsConversionRates } = useAssetsConversionRates()
65
- const { data: tokensBalances } = useTokensBalances()
66
- const { data: debt } = useBorrowData()
67
-
68
- useWatchTransferEventsForAllTokens()
69
-
70
- const mezoId = passportAccount?.mezoId
71
-
72
- const detailedAssets = [
73
- ["BTC", btcBalance?.value ?? 0n],
74
- ...Object.entries(tokensBalances ?? {}),
75
- ].map((asset) => {
76
- const [type, balance] = asset as [CryptoAssetKey, bigint]
77
-
78
- if (isBitcoinLikeCryptoAsset(type)) {
79
- return mapCryptoAssetToDetails(
80
- type,
81
- balance,
82
- assetsConversionRates.btc.price,
83
- assetsConversionRates.btc.decimals,
84
- )
85
- }
86
- if (type === "mT") {
87
- return mapCryptoAssetToDetails(
88
- type,
89
- balance,
90
- assetsConversionRates.t.price,
91
- assetsConversionRates.t.decimals,
92
- )
93
- }
94
-
95
- return mapCryptoAssetToDetails(type, balance, 1n, 0)
96
- })
97
-
98
- const btcData = detailedAssets.find(({ type }) => type === "BTC")!
99
- const musdData = detailedAssets.find(({ type }) => type === "MUSD")!
100
- const otherAssetsData = detailedAssets.filter(
101
- ({ type }) => !["BTC", "MUSD"].includes(type),
102
- )
103
-
104
- const otherAssetsCount = otherAssetsData.filter(
105
- (asset) => asset.rawBalance !== 0n,
106
- ).length
107
-
108
- const assets = {
109
- btc: btcData || {
110
- type: "BTC",
111
- ...DEFAULT_ASSET_DATA,
112
- },
113
- musd: musdData || {
114
- type: "mUSD",
115
- ...DEFAULT_ASSET_DATA,
116
- },
117
- }
118
-
119
- const otherAssetsUsdTotal = otherAssetsData.reduce(
120
- (sum, { usdBalance }) => sum + usdBalance,
121
- 0,
122
- )
123
-
124
- const matsBalance = passportAccount?.mats.totalMats || 0
125
-
126
- const usdCollateral = convertToUsd(
127
- debt?.collateral ?? 0n,
128
- getCryptoAsset("MUSD").decimals,
129
- assetsConversionRates.btc.price,
130
- assetsConversionRates.btc.decimals,
131
- )
132
-
133
- const usdTroveDebt = fromFixedPoint(debt?.troveDebt ?? 0n, 18)
134
-
135
- const usdTotalBalance =
136
- detailedAssets.reduce((sum, { usdBalance }) => sum + usdBalance, 0) +
137
- usdCollateral
138
-
139
- return {
140
- mezoId,
141
- matsBalance,
142
- accountAddress,
143
- walletAddress,
144
- walletType,
145
- usdTotalBalance,
146
- usdTroveDebt,
147
- usdCollateral,
148
- assets,
149
- otherAssetsCount,
150
- otherAssetsUsdTotal,
151
- }
152
- }
@@ -1,79 +0,0 @@
1
- import { BitcoinCircle, EthCircle, MUsdCircle02 } from "@mezo-org/mezo-clay"
2
- import {
3
- CryptoAssetKey,
4
- getCryptoAsset,
5
- isBitcoinLikeCryptoAsset,
6
- isUsdLikeCryptoAsset,
7
- } from "./cryptoAssets"
8
-
9
- // FIXME: Test fails if run in full suite (pnpm test) but works when run in isolation (pnpm test cryptoAssets)
10
-
11
- describe("getCryptoAsset", () => {
12
- it("returns the correct asset for 'BTC (mBTC)'", () => {
13
- const asset = getCryptoAsset("BTC")
14
- expect(asset.name).toBe("Bitcoin")
15
- expect(asset.symbol).toBe("BTC")
16
- expect(asset.decimals).toBe(18)
17
- expect(asset.icon).toBe(BitcoinCircle)
18
- })
19
-
20
- it("returns the correct asset for 'ETH'", () => {
21
- const asset = getCryptoAsset("ETH")
22
- expect(asset.name).toBe("Ethereum")
23
- expect(asset.symbol).toBe("ETH")
24
- expect(asset.decimals).toBe(18)
25
- expect(asset.icon).toBe(EthCircle)
26
- })
27
-
28
- it("returns the correct asset for 'MUSD'", () => {
29
- const asset = getCryptoAsset("MUSD")
30
- expect(asset.name).toBe("MUSD")
31
- expect(asset.symbol).toBe("MUSD")
32
- expect(asset.decimals).toBe(18)
33
- expect(asset.icon).toBe(MUsdCircle02)
34
- })
35
- })
36
-
37
- describe("isBitcoinLikeCryptoAsset", () => {
38
- const cases = [
39
- { input: "mcbBTC", expected: true },
40
- { input: "mDAI", expected: false },
41
- { input: "mFBTC", expected: true },
42
- { input: "mSolvBTC", expected: true },
43
- { input: "mswBTC", expected: true },
44
- { input: "mT", expected: false },
45
- { input: "mUSDC", expected: false },
46
- { input: "mUSDe", expected: false },
47
- { input: "mUSDT", expected: false },
48
- { input: "mxSolvBTC", expected: true },
49
- { input: "MUSD", expected: false },
50
- ]
51
-
52
- cases.forEach(({ input, expected }) => {
53
- it(`returns ${expected} for ${input}`, () => {
54
- expect(isBitcoinLikeCryptoAsset(input as CryptoAssetKey)).toBe(expected)
55
- })
56
- })
57
- })
58
-
59
- describe("isUsdLikeCryptoAsset", () => {
60
- const cases = [
61
- { input: "mcbBTC", expected: false },
62
- { input: "mDAI", expected: true },
63
- { input: "mFBTC", expected: false },
64
- { input: "mSolvBTC", expected: false },
65
- { input: "mswBTC", expected: false },
66
- { input: "mT", expected: false },
67
- { input: "mUSDC", expected: true },
68
- { input: "mUSDe", expected: true },
69
- { input: "mUSDT", expected: true },
70
- { input: "mxSolvBTC", expected: false },
71
- { input: "MUSD", expected: true },
72
- ]
73
-
74
- cases.forEach(({ input, expected }) => {
75
- it(`returns ${expected} for ${input}`, () => {
76
- expect(isUsdLikeCryptoAsset(input as CryptoAssetKey)).toBe(expected)
77
- })
78
- })
79
- })
@@ -1,171 +0,0 @@
1
- import {
2
- BitcoinCircle,
3
- EthCircle,
4
- IconProps,
5
- MUsdCircle02,
6
- Cryptocurrency04,
7
- } from "@mezo-org/mezo-clay"
8
- import { FC } from "react"
9
- import { MezoChainToken } from "../lib/contracts"
10
- import { convertToUsd, formatUsd } from "./currency"
11
- import { fromFixedPointToString } from "./numbers"
12
-
13
- export type CryptoAssetKey = MezoChainToken | "BTC" | "ETH"
14
-
15
- export type CryptoAsset = {
16
- name: string
17
- symbol: string
18
- icon: FC<IconProps>
19
- decimals: number
20
- }
21
-
22
- // TODO: Add actual icons for the assets
23
-
24
- const CRYPTO_ASSETS: Record<CryptoAssetKey, CryptoAsset> = {
25
- BTC: {
26
- name: "Bitcoin",
27
- symbol: "BTC",
28
- icon: BitcoinCircle,
29
- decimals: 18,
30
- },
31
- ETH: {
32
- name: "Ethereum",
33
- symbol: "ETH",
34
- icon: EthCircle,
35
- decimals: 18,
36
- },
37
- MUSD: {
38
- name: "MUSD",
39
- symbol: "MUSD",
40
- icon: MUsdCircle02,
41
- decimals: 18,
42
- },
43
- mDAI: {
44
- name: "mDAI",
45
- symbol: "mDAI",
46
- icon: Cryptocurrency04,
47
- decimals: 18,
48
- },
49
- mFBTC: {
50
- name: "mFBTC",
51
- symbol: "mFBTC",
52
- icon: BitcoinCircle,
53
- decimals: 8,
54
- },
55
- mcbBTC: {
56
- name: "mcbBTC",
57
- symbol: "mcbBTC",
58
- icon: BitcoinCircle,
59
- decimals: 8,
60
- },
61
- mSolvBTC: {
62
- name: "mSolvBTC",
63
- symbol: "mSolvBTC",
64
- icon: BitcoinCircle,
65
- decimals: 18,
66
- },
67
- mswBTC: {
68
- name: "mswBTC",
69
- symbol: "mswBTC",
70
- icon: BitcoinCircle,
71
- decimals: 8,
72
- },
73
- mT: {
74
- name: "mT",
75
- symbol: "mT",
76
- icon: Cryptocurrency04,
77
- decimals: 18,
78
- },
79
- mUSDC: {
80
- name: "mUSDC",
81
- symbol: "mUSDC",
82
- icon: Cryptocurrency04,
83
- decimals: 6,
84
- },
85
- mUSDe: {
86
- name: "mUSDe",
87
- symbol: "mUSDe",
88
- icon: Cryptocurrency04,
89
- decimals: 18,
90
- },
91
- mUSDT: {
92
- name: "mUSDT",
93
- symbol: "mUSDT",
94
- icon: Cryptocurrency04,
95
- decimals: 6,
96
- },
97
- mxSolvBTC: {
98
- name: "mxSolvBTC",
99
- symbol: "mxSolvBTC",
100
- icon: BitcoinCircle,
101
- decimals: 18,
102
- },
103
- }
104
-
105
- /**
106
- * Gets details of given crypto asset
107
- * @param key The key of crypto asset
108
- * @returns The crypto asset details
109
- */
110
- export function getCryptoAsset(key: CryptoAssetKey) {
111
- return CRYPTO_ASSETS[key]
112
- }
113
-
114
- /**
115
- * Checks if given crypto asset is Bitcoin-like
116
- * @param key The key of crypto asset
117
- * @returns True if crypto asset is Bitcoin-like
118
- */
119
- export function isBitcoinLikeCryptoAsset(key: CryptoAssetKey) {
120
- return /(btc)/i.test(key)
121
- }
122
-
123
- /**
124
- * Checks if given crypto asset is USD-like
125
- * @param key The key of crypto asset
126
- * @returns True if crypto asset is USD-like
127
- */
128
- export function isUsdLikeCryptoAsset(key: CryptoAssetKey) {
129
- return /(usd|dai)/i.test(key)
130
- }
131
-
132
- /**
133
- * Formats crypto asset to balance details (balance in USD and decimals)
134
- * @param type The type of crypto asset
135
- * @param balance The balance of crypto asset
136
- * @param usdConversionRate The USD conversion rate
137
- * @returns The balance details
138
- */
139
- export function mapCryptoAssetToDetails(
140
- type: CryptoAssetKey,
141
- balance: bigint,
142
- usdConversionRate: bigint,
143
- usdConversionRateDecimals: number,
144
- ) {
145
- const { decimals } = getCryptoAsset(type)
146
-
147
- const formattedBalance = fromFixedPointToString(
148
- balance,
149
- decimals,
150
- isUsdLikeCryptoAsset(type) ? 2 : 4,
151
- )
152
-
153
- const usdBalance = convertToUsd(
154
- balance,
155
- decimals,
156
- usdConversionRate,
157
- usdConversionRateDecimals,
158
- )
159
-
160
- const formattedUsdBalance = formatUsd(usdBalance)
161
-
162
- return {
163
- type,
164
- rawBalance: balance,
165
- formattedBalance,
166
- usdBalance,
167
- formattedUsdBalance,
168
- }
169
- }
170
-
171
- export type DetailedCryptoAsset = ReturnType<typeof mapCryptoAssetToDetails>