Package not found. Please check the package name and try again.
@mezo-org/passport 0.4.0-dev.57 → 0.4.0-dev.58
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/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/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/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 +1 -1
- package/src/hooks/useAssetsConversionRates.ts +7 -2
- package/src/hooks/useDropdownData.ts +15 -13
- package/src/utils/cryptoAssets.ts +9 -12
- package/src/utils/currency.ts +4 -3
|
@@ -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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"}
|
|
@@ -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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,GAAG,CAAA;AACxC,OAAO,EAEL,cAAc,EACd,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,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO,uBAAuB,CAC5B,IAAI,EACJ,OAAO,EACP,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAC/B,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CACnC,CAAA;QACH,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,uBAAuB,CAC5B,IAAI,EACJ,OAAO,EACP,qBAAqB,CAAC,CAAC,CAAC,KAAK,EAC7B,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CACjC,CAAA;QACH,CAAC;QAED,OAAO,uBAAuB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAE,CAAA;IAClE,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,CAAE,CAAA;IACpE,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAC3C,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC9C,CAAA;IAED,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAC7C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,EAAE,CACnC,CAAC,MAAM,CAAA;IAER,MAAM,MAAM,GAAG;QACb,GAAG,EAAE,OAAO,IAAI;YACd,IAAI,EAAE,KAAK;YACX,GAAG,kBAAkB;SACtB;QACD,IAAI,EAAE,QAAQ,IAAI;YAChB,IAAI,EAAE,MAAM;YACZ,GAAG,kBAAkB;SACtB;KACF,CAAA;IAED,MAAM,mBAAmB,GAAG,eAAe,CAAC,MAAM,CAChD,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,UAAU,EACzC,CAAC,CACF,CAAA;IAED,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAC3C,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,UAAU,EACzC,CAAC,CACF,CAAA;IAED,MAAM,WAAW,GAAG,eAAe,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,CAAA;IAExD,MAAM,aAAa,GAAG,YAAY,CAChC,IAAI,EAAE,UAAU,IAAI,EAAE,EACtB,cAAc,CAAC,MAAM,CAAC,CAAC,QAAQ,EAC/B,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAC/B,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CACnC,CAAA;IAED,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;IAE9D,OAAO;QACL,MAAM;QACN,WAAW;QACX,cAAc;QACd,aAAa;QACb,UAAU;QACV,eAAe;QACf,YAAY;QACZ,aAAa;QACb,MAAM;QACN,gBAAgB;QAChB,mBAAmB;KACpB,CAAA;AACH,CAAC"}
|
|
@@ -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
|
@@ -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({
|
|
@@ -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
|
)
|
|
@@ -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
|
}
|