@mezo-org/passport 0.4.0-dev.58 → 0.4.0-dev.59

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.
@@ -22,7 +22,7 @@ function Receive(props) {
22
22
  }, [copy, address]);
23
23
  const { networkFamily } = useWalletAccount();
24
24
  return (React.createElement(NestedViewLayout, null,
25
- React.createElement(LabelMedium, null, "Receive assets on Mezo"),
25
+ React.createElement(LabelMedium, null, "Your Mezo Address"),
26
26
  React.createElement(ParagraphSmall, { marginTop: theme.sizing.scale300, marginBottom: theme.sizing.scale600, color: theme.colors.contentTertiary }, networkFamily === "bitcoin" ? (React.createElement(React.Fragment, null, "Mezo automatically created a smart account that's fully controlled by your connected Bitcoin wallet. Use this address to receive assets on Mezo.")) : (React.createElement(React.Fragment, null, "Your connected wallet address is your Mezo address. Use this address to receive assets on Mezo."))),
27
27
  React.createElement(Block, { as: QRCodeSVG, value: address, flex: 1, overrides: {
28
28
  Block: {
@@ -1 +1 @@
1
- {"version":3,"file":"Receive.js","sourceRoot":"","sources":["../../../../../src/components/Dropdown/Receive/Receive.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Receive.js","sourceRoot":"","sources":["../../../../../src/components/Dropdown/Receive/Receive.tsx"],"names":[],"mappings":"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"}
@@ -3,41 +3,63 @@
3
3
  * connected account, based on it's evm address.
4
4
  * @param queryOptions Query options passed to the underlying `useQuery` hook.
5
5
  */
6
- export declare function useBorrowData(queryOptions?: {}): import("wagmi").UseReadContractReturnType<readonly [{
7
- readonly inputs: readonly [{
8
- readonly internalType: "address";
9
- readonly name: "_borrower";
10
- readonly type: "address";
6
+ export declare function useBorrowData(queryOptions?: {}): import("wagmi").UseReadContractsReturnType<readonly [{
7
+ readonly abi: readonly [{
8
+ readonly inputs: readonly [{
9
+ readonly internalType: "address";
10
+ readonly name: "_borrower";
11
+ readonly type: "address";
12
+ }];
13
+ readonly name: "getEntireDebtAndColl";
14
+ readonly outputs: readonly [{
15
+ readonly internalType: "uint256";
16
+ readonly name: "coll";
17
+ readonly type: "uint256";
18
+ }, {
19
+ readonly internalType: "uint256";
20
+ readonly name: "principal";
21
+ readonly type: "uint256";
22
+ }, {
23
+ readonly internalType: "uint256";
24
+ readonly name: "interest";
25
+ readonly type: "uint256";
26
+ }, {
27
+ readonly internalType: "uint256";
28
+ readonly name: "pendingCollateral";
29
+ readonly type: "uint256";
30
+ }, {
31
+ readonly internalType: "uint256";
32
+ readonly name: "pendingPrincipal";
33
+ readonly type: "uint256";
34
+ }, {
35
+ readonly internalType: "uint256";
36
+ readonly name: "pendingInterest";
37
+ readonly type: "uint256";
38
+ }];
39
+ readonly stateMutability: "view";
40
+ readonly type: "function";
11
41
  }];
12
- readonly name: "getEntireDebtAndColl";
13
- readonly outputs: readonly [{
14
- readonly internalType: "uint256";
15
- readonly name: "coll";
16
- readonly type: "uint256";
17
- }, {
18
- readonly internalType: "uint256";
19
- readonly name: "principal";
20
- readonly type: "uint256";
21
- }, {
22
- readonly internalType: "uint256";
23
- readonly name: "interest";
24
- readonly type: "uint256";
25
- }, {
26
- readonly internalType: "uint256";
27
- readonly name: "pendingCollateral";
28
- readonly type: "uint256";
29
- }, {
30
- readonly internalType: "uint256";
31
- readonly name: "pendingPrincipal";
32
- readonly type: "uint256";
33
- }, {
34
- readonly internalType: "uint256";
35
- readonly name: "pendingInterest";
36
- readonly type: "uint256";
42
+ readonly address: `0x${string}`;
43
+ readonly functionName: "getEntireDebtAndColl";
44
+ readonly args: [`0x${string}`];
45
+ readonly chainId: number;
46
+ }, {
47
+ readonly abi: readonly [{
48
+ readonly inputs: readonly [];
49
+ readonly name: "MUSD_GAS_COMPENSATION";
50
+ readonly outputs: readonly [{
51
+ readonly internalType: "uint256";
52
+ readonly name: "";
53
+ readonly type: "uint256";
54
+ }];
55
+ readonly stateMutability: "view";
56
+ readonly type: "function";
37
57
  }];
38
- readonly stateMutability: "view";
39
- readonly type: "function";
40
- }], "getEntireDebtAndColl", [`0x${string}`], {
58
+ readonly address: `0x${string}`;
59
+ readonly functionName: "MUSD_GAS_COMPENSATION";
60
+ readonly args: [];
61
+ readonly chainId: number;
62
+ }], true, {
41
63
  collateral: bigint;
42
64
  troveDebt: bigint;
43
65
  } | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"useBorrowData.d.ts","sourceRoot":"","sources":["../../../src/hooks/useBorrowData.ts"],"names":[],"mappings":"AAgEA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,YAAY,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAiC9C;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":"AAgFA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,YAAY,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAuD9C;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB;;EAatC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB;;EAajC"}
@@ -1,4 +1,4 @@
1
- import { useAccount, useReadContract } from "wagmi";
1
+ import { useAccount, useReadContracts } from "wagmi";
2
2
  import { useCallback, useMemo } from "react";
3
3
  import { useQueryClient } from "@tanstack/react-query";
4
4
  import { ONE_MINUTE_MS } from "../utils/time";
@@ -56,6 +56,21 @@ const TROVE_MANAGER_ABI = [
56
56
  type: "function",
57
57
  },
58
58
  ];
59
+ const BORROWER_OPERATIONS_ABI = [
60
+ {
61
+ inputs: [],
62
+ name: "MUSD_GAS_COMPENSATION",
63
+ outputs: [
64
+ {
65
+ internalType: "uint256",
66
+ name: "",
67
+ type: "uint256",
68
+ },
69
+ ],
70
+ stateMutability: "view",
71
+ type: "function",
72
+ },
73
+ ];
59
74
  /**
60
75
  * Query hook for getting borrow data. Returns collateral and trove debt for the
61
76
  * connected account, based on it's evm address.
@@ -66,31 +81,51 @@ export function useBorrowData(queryOptions = {}) {
66
81
  const { address } = useAccount();
67
82
  const contractAddress = useMemo(() => {
68
83
  if (environment === "mainnet") {
69
- return mainnetBorrowContracts.TroveManager.address;
84
+ return {
85
+ troveManager: mainnetBorrowContracts.TroveManager.address,
86
+ borrowerOperations: mainnetBorrowContracts.BorrowerOperations.address,
87
+ };
70
88
  }
71
- return testnetBorrowContracts.TroveManager.address;
89
+ return {
90
+ troveManager: testnetBorrowContracts.TroveManager.address,
91
+ borrowerOperations: testnetBorrowContracts.BorrowerOperations.address,
92
+ };
72
93
  }, [environment]);
73
- return useReadContract({
74
- abi: TROVE_MANAGER_ABI,
75
- address: contractAddress,
76
- functionName: "getEntireDebtAndColl",
77
- args: [address || "0x"],
94
+ const chainId = CHAIN_ID[environment];
95
+ return useReadContracts({
96
+ contracts: [
97
+ {
98
+ abi: TROVE_MANAGER_ABI,
99
+ address: contractAddress.troveManager,
100
+ functionName: "getEntireDebtAndColl",
101
+ args: [address || "0x"],
102
+ chainId,
103
+ },
104
+ {
105
+ abi: BORROWER_OPERATIONS_ABI,
106
+ address: contractAddress.borrowerOperations,
107
+ functionName: "MUSD_GAS_COMPENSATION",
108
+ args: [],
109
+ chainId,
110
+ },
111
+ ],
78
112
  query: {
79
113
  enabled: !!address,
80
114
  staleTime: 5 * ONE_MINUTE_MS,
81
115
  retry: 1,
82
116
  select: (data) => {
83
- if (!data)
117
+ if (!data || data.some((item) => !item.result))
84
118
  return undefined;
85
- const [collateral, principal, interest] = data;
119
+ const [collateral, principal, interest] = data[0].result;
120
+ const gasCompensation = data[1].result;
86
121
  return {
87
122
  collateral,
88
- troveDebt: principal + interest,
123
+ // Principal includes gas compensation value which is not
124
+ troveDebt: principal + interest - gasCompensation,
89
125
  };
90
126
  },
91
127
  ...queryOptions,
92
128
  },
93
- chainId: CHAIN_ID[environment],
94
129
  });
95
130
  }
96
131
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"useBorrowData.js","sourceRoot":"","sources":["../../../src/hooks/useBorrowData.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useBorrowData.js","sourceRoot":"","sources":["../../../src/hooks/useBorrowData.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { Abi, Address } from "viem";
2
2
  export type MezoChainToken = "mcbBTC" | "mDAI" | "mFBTC" | "mSolvBTC" | "mswBTC" | "mT" | "mUSDC" | "mUSDe" | "mUSDT" | "mxSolvBTC" | "MUSD";
3
- export type MezoBorrowContract = "TroveManager";
3
+ export type MezoBorrowContract = "TroveManager" | "BorrowerOperations";
4
4
  type ContractsMap<K extends string> = Record<K, {
5
5
  address: Address;
6
6
  abi: Abi;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/contracts/index.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,MAAM,GACN,OAAO,GACP,UAAU,GACV,QAAQ,GACR,IAAI,GACJ,OAAO,GACP,OAAO,GACP,OAAO,GACP,WAAW,GACX,MAAM,CAAA;AAEV,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAA;AAE/C,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,CAC1C,CAAC,EACD;IACE,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,GAAG,CAAA;CACT,CACF,CAAA;AAED,eAAO,MAAM,qBAAqB,EAYlB,YAAY,CAAC,cAAc,CAAC,CAAA;AAE5C,eAAO,MAAM,qBAAqB,EAYlB,YAAY,CAAC,cAAc,CAAC,CAAA;AAE5C,eAAO,MAAM,sBAAsB,EAEnB,YAAY,CAAC,kBAAkB,CAAC,CAAA;AAEhD,eAAO,MAAM,sBAAsB,EAEnB,YAAY,CAAC,kBAAkB,CAAC,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/contracts/index.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,MAAM,GACN,OAAO,GACP,UAAU,GACV,QAAQ,GACR,IAAI,GACJ,OAAO,GACP,OAAO,GACP,OAAO,GACP,WAAW,GACX,MAAM,CAAA;AAEV,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG,oBAAoB,CAAA;AAEtE,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,CAC1C,CAAC,EACD;IACE,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,GAAG,CAAA;CACT,CACF,CAAA;AAED,eAAO,MAAM,qBAAqB,EAYlB,YAAY,CAAC,cAAc,CAAC,CAAA;AAE5C,eAAO,MAAM,qBAAqB,EAYlB,YAAY,CAAC,cAAc,CAAC,CAAA;AAE5C,eAAO,MAAM,sBAAsB,EAGnB,YAAY,CAAC,kBAAkB,CAAC,CAAA;AAEhD,eAAO,MAAM,sBAAsB,EAGnB,YAAY,CAAC,kBAAkB,CAAC,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,eAAe,CAAA"}
@@ -10,6 +10,7 @@ import usdtMainnet from "@mezo-org/mezod-contracts/deployments/mainnet/mUSDT.jso
10
10
  import xsolvbtcMainnet from "@mezo-org/mezod-contracts/deployments/mainnet/mxSolvBTC.json";
11
11
  import musdMainnet from "@mezo-org/musd-contracts/deployments/mainnet/MUSD.json";
12
12
  import troveManagerMainnet from "@mezo-org/musd-contracts/deployments/mainnet/TroveManager.json";
13
+ import borrowerOperationsMainnet from "@mezo-org/musd-contracts/deployments/mainnet/BorrowerOperations.json";
13
14
  import cbbtcTestnet from "@mezo-org/mezod-contracts/deployments/testnet/mcbBTC.json";
14
15
  import daiTestnet from "@mezo-org/mezod-contracts/deployments/testnet/mDAI.json";
15
16
  import fbtcTestnet from "@mezo-org/mezod-contracts/deployments/testnet/mFBTC.json";
@@ -22,6 +23,7 @@ import usdtTestnet from "@mezo-org/mezod-contracts/deployments/testnet/mUSDT.jso
22
23
  import xsolvbtcTestnet from "@mezo-org/mezod-contracts/deployments/testnet/mxSolvBTC.json";
23
24
  import musdTestnet from "@mezo-org/musd-contracts/deployments/matsnet/MUSD.json";
24
25
  import troveManagerTestnet from "@mezo-org/musd-contracts/deployments/matsnet/TroveManager.json";
26
+ import borrowerOperationsTestnet from "@mezo-org/musd-contracts/deployments/matsnet/BorrowerOperations.json";
25
27
  export const testnetTokenContracts = {
26
28
  mcbBTC: cbbtcTestnet,
27
29
  mDAI: daiTestnet,
@@ -50,9 +52,11 @@ export const mainnetTokenContracts = {
50
52
  };
51
53
  export const mainnetBorrowContracts = {
52
54
  TroveManager: troveManagerMainnet,
55
+ BorrowerOperations: borrowerOperationsMainnet,
53
56
  };
54
57
  export const testnetBorrowContracts = {
55
58
  TroveManager: troveManagerTestnet,
59
+ BorrowerOperations: borrowerOperationsTestnet,
56
60
  };
57
61
  export { default as priceOracleContract } from "./priceOracle";
58
62
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/contracts/index.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,2DAA2D,CAAA;AACpF,OAAO,UAAU,MAAM,yDAAyD,CAAA;AAChF,OAAO,WAAW,MAAM,0DAA0D,CAAA;AAClF,OAAO,cAAc,MAAM,6DAA6D,CAAA;AACxF,OAAO,YAAY,MAAM,2DAA2D,CAAA;AACpF,OAAO,QAAQ,MAAM,uDAAuD,CAAA;AAC5E,OAAO,WAAW,MAAM,0DAA0D,CAAA;AAClF,OAAO,WAAW,MAAM,0DAA0D,CAAA;AAClF,OAAO,WAAW,MAAM,0DAA0D,CAAA;AAClF,OAAO,eAAe,MAAM,8DAA8D,CAAA;AAC1F,OAAO,WAAW,MAAM,wDAAwD,CAAA;AAEhF,OAAO,mBAAmB,MAAM,gEAAgE,CAAA;AAEhG,OAAO,YAAY,MAAM,2DAA2D,CAAA;AACpF,OAAO,UAAU,MAAM,yDAAyD,CAAA;AAChF,OAAO,WAAW,MAAM,0DAA0D,CAAA;AAClF,OAAO,cAAc,MAAM,6DAA6D,CAAA;AACxF,OAAO,YAAY,MAAM,2DAA2D,CAAA;AACpF,OAAO,QAAQ,MAAM,uDAAuD,CAAA;AAC5E,OAAO,WAAW,MAAM,0DAA0D,CAAA;AAClF,OAAO,WAAW,MAAM,0DAA0D,CAAA;AAClF,OAAO,WAAW,MAAM,0DAA0D,CAAA;AAClF,OAAO,eAAe,MAAM,8DAA8D,CAAA;AAC1F,OAAO,WAAW,MAAM,wDAAwD,CAAA;AAEhF,OAAO,mBAAmB,MAAM,gEAAgE,CAAA;AA2BhG,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,YAAY;IACpB,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,SAAS,EAAE,eAAe;IAC1B,IAAI,EAAE,WAAW;CACyB,CAAA;AAE5C,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,YAAY;IACpB,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,SAAS,EAAE,eAAe;IAC1B,IAAI,EAAE,WAAW;CACyB,CAAA;AAE5C,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,YAAY,EAAE,mBAAmB;CACa,CAAA;AAEhD,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,YAAY,EAAE,mBAAmB;CACa,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/contracts/index.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,2DAA2D,CAAA;AACpF,OAAO,UAAU,MAAM,yDAAyD,CAAA;AAChF,OAAO,WAAW,MAAM,0DAA0D,CAAA;AAClF,OAAO,cAAc,MAAM,6DAA6D,CAAA;AACxF,OAAO,YAAY,MAAM,2DAA2D,CAAA;AACpF,OAAO,QAAQ,MAAM,uDAAuD,CAAA;AAC5E,OAAO,WAAW,MAAM,0DAA0D,CAAA;AAClF,OAAO,WAAW,MAAM,0DAA0D,CAAA;AAClF,OAAO,WAAW,MAAM,0DAA0D,CAAA;AAClF,OAAO,eAAe,MAAM,8DAA8D,CAAA;AAC1F,OAAO,WAAW,MAAM,wDAAwD,CAAA;AAChF,OAAO,mBAAmB,MAAM,gEAAgE,CAAA;AAChG,OAAO,yBAAyB,MAAM,sEAAsE,CAAA;AAE5G,OAAO,YAAY,MAAM,2DAA2D,CAAA;AACpF,OAAO,UAAU,MAAM,yDAAyD,CAAA;AAChF,OAAO,WAAW,MAAM,0DAA0D,CAAA;AAClF,OAAO,cAAc,MAAM,6DAA6D,CAAA;AACxF,OAAO,YAAY,MAAM,2DAA2D,CAAA;AACpF,OAAO,QAAQ,MAAM,uDAAuD,CAAA;AAC5E,OAAO,WAAW,MAAM,0DAA0D,CAAA;AAClF,OAAO,WAAW,MAAM,0DAA0D,CAAA;AAClF,OAAO,WAAW,MAAM,0DAA0D,CAAA;AAClF,OAAO,eAAe,MAAM,8DAA8D,CAAA;AAC1F,OAAO,WAAW,MAAM,wDAAwD,CAAA;AAChF,OAAO,mBAAmB,MAAM,gEAAgE,CAAA;AAChG,OAAO,yBAAyB,MAAM,sEAAsE,CAAA;AA2B5G,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,YAAY;IACpB,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,SAAS,EAAE,eAAe;IAC1B,IAAI,EAAE,WAAW;CACyB,CAAA;AAE5C,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,YAAY;IACpB,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,SAAS,EAAE,eAAe;IAC1B,IAAI,EAAE,WAAW;CACyB,CAAA;AAE5C,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,YAAY,EAAE,mBAAmB;IACjC,kBAAkB,EAAE,yBAAyB;CACC,CAAA;AAEhD,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,YAAY,EAAE,mBAAmB;IACjC,kBAAkB,EAAE,yBAAyB;CACC,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,eAAe,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mezo-org/passport",
3
- "version": "0.4.0-dev.58",
3
+ "version": "0.4.0-dev.59",
4
4
  "main": "dist/src/index.js",
5
5
  "license": "GPL-3.0-only",
6
6
  "scripts": {
@@ -40,7 +40,7 @@
40
40
  "@mezo-org/mezo-clay": "0.1.0-dev.27",
41
41
  "@mezo-org/mezod-contracts": "^1.0.0",
42
42
  "@mezo-org/musd-contracts": "^1.0.1",
43
- "@mezo-org/orangekit": "1.0.0-beta.40-dev.12",
43
+ "@mezo-org/orangekit": "1.0.0-beta.40-dev.13",
44
44
  "@mezo-org/sign-in-with-wallet": "1.0.0-beta.8",
45
45
  "qrcode.react": "^4.2.0",
46
46
  "styletron-engine-monolithic": "^1.0.0",
@@ -46,7 +46,7 @@ function Receive(props: ReceiveProps) {
46
46
 
47
47
  return (
48
48
  <NestedViewLayout>
49
- <LabelMedium>Receive assets on Mezo</LabelMedium>
49
+ <LabelMedium>Your Mezo Address</LabelMedium>
50
50
 
51
51
  <ParagraphSmall
52
52
  marginTop={theme.sizing.scale300}
@@ -1,4 +1,4 @@
1
- import { useAccount, useReadContract } from "wagmi"
1
+ import { useAccount, useReadContracts } from "wagmi"
2
2
  import { useCallback, useMemo } from "react"
3
3
  import { useQueryClient } from "@tanstack/react-query"
4
4
  import { ONE_MINUTE_MS } from "../utils/time"
@@ -62,6 +62,22 @@ const TROVE_MANAGER_ABI = [
62
62
  },
63
63
  ] as const
64
64
 
65
+ const BORROWER_OPERATIONS_ABI = [
66
+ {
67
+ inputs: [],
68
+ name: "MUSD_GAS_COMPENSATION",
69
+ outputs: [
70
+ {
71
+ internalType: "uint256",
72
+ name: "",
73
+ type: "uint256",
74
+ },
75
+ ],
76
+ stateMutability: "view",
77
+ type: "function",
78
+ },
79
+ ] as const
80
+
65
81
  /**
66
82
  * Query hook for getting borrow data. Returns collateral and trove debt for the
67
83
  * connected account, based on it's evm address.
@@ -73,32 +89,54 @@ export function useBorrowData(queryOptions = {}) {
73
89
 
74
90
  const contractAddress = useMemo(() => {
75
91
  if (environment === "mainnet") {
76
- return mainnetBorrowContracts.TroveManager.address
92
+ return {
93
+ troveManager: mainnetBorrowContracts.TroveManager.address,
94
+ borrowerOperations: mainnetBorrowContracts.BorrowerOperations.address,
95
+ }
96
+ }
97
+ return {
98
+ troveManager: testnetBorrowContracts.TroveManager.address,
99
+ borrowerOperations: testnetBorrowContracts.BorrowerOperations.address,
77
100
  }
78
- return testnetBorrowContracts.TroveManager.address
79
101
  }, [environment])
80
102
 
81
- return useReadContract({
82
- abi: TROVE_MANAGER_ABI,
83
- address: contractAddress,
84
- functionName: "getEntireDebtAndColl",
85
- args: [address || "0x"],
103
+ const chainId = CHAIN_ID[environment]
104
+
105
+ return useReadContracts({
106
+ contracts: [
107
+ {
108
+ abi: TROVE_MANAGER_ABI,
109
+ address: contractAddress.troveManager,
110
+ functionName: "getEntireDebtAndColl",
111
+ args: [address || "0x"],
112
+ chainId,
113
+ },
114
+ {
115
+ abi: BORROWER_OPERATIONS_ABI,
116
+ address: contractAddress.borrowerOperations,
117
+ functionName: "MUSD_GAS_COMPENSATION",
118
+ args: [],
119
+ chainId,
120
+ },
121
+ ],
86
122
  query: {
87
123
  enabled: !!address,
88
124
  staleTime: 5 * ONE_MINUTE_MS,
89
125
  retry: 1,
90
126
  select: (data) => {
91
- if (!data) return undefined
127
+ if (!data || data.some((item) => !item.result)) return undefined
128
+
129
+ const [collateral, principal, interest] = data[0].result!
130
+ const gasCompensation = data[1].result!
92
131
 
93
- const [collateral, principal, interest] = data
94
132
  return {
95
133
  collateral,
96
- troveDebt: principal + interest,
134
+ // Principal includes gas compensation value which is not
135
+ troveDebt: principal + interest - gasCompensation,
97
136
  }
98
137
  },
99
138
  ...queryOptions,
100
139
  },
101
- chainId: CHAIN_ID[environment],
102
140
  })
103
141
  }
104
142
 
@@ -9,8 +9,8 @@ import usdeMainnet from "@mezo-org/mezod-contracts/deployments/mainnet/mUSDe.jso
9
9
  import usdtMainnet from "@mezo-org/mezod-contracts/deployments/mainnet/mUSDT.json"
10
10
  import xsolvbtcMainnet from "@mezo-org/mezod-contracts/deployments/mainnet/mxSolvBTC.json"
11
11
  import musdMainnet from "@mezo-org/musd-contracts/deployments/mainnet/MUSD.json"
12
-
13
12
  import troveManagerMainnet from "@mezo-org/musd-contracts/deployments/mainnet/TroveManager.json"
13
+ import borrowerOperationsMainnet from "@mezo-org/musd-contracts/deployments/mainnet/BorrowerOperations.json"
14
14
 
15
15
  import cbbtcTestnet from "@mezo-org/mezod-contracts/deployments/testnet/mcbBTC.json"
16
16
  import daiTestnet from "@mezo-org/mezod-contracts/deployments/testnet/mDAI.json"
@@ -23,8 +23,8 @@ import usdeTestnet from "@mezo-org/mezod-contracts/deployments/testnet/mUSDe.jso
23
23
  import usdtTestnet from "@mezo-org/mezod-contracts/deployments/testnet/mUSDT.json"
24
24
  import xsolvbtcTestnet from "@mezo-org/mezod-contracts/deployments/testnet/mxSolvBTC.json"
25
25
  import musdTestnet from "@mezo-org/musd-contracts/deployments/matsnet/MUSD.json"
26
-
27
26
  import troveManagerTestnet from "@mezo-org/musd-contracts/deployments/matsnet/TroveManager.json"
27
+ import borrowerOperationsTestnet from "@mezo-org/musd-contracts/deployments/matsnet/BorrowerOperations.json"
28
28
 
29
29
  import { Abi, Address } from "viem"
30
30
 
@@ -41,7 +41,7 @@ export type MezoChainToken =
41
41
  | "mxSolvBTC"
42
42
  | "MUSD"
43
43
 
44
- export type MezoBorrowContract = "TroveManager"
44
+ export type MezoBorrowContract = "TroveManager" | "BorrowerOperations"
45
45
 
46
46
  type ContractsMap<K extends string> = Record<
47
47
  K,
@@ -81,10 +81,12 @@ export const mainnetTokenContracts = {
81
81
 
82
82
  export const mainnetBorrowContracts = {
83
83
  TroveManager: troveManagerMainnet,
84
+ BorrowerOperations: borrowerOperationsMainnet,
84
85
  } as unknown as ContractsMap<MezoBorrowContract>
85
86
 
86
87
  export const testnetBorrowContracts = {
87
88
  TroveManager: troveManagerTestnet,
89
+ BorrowerOperations: borrowerOperationsTestnet,
88
90
  } as unknown as ContractsMap<MezoBorrowContract>
89
91
 
90
92
  export { default as priceOracleContract } from "./priceOracle"