viem 0.2.0-0-2-0.20230329T022953 → 0.2.0-0-2-0.20230330T023229

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 (69) 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-9da1e6b6.d.ts} +132 -120
  10. package/dist/{chain-e9b996ff.d.ts → chain-b53ed5d9.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-564BCC7H.js → chunk-2ESQNALV.js} +18 -16
  17. package/dist/chunk-2ESQNALV.js.map +1 -0
  18. package/dist/{chunk-CXE4XSMF.js → chunk-ASAFFZMD.js} +19 -19
  19. package/dist/{chunk-UCZWRYV5.mjs → chunk-B7WOV4RY.mjs} +18 -16
  20. package/dist/chunk-B7WOV4RY.mjs.map +1 -0
  21. package/dist/{chunk-D3ALNUWN.js → chunk-GNHXOZCH.js} +6 -6
  22. package/dist/{chunk-BJ5KRDTG.mjs → chunk-RFOQRRYW.mjs} +2 -2
  23. package/dist/{chunk-7QEOFHC7.mjs → chunk-S4GWZ3LJ.mjs} +2 -2
  24. package/dist/contract.d.ts +8 -8
  25. package/dist/contract.js +2 -2
  26. package/dist/contract.mjs +1 -1
  27. package/dist/{createClient-e52de308.d.ts → createTransport-e031366b.d.ts} +36 -34
  28. package/dist/{eip1193-9080db42.d.ts → eip1193-e79469af.d.ts} +1 -1
  29. package/dist/{encodeFunctionResult-47ad60ed.d.ts → encodeFunctionResult-d206ceb9.d.ts} +15 -15
  30. package/dist/{encodePacked-35c796fb.d.ts → encodePacked-b36ce88a.d.ts} +1 -1
  31. package/dist/ens.d.ts +5 -5
  32. package/dist/ens.js +3 -3
  33. package/dist/ens.mjs +2 -2
  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-a7a3fb0f.d.ts} +1 -1
  38. package/dist/{getAbiItem-1d94ae0e.d.ts → getAbiItem-5e8b01de.d.ts} +3 -3
  39. package/dist/index.d.ts +49 -15
  40. package/dist/index.js +218 -138
  41. package/dist/index.js.map +1 -1
  42. package/dist/index.mjs +127 -47
  43. package/dist/index.mjs.map +1 -1
  44. package/dist/{parseGwei-c9e9d320.d.ts → parseGwei-7678c2fa.d.ts} +6 -6
  45. package/dist/public.d.ts +5 -5
  46. package/dist/public.js +2 -2
  47. package/dist/public.mjs +1 -1
  48. package/dist/publicKeyToAddress-87b9856c.d.ts +16 -0
  49. package/dist/{test-f3d06763.d.ts → test-68dbda5b.d.ts} +3 -3
  50. package/dist/test.d.ts +5 -5
  51. package/dist/test.js +2 -2
  52. package/dist/test.mjs +1 -1
  53. package/dist/{typedData-42b43450.d.ts → typedData-8b24374d.d.ts} +1 -1
  54. package/dist/utils/index.d.ts +15 -15
  55. package/dist/utils/index.js +4 -2
  56. package/dist/utils/index.mjs +3 -1
  57. package/dist/wallet.d.ts +5 -5
  58. package/dist/wallet.js +2 -2
  59. package/dist/wallet.mjs +1 -1
  60. package/dist/{watchPendingTransactions-468f53f2.d.ts → watchPendingTransactions-53449c4e.d.ts} +34 -31
  61. package/dist/window.d.ts +2 -2
  62. package/package.json +3 -3
  63. package/dist/chunk-564BCC7H.js.map +0 -1
  64. package/dist/chunk-UCZWRYV5.mjs.map +0 -1
  65. package/dist/parseAccount-4209fa24.d.ts +0 -6
  66. /package/dist/{chunk-CXE4XSMF.js.map → chunk-ASAFFZMD.js.map} +0 -0
  67. /package/dist/{chunk-D3ALNUWN.js.map → chunk-GNHXOZCH.js.map} +0 -0
  68. /package/dist/{chunk-BJ5KRDTG.mjs.map → chunk-RFOQRRYW.mjs.map} +0 -0
  69. /package/dist/{chunk-7QEOFHC7.mjs.map → chunk-S4GWZ3LJ.mjs.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> = {
@@ -91,28 +91,26 @@ type FeeValuesEIP1559<TQuantity = bigint> = {
91
91
  };
92
92
  type FeeValues<TQuantity = bigint> = FeeValuesLegacy<TQuantity> | FeeValuesEIP1559<TQuantity>;
93
93
 
94
+ /**
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];
94
106
  /**
95
107
  * @description Checks if {@link T} is `undefined`
96
108
  * @param T - Type to check
97
109
  * @example
98
110
  * type Result = IsUndefined<undefined>
99
- * // ^? true
111
+ * // ^? type Result = true
100
112
  */
101
113
  type IsUndefined<T> = [undefined] extends [T] ? true : false;
102
- /**
103
- * @description Excludes empty attributes from T if TMaybeExclude is true.
104
- *
105
- * @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 }
114
- */
115
- type MaybeExcludeEmpty<T, TMaybeExclude extends boolean> = TMaybeExclude extends true ? Exclude<T, [] | null | undefined> : T;
116
114
  /**
117
115
  * @description Makes attributes on the type T required if TRequired is true.
118
116
  *
@@ -146,14 +144,6 @@ type OptionalNullable<T> = {
146
144
  } & {
147
145
  [K in keyof T as T[K] extends NonNullable<unknown> ? never : K]?: T[K];
148
146
  };
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
147
  /**
158
148
  * @description Combines members of an intersection into a readable type.
159
149
  *
@@ -174,69 +164,28 @@ type Prettify<T> = {
174
164
  */
175
165
  type ValueOf<T> = T[keyof T];
176
166
 
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
167
  type AbiItem = Abi[number];
188
168
  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 ? {
169
+ type ContractFunctionConfig<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string, TAbiStateMutability extends AbiStateMutability = AbiStateMutability> = {
170
+ /** Contract ABI */
171
+ abi: Narrow<TAbi>;
172
+ /** Contract address */
173
+ address: Address;
174
+ /** Function to invoke on the contract */
175
+ functionName: InferFunctionName<TAbi, TFunctionName, TAbiStateMutability>;
176
+ } & GetFunctionArgs<TAbi, TFunctionName>;
177
+ type ContractFunctionResult<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string, TAbiFunction extends AbiFunction & {
178
+ type: 'function';
179
+ } = 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;
180
+ 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;
181
+ type MaybeAbiEventName<TAbiEvent extends AbiEvent | undefined> = TAbiEvent extends AbiEvent ? TAbiEvent['name'] : undefined;
182
+ type MaybeExtractEventArgsFromAbi<TAbi extends Abi | readonly unknown[] = Abi, TEventName extends string | undefined = undefined> = TEventName extends string ? GetEventArgs<TAbi, TEventName> : undefined;
183
+ 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;
184
+ 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;
185
+ 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;
186
+ 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;
187
+ type ExtractAbiItemNames<TAbi extends Abi> = ExtractAbiFunctionNames<TAbi> | ExtractAbiEventNames<TAbi> | ExtractAbiErrorNames<TAbi>;
188
+ 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
189
  /**
241
190
  * Arguments to pass contract method
242
191
  *
@@ -248,11 +197,11 @@ type ExtractArgsFromAbi<TAbi extends Abi | readonly unknown[], TFunctionName ext
248
197
  } : {
249
198
  /** Arguments to pass contract method */ args: TArgs;
250
199
  };
251
- type ExtractConstructorArgsFromAbi<TAbi extends Abi | readonly unknown[], TAbiFunction extends AbiConstructor = TAbi extends Abi ? Extract<TAbi[number], {
200
+ type GetConstructorArgs<TAbi extends Abi | readonly unknown[], TAbiConstructor extends AbiConstructor = TAbi extends Abi ? Extract<TAbi[number], {
252
201
  type: 'constructor';
253
- }> : AbiConstructor, TArgs = AbiParametersToPrimitiveTypes<TAbiFunction['inputs']>, FailedToParseArgs = ([TArgs] extends [never] ? true : false) | (readonly unknown[] extends TArgs ? true : false)> = true extends FailedToParseArgs ? {
202
+ }> : AbiConstructor, TArgs = AbiParametersToPrimitiveTypes<TAbiConstructor['inputs']>, FailedToParseArgs = ([TArgs] extends [never] ? true : false) | (readonly unknown[] extends TArgs ? true : false)> = true extends FailedToParseArgs ? {
254
203
  /**
255
- * Arguments to pass contract method
204
+ * Arguments to pass contract constructor
256
205
  *
257
206
  * 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
207
  */
@@ -260,9 +209,9 @@ type ExtractConstructorArgsFromAbi<TAbi extends Abi | readonly unknown[], TAbiFu
260
209
  } : TArgs extends readonly [] ? {
261
210
  args?: never;
262
211
  } : {
263
- /** Arguments to pass contract method */ args: TArgs;
212
+ /** Arguments to pass contract constructor */ args: TArgs;
264
213
  };
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 ? {
214
+ 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
215
  /**
267
216
  * Arguments to pass contract method
268
217
  *
@@ -274,12 +223,12 @@ type ExtractErrorArgsFromAbi<TAbi extends Abi | readonly unknown[], TErrorName e
274
223
  } : {
275
224
  /** Arguments to pass contract method */ args: TArgs;
276
225
  };
277
- type ExtractEventArgsFromAbi<TAbi extends Abi | readonly unknown[], TEventName extends string, TConfig extends EventParametersConfig = EventParametersDefaultConfig, TAbiEvent extends AbiEvent & {
226
+ type GetEventArgs<TAbi extends Abi | readonly unknown[], TEventName extends string, TConfig extends EventParametersConfig = EventParametersDefaultConfig, TAbiEvent extends AbiEvent & {
278
227
  type: 'event';
279
228
  } = TAbi extends Abi ? ExtractAbiEvent<TAbi, TEventName> : AbiEvent & {
280
229
  type: 'event';
281
230
  }, 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 & {
231
+ type GetEventArgsFromTopics<TAbi extends Abi | readonly unknown[], TEventName extends string, TTopics extends LogTopic[], TData extends Hex | undefined, TAbiEvent extends AbiEvent & {
283
232
  type: 'event';
284
233
  } = TAbi extends Abi ? ExtractAbiEvent<TAbi, TEventName> : AbiEvent & {
285
234
  type: 'event';
@@ -290,39 +239,102 @@ type ExtractEventArgsFromTopics<TAbi extends Abi | readonly unknown[], TEventNam
290
239
  } : {
291
240
  args?: TArgs;
292
241
  };
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;
242
+ type EventParametersConfig = {
243
+ EnableUnion: boolean;
244
+ IndexedOnly: boolean;
245
+ Required: boolean;
246
+ };
247
+ type EventParametersDefaultConfig = {
248
+ EnableUnion: true;
249
+ IndexedOnly: true;
250
+ Required: false;
251
+ };
252
+ type EventParameterOptions = {
253
+ EnableUnion?: boolean;
254
+ IndexedOnly?: boolean;
255
+ Required?: boolean;
256
+ };
257
+ type DefaultEventParameterOptions = {
258
+ EnableUnion: true;
259
+ IndexedOnly: true;
260
+ Required: false;
261
+ };
262
+ type HashedEventTypes = 'bytes' | 'string' | 'tuple' | `${string}[${string}]`;
263
+ type _HasUnnamedAbiParameter<TAbiParameters extends readonly AbiParameter[]> = TAbiParameters extends readonly [
264
+ infer Head extends AbiParameter,
265
+ ...infer Tail extends readonly AbiParameter[]
266
+ ] ? Head extends {
267
+ name: string;
268
+ } ? Head['name'] extends '' ? true : _HasUnnamedAbiParameter<Tail> : true : false;
269
+ /**
270
+ * @internal
271
+ */
272
+ type LogTopicType<TPrimitiveType = Hex, TTopic extends LogTopic = LogTopic> = TTopic extends Hex ? TPrimitiveType : TTopic extends Hex[] ? TPrimitiveType[] : TTopic extends null ? null : never;
273
+ /**
274
+ * @internal
275
+ */
276
+ type AbiEventParameterToPrimitiveType<TAbiParameter extends AbiParameter, Options extends EventParameterOptions = DefaultEventParameterOptions, _Type = AbiParameterToPrimitiveType<TAbiParameter>> = Options['EnableUnion'] extends true ? LogTopicType<_Type> : _Type;
277
+ /**
278
+ * @internal
279
+ */
280
+ type AbiEventTopicToPrimitiveType<TAbiParameter extends AbiParameter, TTopic extends LogTopic, TPrimitiveType = TAbiParameter['type'] extends HashedEventTypes ? TTopic : AbiParameterToPrimitiveType<TAbiParameter>> = LogTopicType<TPrimitiveType, TTopic>;
281
+ type AbiEventParametersToPrimitiveTypes<TAbiParameters extends readonly AbiParameter[], Options extends EventParameterOptions = DefaultEventParameterOptions> = TAbiParameters extends readonly [] ? readonly [] : Filter<TAbiParameters, Options['IndexedOnly'] extends true ? {
282
+ indexed: true;
283
+ } : object> extends infer Filtered extends readonly AbiParameter[] ? _HasUnnamedAbiParameter<Filtered> extends true ? readonly [
284
+ ...{
285
+ [K in keyof Filtered]: AbiEventParameterToPrimitiveType<Filtered[K], Options>;
286
+ }
287
+ ] | (Options['Required'] extends true ? never : Filtered extends readonly [
288
+ ...infer Head extends readonly AbiParameter[],
289
+ infer _
290
+ ] ? AbiEventParametersToPrimitiveTypes<readonly [...{
291
+ [K in keyof Head]: Omit<Head[K], 'name'>;
292
+ }], Options> : never) : {
293
+ [Parameter in Filtered[number] as Parameter extends {
294
+ name: infer Name extends string;
295
+ } ? Name : never]?: AbiEventParameterToPrimitiveType<Parameter, Options>;
296
+ } extends infer Mapped ? MaybeRequired<Mapped, Options['Required'] extends boolean ? Options['Required'] : false> : never : never;
297
+ /**
298
+ * @internal
299
+ */
300
+ type AbiEventTopicsToPrimitiveTypes<TAbiParameters extends readonly AbiParameter[], TTopics extends LogTopic[] | undefined = undefined, TData extends Hex | undefined = undefined, TBase = TAbiParameters[0] extends {
301
+ name: string;
302
+ } ? {} : []> = TAbiParameters extends readonly [
303
+ infer Head extends AbiParameter,
304
+ ...infer Tail
305
+ ] ? TTopics extends readonly [infer TopicHead, ...infer TopicTail] ? Head extends {
306
+ indexed: true;
307
+ } ? Head extends {
308
+ name: infer Name extends string;
309
+ } ? {
310
+ [_ in Name]: TopicHead extends LogTopic ? AbiEventTopicToPrimitiveType<Head, TopicHead> : never;
311
+ } & (Tail extends readonly [] ? {} : Tail extends readonly AbiParameter[] ? TopicTail extends LogTopic[] ? AbiEventTopicsToPrimitiveTypes<Tail, TopicTail, TData> : {} : {}) : [
312
+ TopicHead extends LogTopic ? AbiEventTopicToPrimitiveType<Head, TopicHead> : never,
313
+ ...(Tail extends readonly [] ? [] : Tail extends readonly AbiParameter[] ? TopicTail extends LogTopic[] ? AbiEventTopicsToPrimitiveTypes<Tail, TopicTail, TData> : [] : [])
314
+ ] : TBase : TTopics extends readonly [] ? TData extends '0x' ? TBase : TData extends Hex ? Head extends AbiParameter ? Head extends {
315
+ indexed: true;
316
+ } ? Tail extends readonly AbiParameter[] ? AbiEventTopicsToPrimitiveTypes<Tail, [], TData> : TBase : Head extends {
317
+ name: infer Name extends string;
318
+ } ? {
319
+ [_ in Name]: AbiParameterToPrimitiveType<Head>;
320
+ } & (Tail extends readonly [] ? {} : Tail extends readonly AbiParameter[] ? AbiEventTopicsToPrimitiveTypes<Tail, [], TData> : {}) : [
321
+ AbiParameterToPrimitiveType<Head>,
322
+ ...(Tail extends readonly [] ? [] : Tail extends readonly AbiParameter[] ? AbiEventTopicsToPrimitiveTypes<Tail, [], TData> : [])
323
+ ] : TBase : TBase : TBase : undefined;
312
324
 
313
325
  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;
326
+ args: GetEventArgs<TAbi, TEventName, {
327
+ EnableUnion: false;
328
+ IndexedOnly: false;
329
+ Required: true;
318
330
  }>;
319
331
  /** The event name decoded from `topics`. */
320
332
  eventName: TEventName;
321
333
  } : {
322
- args: ExtractEventArgsFromAbi<TAbi, string, {
323
- enableUnion: false;
324
- indexedOnly: false;
325
- required: true;
334
+ args: GetEventArgs<TAbi, string, {
335
+ EnableUnion: false;
336
+ IndexedOnly: false;
337
+ Required: true;
326
338
  }>;
327
339
  /** The event name decoded from `topics`. */
328
340
  eventName: ExtractAbiEventNames<TAbi>;
@@ -567,4 +579,4 @@ type GetChain<TChain extends Chain | undefined, TChainOverride extends Chain | u
567
579
  chain?: TChainOverride | null;
568
580
  };
569
581
 
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 };
582
+ export { TransactionSerializedEIP1559 as $, AbiItem as A, ByteArray as B, Chain as C, RpcUncle as D, TransactionBase as E, FeeHistory as F, GetConstructorArgs as G, Hex as H, InferErrorName as I, TransactionEIP1559 as J, TransactionEIP2930 as K, Log as L, TransactionLegacy as M, TransactionReceipt as N, TransactionRequest as O, TransactionRequestBase as P, TransactionRequestEIP1559 as Q, RpcBlock as R, TransactionRequestEIP2930 as S, Transaction as T, TransactionRequestLegacy as U, TransactionSerializable as V, TransactionSerializableBase as W, TransactionSerializableEIP1559 as X, TransactionSerializableEIP2930 as Y, TransactionSerializableLegacy as Z, TransactionSerialized as _, Hash as a, TransactionSerializedEIP2930 as a0, TransactionSerializedLegacy as a1, TransactionType$1 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, ContractFunctionConfig as g, ContractFunctionResult as h, FeeValues as i, FeeValuesEIP1559 as j, FeeValuesLegacy as k, GetErrorArgs as l, GetEventArgs as m, GetEventArgsFromTopics as n, GetFunctionArgs as o, InferEventName as p, InferFunctionName as q, InferItemName as r, RpcBlockIdentifier as s, RpcBlockNumber as t, RpcFeeHistory as u, RpcFeeValues as v, RpcLog as w, RpcTransaction as x, RpcTransactionReceipt as y, RpcTransactionRequest as z };
@@ -1,4 +1,4 @@
1
- import { ab as Formatters, C as Chain } from './chain-5b28fc53.js';
1
+ import { ab as Formatters, C as Chain } from './chain-9da1e6b6.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, }: {