@mezo-org/passport 0.5.2 → 0.5.4-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/api/portal.d.ts +1 -1
- package/dist/src/api/portal.d.ts.map +1 -1
- package/dist/src/hooks/useAssetsConversionRates.d.ts.map +1 -1
- package/dist/src/hooks/useAssetsConversionRates.js +9 -36
- package/dist/src/hooks/useAssetsConversionRates.js.map +1 -1
- package/dist/src/hooks/useBorrowData.d.ts +0 -15
- package/dist/src/hooks/useBorrowData.d.ts.map +1 -1
- package/dist/src/hooks/useBorrowData.js +7 -26
- package/dist/src/hooks/useBorrowData.js.map +1 -1
- package/dist/src/hooks/useCollateralPrice.d.ts +17 -0
- package/dist/src/hooks/useCollateralPrice.d.ts.map +1 -0
- package/dist/src/hooks/useCollateralPrice.js +54 -0
- package/dist/src/hooks/useCollateralPrice.js.map +1 -0
- package/dist/src/hooks/useTokensBalances.d.ts.map +1 -1
- package/dist/src/hooks/useTokensBalances.js +3 -0
- package/dist/src/hooks/useTokensBalances.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 +0 -1
- package/dist/src/lib/contracts/index.js.map +1 -1
- package/dist/src/utils/number2.d.ts +106 -0
- package/dist/src/utils/number2.d.ts.map +1 -0
- package/dist/src/utils/number2.js +289 -0
- package/dist/src/utils/number2.js.map +1 -0
- package/dist/src/utils/number2.test.d.ts +2 -0
- package/dist/src/utils/number2.test.d.ts.map +1 -0
- package/dist/src/utils/number2.test.js +223 -0
- package/dist/src/utils/number2.test.js.map +1 -0
- package/package.json +1 -1
- package/src/api/portal.ts +1 -1
- package/src/hooks/useAssetsConversionRates.ts +10 -43
- package/src/hooks/useBorrowData.ts +9 -27
- package/src/hooks/useCollateralPrice.ts +62 -0
- package/src/hooks/useTokensBalances.ts +3 -0
- package/src/lib/contracts/index.ts +0 -2
- package/src/utils/number2.test.ts +309 -0
- package/src/utils/number2.ts +419 -0
- package/dist/src/lib/contracts/priceOracle.d.ts +0 -43
- package/dist/src/lib/contracts/priceOracle.d.ts.map +0 -1
- package/dist/src/lib/contracts/priceOracle.js +0 -52
- package/dist/src/lib/contracts/priceOracle.js.map +0 -1
- package/src/lib/contracts/priceOracle.ts +0 -53
package/dist/src/api/portal.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal.d.ts","sourceRoot":"","sources":["../../../src/api/portal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,
|
|
1
|
+
{"version":3,"file":"portal.d.ts","sourceRoot":"","sources":["../../../src/api/portal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,KAAK,UAAU,GAAG;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,2BAA2B;;;CAGvC,CAAA;AAED,qBAAa,eAAgB,SAAQ,SAAS;gBAE1C,WAAW,GAAE,MAAM,OAAO,2BAAuC,EACjE,MAAM,CAAC,EAAE,MAAM;IAQX,mBAAmB;IAQnB,aAAa,CAAC,OAAO,EAAE,MAAM;CAUpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAssetsConversionRates.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAssetsConversionRates.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useAssetsConversionRates.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAssetsConversionRates.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,wBAAwB,KAAK,CAAA;AAK1C,eAAO,MAAM,SAAS,mCAAmC,CAAA;AAEzD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB;;;;;;UA4BvC"}
|
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
import { useQuery } from "@tanstack/react-query";
|
|
2
|
-
import { useConfig } from "wagmi";
|
|
3
|
-
import { readContract } from "wagmi/actions";
|
|
4
2
|
import { parseUnits } from "viem";
|
|
5
3
|
import { ONE_SECOND_MS } from "../utils/time";
|
|
6
4
|
import { usePortalApiClient } from "./usePortalApiClient";
|
|
7
|
-
import {
|
|
8
|
-
import { CHAIN_ID } from "../constants";
|
|
9
|
-
import { usePassportContext } from "./usePassportContext";
|
|
10
|
-
import { normalizePrecision } from "../utils/numbers";
|
|
5
|
+
import { useCollateralPrice } from "./useCollateralPrice";
|
|
11
6
|
export const CONVERSION_RATE_DECIMALS = 18;
|
|
12
7
|
// If the oracle has not been updated in at least 60 seconds, it is stale.
|
|
13
8
|
const MAX_PRICE_DELAY = 60 * ONE_SECOND_MS;
|
|
@@ -22,46 +17,24 @@ export const QUERY_KEY = "passport.assetsConversionRates";
|
|
|
22
17
|
*/
|
|
23
18
|
export function useAssetsConversionRates() {
|
|
24
19
|
const portalApiClient = usePortalApiClient();
|
|
25
|
-
const {
|
|
26
|
-
const
|
|
20
|
+
const { data: collateralPriceData } = useCollateralPrice();
|
|
21
|
+
const collateralPrice = collateralPriceData?.toString();
|
|
27
22
|
return useQuery({
|
|
28
|
-
queryKey: [QUERY_KEY],
|
|
29
|
-
queryFn: async () => Promise.all([
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
...priceOracleContract,
|
|
33
|
-
functionName: "latestRoundData",
|
|
34
|
-
chainId: CHAIN_ID[environment],
|
|
35
|
-
}),
|
|
36
|
-
]),
|
|
37
|
-
select: ([portalStatistics, btcPriceData]) => {
|
|
23
|
+
queryKey: [QUERY_KEY, collateralPrice],
|
|
24
|
+
queryFn: async () => Promise.all([portalApiClient.getPortalStatistics()]),
|
|
25
|
+
enabled: !!collateralPrice,
|
|
26
|
+
select: ([portalStatistics]) => {
|
|
38
27
|
const tTokenConversionRate = portalStatistics.tTokenPrice;
|
|
39
|
-
const [, btcConversionRate] = btcPriceData;
|
|
40
28
|
const tPrice = parseUnits(tTokenConversionRate.toString(), CONVERSION_RATE_DECIMALS);
|
|
41
|
-
const btcPrice = normalizePrecision(btcConversionRate, CONVERSION_RATE_DECIMALS);
|
|
42
29
|
return {
|
|
43
30
|
rates: {
|
|
44
31
|
mT: tPrice,
|
|
45
|
-
BTC:
|
|
32
|
+
BTC: BigInt(collateralPrice),
|
|
46
33
|
},
|
|
47
34
|
decimals: CONVERSION_RATE_DECIMALS,
|
|
48
35
|
};
|
|
49
36
|
},
|
|
50
|
-
refetchInterval:
|
|
51
|
-
if (!state.data)
|
|
52
|
-
return MAX_PRICE_DELAY;
|
|
53
|
-
const [, btcPriceData] = state.data;
|
|
54
|
-
const [, , , updatedAt] = btcPriceData;
|
|
55
|
-
if (!updatedAt)
|
|
56
|
-
return MAX_PRICE_DELAY;
|
|
57
|
-
const age = Date.now() - Number(updatedAt) * 1000;
|
|
58
|
-
return age > MAX_PRICE_DELAY
|
|
59
|
-
? // If the data is stale, we want to refetch as soon as possible, but
|
|
60
|
-
// not faster than once per second, to avoid excessive requests.
|
|
61
|
-
// Math.max ensures the interval is at least 1 second.
|
|
62
|
-
Math.max(ONE_SECOND_MS, MAX_PRICE_DELAY - age)
|
|
63
|
-
: MAX_PRICE_DELAY - age;
|
|
64
|
-
},
|
|
37
|
+
refetchInterval: MAX_PRICE_DELAY,
|
|
65
38
|
});
|
|
66
39
|
}
|
|
67
40
|
//# sourceMappingURL=useAssetsConversionRates.js.map
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"useAssetsConversionRates.js","sourceRoot":"","sources":["../../../src/hooks/useAssetsConversionRates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAA;AAE1C,0EAA0E;AAC1E,MAAM,eAAe,GAAG,EAAE,GAAG,aAAa,CAAA;AAE1C,MAAM,CAAC,MAAM,SAAS,GAAG,gCAAgC,CAAA;AAEzD;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB;IACtC,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAA;IAC5C,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAE1D,MAAM,eAAe,GAAG,mBAAmB,EAAE,QAAQ,EAAE,CAAA;IAEvD,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;QACtC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,mBAAmB,EAAE,CAAC,CAAC;QACzE,OAAO,EAAE,CAAC,CAAC,eAAe;QAC1B,MAAM,EAAE,CAAC,CAAC,gBAAgB,CAAC,EAAE,EAAE;YAC7B,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,WAAW,CAAA;YAEzD,MAAM,MAAM,GAAG,UAAU,CACvB,oBAAoB,CAAC,QAAQ,EAAE,EAC/B,wBAAwB,CACzB,CAAA;YAED,OAAO;gBACL,KAAK,EAAE;oBACL,EAAE,EAAE,MAAM;oBACV,GAAG,EAAE,MAAM,CAAC,eAAgB,CAAC;iBAC9B;gBACD,QAAQ,EAAE,wBAAwB;aACnC,CAAA;QACH,CAAC;QACD,eAAe,EAAE,eAAe;KACjC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -58,21 +58,6 @@ export declare function useBorrowData(queryOptions?: {}): import("wagmi").UseRea
|
|
|
58
58
|
readonly address: `0x${string}`;
|
|
59
59
|
readonly functionName: "MUSD_GAS_COMPENSATION";
|
|
60
60
|
readonly chainId: number;
|
|
61
|
-
}, {
|
|
62
|
-
readonly abi: readonly [{
|
|
63
|
-
readonly inputs: readonly [];
|
|
64
|
-
readonly name: "fetchPrice";
|
|
65
|
-
readonly outputs: readonly [{
|
|
66
|
-
readonly internalType: "uint256";
|
|
67
|
-
readonly name: "";
|
|
68
|
-
readonly type: "uint256";
|
|
69
|
-
}];
|
|
70
|
-
readonly stateMutability: "view";
|
|
71
|
-
readonly type: "function";
|
|
72
|
-
}];
|
|
73
|
-
readonly address: `0x${string}`;
|
|
74
|
-
readonly functionName: "fetchPrice";
|
|
75
|
-
readonly chainId: number;
|
|
76
61
|
}], true, {
|
|
77
62
|
collateral: {
|
|
78
63
|
value: bigint;
|
|
@@ -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":"AAwFA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,YAAY,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8F9C;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB;;EAatC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB;;EAajC"}
|
|
@@ -10,6 +10,7 @@ import { bigIntMax, normalizePrecision } from "../utils/numbers";
|
|
|
10
10
|
import useWalletAccount from "./useWalletAccount";
|
|
11
11
|
import { getAsset } from "../utils/assets";
|
|
12
12
|
import { convertToUsd } from "../utils/currency";
|
|
13
|
+
import { useCollateralPrice } from "./useCollateralPrice";
|
|
13
14
|
const DEBT_AND_COLL_PRECISION = 18;
|
|
14
15
|
// Wagmi handles typesafety with ABI const assertions. TypeScript doesn't
|
|
15
16
|
// support importing JSON as const yet so types cannot be inferred from the
|
|
@@ -77,21 +78,6 @@ const BORROWER_OPERATIONS_ABI = [
|
|
|
77
78
|
type: "function",
|
|
78
79
|
},
|
|
79
80
|
];
|
|
80
|
-
const PRICE_FEED_ABI = [
|
|
81
|
-
{
|
|
82
|
-
inputs: [],
|
|
83
|
-
name: "fetchPrice",
|
|
84
|
-
outputs: [
|
|
85
|
-
{
|
|
86
|
-
internalType: "uint256",
|
|
87
|
-
name: "",
|
|
88
|
-
type: "uint256",
|
|
89
|
-
},
|
|
90
|
-
],
|
|
91
|
-
stateMutability: "view",
|
|
92
|
-
type: "function",
|
|
93
|
-
},
|
|
94
|
-
];
|
|
95
81
|
/**
|
|
96
82
|
* Query hook for getting borrow data. Returns collateral and trove debt for the
|
|
97
83
|
* connected account, based on it's evm address.
|
|
@@ -100,18 +86,18 @@ const PRICE_FEED_ABI = [
|
|
|
100
86
|
export function useBorrowData(queryOptions = {}) {
|
|
101
87
|
const { environment = "mainnet" } = usePassportContext();
|
|
102
88
|
const walletAccount = useWalletAccount();
|
|
89
|
+
const { data: collateralPriceData } = useCollateralPrice();
|
|
90
|
+
const collateralPrice = collateralPriceData?.toString();
|
|
103
91
|
const contractAddress = useMemo(() => {
|
|
104
92
|
if (environment === "mainnet") {
|
|
105
93
|
return {
|
|
106
94
|
troveManager: mainnetBorrowContracts.TroveManager.address,
|
|
107
95
|
borrowerOperations: mainnetBorrowContracts.BorrowerOperations.address,
|
|
108
|
-
priceFeed: mainnetBorrowContracts.PriceFeed.address,
|
|
109
96
|
};
|
|
110
97
|
}
|
|
111
98
|
return {
|
|
112
99
|
troveManager: testnetBorrowContracts.TroveManager.address,
|
|
113
100
|
borrowerOperations: testnetBorrowContracts.BorrowerOperations.address,
|
|
114
|
-
priceFeed: testnetBorrowContracts.PriceFeed.address,
|
|
115
101
|
};
|
|
116
102
|
}, [environment]);
|
|
117
103
|
const chainId = CHAIN_ID[environment];
|
|
@@ -132,30 +118,25 @@ export function useBorrowData(queryOptions = {}) {
|
|
|
132
118
|
functionName: "MUSD_GAS_COMPENSATION",
|
|
133
119
|
chainId,
|
|
134
120
|
},
|
|
135
|
-
{
|
|
136
|
-
abi: PRICE_FEED_ABI,
|
|
137
|
-
address: contractAddress.priceFeed,
|
|
138
|
-
functionName: "fetchPrice",
|
|
139
|
-
chainId,
|
|
140
|
-
},
|
|
141
121
|
],
|
|
142
122
|
query: {
|
|
143
|
-
enabled: !!walletAccount.accountAddress,
|
|
123
|
+
enabled: !!walletAccount.accountAddress && !!collateralPrice,
|
|
144
124
|
staleTime: 5 * ONE_MINUTE_MS,
|
|
145
125
|
retry: 1,
|
|
146
126
|
select: (data) => {
|
|
147
127
|
if (!data || data.some((item) => !item.result))
|
|
148
128
|
throw new Error("No borrow data available");
|
|
129
|
+
if (!collateralPrice)
|
|
130
|
+
throw new Error("Collateral price not available");
|
|
149
131
|
const [rawCollateral, principal, interest] = data[0].result;
|
|
150
132
|
const gasCompensation = data[1].result;
|
|
151
|
-
const collateralPrice = data[2].result;
|
|
152
133
|
const btcDetails = getAsset("BTC");
|
|
153
134
|
const collateral = {
|
|
154
135
|
value: rawCollateral,
|
|
155
136
|
decimals: btcDetails.decimals,
|
|
156
137
|
symbol: btcDetails.symbol,
|
|
157
138
|
formatted: formatUnits(rawCollateral, DEBT_AND_COLL_PRECISION),
|
|
158
|
-
usd: convertToUsd(rawCollateral, DEBT_AND_COLL_PRECISION, collateralPrice, DEBT_AND_COLL_PRECISION),
|
|
139
|
+
usd: convertToUsd(rawCollateral, DEBT_AND_COLL_PRECISION, BigInt(collateralPrice), DEBT_AND_COLL_PRECISION),
|
|
159
140
|
};
|
|
160
141
|
const debtInUsdValue = bigIntMax(normalizePrecision(principal + interest - gasCompensation, DEBT_AND_COLL_PRECISION), 0n);
|
|
161
142
|
const formattedDebtInUsd = formatUnits(debtInUsdValue, DEBT_AND_COLL_PRECISION);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBorrowData.js","sourceRoot":"","sources":["../../../src/hooks/useBorrowData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,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;
|
|
1
|
+
{"version":3,"file":"useBorrowData.js","sourceRoot":"","sources":["../../../src/hooks/useBorrowData.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Query hook for getting borrow data. Returns collateral and trove debt for the
|
|
3
|
+
* connected account, based on it's evm address.
|
|
4
|
+
* @param queryOptions Query options passed to the underlying `useQuery` hook.
|
|
5
|
+
*/
|
|
6
|
+
export declare function useCollateralPrice(queryOptions?: {}): import("wagmi").UseReadContractReturnType<readonly [{
|
|
7
|
+
readonly inputs: readonly [];
|
|
8
|
+
readonly name: "fetchPrice";
|
|
9
|
+
readonly outputs: readonly [{
|
|
10
|
+
readonly internalType: "uint256";
|
|
11
|
+
readonly name: "";
|
|
12
|
+
readonly type: "uint256";
|
|
13
|
+
}];
|
|
14
|
+
readonly stateMutability: "view";
|
|
15
|
+
readonly type: "function";
|
|
16
|
+
}], "fetchPrice", readonly [], bigint>;
|
|
17
|
+
//# sourceMappingURL=useCollateralPrice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCollateralPrice.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCollateralPrice.ts"],"names":[],"mappings":"AAgCA;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,KAAK;;;;;;;;;;uCAwBnD"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { useReadContract } from "wagmi";
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
import { mainnetBorrowContracts, testnetBorrowContracts, } from "../lib/contracts";
|
|
4
|
+
import { usePassportContext } from "./usePassportContext";
|
|
5
|
+
import { CHAIN_ID } from "../constants";
|
|
6
|
+
import useWalletAccount from "./useWalletAccount";
|
|
7
|
+
// Wagmi handles typesafety with ABI const assertions. TypeScript doesn't
|
|
8
|
+
// support importing JSON as const yet so types cannot be inferred from the
|
|
9
|
+
// imported contract. As a workaround there is minimal ABI definition that can
|
|
10
|
+
// be asserted types from.
|
|
11
|
+
// Ref: https://wagmi.sh/core/typescript#const-assert-abis-typed-data
|
|
12
|
+
const PRICE_FEED_ABI = [
|
|
13
|
+
{
|
|
14
|
+
inputs: [],
|
|
15
|
+
name: "fetchPrice",
|
|
16
|
+
outputs: [
|
|
17
|
+
{
|
|
18
|
+
internalType: "uint256",
|
|
19
|
+
name: "",
|
|
20
|
+
type: "uint256",
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
stateMutability: "view",
|
|
24
|
+
type: "function",
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
/**
|
|
28
|
+
* Query hook for getting borrow data. Returns collateral and trove debt for the
|
|
29
|
+
* connected account, based on it's evm address.
|
|
30
|
+
* @param queryOptions Query options passed to the underlying `useQuery` hook.
|
|
31
|
+
*/
|
|
32
|
+
export function useCollateralPrice(queryOptions = {}) {
|
|
33
|
+
const { environment = "mainnet" } = usePassportContext();
|
|
34
|
+
const walletAccount = useWalletAccount();
|
|
35
|
+
const priceFeedContractAddress = useMemo(() => {
|
|
36
|
+
if (environment === "mainnet") {
|
|
37
|
+
return mainnetBorrowContracts.PriceFeed.address;
|
|
38
|
+
}
|
|
39
|
+
return testnetBorrowContracts.PriceFeed.address;
|
|
40
|
+
}, [environment]);
|
|
41
|
+
const chainId = CHAIN_ID[environment];
|
|
42
|
+
return useReadContract({
|
|
43
|
+
abi: PRICE_FEED_ABI,
|
|
44
|
+
address: priceFeedContractAddress,
|
|
45
|
+
functionName: "fetchPrice",
|
|
46
|
+
chainId,
|
|
47
|
+
query: {
|
|
48
|
+
enabled: !!walletAccount.accountAddress,
|
|
49
|
+
retry: 1,
|
|
50
|
+
...queryOptions,
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=useCollateralPrice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCollateralPrice.js","sourceRoot":"","sources":["../../../src/hooks/useCollateralPrice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,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,gBAAgB,MAAM,oBAAoB,CAAA;AAEjD,yEAAyE;AACzE,2EAA2E;AAC3E,8EAA8E;AAC9E,0BAA0B;AAC1B,qEAAqE;AAErE,MAAM,cAAc,GAAG;IACrB;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,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,kBAAkB,CAAC,YAAY,GAAG,EAAE;IAClD,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,GAAG,kBAAkB,EAAE,CAAA;IACxD,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;IAExC,MAAM,wBAAwB,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,sBAAsB,CAAC,SAAS,CAAC,OAAO,CAAA;QACjD,CAAC;QACD,OAAO,sBAAsB,CAAC,SAAS,CAAC,OAAO,CAAA;IACjD,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;IAEjB,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAA;IAErC,OAAO,eAAe,CAAC;QACrB,GAAG,EAAE,cAAc;QACnB,OAAO,EAAE,wBAAwB;QACjC,YAAY,EAAE,YAAY;QAC1B,OAAO;QACP,KAAK,EAAE;YACL,OAAO,EAAE,CAAC,CAAC,aAAa,CAAC,cAAc;YACvC,KAAK,EAAE,CAAC;YACR,GAAG,YAAY;SAChB;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokensBalances.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTokensBalances.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,eAAe,EAChB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAEL,cAAc,EAEf,MAAM,kBAAkB,CAAA;AAmBzB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;EAoBH,CAAA;AAgBxB,KAAK,iCAAiC,CAAC,CAAC,SAAS,cAAc,EAAE,IAAI;IACnE,MAAM,CAAC,EAAE,CAAC,CAAA;IACV,YAAY,CAAC,EAAE,IAAI,CACjB,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC,EAChD,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAC9C,CAAA;CACF,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE;QACH,KAAK,EAAE,MAAM,CAAA;QACb,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;CACF,CAAA;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,cAAc,EAAE,EAC1D,OAAO,GAAE,iCAAiC,CAAC,CAAC,CAAM,
|
|
1
|
+
{"version":3,"file":"useTokensBalances.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTokensBalances.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,eAAe,EAChB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAEL,cAAc,EAEf,MAAM,kBAAkB,CAAA;AAmBzB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;EAoBH,CAAA;AAgBxB,KAAK,iCAAiC,CAAC,CAAC,SAAS,cAAc,EAAE,IAAI;IACnE,MAAM,CAAC,EAAE,CAAC,CAAA;IACV,YAAY,CAAC,EAAE,IAAI,CACjB,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC,EAChD,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAC9C,CAAA;CACF,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE;QACH,KAAK,EAAE,MAAM,CAAA;QACb,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;CACF,CAAA;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,cAAc,EAAE,EAC1D,OAAO,GAAE,iCAAiC,CAAC,CAAC,CAAM,kGA+HnD;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B;;EAS1C;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB;;EASrC"}
|
|
@@ -80,6 +80,9 @@ export function useTokensBalances(options = {}) {
|
|
|
80
80
|
walletAccount?.accountAddress,
|
|
81
81
|
options.tokens,
|
|
82
82
|
chainId,
|
|
83
|
+
conversionRatesData?.decimals,
|
|
84
|
+
conversionRatesData?.rates.BTC,
|
|
85
|
+
conversionRatesData?.rates.mT,
|
|
83
86
|
],
|
|
84
87
|
enabled: !!walletAccount?.accountAddress && !!conversionRatesData,
|
|
85
88
|
queryFn: async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokensBalances.js","sourceRoot":"","sources":["../../../src/hooks/useTokensBalances.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAO,WAAW,EAAE,MAAM,MAAM,CAAA;AACvC,OAAO,EACL,QAAQ,EACR,cAAc,GAEf,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EACL,qBAAqB,EAErB,qBAAqB,GACtB,MAAM,kBAAkB,CAAA;AACzB,OAAO,gBAAgB,MAAM,oBAAoB,CAAA;AACjD,OAAO,EACL,QAAQ,EACR,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD,yEAAyE;AACzE,2EAA2E;AAC3E,8EAA8E;AAC9E,0BAA0B;AAC1B,qEAAqE;AAErE,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACqB,CAAA;AAExB,MAAM,cAAc,GAAqB;IACvC,QAAQ;IACR,MAAM;IACN,OAAO;IACP,UAAU;IACV,QAAQ;IACR,IAAI;IACJ,OAAO;IACP,OAAO;IACP,OAAO;IACP,WAAW;IACX,MAAM;CACP,CAAA;AAqBD,MAAM,wBAAwB,GAAG,wBAAwB,CAAA;AAEzD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAgD,EAAE;IAElD,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,GAAG,gBAAgB,EAAE,GAAG,OAAO,CAAA;IAEhE,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;IAExC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,wBAAwB,EAAE,CAAA;IAEhE,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAExD,MAAM,OAAO,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAA;IAE3E,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE;YACR,wBAAwB;YACxB,aAAa,EAAE,cAAc;YAC7B,OAAO,CAAC,MAAM;YACd,OAAO;
|
|
1
|
+
{"version":3,"file":"useTokensBalances.js","sourceRoot":"","sources":["../../../src/hooks/useTokensBalances.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,5 +9,5 @@ export declare const testnetTokenContracts: ContractsMap<MezoChainToken>;
|
|
|
9
9
|
export declare const mainnetTokenContracts: ContractsMap<MezoChainToken>;
|
|
10
10
|
export declare const mainnetBorrowContracts: ContractsMap<MezoBorrowContract>;
|
|
11
11
|
export declare const testnetBorrowContracts: ContractsMap<MezoBorrowContract>;
|
|
12
|
-
export {
|
|
12
|
+
export {};
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/contracts/index.ts"],"names":[],"mappings":"AA8BA,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,GAC1B,cAAc,GACd,oBAAoB,GACpB,WAAW,CAAA;AAEf,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,EAInB,YAAY,CAAC,kBAAkB,CAAC,CAAA;AAEhD,eAAO,MAAM,sBAAsB,EAInB,YAAY,CAAC,kBAAkB,CAAC,CAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/contracts/index.ts"],"names":[],"mappings":"AA8BA,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,GAC1B,cAAc,GACd,oBAAoB,GACpB,WAAW,CAAA;AAEf,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,EAInB,YAAY,CAAC,kBAAkB,CAAC,CAAA;AAEhD,eAAO,MAAM,sBAAsB,EAInB,YAAY,CAAC,kBAAkB,CAAC,CAAA"}
|
|
@@ -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;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;AAC5G,OAAO,SAAS,MAAM,6DAA6D,CAAA;AACnF,OAAO,gBAAgB,MAAM,6DAA6D,CAAA;AA8B1F,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;IAC7C,SAAS,EAAE,SAAS;CAC0B,CAAA;AAEhD,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,YAAY,EAAE,mBAAmB;IACjC,kBAAkB,EAAE,yBAAyB;IAC7C,SAAS,EAAE,gBAAgB;CACmB,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;AAC5G,OAAO,SAAS,MAAM,6DAA6D,CAAA;AACnF,OAAO,gBAAgB,MAAM,6DAA6D,CAAA;AA8B1F,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;IAC7C,SAAS,EAAE,SAAS;CAC0B,CAAA;AAEhD,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,YAAY,EAAE,mBAAmB;IACjC,kBAAkB,EAAE,yBAAyB;IAC7C,SAAS,EAAE,gBAAgB;CACmB,CAAA"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
export declare const FLOATING_POINT_REGEX: RegExp;
|
|
2
|
+
/** PUBLIC HELPER FUNCTIONS for calculations */
|
|
3
|
+
/**
|
|
4
|
+
* Multiplies a bigint with a decimal number, taking into account the decimal places.
|
|
5
|
+
*
|
|
6
|
+
* @param bigint - The bigint value to multiply.
|
|
7
|
+
* @param number - The decimal number to multiply with.
|
|
8
|
+
* @returns The result of the multiplication as a bigint.
|
|
9
|
+
*/
|
|
10
|
+
export declare const multiplyBigIntWithDecimal: (bigint: bigint, number: number) => bigint;
|
|
11
|
+
/**
|
|
12
|
+
* Converts a fixed-point number to another fixed-point number with a different decimal precision.
|
|
13
|
+
* @param args The arguments for the conversion.
|
|
14
|
+
* - amount: required, the fixed-point number to convert.
|
|
15
|
+
* - decimals: required, the current decimal precision of the number.
|
|
16
|
+
* - targetDecimals: required, the target decimal precision for the conversion.
|
|
17
|
+
* @returns The converted fixed-point number.
|
|
18
|
+
*/
|
|
19
|
+
export declare const convertDecimals: ({ amount, decimals, targetDecimals, }: {
|
|
20
|
+
amount: bigint;
|
|
21
|
+
decimals: number;
|
|
22
|
+
targetDecimals: number;
|
|
23
|
+
}) => bigint;
|
|
24
|
+
/** Helper functions for input components */
|
|
25
|
+
/**
|
|
26
|
+
* Trims decimal places to a specified precision - NO ROUNDING!
|
|
27
|
+
* @param value The value to trim
|
|
28
|
+
* @param precision The number of decimal places to keep
|
|
29
|
+
* @returns The trimmed value
|
|
30
|
+
*/
|
|
31
|
+
export declare const trimDecimals: (value: string, precision: number) => string;
|
|
32
|
+
/**
|
|
33
|
+
* Trims integer part to a specified length - NO ROUNDING!
|
|
34
|
+
* @param value The value to trim
|
|
35
|
+
* @param precision The number of integer places to keep
|
|
36
|
+
* @returns The trimmed value
|
|
37
|
+
* @deprecated just compare the value to the max allowed value in the input component
|
|
38
|
+
*/
|
|
39
|
+
export declare const trimBeforeDecimals: (value: string, precision: number) => string;
|
|
40
|
+
/**
|
|
41
|
+
* Normalizes a decimal number input by removing invalid characters and preventing multiple dots.
|
|
42
|
+
* @param value The value to normalize
|
|
43
|
+
* @returns The normalized value
|
|
44
|
+
*/
|
|
45
|
+
export declare const normalizeDecimalNumber: (value: string) => string;
|
|
46
|
+
/**
|
|
47
|
+
* CONVERSION FUNCTIONS
|
|
48
|
+
* These functions convert between floating-point numbers and big integers as well as
|
|
49
|
+
* provide human-readable formats.
|
|
50
|
+
*
|
|
51
|
+
* They are used to ensure that numbers are correctly formatted for display and calculations
|
|
52
|
+
* and should be used in the UI and business logic to ensure correct number formatting.
|
|
53
|
+
*/
|
|
54
|
+
/** Basic conversion bigint <-> float */
|
|
55
|
+
/**
|
|
56
|
+
* Converts a floating-point number to a big integer representation.
|
|
57
|
+
* @param args The arguments for the conversion.
|
|
58
|
+
* - amount: required, the floating-point number to convert.
|
|
59
|
+
* - decimals: optional, the number of decimal places to consider.
|
|
60
|
+
* @returns The big integer representation of the floating-point number.
|
|
61
|
+
*/
|
|
62
|
+
export declare const floatToBigInt: ({ amount, decimals, }: {
|
|
63
|
+
amount: string | number;
|
|
64
|
+
decimals?: number;
|
|
65
|
+
}) => bigint;
|
|
66
|
+
/**
|
|
67
|
+
* Converts a big integer representation to a floating-point number.
|
|
68
|
+
* @param args The arguments for the conversion.
|
|
69
|
+
* - amount: required, the big integer representation to convert.
|
|
70
|
+
* - decimals: optional, the number of decimal places to consider.
|
|
71
|
+
* - desiredDecimals: optional, the desired number of decimal places for the output.
|
|
72
|
+
* @returns The floating-point representation of the big integer.
|
|
73
|
+
*/
|
|
74
|
+
export declare const bigIntToFloat: ({ amount, decimals, desiredDecimals, }: {
|
|
75
|
+
amount: bigint;
|
|
76
|
+
decimals?: number;
|
|
77
|
+
desiredDecimals?: number;
|
|
78
|
+
}) => string;
|
|
79
|
+
/** Human-readable formats */
|
|
80
|
+
type AmountAsHumanReadableArguments<T extends number | string | bigint> = {
|
|
81
|
+
amount: T;
|
|
82
|
+
desiredDecimals?: number;
|
|
83
|
+
minDecimals?: number;
|
|
84
|
+
decimals?: number;
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Helpers for setting correct arguments and getting unified human-readable
|
|
88
|
+
* formats across the app with _toHumanReadableFormat functions.
|
|
89
|
+
*/
|
|
90
|
+
export declare const amountAsUSD: <T extends number | string | bigint>(args: AmountAsHumanReadableArguments<T>) => AmountAsHumanReadableArguments<T>;
|
|
91
|
+
export declare const amountAsToken: <T extends number | string | bigint>(args: AmountAsHumanReadableArguments<T>) => AmountAsHumanReadableArguments<T>;
|
|
92
|
+
export declare const amountAsMusd: <T extends number | string | bigint>(args: AmountAsHumanReadableArguments<T>) => AmountAsHumanReadableArguments<T>;
|
|
93
|
+
export declare const amountAsMats: <T extends number | string | bigint>(args: AmountAsHumanReadableArguments<T>) => AmountAsHumanReadableArguments<T>;
|
|
94
|
+
/**
|
|
95
|
+
* Converts a floating-point number to a human-readable format - with thousands
|
|
96
|
+
* separators and specified decimal places.
|
|
97
|
+
* @param args The arguments for the conversion.
|
|
98
|
+
* - amount: required, the floating-point number to convert.
|
|
99
|
+
* - desiredDecimals: optional, the desired number of decimal places for the output.
|
|
100
|
+
* - minDecimals: optional, the minimum number of decimal places.
|
|
101
|
+
* @returns The human-readable format of the floating-point number.
|
|
102
|
+
*/
|
|
103
|
+
export declare const floatToHumanReadableFormat: ({ amount, desiredDecimals, minDecimals, }: AmountAsHumanReadableArguments<number | string>) => string;
|
|
104
|
+
export declare const bigIntToHumanReadableFormat: ({ amount, decimals, desiredDecimals, minDecimals, }: AmountAsHumanReadableArguments<bigint>) => string;
|
|
105
|
+
export {};
|
|
106
|
+
//# sourceMappingURL=number2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number2.d.ts","sourceRoot":"","sources":["../../../src/utils/number2.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,oBAAoB,QAAsC,CAAA;AAuFvE,+CAA+C;AAE/C;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,GACpC,QAAQ,MAAM,EACd,QAAQ,MAAM,KACb,MAqBF,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAI,uCAI7B;IACD,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;CACvB,KAAG,MAMH,CAAA;AAED,4CAA4C;AAE5C;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,EAAE,WAAW,MAAM,KAAG,MAK/D,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,MAAM,EACb,WAAW,MAAM,KAChB,MAMF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAI,OAAO,MAAM,WACM,CAAA;AAE1D;;;;;;;GAOG;AAEH,yCAAyC;AAEzC;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GAAI,uBAG3B;IACD,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,KAAG,MAeH,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,GAAI,wCAI3B;IACD,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,KAAG,MAqEH,CAAA;AAED,8BAA8B;AAE9B,KAAK,8BAA8B,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI;IACxE,MAAM,EAAE,CAAC,CAAA;IACT,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED;;;GAGG;AAEH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAC5D,MAAM,8BAA8B,CAAC,CAAC,CAAC,KACtC,8BAA8B,CAAC,CAAC,CAIjC,CAAA;AAEF,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAC9D,MAAM,8BAA8B,CAAC,CAAC,CAAC,KACtC,8BAA8B,CAAC,CAAC,CAIjC,CAAA;AAEF,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAC7D,MAAM,8BAA8B,CAAC,CAAC,CAAC,KACtC,8BAA8B,CAAC,CAAC,CAKjC,CAAA;AAEF,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAC7D,MAAM,8BAA8B,CAAC,CAAC,CAAC,KACtC,8BAA8B,CAAC,CAAC,CAIjC,CAAA;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,GAAI,2CAIxC,8BAA8B,CAAC,MAAM,GAAG,MAAM,CAAC,KAAG,MACa,CAAA;AAElE,eAAO,MAAM,2BAA2B,GAAI,qDAKzC,8BAA8B,CAAC,MAAM,CAAC,KAAG,MAkC3C,CAAA"}
|