@wagmi/core 0.2.0-next.7 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +30 -0
  3. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +135 -154
  4. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +135 -154
  5. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +136 -155
  6. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +98 -152
  7. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +98 -152
  8. package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +98 -152
  9. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +91 -126
  10. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +91 -126
  11. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +91 -126
  12. package/dist/base-30d4fad4.cjs.prod.js +544 -0
  13. package/dist/base-a0d63eb0.cjs.dev.js +544 -0
  14. package/dist/base-f0102d32.esm.js +517 -0
  15. package/dist/{classPrivateMethodGet-0e9a7925.cjs.prod.js → classPrivateMethodGet-656c08a7.cjs.prod.js} +1 -1
  16. package/dist/{classPrivateMethodGet-38b54c7a.cjs.dev.js → classPrivateMethodGet-9b9cd39b.cjs.dev.js} +1 -1
  17. package/dist/{classPrivateMethodGet-c9db96d6.esm.js → classPrivateMethodGet-e0eaacfc.esm.js} +1 -1
  18. package/dist/declarations/src/actions/accounts/connect.d.ts +14 -5
  19. package/dist/declarations/src/actions/accounts/fetchBalance.d.ts +3 -1
  20. package/dist/declarations/src/actions/accounts/fetchSigner.d.ts +1 -1
  21. package/dist/declarations/src/actions/accounts/getAccount.d.ts +5 -4
  22. package/dist/declarations/src/actions/accounts/index.d.ts +1 -2
  23. package/dist/declarations/src/actions/accounts/switchNetwork.d.ts +1 -1
  24. package/dist/declarations/src/actions/accounts/watchAccount.d.ts +3 -2
  25. package/dist/declarations/src/actions/contracts/readContract.d.ts +4 -1
  26. package/dist/declarations/src/actions/contracts/watchContractEvent.d.ts +3 -1
  27. package/dist/declarations/src/actions/ens/fetchEnsAddress.d.ts +3 -1
  28. package/dist/declarations/src/actions/ens/fetchEnsAvatar.d.ts +3 -1
  29. package/dist/declarations/src/actions/ens/fetchEnsName.d.ts +3 -1
  30. package/dist/declarations/src/actions/ens/fetchEnsResolver.d.ts +3 -1
  31. package/dist/declarations/src/actions/ens/index.d.ts +0 -4
  32. package/dist/declarations/src/actions/index.d.ts +5 -5
  33. package/dist/declarations/src/actions/network-status/fetchBlockNumber.d.ts +4 -1
  34. package/dist/declarations/src/actions/network-status/fetchFeeData.d.ts +3 -1
  35. package/dist/declarations/src/actions/network-status/index.d.ts +1 -2
  36. package/dist/declarations/src/actions/providers/getProvider.d.ts +6 -2
  37. package/dist/declarations/src/actions/providers/getWebSocketProvider.d.ts +6 -2
  38. package/dist/declarations/src/actions/providers/index.d.ts +2 -2
  39. package/dist/declarations/src/actions/providers/watchProvider.d.ts +4 -3
  40. package/dist/declarations/src/actions/providers/watchWebSocketProvider.d.ts +4 -3
  41. package/dist/declarations/src/actions/tokens/fetchToken.d.ts +6 -10
  42. package/dist/declarations/src/actions/tokens/index.d.ts +0 -1
  43. package/dist/declarations/src/actions/transactions/waitForTransaction.d.ts +3 -1
  44. package/dist/declarations/src/client.d.ts +23 -22
  45. package/dist/declarations/src/connectors/base.d.ts +3 -1
  46. package/dist/declarations/src/connectors/coinbaseWallet.d.ts +9 -0
  47. package/dist/declarations/src/connectors/injected.d.ts +2 -10
  48. package/dist/declarations/src/connectors/mock/connector.d.ts +1 -1
  49. package/dist/declarations/src/connectors/mock/provider.d.ts +2 -0
  50. package/dist/declarations/src/constants/abis.d.ts +2 -0
  51. package/dist/declarations/src/constants/blockExplorers.d.ts +9 -0
  52. package/dist/declarations/src/constants/chains.d.ts +17 -6
  53. package/dist/declarations/src/constants/index.d.ts +6 -2
  54. package/dist/declarations/src/constants/rpcs.d.ts +9 -0
  55. package/dist/declarations/src/index.d.ts +9 -6
  56. package/dist/declarations/src/types/index.d.ts +77 -6
  57. package/dist/declarations/src/utils/getInjectedName.d.ts +1 -1
  58. package/dist/wagmi-core.cjs.dev.js +658 -1153
  59. package/dist/wagmi-core.cjs.prod.js +658 -1153
  60. package/dist/wagmi-core.esm.js +653 -1147
  61. package/package.json +17 -9
  62. package/dist/base-09a653f3.cjs.dev.js +0 -453
  63. package/dist/base-824c3b6d.esm.js +0 -430
  64. package/dist/base-d8123d5f.cjs.prod.js +0 -453
  65. package/dist/declarations/src/actions/accounts/watchBalance.d.ts +0 -3
  66. package/dist/declarations/src/actions/ens/watchEnsAddress.d.ts +0 -3
  67. package/dist/declarations/src/actions/ens/watchEnsAvatar.d.ts +0 -3
  68. package/dist/declarations/src/actions/ens/watchEnsName.d.ts +0 -3
  69. package/dist/declarations/src/actions/ens/watchEnsResolver.d.ts +0 -3
  70. package/dist/declarations/src/actions/network-status/watchFeeData.d.ts +0 -7
  71. package/dist/declarations/src/actions/tokens/watchToken.d.ts +0 -3
  72. package/dist/declarations/src/constants/abis/erc1155.d.ts +0 -17
  73. package/dist/declarations/src/constants/abis/erc20.d.ts +0 -38
  74. package/dist/declarations/src/constants/abis/erc721.d.ts +0 -15
  75. package/dist/declarations/src/constants/abis/index.d.ts +0 -3
  76. package/dist/declarations/src/types/declarations.d.ts +0 -52
@@ -1,7 +1,9 @@
1
1
  import type { Resolver } from '@ethersproject/providers';
2
2
  export declare type FetchEnsResolverArgs = {
3
+ /** Chain id to use for provider */
4
+ chainId?: number;
3
5
  /** ENS name to resolve */
4
6
  name: string;
5
7
  };
6
8
  export declare type FetchEnsResolverResult = Resolver | null;
7
- export declare function fetchEnsResolver({ name, }: FetchEnsResolverArgs): Promise<FetchEnsResolverResult>;
9
+ export declare function fetchEnsResolver({ chainId, name, }: FetchEnsResolverArgs): Promise<FetchEnsResolverResult>;
@@ -2,7 +2,3 @@ export { fetchEnsAddress, type FetchEnsAddressArgs, type FetchEnsAddressResult,
2
2
  export { fetchEnsAvatar, type FetchEnsAvatarArgs, type FetchEnsAvatarResult, } from './fetchEnsAvatar';
3
3
  export { fetchEnsName, type FetchEnsNameArgs, type FetchEnsNameResult, } from './fetchEnsName';
4
4
  export { fetchEnsResolver, type FetchEnsResolverArgs, type FetchEnsResolverResult, } from './fetchEnsResolver';
5
- export { watchEnsAddress, type WatchEnsAddressCallback, } from './watchEnsAddress';
6
- export { type WatchEnsAvatarCallback, watchEnsAvatar } from './watchEnsAvatar';
7
- export { type WatchEnsNameCallback, watchEnsName } from './watchEnsName';
8
- export { watchEnsResolver, type WatchEnsResolverCallback, } from './watchEnsResolver';
@@ -1,7 +1,7 @@
1
- export { connect, disconnect, fetchBalance, fetchSigner, getAccount, getNetwork, signMessage, signTypedData, switchNetwork, watchAccount, watchBalance, watchNetwork, watchSigner, type ConnectResult, type FetchBalanceArgs, type FetchBalanceResult, type FetchSignerResult, type GetAccountResult, type GetNetworkResult, type SignMessageArgs, type SignMessageResult, type SignTypedDataArgs, type SignTypedDataResult, type SwitchNetworkArgs, type SwitchNetworkResult, type WatchAccountCallback, type WatchBalanceCallback, type WatchNetworkCallback, type WatchSignerCallback, } from './accounts';
1
+ export { connect, disconnect, fetchBalance, fetchSigner, getAccount, getNetwork, signMessage, signTypedData, switchNetwork, watchAccount, watchNetwork, watchSigner, type ConnectArgs, type ConnectResult, type FetchBalanceArgs, type FetchBalanceResult, type FetchSignerResult, type GetAccountResult, type GetNetworkResult, type SignMessageArgs, type SignMessageResult, type SignTypedDataArgs, type SignTypedDataResult, type SwitchNetworkArgs, type SwitchNetworkResult, type WatchAccountCallback, type WatchNetworkCallback, type WatchSignerCallback, } from './accounts';
2
2
  export { getContract, readContract, watchContractEvent, watchReadContract, writeContract, type GetContractArgs, type ReadContractArgs, type ReadContractConfig, type ReadContractResult, type WatchReadContractArgs, type WatchReadContractConfig, type WatchReadContractResult, type WriteContractArgs, type WriteContractConfig, type WriteContractResult, } from './contracts';
3
- export { fetchEnsAddress, fetchEnsAvatar, fetchEnsName, fetchEnsResolver, watchEnsAddress, watchEnsAvatar, watchEnsName, watchEnsResolver, type FetchEnsAddressArgs, type FetchEnsAddressResult, type FetchEnsAvatarArgs, type FetchEnsAvatarResult, type FetchEnsNameArgs, type FetchEnsNameResult, type FetchEnsResolverArgs, type FetchEnsResolverResult, type WatchEnsAddressCallback, type WatchEnsAvatarCallback, type WatchEnsNameCallback, type WatchEnsResolverCallback, } from './ens';
4
- export { fetchBlockNumber, fetchFeeData, watchBlockNumber, watchFeeData, type FetchBlockNumberResult, type FetchFeeDataArgs, type FetchFeeDataResult, type WatchBlockNumberArgs, type WatchBlockNumberCallback, type WatchFeeDataArgs, type WatchFeeDataCallback, } from './network-status';
5
- export { getProvider, getWebSocketProvider, watchProvider, watchWebSocketProvider, type GetProviderResult, type GetWebSocketProviderResult, type WatchProviderCallback, type WatchWebSocketProviderCallback, } from './providers';
6
- export { fetchToken, watchToken, type FetchTokenArgs, type FetchTokenResult, type WatchTokenCallback, } from './tokens';
3
+ export { fetchEnsAddress, fetchEnsAvatar, fetchEnsName, fetchEnsResolver, type FetchEnsAddressArgs, type FetchEnsAddressResult, type FetchEnsAvatarArgs, type FetchEnsAvatarResult, type FetchEnsNameArgs, type FetchEnsNameResult, type FetchEnsResolverArgs, type FetchEnsResolverResult, } from './ens';
4
+ export { fetchBlockNumber, fetchFeeData, watchBlockNumber, type FetchBlockNumberArgs, type FetchBlockNumberResult, type FetchFeeDataArgs, type FetchFeeDataResult, type WatchBlockNumberArgs, type WatchBlockNumberCallback, } from './network-status';
5
+ export { getProvider, getWebSocketProvider, watchProvider, watchWebSocketProvider, type GetProviderArgs, type GetProviderResult, type GetWebSocketProviderArgs, type GetWebSocketProviderResult, type WatchProviderCallback, type WatchWebSocketProviderCallback, } from './providers';
6
+ export { fetchToken, type FetchTokenArgs, type FetchTokenResult, } from './tokens';
7
7
  export { sendTransaction, waitForTransaction, type SendTransactionArgs, type SendTransactionResult, type WaitForTransactionArgs, type WaitForTransactionResult, } from './transactions';
@@ -1,2 +1,5 @@
1
+ export declare type FetchBlockNumberArgs = {
2
+ chainId?: number;
3
+ };
1
4
  export declare type FetchBlockNumberResult = number;
2
- export declare function fetchBlockNumber(): Promise<number>;
5
+ export declare function fetchBlockNumber({ chainId, }?: FetchBlockNumberArgs): Promise<FetchBlockNumberResult>;
@@ -3,6 +3,8 @@ import { Unit } from '../../types';
3
3
  export declare type FetchFeeDataArgs = {
4
4
  /** Units for formatting output */
5
5
  formatUnits?: Unit | number;
6
+ /** Chain id to use for provider */
7
+ chainId?: number;
6
8
  };
7
9
  export declare type FetchFeeDataResult = FeeData & {
8
10
  formatted: {
@@ -11,4 +13,4 @@ export declare type FetchFeeDataResult = FeeData & {
11
13
  maxPriorityFeePerGas: string;
12
14
  };
13
15
  };
14
- export declare function fetchFeeData({ formatUnits: units, }?: FetchFeeDataArgs): Promise<FetchFeeDataResult>;
16
+ export declare function fetchFeeData({ chainId, formatUnits: units, }?: FetchFeeDataArgs): Promise<FetchFeeDataResult>;
@@ -1,4 +1,3 @@
1
- export { fetchBlockNumber, type FetchBlockNumberResult, } from './fetchBlockNumber';
1
+ export { fetchBlockNumber, type FetchBlockNumberArgs, type FetchBlockNumberResult, } from './fetchBlockNumber';
2
2
  export { fetchFeeData, type FetchFeeDataResult, type FetchFeeDataArgs, } from './fetchFeeData';
3
- export { watchFeeData, type WatchFeeDataArgs, type WatchFeeDataCallback, } from './watchFeeData';
4
3
  export { watchBlockNumber, type WatchBlockNumberArgs, type WatchBlockNumberCallback, } from './watchBlockNumber';
@@ -1,3 +1,7 @@
1
1
  import type { BaseProvider } from '@ethersproject/providers';
2
- export declare type GetProviderResult = BaseProvider;
3
- export declare function getProvider(): GetProviderResult;
2
+ export declare type GetProviderArgs = {
3
+ /** Chain id to use for provider */
4
+ chainId?: number;
5
+ };
6
+ export declare type GetProviderResult<TProvider extends BaseProvider = BaseProvider> = TProvider;
7
+ export declare function getProvider<TProvider extends BaseProvider = BaseProvider>({ chainId, }?: GetProviderArgs): GetProviderResult<TProvider>;
@@ -1,3 +1,7 @@
1
1
  import type { WebSocketProvider } from '@ethersproject/providers';
2
- export declare type GetWebSocketProviderResult = WebSocketProvider | undefined;
3
- export declare function getWebSocketProvider(): GetWebSocketProviderResult;
2
+ export declare type GetWebSocketProviderArgs = {
3
+ /** Chain id to use for provider */
4
+ chainId?: number;
5
+ };
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
- export { getProvider, type GetProviderResult } from './getProvider';
2
- export { getWebSocketProvider, type GetWebSocketProviderResult, } from './getWebSocketProvider';
1
+ export { getProvider, type GetProviderArgs, type GetProviderResult, } from './getProvider';
2
+ export { getWebSocketProvider, type GetWebSocketProviderArgs, type GetWebSocketProviderResult, } from './getWebSocketProvider';
3
3
  export { watchProvider, type WatchProviderCallback } from './watchProvider';
4
4
  export { watchWebSocketProvider, type WatchWebSocketProviderCallback, } from './watchWebSocketProvider';
@@ -1,3 +1,4 @@
1
- import { GetProviderResult } from './getProvider';
2
- export declare type WatchProviderCallback = (provider: GetProviderResult) => void;
3
- export declare function watchProvider(callback: WatchProviderCallback): () => void;
1
+ import type { BaseProvider } from '@ethersproject/providers';
2
+ import { GetProviderArgs, GetProviderResult } from './getProvider';
3
+ export declare type WatchProviderCallback<TProvider extends BaseProvider = BaseProvider> = (provider: GetProviderResult<TProvider>) => void;
4
+ export declare function watchProvider<TProvider extends BaseProvider = BaseProvider>(args: GetProviderArgs, callback: WatchProviderCallback<TProvider>): () => void;
@@ -1,3 +1,4 @@
1
- import { GetWebSocketProviderResult } from './getWebSocketProvider';
2
- export declare type WatchWebSocketProviderCallback = (webSocketProvider: GetWebSocketProviderResult) => void;
3
- export declare function watchWebSocketProvider(callback: WatchWebSocketProviderCallback): () => void;
1
+ import type { WebSocketProvider } from '@ethersproject/providers';
2
+ import { GetWebSocketProviderArgs, GetWebSocketProviderResult } from './getWebSocketProvider';
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;
@@ -1,7 +1,11 @@
1
1
  import { BigNumber } from 'ethers/lib/ethers';
2
2
  import { Unit } from '../../types';
3
3
  export declare type FetchTokenArgs = {
4
- address?: string;
4
+ /** Address of ERC-20 token */
5
+ address: string;
6
+ /** Chain id to use for provider */
7
+ chainId?: number;
8
+ /** Units for formatting output */
5
9
  formatUnits?: Unit | number;
6
10
  };
7
11
  export declare type FetchTokenResult = {
@@ -13,12 +17,4 @@ export declare type FetchTokenResult = {
13
17
  value: BigNumber;
14
18
  };
15
19
  };
16
- export declare function fetchToken({ address, formatUnits: units, }: FetchTokenArgs): Promise<{
17
- address: string;
18
- decimals: any;
19
- symbol: any;
20
- totalSupply: {
21
- formatted: string;
22
- value: any;
23
- };
24
- }>;
20
+ export declare function fetchToken({ address, chainId, formatUnits: units, }: FetchTokenArgs): Promise<FetchTokenResult>;
@@ -1,2 +1 @@
1
1
  export { fetchToken, type FetchTokenArgs, type FetchTokenResult, } from './fetchToken';
2
- export { watchToken, type WatchTokenCallback } from './watchToken';
@@ -1,5 +1,7 @@
1
1
  import type { TransactionReceipt, TransactionResponse } from '@ethersproject/providers';
2
2
  export declare type WaitForTransactionArgs = {
3
+ /** Chain id to use for provider */
4
+ chainId?: number;
3
5
  /**
4
6
  * Number of blocks to wait for after transaction is mined
5
7
  * @default 1
@@ -12,4 +14,4 @@ export declare type WaitForTransactionArgs = {
12
14
  wait?: TransactionResponse['wait'];
13
15
  };
14
16
  export declare type WaitForTransactionResult = TransactionReceipt;
15
- export declare function waitForTransaction(args: WaitForTransactionArgs): Promise<WaitForTransactionResult>;
17
+ export declare function waitForTransaction({ chainId, confirmations, hash, timeout, wait: wait_, }: WaitForTransactionArgs): Promise<WaitForTransactionResult>;
@@ -2,7 +2,7 @@ import type { BaseProvider, WebSocketProvider } from '@ethersproject/providers';
2
2
  import { Mutate, StoreApi } from 'zustand/vanilla';
3
3
  import { Connector, ConnectorData } from './connectors';
4
4
  import { WagmiStorage } from './storage';
5
- export declare type ClientConfig = {
5
+ export declare type ClientConfig<TProvider extends BaseProvider = BaseProvider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider> = {
6
6
  /** Enables reconnecting to last used connector on init */
7
7
  autoConnect?: boolean;
8
8
  /**
@@ -18,7 +18,7 @@ export declare type ClientConfig = {
18
18
  */
19
19
  provider?: ((config: {
20
20
  chainId?: number;
21
- }) => BaseProvider) | BaseProvider;
21
+ }) => TProvider) | TProvider;
22
22
  /**
23
23
  * Custom storage for data persistance
24
24
  * @default window.localStorage
@@ -27,54 +27,55 @@ export declare type ClientConfig = {
27
27
  /** WebSocket interface for connecting to network */
28
28
  webSocketProvider?: ((config: {
29
29
  chainId?: number;
30
- }) => WebSocketProvider | undefined) | WebSocketProvider;
30
+ }) => TWebSocketProvider | undefined) | TWebSocketProvider;
31
31
  };
32
- export declare type Data = ConnectorData<BaseProvider>;
33
- export declare type State = {
32
+ export declare type Data<TProvider extends BaseProvider> = ConnectorData<TProvider>;
33
+ export declare type State<TProvider extends BaseProvider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider> = {
34
34
  chains?: Connector['chains'];
35
35
  connector?: Connector;
36
36
  connectors: Connector[];
37
- data?: Data;
37
+ data?: Data<TProvider>;
38
38
  error?: Error;
39
- provider: BaseProvider;
39
+ provider: TProvider;
40
40
  status: 'connected' | 'connecting' | 'reconnecting' | 'disconnected';
41
- webSocketProvider?: WebSocketProvider;
41
+ webSocketProvider?: TWebSocketProvider;
42
42
  };
43
- export declare class Client {
43
+ export declare class Client<TProvider extends BaseProvider = BaseProvider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider> {
44
44
  #private;
45
- config: Partial<ClientConfig>;
45
+ config: Partial<ClientConfig<TProvider, TWebSocketProvider>>;
46
46
  storage: WagmiStorage;
47
- store: Mutate<StoreApi<State>, [
47
+ store: Mutate<StoreApi<State<TProvider, TWebSocketProvider>>, [
48
48
  [
49
49
  'zustand/subscribeWithSelector',
50
50
  never
51
51
  ],
52
52
  [
53
53
  'zustand/persist',
54
- Partial<State>
54
+ Partial<State<TProvider, TWebSocketProvider>>
55
55
  ]
56
56
  ]>;
57
- constructor({ autoConnect, connectors, provider, storage, webSocketProvider, }?: ClientConfig);
57
+ constructor(config?: 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;
61
- get data(): Data | undefined;
61
+ get data(): Data<TProvider> | undefined;
62
62
  get error(): Error | undefined;
63
- get provider(): BaseProvider;
63
+ get provider(): TProvider;
64
64
  get status(): "connecting" | "connected" | "reconnecting" | "disconnected";
65
65
  get subscribe(): {
66
- (listener: (selectedState: State, previousSelectedState: State) => void): () => void;
67
- <U>(selector: (state: State) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
66
+ (listener: (selectedState: State<TProvider, TWebSocketProvider>, previousSelectedState: State<TProvider, TWebSocketProvider>) => void): () => void;
67
+ <U>(selector: (state: State<TProvider, TWebSocketProvider>) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
68
68
  equalityFn?: ((a: U, b: U) => boolean) | undefined;
69
69
  fireImmediately?: boolean | undefined;
70
70
  } | undefined): () => void;
71
71
  };
72
- get webSocketProvider(): WebSocketProvider | undefined;
73
- setState(updater: State | ((state: State) => State)): void;
72
+ get webSocketProvider(): TWebSocketProvider | undefined;
73
+ setState(updater: State<TProvider, TWebSocketProvider> | ((state: State<TProvider, TWebSocketProvider>) => State<TProvider, TWebSocketProvider>)): void;
74
74
  clearState(): void;
75
75
  destroy(): Promise<void>;
76
- autoConnect(): Promise<Data | undefined>;
76
+ autoConnect(): Promise<Data<TProvider> | undefined>;
77
77
  setLastUsedConnector(lastUsedConnector?: string | null): void;
78
78
  }
79
- export declare let client: Client;
80
- export declare function createClient(config?: ClientConfig): Client;
79
+ export declare let client: Client<BaseProvider, WebSocketProvider>;
80
+ export declare function createClient<TProvider extends BaseProvider = BaseProvider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider>(config?: ClientConfig<TProvider, TWebSocketProvider>): Client<TProvider, TWebSocketProvider>;
81
+ export declare function getClient<TProvider extends BaseProvider = BaseProvider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider>(): Client<TProvider, TWebSocketProvider>;
@@ -34,7 +34,7 @@ export declare abstract class Connector<Provider = any, Options = any> extends E
34
34
  chains?: Chain[];
35
35
  options: Options;
36
36
  });
37
- abstract connect(): Promise<ConnectorData>;
37
+ abstract connect(): Promise<Required<ConnectorData>>;
38
38
  abstract disconnect(): Promise<void>;
39
39
  abstract getAccount(): Promise<string>;
40
40
  abstract getChainId(): Promise<number>;
@@ -50,5 +50,7 @@ export declare abstract class Connector<Provider = any, Options = any> extends E
50
50
  protected abstract onAccountsChanged(accounts: string[]): void;
51
51
  protected abstract onChainChanged(chain: number | string): void;
52
52
  protected abstract onDisconnect(error: Error): void;
53
+ protected getBlockExplorerUrls(chain: Chain): any[];
54
+ protected getRpcUrls(chain: Chain): string[];
53
55
  protected isChainUnsupported(chainId: number): boolean;
54
56
  }
@@ -4,7 +4,16 @@ import type { CoinbaseWalletSDKOptions } from '@coinbase/wallet-sdk/dist/Coinbas
4
4
  import { Chain } from '../types';
5
5
  import { Connector } from './base';
6
6
  declare type Options = CoinbaseWalletSDKOptions & {
7
+ /**
8
+ * Fallback Ethereum JSON RPC URL
9
+ * @default ""
10
+ */
7
11
  jsonRpcUrl?: string;
12
+ /**
13
+ * Fallback Ethereum Chain ID
14
+ * @default 1
15
+ */
16
+ chainId?: number;
8
17
  };
9
18
  export declare class CoinbaseWalletConnector extends Connector<CoinbaseWalletProvider, Options> {
10
19
  #private;
@@ -25,20 +25,12 @@ export declare class InjectedConnector extends Connector<Window['ethereum'], Inj
25
25
  id: number;
26
26
  unsupported: boolean;
27
27
  };
28
- provider: InjectedProviders & {
29
- on?: ((...args: any[]) => void) | undefined;
30
- removeListener?: ((...args: any[]) => void) | undefined;
31
- request<T = any>(args: RequestArguments): Promise<T>;
32
- };
28
+ provider: Ethereum;
33
29
  }>;
34
30
  disconnect(): Promise<void>;
35
31
  getAccount(): Promise<string>;
36
32
  getChainId(): Promise<number>;
37
- getProvider(): Promise<(InjectedProviders & {
38
- on?: ((...args: any[]) => void) | undefined;
39
- removeListener?: ((...args: any[]) => void) | undefined;
40
- request<T = any>(args: RequestArguments): Promise<T>;
41
- }) | undefined>;
33
+ getProvider(): Promise<Ethereum | undefined>;
42
34
  getSigner(): Promise<providers.JsonRpcSigner>;
43
35
  isAuthorized(): Promise<boolean>;
44
36
  switchChain(chainId: number): Promise<Chain>;
@@ -7,7 +7,7 @@ export declare class MockConnector extends Connector<MockProvider, MockProviderO
7
7
  readonly name = "Mock";
8
8
  readonly ready = true;
9
9
  constructor(config: {
10
- chains: Chain[];
10
+ chains?: Chain[];
11
11
  options: MockProviderOptions;
12
12
  });
13
13
  connect(): Promise<{
@@ -4,8 +4,10 @@ import type { Listener } from '@ethersproject/providers';
4
4
  import { providers } from 'ethers';
5
5
  export declare type MockProviderOptions = {
6
6
  flags?: {
7
+ isAuthorized?: boolean;
7
8
  failConnect?: boolean;
8
9
  failSwitchChain?: boolean;
10
+ noSwitchChain?: boolean;
9
11
  };
10
12
  network?: number | string;
11
13
  signer: Signer;
@@ -0,0 +1,2 @@
1
+ export declare const erc20ABI: string[];
2
+ export declare const erc721ABI: string[];
@@ -0,0 +1,9 @@
1
+ import { ChainName } from './chains';
2
+ export declare type BlockExplorerName = 'etherscan';
3
+ export declare type BlockExplorer = {
4
+ name: string;
5
+ url: string;
6
+ };
7
+ declare type EtherscanChains = Extract<ChainName, 'mainnet' | 'ropsten' | 'rinkeby' | 'goerli' | 'kovan' | 'optimism' | 'optimismKovan' | 'polygon' | 'polygonMumbai' | 'arbitrum' | 'arbitrumRinkeby'>;
8
+ export declare const etherscanBlockExplorers: Record<EtherscanChains, BlockExplorer>;
9
+ export {};
@@ -1,10 +1,21 @@
1
1
  import { Chain } from '../types';
2
- declare type ChainName = 'arbitrumOne' | 'arbitrumRinkeby' | 'avalanche' | 'avalancheFuji' | 'goerli' | 'hardhat' | 'kovan' | 'localhost' | 'mainnet' | 'optimism' | 'optimismKovan' | 'polygonMainnet' | 'polygonTestnetMumbai' | 'rinkeby' | 'ropsten';
3
- /**
4
- * Data from Chainlist
5
- * @see https://chainlist.org
6
- */
2
+ export declare type ChainName = 'arbitrum' | 'arbitrumRinkeby' | 'goerli' | 'hardhat' | 'kovan' | 'localhost' | 'mainnet' | 'optimism' | 'optimismKovan' | 'polygon' | 'polygonMumbai' | 'rinkeby' | 'ropsten';
3
+ export declare const chainId: {
4
+ readonly mainnet: 1;
5
+ readonly ropsten: 3;
6
+ readonly rinkeby: 4;
7
+ readonly goerli: 5;
8
+ readonly kovan: 42;
9
+ readonly optimism: 10;
10
+ readonly optimismKovan: 69;
11
+ readonly polygon: 137;
12
+ readonly polygonMumbai: 80001;
13
+ readonly arbitrum: 42161;
14
+ readonly arbitrumRinkeby: 421611;
15
+ readonly localhost: 1337;
16
+ readonly hardhat: 31337;
17
+ };
7
18
  export declare const chain: Record<ChainName, Chain>;
8
19
  export declare const allChains: Chain[];
9
20
  export declare const defaultChains: Chain[];
10
- export {};
21
+ export declare const defaultL2Chains: Chain[];
@@ -1,3 +1,7 @@
1
- export { erc1155ABI, erc20ABI, erc721ABI } from './abis';
2
- export { chain, allChains, defaultChains } from './chains';
1
+ export { erc20ABI, erc721ABI } from './abis';
2
+ export { etherscanBlockExplorers } from './blockExplorers';
3
+ export type { BlockExplorer, BlockExplorerName } from './blockExplorers';
4
+ export { chain, chainId, allChains, defaultChains, defaultL2Chains, } from './chains';
5
+ export { alchemyRpcUrls, infuraRpcUrls } from './rpcs';
6
+ export type { RpcProviderName } from './rpcs';
3
7
  export { units } from './units';
@@ -0,0 +1,9 @@
1
+ import { ChainName } from './chains';
2
+ export declare const defaultAlchemyId = "_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC";
3
+ export declare const defaultInfuraId = "84842078b09946638c03157f83405213";
4
+ export declare type RpcProviderName = 'alchemy' | 'infura';
5
+ declare type AlchemyChains = Extract<ChainName, 'mainnet' | 'ropsten' | 'rinkeby' | 'goerli' | 'kovan' | 'optimism' | 'optimismKovan' | 'polygon' | 'polygonMumbai' | 'arbitrum' | 'arbitrumRinkeby'>;
6
+ export declare const alchemyRpcUrls: Record<AlchemyChains, string>;
7
+ declare type InfuraChains = Extract<ChainName, 'mainnet' | 'ropsten' | 'rinkeby' | 'goerli' | 'kovan' | 'optimism' | 'optimismKovan' | 'polygon' | 'polygonMumbai' | 'arbitrum' | 'arbitrumRinkeby'>;
8
+ export declare const infuraRpcUrls: Record<InfuraChains, string>;
9
+ export {};
@@ -1,9 +1,12 @@
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, watchBalance, watchBlockNumber, watchContractEvent, watchEnsAddress, watchEnsAvatar, watchEnsName, watchEnsResolver, watchFeeData, watchNetwork, watchReadContract, watchSigner, watchToken, writeContract, } from './actions';
2
- export type { ConnectResult, FetchBalanceArgs, FetchBalanceResult, FetchBlockNumberResult, FetchEnsAddressArgs, FetchEnsAddressResult, FetchEnsAvatarArgs, FetchEnsAvatarResult, FetchEnsNameArgs, FetchEnsNameResult, FetchEnsResolverArgs, FetchEnsResolverResult, FetchFeeDataArgs, FetchFeeDataResult, FetchSignerResult, FetchTokenArgs, FetchTokenResult, GetAccountResult, GetContractArgs, GetNetworkResult, ReadContractArgs, ReadContractConfig, ReadContractResult, SendTransactionArgs, SendTransactionResult, SignMessageArgs, SignMessageResult, SignTypedDataArgs, SignTypedDataResult, SwitchNetworkArgs, SwitchNetworkResult, WaitForTransactionArgs, WaitForTransactionResult, WatchAccountCallback, WatchBalanceCallback, WatchBlockNumberArgs, WatchBlockNumberCallback, WatchEnsAddressCallback, WatchEnsAvatarCallback, WatchEnsNameCallback, WatchEnsResolverCallback, WatchFeeDataArgs, WatchFeeDataCallback, WatchNetworkCallback, WatchReadContractArgs, WatchReadContractConfig, WatchReadContractResult, WatchSignerCallback, WatchTokenCallback, WriteContractArgs, WriteContractConfig, WriteContractResult, } from './actions';
3
- export { createClient, createClient as createWagmiClient, Client, Client as WagmiClient, type ClientConfig, type ClientConfig as WagmiClientConfig, } from './client';
4
- export { Connector, InjectedConnector, type ConnectorData, type ConnectorEvents, } from './connectors';
5
- export { allChains, chain, defaultChains, erc1155ABI, erc20ABI, erc721ABI, units, } from './constants';
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
+ 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';
5
+ export { Connector, InjectedConnector } from './connectors';
6
+ export type { ConnectorData, ConnectorEvents } from './connectors';
7
+ export { alchemyRpcUrls, allChains, chain, chainId, defaultChains, defaultL2Chains, erc20ABI, erc721ABI, etherscanBlockExplorers, infuraRpcUrls, units, } from './constants';
6
8
  export { AddChainError, ChainNotConfiguredError, ConnectorAlreadyConnectedError, ConnectorNotFoundError, SwitchChainError, SwitchChainNotSupportedError, UserRejectedRequestError, } from './errors';
7
- export { createStorage, createStorage as createWagmiStorage, noopStorage, type WagmiStorage as Storage, type WagmiStorage, } from './storage';
9
+ export { createStorage, createStorage as createWagmiStorage, noopStorage, } from './storage';
10
+ export type { WagmiStorage as Storage, WagmiStorage } from './storage';
8
11
  export type { Chain, Unit } from './types';
9
12
  export { normalizeChainId } from './utils';
@@ -1,14 +1,85 @@
1
- import { units } from '../constants';
2
- import './declarations';
1
+ import { BlockExplorer, BlockExplorerName, RpcProviderName, units } from '../constants';
3
2
  export declare type Chain = {
4
3
  id: number;
5
4
  name: AddEthereumChainParameter['chainName'];
6
5
  nativeCurrency?: AddEthereumChainParameter['nativeCurrency'];
7
- rpcUrls: AddEthereumChainParameter['rpcUrls'];
6
+ rpcUrls: {
7
+ [key in RpcProviderName]?: string;
8
+ } & {
9
+ [key: string]: string;
10
+ default: string;
11
+ };
8
12
  blockExplorers?: {
9
- name: string;
10
- url: string;
11
- }[];
13
+ [key in BlockExplorerName]: BlockExplorer;
14
+ } & {
15
+ [key: string]: BlockExplorer;
16
+ default: BlockExplorer;
17
+ };
12
18
  testnet?: boolean;
13
19
  };
14
20
  export declare type Unit = typeof units[number];
21
+ declare global {
22
+ type AddEthereumChainParameter = {
23
+ chainId: string;
24
+ chainName: string;
25
+ nativeCurrency?: {
26
+ name: string;
27
+ symbol: string;
28
+ decimals: number;
29
+ };
30
+ rpcUrls: string[];
31
+ blockExplorerUrls?: string[];
32
+ iconUrls?: string[];
33
+ };
34
+ type WatchAssetParams = {
35
+ type: 'ERC20';
36
+ options: {
37
+ address: string;
38
+ decimals: number;
39
+ image?: string;
40
+ symbol: string;
41
+ };
42
+ };
43
+ type RequestArguments = {
44
+ method: 'eth_accounts';
45
+ } | {
46
+ method: 'eth_chainId';
47
+ } | {
48
+ method: 'eth_requestAccounts';
49
+ } | {
50
+ method: 'personal_sign';
51
+ params: [string, string];
52
+ } | {
53
+ method: 'wallet_addEthereumChain';
54
+ params: AddEthereumChainParameter[];
55
+ } | {
56
+ method: 'wallet_switchEthereumChain';
57
+ params: [{
58
+ chainId: string;
59
+ }];
60
+ } | {
61
+ method: 'wallet_watchAsset';
62
+ params: WatchAssetParams;
63
+ };
64
+ type InjectedProviders = {
65
+ isBraveWallet?: true;
66
+ isCoinbaseWallet?: true;
67
+ isFrame?: true;
68
+ isMetaMask?: true;
69
+ isTally?: true;
70
+ };
71
+ interface Ethereum extends InjectedProviders {
72
+ on?: (...args: any[]) => void;
73
+ removeListener?: (...args: any[]) => void;
74
+ request<T = any>(args: RequestArguments): Promise<T>;
75
+ providers?: Ethereum[];
76
+ }
77
+ interface Window {
78
+ ethereum?: Ethereum;
79
+ }
80
+ interface ProviderRpcError extends Error {
81
+ code: 4001 | 4902;
82
+ data?: unknown;
83
+ message: string;
84
+ }
85
+ }
@@ -1 +1 @@
1
- export declare function getInjectedName(ethereum?: Window['ethereum']): "Coinbase Wallet" | "Injected" | "MetaMask" | "Frame" | "Tally";
1
+ export declare function getInjectedName(ethereum?: Window['ethereum']): string;