@mezo-org/passport 0.4.0-dev.33 → 0.4.0-dev.35
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.
- package/dist/src/components/Dropdown/Dropdown.d.ts +2 -2
- package/dist/src/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/src/components/Dropdown/Dropdown.js +2 -2
- package/dist/src/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/src/hooks/constants.d.ts +1 -0
- package/dist/src/hooks/constants.d.ts.map +1 -1
- package/dist/src/hooks/constants.js +1 -0
- package/dist/src/hooks/constants.js.map +1 -1
- package/dist/src/hooks/useDropdownData.d.ts +6 -7
- package/dist/src/hooks/useDropdownData.d.ts.map +1 -1
- package/dist/src/hooks/useDropdownData.js +11 -10
- package/dist/src/hooks/useDropdownData.js.map +1 -1
- package/dist/src/hooks/useGetMats.d.ts +3 -0
- package/dist/src/hooks/useGetMats.d.ts.map +1 -0
- package/dist/src/hooks/useGetMats.js +22 -0
- package/dist/src/hooks/useGetMats.js.map +1 -0
- package/package.json +1 -1
- package/src/components/Dropdown/Dropdown.tsx +4 -4
- package/src/hooks/constants.ts +1 -0
- package/src/hooks/useDropdownData.ts +11 -10
- package/src/hooks/useGetMats.ts +28 -0
|
@@ -13,8 +13,8 @@ export type DropdownProps = {
|
|
|
13
13
|
signedOut?: Omit<ButtonProps, "onClick">;
|
|
14
14
|
};
|
|
15
15
|
onOtherAssetsClick?: () => void;
|
|
16
|
-
/** Time in milliseconds after which
|
|
17
|
-
|
|
16
|
+
/** Time in milliseconds after which mats balance in dropdown should be re-fetched. Default is 90000 (90 secs) */
|
|
17
|
+
matsRefetchInterval?: number;
|
|
18
18
|
/** Time in milliseconds after which native balance in dropdown should be re-fetched. Default is 90000 (90 secs) */
|
|
19
19
|
nativeBalanceRefetchInterval?: number;
|
|
20
20
|
} & Omit<StatefulPopoverProps, "children" | "content">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.d.ts","sourceRoot":"","sources":["../../../../src/components/Dropdown/Dropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEX,oBAAoB,EAErB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAA6B,MAAM,OAAO,CAAA;AAUjD,MAAM,MAAM,aAAa,GAAG;IAC1B,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,mDAAmD;IACnD,YAAY,CAAC,EAAE;QACb,QAAQ,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,MAAM,CAAC,GAAG;YACjD,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAA;SACzB,CAAA;QACD,SAAS,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;KACzC,CAAA;IACD,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC/B,
|
|
1
|
+
{"version":3,"file":"Dropdown.d.ts","sourceRoot":"","sources":["../../../../src/components/Dropdown/Dropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEX,oBAAoB,EAErB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAA6B,MAAM,OAAO,CAAA;AAUjD,MAAM,MAAM,aAAa,GAAG;IAC1B,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,mDAAmD;IACnD,YAAY,CAAC,EAAE;QACb,QAAQ,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,MAAM,CAAC,GAAG;YACjD,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAA;SACzB,CAAA;QACD,SAAS,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;KACzC,CAAA;IACD,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC/B,iHAAiH;IACjH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,mHAAmH;IACnH,4BAA4B,CAAC,EAAE,MAAM,CAAA;CACtC,GAAG,IAAI,CAAC,oBAAoB,EAAE,UAAU,GAAG,SAAS,CAAC,CAAA;AAEtD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,qBA0G5C"}
|
|
@@ -15,10 +15,10 @@ import useDropdownData from "../../hooks/useDropdownData";
|
|
|
15
15
|
* @returns {JSX.Element}
|
|
16
16
|
*/
|
|
17
17
|
export function Dropdown(props) {
|
|
18
|
-
const { placement = "bottomRight", animateOutTime = 120, onSignIn, onSignOut, overrides, triggerProps, onOtherAssetsClick,
|
|
18
|
+
const { placement = "bottomRight", animateOutTime = 120, onSignIn, onSignOut, overrides, triggerProps, onOtherAssetsClick, matsRefetchInterval, nativeBalanceRefetchInterval, ...restProps } = props;
|
|
19
19
|
const [, theme] = useStyletron();
|
|
20
20
|
const data = useDropdownData({
|
|
21
|
-
|
|
21
|
+
matsRefetchInterval,
|
|
22
22
|
nativeBalanceRefetchInterval,
|
|
23
23
|
});
|
|
24
24
|
const isCriticalDropdownDataLoaded = useMemo(() => Boolean(data.mezoId && data.accountAddress && data.walletAddress), [data]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.js","sourceRoot":"","sources":["../../../../src/components/Dropdown/Dropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EAEf,YAAY,GACb,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,aAAa,MAAM,4BAA4B,CAAA;AACtD,OAAO,gBAAgB,MAAM,8BAA8B,CAAA;AAC3D,OAAO,gBAAgB,MAAM,oBAAoB,CAAA;AACjD,OAAO,OAAO,MAAM,WAAW,CAAA;AAC/B,OAAO,mBAAmB,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,eAAe,MAAM,6BAA6B,CAAA;AAqBzD;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,MAAM,EACJ,SAAS,GAAG,aAAa,EACzB,cAAc,GAAG,GAAG,EACpB,QAAQ,EACR,SAAS,EACT,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"Dropdown.js","sourceRoot":"","sources":["../../../../src/components/Dropdown/Dropdown.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/hooks/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/hooks/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;;CAMtB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/hooks/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,qBAAqB,EAAE,qBAAqB;CAC7C,CAAA"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/hooks/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,qBAAqB,EAAE,qBAAqB;CAC7C,CAAA"}
|
|
@@ -5,16 +5,15 @@ export type DropdownCryptoAsset<T = CryptoAssetKey> = {
|
|
|
5
5
|
};
|
|
6
6
|
/**
|
|
7
7
|
* Aggregates dropdown data for Dropdown component.
|
|
8
|
-
* @param {
|
|
9
|
-
* Object containing refetch intervals time (in milliseconds) for
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* 90000 (90 secs).
|
|
8
|
+
* @param {matsRefetchInterval: number, nativeBalanceRefetchInterval: number }
|
|
9
|
+
* Object containing refetch intervals time (in milliseconds) for mats and for
|
|
10
|
+
* native balance. After that time the specific value should be marked as stale
|
|
11
|
+
* and re-fetched. Default value for both is 90000 (90 secs).
|
|
13
12
|
* @returns Dropdown data.
|
|
14
13
|
* @dev This hook is for internal use only.
|
|
15
14
|
*/
|
|
16
|
-
export default function useDropdownData({
|
|
17
|
-
|
|
15
|
+
export default function useDropdownData({ matsRefetchInterval, nativeBalanceRefetchInterval, }: {
|
|
16
|
+
matsRefetchInterval?: number | undefined;
|
|
18
17
|
nativeBalanceRefetchInterval?: number | undefined;
|
|
19
18
|
}): {
|
|
20
19
|
mezoId: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDropdownData.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDropdownData.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EAGf,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"useDropdownData.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDropdownData.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EAGf,MAAM,uBAAuB,CAAA;AAW9B,MAAM,MAAM,mBAAmB,CAAC,CAAC,GAAG,cAAc,IAAI;IACpD,IAAI,EAAE,CAAC,CAAA;IACP,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AASD;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,mBAA2B,EAC3B,4BAAoC,GACrC;;;CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiGA"}
|
|
@@ -9,6 +9,7 @@ import { useBorrowData } from "./useBorrowData";
|
|
|
9
9
|
import { CHAIN_ID } from "../constants";
|
|
10
10
|
import { usePassportContext } from "./usePassportContext";
|
|
11
11
|
import { useWatchTransferEventsForAllTokens } from "./useWatchTransferEvents";
|
|
12
|
+
import { useGetMats } from "./useGetMats";
|
|
12
13
|
const DEFAULT_ASSET_DATA = {
|
|
13
14
|
rawBalance: 0n,
|
|
14
15
|
formattedBalance: "0.0000",
|
|
@@ -17,15 +18,14 @@ const DEFAULT_ASSET_DATA = {
|
|
|
17
18
|
};
|
|
18
19
|
/**
|
|
19
20
|
* Aggregates dropdown data for Dropdown component.
|
|
20
|
-
* @param {
|
|
21
|
-
* Object containing refetch intervals time (in milliseconds) for
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* 90000 (90 secs).
|
|
21
|
+
* @param {matsRefetchInterval: number, nativeBalanceRefetchInterval: number }
|
|
22
|
+
* Object containing refetch intervals time (in milliseconds) for mats and for
|
|
23
|
+
* native balance. After that time the specific value should be marked as stale
|
|
24
|
+
* and re-fetched. Default value for both is 90000 (90 secs).
|
|
25
25
|
* @returns Dropdown data.
|
|
26
26
|
* @dev This hook is for internal use only.
|
|
27
27
|
*/
|
|
28
|
-
export default function useDropdownData({
|
|
28
|
+
export default function useDropdownData({ matsRefetchInterval = 90000, nativeBalanceRefetchInterval = 90000, }) {
|
|
29
29
|
const { walletAddress, accountAddress, networkFamily: walletType, } = useWalletAccount();
|
|
30
30
|
const { environment = "mainnet" } = usePassportContext();
|
|
31
31
|
const { data: btcBalance } = useBalance({
|
|
@@ -36,9 +36,10 @@ export default function useDropdownData({ accountDataRefetchInterval = 90000, na
|
|
|
36
36
|
refetchInterval: nativeBalanceRefetchInterval,
|
|
37
37
|
},
|
|
38
38
|
});
|
|
39
|
-
const { data: passportAccount } = useGetCurrentAccount(
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
const { data: passportAccount } = useGetCurrentAccount();
|
|
40
|
+
const { data: matsForAccountAddress } = useGetMats({
|
|
41
|
+
staleTime: matsRefetchInterval,
|
|
42
|
+
refetchInterval: matsRefetchInterval,
|
|
42
43
|
});
|
|
43
44
|
const { data: assetsConversionRates } = useAssetsConversionRates();
|
|
44
45
|
const { data: tokensBalances } = useTokensBalances();
|
|
@@ -74,7 +75,7 @@ export default function useDropdownData({ accountDataRefetchInterval = 90000, na
|
|
|
74
75
|
};
|
|
75
76
|
const otherAssetsUsdTotal = otherAssetsData.reduce((sum, { usdBalance }) => sum + usdBalance, 0);
|
|
76
77
|
const usdTotalBalance = detailedAssets.reduce((sum, { usdBalance }) => sum + usdBalance, 0);
|
|
77
|
-
const matsBalance =
|
|
78
|
+
const matsBalance = matsForAccountAddress || 0;
|
|
78
79
|
const usdCollateral = fromFixedPoint((debt?.collateral ?? 0n) * BigInt(assetsConversionRates?.usd.btc ?? 0), 18);
|
|
79
80
|
const usdTroveDebt = fromFixedPoint(debt?.troveDebt ?? 0n, 18);
|
|
80
81
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDropdownData.js","sourceRoot":"","sources":["../../../src/hooks/useDropdownData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,GAAG,CAAA;AACxC,OAAO,EAEL,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,wBAAwB,MAAM,4BAA4B,CAAA;AACjE,OAAO,gBAAgB,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,kCAAkC,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"useDropdownData.js","sourceRoot":"","sources":["../../../src/hooks/useDropdownData.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { UseBaseQueryOptions } from "@tanstack/react-query";
|
|
2
|
+
export declare function useGetMats(queryOptions?: Omit<UseBaseQueryOptions<number | null>, "queryKey" | "queryFn">): import("@tanstack/react-query").UseQueryResult<number | null, Error>;
|
|
3
|
+
//# sourceMappingURL=useGetMats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGetMats.d.ts","sourceRoot":"","sources":["../../../src/hooks/useGetMats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAMhF,wBAAgB,UAAU,CACxB,YAAY,GAAE,IAAI,CAChB,mBAAmB,CAAC,MAAM,GAAG,IAAI,CAAC,EAClC,UAAU,GAAG,SAAS,CAClB,wEAiBP"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useQuery, skipToken } from "@tanstack/react-query";
|
|
2
|
+
import { useAccount } from "wagmi";
|
|
3
|
+
import { QUERY_KEYS } from "./constants";
|
|
4
|
+
import { ONE_MINUTE_MS } from "../utils/time";
|
|
5
|
+
import { usePortalApiClient } from "./usePortalApiClient";
|
|
6
|
+
export function useGetMats(queryOptions = {}) {
|
|
7
|
+
const { address } = useAccount();
|
|
8
|
+
const portalApiClient = usePortalApiClient();
|
|
9
|
+
return useQuery({
|
|
10
|
+
queryKey: [QUERY_KEYS.MATS, address],
|
|
11
|
+
queryFn: address
|
|
12
|
+
? async () => {
|
|
13
|
+
const portalMats = await portalApiClient.getPortalMats(address);
|
|
14
|
+
return portalMats.totalMats;
|
|
15
|
+
}
|
|
16
|
+
: skipToken,
|
|
17
|
+
staleTime: ONE_MINUTE_MS,
|
|
18
|
+
retry: 1,
|
|
19
|
+
...queryOptions,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=useGetMats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGetMats.js","sourceRoot":"","sources":["../../../src/hooks/useGetMats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAuB,MAAM,uBAAuB,CAAA;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD,MAAM,UAAU,UAAU,CACxB,eAGI,EAAE;IAEN,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAAA;IAChC,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAA;IAE5C,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;QACpC,OAAO,EAAE,OAAO;YACd,CAAC,CAAC,KAAK,IAAI,EAAE;gBACT,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;gBAC/D,OAAO,UAAU,CAAC,SAAS,CAAA;YAC7B,CAAC;YACH,CAAC,CAAC,SAAS;QACb,SAAS,EAAE,aAAa;QACxB,KAAK,EAAE,CAAC;QACR,GAAG,YAAY;KAChB,CAAC,CAAA;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -28,8 +28,8 @@ export type DropdownProps = {
|
|
|
28
28
|
signedOut?: Omit<ButtonProps, "onClick">
|
|
29
29
|
}
|
|
30
30
|
onOtherAssetsClick?: () => void
|
|
31
|
-
/** Time in milliseconds after which
|
|
32
|
-
|
|
31
|
+
/** Time in milliseconds after which mats balance in dropdown should be re-fetched. Default is 90000 (90 secs) */
|
|
32
|
+
matsRefetchInterval?: number
|
|
33
33
|
/** Time in milliseconds after which native balance in dropdown should be re-fetched. Default is 90000 (90 secs) */
|
|
34
34
|
nativeBalanceRefetchInterval?: number
|
|
35
35
|
} & Omit<StatefulPopoverProps, "children" | "content">
|
|
@@ -48,7 +48,7 @@ export function Dropdown(props: DropdownProps) {
|
|
|
48
48
|
overrides,
|
|
49
49
|
triggerProps,
|
|
50
50
|
onOtherAssetsClick,
|
|
51
|
-
|
|
51
|
+
matsRefetchInterval,
|
|
52
52
|
nativeBalanceRefetchInterval,
|
|
53
53
|
...restProps
|
|
54
54
|
} = props
|
|
@@ -56,7 +56,7 @@ export function Dropdown(props: DropdownProps) {
|
|
|
56
56
|
const [, theme] = useStyletron()
|
|
57
57
|
|
|
58
58
|
const data = useDropdownData({
|
|
59
|
-
|
|
59
|
+
matsRefetchInterval,
|
|
60
60
|
nativeBalanceRefetchInterval,
|
|
61
61
|
})
|
|
62
62
|
|
package/src/hooks/constants.ts
CHANGED
|
@@ -13,6 +13,7 @@ import { useBorrowData } from "./useBorrowData"
|
|
|
13
13
|
import { CHAIN_ID } from "../constants"
|
|
14
14
|
import { usePassportContext } from "./usePassportContext"
|
|
15
15
|
import { useWatchTransferEventsForAllTokens } from "./useWatchTransferEvents"
|
|
16
|
+
import { useGetMats } from "./useGetMats"
|
|
16
17
|
|
|
17
18
|
export type DropdownCryptoAsset<T = CryptoAssetKey> = {
|
|
18
19
|
type: T
|
|
@@ -28,16 +29,15 @@ const DEFAULT_ASSET_DATA = {
|
|
|
28
29
|
|
|
29
30
|
/**
|
|
30
31
|
* Aggregates dropdown data for Dropdown component.
|
|
31
|
-
* @param {
|
|
32
|
-
* Object containing refetch intervals time (in milliseconds) for
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
* 90000 (90 secs).
|
|
32
|
+
* @param {matsRefetchInterval: number, nativeBalanceRefetchInterval: number }
|
|
33
|
+
* Object containing refetch intervals time (in milliseconds) for mats and for
|
|
34
|
+
* native balance. After that time the specific value should be marked as stale
|
|
35
|
+
* and re-fetched. Default value for both is 90000 (90 secs).
|
|
36
36
|
* @returns Dropdown data.
|
|
37
37
|
* @dev This hook is for internal use only.
|
|
38
38
|
*/
|
|
39
39
|
export default function useDropdownData({
|
|
40
|
-
|
|
40
|
+
matsRefetchInterval = 90000,
|
|
41
41
|
nativeBalanceRefetchInterval = 90000,
|
|
42
42
|
}) {
|
|
43
43
|
const {
|
|
@@ -54,9 +54,10 @@ export default function useDropdownData({
|
|
|
54
54
|
refetchInterval: nativeBalanceRefetchInterval,
|
|
55
55
|
},
|
|
56
56
|
})
|
|
57
|
-
const { data: passportAccount } = useGetCurrentAccount(
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
const { data: passportAccount } = useGetCurrentAccount()
|
|
58
|
+
const { data: matsForAccountAddress } = useGetMats({
|
|
59
|
+
staleTime: matsRefetchInterval,
|
|
60
|
+
refetchInterval: matsRefetchInterval,
|
|
60
61
|
})
|
|
61
62
|
const { data: assetsConversionRates } = useAssetsConversionRates()
|
|
62
63
|
const { data: tokensBalances } = useTokensBalances()
|
|
@@ -113,7 +114,7 @@ export default function useDropdownData({
|
|
|
113
114
|
0,
|
|
114
115
|
)
|
|
115
116
|
|
|
116
|
-
const matsBalance =
|
|
117
|
+
const matsBalance = matsForAccountAddress || 0
|
|
117
118
|
|
|
118
119
|
const usdCollateral = fromFixedPoint(
|
|
119
120
|
(debt?.collateral ?? 0n) * BigInt(assetsConversionRates?.usd.btc ?? 0),
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { useQuery, skipToken, UseBaseQueryOptions } from "@tanstack/react-query"
|
|
2
|
+
import { useAccount } from "wagmi"
|
|
3
|
+
import { QUERY_KEYS } from "./constants"
|
|
4
|
+
import { ONE_MINUTE_MS } from "../utils/time"
|
|
5
|
+
import { usePortalApiClient } from "./usePortalApiClient"
|
|
6
|
+
|
|
7
|
+
export function useGetMats(
|
|
8
|
+
queryOptions: Omit<
|
|
9
|
+
UseBaseQueryOptions<number | null>,
|
|
10
|
+
"queryKey" | "queryFn"
|
|
11
|
+
> = {},
|
|
12
|
+
) {
|
|
13
|
+
const { address } = useAccount()
|
|
14
|
+
const portalApiClient = usePortalApiClient()
|
|
15
|
+
|
|
16
|
+
return useQuery({
|
|
17
|
+
queryKey: [QUERY_KEYS.MATS, address],
|
|
18
|
+
queryFn: address
|
|
19
|
+
? async () => {
|
|
20
|
+
const portalMats = await portalApiClient.getPortalMats(address)
|
|
21
|
+
return portalMats.totalMats
|
|
22
|
+
}
|
|
23
|
+
: skipToken,
|
|
24
|
+
staleTime: ONE_MINUTE_MS,
|
|
25
|
+
retry: 1,
|
|
26
|
+
...queryOptions,
|
|
27
|
+
})
|
|
28
|
+
}
|