@ensnode/ensnode-react 0.0.0-next-20260420155209 → 0.0.0-next-20260421160559

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -2,16 +2,16 @@ import * as _tanstack_react_query from '@tanstack/react-query';
2
2
  import { QueryObserverOptions, DefaultError, QueryKey, DefinedInitialDataOptions, QueryClient, DefinedUseQueryResult, UndefinedInitialDataOptions, UseQueryResult, UseQueryOptions } from '@tanstack/react-query';
3
3
  export { QueryClient } from '@tanstack/react-query';
4
4
  import * as _ensnode_ensnode_sdk from '@ensnode/ensnode-sdk';
5
- import { ClientOptions, ResolvePrimaryNameRequest, ResolvePrimaryNameResponse, ResolvePrimaryNamesRequest, ResolvePrimaryNamesResponse, ResolverRecordsSelection, ResolveRecordsRequest, ResolveRecordsResponse, AcceleratableRequest, UnresolvedIdentity, ConfigResponse, IndexingStatusRequest, IndexingStatusResponse, NameTokensRequest, NameTokensResponse, RegistrarActionsRequest, RegistrarActionsResponse, Identity } from '@ensnode/ensnode-sdk';
5
+ import { EnsNodeClientOptions, ResolvePrimaryNameRequest, ResolvePrimaryNameResponse, ResolvePrimaryNamesRequest, ResolvePrimaryNamesResponse, ResolverRecordsSelection, ResolveRecordsRequest, ResolveRecordsResponse, AcceleratableRequest, UnresolvedIdentity, ENSNamespaceId, EnsApiIndexingStatusRequest, EnsApiIndexingStatusResponse, NameTokensRequest, NameTokensResponse, RegistrarActionsRequest, RegistrarActionsResponse, Identity } from '@ensnode/ensnode-sdk';
6
6
  export { ResolverRecordsSelection } from '@ensnode/ensnode-sdk';
7
7
  import * as react from 'react';
8
8
 
9
9
  /**
10
10
  * Configuration options for the ENSNode provider
11
11
  */
12
- interface ENSNodeSDKConfig {
13
- /** The ENSNode API client configuration */
14
- client: ClientOptions;
12
+ interface EnsNodeProviderOptions {
13
+ /** The ENSNode client configuration */
14
+ client: EnsNodeClientOptions;
15
15
  }
16
16
  /**
17
17
  * Base query parameters that can be passed to hooks
@@ -22,8 +22,8 @@ interface QueryParameter<TData = unknown, TError = Error> {
22
22
  /**
23
23
  * Configuration parameter for hooks that need access to config
24
24
  */
25
- interface WithSDKConfigParameter<TConfig extends ENSNodeSDKConfig = ENSNodeSDKConfig> {
26
- config?: TConfig | undefined;
25
+ interface WithEnsNodeProviderOptions<TOptions extends EnsNodeProviderOptions = EnsNodeProviderOptions> {
26
+ options?: TOptions | undefined;
27
27
  }
28
28
  /**
29
29
  * Parameters for the useRecords hook.
@@ -54,28 +54,25 @@ interface UsePrimaryNamesParameters extends Omit<ResolvePrimaryNamesRequest, "ad
54
54
  */
55
55
  interface UseResolvedIdentityParameters extends QueryParameter<ResolvePrimaryNameResponse>, AcceleratableRequest {
56
56
  identity: UnresolvedIdentity;
57
+ namespace: ENSNamespaceId;
57
58
  }
58
59
 
59
60
  /**
60
- * React context for ENSNode configuration
61
+ * React context for ENSNodeProvider options
61
62
  */
62
- declare const ENSNodeContext: react.Context<ENSNodeSDKConfig | undefined>;
63
-
64
- type UseENSNodeConfigParameters = QueryParameter<ConfigResponse>;
65
- declare function useENSNodeConfig(parameters?: WithSDKConfigParameter & UseENSNodeConfigParameters): _tanstack_react_query.UseQueryResult<_ensnode_ensnode_sdk.EnsApiPublicConfig, Error>;
63
+ declare const EnsNodeContext: react.Context<EnsNodeProviderOptions | undefined>;
66
64
 
67
65
  /**
68
- * Hook to access the ENSNodeSDKConfig from context or parameters.
66
+ * Hook to access the {@link EnsNodeProviderOptions} from context or parameters.
69
67
  *
70
- * @param parameters - Optional config parameter that overrides context
71
- * @returns The ENSNode configuration
72
- * @throws Error if no config is available in context or parameters
68
+ * @param options - Options parameter that overrides context
69
+ * @throws Error if no options are available in context or parameters
73
70
  */
74
- declare function useENSNodeSDKConfig<TConfig extends ENSNodeSDKConfig = ENSNodeSDKConfig>(config: TConfig | undefined): TConfig;
71
+ declare function useEnsNodeProviderOptions<ProviderOptionsType extends EnsNodeProviderOptions = EnsNodeProviderOptions>(options?: ProviderOptionsType): ProviderOptionsType;
75
72
 
76
- interface UseIndexingStatusParameters extends IndexingStatusRequest, QueryParameter<IndexingStatusResponse> {
73
+ interface UseIndexingStatusParameters extends EnsApiIndexingStatusRequest, QueryParameter<EnsApiIndexingStatusResponse> {
77
74
  }
78
- declare function useIndexingStatus(parameters?: WithSDKConfigParameter & UseIndexingStatusParameters): _tanstack_react_query.UseQueryResult<_ensnode_ensnode_sdk.EnsApiIndexingStatusResponse, Error>;
75
+ declare function useIndexingStatus(parameters?: WithEnsNodeProviderOptions & UseIndexingStatusParameters): _tanstack_react_query.UseQueryResult<EnsApiIndexingStatusResponse, Error>;
79
76
 
80
77
  type UseNameTokensParameters = NameTokensRequest & QueryParameter<NameTokensResponse>;
81
78
  /**
@@ -83,7 +80,7 @@ type UseNameTokensParameters = NameTokensRequest & QueryParameter<NameTokensResp
83
80
  *
84
81
  * Query ENSNode Name Tokens API.
85
82
  */
86
- declare function useNameTokens(parameters: WithSDKConfigParameter & UseNameTokensParameters): _tanstack_react_query.UseQueryResult<NameTokensResponse, Error>;
83
+ declare function useNameTokens(parameters: WithEnsNodeProviderOptions & UseNameTokensParameters): _tanstack_react_query.UseQueryResult<NameTokensResponse, Error>;
87
84
 
88
85
  /**
89
86
  * Resolves the primary name of a specified address (Reverse Resolution).
@@ -117,7 +114,7 @@ declare function useNameTokens(parameters: WithSDKConfigParameter & UseNameToken
117
114
  * }
118
115
  * ```
119
116
  */
120
- declare function usePrimaryName(parameters: UsePrimaryNameParameters & WithSDKConfigParameter): _tanstack_react_query.UseQueryResult<_ensnode_ensnode_sdk.ResolvePrimaryNameResponse, Error>;
117
+ declare function usePrimaryName(parameters: UsePrimaryNameParameters & WithEnsNodeProviderOptions): _tanstack_react_query.UseQueryResult<_ensnode_ensnode_sdk.ResolvePrimaryNameResponse, Error>;
121
118
 
122
119
  /**
123
120
  * Resolves the primary names of a specified address across multiple chains.
@@ -153,7 +150,7 @@ declare function usePrimaryName(parameters: UsePrimaryNameParameters & WithSDKCo
153
150
  * }
154
151
  * ```
155
152
  */
156
- declare function usePrimaryNames(parameters: UsePrimaryNamesParameters & WithSDKConfigParameter): _tanstack_react_query.UseQueryResult<_ensnode_ensnode_sdk.ResolvePrimaryNamesResponse, Error>;
153
+ declare function usePrimaryNames(parameters: UsePrimaryNamesParameters & WithEnsNodeProviderOptions): _tanstack_react_query.UseQueryResult<_ensnode_ensnode_sdk.ResolvePrimaryNamesResponse, Error>;
157
154
 
158
155
  /**
159
156
  * Resolves records for an ENS name (Forward Resolution).
@@ -197,7 +194,7 @@ declare function usePrimaryNames(parameters: UsePrimaryNamesParameters & WithSDK
197
194
  * }
198
195
  * ```
199
196
  */
200
- declare function useRecords<SELECTION extends ResolverRecordsSelection>(parameters: UseRecordsParameters<SELECTION> & WithSDKConfigParameter): _tanstack_react_query.UseQueryResult<_ensnode_ensnode_sdk.ResolveRecordsResponse<SELECTION>, Error>;
197
+ declare function useRecords<SELECTION extends ResolverRecordsSelection>(parameters: UseRecordsParameters<SELECTION> & WithEnsNodeProviderOptions): _tanstack_react_query.UseQueryResult<_ensnode_ensnode_sdk.ResolveRecordsResponse<SELECTION>, Error>;
201
198
 
202
199
  interface UseRegistrarActionsParameters extends RegistrarActionsRequest, QueryParameter<RegistrarActionsResponse> {
203
200
  }
@@ -206,7 +203,7 @@ interface UseRegistrarActionsParameters extends RegistrarActionsRequest, QueryPa
206
203
  *
207
204
  * Query ENSNode Registrar Actions API.
208
205
  */
209
- declare function useRegistrarActions(parameters?: WithSDKConfigParameter & UseRegistrarActionsParameters): _tanstack_react_query.UseQueryResult<RegistrarActionsResponse, Error>;
206
+ declare function useRegistrarActions(parameters?: WithEnsNodeProviderOptions & UseRegistrarActionsParameters): _tanstack_react_query.UseQueryResult<RegistrarActionsResponse, Error>;
210
207
 
211
208
  /**
212
209
  * Hook to perform ENSIP-19 primary name resolution to resolve an
@@ -215,7 +212,7 @@ declare function useRegistrarActions(parameters?: WithSDKConfigParameter & UseRe
215
212
  * @param parameters - Configuration object for the hook
216
213
  * @param parameters.identity - An {@link UnresolvedIdentity} containing the {@link DefaultableChainId}
217
214
  * and {@link Address} to resolve.
218
- * @param parameters.namespaceId - The {@link ENSNamespaceId} that `identity.chainId` should be interpreted
215
+ * @param parameters.namespace - The {@link ENSNamespaceId} that `identity.chainId` should be interpreted
219
216
  * through (via {@link getResolvePrimaryNameChainIdParam}) to determine the literal
220
217
  * chainId that should be used for ENSIP-19 primary name resolution.
221
218
  * @param parameters.accelerate - Whether to attempt Protocol Acceleration (default: false)
@@ -432,12 +429,12 @@ declare function useSwrQuery<TQueryFnData = unknown, TError = DefaultError, TDat
432
429
  declare function useSwrQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): UseQueryResult<NoInfer<TData>, TError>;
433
430
  declare function useSwrQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): UseQueryResult<NoInfer<TData>, TError>;
434
431
 
435
- interface ENSNodeProviderProps {
436
- /** ENSNode configuration */
437
- config: ENSNodeSDKConfig;
432
+ interface EnsNodeProviderProps {
433
+ /** ENSNode Provider Options */
434
+ options: EnsNodeProviderOptions;
438
435
  /**
439
436
  * Optional QueryClient instance. If provided, you must wrap your app with QueryClientProvider yourself.
440
- * If not provided, ENSNodeProvider will create and manage its own QueryClient internally.
437
+ * If not provided, EnsNodeProvider will create and manage its own QueryClient internally.
441
438
  */
442
439
  queryClient?: QueryClient;
443
440
  /**
@@ -446,16 +443,16 @@ interface ENSNodeProviderProps {
446
443
  */
447
444
  queryClientOptions?: ConstructorParameters<typeof QueryClient>[0];
448
445
  }
449
- declare function ENSNodeProvider(parameters: React.PropsWithChildren<ENSNodeProviderProps>): react.FunctionComponentElement<{
446
+ declare function EnsNodeProvider(parameters: React.PropsWithChildren<EnsNodeProviderProps>): react.FunctionComponentElement<{
450
447
  children?: React.ReactNode;
451
- config: ENSNodeSDKConfig;
448
+ options: EnsNodeProviderOptions;
452
449
  }> | react.FunctionComponentElement<_tanstack_react_query.QueryClientProviderProps>;
453
450
  /**
454
- * Helper function to create ENSNode configuration
451
+ * Helper function to create ENSNode Provider Options
455
452
  */
456
- declare function createConfig(options?: {
453
+ declare function createEnsNodeProviderOptions(options?: {
457
454
  url?: string | URL;
458
- }): ENSNodeSDKConfig;
455
+ }): EnsNodeProviderOptions;
459
456
 
460
457
  /**
461
458
  * Immutable query options for data that is assumed to be immutable and should only be fetched once per full page refresh per unique key.
@@ -488,7 +485,6 @@ declare const queryKeys: {
488
485
  records: (url: string, args: ResolveRecordsRequest<any>) => readonly ["ensnode", string, "resolve", "records", ResolveRecordsRequest<any>];
489
486
  primaryName: (url: string, args: ResolvePrimaryNameRequest) => readonly ["ensnode", string, "resolve", "primary-name", ResolvePrimaryNameRequest];
490
487
  primaryNames: (url: string, args: ResolvePrimaryNamesRequest) => readonly ["ensnode", string, "resolve", "primary-names", ResolvePrimaryNamesRequest];
491
- config: (url: string) => readonly ["ensnode", string, "config"];
492
488
  indexingStatus: (url: string) => readonly ["ensnode", string, "indexing-status"];
493
489
  registrarActions: (url: string, args: RegistrarActionsRequest) => readonly ["ensnode", string, "registrar-actions", RegistrarActionsRequest];
494
490
  nameTokens: (url: string, args: NameTokensRequest) => readonly ["ensnode", string, "name-tokens", NameTokensRequest];
@@ -496,7 +492,7 @@ declare const queryKeys: {
496
492
  /**
497
493
  * Creates query options for Records Resolution
498
494
  */
499
- declare function createRecordsQueryOptions<SELECTION extends ResolverRecordsSelection>(config: ENSNodeSDKConfig, args: ResolveRecordsRequest<SELECTION>): {
495
+ declare function createRecordsQueryOptions<SELECTION extends ResolverRecordsSelection>(config: EnsNodeProviderOptions, args: ResolveRecordsRequest<SELECTION>): {
500
496
  enabled: boolean;
501
497
  queryKey: readonly ["ensnode", string, "resolve", "records", ResolveRecordsRequest<any>];
502
498
  queryFn: () => Promise<_ensnode_ensnode_sdk.ResolveRecordsResponse<SELECTION>>;
@@ -504,7 +500,7 @@ declare function createRecordsQueryOptions<SELECTION extends ResolverRecordsSele
504
500
  /**
505
501
  * Creates query options for Primary Name Resolution
506
502
  */
507
- declare function createPrimaryNameQueryOptions(config: ENSNodeSDKConfig, args: ResolvePrimaryNameRequest): {
503
+ declare function createPrimaryNameQueryOptions(config: EnsNodeProviderOptions, args: ResolvePrimaryNameRequest): {
508
504
  enabled: boolean;
509
505
  queryKey: readonly ["ensnode", string, "resolve", "primary-name", ResolvePrimaryNameRequest];
510
506
  queryFn: () => Promise<_ensnode_ensnode_sdk.ResolvePrimaryNameResponse>;
@@ -512,23 +508,15 @@ declare function createPrimaryNameQueryOptions(config: ENSNodeSDKConfig, args: R
512
508
  /**
513
509
  * Creates query options for Primary Name Resolution
514
510
  */
515
- declare function createPrimaryNamesQueryOptions(config: ENSNodeSDKConfig, args: ResolvePrimaryNamesRequest): {
511
+ declare function createPrimaryNamesQueryOptions(config: EnsNodeProviderOptions, args: ResolvePrimaryNamesRequest): {
516
512
  enabled: boolean;
517
513
  queryKey: readonly ["ensnode", string, "resolve", "primary-names", ResolvePrimaryNamesRequest];
518
514
  queryFn: () => Promise<_ensnode_ensnode_sdk.ResolvePrimaryNamesResponse>;
519
515
  };
520
- /**
521
- * Creates query options for ENSNode Config API
522
- */
523
- declare function createConfigQueryOptions(config: ENSNodeSDKConfig): {
524
- enabled: boolean;
525
- queryKey: readonly ["ensnode", string, "config"];
526
- queryFn: () => Promise<_ensnode_ensnode_sdk.EnsApiPublicConfig>;
527
- };
528
516
  /**
529
517
  * Creates query options for ENSNode Indexing Status API
530
518
  */
531
- declare function createIndexingStatusQueryOptions(config: ENSNodeSDKConfig): {
519
+ declare function createIndexingStatusQueryOptions(config: EnsNodeProviderOptions): {
532
520
  enabled: boolean;
533
521
  queryKey: readonly ["ensnode", string, "indexing-status"];
534
522
  queryFn: () => Promise<_ensnode_ensnode_sdk.EnsApiIndexingStatusResponse>;
@@ -536,7 +524,7 @@ declare function createIndexingStatusQueryOptions(config: ENSNodeSDKConfig): {
536
524
  /**
537
525
  * Creates query options for ENSNode Registrar Actions API
538
526
  */
539
- declare function createRegistrarActionsQueryOptions(config: ENSNodeSDKConfig, args: RegistrarActionsRequest): {
527
+ declare function createRegistrarActionsQueryOptions(config: EnsNodeProviderOptions, args: RegistrarActionsRequest): {
540
528
  enabled: boolean;
541
529
  queryKey: readonly ["ensnode", string, "registrar-actions", RegistrarActionsRequest];
542
530
  queryFn: () => Promise<_ensnode_ensnode_sdk.RegistrarActionsResponse>;
@@ -544,10 +532,10 @@ declare function createRegistrarActionsQueryOptions(config: ENSNodeSDKConfig, ar
544
532
  /**
545
533
  * Creates query options for Name Tokens API
546
534
  */
547
- declare function createNameTokensQueryOptions(config: ENSNodeSDKConfig, args: NameTokensRequest): {
535
+ declare function createNameTokensQueryOptions(config: EnsNodeProviderOptions, args: NameTokensRequest): {
548
536
  enabled: boolean;
549
537
  queryKey: readonly ["ensnode", string, "name-tokens", NameTokensRequest];
550
538
  queryFn: () => Promise<_ensnode_ensnode_sdk.NameTokensResponse>;
551
539
  };
552
540
 
553
- export { ASSUME_IMMUTABLE_QUERY, ENSNodeContext, ENSNodeProvider, type ENSNodeProviderProps, type ENSNodeSDKConfig, type QueryParameter, type UsePrimaryNameParameters, type UsePrimaryNamesParameters, type UseRecordsParameters, type UseResolvedIdentityParameters, type WithSDKConfigParameter, createConfig, createConfigQueryOptions, createIndexingStatusQueryOptions, createNameTokensQueryOptions, createPrimaryNameQueryOptions, createPrimaryNamesQueryOptions, createRecordsQueryOptions, createRegistrarActionsQueryOptions, queryKeys, useENSNodeConfig, useENSNodeSDKConfig, useIndexingStatus, useNameTokens, usePrimaryName, usePrimaryNames, useRecords, useRegistrarActions, useResolvedIdentity, useSwrQuery };
541
+ export { ASSUME_IMMUTABLE_QUERY, EnsNodeContext, EnsNodeProvider, type EnsNodeProviderOptions, type EnsNodeProviderProps, type QueryParameter, type UsePrimaryNameParameters, type UsePrimaryNamesParameters, type UseRecordsParameters, type UseResolvedIdentityParameters, type WithEnsNodeProviderOptions, createEnsNodeProviderOptions, createIndexingStatusQueryOptions, createNameTokensQueryOptions, createPrimaryNameQueryOptions, createPrimaryNamesQueryOptions, createRecordsQueryOptions, createRegistrarActionsQueryOptions, queryKeys, useEnsNodeProviderOptions, useIndexingStatus, useNameTokens, usePrimaryName, usePrimaryNames, useRecords, useRegistrarActions, useResolvedIdentity, useSwrQuery };
package/dist/index.js CHANGED
@@ -1,14 +1,27 @@
1
1
  // src/context.ts
2
2
  import { createContext } from "react";
3
- var ENSNodeContext = createContext(void 0);
4
- ENSNodeContext.displayName = "ENSNodeContext";
3
+ var EnsNodeContext = createContext(void 0);
4
+ EnsNodeContext.displayName = "EnsNodeContext";
5
5
 
6
- // src/hooks/useENSNodeConfig.ts
6
+ // src/hooks/useEnsNodeProviderOptions.ts
7
+ import { useContext } from "react";
8
+ function useEnsNodeProviderOptions(options) {
9
+ const contextOptions = useContext(EnsNodeContext);
10
+ const resolvedOptions = options ?? contextOptions;
11
+ if (!resolvedOptions) {
12
+ throw new Error(
13
+ "useEnsNodeProviderOptions must be used within an EnsNodeProvider or you must pass the options parameter"
14
+ );
15
+ }
16
+ return resolvedOptions;
17
+ }
18
+
19
+ // src/hooks/useIndexingStatus.ts
7
20
  import { useQuery } from "@tanstack/react-query";
8
21
 
9
22
  // src/utils/query.ts
10
23
  import {
11
- EnsApiClient
24
+ EnsNodeClient
12
25
  } from "@ensnode/ensnode-sdk";
13
26
  var ASSUME_IMMUTABLE_QUERY = {
14
27
  staleTime: Infinity,
@@ -23,7 +36,6 @@ var queryKeys = {
23
36
  records: (url, args) => [...queryKeys.resolve(url), "records", args],
24
37
  primaryName: (url, args) => [...queryKeys.resolve(url), "primary-name", args],
25
38
  primaryNames: (url, args) => [...queryKeys.resolve(url), "primary-names", args],
26
- config: (url) => [...queryKeys.base(url), "config"],
27
39
  indexingStatus: (url) => [...queryKeys.base(url), "indexing-status"],
28
40
  registrarActions: (url, args) => [...queryKeys.base(url), "registrar-actions", args],
29
41
  nameTokens: (url, args) => [...queryKeys.base(url), "name-tokens", args]
@@ -33,7 +45,7 @@ function createRecordsQueryOptions(config, args) {
33
45
  enabled: true,
34
46
  queryKey: queryKeys.records(config.client.url.href, args),
35
47
  queryFn: async () => {
36
- const client = new EnsApiClient(config.client);
48
+ const client = new EnsNodeClient(config.client);
37
49
  return client.resolveRecords(args.name, args.selection, args);
38
50
  }
39
51
  };
@@ -43,7 +55,7 @@ function createPrimaryNameQueryOptions(config, args) {
43
55
  enabled: true,
44
56
  queryKey: queryKeys.primaryName(config.client.url.href, args),
45
57
  queryFn: async () => {
46
- const client = new EnsApiClient(config.client);
58
+ const client = new EnsNodeClient(config.client);
47
59
  return client.resolvePrimaryName(args.address, args.chainId, args);
48
60
  }
49
61
  };
@@ -53,27 +65,17 @@ function createPrimaryNamesQueryOptions(config, args) {
53
65
  enabled: true,
54
66
  queryKey: queryKeys.primaryNames(config.client.url.href, args),
55
67
  queryFn: async () => {
56
- const client = new EnsApiClient(config.client);
68
+ const client = new EnsNodeClient(config.client);
57
69
  return client.resolvePrimaryNames(args.address, args);
58
70
  }
59
71
  };
60
72
  }
61
- function createConfigQueryOptions(config) {
62
- return {
63
- enabled: true,
64
- queryKey: queryKeys.config(config.client.url.href),
65
- queryFn: async () => {
66
- const client = new EnsApiClient(config.client);
67
- return client.config();
68
- }
69
- };
70
- }
71
73
  function createIndexingStatusQueryOptions(config) {
72
74
  return {
73
75
  enabled: true,
74
76
  queryKey: queryKeys.indexingStatus(config.client.url.href),
75
77
  queryFn: async () => {
76
- const client = new EnsApiClient(config.client);
78
+ const client = new EnsNodeClient(config.client);
77
79
  return client.indexingStatus();
78
80
  }
79
81
  };
@@ -83,7 +85,7 @@ function createRegistrarActionsQueryOptions(config, args) {
83
85
  enabled: true,
84
86
  queryKey: queryKeys.registrarActions(config.client.url.href, args),
85
87
  queryFn: async () => {
86
- const client = new EnsApiClient(config.client);
88
+ const client = new EnsNodeClient(config.client);
87
89
  return client.registrarActions(args);
88
90
  }
89
91
  };
@@ -93,62 +95,33 @@ function createNameTokensQueryOptions(config, args) {
93
95
  enabled: true,
94
96
  queryKey: queryKeys.nameTokens(config.client.url.href, args),
95
97
  queryFn: async () => {
96
- const client = new EnsApiClient(config.client);
98
+ const client = new EnsNodeClient(config.client);
97
99
  return client.nameTokens(args);
98
100
  }
99
101
  };
100
102
  }
101
103
 
102
- // src/hooks/useENSNodeSDKConfig.ts
103
- import { useContext } from "react";
104
- function useENSNodeSDKConfig(config) {
105
- const contextConfig = useContext(ENSNodeContext);
106
- const resolvedConfig = config ?? contextConfig;
107
- if (!resolvedConfig) {
108
- throw new Error(
109
- "useENSNodeSDKConfig must be used within an ENSNodeProvider or you must pass a config parameter"
110
- );
111
- }
112
- return resolvedConfig;
113
- }
114
-
115
- // src/hooks/useENSNodeConfig.ts
116
- function useENSNodeConfig(parameters = {}) {
117
- const { config, query = {} } = parameters;
118
- const _config = useENSNodeSDKConfig(config);
119
- const queryOptions = createConfigQueryOptions(_config);
120
- const options = {
121
- ...queryOptions,
122
- ...ASSUME_IMMUTABLE_QUERY,
123
- ...query,
124
- enabled: query.enabled ?? queryOptions.enabled
125
- };
126
- return useQuery(options);
127
- }
128
-
129
104
  // src/hooks/useIndexingStatus.ts
130
- import { useQuery as useQuery2 } from "@tanstack/react-query";
131
105
  function useIndexingStatus(parameters = {}) {
132
- const { config, query = {} } = parameters;
133
- const _config = useENSNodeSDKConfig(config);
134
- const queryOptions = createIndexingStatusQueryOptions(_config);
135
- const options = {
106
+ const { options, query = {} } = parameters;
107
+ const providerOptions = useEnsNodeProviderOptions(options);
108
+ const queryOptions = createIndexingStatusQueryOptions(providerOptions);
109
+ return useQuery({
136
110
  ...queryOptions,
137
111
  refetchInterval: 10 * 1e3,
138
112
  // 10 seconds - indexing status changes frequently
139
113
  ...query,
140
114
  enabled: query.enabled ?? queryOptions.enabled
141
- };
142
- return useQuery2(options);
115
+ });
143
116
  }
144
117
 
145
118
  // src/hooks/useNameTokens.ts
146
- import { useQuery as useQuery3 } from "@tanstack/react-query";
119
+ import { useQuery as useQuery2 } from "@tanstack/react-query";
147
120
  function useNameTokens(parameters) {
148
- const { config, query = {} } = parameters;
149
- const _config = useENSNodeSDKConfig(config);
150
- const queryOptions = createNameTokensQueryOptions(_config, parameters);
151
- return useQuery3({
121
+ const { options, query = {}, ...request } = parameters;
122
+ const providerOptions = useEnsNodeProviderOptions(options);
123
+ const queryOptions = createNameTokensQueryOptions(providerOptions, request);
124
+ return useQuery2({
152
125
  ...queryOptions,
153
126
  refetchInterval: false,
154
127
  // no refetching - assume data is immutable until a full page refresh
@@ -158,64 +131,60 @@ function useNameTokens(parameters) {
158
131
  }
159
132
 
160
133
  // src/hooks/usePrimaryName.ts
161
- import { useQuery as useQuery4 } from "@tanstack/react-query";
134
+ import { useQuery as useQuery3 } from "@tanstack/react-query";
162
135
  function usePrimaryName(parameters) {
163
- const { config, query = {}, address, ...args } = parameters;
164
- const _config = useENSNodeSDKConfig(config);
136
+ const { options, query = {}, address, ...args } = parameters;
137
+ const providerOptions = useEnsNodeProviderOptions(options);
165
138
  const canEnable = address !== null;
166
- const queryOptions = canEnable ? createPrimaryNameQueryOptions(_config, { ...args, address }) : { enabled: false, queryKey: ["disabled"] };
167
- const options = {
139
+ const queryOptions = canEnable ? createPrimaryNameQueryOptions(providerOptions, { ...args, address }) : { enabled: false, queryKey: ["disabled"] };
140
+ return useQuery3({
168
141
  ...queryOptions,
169
142
  ...query,
170
143
  enabled: canEnable && (query.enabled ?? queryOptions.enabled)
171
- };
172
- return useQuery4(options);
144
+ });
173
145
  }
174
146
 
175
147
  // src/hooks/usePrimaryNames.ts
176
- import { useQuery as useQuery5 } from "@tanstack/react-query";
148
+ import { useQuery as useQuery4 } from "@tanstack/react-query";
177
149
  function usePrimaryNames(parameters) {
178
- const { config, query = {}, address, ...args } = parameters;
179
- const _config = useENSNodeSDKConfig(config);
150
+ const { options, query = {}, address, ...args } = parameters;
151
+ const providerOptions = useEnsNodeProviderOptions(options);
180
152
  const canEnable = address !== null;
181
- const queryOptions = canEnable ? createPrimaryNamesQueryOptions(_config, { ...args, address }) : { enabled: false, queryKey: ["disabled"] };
182
- const options = {
153
+ const queryOptions = canEnable ? createPrimaryNamesQueryOptions(providerOptions, { ...args, address }) : { enabled: false, queryKey: ["disabled"] };
154
+ return useQuery4({
183
155
  ...queryOptions,
184
156
  ...query,
185
157
  enabled: canEnable && (query.enabled ?? queryOptions.enabled)
186
- };
187
- return useQuery5(options);
158
+ });
188
159
  }
189
160
 
190
161
  // src/hooks/useRecords.ts
191
- import { useQuery as useQuery6 } from "@tanstack/react-query";
162
+ import { useQuery as useQuery5 } from "@tanstack/react-query";
192
163
  function useRecords(parameters) {
193
- const { config, query = {}, name, ...args } = parameters;
194
- const _config = useENSNodeSDKConfig(config);
164
+ const { options, query = {}, name, ...args } = parameters;
165
+ const _config = useEnsNodeProviderOptions(options);
195
166
  const canEnable = name !== null;
196
167
  const queryOptions = canEnable ? createRecordsQueryOptions(_config, { ...args, name }) : { enabled: false, queryKey: ["disabled"] };
197
- const options = {
168
+ return useQuery5({
198
169
  ...queryOptions,
199
170
  ...query,
200
171
  enabled: canEnable && (query.enabled ?? queryOptions.enabled)
201
- };
202
- return useQuery6(options);
172
+ });
203
173
  }
204
174
 
205
175
  // src/hooks/useRegistrarActions.ts
206
- import { useQuery as useQuery7 } from "@tanstack/react-query";
176
+ import { useQuery as useQuery6 } from "@tanstack/react-query";
207
177
  function useRegistrarActions(parameters = {}) {
208
- const { config, query = {} } = parameters;
209
- const _config = useENSNodeSDKConfig(config);
210
- const queryOptions = createRegistrarActionsQueryOptions(_config, parameters);
211
- const options = {
178
+ const { options, query = {}, ...request } = parameters;
179
+ const providerOptions = useEnsNodeProviderOptions(options);
180
+ const queryOptions = createRegistrarActionsQueryOptions(providerOptions, request);
181
+ return useQuery6({
212
182
  ...queryOptions,
213
183
  refetchInterval: 10 * 1e3,
214
184
  // 10 seconds - latest registrar actions change frequently
215
185
  ...query,
216
186
  enabled: query.enabled ?? queryOptions.enabled
217
- };
218
- return useQuery7(options);
187
+ });
219
188
  }
220
189
 
221
190
  // src/hooks/useResolvedIdentity.ts
@@ -225,9 +194,7 @@ import {
225
194
  ResolutionStatusIds
226
195
  } from "@ensnode/ensnode-sdk";
227
196
  function useResolvedIdentity(parameters) {
228
- const { identity, accelerate, query: _query = {} } = parameters;
229
- const { data } = useENSNodeConfig();
230
- const namespace = data?.ensIndexerPublicConfig.namespace;
197
+ const { identity, namespace, accelerate, query: _query = {} } = parameters;
231
198
  const {
232
199
  data: primaryNameData,
233
200
  status,
@@ -285,7 +252,7 @@ function useResolvedIdentity(parameters) {
285
252
 
286
253
  // src/hooks/useSwrQuery.ts
287
254
  import {
288
- useQuery as useQuery8,
255
+ useQuery as useQuery7,
289
256
  useQueryClient
290
257
  } from "@tanstack/react-query";
291
258
  import { useMemo } from "react";
@@ -293,7 +260,7 @@ function useSwrQuery(options, queryClient) {
293
260
  const queryClientFromContext = useQueryClient();
294
261
  const derivedQueryClient = queryClient ?? queryClientFromContext;
295
262
  const cachedSuccessfulResult = derivedQueryClient.getQueryData(options.queryKey);
296
- const queryResult = useQuery8(
263
+ const queryResult = useQuery7(
297
264
  {
298
265
  ...options,
299
266
  // cached result can never be stale
@@ -326,16 +293,15 @@ function useSwrQuery(options, queryClient) {
326
293
  // src/provider.tsx
327
294
  import { QueryClient, QueryClientProvider, useQueryClient as useQueryClient2 } from "@tanstack/react-query";
328
295
  import { createElement, useMemo as useMemo2 } from "react";
329
- import { EnsApiClient as EnsApiClient2 } from "@ensnode/ensnode-sdk";
330
- function ENSNodeInternalProvider({
296
+ import { EnsNodeClient as EnsNodeClient2 } from "@ensnode/ensnode-sdk";
297
+ function EnsNodeInternalProvider({
331
298
  children,
332
- config
299
+ options
333
300
  }) {
334
- const memoizedConfig = useMemo2(() => config, [config]);
335
- return createElement(ENSNodeContext.Provider, { value: memoizedConfig }, children);
301
+ return createElement(EnsNodeContext.Provider, { value: options }, children);
336
302
  }
337
- function ENSNodeProvider(parameters) {
338
- const { children, config, queryClient, queryClientOptions } = parameters;
303
+ function EnsNodeProvider(parameters) {
304
+ const { children, options, queryClient, queryClientOptions } = parameters;
339
305
  let hasExistingQueryClient = false;
340
306
  try {
341
307
  hasExistingQueryClient = Boolean(useQueryClient2());
@@ -348,10 +314,10 @@ function ENSNodeProvider(parameters) {
348
314
  "When providing a custom queryClient, you must wrap your app with QueryClientProvider. Either remove the queryClient prop to use auto-managed setup, or wrap with QueryClientProvider."
349
315
  );
350
316
  }
351
- return createElement(ENSNodeInternalProvider, { config, children });
317
+ return createElement(EnsNodeInternalProvider, { options, children });
352
318
  }
353
319
  if (hasExistingQueryClient) {
354
- return createElement(ENSNodeInternalProvider, { config, children });
320
+ return createElement(EnsNodeInternalProvider, { options, children });
355
321
  }
356
322
  const defaultQueryClient = useMemo2(
357
323
  () => new QueryClient({
@@ -373,24 +339,23 @@ function ENSNodeProvider(parameters) {
373
339
  return createElement(
374
340
  QueryClientProvider,
375
341
  { client: defaultQueryClient },
376
- createElement(ENSNodeInternalProvider, { config, children })
342
+ createElement(EnsNodeInternalProvider, { options, children })
377
343
  );
378
344
  }
379
- function createConfig(options) {
380
- const url = options?.url ? new URL(options.url) : EnsApiClient2.defaultOptions().url;
345
+ function createEnsNodeProviderOptions(options) {
346
+ const url = options?.url ? new URL(options.url) : EnsNodeClient2.defaultOptions().url;
381
347
  return {
382
348
  client: {
383
- ...EnsApiClient2.defaultOptions(),
349
+ ...EnsNodeClient2.defaultOptions(),
384
350
  url
385
351
  }
386
352
  };
387
353
  }
388
354
  export {
389
355
  ASSUME_IMMUTABLE_QUERY,
390
- ENSNodeContext,
391
- ENSNodeProvider,
392
- createConfig,
393
- createConfigQueryOptions,
356
+ EnsNodeContext,
357
+ EnsNodeProvider,
358
+ createEnsNodeProviderOptions,
394
359
  createIndexingStatusQueryOptions,
395
360
  createNameTokensQueryOptions,
396
361
  createPrimaryNameQueryOptions,
@@ -398,8 +363,7 @@ export {
398
363
  createRecordsQueryOptions,
399
364
  createRegistrarActionsQueryOptions,
400
365
  queryKeys,
401
- useENSNodeConfig,
402
- useENSNodeSDKConfig,
366
+ useEnsNodeProviderOptions,
403
367
  useIndexingStatus,
404
368
  useNameTokens,
405
369
  usePrimaryName,