@mysten/dapp-kit 0.5.0 → 0.7.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/CHANGELOG.md +35 -0
- package/README.md +4 -4
- package/dist/cjs/components/AccountDropdownMenu.js +34 -6
- package/dist/cjs/components/AccountDropdownMenu.js.map +2 -2
- package/dist/cjs/components/ConnectButton.js +56 -16
- package/dist/cjs/components/ConnectButton.js.map +3 -3
- package/dist/cjs/components/WalletProvider.js +91 -28
- package/dist/cjs/components/WalletProvider.js.map +3 -3
- package/dist/cjs/components/connect-modal/ConnectModal.js +16 -9
- package/dist/cjs/components/connect-modal/ConnectModal.js.map +2 -2
- package/dist/cjs/hooks/useResolveSuiNSNames.d.ts +2 -106
- package/dist/cjs/hooks/useResolveSuiNSNames.js +3 -3
- package/dist/cjs/hooks/useResolveSuiNSNames.js.map +2 -2
- package/dist/cjs/hooks/useSuiClientInfiniteQuery.d.ts +7 -8
- package/dist/cjs/hooks/useSuiClientInfiniteQuery.js +11 -7
- package/dist/cjs/hooks/useSuiClientInfiniteQuery.js.map +2 -2
- package/dist/cjs/hooks/useSuiClientMutation.d.ts +2 -2
- package/dist/cjs/hooks/useSuiClientMutation.js.map +2 -2
- package/dist/cjs/hooks/useSuiClientQuery.d.ts +4 -3
- package/dist/cjs/hooks/useSuiClientQuery.js.map +2 -2
- package/dist/cjs/hooks/wallet/useAccounts.d.ts +2 -1
- package/dist/cjs/hooks/wallet/useAccounts.js.map +2 -2
- package/dist/cjs/hooks/wallet/useAutoConnectWallet.js +65 -15
- package/dist/cjs/hooks/wallet/useAutoConnectWallet.js.map +3 -3
- package/dist/cjs/hooks/wallet/useAutoConnectionStatus.d.ts +4 -0
- package/dist/cjs/hooks/wallet/useAutoConnectionStatus.js +50 -0
- package/dist/cjs/hooks/wallet/useAutoConnectionStatus.js.map +7 -0
- package/dist/cjs/hooks/wallet/useConnectWallet.d.ts +3 -5
- package/dist/cjs/hooks/wallet/useConnectWallet.js +15 -8
- package/dist/cjs/hooks/wallet/useConnectWallet.js.map +2 -2
- package/dist/cjs/hooks/wallet/useCurrentAccount.d.ts +2 -1
- package/dist/cjs/hooks/wallet/useCurrentAccount.js.map +2 -2
- package/dist/cjs/hooks/wallet/useCurrentWallet.d.ts +19 -1
- package/dist/cjs/hooks/wallet/useCurrentWallet.js +29 -1
- package/dist/cjs/hooks/wallet/useCurrentWallet.js.map +2 -2
- package/dist/cjs/hooks/wallet/useDisconnectWallet.d.ts +2 -2
- package/dist/cjs/hooks/wallet/useDisconnectWallet.js +30 -2
- package/dist/cjs/hooks/wallet/useDisconnectWallet.js.map +2 -2
- package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.d.ts +2 -2
- package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.js +30 -2
- package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.js.map +2 -2
- package/dist/cjs/hooks/wallet/useSignPersonalMessage.d.ts +2 -2
- package/dist/cjs/hooks/wallet/useSignPersonalMessage.js +30 -2
- package/dist/cjs/hooks/wallet/useSignPersonalMessage.js.map +2 -2
- package/dist/cjs/hooks/wallet/useSignTransactionBlock.d.ts +2 -2
- package/dist/cjs/hooks/wallet/useSignTransactionBlock.js +30 -2
- package/dist/cjs/hooks/wallet/useSignTransactionBlock.js.map +2 -2
- package/dist/cjs/hooks/wallet/useSwitchAccount.d.ts +2 -2
- package/dist/cjs/hooks/wallet/useSwitchAccount.js +30 -2
- package/dist/cjs/hooks/wallet/useSwitchAccount.js.map +2 -2
- package/dist/cjs/hooks/wallet/useWalletPropertiesChanged.js +30 -2
- package/dist/cjs/hooks/wallet/useWalletPropertiesChanged.js.map +2 -2
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +119 -39
- package/dist/cjs/index.js.map +4 -4
- package/dist/cjs/walletStore.d.ts +10 -2
- package/dist/cjs/walletStore.js +23 -4
- package/dist/cjs/walletStore.js.map +2 -2
- package/dist/esm/components/AccountDropdownMenu.d.ts +2 -2
- package/dist/esm/components/AccountDropdownMenu.js +34 -6
- package/dist/esm/components/AccountDropdownMenu.js.map +2 -2
- package/dist/esm/components/ConnectButton.d.ts +1 -1
- package/dist/esm/components/ConnectButton.js +56 -16
- package/dist/esm/components/ConnectButton.js.map +3 -3
- package/dist/esm/components/SuiClientProvider.d.ts +1 -1
- package/dist/esm/components/WalletProvider.d.ts +1 -1
- package/dist/esm/components/WalletProvider.js +91 -28
- package/dist/esm/components/WalletProvider.js.map +3 -3
- package/dist/esm/components/connect-modal/ConnectModal.d.ts +1 -1
- package/dist/esm/components/connect-modal/ConnectModal.js +16 -9
- package/dist/esm/components/connect-modal/ConnectModal.js.map +2 -2
- package/dist/esm/components/connect-modal/InfoSection.d.ts +1 -1
- package/dist/esm/components/connect-modal/views/ConnectionStatus.d.ts +1 -1
- package/dist/esm/components/connect-modal/views/GettingStarted.d.ts +1 -1
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.d.ts +1 -1
- package/dist/esm/components/connect-modal/wallet-list/WalletList.d.ts +1 -1
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.d.ts +1 -1
- package/dist/esm/components/styling/InjectedThemeStyles.d.ts +1 -1
- package/dist/esm/contexts/walletContext.d.ts +2 -2
- package/dist/esm/hooks/useResolveSuiNSNames.d.ts +2 -106
- package/dist/esm/hooks/useResolveSuiNSNames.js +3 -3
- package/dist/esm/hooks/useResolveSuiNSNames.js.map +2 -2
- package/dist/esm/hooks/useSuiClientInfiniteQuery.d.ts +7 -8
- package/dist/esm/hooks/useSuiClientInfiniteQuery.js +11 -7
- package/dist/esm/hooks/useSuiClientInfiniteQuery.js.map +2 -2
- package/dist/esm/hooks/useSuiClientMutation.d.ts +2 -2
- package/dist/esm/hooks/useSuiClientMutation.js.map +2 -2
- package/dist/esm/hooks/useSuiClientQuery.d.ts +4 -3
- package/dist/esm/hooks/useSuiClientQuery.js.map +2 -2
- package/dist/esm/hooks/wallet/useAccounts.d.ts +2 -1
- package/dist/esm/hooks/wallet/useAccounts.js.map +2 -2
- package/dist/esm/hooks/wallet/useAutoConnectWallet.js +65 -15
- package/dist/esm/hooks/wallet/useAutoConnectWallet.js.map +3 -3
- package/dist/esm/hooks/wallet/useAutoConnectionStatus.d.ts +4 -0
- package/dist/esm/hooks/wallet/useAutoConnectionStatus.js +27 -0
- package/dist/esm/hooks/wallet/useAutoConnectionStatus.js.map +7 -0
- package/dist/esm/hooks/wallet/useConnectWallet.d.ts +3 -5
- package/dist/esm/hooks/wallet/useConnectWallet.js +15 -8
- package/dist/esm/hooks/wallet/useConnectWallet.js.map +2 -2
- package/dist/esm/hooks/wallet/useCurrentAccount.d.ts +2 -1
- package/dist/esm/hooks/wallet/useCurrentAccount.js.map +2 -2
- package/dist/esm/hooks/wallet/useCurrentWallet.d.ts +19 -1
- package/dist/esm/hooks/wallet/useCurrentWallet.js +29 -1
- package/dist/esm/hooks/wallet/useCurrentWallet.js.map +2 -2
- package/dist/esm/hooks/wallet/useDisconnectWallet.d.ts +2 -2
- package/dist/esm/hooks/wallet/useDisconnectWallet.js +30 -2
- package/dist/esm/hooks/wallet/useDisconnectWallet.js.map +2 -2
- package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.d.ts +2 -2
- package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.js +30 -2
- package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.js.map +2 -2
- package/dist/esm/hooks/wallet/useSignPersonalMessage.d.ts +2 -2
- package/dist/esm/hooks/wallet/useSignPersonalMessage.js +30 -2
- package/dist/esm/hooks/wallet/useSignPersonalMessage.js.map +2 -2
- package/dist/esm/hooks/wallet/useSignTransactionBlock.d.ts +2 -2
- package/dist/esm/hooks/wallet/useSignTransactionBlock.js +30 -2
- package/dist/esm/hooks/wallet/useSignTransactionBlock.js.map +2 -2
- package/dist/esm/hooks/wallet/useSwitchAccount.d.ts +2 -2
- package/dist/esm/hooks/wallet/useSwitchAccount.js +30 -2
- package/dist/esm/hooks/wallet/useSwitchAccount.js.map +2 -2
- package/dist/esm/hooks/wallet/useWalletPropertiesChanged.js +30 -2
- package/dist/esm/hooks/wallet/useWalletPropertiesChanged.js.map +2 -2
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +119 -39
- package/dist/esm/index.js.map +4 -4
- package/dist/esm/walletStore.d.ts +10 -2
- package/dist/esm/walletStore.js +23 -4
- package/dist/esm/walletStore.js.map +2 -2
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/src/components/ConnectButton.tsx +8 -1
- package/src/components/WalletProvider.tsx +1 -0
- package/src/components/connect-modal/ConnectModal.tsx +1 -3
- package/src/hooks/useResolveSuiNSNames.ts +7 -8
- package/src/hooks/useSuiClientInfiniteQuery.ts +43 -25
- package/src/hooks/useSuiClientMutation.ts +2 -2
- package/src/hooks/useSuiClientQuery.ts +13 -9
- package/src/hooks/wallet/useAccounts.ts +3 -1
- package/src/hooks/wallet/useAutoConnectWallet.ts +24 -7
- package/src/hooks/wallet/useAutoConnectionStatus.ts +12 -0
- package/src/hooks/wallet/useConnectWallet.ts +24 -10
- package/src/hooks/wallet/useCurrentAccount.ts +3 -1
- package/src/hooks/wallet/useCurrentWallet.ts +30 -1
- package/src/hooks/wallet/useDisconnectWallet.ts +7 -3
- package/src/hooks/wallet/useSignAndExecuteTransactionBlock.ts +7 -3
- package/src/hooks/wallet/useSignPersonalMessage.ts +7 -3
- package/src/hooks/wallet/useSignTransactionBlock.ts +7 -3
- package/src/hooks/wallet/useSwitchAccount.ts +7 -3
- package/src/hooks/wallet/useWalletPropertiesChanged.ts +1 -1
- package/src/index.ts +1 -0
- package/src/walletStore.ts +30 -2
|
@@ -1,107 +1,3 @@
|
|
|
1
1
|
import type { ResolvedNameServiceNames } from '@mysten/sui.js/client';
|
|
2
|
-
import type { UseQueryOptions } from '@tanstack/react-query';
|
|
3
|
-
export declare function useResolveSuiNSName(address?: string | null, options?: Omit<UseQueryOptions<ResolvedNameServiceNames, Error,
|
|
4
|
-
error: Error;
|
|
5
|
-
isError: true;
|
|
6
|
-
isLoading: false;
|
|
7
|
-
isLoadingError: false;
|
|
8
|
-
isRefetchError: true;
|
|
9
|
-
isSuccess: false;
|
|
10
|
-
status: "error";
|
|
11
|
-
dataUpdatedAt: number;
|
|
12
|
-
errorUpdatedAt: number;
|
|
13
|
-
failureCount: number;
|
|
14
|
-
failureReason: Error | null;
|
|
15
|
-
errorUpdateCount: number;
|
|
16
|
-
isFetched: boolean;
|
|
17
|
-
isFetchedAfterMount: boolean;
|
|
18
|
-
isFetching: boolean;
|
|
19
|
-
isInitialLoading: boolean;
|
|
20
|
-
isPaused: boolean;
|
|
21
|
-
isPlaceholderData: boolean;
|
|
22
|
-
isPreviousData: boolean;
|
|
23
|
-
isRefetching: boolean;
|
|
24
|
-
isStale: boolean;
|
|
25
|
-
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<ResolvedNameServiceNames, Error>>;
|
|
26
|
-
remove: () => void;
|
|
27
|
-
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
28
|
-
data: string | null;
|
|
29
|
-
} | {
|
|
30
|
-
error: null;
|
|
31
|
-
isError: false;
|
|
32
|
-
isLoading: false;
|
|
33
|
-
isLoadingError: false;
|
|
34
|
-
isRefetchError: false;
|
|
35
|
-
isSuccess: true;
|
|
36
|
-
status: "success";
|
|
37
|
-
dataUpdatedAt: number;
|
|
38
|
-
errorUpdatedAt: number;
|
|
39
|
-
failureCount: number;
|
|
40
|
-
failureReason: Error | null;
|
|
41
|
-
errorUpdateCount: number;
|
|
42
|
-
isFetched: boolean;
|
|
43
|
-
isFetchedAfterMount: boolean;
|
|
44
|
-
isFetching: boolean;
|
|
45
|
-
isInitialLoading: boolean;
|
|
46
|
-
isPaused: boolean;
|
|
47
|
-
isPlaceholderData: boolean;
|
|
48
|
-
isPreviousData: boolean;
|
|
49
|
-
isRefetching: boolean;
|
|
50
|
-
isStale: boolean;
|
|
51
|
-
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<ResolvedNameServiceNames, Error>>;
|
|
52
|
-
remove: () => void;
|
|
53
|
-
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
54
|
-
data: string | null;
|
|
55
|
-
} | {
|
|
56
|
-
error: Error;
|
|
57
|
-
isError: true;
|
|
58
|
-
isLoading: false;
|
|
59
|
-
isLoadingError: true;
|
|
60
|
-
isRefetchError: false;
|
|
61
|
-
isSuccess: false;
|
|
62
|
-
status: "error";
|
|
63
|
-
dataUpdatedAt: number;
|
|
64
|
-
errorUpdatedAt: number;
|
|
65
|
-
failureCount: number;
|
|
66
|
-
failureReason: Error | null;
|
|
67
|
-
errorUpdateCount: number;
|
|
68
|
-
isFetched: boolean;
|
|
69
|
-
isFetchedAfterMount: boolean;
|
|
70
|
-
isFetching: boolean;
|
|
71
|
-
isInitialLoading: boolean;
|
|
72
|
-
isPaused: boolean;
|
|
73
|
-
isPlaceholderData: boolean;
|
|
74
|
-
isPreviousData: boolean;
|
|
75
|
-
isRefetching: boolean;
|
|
76
|
-
isStale: boolean;
|
|
77
|
-
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<ResolvedNameServiceNames, Error>>;
|
|
78
|
-
remove: () => void;
|
|
79
|
-
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
80
|
-
data: string | null;
|
|
81
|
-
} | {
|
|
82
|
-
error: null;
|
|
83
|
-
isError: false;
|
|
84
|
-
isLoading: true;
|
|
85
|
-
isLoadingError: false;
|
|
86
|
-
isRefetchError: false;
|
|
87
|
-
isSuccess: false;
|
|
88
|
-
status: "loading";
|
|
89
|
-
dataUpdatedAt: number;
|
|
90
|
-
errorUpdatedAt: number;
|
|
91
|
-
failureCount: number;
|
|
92
|
-
failureReason: Error | null;
|
|
93
|
-
errorUpdateCount: number;
|
|
94
|
-
isFetched: boolean;
|
|
95
|
-
isFetchedAfterMount: boolean;
|
|
96
|
-
isFetching: boolean;
|
|
97
|
-
isInitialLoading: boolean;
|
|
98
|
-
isPaused: boolean;
|
|
99
|
-
isPlaceholderData: boolean;
|
|
100
|
-
isPreviousData: boolean;
|
|
101
|
-
isRefetching: boolean;
|
|
102
|
-
isStale: boolean;
|
|
103
|
-
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<ResolvedNameServiceNames, Error>>;
|
|
104
|
-
remove: () => void;
|
|
105
|
-
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
106
|
-
data: string | null;
|
|
107
|
-
};
|
|
2
|
+
import type { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
|
|
3
|
+
export declare function useResolveSuiNSName(address?: string | null, options?: Omit<UseQueryOptions<ResolvedNameServiceNames, Error, string | null, unknown[]>, 'queryFn' | 'queryKey' | 'select'>): UseQueryResult<string | null, Error>;
|
|
@@ -65,19 +65,19 @@ function useSuiClientQuery(...args) {
|
|
|
65
65
|
|
|
66
66
|
// src/hooks/useResolveSuiNSNames.ts
|
|
67
67
|
function useResolveSuiNSName(address, options) {
|
|
68
|
-
|
|
68
|
+
return useSuiClientQuery(
|
|
69
69
|
"resolveNameServiceNames",
|
|
70
70
|
{
|
|
71
71
|
address,
|
|
72
72
|
limit: 1
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
|
+
...options,
|
|
75
76
|
refetchOnWindowFocus: false,
|
|
76
77
|
retry: false,
|
|
77
|
-
|
|
78
|
+
select: (data) => data.data.length > 0 ? data.data[0] : null,
|
|
78
79
|
enabled: !!address && options?.enabled !== false
|
|
79
80
|
}
|
|
80
81
|
);
|
|
81
|
-
return { data: data?.data?.[0] ?? null, ...rest };
|
|
82
82
|
}
|
|
83
83
|
//# sourceMappingURL=useResolveSuiNSNames.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/useResolveSuiNSNames.ts", "../../../src/hooks/useSuiClientQuery.ts", "../../../src/hooks/useSuiClient.ts", "../../../src/components/SuiClientProvider.tsx"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ResolvedNameServiceNames } from '@mysten/sui.js/client';\nimport type { UseQueryOptions } from '@tanstack/react-query';\n\nimport { useSuiClientQuery } from './useSuiClientQuery.js';\n\nexport function useResolveSuiNSName(\n\taddress?: string | null,\n\toptions?: Omit<\n\t\tUseQueryOptions<ResolvedNameServiceNames, Error,
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACKA,yBAAyB;;;ACDzB,IAAAA,gBAA2B;;;ACD3B,oBAAuD;AAEvD,mBAAiD;AAyFzC;AAxED,IAAM,uBAAmB,4BAA+C,IAAI;AAkBnF,IAAM,mBAAmB;AAAA,EACxB,UAAU,EAAE,SAAK,8BAAe,UAAU,EAAE;AAC7C;;;ADlCO,SAAS,sBAAsB;AACrC,QAAM,gBAAY,0BAAW,gBAAgB;AAE7C,MAAI,CAAC,WAAW;AACf,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;;;
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ResolvedNameServiceNames } from '@mysten/sui.js/client';\nimport type { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';\n\nimport { useSuiClientQuery } from './useSuiClientQuery.js';\n\nexport function useResolveSuiNSName(\n\taddress?: string | null,\n\toptions?: Omit<\n\t\tUseQueryOptions<ResolvedNameServiceNames, Error, string | null, unknown[]>,\n\t\t'queryFn' | 'queryKey' | 'select'\n\t>,\n): UseQueryResult<string | null, Error> {\n\treturn useSuiClientQuery(\n\t\t'resolveNameServiceNames',\n\t\t{\n\t\t\taddress: address!,\n\t\t\tlimit: 1,\n\t\t},\n\t\t{\n\t\t\t...options,\n\t\t\trefetchOnWindowFocus: false,\n\t\t\tretry: false,\n\t\t\tselect: (data) => (data.data.length > 0 ? data.data[0] : null),\n\t\t\tenabled: !!address && options?.enabled !== false,\n\t\t},\n\t);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClient } from '@mysten/sui.js/client';\nimport type { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';\nimport { useQuery } from '@tanstack/react-query';\n\nimport type { PartialBy } from '../types/utilityTypes.js';\nimport { useSuiClientContext } from './useSuiClient.js';\n\nexport type SuiRpcMethodName = {\n\t[K in keyof SuiClient]: SuiClient[K] extends ((input: any) => Promise<any>) | (() => Promise<any>)\n\t\t? K\n\t\t: never;\n}[keyof SuiClient];\n\nexport type SuiRpcMethods = {\n\t[K in SuiRpcMethodName]: SuiClient[K] extends (input: infer P) => Promise<infer R>\n\t\t? {\n\t\t\t\tname: K;\n\t\t\t\tresult: R;\n\t\t\t\tparams: P;\n\t\t }\n\t\t: SuiClient[K] extends () => Promise<infer R>\n\t\t? {\n\t\t\t\tname: K;\n\t\t\t\tresult: R;\n\t\t\t\tparams: undefined | object;\n\t\t }\n\t\t: never;\n};\n\nexport type UseSuiClientQueryOptions<T extends keyof SuiRpcMethods, TData> = PartialBy<\n\tOmit<UseQueryOptions<SuiRpcMethods[T]['result'], Error, TData, unknown[]>, 'queryFn'>,\n\t'queryKey'\n>;\n\nexport function useSuiClientQuery<\n\tT extends keyof SuiRpcMethods,\n\tTData = SuiRpcMethods[T]['result'],\n>(\n\t...args: undefined extends SuiRpcMethods[T]['params']\n\t\t? [method: T, params?: SuiRpcMethods[T]['params'], options?: UseSuiClientQueryOptions<T, TData>]\n\t\t: [method: T, params: SuiRpcMethods[T]['params'], options?: UseSuiClientQueryOptions<T, TData>]\n): UseQueryResult<TData, Error> {\n\tconst [method, params, { queryKey = [], ...options } = {}] = args as [\n\t\tmethod: T,\n\t\tparams?: SuiRpcMethods[T]['params'],\n\t\toptions?: UseSuiClientQueryOptions<T, TData>,\n\t];\n\n\tconst suiContext = useSuiClientContext();\n\n\treturn useQuery({\n\t\t...options,\n\t\tqueryKey: [suiContext.network, method, params, ...queryKey],\n\t\tqueryFn: async () => {\n\t\t\treturn await suiContext.client[method](params as never);\n\t\t},\n\t});\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClient } from '@mysten/sui.js/client';\nimport { useContext } from 'react';\n\nimport { SuiClientContext } from '../components/SuiClientProvider.js';\n\nexport function useSuiClientContext() {\n\tconst suiClient = useContext(SuiClientContext);\n\n\tif (!suiClient) {\n\t\tthrow new Error(\n\t\t\t'Could not find SuiClientContext. Ensure that you have set up the SuiClientProvider',\n\t\t);\n\t}\n\n\treturn suiClient;\n}\n\nexport function useSuiClient(): SuiClient {\n\treturn useSuiClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getFullnodeUrl, isSuiClient, SuiClient } from '@mysten/sui.js/client';\nimport type { SuiClientOptions } from '@mysten/sui.js/client';\nimport { createContext, useMemo, useState } from 'react';\n\nimport type { NetworkConfig } from '../hooks/networkConfig.js';\n\ntype NetworkConfigs<T extends NetworkConfig | SuiClient = NetworkConfig | SuiClient> = Record<\n\tstring,\n\tT\n>;\n\nexport interface SuiClientProviderContext {\n\tclient: SuiClient;\n\tnetworks: NetworkConfigs;\n\tnetwork: string;\n\tconfig: NetworkConfig | null;\n\tselectNetwork: (network: string) => void;\n}\n\nexport const SuiClientContext = createContext<SuiClientProviderContext | null>(null);\n\nexport type SuiClientProviderProps<T extends NetworkConfigs> = {\n\tcreateClient?: (name: keyof T, config: T[keyof T]) => SuiClient;\n\tchildren: React.ReactNode;\n\tnetworks?: T;\n\tonNetworkChange?: (network: keyof T & string) => void;\n} & (\n\t| {\n\t\t\tdefaultNetwork?: keyof T & string;\n\t\t\tnetwork?: never;\n\t }\n\t| {\n\t\t\tdefaultNetwork?: never;\n\t\t\tnetwork?: keyof T & string;\n\t }\n);\n\nconst DEFAULT_NETWORKS = {\n\tlocalnet: { url: getFullnodeUrl('localnet') },\n};\n\nconst DEFAULT_CREATE_CLIENT = function createClient(\n\t_name: string,\n\tconfig: NetworkConfig | SuiClient,\n) {\n\tif (isSuiClient(config)) {\n\t\treturn config;\n\t}\n\n\treturn new SuiClient(config);\n};\n\nexport function SuiClientProvider<T extends NetworkConfigs>(props: SuiClientProviderProps<T>) {\n\tconst { onNetworkChange, network, children } = props;\n\tconst networks = (props.networks ?? DEFAULT_NETWORKS) as T;\n\tconst createClient =\n\t\t(props.createClient as typeof DEFAULT_CREATE_CLIENT) ?? DEFAULT_CREATE_CLIENT;\n\n\tconst [selectedNetwork, setSelectedNetwork] = useState<keyof T & string>(\n\t\tprops.network ?? props.defaultNetwork ?? (Object.keys(networks)[0] as keyof T & string),\n\t);\n\n\tconst currentNetwork = props.network ?? selectedNetwork;\n\n\tconst client = useMemo(() => {\n\t\treturn createClient(currentNetwork, networks[currentNetwork]);\n\t}, [createClient, currentNetwork, networks]);\n\n\tconst ctx = useMemo((): SuiClientProviderContext => {\n\t\treturn {\n\t\t\tclient,\n\t\t\tnetworks,\n\t\t\tnetwork: currentNetwork,\n\t\t\tconfig:\n\t\t\t\tnetworks[currentNetwork] instanceof SuiClient\n\t\t\t\t\t? null\n\t\t\t\t\t: (networks[currentNetwork] as SuiClientOptions),\n\t\t\tselectNetwork: (newNetwork) => {\n\t\t\t\tif (currentNetwork === newNetwork) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!network && newNetwork !== selectedNetwork) {\n\t\t\t\t\tsetSelectedNetwork(newNetwork);\n\t\t\t\t}\n\n\t\t\t\tonNetworkChange?.(newNetwork);\n\t\t\t},\n\t\t};\n\t}, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);\n\n\treturn <SuiClientContext.Provider value={ctx}>{children}</SuiClientContext.Provider>;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACKA,yBAAyB;;;ACDzB,IAAAA,gBAA2B;;;ACD3B,oBAAuD;AAEvD,mBAAiD;AAyFzC;AAxED,IAAM,uBAAmB,4BAA+C,IAAI;AAkBnF,IAAM,mBAAmB;AAAA,EACxB,UAAU,EAAE,SAAK,8BAAe,UAAU,EAAE;AAC7C;;;ADlCO,SAAS,sBAAsB;AACrC,QAAM,gBAAY,0BAAW,gBAAgB;AAE7C,MAAI,CAAC,WAAW;AACf,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;;;ADmBO,SAAS,qBAIZ,MAG4B;AAC/B,QAAM,CAAC,QAAQ,QAAQ,EAAE,WAAW,CAAC,GAAG,GAAG,QAAQ,IAAI,CAAC,CAAC,IAAI;AAM7D,QAAM,aAAa,oBAAoB;AAEvC,aAAO,6BAAS;AAAA,IACf,GAAG;AAAA,IACH,UAAU,CAAC,WAAW,SAAS,QAAQ,QAAQ,GAAG,QAAQ;AAAA,IAC1D,SAAS,YAAY;AACpB,aAAO,MAAM,WAAW,OAAO,MAAM,EAAE,MAAe;AAAA,IACvD;AAAA,EACD,CAAC;AACF;;;ADpDO,SAAS,oBACf,SACA,SAIuC;AACvC,SAAO;AAAA,IACN;AAAA,IACA;AAAA,MACC;AAAA,MACA,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,GAAG;AAAA,MACH,sBAAsB;AAAA,MACtB,OAAO;AAAA,MACP,QAAQ,CAAC,SAAU,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,CAAC,IAAI;AAAA,MACzD,SAAS,CAAC,CAAC,WAAW,SAAS,YAAY;AAAA,IAC5C;AAAA,EACD;AACD;",
|
|
6
6
|
"names": ["import_react"]
|
|
7
7
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { SuiClient } from '@mysten/sui.js/client';
|
|
2
|
-
import type { UseInfiniteQueryOptions } from '@tanstack/react-query';
|
|
2
|
+
import type { InfiniteData, UseInfiniteQueryOptions, UseInfiniteQueryResult } from '@tanstack/react-query';
|
|
3
|
+
import type { PartialBy } from '../types/utilityTypes.js';
|
|
3
4
|
interface PaginatedResult {
|
|
4
5
|
data?: unknown;
|
|
5
6
|
nextCursor?: unknown;
|
|
@@ -9,17 +10,15 @@ export type SuiRpcPaginatedMethodName = {
|
|
|
9
10
|
[K in keyof SuiClient]: SuiClient[K] extends (input: any) => Promise<PaginatedResult> ? K : never;
|
|
10
11
|
}[keyof SuiClient];
|
|
11
12
|
export type SuiRpcPaginatedMethods = {
|
|
12
|
-
[K in SuiRpcPaginatedMethodName]: SuiClient[K] extends (input: infer
|
|
13
|
-
data?: infer R;
|
|
13
|
+
[K in SuiRpcPaginatedMethodName]: SuiClient[K] extends (input: infer Params) => Promise<infer Result extends {
|
|
14
14
|
nextCursor?: infer Cursor | null;
|
|
15
|
-
hasNextPage: boolean;
|
|
16
15
|
}> ? {
|
|
17
16
|
name: K;
|
|
18
|
-
result:
|
|
19
|
-
params:
|
|
17
|
+
result: Result;
|
|
18
|
+
params: Params;
|
|
20
19
|
cursor: Cursor;
|
|
21
20
|
} : never;
|
|
22
21
|
};
|
|
23
|
-
export type UseSuiClientInfiniteQueryOptions<T extends keyof SuiRpcPaginatedMethods> = Omit<UseInfiniteQueryOptions<SuiRpcPaginatedMethods[T]['result'], Error,
|
|
24
|
-
export declare function useSuiClientInfiniteQuery<T extends keyof SuiRpcPaginatedMethods
|
|
22
|
+
export type UseSuiClientInfiniteQueryOptions<T extends keyof SuiRpcPaginatedMethods, TData> = PartialBy<Omit<UseInfiniteQueryOptions<SuiRpcPaginatedMethods[T]['result'], Error, TData, SuiRpcPaginatedMethods[T]['result'], unknown[]>, 'queryFn' | 'initialPageParam' | 'getNextPageParam'>, 'queryKey'>;
|
|
23
|
+
export declare function useSuiClientInfiniteQuery<T extends keyof SuiRpcPaginatedMethods, TData = InfiniteData<SuiRpcPaginatedMethods[T]['result']>>(method: T, params: SuiRpcPaginatedMethods[T]['params'], { queryKey, enabled, ...options }?: UseSuiClientInfiniteQueryOptions<T, TData>): UseInfiniteQueryResult<TData, Error>;
|
|
25
24
|
export {};
|
|
@@ -49,18 +49,22 @@ function useSuiClientContext() {
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
// src/hooks/useSuiClientInfiniteQuery.ts
|
|
52
|
-
function useSuiClientInfiniteQuery(method, params, {
|
|
52
|
+
function useSuiClientInfiniteQuery(method, params, {
|
|
53
|
+
queryKey = [],
|
|
54
|
+
enabled = !!params,
|
|
55
|
+
...options
|
|
56
|
+
} = {}) {
|
|
53
57
|
const suiContext = useSuiClientContext();
|
|
54
58
|
return (0, import_react_query.useInfiniteQuery)({
|
|
55
59
|
...options,
|
|
60
|
+
initialPageParam: null,
|
|
56
61
|
queryKey: [suiContext.network, method, params, ...queryKey],
|
|
57
62
|
enabled,
|
|
58
|
-
queryFn:
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
63
|
+
queryFn: ({ pageParam }) => suiContext.client[method]({
|
|
64
|
+
...params ?? {},
|
|
65
|
+
cursor: pageParam
|
|
66
|
+
}),
|
|
67
|
+
getNextPageParam: ({ nextCursor }) => nextCursor ?? null
|
|
64
68
|
});
|
|
65
69
|
}
|
|
66
70
|
//# sourceMappingURL=useSuiClientInfiniteQuery.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/useSuiClientInfiniteQuery.ts", "../../../src/hooks/useSuiClient.ts", "../../../src/components/SuiClientProvider.tsx"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClient } from '@mysten/sui.js/client';\nimport type {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClient } from '@mysten/sui.js/client';\nimport type {\n\tInfiniteData,\n\tUseInfiniteQueryOptions,\n\tUseInfiniteQueryResult,\n} from '@tanstack/react-query';\nimport { useInfiniteQuery } from '@tanstack/react-query';\n\nimport type { PartialBy } from '../types/utilityTypes.js';\nimport { useSuiClientContext } from './useSuiClient.js';\n\ninterface PaginatedResult {\n\tdata?: unknown;\n\tnextCursor?: unknown;\n\thasNextPage: boolean;\n}\n\nexport type SuiRpcPaginatedMethodName = {\n\t[K in keyof SuiClient]: SuiClient[K] extends (input: any) => Promise<PaginatedResult> ? K : never;\n}[keyof SuiClient];\n\nexport type SuiRpcPaginatedMethods = {\n\t[K in SuiRpcPaginatedMethodName]: SuiClient[K] extends (\n\t\tinput: infer Params,\n\t) => Promise<infer Result extends { nextCursor?: infer Cursor | null }>\n\t\t? {\n\t\t\t\tname: K;\n\t\t\t\tresult: Result;\n\t\t\t\tparams: Params;\n\t\t\t\tcursor: Cursor;\n\t\t }\n\t\t: never;\n};\n\nexport type UseSuiClientInfiniteQueryOptions<\n\tT extends keyof SuiRpcPaginatedMethods,\n\tTData,\n> = PartialBy<\n\tOmit<\n\t\tUseInfiniteQueryOptions<\n\t\t\tSuiRpcPaginatedMethods[T]['result'],\n\t\t\tError,\n\t\t\tTData,\n\t\t\tSuiRpcPaginatedMethods[T]['result'],\n\t\t\tunknown[]\n\t\t>,\n\t\t'queryFn' | 'initialPageParam' | 'getNextPageParam'\n\t>,\n\t'queryKey'\n>;\n\nexport function useSuiClientInfiniteQuery<\n\tT extends keyof SuiRpcPaginatedMethods,\n\tTData = InfiniteData<SuiRpcPaginatedMethods[T]['result']>,\n>(\n\tmethod: T,\n\tparams: SuiRpcPaginatedMethods[T]['params'],\n\t{\n\t\tqueryKey = [],\n\t\tenabled = !!params,\n\t\t...options\n\t}: UseSuiClientInfiniteQueryOptions<T, TData> = {},\n): UseInfiniteQueryResult<TData, Error> {\n\tconst suiContext = useSuiClientContext();\n\n\treturn useInfiniteQuery({\n\t\t...options,\n\t\tinitialPageParam: null,\n\t\tqueryKey: [suiContext.network, method, params, ...queryKey],\n\t\tenabled,\n\t\tqueryFn: ({ pageParam }) =>\n\t\t\tsuiContext.client[method]({\n\t\t\t\t...(params ?? {}),\n\t\t\t\tcursor: pageParam,\n\t\t\t} as never),\n\t\tgetNextPageParam: ({ nextCursor }) => nextCursor ?? null,\n\t});\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClient } from '@mysten/sui.js/client';\nimport { useContext } from 'react';\n\nimport { SuiClientContext } from '../components/SuiClientProvider.js';\n\nexport function useSuiClientContext() {\n\tconst suiClient = useContext(SuiClientContext);\n\n\tif (!suiClient) {\n\t\tthrow new Error(\n\t\t\t'Could not find SuiClientContext. Ensure that you have set up the SuiClientProvider',\n\t\t);\n\t}\n\n\treturn suiClient;\n}\n\nexport function useSuiClient(): SuiClient {\n\treturn useSuiClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getFullnodeUrl, isSuiClient, SuiClient } from '@mysten/sui.js/client';\nimport type { SuiClientOptions } from '@mysten/sui.js/client';\nimport { createContext, useMemo, useState } from 'react';\n\nimport type { NetworkConfig } from '../hooks/networkConfig.js';\n\ntype NetworkConfigs<T extends NetworkConfig | SuiClient = NetworkConfig | SuiClient> = Record<\n\tstring,\n\tT\n>;\n\nexport interface SuiClientProviderContext {\n\tclient: SuiClient;\n\tnetworks: NetworkConfigs;\n\tnetwork: string;\n\tconfig: NetworkConfig | null;\n\tselectNetwork: (network: string) => void;\n}\n\nexport const SuiClientContext = createContext<SuiClientProviderContext | null>(null);\n\nexport type SuiClientProviderProps<T extends NetworkConfigs> = {\n\tcreateClient?: (name: keyof T, config: T[keyof T]) => SuiClient;\n\tchildren: React.ReactNode;\n\tnetworks?: T;\n\tonNetworkChange?: (network: keyof T & string) => void;\n} & (\n\t| {\n\t\t\tdefaultNetwork?: keyof T & string;\n\t\t\tnetwork?: never;\n\t }\n\t| {\n\t\t\tdefaultNetwork?: never;\n\t\t\tnetwork?: keyof T & string;\n\t }\n);\n\nconst DEFAULT_NETWORKS = {\n\tlocalnet: { url: getFullnodeUrl('localnet') },\n};\n\nconst DEFAULT_CREATE_CLIENT = function createClient(\n\t_name: string,\n\tconfig: NetworkConfig | SuiClient,\n) {\n\tif (isSuiClient(config)) {\n\t\treturn config;\n\t}\n\n\treturn new SuiClient(config);\n};\n\nexport function SuiClientProvider<T extends NetworkConfigs>(props: SuiClientProviderProps<T>) {\n\tconst { onNetworkChange, network, children } = props;\n\tconst networks = (props.networks ?? DEFAULT_NETWORKS) as T;\n\tconst createClient =\n\t\t(props.createClient as typeof DEFAULT_CREATE_CLIENT) ?? DEFAULT_CREATE_CLIENT;\n\n\tconst [selectedNetwork, setSelectedNetwork] = useState<keyof T & string>(\n\t\tprops.network ?? props.defaultNetwork ?? (Object.keys(networks)[0] as keyof T & string),\n\t);\n\n\tconst currentNetwork = props.network ?? selectedNetwork;\n\n\tconst client = useMemo(() => {\n\t\treturn createClient(currentNetwork, networks[currentNetwork]);\n\t}, [createClient, currentNetwork, networks]);\n\n\tconst ctx = useMemo((): SuiClientProviderContext => {\n\t\treturn {\n\t\t\tclient,\n\t\t\tnetworks,\n\t\t\tnetwork: currentNetwork,\n\t\t\tconfig:\n\t\t\t\tnetworks[currentNetwork] instanceof SuiClient\n\t\t\t\t\t? null\n\t\t\t\t\t: (networks[currentNetwork] as SuiClientOptions),\n\t\t\tselectNetwork: (newNetwork) => {\n\t\t\t\tif (currentNetwork === newNetwork) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!network && newNetwork !== selectedNetwork) {\n\t\t\t\t\tsetSelectedNetwork(newNetwork);\n\t\t\t\t}\n\n\t\t\t\tonNetworkChange?.(newNetwork);\n\t\t\t},\n\t\t};\n\t}, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);\n\n\treturn <SuiClientContext.Provider value={ctx}>{children}</SuiClientContext.Provider>;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,yBAAiC;;;ACLjC,IAAAA,gBAA2B;;;ACD3B,oBAAuD;AAEvD,mBAAiD;AAyFzC;AAxED,IAAM,uBAAmB,4BAA+C,IAAI;AAkBnF,IAAM,mBAAmB;AAAA,EACxB,UAAU,EAAE,SAAK,8BAAe,UAAU,EAAE;AAC7C;;;ADlCO,SAAS,sBAAsB;AACrC,QAAM,gBAAY,0BAAW,gBAAgB;AAE7C,MAAI,CAAC,WAAW;AACf,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;;;ADoCO,SAAS,0BAIf,QACA,QACA;AAAA,EACC,WAAW,CAAC;AAAA,EACZ,UAAU,CAAC,CAAC;AAAA,EACZ,GAAG;AACJ,IAAgD,CAAC,GACV;AACvC,QAAM,aAAa,oBAAoB;AAEvC,aAAO,qCAAiB;AAAA,IACvB,GAAG;AAAA,IACH,kBAAkB;AAAA,IAClB,UAAU,CAAC,WAAW,SAAS,QAAQ,QAAQ,GAAG,QAAQ;AAAA,IAC1D;AAAA,IACA,SAAS,CAAC,EAAE,UAAU,MACrB,WAAW,OAAO,MAAM,EAAE;AAAA,MACzB,GAAI,UAAU,CAAC;AAAA,MACf,QAAQ;AAAA,IACT,CAAU;AAAA,IACX,kBAAkB,CAAC,EAAE,WAAW,MAAM,cAAc;AAAA,EACrD,CAAC;AACF;",
|
|
6
6
|
"names": ["import_react"]
|
|
7
7
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { UseMutationOptions } from '@tanstack/react-query';
|
|
1
|
+
import type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';
|
|
2
2
|
import type { SuiRpcMethods } from './useSuiClientQuery.js';
|
|
3
3
|
export type UseSuiClientMutationOptions<T extends keyof SuiRpcMethods> = Omit<UseMutationOptions<SuiRpcMethods[T]['result'], Error, SuiRpcMethods[T]['params'], unknown[]>, 'mutationFn'>;
|
|
4
|
-
export declare function useSuiClientMutation<T extends keyof SuiRpcMethods>(method: T, options?: UseSuiClientMutationOptions<T>):
|
|
4
|
+
export declare function useSuiClientMutation<T extends keyof SuiRpcMethods>(method: T, options?: UseSuiClientMutationOptions<T>): UseMutationResult<SuiRpcMethods[T]['result'], Error, SuiRpcMethods[T]['params'], unknown[]>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/useSuiClientMutation.ts", "../../../src/hooks/useSuiClient.ts", "../../../src/components/SuiClientProvider.tsx"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { UseMutationOptions } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { useSuiClientContext } from './useSuiClient.js';\nimport type { SuiRpcMethods } from './useSuiClientQuery.js';\n\nexport type UseSuiClientMutationOptions<T extends keyof SuiRpcMethods> = Omit<\n\tUseMutationOptions<SuiRpcMethods[T]['result'], Error, SuiRpcMethods[T]['params'], unknown[]>,\n\t'mutationFn'\n>;\n\nexport function useSuiClientMutation<T extends keyof SuiRpcMethods>(\n\tmethod: T,\n\toptions: UseSuiClientMutationOptions<T> = {},\n) {\n\tconst suiContext = useSuiClientContext();\n\n\treturn useMutation({\n\t\t...options,\n\t\tmutationFn: async (params) => {\n\t\t\treturn await suiContext.client[method](params as never);\n\t\t},\n\t});\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClient } from '@mysten/sui.js/client';\nimport { useContext } from 'react';\n\nimport { SuiClientContext } from '../components/SuiClientProvider.js';\n\nexport function useSuiClientContext() {\n\tconst suiClient = useContext(SuiClientContext);\n\n\tif (!suiClient) {\n\t\tthrow new Error(\n\t\t\t'Could not find SuiClientContext. Ensure that you have set up the SuiClientProvider',\n\t\t);\n\t}\n\n\treturn suiClient;\n}\n\nexport function useSuiClient(): SuiClient {\n\treturn useSuiClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getFullnodeUrl, isSuiClient, SuiClient } from '@mysten/sui.js/client';\nimport type { SuiClientOptions } from '@mysten/sui.js/client';\nimport { createContext, useMemo, useState } from 'react';\n\nimport type { NetworkConfig } from '../hooks/networkConfig.js';\n\ntype NetworkConfigs<T extends NetworkConfig | SuiClient = NetworkConfig | SuiClient> = Record<\n\tstring,\n\tT\n>;\n\nexport interface SuiClientProviderContext {\n\tclient: SuiClient;\n\tnetworks: NetworkConfigs;\n\tnetwork: string;\n\tconfig: NetworkConfig | null;\n\tselectNetwork: (network: string) => void;\n}\n\nexport const SuiClientContext = createContext<SuiClientProviderContext | null>(null);\n\nexport type SuiClientProviderProps<T extends NetworkConfigs> = {\n\tcreateClient?: (name: keyof T, config: T[keyof T]) => SuiClient;\n\tchildren: React.ReactNode;\n\tnetworks?: T;\n\tonNetworkChange?: (network: keyof T & string) => void;\n} & (\n\t| {\n\t\t\tdefaultNetwork?: keyof T & string;\n\t\t\tnetwork?: never;\n\t }\n\t| {\n\t\t\tdefaultNetwork?: never;\n\t\t\tnetwork?: keyof T & string;\n\t }\n);\n\nconst DEFAULT_NETWORKS = {\n\tlocalnet: { url: getFullnodeUrl('localnet') },\n};\n\nconst DEFAULT_CREATE_CLIENT = function createClient(\n\t_name: string,\n\tconfig: NetworkConfig | SuiClient,\n) {\n\tif (isSuiClient(config)) {\n\t\treturn config;\n\t}\n\n\treturn new SuiClient(config);\n};\n\nexport function SuiClientProvider<T extends NetworkConfigs>(props: SuiClientProviderProps<T>) {\n\tconst { onNetworkChange, network, children } = props;\n\tconst networks = (props.networks ?? DEFAULT_NETWORKS) as T;\n\tconst createClient =\n\t\t(props.createClient as typeof DEFAULT_CREATE_CLIENT) ?? DEFAULT_CREATE_CLIENT;\n\n\tconst [selectedNetwork, setSelectedNetwork] = useState<keyof T & string>(\n\t\tprops.network ?? props.defaultNetwork ?? (Object.keys(networks)[0] as keyof T & string),\n\t);\n\n\tconst currentNetwork = props.network ?? selectedNetwork;\n\n\tconst client = useMemo(() => {\n\t\treturn createClient(currentNetwork, networks[currentNetwork]);\n\t}, [createClient, currentNetwork, networks]);\n\n\tconst ctx = useMemo((): SuiClientProviderContext => {\n\t\treturn {\n\t\t\tclient,\n\t\t\tnetworks,\n\t\t\tnetwork: currentNetwork,\n\t\t\tconfig:\n\t\t\t\tnetworks[currentNetwork] instanceof SuiClient\n\t\t\t\t\t? null\n\t\t\t\t\t: (networks[currentNetwork] as SuiClientOptions),\n\t\t\tselectNetwork: (newNetwork) => {\n\t\t\t\tif (currentNetwork === newNetwork) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!network && newNetwork !== selectedNetwork) {\n\t\t\t\t\tsetSelectedNetwork(newNetwork);\n\t\t\t\t}\n\n\t\t\t\tonNetworkChange?.(newNetwork);\n\t\t\t},\n\t\t};\n\t}, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);\n\n\treturn <SuiClientContext.Provider value={ctx}>{children}</SuiClientContext.Provider>;\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,yBAA4B;;;ACA5B,IAAAA,gBAA2B;;;ACD3B,oBAAuD;AAEvD,mBAAiD;AAyFzC;AAxED,IAAM,uBAAmB,4BAA+C,IAAI;AAkBnF,IAAM,mBAAmB;AAAA,EACxB,UAAU,EAAE,SAAK,8BAAe,UAAU,EAAE;AAC7C;;;ADlCO,SAAS,sBAAsB;AACrC,QAAM,gBAAY,0BAAW,gBAAgB;AAE7C,MAAI,CAAC,WAAW;AACf,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;;;ADJO,SAAS,qBACf,QACA,UAA0C,CAAC,
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { useSuiClientContext } from './useSuiClient.js';\nimport type { SuiRpcMethods } from './useSuiClientQuery.js';\n\nexport type UseSuiClientMutationOptions<T extends keyof SuiRpcMethods> = Omit<\n\tUseMutationOptions<SuiRpcMethods[T]['result'], Error, SuiRpcMethods[T]['params'], unknown[]>,\n\t'mutationFn'\n>;\n\nexport function useSuiClientMutation<T extends keyof SuiRpcMethods>(\n\tmethod: T,\n\toptions: UseSuiClientMutationOptions<T> = {},\n): UseMutationResult<SuiRpcMethods[T]['result'], Error, SuiRpcMethods[T]['params'], unknown[]> {\n\tconst suiContext = useSuiClientContext();\n\n\treturn useMutation({\n\t\t...options,\n\t\tmutationFn: async (params) => {\n\t\t\treturn await suiContext.client[method](params as never);\n\t\t},\n\t});\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClient } from '@mysten/sui.js/client';\nimport { useContext } from 'react';\n\nimport { SuiClientContext } from '../components/SuiClientProvider.js';\n\nexport function useSuiClientContext() {\n\tconst suiClient = useContext(SuiClientContext);\n\n\tif (!suiClient) {\n\t\tthrow new Error(\n\t\t\t'Could not find SuiClientContext. Ensure that you have set up the SuiClientProvider',\n\t\t);\n\t}\n\n\treturn suiClient;\n}\n\nexport function useSuiClient(): SuiClient {\n\treturn useSuiClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getFullnodeUrl, isSuiClient, SuiClient } from '@mysten/sui.js/client';\nimport type { SuiClientOptions } from '@mysten/sui.js/client';\nimport { createContext, useMemo, useState } from 'react';\n\nimport type { NetworkConfig } from '../hooks/networkConfig.js';\n\ntype NetworkConfigs<T extends NetworkConfig | SuiClient = NetworkConfig | SuiClient> = Record<\n\tstring,\n\tT\n>;\n\nexport interface SuiClientProviderContext {\n\tclient: SuiClient;\n\tnetworks: NetworkConfigs;\n\tnetwork: string;\n\tconfig: NetworkConfig | null;\n\tselectNetwork: (network: string) => void;\n}\n\nexport const SuiClientContext = createContext<SuiClientProviderContext | null>(null);\n\nexport type SuiClientProviderProps<T extends NetworkConfigs> = {\n\tcreateClient?: (name: keyof T, config: T[keyof T]) => SuiClient;\n\tchildren: React.ReactNode;\n\tnetworks?: T;\n\tonNetworkChange?: (network: keyof T & string) => void;\n} & (\n\t| {\n\t\t\tdefaultNetwork?: keyof T & string;\n\t\t\tnetwork?: never;\n\t }\n\t| {\n\t\t\tdefaultNetwork?: never;\n\t\t\tnetwork?: keyof T & string;\n\t }\n);\n\nconst DEFAULT_NETWORKS = {\n\tlocalnet: { url: getFullnodeUrl('localnet') },\n};\n\nconst DEFAULT_CREATE_CLIENT = function createClient(\n\t_name: string,\n\tconfig: NetworkConfig | SuiClient,\n) {\n\tif (isSuiClient(config)) {\n\t\treturn config;\n\t}\n\n\treturn new SuiClient(config);\n};\n\nexport function SuiClientProvider<T extends NetworkConfigs>(props: SuiClientProviderProps<T>) {\n\tconst { onNetworkChange, network, children } = props;\n\tconst networks = (props.networks ?? DEFAULT_NETWORKS) as T;\n\tconst createClient =\n\t\t(props.createClient as typeof DEFAULT_CREATE_CLIENT) ?? DEFAULT_CREATE_CLIENT;\n\n\tconst [selectedNetwork, setSelectedNetwork] = useState<keyof T & string>(\n\t\tprops.network ?? props.defaultNetwork ?? (Object.keys(networks)[0] as keyof T & string),\n\t);\n\n\tconst currentNetwork = props.network ?? selectedNetwork;\n\n\tconst client = useMemo(() => {\n\t\treturn createClient(currentNetwork, networks[currentNetwork]);\n\t}, [createClient, currentNetwork, networks]);\n\n\tconst ctx = useMemo((): SuiClientProviderContext => {\n\t\treturn {\n\t\t\tclient,\n\t\t\tnetworks,\n\t\t\tnetwork: currentNetwork,\n\t\t\tconfig:\n\t\t\t\tnetworks[currentNetwork] instanceof SuiClient\n\t\t\t\t\t? null\n\t\t\t\t\t: (networks[currentNetwork] as SuiClientOptions),\n\t\t\tselectNetwork: (newNetwork) => {\n\t\t\t\tif (currentNetwork === newNetwork) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!network && newNetwork !== selectedNetwork) {\n\t\t\t\t\tsetSelectedNetwork(newNetwork);\n\t\t\t\t}\n\n\t\t\t\tonNetworkChange?.(newNetwork);\n\t\t\t},\n\t\t};\n\t}, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);\n\n\treturn <SuiClientContext.Provider value={ctx}>{children}</SuiClientContext.Provider>;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,yBAA4B;;;ACA5B,IAAAA,gBAA2B;;;ACD3B,oBAAuD;AAEvD,mBAAiD;AAyFzC;AAxED,IAAM,uBAAmB,4BAA+C,IAAI;AAkBnF,IAAM,mBAAmB;AAAA,EACxB,UAAU,EAAE,SAAK,8BAAe,UAAU,EAAE;AAC7C;;;ADlCO,SAAS,sBAAsB;AACrC,QAAM,gBAAY,0BAAW,gBAAgB;AAE7C,MAAI,CAAC,WAAW;AACf,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;;;ADJO,SAAS,qBACf,QACA,UAA0C,CAAC,GACmD;AAC9F,QAAM,aAAa,oBAAoB;AAEvC,aAAO,gCAAY;AAAA,IAClB,GAAG;AAAA,IACH,YAAY,OAAO,WAAW;AAC7B,aAAO,MAAM,WAAW,OAAO,MAAM,EAAE,MAAe;AAAA,IACvD;AAAA,EACD,CAAC;AACF;",
|
|
6
6
|
"names": ["import_react"]
|
|
7
7
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { SuiClient } from '@mysten/sui.js/client';
|
|
2
|
-
import type { UseQueryOptions } from '@tanstack/react-query';
|
|
2
|
+
import type { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
|
|
3
|
+
import type { PartialBy } from '../types/utilityTypes.js';
|
|
3
4
|
export type SuiRpcMethodName = {
|
|
4
5
|
[K in keyof SuiClient]: SuiClient[K] extends ((input: any) => Promise<any>) | (() => Promise<any>) ? K : never;
|
|
5
6
|
}[keyof SuiClient];
|
|
@@ -14,5 +15,5 @@ export type SuiRpcMethods = {
|
|
|
14
15
|
params: undefined | object;
|
|
15
16
|
} : never;
|
|
16
17
|
};
|
|
17
|
-
export type UseSuiClientQueryOptions<T extends keyof SuiRpcMethods> = Omit<UseQueryOptions<SuiRpcMethods[T]['result'], Error,
|
|
18
|
-
export declare function useSuiClientQuery<T extends keyof SuiRpcMethods>(...args: undefined extends SuiRpcMethods[T]['params'] ? [method: T, params?: SuiRpcMethods[T]['params'], options?: UseSuiClientQueryOptions<T>] : [method: T, params: SuiRpcMethods[T]['params'], options?: UseSuiClientQueryOptions<T>]):
|
|
18
|
+
export type UseSuiClientQueryOptions<T extends keyof SuiRpcMethods, TData> = PartialBy<Omit<UseQueryOptions<SuiRpcMethods[T]['result'], Error, TData, unknown[]>, 'queryFn'>, 'queryKey'>;
|
|
19
|
+
export declare function useSuiClientQuery<T extends keyof SuiRpcMethods, TData = SuiRpcMethods[T]['result']>(...args: undefined extends SuiRpcMethods[T]['params'] ? [method: T, params?: SuiRpcMethods[T]['params'], options?: UseSuiClientQueryOptions<T, TData>] : [method: T, params: SuiRpcMethods[T]['params'], options?: UseSuiClientQueryOptions<T, TData>]): UseQueryResult<TData, Error>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/useSuiClientQuery.ts", "../../../src/hooks/useSuiClient.ts", "../../../src/components/SuiClientProvider.tsx"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClient } from '@mysten/sui.js/client';\nimport type { UseQueryOptions } from '@tanstack/react-query';\nimport { useQuery } from '@tanstack/react-query';\n\nimport { useSuiClientContext } from './useSuiClient.js';\n\nexport type SuiRpcMethodName = {\n\t[K in keyof SuiClient]: SuiClient[K] extends ((input: any) => Promise<any>) | (() => Promise<any>)\n\t\t? K\n\t\t: never;\n}[keyof SuiClient];\n\nexport type SuiRpcMethods = {\n\t[K in SuiRpcMethodName]: SuiClient[K] extends (input: infer P) => Promise<infer R>\n\t\t? {\n\t\t\t\tname: K;\n\t\t\t\tresult: R;\n\t\t\t\tparams: P;\n\t\t }\n\t\t: SuiClient[K] extends () => Promise<infer R>\n\t\t? {\n\t\t\t\tname: K;\n\t\t\t\tresult: R;\n\t\t\t\tparams: undefined | object;\n\t\t }\n\t\t: never;\n};\n\nexport type UseSuiClientQueryOptions<T extends keyof SuiRpcMethods> =
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,yBAAyB;;;ACDzB,IAAAA,gBAA2B;;;ACD3B,oBAAuD;AAEvD,mBAAiD;AAyFzC;AAxED,IAAM,uBAAmB,4BAA+C,IAAI;AAkBnF,IAAM,mBAAmB;AAAA,EACxB,UAAU,EAAE,SAAK,8BAAe,UAAU,EAAE;AAC7C;;;ADlCO,SAAS,sBAAsB;AACrC,QAAM,gBAAY,0BAAW,gBAAgB;AAE7C,MAAI,CAAC,WAAW;AACf,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;;;
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClient } from '@mysten/sui.js/client';\nimport type { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';\nimport { useQuery } from '@tanstack/react-query';\n\nimport type { PartialBy } from '../types/utilityTypes.js';\nimport { useSuiClientContext } from './useSuiClient.js';\n\nexport type SuiRpcMethodName = {\n\t[K in keyof SuiClient]: SuiClient[K] extends ((input: any) => Promise<any>) | (() => Promise<any>)\n\t\t? K\n\t\t: never;\n}[keyof SuiClient];\n\nexport type SuiRpcMethods = {\n\t[K in SuiRpcMethodName]: SuiClient[K] extends (input: infer P) => Promise<infer R>\n\t\t? {\n\t\t\t\tname: K;\n\t\t\t\tresult: R;\n\t\t\t\tparams: P;\n\t\t }\n\t\t: SuiClient[K] extends () => Promise<infer R>\n\t\t? {\n\t\t\t\tname: K;\n\t\t\t\tresult: R;\n\t\t\t\tparams: undefined | object;\n\t\t }\n\t\t: never;\n};\n\nexport type UseSuiClientQueryOptions<T extends keyof SuiRpcMethods, TData> = PartialBy<\n\tOmit<UseQueryOptions<SuiRpcMethods[T]['result'], Error, TData, unknown[]>, 'queryFn'>,\n\t'queryKey'\n>;\n\nexport function useSuiClientQuery<\n\tT extends keyof SuiRpcMethods,\n\tTData = SuiRpcMethods[T]['result'],\n>(\n\t...args: undefined extends SuiRpcMethods[T]['params']\n\t\t? [method: T, params?: SuiRpcMethods[T]['params'], options?: UseSuiClientQueryOptions<T, TData>]\n\t\t: [method: T, params: SuiRpcMethods[T]['params'], options?: UseSuiClientQueryOptions<T, TData>]\n): UseQueryResult<TData, Error> {\n\tconst [method, params, { queryKey = [], ...options } = {}] = args as [\n\t\tmethod: T,\n\t\tparams?: SuiRpcMethods[T]['params'],\n\t\toptions?: UseSuiClientQueryOptions<T, TData>,\n\t];\n\n\tconst suiContext = useSuiClientContext();\n\n\treturn useQuery({\n\t\t...options,\n\t\tqueryKey: [suiContext.network, method, params, ...queryKey],\n\t\tqueryFn: async () => {\n\t\t\treturn await suiContext.client[method](params as never);\n\t\t},\n\t});\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClient } from '@mysten/sui.js/client';\nimport { useContext } from 'react';\n\nimport { SuiClientContext } from '../components/SuiClientProvider.js';\n\nexport function useSuiClientContext() {\n\tconst suiClient = useContext(SuiClientContext);\n\n\tif (!suiClient) {\n\t\tthrow new Error(\n\t\t\t'Could not find SuiClientContext. Ensure that you have set up the SuiClientProvider',\n\t\t);\n\t}\n\n\treturn suiClient;\n}\n\nexport function useSuiClient(): SuiClient {\n\treturn useSuiClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getFullnodeUrl, isSuiClient, SuiClient } from '@mysten/sui.js/client';\nimport type { SuiClientOptions } from '@mysten/sui.js/client';\nimport { createContext, useMemo, useState } from 'react';\n\nimport type { NetworkConfig } from '../hooks/networkConfig.js';\n\ntype NetworkConfigs<T extends NetworkConfig | SuiClient = NetworkConfig | SuiClient> = Record<\n\tstring,\n\tT\n>;\n\nexport interface SuiClientProviderContext {\n\tclient: SuiClient;\n\tnetworks: NetworkConfigs;\n\tnetwork: string;\n\tconfig: NetworkConfig | null;\n\tselectNetwork: (network: string) => void;\n}\n\nexport const SuiClientContext = createContext<SuiClientProviderContext | null>(null);\n\nexport type SuiClientProviderProps<T extends NetworkConfigs> = {\n\tcreateClient?: (name: keyof T, config: T[keyof T]) => SuiClient;\n\tchildren: React.ReactNode;\n\tnetworks?: T;\n\tonNetworkChange?: (network: keyof T & string) => void;\n} & (\n\t| {\n\t\t\tdefaultNetwork?: keyof T & string;\n\t\t\tnetwork?: never;\n\t }\n\t| {\n\t\t\tdefaultNetwork?: never;\n\t\t\tnetwork?: keyof T & string;\n\t }\n);\n\nconst DEFAULT_NETWORKS = {\n\tlocalnet: { url: getFullnodeUrl('localnet') },\n};\n\nconst DEFAULT_CREATE_CLIENT = function createClient(\n\t_name: string,\n\tconfig: NetworkConfig | SuiClient,\n) {\n\tif (isSuiClient(config)) {\n\t\treturn config;\n\t}\n\n\treturn new SuiClient(config);\n};\n\nexport function SuiClientProvider<T extends NetworkConfigs>(props: SuiClientProviderProps<T>) {\n\tconst { onNetworkChange, network, children } = props;\n\tconst networks = (props.networks ?? DEFAULT_NETWORKS) as T;\n\tconst createClient =\n\t\t(props.createClient as typeof DEFAULT_CREATE_CLIENT) ?? DEFAULT_CREATE_CLIENT;\n\n\tconst [selectedNetwork, setSelectedNetwork] = useState<keyof T & string>(\n\t\tprops.network ?? props.defaultNetwork ?? (Object.keys(networks)[0] as keyof T & string),\n\t);\n\n\tconst currentNetwork = props.network ?? selectedNetwork;\n\n\tconst client = useMemo(() => {\n\t\treturn createClient(currentNetwork, networks[currentNetwork]);\n\t}, [createClient, currentNetwork, networks]);\n\n\tconst ctx = useMemo((): SuiClientProviderContext => {\n\t\treturn {\n\t\t\tclient,\n\t\t\tnetworks,\n\t\t\tnetwork: currentNetwork,\n\t\t\tconfig:\n\t\t\t\tnetworks[currentNetwork] instanceof SuiClient\n\t\t\t\t\t? null\n\t\t\t\t\t: (networks[currentNetwork] as SuiClientOptions),\n\t\t\tselectNetwork: (newNetwork) => {\n\t\t\t\tif (currentNetwork === newNetwork) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!network && newNetwork !== selectedNetwork) {\n\t\t\t\t\tsetSelectedNetwork(newNetwork);\n\t\t\t\t}\n\n\t\t\t\tonNetworkChange?.(newNetwork);\n\t\t\t},\n\t\t};\n\t}, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);\n\n\treturn <SuiClientContext.Provider value={ctx}>{children}</SuiClientContext.Provider>;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,yBAAyB;;;ACDzB,IAAAA,gBAA2B;;;ACD3B,oBAAuD;AAEvD,mBAAiD;AAyFzC;AAxED,IAAM,uBAAmB,4BAA+C,IAAI;AAkBnF,IAAM,mBAAmB;AAAA,EACxB,UAAU,EAAE,SAAK,8BAAe,UAAU,EAAE;AAC7C;;;ADlCO,SAAS,sBAAsB;AACrC,QAAM,gBAAY,0BAAW,gBAAgB;AAE7C,MAAI,CAAC,WAAW;AACf,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;;;ADmBO,SAAS,qBAIZ,MAG4B;AAC/B,QAAM,CAAC,QAAQ,QAAQ,EAAE,WAAW,CAAC,GAAG,GAAG,QAAQ,IAAI,CAAC,CAAC,IAAI;AAM7D,QAAM,aAAa,oBAAoB;AAEvC,aAAO,6BAAS;AAAA,IACf,GAAG;AAAA,IACH,UAAU,CAAC,WAAW,SAAS,QAAQ,QAAQ,GAAG,QAAQ;AAAA,IAC1D,SAAS,YAAY;AACpB,aAAO,MAAM,WAAW,OAAO,MAAM,EAAE,MAAe;AAAA,IACvD;AAAA,EACD,CAAC;AACF;",
|
|
6
6
|
"names": ["import_react"]
|
|
7
7
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
import type { WalletAccount } from '@mysten/wallet-standard';
|
|
1
2
|
/**
|
|
2
3
|
* Retrieves a list of connected accounts authorized by the dApp.
|
|
3
4
|
*/
|
|
4
|
-
export declare function useAccounts(): readonly
|
|
5
|
+
export declare function useAccounts(): readonly WalletAccount[];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/hooks/wallet/useAccounts.ts", "../../../../src/hooks/wallet/useWalletStore.ts", "../../../../src/contexts/walletContext.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves a list of connected accounts authorized by the dApp.\n */\nexport function useAccounts() {\n\treturn useWalletStore((state) => state.accounts);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport { WalletContext } from '../../contexts/walletContext.js';\nimport type { StoreState } from '../../walletStore.js';\n\nexport function useWalletStore<T>(selector: (state: StoreState) => T): T {\n\tconst store = useContext(WalletContext);\n\tif (!store) {\n\t\tthrow new Error(\n\t\t\t'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n\t\t);\n\t}\n\treturn useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACGA,IAAAA,gBAA2B;AAC3B,qBAAyB;;;ACDzB,mBAA8B;AAIvB,IAAM,oBAAgB,4BAAkC,IAAI;;;ADE5D,SAAS,eAAkB,UAAuC;AACxE,QAAM,YAAQ,0BAAW,aAAa;AACtC,MAAI,CAAC,OAAO;AACX,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AACA,aAAO,yBAAS,OAAO,QAAQ;AAChC;;;
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletAccount } from '@mysten/wallet-standard';\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves a list of connected accounts authorized by the dApp.\n */\nexport function useAccounts(): readonly WalletAccount[] {\n\treturn useWalletStore((state) => state.accounts);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport { WalletContext } from '../../contexts/walletContext.js';\nimport type { StoreState } from '../../walletStore.js';\n\nexport function useWalletStore<T>(selector: (state: StoreState) => T): T {\n\tconst store = useContext(WalletContext);\n\tif (!store) {\n\t\tthrow new Error(\n\t\t\t'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n\t\t);\n\t}\n\treturn useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACGA,IAAAA,gBAA2B;AAC3B,qBAAyB;;;ACDzB,mBAA8B;AAIvB,IAAM,oBAAgB,4BAAkC,IAAI;;;ADE5D,SAAS,eAAkB,UAAuC;AACxE,QAAM,YAAQ,0BAAW,aAAa;AACtC,MAAI,CAAC,OAAO;AACX,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AACA,aAAO,yBAAS,OAAO,QAAQ;AAChC;;;ADPO,SAAS,cAAwC;AACvD,SAAO,eAAe,CAAC,UAAU,MAAM,QAAQ;AAChD;",
|
|
6
6
|
"names": ["import_react"]
|
|
7
7
|
}
|
|
@@ -69,16 +69,23 @@ function useConnectWallet({
|
|
|
69
69
|
...mutationOptions
|
|
70
70
|
} = {}) {
|
|
71
71
|
const setWalletConnected = useWalletStore((state) => state.setWalletConnected);
|
|
72
|
+
const setConnectionStatus = useWalletStore((state) => state.setConnectionStatus);
|
|
72
73
|
return (0, import_react_query.useMutation)({
|
|
73
74
|
mutationKey: walletMutationKeys.connectWallet(mutationKey),
|
|
74
|
-
mutationFn: async ({ wallet, accountAddress, ...
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
75
|
+
mutationFn: async ({ wallet, accountAddress, ...connectArgs }) => {
|
|
76
|
+
try {
|
|
77
|
+
setConnectionStatus("connecting");
|
|
78
|
+
const connectResult = await wallet.features["standard:connect"].connect(connectArgs);
|
|
79
|
+
const connectedSuiAccounts = connectResult.accounts.filter(
|
|
80
|
+
(account) => account.chains.some((chain) => chain.split(":")[0] === "sui")
|
|
81
|
+
);
|
|
82
|
+
const selectedAccount = getSelectedAccount(connectedSuiAccounts, accountAddress);
|
|
83
|
+
setWalletConnected(wallet, connectedSuiAccounts, selectedAccount);
|
|
84
|
+
return { accounts: connectedSuiAccounts };
|
|
85
|
+
} catch (error) {
|
|
86
|
+
setConnectionStatus("disconnected");
|
|
87
|
+
throw error;
|
|
88
|
+
}
|
|
82
89
|
},
|
|
83
90
|
...mutationOptions
|
|
84
91
|
});
|
|
@@ -94,6 +101,39 @@ function getSelectedAccount(connectedAccounts, accountAddress) {
|
|
|
94
101
|
return connectedAccounts[0];
|
|
95
102
|
}
|
|
96
103
|
|
|
104
|
+
// src/hooks/wallet/useCurrentWallet.ts
|
|
105
|
+
function useCurrentWallet() {
|
|
106
|
+
const currentWallet = useWalletStore((state) => state.currentWallet);
|
|
107
|
+
const connectionStatus = useWalletStore((state) => state.connectionStatus);
|
|
108
|
+
switch (connectionStatus) {
|
|
109
|
+
case "connecting":
|
|
110
|
+
return {
|
|
111
|
+
connectionStatus,
|
|
112
|
+
currentWallet: null,
|
|
113
|
+
isDisconnected: false,
|
|
114
|
+
isConnecting: true,
|
|
115
|
+
isConnected: false
|
|
116
|
+
};
|
|
117
|
+
case "disconnected":
|
|
118
|
+
return {
|
|
119
|
+
connectionStatus,
|
|
120
|
+
currentWallet: null,
|
|
121
|
+
isDisconnected: true,
|
|
122
|
+
isConnecting: false,
|
|
123
|
+
isConnected: false
|
|
124
|
+
};
|
|
125
|
+
case "connected": {
|
|
126
|
+
return {
|
|
127
|
+
connectionStatus,
|
|
128
|
+
currentWallet,
|
|
129
|
+
isDisconnected: false,
|
|
130
|
+
isConnecting: false,
|
|
131
|
+
isConnected: true
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
97
137
|
// src/hooks/wallet/useWallets.ts
|
|
98
138
|
function useWallets() {
|
|
99
139
|
return useWalletStore((state) => state.wallets);
|
|
@@ -102,25 +142,35 @@ function useWallets() {
|
|
|
102
142
|
// src/hooks/wallet/useAutoConnectWallet.ts
|
|
103
143
|
function useAutoConnectWallet(autoConnectEnabled) {
|
|
104
144
|
const { mutate: connectWallet } = useConnectWallet();
|
|
105
|
-
const
|
|
145
|
+
const setAutoConnectionStatus = useWalletStore((state) => state.setAutoConnectionStatus);
|
|
106
146
|
const lastConnectedWalletName = useWalletStore((state) => state.lastConnectedWalletName);
|
|
107
147
|
const lastConnectedAccountAddress = useWalletStore((state) => state.lastConnectedAccountAddress);
|
|
148
|
+
const wallets = useWallets();
|
|
149
|
+
const { isDisconnected } = useCurrentWallet();
|
|
108
150
|
(0, import_react3.useEffect)(() => {
|
|
109
|
-
if (!autoConnectEnabled || !lastConnectedWalletName)
|
|
151
|
+
if (!autoConnectEnabled || !lastConnectedWalletName || !lastConnectedAccountAddress || !isDisconnected) {
|
|
110
152
|
return;
|
|
153
|
+
}
|
|
111
154
|
const wallet = wallets.find((wallet2) => wallet2.name === lastConnectedWalletName);
|
|
112
155
|
if (wallet) {
|
|
113
|
-
connectWallet(
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
156
|
+
connectWallet(
|
|
157
|
+
{
|
|
158
|
+
wallet,
|
|
159
|
+
accountAddress: lastConnectedAccountAddress,
|
|
160
|
+
silent: true
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
onSettled: () => setAutoConnectionStatus("settled")
|
|
164
|
+
}
|
|
165
|
+
);
|
|
118
166
|
}
|
|
119
167
|
}, [
|
|
120
168
|
autoConnectEnabled,
|
|
121
169
|
connectWallet,
|
|
170
|
+
isDisconnected,
|
|
122
171
|
lastConnectedAccountAddress,
|
|
123
172
|
lastConnectedWalletName,
|
|
173
|
+
setAutoConnectionStatus,
|
|
124
174
|
wallets
|
|
125
175
|
]);
|
|
126
176
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/hooks/wallet/useAutoConnectWallet.ts", "../../../../src/hooks/wallet/useConnectWallet.ts", "../../../../src/constants/walletMutationKeys.ts", "../../../../src/hooks/wallet/useWalletStore.ts", "../../../../src/contexts/walletContext.ts", "../../../../src/hooks/wallet/useWallets.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useEffect } from 'react';\n\nimport { useConnectWallet } from './useConnectWallet.js';\nimport { useWallets } from './useWallets.js';\nimport { useWalletStore } from './useWalletStore.js';\n\nexport function useAutoConnectWallet(autoConnectEnabled: boolean) {\n\tconst { mutate: connectWallet } = useConnectWallet();\n\tconst
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,IAAAA,gBAA0B;;;ACO1B,yBAA4B;;;ACLrB,IAAM,qBAAqB;AAAA,EACjC,KAAK,EAAE,WAAW,SAAS;AAAA,EAC3B,eAAe,kBAAkB,gBAAgB;AAAA,EACjD,kBAAkB,kBAAkB,mBAAmB;AAAA,EACvD,qBAAqB,kBAAkB,uBAAuB;AAAA,EAC9D,sBAAsB,kBAAkB,wBAAwB;AAAA,EAChE,gCAAgC,kBAAkB,oCAAoC;AAAA,EACtF,eAAe,kBAAkB,gBAAgB;AAClD;AAEA,SAAS,kBAAkB,YAAoB;AAC9C,SAAO,SAAS,cAAc,iBAA8B,CAAC,GAAG;AAC/D,WAAO,CAAC,EAAE,GAAG,mBAAmB,KAAK,WAAW,GAAG,GAAG,cAAc;AAAA,EACrE;AACD;;;AChBA,IAAAC,gBAA2B;AAC3B,qBAAyB;;;ACDzB,mBAA8B;AAIvB,IAAM,oBAAgB,4BAAkC,IAAI;;;ADE5D,SAAS,eAAkB,UAAuC;AACxE,QAAM,YAAQ,0BAAW,aAAa;AACtC,MAAI,CAAC,OAAO;AACX,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AACA,aAAO,yBAAS,OAAO,QAAQ;AAChC;;;AFgBO,SAAS,iBAAiB;AAAA,EAChC;AAAA,EACA,GAAG;AACJ,IAAqC,CAAC,
|
|
3
|
+
"sources": ["../../../../src/hooks/wallet/useAutoConnectWallet.ts", "../../../../src/hooks/wallet/useConnectWallet.ts", "../../../../src/constants/walletMutationKeys.ts", "../../../../src/hooks/wallet/useWalletStore.ts", "../../../../src/contexts/walletContext.ts", "../../../../src/hooks/wallet/useCurrentWallet.ts", "../../../../src/hooks/wallet/useWallets.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useEffect } from 'react';\n\nimport { useConnectWallet } from './useConnectWallet.js';\nimport { useCurrentWallet } from './useCurrentWallet.js';\nimport { useWallets } from './useWallets.js';\nimport { useWalletStore } from './useWalletStore.js';\n\nexport function useAutoConnectWallet(autoConnectEnabled: boolean) {\n\tconst { mutate: connectWallet } = useConnectWallet();\n\tconst setAutoConnectionStatus = useWalletStore((state) => state.setAutoConnectionStatus);\n\tconst lastConnectedWalletName = useWalletStore((state) => state.lastConnectedWalletName);\n\tconst lastConnectedAccountAddress = useWalletStore((state) => state.lastConnectedAccountAddress);\n\tconst wallets = useWallets();\n\tconst { isDisconnected } = useCurrentWallet();\n\n\tuseEffect(() => {\n\t\tif (\n\t\t\t!autoConnectEnabled ||\n\t\t\t!lastConnectedWalletName ||\n\t\t\t!lastConnectedAccountAddress ||\n\t\t\t!isDisconnected\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst wallet = wallets.find((wallet) => wallet.name === lastConnectedWalletName);\n\t\tif (wallet) {\n\t\t\tconnectWallet(\n\t\t\t\t{\n\t\t\t\t\twallet,\n\t\t\t\t\taccountAddress: lastConnectedAccountAddress,\n\t\t\t\t\tsilent: true,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tonSettled: () => setAutoConnectionStatus('settled'),\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t}, [\n\t\tautoConnectEnabled,\n\t\tconnectWallet,\n\t\tisDisconnected,\n\t\tlastConnectedAccountAddress,\n\t\tlastConnectedWalletName,\n\t\tsetAutoConnectionStatus,\n\t\twallets,\n\t]);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n\tStandardConnectInput,\n\tStandardConnectOutput,\n\tWalletAccount,\n\tWalletWithRequiredFeatures,\n} from '@mysten/wallet-standard';\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport { useWalletStore } from './useWalletStore.js';\n\ntype ConnectWalletArgs = {\n\t/** The wallet to connect to. */\n\twallet: WalletWithRequiredFeatures;\n\n\t/** An optional account address to connect to. Defaults to the first authorized account. */\n\taccountAddress?: string;\n} & StandardConnectInput;\n\ntype ConnectWalletResult = StandardConnectOutput;\n\ntype UseConnectWalletMutationOptions = Omit<\n\tUseMutationOptions<ConnectWalletResult, Error, ConnectWalletArgs, unknown>,\n\t'mutationFn'\n>;\n\n/**\n * Mutation hook for establishing a connection to a specific wallet.\n */\nexport function useConnectWallet({\n\tmutationKey,\n\t...mutationOptions\n}: UseConnectWalletMutationOptions = {}): UseMutationResult<\n\tConnectWalletResult,\n\tError,\n\tConnectWalletArgs,\n\tunknown\n> {\n\tconst setWalletConnected = useWalletStore((state) => state.setWalletConnected);\n\tconst setConnectionStatus = useWalletStore((state) => state.setConnectionStatus);\n\n\treturn useMutation({\n\t\tmutationKey: walletMutationKeys.connectWallet(mutationKey),\n\t\tmutationFn: async ({ wallet, accountAddress, ...connectArgs }) => {\n\t\t\ttry {\n\t\t\t\tsetConnectionStatus('connecting');\n\n\t\t\t\tconst connectResult = await wallet.features['standard:connect'].connect(connectArgs);\n\t\t\t\tconst connectedSuiAccounts = connectResult.accounts.filter((account) =>\n\t\t\t\t\taccount.chains.some((chain) => chain.split(':')[0] === 'sui'),\n\t\t\t\t);\n\t\t\t\tconst selectedAccount = getSelectedAccount(connectedSuiAccounts, accountAddress);\n\n\t\t\t\tsetWalletConnected(wallet, connectedSuiAccounts, selectedAccount);\n\n\t\t\t\treturn { accounts: connectedSuiAccounts };\n\t\t\t} catch (error) {\n\t\t\t\tsetConnectionStatus('disconnected');\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\nfunction getSelectedAccount(connectedAccounts: readonly WalletAccount[], accountAddress?: string) {\n\tif (connectedAccounts.length === 0) {\n\t\treturn null;\n\t}\n\n\tif (accountAddress) {\n\t\tconst selectedAccount = connectedAccounts.find((account) => account.address === accountAddress);\n\t\treturn selectedAccount ?? connectedAccounts[0];\n\t}\n\n\treturn connectedAccounts[0];\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MutationKey } from '@tanstack/react-query';\n\nexport const walletMutationKeys = {\n\tall: { baseScope: 'wallet' },\n\tconnectWallet: formMutationKeyFn('connect-wallet'),\n\tdisconnectWallet: formMutationKeyFn('disconnect-wallet'),\n\tsignPersonalMessage: formMutationKeyFn('sign-personal-message'),\n\tsignTransactionBlock: formMutationKeyFn('sign-transaction-block'),\n\tsignAndExecuteTransactionBlock: formMutationKeyFn('sign-and-execute-transaction-block'),\n\tswitchAccount: formMutationKeyFn('switch-account'),\n};\n\nfunction formMutationKeyFn(baseEntity: string) {\n\treturn function mutationKeyFn(additionalKeys: MutationKey = []) {\n\t\treturn [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];\n\t};\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport { WalletContext } from '../../contexts/walletContext.js';\nimport type { StoreState } from '../../walletStore.js';\n\nexport function useWalletStore<T>(selector: (state: StoreState) => T): T {\n\tconst store = useContext(WalletContext);\n\tif (!store) {\n\t\tthrow new Error(\n\t\t\t'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n\t\t);\n\t}\n\treturn useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves the wallet that is currently connected to the dApp, if one exists.\n */\nexport function useCurrentWallet() {\n\tconst currentWallet = useWalletStore((state) => state.currentWallet);\n\tconst connectionStatus = useWalletStore((state) => state.connectionStatus);\n\n\tswitch (connectionStatus) {\n\t\tcase 'connecting':\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: null,\n\t\t\t\tisDisconnected: false,\n\t\t\t\tisConnecting: true,\n\t\t\t\tisConnected: false,\n\t\t\t} as const;\n\t\tcase 'disconnected':\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: null,\n\t\t\t\tisDisconnected: true,\n\t\t\t\tisConnecting: false,\n\t\t\t\tisConnected: false,\n\t\t\t} as const;\n\t\tcase 'connected': {\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: currentWallet!,\n\t\t\t\tisDisconnected: false,\n\t\t\t\tisConnecting: false,\n\t\t\t\tisConnected: true,\n\t\t\t} as const;\n\t\t}\n\t}\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves a list of registered wallets available to the dApp sorted by preference.\n */\nexport function useWallets() {\n\treturn useWalletStore((state) => state.wallets);\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,IAAAA,gBAA0B;;;ACO1B,yBAA4B;;;ACLrB,IAAM,qBAAqB;AAAA,EACjC,KAAK,EAAE,WAAW,SAAS;AAAA,EAC3B,eAAe,kBAAkB,gBAAgB;AAAA,EACjD,kBAAkB,kBAAkB,mBAAmB;AAAA,EACvD,qBAAqB,kBAAkB,uBAAuB;AAAA,EAC9D,sBAAsB,kBAAkB,wBAAwB;AAAA,EAChE,gCAAgC,kBAAkB,oCAAoC;AAAA,EACtF,eAAe,kBAAkB,gBAAgB;AAClD;AAEA,SAAS,kBAAkB,YAAoB;AAC9C,SAAO,SAAS,cAAc,iBAA8B,CAAC,GAAG;AAC/D,WAAO,CAAC,EAAE,GAAG,mBAAmB,KAAK,WAAW,GAAG,GAAG,cAAc;AAAA,EACrE;AACD;;;AChBA,IAAAC,gBAA2B;AAC3B,qBAAyB;;;ACDzB,mBAA8B;AAIvB,IAAM,oBAAgB,4BAAkC,IAAI;;;ADE5D,SAAS,eAAkB,UAAuC;AACxE,QAAM,YAAQ,0BAAW,aAAa;AACtC,MAAI,CAAC,OAAO;AACX,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AACA,aAAO,yBAAS,OAAO,QAAQ;AAChC;;;AFgBO,SAAS,iBAAiB;AAAA,EAChC;AAAA,EACA,GAAG;AACJ,IAAqC,CAAC,GAKpC;AACD,QAAM,qBAAqB,eAAe,CAAC,UAAU,MAAM,kBAAkB;AAC7E,QAAM,sBAAsB,eAAe,CAAC,UAAU,MAAM,mBAAmB;AAE/E,aAAO,gCAAY;AAAA,IAClB,aAAa,mBAAmB,cAAc,WAAW;AAAA,IACzD,YAAY,OAAO,EAAE,QAAQ,gBAAgB,GAAG,YAAY,MAAM;AACjE,UAAI;AACH,4BAAoB,YAAY;AAEhC,cAAM,gBAAgB,MAAM,OAAO,SAAS,kBAAkB,EAAE,QAAQ,WAAW;AACnF,cAAM,uBAAuB,cAAc,SAAS;AAAA,UAAO,CAAC,YAC3D,QAAQ,OAAO,KAAK,CAAC,UAAU,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,KAAK;AAAA,QAC7D;AACA,cAAM,kBAAkB,mBAAmB,sBAAsB,cAAc;AAE/E,2BAAmB,QAAQ,sBAAsB,eAAe;AAEhE,eAAO,EAAE,UAAU,qBAAqB;AAAA,MACzC,SAAS,OAAP;AACD,4BAAoB,cAAc;AAClC,cAAM;AAAA,MACP;AAAA,IACD;AAAA,IACA,GAAG;AAAA,EACJ,CAAC;AACF;AAEA,SAAS,mBAAmB,mBAA6C,gBAAyB;AACjG,MAAI,kBAAkB,WAAW,GAAG;AACnC,WAAO;AAAA,EACR;AAEA,MAAI,gBAAgB;AACnB,UAAM,kBAAkB,kBAAkB,KAAK,CAAC,YAAY,QAAQ,YAAY,cAAc;AAC9F,WAAO,mBAAmB,kBAAkB,CAAC;AAAA,EAC9C;AAEA,SAAO,kBAAkB,CAAC;AAC3B;;;AIxEO,SAAS,mBAAmB;AAClC,QAAM,gBAAgB,eAAe,CAAC,UAAU,MAAM,aAAa;AACnE,QAAM,mBAAmB,eAAe,CAAC,UAAU,MAAM,gBAAgB;AAEzE,UAAQ,kBAAkB;AAAA,IACzB,KAAK;AACJ,aAAO;AAAA,QACN;AAAA,QACA,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,MACd;AAAA,IACD,KAAK;AACJ,aAAO;AAAA,QACN;AAAA,QACA,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,MACd;AAAA,IACD,KAAK,aAAa;AACjB,aAAO;AAAA,QACN;AAAA,QACA;AAAA,QACA,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,MACd;AAAA,IACD;AAAA,EACD;AACD;;;AC/BO,SAAS,aAAa;AAC5B,SAAO,eAAe,CAAC,UAAU,MAAM,OAAO;AAC/C;;;ANAO,SAAS,qBAAqB,oBAA6B;AACjE,QAAM,EAAE,QAAQ,cAAc,IAAI,iBAAiB;AACnD,QAAM,0BAA0B,eAAe,CAAC,UAAU,MAAM,uBAAuB;AACvF,QAAM,0BAA0B,eAAe,CAAC,UAAU,MAAM,uBAAuB;AACvF,QAAM,8BAA8B,eAAe,CAAC,UAAU,MAAM,2BAA2B;AAC/F,QAAM,UAAU,WAAW;AAC3B,QAAM,EAAE,eAAe,IAAI,iBAAiB;AAE5C,+BAAU,MAAM;AACf,QACC,CAAC,sBACD,CAAC,2BACD,CAAC,+BACD,CAAC,gBACA;AACD;AAAA,IACD;AAEA,UAAM,SAAS,QAAQ,KAAK,CAACC,YAAWA,QAAO,SAAS,uBAAuB;AAC/E,QAAI,QAAQ;AACX;AAAA,QACC;AAAA,UACC;AAAA,UACA,gBAAgB;AAAA,UAChB,QAAQ;AAAA,QACT;AAAA,QACA;AAAA,UACC,WAAW,MAAM,wBAAwB,SAAS;AAAA,QACnD;AAAA,MACD;AAAA,IACD;AAAA,EACD,GAAG;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC;AACF;",
|
|
6
6
|
"names": ["import_react", "import_react", "wallet"]
|
|
7
7
|
}
|