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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,66 +1,9 @@
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 [{
9
- readonly inputs: readonly [{
10
- readonly internalType: "address";
11
- readonly name: "_borrower";
12
- readonly type: "address";
13
- }];
14
- readonly name: "getEntireDebtAndColl";
15
- readonly outputs: readonly [{
16
- readonly internalType: "uint256";
17
- readonly name: "coll";
18
- readonly type: "uint256";
19
- }, {
20
- readonly internalType: "uint256";
21
- readonly name: "principal";
22
- readonly type: "uint256";
23
- }, {
24
- readonly internalType: "uint256";
25
- readonly name: "interest";
26
- readonly type: "uint256";
27
- }, {
28
- readonly internalType: "uint256";
29
- readonly name: "pendingCollateral";
30
- readonly type: "uint256";
31
- }, {
32
- readonly internalType: "uint256";
33
- readonly name: "pendingPrincipal";
34
- readonly type: "uint256";
35
- }, {
36
- readonly internalType: "uint256";
37
- readonly name: "pendingInterest";
38
- readonly type: "uint256";
39
- }];
40
- readonly stateMutability: "view";
41
- readonly type: "function";
42
- }];
43
- address: `0x${string}`;
44
- functionName: string;
45
- args: `0x${string}`[];
46
- chainId: number;
47
- } | {
48
- abi: readonly [{
49
- readonly inputs: readonly [];
50
- readonly name: "MUSD_GAS_COMPENSATION";
51
- readonly outputs: readonly [{
52
- readonly internalType: "uint256";
53
- readonly name: "";
54
- readonly type: "uint256";
55
- }];
56
- readonly stateMutability: "view";
57
- readonly type: "function";
58
- }];
59
- address: `0x${string}`;
60
- functionName: string;
61
- chainId: number;
62
- args?: undefined;
63
- })[], true, {
6
+ export declare function useBorrowData(queryOptions?: {}): import("@tanstack/react-query").UseQueryResult<{
64
7
  collateral: {
65
8
  value: bigint;
66
9
  decimals: number;
@@ -75,7 +18,7 @@ export declare function useBorrowData(queryOptions?: {}): UseReadContractsReturn
75
18
  value: bigint;
76
19
  formatted: string;
77
20
  };
78
- }>;
21
+ }, Error>;
79
22
  /**
80
23
  * Hook for for invalidating current user's borrow data. Can be used to
81
24
  * invalidate borrow data manually, which forces the data to be re-fetched.
@@ -1 +1 @@
1
- {"version":3,"file":"useBorrowData.d.ts","sourceRoot":"","sources":["../../../src/hooks/useBorrowData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,0BAA0B,EAAE,MAAM,OAAO,CAAA;AAuFpE;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,YAAY,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgH9C;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":"AAyFA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,YAAY,KAAK;;;;;;;;;;;;;;;UAoH9C;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB;;EAWtC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB;;EAWjC"}
@@ -1,6 +1,7 @@
1
- import { useReadContracts } from "wagmi";
1
+ import { useConfig } from "wagmi";
2
+ import { readContracts } from "wagmi/actions";
2
3
  import { useCallback, useMemo } from "react";
3
- import { useQueryClient } from "@tanstack/react-query";
4
+ import { useQuery, useQueryClient } from "@tanstack/react-query";
4
5
  import { formatUnits } from "viem";
5
6
  import { mainnetBorrowContracts, testnetBorrowContracts, } from "../lib/contracts";
6
7
  import { usePassportContext } from "./usePassportContext";
@@ -11,6 +12,7 @@ import { getAsset } from "../utils/assets";
11
12
  import { convertToUsd } from "../utils/currency";
12
13
  import { useCollateralPrice } from "./useCollateralPrice";
13
14
  const DEBT_AND_COLL_PRECISION = 18;
15
+ const BORROW_DATA_QUERY_KEY = "passport.borrowData";
14
16
  // Wagmi handles typesafety with ABI const assertions. TypeScript doesn't
15
17
  // support importing JSON as const yet so types cannot be inferred from the
16
18
  // imported contract. As a workaround there is minimal ABI definition that can
@@ -86,6 +88,7 @@ export function useBorrowData(queryOptions = {}) {
86
88
  const { environment = "mainnet", borrowDataRefetchInterval } = usePassportContext();
87
89
  const walletAccount = useWalletAccount();
88
90
  const { data: collateralPrice } = useCollateralPrice();
91
+ const config = useConfig();
89
92
  const contractAddress = useMemo(() => {
90
93
  if (environment === "mainnet") {
91
94
  return {
@@ -142,16 +145,18 @@ export function useBorrowData(queryOptions = {}) {
142
145
  debtInUsd,
143
146
  };
144
147
  }, [collateralPrice]);
145
- return useReadContracts({
146
- contracts,
147
- query: {
148
- enabled: !!walletAccount.accountAddress && !!collateralPrice,
149
- retry: 1,
150
- select: selectBorrowData,
151
- staleTime: borrowDataRefetchInterval,
152
- refetchInterval: borrowDataRefetchInterval,
153
- ...queryOptions,
148
+ return useQuery({
149
+ queryKey: [BORROW_DATA_QUERY_KEY, walletAccount.accountAddress],
150
+ queryFn: async () => {
151
+ const borrowData = await readContracts(config, { contracts });
152
+ return borrowData;
154
153
  },
154
+ enabled: !!walletAccount.accountAddress && !!collateralPrice,
155
+ retry: 1,
156
+ select: selectBorrowData,
157
+ staleTime: borrowDataRefetchInterval,
158
+ refetchInterval: borrowDataRefetchInterval,
159
+ ...queryOptions,
155
160
  });
156
161
  }
157
162
  /**
@@ -161,8 +166,7 @@ export function useBorrowData(queryOptions = {}) {
161
166
  */
162
167
  export function useInvalidateBorrowData() {
163
168
  const queryClient = useQueryClient();
164
- const { queryKey } = useBorrowData();
165
- const invalidateBorrowDataHandler = useCallback(() => queryClient.invalidateQueries({ queryKey }), [queryClient, queryKey]);
169
+ const invalidateBorrowDataHandler = useCallback(() => queryClient.invalidateQueries({ queryKey: [BORROW_DATA_QUERY_KEY] }), [queryClient]);
166
170
  return {
167
171
  invalidateBorrowData: invalidateBorrowDataHandler,
168
172
  };
@@ -174,8 +178,7 @@ export function useInvalidateBorrowData() {
174
178
  */
175
179
  export function useResetBorrowData() {
176
180
  const queryClient = useQueryClient();
177
- const { queryKey } = useBorrowData();
178
- const resetBorrowDataHandler = useCallback(() => queryClient.resetQueries({ queryKey }), [queryClient, queryKey]);
181
+ const resetBorrowDataHandler = useCallback(() => queryClient.resetQueries({ queryKey: [BORROW_DATA_QUERY_KEY] }), [queryClient]);
179
182
  return {
180
183
  resetBorrowData: resetBorrowDataHandler,
181
184
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useBorrowData.js","sourceRoot":"","sources":["../../../src/hooks/useBorrowData.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useBorrowData.js","sourceRoot":"","sources":["../../../src/hooks/useBorrowData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA8B,MAAM,OAAO,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAClC,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;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD,MAAM,uBAAuB,GAAG,EAAE,CAAA;AAClC,MAAM,qBAAqB,GAAG,qBAAqB,CAAA;AAEnD,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;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,YAAY,GAAG,EAAE;IAC7C,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,yBAAyB,EAAE,GAC1D,kBAAkB,EAAE,CAAA;IACtB,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;IAExC,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,kBAAkB,EAAE,CAAA;IACtD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,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;aACtE,CAAA;QACH,CAAC;QACD,OAAO;YACL,YAAY,EAAE,sBAAsB,CAAC,YAAY,CAAC,OAAO;YACzD,kBAAkB,EAAE,sBAAsB,CAAC,kBAAkB,CAAC,OAAO;SACtE,CAAA;IACH,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;IAEjB,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAA;IAErC,MAAM,SAAS,GAAG,OAAO,CACvB,GAAG,EAAE,CAAC;QACJ;YACE,GAAG,EAAE,iBAAiB;YACtB,OAAO,EAAE,eAAe,CAAC,YAAY;YACrC,YAAY,EAAE,sBAAsB;YACpC,IAAI,EAAE,aAAa,CAAC,cAAc;gBAChC,CAAC,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC;gBAChC,CAAC,CAAC,CAAC,IAAsB,CAAC;YAC5B,OAAO;SACR;QACD;YACE,GAAG,EAAE,uBAAuB;YAC5B,OAAO,EAAE,eAAe,CAAC,kBAAkB;YAC3C,YAAY,EAAE,uBAAuB;YACrC,OAAO;SACR;KACF,EACD,CAAC,OAAO,EAAE,eAAe,EAAE,aAAa,CAAC,cAAc,CAAC,CACzD,CAAA;IAED,MAAM,gBAAgB,GAAG,WAAW,CAClC,CAAC,IAA0D,EAAE,EAAE;QAC7D,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAE7C,IAAI,CAAC,eAAe;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAEvE,MAAM,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAOpD,CAAA;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAiB,CAAA;QAEjD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;QAElC,MAAM,UAAU,GAAG;YACjB,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,SAAS,EAAE,WAAW,CAAC,aAAa,EAAE,uBAAuB,CAAC;YAC9D,GAAG,EAAE,YAAY,CACf,aAAa,EACb,uBAAuB,EACvB,eAAe,EACf,uBAAuB,CACxB;SACF,CAAA;QAED,MAAM,cAAc,GAAG,SAAS,CAC9B,kBAAkB,CAChB,SAAS,GAAG,QAAQ,GAAG,eAAe,EACtC,uBAAuB,CACxB,EACD,EAAE,CACH,CAAA;QACD,MAAM,kBAAkB,GAAG,WAAW,CACpC,cAAc,EACd,uBAAuB,CACxB,CAAA;QAED,MAAM,SAAS,GAAG;YAChB,KAAK,EAAE,cAAc;YACrB,SAAS,EAAE,kBAAkB;SAC9B,CAAA;QAED,OAAO;YACL,UAAU;YACV,SAAS;SACV,CAAA;IACH,CAAC,EACD,CAAC,eAAe,CAAC,CAClB,CAAA;IAED,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,qBAAqB,EAAE,aAAa,CAAC,cAAc,CAAC;QAC/D,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;YAE7D,OAAO,UAAU,CAAA;QACnB,CAAC;QACD,OAAO,EAAE,CAAC,CAAC,aAAa,CAAC,cAAc,IAAI,CAAC,CAAC,eAAe;QAC5D,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,gBAAgB;QACxB,SAAS,EAAE,yBAAyB;QACpC,eAAe,EAAE,yBAAyB;QAC1C,GAAG,YAAY;KAChB,CAAC,CAAA;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IAEpC,MAAM,2BAA2B,GAAG,WAAW,CAC7C,GAAG,EAAE,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAC1E,CAAC,WAAW,CAAC,CACd,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,sBAAsB,GAAG,WAAW,CACxC,GAAG,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,EACrE,CAAC,WAAW,CAAC,CACd,CAAA;IAED,OAAO;QACL,eAAe,EAAE,sBAAsB;KACxC,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mezo-org/passport",
3
- "version": "0.7.2-dev.1",
3
+ "version": "0.7.2-dev.2",
4
4
  "main": "dist/src/index.js",
5
5
  "license": "GPL-3.0-only",
6
6
  "scripts": {
@@ -55,4 +55,4 @@
55
55
  "viem": "2.22.8",
56
56
  "wagmi": "2.5.12"
57
57
  }
58
- }
58
+ }
@@ -1,6 +1,7 @@
1
- import { useReadContracts, UseReadContractsReturnType } from "wagmi"
1
+ import { useConfig, UseReadContractsReturnType } from "wagmi"
2
+ import { readContracts } from "wagmi/actions"
2
3
  import { useCallback, useMemo } from "react"
3
- import { useQueryClient } from "@tanstack/react-query"
4
+ import { useQuery, useQueryClient } from "@tanstack/react-query"
4
5
  import { formatUnits } from "viem"
5
6
  import {
6
7
  mainnetBorrowContracts,
@@ -15,6 +16,7 @@ import { convertToUsd } from "../utils/currency"
15
16
  import { useCollateralPrice } from "./useCollateralPrice"
16
17
 
17
18
  const DEBT_AND_COLL_PRECISION = 18
19
+ const BORROW_DATA_QUERY_KEY = "passport.borrowData"
18
20
 
19
21
  // Wagmi handles typesafety with ABI const assertions. TypeScript doesn't
20
22
  // support importing JSON as const yet so types cannot be inferred from the
@@ -96,6 +98,7 @@ export function useBorrowData(queryOptions = {}) {
96
98
  const walletAccount = useWalletAccount()
97
99
 
98
100
  const { data: collateralPrice } = useCollateralPrice()
101
+ const config = useConfig()
99
102
 
100
103
  const contractAddress = useMemo(() => {
101
104
  if (environment === "mainnet") {
@@ -191,16 +194,19 @@ export function useBorrowData(queryOptions = {}) {
191
194
  [collateralPrice],
192
195
  )
193
196
 
194
- return useReadContracts({
195
- contracts,
196
- query: {
197
- enabled: !!walletAccount.accountAddress && !!collateralPrice,
198
- retry: 1,
199
- select: selectBorrowData,
200
- staleTime: borrowDataRefetchInterval,
201
- refetchInterval: borrowDataRefetchInterval,
202
- ...queryOptions,
197
+ return useQuery({
198
+ queryKey: [BORROW_DATA_QUERY_KEY, walletAccount.accountAddress],
199
+ queryFn: async () => {
200
+ const borrowData = await readContracts(config, { contracts })
201
+
202
+ return borrowData
203
203
  },
204
+ enabled: !!walletAccount.accountAddress && !!collateralPrice,
205
+ retry: 1,
206
+ select: selectBorrowData,
207
+ staleTime: borrowDataRefetchInterval,
208
+ refetchInterval: borrowDataRefetchInterval,
209
+ ...queryOptions,
204
210
  })
205
211
  }
206
212
 
@@ -212,11 +218,9 @@ export function useBorrowData(queryOptions = {}) {
212
218
  export function useInvalidateBorrowData() {
213
219
  const queryClient = useQueryClient()
214
220
 
215
- const { queryKey } = useBorrowData()
216
-
217
221
  const invalidateBorrowDataHandler = useCallback(
218
- () => queryClient.invalidateQueries({ queryKey }),
219
- [queryClient, queryKey],
222
+ () => queryClient.invalidateQueries({ queryKey: [BORROW_DATA_QUERY_KEY] }),
223
+ [queryClient],
220
224
  )
221
225
 
222
226
  return {
@@ -232,11 +236,9 @@ export function useInvalidateBorrowData() {
232
236
  export function useResetBorrowData() {
233
237
  const queryClient = useQueryClient()
234
238
 
235
- const { queryKey } = useBorrowData()
236
-
237
239
  const resetBorrowDataHandler = useCallback(
238
- () => queryClient.resetQueries({ queryKey }),
239
- [queryClient, queryKey],
240
+ () => queryClient.resetQueries({ queryKey: [BORROW_DATA_QUERY_KEY] }),
241
+ [queryClient],
240
242
  )
241
243
 
242
244
  return {