@wagmi/core 0.4.9 → 0.5.1

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 (77) hide show
  1. package/README.md +6 -6
  2. package/chains/dist/wagmi-core-chains.cjs.dev.js +4 -2
  3. package/chains/dist/wagmi-core-chains.cjs.prod.js +4 -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 +5 -6
  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-b8e32454.cjs.prod.js → chains-acd25777.cjs.prod.js} +68 -9
  18. package/dist/{chains-174cf4b4.esm.js → chains-ce86f5e0.esm.js} +67 -10
  19. package/dist/{chains-ba6218fb.cjs.dev.js → chains-e81629e7.cjs.dev.js} +68 -9
  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 +0 -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/chains.d.ts +1 -1
  35. package/dist/declarations/src/client.d.ts +2 -2
  36. package/dist/declarations/src/connectors/base.d.ts +1 -2
  37. package/dist/declarations/src/connectors/coinbaseWallet.d.ts +2 -2
  38. package/dist/declarations/src/connectors/injected.d.ts +1 -1
  39. package/dist/declarations/src/connectors/mock/provider.d.ts +3 -2
  40. package/dist/declarations/src/connectors/walletConnect.d.ts +3 -2
  41. package/dist/declarations/src/constants/chains.d.ts +5 -0
  42. package/dist/declarations/src/constants/index.d.ts +1 -1
  43. package/dist/declarations/src/constants/rpcs.d.ts +5 -5
  44. package/dist/declarations/src/errors.d.ts +10 -3
  45. package/dist/declarations/src/index.d.ts +4 -4
  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 +6 -1
  51. package/dist/declarations/src/utils/configureChains.d.ts +3 -1
  52. package/dist/{client-fbdcbdb2.esm.js → getProvider-073f640f.esm.js} +369 -3
  53. package/dist/{client-4983a639.cjs.dev.js → getProvider-5c497ca0.cjs.dev.js} +436 -45
  54. package/dist/{client-dfad744f.cjs.prod.js → getProvider-868752e4.cjs.prod.js} +436 -45
  55. package/dist/{rpcs-1fd0a12f.cjs.prod.js → rpcs-3cf5a783.cjs.dev.js} +18 -12
  56. package/dist/{rpcs-f1d24f0e.cjs.dev.js → rpcs-afd1cc09.cjs.prod.js} +18 -12
  57. package/dist/{rpcs-b73a8f60.esm.js → rpcs-e837abf2.esm.js} +17 -11
  58. package/dist/wagmi-core.cjs.dev.js +586 -308
  59. package/dist/wagmi-core.cjs.prod.js +586 -308
  60. package/dist/wagmi-core.esm.js +493 -222
  61. package/package.json +9 -5
  62. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.dev.js +5 -7
  63. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.prod.js +5 -7
  64. package/providers/alchemy/dist/wagmi-core-providers-alchemy.esm.js +5 -7
  65. package/providers/infura/dist/wagmi-core-providers-infura.cjs.dev.js +5 -7
  66. package/providers/infura/dist/wagmi-core-providers-infura.cjs.prod.js +5 -7
  67. package/providers/infura/dist/wagmi-core-providers-infura.esm.js +5 -7
  68. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.dev.js +0 -2
  69. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.prod.js +0 -2
  70. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.esm.js +0 -2
  71. package/providers/public/dist/wagmi-core-providers-public.cjs.dev.js +0 -2
  72. package/providers/public/dist/wagmi-core-providers-public.cjs.prod.js +0 -2
  73. package/providers/public/dist/wagmi-core-providers-public.esm.js +0 -2
  74. package/dist/base-337e6424.cjs.prod.js +0 -343
  75. package/dist/base-bd337280.cjs.dev.js +0 -343
  76. package/dist/base-f1bbf263.esm.js +0 -316
  77. package/dist/declarations/src/actions/tokens/index.d.ts +0 -1
@@ -1,7 +1,10 @@
1
+ export { deprecatedWriteContract, type DeprecatedWriteContractConfig, type DeprecatedWriteContractResult, } from './deprecatedWriteContract';
2
+ export { fetchToken, type FetchTokenArgs, type FetchTokenResult, } from './fetchToken';
3
+ export { prepareWriteContract, type PrepareWriteContractConfig, type PrepareWriteContractResult, } from './prepareWriteContract';
1
4
  export { getContract, type GetContractArgs } from './getContract';
2
5
  export { readContract, type ReadContractConfig, type ReadContractResult, } from './readContract';
3
6
  export { readContracts, type ReadContractsConfig, type ReadContractsResult, } from './readContracts';
4
7
  export { watchContractEvent } from './watchContractEvent';
5
8
  export { watchReadContract, type WatchReadContractConfig, type WatchReadContractResult, } from './watchReadContract';
6
9
  export { watchReadContracts, type WatchReadContractsConfig, type WatchReadContractsResult, } from './watchReadContracts';
7
- export { writeContract, type WriteContractConfig, type WriteContractResult, } from './writeContract';
10
+ export { writeContract, type WriteContractArgs, type WriteContractPreparedArgs, type WriteContractResult, type WriteContractUnpreparedArgs, } from './writeContract';
@@ -0,0 +1,37 @@
1
+ import { CallOverrides, Contract, PopulatedTransaction } from 'ethers/lib/ethers';
2
+ import { Address, Signer } from '../../types';
3
+ import { GetContractArgs } from './getContract';
4
+ export declare type PrepareWriteContractConfig<TSigner extends Signer = Signer> = Omit<GetContractArgs, 'signerOrProvider'> & {
5
+ /** Chain ID used to validate if the signer is connected to the target chain */
6
+ chainId?: number;
7
+ /** Method to call on contract */
8
+ functionName: string;
9
+ /** Arguments to pass contract method */
10
+ args?: any | any[];
11
+ overrides?: CallOverrides;
12
+ signer?: TSigner | null;
13
+ };
14
+ export declare type PrepareWriteContractResult<TSigner extends Signer = Signer> = PrepareWriteContractConfig<TSigner> & {
15
+ chainId?: number;
16
+ request: PopulatedTransaction & {
17
+ to: Address;
18
+ gasLimit: NonNullable<PopulatedTransaction['gasLimit']>;
19
+ };
20
+ mode: 'prepared';
21
+ };
22
+ /**
23
+ * @description Prepares the parameters required for a contract write transaction.
24
+ *
25
+ * Returns config to be passed through to `writeContract`.
26
+ *
27
+ * @example
28
+ * import { prepareWriteContract, writeContract } from '@wagmi/core'
29
+ *
30
+ * const config = await prepareWriteContract({
31
+ * addressOrName: '0x...',
32
+ * contractInterface: wagmiAbi,
33
+ * functionName: 'mint',
34
+ * })
35
+ * const result = await writeContract(config)
36
+ */
37
+ export declare function prepareWriteContract<TContract extends Contract = Contract, TSigner extends Signer = Signer>({ addressOrName, args, chainId, contractInterface, functionName, overrides, signer: signer_, }: PrepareWriteContractConfig): Promise<PrepareWriteContractResult<TSigner>>;
@@ -1,16 +1,52 @@
1
- import { CallOverrides, Contract, providers } from 'ethers';
1
+ import { CallOverrides, PopulatedTransaction } from 'ethers';
2
+ import { Address } from '../../types';
3
+ import { SendTransactionResult } from '../transactions';
2
4
  import { GetContractArgs } from './getContract';
3
- export declare type WriteContractConfig = GetContractArgs & {
5
+ export declare type WriteContractPreparedArgs = {
4
6
  /**
5
- * Chain id to use for write
6
- * If signer is not active on this chain, it will attempt to programmatically switch
7
- */
7
+ * `recklesslyUnprepared`: Allow to pass through unprepared config. Note: This has
8
+ * [UX pitfalls](https://wagmi.sh/docs/prepare-hooks/intro#ux-pitfalls-without-prepare-hooks),
9
+ * it is highly recommended to not use this and instead prepare the request upfront
10
+ * using the {@link prepareWriteContract} function.
11
+ *
12
+ * `prepared`: The request has been prepared with parameters required for sending a transaction
13
+ * via the {@link prepareWriteContract} function
14
+ * */
15
+ mode: 'prepared';
16
+ /** The prepared request. */
17
+ request: PopulatedTransaction & {
18
+ to: Address;
19
+ gasLimit: NonNullable<PopulatedTransaction['gasLimit']>;
20
+ };
21
+ };
22
+ export declare type WriteContractUnpreparedArgs = {
23
+ mode: 'recklesslyUnprepared';
24
+ request?: undefined;
25
+ };
26
+ export declare type WriteContractArgs = Omit<GetContractArgs, 'signerOrProvider'> & {
27
+ /** Chain ID used to validate if the signer is connected to the target chain */
8
28
  chainId?: number;
9
29
  /** Method to call on contract */
10
30
  functionName: string;
11
31
  /** Arguments to pass contract method */
12
32
  args?: any | any[];
13
33
  overrides?: CallOverrides;
14
- };
15
- export declare type WriteContractResult = providers.TransactionResponse;
16
- export declare function writeContract<TContract extends Contract = Contract>({ addressOrName, args, chainId, contractInterface, functionName, overrides, signerOrProvider, }: WriteContractConfig): Promise<WriteContractResult>;
34
+ } & (WriteContractUnpreparedArgs | WriteContractPreparedArgs);
35
+ export declare type WriteContractResult = SendTransactionResult;
36
+ /**
37
+ * @description Function to call a contract write method.
38
+ *
39
+ * It is recommended to pair this with the {@link prepareWriteContract} function
40
+ * to avoid [UX pitfalls](https://wagmi.sh/docs/prepare-hooks/intro#ux-pitfalls-without-prepare-hooks).
41
+ *
42
+ * @example
43
+ * import { prepareWriteContract, writeContract } from '@wagmi/core'
44
+ *
45
+ * const config = await prepareWriteContract({
46
+ * addressOrName: '0x...',
47
+ * contractInterface: wagmiAbi,
48
+ * functionName: 'mint',
49
+ * })
50
+ * const result = await writeContract(config)
51
+ */
52
+ export declare function writeContract({ addressOrName, args, chainId, contractInterface, functionName, mode, overrides, request: request_, }: WriteContractArgs): Promise<WriteContractResult>;
@@ -1,8 +1,9 @@
1
+ import { Address } from '../../types';
1
2
  export declare type FetchEnsAddressArgs = {
2
3
  /** Chain id to use for provider */
3
4
  chainId?: number;
4
5
  /** ENS name to resolve */
5
6
  name: string;
6
7
  };
7
- export declare type FetchEnsAddressResult = string | null;
8
+ export declare type FetchEnsAddressResult = Address | null;
8
9
  export declare function fetchEnsAddress({ chainId, name, }: FetchEnsAddressArgs): Promise<FetchEnsAddressResult>;
@@ -1,7 +1,6 @@
1
1
  export { connect, disconnect, fetchBalance, fetchSigner, getAccount, getNetwork, signMessage, signTypedData, switchNetwork, watchAccount, watchNetwork, watchSigner, type ConnectArgs, type ConnectResult, type FetchBalanceArgs, type FetchBalanceResult, type FetchSignerResult, type GetAccountResult, type GetNetworkResult, type SignMessageArgs, type SignMessageResult, type SignTypedDataArgs, type SignTypedDataResult, type SwitchNetworkArgs, type SwitchNetworkResult, type WatchAccountCallback, type WatchNetworkCallback, type WatchSignerCallback, } from './accounts';
2
- export { getContract, readContract, readContracts, watchContractEvent, watchReadContract, watchReadContracts, writeContract, type GetContractArgs, type ReadContractConfig, type ReadContractResult, type ReadContractsConfig, type ReadContractsResult, type WatchReadContractConfig, type WatchReadContractResult, type WatchReadContractsConfig, type WatchReadContractsResult, type WriteContractConfig, type WriteContractResult, } from './contracts';
2
+ export { deprecatedWriteContract, fetchToken, getContract, prepareWriteContract, readContract, readContracts, watchContractEvent, watchReadContract, watchReadContracts, writeContract, type DeprecatedWriteContractConfig, type DeprecatedWriteContractResult, type FetchTokenArgs, type FetchTokenResult, type GetContractArgs, type PrepareWriteContractConfig, type PrepareWriteContractResult, type ReadContractConfig, type ReadContractResult, type ReadContractsConfig, type ReadContractsResult, type WatchReadContractConfig, type WatchReadContractResult, type WatchReadContractsConfig, type WatchReadContractsResult, type WriteContractArgs, type WriteContractPreparedArgs, type WriteContractResult, type WriteContractUnpreparedArgs, } from './contracts';
3
3
  export { fetchEnsAddress, fetchEnsAvatar, fetchEnsName, fetchEnsResolver, type FetchEnsAddressArgs, type FetchEnsAddressResult, type FetchEnsAvatarArgs, type FetchEnsAvatarResult, type FetchEnsNameArgs, type FetchEnsNameResult, type FetchEnsResolverArgs, type FetchEnsResolverResult, } from './ens';
4
4
  export { fetchBlockNumber, fetchFeeData, watchBlockNumber, type FetchBlockNumberArgs, type FetchBlockNumberResult, type FetchFeeDataArgs, type FetchFeeDataResult, type WatchBlockNumberArgs, type WatchBlockNumberCallback, } from './network-status';
5
5
  export { getProvider, getWebSocketProvider, watchProvider, watchWebSocketProvider, type GetProviderArgs, type GetProviderResult, type GetWebSocketProviderArgs, type GetWebSocketProviderResult, type WatchProviderCallback, type WatchWebSocketProviderCallback, } from './providers';
6
- export { fetchToken, type FetchTokenArgs, type FetchTokenResult, } from './tokens';
7
- export { sendTransaction, waitForTransaction, type SendTransactionArgs, type SendTransactionResult, type WaitForTransactionArgs, type WaitForTransactionResult, } from './transactions';
6
+ export { deprecatedSendTransaction, fetchTransaction, prepareSendTransaction, sendTransaction, waitForTransaction, type DeprecatedSendTransactionArgs, type DeprecatedSendTransactionResult, type FetchTransactionArgs, type FetchTransactionResult, type PrepareSendTransactionArgs, type PrepareSendTransactionResult, type SendTransactionArgs, type SendTransactionPreparedRequest, type SendTransactionResult, type SendTransactionUnpreparedRequest, type WaitForTransactionArgs, type WaitForTransactionResult, } from './transactions';
@@ -0,0 +1,12 @@
1
+ import { providers } from 'ethers';
2
+ export declare type DeprecatedSendTransactionArgs = {
3
+ /**
4
+ * Chain id to use for write
5
+ * If signer is not active on this chain, it will attempt to programmatically switch
6
+ */
7
+ chainId?: number;
8
+ /** Object to use when creating transaction */
9
+ request: providers.TransactionRequest;
10
+ };
11
+ export declare type DeprecatedSendTransactionResult = providers.TransactionResponse;
12
+ export declare function deprecatedSendTransaction({ chainId, request, }: DeprecatedSendTransactionArgs): Promise<DeprecatedSendTransactionResult>;
@@ -0,0 +1,21 @@
1
+ import { providers } from 'ethers';
2
+ import { Hash } from '../../types';
3
+ export declare type FetchTransactionArgs = {
4
+ /** Chain ID used to validate if the signer is connected to the target chain */
5
+ chainId?: number;
6
+ /** Transaction hash */
7
+ hash: Hash;
8
+ };
9
+ export declare type FetchTransactionResult = providers.TransactionResponse;
10
+ /**
11
+ * @description Fetches transaction for hash
12
+ *
13
+ * @example
14
+ * import { fetchTransaction } from '@wagmi/core'
15
+ *
16
+ * const transaction = await fetchTransaction({
17
+ * chainId: 1,
18
+ * hash: '0x...',
19
+ * })
20
+ */
21
+ export declare function fetchTransaction({ chainId, hash, }: FetchTransactionArgs): Promise<FetchTransactionResult>;
@@ -1,2 +1,5 @@
1
- export { sendTransaction, type SendTransactionArgs, type SendTransactionResult, } from './sendTransaction';
1
+ export { deprecatedSendTransaction, type DeprecatedSendTransactionArgs, type DeprecatedSendTransactionResult, } from './deprecatedSendTransaction';
2
+ export { fetchTransaction, type FetchTransactionArgs, type FetchTransactionResult, } from './fetchTransaction';
3
+ export { prepareSendTransaction, type PrepareSendTransactionArgs, type PrepareSendTransactionResult, } from './prepareSendTransaction';
4
+ export { sendTransaction, type SendTransactionArgs, type SendTransactionPreparedRequest, type SendTransactionResult, type SendTransactionUnpreparedRequest, } from './sendTransaction';
2
5
  export { waitForTransaction, type WaitForTransactionArgs, type WaitForTransactionResult, } from './waitForTransaction';
@@ -0,0 +1,36 @@
1
+ import { providers } from 'ethers';
2
+ import { Address } from '../../types';
3
+ export declare type PrepareSendTransactionArgs = {
4
+ /** Chain ID used to validate if the signer is connected to the target chain */
5
+ chainId?: number;
6
+ /** Request data to prepare the transaction */
7
+ request: providers.TransactionRequest & {
8
+ to: NonNullable<providers.TransactionRequest['to']>;
9
+ };
10
+ signerOrProvider?: providers.JsonRpcSigner | providers.Provider;
11
+ };
12
+ export declare type PrepareSendTransactionResult = {
13
+ chainId?: number;
14
+ request: providers.TransactionRequest & {
15
+ to: Address;
16
+ gasLimit: NonNullable<providers.TransactionRequest['gasLimit']>;
17
+ };
18
+ mode: 'prepared';
19
+ };
20
+ /**
21
+ * @description Prepares the parameters required for sending a transaction.
22
+ *
23
+ * Returns config to be passed through to `sendTransaction`.
24
+ *
25
+ * @example
26
+ * import { prepareSendTransaction, sendTransaction } from '@wagmi/core'
27
+ *
28
+ * const config = await prepareSendTransaction({
29
+ * request: {
30
+ * to: 'moxey.eth',
31
+ * value: parseEther('1'),
32
+ * }
33
+ * })
34
+ * const result = await sendTransaction(config)
35
+ */
36
+ export declare function prepareSendTransaction({ chainId, request, signerOrProvider, }: PrepareSendTransactionArgs): Promise<PrepareSendTransactionResult>;
@@ -1,12 +1,47 @@
1
1
  import { providers } from 'ethers';
2
- export declare type SendTransactionArgs = {
2
+ import { Address } from '../../types';
3
+ export declare type SendTransactionPreparedRequest = {
3
4
  /**
4
- * Chain id to use for write
5
- * If signer is not active on this chain, it will attempt to programmatically switch
6
- */
7
- chainId?: number;
8
- /** Object to use when creating transaction */
5
+ * `recklesslyUnprepared`: Allow to pass through an unprepared `request`. Note: This has
6
+ * [UX pitfalls](/docs/prepare-hooks/intro#ux-pitfalls-without-prepare-hooks), it is highly recommended
7
+ * to not use this and instead prepare the request upfront using the `prepareSendTransaction` function.
8
+ *
9
+ * `prepared`: The request has been prepared with parameters required for sending a transaction
10
+ * via the `prepareSendTransaction` function
11
+ * */
12
+ mode: 'prepared';
13
+ /** The prepared request for sending a transaction. */
14
+ request: providers.TransactionRequest & {
15
+ to: Address;
16
+ gasLimit: NonNullable<providers.TransactionRequest['gasLimit']>;
17
+ };
18
+ };
19
+ export declare type SendTransactionUnpreparedRequest = {
20
+ mode: 'recklesslyUnprepared';
21
+ /** The unprepared request for sending a transaction. */
9
22
  request: providers.TransactionRequest;
10
23
  };
11
- export declare type SendTransactionResult = providers.TransactionResponse;
12
- export declare function sendTransaction({ chainId, request, }: SendTransactionArgs): Promise<SendTransactionResult>;
24
+ export declare type SendTransactionArgs = {
25
+ /** Chain ID used to validate if the signer is connected to the target chain */
26
+ chainId?: number;
27
+ } & (SendTransactionPreparedRequest | SendTransactionUnpreparedRequest);
28
+ export declare type SendTransactionResult = {
29
+ hash: providers.TransactionResponse['hash'];
30
+ wait: providers.TransactionResponse['wait'];
31
+ };
32
+ /**
33
+ * @description Function to send a transaction.
34
+ *
35
+ * It is recommended to pair this with the `prepareSendTransaction` function to avoid
36
+ * [UX pitfalls](https://wagmi.sh/docs/prepare-hooks/intro#ux-pitfalls-without-prepare-hooks).
37
+ *
38
+ * @example
39
+ * import { prepareSendTransaction, sendTransaction } from '@wagmi/core'
40
+ *
41
+ * const config = await prepareSendTransaction({
42
+ * to: 'moxey.eth',
43
+ * value: parseEther('1'),
44
+ * })
45
+ * const result = await sendTransaction(config)
46
+ */
47
+ export declare function sendTransaction({ chainId, mode, request, }: SendTransactionArgs): Promise<SendTransactionResult>;
@@ -1 +1 @@
1
- export { arbitrum, arbitrumRinkeby, foundry, goerli, hardhat, kovan, localhost, mainnet, optimism, optimismKovan, polygon, polygonMumbai, rinkeby, ropsten, } from './constants/chains';
1
+ export { arbitrum, arbitrumGoerli, arbitrumRinkeby, foundry, goerli, hardhat, kovan, localhost, mainnet, optimism, optimismKovan, optimismGoerli, polygon, polygonMumbai, rinkeby, ropsten, } from './constants/chains';
@@ -51,8 +51,8 @@ export declare class Client<TProvider extends Provider = Provider, TWebSocketPro
51
51
  ]>;
52
52
  constructor({ autoConnect, connectors, provider, storage, webSocketProvider, }: ClientConfig<TProvider, TWebSocketProvider>);
53
53
  get chains(): import("./types").Chain[] | undefined;
54
- get connectors(): Connector<any, any>[];
55
- get connector(): Connector<any, any> | undefined;
54
+ get connectors(): Connector<any, any, any>[];
55
+ get connector(): Connector<any, any, any> | undefined;
56
56
  get data(): Data<TProvider> | undefined;
57
57
  get error(): Error | undefined;
58
58
  get lastUsedChainId(): number | undefined;
@@ -1,5 +1,4 @@
1
1
  import { default as EventEmitter } from 'eventemitter3';
2
- import { Signer } from 'ethers/lib/ethers';
3
2
  import { Chain } from '../types';
4
3
  export declare type ConnectorData<Provider = any> = {
5
4
  account?: string;
@@ -19,7 +18,7 @@ export interface ConnectorEvents<Provider = any> {
19
18
  disconnect(): void;
20
19
  error(error: Error): void;
21
20
  }
22
- export declare abstract class Connector<Provider = any, Options = any> extends EventEmitter<ConnectorEvents<Provider>> {
21
+ export declare abstract class Connector<Provider = any, Options = any, Signer = any> extends EventEmitter<ConnectorEvents<Provider>> {
23
22
  /** Unique connector id */
24
23
  abstract readonly id: string;
25
24
  /** Connector name */
@@ -1,6 +1,6 @@
1
- import { providers } from 'ethers';
2
1
  import type { CoinbaseWalletProvider } from '@coinbase/wallet-sdk';
3
2
  import type { CoinbaseWalletSDKOptions } from '@coinbase/wallet-sdk/dist/CoinbaseWalletSDK';
3
+ import { providers } from 'ethers';
4
4
  import { Chain } from '../types';
5
5
  import { Connector } from './base';
6
6
  declare type Options = CoinbaseWalletSDKOptions & {
@@ -15,7 +15,7 @@ declare type Options = CoinbaseWalletSDKOptions & {
15
15
  */
16
16
  chainId?: number;
17
17
  };
18
- export declare class CoinbaseWalletConnector extends Connector<CoinbaseWalletProvider, Options> {
18
+ export declare class CoinbaseWalletConnector extends Connector<CoinbaseWalletProvider, Options, providers.JsonRpcSigner> {
19
19
  #private;
20
20
  readonly id = "coinbaseWallet";
21
21
  readonly name = "Coinbase Wallet";
@@ -18,7 +18,7 @@ export declare type InjectedConnectorOptions = {
18
18
  */
19
19
  shimDisconnect?: boolean;
20
20
  };
21
- export declare class InjectedConnector extends Connector<Window['ethereum'], InjectedConnectorOptions | undefined> {
21
+ export declare class InjectedConnector extends Connector<Window['ethereum'], InjectedConnectorOptions | undefined, providers.JsonRpcSigner> {
22
22
  #private;
23
23
  readonly id: string;
24
24
  readonly name: string;
@@ -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";
@@ -7,10 +7,12 @@ export declare const chainId: {
7
7
  readonly kovan: 42;
8
8
  readonly optimism: 10;
9
9
  readonly optimismKovan: 69;
10
+ readonly optimismGoerli: 420;
10
11
  readonly polygon: 137;
11
12
  readonly polygonMumbai: 80001;
12
13
  readonly arbitrum: 42161;
13
14
  readonly arbitrumRinkeby: 421611;
15
+ readonly arbitrumGoerli: 421613;
14
16
  readonly localhost: 1337;
15
17
  readonly hardhat: 31337;
16
18
  readonly foundry: 31337;
@@ -23,10 +25,12 @@ export declare const goerli: Chain;
23
25
  export declare const kovan: Chain;
24
26
  export declare const optimism: Chain;
25
27
  export declare const optimismKovan: Chain;
28
+ export declare const optimismGoerli: Chain;
26
29
  export declare const polygon: Chain;
27
30
  export declare const polygonMumbai: Chain;
28
31
  export declare const arbitrum: Chain;
29
32
  export declare const arbitrumRinkeby: Chain;
33
+ export declare const arbitrumGoerli: Chain;
30
34
  export declare const localhost: Chain;
31
35
  export declare const hardhat: Chain;
32
36
  export declare const foundry: Chain;
@@ -45,6 +49,7 @@ export declare const chain: {
45
49
  readonly polygon: Chain;
46
50
  readonly polygonMumbai: Chain;
47
51
  readonly arbitrum: Chain;
52
+ readonly arbitrumGoerli: Chain;
48
53
  readonly arbitrumRinkeby: Chain;
49
54
  readonly localhost: Chain;
50
55
  readonly hardhat: Chain;
@@ -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,11 +1,11 @@
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
- declare type AlchemyChains = Extract<ChainName, 'mainnet' | 'ropsten' | 'rinkeby' | 'goerli' | 'kovan' | 'optimism' | 'optimismKovan' | 'polygon' | 'polygonMumbai' | 'arbitrum' | 'arbitrumRinkeby'>;
5
+ declare type AlchemyChains = Extract<ChainName, 'mainnet' | 'ropsten' | 'rinkeby' | 'goerli' | 'kovan' | 'optimism' | 'optimismKovan' | 'optimismGoerli' | 'polygon' | 'polygonMumbai' | 'arbitrum' | 'arbitrumRinkeby' | 'arbitrumGoerli'>;
6
6
  export declare const alchemyRpcUrls: Record<AlchemyChains, string>;
7
- declare type InfuraChains = Extract<ChainName, 'mainnet' | 'ropsten' | 'rinkeby' | 'goerli' | 'kovan' | 'optimism' | 'optimismKovan' | 'polygon' | 'polygonMumbai' | 'arbitrum' | 'arbitrumRinkeby'>;
7
+ declare type InfuraChains = Extract<ChainName, 'mainnet' | 'ropsten' | 'rinkeby' | 'goerli' | 'kovan' | 'optimism' | 'optimismKovan' | 'optimismGoerli' | 'polygon' | 'polygonMumbai' | 'arbitrum' | 'arbitrumRinkeby' | 'arbitrumGoerli'>;
8
8
  export declare const infuraRpcUrls: Record<InfuraChains, string>;
9
- declare type PublicChains = Extract<ChainName, 'mainnet' | 'ropsten' | 'rinkeby' | 'goerli' | 'kovan' | 'optimism' | 'optimismKovan' | 'polygon' | 'polygonMumbai' | 'arbitrum' | 'arbitrumRinkeby'>;
9
+ declare type PublicChains = Extract<ChainName, 'mainnet' | 'ropsten' | 'rinkeby' | 'goerli' | 'kovan' | 'optimism' | 'optimismKovan' | 'optimismGoerli' | 'polygon' | 'polygonMumbai' | 'arbitrum' | 'arbitrumRinkeby' | 'arbitrumGoerli'>;
10
10
  export declare const publicRpcUrls: Record<PublicChains, string>;
11
11
  export {};
@@ -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
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, Ethereum, 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,6 +50,7 @@ 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
55
  declare type AddEthereumChainParameter = {
53
56
  /** A 0x-prefixed hexadecimal string */
@@ -95,6 +98,8 @@ declare type InjectedProviderFlags = {
95
98
  isExodus?: true;
96
99
  isFrame?: true;
97
100
  isMetaMask?: true;
101
+ isOneInchAndroidWallet?: true;
102
+ isOneInchIOSWallet?: true;
98
103
  isOpera?: true;
99
104
  isTally?: true;
100
105
  isTokenPocket?: true;
@@ -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;