@wagmi/core 0.3.5 → 0.3.8

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 (43) hide show
  1. package/chains/dist/wagmi-core-chains.cjs.dev.js +2 -1
  2. package/chains/dist/wagmi-core-chains.cjs.prod.js +2 -1
  3. package/chains/dist/wagmi-core-chains.esm.js +1 -1
  4. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +33 -11
  5. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +33 -11
  6. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +33 -11
  7. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.dev.js +11 -9
  8. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.prod.js +11 -9
  9. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js +11 -9
  10. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +20 -7
  11. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +20 -7
  12. package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +20 -7
  13. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +29 -6
  14. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +29 -6
  15. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +29 -6
  16. package/dist/{base-41fb6637.esm.js → base-4c248b82.esm.js} +7 -5
  17. package/dist/{base-321ac87a.cjs.dev.js → base-9fa7951e.cjs.dev.js} +6 -4
  18. package/dist/{base-6841ebe0.cjs.prod.js → base-b7c3f31e.cjs.prod.js} +6 -4
  19. package/dist/{chains-a0a80d94.esm.js → chains-42648bc5.esm.js} +17 -3
  20. package/dist/{chains-0dd661ab.cjs.prod.js → chains-7204b2dd.cjs.prod.js} +17 -2
  21. package/dist/{chains-98e2e613.cjs.dev.js → chains-b4a51a84.cjs.dev.js} +17 -2
  22. package/dist/{client-a06c45f3.cjs.prod.js → client-a774f14a.cjs.prod.js} +71 -14
  23. package/dist/{client-4172f963.cjs.dev.js → client-d5a20a13.cjs.dev.js} +71 -14
  24. package/dist/{client-87c1ff8b.esm.js → client-e01209d5.esm.js} +71 -14
  25. package/dist/declarations/src/actions/accounts/connect.d.ts +3 -1
  26. package/dist/declarations/src/chains.d.ts +1 -1
  27. package/dist/declarations/src/client.d.ts +1 -0
  28. package/dist/declarations/src/connectors/base.d.ts +7 -2
  29. package/dist/declarations/src/connectors/coinbaseWallet.d.ts +4 -2
  30. package/dist/declarations/src/connectors/injected.d.ts +9 -1
  31. package/dist/declarations/src/connectors/metaMask.d.ts +2 -2
  32. package/dist/declarations/src/connectors/mock/connector.d.ts +6 -2
  33. package/dist/declarations/src/connectors/mock/provider.d.ts +1 -1
  34. package/dist/declarations/src/connectors/walletConnect.d.ts +7 -2
  35. package/dist/declarations/src/constants/chains.d.ts +3 -0
  36. package/dist/declarations/src/types/index.d.ts +2 -0
  37. package/dist/wagmi-core.cjs.dev.js +20 -9
  38. package/dist/wagmi-core.cjs.prod.js +20 -9
  39. package/dist/wagmi-core.esm.js +23 -12
  40. package/package.json +3 -3
  41. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.dev.js +1 -0
  42. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.prod.js +1 -0
  43. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.esm.js +1 -0
@@ -34,11 +34,16 @@ 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<Required<ConnectorData>>;
37
+ abstract connect(config?: {
38
+ chainId?: number;
39
+ }): Promise<Required<ConnectorData>>;
38
40
  abstract disconnect(): Promise<void>;
39
41
  abstract getAccount(): Promise<string>;
40
42
  abstract getChainId(): Promise<number>;
41
- abstract getProvider(create?: boolean): Promise<Provider>;
43
+ abstract getProvider(config?: {
44
+ chainId?: number;
45
+ create?: boolean;
46
+ }): Promise<Provider>;
42
47
  abstract getSigner(): Promise<Signer>;
43
48
  abstract isAuthorized(): Promise<boolean>;
44
49
  switchChain?(chainId: number): Promise<Chain>;
@@ -20,11 +20,13 @@ export declare class CoinbaseWalletConnector extends Connector<CoinbaseWalletPro
20
20
  readonly id = "coinbaseWallet";
21
21
  readonly name = "Coinbase Wallet";
22
22
  readonly ready = true;
23
- constructor(config: {
23
+ constructor({ chains, options }: {
24
24
  chains?: Chain[];
25
25
  options: Options;
26
26
  });
27
- connect(): Promise<{
27
+ connect({ chainId }?: {
28
+ chainId?: number;
29
+ }): Promise<{
28
30
  account: string;
29
31
  chain: {
30
32
  id: number;
@@ -4,6 +4,12 @@ import { Connector } from './base';
4
4
  export declare type InjectedConnectorOptions = {
5
5
  /** Name of connector */
6
6
  name?: string | ((detectedName: string | string[]) => string);
7
+ /**
8
+ * MetaMask 10.9.3 emits disconnect event when chain is changed.
9
+ * This flag prevents the `"disconnect"` event from being emitted upon switching chains.
10
+ * @see https://github.com/MetaMask/metamask-extension/issues/13375#issuecomment-1027663334
11
+ */
12
+ shimChainChangedDisconnect?: boolean;
7
13
  /**
8
14
  * MetaMask and other injected providers do not support programmatic disconnect.
9
15
  * This flag simulates the disconnect behavior by keeping track of connection status in storage.
@@ -21,7 +27,9 @@ export declare class InjectedConnector extends Connector<Window['ethereum'], Inj
21
27
  chains?: Chain[];
22
28
  options?: InjectedConnectorOptions;
23
29
  });
24
- connect(): Promise<{
30
+ connect({ chainId }?: {
31
+ chainId?: number;
32
+ }): Promise<{
25
33
  account: string;
26
34
  chain: {
27
35
  id: number;
@@ -1,11 +1,11 @@
1
1
  import { Chain } from '../types';
2
2
  import { InjectedConnector, InjectedConnectorOptions } from './injected';
3
- export declare type MetaMaskConnectorOptions = Pick<InjectedConnectorOptions, 'shimDisconnect'>;
3
+ export declare type MetaMaskConnectorOptions = Pick<InjectedConnectorOptions, 'shimChainChangedDisconnect' | 'shimDisconnect'>;
4
4
  export declare class MetaMaskConnector extends InjectedConnector {
5
5
  #private;
6
6
  readonly id = "metaMask";
7
7
  readonly ready: boolean;
8
- constructor({ chains, options, }?: {
8
+ constructor({ chains, options: options_, }?: {
9
9
  chains?: Chain[];
10
10
  options?: MetaMaskConnectorOptions;
11
11
  });
@@ -10,7 +10,9 @@ export declare class MockConnector extends Connector<MockProvider, MockProviderO
10
10
  chains?: Chain[];
11
11
  options: MockProviderOptions;
12
12
  });
13
- connect(): Promise<{
13
+ connect({ chainId }?: {
14
+ chainId?: number;
15
+ }): Promise<{
14
16
  account: string;
15
17
  chain: {
16
18
  id: number;
@@ -21,7 +23,9 @@ export declare class MockConnector extends Connector<MockProvider, MockProviderO
21
23
  disconnect(): Promise<void>;
22
24
  getAccount(): Promise<string>;
23
25
  getChainId(): Promise<number>;
24
- getProvider(): Promise<MockProvider>;
26
+ getProvider({ chainId }?: {
27
+ chainId?: number;
28
+ }): Promise<MockProvider>;
25
29
  getSigner(): Promise<import("ethers").Signer>;
26
30
  isAuthorized(): Promise<boolean>;
27
31
  watchAsset(asset: {
@@ -1,13 +1,13 @@
1
1
  import { default as EventEmitter } from 'eventemitter3';
2
2
  import { Signer, providers } from 'ethers';
3
3
  export declare type MockProviderOptions = {
4
+ chainId?: number;
4
5
  flags?: {
5
6
  isAuthorized?: boolean;
6
7
  failConnect?: boolean;
7
8
  failSwitchChain?: boolean;
8
9
  noSwitchChain?: boolean;
9
10
  };
10
- network?: number | string;
11
11
  signer: Signer;
12
12
  };
13
13
  declare type Events = {
@@ -12,7 +12,9 @@ export declare class WalletConnectConnector extends Connector<WalletConnectProvi
12
12
  chains?: Chain[];
13
13
  options: WalletConnectOptions;
14
14
  });
15
- connect(): Promise<{
15
+ connect({ chainId }?: {
16
+ chainId?: number;
17
+ }): Promise<{
16
18
  account: string;
17
19
  chain: {
18
20
  id: number;
@@ -23,7 +25,10 @@ export declare class WalletConnectConnector extends Connector<WalletConnectProvi
23
25
  disconnect(): Promise<void>;
24
26
  getAccount(): Promise<string>;
25
27
  getChainId(): Promise<number>;
26
- getProvider(create?: boolean): Promise<WalletConnectProvider>;
28
+ getProvider({ chainId, create, }?: {
29
+ chainId?: number | undefined;
30
+ create?: boolean | undefined;
31
+ }): Promise<WalletConnectProvider>;
27
32
  getSigner(): Promise<providers.JsonRpcSigner>;
28
33
  isAuthorized(): Promise<boolean>;
29
34
  protected onAccountsChanged: (accounts: string[]) => void;
@@ -13,6 +13,7 @@ export declare const chainId: {
13
13
  readonly arbitrumRinkeby: 421611;
14
14
  readonly localhost: 1337;
15
15
  readonly hardhat: 31337;
16
+ readonly foundry: 31337;
16
17
  };
17
18
  export declare type ChainName = keyof typeof chainId;
18
19
  export declare const mainnet: Chain;
@@ -28,6 +29,7 @@ export declare const arbitrum: Chain;
28
29
  export declare const arbitrumRinkeby: Chain;
29
30
  export declare const localhost: Chain;
30
31
  export declare const hardhat: Chain;
32
+ export declare const foundry: Chain;
31
33
  /**
32
34
  * Common chains for convenience
33
35
  * Should not contain all possible chains
@@ -46,6 +48,7 @@ export declare const chain: {
46
48
  readonly arbitrumRinkeby: Chain;
47
49
  readonly localhost: Chain;
48
50
  readonly hardhat: Chain;
51
+ readonly foundry: Chain;
49
52
  };
50
53
  export declare const allChains: Chain[];
51
54
  export declare const defaultChains: Chain[];
@@ -7,6 +7,8 @@ export declare type Chain = {
7
7
  name: string;
8
8
  /** Internal network name */
9
9
  network: string;
10
+ /** ENS registry address */
11
+ ensAddress?: string;
10
12
  /** Currency used by chain */
11
13
  nativeCurrency?: AddEthereumChainParameter['nativeCurrency'];
12
14
  /** Collection of RPC endpoints */
@@ -2,11 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var client = require('./client-4172f963.cjs.dev.js');
6
- var base = require('./base-321ac87a.cjs.dev.js');
5
+ var client = require('./client-d5a20a13.cjs.dev.js');
6
+ var base = require('./base-9fa7951e.cjs.dev.js');
7
7
  var ethers$1 = require('ethers/lib/ethers');
8
8
  var utils = require('ethers/lib/utils');
9
- var chains = require('./chains-98e2e613.cjs.dev.js');
9
+ var chains = require('./chains-b4a51a84.cjs.dev.js');
10
10
  var ethers = require('ethers');
11
11
  var rpcs = require('./rpcs-9c4eb960.cjs.dev.js');
12
12
  require('zustand/vanilla');
@@ -27,6 +27,7 @@ function configureChains(defaultChains, providers) {
27
27
  targetQuorum = 1,
28
28
  stallTimeout
29
29
  } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
30
+ if (!defaultChains.length) throw new Error('must have at least one chain');
30
31
  if (targetQuorum < minQuorum) throw new Error('quorum cannot be lower than minQuorum');
31
32
  let chains = [];
32
33
  const providers_ = {};
@@ -68,25 +69,32 @@ function configureChains(defaultChains, providers) {
68
69
  return {
69
70
  chains,
70
71
  provider: _ref2 => {
72
+ var _defaultChains$, _chainProviders$;
73
+
71
74
  let {
72
75
  chainId
73
76
  } = _ref2;
74
- const chainProviders = providers_[chainId && chains.some(x => x.id === chainId) ? chainId : defaultChains[0].id];
75
- if (chainProviders.length === 1) return chainProviders[0]();
77
+ const activeChainId = chainId && chains.some(x => x.id === chainId) ? chainId : (_defaultChains$ = defaultChains[0]) === null || _defaultChains$ === void 0 ? void 0 : _defaultChains$.id;
78
+ const chainProviders = providers_[activeChainId];
79
+ if (!chainProviders) throw new Error("No providers configured for chain \"".concat(activeChainId, "\""));
80
+ if (chainProviders.length === 1) return (_chainProviders$ = chainProviders[0]) === null || _chainProviders$ === void 0 ? void 0 : _chainProviders$.call(chainProviders);
76
81
  return fallbackProvider(targetQuorum, minQuorum, chainProviders, {
77
82
  stallTimeout
78
83
  });
79
84
  },
80
85
  webSocketProvider: _ref3 => {
86
+ var _defaultChains$2, _chainWebSocketProvid, _chainWebSocketProvid2;
87
+
81
88
  let {
82
89
  chainId
83
90
  } = _ref3;
84
- const chainWebSocketProviders = webSocketProviders_[chainId && chains.some(x => x.id === chainId) ? chainId : defaultChains[0].id];
91
+ const activeChainId = chainId && chains.some(x => x.id === chainId) ? chainId : (_defaultChains$2 = defaultChains[0]) === null || _defaultChains$2 === void 0 ? void 0 : _defaultChains$2.id;
92
+ const chainWebSocketProviders = webSocketProviders_[activeChainId];
85
93
  if (!chainWebSocketProviders) return undefined;
86
- if (chainWebSocketProviders.length === 1) return chainWebSocketProviders[0](); // WebSockets do not work with `fallbackProvider`
94
+ if (chainWebSocketProviders.length === 1) return (_chainWebSocketProvid = chainWebSocketProviders[0]) === null || _chainWebSocketProvid === void 0 ? void 0 : _chainWebSocketProvid.call(chainWebSocketProviders); // WebSockets do not work with `fallbackProvider`
87
95
  // Default to first available
88
96
 
89
- return chainWebSocketProviders[0]();
97
+ return (_chainWebSocketProvid2 = chainWebSocketProviders[0]) === null || _chainWebSocketProvid2 === void 0 ? void 0 : _chainWebSocketProvid2.call(chainWebSocketProviders);
90
98
  }
91
99
  };
92
100
  }
@@ -124,11 +132,14 @@ function fallbackProvider(targetQuorum, minQuorum, providers_, _ref4) {
124
132
 
125
133
  async function connect(_ref) {
126
134
  let {
135
+ chainId,
127
136
  connector
128
137
  } = _ref;
129
138
  const activeConnector = client.client.connector;
130
139
  if (connector.id === (activeConnector === null || activeConnector === void 0 ? void 0 : activeConnector.id)) throw new base.ConnectorAlreadyConnectedError();
131
- const data = await connector.connect();
140
+ const data = await connector.connect({
141
+ chainId
142
+ });
132
143
  client.client.setLastUsedConnector(connector.id);
133
144
  client.client.setState(x => ({ ...x,
134
145
  connector,
@@ -2,11 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var client = require('./client-a06c45f3.cjs.prod.js');
6
- var base = require('./base-6841ebe0.cjs.prod.js');
5
+ var client = require('./client-a774f14a.cjs.prod.js');
6
+ var base = require('./base-b7c3f31e.cjs.prod.js');
7
7
  var ethers$1 = require('ethers/lib/ethers');
8
8
  var utils = require('ethers/lib/utils');
9
- var chains = require('./chains-0dd661ab.cjs.prod.js');
9
+ var chains = require('./chains-7204b2dd.cjs.prod.js');
10
10
  var ethers = require('ethers');
11
11
  var rpcs = require('./rpcs-b3c52116.cjs.prod.js');
12
12
  require('zustand/vanilla');
@@ -27,6 +27,7 @@ function configureChains(defaultChains, providers) {
27
27
  targetQuorum = 1,
28
28
  stallTimeout
29
29
  } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
30
+ if (!defaultChains.length) throw new Error('must have at least one chain');
30
31
  if (targetQuorum < minQuorum) throw new Error('quorum cannot be lower than minQuorum');
31
32
  let chains = [];
32
33
  const providers_ = {};
@@ -68,25 +69,32 @@ function configureChains(defaultChains, providers) {
68
69
  return {
69
70
  chains,
70
71
  provider: _ref2 => {
72
+ var _defaultChains$, _chainProviders$;
73
+
71
74
  let {
72
75
  chainId
73
76
  } = _ref2;
74
- const chainProviders = providers_[chainId && chains.some(x => x.id === chainId) ? chainId : defaultChains[0].id];
75
- if (chainProviders.length === 1) return chainProviders[0]();
77
+ const activeChainId = chainId && chains.some(x => x.id === chainId) ? chainId : (_defaultChains$ = defaultChains[0]) === null || _defaultChains$ === void 0 ? void 0 : _defaultChains$.id;
78
+ const chainProviders = providers_[activeChainId];
79
+ if (!chainProviders) throw new Error("No providers configured for chain \"".concat(activeChainId, "\""));
80
+ if (chainProviders.length === 1) return (_chainProviders$ = chainProviders[0]) === null || _chainProviders$ === void 0 ? void 0 : _chainProviders$.call(chainProviders);
76
81
  return fallbackProvider(targetQuorum, minQuorum, chainProviders, {
77
82
  stallTimeout
78
83
  });
79
84
  },
80
85
  webSocketProvider: _ref3 => {
86
+ var _defaultChains$2, _chainWebSocketProvid, _chainWebSocketProvid2;
87
+
81
88
  let {
82
89
  chainId
83
90
  } = _ref3;
84
- const chainWebSocketProviders = webSocketProviders_[chainId && chains.some(x => x.id === chainId) ? chainId : defaultChains[0].id];
91
+ const activeChainId = chainId && chains.some(x => x.id === chainId) ? chainId : (_defaultChains$2 = defaultChains[0]) === null || _defaultChains$2 === void 0 ? void 0 : _defaultChains$2.id;
92
+ const chainWebSocketProviders = webSocketProviders_[activeChainId];
85
93
  if (!chainWebSocketProviders) return undefined;
86
- if (chainWebSocketProviders.length === 1) return chainWebSocketProviders[0](); // WebSockets do not work with `fallbackProvider`
94
+ if (chainWebSocketProviders.length === 1) return (_chainWebSocketProvid = chainWebSocketProviders[0]) === null || _chainWebSocketProvid === void 0 ? void 0 : _chainWebSocketProvid.call(chainWebSocketProviders); // WebSockets do not work with `fallbackProvider`
87
95
  // Default to first available
88
96
 
89
- return chainWebSocketProviders[0]();
97
+ return (_chainWebSocketProvid2 = chainWebSocketProviders[0]) === null || _chainWebSocketProvid2 === void 0 ? void 0 : _chainWebSocketProvid2.call(chainWebSocketProviders);
90
98
  }
91
99
  };
92
100
  }
@@ -124,11 +132,14 @@ function fallbackProvider(targetQuorum, minQuorum, providers_, _ref4) {
124
132
 
125
133
  async function connect(_ref) {
126
134
  let {
135
+ chainId,
127
136
  connector
128
137
  } = _ref;
129
138
  const activeConnector = client.client.connector;
130
139
  if (connector.id === (activeConnector === null || activeConnector === void 0 ? void 0 : activeConnector.id)) throw new base.ConnectorAlreadyConnectedError();
131
- const data = await connector.connect();
140
+ const data = await connector.connect({
141
+ chainId
142
+ });
132
143
  client.client.setLastUsedConnector(connector.id);
133
144
  client.client.setState(x => ({ ...x,
134
145
  connector,
@@ -1,11 +1,11 @@
1
- import { c as client, g as getClient } from './client-87c1ff8b.esm.js';
2
- export { C as Client, I as InjectedConnector, a as createClient, b as createStorage, n as noopStorage } from './client-87c1ff8b.esm.js';
3
- import { C as ConnectorAlreadyConnectedError, a as ConnectorNotFoundError, U as UserRejectedRequestError, S as SwitchChainNotSupportedError } from './base-41fb6637.esm.js';
4
- export { A as AddChainError, c as ChainNotConfiguredError, b as Connector, C as ConnectorAlreadyConnectedError, a as ConnectorNotFoundError, P as ProviderRpcError, R as ResourceUnavailableError, d as RpcError, e as SwitchChainError, S as SwitchChainNotSupportedError, U as UserRejectedRequestError, n as normalizeChainId } from './base-41fb6637.esm.js';
1
+ import { c as client, g as getClient } from './client-e01209d5.esm.js';
2
+ export { C as Client, I as InjectedConnector, a as createClient, b as createStorage, n as noopStorage } from './client-e01209d5.esm.js';
3
+ import { C as ConnectorAlreadyConnectedError, a as ConnectorNotFoundError, U as UserRejectedRequestError, S as SwitchChainNotSupportedError } from './base-4c248b82.esm.js';
4
+ export { A as AddChainError, c as ChainNotConfiguredError, b as Connector, C as ConnectorAlreadyConnectedError, a as ConnectorNotFoundError, P as ProviderRpcError, R as ResourceUnavailableError, d as RpcError, e as SwitchChainError, S as SwitchChainNotSupportedError, U as UserRejectedRequestError, n as normalizeChainId } from './base-4c248b82.esm.js';
5
5
  import { Contract } from 'ethers/lib/ethers';
6
6
  import { formatUnits, getAddress } from 'ethers/lib/utils';
7
- import { a as allChains } from './chains-a0a80d94.esm.js';
8
- export { a as allChains, c as chain, b as chainId, d as defaultChains, e as defaultL2Chains, f as etherscanBlockExplorers } from './chains-a0a80d94.esm.js';
7
+ import { a as allChains } from './chains-42648bc5.esm.js';
8
+ export { a as allChains, c as chain, b as chainId, d as defaultChains, e as defaultL2Chains, f as etherscanBlockExplorers } from './chains-42648bc5.esm.js';
9
9
  import { providers, Contract as Contract$1 } from 'ethers';
10
10
  export { a as alchemyRpcUrls, i as infuraRpcUrls } from './rpcs-7cfbd91c.esm.js';
11
11
  import 'zustand/vanilla';
@@ -26,6 +26,7 @@ function configureChains(defaultChains, providers) {
26
26
  targetQuorum = 1,
27
27
  stallTimeout
28
28
  } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
29
+ if (!defaultChains.length) throw new Error('must have at least one chain');
29
30
  if (targetQuorum < minQuorum) throw new Error('quorum cannot be lower than minQuorum');
30
31
  let chains = [];
31
32
  const providers_ = {};
@@ -67,25 +68,32 @@ function configureChains(defaultChains, providers) {
67
68
  return {
68
69
  chains,
69
70
  provider: _ref2 => {
71
+ var _defaultChains$, _chainProviders$;
72
+
70
73
  let {
71
74
  chainId
72
75
  } = _ref2;
73
- const chainProviders = providers_[chainId && chains.some(x => x.id === chainId) ? chainId : defaultChains[0].id];
74
- if (chainProviders.length === 1) return chainProviders[0]();
76
+ const activeChainId = chainId && chains.some(x => x.id === chainId) ? chainId : (_defaultChains$ = defaultChains[0]) === null || _defaultChains$ === void 0 ? void 0 : _defaultChains$.id;
77
+ const chainProviders = providers_[activeChainId];
78
+ if (!chainProviders) throw new Error("No providers configured for chain \"".concat(activeChainId, "\""));
79
+ if (chainProviders.length === 1) return (_chainProviders$ = chainProviders[0]) === null || _chainProviders$ === void 0 ? void 0 : _chainProviders$.call(chainProviders);
75
80
  return fallbackProvider(targetQuorum, minQuorum, chainProviders, {
76
81
  stallTimeout
77
82
  });
78
83
  },
79
84
  webSocketProvider: _ref3 => {
85
+ var _defaultChains$2, _chainWebSocketProvid, _chainWebSocketProvid2;
86
+
80
87
  let {
81
88
  chainId
82
89
  } = _ref3;
83
- const chainWebSocketProviders = webSocketProviders_[chainId && chains.some(x => x.id === chainId) ? chainId : defaultChains[0].id];
90
+ const activeChainId = chainId && chains.some(x => x.id === chainId) ? chainId : (_defaultChains$2 = defaultChains[0]) === null || _defaultChains$2 === void 0 ? void 0 : _defaultChains$2.id;
91
+ const chainWebSocketProviders = webSocketProviders_[activeChainId];
84
92
  if (!chainWebSocketProviders) return undefined;
85
- if (chainWebSocketProviders.length === 1) return chainWebSocketProviders[0](); // WebSockets do not work with `fallbackProvider`
93
+ if (chainWebSocketProviders.length === 1) return (_chainWebSocketProvid = chainWebSocketProviders[0]) === null || _chainWebSocketProvid === void 0 ? void 0 : _chainWebSocketProvid.call(chainWebSocketProviders); // WebSockets do not work with `fallbackProvider`
86
94
  // Default to first available
87
95
 
88
- return chainWebSocketProviders[0]();
96
+ return (_chainWebSocketProvid2 = chainWebSocketProviders[0]) === null || _chainWebSocketProvid2 === void 0 ? void 0 : _chainWebSocketProvid2.call(chainWebSocketProviders);
89
97
  }
90
98
  };
91
99
  }
@@ -123,11 +131,14 @@ function fallbackProvider(targetQuorum, minQuorum, providers_, _ref4) {
123
131
 
124
132
  async function connect(_ref) {
125
133
  let {
134
+ chainId,
126
135
  connector
127
136
  } = _ref;
128
137
  const activeConnector = client.connector;
129
138
  if (connector.id === (activeConnector === null || activeConnector === void 0 ? void 0 : activeConnector.id)) throw new ConnectorAlreadyConnectedError();
130
- const data = await connector.connect();
139
+ const data = await connector.connect({
140
+ chainId
141
+ });
131
142
  client.setLastUsedConnector(connector.id);
132
143
  client.setState(x => ({ ...x,
133
144
  connector,
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@wagmi/core",
3
3
  "description": "Vanilla JS library for Ethereum",
4
4
  "license": "WAGMIT",
5
- "version": "0.3.5",
5
+ "version": "0.3.8",
6
6
  "repository": "tmm/wagmi",
7
7
  "author": "awkweb.eth",
8
8
  "ethereum": "awkweb.eth",
@@ -73,7 +73,7 @@
73
73
  ]
74
74
  },
75
75
  "peerDependencies": {
76
- "@coinbase/wallet-sdk": ">=3.0.6",
76
+ "@coinbase/wallet-sdk": ">=3.2.0",
77
77
  "@walletconnect/ethereum-provider": ">=1.7.5",
78
78
  "ethers": ">=5.5.1"
79
79
  },
@@ -90,7 +90,7 @@
90
90
  "zustand": "^4.0.0-rc.1"
91
91
  },
92
92
  "devDependencies": {
93
- "@coinbase/wallet-sdk": "^3.1.0",
93
+ "@coinbase/wallet-sdk": "^3.2.0",
94
94
  "@walletconnect/ethereum-provider": "^1.7.8",
95
95
  "ethers": "^5.6.5"
96
96
  },
@@ -25,6 +25,7 @@ function jsonRpcProvider(_ref) {
25
25
  provider: () => {
26
26
  const RpcProvider = static_ ? ethers.providers.StaticJsonRpcProvider : ethers.providers.JsonRpcProvider;
27
27
  const provider = new RpcProvider(rpcConfig.http, {
28
+ ensAddress: chain.ensAddress,
28
29
  chainId: chain.id,
29
30
  name: chain.network
30
31
  });
@@ -25,6 +25,7 @@ function jsonRpcProvider(_ref) {
25
25
  provider: () => {
26
26
  const RpcProvider = static_ ? ethers.providers.StaticJsonRpcProvider : ethers.providers.JsonRpcProvider;
27
27
  const provider = new RpcProvider(rpcConfig.http, {
28
+ ensAddress: chain.ensAddress,
28
29
  chainId: chain.id,
29
30
  name: chain.network
30
31
  });
@@ -21,6 +21,7 @@ function jsonRpcProvider(_ref) {
21
21
  provider: () => {
22
22
  const RpcProvider = static_ ? providers.StaticJsonRpcProvider : providers.JsonRpcProvider;
23
23
  const provider = new RpcProvider(rpcConfig.http, {
24
+ ensAddress: chain.ensAddress,
24
25
  chainId: chain.id,
25
26
  name: chain.network
26
27
  });