@mezo-org/passport 0.4.0-dev.57 → 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.
- package/dist/src/components/Dropdown/Receive/Receive.js +1 -1
- package/dist/src/components/Dropdown/Receive/Receive.js.map +1 -1
- package/dist/src/hooks/useAssetsConversionRates.d.ts.map +1 -1
- package/dist/src/hooks/useAssetsConversionRates.js +7 -2
- package/dist/src/hooks/useAssetsConversionRates.js.map +1 -1
- package/dist/src/hooks/useBorrowData.d.ts +55 -33
- package/dist/src/hooks/useBorrowData.d.ts.map +1 -1
- package/dist/src/hooks/useBorrowData.js +47 -12
- package/dist/src/hooks/useBorrowData.js.map +1 -1
- package/dist/src/hooks/useDropdownData.d.ts.map +1 -1
- package/dist/src/hooks/useDropdownData.js +5 -9
- package/dist/src/hooks/useDropdownData.js.map +1 -1
- package/dist/src/lib/contracts/index.d.ts +1 -1
- package/dist/src/lib/contracts/index.d.ts.map +1 -1
- package/dist/src/lib/contracts/index.js +4 -0
- package/dist/src/lib/contracts/index.js.map +1 -1
- package/dist/src/utils/cryptoAssets.d.ts +1 -1
- package/dist/src/utils/cryptoAssets.d.ts.map +1 -1
- package/dist/src/utils/cryptoAssets.js +2 -5
- package/dist/src/utils/cryptoAssets.js.map +1 -1
- package/dist/src/utils/currency.d.ts +1 -1
- package/dist/src/utils/currency.d.ts.map +1 -1
- package/dist/src/utils/currency.js +2 -2
- package/dist/src/utils/currency.js.map +1 -1
- package/package.json +2 -2
- package/src/components/Dropdown/Receive/Receive.tsx +1 -1
- package/src/hooks/useAssetsConversionRates.ts +7 -2
- package/src/hooks/useBorrowData.ts +50 -12
- package/src/hooks/useDropdownData.ts +15 -13
- package/src/lib/contracts/index.ts +5 -3
- package/src/utils/cryptoAssets.ts +9 -12
- package/src/utils/currency.ts +4 -3
|
@@ -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, "
|
|
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":"AAAA,OAAO,EACL,KAAK,EACL,MAAM,EACN,WAAW,EACX,eAAe,EACf,cAAc,EACd,YAAY,GACb,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,gBAAgB,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,gBAAgB,MAAM,iCAAiC,CAAA;AAM9D,SAAS,OAAO,CAAC,KAAmB;IAClC,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;IAEzB,MAAM,EAAE,WAAW,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAE5C,MAAM,gBAAgB,GAAG,qBAAqB,CAC5C,OAAO,EACP,MAAM,EACN,WAAW,KAAK,SAAS,CAC1B,CAAA;IAED,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,YAAY,EAAE,CAAA;IAEhC,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,kBAAkB,EAAE,CAAA;IACrC,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3E,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;QACzC,IAAI,CAAC,OAAO,CAAC,CAAA;QACb,yBAAyB,CAAC,IAAI,CAAC,CAAA;QAE/B,UAAU,CAAC,GAAG,EAAE;YACd,yBAAyB,CAAC,KAAK,CAAC,CAAA;QAClC,CAAC,EAAE,IAAI,CAAC,CAAA;IACV,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;IAEnB,MAAM,EAAE,aAAa,EAAE,GAAG,gBAAgB,EAAE,CAAA;IAE5C,OAAO,CACL,oBAAC,gBAAgB;QACf,oBAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"Receive.js","sourceRoot":"","sources":["../../../../../src/components/Dropdown/Receive/Receive.tsx"],"names":[],"mappings":"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"}
|
|
@@ -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":"AAkCA;;;;;;;GAOG;AACH,wBAAgB,wBAAwB;;;;;;;;;;;;;EAsDvC"}
|
|
@@ -5,8 +5,11 @@ import { QUERY_KEYS } from "./constants";
|
|
|
5
5
|
import { usePortalApiClient } from "./usePortalApiClient";
|
|
6
6
|
import { priceOracleContract } from "../lib/contracts";
|
|
7
7
|
import { fromFloatToBigInt } from "../utils/numbers";
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
import { getCryptoAsset } from "../utils/cryptoAssets";
|
|
9
|
+
import { CHAIN_ID } from "../constants";
|
|
10
|
+
import { usePassportContext } from "./usePassportContext";
|
|
11
|
+
const BTC_TARGET_DIGITS = getCryptoAsset("BTC").decimals;
|
|
12
|
+
const T_TARGET_DIGITS = getCryptoAsset("mT").decimals;
|
|
10
13
|
// If the oracle has not been updated in at least 60 seconds, it is stale.
|
|
11
14
|
const MAX_PRICE_DELAY = 60 * ONE_SECOND_MS;
|
|
12
15
|
/**
|
|
@@ -36,6 +39,7 @@ function scalePriceByDigits(price, priceDigits) {
|
|
|
36
39
|
*/
|
|
37
40
|
export function useAssetsConversionRates() {
|
|
38
41
|
const portalApiClient = usePortalApiClient();
|
|
42
|
+
const { environment = "mainnet" } = usePassportContext();
|
|
39
43
|
const btcPrice = useReadContract({
|
|
40
44
|
...priceOracleContract,
|
|
41
45
|
functionName: "latestRoundData",
|
|
@@ -59,6 +63,7 @@ export function useAssetsConversionRates() {
|
|
|
59
63
|
return scalePriceByDigits(answer, BTC_TARGET_DIGITS);
|
|
60
64
|
},
|
|
61
65
|
},
|
|
66
|
+
chainId: CHAIN_ID[environment],
|
|
62
67
|
});
|
|
63
68
|
const tPrice = useQuery({
|
|
64
69
|
queryKey: [QUERY_KEYS.ASSETS_USD_CONVERSION],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAssetsConversionRates.js","sourceRoot":"","sources":["../../../src/hooks/useAssetsConversionRates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"useAssetsConversionRates.js","sourceRoot":"","sources":["../../../src/hooks/useAssetsConversionRates.ts"],"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").
|
|
7
|
-
readonly
|
|
8
|
-
readonly
|
|
9
|
-
|
|
10
|
-
|
|
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
|
|
13
|
-
readonly
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
readonly
|
|
19
|
-
readonly name: "
|
|
20
|
-
readonly
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
readonly
|
|
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
|
|
39
|
-
readonly
|
|
40
|
-
|
|
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":"
|
|
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,
|
|
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
|
|
84
|
+
return {
|
|
85
|
+
troveManager: mainnetBorrowContracts.TroveManager.address,
|
|
86
|
+
borrowerOperations: mainnetBorrowContracts.BorrowerOperations.address,
|
|
87
|
+
};
|
|
70
88
|
}
|
|
71
|
-
return
|
|
89
|
+
return {
|
|
90
|
+
troveManager: testnetBorrowContracts.TroveManager.address,
|
|
91
|
+
borrowerOperations: testnetBorrowContracts.BorrowerOperations.address,
|
|
92
|
+
};
|
|
72
93
|
}, [environment]);
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
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
|
-
|
|
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":"AAAA,OAAO,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"useBorrowData.js","sourceRoot":"","sources":["../../../src/hooks/useBorrowData.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDropdownData.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDropdownData.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,
|
|
1
|
+
{"version":3,"file":"useDropdownData.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDropdownData.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EAIf,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;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,0BAAkC,EAClC,4BAAoC,GACrC;;;CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6GA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useBalance } from "wagmi";
|
|
2
2
|
import { useGetCurrentAccount } from ".";
|
|
3
|
-
import { isBitcoinLikeCryptoAsset, mapCryptoAssetToDetails, } from "../utils/cryptoAssets";
|
|
3
|
+
import { getCryptoAsset, isBitcoinLikeCryptoAsset, mapCryptoAssetToDetails, } from "../utils/cryptoAssets";
|
|
4
4
|
import { fromFixedPoint } from "../utils/numbers";
|
|
5
5
|
import { useAssetsConversionRates } from "./useAssetsConversionRates";
|
|
6
6
|
import useWalletAccount from "./useWalletAccount";
|
|
@@ -52,17 +52,13 @@ export default function useDropdownData({ accountDataRefetchInterval = 90000, na
|
|
|
52
52
|
...Object.entries(tokensBalances ?? {}),
|
|
53
53
|
].map((asset) => {
|
|
54
54
|
const [type, balance] = asset;
|
|
55
|
-
let conversionRate;
|
|
56
|
-
let conversionRateDecimals;
|
|
57
55
|
if (isBitcoinLikeCryptoAsset(type)) {
|
|
58
|
-
|
|
59
|
-
conversionRateDecimals = assetsConversionRates.btc.decimals;
|
|
56
|
+
return mapCryptoAssetToDetails(type, balance, assetsConversionRates.btc.price, assetsConversionRates.btc.decimals);
|
|
60
57
|
}
|
|
61
58
|
if (type === "mT") {
|
|
62
|
-
|
|
63
|
-
conversionRateDecimals = assetsConversionRates.t.decimals;
|
|
59
|
+
return mapCryptoAssetToDetails(type, balance, assetsConversionRates.t.price, assetsConversionRates.t.decimals);
|
|
64
60
|
}
|
|
65
|
-
return mapCryptoAssetToDetails(type, balance,
|
|
61
|
+
return mapCryptoAssetToDetails(type, balance, 1n, 0);
|
|
66
62
|
});
|
|
67
63
|
const btcData = detailedAssets.find(({ type }) => type === "BTC");
|
|
68
64
|
const musdData = detailedAssets.find(({ type }) => type === "MUSD");
|
|
@@ -81,7 +77,7 @@ export default function useDropdownData({ accountDataRefetchInterval = 90000, na
|
|
|
81
77
|
const otherAssetsUsdTotal = otherAssetsData.reduce((sum, { usdBalance }) => sum + usdBalance, 0);
|
|
82
78
|
const usdTotalBalance = detailedAssets.reduce((sum, { usdBalance }) => sum + usdBalance, 0);
|
|
83
79
|
const matsBalance = passportAccount?.mats.totalMats || 0;
|
|
84
|
-
const usdCollateral = convertToUsd(debt?.collateral ?? 0n, assetsConversionRates.btc.price, assetsConversionRates.btc.decimals);
|
|
80
|
+
const usdCollateral = convertToUsd(debt?.collateral ?? 0n, getCryptoAsset("MUSD").decimals, assetsConversionRates.btc.price, assetsConversionRates.btc.decimals);
|
|
85
81
|
const usdTroveDebt = fromFixedPoint(debt?.troveDebt ?? 0n, 18);
|
|
86
82
|
return {
|
|
87
83
|
mezoId,
|
|
@@ -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,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACrE,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;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAOhD,MAAM,kBAAkB,GAAG;IACzB,UAAU,EAAE,EAAE;IACd,gBAAgB,EAAE,QAAQ;IAC1B,UAAU,EAAE,CAAC;IACb,mBAAmB,EAAE,OAAO;CAC7B,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,0BAA0B,GAAG,KAAK,EAClC,4BAA4B,GAAG,KAAK,GACrC;IACC,MAAM,EACJ,aAAa,EACb,cAAc,EACd,aAAa,EAAE,UAAU,GAC1B,GAAG,gBAAgB,EAAE,CAAA;IACtB,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,GAAG,kBAAkB,EAAE,CAAA;IACxD,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC;QACtC,OAAO,EAAE,cAAc;QACvB,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC;QAC9B,KAAK,EAAE;YACL,SAAS,EAAE,4BAA4B;YACvC,eAAe,EAAE,4BAA4B;SAC9C;KACF,CAAC,CAAA;IACF,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,oBAAoB,CAAC;QACrD,SAAS,EAAE,0BAA0B;QACrC,eAAe,EAAE,0BAA0B;QAC3C,OAAO,EAAE,CAAC,CAAC,cAAc;KAC1B,CAAC,CAAA;IACF,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,wBAAwB,EAAE,CAAA;IAClE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,iBAAiB,EAAE,CAAA;IACpD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,CAAA;IAEtC,kCAAkC,EAAE,CAAA;IAEpC,MAAM,MAAM,GAAG,eAAe,EAAE,MAAM,CAAA;IAEtC,MAAM,cAAc,GAAG;QACrB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC;QAChC,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;KACxC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACd,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAiC,CAAA;QAEzD,IAAI,
|
|
1
|
+
{"version":3,"file":"useDropdownData.js","sourceRoot":"","sources":["../../../src/hooks/useDropdownData.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;
|
|
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;
|
|
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"}
|
|
@@ -33,7 +33,7 @@ export declare function isUsdLikeCryptoAsset(key: CryptoAssetKey): boolean;
|
|
|
33
33
|
* @param usdConversionRate The USD conversion rate
|
|
34
34
|
* @returns The balance details
|
|
35
35
|
*/
|
|
36
|
-
export declare function mapCryptoAssetToDetails(type: CryptoAssetKey, balance: bigint, usdConversionRate
|
|
36
|
+
export declare function mapCryptoAssetToDetails(type: CryptoAssetKey, balance: bigint, usdConversionRate: bigint, usdConversionRateDecimals: number): {
|
|
37
37
|
type: CryptoAssetKey;
|
|
38
38
|
rawBalance: bigint;
|
|
39
39
|
formattedBalance: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cryptoAssets.d.ts","sourceRoot":"","sources":["../../../src/utils/cryptoAssets.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EAGV,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAIjD,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,KAAK,GAAG,KAAK,CAAA;AAE3D,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAqFD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,cAAc,eAEjD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,cAAc,WAE3D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,cAAc,WAEvD;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,MAAM,EACf,iBAAiB,
|
|
1
|
+
{"version":3,"file":"cryptoAssets.d.ts","sourceRoot":"","sources":["../../../src/utils/cryptoAssets.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EAGV,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAIjD,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,KAAK,GAAG,KAAK,CAAA;AAE3D,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAqFD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,cAAc,eAEjD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,cAAc,WAE3D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,cAAc,WAEvD;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,MAAM,EACzB,yBAAyB,EAAE,MAAM;;;;;;EA0BlC;AAED,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BitcoinCircle, EthCircle, MUsdCircle02, Cryptocurrency04, } from "@mezo-org/mezo-clay";
|
|
2
2
|
import { convertToUsd, formatUsd } from "./currency";
|
|
3
|
-
import { fromFixedPointToString
|
|
3
|
+
import { fromFixedPointToString } from "./numbers";
|
|
4
4
|
// TODO: Add actual icons for the assets
|
|
5
5
|
const CRYPTO_ASSETS = {
|
|
6
6
|
BTC: {
|
|
@@ -116,10 +116,7 @@ export function isUsdLikeCryptoAsset(key) {
|
|
|
116
116
|
export function mapCryptoAssetToDetails(type, balance, usdConversionRate, usdConversionRateDecimals) {
|
|
117
117
|
const { decimals } = getCryptoAsset(type);
|
|
118
118
|
const formattedBalance = fromFixedPointToString(balance, decimals, isUsdLikeCryptoAsset(type) ? 2 : 4);
|
|
119
|
-
|
|
120
|
-
if (usdConversionRate && usdConversionRateDecimals) {
|
|
121
|
-
usdBalance = convertToUsd(balance, usdConversionRate, usdConversionRateDecimals);
|
|
122
|
-
}
|
|
119
|
+
const usdBalance = convertToUsd(balance, decimals, usdConversionRate, usdConversionRateDecimals);
|
|
123
120
|
const formattedUsdBalance = formatUsd(usdBalance);
|
|
124
121
|
return {
|
|
125
122
|
type,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cryptoAssets.js","sourceRoot":"","sources":["../../../src/utils/cryptoAssets.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,SAAS,EAET,YAAY,EACZ,gBAAgB,GACjB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"cryptoAssets.js","sourceRoot":"","sources":["../../../src/utils/cryptoAssets.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,5 +18,5 @@ export declare function formatUsd(value: number): string;
|
|
|
18
18
|
* @param decimals - The number of decimals for the asset
|
|
19
19
|
* @returns - The value in USD as a number
|
|
20
20
|
*/
|
|
21
|
-
export declare function convertToUsd(assetAmount: bigint, conversionRate: bigint,
|
|
21
|
+
export declare function convertToUsd(assetAmount: bigint, assetDecimals: number, conversionRate: bigint, conversionRateDecimals: number): number;
|
|
22
22
|
//# sourceMappingURL=currency.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currency.d.ts","sourceRoot":"","sources":["../../../src/utils/currency.ts"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAM,GACpD,MAAM,CAOR;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,
|
|
1
|
+
{"version":3,"file":"currency.d.ts","sourceRoot":"","sources":["../../../src/utils/currency.ts"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAM,GACpD,MAAM,CAOR;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EACtB,sBAAsB,EAAE,MAAM,GAC7B,MAAM,CAKR"}
|
|
@@ -32,7 +32,7 @@ export function formatUsd(value) {
|
|
|
32
32
|
* @param decimals - The number of decimals for the asset
|
|
33
33
|
* @returns - The value in USD as a number
|
|
34
34
|
*/
|
|
35
|
-
export function convertToUsd(assetAmount, conversionRate,
|
|
36
|
-
return fromFixedPoint((assetAmount * conversionRate) / 10n ** BigInt(
|
|
35
|
+
export function convertToUsd(assetAmount, assetDecimals, conversionRate, conversionRateDecimals) {
|
|
36
|
+
return fromFixedPoint((assetAmount * conversionRate) / 10n ** BigInt(conversionRateDecimals), assetDecimals);
|
|
37
37
|
}
|
|
38
38
|
//# sourceMappingURL=currency.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currency.js","sourceRoot":"","sources":["../../../src/utils/currency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE1C,MAAM,sBAAsB,GAA6B;IACvD,KAAK,EAAE,UAAU;IACjB,qBAAqB,EAAE,CAAC;IACxB,qBAAqB,EAAE,CAAC;CACzB,CAAA;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAa,EACb,UAAmD,EAAE;IAErD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;QAC/C,GAAG,sBAAsB;QACzB,GAAG,OAAO;KACX,CAAC,CAAA;IAEF,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,cAAc,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;AACnD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,WAAmB,EACnB,cAAsB,EACtB,
|
|
1
|
+
{"version":3,"file":"currency.js","sourceRoot":"","sources":["../../../src/utils/currency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE1C,MAAM,sBAAsB,GAA6B;IACvD,KAAK,EAAE,UAAU;IACjB,qBAAqB,EAAE,CAAC;IACxB,qBAAqB,EAAE,CAAC;CACzB,CAAA;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAa,EACb,UAAmD,EAAE;IAErD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;QAC/C,GAAG,sBAAsB;QACzB,GAAG,OAAO;KACX,CAAC,CAAA;IAEF,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,cAAc,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;AACnD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,WAAmB,EACnB,aAAqB,EACrB,cAAsB,EACtB,sBAA8B;IAE9B,OAAO,cAAc,CACnB,CAAC,WAAW,GAAG,cAAc,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,sBAAsB,CAAC,EACtE,aAAa,CACd,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mezo-org/passport",
|
|
3
|
-
"version": "0.4.0-dev.
|
|
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.
|
|
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",
|
|
@@ -5,9 +5,12 @@ import { QUERY_KEYS } from "./constants"
|
|
|
5
5
|
import { usePortalApiClient } from "./usePortalApiClient"
|
|
6
6
|
import { priceOracleContract } from "../lib/contracts"
|
|
7
7
|
import { fromFloatToBigInt } from "../utils/numbers"
|
|
8
|
+
import { getCryptoAsset } from "../utils/cryptoAssets"
|
|
9
|
+
import { CHAIN_ID } from "../constants"
|
|
10
|
+
import { usePassportContext } from "./usePassportContext"
|
|
8
11
|
|
|
9
|
-
const BTC_TARGET_DIGITS =
|
|
10
|
-
const T_TARGET_DIGITS =
|
|
12
|
+
const BTC_TARGET_DIGITS = getCryptoAsset("BTC").decimals
|
|
13
|
+
const T_TARGET_DIGITS = getCryptoAsset("mT").decimals
|
|
11
14
|
// If the oracle has not been updated in at least 60 seconds, it is stale.
|
|
12
15
|
const MAX_PRICE_DELAY = 60 * ONE_SECOND_MS
|
|
13
16
|
|
|
@@ -39,6 +42,7 @@ function scalePriceByDigits(price: bigint, priceDigits: number): bigint {
|
|
|
39
42
|
*/
|
|
40
43
|
export function useAssetsConversionRates() {
|
|
41
44
|
const portalApiClient = usePortalApiClient()
|
|
45
|
+
const { environment = "mainnet" } = usePassportContext()
|
|
42
46
|
|
|
43
47
|
const btcPrice = useReadContract({
|
|
44
48
|
...priceOracleContract,
|
|
@@ -64,6 +68,7 @@ export function useAssetsConversionRates() {
|
|
|
64
68
|
return scalePriceByDigits(answer, BTC_TARGET_DIGITS)
|
|
65
69
|
},
|
|
66
70
|
},
|
|
71
|
+
chainId: CHAIN_ID[environment],
|
|
67
72
|
})
|
|
68
73
|
|
|
69
74
|
const tPrice = useQuery({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useAccount,
|
|
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
|
|
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
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
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
|
-
|
|
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
|
|
|
@@ -2,6 +2,7 @@ import { useBalance } from "wagmi"
|
|
|
2
2
|
import { useGetCurrentAccount } from "."
|
|
3
3
|
import {
|
|
4
4
|
CryptoAssetKey,
|
|
5
|
+
getCryptoAsset,
|
|
5
6
|
isBitcoinLikeCryptoAsset,
|
|
6
7
|
mapCryptoAssetToDetails,
|
|
7
8
|
} from "../utils/cryptoAssets"
|
|
@@ -74,24 +75,24 @@ export default function useDropdownData({
|
|
|
74
75
|
].map((asset) => {
|
|
75
76
|
const [type, balance] = asset as [CryptoAssetKey, bigint]
|
|
76
77
|
|
|
77
|
-
let conversionRate: bigint | undefined
|
|
78
|
-
let conversionRateDecimals: number | undefined
|
|
79
|
-
|
|
80
78
|
if (isBitcoinLikeCryptoAsset(type)) {
|
|
81
|
-
|
|
82
|
-
|
|
79
|
+
return mapCryptoAssetToDetails(
|
|
80
|
+
type,
|
|
81
|
+
balance,
|
|
82
|
+
assetsConversionRates.btc.price,
|
|
83
|
+
assetsConversionRates.btc.decimals,
|
|
84
|
+
)
|
|
83
85
|
}
|
|
84
86
|
if (type === "mT") {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
+
return mapCryptoAssetToDetails(
|
|
88
|
+
type,
|
|
89
|
+
balance,
|
|
90
|
+
assetsConversionRates.t.price,
|
|
91
|
+
assetsConversionRates.t.decimals,
|
|
92
|
+
)
|
|
87
93
|
}
|
|
88
94
|
|
|
89
|
-
return mapCryptoAssetToDetails(
|
|
90
|
-
type,
|
|
91
|
-
balance,
|
|
92
|
-
conversionRate,
|
|
93
|
-
conversionRateDecimals,
|
|
94
|
-
)
|
|
95
|
+
return mapCryptoAssetToDetails(type, balance, 1n, 0)
|
|
95
96
|
})
|
|
96
97
|
|
|
97
98
|
const btcData = detailedAssets.find(({ type }) => type === "BTC")!
|
|
@@ -129,6 +130,7 @@ export default function useDropdownData({
|
|
|
129
130
|
|
|
130
131
|
const usdCollateral = convertToUsd(
|
|
131
132
|
debt?.collateral ?? 0n,
|
|
133
|
+
getCryptoAsset("MUSD").decimals,
|
|
132
134
|
assetsConversionRates.btc.price,
|
|
133
135
|
assetsConversionRates.btc.decimals,
|
|
134
136
|
)
|
|
@@ -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"
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
import { FC } from "react"
|
|
9
9
|
import { MezoChainToken } from "../lib/contracts"
|
|
10
10
|
import { convertToUsd, formatUsd } from "./currency"
|
|
11
|
-
import { fromFixedPointToString
|
|
11
|
+
import { fromFixedPointToString } from "./numbers"
|
|
12
12
|
|
|
13
13
|
export type CryptoAssetKey = MezoChainToken | "BTC" | "ETH"
|
|
14
14
|
|
|
@@ -139,8 +139,8 @@ export function isUsdLikeCryptoAsset(key: CryptoAssetKey) {
|
|
|
139
139
|
export function mapCryptoAssetToDetails(
|
|
140
140
|
type: CryptoAssetKey,
|
|
141
141
|
balance: bigint,
|
|
142
|
-
usdConversionRate
|
|
143
|
-
usdConversionRateDecimals
|
|
142
|
+
usdConversionRate: bigint,
|
|
143
|
+
usdConversionRateDecimals: number,
|
|
144
144
|
) {
|
|
145
145
|
const { decimals } = getCryptoAsset(type)
|
|
146
146
|
|
|
@@ -150,15 +150,12 @@ export function mapCryptoAssetToDetails(
|
|
|
150
150
|
isUsdLikeCryptoAsset(type) ? 2 : 4,
|
|
151
151
|
)
|
|
152
152
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
usdConversionRateDecimals,
|
|
160
|
-
)
|
|
161
|
-
}
|
|
153
|
+
const usdBalance = convertToUsd(
|
|
154
|
+
balance,
|
|
155
|
+
decimals,
|
|
156
|
+
usdConversionRate,
|
|
157
|
+
usdConversionRateDecimals,
|
|
158
|
+
)
|
|
162
159
|
|
|
163
160
|
const formattedUsdBalance = formatUsd(usdBalance)
|
|
164
161
|
|
package/src/utils/currency.ts
CHANGED
|
@@ -42,11 +42,12 @@ export function formatUsd(value: number): string {
|
|
|
42
42
|
*/
|
|
43
43
|
export function convertToUsd(
|
|
44
44
|
assetAmount: bigint,
|
|
45
|
+
assetDecimals: number,
|
|
45
46
|
conversionRate: bigint,
|
|
46
|
-
|
|
47
|
+
conversionRateDecimals: number,
|
|
47
48
|
): number {
|
|
48
49
|
return fromFixedPoint(
|
|
49
|
-
(assetAmount * conversionRate) / 10n ** BigInt(
|
|
50
|
-
|
|
50
|
+
(assetAmount * conversionRate) / 10n ** BigInt(conversionRateDecimals),
|
|
51
|
+
assetDecimals,
|
|
51
52
|
)
|
|
52
53
|
}
|