@wagmi/core 0.2.0-next.9 → 0.2.2

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 (101) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +30 -0
  3. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.d.ts +1 -11
  4. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +234 -0
  5. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.js +6 -15
  6. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +234 -0
  7. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +212 -0
  8. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.d.ts +1 -0
  9. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.dev.js +62 -0
  10. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.js +7 -0
  11. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.prod.js +62 -0
  12. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js +58 -0
  13. package/connectors/metaMask/package.json +4 -0
  14. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.d.ts +1 -11
  15. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +250 -0
  16. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.js +6 -15
  17. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +250 -0
  18. package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +241 -0
  19. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.d.ts +1 -11
  20. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +183 -0
  21. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.js +6 -15
  22. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +183 -0
  23. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +161 -0
  24. package/dist/base-159de546.esm.js +513 -0
  25. package/dist/base-5812b724.cjs.dev.js +540 -0
  26. package/dist/base-59f3457e.cjs.prod.js +540 -0
  27. package/dist/classPrivateMethodGet-55c9909f.esm.js +16 -0
  28. package/dist/classPrivateMethodGet-976c8120.cjs.dev.js +19 -0
  29. package/dist/classPrivateMethodGet-d7330ed7.cjs.prod.js +19 -0
  30. package/dist/client-4d8337e7.cjs.prod.js +606 -0
  31. package/dist/client-5d456446.esm.js +595 -0
  32. package/dist/client-f77a08e4.cjs.dev.js +606 -0
  33. package/dist/declarations/src/actions/accounts/connect.d.ts +16 -0
  34. package/dist/declarations/src/actions/accounts/disconnect.d.ts +1 -0
  35. package/dist/declarations/src/actions/accounts/fetchBalance.d.ts +20 -0
  36. package/dist/declarations/src/actions/accounts/fetchSigner.d.ts +3 -0
  37. package/dist/declarations/src/actions/accounts/getAccount.d.ts +7 -0
  38. package/dist/declarations/src/actions/accounts/getNetwork.d.ts +9 -0
  39. package/dist/declarations/src/actions/accounts/index.d.ts +12 -0
  40. package/dist/declarations/src/actions/accounts/signMessage.d.ts +9 -0
  41. package/dist/declarations/src/actions/accounts/signTypedData.d.ts +13 -0
  42. package/dist/declarations/src/actions/accounts/switchNetwork.d.ts +6 -0
  43. package/dist/declarations/src/actions/accounts/watchAccount.d.ts +4 -0
  44. package/dist/declarations/src/actions/accounts/watchNetwork.d.ts +3 -0
  45. package/dist/declarations/src/actions/accounts/watchSigner.d.ts +3 -0
  46. package/dist/declarations/src/actions/contracts/getContract.d.ts +11 -0
  47. package/dist/declarations/src/actions/contracts/index.d.ts +5 -0
  48. package/dist/declarations/src/actions/contracts/readContract.d.ts +14 -0
  49. package/dist/declarations/src/actions/contracts/watchContractEvent.d.ts +14 -0
  50. package/dist/declarations/src/actions/contracts/watchReadContract.d.ts +7 -0
  51. package/dist/declarations/src/actions/contracts/writeContract.d.ts +11 -0
  52. package/dist/declarations/src/actions/ens/fetchEnsAddress.d.ts +8 -0
  53. package/dist/declarations/src/actions/ens/fetchEnsAvatar.d.ts +8 -0
  54. package/dist/declarations/src/actions/ens/fetchEnsName.d.ts +8 -0
  55. package/dist/declarations/src/actions/ens/fetchEnsResolver.d.ts +9 -0
  56. package/dist/declarations/src/actions/ens/index.d.ts +4 -0
  57. package/dist/declarations/src/actions/index.d.ts +7 -0
  58. package/dist/declarations/src/actions/network-status/fetchBlockNumber.d.ts +5 -0
  59. package/dist/declarations/src/actions/network-status/fetchFeeData.d.ts +16 -0
  60. package/dist/declarations/src/actions/network-status/index.d.ts +3 -0
  61. package/dist/declarations/src/actions/network-status/watchBlockNumber.d.ts +6 -0
  62. package/dist/declarations/src/actions/providers/getProvider.d.ts +7 -0
  63. package/dist/declarations/src/actions/providers/getWebSocketProvider.d.ts +7 -0
  64. package/dist/declarations/src/actions/providers/index.d.ts +4 -0
  65. package/dist/declarations/src/actions/providers/watchProvider.d.ts +4 -0
  66. package/dist/declarations/src/actions/providers/watchWebSocketProvider.d.ts +4 -0
  67. package/dist/declarations/src/actions/tokens/fetchToken.d.ts +20 -0
  68. package/dist/declarations/src/actions/tokens/index.d.ts +1 -0
  69. package/dist/declarations/src/actions/transactions/index.d.ts +2 -0
  70. package/dist/declarations/src/actions/transactions/sendTransaction.d.ts +7 -0
  71. package/dist/declarations/src/actions/transactions/waitForTransaction.d.ts +17 -0
  72. package/dist/declarations/src/client.d.ts +81 -0
  73. package/dist/declarations/src/connectors/base.d.ts +55 -0
  74. package/dist/declarations/src/connectors/coinbaseWallet.d.ts +52 -0
  75. package/dist/declarations/src/connectors/index.d.ts +2 -0
  76. package/dist/declarations/src/connectors/injected.d.ts +48 -0
  77. package/dist/declarations/src/connectors/metaMask.d.ts +13 -0
  78. package/dist/declarations/src/connectors/mock/connector.d.ts +37 -0
  79. package/dist/declarations/src/connectors/mock/index.d.ts +2 -0
  80. package/dist/declarations/src/connectors/mock/provider.d.ts +42 -0
  81. package/dist/declarations/src/connectors/walletConnect.d.ts +32 -0
  82. package/dist/declarations/src/constants/abis.d.ts +2 -0
  83. package/dist/declarations/src/constants/blockExplorers.d.ts +9 -0
  84. package/dist/declarations/src/constants/chains.d.ts +21 -0
  85. package/dist/declarations/src/constants/index.d.ts +7 -0
  86. package/dist/declarations/src/constants/rpcs.d.ts +9 -0
  87. package/dist/declarations/src/constants/units.d.ts +1 -0
  88. package/dist/declarations/src/errors.d.ts +28 -0
  89. package/dist/declarations/src/index.d.ts +12 -0
  90. package/dist/declarations/src/storage.d.ts +12 -0
  91. package/dist/declarations/src/types/index.d.ts +101 -0
  92. package/dist/declarations/src/utils/getInjectedName.d.ts +1 -0
  93. package/dist/declarations/src/utils/index.d.ts +3 -0
  94. package/dist/declarations/src/utils/normalizeChainId.d.ts +1 -0
  95. package/dist/declarations/src/utils/warn.d.ts +1 -0
  96. package/dist/wagmi-core.cjs.d.ts +1 -11
  97. package/dist/wagmi-core.cjs.dev.js +653 -0
  98. package/dist/wagmi-core.cjs.js +6 -15
  99. package/dist/wagmi-core.cjs.prod.js +653 -0
  100. package/dist/wagmi-core.esm.js +593 -0
  101. package/package.json +24 -12
@@ -0,0 +1,13 @@
1
+ import type { providers } from 'ethers';
2
+ declare type SignTypedData = Parameters<providers.JsonRpcSigner['_signTypedData']>;
3
+ export declare type SignTypedDataArgs = {
4
+ /** Domain or domain signature for origin or contract */
5
+ domain: SignTypedData[0];
6
+ /** Named list of all type definitions */
7
+ types: SignTypedData[1];
8
+ /** Data to sign */
9
+ value: SignTypedData[2];
10
+ };
11
+ export declare type SignTypedDataResult = string;
12
+ export declare function signTypedData(args: SignTypedDataArgs): Promise<SignTypedDataResult>;
13
+ export {};
@@ -0,0 +1,6 @@
1
+ import { Chain } from '../../types';
2
+ export declare type SwitchNetworkArgs = {
3
+ chainId: number;
4
+ };
5
+ export declare type SwitchNetworkResult = Chain;
6
+ export declare function switchNetwork({ chainId, }: SwitchNetworkArgs): Promise<SwitchNetworkResult>;
@@ -0,0 +1,4 @@
1
+ import type { BaseProvider } from '@ethersproject/providers';
2
+ import { GetAccountResult } from './getAccount';
3
+ export declare type WatchAccountCallback<TProvider extends BaseProvider = BaseProvider> = (data: GetAccountResult<TProvider>) => void;
4
+ export declare function watchAccount<TProvider extends BaseProvider>(callback: WatchAccountCallback<TProvider>): () => void;
@@ -0,0 +1,3 @@
1
+ import { GetNetworkResult } from './getNetwork';
2
+ export declare type WatchNetworkCallback = (data: GetNetworkResult) => void;
3
+ export declare function watchNetwork(callback: WatchNetworkCallback): () => void;
@@ -0,0 +1,3 @@
1
+ import { FetchSignerResult } from './fetchSigner';
2
+ export declare type WatchSignerCallback = (data: FetchSignerResult) => void;
3
+ export declare function watchSigner(callback: WatchSignerCallback): () => void;
@@ -0,0 +1,11 @@
1
+ import type { Provider } from '@ethersproject/providers';
2
+ import { Contract, ContractInterface, Signer } from 'ethers/lib/ethers';
3
+ export declare type GetContractArgs = {
4
+ /** Contract address or ENS name */
5
+ addressOrName: string;
6
+ /** Contract interface or ABI */
7
+ contractInterface: ContractInterface;
8
+ /** Signer or provider to attach to contract */
9
+ signerOrProvider?: Signer | Provider | null;
10
+ };
11
+ export declare function getContract<T = Contract>({ addressOrName, contractInterface, signerOrProvider, }: GetContractArgs): T;
@@ -0,0 +1,5 @@
1
+ export { getContract, type GetContractArgs } from './getContract';
2
+ export { readContract, type ReadContractArgs, type ReadContractConfig, type ReadContractResult, } from './readContract';
3
+ 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';
@@ -0,0 +1,14 @@
1
+ import { CallOverrides, Contract as EthersContract } from 'ethers/lib/ethers';
2
+ import { Result } from 'ethers/lib/utils';
3
+ import { GetContractArgs } from './getContract';
4
+ export declare type ReadContractArgs = Pick<GetContractArgs, 'addressOrName' | 'contractInterface'>;
5
+ export declare type ReadContractConfig = {
6
+ /** Arguments to pass contract method */
7
+ args?: any | any[];
8
+ /** Chain id to use for provider */
9
+ chainId?: number;
10
+ /** Call overrides */
11
+ overrides?: CallOverrides;
12
+ };
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>;
@@ -0,0 +1,14 @@
1
+ import { Contract as EthersContract } from 'ethers/lib/ethers';
2
+ import { GetContractArgs } from './getContract';
3
+ declare type Config = {
4
+ /** Chain id to use for provider */
5
+ chainId?: number;
6
+ /** Receive only a single event */
7
+ once?: boolean;
8
+ };
9
+ export declare function watchContractEvent<Contract extends EthersContract = EthersContract>(
10
+ /** Contract configuration */
11
+ contractArgs: GetContractArgs,
12
+ /** Event name to listen to */
13
+ eventName: Parameters<Contract['on']>[0], callback: Parameters<Contract['on']>[1], { chainId, once }?: Config): () => void;
14
+ export {};
@@ -0,0 +1,7 @@
1
+ import { ReadContractArgs, ReadContractConfig, ReadContractResult } from './readContract';
2
+ export declare type WatchReadContractArgs = ReadContractArgs;
3
+ export declare type WatchReadContractConfig = ReadContractConfig & {
4
+ listenToBlock?: boolean;
5
+ };
6
+ export declare type WatchReadContractResult = (result: ReadContractResult) => void;
7
+ export declare function watchReadContract(contractConfig: WatchReadContractArgs, functionName: string, config: WatchReadContractConfig | undefined, callback: WatchReadContractResult): () => void;
@@ -0,0 +1,11 @@
1
+ import type { TransactionResponse } from '@ethersproject/providers';
2
+ import { CallOverrides, Contract as EthersContract } from 'ethers/lib/ethers';
3
+ import { GetContractArgs } from './getContract';
4
+ export declare type WriteContractArgs = GetContractArgs;
5
+ export declare type WriteContractConfig = {
6
+ /** Arguments to pass contract method */
7
+ args?: any | any[];
8
+ overrides?: CallOverrides;
9
+ };
10
+ export declare type WriteContractResult = TransactionResponse;
11
+ export declare function writeContract<Contract extends EthersContract = EthersContract>(contractConfig: WriteContractArgs, functionName: string, { args, overrides }?: WriteContractConfig): Promise<WriteContractResult>;
@@ -0,0 +1,8 @@
1
+ export declare type FetchEnsAddressArgs = {
2
+ /** Chain id to use for provider */
3
+ chainId?: number;
4
+ /** ENS name to resolve */
5
+ name: string;
6
+ };
7
+ export declare type FetchEnsAddressResult = string | null;
8
+ export declare function fetchEnsAddress({ chainId, name, }: FetchEnsAddressArgs): Promise<FetchEnsAddressResult>;
@@ -0,0 +1,8 @@
1
+ export declare type FetchEnsAvatarArgs = {
2
+ /** Address or ENS name */
3
+ addressOrName: string;
4
+ /** Chain id to use for provider */
5
+ chainId?: number;
6
+ };
7
+ export declare type FetchEnsAvatarResult = string | null;
8
+ export declare function fetchEnsAvatar({ addressOrName, chainId, }: FetchEnsAvatarArgs): Promise<FetchEnsAvatarResult>;
@@ -0,0 +1,8 @@
1
+ export declare type FetchEnsNameArgs = {
2
+ /** Address to lookup */
3
+ address: string;
4
+ /** Chain id to use for provider */
5
+ chainId?: number;
6
+ };
7
+ export declare type FetchEnsNameResult = string | null;
8
+ export declare function fetchEnsName({ address, chainId, }: FetchEnsNameArgs): Promise<FetchEnsNameResult>;
@@ -0,0 +1,9 @@
1
+ import type { Resolver } from '@ethersproject/providers';
2
+ export declare type FetchEnsResolverArgs = {
3
+ /** Chain id to use for provider */
4
+ chainId?: number;
5
+ /** ENS name to resolve */
6
+ name: string;
7
+ };
8
+ export declare type FetchEnsResolverResult = Resolver | null;
9
+ export declare function fetchEnsResolver({ chainId, name, }: FetchEnsResolverArgs): Promise<FetchEnsResolverResult>;
@@ -0,0 +1,4 @@
1
+ export { fetchEnsAddress, type FetchEnsAddressArgs, type FetchEnsAddressResult, } from './fetchEnsAddress';
2
+ export { fetchEnsAvatar, type FetchEnsAvatarArgs, type FetchEnsAvatarResult, } from './fetchEnsAvatar';
3
+ export { fetchEnsName, type FetchEnsNameArgs, type FetchEnsNameResult, } from './fetchEnsName';
4
+ export { fetchEnsResolver, type FetchEnsResolverArgs, type FetchEnsResolverResult, } from './fetchEnsResolver';
@@ -0,0 +1,7 @@
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';
3
+ export { fetchEnsAddress, fetchEnsAvatar, fetchEnsName, fetchEnsResolver, type FetchEnsAddressArgs, type FetchEnsAddressResult, type FetchEnsAvatarArgs, type FetchEnsAvatarResult, type FetchEnsNameArgs, type FetchEnsNameResult, type FetchEnsResolverArgs, type FetchEnsResolverResult, } from './ens';
4
+ export { fetchBlockNumber, fetchFeeData, watchBlockNumber, type FetchBlockNumberArgs, type FetchBlockNumberResult, type FetchFeeDataArgs, type FetchFeeDataResult, type WatchBlockNumberArgs, type WatchBlockNumberCallback, } from './network-status';
5
+ export { getProvider, getWebSocketProvider, watchProvider, watchWebSocketProvider, type GetProviderArgs, type GetProviderResult, type GetWebSocketProviderArgs, type GetWebSocketProviderResult, type WatchProviderCallback, type WatchWebSocketProviderCallback, } from './providers';
6
+ export { fetchToken, type FetchTokenArgs, type FetchTokenResult, } from './tokens';
7
+ export { sendTransaction, waitForTransaction, type SendTransactionArgs, type SendTransactionResult, type WaitForTransactionArgs, type WaitForTransactionResult, } from './transactions';
@@ -0,0 +1,5 @@
1
+ export declare type FetchBlockNumberArgs = {
2
+ chainId?: number;
3
+ };
4
+ export declare type FetchBlockNumberResult = number;
5
+ export declare function fetchBlockNumber({ chainId, }?: FetchBlockNumberArgs): Promise<FetchBlockNumberResult>;
@@ -0,0 +1,16 @@
1
+ import type { FeeData } from '@ethersproject/providers';
2
+ import { Unit } from '../../types';
3
+ export declare type FetchFeeDataArgs = {
4
+ /** Units for formatting output */
5
+ formatUnits?: Unit | number;
6
+ /** Chain id to use for provider */
7
+ chainId?: number;
8
+ };
9
+ export declare type FetchFeeDataResult = FeeData & {
10
+ formatted: {
11
+ gasPrice: string;
12
+ maxFeePerGas: string;
13
+ maxPriorityFeePerGas: string;
14
+ };
15
+ };
16
+ export declare function fetchFeeData({ chainId, formatUnits: units, }?: FetchFeeDataArgs): Promise<FetchFeeDataResult>;
@@ -0,0 +1,3 @@
1
+ export { fetchBlockNumber, type FetchBlockNumberArgs, type FetchBlockNumberResult, } from './fetchBlockNumber';
2
+ export { fetchFeeData, type FetchFeeDataResult, type FetchFeeDataArgs, } from './fetchFeeData';
3
+ export { watchBlockNumber, type WatchBlockNumberArgs, type WatchBlockNumberCallback, } from './watchBlockNumber';
@@ -0,0 +1,6 @@
1
+ import { FetchBlockNumberResult } from './fetchBlockNumber';
2
+ export declare type WatchBlockNumberArgs = {
3
+ listen: boolean;
4
+ };
5
+ export declare type WatchBlockNumberCallback = (blockNumber: FetchBlockNumberResult) => void;
6
+ export declare function watchBlockNumber(args: WatchBlockNumberArgs, callback: WatchBlockNumberCallback): () => void;
@@ -0,0 +1,7 @@
1
+ import type { BaseProvider } from '@ethersproject/providers';
2
+ export declare type GetProviderArgs = {
3
+ /** Chain id to use for provider */
4
+ chainId?: number;
5
+ };
6
+ export declare type GetProviderResult<TProvider extends BaseProvider = BaseProvider> = TProvider;
7
+ export declare function getProvider<TProvider extends BaseProvider = BaseProvider>({ chainId, }?: GetProviderArgs): GetProviderResult<TProvider>;
@@ -0,0 +1,7 @@
1
+ import type { WebSocketProvider } from '@ethersproject/providers';
2
+ export declare type GetWebSocketProviderArgs = {
3
+ /** Chain id to use for provider */
4
+ chainId?: number;
5
+ };
6
+ export declare type GetWebSocketProviderResult<TWebSocketProvider extends WebSocketProvider = WebSocketProvider> = TWebSocketProvider | undefined;
7
+ export declare function getWebSocketProvider<TWebSocketProvider extends WebSocketProvider = WebSocketProvider>({ chainId, }?: GetWebSocketProviderArgs): GetWebSocketProviderResult<TWebSocketProvider>;
@@ -0,0 +1,4 @@
1
+ export { getProvider, type GetProviderArgs, type GetProviderResult, } from './getProvider';
2
+ export { getWebSocketProvider, type GetWebSocketProviderArgs, type GetWebSocketProviderResult, } from './getWebSocketProvider';
3
+ export { watchProvider, type WatchProviderCallback } from './watchProvider';
4
+ export { watchWebSocketProvider, type WatchWebSocketProviderCallback, } from './watchWebSocketProvider';
@@ -0,0 +1,4 @@
1
+ import type { BaseProvider } from '@ethersproject/providers';
2
+ import { GetProviderArgs, GetProviderResult } from './getProvider';
3
+ export declare type WatchProviderCallback<TProvider extends BaseProvider = BaseProvider> = (provider: GetProviderResult<TProvider>) => void;
4
+ export declare function watchProvider<TProvider extends BaseProvider = BaseProvider>(args: GetProviderArgs, callback: WatchProviderCallback<TProvider>): () => void;
@@ -0,0 +1,4 @@
1
+ import type { WebSocketProvider } from '@ethersproject/providers';
2
+ import { GetWebSocketProviderArgs, GetWebSocketProviderResult } from './getWebSocketProvider';
3
+ export declare type WatchWebSocketProviderCallback<TWebSocketProvider extends WebSocketProvider = WebSocketProvider> = (webSocketProvider: GetWebSocketProviderResult<TWebSocketProvider>) => void;
4
+ export declare function watchWebSocketProvider<TWebSocketProvider extends WebSocketProvider = WebSocketProvider>(args: GetWebSocketProviderArgs, callback: WatchWebSocketProviderCallback<TWebSocketProvider>): () => void;
@@ -0,0 +1,20 @@
1
+ import { BigNumber } from 'ethers/lib/ethers';
2
+ import { Unit } from '../../types';
3
+ export declare type FetchTokenArgs = {
4
+ /** Address of ERC-20 token */
5
+ address: string;
6
+ /** Chain id to use for provider */
7
+ chainId?: number;
8
+ /** Units for formatting output */
9
+ formatUnits?: Unit | number;
10
+ };
11
+ export declare type FetchTokenResult = {
12
+ address: string;
13
+ decimals: number;
14
+ symbol: string;
15
+ totalSupply: {
16
+ formatted: string;
17
+ value: BigNumber;
18
+ };
19
+ };
20
+ export declare function fetchToken({ address, chainId, formatUnits: units, }: FetchTokenArgs): Promise<FetchTokenResult>;
@@ -0,0 +1 @@
1
+ export { fetchToken, type FetchTokenArgs, type FetchTokenResult, } from './fetchToken';
@@ -0,0 +1,2 @@
1
+ export { sendTransaction, type SendTransactionArgs, type SendTransactionResult, } from './sendTransaction';
2
+ export { waitForTransaction, type WaitForTransactionArgs, type WaitForTransactionResult, } from './waitForTransaction';
@@ -0,0 +1,7 @@
1
+ import type { TransactionRequest, TransactionResponse } from '@ethersproject/providers';
2
+ export declare type SendTransactionArgs = {
3
+ /** Object to use when creating transaction */
4
+ request: TransactionRequest;
5
+ };
6
+ export declare type SendTransactionResult = TransactionResponse;
7
+ export declare function sendTransaction(args: SendTransactionArgs): Promise<SendTransactionResult>;
@@ -0,0 +1,17 @@
1
+ import type { TransactionReceipt, TransactionResponse } from '@ethersproject/providers';
2
+ export declare type WaitForTransactionArgs = {
3
+ /** Chain id to use for provider */
4
+ chainId?: number;
5
+ /**
6
+ * Number of blocks to wait for after transaction is mined
7
+ * @default 1
8
+ */
9
+ confirmations?: number;
10
+ /** Transaction hash to monitor */
11
+ hash?: string;
12
+ timeout?: number;
13
+ /** Function resolving to transaction receipt */
14
+ wait?: TransactionResponse['wait'];
15
+ };
16
+ export declare type WaitForTransactionResult = TransactionReceipt;
17
+ export declare function waitForTransaction({ chainId, confirmations, hash, timeout, wait: wait_, }: WaitForTransactionArgs): Promise<WaitForTransactionResult>;
@@ -0,0 +1,81 @@
1
+ import type { BaseProvider, WebSocketProvider } from '@ethersproject/providers';
2
+ import { Mutate, StoreApi } from 'zustand/vanilla';
3
+ import { Connector, ConnectorData } from './connectors';
4
+ import { WagmiStorage } from './storage';
5
+ export declare type ClientConfig<TProvider extends BaseProvider = BaseProvider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider> = {
6
+ /** Enables reconnecting to last used connector on init */
7
+ autoConnect?: boolean;
8
+ /**
9
+ * Connectors used for linking accounts
10
+ * @default [new InjectedConnector()]
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: {
20
+ chainId?: number;
21
+ }) => TProvider) | TProvider;
22
+ /**
23
+ * Custom storage for data persistance
24
+ * @default window.localStorage
25
+ */
26
+ storage?: WagmiStorage;
27
+ /** WebSocket interface for connecting to network */
28
+ webSocketProvider?: ((config: {
29
+ chainId?: number;
30
+ }) => TWebSocketProvider | undefined) | TWebSocketProvider;
31
+ };
32
+ export declare type Data<TProvider extends BaseProvider> = ConnectorData<TProvider>;
33
+ export declare type State<TProvider extends BaseProvider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider> = {
34
+ chains?: Connector['chains'];
35
+ connector?: Connector;
36
+ connectors: Connector[];
37
+ data?: Data<TProvider>;
38
+ error?: Error;
39
+ provider: TProvider;
40
+ status: 'connected' | 'connecting' | 'reconnecting' | 'disconnected';
41
+ webSocketProvider?: TWebSocketProvider;
42
+ };
43
+ export declare class Client<TProvider extends BaseProvider = BaseProvider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider> {
44
+ #private;
45
+ config: Partial<ClientConfig<TProvider, TWebSocketProvider>>;
46
+ storage: WagmiStorage;
47
+ store: Mutate<StoreApi<State<TProvider, TWebSocketProvider>>, [
48
+ [
49
+ 'zustand/subscribeWithSelector',
50
+ never
51
+ ],
52
+ [
53
+ 'zustand/persist',
54
+ Partial<State<TProvider, TWebSocketProvider>>
55
+ ]
56
+ ]>;
57
+ constructor(config?: ClientConfig<TProvider, TWebSocketProvider>);
58
+ get chains(): import("./types").Chain[] | undefined;
59
+ get connectors(): Connector<any, any>[];
60
+ get connector(): Connector<any, any> | undefined;
61
+ get data(): Data<TProvider> | undefined;
62
+ get error(): Error | undefined;
63
+ get provider(): TProvider;
64
+ get status(): "connecting" | "connected" | "reconnecting" | "disconnected";
65
+ get subscribe(): {
66
+ (listener: (selectedState: State<TProvider, TWebSocketProvider>, previousSelectedState: State<TProvider, TWebSocketProvider>) => void): () => void;
67
+ <U>(selector: (state: State<TProvider, TWebSocketProvider>) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
68
+ equalityFn?: ((a: U, b: U) => boolean) | undefined;
69
+ fireImmediately?: boolean | undefined;
70
+ } | undefined): () => void;
71
+ };
72
+ get webSocketProvider(): TWebSocketProvider | undefined;
73
+ setState(updater: State<TProvider, TWebSocketProvider> | ((state: State<TProvider, TWebSocketProvider>) => State<TProvider, TWebSocketProvider>)): void;
74
+ clearState(): void;
75
+ destroy(): Promise<void>;
76
+ autoConnect(): Promise<Data<TProvider> | undefined>;
77
+ setLastUsedConnector(lastUsedConnector?: string | null): void;
78
+ }
79
+ export declare let client: Client<BaseProvider, WebSocketProvider>;
80
+ export declare function createClient<TProvider extends BaseProvider = BaseProvider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider>(config?: ClientConfig<TProvider, TWebSocketProvider>): Client<TProvider, TWebSocketProvider>;
81
+ export declare function getClient<TProvider extends BaseProvider = BaseProvider, TWebSocketProvider extends WebSocketProvider = WebSocketProvider>(): Client<TProvider, TWebSocketProvider>;
@@ -0,0 +1,55 @@
1
+ import { default as EventEmitter } from 'eventemitter3';
2
+ import { Signer } from 'ethers/lib/ethers';
3
+ import { Chain } from '../types';
4
+ export declare type ConnectorData<Provider = any> = {
5
+ account?: string;
6
+ chain?: {
7
+ id: number;
8
+ unsupported: boolean;
9
+ };
10
+ provider?: Provider;
11
+ };
12
+ export interface ConnectorEvents<Provider = any> {
13
+ change(data: ConnectorData<Provider>): void;
14
+ connect(data: ConnectorData<Provider>): void;
15
+ message({ type, data }: {
16
+ type: string;
17
+ data?: unknown;
18
+ }): void;
19
+ disconnect(): void;
20
+ error(error: Error): void;
21
+ }
22
+ export declare abstract class Connector<Provider = any, Options = any> extends EventEmitter<ConnectorEvents<Provider>> {
23
+ /** Unique connector id */
24
+ abstract readonly id: string;
25
+ /** Connector name */
26
+ abstract readonly name: string;
27
+ /** Chains connector supports */
28
+ readonly chains: Chain[];
29
+ /** Options to use with connector */
30
+ readonly options: Options;
31
+ /** Whether connector is usable */
32
+ abstract readonly ready: boolean;
33
+ constructor({ chains, options, }: {
34
+ chains?: Chain[];
35
+ options: Options;
36
+ });
37
+ abstract connect(): Promise<Required<ConnectorData>>;
38
+ abstract disconnect(): Promise<void>;
39
+ abstract getAccount(): Promise<string>;
40
+ abstract getChainId(): Promise<number>;
41
+ abstract getProvider(create?: boolean): Promise<Provider>;
42
+ abstract getSigner(): Promise<Signer>;
43
+ abstract isAuthorized(): Promise<boolean>;
44
+ switchChain?(chainId: number): Promise<Chain>;
45
+ watchAsset?(asset: {
46
+ address: string;
47
+ image?: string;
48
+ symbol: string;
49
+ }): Promise<boolean>;
50
+ protected abstract onAccountsChanged(accounts: string[]): void;
51
+ protected abstract onChainChanged(chain: number | string): void;
52
+ protected abstract onDisconnect(error: Error): void;
53
+ protected getBlockExplorerUrls(chain: Chain): any[];
54
+ protected isChainUnsupported(chainId: number): boolean;
55
+ }
@@ -0,0 +1,52 @@
1
+ import { providers } from 'ethers';
2
+ import type { CoinbaseWalletProvider } from '@coinbase/wallet-sdk';
3
+ import type { CoinbaseWalletSDKOptions } from '@coinbase/wallet-sdk/dist/CoinbaseWalletSDK';
4
+ import { Chain } from '../types';
5
+ import { Connector } from './base';
6
+ declare type Options = CoinbaseWalletSDKOptions & {
7
+ /**
8
+ * Fallback Ethereum JSON RPC URL
9
+ * @default ""
10
+ */
11
+ jsonRpcUrl?: string;
12
+ /**
13
+ * Fallback Ethereum Chain ID
14
+ * @default 1
15
+ */
16
+ chainId?: number;
17
+ };
18
+ export declare class CoinbaseWalletConnector extends Connector<CoinbaseWalletProvider, Options> {
19
+ #private;
20
+ readonly id = "coinbaseWallet";
21
+ readonly name = "Coinbase Wallet";
22
+ readonly ready = true;
23
+ constructor(config: {
24
+ chains?: Chain[];
25
+ options: Options;
26
+ });
27
+ connect(): Promise<{
28
+ account: string;
29
+ chain: {
30
+ id: number;
31
+ unsupported: boolean;
32
+ };
33
+ provider: providers.Web3Provider;
34
+ }>;
35
+ disconnect(): Promise<void>;
36
+ getAccount(): Promise<string>;
37
+ getChainId(): Promise<number>;
38
+ getProvider(): Promise<CoinbaseWalletProvider>;
39
+ getSigner(): Promise<providers.JsonRpcSigner>;
40
+ isAuthorized(): Promise<boolean>;
41
+ switchChain(chainId: number): Promise<Chain>;
42
+ watchAsset({ address, decimals, image, symbol, }: {
43
+ address: string;
44
+ decimals?: number;
45
+ image?: string;
46
+ symbol: string;
47
+ }): Promise<boolean>;
48
+ protected onAccountsChanged: (accounts: string[]) => void;
49
+ protected onChainChanged: (chainId: number | string) => void;
50
+ protected onDisconnect: () => void;
51
+ }
52
+ export {};
@@ -0,0 +1,2 @@
1
+ export { InjectedConnector } from './injected';
2
+ export { Connector, type ConnectorData, type ConnectorEvents } from './base';
@@ -0,0 +1,48 @@
1
+ import { providers } from 'ethers';
2
+ import { Chain } from '../types';
3
+ import { Connector } from './base';
4
+ export declare type InjectedConnectorOptions = {
5
+ /** Name of connector */
6
+ name?: string | ((detectedName: string | string[]) => string);
7
+ /**
8
+ * MetaMask and other injected providers do not support programmatic disconnect.
9
+ * This flag simulates the disconnect behavior by keeping track of connection status in storage.
10
+ * @see https://github.com/MetaMask/metamask-extension/issues/10353
11
+ * @default true
12
+ */
13
+ shimDisconnect?: boolean;
14
+ };
15
+ export declare class InjectedConnector extends Connector<Window['ethereum'], InjectedConnectorOptions | undefined> {
16
+ #private;
17
+ readonly id: string;
18
+ readonly name: string;
19
+ readonly ready: boolean;
20
+ constructor(config?: {
21
+ chains?: Chain[];
22
+ options?: InjectedConnectorOptions;
23
+ });
24
+ connect(): Promise<{
25
+ account: string;
26
+ chain: {
27
+ id: number;
28
+ unsupported: boolean;
29
+ };
30
+ provider: Ethereum;
31
+ }>;
32
+ disconnect(): Promise<void>;
33
+ getAccount(): Promise<string>;
34
+ getChainId(): Promise<number>;
35
+ getProvider(): Promise<Ethereum | undefined>;
36
+ getSigner(): Promise<providers.JsonRpcSigner>;
37
+ isAuthorized(): Promise<boolean>;
38
+ switchChain(chainId: number): Promise<Chain>;
39
+ watchAsset({ address, decimals, image, symbol, }: {
40
+ address: string;
41
+ decimals?: number;
42
+ image?: string;
43
+ symbol: string;
44
+ }): Promise<any>;
45
+ protected onAccountsChanged: (accounts: string[]) => void;
46
+ protected onChainChanged: (chainId: number | string) => void;
47
+ protected onDisconnect: () => void;
48
+ }
@@ -0,0 +1,13 @@
1
+ import { Chain } from '../types';
2
+ import { InjectedConnector, InjectedConnectorOptions } from './injected';
3
+ export declare type MetaMaskConnectorOptions = Pick<InjectedConnectorOptions, 'shimDisconnect'>;
4
+ export declare class MetaMaskConnector extends InjectedConnector {
5
+ #private;
6
+ readonly id = "metaMask";
7
+ readonly ready: boolean;
8
+ constructor(config?: {
9
+ chains?: Chain[];
10
+ options?: MetaMaskConnectorOptions;
11
+ });
12
+ getProvider(): Promise<Ethereum | undefined>;
13
+ }
@@ -0,0 +1,37 @@
1
+ import { Chain } from '../../types';
2
+ import { Connector } from '../base';
3
+ import { MockProvider, MockProviderOptions } from './provider';
4
+ export declare class MockConnector extends Connector<MockProvider, MockProviderOptions> {
5
+ #private;
6
+ readonly id = "mock";
7
+ readonly name = "Mock";
8
+ readonly ready = true;
9
+ constructor(config: {
10
+ chains?: Chain[];
11
+ options: MockProviderOptions;
12
+ });
13
+ connect(): Promise<{
14
+ account: string;
15
+ chain: {
16
+ id: number;
17
+ unsupported: boolean;
18
+ };
19
+ provider: MockProvider;
20
+ }>;
21
+ disconnect(): Promise<void>;
22
+ getAccount(): Promise<string>;
23
+ getChainId(): Promise<number>;
24
+ getProvider(): Promise<MockProvider>;
25
+ getSigner(): Promise<import("ethers").Signer>;
26
+ isAuthorized(): Promise<boolean>;
27
+ watchAsset(asset: {
28
+ address: string;
29
+ decimals?: number;
30
+ image?: string;
31
+ symbol: string;
32
+ }): Promise<boolean>;
33
+ protected onAccountsChanged: (accounts: string[]) => void;
34
+ protected onChainChanged: (chainId: number | string) => void;
35
+ protected onDisconnect: () => void;
36
+ toJSON(): string;
37
+ }
@@ -0,0 +1,2 @@
1
+ export { MockConnector } from './connector';
2
+ export { type MockProviderOptions, MockProvider } from './provider';