@mysten/dapp-kit 0.16.6 → 0.16.7

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.
@@ -82,59 +82,59 @@ export type DynamicTheme = {
82
82
  export type Theme = ThemeVars | DynamicTheme[];
83
83
  export declare const themeVars: {
84
84
  blurs: {
85
- modalOverlay: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
85
+ modalOverlay: `var(--${string})` | `var(--${string}, ${string})`;
86
86
  };
87
87
  backgroundColors: {
88
- primaryButton: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
89
- primaryButtonHover: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
90
- outlineButtonHover: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
91
- walletItemHover: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
92
- walletItemSelected: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
93
- modalOverlay: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
94
- modalPrimary: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
95
- modalSecondary: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
96
- iconButton: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
97
- iconButtonHover: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
98
- dropdownMenu: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
99
- dropdownMenuSeparator: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
88
+ primaryButton: `var(--${string})` | `var(--${string}, ${string})`;
89
+ primaryButtonHover: `var(--${string})` | `var(--${string}, ${string})`;
90
+ outlineButtonHover: `var(--${string})` | `var(--${string}, ${string})`;
91
+ walletItemHover: `var(--${string})` | `var(--${string}, ${string})`;
92
+ walletItemSelected: `var(--${string})` | `var(--${string}, ${string})`;
93
+ modalOverlay: `var(--${string})` | `var(--${string}, ${string})`;
94
+ modalPrimary: `var(--${string})` | `var(--${string}, ${string})`;
95
+ modalSecondary: `var(--${string})` | `var(--${string}, ${string})`;
96
+ iconButton: `var(--${string})` | `var(--${string}, ${string})`;
97
+ iconButtonHover: `var(--${string})` | `var(--${string}, ${string})`;
98
+ dropdownMenu: `var(--${string})` | `var(--${string}, ${string})`;
99
+ dropdownMenuSeparator: `var(--${string})` | `var(--${string}, ${string})`;
100
100
  };
101
101
  borderColors: {
102
- outlineButton: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
102
+ outlineButton: `var(--${string})` | `var(--${string}, ${string})`;
103
103
  };
104
104
  colors: {
105
- primaryButton: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
106
- outlineButton: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
107
- body: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
108
- bodyMuted: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
109
- bodyDanger: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
110
- iconButton: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
105
+ primaryButton: `var(--${string})` | `var(--${string}, ${string})`;
106
+ outlineButton: `var(--${string})` | `var(--${string}, ${string})`;
107
+ body: `var(--${string})` | `var(--${string}, ${string})`;
108
+ bodyMuted: `var(--${string})` | `var(--${string}, ${string})`;
109
+ bodyDanger: `var(--${string})` | `var(--${string}, ${string})`;
110
+ iconButton: `var(--${string})` | `var(--${string}, ${string})`;
111
111
  };
112
112
  radii: {
113
- small: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
114
- medium: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
115
- large: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
116
- xlarge: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
113
+ small: `var(--${string})` | `var(--${string}, ${string})`;
114
+ medium: `var(--${string})` | `var(--${string}, ${string})`;
115
+ large: `var(--${string})` | `var(--${string}, ${string})`;
116
+ xlarge: `var(--${string})` | `var(--${string}, ${string})`;
117
117
  };
118
118
  shadows: {
119
- primaryButton: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
120
- walletItemSelected: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
119
+ primaryButton: `var(--${string})` | `var(--${string}, ${string})`;
120
+ walletItemSelected: `var(--${string})` | `var(--${string}, ${string})`;
121
121
  };
122
122
  fontWeights: {
123
- normal: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
124
- medium: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
125
- bold: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
123
+ normal: `var(--${string})` | `var(--${string}, ${string})`;
124
+ medium: `var(--${string})` | `var(--${string}, ${string})`;
125
+ bold: `var(--${string})` | `var(--${string}, ${string})`;
126
126
  };
127
127
  fontSizes: {
128
- small: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
129
- medium: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
130
- large: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
131
- xlarge: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
128
+ small: `var(--${string})` | `var(--${string}, ${string})`;
129
+ medium: `var(--${string})` | `var(--${string}, ${string})`;
130
+ large: `var(--${string})` | `var(--${string}, ${string})`;
131
+ xlarge: `var(--${string})` | `var(--${string}, ${string})`;
132
132
  };
133
133
  typography: {
134
- fontFamily: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
135
- fontStyle: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
136
- lineHeight: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
137
- letterSpacing: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
134
+ fontFamily: `var(--${string})` | `var(--${string}, ${string})`;
135
+ fontStyle: `var(--${string})` | `var(--${string}, ${string})`;
136
+ lineHeight: `var(--${string})` | `var(--${string}, ${string})`;
137
+ letterSpacing: `var(--${string})` | `var(--${string}, ${string})`;
138
138
  };
139
139
  };
140
140
  export {};
@@ -2,30 +2,30 @@ import type { RecipeVariants } from '@vanilla-extract/recipes';
2
2
  export declare const buttonVariants: import("@vanilla-extract/recipes").RuntimeFn<{
3
3
  variant: {
4
4
  primary: {
5
- backgroundColor: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
6
- color: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
7
- boxShadow: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
5
+ backgroundColor: `var(--${string})` | `var(--${string}, ${string})`;
6
+ color: `var(--${string})` | `var(--${string}, ${string})`;
7
+ boxShadow: `var(--${string})` | `var(--${string}, ${string})`;
8
8
  ':hover': {
9
- backgroundColor: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
9
+ backgroundColor: `var(--${string})` | `var(--${string}, ${string})`;
10
10
  };
11
11
  };
12
12
  outline: {
13
13
  borderWidth: number;
14
14
  borderStyle: "solid";
15
- borderColor: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
16
- color: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
15
+ borderColor: `var(--${string})` | `var(--${string}, ${string})`;
16
+ color: `var(--${string})` | `var(--${string}, ${string})`;
17
17
  ':hover': {
18
- backgroundColor: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
18
+ backgroundColor: `var(--${string})` | `var(--${string}, ${string})`;
19
19
  };
20
20
  };
21
21
  };
22
22
  size: {
23
23
  md: {
24
- borderRadius: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
24
+ borderRadius: `var(--${string})` | `var(--${string}, ${string})`;
25
25
  padding: "8px 16px";
26
26
  };
27
27
  lg: {
28
- borderRadius: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
28
+ borderRadius: `var(--${string})` | `var(--${string}, ${string})`;
29
29
  padding: "16px 24px ";
30
30
  };
31
31
  };
@@ -2,24 +2,24 @@ import type { RecipeVariants } from '@vanilla-extract/recipes';
2
2
  export declare const headingVariants: import("@vanilla-extract/recipes").RuntimeFn<{
3
3
  size: {
4
4
  sm: {
5
- fontSize: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
5
+ fontSize: `var(--${string})` | `var(--${string}, ${string})`;
6
6
  };
7
7
  md: {
8
- fontSize: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
8
+ fontSize: `var(--${string})` | `var(--${string}, ${string})`;
9
9
  };
10
10
  lg: {
11
- fontSize: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
11
+ fontSize: `var(--${string})` | `var(--${string}, ${string})`;
12
12
  };
13
13
  xl: {
14
- fontSize: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
14
+ fontSize: `var(--${string})` | `var(--${string}, ${string})`;
15
15
  };
16
16
  };
17
17
  weight: {
18
18
  normal: {
19
- fontWeight: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
19
+ fontWeight: `var(--${string})` | `var(--${string}, ${string})`;
20
20
  };
21
21
  bold: {
22
- fontWeight: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
22
+ fontWeight: `var(--${string})` | `var(--${string}, ${string})`;
23
23
  };
24
24
  };
25
25
  truncate: {
@@ -2,26 +2,26 @@ import type { RecipeVariants } from '@vanilla-extract/recipes';
2
2
  export declare const textVariants: import("@vanilla-extract/recipes").RuntimeFn<{
3
3
  size: {
4
4
  sm: {
5
- fontSize: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
5
+ fontSize: `var(--${string})` | `var(--${string}, ${string})`;
6
6
  };
7
7
  };
8
8
  weight: {
9
9
  normal: {
10
- fontWeight: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
10
+ fontWeight: `var(--${string})` | `var(--${string}, ${string})`;
11
11
  };
12
12
  medium: {
13
- fontWeight: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
13
+ fontWeight: `var(--${string})` | `var(--${string}, ${string})`;
14
14
  };
15
15
  bold: {
16
- fontWeight: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
16
+ fontWeight: `var(--${string})` | `var(--${string}, ${string})`;
17
17
  };
18
18
  };
19
19
  color: {
20
20
  muted: {
21
- color: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
21
+ color: `var(--${string})` | `var(--${string}, ${string})`;
22
22
  };
23
23
  danger: {
24
- color: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
24
+ color: `var(--${string})` | `var(--${string}, ${string})`;
25
25
  };
26
26
  };
27
27
  mono: {
@@ -20,6 +20,6 @@ export type SuiRpcPaginatedMethods = {
20
20
  cursor: Cursor;
21
21
  } : never;
22
22
  };
23
- 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 type UseSuiClientInfiniteQueryOptions<T extends keyof SuiRpcPaginatedMethods, TData> = PartialBy<Omit<UseInfiniteQueryOptions<SuiRpcPaginatedMethods[T]['result'], Error, TData, unknown[]>, 'queryFn' | 'initialPageParam' | 'getNextPageParam'>, 'queryKey'>;
24
24
  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
25
  export {};
@@ -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/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<\n\t\tinfer Result extends { hasNextPage?: boolean | null; nextCursor?: infer Cursor | null }\n\t>\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\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: (lastPage) => (lastPage.hasNextPage ? (lastPage.nextCursor ?? null) : null),\n\t});\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClient } from '@mysten/sui/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/client';\nimport type { SuiClientOptions } from '@mysten/sui/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": ";AASA,SAAS,wBAAwB;;;ACLjC,SAAS,kBAAkB;;;ACD3B,SAAS,gBAAgB,aAAa,iBAAiB;AAEvD,SAAS,eAAe,SAAS,gBAAgB;AAyFzC;AAxED,IAAM,mBAAmB,cAA+C,IAAI;AAkBnF,IAAM,mBAAmB;AAAA,EACxB,UAAU,EAAE,KAAK,eAAe,UAAU,EAAE;AAC7C;;;ADlCO,SAAS,sBAAsB;AACrC,QAAM,YAAY,WAAW,gBAAgB;AAE7C,MAAI,CAAC,WAAW;AACf,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;;;ADsCO,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,SAAO,iBAAiB;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,aAAc,SAAS,cAAe,SAAS,cAAc,OAAQ;AAAA,EACzF,CAAC;AACF;",
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClient } from '@mysten/sui/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<\n\t\tinfer Result extends { hasNextPage?: boolean | null; nextCursor?: infer Cursor | null }\n\t>\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\t}\n\t\t: never;\n};\n\nexport type UseSuiClientInfiniteQueryOptions<\n\tT extends keyof SuiRpcPaginatedMethods,\n\tTData,\n> = PartialBy<\n\tOmit<\n\t\tUseInfiniteQueryOptions<SuiRpcPaginatedMethods[T]['result'], Error, TData, unknown[]>,\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: (lastPage) => (lastPage.hasNextPage ? (lastPage.nextCursor ?? null) : null),\n\t});\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClient } from '@mysten/sui/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/client';\nimport type { SuiClientOptions } from '@mysten/sui/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": ";AASA,SAAS,wBAAwB;;;ACLjC,SAAS,kBAAkB;;;ACD3B,SAAS,gBAAgB,aAAa,iBAAiB;AAEvD,SAAS,eAAe,SAAS,gBAAgB;AAyFzC;AAxED,IAAM,mBAAmB,cAA+C,IAAI;AAkBnF,IAAM,mBAAmB;AAAA,EACxB,UAAU,EAAE,KAAK,eAAe,UAAU,EAAE;AAC7C;;;ADlCO,SAAS,sBAAsB;AACrC,QAAM,YAAY,WAAW,gBAAgB;AAE7C,MAAI,CAAC,WAAW;AACf,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;;;ADgCO,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,SAAO,iBAAiB;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,aAAc,SAAS,cAAe,SAAS,cAAc,OAAQ;AAAA,EACzF,CAAC;AACF;",
6
6
  "names": []
7
7
  }