@mezo-org/passport 0.4.0-dev.20 → 0.4.0-dev.22

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 (136) hide show
  1. package/README.md +18 -22
  2. package/dist/src/api/portal.d.ts +1 -0
  3. package/dist/src/api/portal.d.ts.map +1 -1
  4. package/dist/src/api/portal.js.map +1 -1
  5. package/dist/src/components/Dropdown/Content.d.ts +16 -2
  6. package/dist/src/components/Dropdown/Content.d.ts.map +1 -1
  7. package/dist/src/components/Dropdown/Content.js +5 -3
  8. package/dist/src/components/Dropdown/Content.js.map +1 -1
  9. package/dist/src/components/Dropdown/Dropdown.d.ts +1 -5
  10. package/dist/src/components/Dropdown/Dropdown.d.ts.map +1 -1
  11. package/dist/src/components/Dropdown/Dropdown.js +7 -6
  12. package/dist/src/components/Dropdown/Dropdown.js.map +1 -1
  13. package/dist/src/components/Dropdown/ListingItem.d.ts +13 -0
  14. package/dist/src/components/Dropdown/ListingItem.d.ts.map +1 -0
  15. package/dist/src/components/Dropdown/ListingItem.js +34 -0
  16. package/dist/src/components/Dropdown/ListingItem.js.map +1 -0
  17. package/dist/src/components/Dropdown/Root/AccountAssetItem.d.ts +11 -0
  18. package/dist/src/components/Dropdown/Root/AccountAssetItem.d.ts.map +1 -0
  19. package/dist/src/components/Dropdown/Root/AccountAssetItem.js +9 -0
  20. package/dist/src/components/Dropdown/Root/AccountAssetItem.js.map +1 -0
  21. package/dist/src/components/Dropdown/Root/AccountBalance.d.ts +2 -1
  22. package/dist/src/components/Dropdown/Root/AccountBalance.d.ts.map +1 -1
  23. package/dist/src/components/Dropdown/Root/AccountBalance.js +7 -8
  24. package/dist/src/components/Dropdown/Root/AccountBalance.js.map +1 -1
  25. package/dist/src/components/Dropdown/Root/AccountOtherAssets.d.ts +9 -0
  26. package/dist/src/components/Dropdown/Root/AccountOtherAssets.d.ts.map +1 -0
  27. package/dist/src/components/Dropdown/Root/AccountOtherAssets.js +48 -0
  28. package/dist/src/components/Dropdown/Root/AccountOtherAssets.js.map +1 -0
  29. package/dist/src/components/Dropdown/Root/Root.d.ts +17 -2
  30. package/dist/src/components/Dropdown/Root/Root.d.ts.map +1 -1
  31. package/dist/src/components/Dropdown/Root/Root.js +15 -22
  32. package/dist/src/components/Dropdown/Root/Root.js.map +1 -1
  33. package/dist/src/components/Dropdown/Root/WalletAddress.js +5 -6
  34. package/dist/src/components/Dropdown/Root/WalletAddress.js.map +1 -1
  35. package/dist/src/components/Dropdown/Root/WelcomeBlock.js +4 -3
  36. package/dist/src/components/Dropdown/Root/WelcomeBlock.js.map +1 -1
  37. package/dist/src/components/Dropdown/TestnetTopBanner.d.ts +3 -0
  38. package/dist/src/components/Dropdown/TestnetTopBanner.d.ts.map +1 -0
  39. package/dist/src/components/Dropdown/TestnetTopBanner.js +14 -0
  40. package/dist/src/components/Dropdown/TestnetTopBanner.js.map +1 -0
  41. package/dist/src/config.js +2 -2
  42. package/dist/src/config.js.map +1 -1
  43. package/dist/src/constants.d.ts +2 -1
  44. package/dist/src/constants.d.ts.map +1 -1
  45. package/dist/src/constants.js +5 -4
  46. package/dist/src/constants.js.map +1 -1
  47. package/dist/src/hooks/index.d.ts +2 -0
  48. package/dist/src/hooks/index.d.ts.map +1 -1
  49. package/dist/src/hooks/index.js +2 -0
  50. package/dist/src/hooks/index.js.map +1 -1
  51. package/dist/src/hooks/useAssetsConversionRates.d.ts +7 -0
  52. package/dist/src/hooks/useAssetsConversionRates.d.ts.map +1 -0
  53. package/dist/src/hooks/{useAssetsUSDConversion.js → useAssetsConversionRates.js} +8 -5
  54. package/dist/src/hooks/useAssetsConversionRates.js.map +1 -0
  55. package/dist/src/hooks/useAuthenticateWithWallet.d.ts.map +1 -1
  56. package/dist/src/hooks/useAuthenticateWithWallet.js +4 -4
  57. package/dist/src/hooks/useAuthenticateWithWallet.js.map +1 -1
  58. package/dist/src/hooks/useBorrowData.d.ts +1418 -0
  59. package/dist/src/hooks/useBorrowData.d.ts.map +1 -0
  60. package/dist/src/hooks/useBorrowData.js +65 -0
  61. package/dist/src/hooks/useBorrowData.js.map +1 -0
  62. package/dist/src/hooks/useDropdownData.d.ts +28 -34
  63. package/dist/src/hooks/useDropdownData.d.ts.map +1 -1
  64. package/dist/src/hooks/useDropdownData.js +61 -65
  65. package/dist/src/hooks/useDropdownData.js.map +1 -1
  66. package/dist/src/hooks/useRefreshPassport.d.ts +2 -0
  67. package/dist/src/hooks/useRefreshPassport.d.ts.map +1 -1
  68. package/dist/src/hooks/useRefreshPassport.js +6 -0
  69. package/dist/src/hooks/useRefreshPassport.js.map +1 -1
  70. package/dist/src/hooks/useTokensBalances.d.ts +74 -0
  71. package/dist/src/hooks/useTokensBalances.d.ts.map +1 -0
  72. package/dist/src/hooks/useTokensBalances.js +140 -0
  73. package/dist/src/hooks/useTokensBalances.js.map +1 -0
  74. package/dist/src/hooks/useWalletAccount.d.ts +2 -1
  75. package/dist/src/hooks/useWalletAccount.d.ts.map +1 -1
  76. package/dist/src/hooks/useWalletAccount.js +2 -1
  77. package/dist/src/hooks/useWalletAccount.js.map +1 -1
  78. package/dist/src/lib/contracts/index.d.ts +10 -0
  79. package/dist/src/lib/contracts/index.d.ts.map +1 -0
  80. package/dist/src/lib/contracts/index.js +49 -0
  81. package/dist/src/lib/contracts/index.js.map +1 -0
  82. package/dist/src/lib/contracts/musd.d.ts +107 -0
  83. package/dist/src/lib/contracts/musd.d.ts.map +1 -0
  84. package/dist/src/lib/contracts/musd.js +1070 -0
  85. package/dist/src/lib/contracts/musd.js.map +1 -0
  86. package/dist/src/lib/contracts/troveManager.d.ts +1401 -0
  87. package/dist/src/lib/contracts/troveManager.d.ts.map +1 -0
  88. package/dist/src/lib/contracts/troveManager.js +1820 -0
  89. package/dist/src/lib/contracts/troveManager.js.map +1 -0
  90. package/dist/src/utils/cryptoAssets.d.ts +17 -1
  91. package/dist/src/utils/cryptoAssets.d.ts.map +1 -1
  92. package/dist/src/utils/cryptoAssets.js +89 -31
  93. package/dist/src/utils/cryptoAssets.js.map +1 -1
  94. package/dist/src/utils/cryptoAssets.test.js +50 -33
  95. package/dist/src/utils/cryptoAssets.test.js.map +1 -1
  96. package/dist/src/utils/numbers.d.ts +13 -0
  97. package/dist/src/utils/numbers.d.ts.map +1 -1
  98. package/dist/src/utils/numbers.js +46 -0
  99. package/dist/src/utils/numbers.js.map +1 -1
  100. package/package.json +7 -6
  101. package/src/api/portal.ts +1 -0
  102. package/src/components/Dropdown/Content.tsx +47 -11
  103. package/src/components/Dropdown/Dropdown.tsx +28 -13
  104. package/src/components/Dropdown/ListingItem.tsx +80 -0
  105. package/src/components/Dropdown/README.md +0 -14
  106. package/src/components/Dropdown/Root/AccountAssetItem.tsx +26 -0
  107. package/src/components/Dropdown/Root/AccountBalance.tsx +13 -18
  108. package/src/components/Dropdown/Root/AccountOtherAssets.tsx +68 -0
  109. package/src/components/Dropdown/Root/Root.tsx +59 -53
  110. package/src/components/Dropdown/Root/WalletAddress.tsx +7 -7
  111. package/src/components/Dropdown/Root/WelcomeBlock.tsx +3 -3
  112. package/src/components/Dropdown/TestnetTopBanner.tsx +32 -0
  113. package/src/config.ts +2 -2
  114. package/src/constants.ts +5 -4
  115. package/src/hooks/index.ts +5 -0
  116. package/src/hooks/{useAssetsUSDConversion.ts → useAssetsConversionRates.ts} +8 -7
  117. package/src/hooks/useAuthenticateWithWallet.ts +11 -7
  118. package/src/hooks/useBorrowData.ts +79 -0
  119. package/src/hooks/useDropdownData.ts +76 -121
  120. package/src/hooks/useRefreshPassport.ts +6 -0
  121. package/src/hooks/useTokensBalances.ts +187 -0
  122. package/src/hooks/useWalletAccount.ts +4 -2
  123. package/src/lib/contracts/index.ts +75 -0
  124. package/src/lib/contracts/musd.ts +1071 -0
  125. package/src/lib/contracts/troveManager.ts +1819 -0
  126. package/src/utils/cryptoAssets.test.ts +55 -37
  127. package/src/utils/cryptoAssets.ts +115 -35
  128. package/src/utils/numbers.ts +68 -0
  129. package/dist/src/components/Dropdown/Root/AccountAssets.d.ts +0 -13
  130. package/dist/src/components/Dropdown/Root/AccountAssets.d.ts.map +0 -1
  131. package/dist/src/components/Dropdown/Root/AccountAssets.js +0 -43
  132. package/dist/src/components/Dropdown/Root/AccountAssets.js.map +0 -1
  133. package/dist/src/hooks/useAssetsUSDConversion.d.ts +0 -8
  134. package/dist/src/hooks/useAssetsUSDConversion.d.ts.map +0 -1
  135. package/dist/src/hooks/useAssetsUSDConversion.js.map +0 -1
  136. package/src/components/Dropdown/Root/AccountAssets.tsx +0 -108
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBorrowData.d.ts","sourceRoot":"","sources":["../../../src/hooks/useBorrowData.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,YAAY,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAyB9C;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB;;EAatC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB;;EAajC"}
@@ -0,0 +1,65 @@
1
+ import { useAccount, useReadContract } from "wagmi";
2
+ import { useCallback } from "react";
3
+ import { useQueryClient } from "@tanstack/react-query";
4
+ import { ONE_MINUTE_MS } from "../utils/time";
5
+ import { troveManagerContract } from "../lib/contracts";
6
+ import { usePassportContext } from "./usePassportContext";
7
+ import { CHAIN_ID } from "../constants";
8
+ /**
9
+ * Query hook for getting borrow data. Returns collateral and trove debt for the
10
+ * connected account, based on it's evm address.
11
+ * @param queryOptions Query options passed to the underlying `useQuery` hook.
12
+ */
13
+ export function useBorrowData(queryOptions = {}) {
14
+ const { environment = "mainnet" } = usePassportContext();
15
+ const { address } = useAccount();
16
+ return useReadContract({
17
+ abi: troveManagerContract.abi,
18
+ address: troveManagerContract.address[environment],
19
+ functionName: "getEntireDebtAndColl",
20
+ args: [address || "0x"],
21
+ query: {
22
+ enabled: !!address,
23
+ staleTime: 5 * ONE_MINUTE_MS,
24
+ retry: 1,
25
+ select: (data) => {
26
+ if (!data)
27
+ return undefined;
28
+ const [collateral, principal, interest] = data;
29
+ return {
30
+ collateral,
31
+ troveDebt: principal + interest,
32
+ };
33
+ },
34
+ ...queryOptions,
35
+ },
36
+ chainId: CHAIN_ID[environment],
37
+ });
38
+ }
39
+ /**
40
+ * Hook for for invalidating current user's borrow data. Can be used to
41
+ * invalidate borrow data manually, which forces the data to be re-fetched.
42
+ * @returns Function `invalidateBorrowData` for invalidating the borrow data
43
+ */
44
+ export function useInvalidateBorrowData() {
45
+ const queryClient = useQueryClient();
46
+ const { queryKey } = useBorrowData();
47
+ const invalidateBorrowDataHandler = useCallback(() => queryClient.invalidateQueries({ queryKey }), [queryClient, queryKey]);
48
+ return {
49
+ invalidateBorrowData: invalidateBorrowDataHandler,
50
+ };
51
+ }
52
+ /**
53
+ * Hook for for resetting current user's borrow data. Can be used to reset
54
+ * borrow data manually, which forces the data to be re-fetched.
55
+ * @returns Function `resetBorrowData` for resetting the borrow data
56
+ */
57
+ export function useResetBorrowData() {
58
+ const queryClient = useQueryClient();
59
+ const { queryKey } = useBorrowData();
60
+ const resetBorrowDataHandler = useCallback(() => queryClient.resetQueries({ queryKey }), [queryClient, queryKey]);
61
+ return {
62
+ resetBorrowData: resetBorrowDataHandler,
63
+ };
64
+ }
65
+ //# sourceMappingURL=useBorrowData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBorrowData.js","sourceRoot":"","sources":["../../../src/hooks/useBorrowData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEvC;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,YAAY,GAAG,EAAE;IAC7C,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,GAAG,kBAAkB,EAAE,CAAA;IACxD,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAAA;IAChC,OAAO,eAAe,CAAC;QACrB,GAAG,EAAE,oBAAoB,CAAC,GAAG;QAC7B,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,WAAW,CAAC;QAClD,YAAY,EAAE,sBAAsB;QACpC,IAAI,EAAE,CAAC,OAAO,IAAI,IAAI,CAAC;QACvB,KAAK,EAAE;YACL,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,SAAS,EAAE,CAAC,GAAG,aAAa;YAC5B,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACf,IAAI,CAAC,IAAI;oBAAE,OAAO,SAAS,CAAA;gBAE3B,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAA;gBAC9C,OAAO;oBACL,UAAU;oBACV,SAAS,EAAE,SAAS,GAAG,QAAQ;iBAChC,CAAA;YACH,CAAC;YACD,GAAG,YAAY;SAChB;QACD,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC;KAC/B,CAAC,CAAA;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IAEpC,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAA;IAEpC,MAAM,2BAA2B,GAAG,WAAW,CAC7C,GAAG,EAAE,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,EACjD,CAAC,WAAW,EAAE,QAAQ,CAAC,CACxB,CAAA;IAED,OAAO;QACL,oBAAoB,EAAE,2BAA2B;KAClD,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IAEpC,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAA;IAEpC,MAAM,sBAAsB,GAAG,WAAW,CACxC,GAAG,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,EAC5C,CAAC,WAAW,EAAE,QAAQ,CAAC,CACxB,CAAA;IAED,OAAO;QACL,eAAe,EAAE,sBAAsB;KACxC,CAAA;AACH,CAAC"}
@@ -1,45 +1,39 @@
1
1
  import { CryptoAssetKey } from "../utils/cryptoAssets";
2
- /**
3
- * Formats crypto asset to balance details (balance in USD and decimals)
4
- * @param type The type of crypto asset
5
- * @param balance The balance of crypto asset
6
- * @param btcUsdConversionRate The USD conversion rate
7
- * @returns The balance details
8
- */
9
- declare function formatCryptoAsset(type: CryptoAssetKey, balance: bigint, btcUsdConversionRate: number): {
10
- type: CryptoAssetKey;
11
- balance: string;
12
- balanceInUsd: string;
13
- };
14
2
  export type DropdownCryptoAsset<T = CryptoAssetKey> = {
15
3
  type: T;
16
4
  balance: bigint;
17
5
  };
18
- type DropdownDetailedCryptoAsset = ReturnType<typeof formatCryptoAsset>;
19
- export type DropdownData = {
20
- mezoId: string;
21
- accountAddress: string;
22
- walletAddress: string;
23
- walletType: "bitcoin" | "evm";
24
- totalBalanceInUsd: string;
25
- formattedNativeAssets: DropdownDetailedCryptoAsset[];
26
- matsnet: {
27
- mats: string;
28
- formattedAssets: DropdownDetailedCryptoAsset[];
29
- };
30
- };
31
- type UseDropdownDataOptions = {
32
- evmNativeAssets?: DropdownCryptoAsset[];
33
- matsnetAssets?: DropdownCryptoAsset[];
34
- };
35
6
  /**
36
7
  * Aggregates dropdown data for Dropdown component.
37
- * @param options - Options for the dropdown data.
38
- * @param options.evmNativeAssets - Native assets for EVM wallet.
39
- * @param options.matsnetAssets - Matsnet tokens. Rendered as separate section.
40
8
  * @returns Dropdown data.
41
9
  * @dev This hook is for internal use only.
42
10
  */
43
- export default function useDropdownData(options?: UseDropdownDataOptions): DropdownData | null;
44
- export {};
11
+ export default function useDropdownData(): {
12
+ mezoId: string | undefined;
13
+ matsBalance: number;
14
+ accountAddress: `0x${string}` | undefined;
15
+ walletAddress: string | undefined;
16
+ walletType: "bitcoin" | "evm";
17
+ usdTotalBalance: number;
18
+ usdTroveDebt: number;
19
+ usdCollateral: number;
20
+ assets: {
21
+ btc: {
22
+ type: CryptoAssetKey;
23
+ rawBalance: bigint;
24
+ formattedBalance: string;
25
+ usdBalance: number;
26
+ formattedUsdBalance: string;
27
+ };
28
+ musd: {
29
+ type: CryptoAssetKey;
30
+ rawBalance: bigint;
31
+ formattedBalance: string;
32
+ usdBalance: number;
33
+ formattedUsdBalance: string;
34
+ };
35
+ };
36
+ otherAssetsCount: number;
37
+ otherAssetsUsdTotal: number;
38
+ };
45
39
  //# sourceMappingURL=useDropdownData.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDropdownData.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDropdownData.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EAIf,MAAM,uBAAuB,CAAA;AAU9B;;;;;;GAMG;AACH,iBAAS,iBAAiB,CACxB,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,MAAM,EACf,oBAAoB,EAAE,MAAM;;;;EAyB7B;AAED,MAAM,MAAM,mBAAmB,CAAC,CAAC,GAAG,cAAc,IAAI;IACpD,IAAI,EAAE,CAAC,CAAA;IACP,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,KAAK,2BAA2B,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAEvE,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,SAAS,GAAG,KAAK,CAAA;IAC7B,iBAAiB,EAAE,MAAM,CAAA;IACzB,qBAAqB,EAAE,2BAA2B,EAAE,CAAA;IACpD,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAA;QACZ,eAAe,EAAE,2BAA2B,EAAE,CAAA;KAC/C,CAAA;CACF,CAAA;AAED,KAAK,sBAAsB,GAAG;IAE5B,eAAe,CAAC,EAAE,mBAAmB,EAAE,CAAA;IACvC,aAAa,CAAC,EAAE,mBAAmB,EAAE,CAAA;CACtC,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,OAAO,CAAC,EAAE,sBAAsB,GAC/B,YAAY,GAAG,IAAI,CAqErB"}
1
+ {"version":3,"file":"useDropdownData.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDropdownData.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EAGf,MAAM,uBAAuB,CAAA;AAO9B,MAAM,MAAM,mBAAmB,CAAC,CAAC,GAAG,cAAc,IAAI;IACpD,IAAI,EAAE,CAAC,CAAA;IACP,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AASD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoFtC"}
@@ -1,80 +1,76 @@
1
- import { useBitcoinAccount } from "@mezo-org/orangekit";
1
+ import { useBalance } from "wagmi";
2
2
  import { useGetCurrentAccount } from ".";
3
- import { getCryptoAsset, isBitcoinLikeCryptoAsset, isUsdLikeCryptoAsset, } from "../utils/cryptoAssets";
4
- import { formatNumberToCompactString, fromFixedPoint, fromFixedPointToString, } from "../utils/numbers";
5
- import { useAssetsUsdConversion } from "./useAssetsUSDConversion";
3
+ import { isBitcoinLikeCryptoAsset, mapCryptoAssetToDetails, } from "../utils/cryptoAssets";
4
+ import { fromFixedPoint } from "../utils/numbers";
5
+ import useAssetsConversionRates from "./useAssetsConversionRates";
6
6
  import useWalletAccount from "./useWalletAccount";
7
- import { formatUsd } from "../utils/currency";
8
- /**
9
- * Formats crypto asset to balance details (balance in USD and decimals)
10
- * @param type The type of crypto asset
11
- * @param balance The balance of crypto asset
12
- * @param btcUsdConversionRate The USD conversion rate
13
- * @returns The balance details
14
- */
15
- function formatCryptoAsset(type, balance, btcUsdConversionRate) {
16
- const { decimals } = getCryptoAsset(type);
17
- const nativeBalance = fromFixedPoint(balance, decimals);
18
- let balanceInUsd = 0;
19
- if (isBitcoinLikeCryptoAsset(type)) {
20
- balanceInUsd = fromFixedPoint(balance * BigInt(btcUsdConversionRate), decimals);
21
- }
22
- if (isUsdLikeCryptoAsset(type)) {
23
- balanceInUsd = nativeBalance;
24
- }
25
- return {
26
- type,
27
- balance: fromFixedPointToString(balance, decimals, isUsdLikeCryptoAsset(type) ? 2 : 4),
28
- balanceInUsd: formatUsd(balanceInUsd),
29
- };
30
- }
7
+ import { useTokensBalances } from "./useTokensBalances";
8
+ import { useBorrowData } from "./useBorrowData";
9
+ const DEFAULT_ASSET_DATA = {
10
+ rawBalance: 0n,
11
+ formattedBalance: "0.0000",
12
+ usdBalance: 0,
13
+ formattedUsdBalance: "$0.00",
14
+ };
31
15
  /**
32
16
  * 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
17
  * @returns Dropdown data.
37
18
  * @dev This hook is for internal use only.
38
19
  */
39
- export default function useDropdownData(options) {
40
- const { evmNativeAssets = [], matsnetAssets = [] } = options || {};
41
- const { btcBalance } = useBitcoinAccount();
42
- const { address: walletAddress, networkFamily, isConnected, } = useWalletAccount();
20
+ export default function useDropdownData() {
21
+ const { walletAddress, accountAddress, networkFamily: walletType, } = useWalletAccount();
22
+ const { data: btcBalance } = useBalance({
23
+ address: accountAddress,
24
+ });
43
25
  const { data: passportAccount } = useGetCurrentAccount();
44
- const { data: assetsUsdConversion } = useAssetsUsdConversion();
45
- const accountAddress = passportAccount?.linkedAccounts?.find((account) => account.type === "wallet")?.evmAddress;
46
- if (!walletAddress || !isConnected || !passportAccount || !accountAddress) {
47
- return null;
48
- }
49
- const mezoId = passportAccount.mezoId;
50
- const nativeAssets = networkFamily === "bitcoin"
51
- ? [
52
- {
53
- type: "btc",
54
- balance: BigInt(btcBalance?.total ?? 0),
55
- },
56
- ]
57
- : evmNativeAssets;
58
- const btcUsdConversionRate = Number(assetsUsdConversion?.btcUsd ?? 0);
59
- const formattedNativeAssets = nativeAssets.map((asset) => formatCryptoAsset(asset.type, asset.balance, btcUsdConversionRate));
60
- const totalBalanceInUsd = formatUsd(nativeAssets.reduce((sum, value) => {
61
- const { decimals } = getCryptoAsset(value.type);
62
- return (sum +
63
- fromFixedPoint(value.balance * BigInt(btcUsdConversionRate), decimals));
64
- }, 0));
65
- const matsBalance = formatNumberToCompactString(passportAccount.mats.totalMats, 2);
66
- const matsnetFormattedAssets = matsnetAssets.map((asset) => formatCryptoAsset(asset.type, asset.balance, btcUsdConversionRate));
26
+ const { data: assetsConversionRates } = useAssetsConversionRates();
27
+ const { data: tokensBalances } = useTokensBalances();
28
+ const { data: debt } = useBorrowData();
29
+ const mezoId = passportAccount?.mezoId;
30
+ const detailedAssets = [
31
+ ["BTC", btcBalance?.value ?? 0n],
32
+ ...Object.entries(tokensBalances ?? {}),
33
+ ].map((asset) => {
34
+ const [type, balance] = asset;
35
+ let usdConversionRate;
36
+ if (isBitcoinLikeCryptoAsset(type))
37
+ usdConversionRate = assetsConversionRates?.usd.btc;
38
+ if (type === "mT") {
39
+ usdConversionRate = assetsConversionRates?.usd.t;
40
+ }
41
+ return mapCryptoAssetToDetails(type, balance, usdConversionRate || 1);
42
+ });
43
+ const btcData = detailedAssets.find(({ type }) => type === "BTC");
44
+ const musdData = detailedAssets.find(({ type }) => type === "MUSD");
45
+ const otherAssetsData = detailedAssets.filter(({ type }) => !["BTC", "MUSD"].includes(type));
46
+ const otherAssetsCount = otherAssetsData.filter((asset) => asset.rawBalance !== 0n).length;
47
+ const assets = {
48
+ btc: btcData || {
49
+ type: "BTC",
50
+ ...DEFAULT_ASSET_DATA,
51
+ },
52
+ musd: musdData || {
53
+ type: "mUSD",
54
+ ...DEFAULT_ASSET_DATA,
55
+ },
56
+ };
57
+ const otherAssetsUsdTotal = otherAssetsData.reduce((sum, { usdBalance }) => sum + usdBalance, 0);
58
+ const usdTotalBalance = detailedAssets.reduce((sum, { usdBalance }) => sum + usdBalance, 0);
59
+ const matsBalance = passportAccount?.mats.totalMats || 0;
60
+ const usdCollateral = fromFixedPoint((debt?.collateral ?? 0n) * BigInt(assetsConversionRates?.usd.btc ?? 0), 18);
61
+ const usdTroveDebt = fromFixedPoint(debt?.troveDebt ?? 0n, 18);
67
62
  return {
68
63
  mezoId,
64
+ matsBalance,
69
65
  accountAddress,
70
66
  walletAddress,
71
- walletType: networkFamily,
72
- totalBalanceInUsd,
73
- formattedNativeAssets,
74
- matsnet: {
75
- mats: matsBalance,
76
- formattedAssets: matsnetFormattedAssets,
77
- },
67
+ walletType,
68
+ usdTotalBalance,
69
+ usdTroveDebt,
70
+ usdCollateral,
71
+ assets,
72
+ otherAssetsCount,
73
+ otherAssetsUsdTotal,
78
74
  };
79
75
  }
80
76
  //# sourceMappingURL=useDropdownData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDropdownData.js","sourceRoot":"","sources":["../../../src/hooks/useDropdownData.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDropdownData.js","sourceRoot":"","sources":["../../../src/hooks/useDropdownData.ts"],"names":[],"mappings":"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"}
@@ -13,5 +13,7 @@
13
13
  export declare function useRefreshPassport(): {
14
14
  refreshCurrentAccount: () => Promise<void>;
15
15
  refreshUsdConversion: () => Promise<void>;
16
+ refreshBorrowData: () => Promise<void>;
17
+ refreshTokensBalances: () => Promise<void>;
16
18
  };
17
19
  //# sourceMappingURL=useRefreshPassport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRefreshPassport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useRefreshPassport.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB;;;EAuBjC"}
1
+ {"version":3,"file":"useRefreshPassport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useRefreshPassport.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB;;;;;EA2BjC"}
@@ -1,6 +1,8 @@
1
1
  import { useQueryClient } from "@tanstack/react-query";
2
2
  import { useCallback } from "react";
3
3
  import { QUERY_KEYS } from "./constants";
4
+ import { useInvalidateTokensBalances } from "./useTokensBalances";
5
+ import { useInvalidateBorrowData } from "./useBorrowData";
4
6
  /**
5
7
  * Hook to refresh the passport using query invalidation mechanism.
6
8
  * By calling the refresh function, the latest data will be refetched as soon as possible.
@@ -15,6 +17,8 @@ import { QUERY_KEYS } from "./constants";
15
17
  */
16
18
  export function useRefreshPassport() {
17
19
  const queryClient = useQueryClient();
20
+ const { invalidateBorrowData } = useInvalidateBorrowData();
21
+ const { invalidateTokenBalances } = useInvalidateTokensBalances();
18
22
  const refreshCurrentAccount = useCallback(() => queryClient.invalidateQueries({
19
23
  queryKey: [QUERY_KEYS.ACCOUNT, QUERY_KEYS.CURRENT],
20
24
  }), [queryClient]);
@@ -24,6 +28,8 @@ export function useRefreshPassport() {
24
28
  return {
25
29
  refreshCurrentAccount,
26
30
  refreshUsdConversion,
31
+ refreshBorrowData: invalidateBorrowData,
32
+ refreshTokensBalances: invalidateTokenBalances,
27
33
  };
28
34
  }
29
35
  //# sourceMappingURL=useRefreshPassport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRefreshPassport.js","sourceRoot":"","sources":["../../../src/hooks/useRefreshPassport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IAEpC,MAAM,qBAAqB,GAAG,WAAW,CACvC,GAAG,EAAE,CACH,WAAW,CAAC,iBAAiB,CAAC;QAC5B,QAAQ,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC;KACnD,CAAC,EACJ,CAAC,WAAW,CAAC,CACd,CAAA;IAED,MAAM,oBAAoB,GAAG,WAAW,CACtC,GAAG,EAAE,CACH,WAAW,CAAC,iBAAiB,CAAC;QAC5B,QAAQ,EAAE,CAAC,UAAU,CAAC,qBAAqB,CAAC;KAC7C,CAAC,EACJ,CAAC,WAAW,CAAC,CACd,CAAA;IAED,OAAO;QACL,qBAAqB;QACrB,oBAAoB;KACrB,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"useRefreshPassport.js","sourceRoot":"","sources":["../../../src/hooks/useRefreshPassport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAEzD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,MAAM,EAAE,oBAAoB,EAAE,GAAG,uBAAuB,EAAE,CAAA;IAC1D,MAAM,EAAE,uBAAuB,EAAE,GAAG,2BAA2B,EAAE,CAAA;IAEjE,MAAM,qBAAqB,GAAG,WAAW,CACvC,GAAG,EAAE,CACH,WAAW,CAAC,iBAAiB,CAAC;QAC5B,QAAQ,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC;KACnD,CAAC,EACJ,CAAC,WAAW,CAAC,CACd,CAAA;IAED,MAAM,oBAAoB,GAAG,WAAW,CACtC,GAAG,EAAE,CACH,WAAW,CAAC,iBAAiB,CAAC;QAC5B,QAAQ,EAAE,CAAC,UAAU,CAAC,qBAAqB,CAAC;KAC7C,CAAC,EACJ,CAAC,WAAW,CAAC,CACd,CAAA;IAED,OAAO;QACL,qBAAqB;QACrB,oBAAoB;QACpB,iBAAiB,EAAE,oBAAoB;QACvC,qBAAqB,EAAE,uBAAuB;KAC/C,CAAA;AACH,CAAC"}
@@ -0,0 +1,74 @@
1
+ import { MezoChainToken } from "../lib/contracts";
2
+ type UseMezoChainTokensBalancesOptions<T> = {
3
+ tokens?: T;
4
+ queryOptions?: object;
5
+ };
6
+ /**
7
+ * Hook to get the balance of a list of tokens for the current account
8
+ * @param options.tokens The list of tokens to get the balance for. It will
9
+ * fallback to all tokens if not provided.
10
+ * @param options.queryOptions The query options to pass to the
11
+ * `useReadContracts`
12
+ * @returns Tanstack's `useQuery` returnings with balance of tokens for the
13
+ * current account in form of typesafe object with token names as keys
14
+ * and balances as values.
15
+ * @dev In case of error data fallbacks to `0n`. To determine if an error
16
+ * occurred, check the `isError` property.
17
+ * @example
18
+ * const mezoTokensBalance = useTokensBalances({
19
+ * tokens: ["mT", "mxSolvBTC"],
20
+ * })
21
+ * console.log(mezoTokensBalance?.data.mT) // Eg. 0n
22
+ * console.log(Object.keys(mezoTokensBalance?.data)) // ["mT", "mxSolvBTC"]
23
+ */
24
+ export declare function useTokensBalances<T extends MezoChainToken[]>(options?: UseMezoChainTokensBalancesOptions<T>): import("wagmi").UseReadContractsReturnType<{
25
+ address: `0x${string}`;
26
+ abi: readonly [{
27
+ readonly inputs: readonly [{
28
+ readonly internalType: "address";
29
+ readonly name: "account";
30
+ readonly type: "address";
31
+ }];
32
+ readonly name: "balanceOf";
33
+ readonly outputs: readonly [{
34
+ readonly internalType: "uint256";
35
+ readonly name: "";
36
+ readonly type: "uint256";
37
+ }];
38
+ readonly stateMutability: "view";
39
+ readonly type: "function";
40
+ }];
41
+ functionName: string;
42
+ args: `0x${string}`[];
43
+ chainId: 31611 | undefined;
44
+ }[], true, Record<T[number], bigint>>;
45
+ /**
46
+ * Hook for invalidating current user's token balances. Can be used to
47
+ * invalidate the balances manually, which forces the data to be re-fetched.
48
+ * @param tokens The list of tokens (as string arrays) for which we want to
49
+ * invalidate query for.
50
+ * @returns Function `invalidateTokenBalances` that invalidates token balances
51
+ * @example
52
+ * const { invalidateTokenBalances } = useInvalidateTokensBalances(["mT", "mUSD"])
53
+ * (...)
54
+ * await invalidateTokenBalances()
55
+ */
56
+ export declare function useInvalidateTokensBalances(tokens?: MezoChainToken[]): {
57
+ invalidateTokenBalances: () => Promise<void>;
58
+ };
59
+ /**
60
+ * Hook for resetting current user's token balances. Can be used to reset the
61
+ * balances manually, which forces the data to be re-fetched.
62
+ * @param tokens The list of tokens (as string arrays) for which we want to
63
+ * reset query for.
64
+ * @returns Function `resetTokenBalances` that invalidates token balances
65
+ * @example
66
+ * const { resetTokenBalances } = useResetTokensBalances(["mT", "mUSD"])
67
+ * (...)
68
+ * await resetTokenBalances()
69
+ */
70
+ export declare function useResetTokensBalances(tokens?: MezoChainToken[]): {
71
+ resetTokenBalances: () => Promise<void>;
72
+ };
73
+ export {};
74
+ //# sourceMappingURL=useTokensBalances.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTokensBalances.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTokensBalances.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,cAAc,EACf,MAAM,kBAAkB,CAAA;AA8CzB,KAAK,iCAAiC,CAAC,CAAC,IAAI;IAC1C,MAAM,CAAC,EAAE,CAAC,CAAA;IACV,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,cAAc,EAAE,EAC1D,OAAO,GAAE,iCAAiC,CAAC,CAAC,CAAM;;;;;;;;;;;;;;;;;;;;sCAuDnD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE;;EAapE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE;;EAa/D"}
@@ -0,0 +1,140 @@
1
+ import { useReadContracts } from "wagmi";
2
+ import { useCallback, useMemo } from "react";
3
+ import { useQueryClient } from "@tanstack/react-query";
4
+ import { usePassportContext } from "./usePassportContext";
5
+ import { mainnetContracts, testnetContracts, } from "../lib/contracts";
6
+ import useWalletAccount from "./useWalletAccount";
7
+ import { CHAIN_ID } from "../constants";
8
+ // Wagmi handles typesafety with ABI const assertions. TypeScript doesn't
9
+ // support importing JSON as const yet so types cannot be inferred from the
10
+ // imported contract. As a workaround there is minimal ABI definition that can
11
+ // be asserted types from.
12
+ // Ref: https://wagmi.sh/core/typescript#const-assert-abis-typed-data
13
+ const BALANCE_OF_ABI = [
14
+ {
15
+ inputs: [
16
+ {
17
+ internalType: "address",
18
+ name: "account",
19
+ type: "address",
20
+ },
21
+ ],
22
+ name: "balanceOf",
23
+ outputs: [
24
+ {
25
+ internalType: "uint256",
26
+ name: "",
27
+ type: "uint256",
28
+ },
29
+ ],
30
+ stateMutability: "view",
31
+ type: "function",
32
+ },
33
+ ];
34
+ const BALANCE_TOKENS = [
35
+ "mcbBTC",
36
+ "mDAI",
37
+ "mFBTC",
38
+ "mSolvBTC",
39
+ "mswBTC",
40
+ "mT",
41
+ "mUSDC",
42
+ "mUSDe",
43
+ "mUSDT",
44
+ "mxSolvBTC",
45
+ "MUSD",
46
+ ];
47
+ /**
48
+ * Hook to get the balance of a list of tokens for the current account
49
+ * @param options.tokens The list of tokens to get the balance for. It will
50
+ * fallback to all tokens if not provided.
51
+ * @param options.queryOptions The query options to pass to the
52
+ * `useReadContracts`
53
+ * @returns Tanstack's `useQuery` returnings with balance of tokens for the
54
+ * current account in form of typesafe object with token names as keys
55
+ * and balances as values.
56
+ * @dev In case of error data fallbacks to `0n`. To determine if an error
57
+ * occurred, check the `isError` property.
58
+ * @example
59
+ * const mezoTokensBalance = useTokensBalances({
60
+ * tokens: ["mT", "mxSolvBTC"],
61
+ * })
62
+ * console.log(mezoTokensBalance?.data.mT) // Eg. 0n
63
+ * console.log(Object.keys(mezoTokensBalance?.data)) // ["mT", "mxSolvBTC"]
64
+ */
65
+ export function useTokensBalances(options = {}) {
66
+ const { environment = "mainnet" } = usePassportContext();
67
+ const { accountAddress } = useWalletAccount();
68
+ const contractsMap = useMemo(() => {
69
+ const contracts = environment === "mainnet" ? mainnetContracts : testnetContracts;
70
+ const tokenContracts = Object.fromEntries(Object.entries(contracts).filter(([key]) => BALANCE_TOKENS.includes(key)));
71
+ return tokenContracts;
72
+ }, [environment]);
73
+ const { tokens = Object.keys(contractsMap), queryOptions = {} } = options;
74
+ const contracts = useMemo(() => {
75
+ if (!accountAddress)
76
+ return [];
77
+ return tokens.map((token) => {
78
+ const { address } = contractsMap[token];
79
+ return {
80
+ address,
81
+ abi: BALANCE_OF_ABI,
82
+ functionName: "balanceOf",
83
+ args: [accountAddress],
84
+ chainId: CHAIN_ID[environment],
85
+ };
86
+ });
87
+ }, [accountAddress, tokens, contractsMap, environment]);
88
+ return useReadContracts({
89
+ contracts,
90
+ query: {
91
+ select: (data) => data.reduce((acc, item) => {
92
+ const token = tokens[data.indexOf(item)];
93
+ return {
94
+ ...acc,
95
+ [token]: item.result ?? 0n,
96
+ };
97
+ }, {}),
98
+ ...queryOptions,
99
+ },
100
+ });
101
+ }
102
+ /**
103
+ * Hook for invalidating current user's token balances. Can be used to
104
+ * invalidate the balances manually, which forces the data to be re-fetched.
105
+ * @param tokens The list of tokens (as string arrays) for which we want to
106
+ * invalidate query for.
107
+ * @returns Function `invalidateTokenBalances` that invalidates token balances
108
+ * @example
109
+ * const { invalidateTokenBalances } = useInvalidateTokensBalances(["mT", "mUSD"])
110
+ * (...)
111
+ * await invalidateTokenBalances()
112
+ */
113
+ export function useInvalidateTokensBalances(tokens) {
114
+ const queryClient = useQueryClient();
115
+ const { queryKey } = useTokensBalances({ tokens });
116
+ const invalidateTokenBalancesHandler = useCallback(() => queryClient.invalidateQueries({ queryKey }), [queryClient, queryKey]);
117
+ return {
118
+ invalidateTokenBalances: invalidateTokenBalancesHandler,
119
+ };
120
+ }
121
+ /**
122
+ * Hook for resetting current user's token balances. Can be used to reset the
123
+ * balances manually, which forces the data to be re-fetched.
124
+ * @param tokens The list of tokens (as string arrays) for which we want to
125
+ * reset query for.
126
+ * @returns Function `resetTokenBalances` that invalidates token balances
127
+ * @example
128
+ * const { resetTokenBalances } = useResetTokensBalances(["mT", "mUSD"])
129
+ * (...)
130
+ * await resetTokenBalances()
131
+ */
132
+ export function useResetTokensBalances(tokens) {
133
+ const queryClient = useQueryClient();
134
+ const { queryKey } = useTokensBalances({ tokens });
135
+ const resetTokenBalancesHandler = useCallback(() => queryClient.resetQueries({ queryKey }), [queryClient, queryKey]);
136
+ return {
137
+ resetTokenBalances: resetTokenBalancesHandler,
138
+ };
139
+ }
140
+ //# sourceMappingURL=useTokensBalances.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTokensBalances.js","sourceRoot":"","sources":["../../../src/hooks/useTokensBalances.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { Address } from "viem";
2
2
  import { Connector } from "wagmi";
3
3
  type UseWalletAccountReturn = {
4
- address?: string | Address;
4
+ accountAddress?: Address;
5
+ walletAddress?: string;
5
6
  isConnected: boolean;
6
7
  networkFamily: "bitcoin" | "evm";
7
8
  connector?: Connector;
@@ -1 +1 @@
1
- {"version":3,"file":"useWalletAccount.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWalletAccount.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,SAAS,EAAc,MAAM,OAAO,CAAA;AAE7C,KAAK,sBAAsB,GAAG;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC1B,WAAW,EAAE,OAAO,CAAA;IACpB,aAAa,EAAE,SAAS,GAAG,KAAK,CAAA;IAChC,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAMD,MAAM,CAAC,OAAO,UAAU,gBAAgB,IAAI,sBAAsB,CAkCjE"}
1
+ {"version":3,"file":"useWalletAccount.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWalletAccount.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,SAAS,EAAc,MAAM,OAAO,CAAA;AAE7C,KAAK,sBAAsB,GAAG;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,OAAO,CAAA;IACpB,aAAa,EAAE,SAAS,GAAG,KAAK,CAAA;IAChC,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAMD,MAAM,CAAC,OAAO,UAAU,gBAAgB,IAAI,sBAAsB,CAmCjE"}
@@ -18,7 +18,8 @@ export default function useWalletAccount() {
18
18
  });
19
19
  const { address: btcAddress } = btcData || {};
20
20
  return {
21
- address: networkFamily === "bitcoin" ? btcAddress : evmAddress,
21
+ accountAddress: evmAddress,
22
+ walletAddress: btcAddress ?? evmAddress,
22
23
  isConnected: networkFamily === "bitcoin" ? !!btcAddress : !!evmAddress,
23
24
  networkFamily,
24
25
  connector,
@@ -1 +1 @@
1
- {"version":3,"file":"useWalletAccount.js","sourceRoot":"","sources":["../../../src/hooks/useWalletAccount.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE/B,OAAO,EAAa,UAAU,EAAE,MAAM,OAAO,CAAA;AAc7C,MAAM,CAAC,OAAO,UAAU,gBAAgB;IACtC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAAA;IAEhE,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,EAC3D,CAAC,SAAS,CAAC,CACZ,CAAA;IAED,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;QACjC,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC;QACzB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,eAAe,GACnB,SACD,CAAC,kBAAkB,EAAE,CAAA;YAEtB,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,CAAA;YAClD,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,CAAA;YAElD,OAAO;gBACL,OAAO;gBACP,OAAO;aACR,CAAA;QACH,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;IAE7C,OAAO;QACL,OAAO,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;QAC9D,WAAW,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;QACtE,aAAa;QACb,SAAS;QACT,OAAO;KACC,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"useWalletAccount.js","sourceRoot":"","sources":["../../../src/hooks/useWalletAccount.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE/B,OAAO,EAAa,UAAU,EAAE,MAAM,OAAO,CAAA;AAe7C,MAAM,CAAC,OAAO,UAAU,gBAAgB;IACtC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAAA;IAEhE,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,EAC3D,CAAC,SAAS,CAAC,CACZ,CAAA;IAED,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;QACjC,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC;QACzB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,eAAe,GACnB,SACD,CAAC,kBAAkB,EAAE,CAAA;YAEtB,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,CAAA;YAClD,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,CAAA;YAElD,OAAO;gBACL,OAAO;gBACP,OAAO;aACR,CAAA;QACH,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;IAE7C,OAAO;QACL,cAAc,EAAE,UAAU;QAC1B,aAAa,EAAE,UAAU,IAAI,UAAU;QACvC,WAAW,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;QACtE,aAAa;QACb,SAAS;QACT,OAAO;KACC,CAAA;AACZ,CAAC"}