@wagmi/core 0.4.8 → 0.5.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 (78) hide show
  1. package/README.md +5 -5
  2. package/chains/dist/wagmi-core-chains.cjs.dev.js +2 -2
  3. package/chains/dist/wagmi-core-chains.cjs.prod.js +2 -2
  4. package/chains/dist/wagmi-core-chains.esm.js +2 -2
  5. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +28 -26
  6. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +28 -26
  7. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +5 -3
  8. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.dev.js +22 -23
  9. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.prod.js +22 -23
  10. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js +7 -8
  11. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +33 -31
  12. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +33 -31
  13. package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +6 -4
  14. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +24 -25
  15. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +24 -25
  16. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +5 -6
  17. package/dist/{chains-7e6dc59c.cjs.dev.js → chains-13baf029.cjs.prod.js} +4 -4
  18. package/dist/{chains-fd2c546c.esm.js → chains-4b1a6cf8.esm.js} +4 -4
  19. package/dist/{chains-f7bb3211.cjs.prod.js → chains-a1aae67e.cjs.dev.js} +4 -4
  20. package/dist/declarations/src/actions/accounts/fetchBalance.d.ts +0 -1
  21. package/dist/declarations/src/actions/accounts/fetchSigner.d.ts +3 -3
  22. package/dist/declarations/src/actions/contracts/deprecatedWriteContract.d.ts +16 -0
  23. package/dist/declarations/src/actions/{tokens → contracts}/fetchToken.d.ts +1 -0
  24. package/dist/declarations/src/actions/contracts/index.d.ts +4 -1
  25. package/dist/declarations/src/actions/contracts/prepareWriteContract.d.ts +37 -0
  26. package/dist/declarations/src/actions/contracts/writeContract.d.ts +44 -8
  27. package/dist/declarations/src/actions/ens/fetchEnsAddress.d.ts +2 -1
  28. package/dist/declarations/src/actions/index.d.ts +2 -3
  29. package/dist/declarations/src/actions/transactions/deprecatedSendTransaction.d.ts +12 -0
  30. package/dist/declarations/src/actions/transactions/fetchTransaction.d.ts +21 -0
  31. package/dist/declarations/src/actions/transactions/index.d.ts +4 -1
  32. package/dist/declarations/src/actions/transactions/prepareSendTransaction.d.ts +36 -0
  33. package/dist/declarations/src/actions/transactions/sendTransaction.d.ts +43 -8
  34. package/dist/declarations/src/client.d.ts +3 -3
  35. package/dist/declarations/src/connectors/base.d.ts +1 -2
  36. package/dist/declarations/src/connectors/coinbaseWallet.d.ts +2 -2
  37. package/dist/declarations/src/connectors/index.d.ts +1 -1
  38. package/dist/declarations/src/connectors/injected.d.ts +4 -4
  39. package/dist/declarations/src/connectors/metaMask.d.ts +1 -1
  40. package/dist/declarations/src/connectors/mock/provider.d.ts +3 -2
  41. package/dist/declarations/src/connectors/walletConnect.d.ts +3 -2
  42. package/dist/declarations/src/constants/index.d.ts +1 -1
  43. package/dist/declarations/src/constants/rpcs.d.ts +2 -2
  44. package/dist/declarations/src/errors.d.ts +10 -3
  45. package/dist/declarations/src/index.d.ts +5 -5
  46. package/dist/declarations/src/providers/alchemy.d.ts +2 -3
  47. package/dist/declarations/src/providers/infura.d.ts +2 -3
  48. package/dist/declarations/src/providers/jsonRpc.d.ts +1 -2
  49. package/dist/declarations/src/providers/public.d.ts +2 -4
  50. package/dist/declarations/src/types/index.d.ts +133 -129
  51. package/dist/declarations/src/utils/configureChains.d.ts +3 -1
  52. package/dist/declarations/src/utils/getInjectedName.d.ts +2 -1
  53. package/dist/{client-a6e61429.cjs.prod.js → getProvider-5b369460.cjs.prod.js} +449 -56
  54. package/dist/{client-a05fd511.esm.js → getProvider-dda5b21b.esm.js} +383 -14
  55. package/dist/{client-71ece661.cjs.dev.js → getProvider-e4848469.cjs.dev.js} +449 -56
  56. package/dist/{rpcs-1fd0a12f.cjs.prod.js → rpcs-3d4e8104.cjs.dev.js} +9 -9
  57. package/dist/{rpcs-f1d24f0e.cjs.dev.js → rpcs-4b3a7778.cjs.prod.js} +9 -9
  58. package/dist/{rpcs-b73a8f60.esm.js → rpcs-5dc0ea1f.esm.js} +8 -8
  59. package/dist/wagmi-core.cjs.dev.js +591 -298
  60. package/dist/wagmi-core.cjs.prod.js +591 -298
  61. package/dist/wagmi-core.esm.js +499 -213
  62. package/package.json +8 -4
  63. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.dev.js +5 -7
  64. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.prod.js +5 -7
  65. package/providers/alchemy/dist/wagmi-core-providers-alchemy.esm.js +5 -7
  66. package/providers/infura/dist/wagmi-core-providers-infura.cjs.dev.js +5 -7
  67. package/providers/infura/dist/wagmi-core-providers-infura.cjs.prod.js +5 -7
  68. package/providers/infura/dist/wagmi-core-providers-infura.esm.js +5 -7
  69. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.dev.js +0 -2
  70. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.prod.js +0 -2
  71. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.esm.js +0 -2
  72. package/providers/public/dist/wagmi-core-providers-public.cjs.dev.js +0 -2
  73. package/providers/public/dist/wagmi-core-providers-public.cjs.prod.js +0 -2
  74. package/providers/public/dist/wagmi-core-providers-public.esm.js +0 -2
  75. package/dist/base-797ad073.cjs.prod.js +0 -343
  76. package/dist/base-90b7f3e4.cjs.dev.js +0 -343
  77. package/dist/base-b565d5d4.esm.js +0 -316
  78. package/dist/declarations/src/actions/tokens/index.d.ts +0 -1
@@ -1,4 +1,4 @@
1
- import { Chain } from '../types';
1
+ import { Chain, Ethereum } from '../types';
2
2
  import { InjectedConnector, InjectedConnectorOptions } from './injected';
3
3
  export declare type MetaMaskConnectorOptions = Pick<InjectedConnectorOptions, 'shimChainChangedDisconnect' | 'shimDisconnect'> & {
4
4
  /**
@@ -1,5 +1,6 @@
1
+ import { providers } from 'ethers';
1
2
  import { default as EventEmitter } from 'eventemitter3';
2
- import { Signer, providers } from 'ethers';
3
+ import { Signer } from '../../types';
3
4
  export declare type MockProviderOptions = {
4
5
  chainId?: number;
5
6
  flags?: {
@@ -23,7 +24,7 @@ export declare class MockProvider extends providers.BaseProvider {
23
24
  enable(): Promise<string[]>;
24
25
  disconnect(): Promise<void>;
25
26
  getAccounts(): Promise<string[]>;
26
- getSigner(): Signer;
27
+ getSigner(): import("ethers").Signer;
27
28
  switchChain(chainId: number): Promise<void>;
28
29
  watchAsset(_asset: {
29
30
  address: string;
@@ -1,9 +1,10 @@
1
- import { providers } from 'ethers';
2
1
  import type WalletConnectProvider from '@walletconnect/ethereum-provider';
2
+ import { providers } from 'ethers';
3
3
  import { Chain } from '../types';
4
4
  import { Connector } from './base';
5
5
  declare type WalletConnectOptions = ConstructorParameters<typeof WalletConnectProvider>[0];
6
- export declare class WalletConnectConnector extends Connector<WalletConnectProvider, WalletConnectOptions> {
6
+ declare type WalletConnectSigner = providers.JsonRpcSigner;
7
+ export declare class WalletConnectConnector extends Connector<WalletConnectProvider, WalletConnectOptions, WalletConnectSigner> {
7
8
  #private;
8
9
  readonly id = "walletConnect";
9
10
  readonly name = "WalletConnect";
@@ -3,6 +3,6 @@ export { etherscanBlockExplorers } from './blockExplorers';
3
3
  export type { BlockExplorer, BlockExplorerName } from './blockExplorers';
4
4
  export { chain, chainId, allChains, defaultChains, defaultL2Chains, } from './chains';
5
5
  export { multicallInterface } from './multicall';
6
- export { alchemyRpcUrls, defaultAlchemyId, defaultInfuraId, infuraRpcUrls, publicRpcUrls, } from './rpcs';
6
+ export { alchemyRpcUrls, defaultAlchemyApiKey, defaultInfuraApiKey, infuraRpcUrls, publicRpcUrls, } from './rpcs';
7
7
  export type { RpcProviderName } from './rpcs';
8
8
  export { units } from './units';
@@ -1,6 +1,6 @@
1
1
  import { ChainName } from './chains';
2
- export declare const defaultAlchemyId = "_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC";
3
- export declare const defaultInfuraId = "84842078b09946638c03157f83405213";
2
+ export declare const defaultAlchemyApiKey = "_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC";
3
+ export declare const defaultInfuraApiKey = "84842078b09946638c03157f83405213";
4
4
  export declare type RpcProviderName = 'alchemy' | 'infura' | 'public';
5
5
  declare type AlchemyChains = Extract<ChainName, 'mainnet' | 'ropsten' | 'rinkeby' | 'goerli' | 'kovan' | 'optimism' | 'optimismKovan' | 'polygon' | 'polygonMumbai' | 'arbitrum' | 'arbitrumRinkeby'>;
6
6
  export declare const alchemyRpcUrls: Record<AlchemyChains, string>;
@@ -1,5 +1,4 @@
1
1
  import { Connector } from './connectors';
2
- import { BlockExplorer } from './constants';
3
2
  import { Chain } from './types';
4
3
  /**
5
4
  * Error subclass implementing JSON RPC 2.0 errors and Ethereum RPC errors per EIP-1474.
@@ -71,11 +70,19 @@ export declare class ConnectorNotFoundError extends Error {
71
70
  name: string;
72
71
  message: string;
73
72
  }
73
+ export declare class ContractMethodDoesNotExistError extends Error {
74
+ name: string;
75
+ constructor({ addressOrName, chainId, functionName, }: {
76
+ addressOrName: string;
77
+ chainId?: number;
78
+ functionName: string;
79
+ });
80
+ }
74
81
  export declare class ContractMethodNoResultError extends Error {
75
82
  name: string;
76
- constructor({ addressOrName, blockExplorer, functionName, }: {
83
+ constructor({ addressOrName, chainId, functionName, }: {
77
84
  addressOrName: string;
78
- blockExplorer?: BlockExplorer;
85
+ chainId?: number;
79
86
  functionName: string;
80
87
  });
81
88
  }
@@ -1,13 +1,13 @@
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';
1
+ export { connect, deprecatedSendTransaction, deprecatedWriteContract, disconnect, fetchBalance, fetchBlockNumber, fetchEnsAddress, fetchEnsAvatar, fetchEnsName, fetchEnsResolver, fetchFeeData, fetchSigner, fetchToken, fetchTransaction, getAccount, getContract, getNetwork, getProvider, getWebSocketProvider, prepareWriteContract, prepareSendTransaction, readContract, readContracts, sendTransaction, signMessage, signTypedData, switchNetwork, waitForTransaction, watchAccount, watchBlockNumber, watchContractEvent, watchNetwork, watchProvider, watchReadContract, watchReadContracts, watchSigner, watchWebSocketProvider, writeContract, } from './actions';
2
+ export type { ConnectArgs, ConnectResult, DeprecatedSendTransactionArgs, DeprecatedSendTransactionResult, DeprecatedWriteContractConfig, DeprecatedWriteContractResult, FetchBalanceArgs, FetchBalanceResult, FetchBlockNumberArgs, FetchBlockNumberResult, FetchEnsAddressArgs, FetchEnsAddressResult, FetchEnsAvatarArgs, FetchEnsAvatarResult, FetchEnsNameArgs, FetchEnsNameResult, FetchEnsResolverArgs, FetchEnsResolverResult, FetchFeeDataArgs, FetchFeeDataResult, FetchSignerResult, FetchTokenArgs, FetchTokenResult, FetchTransactionArgs, FetchTransactionResult, GetAccountResult, GetContractArgs, GetNetworkResult, GetProviderArgs, GetProviderResult, GetWebSocketProviderArgs, GetWebSocketProviderResult, PrepareWriteContractConfig, PrepareWriteContractResult, PrepareSendTransactionArgs, PrepareSendTransactionResult, ReadContractConfig, ReadContractResult, ReadContractsConfig, ReadContractsResult, SendTransactionArgs, SendTransactionPreparedRequest, SendTransactionResult, SendTransactionUnpreparedRequest, SignMessageArgs, SignMessageResult, SignTypedDataArgs, SignTypedDataResult, SwitchNetworkArgs, SwitchNetworkResult, WaitForTransactionArgs, WaitForTransactionResult, WatchAccountCallback, WatchBlockNumberArgs, WatchBlockNumberCallback, WatchNetworkCallback, WatchReadContractConfig, WatchReadContractResult, WatchProviderCallback, WatchSignerCallback, WatchWebSocketProviderCallback, WriteContractArgs, WriteContractPreparedArgs, WriteContractResult, WriteContractUnpreparedArgs, } from './actions';
3
3
  export { createClient, Client } from './client';
4
4
  export type { ClientConfig } from './client';
5
5
  export { Connector, InjectedConnector } from './connectors';
6
- export type { ConnectorData, ConnectorEvents } from './connectors';
6
+ export type { ConnectorData, ConnectorEvents, InjectedConnectorOptions, } from './connectors';
7
7
  export { alchemyRpcUrls, allChains, chain, chainId, defaultChains, defaultL2Chains, erc20ABI, erc721ABI, etherscanBlockExplorers, infuraRpcUrls, publicRpcUrls, units, } from './constants';
8
- export { AddChainError, ChainDoesNotSupportMulticallError, ChainMismatchError, ChainNotConfiguredError, ConnectorAlreadyConnectedError, ConnectorNotFoundError, ContractMethodNoResultError, ProviderChainsNotFound, ProviderRpcError, ResourceUnavailableError, RpcError, SwitchChainError, SwitchChainNotSupportedError, UserRejectedRequestError, } from './errors';
8
+ export { AddChainError, ChainDoesNotSupportMulticallError, ChainMismatchError, ChainNotConfiguredError, ConnectorAlreadyConnectedError, ConnectorNotFoundError, ContractMethodDoesNotExistError, ContractMethodNoResultError, 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, ChainProviderFn, FallbackProviderConfig, ProviderWithFallbackConfig, Provider, Unit, WebSocketProvider, } from './types';
11
+ export type { Chain, ChainProviderFn, Ethereum, FallbackProviderConfig, ProviderWithFallbackConfig, Provider, Signer, Unit, WebSocketProvider, } from './types';
12
12
  export { configureChains, deepEqual, normalizeChainId, parseContractResult, } from './utils';
13
13
  export type { ConfigureChainsConfig } from './utils';
@@ -1,7 +1,6 @@
1
1
  import { providers } from 'ethers';
2
2
  import { ChainProviderFn, FallbackProviderConfig } from '../types';
3
3
  export declare type AlchemyProviderConfig = FallbackProviderConfig & {
4
- alchemyId?: string;
5
- pollingInterval?: number;
4
+ apiKey?: string;
6
5
  };
7
- export declare function alchemyProvider({ alchemyId, pollingInterval, priority, stallTimeout, weight, }?: AlchemyProviderConfig): ChainProviderFn<providers.AlchemyProvider, providers.AlchemyWebSocketProvider>;
6
+ export declare function alchemyProvider({ apiKey, priority, stallTimeout, weight, }?: AlchemyProviderConfig): ChainProviderFn<providers.AlchemyProvider, providers.AlchemyWebSocketProvider>;
@@ -1,7 +1,6 @@
1
1
  import { providers } from 'ethers';
2
2
  import { ChainProviderFn, FallbackProviderConfig } from '../types';
3
3
  export declare type InfuraProviderConfig = FallbackProviderConfig & {
4
- infuraId?: string;
5
- pollingInterval?: number;
4
+ apiKey?: string;
6
5
  };
7
- export declare function infuraProvider({ infuraId, pollingInterval, priority, stallTimeout, weight, }?: InfuraProviderConfig): ChainProviderFn<providers.InfuraProvider, providers.InfuraWebSocketProvider>;
6
+ export declare function infuraProvider({ apiKey, priority, stallTimeout, weight, }?: InfuraProviderConfig): ChainProviderFn<providers.InfuraProvider, providers.InfuraWebSocketProvider>;
@@ -1,11 +1,10 @@
1
1
  import { providers } from 'ethers';
2
2
  import { Chain, ChainProviderFn, FallbackProviderConfig } from '../types';
3
3
  export declare type JsonRpcProviderConfig = FallbackProviderConfig & {
4
- pollingInterval?: number;
5
4
  rpc: (chain: Chain) => {
6
5
  http: string;
7
6
  webSocket?: string;
8
7
  } | null;
9
8
  static?: boolean;
10
9
  };
11
- export declare function jsonRpcProvider({ pollingInterval, priority, rpc, stallTimeout, static: static_, weight, }: JsonRpcProviderConfig): ChainProviderFn<providers.JsonRpcProvider, providers.WebSocketProvider>;
10
+ export declare function jsonRpcProvider({ priority, rpc, stallTimeout, static: static_, weight, }: JsonRpcProviderConfig): ChainProviderFn<providers.JsonRpcProvider, providers.WebSocketProvider>;
@@ -1,6 +1,4 @@
1
1
  import { providers } from 'ethers';
2
2
  import { ChainProviderFn, FallbackProviderConfig } from '../types';
3
- export declare type PublicProviderConfig = FallbackProviderConfig & {
4
- pollingInterval?: number;
5
- };
6
- export declare function publicProvider({ pollingInterval, priority, stallTimeout, weight, }?: PublicProviderConfig): ChainProviderFn<providers.StaticJsonRpcProvider>;
3
+ export declare type PublicProviderConfig = FallbackProviderConfig;
4
+ export declare function publicProvider({ priority, stallTimeout, weight, }?: PublicProviderConfig): ChainProviderFn<providers.StaticJsonRpcProvider>;
@@ -1,5 +1,7 @@
1
- import { providers } from 'ethers';
1
+ import { Signer as BaseSigner, providers } from 'ethers';
2
2
  import { BlockExplorer, BlockExplorerName, RpcProviderName, units } from '../constants';
3
+ export declare type Address = `0x${string}`;
4
+ export declare type Hash = `0x${string}`;
3
5
  export declare type Chain = {
4
6
  /** ID in number form */
5
7
  id: number;
@@ -48,140 +50,142 @@ export declare type Provider = providers.BaseProvider & {
48
50
  export declare type WebSocketProvider = providers.WebSocketProvider & {
49
51
  chains?: Chain[];
50
52
  };
53
+ export declare type Signer = BaseSigner;
51
54
  export declare type Unit = typeof units[number];
52
- declare global {
53
- type AddEthereumChainParameter = {
54
- /** A 0x-prefixed hexadecimal string */
55
- chainId: string;
56
- chainName: string;
57
- nativeCurrency?: {
58
- name: string;
59
- /** 2-6 characters long */
60
- symbol: string;
61
- decimals: number;
62
- };
63
- rpcUrls: string[];
64
- blockExplorerUrls?: string[];
65
- /** Currently ignored. */
66
- iconUrls?: string[];
67
- };
68
- type WalletPermissionCaveat = {
69
- type: string;
70
- value: any;
55
+ declare type AddEthereumChainParameter = {
56
+ /** A 0x-prefixed hexadecimal string */
57
+ chainId: string;
58
+ chainName: string;
59
+ nativeCurrency?: {
60
+ name: string;
61
+ /** 2-6 characters long */
62
+ symbol: string;
63
+ decimals: number;
71
64
  };
72
- type WalletPermission = {
73
- caveats: WalletPermissionCaveat[];
74
- date: number;
75
- id: string;
76
- invoker: `http://${string}` | `https://${string}`;
77
- parentCapability: 'eth_accounts' | string;
78
- };
79
- type WatchAssetParams = {
80
- /** In the future, other standards will be supported */
81
- type: 'ERC20';
82
- options: {
83
- /** Address of token contract */
84
- address: string;
85
- /** Number of token decimals */
86
- decimals: number;
87
- /** String url of token logo */
88
- image?: string;
89
- /** A ticker symbol or shorthand, up to 5 characters */
90
- symbol: string;
91
- };
65
+ rpcUrls: string[];
66
+ blockExplorerUrls?: string[];
67
+ /** Currently ignored. */
68
+ iconUrls?: string[];
69
+ };
70
+ declare type WalletPermissionCaveat = {
71
+ type: string;
72
+ value: any;
73
+ };
74
+ declare type WalletPermission = {
75
+ caveats: WalletPermissionCaveat[];
76
+ date: number;
77
+ id: string;
78
+ invoker: `http://${string}` | `https://${string}`;
79
+ parentCapability: 'eth_accounts' | string;
80
+ };
81
+ declare type WatchAssetParams = {
82
+ /** In the future, other standards will be supported */
83
+ type: 'ERC20';
84
+ options: {
85
+ /** Address of token contract */
86
+ address: string;
87
+ /** Number of token decimals */
88
+ decimals: number;
89
+ /** String url of token logo */
90
+ image?: string;
91
+ /** A ticker symbol or shorthand, up to 5 characters */
92
+ symbol: string;
92
93
  };
93
- type InjectedProviderFlags = {
94
- isBraveWallet?: true;
95
- isCoinbaseWallet?: true;
96
- isExodus?: true;
97
- isFrame?: true;
98
- isMetaMask?: true;
99
- isOpera?: true;
100
- isTally?: true;
101
- isTokenPocket?: true;
102
- isTokenary?: true;
103
- isTrust?: true;
94
+ };
95
+ declare type InjectedProviderFlags = {
96
+ isBraveWallet?: true;
97
+ isCoinbaseWallet?: true;
98
+ isExodus?: true;
99
+ isFrame?: true;
100
+ isMetaMask?: true;
101
+ isOpera?: true;
102
+ isTally?: true;
103
+ isTokenPocket?: true;
104
+ isTokenary?: true;
105
+ isTrust?: true;
106
+ };
107
+ declare type InjectedProviders = InjectedProviderFlags & {
108
+ isMetaMask: true;
109
+ /** Only exists in MetaMask as of 2022/04/03 */
110
+ _events: {
111
+ connect?: () => void;
104
112
  };
105
- type InjectedProviders = InjectedProviderFlags & {
106
- isMetaMask: true;
107
- /** Only exists in MetaMask as of 2022/04/03 */
108
- _events: {
109
- connect?: () => void;
110
- };
111
- /** Only exists in MetaMask as of 2022/04/03 */
112
- _state?: {
113
- accounts?: string[];
114
- initialized?: boolean;
115
- isConnected?: boolean;
116
- isPermanentlyDisconnected?: boolean;
117
- isUnlocked?: boolean;
118
- };
113
+ /** Only exists in MetaMask as of 2022/04/03 */
114
+ _state?: {
115
+ accounts?: string[];
116
+ initialized?: boolean;
117
+ isConnected?: boolean;
118
+ isPermanentlyDisconnected?: boolean;
119
+ isUnlocked?: boolean;
119
120
  };
120
- interface Ethereum extends InjectedProviders {
121
- on?: (...args: any[]) => void;
122
- removeListener?: (...args: any[]) => void;
123
- providers?: Ethereum[];
124
- /**
125
- * EIP-747: Add wallet_watchAsset to Provider
126
- * https://eips.ethereum.org/EIPS/eip-747
127
- */
128
- request(args: {
129
- method: 'wallet_watchAsset';
130
- params: WatchAssetParams;
131
- }): Promise<boolean>;
132
- /**
133
- * EIP-1193: Ethereum Provider JavaScript API
134
- * https://eips.ethereum.org/EIPS/eip-1193
135
- */
136
- request(args: {
137
- method: 'eth_accounts';
138
- }): Promise<string[]>;
139
- request(args: {
140
- method: 'eth_chainId';
141
- }): Promise<string>;
142
- request(args: {
143
- method: 'eth_requestAccounts';
144
- }): Promise<string[]>;
145
- /**
146
- * EIP-1474: Remote procedure call specification
147
- * https://eips.ethereum.org/EIPS/eip-1474
148
- */
149
- request(args: {
150
- method: 'web3_clientVersion';
151
- }): Promise<string>;
152
- /**
153
- * EIP-2255: Wallet Permissions System
154
- * https://eips.ethereum.org/EIPS/eip-2255
155
- */
156
- request(args: {
157
- method: 'wallet_requestPermissions';
158
- params: [{
159
- eth_accounts: Record<string, any>;
160
- }];
161
- }): Promise<WalletPermission[]>;
162
- request(args: {
163
- method: 'wallet_getPermissions';
164
- }): Promise<WalletPermission[]>;
165
- /**
166
- * EIP-3085: Wallet Add Ethereum Chain RPC Method
167
- * https://eips.ethereum.org/EIPS/eip-3085
168
- */
169
- request(args: {
170
- method: 'wallet_addEthereumChain';
171
- params: AddEthereumChainParameter[];
172
- }): Promise<null>;
173
- /**
174
- * EIP-3326: Wallet Switch Ethereum Chain RPC Method
175
- * https://eips.ethereum.org/EIPS/eip-3326
176
- */
177
- request(args: {
178
- method: 'wallet_switchEthereumChain';
179
- params: [{
180
- chainId: string;
181
- }];
182
- }): Promise<null>;
183
- }
121
+ };
122
+ export interface Ethereum extends InjectedProviders {
123
+ on?: (...args: any[]) => void;
124
+ removeListener?: (...args: any[]) => void;
125
+ providers?: Ethereum[];
126
+ /**
127
+ * EIP-747: Add wallet_watchAsset to Provider
128
+ * https://eips.ethereum.org/EIPS/eip-747
129
+ */
130
+ request(args: {
131
+ method: 'wallet_watchAsset';
132
+ params: WatchAssetParams;
133
+ }): Promise<boolean>;
134
+ /**
135
+ * EIP-1193: Ethereum Provider JavaScript API
136
+ * https://eips.ethereum.org/EIPS/eip-1193
137
+ */
138
+ request(args: {
139
+ method: 'eth_accounts';
140
+ }): Promise<string[]>;
141
+ request(args: {
142
+ method: 'eth_chainId';
143
+ }): Promise<string>;
144
+ request(args: {
145
+ method: 'eth_requestAccounts';
146
+ }): Promise<string[]>;
147
+ /**
148
+ * EIP-1474: Remote procedure call specification
149
+ * https://eips.ethereum.org/EIPS/eip-1474
150
+ */
151
+ request(args: {
152
+ method: 'web3_clientVersion';
153
+ }): Promise<string>;
154
+ /**
155
+ * EIP-2255: Wallet Permissions System
156
+ * https://eips.ethereum.org/EIPS/eip-2255
157
+ */
158
+ request(args: {
159
+ method: 'wallet_requestPermissions';
160
+ params: [{
161
+ eth_accounts: Record<string, any>;
162
+ }];
163
+ }): Promise<WalletPermission[]>;
164
+ request(args: {
165
+ method: 'wallet_getPermissions';
166
+ }): Promise<WalletPermission[]>;
167
+ /**
168
+ * EIP-3085: Wallet Add Ethereum Chain RPC Method
169
+ * https://eips.ethereum.org/EIPS/eip-3085
170
+ */
171
+ request(args: {
172
+ method: 'wallet_addEthereumChain';
173
+ params: AddEthereumChainParameter[];
174
+ }): Promise<null>;
175
+ /**
176
+ * EIP-3326: Wallet Switch Ethereum Chain RPC Method
177
+ * https://eips.ethereum.org/EIPS/eip-3326
178
+ */
179
+ request(args: {
180
+ method: 'wallet_switchEthereumChain';
181
+ params: [{
182
+ chainId: string;
183
+ }];
184
+ }): Promise<null>;
185
+ }
186
+ declare global {
184
187
  interface Window {
185
188
  ethereum?: Ethereum;
186
189
  }
187
190
  }
191
+ export {};
@@ -1,6 +1,7 @@
1
1
  import { providers } from 'ethers';
2
2
  import { Chain, ChainProviderFn, Provider, WebSocketProvider } from '../types';
3
3
  export declare type ConfigureChainsConfig = {
4
+ pollingInterval?: number;
4
5
  stallTimeout?: number;
5
6
  } & ({
6
7
  targetQuorum?: number;
@@ -9,7 +10,7 @@ export declare type ConfigureChainsConfig = {
9
10
  targetQuorum: number;
10
11
  minQuorum?: number;
11
12
  });
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
+ export declare function configureChains<TProvider extends Provider = Provider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider, TChain extends Chain = Chain>(defaultChains: TChain[], providers: ChainProviderFn<TProvider, TWebSocketProvider, TChain>[], { minQuorum, pollingInterval, targetQuorum, stallTimeout, }?: ConfigureChainsConfig): {
13
14
  readonly chains: TChain[];
14
15
  readonly provider: ({ chainId }: {
15
16
  chainId?: number | undefined;
@@ -17,6 +18,7 @@ export declare function configureChains<TProvider extends Provider = Provider, T
17
18
  chains: TChain[];
18
19
  }) | (providers.FallbackProvider & {
19
20
  chains: TChain[];
21
+ pollingInterval: number;
20
22
  });
21
23
  readonly webSocketProvider: ({ chainId }: {
22
24
  chainId?: number | undefined;
@@ -1 +1,2 @@
1
- export declare function getInjectedName(ethereum?: Window['ethereum']): string | string[];
1
+ import { Ethereum } from '../types';
2
+ export declare function getInjectedName(ethereum?: Ethereum): string | string[];