@mezo-org/passport 0.5.1 → 0.5.2-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/src/api/portal.d.ts +3 -7
  2. package/dist/src/api/portal.d.ts.map +1 -1
  3. package/dist/src/api/portal.js +1 -1
  4. package/dist/src/api/portal.js.map +1 -1
  5. package/dist/src/hooks/useAssetsConversionRates.d.ts.map +1 -1
  6. package/dist/src/hooks/useAssetsConversionRates.js +11 -38
  7. package/dist/src/hooks/useAssetsConversionRates.js.map +1 -1
  8. package/dist/src/hooks/useBorrowData.d.ts +0 -15
  9. package/dist/src/hooks/useBorrowData.d.ts.map +1 -1
  10. package/dist/src/hooks/useBorrowData.js +3 -25
  11. package/dist/src/hooks/useBorrowData.js.map +1 -1
  12. package/dist/src/hooks/useCollateralPrice.d.ts +17 -0
  13. package/dist/src/hooks/useCollateralPrice.d.ts.map +1 -0
  14. package/dist/src/hooks/useCollateralPrice.js +56 -0
  15. package/dist/src/hooks/useCollateralPrice.js.map +1 -0
  16. package/dist/src/hooks/useTokensBalances copy.d.ts +74 -0
  17. package/dist/src/hooks/useTokensBalances copy.d.ts.map +1 -0
  18. package/dist/src/hooks/useTokensBalances copy.js +206 -0
  19. package/dist/src/hooks/useTokensBalances copy.js.map +1 -0
  20. package/dist/src/lib/contracts/index.d.ts +1 -1
  21. package/dist/src/lib/contracts/index.d.ts.map +1 -1
  22. package/dist/src/lib/contracts/index.js +0 -1
  23. package/dist/src/lib/contracts/index.js.map +1 -1
  24. package/dist/src/utils/number2.test.d.ts +2 -0
  25. package/dist/src/utils/number2.test.d.ts.map +1 -0
  26. package/dist/src/utils/number2.test.js +223 -0
  27. package/dist/src/utils/number2.test.js.map +1 -0
  28. package/dist/src/utils/numbers.test.js.map +1 -1
  29. package/package.json +1 -1
  30. package/src/api/portal.ts +4 -8
  31. package/src/hooks/useAssetsConversionRates.ts +14 -43
  32. package/src/hooks/useBorrowData.ts +5 -27
  33. package/src/hooks/useCollateralPrice.ts +64 -0
  34. package/src/hooks/useTokensBalances copy.ts +289 -0
  35. package/src/lib/contracts/index.ts +0 -2
  36. package/src/utils/number2.test.ts +309 -0
  37. package/src/utils/numbers.test.ts +1 -0
  38. package/dist/src/lib/contracts/priceOracle.d.ts +0 -43
  39. package/dist/src/lib/contracts/priceOracle.d.ts.map +0 -1
  40. package/dist/src/lib/contracts/priceOracle.js +0 -52
  41. package/dist/src/lib/contracts/priceOracle.js.map +0 -1
  42. package/src/lib/contracts/priceOracle.ts +0 -53
@@ -1,12 +1,8 @@
1
1
  import { ApiClient } from "./client";
2
2
  type PortalStatistics = {
3
- hodlers: number;
4
- depositedBitcoin: string;
5
- tvl: number;
6
- currentUsdPerBtc: string;
7
- currentUsdPerEth: string;
8
- currentUsdPerTToken: string;
9
- usdPerBtc24hChange: string;
3
+ btcPrice: number;
4
+ tTokenPrice: number;
5
+ usersCount: number;
10
6
  };
11
7
  type PortalMats = {
12
8
  totalMats: 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,KAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,EAAE,MAAM,CAAA;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;IACxB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,kBAAkB,EAAE,MAAM,CAAA;CAC3B,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,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"}
@@ -11,7 +11,7 @@ export class PortalApiClient extends ApiClient {
11
11
  });
12
12
  }
13
13
  async getPortalStatistics() {
14
- const data = await this.handleRequest("/v1/statistics", {
14
+ const data = await this.handleRequest("/v2/statistics", {
15
15
  method: "GET",
16
16
  });
17
17
  return data;
@@ -1 +1 @@
1
- {"version":3,"file":"portal.js","sourceRoot":"","sources":["../../../src/api/portal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAkBpC,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,OAAO,EAAE,2BAA2B;IACpC,OAAO,EAAE,gCAAgC;CAC1C,CAAA;AAED,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAC5C,YACE,cAAwD,SAAS,EACjE,MAAe;QAEf,KAAK,CAAC;YACJ,MAAM,EAAE,MAAM,IAAI,2BAA2B,CAAC,WAAW,CAAC;YAC1D,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAmB,gBAAgB,EAAE;YACxE,MAAM,EAAE,KAAK;SACd,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe;QACjC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CACnC,eAAe,OAAO,OAAO,EAC7B;YACE,MAAM,EAAE,KAAK;SACd,CACF,CAAA;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
1
+ {"version":3,"file":"portal.js","sourceRoot":"","sources":["../../../src/api/portal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAcpC,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,OAAO,EAAE,2BAA2B;IACpC,OAAO,EAAE,gCAAgC;CAC1C,CAAA;AAED,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAC5C,YACE,cAAwD,SAAS,EACjE,MAAe;QAEf,KAAK,CAAC;YACJ,MAAM,EAAE,MAAM,IAAI,2BAA2B,CAAC,WAAW,CAAC;YAC1D,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAmB,gBAAgB,EAAE;YACxE,MAAM,EAAE,KAAK;SACd,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe;QACjC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CACnC,eAAe,OAAO,OAAO,EAC7B;YACE,MAAM,EAAE,KAAK;SACd,CACF,CAAA;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAssetsConversionRates.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAssetsConversionRates.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,wBAAwB,KAAK,CAAA;AAK1C,eAAO,MAAM,SAAS,mCAAmC,CAAA;AAEzD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB;;;;;;UAoDvC"}
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;;;;;;UA4BvC"}
@@ -1,13 +1,8 @@
1
1
  import { useQuery } from "@tanstack/react-query";
2
- import { useConfig } from "wagmi";
3
- import { readContract } from "wagmi/actions";
4
2
  import { parseUnits } from "viem";
5
3
  import { ONE_SECOND_MS } from "../utils/time";
6
4
  import { usePortalApiClient } from "./usePortalApiClient";
7
- import { priceOracleContract } from "../lib/contracts";
8
- import { CHAIN_ID } from "../constants";
9
- import { usePassportContext } from "./usePassportContext";
10
- import { normalizePrecision } from "../utils/numbers";
5
+ import { useCollateralPrice } from "./useCollateralPrice";
11
6
  export const CONVERSION_RATE_DECIMALS = 18;
12
7
  // If the oracle has not been updated in at least 60 seconds, it is stale.
13
8
  const MAX_PRICE_DELAY = 60 * ONE_SECOND_MS;
@@ -22,46 +17,24 @@ export const QUERY_KEY = "passport.assetsConversionRates";
22
17
  */
23
18
  export function useAssetsConversionRates() {
24
19
  const portalApiClient = usePortalApiClient();
25
- const { environment = "mainnet" } = usePassportContext();
26
- const config = useConfig();
20
+ const { data: collateralPriceData } = useCollateralPrice();
21
+ const collateralPrice = collateralPriceData?.toString();
27
22
  return useQuery({
28
- queryKey: [QUERY_KEY],
29
- queryFn: async () => Promise.all([
30
- portalApiClient.getPortalStatistics(),
31
- readContract(config, {
32
- ...priceOracleContract,
33
- functionName: "latestRoundData",
34
- chainId: CHAIN_ID[environment],
35
- }),
36
- ]),
37
- select: ([portalStatistics, btcPriceData]) => {
38
- const tTokenConversionRate = portalStatistics.currentUsdPerTToken;
39
- const [, btcConversionRate] = btcPriceData;
40
- const tPrice = parseUnits(tTokenConversionRate, CONVERSION_RATE_DECIMALS);
41
- const btcPrice = normalizePrecision(btcConversionRate, CONVERSION_RATE_DECIMALS);
23
+ queryKey: [QUERY_KEY, collateralPrice],
24
+ queryFn: async () => Promise.all([portalApiClient.getPortalStatistics()]),
25
+ enabled: !!collateralPrice,
26
+ select: ([portalStatistics]) => {
27
+ const tTokenConversionRate = portalStatistics.tTokenPrice;
28
+ const tPrice = parseUnits(tTokenConversionRate.toString(), CONVERSION_RATE_DECIMALS);
42
29
  return {
43
30
  rates: {
44
31
  mT: tPrice,
45
- BTC: btcPrice,
32
+ BTC: BigInt(collateralPrice),
46
33
  },
47
34
  decimals: CONVERSION_RATE_DECIMALS,
48
35
  };
49
36
  },
50
- refetchInterval: ({ state }) => {
51
- if (!state.data)
52
- return MAX_PRICE_DELAY;
53
- const [, btcPriceData] = state.data;
54
- const [, , , updatedAt] = btcPriceData;
55
- if (!updatedAt)
56
- return MAX_PRICE_DELAY;
57
- const age = Date.now() - Number(updatedAt) * 1000;
58
- return age > MAX_PRICE_DELAY
59
- ? // If the data is stale, we want to refetch as soon as possible, but
60
- // not faster than once per second, to avoid excessive requests.
61
- // Math.max ensures the interval is at least 1 second.
62
- Math.max(ONE_SECOND_MS, MAX_PRICE_DELAY - age)
63
- : MAX_PRICE_DELAY - age;
64
- },
37
+ refetchInterval: MAX_PRICE_DELAY,
65
38
  });
66
39
  }
67
40
  //# sourceMappingURL=useAssetsConversionRates.js.map
@@ -1 +1 @@
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,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,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,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAErD,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,WAAW,GAAG,SAAS,EAAE,GAAG,kBAAkB,EAAE,CAAA;IACxD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,SAAS,CAAC;QACrB,OAAO,EAAE,KAAK,IAAI,EAAE,CAClB,OAAO,CAAC,GAAG,CAAC;YACV,eAAe,CAAC,mBAAmB,EAAE;YACrC,YAAY,CAAC,MAAM,EAAE;gBACnB,GAAG,mBAAmB;gBACtB,YAAY,EAAE,iBAAiB;gBAC/B,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC;aAC/B,CAAC;SACH,CAAC;QACJ,MAAM,EAAE,CAAC,CAAC,gBAAgB,EAAE,YAAY,CAAC,EAAE,EAAE;YAC3C,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,mBAAmB,CAAA;YACjE,MAAM,CAAC,EAAE,iBAAiB,CAAC,GAAG,YAAY,CAAA;YAE1C,MAAM,MAAM,GAAG,UAAU,CAAC,oBAAoB,EAAE,wBAAwB,CAAC,CAAA;YACzE,MAAM,QAAQ,GAAG,kBAAkB,CACjC,iBAAiB,EACjB,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,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAC7B,IAAI,CAAC,KAAK,CAAC,IAAI;gBAAE,OAAO,eAAe,CAAA;YAEvC,MAAM,CAAC,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,IAAI,CAAA;YACnC,MAAM,CAAC,EAAE,AAAD,EAAG,AAAD,EAAG,SAAS,CAAC,GAAG,YAAY,CAAA;YAEtC,IAAI,CAAC,SAAS;gBAAE,OAAO,eAAe,CAAA;YAEtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA;YAEjD,OAAO,GAAG,GAAG,eAAe;gBAC1B,CAAC,CAAC,oEAAoE;oBACpE,gEAAgE;oBAChE,sDAAsD;oBACtD,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,eAAe,GAAG,GAAG,CAAC;gBAChD,CAAC,CAAC,eAAe,GAAG,GAAG,CAAA;QAC3B,CAAC;KACF,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,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,mBAAmB,EAAE,CAAC,CAAC;QACzE,OAAO,EAAE,CAAC,CAAC,eAAe;QAC1B,MAAM,EAAE,CAAC,CAAC,gBAAgB,CAAC,EAAE,EAAE;YAC7B,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,MAAM,CAAC,eAAgB,CAAC;iBAC9B;gBACD,QAAQ,EAAE,wBAAwB;aACnC,CAAA;QACH,CAAC;QACD,eAAe,EAAE,eAAe;KACjC,CAAC,CAAA;AACJ,CAAC"}
@@ -58,21 +58,6 @@ export declare function useBorrowData(queryOptions?: {}): import("wagmi").UseRea
58
58
  readonly address: `0x${string}`;
59
59
  readonly functionName: "MUSD_GAS_COMPENSATION";
60
60
  readonly chainId: number;
61
- }, {
62
- readonly abi: readonly [{
63
- readonly inputs: readonly [];
64
- readonly name: "fetchPrice";
65
- readonly outputs: readonly [{
66
- readonly internalType: "uint256";
67
- readonly name: "";
68
- readonly type: "uint256";
69
- }];
70
- readonly stateMutability: "view";
71
- readonly type: "function";
72
- }];
73
- readonly address: `0x${string}`;
74
- readonly functionName: "fetchPrice";
75
- readonly chainId: number;
76
61
  }], true, {
77
62
  collateral: {
78
63
  value: bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"useBorrowData.d.ts","sourceRoot":"","sources":["../../../src/hooks/useBorrowData.ts"],"names":[],"mappings":"AAuGA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,YAAY,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiG9C;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB;;EAatC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB;;EAajC"}
1
+ {"version":3,"file":"useBorrowData.d.ts","sourceRoot":"","sources":["../../../src/hooks/useBorrowData.ts"],"names":[],"mappings":"AAwFA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,YAAY,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0F9C;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB;;EAatC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB;;EAajC"}
@@ -10,6 +10,7 @@ import { bigIntMax, normalizePrecision } from "../utils/numbers";
10
10
  import useWalletAccount from "./useWalletAccount";
11
11
  import { getAsset } from "../utils/assets";
12
12
  import { convertToUsd } from "../utils/currency";
13
+ import { useCollateralPrice } from "./useCollateralPrice";
13
14
  const DEBT_AND_COLL_PRECISION = 18;
14
15
  // Wagmi handles typesafety with ABI const assertions. TypeScript doesn't
15
16
  // support importing JSON as const yet so types cannot be inferred from the
@@ -77,21 +78,6 @@ const BORROWER_OPERATIONS_ABI = [
77
78
  type: "function",
78
79
  },
79
80
  ];
80
- const PRICE_FEED_ABI = [
81
- {
82
- inputs: [],
83
- name: "fetchPrice",
84
- outputs: [
85
- {
86
- internalType: "uint256",
87
- name: "",
88
- type: "uint256",
89
- },
90
- ],
91
- stateMutability: "view",
92
- type: "function",
93
- },
94
- ];
95
81
  /**
96
82
  * Query hook for getting borrow data. Returns collateral and trove debt for the
97
83
  * connected account, based on it's evm address.
@@ -100,18 +86,17 @@ const PRICE_FEED_ABI = [
100
86
  export function useBorrowData(queryOptions = {}) {
101
87
  const { environment = "mainnet" } = usePassportContext();
102
88
  const walletAccount = useWalletAccount();
89
+ const { data: collateralPrice } = useCollateralPrice();
103
90
  const contractAddress = useMemo(() => {
104
91
  if (environment === "mainnet") {
105
92
  return {
106
93
  troveManager: mainnetBorrowContracts.TroveManager.address,
107
94
  borrowerOperations: mainnetBorrowContracts.BorrowerOperations.address,
108
- priceFeed: mainnetBorrowContracts.PriceFeed.address,
109
95
  };
110
96
  }
111
97
  return {
112
98
  troveManager: testnetBorrowContracts.TroveManager.address,
113
99
  borrowerOperations: testnetBorrowContracts.BorrowerOperations.address,
114
- priceFeed: testnetBorrowContracts.PriceFeed.address,
115
100
  };
116
101
  }, [environment]);
117
102
  const chainId = CHAIN_ID[environment];
@@ -132,15 +117,9 @@ export function useBorrowData(queryOptions = {}) {
132
117
  functionName: "MUSD_GAS_COMPENSATION",
133
118
  chainId,
134
119
  },
135
- {
136
- abi: PRICE_FEED_ABI,
137
- address: contractAddress.priceFeed,
138
- functionName: "fetchPrice",
139
- chainId,
140
- },
141
120
  ],
142
121
  query: {
143
- enabled: !!walletAccount.accountAddress,
122
+ enabled: !!walletAccount.accountAddress && !!collateralPrice?.toString,
144
123
  staleTime: 5 * ONE_MINUTE_MS,
145
124
  retry: 1,
146
125
  select: (data) => {
@@ -148,7 +127,6 @@ export function useBorrowData(queryOptions = {}) {
148
127
  throw new Error("No borrow data available");
149
128
  const [rawCollateral, principal, interest] = data[0].result;
150
129
  const gasCompensation = data[1].result;
151
- const collateralPrice = data[2].result;
152
130
  const btcDetails = getAsset("BTC");
153
131
  const collateral = {
154
132
  value: rawCollateral,
@@ -1 +1 @@
1
- {"version":3,"file":"useBorrowData.js","sourceRoot":"","sources":["../../../src/hooks/useBorrowData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,gBAAgB,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,MAAM,uBAAuB,GAAG,EAAE,CAAA;AAElC,yEAAyE;AACzE,2EAA2E;AAC3E,8EAA8E;AAC9E,0BAA0B;AAC1B,qEAAqE;AAErE,MAAM,iBAAiB,GAAG;IACxB;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,mBAAmB;gBACzB,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,kBAAkB;gBACxB,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACO,CAAA;AAEV,MAAM,uBAAuB,GAAG;IAC9B;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,uBAAuB;QAC7B,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACO,CAAA;AAEV,MAAM,cAAc,GAAG;IACrB;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACO,CAAA;AAEV;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,YAAY,GAAG,EAAE;IAC7C,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,GAAG,kBAAkB,EAAE,CAAA;IACxD,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;IAExC,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE;QACnC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO;gBACL,YAAY,EAAE,sBAAsB,CAAC,YAAY,CAAC,OAAO;gBACzD,kBAAkB,EAAE,sBAAsB,CAAC,kBAAkB,CAAC,OAAO;gBACrE,SAAS,EAAE,sBAAsB,CAAC,SAAS,CAAC,OAAO;aACpD,CAAA;QACH,CAAC;QACD,OAAO;YACL,YAAY,EAAE,sBAAsB,CAAC,YAAY,CAAC,OAAO;YACzD,kBAAkB,EAAE,sBAAsB,CAAC,kBAAkB,CAAC,OAAO;YACrE,SAAS,EAAE,sBAAsB,CAAC,SAAS,CAAC,OAAO;SACpD,CAAA;IACH,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;IAEjB,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAA;IAErC,OAAO,gBAAgB,CAAC;QACtB,SAAS,EAAE;YACT;gBACE,GAAG,EAAE,iBAAiB;gBACtB,OAAO,EAAE,eAAe,CAAC,YAAY;gBACrC,YAAY,EAAE,sBAAsB;gBACpC,IAAI,EAAE,aAAa,CAAC,cAAc;oBAChC,CAAC,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC;oBAChC,CAAC,CAAC,CAAC,IAAsB,CAAC;gBAC5B,OAAO;aACR;YACD;gBACE,GAAG,EAAE,uBAAuB;gBAC5B,OAAO,EAAE,eAAe,CAAC,kBAAkB;gBAC3C,YAAY,EAAE,uBAAuB;gBACrC,OAAO;aACR;YACD;gBACE,GAAG,EAAE,cAAc;gBACnB,OAAO,EAAE,eAAe,CAAC,SAAS;gBAClC,YAAY,EAAE,YAAY;gBAC1B,OAAO;aACR;SACF;QACD,KAAK,EAAE;YACL,OAAO,EAAE,CAAC,CAAC,aAAa,CAAC,cAAc;YACvC,SAAS,EAAE,CAAC,GAAG,aAAa;YAC5B,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACf,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;oBAC5C,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;gBAE7C,MAAM,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAO,CAAA;gBAC5D,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAO,CAAA;gBACvC,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAO,CAAA;gBAEvC,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;gBAElC,MAAM,UAAU,GAAG;oBACjB,KAAK,EAAE,aAAa;oBACpB,QAAQ,EAAE,UAAU,CAAC,QAAQ;oBAC7B,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,SAAS,EAAE,WAAW,CAAC,aAAa,EAAE,uBAAuB,CAAC;oBAC9D,GAAG,EAAE,YAAY,CACf,aAAa,EACb,uBAAuB,EACvB,eAAe,EACf,uBAAuB,CACxB;iBACF,CAAA;gBAED,MAAM,cAAc,GAAG,SAAS,CAC9B,kBAAkB,CAChB,SAAS,GAAG,QAAQ,GAAG,eAAe,EACtC,uBAAuB,CACxB,EACD,EAAE,CACH,CAAA;gBACD,MAAM,kBAAkB,GAAG,WAAW,CACpC,cAAc,EACd,uBAAuB,CACxB,CAAA;gBAED,MAAM,SAAS,GAAG;oBAChB,KAAK,EAAE,cAAc;oBACrB,SAAS,EAAE,kBAAkB;iBAC9B,CAAA;gBAED,OAAO;oBACL,UAAU;oBACV,SAAS;iBACV,CAAA;YACH,CAAC;YACD,GAAG,YAAY;SAChB;KACF,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
+ {"version":3,"file":"useBorrowData.js","sourceRoot":"","sources":["../../../src/hooks/useBorrowData.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Query hook for getting borrow data. Returns collateral and trove debt for the
3
+ * connected account, based on it's evm address.
4
+ * @param queryOptions Query options passed to the underlying `useQuery` hook.
5
+ */
6
+ export declare function useCollateralPrice(queryOptions?: {}): import("wagmi").UseReadContractReturnType<readonly [{
7
+ readonly inputs: readonly [];
8
+ readonly name: "fetchPrice";
9
+ readonly outputs: readonly [{
10
+ readonly internalType: "uint256";
11
+ readonly name: "";
12
+ readonly type: "uint256";
13
+ }];
14
+ readonly stateMutability: "view";
15
+ readonly type: "function";
16
+ }], "fetchPrice", readonly [], bigint>;
17
+ //# sourceMappingURL=useCollateralPrice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCollateralPrice.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCollateralPrice.ts"],"names":[],"mappings":"AAiCA;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,KAAK;;;;;;;;;;uCAyBnD"}
@@ -0,0 +1,56 @@
1
+ import { useReadContract } from "wagmi";
2
+ import { useMemo } from "react";
3
+ import { ONE_MINUTE_MS } from "../utils/time";
4
+ import { mainnetBorrowContracts, testnetBorrowContracts, } from "../lib/contracts";
5
+ import { usePassportContext } from "./usePassportContext";
6
+ import { CHAIN_ID } from "../constants";
7
+ import useWalletAccount from "./useWalletAccount";
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 PRICE_FEED_ABI = [
14
+ {
15
+ inputs: [],
16
+ name: "fetchPrice",
17
+ outputs: [
18
+ {
19
+ internalType: "uint256",
20
+ name: "",
21
+ type: "uint256",
22
+ },
23
+ ],
24
+ stateMutability: "view",
25
+ type: "function",
26
+ },
27
+ ];
28
+ /**
29
+ * Query hook for getting borrow data. Returns collateral and trove debt for the
30
+ * connected account, based on it's evm address.
31
+ * @param queryOptions Query options passed to the underlying `useQuery` hook.
32
+ */
33
+ export function useCollateralPrice(queryOptions = {}) {
34
+ const { environment = "mainnet" } = usePassportContext();
35
+ const walletAccount = useWalletAccount();
36
+ const priceFeedContractAddress = useMemo(() => {
37
+ if (environment === "mainnet") {
38
+ return mainnetBorrowContracts.PriceFeed.address;
39
+ }
40
+ return testnetBorrowContracts.PriceFeed.address;
41
+ }, [environment]);
42
+ const chainId = CHAIN_ID[environment];
43
+ return useReadContract({
44
+ abi: PRICE_FEED_ABI,
45
+ address: priceFeedContractAddress,
46
+ functionName: "fetchPrice",
47
+ chainId,
48
+ query: {
49
+ enabled: !!walletAccount.accountAddress,
50
+ staleTime: 5 * ONE_MINUTE_MS,
51
+ retry: 1,
52
+ ...queryOptions,
53
+ },
54
+ });
55
+ }
56
+ //# sourceMappingURL=useCollateralPrice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCollateralPrice.js","sourceRoot":"","sources":["../../../src/hooks/useCollateralPrice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,gBAAgB,MAAM,oBAAoB,CAAA;AAEjD,yEAAyE;AACzE,2EAA2E;AAC3E,8EAA8E;AAC9E,0BAA0B;AAC1B,qEAAqE;AAErE,MAAM,cAAc,GAAG;IACrB;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACO,CAAA;AAEV;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,YAAY,GAAG,EAAE;IAClD,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,GAAG,kBAAkB,EAAE,CAAA;IACxD,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;IAExC,MAAM,wBAAwB,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,sBAAsB,CAAC,SAAS,CAAC,OAAO,CAAA;QACjD,CAAC;QACD,OAAO,sBAAsB,CAAC,SAAS,CAAC,OAAO,CAAA;IACjD,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;IAEjB,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAA;IAErC,OAAO,eAAe,CAAC;QACrB,GAAG,EAAE,cAAc;QACnB,OAAO,EAAE,wBAAwB;QACjC,YAAY,EAAE,YAAY;QAC1B,OAAO;QACP,KAAK,EAAE;YACL,OAAO,EAAE,CAAC,CAAC,aAAa,CAAC,cAAc;YACvC,SAAS,EAAE,CAAC,GAAG,aAAa;YAC5B,KAAK,EAAE,CAAC;YACR,GAAG,YAAY;SAChB;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,74 @@
1
+ import { UseQueryOptions } from "@tanstack/react-query";
2
+ import { MezoChainToken } from "../lib/contracts";
3
+ export declare const BALANCE_OF_ABI: readonly [{
4
+ readonly inputs: readonly [{
5
+ readonly internalType: "address";
6
+ readonly name: "account";
7
+ readonly type: "address";
8
+ }];
9
+ readonly name: "balanceOf";
10
+ readonly outputs: readonly [{
11
+ readonly internalType: "uint256";
12
+ readonly name: "";
13
+ readonly type: "uint256";
14
+ }];
15
+ readonly stateMutability: "view";
16
+ readonly type: "function";
17
+ }];
18
+ type UseMezoChainTokensBalancesOptions<T extends MezoChainToken[]> = {
19
+ tokens?: T;
20
+ queryOptions?: Omit<UseQueryOptions<Record<T[number], TokenBalance>>, "queryKey" | "queryFn" | "select" | "enabled">;
21
+ };
22
+ export type TokenBalance = {
23
+ decimals: number;
24
+ symbol: string;
25
+ value: bigint;
26
+ usd: {
27
+ value: number;
28
+ formatted: string;
29
+ };
30
+ };
31
+ /**
32
+ * Hook to get the balance of a list of Mezo tokens for the current account
33
+ * @param options.tokens The list of tokens to get the balance for. It will
34
+ * fallback to all tokens if not provided.
35
+ * @param options.queryOptions The query options to pass to the
36
+ * `useReadContracts`
37
+ * @returns Tanstack's `useQuery` returnings with balance of tokens for the
38
+ * current account in form of typesafe object with token names as keys
39
+ * and balances as values.
40
+ * @example
41
+ * const mezoTokensBalance = useTokensBalances({
42
+ * tokens: ["mT", "mxSolvBTC"],
43
+ * })
44
+ * // Assuming the status is "success"
45
+ * console.log(mezoTokensBalance.data.mT) // Eg. { value: 0n ... }
46
+ * console.log(Object.keys(mezoTokensBalance.data)) // ["mT", "mxSolvBTC"]
47
+ */
48
+ export declare function useTokensBalances<T extends MezoChainToken[]>(options?: UseMezoChainTokensBalancesOptions<T>): import("@tanstack/react-query").UseQueryResult<Record<"BTC" | T[number], TokenBalance>, Error>;
49
+ /**
50
+ * Hook for invalidating current user's token balances. Can be used to
51
+ * invalidate the balances manually, which forces the data to be re-fetched.
52
+ * @returns Function `invalidateTokenBalances` that invalidates token balances
53
+ * @example
54
+ * const { invalidateTokenBalances } = useInvalidateTokensBalances()
55
+ * (...)
56
+ * await invalidateTokenBalances()
57
+ */
58
+ export declare function useInvalidateTokensBalances(): {
59
+ invalidateTokensBalances: () => Promise<void>;
60
+ };
61
+ /**
62
+ * Hook for resetting current user's token balances. Can be used to reset the
63
+ * balances manually, which forces the data to be re-fetched.
64
+ * @returns Function `resetTokenBalances` that invalidates token balances
65
+ * @example
66
+ * const { resetTokenBalances } = useResetTokensBalances()
67
+ * (...)
68
+ * await resetTokenBalances()
69
+ */
70
+ export declare function useResetTokensBalances(): {
71
+ resetTokenBalances: () => Promise<void>;
72
+ };
73
+ export {};
74
+ //# sourceMappingURL=useTokensBalances%20copy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTokensBalances copy.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTokensBalances copy.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,eAAe,EAChB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAEL,cAAc,EAEf,MAAM,kBAAkB,CAAA;AAwBzB,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,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,kGA0InD;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B;;EAS1C;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB;;EASrC"}
@@ -0,0 +1,206 @@
1
+ import { useConfig } from "wagmi";
2
+ import { useQuery, useQueryClient, } from "@tanstack/react-query";
3
+ import { getBalance, readContracts } from "wagmi/actions";
4
+ import { mainnetTokenContracts, testnetTokenContracts, } from "../lib/contracts";
5
+ import useWalletAccount from "./useWalletAccount";
6
+ import { getAsset, isBitcoinLikeCryptoAsset, isTTokenCryptoAsset, } from "../utils/assets";
7
+ import { convertToUsd } from "../utils/currency";
8
+ import { CHAIN_ID } from "../constants";
9
+ import { useAssetsConversionRates } from "./useAssetsConversionRates";
10
+ import { isMezoChain } from "../utils/chain";
11
+ import { amountAsUSD, bigIntToFloat, floatToHumanReadableFormat, } from "../utils/number2";
12
+ import { useBorrowData } from "./useBorrowData";
13
+ // Wagmi handles typesafety with ABI const assertions. TypeScript doesn't
14
+ // support importing JSON as const yet so types cannot be inferred from the
15
+ // imported contract. As a workaround there is minimal ABI definition that can
16
+ // be asserted types from.
17
+ // Ref: https://wagmi.sh/core/typescript#const-assert-abis-typed-data
18
+ export const BALANCE_OF_ABI = [
19
+ {
20
+ inputs: [
21
+ {
22
+ internalType: "address",
23
+ name: "account",
24
+ type: "address",
25
+ },
26
+ ],
27
+ name: "balanceOf",
28
+ outputs: [
29
+ {
30
+ internalType: "uint256",
31
+ name: "",
32
+ type: "uint256",
33
+ },
34
+ ],
35
+ stateMutability: "view",
36
+ type: "function",
37
+ },
38
+ ];
39
+ const BALANCE_TOKENS = [
40
+ "mcbBTC",
41
+ "mDAI",
42
+ "mFBTC",
43
+ "mSolvBTC",
44
+ "mswBTC",
45
+ "mT",
46
+ "mUSDC",
47
+ "mUSDe",
48
+ "mUSDT",
49
+ "mxSolvBTC",
50
+ "MUSD",
51
+ ];
52
+ const TOKEN_BALANCES_QUERY_KEY = "passport.tokenBalances";
53
+ /**
54
+ * Hook to get the balance of a list of Mezo tokens for the current account
55
+ * @param options.tokens The list of tokens to get the balance for. It will
56
+ * fallback to all tokens if not provided.
57
+ * @param options.queryOptions The query options to pass to the
58
+ * `useReadContracts`
59
+ * @returns Tanstack's `useQuery` returnings with balance of tokens for the
60
+ * current account in form of typesafe object with token names as keys
61
+ * and balances as values.
62
+ * @example
63
+ * const mezoTokensBalance = useTokensBalances({
64
+ * tokens: ["mT", "mxSolvBTC"],
65
+ * })
66
+ * // Assuming the status is "success"
67
+ * console.log(mezoTokensBalance.data.mT) // Eg. { value: 0n ... }
68
+ * console.log(Object.keys(mezoTokensBalance.data)) // ["mT", "mxSolvBTC"]
69
+ */
70
+ export function useTokensBalances(options = {}) {
71
+ const { tokens = BALANCE_TOKENS, ...restQueryOptions } = options;
72
+ const walletAccount = useWalletAccount();
73
+ const config = useConfig();
74
+ const { data: conversionRatesData } = useAssetsConversionRates();
75
+ const isMezoChainId = isMezoChain(config.state.chainId);
76
+ const { data: borrowData } = useBorrowData();
77
+ return useQuery({
78
+ queryKey: [
79
+ TOKEN_BALANCES_QUERY_KEY,
80
+ walletAccount?.accountAddress,
81
+ options.tokens,
82
+ config.state.chainId,
83
+ borrowData?.collateral.value.toString(),
84
+ ],
85
+ enabled: !!walletAccount?.accountAddress &&
86
+ !!conversionRatesData &&
87
+ isMezoChainId &&
88
+ !!borrowData?.collateral.value,
89
+ queryFn: async () => {
90
+ const { chainId } = config.state;
91
+ const isMainnet = chainId === CHAIN_ID.mainnet;
92
+ const contractsMap = isMainnet
93
+ ? mainnetTokenContracts
94
+ : testnetTokenContracts;
95
+ const accountAddress = walletAccount?.accountAddress;
96
+ if (!accountAddress) {
97
+ throw new Error("Account address is not available.");
98
+ }
99
+ const tokenContracts = tokens.map((token) => {
100
+ const { address } = contractsMap[token];
101
+ return {
102
+ address,
103
+ abi: BALANCE_OF_ABI,
104
+ functionName: "balanceOf",
105
+ args: [accountAddress],
106
+ chainId,
107
+ };
108
+ });
109
+ return Promise.all([
110
+ getBalance(config, { address: accountAddress }),
111
+ readContracts(config, {
112
+ contracts: tokenContracts,
113
+ }),
114
+ ]);
115
+ },
116
+ select: (data) => {
117
+ const [btcBalance, tokensBalancesData] = data;
118
+ if (!conversionRatesData) {
119
+ throw new Error("Conversion rates data is not available.");
120
+ }
121
+ const parsedBtcBalance = {
122
+ ...btcBalance,
123
+ symbol: getAsset("BTC").symbol,
124
+ usd: convertToUsd(btcBalance.value, btcBalance.decimals, BigInt(conversionRatesData.rates.BTC), conversionRatesData.decimals),
125
+ };
126
+ const parsedTokensBalances = tokensBalancesData.map((item, index) => {
127
+ const token = tokens[index];
128
+ const { decimals, symbol } = getAsset(token);
129
+ if (item.status === "failure") {
130
+ throw new Error(`Failed to fetch balance of ${token} for ${walletAccount?.accountAddress}.`);
131
+ }
132
+ const floatAmount = bigIntToFloat({
133
+ amount: item.result,
134
+ decimals,
135
+ });
136
+ // const formatted =
137
+ // Number(floatAmount) * getTokenUsdPrice(token as SupportedTokenName)
138
+ const tokenBalance = {
139
+ value: item.result,
140
+ decimals,
141
+ symbol,
142
+ };
143
+ let value = Number(item.result);
144
+ let usd = {
145
+ value,
146
+ formatted: floatToHumanReadableFormat(amountAsUSD({ amount: value })),
147
+ };
148
+ if (isBitcoinLikeCryptoAsset(tokenBalance.symbol)) {
149
+ // TODO: had to add number for rates to avoid red underline
150
+ value = Number(floatAmount) * Number(conversionRatesData.rates.BTC);
151
+ usd = {
152
+ value,
153
+ formatted: floatToHumanReadableFormat(amountAsUSD({ amount: value })),
154
+ };
155
+ }
156
+ if (isTTokenCryptoAsset(tokenBalance.symbol)) {
157
+ // TODO: had to add number for rates to avoid red underline
158
+ value = Number(floatAmount) * Number(conversionRatesData.rates.mT);
159
+ usd = {
160
+ value,
161
+ formatted: floatToHumanReadableFormat(amountAsUSD({ amount: value })),
162
+ };
163
+ }
164
+ return { ...tokenBalance, usd };
165
+ });
166
+ return [parsedBtcBalance, ...parsedTokensBalances].reduce((acc, token) => ({
167
+ ...acc,
168
+ [token.symbol]: token,
169
+ }), {});
170
+ },
171
+ ...restQueryOptions,
172
+ });
173
+ }
174
+ /**
175
+ * Hook for invalidating current user's token balances. Can be used to
176
+ * invalidate the balances manually, which forces the data to be re-fetched.
177
+ * @returns Function `invalidateTokenBalances` that invalidates token balances
178
+ * @example
179
+ * const { invalidateTokenBalances } = useInvalidateTokensBalances()
180
+ * (...)
181
+ * await invalidateTokenBalances()
182
+ */
183
+ export function useInvalidateTokensBalances() {
184
+ const queryClient = useQueryClient();
185
+ const invalidateTokensBalancesHandler = () => queryClient.invalidateQueries({ queryKey: [TOKEN_BALANCES_QUERY_KEY] });
186
+ return {
187
+ invalidateTokensBalances: invalidateTokensBalancesHandler,
188
+ };
189
+ }
190
+ /**
191
+ * Hook for resetting current user's token balances. Can be used to reset the
192
+ * balances manually, which forces the data to be re-fetched.
193
+ * @returns Function `resetTokenBalances` that invalidates token balances
194
+ * @example
195
+ * const { resetTokenBalances } = useResetTokensBalances()
196
+ * (...)
197
+ * await resetTokenBalances()
198
+ */
199
+ export function useResetTokensBalances() {
200
+ const queryClient = useQueryClient();
201
+ const resetTokenBalancesHandler = () => queryClient.resetQueries({ queryKey: [TOKEN_BALANCES_QUERY_KEY] });
202
+ return {
203
+ resetTokenBalances: resetTokenBalancesHandler,
204
+ };
205
+ }
206
+ //# sourceMappingURL=useTokensBalances%20copy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTokensBalances copy.js","sourceRoot":"","sources":["../../../src/hooks/useTokensBalances copy.ts"],"names":[],"mappings":"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"}
@@ -9,5 +9,5 @@ export declare const testnetTokenContracts: ContractsMap<MezoChainToken>;
9
9
  export declare const mainnetTokenContracts: ContractsMap<MezoChainToken>;
10
10
  export declare const mainnetBorrowContracts: ContractsMap<MezoBorrowContract>;
11
11
  export declare const testnetBorrowContracts: ContractsMap<MezoBorrowContract>;
12
- export { default as priceOracleContract } from "./priceOracle";
12
+ export {};
13
13
  //# sourceMappingURL=index.d.ts.map