@mezo-org/passport 0.4.0-dev.81 → 0.4.0-dev.83
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/auth.d.ts +1 -1
- package/dist/src/api/auth.d.ts.map +1 -1
- package/dist/src/components/Dropdown/Content.d.ts +0 -15
- package/dist/src/components/Dropdown/Content.d.ts.map +1 -1
- package/dist/src/components/Dropdown/Content.js +3 -3
- package/dist/src/components/Dropdown/Content.js.map +1 -1
- package/dist/src/components/Dropdown/Dropdown.d.ts +0 -4
- package/dist/src/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/src/components/Dropdown/Dropdown.js +10 -33
- package/dist/src/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/src/components/Dropdown/ListingItem.d.ts +8 -7
- package/dist/src/components/Dropdown/ListingItem.d.ts.map +1 -1
- package/dist/src/components/Dropdown/ListingItem.js +36 -28
- package/dist/src/components/Dropdown/ListingItem.js.map +1 -1
- package/dist/src/components/Dropdown/NestedViewLayout.d.ts +2 -1
- package/dist/src/components/Dropdown/NestedViewLayout.d.ts.map +1 -1
- package/dist/src/components/Dropdown/NestedViewLayout.js +13 -15
- package/dist/src/components/Dropdown/NestedViewLayout.js.map +1 -1
- package/dist/src/components/Dropdown/Receive/Receive.d.ts +1 -4
- package/dist/src/components/Dropdown/Receive/Receive.d.ts.map +1 -1
- package/dist/src/components/Dropdown/Receive/Receive.js +36 -19
- package/dist/src/components/Dropdown/Receive/Receive.js.map +1 -1
- package/dist/src/components/Dropdown/Root/AccountAddressActions.d.ts +2 -5
- package/dist/src/components/Dropdown/Root/AccountAddressActions.d.ts.map +1 -1
- package/dist/src/components/Dropdown/Root/AccountAddressActions.js +28 -12
- package/dist/src/components/Dropdown/Root/AccountAddressActions.js.map +1 -1
- package/dist/src/components/Dropdown/Root/AccountBalance.d.ts +2 -4
- package/dist/src/components/Dropdown/Root/AccountBalance.d.ts.map +1 -1
- package/dist/src/components/Dropdown/Root/AccountBalance.js +24 -8
- package/dist/src/components/Dropdown/Root/AccountBalance.js.map +1 -1
- package/dist/src/components/Dropdown/Root/AccountBtcListing.d.ts +6 -0
- package/dist/src/components/Dropdown/Root/AccountBtcListing.d.ts.map +1 -0
- package/dist/src/components/Dropdown/Root/AccountBtcListing.js +27 -0
- package/dist/src/components/Dropdown/Root/AccountBtcListing.js.map +1 -0
- package/dist/src/components/Dropdown/Root/AccountError.d.ts +8 -0
- package/dist/src/components/Dropdown/Root/AccountError.d.ts.map +1 -0
- package/dist/src/components/Dropdown/Root/AccountError.js +17 -0
- package/dist/src/components/Dropdown/Root/AccountError.js.map +1 -0
- package/dist/src/components/Dropdown/Root/AccountMusdListing.d.ts +4 -0
- package/dist/src/components/Dropdown/Root/AccountMusdListing.d.ts.map +1 -0
- package/dist/src/components/Dropdown/Root/AccountMusdListing.js +21 -0
- package/dist/src/components/Dropdown/Root/AccountMusdListing.js.map +1 -0
- package/dist/src/components/Dropdown/Root/AccountOtherAssets.d.ts +2 -3
- package/dist/src/components/Dropdown/Root/AccountOtherAssets.d.ts.map +1 -1
- package/dist/src/components/Dropdown/Root/AccountOtherAssets.js +34 -39
- package/dist/src/components/Dropdown/Root/AccountOtherAssets.js.map +1 -1
- package/dist/src/components/Dropdown/Root/Root.d.ts +0 -15
- package/dist/src/components/Dropdown/Root/Root.d.ts.map +1 -1
- package/dist/src/components/Dropdown/Root/Root.js +22 -34
- package/dist/src/components/Dropdown/Root/Root.js.map +1 -1
- package/dist/src/components/Dropdown/Root/WalletAddress.d.ts +2 -6
- package/dist/src/components/Dropdown/Root/WalletAddress.d.ts.map +1 -1
- package/dist/src/components/Dropdown/Root/WalletAddress.js +43 -34
- package/dist/src/components/Dropdown/Root/WalletAddress.js.map +1 -1
- package/dist/src/components/Dropdown/Root/WelcomeBlock.d.ts +2 -4
- package/dist/src/components/Dropdown/Root/WelcomeBlock.d.ts.map +1 -1
- package/dist/src/components/Dropdown/Root/WelcomeBlock.js +60 -16
- package/dist/src/components/Dropdown/Root/WelcomeBlock.js.map +1 -1
- package/dist/src/components/Dropdown/SlotNumber.d.ts +19 -0
- package/dist/src/components/Dropdown/SlotNumber.d.ts.map +1 -0
- package/dist/src/components/Dropdown/SlotNumber.js +67 -0
- package/dist/src/components/Dropdown/SlotNumber.js.map +1 -0
- package/dist/src/config.d.ts +1 -11
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +3 -40
- package/dist/src/config.js.map +1 -1
- package/dist/src/constants.d.ts +0 -2
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +0 -2
- package/dist/src/constants.js.map +1 -1
- package/dist/src/hooks/useAssetsConversionRates.d.ts +8 -13
- package/dist/src/hooks/useAssetsConversionRates.d.ts.map +1 -1
- package/dist/src/hooks/useAssetsConversionRates.js +44 -67
- package/dist/src/hooks/useAssetsConversionRates.js.map +1 -1
- package/dist/src/hooks/useAuthenticateWithWallet.d.ts.map +1 -1
- package/dist/src/hooks/useAuthenticateWithWallet.js +1 -1
- package/dist/src/hooks/useAuthenticateWithWallet.js.map +1 -1
- package/dist/src/hooks/useBorrowData.d.ts +31 -5
- package/dist/src/hooks/useBorrowData.d.ts.map +1 -1
- package/dist/src/hooks/useBorrowData.js +53 -11
- package/dist/src/hooks/useBorrowData.js.map +1 -1
- package/dist/src/hooks/useCreateAccount.d.ts.map +1 -1
- package/dist/src/hooks/useCreateAccount.js +3 -3
- package/dist/src/hooks/useCreateAccount.js.map +1 -1
- package/dist/src/hooks/useGetCurrentAccount.d.ts +2 -2
- package/dist/src/hooks/useGetCurrentAccount.d.ts.map +1 -1
- package/dist/src/hooks/useGetCurrentAccount.js +4 -6
- package/dist/src/hooks/useGetCurrentAccount.js.map +1 -1
- package/dist/src/hooks/useLinkAccount.d.ts.map +1 -1
- package/dist/src/hooks/useLinkAccount.js +3 -3
- package/dist/src/hooks/useLinkAccount.js.map +1 -1
- package/dist/src/hooks/useTokensBalances.d.ts +36 -35
- package/dist/src/hooks/useTokensBalances.d.ts.map +1 -1
- package/dist/src/hooks/useTokensBalances.js +93 -52
- package/dist/src/hooks/useTokensBalances.js.map +1 -1
- package/dist/src/hooks/useWalletAccount.d.ts +8 -10
- package/dist/src/hooks/useWalletAccount.d.ts.map +1 -1
- package/dist/src/hooks/useWalletAccount.js +22 -19
- package/dist/src/hooks/useWalletAccount.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.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/provider.d.ts +7 -1
- package/dist/src/provider.d.ts.map +1 -1
- package/dist/src/provider.js +4 -1
- package/dist/src/provider.js.map +1 -1
- package/dist/src/utils/assets.d.ts +145 -0
- package/dist/src/utils/assets.d.ts.map +1 -0
- package/dist/src/utils/assets.js +100 -0
- package/dist/src/utils/assets.js.map +1 -0
- package/dist/src/utils/assets.test.d.ts +2 -0
- package/dist/src/utils/assets.test.d.ts.map +1 -0
- package/dist/src/utils/assets.test.js +46 -0
- package/dist/src/utils/assets.test.js.map +1 -0
- package/dist/src/utils/currency.d.ts +6 -3
- package/dist/src/utils/currency.d.ts.map +1 -1
- package/dist/src/utils/currency.js +13 -10
- package/dist/src/utils/currency.js.map +1 -1
- package/dist/src/utils/currency.test.js +44 -2
- package/dist/src/utils/currency.test.js.map +1 -1
- package/dist/src/utils/numbers.d.ts +13 -53
- package/dist/src/utils/numbers.d.ts.map +1 -1
- package/dist/src/utils/numbers.js +16 -118
- package/dist/src/utils/numbers.js.map +1 -1
- package/dist/src/utils/numbers.test.js +24 -142
- package/dist/src/utils/numbers.test.js.map +1 -1
- package/package.json +2 -1
- package/src/api/auth.ts +1 -1
- package/src/components/Dropdown/Content.tsx +3 -48
- package/src/components/Dropdown/Dropdown.tsx +7 -55
- package/src/components/Dropdown/ListingItem.tsx +155 -59
- package/src/components/Dropdown/NestedViewLayout.tsx +32 -20
- package/src/components/Dropdown/Receive/Receive.tsx +69 -32
- package/src/components/Dropdown/Root/AccountAddressActions.tsx +64 -35
- package/src/components/Dropdown/Root/AccountBalance.tsx +54 -16
- package/src/components/Dropdown/Root/AccountBtcListing.tsx +52 -0
- package/src/components/Dropdown/Root/AccountError.tsx +34 -0
- package/src/components/Dropdown/Root/AccountMusdListing.tsx +45 -0
- package/src/components/Dropdown/Root/AccountOtherAssets.tsx +63 -46
- package/src/components/Dropdown/Root/Root.tsx +28 -98
- package/src/components/Dropdown/Root/WalletAddress.tsx +95 -89
- package/src/components/Dropdown/Root/WelcomeBlock.tsx +109 -29
- package/src/components/Dropdown/SlotNumber.tsx +131 -0
- package/src/config.ts +3 -59
- package/src/constants.ts +0 -6
- package/src/hooks/useAssetsConversionRates.ts +49 -67
- package/src/hooks/useAuthenticateWithWallet.ts +7 -5
- package/src/hooks/useBorrowData.ts +71 -12
- package/src/hooks/useCreateAccount.ts +5 -4
- package/src/hooks/useGetCurrentAccount.ts +5 -7
- package/src/hooks/useLinkAccount.ts +5 -4
- package/src/hooks/useTokensBalances.ts +152 -74
- package/src/hooks/useWalletAccount.ts +27 -36
- package/src/index.ts +0 -1
- package/src/lib/contracts/index.ts +8 -1
- package/src/provider.ts +11 -3
- package/src/utils/assets.test.ts +57 -0
- package/src/utils/assets.ts +103 -0
- package/src/utils/currency.test.ts +76 -2
- package/src/utils/currency.ts +20 -15
- package/src/utils/numbers.test.ts +29 -180
- package/src/utils/numbers.ts +22 -171
- package/dist/src/components/Dropdown/Root/AccountAssetItem.d.ts +0 -11
- package/dist/src/components/Dropdown/Root/AccountAssetItem.d.ts.map +0 -1
- package/dist/src/components/Dropdown/Root/AccountAssetItem.js +0 -9
- package/dist/src/components/Dropdown/Root/AccountAssetItem.js.map +0 -1
- package/dist/src/hooks/useDropdownData.d.ts +0 -47
- package/dist/src/hooks/useDropdownData.d.ts.map +0 -1
- package/dist/src/hooks/useDropdownData.js +0 -97
- package/dist/src/hooks/useDropdownData.js.map +0 -1
- package/dist/src/utils/cryptoAssets.d.ts +0 -44
- package/dist/src/utils/cryptoAssets.d.ts.map +0 -1
- package/dist/src/utils/cryptoAssets.js +0 -129
- package/dist/src/utils/cryptoAssets.js.map +0 -1
- package/dist/src/utils/cryptoAssets.test.d.ts +0 -2
- package/dist/src/utils/cryptoAssets.test.d.ts.map +0 -1
- package/dist/src/utils/cryptoAssets.test.js +0 -67
- package/dist/src/utils/cryptoAssets.test.js.map +0 -1
- package/src/components/Dropdown/Root/AccountAssetItem.tsx +0 -26
- package/src/hooks/useDropdownData.ts +0 -152
- package/src/utils/cryptoAssets.test.ts +0 -79
- package/src/utils/cryptoAssets.ts +0 -171
|
@@ -1,16 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { useQueryClient } from "@tanstack/react-query";
|
|
4
|
-
import {
|
|
1
|
+
import { useConfig } from "wagmi";
|
|
2
|
+
import { formatUnits } from "viem";
|
|
3
|
+
import { useQuery, useQueryClient, } from "@tanstack/react-query";
|
|
4
|
+
import { getBalance, readContracts } from "wagmi/actions";
|
|
5
5
|
import { mainnetTokenContracts, testnetTokenContracts, } from "../lib/contracts";
|
|
6
6
|
import useWalletAccount from "./useWalletAccount";
|
|
7
|
+
import { getAsset, isBitcoinLikeCryptoAsset, isTTokenCryptoAsset, } from "../utils/assets";
|
|
8
|
+
import { convertToUsd } from "../utils/currency";
|
|
7
9
|
import { CHAIN_ID } from "../constants";
|
|
10
|
+
import { useAssetsConversionRates } from "./useAssetsConversionRates";
|
|
11
|
+
import { normalizePrecision } from "../utils/numbers";
|
|
8
12
|
// Wagmi handles typesafety with ABI const assertions. TypeScript doesn't
|
|
9
13
|
// support importing JSON as const yet so types cannot be inferred from the
|
|
10
14
|
// imported contract. As a workaround there is minimal ABI definition that can
|
|
11
15
|
// be asserted types from.
|
|
12
16
|
// Ref: https://wagmi.sh/core/typescript#const-assert-abis-typed-data
|
|
13
|
-
const BALANCE_OF_ABI = [
|
|
17
|
+
export const BALANCE_OF_ABI = [
|
|
14
18
|
{
|
|
15
19
|
inputs: [
|
|
16
20
|
{
|
|
@@ -44,6 +48,7 @@ const BALANCE_TOKENS = [
|
|
|
44
48
|
"mxSolvBTC",
|
|
45
49
|
"MUSD",
|
|
46
50
|
];
|
|
51
|
+
const TOKEN_BALANCES_QUERY_KEY = "passport.tokenBalances";
|
|
47
52
|
/**
|
|
48
53
|
* Hook to get the balance of a list of tokens for the current account
|
|
49
54
|
* @param options.tokens The list of tokens to get the balance for. It will
|
|
@@ -53,67 +58,106 @@ const BALANCE_TOKENS = [
|
|
|
53
58
|
* @returns Tanstack's `useQuery` returnings with balance of tokens for the
|
|
54
59
|
* current account in form of typesafe object with token names as keys
|
|
55
60
|
* and balances as values.
|
|
56
|
-
* @dev In case of error data fallbacks to `0n`. To determine if an error
|
|
57
|
-
* occurred, check the `isError` property.
|
|
58
61
|
* @example
|
|
59
62
|
* const mezoTokensBalance = useTokensBalances({
|
|
60
63
|
* tokens: ["mT", "mxSolvBTC"],
|
|
61
64
|
* })
|
|
62
|
-
*
|
|
63
|
-
* console.log(
|
|
65
|
+
* // Assuming the status is "success"
|
|
66
|
+
* console.log(mezoTokensBalance.data.mT) // Eg. { value: 0n ... }
|
|
67
|
+
* console.log(Object.keys(mezoTokensBalance.data)) // ["mT", "mxSolvBTC"]
|
|
64
68
|
*/
|
|
65
69
|
export function useTokensBalances(options = {}) {
|
|
66
|
-
const {
|
|
67
|
-
const {
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
return useReadContracts({
|
|
89
|
-
contracts,
|
|
90
|
-
query: {
|
|
91
|
-
select: (data) => data.reduce((acc, item) => {
|
|
92
|
-
const token = tokens[data.indexOf(item)];
|
|
70
|
+
const { tokens = BALANCE_TOKENS, ...restQueryOptions } = options;
|
|
71
|
+
const { data: walletAccountData } = useWalletAccount();
|
|
72
|
+
const config = useConfig();
|
|
73
|
+
const { data: conversionRatesData } = useAssetsConversionRates();
|
|
74
|
+
return useQuery({
|
|
75
|
+
queryKey: [
|
|
76
|
+
TOKEN_BALANCES_QUERY_KEY,
|
|
77
|
+
walletAccountData?.accountAddress,
|
|
78
|
+
options.tokens,
|
|
79
|
+
],
|
|
80
|
+
enabled: !!walletAccountData?.accountAddress && !!conversionRatesData,
|
|
81
|
+
queryFn: async () => {
|
|
82
|
+
const isMainnet = config.state.chainId === CHAIN_ID.mainnet;
|
|
83
|
+
const contractsMap = isMainnet
|
|
84
|
+
? mainnetTokenContracts
|
|
85
|
+
: testnetTokenContracts;
|
|
86
|
+
const accountAddress = walletAccountData?.accountAddress;
|
|
87
|
+
if (!accountAddress) {
|
|
88
|
+
throw new Error("Account address is not available.");
|
|
89
|
+
}
|
|
90
|
+
const tokenContracts = tokens.map((token) => {
|
|
91
|
+
const { address } = contractsMap[token];
|
|
93
92
|
return {
|
|
94
|
-
|
|
95
|
-
|
|
93
|
+
address,
|
|
94
|
+
abi: BALANCE_OF_ABI,
|
|
95
|
+
functionName: "balanceOf",
|
|
96
|
+
args: [accountAddress],
|
|
97
|
+
chainId: config.state.chainId,
|
|
98
|
+
};
|
|
99
|
+
});
|
|
100
|
+
return Promise.all([
|
|
101
|
+
getBalance(config, { address: accountAddress }),
|
|
102
|
+
readContracts(config, {
|
|
103
|
+
contracts: tokenContracts,
|
|
104
|
+
}),
|
|
105
|
+
]);
|
|
106
|
+
},
|
|
107
|
+
select: (data) => {
|
|
108
|
+
const [btcBalance, tokensBalancesData] = data;
|
|
109
|
+
if (!conversionRatesData) {
|
|
110
|
+
throw new Error("Conversion rates data is not available.");
|
|
111
|
+
}
|
|
112
|
+
const parsedBtcBalance = {
|
|
113
|
+
...btcBalance,
|
|
114
|
+
symbol: getAsset("BTC").symbol,
|
|
115
|
+
usd: convertToUsd(btcBalance.value, btcBalance.decimals, conversionRatesData.rates.BTC, conversionRatesData.decimals),
|
|
116
|
+
};
|
|
117
|
+
const parsedTokensBalances = tokensBalancesData.map((item, index) => {
|
|
118
|
+
const token = tokens[index];
|
|
119
|
+
const { decimals, symbol } = getAsset(token);
|
|
120
|
+
if (item.status === "failure") {
|
|
121
|
+
throw new Error(`Failed to fetch balance of ${token} for ${walletAccountData?.accountAddress}.`);
|
|
122
|
+
}
|
|
123
|
+
const tokenBalance = {
|
|
124
|
+
value: item.result,
|
|
125
|
+
decimals,
|
|
126
|
+
symbol,
|
|
127
|
+
formatted: formatUnits(item.result, decimals),
|
|
128
|
+
};
|
|
129
|
+
let usd = {
|
|
130
|
+
value: normalizePrecision(tokenBalance.value, tokenBalance.decimals, conversionRatesData.decimals),
|
|
131
|
+
formatted: formatUnits(tokenBalance.value, tokenBalance.decimals),
|
|
96
132
|
};
|
|
97
|
-
|
|
98
|
-
|
|
133
|
+
if (isBitcoinLikeCryptoAsset(tokenBalance.symbol)) {
|
|
134
|
+
usd = convertToUsd(tokenBalance.value, tokenBalance.decimals, conversionRatesData.rates.BTC, conversionRatesData.decimals);
|
|
135
|
+
}
|
|
136
|
+
if (isTTokenCryptoAsset(tokenBalance.symbol)) {
|
|
137
|
+
usd = convertToUsd(tokenBalance.value, tokenBalance.decimals, conversionRatesData.rates.mT, conversionRatesData.decimals);
|
|
138
|
+
}
|
|
139
|
+
return { ...tokenBalance, usd };
|
|
140
|
+
});
|
|
141
|
+
return [parsedBtcBalance, ...parsedTokensBalances].reduce((acc, token) => ({
|
|
142
|
+
...acc,
|
|
143
|
+
[token.symbol]: token,
|
|
144
|
+
}), {});
|
|
99
145
|
},
|
|
146
|
+
...restQueryOptions,
|
|
100
147
|
});
|
|
101
148
|
}
|
|
102
149
|
/**
|
|
103
150
|
* Hook for invalidating current user's token balances. Can be used to
|
|
104
151
|
* invalidate the balances manually, which forces the data to be re-fetched.
|
|
105
|
-
* @param tokens The list of tokens (as string arrays) for which we want to
|
|
106
|
-
* invalidate query for.
|
|
107
152
|
* @returns Function `invalidateTokenBalances` that invalidates token balances
|
|
108
153
|
* @example
|
|
109
|
-
* const { invalidateTokenBalances } = useInvalidateTokensBalances(
|
|
154
|
+
* const { invalidateTokenBalances } = useInvalidateTokensBalances()
|
|
110
155
|
* (...)
|
|
111
156
|
* await invalidateTokenBalances()
|
|
112
157
|
*/
|
|
113
|
-
export function useInvalidateTokensBalances(
|
|
158
|
+
export function useInvalidateTokensBalances() {
|
|
114
159
|
const queryClient = useQueryClient();
|
|
115
|
-
const
|
|
116
|
-
const invalidateTokensBalancesHandler = useCallback(() => queryClient.invalidateQueries({ queryKey }), [queryClient, queryKey]);
|
|
160
|
+
const invalidateTokensBalancesHandler = () => queryClient.invalidateQueries({ queryKey: [TOKEN_BALANCES_QUERY_KEY] });
|
|
117
161
|
return {
|
|
118
162
|
invalidateTokensBalances: invalidateTokensBalancesHandler,
|
|
119
163
|
};
|
|
@@ -121,18 +165,15 @@ export function useInvalidateTokensBalances(tokens) {
|
|
|
121
165
|
/**
|
|
122
166
|
* Hook for resetting current user's token balances. Can be used to reset the
|
|
123
167
|
* balances manually, which forces the data to be re-fetched.
|
|
124
|
-
* @param tokens The list of tokens (as string arrays) for which we want to
|
|
125
|
-
* reset query for.
|
|
126
168
|
* @returns Function `resetTokenBalances` that invalidates token balances
|
|
127
169
|
* @example
|
|
128
|
-
* const { resetTokenBalances } = useResetTokensBalances(
|
|
170
|
+
* const { resetTokenBalances } = useResetTokensBalances()
|
|
129
171
|
* (...)
|
|
130
172
|
* await resetTokenBalances()
|
|
131
173
|
*/
|
|
132
|
-
export function useResetTokensBalances(
|
|
174
|
+
export function useResetTokensBalances() {
|
|
133
175
|
const queryClient = useQueryClient();
|
|
134
|
-
const
|
|
135
|
-
const resetTokenBalancesHandler = useCallback(() => queryClient.resetQueries({ queryKey }), [queryClient, queryKey]);
|
|
176
|
+
const resetTokenBalancesHandler = () => queryClient.resetQueries({ queryKey: [TOKEN_BALANCES_QUERY_KEY] });
|
|
136
177
|
return {
|
|
137
178
|
resetTokenBalances: resetTokenBalancesHandler,
|
|
138
179
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokensBalances.js","sourceRoot":"","sources":["../../../src/hooks/useTokensBalances.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useTokensBalances.js","sourceRoot":"","sources":["../../../src/hooks/useTokensBalances.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import { Address } from "viem";
|
|
2
1
|
import { Connector } from "wagmi";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
export declare const WALLET_ACCOUNT_QUERY_KEY = "passport.walletAccount";
|
|
3
|
+
export default function useWalletAccount(): import("@tanstack/react-query").UseQueryResult<{
|
|
4
|
+
accountAddress: `0x${string}`;
|
|
5
|
+
walletAddress: string;
|
|
6
6
|
isConnected: boolean;
|
|
7
|
-
networkFamily: "
|
|
8
|
-
connector
|
|
9
|
-
chainId
|
|
10
|
-
}
|
|
11
|
-
export default function useWalletAccount(): UseWalletAccountReturn;
|
|
12
|
-
export {};
|
|
7
|
+
networkFamily: "evm" | "bitcoin";
|
|
8
|
+
connector: Connector;
|
|
9
|
+
chainId: number;
|
|
10
|
+
}, Error>;
|
|
13
11
|
//# sourceMappingURL=useWalletAccount.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWalletAccount.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWalletAccount.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useWalletAccount.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWalletAccount.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAc,MAAM,OAAO,CAAA;AAE7C,eAAO,MAAM,wBAAwB,2BAA2B,CAAA;AAShE,MAAM,CAAC,OAAO,UAAU,gBAAgB;;;;;;;UA4BvC"}
|
|
@@ -1,29 +1,32 @@
|
|
|
1
1
|
import { useQuery } from "@tanstack/react-query";
|
|
2
|
-
import { useMemo } from "react";
|
|
3
2
|
import { useAccount } from "wagmi";
|
|
3
|
+
export const WALLET_ACCOUNT_QUERY_KEY = "passport.walletAccount";
|
|
4
|
+
const getBitcoinProviderFromConnector = (connector) => connector.type === "orangekit"
|
|
5
|
+
? connector?.getBitcoinProvider()
|
|
6
|
+
: undefined;
|
|
7
|
+
// TODO: Rename to `usePassportAccount`
|
|
4
8
|
export default function useWalletAccount() {
|
|
5
|
-
const { address: evmAddress, connector, chainId } = useAccount();
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
+
const { address: evmAddress, connector, chainId, isConnected } = useAccount();
|
|
10
|
+
return useQuery({
|
|
11
|
+
queryKey: [WALLET_ACCOUNT_QUERY_KEY, evmAddress, chainId],
|
|
12
|
+
enabled: !!evmAddress,
|
|
9
13
|
queryFn: async () => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
14
|
+
if (!evmAddress || !connector || !chainId) {
|
|
15
|
+
throw new Error("Failed to retrieve wallet account information");
|
|
16
|
+
}
|
|
17
|
+
const bitcoinProvider = getBitcoinProviderFromConnector(connector);
|
|
18
|
+
const btcAddress = await bitcoinProvider?.getAddress();
|
|
19
|
+
const walletAddress = btcAddress ?? evmAddress;
|
|
20
|
+
const networkFamily = connector.type !== "orangekit" ? "evm" : "bitcoin";
|
|
13
21
|
return {
|
|
14
|
-
|
|
15
|
-
|
|
22
|
+
accountAddress: evmAddress,
|
|
23
|
+
walletAddress,
|
|
24
|
+
isConnected,
|
|
25
|
+
networkFamily,
|
|
26
|
+
connector,
|
|
27
|
+
chainId,
|
|
16
28
|
};
|
|
17
29
|
},
|
|
18
30
|
});
|
|
19
|
-
const { address: btcAddress } = btcData || {};
|
|
20
|
-
return {
|
|
21
|
-
accountAddress: evmAddress,
|
|
22
|
-
walletAddress: btcAddress ?? evmAddress,
|
|
23
|
-
isConnected: networkFamily === "bitcoin" ? !!btcAddress : !!evmAddress,
|
|
24
|
-
networkFamily,
|
|
25
|
-
connector,
|
|
26
|
-
chainId,
|
|
27
|
-
};
|
|
28
31
|
}
|
|
29
32
|
//# sourceMappingURL=useWalletAccount.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWalletAccount.js","sourceRoot":"","sources":["../../../src/hooks/useWalletAccount.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"useWalletAccount.js","sourceRoot":"","sources":["../../../src/hooks/useWalletAccount.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAa,UAAU,EAAE,MAAM,OAAO,CAAA;AAE7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,wBAAwB,CAAA;AAEhE,MAAM,+BAA+B,GAAG,CAAC,SAAoB,EAAE,EAAE,CAC/D,SAAS,CAAC,IAAI,KAAK,WAAW;IAC5B,CAAC,CAAE,SAA2C,EAAE,kBAAkB,EAAE;IACpE,CAAC,CAAC,SAAS,CAAA;AAEf,uCAAuC;AAEvC,MAAM,CAAC,OAAO,UAAU,gBAAgB;IACtC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,CAAA;IAE7E,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,wBAAwB,EAAE,UAAU,EAAE,OAAO,CAAC;QACzD,OAAO,EAAE,CAAC,CAAC,UAAU;QACrB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;YAClE,CAAC;YAED,MAAM,eAAe,GAAG,+BAA+B,CAAC,SAAS,CAAC,CAAA;YAClE,MAAM,UAAU,GAAG,MAAM,eAAe,EAAE,UAAU,EAAE,CAAA;YAEtD,MAAM,aAAa,GAAG,UAAU,IAAI,UAAU,CAAA;YAC9C,MAAM,aAAa,GACjB,SAAS,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;YAEpD,OAAO;gBACL,cAAc,EAAE,UAAU;gBAC1B,aAAa;gBACb,WAAW;gBACX,aAAa;gBACb,SAAS;gBACT,OAAO;aACR,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from "./components";
|
|
2
|
-
export { defaultConfig, unisatWalletMezoMainnet, unisatWalletMezoTestnet, okxWalletMezoMainnet, okxWalletMezoTestnet, xverseWalletMezoMainnet, xverseWalletMezoTestnet, getDefaultWallets, getConfig,
|
|
2
|
+
export { defaultConfig, unisatWalletMezoMainnet, unisatWalletMezoTestnet, okxWalletMezoMainnet, okxWalletMezoTestnet, xverseWalletMezoMainnet, xverseWalletMezoTestnet, getDefaultWallets, getConfig, } from "./config";
|
|
3
3
|
export * from "./constants";
|
|
4
4
|
export * from "./hooks";
|
|
5
5
|
export * from "./provider";
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,SAAS,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,SAAS,GACV,MAAM,UAAU,CAAA;AACjB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAA"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from "./components";
|
|
2
|
-
export { defaultConfig, unisatWalletMezoMainnet, unisatWalletMezoTestnet, okxWalletMezoMainnet, okxWalletMezoTestnet, xverseWalletMezoMainnet, xverseWalletMezoTestnet, getDefaultWallets, getConfig,
|
|
2
|
+
export { defaultConfig, unisatWalletMezoMainnet, unisatWalletMezoTestnet, okxWalletMezoMainnet, okxWalletMezoTestnet, xverseWalletMezoMainnet, xverseWalletMezoTestnet, getDefaultWallets, getConfig, } from "./config";
|
|
3
3
|
export * from "./constants";
|
|
4
4
|
export * from "./hooks";
|
|
5
5
|
export * from "./provider";
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,SAAS,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,SAAS,GACV,MAAM,UAAU,CAAA;AACjB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAA"}
|
|
@@ -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" | "BorrowerOperations";
|
|
3
|
+
export type MezoBorrowContract = "TroveManager" | "BorrowerOperations" | "PriceFeed";
|
|
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":"
|
|
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;AAEhD,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -24,6 +24,8 @@ import xsolvbtcTestnet from "@mezo-org/mezod-contracts/deployments/testnet/mxSol
|
|
|
24
24
|
import musdTestnet from "@mezo-org/musd-contracts/deployments/matsnet/MUSD.json";
|
|
25
25
|
import troveManagerTestnet from "@mezo-org/musd-contracts/deployments/matsnet/TroveManager.json";
|
|
26
26
|
import borrowerOperationsTestnet from "@mezo-org/musd-contracts/deployments/matsnet/BorrowerOperations.json";
|
|
27
|
+
import priceFeed from "@mezo-org/musd-contracts/deployments/mainnet/PriceFeed.json";
|
|
28
|
+
import priceFeedTestnet from "@mezo-org/musd-contracts/deployments/matsnet/PriceFeed.json";
|
|
27
29
|
export const testnetTokenContracts = {
|
|
28
30
|
mcbBTC: cbbtcTestnet,
|
|
29
31
|
mDAI: daiTestnet,
|
|
@@ -53,10 +55,12 @@ export const mainnetTokenContracts = {
|
|
|
53
55
|
export const mainnetBorrowContracts = {
|
|
54
56
|
TroveManager: troveManagerMainnet,
|
|
55
57
|
BorrowerOperations: borrowerOperationsMainnet,
|
|
58
|
+
PriceFeed: priceFeed,
|
|
56
59
|
};
|
|
57
60
|
export const testnetBorrowContracts = {
|
|
58
61
|
TroveManager: troveManagerTestnet,
|
|
59
62
|
BorrowerOperations: borrowerOperationsTestnet,
|
|
63
|
+
PriceFeed: priceFeedTestnet,
|
|
60
64
|
};
|
|
61
65
|
export { default as priceOracleContract } from "./priceOracle";
|
|
62
66
|
//# 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;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;
|
|
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;AAEhD,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,eAAe,CAAA"}
|
package/dist/src/provider.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ export interface PassportContextValue {
|
|
|
3
3
|
authApiClient: AuthApiClient;
|
|
4
4
|
portalApiClient: PortalApiClient;
|
|
5
5
|
environment?: Environment;
|
|
6
|
+
accountDataRefetchInterval: number;
|
|
7
|
+
nativeBalanceRefetchInterval: number;
|
|
6
8
|
}
|
|
7
9
|
export declare const PassportContext: import("react").Context<PassportContextValue | undefined>;
|
|
8
10
|
type Environment = "mainnet" | "testnet";
|
|
@@ -11,7 +13,11 @@ type PassportProviderProps = {
|
|
|
11
13
|
environment?: Environment;
|
|
12
14
|
authApiUrl?: string;
|
|
13
15
|
portalApiUrl?: string;
|
|
16
|
+
/** Time in milliseconds after which account data (like mats or mezo id) in dropdown should be re-fetched. Default is 90000 (90 secs) */
|
|
17
|
+
accountDataRefetchInterval?: number;
|
|
18
|
+
/** Time in milliseconds after which native balance in dropdown should be re-fetched. Default is 90000 (90 secs) */
|
|
19
|
+
nativeBalanceRefetchInterval?: number;
|
|
14
20
|
};
|
|
15
|
-
export declare function PassportProvider({ environment, authApiUrl, portalApiUrl, children, }: PassportProviderProps): import("react").FunctionComponentElement<import("react").ProviderProps<PassportContextValue | undefined>>;
|
|
21
|
+
export declare function PassportProvider({ environment, authApiUrl, portalApiUrl, children, accountDataRefetchInterval, nativeBalanceRefetchInterval, }: PassportProviderProps): import("react").FunctionComponentElement<import("react").ProviderProps<PassportContextValue | undefined>>;
|
|
16
22
|
export {};
|
|
17
23
|
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAGtD,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,aAAa,CAAA;IAC5B,eAAe,EAAE,eAAe,CAAA;IAChC,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,0BAA0B,EAAE,MAAM,CAAA;IAClC,4BAA4B,EAAE,MAAM,CAAA;CACrC;AAED,eAAO,MAAM,eAAe,2DAE3B,CAAA;AAED,KAAK,WAAW,GAAG,SAAS,GAAG,SAAS,CAAA;AAExC,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,wIAAwI;IACxI,0BAA0B,CAAC,EAAE,MAAM,CAAA;IACnC,mHAAmH;IACnH,4BAA4B,CAAC,EAAE,MAAM,CAAA;CACtC,CAAA;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,WAAW,EACX,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,0BAA+C,EAC/C,4BAAiD,GAClD,EAAE,qBAAqB,6GAqBvB"}
|
package/dist/src/provider.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { createContext, createElement } from "react";
|
|
2
2
|
import { AuthApiClient, PortalApiClient } from "./api";
|
|
3
|
+
import { ONE_SECOND_MS } from "./utils/time";
|
|
3
4
|
export const PassportContext = createContext(undefined);
|
|
4
|
-
export function PassportProvider({ environment, authApiUrl, portalApiUrl, children, }) {
|
|
5
|
+
export function PassportProvider({ environment, authApiUrl, portalApiUrl, children, accountDataRefetchInterval = 90 * ONE_SECOND_MS, nativeBalanceRefetchInterval = 90 * ONE_SECOND_MS, }) {
|
|
5
6
|
if (environment && !["mainnet", "testnet"].includes(environment)) {
|
|
6
7
|
throw new Error("Wrong environment passed to PassportProvider.");
|
|
7
8
|
}
|
|
@@ -10,6 +11,8 @@ export function PassportProvider({ environment, authApiUrl, portalApiUrl, childr
|
|
|
10
11
|
authApiClient: new AuthApiClient(environment ?? "mainnet", authApiUrl),
|
|
11
12
|
portalApiClient: new PortalApiClient(environment ?? "mainnet", portalApiUrl),
|
|
12
13
|
environment,
|
|
14
|
+
accountDataRefetchInterval,
|
|
15
|
+
nativeBalanceRefetchInterval,
|
|
13
16
|
},
|
|
14
17
|
}, children);
|
|
15
18
|
}
|
package/dist/src/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAU5C,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAC1C,SAAS,CACV,CAAA;AAeD,MAAM,UAAU,gBAAgB,CAAC,EAC/B,WAAW,EACX,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,0BAA0B,GAAG,EAAE,GAAG,aAAa,EAC/C,4BAA4B,GAAG,EAAE,GAAG,aAAa,GAC3B;IACtB,IAAI,WAAW,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IAClE,CAAC;IAED,OAAO,aAAa,CAClB,eAAe,CAAC,QAAQ,EACxB;QACE,KAAK,EAAE;YACL,aAAa,EAAE,IAAI,aAAa,CAAC,WAAW,IAAI,SAAS,EAAE,UAAU,CAAC;YACtE,eAAe,EAAE,IAAI,eAAe,CAClC,WAAW,IAAI,SAAS,EACxB,YAAY,CACb;YACD,WAAW;YACX,0BAA0B;YAC1B,4BAA4B;SAC7B;KACF,EACD,QAAQ,CACT,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
declare const ASSETS: {
|
|
2
|
+
BTC: {
|
|
3
|
+
name: string;
|
|
4
|
+
symbol: string;
|
|
5
|
+
decimals: number;
|
|
6
|
+
};
|
|
7
|
+
ETH: {
|
|
8
|
+
name: string;
|
|
9
|
+
symbol: string;
|
|
10
|
+
decimals: number;
|
|
11
|
+
};
|
|
12
|
+
MUSD: {
|
|
13
|
+
name: string;
|
|
14
|
+
symbol: string;
|
|
15
|
+
decimals: number;
|
|
16
|
+
};
|
|
17
|
+
mDAI: {
|
|
18
|
+
name: string;
|
|
19
|
+
symbol: string;
|
|
20
|
+
decimals: number;
|
|
21
|
+
};
|
|
22
|
+
mFBTC: {
|
|
23
|
+
name: string;
|
|
24
|
+
symbol: string;
|
|
25
|
+
decimals: number;
|
|
26
|
+
};
|
|
27
|
+
mcbBTC: {
|
|
28
|
+
name: string;
|
|
29
|
+
symbol: string;
|
|
30
|
+
decimals: number;
|
|
31
|
+
};
|
|
32
|
+
mSolvBTC: {
|
|
33
|
+
name: string;
|
|
34
|
+
symbol: string;
|
|
35
|
+
decimals: number;
|
|
36
|
+
};
|
|
37
|
+
mswBTC: {
|
|
38
|
+
name: string;
|
|
39
|
+
symbol: string;
|
|
40
|
+
decimals: number;
|
|
41
|
+
};
|
|
42
|
+
mT: {
|
|
43
|
+
name: string;
|
|
44
|
+
symbol: string;
|
|
45
|
+
decimals: number;
|
|
46
|
+
};
|
|
47
|
+
mUSDC: {
|
|
48
|
+
name: string;
|
|
49
|
+
symbol: string;
|
|
50
|
+
decimals: number;
|
|
51
|
+
};
|
|
52
|
+
mUSDe: {
|
|
53
|
+
name: string;
|
|
54
|
+
symbol: string;
|
|
55
|
+
decimals: number;
|
|
56
|
+
};
|
|
57
|
+
mUSDT: {
|
|
58
|
+
name: string;
|
|
59
|
+
symbol: string;
|
|
60
|
+
decimals: number;
|
|
61
|
+
};
|
|
62
|
+
mxSolvBTC: {
|
|
63
|
+
name: string;
|
|
64
|
+
symbol: string;
|
|
65
|
+
decimals: number;
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Gets details of given crypto asset
|
|
70
|
+
* @param key The key of crypto asset
|
|
71
|
+
* @returns The crypto asset details
|
|
72
|
+
*/
|
|
73
|
+
export declare function getAsset(key: keyof typeof ASSETS): {
|
|
74
|
+
name: string;
|
|
75
|
+
symbol: string;
|
|
76
|
+
decimals: number;
|
|
77
|
+
} | {
|
|
78
|
+
name: string;
|
|
79
|
+
symbol: string;
|
|
80
|
+
decimals: number;
|
|
81
|
+
} | {
|
|
82
|
+
name: string;
|
|
83
|
+
symbol: string;
|
|
84
|
+
decimals: number;
|
|
85
|
+
} | {
|
|
86
|
+
name: string;
|
|
87
|
+
symbol: string;
|
|
88
|
+
decimals: number;
|
|
89
|
+
} | {
|
|
90
|
+
name: string;
|
|
91
|
+
symbol: string;
|
|
92
|
+
decimals: number;
|
|
93
|
+
} | {
|
|
94
|
+
name: string;
|
|
95
|
+
symbol: string;
|
|
96
|
+
decimals: number;
|
|
97
|
+
} | {
|
|
98
|
+
name: string;
|
|
99
|
+
symbol: string;
|
|
100
|
+
decimals: number;
|
|
101
|
+
} | {
|
|
102
|
+
name: string;
|
|
103
|
+
symbol: string;
|
|
104
|
+
decimals: number;
|
|
105
|
+
} | {
|
|
106
|
+
name: string;
|
|
107
|
+
symbol: string;
|
|
108
|
+
decimals: number;
|
|
109
|
+
} | {
|
|
110
|
+
name: string;
|
|
111
|
+
symbol: string;
|
|
112
|
+
decimals: number;
|
|
113
|
+
} | {
|
|
114
|
+
name: string;
|
|
115
|
+
symbol: string;
|
|
116
|
+
decimals: number;
|
|
117
|
+
} | {
|
|
118
|
+
name: string;
|
|
119
|
+
symbol: string;
|
|
120
|
+
decimals: number;
|
|
121
|
+
} | {
|
|
122
|
+
name: string;
|
|
123
|
+
symbol: string;
|
|
124
|
+
decimals: number;
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* Checks if given crypto asset is Bitcoin-like
|
|
128
|
+
* @param key The key of crypto asset
|
|
129
|
+
* @returns True if crypto asset is Bitcoin-like
|
|
130
|
+
*/
|
|
131
|
+
export declare function isBitcoinLikeCryptoAsset(key: string): boolean;
|
|
132
|
+
/**
|
|
133
|
+
* Checks if given crypto asset is USD-like
|
|
134
|
+
* @param key The key of crypto asset
|
|
135
|
+
* @returns True if crypto asset is USD-like
|
|
136
|
+
*/
|
|
137
|
+
export declare function isUsdLikeCryptoAsset(key: string): boolean;
|
|
138
|
+
/**
|
|
139
|
+
* Checks if given crypto asset is T token
|
|
140
|
+
* @param key The key of crypto asset
|
|
141
|
+
* @returns True if crypto asset is T token
|
|
142
|
+
*/
|
|
143
|
+
export declare function isTTokenCryptoAsset(key: string): boolean;
|
|
144
|
+
export {};
|
|
145
|
+
//# sourceMappingURL=assets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../../src/utils/assets.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEX,CAAA;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,OAAO,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEhD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,WAEnD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,WAE/C;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,WAE9C"}
|