@wagmi/core 0.4.0-test.2 → 0.4.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 (72) hide show
  1. package/chains/dist/wagmi-core-chains.cjs.dev.js +1 -1
  2. package/chains/dist/wagmi-core-chains.cjs.prod.js +1 -1
  3. package/chains/dist/wagmi-core-chains.esm.js +1 -1
  4. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +5 -5
  5. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +5 -5
  6. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +5 -5
  7. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.dev.js +6 -4
  8. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.prod.js +6 -4
  9. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js +6 -4
  10. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +11 -7
  11. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +11 -7
  12. package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +6 -6
  13. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +19 -18
  14. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +19 -18
  15. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +19 -18
  16. package/dist/base-33eceda3.esm.js +302 -0
  17. package/dist/base-457b5f55.cjs.prod.js +328 -0
  18. package/dist/base-6f16410c.cjs.dev.js +328 -0
  19. package/dist/{chains-d045862c.cjs.prod.js → chains-1390c48d.cjs.prod.js} +56 -4
  20. package/dist/{chains-7e369752.cjs.dev.js → chains-2ca34f98.cjs.dev.js} +56 -4
  21. package/dist/{chains-fa406563.esm.js → chains-e98fda1e.esm.js} +56 -4
  22. package/dist/{client-60ee0298.esm.js → client-71653c40.esm.js} +21 -44
  23. package/dist/{client-42cf11b7.cjs.dev.js → client-7864fb0c.cjs.prod.js} +21 -44
  24. package/dist/{client-ed3aaa6a.cjs.prod.js → client-b3902dbf.cjs.dev.js} +21 -44
  25. package/dist/declarations/src/actions/accounts/getAccount.d.ts +31 -2
  26. package/dist/declarations/src/actions/accounts/getNetwork.d.ts +1 -2
  27. package/dist/declarations/src/actions/accounts/signTypedData.d.ts +11 -13
  28. package/dist/declarations/src/actions/accounts/watchAccount.d.ts +9 -1
  29. package/dist/declarations/src/actions/accounts/watchNetwork.d.ts +8 -1
  30. package/dist/declarations/src/actions/contracts/index.d.ts +5 -3
  31. package/dist/declarations/src/actions/contracts/multicall.d.ts +21 -0
  32. package/dist/declarations/src/actions/contracts/readContract.d.ts +7 -4
  33. package/dist/declarations/src/actions/contracts/readContracts.d.ts +19 -0
  34. package/dist/declarations/src/actions/contracts/watchContractEvent.d.ts +3 -3
  35. package/dist/declarations/src/actions/contracts/watchReadContract.d.ts +2 -3
  36. package/dist/declarations/src/actions/contracts/watchReadContracts.d.ts +6 -0
  37. package/dist/declarations/src/actions/contracts/writeContract.d.ts +10 -4
  38. package/dist/declarations/src/actions/index.d.ts +1 -1
  39. package/dist/declarations/src/actions/transactions/sendTransaction.d.ts +6 -1
  40. package/dist/declarations/src/client.d.ts +6 -11
  41. package/dist/declarations/src/connectors/base.d.ts +4 -3
  42. package/dist/declarations/src/connectors/mock/connector.d.ts +2 -9
  43. package/dist/declarations/src/connectors/mock/provider.d.ts +2 -1
  44. package/dist/declarations/src/connectors/walletConnect.d.ts +5 -4
  45. package/dist/declarations/src/constants/index.d.ts +1 -0
  46. package/dist/declarations/src/constants/multicall.d.ts +25 -0
  47. package/dist/declarations/src/errors.d.ts +27 -5
  48. package/dist/declarations/src/index.d.ts +4 -4
  49. package/dist/declarations/src/providers/alchemy.d.ts +2 -2
  50. package/dist/declarations/src/providers/infura.d.ts +2 -2
  51. package/dist/declarations/src/providers/jsonRpc.d.ts +2 -2
  52. package/dist/declarations/src/providers/public.d.ts +2 -2
  53. package/dist/declarations/src/types/index.d.ts +17 -5
  54. package/dist/declarations/src/utils/configureChains.d.ts +10 -4
  55. package/dist/wagmi-core.cjs.dev.js +578 -231
  56. package/dist/wagmi-core.cjs.prod.js +578 -231
  57. package/dist/wagmi-core.esm.js +576 -239
  58. package/package.json +15 -3
  59. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.dev.js +3 -1
  60. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.prod.js +3 -1
  61. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.esm.js +3 -1
  62. package/connectors/injected/dist/wagmi-core-connectors-injected.cjs.d.ts +0 -1
  63. package/connectors/injected/dist/wagmi-core-connectors-injected.cjs.dev.js +0 -200
  64. package/connectors/injected/dist/wagmi-core-connectors-injected.cjs.js +0 -7
  65. package/connectors/injected/dist/wagmi-core-connectors-injected.cjs.prod.js +0 -200
  66. package/connectors/injected/dist/wagmi-core-connectors-injected.esm.js +0 -196
  67. package/connectors/walletLink/dist/wagmi-core-connectors-walletLink.cjs.d.ts +0 -11
  68. package/connectors/walletLink/dist/wagmi-core-connectors-walletLink.cjs.js +0 -16
  69. package/dist/base-7f682723.cjs.prod.js +0 -623
  70. package/dist/base-ae774f26.cjs.dev.js +0 -623
  71. package/dist/base-c546f171.esm.js +0 -603
  72. package/dist/declarations/src/utils/eventemitter.d.ts +0 -135
@@ -1,20 +1,18 @@
1
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
- }
13
2
  export declare type SignTypedDataArgs = {
14
3
  /** Domain or domain signature for origin or contract */
15
- domain: TypedDataDomain;
4
+ domain: {
5
+ name?: string;
6
+ version?: string;
7
+ chainId?: BigNumberish;
8
+ verifyingContract?: string;
9
+ salt?: BytesLike;
10
+ };
16
11
  /** Named list of all type definitions */
17
- types: Record<string, Array<TypedDataField>>;
12
+ types: Record<string, Array<{
13
+ name: string;
14
+ type: string;
15
+ }>>;
18
16
  /** Data to sign */
19
17
  value: Record<string, any>;
20
18
  };
@@ -1,4 +1,12 @@
1
+ import { Connector } from '../../connectors';
1
2
  import { Provider } from '../../types';
2
3
  import { GetAccountResult } from './getAccount';
3
4
  export declare type WatchAccountCallback<TProvider extends Provider = Provider> = (data: GetAccountResult<TProvider>) => void;
4
- export declare function watchAccount<TProvider extends Provider>(callback: WatchAccountCallback<TProvider>): () => void;
5
+ export declare type WatchAccountConfig = {
6
+ selector?({ address, connector, status, }: {
7
+ address?: string;
8
+ connector?: Connector;
9
+ status: GetAccountResult['status'];
10
+ }): any;
11
+ };
12
+ export declare function watchAccount<TProvider extends Provider>(callback: WatchAccountCallback<TProvider>, { selector }?: WatchAccountConfig): () => void;
@@ -1,3 +1,10 @@
1
+ import { Chain } from '../../types';
1
2
  import { GetNetworkResult } from './getNetwork';
2
3
  export declare type WatchNetworkCallback = (data: GetNetworkResult) => void;
3
- export declare function watchNetwork(callback: WatchNetworkCallback): () => void;
4
+ export declare type WatchNetworkConfig = {
5
+ selector?({ chainId, chains }: {
6
+ chainId?: number;
7
+ chains?: Chain[];
8
+ }): any;
9
+ };
10
+ export declare function watchNetwork(callback: WatchNetworkCallback, { selector }?: WatchNetworkConfig): () => void;
@@ -1,5 +1,7 @@
1
1
  export { getContract, type GetContractArgs } from './getContract';
2
- export { readContract, type ReadContractArgs, type ReadContractConfig, type ReadContractResult, } from './readContract';
2
+ export { readContract, type ReadContractConfig, type ReadContractResult, } from './readContract';
3
+ export { readContracts, type ReadContractsConfig, type ReadContractsResult, } from './readContracts';
3
4
  export { watchContractEvent } from './watchContractEvent';
4
- export { watchReadContract, type WatchReadContractArgs, type WatchReadContractConfig, type WatchReadContractResult, } from './watchReadContract';
5
- export { writeContract, type WriteContractArgs, type WriteContractConfig, type WriteContractResult, } from './writeContract';
5
+ export { watchReadContract, type WatchReadContractConfig, type WatchReadContractResult, } from './watchReadContract';
6
+ export { watchReadContracts, type WatchReadContractsConfig, type WatchReadContractsResult, } from './watchReadContracts';
7
+ export { writeContract, type WriteContractConfig, type WriteContractResult, } from './writeContract';
@@ -0,0 +1,21 @@
1
+ import { CallOverrides } from 'ethers/lib/ethers';
2
+ import { Result } from 'ethers/lib/utils';
3
+ import { ReadContractConfig } from './readContract';
4
+ declare type MulticallContract = {
5
+ addressOrName: ReadContractConfig['addressOrName'];
6
+ args?: ReadContractConfig['args'];
7
+ contractInterface: ReadContractConfig['contractInterface'];
8
+ functionName: ReadContractConfig['functionName'];
9
+ };
10
+ export declare type MulticallConfig = {
11
+ /** Failures in the multicall will fail silently */
12
+ allowFailure?: boolean;
13
+ /** Chain id to use for provider */
14
+ chainId?: number;
15
+ contracts: MulticallContract[];
16
+ /** Call overrides */
17
+ overrides?: CallOverrides;
18
+ };
19
+ export declare type MulticallResult<Data extends any[] = Result[]> = Data;
20
+ export declare function multicall<Data extends any[] = Result[]>({ allowFailure, chainId, contracts, overrides, }: MulticallConfig): Promise<MulticallResult<Data>>;
21
+ export {};
@@ -1,14 +1,17 @@
1
- import { CallOverrides, Contract as EthersContract } from 'ethers/lib/ethers';
1
+ import { CallOverrides, Contract } from 'ethers/lib/ethers';
2
2
  import { Result } from 'ethers/lib/utils';
3
3
  import { GetContractArgs } from './getContract';
4
- export declare type ReadContractArgs = Pick<GetContractArgs, 'addressOrName' | 'contractInterface'>;
5
4
  export declare type ReadContractConfig = {
5
+ addressOrName: GetContractArgs['addressOrName'];
6
6
  /** Arguments to pass contract method */
7
7
  args?: any | any[];
8
8
  /** Chain id to use for provider */
9
9
  chainId?: number;
10
+ contractInterface: GetContractArgs['contractInterface'];
11
+ /** Function to invoke on the contract */
12
+ functionName: string;
10
13
  /** Call overrides */
11
14
  overrides?: CallOverrides;
12
15
  };
13
- export declare type ReadContractResult = Result;
14
- export declare function readContract<Contract extends EthersContract = EthersContract>(contractConfig: ReadContractArgs, functionName: string, { args, chainId, overrides }?: ReadContractConfig): Promise<Result>;
16
+ export declare type ReadContractResult<Data = Result> = Data;
17
+ export declare function readContract<TContract extends Contract = Contract, Data = Result>({ addressOrName, args, chainId, contractInterface, functionName, overrides, }: ReadContractConfig): Promise<ReadContractResult<Data>>;
@@ -0,0 +1,19 @@
1
+ import { CallOverrides } from 'ethers/lib/ethers';
2
+ import { Result } from 'ethers/lib/utils';
3
+ import { ReadContractConfig } from './readContract';
4
+ export declare type ReadContractsContract = {
5
+ addressOrName: ReadContractConfig['addressOrName'];
6
+ args?: ReadContractConfig['args'];
7
+ chainId?: ReadContractConfig['chainId'];
8
+ contractInterface: ReadContractConfig['contractInterface'];
9
+ functionName: ReadContractConfig['functionName'];
10
+ };
11
+ export declare type ReadContractsConfig = {
12
+ /** Failures will fail silently */
13
+ allowFailure?: boolean;
14
+ contracts: ReadContractsContract[];
15
+ /** Call overrides */
16
+ overrides?: CallOverrides;
17
+ };
18
+ export declare type ReadContractsResult<Data extends any[] = Result[]> = Data;
19
+ export declare function readContracts<Data extends any[] = Result[]>({ allowFailure, contracts, overrides, }: ReadContractsConfig): Promise<ReadContractsResult<Data>>;
@@ -1,4 +1,4 @@
1
- import { Contract as EthersContract } from 'ethers/lib/ethers';
1
+ import { Contract } from 'ethers/lib/ethers';
2
2
  import { GetContractArgs } from './getContract';
3
3
  declare type Config = {
4
4
  /** Chain id to use for provider */
@@ -6,9 +6,9 @@ declare type Config = {
6
6
  /** Receive only a single event */
7
7
  once?: boolean;
8
8
  };
9
- export declare function watchContractEvent<Contract extends EthersContract = EthersContract>(
9
+ export declare function watchContractEvent<TContract extends Contract = Contract>(
10
10
  /** Contract configuration */
11
11
  contractArgs: GetContractArgs,
12
12
  /** Event name to listen to */
13
- eventName: Parameters<Contract['on']>[0], callback: Parameters<Contract['on']>[1], { chainId, once }?: Config): () => void;
13
+ eventName: Parameters<TContract['on']>[0], callback: Parameters<TContract['on']>[1], { chainId, once }?: Config): () => void;
14
14
  export {};
@@ -1,7 +1,6 @@
1
- import { ReadContractArgs, ReadContractConfig, ReadContractResult } from './readContract';
2
- export declare type WatchReadContractArgs = ReadContractArgs;
1
+ import { ReadContractConfig, ReadContractResult } from './readContract';
3
2
  export declare type WatchReadContractConfig = ReadContractConfig & {
4
3
  listenToBlock?: boolean;
5
4
  };
6
5
  export declare type WatchReadContractResult = (result: ReadContractResult) => void;
7
- export declare function watchReadContract(contractConfig: WatchReadContractArgs, functionName: string, config: WatchReadContractConfig | undefined, callback: WatchReadContractResult): () => void;
6
+ export declare function watchReadContract(config: WatchReadContractConfig, callback: WatchReadContractResult): () => void;
@@ -0,0 +1,6 @@
1
+ import { ReadContractsConfig, ReadContractsResult } from './readContracts';
2
+ export declare type WatchReadContractsConfig = ReadContractsConfig & {
3
+ listenToBlock?: boolean;
4
+ };
5
+ export declare type WatchReadContractsResult = (result: ReadContractsResult) => void;
6
+ export declare function watchReadContracts(config: WatchReadContractsConfig, callback: WatchReadContractsResult): () => void;
@@ -1,10 +1,16 @@
1
- import { CallOverrides, Contract as EthersContract, providers } from 'ethers';
1
+ import { CallOverrides, Contract, providers } from 'ethers';
2
2
  import { GetContractArgs } from './getContract';
3
- export declare type WriteContractArgs = GetContractArgs;
4
- export declare type WriteContractConfig = {
3
+ export declare type WriteContractConfig = GetContractArgs & {
4
+ /**
5
+ * Chain id to use for write
6
+ * If signer is not active on this chain, it will attempt to programmatically switch
7
+ */
8
+ chainId?: number;
9
+ /** Method to call on contract */
10
+ functionName: string;
5
11
  /** Arguments to pass contract method */
6
12
  args?: any | any[];
7
13
  overrides?: CallOverrides;
8
14
  };
9
15
  export declare type WriteContractResult = providers.TransactionResponse;
10
- export declare function writeContract<Contract extends EthersContract = EthersContract>(contractConfig: WriteContractArgs, functionName: string, { args, overrides }?: WriteContractConfig): Promise<WriteContractResult>;
16
+ export declare function writeContract<TContract extends Contract = Contract>({ addressOrName, args, chainId, contractInterface, functionName, overrides, signerOrProvider, }: WriteContractConfig): Promise<WriteContractResult>;
@@ -1,5 +1,5 @@
1
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
- 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';
2
+ export { getContract, readContract, readContracts, watchContractEvent, watchReadContract, watchReadContracts, writeContract, type GetContractArgs, type ReadContractConfig, type ReadContractResult, type ReadContractsConfig, type ReadContractsResult, type WatchReadContractConfig, type WatchReadContractResult, type WatchReadContractsConfig, type WatchReadContractsResult, type WriteContractConfig, type WriteContractResult, } from './contracts';
3
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
4
  export { fetchBlockNumber, fetchFeeData, watchBlockNumber, type FetchBlockNumberArgs, type FetchBlockNumberResult, type FetchFeeDataArgs, type FetchFeeDataResult, type WatchBlockNumberArgs, type WatchBlockNumberCallback, } from './network-status';
5
5
  export { getProvider, getWebSocketProvider, watchProvider, watchWebSocketProvider, type GetProviderArgs, type GetProviderResult, type GetWebSocketProviderArgs, type GetWebSocketProviderResult, type WatchProviderCallback, type WatchWebSocketProviderCallback, } from './providers';
@@ -1,7 +1,12 @@
1
1
  import { providers } from 'ethers';
2
2
  export declare type SendTransactionArgs = {
3
+ /**
4
+ * Chain id to use for write
5
+ * If signer is not active on this chain, it will attempt to programmatically switch
6
+ */
7
+ chainId?: number;
3
8
  /** Object to use when creating transaction */
4
9
  request: providers.TransactionRequest;
5
10
  };
6
11
  export declare type SendTransactionResult = providers.TransactionResponse;
7
- export declare function sendTransaction(args: SendTransactionArgs): Promise<SendTransactionResult>;
12
+ export declare function sendTransaction({ chainId, request, }: SendTransactionArgs): Promise<SendTransactionResult>;
@@ -9,14 +9,9 @@ export declare type ClientConfig<TProvider extends Provider = Provider, TWebSock
9
9
  * Connectors used for linking accounts
10
10
  * @default [new InjectedConnector()]
11
11
  */
12
- connectors?: ((config: {
13
- chainId?: number;
14
- }) => Connector[]) | Connector[];
15
- /**
16
- * Interface for connecting to network
17
- * @default (config) => getDefaultProvider(config.chainId)
18
- */
19
- provider?: ((config: {
12
+ connectors?: (() => Connector[]) | Connector[];
13
+ /** Interface for connecting to network */
14
+ provider: ((config: {
20
15
  chainId?: number;
21
16
  }) => TProvider) | TProvider;
22
17
  /**
@@ -54,7 +49,7 @@ export declare class Client<TProvider extends Provider = Provider, TWebSocketPro
54
49
  Partial<State<TProvider, TWebSocketProvider>>
55
50
  ]
56
51
  ]>;
57
- constructor({ autoConnect, connectors, provider, storage, webSocketProvider, }?: ClientConfig<TProvider, TWebSocketProvider>);
52
+ constructor({ autoConnect, connectors, provider, storage, webSocketProvider, }: ClientConfig<TProvider, TWebSocketProvider>);
58
53
  get chains(): import("./types").Chain[] | undefined;
59
54
  get connectors(): Connector<any, any>[];
60
55
  get connector(): Connector<any, any> | undefined;
@@ -62,7 +57,7 @@ export declare class Client<TProvider extends Provider = Provider, TWebSocketPro
62
57
  get error(): Error | undefined;
63
58
  get lastUsedChainId(): number | undefined;
64
59
  get provider(): TProvider;
65
- get status(): "connected" | "connecting" | "reconnecting" | "disconnected";
60
+ get status(): "connecting" | "connected" | "reconnecting" | "disconnected";
66
61
  get subscribe(): {
67
62
  (listener: (selectedState: State<TProvider, TWebSocketProvider>, previousSelectedState: State<TProvider, TWebSocketProvider>) => void): () => void;
68
63
  <U>(selector: (state: State<TProvider, TWebSocketProvider>) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
@@ -78,5 +73,5 @@ export declare class Client<TProvider extends Provider = Provider, TWebSocketPro
78
73
  setLastUsedConnector(lastUsedConnector?: string | null): void;
79
74
  }
80
75
  export declare let client: Client<Provider, WebSocketProvider>;
81
- export declare function createClient<TProvider extends Provider = Provider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider>(config?: ClientConfig<TProvider, TWebSocketProvider>): Client<TProvider, TWebSocketProvider>;
76
+ export declare function createClient<TProvider extends Provider = Provider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider>(config: ClientConfig<TProvider, TWebSocketProvider>): Client<TProvider, TWebSocketProvider>;
82
77
  export declare function getClient<TProvider extends Provider = Provider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider>(): Client<TProvider, TWebSocketProvider>;
@@ -1,5 +1,5 @@
1
+ import { default as EventEmitter } from 'eventemitter3';
1
2
  import { Signer } from 'ethers/lib/ethers';
2
- import { EventEmitter } from '../utils/eventemitter';
3
3
  import { Chain } from '../types';
4
4
  export declare type ConnectorData<Provider = any> = {
5
5
  account?: string;
@@ -42,9 +42,10 @@ export declare abstract class Connector<Provider = any, Options = any> extends E
42
42
  abstract getChainId(): Promise<number>;
43
43
  abstract getProvider(config?: {
44
44
  chainId?: number;
45
- create?: boolean;
46
45
  }): Promise<Provider>;
47
- abstract getSigner(): Promise<Signer>;
46
+ abstract getSigner(config?: {
47
+ chainId?: number;
48
+ }): Promise<Signer>;
48
49
  abstract isAuthorized(): Promise<boolean>;
49
50
  switchChain?(chainId: number): Promise<Chain>;
50
51
  watchAsset?(asset: {
@@ -1,5 +1,5 @@
1
1
  import { Chain } from '../../types';
2
- import { Connector } from '../base';
2
+ import { Connector, ConnectorData } from '../base';
3
3
  import { MockProvider, MockProviderOptions } from './provider';
4
4
  export declare class MockConnector extends Connector<MockProvider, MockProviderOptions> {
5
5
  #private;
@@ -12,14 +12,7 @@ export declare class MockConnector extends Connector<MockProvider, MockProviderO
12
12
  });
13
13
  connect({ chainId }?: {
14
14
  chainId?: number;
15
- }): Promise<{
16
- account: string;
17
- chain: {
18
- id: number;
19
- unsupported: boolean;
20
- };
21
- provider: MockProvider;
22
- }>;
15
+ }): Promise<Required<ConnectorData<any>>>;
23
16
  disconnect(): Promise<void>;
24
17
  getAccount(): Promise<string>;
25
18
  getChainId(): Promise<number>;
@@ -1,3 +1,4 @@
1
+ import { default as EventEmitter } from 'eventemitter3';
1
2
  import { Signer, providers } from 'ethers';
2
3
  export declare type MockProviderOptions = {
3
4
  chainId?: number;
@@ -17,7 +18,7 @@ declare type Events = {
17
18
  declare type Event = keyof Events;
18
19
  export declare class MockProvider extends providers.BaseProvider {
19
20
  #private;
20
- events: import("../../utils/eventemitter")<Events, any>;
21
+ events: EventEmitter<Events, any>;
21
22
  constructor(options: MockProviderOptions);
22
23
  enable(): Promise<string[]>;
23
24
  disconnect(): Promise<void>;
@@ -25,11 +25,12 @@ export declare class WalletConnectConnector extends Connector<WalletConnectProvi
25
25
  disconnect(): Promise<void>;
26
26
  getAccount(): Promise<string>;
27
27
  getChainId(): Promise<number>;
28
- getProvider({ chainId, create, }?: {
29
- chainId?: number | undefined;
30
- create?: boolean | undefined;
28
+ getProvider({ chainId }?: {
29
+ chainId?: number;
31
30
  }): Promise<WalletConnectProvider>;
32
- getSigner(): Promise<providers.JsonRpcSigner>;
31
+ getSigner({ chainId }?: {
32
+ chainId?: number;
33
+ }): Promise<providers.JsonRpcSigner>;
33
34
  isAuthorized(): Promise<boolean>;
34
35
  protected onAccountsChanged: (accounts: string[]) => void;
35
36
  protected onChainChanged: (chainId: number | string) => void;
@@ -2,6 +2,7 @@ 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 { multicallInterface } from './multicall';
5
6
  export { alchemyRpcUrls, defaultAlchemyId, infuraRpcUrls, defaultInfuraId, } from './rpcs';
6
7
  export type { RpcProviderName } from './rpcs';
7
8
  export { units } from './units';
@@ -0,0 +1,25 @@
1
+ export declare const multicallInterface: {
2
+ inputs: {
3
+ components: {
4
+ internalType: string;
5
+ name: string;
6
+ type: string;
7
+ }[];
8
+ internalType: string;
9
+ name: string;
10
+ type: string;
11
+ }[];
12
+ name: string;
13
+ outputs: {
14
+ components: {
15
+ internalType: string;
16
+ name: string;
17
+ type: string;
18
+ }[];
19
+ internalType: string;
20
+ name: string;
21
+ type: string;
22
+ }[];
23
+ stateMutability: string;
24
+ type: string;
25
+ }[];
@@ -1,3 +1,5 @@
1
+ import { Connector } from './connectors';
2
+ import { Chain } from './types';
1
3
  /**
2
4
  * Error subclass implementing JSON RPC 2.0 errors and Ethereum RPC errors per EIP-1474.
3
5
  * @see https://eips.ethereum.org/EIPS/eip-1474
@@ -42,6 +44,20 @@ export declare class AddChainError extends Error {
42
44
  name: string;
43
45
  message: string;
44
46
  }
47
+ export declare class ChainDoesNotSupportMulticallError extends Error {
48
+ name: string;
49
+ constructor({ blockNumber, chain }: {
50
+ blockNumber?: number;
51
+ chain: Chain;
52
+ });
53
+ }
54
+ export declare class ChainMismatchError extends Error {
55
+ name: string;
56
+ constructor({ activeChain, targetChain, }: {
57
+ activeChain: string;
58
+ targetChain: string;
59
+ });
60
+ }
45
61
  export declare class ChainNotConfiguredError extends Error {
46
62
  name: string;
47
63
  message: string;
@@ -54,19 +70,25 @@ export declare class ConnectorNotFoundError extends Error {
54
70
  name: string;
55
71
  message: string;
56
72
  }
73
+ export declare class ProviderChainsNotFound extends Error {
74
+ name: string;
75
+ message: string;
76
+ }
77
+ export declare class ResourceUnavailableError extends RpcError {
78
+ name: string;
79
+ constructor(error: unknown);
80
+ }
57
81
  export declare class SwitchChainError extends ProviderRpcError {
58
82
  name: string;
59
83
  constructor(error: unknown);
60
84
  }
61
85
  export declare class SwitchChainNotSupportedError extends Error {
62
86
  name: string;
63
- message: string;
87
+ constructor({ connector }: {
88
+ connector: Connector;
89
+ });
64
90
  }
65
91
  export declare class UserRejectedRequestError extends ProviderRpcError {
66
92
  name: string;
67
93
  constructor(error: unknown);
68
94
  }
69
- export declare class ResourceUnavailableError extends RpcError {
70
- name: string;
71
- constructor(error: unknown);
72
- }
@@ -1,13 +1,13 @@
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';
1
+ export { connect, disconnect, fetchBalance, fetchBlockNumber, fetchEnsAddress, fetchEnsAvatar, fetchEnsName, fetchEnsResolver, fetchFeeData, fetchSigner, fetchToken, getAccount, getContract, getNetwork, getProvider, getWebSocketProvider, readContract, readContracts, sendTransaction, signMessage, signTypedData, switchNetwork, waitForTransaction, watchAccount, watchBlockNumber, watchContractEvent, watchNetwork, watchProvider, watchReadContract, watchReadContracts, 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, ReadContractConfig, ReadContractResult, ReadContractsConfig, ReadContractsResult, SendTransactionArgs, SendTransactionResult, SignMessageArgs, SignMessageResult, SignTypedDataArgs, SignTypedDataResult, SwitchNetworkArgs, SwitchNetworkResult, WaitForTransactionArgs, WaitForTransactionResult, WatchAccountCallback, WatchBlockNumberArgs, WatchBlockNumberCallback, WatchNetworkCallback, WatchReadContractConfig, WatchReadContractResult, WatchProviderCallback, WatchSignerCallback, WatchWebSocketProviderCallback, WriteContractConfig, WriteContractResult, } from './actions';
3
3
  export { createClient, Client } from './client';
4
4
  export type { ClientConfig } from './client';
5
5
  export { Connector, InjectedConnector } from './connectors';
6
6
  export type { ConnectorData, ConnectorEvents } from './connectors';
7
7
  export { alchemyRpcUrls, allChains, chain, chainId, defaultChains, defaultL2Chains, erc20ABI, erc721ABI, etherscanBlockExplorers, infuraRpcUrls, units, } from './constants';
8
- export { AddChainError, ChainNotConfiguredError, ConnectorAlreadyConnectedError, ConnectorNotFoundError, ProviderRpcError, ResourceUnavailableError, RpcError, SwitchChainError, SwitchChainNotSupportedError, UserRejectedRequestError, } from './errors';
8
+ export { AddChainError, ChainDoesNotSupportMulticallError, ChainMismatchError, ChainNotConfiguredError, ConnectorAlreadyConnectedError, ConnectorNotFoundError, ProviderChainsNotFound, ProviderRpcError, ResourceUnavailableError, RpcError, SwitchChainError, SwitchChainNotSupportedError, UserRejectedRequestError, } from './errors';
9
9
  export { createStorage, noopStorage } from './storage';
10
10
  export type { ClientStorage as Storage } from './storage';
11
- export type { Chain, ChainProvider, FallbackProviderConfig, ProviderWithFallbackConfig, Provider, Unit, WebSocketProvider, } from './types';
11
+ export type { Chain, ChainProviderFn, FallbackProviderConfig, ProviderWithFallbackConfig, Provider, Unit, WebSocketProvider, } from './types';
12
12
  export { configureChains, normalizeChainId } from './utils';
13
13
  export type { ConfigureChainsConfig } from './utils';
@@ -1,7 +1,7 @@
1
1
  import { providers } from 'ethers';
2
- import { ChainProvider, FallbackProviderConfig } from '../types';
2
+ import { ChainProviderFn, FallbackProviderConfig } from '../types';
3
3
  export declare type AlchemyProviderConfig = FallbackProviderConfig & {
4
4
  alchemyId?: string;
5
5
  pollingInterval?: number;
6
6
  };
7
- export declare function alchemyProvider({ alchemyId, pollingInterval, priority, stallTimeout, weight, }?: AlchemyProviderConfig): ChainProvider<providers.AlchemyProvider, providers.AlchemyWebSocketProvider>;
7
+ export declare function alchemyProvider({ alchemyId, pollingInterval, priority, stallTimeout, weight, }?: AlchemyProviderConfig): ChainProviderFn<providers.AlchemyProvider, providers.AlchemyWebSocketProvider>;
@@ -1,7 +1,7 @@
1
1
  import { providers } from 'ethers';
2
- import { ChainProvider, FallbackProviderConfig } from '../types';
2
+ import { ChainProviderFn, FallbackProviderConfig } from '../types';
3
3
  export declare type InfuraProviderConfig = FallbackProviderConfig & {
4
4
  infuraId?: string;
5
5
  pollingInterval?: number;
6
6
  };
7
- export declare function infuraProvider({ infuraId, pollingInterval, priority, stallTimeout, weight, }?: InfuraProviderConfig): ChainProvider<providers.InfuraProvider, providers.InfuraWebSocketProvider>;
7
+ export declare function infuraProvider({ infuraId, pollingInterval, priority, stallTimeout, weight, }?: InfuraProviderConfig): ChainProviderFn<providers.InfuraProvider, providers.InfuraWebSocketProvider>;
@@ -1,5 +1,5 @@
1
1
  import { providers } from 'ethers';
2
- import { Chain, ChainProvider, FallbackProviderConfig } from '../types';
2
+ import { Chain, ChainProviderFn, FallbackProviderConfig } from '../types';
3
3
  export declare type JsonRpcProviderConfig = FallbackProviderConfig & {
4
4
  pollingInterval?: number;
5
5
  rpc: (chain: Chain) => {
@@ -8,4 +8,4 @@ export declare type JsonRpcProviderConfig = FallbackProviderConfig & {
8
8
  } | null;
9
9
  static?: boolean;
10
10
  };
11
- export declare function jsonRpcProvider({ pollingInterval, priority, rpc, stallTimeout, static: static_, weight, }: JsonRpcProviderConfig): ChainProvider<providers.JsonRpcProvider, providers.WebSocketProvider>;
11
+ export declare function jsonRpcProvider({ pollingInterval, priority, rpc, stallTimeout, static: static_, weight, }: JsonRpcProviderConfig): ChainProviderFn<providers.JsonRpcProvider, providers.WebSocketProvider>;
@@ -1,6 +1,6 @@
1
1
  import { providers } from 'ethers';
2
- import { ChainProvider, FallbackProviderConfig } from '../types';
2
+ import { ChainProviderFn, FallbackProviderConfig } from '../types';
3
3
  export declare type PublicProviderConfig = FallbackProviderConfig & {
4
4
  pollingInterval?: number;
5
5
  };
6
- export declare function publicProvider({ pollingInterval, priority, stallTimeout, weight, }?: PublicProviderConfig): ChainProvider<providers.StaticJsonRpcProvider>;
6
+ export declare function publicProvider({ pollingInterval, priority, stallTimeout, weight, }?: PublicProviderConfig): ChainProviderFn<providers.StaticJsonRpcProvider>;
@@ -7,8 +7,6 @@ export declare type Chain = {
7
7
  name: string;
8
8
  /** Internal network name */
9
9
  network: string;
10
- /** ENS registry address */
11
- ensAddress?: string;
12
10
  /** Currency used by chain */
13
11
  nativeCurrency?: AddEthereumChainParameter['nativeCurrency'];
14
12
  /** Collection of RPC endpoints */
@@ -25,18 +23,31 @@ export declare type Chain = {
25
23
  [key: string]: BlockExplorer;
26
24
  default: BlockExplorer;
27
25
  };
26
+ /** ENS registry */
27
+ ens?: {
28
+ address: string;
29
+ };
30
+ /** Chain multicall contract */
31
+ multicall?: {
32
+ address: string;
33
+ blockCreated: number;
34
+ };
28
35
  /** Flag for test networks */
29
36
  testnet?: boolean;
30
37
  };
31
- export declare type ChainProvider<TProvider extends Provider = Provider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider, TChain extends Chain = Chain> = (chain: TChain) => {
38
+ export declare type ChainProviderFn<TProvider extends Provider = Provider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider, TChain extends Chain = Chain> = (chain: TChain) => {
32
39
  chain: TChain;
33
40
  provider: () => ProviderWithFallbackConfig<TProvider>;
34
41
  webSocketProvider?: () => TWebSocketProvider;
35
42
  } | null;
36
43
  export declare type FallbackProviderConfig = Omit<providers.FallbackProviderConfig, 'provider'>;
37
44
  export declare type ProviderWithFallbackConfig<TProvider extends Provider = Provider> = TProvider & FallbackProviderConfig;
38
- export declare type Provider = providers.BaseProvider;
39
- export declare type WebSocketProvider = providers.WebSocketProvider;
45
+ export declare type Provider = providers.BaseProvider & {
46
+ chains?: Chain[];
47
+ };
48
+ export declare type WebSocketProvider = providers.WebSocketProvider & {
49
+ chains?: Chain[];
50
+ };
40
51
  export declare type Unit = typeof units[number];
41
52
  declare global {
42
53
  type AddEthereumChainParameter = {
@@ -76,6 +87,7 @@ declare global {
76
87
  isMetaMask?: true;
77
88
  isOpera?: true;
78
89
  isTally?: true;
90
+ isTokenPocket?: true;
79
91
  isTokenary?: true;
80
92
  isTrust?: true;
81
93
  };
@@ -1,5 +1,5 @@
1
1
  import { providers } from 'ethers';
2
- import { Chain, ChainProvider, Provider, WebSocketProvider } from '../types';
2
+ import { Chain, ChainProviderFn, Provider, WebSocketProvider } from '../types';
3
3
  export declare type ConfigureChainsConfig = {
4
4
  stallTimeout?: number;
5
5
  } & ({
@@ -9,12 +9,18 @@ export declare type ConfigureChainsConfig = {
9
9
  targetQuorum: number;
10
10
  minQuorum?: number;
11
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): {
12
+ export declare function configureChains<TProvider extends Provider = Provider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider, TChain extends Chain = Chain>(defaultChains: TChain[], providers: ChainProviderFn<TProvider, TWebSocketProvider, TChain>[], { minQuorum, targetQuorum, stallTimeout }?: ConfigureChainsConfig): {
13
13
  readonly chains: TChain[];
14
14
  readonly provider: ({ chainId }: {
15
15
  chainId?: number | undefined;
16
- }) => TProvider | providers.FallbackProvider;
16
+ }) => (TProvider & {
17
+ chains: TChain[];
18
+ }) | (providers.FallbackProvider & {
19
+ chains: TChain[];
20
+ });
17
21
  readonly webSocketProvider: ({ chainId }: {
18
22
  chainId?: number | undefined;
19
- }) => TWebSocketProvider | undefined;
23
+ }) => {
24
+ chains: TChain[];
25
+ } | undefined;
20
26
  };