@mezo-org/passport 0.7.2-dev.2 → 0.7.2-dev.4

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.
@@ -1,5 +1,5 @@
1
1
  import { ApiClient } from "./client";
2
- export type PortalStatistics = {
2
+ type PortalStatistics = {
3
3
  btcPrice: number;
4
4
  ethPrice: number;
5
5
  tTokenPrice: number;
@@ -1 +1 @@
1
- {"version":3,"file":"portal.d.ts","sourceRoot":"","sources":["../../../src/api/portal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,KAAK,UAAU,GAAG;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,2BAA2B;;;CAGvC,CAAA;AAED,qBAAa,eAAgB,SAAQ,SAAS;gBAE1C,WAAW,GAAE,MAAM,OAAO,2BAAuC,EACjE,MAAM,CAAC,EAAE,MAAM;IAQX,mBAAmB;IAQnB,aAAa,CAAC,OAAO,EAAE,MAAM;CAUpC"}
1
+ {"version":3,"file":"portal.d.ts","sourceRoot":"","sources":["../../../src/api/portal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,KAAK,gBAAgB,GAAG;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,KAAK,UAAU,GAAG;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,2BAA2B;;;CAGvC,CAAA;AAED,qBAAa,eAAgB,SAAQ,SAAS;gBAE1C,WAAW,GAAE,MAAM,OAAO,2BAAuC,EACjE,MAAM,CAAC,EAAE,MAAM;IAQX,mBAAmB;IAQnB,aAAa,CAAC,OAAO,EAAE,MAAM;CAUpC"}
@@ -1,10 +1,3 @@
1
- export type AssetConversion = {
2
- rates: {
3
- mT: bigint;
4
- BTC: bigint;
5
- };
6
- decimals: number;
7
- };
8
1
  export declare const CONVERSION_RATE_DECIMALS = 18;
9
2
  export declare const QUERY_KEY = "passport.assetsConversionRates";
10
3
  /**
@@ -15,5 +8,11 @@ export declare const QUERY_KEY = "passport.assetsConversionRates";
15
8
  * @returns {}.isPending - Whether the request is pending.
16
9
  * @returns {}.isError - Whether there was an error fetching the price.
17
10
  */
18
- export declare function useAssetsConversionRates(): import("@tanstack/react-query").UseQueryResult<AssetConversion, Error>;
11
+ export declare function useAssetsConversionRates(): import("@tanstack/react-query").UseQueryResult<{
12
+ rates: {
13
+ mT: bigint;
14
+ BTC: bigint;
15
+ };
16
+ decimals: number;
17
+ }, Error>;
19
18
  //# sourceMappingURL=useAssetsConversionRates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAssetsConversionRates.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAssetsConversionRates.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IAClC,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,wBAAwB,KAAK,CAAA;AAK1C,eAAO,MAAM,SAAS,mCAAmC,CAAA;AAEzD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,2EA+CvC"}
1
+ {"version":3,"file":"useAssetsConversionRates.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAssetsConversionRates.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,wBAAwB,KAAK,CAAA;AAK1C,eAAO,MAAM,SAAS,mCAAmC,CAAA;AAEzD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB;;;;;;UAuCvC"}
@@ -1,4 +1,3 @@
1
- import { useCallback } from "react";
2
1
  import { useQuery } from "@tanstack/react-query";
3
2
  import { parseUnits } from "viem";
4
3
  import { ONE_SECOND_MS } from "../utils/time";
@@ -20,17 +19,6 @@ export function useAssetsConversionRates() {
20
19
  const portalApiClient = usePortalApiClient();
21
20
  const { data: collateralPriceData } = useCollateralPrice();
22
21
  const collateralPrice = collateralPriceData?.toString();
23
- const select = useCallback(([portalStatistics, btcPrice]) => {
24
- const tTokenConversionRate = portalStatistics.tTokenPrice;
25
- const tPrice = parseUnits(tTokenConversionRate.toString(), CONVERSION_RATE_DECIMALS);
26
- return {
27
- rates: {
28
- mT: tPrice,
29
- BTC: btcPrice,
30
- },
31
- decimals: CONVERSION_RATE_DECIMALS,
32
- };
33
- }, []);
34
22
  return useQuery({
35
23
  queryKey: [QUERY_KEY, collateralPrice],
36
24
  queryFn: () => {
@@ -45,7 +33,17 @@ export function useAssetsConversionRates() {
45
33
  ]);
46
34
  },
47
35
  enabled: !!collateralPrice,
48
- select,
36
+ select: ([portalStatistics, btcPrice]) => {
37
+ const tTokenConversionRate = portalStatistics.tTokenPrice;
38
+ const tPrice = parseUnits(tTokenConversionRate.toString(), CONVERSION_RATE_DECIMALS);
39
+ return {
40
+ rates: {
41
+ mT: tPrice,
42
+ BTC: btcPrice,
43
+ },
44
+ decimals: CONVERSION_RATE_DECIMALS,
45
+ };
46
+ },
49
47
  refetchInterval: MAX_PRICE_DELAY,
50
48
  });
51
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useAssetsConversionRates.js","sourceRoot":"","sources":["../../../src/hooks/useAssetsConversionRates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAQzD,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAA;AAE1C,0EAA0E;AAC1E,MAAM,eAAe,GAAG,EAAE,GAAG,aAAa,CAAA;AAE1C,MAAM,CAAC,MAAM,SAAS,GAAG,gCAAgC,CAAA;AAEzD;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB;IACtC,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAA;IAC5C,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAE1D,MAAM,eAAe,GAAG,mBAAmB,EAAE,QAAQ,EAAE,CAAA;IAEvD,MAAM,MAAM,GAAG,WAAW,CACxB,CAAC,CAAC,gBAAgB,EAAE,QAAQ,CAG3B,EAAmB,EAAE;QACpB,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,WAAW,CAAA;QAEzD,MAAM,MAAM,GAAG,UAAU,CACvB,oBAAoB,CAAC,QAAQ,EAAE,EAC/B,wBAAwB,CACzB,CAAA;QAED,OAAO;YACL,KAAK,EAAE;gBACL,EAAE,EAAE,MAAM;gBACV,GAAG,EAAE,QAAQ;aACd;YACD,QAAQ,EAAE,wBAAwB;SACnC,CAAA;IACH,CAAC,EACD,EAAE,CACH,CAAA;IAED,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;QACtC,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;YACvD,CAAC;YAED,OAAO,OAAO,CAAC,GAAG,CAAC;gBACjB,eAAe,CAAC,mBAAmB,EAAE;gBACrC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBACtB,OAAO,CAAC,mBAAmB,CAAC,CAAA;gBAC9B,CAAC,CAAwC;aAC1C,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,EAAE,CAAC,CAAC,eAAe;QAC1B,MAAM;QACN,eAAe,EAAE,eAAe;KACjC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"useAssetsConversionRates.js","sourceRoot":"","sources":["../../../src/hooks/useAssetsConversionRates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAA;AAE1C,0EAA0E;AAC1E,MAAM,eAAe,GAAG,EAAE,GAAG,aAAa,CAAA;AAE1C,MAAM,CAAC,MAAM,SAAS,GAAG,gCAAgC,CAAA;AAEzD;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB;IACtC,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAA;IAC5C,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAE1D,MAAM,eAAe,GAAG,mBAAmB,EAAE,QAAQ,EAAE,CAAA;IAEvD,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;QACtC,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;YACvD,CAAC;YAED,OAAO,OAAO,CAAC,GAAG,CAAC;gBACjB,eAAe,CAAC,mBAAmB,EAAE;gBACrC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBACtB,OAAO,CAAC,mBAAmB,CAAC,CAAA;gBAC9B,CAAC,CAAwC;aAC1C,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,EAAE,CAAC,CAAC,eAAe;QAC1B,MAAM,EAAE,CAAC,CAAC,gBAAgB,EAAE,QAAQ,CAAC,EAAE,EAAE;YACvC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,WAAW,CAAA;YAEzD,MAAM,MAAM,GAAG,UAAU,CACvB,oBAAoB,CAAC,QAAQ,EAAE,EAC/B,wBAAwB,CACzB,CAAA;YAED,OAAO;gBACL,KAAK,EAAE;oBACL,EAAE,EAAE,MAAM;oBACV,GAAG,EAAE,QAAQ;iBACd;gBACD,QAAQ,EAAE,wBAAwB;aACnC,CAAA;QACH,CAAC;QACD,eAAe,EAAE,eAAe;KACjC,CAAC,CAAA;AACJ,CAAC"}
@@ -3,7 +3,62 @@
3
3
  * connected account, based on it's evm address.
4
4
  * @param queryOptions Query options passed to the underlying `useQuery` hook.
5
5
  */
6
- export declare function useBorrowData(queryOptions?: {}): import("@tanstack/react-query").UseQueryResult<{
6
+ export declare function useBorrowData(queryOptions?: {}): import("wagmi").UseReadContractsReturnType<readonly [{
7
+ readonly abi: readonly [{
8
+ readonly inputs: readonly [{
9
+ readonly internalType: "address";
10
+ readonly name: "_borrower";
11
+ readonly type: "address";
12
+ }];
13
+ readonly name: "getEntireDebtAndColl";
14
+ readonly outputs: readonly [{
15
+ readonly internalType: "uint256";
16
+ readonly name: "coll";
17
+ readonly type: "uint256";
18
+ }, {
19
+ readonly internalType: "uint256";
20
+ readonly name: "principal";
21
+ readonly type: "uint256";
22
+ }, {
23
+ readonly internalType: "uint256";
24
+ readonly name: "interest";
25
+ readonly type: "uint256";
26
+ }, {
27
+ readonly internalType: "uint256";
28
+ readonly name: "pendingCollateral";
29
+ readonly type: "uint256";
30
+ }, {
31
+ readonly internalType: "uint256";
32
+ readonly name: "pendingPrincipal";
33
+ readonly type: "uint256";
34
+ }, {
35
+ readonly internalType: "uint256";
36
+ readonly name: "pendingInterest";
37
+ readonly type: "uint256";
38
+ }];
39
+ readonly stateMutability: "view";
40
+ readonly type: "function";
41
+ }];
42
+ readonly address: `0x${string}`;
43
+ readonly functionName: "getEntireDebtAndColl";
44
+ readonly args: [`0x${string}`];
45
+ readonly chainId: number;
46
+ }, {
47
+ readonly abi: readonly [{
48
+ readonly inputs: readonly [];
49
+ readonly name: "MUSD_GAS_COMPENSATION";
50
+ readonly outputs: readonly [{
51
+ readonly internalType: "uint256";
52
+ readonly name: "";
53
+ readonly type: "uint256";
54
+ }];
55
+ readonly stateMutability: "view";
56
+ readonly type: "function";
57
+ }];
58
+ readonly address: `0x${string}`;
59
+ readonly functionName: "MUSD_GAS_COMPENSATION";
60
+ readonly chainId: number;
61
+ }], true, {
7
62
  collateral: {
8
63
  value: bigint;
9
64
  decimals: number;
@@ -18,7 +73,7 @@ export declare function useBorrowData(queryOptions?: {}): import("@tanstack/reac
18
73
  value: bigint;
19
74
  formatted: string;
20
75
  };
21
- }, Error>;
76
+ }>;
22
77
  /**
23
78
  * Hook for for invalidating current user's borrow data. Can be used to
24
79
  * invalidate borrow data manually, which forces the data to be re-fetched.
@@ -1 +1 @@
1
- {"version":3,"file":"useBorrowData.d.ts","sourceRoot":"","sources":["../../../src/hooks/useBorrowData.ts"],"names":[],"mappings":"AAyFA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,YAAY,KAAK;;;;;;;;;;;;;;;UAoH9C;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB;;EAWtC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB;;EAWjC"}
1
+ {"version":3,"file":"useBorrowData.d.ts","sourceRoot":"","sources":["../../../src/hooks/useBorrowData.ts"],"names":[],"mappings":"AAuFA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,YAAY,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8F9C;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB;;EAatC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB;;EAajC"}
@@ -1,7 +1,6 @@
1
- import { useConfig } from "wagmi";
2
- import { readContracts } from "wagmi/actions";
1
+ import { useReadContracts } from "wagmi";
3
2
  import { useCallback, useMemo } from "react";
4
- import { useQuery, useQueryClient } from "@tanstack/react-query";
3
+ import { useQueryClient } from "@tanstack/react-query";
5
4
  import { formatUnits } from "viem";
6
5
  import { mainnetBorrowContracts, testnetBorrowContracts, } from "../lib/contracts";
7
6
  import { usePassportContext } from "./usePassportContext";
@@ -12,7 +11,6 @@ import { getAsset } from "../utils/assets";
12
11
  import { convertToUsd } from "../utils/currency";
13
12
  import { useCollateralPrice } from "./useCollateralPrice";
14
13
  const DEBT_AND_COLL_PRECISION = 18;
15
- const BORROW_DATA_QUERY_KEY = "passport.borrowData";
16
14
  // Wagmi handles typesafety with ABI const assertions. TypeScript doesn't
17
15
  // support importing JSON as const yet so types cannot be inferred from the
18
16
  // imported contract. As a workaround there is minimal ABI definition that can
@@ -88,7 +86,6 @@ export function useBorrowData(queryOptions = {}) {
88
86
  const { environment = "mainnet", borrowDataRefetchInterval } = usePassportContext();
89
87
  const walletAccount = useWalletAccount();
90
88
  const { data: collateralPrice } = useCollateralPrice();
91
- const config = useConfig();
92
89
  const contractAddress = useMemo(() => {
93
90
  if (environment === "mainnet") {
94
91
  return {
@@ -102,61 +99,57 @@ export function useBorrowData(queryOptions = {}) {
102
99
  };
103
100
  }, [environment]);
104
101
  const chainId = CHAIN_ID[environment];
105
- const contracts = useMemo(() => [
106
- {
107
- abi: TROVE_MANAGER_ABI,
108
- address: contractAddress.troveManager,
109
- functionName: "getEntireDebtAndColl",
110
- args: walletAccount.accountAddress
111
- ? [walletAccount.accountAddress]
112
- : ["0x"],
113
- chainId,
114
- },
115
- {
116
- abi: BORROWER_OPERATIONS_ABI,
117
- address: contractAddress.borrowerOperations,
118
- functionName: "MUSD_GAS_COMPENSATION",
119
- chainId,
120
- },
121
- ], [chainId, contractAddress, walletAccount.accountAddress]);
122
- const selectBorrowData = useCallback((data) => {
123
- if (!data || data.some((item) => !item.result))
124
- throw new Error("No borrow data available");
125
- if (!collateralPrice)
126
- throw new Error("Collateral price not available");
127
- const [rawCollateral, principal, interest] = data[0].result;
128
- const gasCompensation = data[1].result;
129
- const btcDetails = getAsset("BTC");
130
- const collateral = {
131
- value: rawCollateral,
132
- decimals: btcDetails.decimals,
133
- symbol: btcDetails.symbol,
134
- formatted: formatUnits(rawCollateral, DEBT_AND_COLL_PRECISION),
135
- usd: convertToUsd(rawCollateral, DEBT_AND_COLL_PRECISION, collateralPrice, DEBT_AND_COLL_PRECISION),
136
- };
137
- const debtInUsdValue = bigIntMax(normalizePrecision(principal + interest - gasCompensation, DEBT_AND_COLL_PRECISION), 0n);
138
- const formattedDebtInUsd = formatUnits(debtInUsdValue, DEBT_AND_COLL_PRECISION);
139
- const debtInUsd = {
140
- value: debtInUsdValue,
141
- formatted: formattedDebtInUsd,
142
- };
143
- return {
144
- collateral,
145
- debtInUsd,
146
- };
147
- }, [collateralPrice]);
148
- return useQuery({
149
- queryKey: [BORROW_DATA_QUERY_KEY, walletAccount.accountAddress],
150
- queryFn: async () => {
151
- const borrowData = await readContracts(config, { contracts });
152
- return borrowData;
102
+ return useReadContracts({
103
+ contracts: [
104
+ {
105
+ abi: TROVE_MANAGER_ABI,
106
+ address: contractAddress.troveManager,
107
+ functionName: "getEntireDebtAndColl",
108
+ args: walletAccount.accountAddress
109
+ ? [walletAccount.accountAddress]
110
+ : ["0x"],
111
+ chainId,
112
+ },
113
+ {
114
+ abi: BORROWER_OPERATIONS_ABI,
115
+ address: contractAddress.borrowerOperations,
116
+ functionName: "MUSD_GAS_COMPENSATION",
117
+ chainId,
118
+ },
119
+ ],
120
+ query: {
121
+ enabled: !!walletAccount.accountAddress && !!collateralPrice,
122
+ retry: 1,
123
+ select: (data) => {
124
+ if (!data || data.some((item) => !item.result))
125
+ throw new Error("No borrow data available");
126
+ if (!collateralPrice)
127
+ throw new Error("Collateral price not available");
128
+ const [rawCollateral, principal, interest] = data[0].result;
129
+ const gasCompensation = data[1].result;
130
+ const btcDetails = getAsset("BTC");
131
+ const collateral = {
132
+ value: rawCollateral,
133
+ decimals: btcDetails.decimals,
134
+ symbol: btcDetails.symbol,
135
+ formatted: formatUnits(rawCollateral, DEBT_AND_COLL_PRECISION),
136
+ usd: convertToUsd(rawCollateral, DEBT_AND_COLL_PRECISION, collateralPrice, DEBT_AND_COLL_PRECISION),
137
+ };
138
+ const debtInUsdValue = bigIntMax(normalizePrecision(principal + interest - gasCompensation, DEBT_AND_COLL_PRECISION), 0n);
139
+ const formattedDebtInUsd = formatUnits(debtInUsdValue, DEBT_AND_COLL_PRECISION);
140
+ const debtInUsd = {
141
+ value: debtInUsdValue,
142
+ formatted: formattedDebtInUsd,
143
+ };
144
+ return {
145
+ collateral,
146
+ debtInUsd,
147
+ };
148
+ },
149
+ staleTime: borrowDataRefetchInterval,
150
+ refetchInterval: borrowDataRefetchInterval,
151
+ ...queryOptions,
153
152
  },
154
- enabled: !!walletAccount.accountAddress && !!collateralPrice,
155
- retry: 1,
156
- select: selectBorrowData,
157
- staleTime: borrowDataRefetchInterval,
158
- refetchInterval: borrowDataRefetchInterval,
159
- ...queryOptions,
160
153
  });
161
154
  }
162
155
  /**
@@ -166,7 +159,8 @@ export function useBorrowData(queryOptions = {}) {
166
159
  */
167
160
  export function useInvalidateBorrowData() {
168
161
  const queryClient = useQueryClient();
169
- const invalidateBorrowDataHandler = useCallback(() => queryClient.invalidateQueries({ queryKey: [BORROW_DATA_QUERY_KEY] }), [queryClient]);
162
+ const { queryKey } = useBorrowData();
163
+ const invalidateBorrowDataHandler = useCallback(() => queryClient.invalidateQueries({ queryKey }), [queryClient, queryKey]);
170
164
  return {
171
165
  invalidateBorrowData: invalidateBorrowDataHandler,
172
166
  };
@@ -178,7 +172,8 @@ export function useInvalidateBorrowData() {
178
172
  */
179
173
  export function useResetBorrowData() {
180
174
  const queryClient = useQueryClient();
181
- const resetBorrowDataHandler = useCallback(() => queryClient.resetQueries({ queryKey: [BORROW_DATA_QUERY_KEY] }), [queryClient]);
175
+ const { queryKey } = useBorrowData();
176
+ const resetBorrowDataHandler = useCallback(() => queryClient.resetQueries({ queryKey }), [queryClient, queryKey]);
182
177
  return {
183
178
  resetBorrowData: resetBorrowDataHandler,
184
179
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useBorrowData.js","sourceRoot":"","sources":["../../../src/hooks/useBorrowData.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useBorrowData.js","sourceRoot":"","sources":["../../../src/hooks/useBorrowData.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTokensBalances.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTokensBalances.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,eAAe,EAChB,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EAEL,cAAc,EAEf,MAAM,kBAAkB,CAAA;AAsBzB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;EAoBH,CAAA;AAgBxB,KAAK,iCAAiC,CAAC,CAAC,SAAS,cAAc,EAAE,IAAI;IACnE,MAAM,CAAC,EAAE,CAAC,CAAA;IACV,YAAY,CAAC,EAAE,IAAI,CACjB,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC,EAChD,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAC9C,CAAA;CACF,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE;QACH,KAAK,EAAE,MAAM,CAAA;QACb,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;CACF,CAAA;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,cAAc,EAAE,EAC1D,OAAO,GAAE,iCAAiC,CAAC,CAAC,CAAM,kGAiJnD;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B;;EAY1C;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB;;EAWrC"}
1
+ {"version":3,"file":"useTokensBalances.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTokensBalances.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,eAAe,EAChB,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EAEL,cAAc,EAEf,MAAM,kBAAkB,CAAA;AAmBzB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;EAoBH,CAAA;AAgBxB,KAAK,iCAAiC,CAAC,CAAC,SAAS,cAAc,EAAE,IAAI;IACnE,MAAM,CAAC,EAAE,CAAC,CAAA;IACV,YAAY,CAAC,EAAE,IAAI,CACjB,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC,EAChD,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAC9C,CAAA;CACF,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE;QACH,KAAK,EAAE,MAAM,CAAA;QACb,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;CACF,CAAA;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,cAAc,EAAE,EAC1D,OAAO,GAAE,iCAAiC,CAAC,CAAC,CAAM,kGA+HnD;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B;;EAY1C;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB;;EAWrC"}
@@ -8,7 +8,7 @@ import useWalletAccount from "./useWalletAccount";
8
8
  import { getAsset, isBitcoinLikeCryptoAsset, isTTokenCryptoAsset, } from "../utils/assets";
9
9
  import { convertToUsd } from "../utils/currency";
10
10
  import { CHAIN_ID, mezoMainnet, mezoTestnet } from "../constants";
11
- import { useAssetsConversionRates, } from "./useAssetsConversionRates";
11
+ import { useAssetsConversionRates } from "./useAssetsConversionRates";
12
12
  import { normalizePrecision } from "../utils/numbers";
13
13
  import { usePassportContext } from "./usePassportContext";
14
14
  // Wagmi handles typesafety with ABI const assertions. TypeScript doesn't
@@ -75,41 +75,6 @@ export function useTokensBalances(options = {}) {
75
75
  const { data: conversionRatesData } = useAssetsConversionRates();
76
76
  const { environment = "mainnet" } = usePassportContext();
77
77
  const chainId = environment === "testnet" ? mezoTestnet.id : mezoMainnet.id;
78
- const selectBalances = useCallback(([btcBalance, tokensBalancesData, conversion]) => {
79
- const parsedBtcBalance = {
80
- ...btcBalance,
81
- symbol: getAsset("BTC").symbol,
82
- usd: convertToUsd(btcBalance.value, btcBalance.decimals, conversion.rates.BTC, conversion.decimals),
83
- };
84
- const parsedTokensBalances = tokensBalancesData.map((item, index) => {
85
- const token = tokens[index];
86
- const { decimals, symbol } = getAsset(token);
87
- if (item.status === "failure") {
88
- throw new Error(`Failed to fetch balance of ${token} for ${walletAccount?.accountAddress}.`);
89
- }
90
- const tokenBalance = {
91
- value: item.result,
92
- decimals,
93
- symbol,
94
- formatted: formatUnits(item.result, decimals),
95
- };
96
- let usd = {
97
- value: normalizePrecision(tokenBalance.value, tokenBalance.decimals, conversion.decimals),
98
- formatted: formatUnits(tokenBalance.value, tokenBalance.decimals),
99
- };
100
- if (isBitcoinLikeCryptoAsset(tokenBalance.symbol)) {
101
- usd = convertToUsd(tokenBalance.value, tokenBalance.decimals, conversion.rates.BTC, conversion.decimals);
102
- }
103
- if (isTTokenCryptoAsset(tokenBalance.symbol)) {
104
- usd = convertToUsd(tokenBalance.value, tokenBalance.decimals, conversion.rates.mT, conversion.decimals);
105
- }
106
- return { ...tokenBalance, usd };
107
- });
108
- return [parsedBtcBalance, ...parsedTokensBalances].reduce((acc, token) => ({
109
- ...acc,
110
- [token.symbol]: token,
111
- }), {});
112
- }, [tokens, walletAccount.accountAddress]);
113
78
  return useQuery({
114
79
  queryKey: [
115
80
  TOKEN_BALANCES_QUERY_KEY,
@@ -150,7 +115,42 @@ export function useTokensBalances(options = {}) {
150
115
  }),
151
116
  ]);
152
117
  },
153
- select: selectBalances,
118
+ select: (data) => {
119
+ const [btcBalance, tokensBalancesData, conversion] = data;
120
+ const parsedBtcBalance = {
121
+ ...btcBalance,
122
+ symbol: getAsset("BTC").symbol,
123
+ usd: convertToUsd(btcBalance.value, btcBalance.decimals, conversion.rates.BTC, conversion.decimals),
124
+ };
125
+ const parsedTokensBalances = tokensBalancesData.map((item, index) => {
126
+ const token = tokens[index];
127
+ const { decimals, symbol } = getAsset(token);
128
+ if (item.status === "failure") {
129
+ throw new Error(`Failed to fetch balance of ${token} for ${walletAccount?.accountAddress}.`);
130
+ }
131
+ const tokenBalance = {
132
+ value: item.result,
133
+ decimals,
134
+ symbol,
135
+ formatted: formatUnits(item.result, decimals),
136
+ };
137
+ let usd = {
138
+ value: normalizePrecision(tokenBalance.value, tokenBalance.decimals, conversion.decimals),
139
+ formatted: formatUnits(tokenBalance.value, tokenBalance.decimals),
140
+ };
141
+ if (isBitcoinLikeCryptoAsset(tokenBalance.symbol)) {
142
+ usd = convertToUsd(tokenBalance.value, tokenBalance.decimals, conversion.rates.BTC, conversion.decimals);
143
+ }
144
+ if (isTTokenCryptoAsset(tokenBalance.symbol)) {
145
+ usd = convertToUsd(tokenBalance.value, tokenBalance.decimals, conversion.rates.mT, conversion.decimals);
146
+ }
147
+ return { ...tokenBalance, usd };
148
+ });
149
+ return [parsedBtcBalance, ...parsedTokensBalances].reduce((acc, token) => ({
150
+ ...acc,
151
+ [token.symbol]: token,
152
+ }), {});
153
+ },
154
154
  ...restQueryOptions,
155
155
  });
156
156
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useTokensBalances.js","sourceRoot":"","sources":["../../../src/hooks/useTokensBalances.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useTokensBalances.js","sourceRoot":"","sources":["../../../src/hooks/useTokensBalances.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useValidateMezoId.d.ts","sourceRoot":"","sources":["../../../src/hooks/useValidateMezoId.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAkB,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAIxD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GA0BxC,cAAc,CAAC;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,OAAO,CAAA;IACpB,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB,CAAC,CACH"}
1
+ {"version":3,"file":"useValidateMezoId.d.ts","sourceRoot":"","sources":["../../../src/hooks/useValidateMezoId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAkB,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAGxD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAqBxC,cAAc,CAAC;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,OAAO,CAAA;IACpB,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB,CAAC,CACH"}
@@ -1,13 +1,7 @@
1
- import { useCallback } from "react";
2
1
  import { validateMezoId } from "../utils/mezoId";
3
2
  import { useGetAccountByMezoId } from "./useGetAccountByMezoId";
4
3
  export function useValidateMezoId(mezoId) {
5
4
  const validationErrors = validateMezoId(mezoId);
6
- const select = useCallback((data) => {
7
- const isValid = validationErrors.length === 0;
8
- const isAvailable = isValid ? !data : false;
9
- return { isValid, isAvailable, errors: validationErrors };
10
- }, [validationErrors]);
11
5
  return useGetAccountByMezoId(mezoId, {
12
6
  placeholderData: {
13
7
  // @ts-expect-error TODO: Couldn't fix type for placeholderData which for
@@ -20,7 +14,11 @@ export function useValidateMezoId(mezoId) {
20
14
  enabled: validationErrors.length === 0,
21
15
  // @ts-expect-error TODO: Couldn't fix type for select which for some reason
22
16
  // should return the same data as the data returned in queryFn.
23
- select,
17
+ select: (data) => {
18
+ const isValid = validationErrors.length === 0;
19
+ const isAvailable = isValid ? !data : false;
20
+ return { isValid, isAvailable, errors: validationErrors };
21
+ },
24
22
  });
25
23
  }
26
24
  //# sourceMappingURL=useValidateMezoId.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useValidateMezoId.js","sourceRoot":"","sources":["../../../src/hooks/useValidateMezoId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAEnC,OAAO,EAAE,cAAc,EAAU,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAG/D,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,MAAM,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;IAE/C,MAAM,MAAM,GAAG,WAAW,CACxB,CAAC,IAAgD,EAAE,EAAE;QACnD,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,KAAK,CAAC,CAAA;QAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;QAE3C,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAA;IAC3D,CAAC,EACD,CAAC,gBAAgB,CAAC,CACnB,CAAA;IAED,OAAO,qBAAqB,CAAC,MAAM,EAAE;QACnC,eAAe,EAAE;YACf,yEAAyE;YACzE,kEAAkE;YAClE,WAAW;YACX,OAAO,EAAE,gBAAgB,CAAC,MAAM,KAAK,CAAC;YACtC,WAAW,EAAE,gBAAgB,CAAC,MAAM,KAAK,CAAC;YAC1C,MAAM,EAAE,gBAAgB;SACzB;QACD,OAAO,EAAE,gBAAgB,CAAC,MAAM,KAAK,CAAC;QACtC,4EAA4E;QAC5E,+DAA+D;QAC/D,MAAM;KACP,CAIC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"useValidateMezoId.js","sourceRoot":"","sources":["../../../src/hooks/useValidateMezoId.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAU,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAE/D,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,MAAM,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;IAE/C,OAAO,qBAAqB,CAAC,MAAM,EAAE;QACnC,eAAe,EAAE;YACf,yEAAyE;YACzE,kEAAkE;YAClE,WAAW;YACX,OAAO,EAAE,gBAAgB,CAAC,MAAM,KAAK,CAAC;YACtC,WAAW,EAAE,gBAAgB,CAAC,MAAM,KAAK,CAAC;YAC1C,MAAM,EAAE,gBAAgB;SACzB;QACD,OAAO,EAAE,gBAAgB,CAAC,MAAM,KAAK,CAAC;QACtC,4EAA4E;QAC5E,+DAA+D;QAC/D,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACf,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,KAAK,CAAC,CAAA;YAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;YAE3C,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAA;QAC3D,CAAC;KACF,CAIC,CAAA;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mezo-org/passport",
3
- "version": "0.7.2-dev.2",
3
+ "version": "0.7.2-dev.4",
4
4
  "main": "dist/src/index.js",
5
5
  "license": "GPL-3.0-only",
6
6
  "scripts": {
@@ -40,7 +40,7 @@
40
40
  "@mezo-org/mezo-clay": "0.1.0-dev.33",
41
41
  "@mezo-org/mezod-contracts": "^1.0.0",
42
42
  "@mezo-org/musd-contracts": "^1.0.1",
43
- "@mezo-org/orangekit": "1.0.0-beta.40-dev.19",
43
+ "@mezo-org/orangekit": "1.0.0-beta.40-dev.21",
44
44
  "@mezo-org/sign-in-with-wallet": "1.0.0-beta.8",
45
45
  "qrcode.react": "^4.2.0",
46
46
  "styletron-engine-monolithic": "^1.0.0",
@@ -55,4 +55,4 @@
55
55
  "viem": "2.22.8",
56
56
  "wagmi": "2.5.12"
57
57
  }
58
- }
58
+ }
package/src/api/portal.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { ApiClient } from "./client"
2
2
 
3
- export type PortalStatistics = {
3
+ type PortalStatistics = {
4
4
  btcPrice: number
5
5
  ethPrice: number
6
6
  tTokenPrice: number
@@ -1,15 +1,8 @@
1
- import { useCallback } from "react"
2
1
  import { useQuery } from "@tanstack/react-query"
3
2
  import { parseUnits } from "viem"
4
3
  import { ONE_SECOND_MS } from "../utils/time"
5
4
  import { usePortalApiClient } from "./usePortalApiClient"
6
5
  import { useCollateralPrice } from "./useCollateralPrice"
7
- import { PortalStatistics } from "../api"
8
-
9
- export type AssetConversion = {
10
- rates: { mT: bigint; BTC: bigint }
11
- decimals: number
12
- }
13
6
 
14
7
  export const CONVERSION_RATE_DECIMALS = 18
15
8
 
@@ -32,29 +25,6 @@ export function useAssetsConversionRates() {
32
25
 
33
26
  const collateralPrice = collateralPriceData?.toString()
34
27
 
35
- const select = useCallback(
36
- ([portalStatistics, btcPrice]: [
37
- PortalStatistics,
38
- bigint,
39
- ]): AssetConversion => {
40
- const tTokenConversionRate = portalStatistics.tTokenPrice
41
-
42
- const tPrice = parseUnits(
43
- tTokenConversionRate.toString(),
44
- CONVERSION_RATE_DECIMALS,
45
- )
46
-
47
- return {
48
- rates: {
49
- mT: tPrice,
50
- BTC: btcPrice,
51
- },
52
- decimals: CONVERSION_RATE_DECIMALS,
53
- }
54
- },
55
- [],
56
- )
57
-
58
28
  return useQuery({
59
29
  queryKey: [QUERY_KEY, collateralPrice],
60
30
  queryFn: () => {
@@ -70,7 +40,22 @@ export function useAssetsConversionRates() {
70
40
  ])
71
41
  },
72
42
  enabled: !!collateralPrice,
73
- select,
43
+ select: ([portalStatistics, btcPrice]) => {
44
+ const tTokenConversionRate = portalStatistics.tTokenPrice
45
+
46
+ const tPrice = parseUnits(
47
+ tTokenConversionRate.toString(),
48
+ CONVERSION_RATE_DECIMALS,
49
+ )
50
+
51
+ return {
52
+ rates: {
53
+ mT: tPrice,
54
+ BTC: btcPrice,
55
+ },
56
+ decimals: CONVERSION_RATE_DECIMALS,
57
+ }
58
+ },
74
59
  refetchInterval: MAX_PRICE_DELAY,
75
60
  })
76
61
  }
@@ -1,7 +1,6 @@
1
- import { useConfig, UseReadContractsReturnType } from "wagmi"
2
- import { readContracts } from "wagmi/actions"
1
+ import { useReadContracts } from "wagmi"
3
2
  import { useCallback, useMemo } from "react"
4
- import { useQuery, useQueryClient } from "@tanstack/react-query"
3
+ import { useQueryClient } from "@tanstack/react-query"
5
4
  import { formatUnits } from "viem"
6
5
  import {
7
6
  mainnetBorrowContracts,
@@ -16,7 +15,6 @@ import { convertToUsd } from "../utils/currency"
16
15
  import { useCollateralPrice } from "./useCollateralPrice"
17
16
 
18
17
  const DEBT_AND_COLL_PRECISION = 18
19
- const BORROW_DATA_QUERY_KEY = "passport.borrowData"
20
18
 
21
19
  // Wagmi handles typesafety with ABI const assertions. TypeScript doesn't
22
20
  // support importing JSON as const yet so types cannot be inferred from the
@@ -98,7 +96,6 @@ export function useBorrowData(queryOptions = {}) {
98
96
  const walletAccount = useWalletAccount()
99
97
 
100
98
  const { data: collateralPrice } = useCollateralPrice()
101
- const config = useConfig()
102
99
 
103
100
  const contractAddress = useMemo(() => {
104
101
  if (environment === "mainnet") {
@@ -115,8 +112,8 @@ export function useBorrowData(queryOptions = {}) {
115
112
 
116
113
  const chainId = CHAIN_ID[environment]
117
114
 
118
- const contracts = useMemo(
119
- () => [
115
+ return useReadContracts({
116
+ contracts: [
120
117
  {
121
118
  abi: TROVE_MANAGER_ABI,
122
119
  address: contractAddress.troveManager,
@@ -133,80 +130,59 @@ export function useBorrowData(queryOptions = {}) {
133
130
  chainId,
134
131
  },
135
132
  ],
136
- [chainId, contractAddress, walletAccount.accountAddress],
137
- )
138
-
139
- const selectBorrowData = useCallback(
140
- (data: UseReadContractsReturnType<typeof contracts>["data"]) => {
141
- if (!data || data.some((item) => !item.result))
142
- throw new Error("No borrow data available")
143
-
144
- if (!collateralPrice) throw new Error("Collateral price not available")
145
-
146
- const [rawCollateral, principal, interest] = data[0].result! as readonly [
147
- bigint,
148
- bigint,
149
- bigint,
150
- bigint,
151
- bigint,
152
- bigint,
153
- ]
154
-
155
- const gasCompensation = data[1].result! as bigint
156
-
157
- const btcDetails = getAsset("BTC")
158
-
159
- const collateral = {
160
- value: rawCollateral,
161
- decimals: btcDetails.decimals,
162
- symbol: btcDetails.symbol,
163
- formatted: formatUnits(rawCollateral, DEBT_AND_COLL_PRECISION),
164
- usd: convertToUsd(
165
- rawCollateral,
133
+ query: {
134
+ enabled: !!walletAccount.accountAddress && !!collateralPrice,
135
+ retry: 1,
136
+ select: (data) => {
137
+ if (!data || data.some((item) => !item.result))
138
+ throw new Error("No borrow data available")
139
+
140
+ if (!collateralPrice) throw new Error("Collateral price not available")
141
+
142
+ const [rawCollateral, principal, interest] = data[0].result!
143
+ const gasCompensation = data[1].result!
144
+
145
+ const btcDetails = getAsset("BTC")
146
+
147
+ const collateral = {
148
+ value: rawCollateral,
149
+ decimals: btcDetails.decimals,
150
+ symbol: btcDetails.symbol,
151
+ formatted: formatUnits(rawCollateral, DEBT_AND_COLL_PRECISION),
152
+ usd: convertToUsd(
153
+ rawCollateral,
154
+ DEBT_AND_COLL_PRECISION,
155
+ collateralPrice,
156
+ DEBT_AND_COLL_PRECISION,
157
+ ),
158
+ }
159
+
160
+ const debtInUsdValue = bigIntMax(
161
+ normalizePrecision(
162
+ principal + interest - gasCompensation,
163
+ DEBT_AND_COLL_PRECISION,
164
+ ),
165
+ 0n, // Ensure that debt is not negative
166
+ )
167
+ const formattedDebtInUsd = formatUnits(
168
+ debtInUsdValue,
166
169
  DEBT_AND_COLL_PRECISION,
167
- collateralPrice,
168
- DEBT_AND_COLL_PRECISION,
169
- ),
170
- }
170
+ )
171
171
 
172
- const debtInUsdValue = bigIntMax(
173
- normalizePrecision(
174
- principal + interest - gasCompensation,
175
- DEBT_AND_COLL_PRECISION,
176
- ),
177
- 0n, // Ensure that debt is not negative
178
- )
179
- const formattedDebtInUsd = formatUnits(
180
- debtInUsdValue,
181
- DEBT_AND_COLL_PRECISION,
182
- )
183
-
184
- const debtInUsd = {
185
- value: debtInUsdValue,
186
- formatted: formattedDebtInUsd,
187
- }
172
+ const debtInUsd = {
173
+ value: debtInUsdValue,
174
+ formatted: formattedDebtInUsd,
175
+ }
188
176
 
189
- return {
190
- collateral,
191
- debtInUsd,
192
- }
193
- },
194
- [collateralPrice],
195
- )
196
-
197
- return useQuery({
198
- queryKey: [BORROW_DATA_QUERY_KEY, walletAccount.accountAddress],
199
- queryFn: async () => {
200
- const borrowData = await readContracts(config, { contracts })
201
-
202
- return borrowData
177
+ return {
178
+ collateral,
179
+ debtInUsd,
180
+ }
181
+ },
182
+ staleTime: borrowDataRefetchInterval,
183
+ refetchInterval: borrowDataRefetchInterval,
184
+ ...queryOptions,
203
185
  },
204
- enabled: !!walletAccount.accountAddress && !!collateralPrice,
205
- retry: 1,
206
- select: selectBorrowData,
207
- staleTime: borrowDataRefetchInterval,
208
- refetchInterval: borrowDataRefetchInterval,
209
- ...queryOptions,
210
186
  })
211
187
  }
212
188
 
@@ -218,9 +194,11 @@ export function useBorrowData(queryOptions = {}) {
218
194
  export function useInvalidateBorrowData() {
219
195
  const queryClient = useQueryClient()
220
196
 
197
+ const { queryKey } = useBorrowData()
198
+
221
199
  const invalidateBorrowDataHandler = useCallback(
222
- () => queryClient.invalidateQueries({ queryKey: [BORROW_DATA_QUERY_KEY] }),
223
- [queryClient],
200
+ () => queryClient.invalidateQueries({ queryKey }),
201
+ [queryClient, queryKey],
224
202
  )
225
203
 
226
204
  return {
@@ -236,9 +214,11 @@ export function useInvalidateBorrowData() {
236
214
  export function useResetBorrowData() {
237
215
  const queryClient = useQueryClient()
238
216
 
217
+ const { queryKey } = useBorrowData()
218
+
239
219
  const resetBorrowDataHandler = useCallback(
240
- () => queryClient.resetQueries({ queryKey: [BORROW_DATA_QUERY_KEY] }),
241
- [queryClient],
220
+ () => queryClient.resetQueries({ queryKey }),
221
+ [queryClient, queryKey],
242
222
  )
243
223
 
244
224
  return {
@@ -6,7 +6,7 @@ import {
6
6
  useQueryClient,
7
7
  UseQueryOptions,
8
8
  } from "@tanstack/react-query"
9
- import { getBalance, GetBalanceReturnType, readContracts } from "wagmi/actions"
9
+ import { getBalance, readContracts } from "wagmi/actions"
10
10
  import { useCallback } from "react"
11
11
  import {
12
12
  mainnetTokenContracts,
@@ -21,10 +21,7 @@ import {
21
21
  } from "../utils/assets"
22
22
  import { convertToUsd } from "../utils/currency"
23
23
  import { CHAIN_ID, mezoMainnet, mezoTestnet } from "../constants"
24
- import {
25
- AssetConversion,
26
- useAssetsConversionRates,
27
- } from "./useAssetsConversionRates"
24
+ import { useAssetsConversionRates } from "./useAssetsConversionRates"
28
25
  import { normalizePrecision } from "../utils/numbers"
29
26
  import { usePassportContext } from "./usePassportContext"
30
27
 
@@ -123,23 +120,53 @@ export function useTokensBalances<T extends MezoChainToken[]>(
123
120
 
124
121
  const chainId = environment === "testnet" ? mezoTestnet.id : mezoMainnet.id
125
122
 
126
- const selectBalances = useCallback(
127
- ([btcBalance, tokensBalancesData, conversion]: [
128
- GetBalanceReturnType,
129
- (
130
- | {
131
- error?: undefined
132
- result: bigint
133
- status: "success"
134
- }
135
- | {
136
- error: Error
137
- result?: undefined
138
- status: "failure"
139
- }
140
- )[],
141
- AssetConversion,
142
- ]) => {
123
+ return useQuery({
124
+ queryKey: [
125
+ TOKEN_BALANCES_QUERY_KEY,
126
+ walletAccount?.accountAddress,
127
+ options.tokens,
128
+ chainId,
129
+ ],
130
+ enabled: !!walletAccount?.accountAddress && !!conversionRatesData,
131
+ placeholderData: keepPreviousData,
132
+ queryFn: async () => {
133
+ const isMainnet = chainId === CHAIN_ID.mainnet
134
+ const contractsMap = isMainnet
135
+ ? mainnetTokenContracts
136
+ : testnetTokenContracts
137
+
138
+ if (!walletAccount?.accountAddress) {
139
+ throw new Error("Account address is not available.")
140
+ }
141
+
142
+ const tokenContracts = tokens.map((token) => {
143
+ const { address } = contractsMap[token]
144
+ return {
145
+ address,
146
+ abi: BALANCE_OF_ABI,
147
+ functionName: "balanceOf" as const,
148
+ args: [walletAccount?.accountAddress],
149
+ chainId,
150
+ }
151
+ })
152
+
153
+ if (!conversionRatesData) {
154
+ throw new Error("Conversion rates data is not available.")
155
+ }
156
+
157
+ return Promise.all([
158
+ getBalance(config, { address: walletAccount?.accountAddress, chainId }),
159
+ readContracts(config, {
160
+ contracts: tokenContracts,
161
+ }),
162
+ new Promise((resolve) => {
163
+ resolve(conversionRatesData)
164
+ }) as Promise<typeof conversionRatesData>,
165
+ ])
166
+ },
167
+ select: (data) => {
168
+ const [btcBalance, tokensBalancesData, conversion] = data
169
+
143
170
  const parsedBtcBalance = {
144
171
  ...btcBalance,
145
172
  symbol: getAsset("BTC").symbol,
@@ -204,54 +231,6 @@ export function useTokensBalances<T extends MezoChainToken[]>(
204
231
  {} as Record<T[number] | "BTC", TokenBalance>,
205
232
  )
206
233
  },
207
- [tokens, walletAccount.accountAddress],
208
- )
209
-
210
- return useQuery({
211
- queryKey: [
212
- TOKEN_BALANCES_QUERY_KEY,
213
- walletAccount?.accountAddress,
214
- options.tokens,
215
- chainId,
216
- ],
217
- enabled: !!walletAccount?.accountAddress && !!conversionRatesData,
218
- placeholderData: keepPreviousData,
219
- queryFn: async () => {
220
- const isMainnet = chainId === CHAIN_ID.mainnet
221
- const contractsMap = isMainnet
222
- ? mainnetTokenContracts
223
- : testnetTokenContracts
224
-
225
- if (!walletAccount?.accountAddress) {
226
- throw new Error("Account address is not available.")
227
- }
228
-
229
- const tokenContracts = tokens.map((token) => {
230
- const { address } = contractsMap[token]
231
- return {
232
- address,
233
- abi: BALANCE_OF_ABI,
234
- functionName: "balanceOf" as const,
235
- args: [walletAccount?.accountAddress],
236
- chainId,
237
- }
238
- })
239
-
240
- if (!conversionRatesData) {
241
- throw new Error("Conversion rates data is not available.")
242
- }
243
-
244
- return Promise.all([
245
- getBalance(config, { address: walletAccount?.accountAddress, chainId }),
246
- readContracts(config, {
247
- contracts: tokenContracts,
248
- }),
249
- new Promise((resolve) => {
250
- resolve(conversionRatesData)
251
- }) as Promise<typeof conversionRatesData>,
252
- ])
253
- },
254
- select: selectBalances,
255
234
  ...restQueryOptions,
256
235
  })
257
236
  }
@@ -1,22 +1,10 @@
1
- import { useCallback } from "react"
2
1
  import { UseQueryResult } from "@tanstack/react-query"
3
2
  import { validateMezoId, MezoId } from "../utils/mezoId"
4
3
  import { useGetAccountByMezoId } from "./useGetAccountByMezoId"
5
- import { GetAccountByMezoIdOrAddressResponse } from "../api"
6
4
 
7
5
  export function useValidateMezoId(mezoId: MezoId) {
8
6
  const validationErrors = validateMezoId(mezoId)
9
7
 
10
- const select = useCallback(
11
- (data: GetAccountByMezoIdOrAddressResponse | null) => {
12
- const isValid = validationErrors.length === 0
13
- const isAvailable = isValid ? !data : false
14
-
15
- return { isValid, isAvailable, errors: validationErrors }
16
- },
17
- [validationErrors],
18
- )
19
-
20
8
  return useGetAccountByMezoId(mezoId, {
21
9
  placeholderData: {
22
10
  // @ts-expect-error TODO: Couldn't fix type for placeholderData which for
@@ -29,7 +17,12 @@ export function useValidateMezoId(mezoId: MezoId) {
29
17
  enabled: validationErrors.length === 0,
30
18
  // @ts-expect-error TODO: Couldn't fix type for select which for some reason
31
19
  // should return the same data as the data returned in queryFn.
32
- select,
20
+ select: (data) => {
21
+ const isValid = validationErrors.length === 0
22
+ const isAvailable = isValid ? !data : false
23
+
24
+ return { isValid, isAvailable, errors: validationErrors }
25
+ },
33
26
  }) as UseQueryResult<{
34
27
  isValid: boolean
35
28
  isAvailable: boolean