viem 0.2.0-0-2-0.20230320T235312 → 0.2.0-0-2-0.20230328T063845

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 (72) hide show
  1. package/accounts/package.json +4 -0
  2. package/dist/abi.d.ts +3 -3
  3. package/dist/abi.js +2 -2
  4. package/dist/abi.mjs +1 -1
  5. package/dist/accounts/index.d.ts +90 -0
  6. package/dist/accounts/index.js +152 -0
  7. package/dist/accounts/index.js.map +1 -0
  8. package/dist/accounts/index.mjs +152 -0
  9. package/dist/accounts/index.mjs.map +1 -0
  10. package/dist/{chain-b2e88e30.d.ts → chain-5b28fc53.d.ts} +121 -85
  11. package/dist/{chain-c4f924cf.d.ts → chain-e9b996ff.d.ts} +1 -1
  12. package/dist/chains.d.ts +3 -3
  13. package/dist/chains.js +63 -63
  14. package/dist/chains.mjs +1 -1
  15. package/dist/{chunk-T4AH4Y6Y.js → chunk-564BCC7H.js} +813 -206
  16. package/dist/chunk-564BCC7H.js.map +1 -0
  17. package/dist/chunk-7QEOFHC7.mjs +31 -0
  18. package/dist/chunk-7QEOFHC7.mjs.map +1 -0
  19. package/dist/{chunk-4DIN6KDM.mjs → chunk-BJ5KRDTG.mjs} +2 -2
  20. package/dist/chunk-BJ5KRDTG.mjs.map +1 -0
  21. package/dist/{chunk-BLB7NERO.js → chunk-CXE4XSMF.js} +19 -19
  22. package/dist/chunk-CXE4XSMF.js.map +1 -0
  23. package/dist/chunk-D3ALNUWN.js +31 -0
  24. package/dist/chunk-D3ALNUWN.js.map +1 -0
  25. package/dist/{chunk-KOAJUBTN.mjs → chunk-UCZWRYV5.mjs} +803 -196
  26. package/dist/chunk-UCZWRYV5.mjs.map +1 -0
  27. package/dist/contract.d.ts +9 -8
  28. package/dist/contract.js +2 -2
  29. package/dist/contract.mjs +1 -1
  30. package/dist/{createClient-d4f1dea1.d.ts → createClient-e52de308.d.ts} +23 -9
  31. package/dist/{eip1193-cd3e872a.d.ts → eip1193-9080db42.d.ts} +1 -1
  32. package/dist/{encodeFunctionResult-750c9055.d.ts → encodeFunctionResult-47ad60ed.d.ts} +1 -1
  33. package/dist/{encodePacked-de74201f.d.ts → encodePacked-35c796fb.d.ts} +1 -1
  34. package/dist/ens.d.ts +6 -5
  35. package/dist/ens.js +3 -3
  36. package/dist/ens.mjs +2 -2
  37. package/dist/ethers.d.ts +5 -4
  38. package/dist/ethers.js +7 -5
  39. package/dist/ethers.js.map +1 -1
  40. package/dist/ethers.mjs +7 -5
  41. package/dist/ethers.mjs.map +1 -1
  42. package/dist/{formatAbiItem-fdbdda39.d.ts → formatAbiItem-d9e801dd.d.ts} +1 -1
  43. package/dist/{getAbiItem-9d709e3b.d.ts → getAbiItem-1d94ae0e.d.ts} +1 -1
  44. package/dist/index.d.ts +23 -16
  45. package/dist/index.js +130 -103
  46. package/dist/index.js.map +1 -1
  47. package/dist/index.mjs +72 -45
  48. package/dist/index.mjs.map +1 -1
  49. package/dist/parseAccount-4209fa24.d.ts +6 -0
  50. package/dist/{parseGwei-f930d155.d.ts → parseGwei-85b2bbc3.d.ts} +61 -18
  51. package/dist/public.d.ts +6 -5
  52. package/dist/public.js +2 -2
  53. package/dist/public.mjs +1 -1
  54. package/dist/test-f3d06763.d.ts +198 -0
  55. package/dist/test.d.ts +11 -11
  56. package/dist/test.js +2 -2
  57. package/dist/test.mjs +1 -1
  58. package/dist/{account-07d04222.d.ts → typedData-42b43450.d.ts} +46 -27
  59. package/dist/utils/index.d.ts +17 -35
  60. package/dist/utils/index.js +18 -2
  61. package/dist/utils/index.mjs +19 -3
  62. package/dist/wallet.d.ts +6 -5
  63. package/dist/wallet.js +2 -2
  64. package/dist/wallet.mjs +1 -1
  65. package/dist/{createPublicClient-3a714a8d.d.ts → watchPendingTransactions-ad90553c.d.ts} +336 -301
  66. package/dist/window.d.ts +2 -2
  67. package/package.json +9 -1
  68. package/dist/chunk-4DIN6KDM.mjs.map +0 -1
  69. package/dist/chunk-BLB7NERO.js.map +0 -1
  70. package/dist/chunk-KOAJUBTN.mjs.map +0 -1
  71. package/dist/chunk-T4AH4Y6Y.js.map +0 -1
  72. package/dist/test-c70126a6.d.ts +0 -206
@@ -1,8 +1,8 @@
1
- import { W as WalletPermission, a as WatchAssetParams, P as PublicRequests } from './eip1193-cd3e872a.js';
2
- import { a as Transport, b as ClientConfig, C as Client } from './createClient-d4f1dea1.js';
3
- import { Address, Abi, Narrow, TypedData, AbiEvent, ExtractAbiEvent } from 'abitype';
4
- import { A as Account, G as GetAccountParameter, T as TypedDataDefinition, P as ParseAccount } from './account-07d04222.js';
5
- import { C as Chain, W as ExtractFormatter, a1 as Formatters, a2 as Formatter, X as Formatted, c as Block, R as RpcBlock, O as Transaction, T as TransactionReceipt, z as RpcTransactionReceipt, a3 as TransactionType, D as RpcTransactionRequest, I as TransactionRequest, f as BlockTag, H as Hex, a4 as MergeIntersectionProperties, a5 as GetChain, h as ExtractConstructorArgsFromAbi, a as Hash, a6 as GetValue, g as ContractConfig, p as ExtractResultFromAbi, a7 as MaybeAbiEventName, a8 as MaybeExtractEventArgsFromAbi, e as BlockNumber, m as ExtractEventNameFromAbi, F as FeeHistory, L as Log, Y as FormattedTransaction, Z as TransactionFormatter, k as ExtractEventArgsFromAbi, a9 as Prettify } from './chain-b2e88e30.js';
1
+ import { a as Transport, b as ClientConfig, C as Client } from './createClient-e52de308.js';
2
+ import { C as Chain, a4 as ExtractFormatter, ab as Formatters, ac as Formatter, a5 as Formatted, c as Block, R as RpcBlock, T as Transaction, O as TransactionReceipt, z as RpcTransactionReceipt, I as TransactionType, D as RpcTransactionRequest, P as TransactionRequest, H as Hex, ad as GetChain, h as ExtractConstructorArgsFromAbi, ae as MergeIntersectionProperties, a as Hash, af as GetValue, g as ContractConfig, ag as IsUndefined, ah as MaybeExtractEventArgsFromAbi, p as ExtractResultFromAbi, ai as Prettify, f as BlockTag, aj as MaybeAbiEventName, e as BlockNumber, m as ExtractEventNameFromAbi, F as FeeHistory, L as Log, a6 as FormattedTransaction, a7 as TransactionFormatter, k as ExtractEventArgsFromAbi } from './chain-5b28fc53.js';
3
+ import { W as WalletPermission, a as WatchAssetParams, R as Requests, P as PublicRequests } from './eip1193-9080db42.js';
4
+ import { Abi, Narrow, Address, TypedData, AbiEvent, ExtractAbiEvent } from 'abitype';
5
+ import { A as Account, T as TypedDataDefinition, J as JsonRpcAccount } from './typedData-42b43450.js';
6
6
 
7
7
  type BlockFormatter<TChain extends Chain | undefined = Chain> = TChain extends Chain ? ExtractFormatter<TChain, 'block', NonNullable<Formatters['block']>> : Formatters['block'];
8
8
  type FormattedBlock<TFormatter extends Formatter | undefined = Formatter> = Formatted<TFormatter, Block>;
@@ -32,53 +32,36 @@ type FormattedTransactionRequest$1<TFormatter extends Formatter | undefined = Fo
32
32
  declare function formatTransactionRequest(transactionRequest: Partial<TransactionRequest>): RpcTransactionRequest;
33
33
  declare const defineTransactionRequest: <TFormat extends Formatter<Partial<TransactionRequest<bigint, number>>, Partial<RpcTransactionRequest> & {
34
34
  [key: string]: unknown;
35
- }>, TExclude extends ("value" | "from" | "gasPrice" | "maxFeePerGas" | "maxPriorityFeePerGas" | "data" | "gas" | "nonce" | "to" | "accessList")[] = []>({ exclude, format: formatOverride, }: {
35
+ }>, TExclude extends ("value" | "gasPrice" | "maxFeePerGas" | "maxPriorityFeePerGas" | "from" | "accessList" | "to" | "data" | "gas" | "nonce")[] = []>({ exclude, format: formatOverride, }: {
36
36
  exclude?: TExclude | undefined;
37
37
  format?: TFormat | undefined;
38
38
  }) => (data: Partial<TransactionRequest<bigint, number>> & {
39
39
  [key: string]: unknown;
40
40
  }) => RpcTransactionRequest & ReturnType<TFormat> & { [K in TExclude[number]]: never; };
41
41
 
42
- type FormattedCall<TFormatter extends Formatter | undefined = Formatter> = MergeIntersectionProperties<Omit<Formatted<TFormatter, TransactionRequest, true>, 'from'>, TransactionRequest>;
43
- type CallParameters<TChain extends Chain | undefined = Chain> = FormattedCall<TransactionRequestFormatter<TChain>> & {
44
- account?: Account | Address;
45
- } & ({
46
- /** The balance of the account at a block number. */
47
- blockNumber?: bigint;
48
- blockTag?: never;
49
- } | {
50
- blockNumber?: never;
51
- /** The balance of the account at a block tag. */
52
- blockTag?: BlockTag;
53
- });
54
- type CallReturnType = {
55
- data: Hex | undefined;
56
- };
57
- declare function call<TChain extends Chain | undefined>(client: PublicClientArg<Transport, TChain>, args: CallParameters<TChain>): Promise<CallReturnType>;
58
-
59
42
  type AddChainParameters = {
60
43
  chain: Chain;
61
44
  };
62
- declare function addChain(client: WalletClientArg, { chain }: AddChainParameters): Promise<void>;
45
+ declare function addChain<TChain extends Chain | undefined, TAccount extends Account | undefined>(client: WalletClient<Transport, TChain, TAccount>, { chain }: AddChainParameters): Promise<void>;
63
46
 
64
- type DeployContractParameters<TChain extends Chain | undefined = Chain | undefined, TAbi extends Abi | readonly unknown[] = Abi, TAccount extends Account | undefined = undefined, TChainOverride extends Chain | undefined = TChain> = Omit<SendTransactionParameters<TChain, TAccount, TChainOverride>, 'accessList' | 'chain' | 'to' | 'data' | 'value'> & {
47
+ type DeployContractParameters<TAbi extends Abi | readonly unknown[] = Abi, TChain extends Chain | undefined = Chain | undefined, TAccount extends Account | undefined = Account | undefined, TChainOverride extends Chain | undefined = undefined> = Omit<SendTransactionParameters<TChain, TAccount, TChainOverride>, 'accessList' | 'chain' | 'to' | 'data' | 'value'> & {
65
48
  abi: Narrow<TAbi>;
66
49
  bytecode: Hex;
67
50
  } & GetChain<TChain, TChainOverride> & ExtractConstructorArgsFromAbi<TAbi>;
68
51
  type DeployContractReturnType = SendTransactionReturnType;
69
- declare function deployContract<TChain extends Chain | undefined, TAbi extends Abi | readonly unknown[], TAccount extends Account | undefined, TChainOverride extends Chain | undefined = TChain>(walletClient: WalletClientArg<Transport, TChain, TAccount>, { abi, args, bytecode, ...request }: DeployContractParameters<TChain, TAbi, TAccount, TChainOverride>): Promise<DeployContractReturnType>;
52
+ declare function deployContract<TAbi extends Abi | readonly unknown[], TChain extends Chain | undefined, TAccount extends Account | undefined, TChainOverride extends Chain | undefined>(walletClient: WalletClient<Transport, TChain, TAccount>, { abi, args, bytecode, ...request }: DeployContractParameters<TAbi, TChain, TAccount, TChainOverride>): Promise<DeployContractReturnType>;
70
53
 
71
54
  type GetAddressesReturnType = Address[];
72
- declare function getAddresses(client: WalletClientArg): Promise<GetAddressesReturnType>;
55
+ declare function getAddresses<TChain extends Chain | undefined, TAccount extends Account | undefined = undefined>(client: WalletClient<Transport, TChain, TAccount>): Promise<GetAddressesReturnType>;
73
56
 
74
57
  type GetChainIdReturnType = number;
75
- declare function getChainId(client: PublicClientArg | WalletClientArg): Promise<GetChainIdReturnType>;
58
+ declare function getChainId<TChain extends Chain | undefined, TAccount extends Account | undefined>(client: PublicClient<Transport, TChain> | WalletClient<Transport, TChain, TAccount>): Promise<GetChainIdReturnType>;
76
59
 
77
60
  type GetPermissionsReturnType = WalletPermission[];
78
- declare function getPermissions(client: WalletClientArg): Promise<WalletPermission[]>;
61
+ declare function getPermissions<TChain extends Chain | undefined, TAccount extends Account | undefined = undefined>(client: WalletClient<Transport, TChain, TAccount>): Promise<WalletPermission[]>;
79
62
 
80
63
  type RequestAddressesReturnType = Address[];
81
- declare function requestAddresses(client: WalletClientArg): Promise<RequestAddressesReturnType>;
64
+ declare function requestAddresses<TChain extends Chain | undefined, TAccount extends Account | undefined = undefined>(client: WalletClient<Transport, TChain, TAccount>): Promise<RequestAddressesReturnType>;
82
65
 
83
66
  type RequestPermissionsParameters = {
84
67
  eth_accounts: Record<string, any>;
@@ -86,23 +69,18 @@ type RequestPermissionsParameters = {
86
69
  [key: string]: Record<string, any>;
87
70
  };
88
71
  type RequestPermissionsReturnType = WalletPermission[];
89
- declare function requestPermissions(client: WalletClientArg, permissions: RequestPermissionsParameters): Promise<WalletPermission[]>;
72
+ declare function requestPermissions<TChain extends Chain | undefined, TAccount extends Account | undefined = undefined>(client: WalletClient<Transport, TChain, TAccount>, permissions: RequestPermissionsParameters): Promise<WalletPermission[]>;
90
73
 
91
74
  type FormattedTransactionRequest<TFormatter extends Formatter | undefined = Formatter> = MergeIntersectionProperties<Omit<Formatted<TFormatter, TransactionRequest, true>, 'from'>, TransactionRequest>;
92
- type SendTransactionParameters<TChain extends Chain | undefined = Chain, TAccount extends Account | undefined = undefined, TChainOverride extends Chain | undefined = TChain> = FormattedTransactionRequest<TransactionRequestFormatter<TChainOverride>> & GetAccountParameter<TAccount> & GetChain<TChain, TChainOverride>;
75
+ type SendTransactionParameters<TChain extends Chain | undefined = Chain | undefined, TAccount extends Account | undefined = Account | undefined, TChainOverride extends Chain | undefined = Chain> = FormattedTransactionRequest<TransactionRequestFormatter<TChainOverride>> & GetAccountParameter<TAccount> & GetChain<TChain, TChainOverride>;
93
76
  type SendTransactionReturnType = Hash;
94
- declare function sendTransaction<TChain extends Chain | undefined, TAccount extends Account | undefined, TChainOverride extends Chain | undefined = TChain>(client: WalletClientArg<Transport, TChain, TAccount>, args: SendTransactionParameters<TChain, TAccount, TChainOverride>): Promise<SendTransactionReturnType>;
77
+ declare function sendTransaction<TChain extends Chain | undefined, TAccount extends Account | undefined, TChainOverride extends Chain | undefined>(client: WalletClient<Transport, TChain, TAccount>, args: SendTransactionParameters<TChain, TAccount, TChainOverride>): Promise<SendTransactionReturnType>;
95
78
 
96
- type SignMessageParameters<TAccount extends Account | undefined = undefined> = GetAccountParameter<TAccount> & ({
97
- /** @deprecated – `data` will be removed in 0.2.0; use `message` instead. */
98
- data: string;
99
- message?: never;
100
- } | {
101
- data?: never;
79
+ type SignMessageParameters<TAccount extends Account | undefined = Account | undefined> = GetAccountParameter<TAccount> & {
102
80
  message: string;
103
- });
81
+ };
104
82
  type SignMessageReturnType = Hex;
105
- declare function signMessage<TAccount extends Account | undefined>(client: WalletClientArg<Transport, Chain | undefined, TAccount>, { account: account_, data, message, }: SignMessageParameters<TAccount>): Promise<SignMessageReturnType>;
83
+ declare function signMessage<TChain extends Chain | undefined, TAccount extends Account | undefined>(client: WalletClient<Transport, TChain, TAccount>, { account: account_, message, }: SignMessageParameters<TAccount>): Promise<SignMessageReturnType>;
106
84
 
107
85
  type SignTypedDataParameters<TTypedData extends TypedData | {
108
86
  [key: string]: unknown;
@@ -110,41 +88,242 @@ type SignTypedDataParameters<TTypedData extends TypedData | {
110
88
  type SignTypedDataReturnType = Hex;
111
89
  declare function signTypedData<TTypedData extends TypedData | {
112
90
  [key: string]: unknown;
113
- }, TPrimaryType extends string = string, TAccount extends Account | undefined = undefined>(client: WalletClientArg<Transport, Chain | undefined, TAccount>, { account: account_, domain, message, primaryType, types: types_, }: SignTypedDataParameters<TTypedData, TPrimaryType, TAccount>): Promise<SignTypedDataReturnType>;
91
+ }, TPrimaryType extends string, TChain extends Chain | undefined, TAccount extends Account | undefined>(client: WalletClient<Transport, TChain, TAccount>, { account: account_, domain, message, primaryType, types: types_, }: SignTypedDataParameters<TTypedData, TPrimaryType, TAccount>): Promise<SignTypedDataReturnType>;
114
92
 
115
93
  type SwitchChainParameters = {
116
94
  id: Chain['id'];
117
95
  };
118
- declare function switchChain(client: WalletClientArg, { id }: SwitchChainParameters): Promise<void>;
96
+ declare function switchChain<TChain extends Chain | undefined, TAccount extends Account | undefined = undefined>(client: WalletClient<Transport, TChain, TAccount>, { id }: SwitchChainParameters): Promise<void>;
119
97
 
120
98
  type WatchAssetParameters = WatchAssetParams;
121
99
  type WatchAssetReturnType = boolean;
122
- declare function watchAsset(client: WalletClientArg, params: WatchAssetParameters): Promise<WatchAssetReturnType>;
100
+ declare function watchAsset<TChain extends Chain | undefined, TAccount extends Account | undefined = undefined>(client: WalletClient<Transport, TChain, TAccount>, params: WatchAssetParameters): Promise<WatchAssetReturnType>;
123
101
 
124
- type WriteContractParameters<TChain extends Chain | undefined = Chain, TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string, TAccount extends Account | undefined = undefined, TChainOverride extends Chain | undefined = TChain> = Omit<SendTransactionParameters<TChain, TAccount, TChainOverride>, 'chain' | 'to' | 'data' | 'value'> & {
102
+ type WriteContractParameters<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string, TChain extends Chain | undefined = Chain, TAccount extends Account | undefined = undefined, TChainOverride extends Chain | undefined = undefined> = Omit<SendTransactionParameters<TChain, TAccount, TChainOverride>, 'chain' | 'to' | 'data' | 'value'> & {
125
103
  value?: GetValue<TAbi, TFunctionName, SendTransactionParameters<TChain>['value']>;
126
104
  } & GetChain<TChain, TChainOverride> & ContractConfig<TAbi, TFunctionName, 'payable' | 'nonpayable'>;
127
105
  type WriteContractReturnType = SendTransactionReturnType;
128
- declare function writeContract<TChain extends Chain | undefined, TAbi extends Abi | readonly unknown[], TFunctionName extends string, TAccount extends Account | undefined, TChainOverride extends Chain | undefined = TChain>(client: WalletClientArg<Transport, TChain, TAccount>, { abi, address, args, functionName, ...request }: WriteContractParameters<TChain, TAbi, TFunctionName, TAccount, TChainOverride>): Promise<WriteContractReturnType>;
106
+ declare function writeContract<TChain extends Chain | undefined, TAccount extends Account | undefined, TAbi extends Abi | readonly unknown[], TFunctionName extends string, TChainOverride extends Chain | undefined = undefined>(client: WalletClient<Transport, TChain, TAccount>, { abi, address, args, functionName, ...request }: WriteContractParameters<TAbi, TFunctionName, TChain, TAccount, TChainOverride>): Promise<WriteContractReturnType>;
107
+
108
+ type GetAccountParameter<TAccount extends Account | undefined = Account | undefined> = IsUndefined<TAccount> extends true ? {
109
+ account: Account | Address;
110
+ } : {
111
+ account?: Account | Address;
112
+ };
113
+ type ParseAccount<TAccount extends Account | Address | undefined> = (TAccount extends Account ? TAccount : never) | (TAccount extends Address ? JsonRpcAccount : never) | (TAccount extends undefined ? undefined : never);
114
+
115
+ type FilterType = 'transaction' | 'block' | 'event';
116
+ type Filter<TFilterType extends FilterType = 'event', TAbi extends Abi | readonly unknown[] = Abi, TEventName extends string | undefined = undefined, TArgs extends MaybeExtractEventArgsFromAbi<TAbi, TEventName> | undefined = MaybeExtractEventArgsFromAbi<TAbi, TEventName>> = {
117
+ id: Hex;
118
+ type: TFilterType;
119
+ } & (TFilterType extends 'event' ? TAbi extends Abi ? undefined extends TEventName ? {
120
+ abi: TAbi;
121
+ args?: never;
122
+ eventName?: never;
123
+ } : TArgs extends MaybeExtractEventArgsFromAbi<TAbi, TEventName> ? {
124
+ abi: TAbi;
125
+ args: TArgs;
126
+ eventName: TEventName;
127
+ } : {
128
+ abi: TAbi;
129
+ args?: never;
130
+ eventName: TEventName;
131
+ } : {
132
+ abi?: never;
133
+ args?: never;
134
+ eventName?: never;
135
+ } : {});
136
+
137
+ type MAXIMUM_DEPTH = 20;
138
+ type Contract<TAbi extends Abi | readonly unknown[] = Abi | readonly unknown[], TFunctionName extends string = string> = {
139
+ abi: TAbi;
140
+ functionName: TFunctionName;
141
+ };
142
+ type MulticallContracts<TContracts extends Contract[], TProperties extends Record<string, any> = object, Result extends any[] = [], Depth extends ReadonlyArray<number> = []> = Depth['length'] extends MAXIMUM_DEPTH ? (ContractConfig & TProperties)[] : TContracts extends [] ? [] : TContracts extends [infer Head extends Contract] ? [
143
+ ...Result,
144
+ ContractConfig<Head['abi'], Head['functionName']> & TProperties
145
+ ] : TContracts extends [
146
+ infer Head extends Contract,
147
+ ...infer Tail extends Contract[]
148
+ ] ? MulticallContracts<[
149
+ ...Tail
150
+ ], TProperties, [
151
+ ...Result,
152
+ ContractConfig<Head['abi'], Head['functionName']> & TProperties
153
+ ], [
154
+ ...Depth,
155
+ 1
156
+ ]> : unknown[] extends TContracts ? TContracts : TContracts extends ContractConfig<infer TAbi, infer TFunctionName>[] ? (ContractConfig<TAbi, TFunctionName> & TProperties)[] : (ContractConfig & TProperties)[];
157
+ type MulticallResult<Result, TAllowFailure extends boolean = true> = TAllowFailure extends true ? ({
158
+ error?: undefined;
159
+ result: Result;
160
+ status: 'success';
161
+ } | {
162
+ error: Error;
163
+ result?: undefined;
164
+ status: 'error';
165
+ }) : Result;
166
+ type MulticallResults<TContracts extends Contract[], TAllowFailure extends boolean = true, Result extends any[] = [], Depth extends ReadonlyArray<number> = []> = Depth['length'] extends MAXIMUM_DEPTH ? MulticallResult<ExtractResultFromAbi, TAllowFailure>[] : TContracts extends [] ? [] : TContracts extends [infer Head extends Contract] ? [...Result, MulticallResult<ExtractResultFromAbi<Head['abi'], Head['functionName']>, TAllowFailure>] : TContracts extends [
167
+ infer Head extends Contract,
168
+ ...infer Tail extends Contract[]
169
+ ] ? MulticallResults<[
170
+ ...Tail
171
+ ], TAllowFailure, [
172
+ ...Result,
173
+ MulticallResult<ExtractResultFromAbi<Head['abi'], Head['functionName']>, TAllowFailure>
174
+ ], [
175
+ ...Depth,
176
+ 1
177
+ ]> : TContracts extends ContractConfig<infer TAbi, infer TFunctionName>[] ? MulticallResult<ExtractResultFromAbi<TAbi, TFunctionName>, TAllowFailure>[] : MulticallResult<ExtractResultFromAbi, TAllowFailure>[];
178
+
179
+ type GetTransportConfig<TTransport extends Transport> = ReturnType<TTransport>['config'];
180
+
181
+ type GetEnsAddressParameters = Prettify<Pick<ReadContractParameters, 'blockNumber' | 'blockTag'> & {
182
+ /** ENS name to get address. */
183
+ name: string;
184
+ /** Address of ENS Universal Resolver Contract */
185
+ universalResolverAddress?: Address;
186
+ }>;
187
+ type GetEnsAddressReturnType = Address;
188
+ /**
189
+ * @description Gets address for ENS name.
190
+ *
191
+ * - Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.
192
+ * - Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize.html) function for this.
193
+ */
194
+ declare function getEnsAddress<TChain extends Chain | undefined>(client: PublicClient<Transport, TChain>, { blockNumber, blockTag, name, universalResolverAddress: universalResolverAddress_, }: GetEnsAddressParameters): Promise<GetEnsAddressReturnType>;
195
+
196
+ type GetEnsNameParameters = Prettify<Pick<ReadContractParameters, 'blockNumber' | 'blockTag'> & {
197
+ /** Address to get ENS name for. */
198
+ address: Address;
199
+ /** Address of ENS Universal Resolver Contract. */
200
+ universalResolverAddress?: Address;
201
+ }>;
202
+ type GetEnsNameReturnType = string | null;
203
+ /**
204
+ * @description Gets primary name for specified address.
205
+ *
206
+ * - Calls `reverse(bytes)` on ENS Universal Resolver Contract.
207
+ *
208
+ * @example
209
+ * const ensName = await getEnsName(publicClient, {
210
+ * address: '0xd2135CfB216b74109775236E36d4b433F1DF507B',
211
+ * })
212
+ * // 'wagmi-dev.eth'
213
+ */
214
+ declare function getEnsName<TChain extends Chain | undefined>(client: PublicClient<Transport, TChain>, { address, blockNumber, blockTag, universalResolverAddress: universalResolverAddress_, }: GetEnsNameParameters): Promise<GetEnsNameReturnType>;
215
+
216
+ type PublicActions<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined> = {
217
+ call: (args: CallParameters<TChain>) => Promise<CallReturnType>;
218
+ createBlockFilter: () => Promise<CreateBlockFilterReturnType>;
219
+ createContractEventFilter: <TAbi extends Abi | readonly unknown[], TEventName extends string | undefined, TArgs extends MaybeExtractEventArgsFromAbi<TAbi, TEventName> | undefined>(args: CreateContractEventFilterParameters<TAbi, TEventName, TArgs>) => Promise<CreateContractEventFilterReturnType<TAbi, TEventName, TArgs>>;
220
+ createEventFilter: <TAbiEvent extends AbiEvent | undefined, TAbi extends Abi | readonly unknown[], TEventName extends string | undefined, TArgs extends MaybeExtractEventArgsFromAbi<TAbi, TEventName> | undefined>(args?: CreateEventFilterParameters<TAbiEvent, TAbi, TEventName, TArgs>) => Promise<CreateEventFilterReturnType<TAbiEvent, TAbi, TEventName, TArgs>>;
221
+ createPendingTransactionFilter: () => Promise<CreatePendingTransactionFilterReturnType>;
222
+ estimateContractGas: <TChain extends Chain | undefined, TAbi extends Abi | readonly unknown[], TFunctionName extends string>(args: EstimateContractGasParameters<TAbi, TFunctionName, TChain>) => Promise<EstimateContractGasReturnType>;
223
+ estimateGas: (args: EstimateGasParameters<TChain>) => Promise<EstimateGasReturnType>;
224
+ getBalance: (args: GetBalanceParameters) => Promise<GetBalanceReturnType>;
225
+ getBlock: (args?: GetBlockParameters) => Promise<GetBlockReturnType<TChain>>;
226
+ getBlockNumber: (args?: GetBlockNumberParameters) => Promise<GetBlockNumberReturnType>;
227
+ getBlockTransactionCount: (args?: GetBlockTransactionCountParameters) => Promise<GetBlockTransactionCountReturnType>;
228
+ getBytecode: (args: GetBytecodeParameters) => Promise<GetBytecodeReturnType>;
229
+ getChainId: () => Promise<GetChainIdReturnType>;
230
+ getEnsAddress: (args: GetEnsAddressParameters) => Promise<GetEnsAddressReturnType>;
231
+ getEnsName: (args: GetEnsNameParameters) => Promise<GetEnsNameReturnType>;
232
+ getFeeHistory: (args: GetFeeHistoryParameters) => Promise<GetFeeHistoryReturnType>;
233
+ getFilterChanges: <TFilterType extends FilterType, TAbiEvent extends AbiEvent | undefined, TAbi extends Abi | readonly unknown[], TEventName extends string | undefined>(args: GetFilterChangesParameters<TFilterType, TAbiEvent, TAbi, TEventName>) => Promise<GetFilterChangesReturnType<TFilterType, TAbiEvent, TAbi, TEventName>>;
234
+ getFilterLogs: <TAbiEvent extends AbiEvent | undefined, TAbi extends Abi | readonly unknown[], TEventName extends string | undefined>(args: GetFilterLogsParameters<TAbiEvent, TAbi, TEventName>) => Promise<GetFilterLogsReturnType<TAbiEvent, TAbi, TEventName>>;
235
+ getGasPrice: () => Promise<GetGasPriceReturnType>;
236
+ getLogs: <TAbiEvent extends AbiEvent | undefined>(args?: GetLogsParameters<TAbiEvent>) => Promise<GetLogsReturnType<TAbiEvent>>;
237
+ getStorageAt: (args: GetStorageAtParameters) => Promise<GetStorageAtReturnType>;
238
+ getTransaction: (args: GetTransactionParameters) => Promise<GetTransactionReturnType<TChain>>;
239
+ getTransactionConfirmations: (args: GetTransactionConfirmationsParameters<TChain>) => Promise<GetTransactionConfirmationsReturnType>;
240
+ getTransactionCount: (args: GetTransactionCountParameters) => Promise<GetTransactionCountReturnType>;
241
+ getTransactionReceipt: (args: GetTransactionReceiptParameters) => Promise<GetTransactionReceiptReturnType<TChain>>;
242
+ multicall: <TContracts extends ContractConfig[], TAllowFailure extends boolean = true>(args: MulticallParameters<TContracts, TAllowFailure>) => Promise<MulticallReturnType<TContracts, TAllowFailure>>;
243
+ readContract: <TAbi extends Abi | readonly unknown[], TFunctionName extends string>(args: ReadContractParameters<TAbi, TFunctionName>) => Promise<ReadContractReturnType<TAbi, TFunctionName>>;
244
+ simulateContract: <TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = any, TChainOverride extends Chain | undefined = undefined>(args: SimulateContractParameters<TAbi, TFunctionName, TChain, TChainOverride>) => Promise<SimulateContractReturnType<TAbi, TFunctionName, TChain, TChainOverride>>;
245
+ uninstallFilter: (args: UninstallFilterParameters) => Promise<UninstallFilterReturnType>;
246
+ waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters<TChain>) => Promise<WaitForTransactionReceiptReturnType<TChain>>;
247
+ watchBlockNumber: (args: WatchBlockNumberParameters) => WatchBlockNumberReturnType;
248
+ watchBlocks: (args: WatchBlocksParameters<TTransport, TChain>) => WatchBlocksReturnType;
249
+ watchContractEvent: <TAbi extends Abi | readonly unknown[], TEventName extends string>(args: WatchContractEventParameters<TAbi, TEventName>) => WatchContractEventReturnType;
250
+ watchEvent: <TAbiEvent extends AbiEvent | undefined>(args: WatchEventParameters<TAbiEvent>) => WatchEventReturnType;
251
+ watchPendingTransactions: (args: WatchPendingTransactionsParameters<TTransport>) => WatchPendingTransactionsReturnType;
252
+ };
253
+
254
+ type WalletClientConfig<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccountOrAddress extends Account | Address | undefined = Account | Address | undefined> = Pick<ClientConfig<TTransport, TChain>, 'chain' | 'key' | 'name' | 'pollingInterval' | 'transport'> & {
255
+ /** The Account to use for the Wallet Client. This will be used for Actions that require an account as an argument. */
256
+ account?: TAccountOrAddress;
257
+ };
258
+ type WalletClient<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends Account | undefined = Account | undefined, TIncludeActions extends boolean = true> = Prettify<Client<TTransport, Requests, TChain> & (TIncludeActions extends true ? WalletActions<TChain, TAccount> : unknown) & {
259
+ /** The Account to use for the Wallet Client. */
260
+ account: TAccount;
261
+ }>;
262
+ /**
263
+ * @description Creates a wallet client with a given transport.
264
+ */
265
+ declare function createWalletClient<TTransport extends Transport, TChain extends Chain | undefined = undefined, TAccountOrAddress extends Account | Address | undefined = undefined>({ account, chain, transport, key, name, pollingInterval, }: WalletClientConfig<TTransport, TChain, TAccountOrAddress>): WalletClient<TTransport, TChain, TAccountOrAddress extends Address ? Prettify<JsonRpcAccount<TAccountOrAddress>> : TAccountOrAddress, true>;
266
+
267
+ type WalletActions<TChain extends Chain | undefined = Chain | undefined, TAccount extends Account | undefined = Account | undefined> = {
268
+ addChain: (args: AddChainParameters) => Promise<void>;
269
+ deployContract: <TAbi extends Abi | readonly unknown[], TChainOverride extends Chain | undefined>(args: DeployContractParameters<TAbi, TChain, TAccount, TChainOverride>) => Promise<DeployContractReturnType>;
270
+ getAddresses: () => Promise<GetAddressesReturnType>;
271
+ getChainId: () => Promise<GetChainIdReturnType>;
272
+ getPermissions: () => Promise<GetPermissionsReturnType>;
273
+ requestAddresses: () => Promise<RequestAddressesReturnType>;
274
+ requestPermissions: (args: RequestPermissionsParameters) => Promise<RequestPermissionsReturnType>;
275
+ sendTransaction: <TChainOverride extends Chain | undefined>(args: SendTransactionParameters<TChain, TAccount, TChainOverride>) => Promise<SendTransactionReturnType>;
276
+ signMessage: (args: SignMessageParameters<TAccount>) => Promise<SignMessageReturnType>;
277
+ signTypedData: <TTypedData extends TypedData | {
278
+ [key: string]: unknown;
279
+ }, TPrimaryType extends string>(args: SignTypedDataParameters<TTypedData, TPrimaryType, TAccount>) => Promise<SignTypedDataReturnType>;
280
+ switchChain: (args: SwitchChainParameters) => Promise<void>;
281
+ watchAsset: (args: WatchAssetParameters) => Promise<WatchAssetReturnType>;
282
+ writeContract: <TAbi extends Abi | readonly unknown[], TFunctionName extends string, TChainOverride extends Chain | undefined>(args: WriteContractParameters<TAbi, TFunctionName, TChain, TAccount, TChainOverride>) => Promise<WriteContractReturnType>;
283
+ };
284
+
285
+ type PublicClientConfig<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined> = Pick<ClientConfig<TTransport, TChain>, 'chain' | 'key' | 'name' | 'pollingInterval' | 'transport'>;
286
+ type PublicClient<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TIncludeActions extends boolean = true> = Prettify<Client<TTransport, PublicRequests, TChain> & (TIncludeActions extends true ? PublicActions<TTransport, TChain> : unknown)>;
287
+ /**
288
+ * @description Creates a public client with a given transport.
289
+ */
290
+ declare function createPublicClient<TTransport extends Transport, TChain extends Chain | undefined = undefined>({ chain, key, name, transport, pollingInterval, }: PublicClientConfig<TTransport, TChain>): PublicClient<TTransport, TChain, true>;
291
+
292
+ type FormattedCall<TFormatter extends Formatter | undefined = Formatter> = MergeIntersectionProperties<Omit<Formatted<TFormatter, TransactionRequest, true>, 'from'>, TransactionRequest>;
293
+ type CallParameters<TChain extends Chain | undefined = Chain | undefined> = FormattedCall<TransactionRequestFormatter<TChain>> & {
294
+ account?: Account | Address;
295
+ } & ({
296
+ /** The balance of the account at a block number. */
297
+ blockNumber?: bigint;
298
+ blockTag?: never;
299
+ } | {
300
+ blockNumber?: never;
301
+ /** The balance of the account at a block tag. */
302
+ blockTag?: BlockTag;
303
+ });
304
+ type CallReturnType = {
305
+ data: Hex | undefined;
306
+ };
307
+ declare function call<TChain extends Chain | undefined>(client: PublicClient<Transport, TChain>, args: CallParameters<TChain>): Promise<CallReturnType>;
129
308
 
130
- type SimulateContractParameters<TChain extends Chain | undefined = Chain, TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = any, TChainOverride extends Chain | undefined = undefined> = Omit<CallParameters<TChainOverride extends Chain ? TChainOverride : TChain>, 'to' | 'data' | 'value'> & {
309
+ type SimulateContractParameters<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = any, TChain extends Chain | undefined = Chain | undefined, TChainOverride extends Chain | undefined = undefined> = Omit<CallParameters<TChainOverride extends Chain ? TChainOverride : TChain>, 'to' | 'data' | 'value'> & {
131
310
  chain?: TChainOverride;
132
311
  } & ContractConfig<TAbi, TFunctionName, 'payable' | 'nonpayable'> & {
133
312
  value?: GetValue<TAbi, TFunctionName, CallParameters<TChain>['value']>;
134
313
  };
135
- type SimulateContractReturnType<TChain extends Chain | undefined = Chain, TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string, TChainOverride extends Chain | undefined = TChain> = {
314
+ type SimulateContractReturnType<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string, TChain extends Chain | undefined = Chain | undefined, TChainOverride extends Chain | undefined = undefined> = {
136
315
  result: ExtractResultFromAbi<TAbi, TFunctionName>;
137
- request: Omit<WriteContractParameters<TChain, TAbi, TFunctionName, undefined, TChainOverride>, 'chain'> & {
316
+ request: Omit<WriteContractParameters<TAbi, TFunctionName, TChain, undefined, TChainOverride>, 'chain'> & {
138
317
  chain: TChainOverride;
139
318
  } & ContractConfig<TAbi, TFunctionName, 'payable' | 'nonpayable'>;
140
319
  };
141
- declare function simulateContract<TChain extends Chain | undefined, TAbi extends Abi | readonly unknown[], TFunctionName extends string, TChainOverride extends Chain | undefined>(client: PublicClientArg<Transport, TChain>, { abi, address, args, functionName, ...callRequest }: SimulateContractParameters<TChain, TAbi, TFunctionName, TChainOverride>): Promise<SimulateContractReturnType<TChain, TAbi, TFunctionName, TChainOverride>>;
320
+ declare function simulateContract<TChain extends Chain | undefined, TAbi extends Abi | readonly unknown[], TFunctionName extends string, TChainOverride extends Chain | undefined>(client: PublicClient<Transport, TChain>, { abi, address, args, functionName, ...callRequest }: SimulateContractParameters<TAbi, TFunctionName, TChain, TChainOverride>): Promise<SimulateContractReturnType<TAbi, TFunctionName, TChain, TChainOverride>>;
142
321
 
143
322
  type CreatePendingTransactionFilterReturnType = Filter<'transaction'>;
144
- declare function createPendingTransactionFilter(client: PublicClientArg): Promise<CreatePendingTransactionFilterReturnType>;
323
+ declare function createPendingTransactionFilter<TTransport extends Transport, TChain extends Chain | undefined>(client: PublicClient<TTransport, TChain>): Promise<CreatePendingTransactionFilterReturnType>;
145
324
 
146
325
  type CreateBlockFilterReturnType = Filter<'block'>;
147
- declare function createBlockFilter(client: PublicClientArg): Promise<CreateBlockFilterReturnType>;
326
+ declare function createBlockFilter<TChain extends Chain | undefined>(client: PublicClient<Transport, TChain>): Promise<CreateBlockFilterReturnType>;
148
327
 
149
328
  type CreateEventFilterParameters<TAbiEvent extends AbiEvent | undefined = undefined, TAbi extends Abi | readonly unknown[] = [TAbiEvent], TEventName extends string | undefined = MaybeAbiEventName<TAbiEvent>, TArgs extends MaybeExtractEventArgsFromAbi<TAbi, TEventName> | undefined = undefined> = {
150
329
  address?: Address | Address[];
@@ -164,7 +343,7 @@ type CreateEventFilterParameters<TAbiEvent extends AbiEvent | undefined = undefi
164
343
  event?: never;
165
344
  });
166
345
  type CreateEventFilterReturnType<TAbiEvent extends AbiEvent | undefined = undefined, TAbi extends Abi | readonly unknown[] = [TAbiEvent], TEventName extends string | undefined = MaybeAbiEventName<TAbiEvent>, TArgs extends MaybeExtractEventArgsFromAbi<TAbi, TEventName> | undefined = undefined> = Filter<'event', TAbi, TEventName, TArgs>;
167
- declare function createEventFilter<TAbiEvent extends AbiEvent | undefined, TAbi extends Abi | readonly unknown[] = [TAbiEvent], TEventName extends string | undefined = MaybeAbiEventName<TAbiEvent>, TArgs extends MaybeExtractEventArgsFromAbi<TAbi, TEventName> | undefined = undefined>(client: PublicClientArg, { address, args, event, fromBlock, toBlock, }?: CreateEventFilterParameters<TAbiEvent, TAbi, TEventName, TArgs>): Promise<CreateEventFilterReturnType<TAbiEvent, TAbi, TEventName, TArgs>>;
346
+ declare function createEventFilter<TChain extends Chain | undefined, TAbiEvent extends AbiEvent | undefined, _Abi extends Abi | readonly unknown[] = [TAbiEvent], _EventName extends string | undefined = MaybeAbiEventName<TAbiEvent>, _Args extends MaybeExtractEventArgsFromAbi<_Abi, _EventName> | undefined = undefined>(client: PublicClient<Transport, TChain>, { address, args, event, fromBlock, toBlock, }?: CreateEventFilterParameters<TAbiEvent, _Abi, _EventName, _Args>): Promise<CreateEventFilterReturnType<TAbiEvent, _Abi, _EventName, _Args>>;
168
347
 
169
348
  type CreateContractEventFilterParameters<TAbi extends Abi | readonly unknown[] = Abi, TEventName extends string | undefined = undefined, TArgs extends MaybeExtractEventArgsFromAbi<TAbi, TEventName> | undefined = undefined> = {
170
349
  address?: Address | Address[];
@@ -180,10 +359,10 @@ type CreateContractEventFilterParameters<TAbi extends Abi | readonly unknown[] =
180
359
  args?: never;
181
360
  });
182
361
  type CreateContractEventFilterReturnType<TAbi extends Abi | readonly unknown[] = Abi, TEventName extends string | undefined = undefined, TArgs extends MaybeExtractEventArgsFromAbi<TAbi, TEventName> | undefined = undefined> = Filter<'event', TAbi, TEventName, TArgs>;
183
- declare function createContractEventFilter<TAbi extends Abi | readonly unknown[], TEventName extends string | undefined, TArgs extends MaybeExtractEventArgsFromAbi<TAbi, TEventName> | undefined>(client: PublicClientArg, { address, abi, args, eventName, fromBlock, toBlock, }: CreateContractEventFilterParameters<TAbi, TEventName, TArgs>): Promise<CreateContractEventFilterReturnType<TAbi, TEventName, TArgs>>;
362
+ declare function createContractEventFilter<TChain extends Chain | undefined, TAbi extends Abi | readonly unknown[], TEventName extends string | undefined, TArgs extends MaybeExtractEventArgsFromAbi<TAbi, TEventName> | undefined>(client: PublicClient<Transport, TChain>, { address, abi, args, eventName, fromBlock, toBlock, }: CreateContractEventFilterParameters<TAbi, TEventName, TArgs>): Promise<CreateContractEventFilterReturnType<TAbi, TEventName, TArgs>>;
184
363
 
185
364
  type FormattedEstimateGas<TFormatter extends Formatter | undefined = Formatter> = MergeIntersectionProperties<Omit<Formatted<TFormatter, TransactionRequest, true>, 'from'>, TransactionRequest>;
186
- type EstimateGasParameters<TChain extends Chain | undefined = Chain, TAccount extends Account | undefined = undefined> = FormattedEstimateGas<TransactionRequestFormatter<TChain>> & GetAccountParameter<TAccount> & ({
365
+ type EstimateGasParameters<TChain extends Chain | undefined = Chain | undefined, TAccount extends Account | undefined = undefined> = FormattedEstimateGas<TransactionRequestFormatter<TChain>> & GetAccountParameter<TAccount> & ({
187
366
  /** The balance of the account at a block number. */
188
367
  blockNumber?: bigint;
189
368
  blockTag?: never;
@@ -196,13 +375,13 @@ type EstimateGasReturnType = bigint;
196
375
  /**
197
376
  * @description Estimates the gas necessary to complete a transaction without submitting it to the network.
198
377
  */
199
- declare function estimateGas<TChain extends Chain | undefined, TAccount extends Account | undefined = undefined>(client: PublicClientArg<Transport, TChain> | WalletClientArg<Transport, TChain, TAccount>, args: EstimateGasParameters<TChain, TAccount>): Promise<EstimateGasReturnType>;
378
+ declare function estimateGas<TChain extends Chain | undefined, TAccount extends Account | undefined = undefined>(client: PublicClient<Transport, TChain> | WalletClient<Transport, TChain, TAccount>, args: EstimateGasParameters<TChain, TAccount>): Promise<EstimateGasReturnType>;
200
379
 
201
- type EstimateContractGasParameters<TChain extends Chain | undefined = Chain, TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = any> = Omit<EstimateGasParameters<TChain>, 'data' | 'to' | 'value'> & ContractConfig<TAbi, TFunctionName, 'payable' | 'nonpayable'> & {
380
+ type EstimateContractGasParameters<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string, TChain extends Chain | undefined = Chain | undefined> = Omit<EstimateGasParameters<TChain>, 'data' | 'to' | 'value'> & ContractConfig<TAbi, TFunctionName, 'payable' | 'nonpayable'> & {
202
381
  value?: GetValue<TAbi, TFunctionName, EstimateGasParameters<TChain>['value']>;
203
382
  };
204
383
  type EstimateContractGasReturnType = bigint;
205
- declare function estimateContractGas<TChain extends Chain | undefined, TAbi extends Abi | readonly unknown[], TFunctionName extends string>(client: PublicClientArg<Transport, TChain>, { abi, address, args, functionName, ...request }: EstimateContractGasParameters<TChain, TAbi, TFunctionName>): Promise<EstimateContractGasReturnType>;
384
+ declare function estimateContractGas<TAbi extends Abi | readonly unknown[], TFunctionName extends string, TChain extends Chain | undefined>(client: PublicClient<Transport, TChain>, { abi, address, args, functionName, ...request }: EstimateContractGasParameters<TAbi, TFunctionName, TChain>): Promise<EstimateContractGasReturnType>;
206
385
 
207
386
  type GetBalanceParameters = {
208
387
  /** The address of the account. */
@@ -220,7 +399,7 @@ type GetBalanceReturnType = bigint;
220
399
  /**
221
400
  * @description Returns the balance of an address in wei.
222
401
  */
223
- declare function getBalance(client: PublicClientArg, { address, blockNumber, blockTag }: GetBalanceParameters): Promise<GetBalanceReturnType>;
402
+ declare function getBalance<TChain extends Chain | undefined>(client: PublicClient<Transport, TChain>, { address, blockNumber, blockTag }: GetBalanceParameters): Promise<GetBalanceReturnType>;
224
403
 
225
404
  type GetBlockParameters = {
226
405
  /** Whether or not to include transaction data in the response. */
@@ -241,8 +420,8 @@ type GetBlockParameters = {
241
420
  /** The block tag. Defaults to 'latest'. */
242
421
  blockTag?: BlockTag;
243
422
  });
244
- type GetBlockReturnType<TChain extends Chain | undefined = Chain> = FormattedBlock<BlockFormatter<TChain>>;
245
- declare function getBlock<TChain extends Chain | undefined>(client: PublicClientArg<Transport, TChain> | WalletClientArg<Transport, TChain>, { blockHash, blockNumber, blockTag, includeTransactions, }?: GetBlockParameters): Promise<GetBlockReturnType<TChain>>;
423
+ type GetBlockReturnType<TChain extends Chain | undefined = Chain | undefined> = FormattedBlock<BlockFormatter<TChain>>;
424
+ declare function getBlock<TChain extends Chain | undefined, TAccount extends Account | undefined>(client: PublicClient<Transport, TChain> | WalletClient<Transport, TChain, TAccount>, { blockHash, blockNumber, blockTag, includeTransactions, }?: GetBlockParameters): Promise<GetBlockReturnType<TChain>>;
246
425
 
247
426
  type GetBlockNumberParameters = {
248
427
  /** The maximum age (in ms) of the cached value. */
@@ -260,13 +439,22 @@ declare function getBlockNumberCache(id: string): {
260
439
  clear: () => boolean;
261
440
  get: () => {
262
441
  created: Date;
442
+ /**
443
+ * @description Returns the number of the most recent block seen.
444
+ */
263
445
  data: unknown;
264
446
  } | undefined;
265
447
  set: (data: {
266
448
  created: Date;
449
+ /**
450
+ * @description Returns the number of the most recent block seen.
451
+ */
267
452
  data: unknown;
268
453
  }) => Map<string, {
269
454
  created: Date;
455
+ /**
456
+ * @description Returns the number of the most recent block seen.
457
+ */
270
458
  data: unknown;
271
459
  }>;
272
460
  };
@@ -274,7 +462,7 @@ declare function getBlockNumberCache(id: string): {
274
462
  /**
275
463
  * @description Returns the number of the most recent block seen.
276
464
  */
277
- declare function getBlockNumber(client: PublicClientArg, { maxAge }?: GetBlockNumberParameters): Promise<GetBlockNumberReturnType>;
465
+ declare function getBlockNumber<TChain extends Chain | undefined>(client: PublicClient<Transport, TChain>, { maxAge }?: GetBlockNumberParameters): Promise<GetBlockNumberReturnType>;
278
466
 
279
467
  type GetBlockTransactionCountParameters = {
280
468
  /** Hash of the block. */
@@ -293,7 +481,7 @@ type GetBlockTransactionCountParameters = {
293
481
  blockTag?: BlockTag;
294
482
  };
295
483
  type GetBlockTransactionCountReturnType = number;
296
- declare function getBlockTransactionCount<TChain extends Chain | undefined>(client: PublicClientArg<Transport, TChain>, { blockHash, blockNumber, blockTag, }?: GetBlockTransactionCountParameters): Promise<GetBlockTransactionCountReturnType>;
484
+ declare function getBlockTransactionCount<TChain extends Chain | undefined>(client: PublicClient<Transport, TChain>, { blockHash, blockNumber, blockTag, }?: GetBlockTransactionCountParameters): Promise<GetBlockTransactionCountReturnType>;
297
485
 
298
486
  type GetBytecodeParameters = {
299
487
  address: Address;
@@ -305,7 +493,7 @@ type GetBytecodeParameters = {
305
493
  blockTag?: never;
306
494
  });
307
495
  type GetBytecodeReturnType = Hex | undefined;
308
- declare function getBytecode(client: PublicClientArg, { address, blockNumber, blockTag }: GetBytecodeParameters): Promise<GetBytecodeReturnType>;
496
+ declare function getBytecode<TChain extends Chain | undefined>(client: PublicClient<Transport, TChain>, { address, blockNumber, blockTag }: GetBytecodeParameters): Promise<GetBytecodeReturnType>;
309
497
 
310
498
  type GetFeeHistoryParameters = {
311
499
  blockCount: number;
@@ -321,25 +509,25 @@ type GetFeeHistoryReturnType = FeeHistory;
321
509
  /**
322
510
  * @description Returns a collection of historical gas information.
323
511
  */
324
- declare function getFeeHistory(client: PublicClientArg, { blockCount, blockNumber, blockTag, rewardPercentiles, }: GetFeeHistoryParameters): Promise<GetFeeHistoryReturnType>;
512
+ declare function getFeeHistory<TChain extends Chain | undefined>(client: PublicClient<Transport, TChain>, { blockCount, blockNumber, blockTag, rewardPercentiles, }: GetFeeHistoryParameters): Promise<GetFeeHistoryReturnType>;
325
513
 
326
514
  type GetFilterChangesParameters<TFilterType extends FilterType = FilterType, TAbiEvent extends AbiEvent | undefined = undefined, TAbi extends Abi | readonly unknown[] = [TAbiEvent], TEventName extends string | undefined = MaybeAbiEventName<TAbiEvent>> = {
327
515
  filter: Filter<TFilterType, TAbi, TEventName, any>;
328
516
  };
329
517
  type GetFilterChangesReturnType<TFilterType extends FilterType = FilterType, TAbiEvent extends AbiEvent | undefined = undefined, TAbi extends Abi | readonly unknown[] = [TAbiEvent], TEventName extends string | undefined = MaybeAbiEventName<TAbiEvent>> = TFilterType extends 'event' ? Log<bigint, number, TAbiEvent, TAbi, TEventName>[] : Hash[];
330
- declare function getFilterChanges<TFilterType extends FilterType, TAbiEvent extends AbiEvent | undefined, TAbi extends Abi | readonly unknown[], TEventName extends string | undefined>(client: PublicClientArg, { filter, }: GetFilterChangesParameters<TFilterType, TAbiEvent, TAbi, TEventName>): Promise<GetFilterChangesReturnType<TFilterType, TAbiEvent, TAbi, TEventName>>;
518
+ declare function getFilterChanges<TTransport extends Transport, TChain extends Chain | undefined, TFilterType extends FilterType, TAbiEvent extends AbiEvent | undefined, TAbi extends Abi | readonly unknown[], TEventName extends string | undefined>(client: PublicClient<TTransport, TChain>, { filter, }: GetFilterChangesParameters<TFilterType, TAbiEvent, TAbi, TEventName>): Promise<GetFilterChangesReturnType<TFilterType, TAbiEvent, TAbi, TEventName>>;
331
519
 
332
520
  type GetFilterLogsParameters<TAbiEvent extends AbiEvent | undefined = undefined, TAbi extends Abi | readonly unknown[] = [TAbiEvent], TEventName extends string | undefined = MaybeAbiEventName<TAbiEvent>> = {
333
521
  filter: Filter<'event', TAbi, TEventName, any>;
334
522
  };
335
523
  type GetFilterLogsReturnType<TAbiEvent extends AbiEvent | undefined = undefined, TAbi extends Abi | readonly unknown[] = [TAbiEvent], TEventName extends string | undefined = MaybeAbiEventName<TAbiEvent>> = Log<bigint, number, TAbiEvent, TAbi, TEventName>[];
336
- declare function getFilterLogs<TAbiEvent extends AbiEvent | undefined, TAbi extends Abi | readonly unknown[], TEventName extends string | undefined>(client: PublicClientArg, { filter }: GetFilterLogsParameters<TAbiEvent, TAbi, TEventName>): Promise<GetFilterLogsReturnType<TAbiEvent, TAbi, TEventName>>;
524
+ declare function getFilterLogs<TChain extends Chain | undefined, TAbiEvent extends AbiEvent | undefined, TAbi extends Abi | readonly unknown[], TEventName extends string | undefined>(client: PublicClient<Transport, TChain>, { filter }: GetFilterLogsParameters<TAbiEvent, TAbi, TEventName>): Promise<GetFilterLogsReturnType<TAbiEvent, TAbi, TEventName>>;
337
525
 
338
526
  type GetGasPriceReturnType = bigint;
339
527
  /**
340
528
  * @description Returns the current price of gas (in wei).
341
529
  */
342
- declare function getGasPrice(client: PublicClientArg | WalletClientArg): Promise<GetGasPriceReturnType>;
530
+ declare function getGasPrice<TChain extends Chain | undefined, TAccount extends Account | undefined>(client: PublicClient<Transport, TChain> | WalletClient<Transport, TChain, TAccount>): Promise<GetGasPriceReturnType>;
343
531
 
344
532
  type GetLogsParameters<TAbiEvent extends AbiEvent | undefined = undefined, TEventName extends string | undefined = MaybeAbiEventName<TAbiEvent>> = {
345
533
  /** Address or list of addresses from which logs originated */
@@ -366,7 +554,7 @@ type GetLogsReturnType<TAbiEvent extends AbiEvent | undefined = undefined, TEven
366
554
  /**
367
555
  * @description Returns a collection of event logs.
368
556
  */
369
- declare function getLogs<TAbiEvent extends AbiEvent | undefined>(client: PublicClientArg, { address, blockHash, fromBlock, toBlock, event, args, }?: GetLogsParameters<TAbiEvent>): Promise<GetLogsReturnType<TAbiEvent>>;
557
+ declare function getLogs<TChain extends Chain | undefined, TAbiEvent extends AbiEvent | undefined>(client: PublicClient<Transport, TChain>, { address, blockHash, fromBlock, toBlock, event, args, }?: GetLogsParameters<TAbiEvent>): Promise<GetLogsReturnType<TAbiEvent>>;
370
558
 
371
559
  type GetStorageAtParameters = {
372
560
  address: Address;
@@ -379,7 +567,7 @@ type GetStorageAtParameters = {
379
567
  blockTag?: never;
380
568
  });
381
569
  type GetStorageAtReturnType = Hex | undefined;
382
- declare function getStorageAt(client: PublicClientArg, { address, blockNumber, blockTag, slot }: GetStorageAtParameters): Promise<GetStorageAtReturnType>;
570
+ declare function getStorageAt<TChain extends Chain | undefined>(client: PublicClient<Transport, TChain>, { address, blockNumber, blockTag, slot }: GetStorageAtParameters): Promise<GetStorageAtReturnType>;
383
571
 
384
572
  type GetTransactionParameters = {
385
573
  /** The block hash */
@@ -415,7 +603,7 @@ type GetTransactionParameters = {
415
603
  };
416
604
  type GetTransactionReturnType<TChain extends Chain | undefined = Chain> = FormattedTransaction<TransactionFormatter<TChain>>;
417
605
  /** @description Returns information about a transaction given a hash or block identifier. */
418
- declare function getTransaction<TChain extends Chain | undefined>(client: PublicClientArg<Transport, TChain>, { blockHash, blockNumber, blockTag, hash, index, }: GetTransactionParameters): Promise<GetTransactionReturnType<TChain>>;
606
+ declare function getTransaction<TChain extends Chain | undefined>(client: PublicClient<Transport, TChain>, { blockHash, blockNumber, blockTag, hash, index, }: GetTransactionParameters): Promise<GetTransactionReturnType<TChain>>;
419
607
 
420
608
  type GetTransactionConfirmationsParameters<TChain extends Chain | undefined = Chain> = {
421
609
  /** The transaction hash. */
@@ -427,7 +615,7 @@ type GetTransactionConfirmationsParameters<TChain extends Chain | undefined = Ch
427
615
  transactionReceipt: FormattedTransactionReceipt<TransactionReceiptFormatter<TChain>>;
428
616
  };
429
617
  type GetTransactionConfirmationsReturnType = bigint;
430
- declare function getTransactionConfirmations<TChain extends Chain | undefined>(client: PublicClientArg<Transport, TChain>, { hash, transactionReceipt }: GetTransactionConfirmationsParameters<TChain>): Promise<GetTransactionConfirmationsReturnType>;
618
+ declare function getTransactionConfirmations<TChain extends Chain | undefined>(client: PublicClient<Transport, TChain>, { hash, transactionReceipt }: GetTransactionConfirmationsParameters<TChain>): Promise<GetTransactionConfirmationsReturnType>;
431
619
 
432
620
  type GetTransactionCountParameters = {
433
621
  /** The account address. */
@@ -445,56 +633,14 @@ type GetTransactionCountReturnType = number;
445
633
  /**
446
634
  * @description Returns the number of transactions an account has broadcast / sent.
447
635
  */
448
- declare function getTransactionCount(client: PublicClientArg | WalletClientArg, { address, blockTag, blockNumber }: GetTransactionCountParameters): Promise<GetTransactionCountReturnType>;
636
+ declare function getTransactionCount<TChain extends Chain | undefined, TAccount extends Account | undefined>(client: PublicClient<Transport, TChain> | WalletClient<Transport, TChain, TAccount>, { address, blockTag, blockNumber }: GetTransactionCountParameters): Promise<GetTransactionCountReturnType>;
449
637
 
450
638
  type GetTransactionReceiptParameters = {
451
639
  /** The hash of the transaction. */
452
640
  hash: Hash;
453
641
  };
454
- type GetTransactionReceiptReturnType<TChain extends Chain | undefined = Chain> = FormattedTransactionReceipt<TransactionReceiptFormatter<TChain>>;
455
- declare function getTransactionReceipt<TChain extends Chain | undefined>(client: PublicClientArg<Transport, TChain>, { hash }: GetTransactionReceiptParameters): Promise<Formatted<TransactionReceiptFormatter<TChain>, TransactionReceipt<bigint, number, "success" | "reverted", TransactionType>, false, false>>;
456
-
457
- type MAXIMUM_DEPTH = 20;
458
- type Contract<TAbi extends Abi | readonly unknown[] = Abi | readonly unknown[], TFunctionName extends string = string> = {
459
- abi: TAbi;
460
- functionName: TFunctionName;
461
- };
462
- type MulticallContracts<TContracts extends Contract[], TProperties extends Record<string, any> = object, Result extends any[] = [], Depth extends ReadonlyArray<number> = []> = Depth['length'] extends MAXIMUM_DEPTH ? (ContractConfig & TProperties)[] : TContracts extends [] ? [] : TContracts extends [infer Head extends Contract] ? [
463
- ...Result,
464
- ContractConfig<Head['abi'], Head['functionName']> & TProperties
465
- ] : TContracts extends [
466
- infer Head extends Contract,
467
- ...infer Tail extends Contract[]
468
- ] ? MulticallContracts<[
469
- ...Tail
470
- ], TProperties, [
471
- ...Result,
472
- ContractConfig<Head['abi'], Head['functionName']> & TProperties
473
- ], [
474
- ...Depth,
475
- 1
476
- ]> : unknown[] extends TContracts ? TContracts : TContracts extends ContractConfig<infer TAbi, infer TFunctionName>[] ? (ContractConfig<TAbi, TFunctionName> & TProperties)[] : (ContractConfig & TProperties)[];
477
- type MulticallResult<Result, TAllowFailure extends boolean = true> = TAllowFailure extends true ? ({
478
- error?: undefined;
479
- result: Result;
480
- status: 'success';
481
- } | {
482
- error: Error;
483
- result?: undefined;
484
- status: 'error';
485
- }) : Result;
486
- type MulticallResults<TContracts extends Contract[], TAllowFailure extends boolean = true, Result extends any[] = [], Depth extends ReadonlyArray<number> = []> = Depth['length'] extends MAXIMUM_DEPTH ? MulticallResult<ExtractResultFromAbi, TAllowFailure>[] : TContracts extends [] ? [] : TContracts extends [infer Head extends Contract] ? [...Result, MulticallResult<ExtractResultFromAbi<Head['abi'], Head['functionName']>, TAllowFailure>] : TContracts extends [
487
- infer Head extends Contract,
488
- ...infer Tail extends Contract[]
489
- ] ? MulticallResults<[
490
- ...Tail
491
- ], TAllowFailure, [
492
- ...Result,
493
- MulticallResult<ExtractResultFromAbi<Head['abi'], Head['functionName']>, TAllowFailure>
494
- ], [
495
- ...Depth,
496
- 1
497
- ]> : TContracts extends ContractConfig<infer TAbi, infer TFunctionName>[] ? MulticallResult<ExtractResultFromAbi<TAbi, TFunctionName>, TAllowFailure>[] : MulticallResult<ExtractResultFromAbi, TAllowFailure>[];
642
+ type GetTransactionReceiptReturnType<TChain extends Chain | undefined = Chain | undefined> = FormattedTransactionReceipt<TransactionReceiptFormatter<TChain>>;
643
+ declare function getTransactionReceipt<TChain extends Chain | undefined>(client: PublicClient<Transport, TChain>, { hash }: GetTransactionReceiptParameters): Promise<Formatted<TransactionReceiptFormatter<TChain>, TransactionReceipt<bigint, number, "success" | "reverted", TransactionType>, false, false>>;
498
644
 
499
645
  type MulticallParameters<TContracts extends ContractConfig[] = ContractConfig[], TAllowFailure extends boolean = true> = Pick<CallParameters, 'blockNumber' | 'blockTag'> & {
500
646
  allowFailure?: TAllowFailure;
@@ -502,27 +648,27 @@ type MulticallParameters<TContracts extends ContractConfig[] = ContractConfig[],
502
648
  multicallAddress?: Address;
503
649
  };
504
650
  type MulticallReturnType<TContracts extends ContractConfig[] = ContractConfig[], TAllowFailure extends boolean = true> = MulticallResults<TContracts, TAllowFailure>;
505
- declare function multicall<TContracts extends ContractConfig[], TAllowFailure extends boolean = true>(client: PublicClientArg, args: MulticallParameters<TContracts, TAllowFailure>): Promise<MulticallReturnType<TContracts, TAllowFailure>>;
651
+ declare function multicall<TChain extends Chain | undefined, TContracts extends ContractConfig[], TAllowFailure extends boolean = true>(client: PublicClient<Transport, TChain>, args: MulticallParameters<TContracts, TAllowFailure>): Promise<MulticallReturnType<TContracts, TAllowFailure>>;
506
652
 
507
653
  type ReadContractParameters<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string> = Pick<CallParameters, 'blockNumber' | 'blockTag'> & ContractConfig<TAbi, TFunctionName, 'view' | 'pure'>;
508
654
  type ReadContractReturnType<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string> = ExtractResultFromAbi<TAbi, TFunctionName>;
509
- declare function readContract<TAbi extends Abi | readonly unknown[], TFunctionName extends string>(client: PublicClientArg, { abi, address, args, functionName, ...callRequest }: ReadContractParameters<TAbi, TFunctionName>): Promise<ReadContractReturnType<TAbi, TFunctionName>>;
655
+ declare function readContract<TChain extends Chain | undefined, TAbi extends Abi | readonly unknown[], TFunctionName extends string>(client: PublicClient<Transport, TChain>, { abi, address, args, functionName, ...callRequest }: ReadContractParameters<TAbi, TFunctionName>): Promise<ReadContractReturnType<TAbi, TFunctionName>>;
510
656
 
511
657
  type UninstallFilterParameters = {
512
658
  filter: Filter<any>;
513
659
  };
514
660
  type UninstallFilterReturnType = boolean;
515
- declare function uninstallFilter(client: PublicClientArg, { filter }: UninstallFilterParameters): Promise<UninstallFilterReturnType>;
661
+ declare function uninstallFilter<TTransport extends Transport, TChain extends Chain | undefined>(client: PublicClient<TTransport, TChain>, { filter }: UninstallFilterParameters): Promise<UninstallFilterReturnType>;
516
662
 
517
663
  type ReplacementReason = 'cancelled' | 'replaced' | 'repriced';
518
- type ReplacementReturnType<TChain extends Chain | undefined = Chain> = {
664
+ type ReplacementReturnType<TChain extends Chain | undefined = Chain | undefined> = {
519
665
  reason: ReplacementReason;
520
666
  replacedTransaction: Transaction;
521
667
  transaction: Transaction;
522
668
  transactionReceipt: GetTransactionReceiptReturnType<TChain>;
523
669
  };
524
- type WaitForTransactionReceiptReturnType<TChain extends Chain | undefined = Chain> = GetTransactionReceiptReturnType<TChain>;
525
- type WaitForTransactionReceiptParameters<TChain extends Chain | undefined = Chain> = {
670
+ type WaitForTransactionReceiptReturnType<TChain extends Chain | undefined = Chain | undefined> = GetTransactionReceiptReturnType<TChain>;
671
+ type WaitForTransactionReceiptParameters<TChain extends Chain | undefined = Chain | undefined> = {
526
672
  /** The number of confirmations (blocks that have passed) to wait before resolving. */
527
673
  confirmations?: number;
528
674
  /** The hash of the transaction. */
@@ -533,51 +679,75 @@ type WaitForTransactionReceiptParameters<TChain extends Chain | undefined = Chai
533
679
  /** Optional timeout (in milliseconds) to wait before stopping polling. */
534
680
  timeout?: number;
535
681
  };
536
- declare function waitForTransactionReceipt<TChain extends Chain | undefined>(client: PublicClientArg<Transport, TChain>, { confirmations, hash, onReplaced, pollingInterval, timeout, }: WaitForTransactionReceiptParameters<TChain>): Promise<WaitForTransactionReceiptReturnType<TChain>>;
682
+ declare function waitForTransactionReceipt<TChain extends Chain | undefined>(client: PublicClient<Transport, TChain>, { confirmations, hash, onReplaced, pollingInterval, timeout, }: WaitForTransactionReceiptParameters<TChain>): Promise<WaitForTransactionReceiptReturnType<TChain>>;
537
683
 
538
684
  type OnBlockNumberParameter = GetBlockNumberReturnType;
539
685
  type OnBlockNumberFn = (blockNumber: OnBlockNumberParameter, prevBlockNumber: OnBlockNumberParameter | undefined) => void;
540
- type WatchBlockNumberParameters = {
686
+ type PollOptions$2 = {
541
687
  /** Whether or not to emit the missed block numbers to the callback. */
542
688
  emitMissed?: boolean;
543
689
  /** Whether or not to emit the latest block number to the callback when the subscription opens. */
544
690
  emitOnBegin?: boolean;
691
+ /** Polling frequency (in ms). Defaults to Client's pollingInterval config. */
692
+ pollingInterval?: number;
693
+ };
694
+ type WatchBlockNumberParameters<TTransport extends Transport = Transport> = {
545
695
  /** The callback to call when a new block number is received. */
546
696
  onBlockNumber: OnBlockNumberFn;
547
697
  /** The callback to call when an error occurred when trying to get for a new block. */
548
698
  onError?: (error: Error) => void;
549
- /** Polling frequency (in ms). Defaults to Client's pollingInterval config. */
550
- pollingInterval?: number;
551
- };
699
+ } & (GetTransportConfig<TTransport>['type'] extends 'webSocket' ? {
700
+ emitMissed?: never;
701
+ emitOnBegin?: never;
702
+ /** Whether or not the WebSocket Transport should poll the JSON-RPC, rather than using `eth_subscribe`. */
703
+ poll?: false;
704
+ pollingInterval?: never;
705
+ } | (PollOptions$2 & {
706
+ poll: true;
707
+ }) : PollOptions$2 & {
708
+ poll?: true;
709
+ });
710
+ type WatchBlockNumberReturnType = () => void;
552
711
  /** @description Watches and returns incoming block numbers. */
553
- declare function watchBlockNumber(client: PublicClientArg, { emitOnBegin, emitMissed, onBlockNumber, onError, pollingInterval, }: WatchBlockNumberParameters): () => void;
712
+ declare function watchBlockNumber<TChain extends Chain | undefined, TTransport extends Transport>(client: PublicClient<TTransport, TChain>, { emitOnBegin, emitMissed, onBlockNumber, onError, poll: poll_, pollingInterval, }: WatchBlockNumberParameters<TTransport>): WatchBlockNumberReturnType;
554
713
 
555
- type OnBlockParameter<TChain extends Chain | undefined = Chain, TIncludeTransactions = false> = Omit<GetBlockReturnType<TChain>, TIncludeTransactions extends false ? 'transactions' : ''>;
556
- type OnBlock<TChain extends Chain | undefined = Chain, TIncludeTransactions = false> = (block: OnBlockParameter<TChain, TIncludeTransactions>, prevBlock: OnBlockParameter<TChain, TIncludeTransactions> | undefined) => void;
557
- type WatchBlocksParameters<TChain extends Chain | undefined = Chain> = {
714
+ type OnBlockParameter<TChain extends Chain | undefined = Chain> = GetBlockReturnType<TChain>;
715
+ type OnBlock<TChain extends Chain | undefined = Chain> = (block: OnBlockParameter<TChain>, prevBlock: OnBlockParameter<TChain> | undefined) => void;
716
+ type PollOptions$1 = {
558
717
  /** The block tag. Defaults to "latest". */
559
718
  blockTag?: BlockTag;
560
719
  /** Whether or not to emit the missed blocks to the callback. */
561
720
  emitMissed?: boolean;
562
721
  /** Whether or not to emit the block to the callback when the subscription opens. */
563
722
  emitOnBegin?: boolean;
564
- /** The callback to call when an error occurred when trying to get for a new block. */
565
- onError?: (error: Error) => void;
723
+ /** Whether or not to include transaction data in the response. */
724
+ includeTransactions?: boolean;
566
725
  /** Polling frequency (in ms). Defaults to the client's pollingInterval config. */
567
726
  pollingInterval?: number;
568
- } & ({
569
- /** Whether or not to include transaction data in the response. */
570
- includeTransactions: true;
571
- /** The callback to call when a new block is received. */
572
- onBlock: OnBlock<TChain, true>;
573
- } | {
574
- /** Whether or not to include transaction data in the response. */
575
- includeTransactions?: false;
727
+ };
728
+ type WatchBlocksParameters<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain> = {
576
729
  /** The callback to call when a new block is received. */
577
730
  onBlock: OnBlock<TChain>;
731
+ /** The callback to call when an error occurred when trying to get for a new block. */
732
+ onError?: (error: Error) => void;
733
+ } & (GetTransportConfig<TTransport>['type'] extends 'webSocket' ? {
734
+ blockTag?: never;
735
+ emitMissed?: never;
736
+ emitOnBegin?: never;
737
+ includeTransactions?: never;
738
+ /** Whether or not the WebSocket Transport should poll the JSON-RPC, rather than using `eth_subscribe`. */
739
+ poll?: false;
740
+ pollingInterval?: never;
741
+ } | (PollOptions$1 & {
742
+ poll: true;
743
+ }) : PollOptions$1 & {
744
+ poll?: true;
578
745
  });
579
- /** @description Watches and returns information for incoming blocks. */
580
- declare function watchBlocks<TChain extends Chain | undefined, TWatchBlocksParameters extends WatchBlocksParameters<TChain>>(client: PublicClientArg<Transport, TChain>, { blockTag, emitMissed, emitOnBegin, onBlock, onError, includeTransactions, pollingInterval, }: TWatchBlocksParameters): () => void;
746
+ type WatchBlocksReturnType = () => void;
747
+ /**
748
+ * @description Watches and returns information for incoming blocks.
749
+ */
750
+ declare function watchBlocks<TTransport extends Transport, TChain extends Chain | undefined>(client: PublicClient<TTransport, TChain>, { blockTag, emitMissed, emitOnBegin, onBlock, onError, includeTransactions, poll: poll_, pollingInterval, }: WatchBlocksParameters<TTransport, TChain>): WatchBlocksReturnType;
581
751
 
582
752
  type OnLogsParameter$1<TAbi extends Abi | readonly unknown[] = readonly unknown[], TEventName extends string = string> = TAbi extends Abi ? Log<bigint, number, ExtractAbiEvent<TAbi, TEventName>>[] : Log[];
583
753
  type OnLogsFn$1<TAbi extends Abi | readonly unknown[] = readonly unknown[], TEventName extends string = string> = (logs: OnLogsParameter$1<TAbi, TEventName>) => void;
@@ -598,7 +768,8 @@ type WatchContractEventParameters<TAbi extends Abi | readonly unknown[] = readon
598
768
  /** Polling frequency (in ms). Defaults to Client's pollingInterval config. */
599
769
  pollingInterval?: number;
600
770
  };
601
- declare function watchContractEvent<TAbi extends Abi | readonly unknown[], TEventName extends string>(client: PublicClientArg, { abi, address, args, batch, eventName, onError, onLogs, pollingInterval, }: WatchContractEventParameters<TAbi, TEventName>): () => void;
771
+ type WatchContractEventReturnType = () => void;
772
+ declare function watchContractEvent<TChain extends Chain | undefined, TAbi extends Abi | readonly unknown[], TEventName extends string>(client: PublicClient<Transport, TChain>, { abi, address, args, batch, eventName, onError, onLogs, pollingInterval, }: WatchContractEventParameters<TAbi, TEventName>): WatchContractEventReturnType;
602
773
 
603
774
  type OnLogsParameter<TAbiEvent extends AbiEvent | undefined = undefined, TEventName extends string | undefined = MaybeAbiEventName<TAbiEvent>> = Log<bigint, number, TAbiEvent, [TAbiEvent], TEventName>[];
604
775
  type OnLogsFn<TAbiEvent extends AbiEvent | undefined = undefined, TEventName extends string | undefined = MaybeAbiEventName<TAbiEvent>> = (logs: OnLogsParameter<TAbiEvent, TEventName>) => void;
@@ -620,169 +791,33 @@ type WatchEventParameters<TAbiEvent extends AbiEvent | undefined = undefined, TE
620
791
  event?: never;
621
792
  args?: never;
622
793
  });
623
- declare function watchEvent<TAbiEvent extends AbiEvent | undefined, TEventName extends string | undefined>(client: PublicClientArg, { address, args, batch, event, onError, onLogs, pollingInterval, }: WatchEventParameters<TAbiEvent>): () => void;
794
+ type WatchEventReturnType = () => void;
795
+ declare function watchEvent<TChain extends Chain | undefined, TAbiEvent extends AbiEvent | undefined, TEventName extends string | undefined>(client: PublicClient<Transport, TChain>, { address, args, batch, event, onError, onLogs, pollingInterval, }: WatchEventParameters<TAbiEvent>): WatchEventReturnType;
624
796
 
625
797
  type OnTransactionsParameter = Hash[];
626
798
  type OnTransactionsFn = (transactions: OnTransactionsParameter) => void;
627
- type WatchPendingTransactionsParameters = {
799
+ type PollOptions = {
628
800
  /** Whether or not the transaction hashes should be batched on each invocation. */
629
801
  batch?: boolean;
802
+ /** Polling frequency (in ms). Defaults to Client's pollingInterval config. */
803
+ pollingInterval?: number;
804
+ };
805
+ type WatchPendingTransactionsParameters<TTransport extends Transport = Transport> = {
630
806
  /** The callback to call when an error occurred when trying to get for a new block. */
631
807
  onError?: (error: Error) => void;
632
808
  /** The callback to call when new transactions are received. */
633
809
  onTransactions: OnTransactionsFn;
634
- /** Polling frequency (in ms). Defaults to Client's pollingInterval config. */
635
- pollingInterval?: number;
636
- };
637
- declare function watchPendingTransactions(client: PublicClientArg, { batch, onError, onTransactions, pollingInterval, }: WatchPendingTransactionsParameters): () => void;
638
-
639
- type FilterType = 'transaction' | 'block' | 'event';
640
- type Filter<TFilterType extends FilterType = 'event', TAbi extends Abi | readonly unknown[] = Abi, TEventName extends string | undefined = undefined, TArgs extends MaybeExtractEventArgsFromAbi<TAbi, TEventName> | undefined = MaybeExtractEventArgsFromAbi<TAbi, TEventName>> = {
641
- id: Hex;
642
- type: TFilterType;
643
- } & (TFilterType extends 'event' ? TAbi extends Abi ? undefined extends TEventName ? {
644
- abi: TAbi;
645
- args?: never;
646
- eventName?: never;
647
- } : TArgs extends MaybeExtractEventArgsFromAbi<TAbi, TEventName> ? {
648
- abi: TAbi;
649
- args: TArgs;
650
- eventName: TEventName;
651
- } : {
652
- abi: TAbi;
653
- args?: never;
654
- eventName: TEventName;
655
- } : {
656
- abi?: never;
657
- args?: never;
658
- eventName?: never;
659
- } : {});
660
-
661
- type GetEnsAddressParameters = Prettify<Pick<ReadContractParameters, 'blockNumber' | 'blockTag'> & {
662
- /** ENS name to get address. */
663
- name: string;
664
- /** Address of ENS Universal Resolver Contract */
665
- universalResolverAddress?: Address;
666
- }>;
667
- type GetEnsAddressReturnType = Address;
668
- /**
669
- * @description Gets address for ENS name.
670
- *
671
- * - Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.
672
- * - Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize.html) function for this.
673
- *
674
- * @example
675
- * import { normalize } from 'viem/ens'
676
- *
677
- * const ensAddress = await getEnsAddress(publicClient, {
678
- * name: normalize('wagmi-dev.eth'),
679
- * })
680
- * // '0xd2135CfB216b74109775236E36d4b433F1DF507B'
681
- */
682
- declare function getEnsAddress(client: PublicClientArg, { blockNumber, blockTag, name, universalResolverAddress: universalResolverAddress_, }: GetEnsAddressParameters): Promise<GetEnsAddressReturnType>;
683
-
684
- type GetEnsNameParameters = Prettify<Pick<ReadContractParameters, 'blockNumber' | 'blockTag'> & {
685
- /** Address to get ENS name for. */
686
- address: Address;
687
- /** Address of ENS Universal Resolver Contract. */
688
- universalResolverAddress?: Address;
689
- }>;
690
- type GetEnsNameReturnType = string | null;
691
- /**
692
- * @description Gets primary name for specified address.
693
- *
694
- * - Calls `reverse(bytes)` on ENS Universal Resolver Contract.
695
- *
696
- * @example
697
- * const ensName = await getEnsName(publicClient, {
698
- * address: '0xd2135CfB216b74109775236E36d4b433F1DF507B',
699
- * })
700
- * // 'wagmi-dev.eth'
701
- */
702
- declare function getEnsName(client: PublicClientArg, { address, blockNumber, blockTag, universalResolverAddress: universalResolverAddress_, }: GetEnsNameParameters): Promise<GetEnsNameReturnType>;
703
-
704
- type PublicActions<TChain extends Chain | undefined = Chain> = {
705
- call: (args: CallParameters<TChain>) => Promise<CallReturnType>;
706
- createBlockFilter: () => Promise<CreateBlockFilterReturnType>;
707
- createContractEventFilter: <TAbi extends Abi | readonly unknown[], TEventName extends string | undefined, TArgs extends MaybeExtractEventArgsFromAbi<TAbi, TEventName> | undefined>(args: CreateContractEventFilterParameters<TAbi, TEventName, TArgs>) => Promise<CreateContractEventFilterReturnType<TAbi, TEventName, TArgs>>;
708
- createEventFilter: <TAbiEvent extends AbiEvent | undefined, TAbi extends Abi | readonly unknown[], TEventName extends string | undefined, TArgs extends MaybeExtractEventArgsFromAbi<TAbi, TEventName> | undefined>(args?: CreateEventFilterParameters<TAbiEvent, TAbi, TEventName, TArgs>) => Promise<CreateEventFilterReturnType<TAbiEvent, TAbi, TEventName, TArgs>>;
709
- createPendingTransactionFilter: () => Promise<CreatePendingTransactionFilterReturnType>;
710
- estimateContractGas: <TChain extends Chain | undefined, TAbi extends Abi | readonly unknown[], TFunctionName extends string>(args: EstimateContractGasParameters<TChain, TAbi, TFunctionName>) => Promise<EstimateContractGasReturnType>;
711
- estimateGas: (args: EstimateGasParameters<TChain>) => Promise<EstimateGasReturnType>;
712
- getBalance: (args: GetBalanceParameters) => Promise<GetBalanceReturnType>;
713
- getBlock: (args?: GetBlockParameters) => Promise<GetBlockReturnType<TChain>>;
714
- getBlockNumber: (args?: GetBlockNumberParameters) => Promise<GetBlockNumberReturnType>;
715
- getBlockTransactionCount: (args?: GetBlockTransactionCountParameters) => Promise<GetBlockTransactionCountReturnType>;
716
- getBytecode: (args: GetBytecodeParameters) => Promise<GetBytecodeReturnType>;
717
- getChainId: () => Promise<GetChainIdReturnType>;
718
- getEnsAddress: (args: GetEnsAddressParameters) => Promise<GetEnsAddressReturnType>;
719
- getEnsName: (args: GetEnsNameParameters) => Promise<GetEnsNameReturnType>;
720
- getFeeHistory: (args: GetFeeHistoryParameters) => Promise<GetFeeHistoryReturnType>;
721
- getFilterChanges: <TFilterType extends FilterType, TAbiEvent extends AbiEvent | undefined, TAbi extends Abi | readonly unknown[], TEventName extends string | undefined>(args: GetFilterChangesParameters<TFilterType, TAbiEvent, TAbi, TEventName>) => Promise<GetFilterChangesReturnType<TFilterType, TAbiEvent, TAbi, TEventName>>;
722
- getFilterLogs: <TAbiEvent extends AbiEvent | undefined, TAbi extends Abi | readonly unknown[], TEventName extends string | undefined>(args: GetFilterLogsParameters<TAbiEvent, TAbi, TEventName>) => Promise<GetFilterLogsReturnType<TAbiEvent, TAbi, TEventName>>;
723
- getGasPrice: () => Promise<GetGasPriceReturnType>;
724
- getLogs: <TAbiEvent extends AbiEvent | undefined>(args?: GetLogsParameters<TAbiEvent>) => Promise<GetLogsReturnType<TAbiEvent>>;
725
- getStorageAt: (args: GetStorageAtParameters) => Promise<GetStorageAtReturnType>;
726
- getTransaction: (args: GetTransactionParameters) => Promise<GetTransactionReturnType<TChain>>;
727
- getTransactionConfirmations: (args: GetTransactionConfirmationsParameters<TChain>) => Promise<GetTransactionConfirmationsReturnType>;
728
- getTransactionCount: (args: GetTransactionCountParameters) => Promise<GetTransactionCountReturnType>;
729
- getTransactionReceipt: (args: GetTransactionReceiptParameters) => Promise<GetTransactionReceiptReturnType<TChain>>;
730
- multicall: <TContracts extends ContractConfig[], TAllowFailure extends boolean = true>(args: MulticallParameters<TContracts, TAllowFailure>) => Promise<MulticallReturnType<TContracts, TAllowFailure>>;
731
- readContract: <TAbi extends Abi | readonly unknown[], TFunctionName extends string>(args: ReadContractParameters<TAbi, TFunctionName>) => Promise<ReadContractReturnType<TAbi, TFunctionName>>;
732
- simulateContract: <TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = any, TChainOverride extends Chain | undefined = undefined>(args: SimulateContractParameters<TChain, TAbi, TFunctionName, TChainOverride>) => Promise<SimulateContractReturnType<TChain, TAbi, TFunctionName, TChainOverride>>;
733
- uninstallFilter: (args: UninstallFilterParameters) => Promise<UninstallFilterReturnType>;
734
- waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters<TChain>) => Promise<WaitForTransactionReceiptReturnType<TChain>>;
735
- watchBlockNumber: (args: WatchBlockNumberParameters) => ReturnType<typeof watchBlockNumber>;
736
- watchBlocks: (args: WatchBlocksParameters<TChain>) => ReturnType<typeof watchBlocks>;
737
- watchContractEvent: <TAbi extends Abi | readonly unknown[], TEventName extends string>(args: WatchContractEventParameters<TAbi, TEventName>) => ReturnType<typeof watchContractEvent>;
738
- watchEvent: <TAbiEvent extends AbiEvent | undefined, TEventName extends string | undefined>(args: WatchEventParameters<TAbiEvent>) => ReturnType<typeof watchEvent>;
739
- watchPendingTransactions: (args: WatchPendingTransactionsParameters) => ReturnType<typeof watchPendingTransactions>;
740
- };
741
-
742
- type WalletClientConfig<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain, TAccount extends Account | Address | undefined = undefined> = {
743
- account?: TAccount;
744
- chain?: TChain;
745
- /** The key of the Wallet Client. */
746
- key?: ClientConfig['key'];
747
- /** The name of the Wallet Client. */
748
- name?: ClientConfig['name'];
749
- /** Frequency (in ms) for polling enabled actions & events. Defaults to 4_000 milliseconds. */
750
- pollingInterval?: ClientConfig['pollingInterval'];
751
- transport: ClientConfig<TTransport, TChain>['transport'];
752
- };
753
- type WalletClient<TTransport extends Transport = Transport, TChain extends Chain | undefined = undefined, TAccount extends Account | undefined = undefined, TIncludeActions extends boolean = true> = Client<TTransport, TChain> & {
754
- account: TAccount;
755
- } & (TIncludeActions extends true ? WalletActions<TChain, TAccount> : {});
756
- type WalletClientArg<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends Account | undefined = Account | undefined, TIncludeActions extends boolean = boolean> = WalletClient<TTransport, TChain, TAccount, TIncludeActions>;
757
- /**
758
- * @description Creates a wallet client with a given transport.
759
- */
760
- declare function createWalletClient<TTransport extends Transport, TChain extends Chain | undefined = undefined, TAccountOrAddress extends Account | Address | undefined = undefined, TAccount extends Account | undefined = ParseAccount<TAccountOrAddress>>({ account, chain, transport, key, name, pollingInterval, }: WalletClientConfig<TTransport, TChain, TAccountOrAddress>): WalletClient<TTransport, TChain, TAccount, true>;
761
-
762
- type WalletActions<TChain extends Chain | undefined = Chain, TAccount extends Account | undefined = undefined> = {
763
- addChain: (args: AddChainParameters) => Promise<void>;
764
- deployContract: <TAbi extends Abi | readonly unknown[], TChainOverride extends Chain | undefined>(args: DeployContractParameters<TChain, TAbi, TAccount, TChainOverride>) => Promise<DeployContractReturnType>;
765
- getAddresses: () => Promise<GetAddressesReturnType>;
766
- getChainId: () => Promise<GetChainIdReturnType>;
767
- getPermissions: () => Promise<GetPermissionsReturnType>;
768
- requestAddresses: () => Promise<RequestAddressesReturnType>;
769
- requestPermissions: (args: RequestPermissionsParameters) => Promise<RequestPermissionsReturnType>;
770
- sendTransaction: <TChainOverride extends Chain | undefined>(args: SendTransactionParameters<TChain, TAccount, TChainOverride>) => Promise<SendTransactionReturnType>;
771
- signMessage: (args: SignMessageParameters<TAccount>) => Promise<SignMessageReturnType>;
772
- signTypedData: <TTypedData extends TypedData | {
773
- [key: string]: unknown;
774
- }, TPrimaryType extends string = string>(args: SignTypedDataParameters<TTypedData, TPrimaryType, TAccount>) => Promise<SignTypedDataReturnType>;
775
- switchChain: (args: SwitchChainParameters) => Promise<void>;
776
- watchAsset: (args: WatchAssetParameters) => Promise<WatchAssetReturnType>;
777
- writeContract: <TAbi extends Abi | readonly unknown[], TFunctionName extends string, TChainOverride extends Chain | undefined>(args: WriteContractParameters<TChainOverride, TAbi, TFunctionName, TAccount, TChainOverride>) => Promise<WriteContractReturnType>;
778
- };
779
-
780
- type PublicClientConfig<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain> = Pick<ClientConfig<TTransport, TChain>, 'chain' | 'key' | 'name' | 'pollingInterval' | 'transport'>;
781
- type PublicClient<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain, TIncludeActions extends boolean = true> = Client<TTransport, TChain, PublicRequests> & (TIncludeActions extends true ? PublicActions<TChain> : {});
782
- type PublicClientArg<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TIncludeActions extends boolean = boolean> = PublicClient<TTransport, TChain, TIncludeActions>;
783
- /**
784
- * @description Creates a public client with a given transport.
785
- */
786
- declare function createPublicClient<TTransport extends Transport, TChain extends Chain | undefined>({ chain, key, name, transport, pollingInterval, }: PublicClientConfig<TTransport, TChain>): PublicClient<TTransport, TChain, true>;
810
+ } & (GetTransportConfig<TTransport>['type'] extends 'webSocket' ? {
811
+ batch?: never;
812
+ /** Whether or not the WebSocket Transport should poll the JSON-RPC, rather than using `eth_subscribe`. */
813
+ poll?: false;
814
+ pollingInterval?: never;
815
+ } | (PollOptions & {
816
+ poll: true;
817
+ }) : PollOptions & {
818
+ poll?: true;
819
+ });
820
+ type WatchPendingTransactionsReturnType = () => void;
821
+ declare function watchPendingTransactions<TTransport extends Transport, TChain extends Chain | undefined>(client: PublicClient<TTransport, TChain>, { batch, onError, onTransactions, poll: poll_, pollingInterval, }: WatchPendingTransactionsParameters<TTransport>): () => void;
787
822
 
788
- export { getEnsAddress as $, estimateContractGas as A, BlockFormatter as B, CallParameters as C, getBytecode as D, EstimateGasParameters as E, FormattedBlock as F, GetBytecodeParameters as G, getStorageAt as H, multicall as I, readContract as J, simulateContract as K, watchContractEvent as L, MulticallParameters as M, DeployContractParameters as N, OnLogsFn as O, PublicClient as P, DeployContractReturnType as Q, ReadContractParameters as R, SendTransactionParameters as S, TransactionReceiptFormatter as T, WriteContractParameters as U, WriteContractReturnType as V, WalletClient as W, deployContract as X, writeContract as Y, GetEnsAddressParameters as Z, GetEnsNameParameters as _, PublicClientConfig as a, ReplacementReturnType as a$, getEnsName as a0, call as a1, createBlockFilter as a2, createEventFilter as a3, createPendingTransactionFilter as a4, estimateGas as a5, getBalance as a6, getBlock as a7, getBlockNumber as a8, getBlockNumberCache as a9, GetBlockNumberParameters as aA, GetBlockNumberReturnType as aB, GetBlockReturnType as aC, GetBlockTransactionCountParameters as aD, GetBlockTransactionCountReturnType as aE, GetFeeHistoryParameters as aF, GetFeeHistoryReturnType as aG, GetFilterChangesParameters as aH, GetFilterChangesReturnType as aI, GetFilterLogsParameters as aJ, GetFilterLogsReturnType as aK, GetGasPriceReturnType as aL, GetTransactionParameters as aM, GetTransactionConfirmationsParameters as aN, GetTransactionConfirmationsReturnType as aO, GetTransactionCountParameters as aP, GetTransactionCountReturnType as aQ, GetTransactionReceiptParameters as aR, GetTransactionReceiptReturnType as aS, GetTransactionReturnType as aT, OnBlock as aU, OnBlockNumberFn as aV, OnBlockNumberParameter as aW, OnBlockParameter as aX, OnTransactionsFn as aY, OnTransactionsParameter as aZ, ReplacementReason as a_, getBlockTransactionCount as aa, getChainId as ab, getFeeHistory as ac, getFilterChanges as ad, getFilterLogs as ae, getLogs as af, getGasPrice as ag, getTransaction as ah, getTransactionConfirmations as ai, getTransactionCount as aj, getTransactionReceipt as ak, uninstallFilter as al, waitForTransactionReceipt as am, watchBlockNumber as an, watchBlocks as ao, watchEvent as ap, watchPendingTransactions as aq, CallReturnType as ar, CreateBlockFilterReturnType as as, CreateEventFilterParameters as at, CreateEventFilterReturnType as au, CreatePendingTransactionFilterReturnType as av, EstimateGasReturnType as aw, GetBalanceParameters as ax, GetBalanceReturnType as ay, GetBlockParameters as az, WalletClientConfig as b, UninstallFilterParameters as b0, UninstallFilterReturnType as b1, WaitForTransactionReceiptParameters as b2, WaitForTransactionReceiptReturnType as b3, WatchBlockNumberParameters as b4, WatchBlocksParameters as b5, WatchPendingTransactionsParameters as b6, WalletClientArg as b7, PublicClientArg as b8, addChain as b9, getAddresses as ba, getPermissions as bb, requestAddresses as bc, requestPermissions as bd, sendTransaction as be, signMessage as bf, signTypedData as bg, switchChain as bh, watchAsset as bi, AddChainParameters as bj, FormattedTransactionRequest as bk, GetPermissionsReturnType as bl, GetAddressesReturnType as bm, RequestAddressesReturnType as bn, RequestPermissionsReturnType as bo, SendTransactionReturnType as bp, SignMessageParameters as bq, SignMessageReturnType as br, SignTypedDataParameters as bs, SignTypedDataReturnType as bt, SwitchChainParameters as bu, WatchAssetParameters as bv, WatchAssetReturnType as bw, createPublicClient as c, createWalletClient as d, FormattedTransactionReceipt as e, FormattedTransactionRequest$1 as f, TransactionRequestFormatter as g, defineBlock as h, defineTransactionReceipt as i, defineTransactionRequest as j, formatBlock as k, formatTransactionRequest as l, CreateContractEventFilterParameters as m, CreateContractEventFilterReturnType as n, EstimateContractGasParameters as o, EstimateContractGasReturnType as p, GetBytecodeReturnType as q, GetStorageAtParameters as r, GetStorageAtReturnType as s, MulticallReturnType as t, OnLogsParameter as u, ReadContractReturnType as v, SimulateContractParameters as w, SimulateContractReturnType as x, WatchContractEventParameters as y, createContractEventFilter as z };
823
+ export { ReadContractParameters as $, AddChainParameters as A, GetLogsParameters as B, CallParameters as C, DeployContractParameters as D, EstimateGasParameters as E, GetLogsReturnType as F, GetAddressesReturnType as G, GetPermissionsReturnType as H, GetStorageAtParameters as I, GetStorageAtReturnType as J, GetTransactionConfirmationsParameters as K, GetTransactionCountParameters as L, GetTransactionConfirmationsReturnType as M, GetTransactionCountReturnType as N, GetTransactionParameters as O, GetTransactionReceiptParameters as P, GetTransactionReceiptReturnType as Q, GetTransactionReturnType as R, MulticallParameters as S, OnBlock as T, OnBlockNumberFn as U, OnBlockNumberParameter as V, OnBlockParameter as W, OnLogsFn as X, OnLogsParameter as Y, OnTransactionsFn as Z, OnTransactionsParameter as _, CallReturnType as a, GetEnsAddressParameters as a$, ReadContractReturnType as a0, ReplacementReason as a1, ReplacementReturnType as a2, RequestAddressesReturnType as a3, RequestPermissionsReturnType as a4, SendTransactionParameters as a5, SendTransactionReturnType as a6, SignMessageParameters as a7, SignMessageReturnType as a8, SimulateContractParameters as a9, GetTransportConfig as aA, ParseAccount as aB, BlockFormatter as aC, FormattedBlock as aD, FormattedTransactionReceipt as aE, FormattedTransactionRequest$1 as aF, TransactionReceiptFormatter as aG, TransactionRequestFormatter as aH, defineBlock as aI, defineTransactionReceipt as aJ, defineTransactionRequest as aK, formatBlock as aL, formatTransactionRequest as aM, GetAccountParameter as aN, EstimateContractGasParameters as aO, EstimateContractGasReturnType as aP, MulticallReturnType as aQ, createContractEventFilter as aR, estimateContractGas as aS, getBytecode as aT, getStorageAt as aU, multicall as aV, readContract as aW, simulateContract as aX, watchContractEvent as aY, deployContract as aZ, writeContract as a_, SimulateContractReturnType as aa, SwitchChainParameters as ab, UninstallFilterParameters as ac, UninstallFilterReturnType as ad, WaitForTransactionReceiptParameters as ae, WaitForTransactionReceiptReturnType as af, WatchAssetParameters as ag, WatchAssetReturnType as ah, WatchBlockNumberParameters as ai, WatchBlockNumberReturnType as aj, WatchBlocksParameters as ak, WatchBlocksReturnType as al, WatchContractEventParameters as am, WatchContractEventReturnType as an, WatchEventParameters as ao, WatchEventReturnType as ap, WatchPendingTransactionsParameters as aq, WatchPendingTransactionsReturnType as ar, WriteContractParameters as as, WriteContractReturnType as at, PublicClient as au, PublicClientConfig as av, WalletClient as aw, WalletClientConfig as ax, createPublicClient as ay, createWalletClient as az, CreateBlockFilterReturnType as b, GetEnsNameParameters as b0, getEnsAddress as b1, getEnsName as b2, call as b3, createBlockFilter as b4, createEventFilter as b5, createPendingTransactionFilter as b6, estimateGas as b7, getBalance as b8, getBlock as b9, signTypedData as bA, switchChain as bB, watchAsset as bC, FormattedTransactionRequest as bD, SignTypedDataParameters as bE, SignTypedDataReturnType as bF, getBlockNumber as ba, getBlockNumberCache as bb, getBlockTransactionCount as bc, getChainId as bd, getFeeHistory as be, getFilterChanges as bf, getFilterLogs as bg, getLogs as bh, getGasPrice as bi, getTransaction as bj, getTransactionConfirmations as bk, getTransactionCount as bl, getTransactionReceipt as bm, uninstallFilter as bn, waitForTransactionReceipt as bo, watchBlockNumber as bp, watchBlocks as bq, watchEvent as br, watchPendingTransactions as bs, addChain as bt, getAddresses as bu, getPermissions as bv, requestAddresses as bw, requestPermissions as bx, sendTransaction as by, signMessage as bz, CreateContractEventFilterParameters as c, CreateContractEventFilterReturnType as d, CreateEventFilterParameters as e, CreateEventFilterReturnType as f, CreatePendingTransactionFilterReturnType as g, DeployContractReturnType as h, EstimateGasReturnType as i, GetBalanceParameters as j, GetBalanceReturnType as k, GetBlockNumberParameters as l, GetBlockNumberReturnType as m, GetBlockParameters as n, GetBlockReturnType as o, GetBlockTransactionCountParameters as p, GetBlockTransactionCountReturnType as q, GetBytecodeParameters as r, GetBytecodeReturnType as s, GetFeeHistoryParameters as t, GetFeeHistoryReturnType as u, GetFilterChangesParameters as v, GetFilterChangesReturnType as w, GetFilterLogsParameters as x, GetFilterLogsReturnType as y, GetGasPriceReturnType as z };