@mezo-org/passport 0.7.2-dev.1 → 0.7.2-dev.3
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/api/portal.d.ts +1 -1
- package/dist/src/api/portal.d.ts.map +1 -1
- package/dist/src/hooks/useAssetsConversionRates.d.ts +7 -8
- package/dist/src/hooks/useAssetsConversionRates.d.ts.map +1 -1
- package/dist/src/hooks/useAssetsConversionRates.js +11 -13
- package/dist/src/hooks/useAssetsConversionRates.js.map +1 -1
- package/dist/src/hooks/useAuthenticateWithWallet.d.ts.map +1 -1
- package/dist/src/hooks/useAuthenticateWithWallet.js +6 -0
- package/dist/src/hooks/useAuthenticateWithWallet.js.map +1 -1
- package/dist/src/hooks/useBorrowData.d.ts +12 -14
- package/dist/src/hooks/useBorrowData.d.ts.map +1 -1
- package/dist/src/hooks/useBorrowData.js +43 -45
- package/dist/src/hooks/useBorrowData.js.map +1 -1
- package/dist/src/hooks/useTokensBalances.d.ts.map +1 -1
- package/dist/src/hooks/useTokensBalances.js +37 -37
- package/dist/src/hooks/useTokensBalances.js.map +1 -1
- package/dist/src/hooks/useValidateMezoId.d.ts.map +1 -1
- package/dist/src/hooks/useValidateMezoId.js +5 -7
- package/dist/src/hooks/useValidateMezoId.js.map +1 -1
- package/dist/src/utils/siww.d.ts.map +1 -1
- package/dist/src/utils/siww.js +3 -0
- package/dist/src/utils/siww.js.map +1 -1
- package/package.json +1 -1
- package/src/api/portal.ts +1 -1
- package/src/hooks/useAssetsConversionRates.ts +16 -31
- package/src/hooks/useAuthenticateWithWallet.ts +9 -0
- package/src/hooks/useBorrowData.ts +49 -67
- package/src/hooks/useTokensBalances.ts +49 -70
- package/src/hooks/useValidateMezoId.ts +6 -13
- package/src/utils/siww.ts +4 -0
package/dist/src/api/portal.d.ts
CHANGED
|
@@ -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,
|
|
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<
|
|
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":"
|
|
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,
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuthenticateWithWallet.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuthenticateWithWallet.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,eAAe,EAEhB,MAAM,uBAAuB,CAAA;AAS9B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAGrC,iBAAS,yBAAyB,CAChC,mBAAmB,UAAQ,EAC3B,eAAe,GAAE,IAAI,CACnB,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC,EACrD,YAAY,GAAG,aAAa,CACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"useAuthenticateWithWallet.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuthenticateWithWallet.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,eAAe,EAEhB,MAAM,uBAAuB,CAAA;AAS9B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAGrC,iBAAS,yBAAyB,CAChC,mBAAmB,UAAQ,EAC3B,eAAe,GAAE,IAAI,CACnB,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC,EACrD,YAAY,GAAG,aAAa,CACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkGP;AAED,OAAO,EAAE,yBAAyB,EAAE,CAAA"}
|
|
@@ -18,16 +18,22 @@ function useAuthenticateWithWallet(shouldCreateAccount = false, mutationOptions
|
|
|
18
18
|
});
|
|
19
19
|
const { mutate, mutateAsync, ...signInMutationRestParameters } = useMutation({
|
|
20
20
|
mutationFn: async (chainId) => {
|
|
21
|
+
console.log("auth with wallet");
|
|
21
22
|
if (!walletAccount.walletAddress) {
|
|
22
23
|
throw new Error("Sign in error: Wallet not connected!");
|
|
23
24
|
}
|
|
25
|
+
console.log("getting nonce...");
|
|
24
26
|
const nonce = await ensureNoSessionAndFetchNonce();
|
|
27
|
+
console.log("nonce: ", nonce);
|
|
25
28
|
const messageResult = createSignInWithWalletMessage(walletAccount.walletAddress, nonce, walletAccount.networkFamily, chainId ?? walletAccount.chainId);
|
|
29
|
+
console.log("messageResult: ", messageResult);
|
|
26
30
|
const signatureResult = await signMessageAsync({
|
|
27
31
|
message: messageResult,
|
|
28
32
|
connector: walletAccount.connector,
|
|
29
33
|
});
|
|
34
|
+
console.log("signatureResult: ", signatureResult);
|
|
30
35
|
await verifyDomainInSignInWithWalletMessage(messageResult, signatureResult, nonce);
|
|
36
|
+
console.log("after verify");
|
|
31
37
|
if (shouldCreateAccount) {
|
|
32
38
|
const getAccountByAddressResult = await getAccountByAddress();
|
|
33
39
|
if (getAccountByAddressResult.data) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuthenticateWithWallet.js","sourceRoot":"","sources":["../../../src/hooks/useAuthenticateWithWallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAGL,WAAW,GACZ,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAA;AACnF,OAAO,EACL,6BAA6B,EAC7B,qCAAqC,GACtC,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,OAAO,gBAAgB,MAAM,oBAAoB,CAAA;AAEjD,SAAS,yBAAyB,CAChC,mBAAmB,GAAG,KAAK,EAC3B,kBAGI,EAAE;IAEN,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;IACxC,MAAM,EAAE,4BAA4B,EAAE,GAAG,+BAA+B,EAAE,CAAA;IAC1E,MAAM,EAAE,kBAAkB,EAAE,GAAG,gBAAgB,EAAE,CAAA;IACjD,MAAM,EAAE,kBAAkB,EAAE,GAAG,gBAAgB,EAAE,CAAA;IACjD,MAAM,EAAE,gBAAgB,EAAE,GAAG,cAAc,EAAE,CAAA;IAE7C,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,GAAG,sBAAsB,CAC7D,aAAa,CAAC,aAAa,EAC3B;QACE,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,KAAK;KACb,CACF,CAAA;IAED,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,4BAA4B,EAAE,GAAG,WAAW,CAAC;QAC3E,UAAU,EAAE,KAAK,EAAE,OAAuB,EAAE,EAAE;YAC5C,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;YACzD,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,4BAA4B,EAAE,CAAA;YAElD,MAAM,aAAa,GAAG,6BAA6B,CACjD,aAAa,CAAC,aAAa,EAC3B,KAAK,EACL,aAAa,CAAC,aAAc,EAC5B,OAAO,IAAI,aAAa,CAAC,OAAO,CACjC,CAAA;YACD,MAAM,eAAe,GAAG,MAAM,gBAAgB,CAAC;gBAC7C,OAAO,EAAE,aAAa;gBACtB,SAAS,EAAE,aAAa,CAAC,SAAS;aACnC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"useAuthenticateWithWallet.js","sourceRoot":"","sources":["../../../src/hooks/useAuthenticateWithWallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { UseReadContractsReturnType } from "wagmi";
|
|
2
1
|
/**
|
|
3
2
|
* Query hook for getting borrow data. Returns collateral and trove debt for the
|
|
4
3
|
* connected account, based on it's evm address.
|
|
5
4
|
* @param queryOptions Query options passed to the underlying `useQuery` hook.
|
|
6
5
|
*/
|
|
7
|
-
export declare function useBorrowData(queryOptions?: {}): UseReadContractsReturnType<
|
|
8
|
-
abi: readonly [{
|
|
6
|
+
export declare function useBorrowData(queryOptions?: {}): import("wagmi").UseReadContractsReturnType<readonly [{
|
|
7
|
+
readonly abi: readonly [{
|
|
9
8
|
readonly inputs: readonly [{
|
|
10
9
|
readonly internalType: "address";
|
|
11
10
|
readonly name: "_borrower";
|
|
@@ -40,12 +39,12 @@ export declare function useBorrowData(queryOptions?: {}): UseReadContractsReturn
|
|
|
40
39
|
readonly stateMutability: "view";
|
|
41
40
|
readonly type: "function";
|
|
42
41
|
}];
|
|
43
|
-
address: `0x${string}`;
|
|
44
|
-
functionName:
|
|
45
|
-
args: `0x${string}`
|
|
46
|
-
chainId: number;
|
|
47
|
-
}
|
|
48
|
-
abi: readonly [{
|
|
42
|
+
readonly address: `0x${string}`;
|
|
43
|
+
readonly functionName: "getEntireDebtAndColl";
|
|
44
|
+
readonly args: [`0x${string}`];
|
|
45
|
+
readonly chainId: number;
|
|
46
|
+
}, {
|
|
47
|
+
readonly abi: readonly [{
|
|
49
48
|
readonly inputs: readonly [];
|
|
50
49
|
readonly name: "MUSD_GAS_COMPENSATION";
|
|
51
50
|
readonly outputs: readonly [{
|
|
@@ -56,11 +55,10 @@ export declare function useBorrowData(queryOptions?: {}): UseReadContractsReturn
|
|
|
56
55
|
readonly stateMutability: "view";
|
|
57
56
|
readonly type: "function";
|
|
58
57
|
}];
|
|
59
|
-
address: `0x${string}`;
|
|
60
|
-
functionName:
|
|
61
|
-
chainId: number;
|
|
62
|
-
|
|
63
|
-
})[], true, {
|
|
58
|
+
readonly address: `0x${string}`;
|
|
59
|
+
readonly functionName: "MUSD_GAS_COMPENSATION";
|
|
60
|
+
readonly chainId: number;
|
|
61
|
+
}], true, {
|
|
64
62
|
collateral: {
|
|
65
63
|
value: bigint;
|
|
66
64
|
decimals: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBorrowData.d.ts","sourceRoot":"","sources":["../../../src/hooks/useBorrowData.ts"],"names":[],"mappings":"
|
|
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"}
|
|
@@ -99,55 +99,53 @@ export function useBorrowData(queryOptions = {}) {
|
|
|
99
99
|
};
|
|
100
100
|
}, [environment]);
|
|
101
101
|
const chainId = CHAIN_ID[environment];
|
|
102
|
-
const contracts = useMemo(() => [
|
|
103
|
-
{
|
|
104
|
-
abi: TROVE_MANAGER_ABI,
|
|
105
|
-
address: contractAddress.troveManager,
|
|
106
|
-
functionName: "getEntireDebtAndColl",
|
|
107
|
-
args: walletAccount.accountAddress
|
|
108
|
-
? [walletAccount.accountAddress]
|
|
109
|
-
: ["0x"],
|
|
110
|
-
chainId,
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
abi: BORROWER_OPERATIONS_ABI,
|
|
114
|
-
address: contractAddress.borrowerOperations,
|
|
115
|
-
functionName: "MUSD_GAS_COMPENSATION",
|
|
116
|
-
chainId,
|
|
117
|
-
},
|
|
118
|
-
], [chainId, contractAddress, walletAccount.accountAddress]);
|
|
119
|
-
const selectBorrowData = useCallback((data) => {
|
|
120
|
-
if (!data || data.some((item) => !item.result))
|
|
121
|
-
throw new Error("No borrow data available");
|
|
122
|
-
if (!collateralPrice)
|
|
123
|
-
throw new Error("Collateral price not available");
|
|
124
|
-
const [rawCollateral, principal, interest] = data[0].result;
|
|
125
|
-
const gasCompensation = data[1].result;
|
|
126
|
-
const btcDetails = getAsset("BTC");
|
|
127
|
-
const collateral = {
|
|
128
|
-
value: rawCollateral,
|
|
129
|
-
decimals: btcDetails.decimals,
|
|
130
|
-
symbol: btcDetails.symbol,
|
|
131
|
-
formatted: formatUnits(rawCollateral, DEBT_AND_COLL_PRECISION),
|
|
132
|
-
usd: convertToUsd(rawCollateral, DEBT_AND_COLL_PRECISION, collateralPrice, DEBT_AND_COLL_PRECISION),
|
|
133
|
-
};
|
|
134
|
-
const debtInUsdValue = bigIntMax(normalizePrecision(principal + interest - gasCompensation, DEBT_AND_COLL_PRECISION), 0n);
|
|
135
|
-
const formattedDebtInUsd = formatUnits(debtInUsdValue, DEBT_AND_COLL_PRECISION);
|
|
136
|
-
const debtInUsd = {
|
|
137
|
-
value: debtInUsdValue,
|
|
138
|
-
formatted: formattedDebtInUsd,
|
|
139
|
-
};
|
|
140
|
-
return {
|
|
141
|
-
collateral,
|
|
142
|
-
debtInUsd,
|
|
143
|
-
};
|
|
144
|
-
}, [collateralPrice]);
|
|
145
102
|
return useReadContracts({
|
|
146
|
-
contracts
|
|
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
|
+
],
|
|
147
120
|
query: {
|
|
148
121
|
enabled: !!walletAccount.accountAddress && !!collateralPrice,
|
|
149
122
|
retry: 1,
|
|
150
|
-
select:
|
|
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
|
+
},
|
|
151
149
|
staleTime: borrowDataRefetchInterval,
|
|
152
150
|
refetchInterval: borrowDataRefetchInterval,
|
|
153
151
|
...queryOptions,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBorrowData.js","sourceRoot":"","sources":["../../../src/hooks/useBorrowData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,
|
|
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;
|
|
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
|
|
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:
|
|
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":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAO,WAAW,EAAE,MAAM,MAAM,CAAA;AACvC,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,cAAc,GAEf,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"useTokensBalances.js","sourceRoot":"","sources":["../../../src/hooks/useTokensBalances.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAO,WAAW,EAAE,MAAM,MAAM,CAAA;AACvC,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,cAAc,GAEf,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EACL,qBAAqB,EAErB,qBAAqB,GACtB,MAAM,kBAAkB,CAAA;AACzB,OAAO,gBAAgB,MAAM,oBAAoB,CAAA;AACjD,OAAO,EACL,QAAQ,EACR,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD,yEAAyE;AACzE,2EAA2E;AAC3E,8EAA8E;AAC9E,0BAA0B;AAC1B,qEAAqE;AAErE,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,WAAW;QACjB,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;CACqB,CAAA;AAExB,MAAM,cAAc,GAAqB;IACvC,QAAQ;IACR,MAAM;IACN,OAAO;IACP,UAAU;IACV,QAAQ;IACR,IAAI;IACJ,OAAO;IACP,OAAO;IACP,OAAO;IACP,WAAW;IACX,MAAM;CACP,CAAA;AAqBD,MAAM,wBAAwB,GAAG,wBAAwB,CAAA;AAEzD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAgD,EAAE;IAElD,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,GAAG,gBAAgB,EAAE,GAAG,OAAO,CAAA;IAEhE,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;IAExC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,wBAAwB,EAAE,CAAA;IAEhE,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAExD,MAAM,OAAO,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAA;IAE3E,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE;YACR,wBAAwB;YACxB,aAAa,EAAE,cAAc;YAC7B,OAAO,CAAC,MAAM;YACd,OAAO;SACR;QACD,OAAO,EAAE,CAAC,CAAC,aAAa,EAAE,cAAc,IAAI,CAAC,CAAC,mBAAmB;QACjE,eAAe,EAAE,gBAAgB;QACjC,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,SAAS,GAAG,OAAO,KAAK,QAAQ,CAAC,OAAO,CAAA;YAC9C,MAAM,YAAY,GAAG,SAAS;gBAC5B,CAAC,CAAC,qBAAqB;gBACvB,CAAC,CAAC,qBAAqB,CAAA;YAEzB,IAAI,CAAC,aAAa,EAAE,cAAc,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;YACtD,CAAC;YAED,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC1C,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;gBACvC,OAAO;oBACL,OAAO;oBACP,GAAG,EAAE,cAAc;oBACnB,YAAY,EAAE,WAAoB;oBAClC,IAAI,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;oBACrC,OAAO;iBACR,CAAA;YACH,CAAC,CAAC,CAAA;YAEF,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;YAC5D,CAAC;YAED,OAAO,OAAO,CAAC,GAAG,CAAC;gBACjB,UAAU,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC;gBACvE,aAAa,CAAC,MAAM,EAAE;oBACpB,SAAS,EAAE,cAAc;iBAC1B,CAAC;gBACF,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBACtB,OAAO,CAAC,mBAAmB,CAAC,CAAA;gBAC9B,CAAC,CAAwC;aAC1C,CAAC,CAAA;QACJ,CAAC;QACD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACf,MAAM,CAAC,UAAU,EAAE,kBAAkB,EAAE,UAAU,CAAC,GAAG,IAAI,CAAA;YAEzD,MAAM,gBAAgB,GAAG;gBACvB,GAAG,UAAU;gBACb,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM;gBAC9B,GAAG,EAAE,YAAY,CACf,UAAU,CAAC,KAAK,EAChB,UAAU,CAAC,QAAQ,EACnB,UAAU,CAAC,KAAK,CAAC,GAAG,EACpB,UAAU,CAAC,QAAQ,CACpB;aACF,CAAA;YAED,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAClE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;gBAC3B,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;gBAE5C,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CACb,8BAA8B,KAAK,QAAQ,aAAa,EAAE,cAAc,GAAG,CAC5E,CAAA;gBACH,CAAC;gBAED,MAAM,YAAY,GAA8B;oBAC9C,KAAK,EAAE,IAAI,CAAC,MAAM;oBAClB,QAAQ;oBACR,MAAM;oBACN,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;iBAC9C,CAAA;gBAED,IAAI,GAAG,GAAG;oBACR,KAAK,EAAE,kBAAkB,CACvB,YAAY,CAAC,KAAK,EAClB,YAAY,CAAC,QAAQ,EACrB,UAAU,CAAC,QAAQ,CACpB;oBACD,SAAS,EAAE,WAAW,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC;iBAClE,CAAA;gBACD,IAAI,wBAAwB,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;oBAClD,GAAG,GAAG,YAAY,CAChB,YAAY,CAAC,KAAK,EAClB,YAAY,CAAC,QAAQ,EACrB,UAAU,CAAC,KAAK,CAAC,GAAG,EACpB,UAAU,CAAC,QAAQ,CACpB,CAAA;gBACH,CAAC;gBACD,IAAI,mBAAmB,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC7C,GAAG,GAAG,YAAY,CAChB,YAAY,CAAC,KAAK,EAClB,YAAY,CAAC,QAAQ,EACrB,UAAU,CAAC,KAAK,CAAC,EAAE,EACnB,UAAU,CAAC,QAAQ,CACpB,CAAA;gBACH,CAAC;gBAED,OAAO,EAAE,GAAG,YAAY,EAAE,GAAG,EAAE,CAAA;YACjC,CAAC,CAAC,CAAA;YAEF,OAAO,CAAC,gBAAgB,EAAE,GAAG,oBAAoB,CAAC,CAAC,MAAM,CACvD,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBACf,GAAG,GAAG;gBACN,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK;aACtB,CAAC,EACF,EAA6C,CAC9C,CAAA;QACH,CAAC;QACD,GAAG,gBAAgB;KACpB,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B;IACzC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IAEpC,MAAM,+BAA+B,GAAG,WAAW,CACjD,GAAG,EAAE,CACH,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,wBAAwB,CAAC,EAAE,CAAC,EACzE,CAAC,WAAW,CAAC,CACd,CAAA;IAED,OAAO;QACL,wBAAwB,EAAE,+BAA+B;KAC1D,CAAA;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IAEpC,MAAM,yBAAyB,GAAG,WAAW,CAC3C,GAAG,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,wBAAwB,CAAC,EAAE,CAAC,EACxE,CAAC,WAAW,CAAC,CACd,CAAA;IAED,OAAO;QACL,kBAAkB,EAAE,yBAAyB;KAC9C,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useValidateMezoId.d.ts","sourceRoot":"","sources":["../../../src/hooks/useValidateMezoId.ts"],"names":[],"mappings":"
|
|
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":"
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siww.d.ts","sourceRoot":"","sources":["../../../src/utils/siww.ts"],"names":[],"mappings":"AAQA,KAAK,aAAa,GAAG,KAAK,GAAG,SAAS,CAAA;AAEtC,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,aAAa,EAC5B,OAAO,CAAC,EAAE,MAAM,UAwBjB;AASD,wBAAsB,qCAAqC,CACzD,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"siww.d.ts","sourceRoot":"","sources":["../../../src/utils/siww.ts"],"names":[],"mappings":"AAQA,KAAK,aAAa,GAAG,KAAK,GAAG,SAAS,CAAA;AAEtC,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,aAAa,EAC5B,OAAO,CAAC,EAAE,MAAM,UAwBjB;AASD,wBAAsB,qCAAqC,CACzD,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,iBAuCd"}
|
package/dist/src/utils/siww.js
CHANGED
|
@@ -31,8 +31,10 @@ class SIWWDomainError extends Error {
|
|
|
31
31
|
export async function verifyDomainInSignInWithWalletMessage(message, signature, nonce) {
|
|
32
32
|
const { host: domain } = window.location;
|
|
33
33
|
let siwwMessage;
|
|
34
|
+
console.log("verifying deomain in sign in with wallet message");
|
|
34
35
|
try {
|
|
35
36
|
siwwMessage = new SignInWithWalletMessage(message);
|
|
37
|
+
console.log("siww message: ", siwwMessage);
|
|
36
38
|
}
|
|
37
39
|
catch (error) {
|
|
38
40
|
throw new SIWWDomainError("Failed to parse SIWW message");
|
|
@@ -49,6 +51,7 @@ export async function verifyDomainInSignInWithWalletMessage(message, signature,
|
|
|
49
51
|
// message.
|
|
50
52
|
time: new Date().toISOString(),
|
|
51
53
|
}, { suppressExceptions: true });
|
|
54
|
+
console.log("result: ", result);
|
|
52
55
|
if (result.error &&
|
|
53
56
|
result.error.type === SignInWithWalletErrorType.DOMAIN_MISMATCH) {
|
|
54
57
|
throw new SIWWDomainError("Domain does not match provided domain for verification.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siww.js","sourceRoot":"","sources":["../../../src/utils/siww.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAEnC,MAAM,8BAA8B,GAAG,EAAE,GAAG,UAAU,CAAA;AAItD,MAAM,UAAU,6BAA6B,CAC3C,OAAe,EACf,KAAa,EACb,aAA4B,EAC5B,OAAgB;IAEhB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAA;IAErD,IAAI,WAAW,CAAA;IACf,IAAI,CAAC;QACH,WAAW,GAAG,IAAI,uBAAuB,CAAC;YACxC,MAAM;YACN,OAAO,EAAE,uEAAuE;YAChF,GAAG;YACH,KAAK;YACL,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAClC,cAAc,EAAE,IAAI,IAAI,CACtB,IAAI,CAAC,GAAG,EAAE,GAAG,8BAA8B,CAC5C,CAAC,WAAW,EAAE;YACf,OAAO,EAAE,GAAG;YACZ,OAAO,EAAE,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACtD,aAAa;SACd,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,iDAAiD,KAAK,EAAE,CAAC,CAAA;IAC3E,CAAC;IAED,OAAO,WAAW,CAAC,cAAc,EAAE,CAAA;AACrC,CAAC;AAED,MAAM,eAAgB,SAAQ,KAAK;IACjC,YAAY,OAAe;QACzB,KAAK,CAAC,gDAAgD,OAAO,EAAE,CAAC,CAAA;QAChE,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;IAC/B,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,qCAAqC,CACzD,OAAe,EACf,SAAiB,EACjB,KAAa;IAEb,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAA;IACxC,IAAI,WAAoC,CAAA;IACxC,IAAI,CAAC;QACH,WAAW,GAAG,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"siww.js","sourceRoot":"","sources":["../../../src/utils/siww.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAEnC,MAAM,8BAA8B,GAAG,EAAE,GAAG,UAAU,CAAA;AAItD,MAAM,UAAU,6BAA6B,CAC3C,OAAe,EACf,KAAa,EACb,aAA4B,EAC5B,OAAgB;IAEhB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAA;IAErD,IAAI,WAAW,CAAA;IACf,IAAI,CAAC;QACH,WAAW,GAAG,IAAI,uBAAuB,CAAC;YACxC,MAAM;YACN,OAAO,EAAE,uEAAuE;YAChF,GAAG;YACH,KAAK;YACL,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAClC,cAAc,EAAE,IAAI,IAAI,CACtB,IAAI,CAAC,GAAG,EAAE,GAAG,8BAA8B,CAC5C,CAAC,WAAW,EAAE;YACf,OAAO,EAAE,GAAG;YACZ,OAAO,EAAE,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACtD,aAAa;SACd,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,iDAAiD,KAAK,EAAE,CAAC,CAAA;IAC3E,CAAC;IAED,OAAO,WAAW,CAAC,cAAc,EAAE,CAAA;AACrC,CAAC;AAED,MAAM,eAAgB,SAAQ,KAAK;IACjC,YAAY,OAAe;QACzB,KAAK,CAAC,gDAAgD,OAAO,EAAE,CAAC,CAAA;QAChE,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;IAC/B,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,qCAAqC,CACzD,OAAe,EACf,SAAiB,EACjB,KAAa;IAEb,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAA;IACxC,IAAI,WAAoC,CAAA;IACxC,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAA;IAC/D,IAAI,CAAC;QACH,WAAW,GAAG,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAA;QAClD,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAA;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,eAAe,CAAC,8BAA8B,CAAC,CAAA;IAC3D,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;QAChC,MAAM,IAAI,eAAe,CAAC,gDAAgD,CAAC,CAAA;IAC7E,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,CACrC;QACE,SAAS;QACT,4DAA4D;QAC5D,KAAK;QACL,MAAM;QACN,uEAAuE;QACvE,WAAW;QACX,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KAC/B,EACD,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAC7B,CAAA;IAED,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IAE/B,IACE,MAAM,CAAC,KAAK;QACZ,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,yBAAyB,CAAC,eAAe,EAC/D,CAAC;QACD,MAAM,IAAI,eAAe,CACvB,yDAAyD,CAC1D,CAAA;IACH,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
package/src/api/portal.ts
CHANGED
|
@@ -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
|
}
|
|
@@ -38,22 +38,29 @@ function useAuthenticateWithWallet(
|
|
|
38
38
|
|
|
39
39
|
const { mutate, mutateAsync, ...signInMutationRestParameters } = useMutation({
|
|
40
40
|
mutationFn: async (chainId?: number | void) => {
|
|
41
|
+
console.log("auth with wallet")
|
|
41
42
|
if (!walletAccount.walletAddress) {
|
|
42
43
|
throw new Error("Sign in error: Wallet not connected!")
|
|
43
44
|
}
|
|
44
45
|
|
|
46
|
+
console.log("getting nonce...")
|
|
45
47
|
const nonce = await ensureNoSessionAndFetchNonce()
|
|
46
48
|
|
|
49
|
+
console.log("nonce: ", nonce)
|
|
50
|
+
|
|
47
51
|
const messageResult = createSignInWithWalletMessage(
|
|
48
52
|
walletAccount.walletAddress,
|
|
49
53
|
nonce,
|
|
50
54
|
walletAccount.networkFamily!,
|
|
51
55
|
chainId ?? walletAccount.chainId,
|
|
52
56
|
)
|
|
57
|
+
console.log("messageResult: ", messageResult)
|
|
58
|
+
|
|
53
59
|
const signatureResult = await signMessageAsync({
|
|
54
60
|
message: messageResult,
|
|
55
61
|
connector: walletAccount.connector,
|
|
56
62
|
})
|
|
63
|
+
console.log("signatureResult: ", signatureResult)
|
|
57
64
|
|
|
58
65
|
await verifyDomainInSignInWithWalletMessage(
|
|
59
66
|
messageResult,
|
|
@@ -61,6 +68,8 @@ function useAuthenticateWithWallet(
|
|
|
61
68
|
nonce,
|
|
62
69
|
)
|
|
63
70
|
|
|
71
|
+
console.log("after verify")
|
|
72
|
+
|
|
64
73
|
if (shouldCreateAccount) {
|
|
65
74
|
const getAccountByAddressResult = await getAccountByAddress()
|
|
66
75
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useReadContracts
|
|
1
|
+
import { useReadContracts } from "wagmi"
|
|
2
2
|
import { useCallback, useMemo } from "react"
|
|
3
3
|
import { useQueryClient } from "@tanstack/react-query"
|
|
4
4
|
import { formatUnits } from "viem"
|
|
@@ -112,8 +112,8 @@ export function useBorrowData(queryOptions = {}) {
|
|
|
112
112
|
|
|
113
113
|
const chainId = CHAIN_ID[environment]
|
|
114
114
|
|
|
115
|
-
|
|
116
|
-
|
|
115
|
+
return useReadContracts({
|
|
116
|
+
contracts: [
|
|
117
117
|
{
|
|
118
118
|
abi: TROVE_MANAGER_ABI,
|
|
119
119
|
address: contractAddress.troveManager,
|
|
@@ -130,73 +130,55 @@ export function useBorrowData(queryOptions = {}) {
|
|
|
130
130
|
chainId,
|
|
131
131
|
},
|
|
132
132
|
],
|
|
133
|
-
[chainId, contractAddress, walletAccount.accountAddress],
|
|
134
|
-
)
|
|
135
|
-
|
|
136
|
-
const selectBorrowData = useCallback(
|
|
137
|
-
(data: UseReadContractsReturnType<typeof contracts>["data"]) => {
|
|
138
|
-
if (!data || data.some((item) => !item.result))
|
|
139
|
-
throw new Error("No borrow data available")
|
|
140
|
-
|
|
141
|
-
if (!collateralPrice) throw new Error("Collateral price not available")
|
|
142
|
-
|
|
143
|
-
const [rawCollateral, principal, interest] = data[0].result! as readonly [
|
|
144
|
-
bigint,
|
|
145
|
-
bigint,
|
|
146
|
-
bigint,
|
|
147
|
-
bigint,
|
|
148
|
-
bigint,
|
|
149
|
-
bigint,
|
|
150
|
-
]
|
|
151
|
-
|
|
152
|
-
const gasCompensation = data[1].result! as bigint
|
|
153
|
-
|
|
154
|
-
const btcDetails = getAsset("BTC")
|
|
155
|
-
|
|
156
|
-
const collateral = {
|
|
157
|
-
value: rawCollateral,
|
|
158
|
-
decimals: btcDetails.decimals,
|
|
159
|
-
symbol: btcDetails.symbol,
|
|
160
|
-
formatted: formatUnits(rawCollateral, DEBT_AND_COLL_PRECISION),
|
|
161
|
-
usd: convertToUsd(
|
|
162
|
-
rawCollateral,
|
|
163
|
-
DEBT_AND_COLL_PRECISION,
|
|
164
|
-
collateralPrice,
|
|
165
|
-
DEBT_AND_COLL_PRECISION,
|
|
166
|
-
),
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
const debtInUsdValue = bigIntMax(
|
|
170
|
-
normalizePrecision(
|
|
171
|
-
principal + interest - gasCompensation,
|
|
172
|
-
DEBT_AND_COLL_PRECISION,
|
|
173
|
-
),
|
|
174
|
-
0n, // Ensure that debt is not negative
|
|
175
|
-
)
|
|
176
|
-
const formattedDebtInUsd = formatUnits(
|
|
177
|
-
debtInUsdValue,
|
|
178
|
-
DEBT_AND_COLL_PRECISION,
|
|
179
|
-
)
|
|
180
|
-
|
|
181
|
-
const debtInUsd = {
|
|
182
|
-
value: debtInUsdValue,
|
|
183
|
-
formatted: formattedDebtInUsd,
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
return {
|
|
187
|
-
collateral,
|
|
188
|
-
debtInUsd,
|
|
189
|
-
}
|
|
190
|
-
},
|
|
191
|
-
[collateralPrice],
|
|
192
|
-
)
|
|
193
|
-
|
|
194
|
-
return useReadContracts({
|
|
195
|
-
contracts,
|
|
196
133
|
query: {
|
|
197
134
|
enabled: !!walletAccount.accountAddress && !!collateralPrice,
|
|
198
135
|
retry: 1,
|
|
199
|
-
select:
|
|
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,
|
|
169
|
+
DEBT_AND_COLL_PRECISION,
|
|
170
|
+
)
|
|
171
|
+
|
|
172
|
+
const debtInUsd = {
|
|
173
|
+
value: debtInUsdValue,
|
|
174
|
+
formatted: formattedDebtInUsd,
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
return {
|
|
178
|
+
collateral,
|
|
179
|
+
debtInUsd,
|
|
180
|
+
}
|
|
181
|
+
},
|
|
200
182
|
staleTime: borrowDataRefetchInterval,
|
|
201
183
|
refetchInterval: borrowDataRefetchInterval,
|
|
202
184
|
...queryOptions,
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
useQueryClient,
|
|
7
7
|
UseQueryOptions,
|
|
8
8
|
} from "@tanstack/react-query"
|
|
9
|
-
import { getBalance,
|
|
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
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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
|
package/src/utils/siww.ts
CHANGED
|
@@ -52,8 +52,10 @@ export async function verifyDomainInSignInWithWalletMessage(
|
|
|
52
52
|
) {
|
|
53
53
|
const { host: domain } = window.location
|
|
54
54
|
let siwwMessage: SignInWithWalletMessage
|
|
55
|
+
console.log("verifying deomain in sign in with wallet message")
|
|
55
56
|
try {
|
|
56
57
|
siwwMessage = new SignInWithWalletMessage(message)
|
|
58
|
+
console.log("siww message: ", siwwMessage)
|
|
57
59
|
} catch (error) {
|
|
58
60
|
throw new SIWWDomainError("Failed to parse SIWW message")
|
|
59
61
|
}
|
|
@@ -75,6 +77,8 @@ export async function verifyDomainInSignInWithWalletMessage(
|
|
|
75
77
|
{ suppressExceptions: true },
|
|
76
78
|
)
|
|
77
79
|
|
|
80
|
+
console.log("result: ", result)
|
|
81
|
+
|
|
78
82
|
if (
|
|
79
83
|
result.error &&
|
|
80
84
|
result.error.type === SignInWithWalletErrorType.DOMAIN_MISMATCH
|