viem 0.2.0-0-2-0.20230329T025357 → 0.2.0-0-2-0.20230403T055238

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 (71) hide show
  1. package/dist/abi.d.ts +3 -3
  2. package/dist/abi.js +2 -2
  3. package/dist/abi.mjs +1 -1
  4. package/dist/accounts/index.d.ts +5 -14
  5. package/dist/accounts/index.js +20 -30
  6. package/dist/accounts/index.js.map +1 -1
  7. package/dist/accounts/index.mjs +14 -24
  8. package/dist/accounts/index.mjs.map +1 -1
  9. package/dist/{chain-5b28fc53.d.ts → chain-5507c6f0.d.ts} +143 -120
  10. package/dist/{chain-e9b996ff.d.ts → chain-fe47467d.d.ts} +1 -1
  11. package/dist/chains.d.ts +867 -99
  12. package/dist/chains.js +115 -63
  13. package/dist/chains.js.map +1 -1
  14. package/dist/chains.mjs +58 -6
  15. package/dist/chains.mjs.map +1 -1
  16. package/dist/{chunk-7QEOFHC7.mjs → chunk-EMXJKA5P.mjs} +2 -2
  17. package/dist/{chunk-UCZWRYV5.mjs → chunk-KILBOPDD.mjs} +754 -33
  18. package/dist/chunk-KILBOPDD.mjs.map +1 -0
  19. package/dist/{chunk-D3ALNUWN.js → chunk-KQOOAYBY.js} +6 -6
  20. package/dist/{chunk-564BCC7H.js → chunk-PWUNCH5G.js} +777 -56
  21. package/dist/chunk-PWUNCH5G.js.map +1 -0
  22. package/dist/contract.d.ts +8 -8
  23. package/dist/contract.js +2 -2
  24. package/dist/contract.mjs +1 -1
  25. package/dist/{createClient-e52de308.d.ts → createTransport-21a0d2b3.d.ts} +36 -34
  26. package/dist/{eip1193-9080db42.d.ts → eip1193-2f3a9cd2.d.ts} +1 -1
  27. package/dist/{encodeFunctionResult-47ad60ed.d.ts → encodeFunctionResult-c5185b98.d.ts} +15 -15
  28. package/dist/{encodePacked-35c796fb.d.ts → encodePacked-98f67d09.d.ts} +1 -1
  29. package/dist/ens.d.ts +5 -5
  30. package/dist/ens.js +8 -3
  31. package/dist/ens.js.map +1 -1
  32. package/dist/ens.mjs +7 -2
  33. package/dist/ens.mjs.map +1 -1
  34. package/dist/ethers.d.ts +2 -2
  35. package/dist/ethers.js +4 -4
  36. package/dist/ethers.mjs +2 -2
  37. package/dist/{formatAbiItem-d9e801dd.d.ts → formatAbiItem-56dff508.d.ts} +1 -1
  38. package/dist/{getAbiItem-1d94ae0e.d.ts → getAbiItem-bfba73d1.d.ts} +3 -3
  39. package/dist/{watchPendingTransactions-468f53f2.d.ts → getEnsResolver-9e26c596.d.ts} +203 -150
  40. package/dist/index.d.ts +161 -18
  41. package/dist/index.js +222 -138
  42. package/dist/index.js.map +1 -1
  43. package/dist/index.mjs +136 -52
  44. package/dist/index.mjs.map +1 -1
  45. package/dist/{parseGwei-f14525ab.d.ts → parseGwei-d2147f8b.d.ts} +5 -5
  46. package/dist/public.d.ts +5 -5
  47. package/dist/public.js +2 -2
  48. package/dist/public.mjs +1 -1
  49. package/dist/publicKeyToAddress-623eb398.d.ts +16 -0
  50. package/dist/{test-f3d06763.d.ts → test-b67569fe.d.ts} +3 -3
  51. package/dist/test.d.ts +5 -5
  52. package/dist/test.js +2 -2
  53. package/dist/test.mjs +1 -1
  54. package/dist/{typedData-42b43450.d.ts → typedData-46b4d81f.d.ts} +1 -1
  55. package/dist/utils/index.d.ts +15 -15
  56. package/dist/utils/index.js +4 -2
  57. package/dist/utils/index.mjs +3 -1
  58. package/dist/wallet.d.ts +5 -5
  59. package/dist/wallet.js +2 -2
  60. package/dist/wallet.mjs +1 -1
  61. package/dist/window.d.ts +2 -2
  62. package/package.json +4 -3
  63. package/dist/chunk-564BCC7H.js.map +0 -1
  64. package/dist/chunk-BJ5KRDTG.mjs +0 -186
  65. package/dist/chunk-BJ5KRDTG.mjs.map +0 -1
  66. package/dist/chunk-CXE4XSMF.js +0 -186
  67. package/dist/chunk-CXE4XSMF.js.map +0 -1
  68. package/dist/chunk-UCZWRYV5.mjs.map +0 -1
  69. package/dist/parseAccount-4209fa24.d.ts +0 -6
  70. /package/dist/{chunk-7QEOFHC7.mjs.map → chunk-EMXJKA5P.mjs.map} +0 -0
  71. /package/dist/{chunk-D3ALNUWN.js.map → chunk-KQOOAYBY.js.map} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { Chain as Chain$1 } from '@wagmi/chains';
2
- import { Abi, AbiFunction, ExtractAbiFunction, AbiParametersToPrimitiveTypes, AbiConstructor, AbiError, ExtractAbiError, AbiEvent, ExtractAbiEvent, ExtractAbiErrorNames, ExtractAbiEventNames, AbiStateMutability, ExtractAbiFunctionNames, Narrow, Address, AbiParameter, AbiParameterToPrimitiveType } from 'abitype';
2
+ import { Abi, AbiStateMutability, Narrow, Address, AbiFunction, ExtractAbiFunction, AbiParametersToPrimitiveTypes, ExtractAbiErrorNames, ExtractAbiEventNames, ExtractAbiFunctionNames, AbiConstructor, AbiError, ExtractAbiError, AbiEvent, ExtractAbiEvent, AbiParameter, AbiParameterToPrimitiveType } from 'abitype';
3
3
 
4
4
  type ExtractFormatter<TChain extends Chain, TKey extends keyof NonNullable<TChain['formatters']>, TFallbackFormatter extends Formatter = Formatter> = NonNullable<TChain['formatters']>[TKey] extends NonNullable<unknown> ? NonNullable<TChain['formatters']>[TKey] : TFallbackFormatter;
5
5
  type FormatOptions<TSource, TTarget> = {
@@ -46,7 +46,7 @@ declare const transactionType: {
46
46
  declare function formatTransaction(transaction: Partial<RpcTransaction>): Transaction<bigint, number>;
47
47
  declare const defineTransaction: <TFormat extends Formatter<Partial<RpcTransaction>, Partial<Transaction<bigint, number>> & {
48
48
  [key: string]: unknown;
49
- }>, TExclude extends ("type" | "value" | "blockHash" | "blockNumber" | "chainId" | "gasPrice" | "maxFeePerGas" | "maxPriorityFeePerGas" | "from" | "accessList" | "to" | "gas" | "nonce" | "r" | "s" | "v" | "hash" | "input" | "transactionIndex")[] = []>({ exclude, format: formatOverride, }: {
49
+ }>, TExclude extends ("type" | "value" | "blockHash" | "blockNumber" | "chainId" | "gasPrice" | "maxFeePerGas" | "maxPriorityFeePerGas" | "from" | "accessList" | "to" | "gas" | "nonce" | "transactionIndex" | "hash" | "input" | "r" | "s" | "v")[] = []>({ exclude, format: formatOverride, }: {
50
50
  exclude?: TExclude | undefined;
51
51
  format?: TFormat | undefined;
52
52
  }) => (data: Partial<RpcTransaction> & {
@@ -92,27 +92,42 @@ type FeeValuesEIP1559<TQuantity = bigint> = {
92
92
  type FeeValues<TQuantity = bigint> = FeeValuesLegacy<TQuantity> | FeeValuesEIP1559<TQuantity>;
93
93
 
94
94
  /**
95
- * @description Checks if {@link T} is `undefined`
95
+ * Filters out all members of {@link T} that are not {@link P}
96
+ *
97
+ * @param T - Items to filter
98
+ * @param P - Type to filter out
99
+ * @returns Filtered items
100
+ *
101
+ * @example
102
+ * type Result = Filter<['a', 'b', 'c'], 'b'>
103
+ * // ^? type Result = ['a', 'c']
104
+ */
105
+ type Filter<T extends readonly unknown[], P, Acc extends readonly unknown[] = []> = T extends readonly [infer F, ...infer Rest extends readonly unknown[]] ? [F] extends [P] ? Filter<Rest, P, [...Acc, F]> : Filter<Rest, P, Acc> : readonly [...Acc];
106
+ /**
107
+ * @description Checks if {@link T} can be narrowed further than {@link U}
96
108
  * @param T - Type to check
109
+ * @param U - Type to against
97
110
  * @example
98
- * type Result = IsUndefined<undefined>
111
+ * type Result = IsNarrowable<'foo', string>
99
112
  * // ^? true
100
113
  */
101
- type IsUndefined<T> = [undefined] extends [T] ? true : false;
114
+ type IsNarrowable<T, U> = IsNever<(T extends U ? true : false) & (U extends T ? false : true)> extends true ? false : true;
102
115
  /**
103
- * @description Excludes empty attributes from T if TMaybeExclude is true.
104
- *
116
+ * @description Checks if {@link T} is `never`
117
+ * @param T - Type to check
105
118
  * @example
106
- * MaybeExcludeEmpty<{ a: string, b: number, c: [] }, true>
107
- * => { a: string, b: number }
108
- *
109
- * MaybeExcludeEmpty<{ a: string, b: number, c: [] }, false>
110
- * => { a: string, b: number, c: [] }
111
- *
112
- * MaybeExcludeEmpty<{ a: string, b: number, c: undefined }, true>
113
- * => { a: string, b: number }
119
+ * type Result = IsNever<never>
120
+ * // ^? type Result = true
114
121
  */
115
- type MaybeExcludeEmpty<T, TMaybeExclude extends boolean> = TMaybeExclude extends true ? Exclude<T, [] | null | undefined> : T;
122
+ type IsNever<T> = [T] extends [never] ? true : false;
123
+ /**
124
+ * @description Checks if {@link T} is `undefined`
125
+ * @param T - Type to check
126
+ * @example
127
+ * type Result = IsUndefined<undefined>
128
+ * // ^? type Result = true
129
+ */
130
+ type IsUndefined<T> = [undefined] extends [T] ? true : false;
116
131
  /**
117
132
  * @description Makes attributes on the type T required if TRequired is true.
118
133
  *
@@ -146,14 +161,6 @@ type OptionalNullable<T> = {
146
161
  } & {
147
162
  [K in keyof T as T[K] extends NonNullable<unknown> ? never : K]?: T[K];
148
163
  };
149
- /**
150
- * @description Constructs a type by excluding `undefined` from `T`.
151
- *
152
- * @example
153
- * NoUndefined<string | undefined>
154
- * => string
155
- */
156
- type NoUndefined<T> = T extends undefined ? never : T;
157
164
  /**
158
165
  * @description Combines members of an intersection into a readable type.
159
166
  *
@@ -174,69 +181,32 @@ type Prettify<T> = {
174
181
  */
175
182
  type ValueOf<T> = T[keyof T];
176
183
 
177
- type EventParametersConfig = {
178
- enableUnion: boolean;
179
- indexedOnly: boolean;
180
- required: boolean;
181
- };
182
- type EventParametersDefaultConfig = {
183
- enableUnion: true;
184
- indexedOnly: true;
185
- required: false;
186
- };
187
184
  type AbiItem = Abi[number];
188
185
  type EventDefinition = `${string}(${string})`;
189
- type HashedEventTypes = 'string' | 'bytes' | 'tuple' | `${string}[${string}]`;
190
- type EventTopicParam<TPrimitiveType = Hex, TTopic extends LogTopic = LogTopic> = NoUndefined<(TTopic extends Hex ? TPrimitiveType : undefined) | (TTopic extends Hex[] ? TPrimitiveType[] : undefined) | (TTopic extends null ? null : undefined)>;
191
- type AbiEventParameterToPrimitiveType<TParam extends AbiParameter, TConfig extends EventParametersConfig = EventParametersDefaultConfig> = TConfig extends {
192
- enableUnion: true;
193
- } ? EventTopicParam<AbiParameterToPrimitiveType<TParam>> : AbiParameterToPrimitiveType<TParam>;
194
- type AbiEventParametersToPrimitiveTypes<TAbiParameters extends readonly AbiParameter[], TConfig extends EventParametersConfig = EventParametersDefaultConfig, TBase = TAbiParameters[0] extends {
195
- name: string;
196
- } ? {} : []> = Prettify<TAbiParameters extends readonly [infer Head, ...infer Tail] ? Head extends {
197
- indexed: true;
198
- } ? Head extends AbiParameter ? Head extends {
199
- name: infer Name;
200
- } ? Name extends string ? MaybeRequired<{
201
- [name in Name]?: AbiEventParameterToPrimitiveType<Head, TConfig>;
202
- }, TConfig['required']> & (Tail extends readonly [] ? {} : Tail extends readonly AbiParameter[] ? AbiEventParametersToPrimitiveTypes<Tail, TConfig> : {}) : never : MaybeExcludeEmpty<(TConfig extends {
203
- enableUnion: true;
204
- } ? [AbiEventParameterToPrimitiveType<Head, TConfig>] : []) | [
205
- AbiEventParameterToPrimitiveType<Head, TConfig>,
206
- ...(Tail extends readonly [] ? [] : Tail extends readonly AbiParameter[] ? AbiEventParametersToPrimitiveTypes<Tail, TConfig> : [])
207
- ], TConfig['required']> : TBase : TConfig extends {
208
- indexedOnly: false;
209
- } ? Head extends AbiParameter ? Head extends {
210
- name: infer Name;
211
- } ? Name extends string ? {
212
- [name in Name]: AbiParameterToPrimitiveType<Head>;
213
- } & (Tail extends readonly [] ? {} : Tail extends readonly AbiParameter[] ? AbiEventParametersToPrimitiveTypes<Tail, TConfig> : {}) : never : [
214
- AbiParameterToPrimitiveType<Head>,
215
- ...(Tail extends readonly [] ? [] : Tail extends readonly AbiParameter[] ? AbiEventParametersToPrimitiveTypes<Tail, TConfig> : [])
216
- ] : TBase : Tail extends readonly [] ? TBase : Tail extends readonly AbiParameter[] ? AbiEventParametersToPrimitiveTypes<Tail, TConfig> : TBase : TBase>;
217
- type AbiEventTopicToPrimitiveType<TParam extends AbiParameter, TTopic extends LogTopic, TPrimitiveType = TParam['type'] extends HashedEventTypes ? TTopic : AbiParameterToPrimitiveType<TParam>> = EventTopicParam<TPrimitiveType, TTopic>;
218
- type AbiEventTopicsToPrimitiveTypes<TAbiParameters extends readonly AbiParameter[], TTopics extends LogTopic[] | undefined = undefined, TData extends Hex | undefined = undefined, TBase = TAbiParameters[0] extends {
219
- name: string;
220
- } ? {} : []> = Prettify<TAbiParameters extends readonly [infer Head, ...infer Tail] ? TTopics extends readonly [infer TopicHead, ...infer TopicTail] ? Head extends {
221
- indexed: true;
222
- } ? Head extends AbiParameter ? Head extends {
223
- name: infer Name;
224
- } ? Name extends string ? {
225
- [name in Name]: TopicHead extends LogTopic ? AbiEventTopicToPrimitiveType<Head, TopicHead> : never;
226
- } & (Tail extends readonly [] ? {} : Tail extends readonly AbiParameter[] ? TopicTail extends LogTopic[] ? AbiEventTopicsToPrimitiveTypes<Tail, TopicTail, TData> : {} : {}) : never : [
227
- TopicHead extends LogTopic ? AbiEventTopicToPrimitiveType<Head, TopicHead> : never,
228
- ...(Tail extends readonly [] ? [] : Tail extends readonly AbiParameter[] ? TopicTail extends LogTopic[] ? AbiEventTopicsToPrimitiveTypes<Tail, TopicTail, TData> : [] : [])
229
- ] : TBase : TBase : TTopics extends readonly [] ? TData extends '0x' ? TBase : TData extends Hex ? Head extends AbiParameter ? Head extends {
230
- indexed: true;
231
- } ? Tail extends readonly AbiParameter[] ? AbiEventTopicsToPrimitiveTypes<Tail, [], TData> : TBase : Head extends {
232
- name: infer Name;
233
- } ? Name extends string ? {
234
- [name in Name]: AbiParameterToPrimitiveType<Head>;
235
- } & (Tail extends readonly [] ? {} : Tail extends readonly AbiParameter[] ? AbiEventTopicsToPrimitiveTypes<Tail, [], TData> : {}) : never : [
236
- AbiParameterToPrimitiveType<Head>,
237
- ...(Tail extends readonly [] ? [] : Tail extends readonly AbiParameter[] ? AbiEventTopicsToPrimitiveTypes<Tail, [], TData> : [])
238
- ] : TBase : TBase : TBase : undefined>;
239
- type ExtractArgsFromAbi<TAbi extends Abi | readonly unknown[], TFunctionName extends string, TAbiFunction extends AbiFunction = TAbi extends Abi ? ExtractAbiFunction<TAbi, TFunctionName> : AbiFunction, TArgs = AbiParametersToPrimitiveTypes<TAbiFunction['inputs']>, FailedToParseArgs = ([TArgs] extends [never] ? true : false) | (readonly unknown[] extends TArgs ? true : false)> = true extends FailedToParseArgs ? {
186
+ type ContractFunctionConfig<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string, TAbiStateMutability extends AbiStateMutability = AbiStateMutability> = {
187
+ /** Contract ABI */
188
+ abi: Narrow<TAbi>;
189
+ /** Contract address */
190
+ address: Address;
191
+ /** Function to invoke on the contract */
192
+ functionName: InferFunctionName<TAbi, TFunctionName, TAbiStateMutability>;
193
+ } & GetFunctionArgs<TAbi, TFunctionName>;
194
+ type ContractFunctionResult<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string, TAbiFunction extends AbiFunction & {
195
+ type: 'function';
196
+ } = TAbi extends Abi ? ExtractAbiFunction<TAbi, TFunctionName> : AbiFunction, TArgs = AbiParametersToPrimitiveTypes<TAbiFunction['outputs']>, FailedToParseArgs = ([TArgs] extends [never] ? true : false) | (readonly unknown[] extends TArgs ? true : false)> = true extends FailedToParseArgs ? unknown : TArgs extends readonly [] ? void : TArgs extends readonly [infer Arg] ? Arg : TArgs;
197
+ type GetValue<TAbi extends Abi | readonly unknown[], TFunctionName extends string, TValueType = TransactionRequest['value'], TAbiFunction extends AbiFunction = TAbi extends Abi ? ExtractAbiFunction<TAbi, TFunctionName> : AbiFunction> = TAbiFunction['stateMutability'] extends 'payable' ? {
198
+ value?: TValueType;
199
+ } : TAbiFunction['payable'] extends true ? {
200
+ value?: TValueType;
201
+ } : unknown;
202
+ type MaybeAbiEventName<TAbiEvent extends AbiEvent | undefined> = TAbiEvent extends AbiEvent ? TAbiEvent['name'] : undefined;
203
+ type MaybeExtractEventArgsFromAbi<TAbi extends Abi | readonly unknown[] = Abi, TEventName extends string | undefined = undefined> = TEventName extends string ? GetEventArgs<TAbi, TEventName> : undefined;
204
+ type InferErrorName<TAbi extends Abi | readonly unknown[] = Abi, TErrorName extends string = string> = TAbi extends Abi ? ExtractAbiErrorNames<TAbi> extends infer AbiErrorNames ? AbiErrorNames | (TErrorName extends AbiErrorNames ? TErrorName : never) | (Abi extends TAbi ? string : never) : never : TErrorName;
205
+ type InferEventName<TAbi extends Abi | readonly unknown[] = Abi, TEventName extends string | undefined = string> = TAbi extends Abi ? ExtractAbiEventNames<TAbi> extends infer AbiEventNames ? AbiEventNames | (TEventName extends AbiEventNames ? TEventName : never) : never : TEventName;
206
+ type InferFunctionName<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string, TAbiStateMutability extends AbiStateMutability = AbiStateMutability> = TAbi extends Abi ? ExtractAbiFunctionNames<TAbi, TAbiStateMutability> extends infer AbiFunctionNames ? AbiFunctionNames | (TFunctionName extends AbiFunctionNames ? TFunctionName : never) | (Abi extends TAbi ? string : never) : never : TFunctionName;
207
+ type InferItemName<TAbi extends Abi | readonly unknown[] = Abi, TName extends string = string> = TAbi extends Abi ? ExtractAbiItemNames<TAbi> extends infer AbiNames ? AbiNames | (TName extends AbiNames ? TName : never) | (Abi extends TAbi ? string : never) : never : TName;
208
+ type ExtractAbiItemNames<TAbi extends Abi> = ExtractAbiFunctionNames<TAbi> | ExtractAbiEventNames<TAbi> | ExtractAbiErrorNames<TAbi>;
209
+ type GetFunctionArgs<TAbi extends Abi | readonly unknown[], TFunctionName extends string, TAbiFunction extends AbiFunction = TAbi extends Abi ? ExtractAbiFunction<TAbi, TFunctionName> : AbiFunction, TArgs = AbiParametersToPrimitiveTypes<TAbiFunction['inputs']>, FailedToParseArgs = ([TArgs] extends [never] ? true : false) | (readonly unknown[] extends TArgs ? true : false)> = true extends FailedToParseArgs ? {
240
210
  /**
241
211
  * Arguments to pass contract method
242
212
  *
@@ -248,11 +218,11 @@ type ExtractArgsFromAbi<TAbi extends Abi | readonly unknown[], TFunctionName ext
248
218
  } : {
249
219
  /** Arguments to pass contract method */ args: TArgs;
250
220
  };
251
- type ExtractConstructorArgsFromAbi<TAbi extends Abi | readonly unknown[], TAbiFunction extends AbiConstructor = TAbi extends Abi ? Extract<TAbi[number], {
221
+ type GetConstructorArgs<TAbi extends Abi | readonly unknown[], TAbiConstructor extends AbiConstructor = TAbi extends Abi ? Extract<TAbi[number], {
252
222
  type: 'constructor';
253
- }> : AbiConstructor, TArgs = AbiParametersToPrimitiveTypes<TAbiFunction['inputs']>, FailedToParseArgs = ([TArgs] extends [never] ? true : false) | (readonly unknown[] extends TArgs ? true : false)> = true extends FailedToParseArgs ? {
223
+ }> : AbiConstructor, TArgs = AbiParametersToPrimitiveTypes<TAbiConstructor['inputs']>, FailedToParseArgs = ([TArgs] extends [never] ? true : false) | (readonly unknown[] extends TArgs ? true : false)> = true extends FailedToParseArgs ? {
254
224
  /**
255
- * Arguments to pass contract method
225
+ * Arguments to pass contract constructor
256
226
  *
257
227
  * Use a [const assertion](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html#const-assertions) on {@link abi} for type inference.
258
228
  */
@@ -260,9 +230,9 @@ type ExtractConstructorArgsFromAbi<TAbi extends Abi | readonly unknown[], TAbiFu
260
230
  } : TArgs extends readonly [] ? {
261
231
  args?: never;
262
232
  } : {
263
- /** Arguments to pass contract method */ args: TArgs;
233
+ /** Arguments to pass contract constructor */ args: TArgs;
264
234
  };
265
- type ExtractErrorArgsFromAbi<TAbi extends Abi | readonly unknown[], TErrorName extends string, TAbiError extends AbiError = TAbi extends Abi ? ExtractAbiError<TAbi, TErrorName> : AbiError, TArgs = AbiParametersToPrimitiveTypes<TAbiError['inputs']>, FailedToParseArgs = ([TArgs] extends [never] ? true : false) | (readonly unknown[] extends TArgs ? true : false)> = true extends FailedToParseArgs ? {
235
+ type GetErrorArgs<TAbi extends Abi | readonly unknown[], TErrorName extends string, TAbiError extends AbiError = TAbi extends Abi ? ExtractAbiError<TAbi, TErrorName> : AbiError, TArgs = AbiParametersToPrimitiveTypes<TAbiError['inputs']>, FailedToParseArgs = ([TArgs] extends [never] ? true : false) | (readonly unknown[] extends TArgs ? true : false)> = true extends FailedToParseArgs ? {
266
236
  /**
267
237
  * Arguments to pass contract method
268
238
  *
@@ -274,12 +244,12 @@ type ExtractErrorArgsFromAbi<TAbi extends Abi | readonly unknown[], TErrorName e
274
244
  } : {
275
245
  /** Arguments to pass contract method */ args: TArgs;
276
246
  };
277
- type ExtractEventArgsFromAbi<TAbi extends Abi | readonly unknown[], TEventName extends string, TConfig extends EventParametersConfig = EventParametersDefaultConfig, TAbiEvent extends AbiEvent & {
247
+ type GetEventArgs<TAbi extends Abi | readonly unknown[], TEventName extends string, TConfig extends EventParameterOptions = DefaultEventParameterOptions, TAbiEvent extends AbiEvent & {
278
248
  type: 'event';
279
249
  } = TAbi extends Abi ? ExtractAbiEvent<TAbi, TEventName> : AbiEvent & {
280
250
  type: 'event';
281
251
  }, TArgs = AbiEventParametersToPrimitiveTypes<TAbiEvent['inputs'], TConfig>, FailedToParseArgs = ([TArgs] extends [never] ? true : false) | (readonly unknown[] extends TArgs ? true : false)> = true extends FailedToParseArgs ? readonly unknown[] : TArgs extends readonly [] ? never : TArgs;
282
- type ExtractEventArgsFromTopics<TAbi extends Abi | readonly unknown[], TEventName extends string, TTopics extends LogTopic[], TData extends Hex | undefined, TAbiEvent extends AbiEvent & {
252
+ type GetEventArgsFromTopics<TAbi extends Abi | readonly unknown[], TEventName extends string, TTopics extends LogTopic[], TData extends Hex | undefined, TAbiEvent extends AbiEvent & {
283
253
  type: 'event';
284
254
  } = TAbi extends Abi ? ExtractAbiEvent<TAbi, TEventName> : AbiEvent & {
285
255
  type: 'event';
@@ -290,39 +260,92 @@ type ExtractEventArgsFromTopics<TAbi extends Abi | readonly unknown[], TEventNam
290
260
  } : {
291
261
  args?: TArgs;
292
262
  };
293
- type ExtractErrorNameFromAbi<TAbi extends Abi | readonly unknown[] = Abi, TErrorName extends string = string> = TAbi extends Abi ? ExtractAbiErrorNames<TAbi> extends infer AbiErrorNames ? AbiErrorNames | (TErrorName extends AbiErrorNames ? TErrorName : never) | (Abi extends TAbi ? string : never) : never : TErrorName;
294
- type ExtractEventNameFromAbi<TAbi extends Abi | readonly unknown[] = Abi, TEventName extends string | undefined = string> = TAbi extends Abi ? ExtractAbiEventNames<TAbi> extends infer AbiEventNames ? AbiEventNames | (TEventName extends AbiEventNames ? TEventName : never) : never : TEventName;
295
- type ExtractFunctionNameFromAbi<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string, TAbiStateMutability extends AbiStateMutability = AbiStateMutability> = TAbi extends Abi ? ExtractAbiFunctionNames<TAbi, TAbiStateMutability> extends infer AbiFunctionNames ? AbiFunctionNames | (TFunctionName extends AbiFunctionNames ? TFunctionName : never) | (Abi extends TAbi ? string : never) : never : TFunctionName;
296
- type ExtractNames<TAbi extends Abi> = ExtractAbiFunctionNames<TAbi> | ExtractAbiEventNames<TAbi> | ExtractAbiErrorNames<TAbi>;
297
- type ExtractNameFromAbi<TAbi extends Abi | readonly unknown[] = Abi, TName extends string = string> = TAbi extends Abi ? ExtractNames<TAbi> extends infer AbiNames ? AbiNames | (TName extends AbiNames ? TName : never) | (Abi extends TAbi ? string : never) : never : TName;
298
- type ExtractResultFromAbi<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string, TAbiFunction extends AbiFunction & {
299
- type: 'function';
300
- } = TAbi extends Abi ? ExtractAbiFunction<TAbi, TFunctionName> : AbiFunction, TArgs = AbiParametersToPrimitiveTypes<TAbiFunction['outputs']>, FailedToParseArgs = ([TArgs] extends [never] ? true : false) | (readonly unknown[] extends TArgs ? true : false)> = true extends FailedToParseArgs ? unknown : TArgs extends readonly [] ? void : TArgs extends readonly [infer Arg] ? Arg : TArgs;
301
- type MaybeAbiEventName<TAbiEvent extends AbiEvent | undefined> = TAbiEvent extends AbiEvent ? TAbiEvent['name'] : undefined;
302
- type MaybeExtractEventArgsFromAbi<TAbi extends Abi | readonly unknown[] = Abi, TEventName extends string | undefined = undefined> = TEventName extends string ? ExtractEventArgsFromAbi<TAbi, TEventName> : undefined;
303
- type ContractConfig<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string, TAbiStateMutability extends AbiStateMutability = AbiStateMutability> = {
304
- /** Contract ABI */
305
- abi: Narrow<TAbi>;
306
- /** Contract address */
307
- address: Address;
308
- /** Function to invoke on the contract */
309
- functionName: ExtractFunctionNameFromAbi<TAbi, TFunctionName, TAbiStateMutability>;
310
- } & ExtractArgsFromAbi<TAbi, TFunctionName>;
311
- type GetValue<TAbi extends Abi | readonly unknown[], TFunctionName extends string, TValueType = TransactionRequest['value'], TAbiFunction extends AbiFunction = TAbi extends Abi ? ExtractAbiFunction<TAbi, TFunctionName> : AbiFunction> = TAbiFunction['stateMutability'] extends 'payable' ? TValueType : TAbiFunction['payable'] extends true ? TValueType : never;
263
+ type EventParameterOptions = {
264
+ EnableUnion?: boolean;
265
+ IndexedOnly?: boolean;
266
+ Required?: boolean;
267
+ };
268
+ type DefaultEventParameterOptions = {
269
+ EnableUnion: true;
270
+ IndexedOnly: true;
271
+ Required: false;
272
+ };
273
+ type HashedEventTypes = 'bytes' | 'string' | 'tuple' | `${string}[${string}]`;
274
+ type _HasUnnamedAbiParameter<TAbiParameters extends readonly AbiParameter[]> = TAbiParameters extends readonly [
275
+ infer Head extends AbiParameter,
276
+ ...infer Tail extends readonly AbiParameter[]
277
+ ] ? Head extends {
278
+ name: string;
279
+ } ? Head['name'] extends '' ? true : _HasUnnamedAbiParameter<Tail> : true : false;
280
+ /**
281
+ * @internal
282
+ */
283
+ type LogTopicType<TPrimitiveType = Hex, TTopic extends LogTopic = LogTopic> = TTopic extends Hex ? TPrimitiveType : TTopic extends Hex[] ? TPrimitiveType[] : TTopic extends null ? null : never;
284
+ /**
285
+ * @internal
286
+ */
287
+ type AbiEventParameterToPrimitiveType<TAbiParameter extends AbiParameter, Options extends EventParameterOptions = DefaultEventParameterOptions, _Type = AbiParameterToPrimitiveType<TAbiParameter>> = Options['EnableUnion'] extends true ? LogTopicType<_Type> : _Type;
288
+ /**
289
+ * @internal
290
+ */
291
+ type AbiEventTopicToPrimitiveType<TAbiParameter extends AbiParameter, TTopic extends LogTopic, TPrimitiveType = TAbiParameter['type'] extends HashedEventTypes ? TTopic : AbiParameterToPrimitiveType<TAbiParameter>> = LogTopicType<TPrimitiveType, TTopic>;
292
+ type AbiEventParametersToPrimitiveTypes<TAbiParameters extends readonly AbiParameter[], Options extends EventParameterOptions = DefaultEventParameterOptions> = TAbiParameters extends readonly [] ? readonly [] : Filter<TAbiParameters, Options['IndexedOnly'] extends true ? {
293
+ indexed: true;
294
+ } : object> extends infer Filtered extends readonly AbiParameter[] ? _HasUnnamedAbiParameter<Filtered> extends true ? readonly [
295
+ ...{
296
+ [K in keyof Filtered]: AbiEventParameterToPrimitiveType<Filtered[K], Options>;
297
+ }
298
+ ] | (Options['Required'] extends true ? never : Filtered extends readonly [
299
+ ...infer Head extends readonly AbiParameter[],
300
+ infer _
301
+ ] ? AbiEventParametersToPrimitiveTypes<readonly [...{
302
+ [K in keyof Head]: Omit<Head[K], 'name'>;
303
+ }], Options> : never) : {
304
+ [Parameter in Filtered[number] as Parameter extends {
305
+ name: infer Name extends string;
306
+ } ? Name : never]?: AbiEventParameterToPrimitiveType<Parameter, Options>;
307
+ } extends infer Mapped ? MaybeRequired<Mapped, Options['Required'] extends boolean ? Options['Required'] : false> : never : never;
308
+ /**
309
+ * @internal
310
+ */
311
+ type AbiEventTopicsToPrimitiveTypes<TAbiParameters extends readonly AbiParameter[], TTopics extends LogTopic[] | undefined = undefined, TData extends Hex | undefined = undefined, TBase = TAbiParameters[0] extends {
312
+ name: string;
313
+ } ? {} : []> = TAbiParameters extends readonly [
314
+ infer Head extends AbiParameter,
315
+ ...infer Tail
316
+ ] ? TTopics extends readonly [infer TopicHead, ...infer TopicTail] ? Head extends {
317
+ indexed: true;
318
+ } ? Head extends {
319
+ name: infer Name extends string;
320
+ } ? {
321
+ [_ in Name]: TopicHead extends LogTopic ? AbiEventTopicToPrimitiveType<Head, TopicHead> : never;
322
+ } & (Tail extends readonly [] ? {} : Tail extends readonly AbiParameter[] ? TopicTail extends LogTopic[] ? AbiEventTopicsToPrimitiveTypes<Tail, TopicTail, TData> : {} : {}) : [
323
+ TopicHead extends LogTopic ? AbiEventTopicToPrimitiveType<Head, TopicHead> : never,
324
+ ...(Tail extends readonly [] ? [] : Tail extends readonly AbiParameter[] ? TopicTail extends LogTopic[] ? AbiEventTopicsToPrimitiveTypes<Tail, TopicTail, TData> : [] : [])
325
+ ] : TBase : TTopics extends readonly [] ? TData extends '0x' ? TBase : TData extends Hex ? Head extends AbiParameter ? Head extends {
326
+ indexed: true;
327
+ } ? Tail extends readonly AbiParameter[] ? AbiEventTopicsToPrimitiveTypes<Tail, [], TData> : TBase : Head extends {
328
+ name: infer Name extends string;
329
+ } ? {
330
+ [_ in Name]: AbiParameterToPrimitiveType<Head>;
331
+ } & (Tail extends readonly [] ? {} : Tail extends readonly AbiParameter[] ? AbiEventTopicsToPrimitiveTypes<Tail, [], TData> : {}) : [
332
+ AbiParameterToPrimitiveType<Head>,
333
+ ...(Tail extends readonly [] ? [] : Tail extends readonly AbiParameter[] ? AbiEventTopicsToPrimitiveTypes<Tail, [], TData> : [])
334
+ ] : TBase : TBase : TBase : undefined;
312
335
 
313
336
  type DecodedAbiEvent<TAbiEvent extends AbiEvent | undefined = undefined, TAbi extends Abi | readonly unknown[] = [TAbiEvent], TEventName extends string | undefined = TAbiEvent extends AbiEvent ? TAbiEvent['name'] : undefined> = TAbi extends Abi ? TEventName extends string ? {
314
- args: ExtractEventArgsFromAbi<TAbi, TEventName, {
315
- enableUnion: false;
316
- indexedOnly: false;
317
- required: true;
337
+ args: GetEventArgs<TAbi, TEventName, {
338
+ EnableUnion: false;
339
+ IndexedOnly: false;
340
+ Required: true;
318
341
  }>;
319
342
  /** The event name decoded from `topics`. */
320
343
  eventName: TEventName;
321
344
  } : {
322
- args: ExtractEventArgsFromAbi<TAbi, string, {
323
- enableUnion: false;
324
- indexedOnly: false;
325
- required: true;
345
+ args: GetEventArgs<TAbi, string, {
346
+ EnableUnion: false;
347
+ IndexedOnly: false;
348
+ Required: true;
326
349
  }>;
327
350
  /** The event name decoded from `topics`. */
328
351
  eventName: ExtractAbiEventNames<TAbi>;
@@ -567,4 +590,4 @@ type GetChain<TChain extends Chain | undefined, TChainOverride extends Chain | u
567
590
  chain?: TChainOverride | null;
568
591
  };
569
592
 
570
- export { TransactionSerialized as $, AbiItem as A, ByteArray as B, Chain as C, RpcTransactionRequest as D, ExtractArgsFromAbi as E, FeeHistory as F, RpcUncle as G, Hex as H, TransactionType$1 as I, TransactionBase as J, TransactionEIP1559 as K, Log as L, TransactionEIP2930 as M, TransactionLegacy as N, TransactionReceipt as O, TransactionRequest as P, TransactionRequestBase as Q, RpcBlock as R, TransactionRequestEIP1559 as S, Transaction as T, TransactionRequestEIP2930 as U, TransactionRequestLegacy as V, TransactionSerializable as W, TransactionSerializableBase as X, TransactionSerializableEIP1559 as Y, TransactionSerializableEIP2930 as Z, TransactionSerializableLegacy as _, Hash as a, TransactionSerializedEIP1559 as a0, TransactionSerializedEIP2930 as a1, TransactionSerializedLegacy as a2, Uncle as a3, ExtractFormatter as a4, Formatted as a5, FormattedTransaction as a6, TransactionFormatter as a7, defineTransaction as a8, formatTransaction as a9, transactionType as aa, Formatters as ab, Formatter as ac, GetChain as ad, MergeIntersectionProperties as ae, GetValue as af, IsUndefined as ag, MaybeExtractEventArgsFromAbi as ah, Prettify as ai, MaybeAbiEventName as aj, Quantity as ak, EventDefinition as al, Signature as am, LogTopic as an, defineFormatter as ao, format as ap, AccessList as b, Block as c, BlockIdentifier as d, BlockNumber as e, BlockTag as f, ContractConfig as g, ExtractConstructorArgsFromAbi as h, ExtractErrorArgsFromAbi as i, ExtractErrorNameFromAbi as j, ExtractEventArgsFromAbi as k, ExtractEventArgsFromTopics as l, ExtractEventNameFromAbi as m, ExtractFunctionNameFromAbi as n, ExtractNameFromAbi as o, ExtractResultFromAbi as p, FeeValues as q, FeeValuesEIP1559 as r, FeeValuesLegacy as s, RpcBlockIdentifier as t, RpcBlockNumber as u, RpcFeeHistory as v, RpcFeeValues as w, RpcLog as x, RpcTransaction as y, RpcTransactionReceipt as z };
593
+ export { TransactionSerializable as $, AbiItem as A, ByteArray as B, Chain as C, RpcLog as D, RpcTransaction as E, FeeHistory as F, GetConstructorArgs as G, Hex as H, IsNarrowable as I, RpcTransactionReceipt as J, RpcTransactionRequest as K, Log as L, MaybeExtractEventArgsFromAbi as M, RpcUncle as N, TransactionBase as O, Prettify as P, TransactionEIP1559 as Q, RpcBlock as R, TransactionEIP2930 as S, Transaction as T, TransactionLegacy as U, TransactionReceipt as V, TransactionRequest as W, TransactionRequestBase as X, TransactionRequestEIP1559 as Y, TransactionRequestEIP2930 as Z, TransactionRequestLegacy as _, Hash as a, TransactionSerializableBase as a0, TransactionSerializableEIP1559 as a1, TransactionSerializableEIP2930 as a2, TransactionSerializableLegacy as a3, TransactionSerialized as a4, TransactionSerializedEIP1559 as a5, TransactionSerializedEIP2930 as a6, TransactionSerializedLegacy as a7, TransactionType$1 as a8, Uncle as a9, ExtractFormatter as aa, Formatted as ab, FormattedTransaction as ac, TransactionFormatter as ad, defineTransaction as ae, formatTransaction as af, transactionType as ag, Formatters as ah, Formatter as ai, GetChain as aj, MergeIntersectionProperties as ak, GetValue as al, MaybeAbiEventName as am, Quantity as an, EventDefinition as ao, Signature as ap, LogTopic as aq, defineFormatter as ar, format as as, IsNever as b, IsUndefined as c, AbiEventParametersToPrimitiveTypes as d, AccessList as e, Block as f, BlockIdentifier as g, BlockNumber as h, BlockTag as i, ContractFunctionConfig as j, ContractFunctionResult as k, FeeValues as l, FeeValuesEIP1559 as m, FeeValuesLegacy as n, GetErrorArgs as o, GetEventArgs as p, GetEventArgsFromTopics as q, GetFunctionArgs as r, InferErrorName as s, InferEventName as t, InferFunctionName as u, InferItemName as v, RpcBlockIdentifier as w, RpcBlockNumber as x, RpcFeeHistory as y, RpcFeeValues as z };
@@ -1,4 +1,4 @@
1
- import { ab as Formatters, C as Chain } from './chain-5b28fc53.js';
1
+ import { ah as Formatters, C as Chain } from './chain-5507c6f0.js';
2
2
 
3
3
  declare function defineChain<TFormatters extends Formatters = Formatters, TChain extends Chain<TFormatters> = Chain<TFormatters>>(chain: TChain): TChain;
4
4
  declare function getChainContractAddress({ blockNumber, chain, contract: name, }: {