@wagmi/core 0.3.5 → 0.3.6

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 (31) hide show
  1. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +28 -9
  2. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +28 -9
  3. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +28 -9
  4. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.dev.js +10 -8
  5. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.prod.js +10 -8
  6. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js +10 -8
  7. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +19 -6
  8. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +19 -6
  9. package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +19 -6
  10. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +28 -5
  11. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +28 -5
  12. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +28 -5
  13. package/dist/{base-321ac87a.cjs.dev.js → base-d45bb8f9.cjs.dev.js} +5 -3
  14. package/dist/{base-41fb6637.esm.js → base-d69e580f.esm.js} +6 -4
  15. package/dist/{base-6841ebe0.cjs.prod.js → base-ffe4d8ed.cjs.prod.js} +5 -3
  16. package/dist/{client-4172f963.cjs.dev.js → client-20bfac7f.cjs.dev.js} +66 -12
  17. package/dist/{client-87c1ff8b.esm.js → client-61f14c97.esm.js} +66 -12
  18. package/dist/{client-a06c45f3.cjs.prod.js → client-8b124969.cjs.prod.js} +66 -12
  19. package/dist/declarations/src/actions/accounts/connect.d.ts +3 -1
  20. package/dist/declarations/src/client.d.ts +1 -0
  21. package/dist/declarations/src/connectors/base.d.ts +7 -2
  22. package/dist/declarations/src/connectors/coinbaseWallet.d.ts +4 -2
  23. package/dist/declarations/src/connectors/injected.d.ts +9 -1
  24. package/dist/declarations/src/connectors/metaMask.d.ts +2 -2
  25. package/dist/declarations/src/connectors/mock/connector.d.ts +6 -2
  26. package/dist/declarations/src/connectors/mock/provider.d.ts +1 -1
  27. package/dist/declarations/src/connectors/walletConnect.d.ts +7 -2
  28. package/dist/wagmi-core.cjs.dev.js +6 -3
  29. package/dist/wagmi-core.cjs.prod.js +6 -3
  30. package/dist/wagmi-core.esm.js +8 -5
  31. package/package.json +1 -1
@@ -2,6 +2,8 @@ import { Client } from '../../client';
2
2
  import { Connector, ConnectorData } from '../../connectors';
3
3
  import { Provider } from '../../types';
4
4
  export declare type ConnectArgs = {
5
+ /** Chain ID to connect to */
6
+ chainId?: number;
5
7
  /** Connector to connect */
6
8
  connector: Connector;
7
9
  };
@@ -12,5 +14,5 @@ export declare type ConnectResult<TProvider extends Provider = Provider> = {
12
14
  connector: Client<TProvider>['connector'];
13
15
  provider: Data<TProvider>['provider'];
14
16
  };
15
- export declare function connect<TProvider extends Provider = Provider>({ connector, }: ConnectArgs): Promise<ConnectResult<TProvider>>;
17
+ export declare function connect<TProvider extends Provider = Provider>({ chainId, connector, }: ConnectArgs): Promise<ConnectResult<TProvider>>;
16
18
  export {};
@@ -60,6 +60,7 @@ export declare class Client<TProvider extends Provider = Provider, TWebSocketPro
60
60
  get connector(): Connector<any, any> | undefined;
61
61
  get data(): Data<TProvider> | undefined;
62
62
  get error(): Error | undefined;
63
+ get lastUsedChainId(): number | undefined;
63
64
  get provider(): TProvider;
64
65
  get status(): "connecting" | "connected" | "reconnecting" | "disconnected";
65
66
  get subscribe(): {
@@ -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;
@@ -2,8 +2,8 @@
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-20bfac7f.cjs.dev.js');
6
+ var base = require('./base-d45bb8f9.cjs.dev.js');
7
7
  var ethers$1 = require('ethers/lib/ethers');
8
8
  var utils = require('ethers/lib/utils');
9
9
  var chains = require('./chains-98e2e613.cjs.dev.js');
@@ -124,11 +124,14 @@ function fallbackProvider(targetQuorum, minQuorum, providers_, _ref4) {
124
124
 
125
125
  async function connect(_ref) {
126
126
  let {
127
+ chainId,
127
128
  connector
128
129
  } = _ref;
129
130
  const activeConnector = client.client.connector;
130
131
  if (connector.id === (activeConnector === null || activeConnector === void 0 ? void 0 : activeConnector.id)) throw new base.ConnectorAlreadyConnectedError();
131
- const data = await connector.connect();
132
+ const data = await connector.connect({
133
+ chainId
134
+ });
132
135
  client.client.setLastUsedConnector(connector.id);
133
136
  client.client.setState(x => ({ ...x,
134
137
  connector,
@@ -2,8 +2,8 @@
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-8b124969.cjs.prod.js');
6
+ var base = require('./base-ffe4d8ed.cjs.prod.js');
7
7
  var ethers$1 = require('ethers/lib/ethers');
8
8
  var utils = require('ethers/lib/utils');
9
9
  var chains = require('./chains-0dd661ab.cjs.prod.js');
@@ -124,11 +124,14 @@ function fallbackProvider(targetQuorum, minQuorum, providers_, _ref4) {
124
124
 
125
125
  async function connect(_ref) {
126
126
  let {
127
+ chainId,
127
128
  connector
128
129
  } = _ref;
129
130
  const activeConnector = client.client.connector;
130
131
  if (connector.id === (activeConnector === null || activeConnector === void 0 ? void 0 : activeConnector.id)) throw new base.ConnectorAlreadyConnectedError();
131
- const data = await connector.connect();
132
+ const data = await connector.connect({
133
+ chainId
134
+ });
132
135
  client.client.setLastUsedConnector(connector.id);
133
136
  client.client.setState(x => ({ ...x,
134
137
  connector,
@@ -1,7 +1,7 @@
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-61f14c97.esm.js';
2
+ export { C as Client, I as InjectedConnector, a as createClient, b as createStorage, n as noopStorage } from './client-61f14c97.esm.js';
3
+ import { C as ConnectorAlreadyConnectedError, a as ConnectorNotFoundError, U as UserRejectedRequestError, S as SwitchChainNotSupportedError } from './base-d69e580f.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-d69e580f.esm.js';
5
5
  import { Contract } from 'ethers/lib/ethers';
6
6
  import { formatUnits, getAddress } from 'ethers/lib/utils';
7
7
  import { a as allChains } from './chains-a0a80d94.esm.js';
@@ -123,11 +123,14 @@ function fallbackProvider(targetQuorum, minQuorum, providers_, _ref4) {
123
123
 
124
124
  async function connect(_ref) {
125
125
  let {
126
+ chainId,
126
127
  connector
127
128
  } = _ref;
128
129
  const activeConnector = client.connector;
129
130
  if (connector.id === (activeConnector === null || activeConnector === void 0 ? void 0 : activeConnector.id)) throw new ConnectorAlreadyConnectedError();
130
- const data = await connector.connect();
131
+ const data = await connector.connect({
132
+ chainId
133
+ });
131
134
  client.setLastUsedConnector(connector.id);
132
135
  client.setState(x => ({ ...x,
133
136
  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.6",
6
6
  "repository": "tmm/wagmi",
7
7
  "author": "awkweb.eth",
8
8
  "ethereum": "awkweb.eth",