@wagmi/core 0.2.5 → 0.3.2

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.
Files changed (74) hide show
  1. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +28 -19
  2. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +28 -19
  3. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +28 -19
  4. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.dev.js +17 -12
  5. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.prod.js +17 -12
  6. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js +11 -6
  7. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +7 -6
  8. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +7 -6
  9. package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +5 -4
  10. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +18 -7
  11. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +18 -7
  12. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +16 -5
  13. package/dist/{base-5812b724.cjs.dev.js → base-3a506159.cjs.dev.js} +129 -67
  14. package/dist/{base-159de546.esm.js → base-997b4fec.esm.js} +98 -38
  15. package/dist/{base-59f3457e.cjs.prod.js → base-cb4198f3.cjs.prod.js} +129 -67
  16. package/dist/{client-3a56f061.esm.js → client-1ab99bf8.esm.js} +52 -45
  17. package/dist/{client-72d69b8e.cjs.dev.js → client-db513093.cjs.dev.js} +54 -47
  18. package/dist/{client-1f6fd5b6.cjs.prod.js → client-edc73358.cjs.prod.js} +54 -47
  19. package/dist/declarations/src/actions/accounts/connect.d.ts +4 -4
  20. package/dist/declarations/src/actions/accounts/getAccount.d.ts +3 -3
  21. package/dist/declarations/src/actions/accounts/signTypedData.d.ts +15 -6
  22. package/dist/declarations/src/actions/accounts/watchAccount.d.ts +3 -3
  23. package/dist/declarations/src/actions/providers/getProvider.d.ts +3 -3
  24. package/dist/declarations/src/actions/providers/getWebSocketProvider.d.ts +3 -3
  25. package/dist/declarations/src/actions/providers/watchProvider.d.ts +3 -3
  26. package/dist/declarations/src/actions/providers/watchWebSocketProvider.d.ts +3 -3
  27. package/dist/declarations/src/chains/configureChains.d.ts +20 -0
  28. package/dist/declarations/src/chains/index.d.ts +2 -0
  29. package/dist/declarations/src/client.d.ts +12 -12
  30. package/dist/declarations/src/connectors/injected.d.ts +1 -1
  31. package/dist/declarations/src/connectors/metaMask.d.ts +1 -1
  32. package/dist/declarations/src/constants/index.d.ts +1 -1
  33. package/dist/declarations/src/errors.d.ts +48 -4
  34. package/dist/declarations/src/index.d.ts +8 -6
  35. package/dist/declarations/src/providers/alchemy.d.ts +7 -0
  36. package/dist/declarations/src/providers/infura.d.ts +7 -0
  37. package/dist/declarations/src/providers/jsonRpc.d.ts +11 -0
  38. package/dist/declarations/src/providers/public.d.ts +6 -0
  39. package/dist/declarations/src/storage.d.ts +2 -2
  40. package/dist/declarations/src/types/index.d.ts +44 -14
  41. package/dist/rpcs-7cfbd91c.esm.js +30 -0
  42. package/dist/rpcs-9c4eb960.cjs.dev.js +35 -0
  43. package/dist/rpcs-b3c52116.cjs.prod.js +35 -0
  44. package/dist/wagmi-core.cjs.dev.js +124 -25
  45. package/dist/wagmi-core.cjs.prod.js +124 -25
  46. package/dist/wagmi-core.esm.js +122 -24
  47. package/package.json +27 -6
  48. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.d.ts +1 -0
  49. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.dev.js +38 -0
  50. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.js +7 -0
  51. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.prod.js +38 -0
  52. package/providers/alchemy/dist/wagmi-core-providers-alchemy.esm.js +34 -0
  53. package/providers/alchemy/package.json +4 -0
  54. package/providers/infura/dist/wagmi-core-providers-infura.cjs.d.ts +1 -0
  55. package/providers/infura/dist/wagmi-core-providers-infura.cjs.dev.js +38 -0
  56. package/providers/infura/dist/wagmi-core-providers-infura.cjs.js +7 -0
  57. package/providers/infura/dist/wagmi-core-providers-infura.cjs.prod.js +38 -0
  58. package/providers/infura/dist/wagmi-core-providers-infura.esm.js +34 -0
  59. package/providers/infura/package.json +4 -0
  60. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.d.ts +1 -0
  61. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.dev.js +45 -0
  62. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.js +7 -0
  63. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.prod.js +45 -0
  64. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.esm.js +41 -0
  65. package/providers/jsonRpc/package.json +4 -0
  66. package/providers/public/dist/wagmi-core-providers-public.cjs.d.ts +1 -0
  67. package/providers/public/dist/wagmi-core-providers-public.cjs.dev.js +34 -0
  68. package/providers/public/dist/wagmi-core-providers-public.cjs.js +7 -0
  69. package/providers/public/dist/wagmi-core-providers-public.cjs.prod.js +34 -0
  70. package/providers/public/dist/wagmi-core-providers-public.esm.js +30 -0
  71. package/providers/public/package.json +4 -0
  72. package/dist/classPrivateMethodGet-55c9909f.esm.js +0 -16
  73. package/dist/classPrivateMethodGet-976c8120.cjs.dev.js +0 -19
  74. package/dist/classPrivateMethodGet-d7330ed7.cjs.prod.js +0 -19
@@ -1,16 +1,16 @@
1
- import { providers } from 'ethers';
2
1
  import { Client } from '../../client';
3
2
  import { Connector, ConnectorData } from '../../connectors';
3
+ import { Provider } from '../../types';
4
4
  export declare type ConnectArgs = {
5
5
  /** Connector to connect */
6
6
  connector: Connector;
7
7
  };
8
- declare type Data<TProvider extends providers.BaseProvider = providers.BaseProvider> = Required<ConnectorData<TProvider>>;
9
- export declare type ConnectResult<TProvider extends providers.BaseProvider = providers.BaseProvider> = {
8
+ declare type Data<TProvider extends Provider = Provider> = Required<ConnectorData<TProvider>>;
9
+ export declare type ConnectResult<TProvider extends Provider = Provider> = {
10
10
  account: Data<TProvider>['account'];
11
11
  chain: Data<TProvider>['chain'];
12
12
  connector: Client<TProvider>['connector'];
13
13
  provider: Data<TProvider>['provider'];
14
14
  };
15
- export declare function connect<TProvider extends providers.BaseProvider>({ connector, }: ConnectArgs): Promise<ConnectResult<TProvider>>;
15
+ export declare function connect<TProvider extends Provider = Provider>({ connector, }: ConnectArgs): Promise<ConnectResult<TProvider>>;
16
16
  export {};
@@ -1,7 +1,7 @@
1
- import { providers } from 'ethers';
2
1
  import { Client, Data } from '../../client';
3
- export declare type GetAccountResult<TProvider extends providers.BaseProvider = providers.BaseProvider> = {
2
+ import { Provider } from '../../types';
3
+ export declare type GetAccountResult<TProvider extends Provider = Provider> = {
4
4
  address?: Data<TProvider>['account'];
5
5
  connector?: Client<TProvider>['connector'];
6
6
  };
7
- export declare function getAccount<TProvider extends providers.BaseProvider>(): GetAccountResult<TProvider>;
7
+ export declare function getAccount<TProvider extends Provider>(): GetAccountResult<TProvider>;
@@ -1,13 +1,22 @@
1
- import type { providers } from 'ethers';
2
- declare type SignTypedData = Parameters<providers.JsonRpcSigner['_signTypedData']>;
1
+ import { BigNumberish, BytesLike } from 'ethers';
2
+ export interface TypedDataDomain {
3
+ name?: string;
4
+ version?: string;
5
+ chainId?: BigNumberish;
6
+ verifyingContract?: string;
7
+ salt?: BytesLike;
8
+ }
9
+ export interface TypedDataField {
10
+ name: string;
11
+ type: string;
12
+ }
3
13
  export declare type SignTypedDataArgs = {
4
14
  /** Domain or domain signature for origin or contract */
5
- domain: SignTypedData[0];
15
+ domain: TypedDataDomain;
6
16
  /** Named list of all type definitions */
7
- types: SignTypedData[1];
17
+ types: Record<string, Array<TypedDataField>>;
8
18
  /** Data to sign */
9
- value: SignTypedData[2];
19
+ value: Record<string, any>;
10
20
  };
11
21
  export declare type SignTypedDataResult = string;
12
22
  export declare function signTypedData(args: SignTypedDataArgs): Promise<SignTypedDataResult>;
13
- export {};
@@ -1,4 +1,4 @@
1
- import { providers } from 'ethers';
1
+ import { Provider } from '../../types';
2
2
  import { GetAccountResult } from './getAccount';
3
- export declare type WatchAccountCallback<TProvider extends providers.BaseProvider = providers.BaseProvider> = (data: GetAccountResult<TProvider>) => void;
4
- export declare function watchAccount<TProvider extends providers.BaseProvider>(callback: WatchAccountCallback<TProvider>): () => void;
3
+ export declare type WatchAccountCallback<TProvider extends Provider = Provider> = (data: GetAccountResult<TProvider>) => void;
4
+ export declare function watchAccount<TProvider extends Provider>(callback: WatchAccountCallback<TProvider>): () => void;
@@ -1,7 +1,7 @@
1
- import { providers } from 'ethers';
1
+ import { Provider } from '../../types';
2
2
  export declare type GetProviderArgs = {
3
3
  /** Chain id to use for provider */
4
4
  chainId?: number;
5
5
  };
6
- export declare type GetProviderResult<TProvider extends providers.BaseProvider = providers.BaseProvider> = TProvider;
7
- export declare function getProvider<TProvider extends providers.BaseProvider = providers.BaseProvider>({ chainId }?: GetProviderArgs): GetProviderResult<TProvider>;
6
+ export declare type GetProviderResult<TProvider extends Provider = Provider> = TProvider;
7
+ export declare function getProvider<TProvider extends Provider = Provider>({ chainId, }?: GetProviderArgs): GetProviderResult<TProvider>;
@@ -1,7 +1,7 @@
1
- import { providers } from 'ethers';
1
+ import { WebSocketProvider } from '../../types';
2
2
  export declare type GetWebSocketProviderArgs = {
3
3
  /** Chain id to use for provider */
4
4
  chainId?: number;
5
5
  };
6
- export declare type GetWebSocketProviderResult<TWebSocketProvider extends providers.WebSocketProvider = providers.WebSocketProvider> = TWebSocketProvider | undefined;
7
- export declare function getWebSocketProvider<TWebSocketProvider extends providers.WebSocketProvider = providers.WebSocketProvider>({ chainId, }?: GetWebSocketProviderArgs): GetWebSocketProviderResult<TWebSocketProvider>;
6
+ export declare type GetWebSocketProviderResult<TWebSocketProvider extends WebSocketProvider = WebSocketProvider> = TWebSocketProvider | undefined;
7
+ export declare function getWebSocketProvider<TWebSocketProvider extends WebSocketProvider = WebSocketProvider>({ chainId, }?: GetWebSocketProviderArgs): GetWebSocketProviderResult<TWebSocketProvider>;
@@ -1,4 +1,4 @@
1
- import { providers } from 'ethers';
1
+ import { Provider } from '../../types';
2
2
  import { GetProviderArgs, GetProviderResult } from './getProvider';
3
- export declare type WatchProviderCallback<TProvider extends providers.BaseProvider = providers.BaseProvider> = (provider: GetProviderResult<TProvider>) => void;
4
- export declare function watchProvider<TProvider extends providers.BaseProvider = providers.BaseProvider>(args: GetProviderArgs, callback: WatchProviderCallback<TProvider>): () => void;
3
+ export declare type WatchProviderCallback<TProvider extends Provider = Provider> = (provider: GetProviderResult<TProvider>) => void;
4
+ export declare function watchProvider<TProvider extends Provider = Provider>(args: GetProviderArgs, callback: WatchProviderCallback<TProvider>): () => void;
@@ -1,4 +1,4 @@
1
- import { providers } from 'ethers';
1
+ import { WebSocketProvider } from '../../types';
2
2
  import { GetWebSocketProviderArgs, GetWebSocketProviderResult } from './getWebSocketProvider';
3
- export declare type WatchWebSocketProviderCallback<TWebSocketProvider extends providers.WebSocketProvider = providers.WebSocketProvider> = (webSocketProvider: GetWebSocketProviderResult<TWebSocketProvider>) => void;
4
- export declare function watchWebSocketProvider<TWebSocketProvider extends providers.WebSocketProvider = providers.WebSocketProvider>(args: GetWebSocketProviderArgs, callback: WatchWebSocketProviderCallback<TWebSocketProvider>): () => void;
3
+ export declare type WatchWebSocketProviderCallback<TWebSocketProvider extends WebSocketProvider = WebSocketProvider> = (webSocketProvider: GetWebSocketProviderResult<TWebSocketProvider>) => void;
4
+ export declare function watchWebSocketProvider<TWebSocketProvider extends WebSocketProvider = WebSocketProvider>(args: GetWebSocketProviderArgs, callback: WatchWebSocketProviderCallback<TWebSocketProvider>): () => void;
@@ -0,0 +1,20 @@
1
+ import { providers } from 'ethers';
2
+ import { Chain, ChainProvider, Provider, WebSocketProvider } from '../types';
3
+ export declare type ConfigureChainsConfig = {
4
+ stallTimeout?: number;
5
+ } & ({
6
+ targetQuorum?: number;
7
+ minQuorum?: never;
8
+ } | {
9
+ targetQuorum: number;
10
+ minQuorum?: number;
11
+ });
12
+ export declare function configureChains<TProvider extends Provider = Provider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider, TChain extends Chain = Chain>(defaultChains: TChain[], providers: ChainProvider<TProvider, TWebSocketProvider, TChain>[], { minQuorum, targetQuorum, stallTimeout }?: ConfigureChainsConfig): {
13
+ readonly chains: TChain[];
14
+ readonly provider: ({ chainId }: {
15
+ chainId?: number | undefined;
16
+ }) => TProvider | providers.FallbackProvider;
17
+ readonly webSocketProvider: ({ chainId }: {
18
+ chainId?: number | undefined;
19
+ }) => TWebSocketProvider | undefined;
20
+ };
@@ -0,0 +1,2 @@
1
+ export { configureChains } from './configureChains';
2
+ export type { ConfigureChainsConfig } from './configureChains';
@@ -1,8 +1,8 @@
1
- import { providers } from 'ethers';
2
1
  import { Mutate, StoreApi } from 'zustand/vanilla';
3
2
  import { Connector, ConnectorData } from './connectors';
4
- import { WagmiStorage } from './storage';
5
- export declare type ClientConfig<TProvider extends providers.BaseProvider = providers.BaseProvider, TWebSocketProvider extends providers.WebSocketProvider = providers.WebSocketProvider> = {
3
+ import { ClientStorage } from './storage';
4
+ import { Provider, WebSocketProvider } from './types';
5
+ export declare type ClientConfig<TProvider extends Provider = Provider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider> = {
6
6
  /** Enables reconnecting to last used connector on init */
7
7
  autoConnect?: boolean;
8
8
  /**
@@ -23,14 +23,14 @@ export declare type ClientConfig<TProvider extends providers.BaseProvider = prov
23
23
  * Custom storage for data persistance
24
24
  * @default window.localStorage
25
25
  */
26
- storage?: WagmiStorage;
26
+ storage?: ClientStorage;
27
27
  /** WebSocket interface for connecting to network */
28
28
  webSocketProvider?: ((config: {
29
29
  chainId?: number;
30
30
  }) => TWebSocketProvider | undefined) | TWebSocketProvider;
31
31
  };
32
- export declare type Data<TProvider extends providers.BaseProvider> = ConnectorData<TProvider>;
33
- export declare type State<TProvider extends providers.BaseProvider, TWebSocketProvider extends providers.WebSocketProvider = providers.WebSocketProvider> = {
32
+ export declare type Data<TProvider extends Provider> = ConnectorData<TProvider>;
33
+ export declare type State<TProvider extends Provider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider> = {
34
34
  chains?: Connector['chains'];
35
35
  connector?: Connector;
36
36
  connectors: Connector[];
@@ -40,10 +40,10 @@ export declare type State<TProvider extends providers.BaseProvider, TWebSocketPr
40
40
  status: 'connected' | 'connecting' | 'reconnecting' | 'disconnected';
41
41
  webSocketProvider?: TWebSocketProvider;
42
42
  };
43
- export declare class Client<TProvider extends providers.BaseProvider = providers.BaseProvider, TWebSocketProvider extends providers.WebSocketProvider = providers.WebSocketProvider> {
43
+ export declare class Client<TProvider extends Provider = Provider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider> {
44
44
  #private;
45
45
  config: Partial<ClientConfig<TProvider, TWebSocketProvider>>;
46
- storage: WagmiStorage;
46
+ storage: ClientStorage;
47
47
  store: Mutate<StoreApi<State<TProvider, TWebSocketProvider>>, [
48
48
  [
49
49
  'zustand/subscribeWithSelector',
@@ -54,7 +54,7 @@ export declare class Client<TProvider extends providers.BaseProvider = providers
54
54
  Partial<State<TProvider, TWebSocketProvider>>
55
55
  ]
56
56
  ]>;
57
- constructor(config?: ClientConfig<TProvider, TWebSocketProvider>);
57
+ constructor({ autoConnect, connectors, provider, storage, webSocketProvider, }?: ClientConfig<TProvider, TWebSocketProvider>);
58
58
  get chains(): import("./types").Chain[] | undefined;
59
59
  get connectors(): Connector<any, any>[];
60
60
  get connector(): Connector<any, any> | undefined;
@@ -76,6 +76,6 @@ export declare class Client<TProvider extends providers.BaseProvider = providers
76
76
  autoConnect(): Promise<Data<TProvider> | undefined>;
77
77
  setLastUsedConnector(lastUsedConnector?: string | null): void;
78
78
  }
79
- export declare let client: Client<providers.BaseProvider, providers.WebSocketProvider>;
80
- export declare function createClient<TProvider extends providers.BaseProvider = providers.BaseProvider, TWebSocketProvider extends providers.WebSocketProvider = providers.WebSocketProvider>(config?: ClientConfig<TProvider, TWebSocketProvider>): Client<TProvider, TWebSocketProvider>;
81
- export declare function getClient<TProvider extends providers.BaseProvider = providers.BaseProvider, TWebSocketProvider extends providers.WebSocketProvider = providers.WebSocketProvider>(): Client<TProvider, TWebSocketProvider>;
79
+ export declare let client: Client<Provider, WebSocketProvider>;
80
+ export declare function createClient<TProvider extends Provider = Provider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider>(config?: ClientConfig<TProvider, TWebSocketProvider>): Client<TProvider, TWebSocketProvider>;
81
+ export declare function getClient<TProvider extends Provider = Provider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider>(): Client<TProvider, TWebSocketProvider>;
@@ -17,7 +17,7 @@ export declare class InjectedConnector extends Connector<Window['ethereum'], Inj
17
17
  readonly id: string;
18
18
  readonly name: string;
19
19
  readonly ready: boolean;
20
- constructor(config?: {
20
+ constructor({ chains, options, }?: {
21
21
  chains?: Chain[];
22
22
  options?: InjectedConnectorOptions;
23
23
  });
@@ -5,7 +5,7 @@ export declare class MetaMaskConnector extends InjectedConnector {
5
5
  #private;
6
6
  readonly id = "metaMask";
7
7
  readonly ready: boolean;
8
- constructor(config?: {
8
+ constructor({ chains, options, }?: {
9
9
  chains?: Chain[];
10
10
  options?: MetaMaskConnectorOptions;
11
11
  });
@@ -2,6 +2,6 @@ export { erc20ABI, erc721ABI } from './abis';
2
2
  export { etherscanBlockExplorers } from './blockExplorers';
3
3
  export type { BlockExplorer, BlockExplorerName } from './blockExplorers';
4
4
  export { chain, chainId, allChains, defaultChains, defaultL2Chains, } from './chains';
5
- export { alchemyRpcUrls, infuraRpcUrls } from './rpcs';
5
+ export { alchemyRpcUrls, defaultAlchemyId, infuraRpcUrls, defaultInfuraId, } from './rpcs';
6
6
  export type { RpcProviderName } from './rpcs';
7
7
  export { units } from './units';
@@ -1,3 +1,43 @@
1
+ /**
2
+ * Error subclass implementing JSON RPC 2.0 errors and Ethereum RPC errors per EIP-1474.
3
+ * @see https://eips.ethereum.org/EIPS/eip-1474
4
+ */
5
+ export declare class RpcError<T = undefined> extends Error {
6
+ readonly code: number;
7
+ readonly data?: T;
8
+ readonly internal?: unknown;
9
+ constructor(
10
+ /** Number error code */
11
+ code: number,
12
+ /** Human-readable string */
13
+ message: string,
14
+ /** Low-level error */
15
+ internal?: unknown,
16
+ /** Other useful information about error */
17
+ data?: T);
18
+ }
19
+ /**
20
+ * Error subclass implementing Ethereum Provider errors per EIP-1193.
21
+ * @see https://eips.ethereum.org/EIPS/eip-1193
22
+ */
23
+ export declare class ProviderRpcError<T = undefined> extends RpcError<T> {
24
+ /**
25
+ * Create an Ethereum Provider JSON-RPC error.
26
+ * `code` must be an integer in the 1000 <= 4999 range.
27
+ */
28
+ constructor(
29
+ /**
30
+ * Number error code
31
+ * @see https://eips.ethereum.org/EIPS/eip-1193#error-standards
32
+ */
33
+ code: 4001 | 4100 | 4200 | 4900 | 4901 | 4902,
34
+ /** Human-readable string */
35
+ message: string,
36
+ /** Low-level error */
37
+ internal?: unknown,
38
+ /** Other useful information about error */
39
+ data?: T);
40
+ }
1
41
  export declare class AddChainError extends Error {
2
42
  name: string;
3
43
  message: string;
@@ -14,15 +54,19 @@ export declare class ConnectorNotFoundError extends Error {
14
54
  name: string;
15
55
  message: string;
16
56
  }
17
- export declare class SwitchChainError extends Error {
57
+ export declare class SwitchChainError extends ProviderRpcError {
18
58
  name: string;
19
- message: string;
59
+ constructor(error: unknown);
20
60
  }
21
61
  export declare class SwitchChainNotSupportedError extends Error {
22
62
  name: string;
23
63
  message: string;
24
64
  }
25
- export declare class UserRejectedRequestError extends Error {
65
+ export declare class UserRejectedRequestError extends ProviderRpcError {
26
66
  name: string;
27
- message: string;
67
+ constructor(error: unknown);
68
+ }
69
+ export declare class ResourceUnavailableError extends RpcError {
70
+ name: string;
71
+ constructor(error: unknown);
28
72
  }
@@ -1,12 +1,14 @@
1
1
  export { connect, disconnect, fetchBalance, fetchBlockNumber, fetchEnsAddress, fetchEnsAvatar, fetchEnsName, fetchEnsResolver, fetchFeeData, fetchSigner, fetchToken, getAccount, getContract, getNetwork, getProvider, getWebSocketProvider, readContract, sendTransaction, signMessage, signTypedData, switchNetwork, waitForTransaction, watchAccount, watchBlockNumber, watchContractEvent, watchNetwork, watchProvider, watchReadContract, watchSigner, watchWebSocketProvider, writeContract, } from './actions';
2
2
  export type { ConnectArgs, ConnectResult, FetchBalanceArgs, FetchBalanceResult, FetchBlockNumberArgs, FetchBlockNumberResult, FetchEnsAddressArgs, FetchEnsAddressResult, FetchEnsAvatarArgs, FetchEnsAvatarResult, FetchEnsNameArgs, FetchEnsNameResult, FetchEnsResolverArgs, FetchEnsResolverResult, FetchFeeDataArgs, FetchFeeDataResult, FetchSignerResult, FetchTokenArgs, FetchTokenResult, GetAccountResult, GetContractArgs, GetNetworkResult, GetProviderArgs, GetProviderResult, GetWebSocketProviderArgs, GetWebSocketProviderResult, ReadContractArgs, ReadContractConfig, ReadContractResult, SendTransactionArgs, SendTransactionResult, SignMessageArgs, SignMessageResult, SignTypedDataArgs, SignTypedDataResult, SwitchNetworkArgs, SwitchNetworkResult, WaitForTransactionArgs, WaitForTransactionResult, WatchAccountCallback, WatchBlockNumberArgs, WatchBlockNumberCallback, WatchNetworkCallback, WatchReadContractArgs, WatchReadContractConfig, WatchReadContractResult, WatchSignerCallback, WriteContractArgs, WriteContractConfig, WriteContractResult, } from './actions';
3
- export { createClient, createClient as createWagmiClient, Client, Client as WagmiClient, } from './client';
4
- export type { ClientConfig, ClientConfig as WagmiClientConfig } from './client';
3
+ export { configureChains } from './chains';
4
+ export type { ConfigureChainsConfig } from './chains';
5
+ export { createClient, Client } from './client';
6
+ export type { ClientConfig } from './client';
5
7
  export { Connector, InjectedConnector } from './connectors';
6
8
  export type { ConnectorData, ConnectorEvents } from './connectors';
7
9
  export { alchemyRpcUrls, allChains, chain, chainId, defaultChains, defaultL2Chains, erc20ABI, erc721ABI, etherscanBlockExplorers, infuraRpcUrls, units, } from './constants';
8
- export { AddChainError, ChainNotConfiguredError, ConnectorAlreadyConnectedError, ConnectorNotFoundError, SwitchChainError, SwitchChainNotSupportedError, UserRejectedRequestError, } from './errors';
9
- export { createStorage, createStorage as createWagmiStorage, noopStorage, } from './storage';
10
- export type { WagmiStorage as Storage, WagmiStorage } from './storage';
11
- export type { Chain, Unit } from './types';
10
+ export { AddChainError, ChainNotConfiguredError, ConnectorAlreadyConnectedError, ConnectorNotFoundError, ProviderRpcError, ResourceUnavailableError, RpcError, SwitchChainError, SwitchChainNotSupportedError, UserRejectedRequestError, } from './errors';
11
+ export { createStorage, noopStorage } from './storage';
12
+ export type { ClientStorage as Storage } from './storage';
13
+ export type { Chain, ChainProvider, FallbackProviderConfig, ProviderWithFallbackConfig, Provider, Unit, WebSocketProvider, } from './types';
12
14
  export { normalizeChainId } from './utils';
@@ -0,0 +1,7 @@
1
+ import { providers } from 'ethers';
2
+ import { ChainProvider, FallbackProviderConfig } from '../types';
3
+ export declare type AlchemyProviderConfig = FallbackProviderConfig & {
4
+ alchemyId?: string;
5
+ pollingInterval?: number;
6
+ };
7
+ export declare function alchemyProvider({ alchemyId, pollingInterval, priority, stallTimeout, weight, }?: AlchemyProviderConfig): ChainProvider<providers.AlchemyProvider, providers.AlchemyWebSocketProvider>;
@@ -0,0 +1,7 @@
1
+ import { providers } from 'ethers';
2
+ import { ChainProvider, FallbackProviderConfig } from '../types';
3
+ export declare type InfuraProviderConfig = FallbackProviderConfig & {
4
+ infuraId?: string;
5
+ pollingInterval?: number;
6
+ };
7
+ export declare function infuraProvider({ infuraId, pollingInterval, priority, stallTimeout, weight, }?: InfuraProviderConfig): ChainProvider<providers.InfuraProvider, providers.InfuraWebSocketProvider>;
@@ -0,0 +1,11 @@
1
+ import { providers } from 'ethers';
2
+ import { Chain, ChainProvider, FallbackProviderConfig } from '../types';
3
+ export declare type JsonRpcProviderConfig = FallbackProviderConfig & {
4
+ pollingInterval?: number;
5
+ rpc: (chain: Chain) => {
6
+ http: string;
7
+ webSocket?: string;
8
+ } | null;
9
+ static?: boolean;
10
+ };
11
+ export declare function jsonRpcProvider({ pollingInterval, priority, rpc, stallTimeout, static: static_, weight, }: JsonRpcProviderConfig): ChainProvider<providers.JsonRpcProvider, providers.WebSocketProvider>;
@@ -0,0 +1,6 @@
1
+ import { providers } from 'ethers';
2
+ import { ChainProvider, FallbackProviderConfig } from '../types';
3
+ export declare type PublicProviderConfig = FallbackProviderConfig & {
4
+ pollingInterval?: number;
5
+ };
6
+ export declare function publicProvider({ pollingInterval, priority, stallTimeout, weight, }?: PublicProviderConfig): ChainProvider<providers.StaticJsonRpcProvider>;
@@ -1,5 +1,5 @@
1
1
  declare type BaseStorage = Pick<Storage, 'getItem' | 'setItem' | 'removeItem'>;
2
- export declare type WagmiStorage = {
2
+ export declare type ClientStorage = {
3
3
  getItem: <T>(key: string, defaultState?: T | null) => T | null;
4
4
  setItem: <T>(key: string, value: T | null) => void;
5
5
  removeItem: (key: string) => void;
@@ -8,5 +8,5 @@ export declare const noopStorage: BaseStorage;
8
8
  export declare function createStorage({ storage, key: prefix, }: {
9
9
  storage: BaseStorage;
10
10
  key?: string;
11
- }): WagmiStorage;
11
+ }): ClientStorage;
12
12
  export {};
@@ -1,7 +1,9 @@
1
+ import { providers } from 'ethers';
1
2
  import { BlockExplorer, BlockExplorerName, RpcProviderName, units } from '../constants';
2
3
  export declare type Chain = {
3
4
  id: number;
4
5
  name: AddEthereumChainParameter['chainName'];
6
+ network: string;
5
7
  nativeCurrency?: AddEthereumChainParameter['nativeCurrency'];
6
8
  rpcUrls: {
7
9
  [key in RpcProviderName]?: string;
@@ -17,26 +19,43 @@ export declare type Chain = {
17
19
  };
18
20
  testnet?: boolean;
19
21
  };
22
+ export declare type ChainProvider<TProvider extends Provider = Provider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider, TChain extends Chain = Chain> = (chain: TChain) => {
23
+ chain: TChain;
24
+ provider: () => ProviderWithFallbackConfig<TProvider>;
25
+ webSocketProvider?: () => TWebSocketProvider;
26
+ } | null;
27
+ export declare type FallbackProviderConfig = Omit<providers.FallbackProviderConfig, 'provider'>;
28
+ export declare type ProviderWithFallbackConfig<TProvider extends Provider = Provider> = TProvider & FallbackProviderConfig;
29
+ export declare type Provider = providers.BaseProvider;
30
+ export declare type WebSocketProvider = providers.WebSocketProvider;
20
31
  export declare type Unit = typeof units[number];
21
32
  declare global {
22
33
  type AddEthereumChainParameter = {
34
+ /** A 0x-prefixed hexadecimal string */
23
35
  chainId: string;
24
36
  chainName: string;
25
37
  nativeCurrency?: {
26
38
  name: string;
39
+ /** 2-6 characters long */
27
40
  symbol: string;
28
41
  decimals: number;
29
42
  };
30
43
  rpcUrls: string[];
31
44
  blockExplorerUrls?: string[];
45
+ /** Currently ignored. */
32
46
  iconUrls?: string[];
33
47
  };
34
48
  type WatchAssetParams = {
49
+ /** In the future, other standards will be supported */
35
50
  type: 'ERC20';
36
51
  options: {
52
+ /** Address of token contract */
37
53
  address: string;
54
+ /** Number of token decimals */
38
55
  decimals: number;
56
+ /** String url of token logo */
39
57
  image?: string;
58
+ /** A ticker symbol or shorthand, up to 5 characters */
40
59
  symbol: string;
41
60
  };
42
61
  };
@@ -69,6 +88,18 @@ declare global {
69
88
  on?: (...args: any[]) => void;
70
89
  removeListener?: (...args: any[]) => void;
71
90
  providers?: Ethereum[];
91
+ /**
92
+ * EIP-747: Add wallet_watchAsset to Provider
93
+ * https://eips.ethereum.org/EIPS/eip-747
94
+ */
95
+ request(args: {
96
+ method: 'wallet_watchAsset';
97
+ params: WatchAssetParams;
98
+ }): Promise<boolean>;
99
+ /**
100
+ * EIP-1193: Ethereum Provider JavaScript API
101
+ * https://eips.ethereum.org/EIPS/eip-1193
102
+ */
72
103
  request(args: {
73
104
  method: 'eth_accounts';
74
105
  }): Promise<string[]>;
@@ -78,34 +109,33 @@ declare global {
78
109
  request(args: {
79
110
  method: 'eth_requestAccounts';
80
111
  }): Promise<string[]>;
112
+ /**
113
+ * EIP-1474: Remote procedure call specification
114
+ * https://eips.ethereum.org/EIPS/eip-1474
115
+ */
81
116
  request(args: {
82
- method: 'personal_sign';
83
- params: [string, string];
117
+ method: 'web3_clientVersion';
84
118
  }): Promise<string>;
119
+ /**
120
+ * EIP-3085: Wallet Add Ethereum Chain RPC Method
121
+ * https://eips.ethereum.org/EIPS/eip-3085
122
+ */
85
123
  request(args: {
86
124
  method: 'wallet_addEthereumChain';
87
125
  params: AddEthereumChainParameter[];
88
126
  }): Promise<null>;
127
+ /**
128
+ * EIP-3326: Wallet Switch Ethereum Chain RPC Method
129
+ * https://eips.ethereum.org/EIPS/eip-3326
130
+ */
89
131
  request(args: {
90
132
  method: 'wallet_switchEthereumChain';
91
133
  params: [{
92
134
  chainId: string;
93
135
  }];
94
136
  }): Promise<null>;
95
- request(args: {
96
- method: 'wallet_watchAsset';
97
- params: WatchAssetParams;
98
- }): Promise<boolean>;
99
- request(args: {
100
- method: 'web3_clientVersion';
101
- }): Promise<string>;
102
137
  }
103
138
  interface Window {
104
139
  ethereum?: Ethereum;
105
140
  }
106
- interface ProviderRpcError extends Error {
107
- code: 4001 | 4902;
108
- data?: unknown;
109
- message: string;
110
- }
111
141
  }
@@ -0,0 +1,30 @@
1
+ const defaultAlchemyId = '_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC';
2
+ const defaultInfuraId = '84842078b09946638c03157f83405213';
3
+ const alchemyRpcUrls = {
4
+ mainnet: 'https://eth-mainnet.alchemyapi.io/v2',
5
+ ropsten: 'https://eth-ropsten.alchemyapi.io/v2',
6
+ rinkeby: 'https://eth-rinkeby.alchemyapi.io/v2',
7
+ goerli: 'https://eth-goerli.alchemyapi.io/v2',
8
+ kovan: 'https://eth-kovan.alchemyapi.io/v2',
9
+ optimism: 'https://opt-mainnet.g.alchemy.com/v2',
10
+ optimismKovan: 'https://opt-kovan.g.alchemy.com/v2',
11
+ polygon: 'https://polygon-mainnet.g.alchemy.com/v2',
12
+ polygonMumbai: 'https://polygon-mumbai.g.alchemy.com/v2',
13
+ arbitrum: 'https://arb-mainnet.g.alchemy.com/v2',
14
+ arbitrumRinkeby: 'https://arb-rinkeby.g.alchemy.com/v2'
15
+ };
16
+ const infuraRpcUrls = {
17
+ mainnet: 'https://mainnet.infura.io/v3',
18
+ ropsten: 'https://ropsten.infura.io/v3',
19
+ rinkeby: 'https://rinkeby.infura.io/v3',
20
+ goerli: 'https://goerli.infura.io/v3',
21
+ kovan: 'https://kovan.infura.io/v3',
22
+ optimism: 'https://optimism-mainnet.infura.io/v3',
23
+ optimismKovan: 'https://optimism-kovan.infura.io/v3',
24
+ polygon: 'https://polygon-mainnet.infura.io/v3',
25
+ polygonMumbai: 'https://polygon-mumbai.infura.io/v3',
26
+ arbitrum: 'https://arbitrum-mainnet.infura.io/v3',
27
+ arbitrumRinkeby: 'https://arbitrum-rinkeby.infura.io/v3'
28
+ };
29
+
30
+ export { alchemyRpcUrls as a, defaultInfuraId as b, defaultAlchemyId as d, infuraRpcUrls as i };
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+
3
+ const defaultAlchemyId = '_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC';
4
+ const defaultInfuraId = '84842078b09946638c03157f83405213';
5
+ const alchemyRpcUrls = {
6
+ mainnet: 'https://eth-mainnet.alchemyapi.io/v2',
7
+ ropsten: 'https://eth-ropsten.alchemyapi.io/v2',
8
+ rinkeby: 'https://eth-rinkeby.alchemyapi.io/v2',
9
+ goerli: 'https://eth-goerli.alchemyapi.io/v2',
10
+ kovan: 'https://eth-kovan.alchemyapi.io/v2',
11
+ optimism: 'https://opt-mainnet.g.alchemy.com/v2',
12
+ optimismKovan: 'https://opt-kovan.g.alchemy.com/v2',
13
+ polygon: 'https://polygon-mainnet.g.alchemy.com/v2',
14
+ polygonMumbai: 'https://polygon-mumbai.g.alchemy.com/v2',
15
+ arbitrum: 'https://arb-mainnet.g.alchemy.com/v2',
16
+ arbitrumRinkeby: 'https://arb-rinkeby.g.alchemy.com/v2'
17
+ };
18
+ const infuraRpcUrls = {
19
+ mainnet: 'https://mainnet.infura.io/v3',
20
+ ropsten: 'https://ropsten.infura.io/v3',
21
+ rinkeby: 'https://rinkeby.infura.io/v3',
22
+ goerli: 'https://goerli.infura.io/v3',
23
+ kovan: 'https://kovan.infura.io/v3',
24
+ optimism: 'https://optimism-mainnet.infura.io/v3',
25
+ optimismKovan: 'https://optimism-kovan.infura.io/v3',
26
+ polygon: 'https://polygon-mainnet.infura.io/v3',
27
+ polygonMumbai: 'https://polygon-mumbai.infura.io/v3',
28
+ arbitrum: 'https://arbitrum-mainnet.infura.io/v3',
29
+ arbitrumRinkeby: 'https://arbitrum-rinkeby.infura.io/v3'
30
+ };
31
+
32
+ exports.alchemyRpcUrls = alchemyRpcUrls;
33
+ exports.defaultAlchemyId = defaultAlchemyId;
34
+ exports.defaultInfuraId = defaultInfuraId;
35
+ exports.infuraRpcUrls = infuraRpcUrls;
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+
3
+ const defaultAlchemyId = '_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC';
4
+ const defaultInfuraId = '84842078b09946638c03157f83405213';
5
+ const alchemyRpcUrls = {
6
+ mainnet: 'https://eth-mainnet.alchemyapi.io/v2',
7
+ ropsten: 'https://eth-ropsten.alchemyapi.io/v2',
8
+ rinkeby: 'https://eth-rinkeby.alchemyapi.io/v2',
9
+ goerli: 'https://eth-goerli.alchemyapi.io/v2',
10
+ kovan: 'https://eth-kovan.alchemyapi.io/v2',
11
+ optimism: 'https://opt-mainnet.g.alchemy.com/v2',
12
+ optimismKovan: 'https://opt-kovan.g.alchemy.com/v2',
13
+ polygon: 'https://polygon-mainnet.g.alchemy.com/v2',
14
+ polygonMumbai: 'https://polygon-mumbai.g.alchemy.com/v2',
15
+ arbitrum: 'https://arb-mainnet.g.alchemy.com/v2',
16
+ arbitrumRinkeby: 'https://arb-rinkeby.g.alchemy.com/v2'
17
+ };
18
+ const infuraRpcUrls = {
19
+ mainnet: 'https://mainnet.infura.io/v3',
20
+ ropsten: 'https://ropsten.infura.io/v3',
21
+ rinkeby: 'https://rinkeby.infura.io/v3',
22
+ goerli: 'https://goerli.infura.io/v3',
23
+ kovan: 'https://kovan.infura.io/v3',
24
+ optimism: 'https://optimism-mainnet.infura.io/v3',
25
+ optimismKovan: 'https://optimism-kovan.infura.io/v3',
26
+ polygon: 'https://polygon-mainnet.infura.io/v3',
27
+ polygonMumbai: 'https://polygon-mumbai.infura.io/v3',
28
+ arbitrum: 'https://arbitrum-mainnet.infura.io/v3',
29
+ arbitrumRinkeby: 'https://arbitrum-rinkeby.infura.io/v3'
30
+ };
31
+
32
+ exports.alchemyRpcUrls = alchemyRpcUrls;
33
+ exports.defaultAlchemyId = defaultAlchemyId;
34
+ exports.defaultInfuraId = defaultInfuraId;
35
+ exports.infuraRpcUrls = infuraRpcUrls;