@wagmi/core 0.10.3 → 0.10.5
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.
- package/dist/getContract-2443b222.d.ts +310 -0
- package/dist/index.d.ts +13 -123
- package/dist/internal/index.d.ts +1 -1
- package/package.json +2 -2
- package/dist/contracts-cb512c51.d.ts +0 -199
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
import { Abi, ResolvedConfig, Address, AbiStateMutability, Narrow, ExtractAbiFunctionNames, AbiFunction, ExtractAbiFunction, AbiParametersToPrimitiveTypes, AbiParameterToPrimitiveType, AbiEvent, AbiParameter, ExtractAbiEventNames, ExtractAbiEvent } from 'abitype';
|
|
2
|
+
import { ethers, Signer, providers, Contract as Contract$2 } from 'ethers';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Count occurrences of {@link TType} in {@link TArray}
|
|
6
|
+
*
|
|
7
|
+
* @param TArray - Array to count occurrences in
|
|
8
|
+
* @param TType - Type to count occurrences of
|
|
9
|
+
* @returns Number of occurrences of {@link TType} in {@link TArray}
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* type Result = CountOccurrences<['foo', 'bar', 'foo'], 'foo'>
|
|
13
|
+
*/
|
|
14
|
+
type CountOccurrences<TArray extends readonly unknown[], TType> = FilterNever<[
|
|
15
|
+
...{
|
|
16
|
+
[K in keyof TArray]: TArray[K] extends TType ? TArray[K] : never;
|
|
17
|
+
}
|
|
18
|
+
]>['length'];
|
|
19
|
+
/**
|
|
20
|
+
* Removes all occurrences of `never` from {@link TArray}
|
|
21
|
+
*
|
|
22
|
+
* @param TArray - Array to filter
|
|
23
|
+
* @returns Array with `never` removed
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* type Result = FilterNever<[1, 2, never, 3, never, 4]>
|
|
27
|
+
*/
|
|
28
|
+
type FilterNever<TArray extends readonly unknown[]> = TArray['length'] extends 0 ? [] : TArray extends [infer THead, ...infer TRest] ? IsNever<THead> extends true ? FilterNever<TRest> : [THead, ...FilterNever<TRest>] : never;
|
|
29
|
+
/**
|
|
30
|
+
* Check if {@link T} is `never`
|
|
31
|
+
*
|
|
32
|
+
* @param T - Type to check
|
|
33
|
+
* @returns `true` if {@link T} is `never`, otherwise `false`
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* type Result = IsNever<'foo'>
|
|
37
|
+
*/
|
|
38
|
+
type IsNever<T> = [T] extends [never] ? true : false;
|
|
39
|
+
/**
|
|
40
|
+
* Checks if {@link T} is `unknown`
|
|
41
|
+
*
|
|
42
|
+
* @param T - Type to check
|
|
43
|
+
* @returns `true` if {@link T} is `unknown`, otherwise `false`
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* type Result = IsUnknown<unknown>
|
|
47
|
+
*/
|
|
48
|
+
type IsUnknown<T> = unknown extends T ? true : false;
|
|
49
|
+
/**
|
|
50
|
+
* Joins {@link Items} into string separated by {@link Separator}
|
|
51
|
+
*
|
|
52
|
+
* @param Items - Items to join
|
|
53
|
+
* @param Separator - Separator to use
|
|
54
|
+
* @returns Joined string
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* type Result = Join<['foo', 'bar'], '-'>
|
|
58
|
+
*/
|
|
59
|
+
type Join<Items extends string[], Separator extends string | number> = Items extends [infer First, ...infer Rest] ? First extends string ? Rest extends string[] ? Rest extends [] ? `${First}` : `${First}${Separator}${Join<Rest, Separator>}` : never : never : '';
|
|
60
|
+
/**
|
|
61
|
+
* Converts {@link Union} to intersection
|
|
62
|
+
*
|
|
63
|
+
* @param Union - Union to convert
|
|
64
|
+
* @returns Intersection of {@link Union}
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* type Result = UnionToIntersection<'foo' | 'bar'>
|
|
68
|
+
*/
|
|
69
|
+
type UnionToIntersection<Union> = (Union extends unknown ? (arg: Union) => unknown : never) extends (arg: infer R) => unknown ? R : never;
|
|
70
|
+
|
|
71
|
+
type Contract$1<TAbi extends Abi | readonly unknown[] = Abi | readonly unknown[], TFunctionName extends string = string> = {
|
|
72
|
+
abi: TAbi;
|
|
73
|
+
functionName: TFunctionName;
|
|
74
|
+
};
|
|
75
|
+
type GetConfig<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string, TAbiStateMutability extends AbiStateMutability = AbiStateMutability> = {
|
|
76
|
+
/** Contract ABI */
|
|
77
|
+
abi: Narrow<TAbi>;
|
|
78
|
+
/** Contract address */
|
|
79
|
+
address: Address;
|
|
80
|
+
/** Function to invoke on the contract */
|
|
81
|
+
functionName: GetFunctionName<TAbi, TFunctionName, TAbiStateMutability>;
|
|
82
|
+
} & GetArgs<TAbi, TFunctionName>;
|
|
83
|
+
type GetFunctionName<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;
|
|
84
|
+
type GetArgs<TAbi extends Abi | readonly unknown[], TFunctionName extends string, TAbiFunction extends AbiFunction & {
|
|
85
|
+
type: 'function';
|
|
86
|
+
} = TAbi extends Abi ? ExtractAbiFunction<TAbi, TFunctionName> : AbiFunction & {
|
|
87
|
+
type: 'function';
|
|
88
|
+
}, TArgs = AbiParametersToPrimitiveTypes<TAbiFunction['inputs']>, FailedToParseArgs = ([TArgs] extends [never] ? true : false) | (readonly unknown[] extends TArgs ? true : false)> = true extends FailedToParseArgs ? {
|
|
89
|
+
/**
|
|
90
|
+
* Arguments to pass contract method
|
|
91
|
+
*
|
|
92
|
+
* Use a [const assertion](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html#const-assertions) on {@link abi} for type inference.
|
|
93
|
+
*/
|
|
94
|
+
args?: readonly unknown[];
|
|
95
|
+
} : TArgs extends readonly [] ? {
|
|
96
|
+
args?: never;
|
|
97
|
+
} : {
|
|
98
|
+
/** Arguments to pass contract method */ args: TArgs;
|
|
99
|
+
};
|
|
100
|
+
type GetReturnType<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string, TAbiFunction extends AbiFunction & {
|
|
101
|
+
type: 'function';
|
|
102
|
+
} = TAbi extends Abi ? ExtractAbiFunction<TAbi, TFunctionName> : AbiFunction & {
|
|
103
|
+
type: 'function';
|
|
104
|
+
}, 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 & {
|
|
105
|
+
[Output in TAbiFunction['outputs'][number] as Output extends {
|
|
106
|
+
name: infer Name extends string;
|
|
107
|
+
} ? Name extends '' ? never : Name : never]: AbiParameterToPrimitiveType<Output>;
|
|
108
|
+
};
|
|
109
|
+
type MAXIMUM_DEPTH = 20;
|
|
110
|
+
/**
|
|
111
|
+
* ContractsConfig reducer recursively unwraps function arguments to infer/enforce type param
|
|
112
|
+
*/
|
|
113
|
+
type ContractsConfig<TContracts extends Contract$1[], TProperties extends Record<string, any> = object, Result extends any[] = [], Depth extends ReadonlyArray<number> = []> = Depth['length'] extends MAXIMUM_DEPTH ? (GetConfig & TProperties)[] : TContracts extends [] ? [] : TContracts extends [infer Head extends Contract$1] ? [
|
|
114
|
+
...Result,
|
|
115
|
+
GetConfig<Head['abi'], Head['functionName'], 'pure' | 'view'> & TProperties
|
|
116
|
+
] : TContracts extends [
|
|
117
|
+
infer Head extends Contract$1,
|
|
118
|
+
...infer Tail extends Contract$1[]
|
|
119
|
+
] ? ContractsConfig<[
|
|
120
|
+
...Tail
|
|
121
|
+
], TProperties, [
|
|
122
|
+
...Result,
|
|
123
|
+
GetConfig<Head['abi'], Head['functionName'], 'pure' | 'view'> & TProperties
|
|
124
|
+
], [
|
|
125
|
+
...Depth,
|
|
126
|
+
1
|
|
127
|
+
]> : unknown[] extends TContracts ? TContracts : TContracts extends GetConfig<infer TAbi, infer TFunctionName>[] ? (GetConfig<TAbi, TFunctionName> & TProperties)[] : (GetConfig & TProperties)[];
|
|
128
|
+
/**
|
|
129
|
+
* ContractsResult reducer recursively maps type param to results
|
|
130
|
+
*/
|
|
131
|
+
type ContractsResult<TContracts extends Contract$1[], Result extends any[] = [], Depth extends ReadonlyArray<number> = []> = Depth['length'] extends MAXIMUM_DEPTH ? GetReturnType[] : TContracts extends [] ? [] : TContracts extends [infer Head extends Contract$1] ? [...Result, GetReturnType<Head['abi'], Head['functionName']>] : TContracts extends [
|
|
132
|
+
infer Head extends Contract$1,
|
|
133
|
+
...infer Tail extends Contract$1[]
|
|
134
|
+
] ? ContractsResult<[
|
|
135
|
+
...Tail
|
|
136
|
+
], [
|
|
137
|
+
...Result,
|
|
138
|
+
GetReturnType<Head['abi'], Head['functionName']>
|
|
139
|
+
], [
|
|
140
|
+
...Depth,
|
|
141
|
+
1
|
|
142
|
+
]> : TContracts extends GetConfig<infer TAbi, infer TFunctionName>[] ? GetReturnType<TAbi, TFunctionName>[] : GetReturnType[];
|
|
143
|
+
/**
|
|
144
|
+
* Get name for {@link AbiFunction} or {@link AbiEvent}
|
|
145
|
+
*
|
|
146
|
+
* @param TAbiItem - {@link AbiFunction} or {@link AbiEvent}
|
|
147
|
+
* @param IsSignature - Whether to return the signature instead of the name
|
|
148
|
+
* @returns Name or signature of function or event
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* type Result = AbiItemName<{ type: 'function'; name: 'Foo'; … }>
|
|
152
|
+
*/
|
|
153
|
+
type AbiItemName<TAbiItem extends (AbiFunction & {
|
|
154
|
+
type: 'function';
|
|
155
|
+
}) | AbiEvent, IsSignature extends boolean = false> = IsSignature extends true ? TAbiItem['inputs'] extends infer TAbiParameters extends readonly AbiParameter[] ? `${TAbiItem['name']}(${Join<[
|
|
156
|
+
...{
|
|
157
|
+
[K in keyof TAbiParameters]: TAbiParameters[K]['type'];
|
|
158
|
+
}
|
|
159
|
+
], ','>})` : never : TAbiItem['name'];
|
|
160
|
+
/**
|
|
161
|
+
* Get overrides for {@link AbiStateMutability}
|
|
162
|
+
*
|
|
163
|
+
* @param TAbiStateMutability - {@link AbiStateMutability}
|
|
164
|
+
* @returns Overrides for {@link TAbiStateMutability}
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* type Result = GetOverridesForAbiStateMutability<'pure'>
|
|
168
|
+
*/
|
|
169
|
+
type GetOverridesForAbiStateMutability<TAbiStateMutability extends AbiStateMutability> = {
|
|
170
|
+
nonpayable: Overrides & {
|
|
171
|
+
from?: Address;
|
|
172
|
+
};
|
|
173
|
+
payable: PayableOverrides & {
|
|
174
|
+
from?: Address;
|
|
175
|
+
};
|
|
176
|
+
pure: CallOverrides;
|
|
177
|
+
view: CallOverrides;
|
|
178
|
+
}[TAbiStateMutability];
|
|
179
|
+
interface Overrides extends ethers.Overrides {
|
|
180
|
+
gasLimit?: ResolvedConfig['BigIntType'];
|
|
181
|
+
gasPrice?: ResolvedConfig['BigIntType'];
|
|
182
|
+
maxFeePerGas?: ResolvedConfig['BigIntType'];
|
|
183
|
+
maxPriorityFeePerGas?: ResolvedConfig['BigIntType'];
|
|
184
|
+
nonce?: ResolvedConfig['IntType'];
|
|
185
|
+
}
|
|
186
|
+
interface PayableOverrides extends Overrides {
|
|
187
|
+
value?: ResolvedConfig['IntType'] | ResolvedConfig['BigIntType'];
|
|
188
|
+
}
|
|
189
|
+
interface CallOverrides extends PayableOverrides {
|
|
190
|
+
blockTag?: ethers.CallOverrides['blockTag'];
|
|
191
|
+
from?: Address;
|
|
192
|
+
}
|
|
193
|
+
type Event<TAbiEvent extends AbiEvent> = Omit<ethers.Event, 'args' | 'event' | 'eventSignature'> & {
|
|
194
|
+
args: AbiParametersToPrimitiveTypes<TAbiEvent['inputs']>;
|
|
195
|
+
event: TAbiEvent['name'];
|
|
196
|
+
eventSignature: AbiItemName<TAbiEvent, true>;
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
type GetContractArgs<TAbi extends Abi | readonly unknown[] = Abi> = {
|
|
200
|
+
/** Contract address */
|
|
201
|
+
address: string;
|
|
202
|
+
/** Contract ABI */
|
|
203
|
+
abi: Narrow<TAbi>;
|
|
204
|
+
/** Signer or provider to attach to contract */
|
|
205
|
+
signerOrProvider?: Signer | providers.Provider;
|
|
206
|
+
};
|
|
207
|
+
type GetContractResult<TAbi = unknown> = TAbi extends Abi ? Contract<TAbi> & Contract$2 : Contract$2;
|
|
208
|
+
declare function getContract<TAbi extends Abi | readonly unknown[]>({ address, abi, signerOrProvider, }: GetContractArgs<TAbi>): GetContractResult<TAbi>;
|
|
209
|
+
type PropertyKeys = 'address' | 'attach' | 'connect' | 'deployed' | 'interface' | 'resolvedAddress';
|
|
210
|
+
type FunctionKeys = 'callStatic' | 'estimateGas' | 'functions' | 'populateTransaction';
|
|
211
|
+
type EventKeys = 'emit' | 'filters' | 'listenerCount' | 'listeners' | 'off' | 'on' | 'once' | 'queryFilter' | 'removeAllListeners' | 'removeListener';
|
|
212
|
+
type BaseContract<TContract extends Record<keyof Pick<Contract$2, PropertyKeys | FunctionKeys | EventKeys>, unknown>> = Omit<Contract$2, PropertyKeys | FunctionKeys | EventKeys> & TContract;
|
|
213
|
+
type InterfaceKeys = 'events' | 'functions';
|
|
214
|
+
type BaseInterface<Interface extends Record<keyof Pick<ethers.utils.Interface, InterfaceKeys>, unknown>> = Omit<ethers.utils.Interface, InterfaceKeys> & Interface;
|
|
215
|
+
type Contract<TAbi extends Abi, _Functions = Functions<TAbi>> = _Functions & BaseContract<{
|
|
216
|
+
address: Address;
|
|
217
|
+
resolvedAddress: Promise<Address>;
|
|
218
|
+
attach(addressOrName: Address | string): Contract<TAbi>;
|
|
219
|
+
connect(signerOrProvider: ethers.Signer | ethers.providers.Provider | string): Contract<TAbi>;
|
|
220
|
+
deployed(): Promise<Contract<TAbi>>;
|
|
221
|
+
interface: BaseInterface<{
|
|
222
|
+
events: InterfaceEvents<TAbi>;
|
|
223
|
+
functions: InterfaceFunctions<TAbi>;
|
|
224
|
+
}>;
|
|
225
|
+
callStatic: _Functions;
|
|
226
|
+
estimateGas: Functions<TAbi, {
|
|
227
|
+
ReturnType: ResolvedConfig['BigIntType'];
|
|
228
|
+
}>;
|
|
229
|
+
functions: Functions<TAbi, {
|
|
230
|
+
ReturnTypeAsArray: true;
|
|
231
|
+
}>;
|
|
232
|
+
populateTransaction: Functions<TAbi, {
|
|
233
|
+
ReturnType: ethers.PopulatedTransaction;
|
|
234
|
+
}>;
|
|
235
|
+
emit<TEventName extends ExtractAbiEventNames<TAbi> | ethers.EventFilter>(eventName: TEventName, ...args: AbiParametersToPrimitiveTypes<ExtractAbiEvent<TAbi, TEventName extends string ? TEventName : ExtractAbiEventNames<TAbi>>['inputs']> extends infer TArgs extends readonly unknown[] ? TArgs : never): boolean;
|
|
236
|
+
filters: Filters<TAbi>;
|
|
237
|
+
listenerCount(): number;
|
|
238
|
+
listenerCount<TEventName extends ExtractAbiEventNames<TAbi>>(eventName: TEventName): number;
|
|
239
|
+
listenerCount(eventFilter: ethers.EventFilter): number;
|
|
240
|
+
listeners(): Array<(...args: any[]) => void>;
|
|
241
|
+
listeners<TEventName extends ExtractAbiEventNames<TAbi>>(eventName: TEventName): Array<Listener<TAbi, TEventName>>;
|
|
242
|
+
listeners(eventFilter: ethers.EventFilter): Array<Listener<TAbi, ExtractAbiEventNames<TAbi>>>;
|
|
243
|
+
off: EventListener<TAbi>;
|
|
244
|
+
on: EventListener<TAbi>;
|
|
245
|
+
once: EventListener<TAbi>;
|
|
246
|
+
queryFilter<TEventName extends ExtractAbiEventNames<TAbi>>(event: TEventName, fromBlockOrBlockhash?: string | number, toBlock?: string | number): Promise<Array<ethers.Event>>;
|
|
247
|
+
queryFilter(eventFilter: ethers.EventFilter, fromBlockOrBlockhash?: string | number, toBlock?: string | number): Promise<Array<ethers.Event>>;
|
|
248
|
+
removeAllListeners(eventName?: ExtractAbiEventNames<TAbi>): Contract<TAbi>;
|
|
249
|
+
removeAllListeners(eventFilter: ethers.EventFilter): Contract<TAbi>;
|
|
250
|
+
removeListener: EventListener<TAbi>;
|
|
251
|
+
}>;
|
|
252
|
+
type Functions<TAbi extends Abi, Options extends {
|
|
253
|
+
ReturnType?: any;
|
|
254
|
+
ReturnTypeAsArray?: boolean;
|
|
255
|
+
} = {
|
|
256
|
+
ReturnTypeAsArray: false;
|
|
257
|
+
}> = UnionToIntersection<{
|
|
258
|
+
[K in keyof TAbi]: TAbi[K] extends infer TAbiFunction extends AbiFunction & {
|
|
259
|
+
type: 'function';
|
|
260
|
+
} ? {
|
|
261
|
+
[K in CountOccurrences<TAbi, {
|
|
262
|
+
name: TAbiFunction['name'];
|
|
263
|
+
}> extends 1 ? AbiItemName<TAbiFunction> : AbiItemName<TAbiFunction, true>]: (...args: [
|
|
264
|
+
...args: TAbiFunction['inputs'] extends infer TInputs extends readonly AbiParameter[] ? AbiParametersToPrimitiveTypes<TInputs> : never,
|
|
265
|
+
overrides?: GetOverridesForAbiStateMutability<TAbiFunction['stateMutability']>
|
|
266
|
+
]) => Promise<IsUnknown<Options['ReturnType']> extends true ? AbiFunctionReturnType<TAbiFunction> extends infer TAbiFunctionReturnType ? Options['ReturnTypeAsArray'] extends true ? [TAbiFunctionReturnType] : TAbiFunctionReturnType : never : Options['ReturnType']>;
|
|
267
|
+
} : never;
|
|
268
|
+
}[number]>;
|
|
269
|
+
type AbiFunctionReturnType<TAbiFunction extends AbiFunction & {
|
|
270
|
+
type: 'function';
|
|
271
|
+
}> = ({
|
|
272
|
+
payable: ethers.ContractTransaction;
|
|
273
|
+
nonpayable: ethers.ContractTransaction;
|
|
274
|
+
} & {
|
|
275
|
+
[_ in 'pure' | 'view']: TAbiFunction['outputs']['length'] extends infer TLength ? TLength extends 0 ? void : TLength extends 1 ? AbiParameterToPrimitiveType<TAbiFunction['outputs'][0]> : {
|
|
276
|
+
[Output in TAbiFunction['outputs'][number] as Output extends {
|
|
277
|
+
name: string;
|
|
278
|
+
} ? Output['name'] extends '' ? never : Output['name'] : never]: AbiParameterToPrimitiveType<Output>;
|
|
279
|
+
} & AbiParametersToPrimitiveTypes<TAbiFunction['outputs']> : never;
|
|
280
|
+
})[TAbiFunction['stateMutability']];
|
|
281
|
+
type InterfaceFunctions<TAbi extends Abi> = UnionToIntersection<{
|
|
282
|
+
[K in keyof TAbi]: TAbi[K] extends infer TAbiFunction extends AbiFunction & {
|
|
283
|
+
type: 'function';
|
|
284
|
+
} ? {
|
|
285
|
+
[K in AbiItemName<TAbiFunction, true>]: ethers.utils.FunctionFragment;
|
|
286
|
+
} : never;
|
|
287
|
+
}[number]>;
|
|
288
|
+
type InterfaceEvents<TAbi extends Abi> = UnionToIntersection<{
|
|
289
|
+
[K in keyof TAbi]: TAbi[K] extends infer TAbiEvent extends AbiEvent ? {
|
|
290
|
+
[K in AbiItemName<TAbiEvent, true>]: ethers.utils.EventFragment;
|
|
291
|
+
} : never;
|
|
292
|
+
}[number]>;
|
|
293
|
+
interface EventListener<TAbi extends Abi> {
|
|
294
|
+
<TEventName extends ExtractAbiEventNames<TAbi>>(eventName: TEventName, listener: Listener<TAbi, TEventName>): Contract<TAbi>;
|
|
295
|
+
(eventFilter: ethers.EventFilter, listener: Listener<TAbi, ExtractAbiEventNames<TAbi>>): Contract<TAbi>;
|
|
296
|
+
}
|
|
297
|
+
type Listener<TAbi extends Abi, TEventName extends string, TAbiEvent extends AbiEvent = ExtractAbiEvent<TAbi, TEventName>> = AbiParametersToPrimitiveTypes<TAbiEvent['inputs']> extends infer TArgs extends readonly unknown[] ? (...args: [...args: TArgs, event: Event<TAbiEvent>]) => void : never;
|
|
298
|
+
type Filters<TAbi extends Abi> = UnionToIntersection<{
|
|
299
|
+
[K in keyof TAbi]: TAbi[K] extends infer TAbiEvent extends AbiEvent ? {
|
|
300
|
+
[K in CountOccurrences<TAbi, {
|
|
301
|
+
name: TAbiEvent['name'];
|
|
302
|
+
}> extends 1 ? AbiItemName<TAbiEvent> : AbiItemName<TAbiEvent, true>]: (...args: TAbiEvent['inputs'] extends infer TAbiParameters extends readonly (AbiParameter & {
|
|
303
|
+
indexed?: boolean;
|
|
304
|
+
})[] ? {
|
|
305
|
+
[K in keyof TAbiParameters]: TAbiParameters[K]['indexed'] extends true ? AbiParameterToPrimitiveType<TAbiParameters[K]> | null : null;
|
|
306
|
+
} : never) => ethers.EventFilter;
|
|
307
|
+
} : never;
|
|
308
|
+
}[number]>;
|
|
309
|
+
|
|
310
|
+
export { Contract$1 as C, EventListener as E, GetConfig as G, Overrides as O, PayableOverrides as P, GetOverridesForAbiStateMutability as a, ContractsConfig as b, ContractsResult as c, GetReturnType as d, GetFunctionName as e, GetArgs as f, getContract as g, GetContractArgs as h, GetContractResult as i, CallOverrides as j };
|
package/dist/index.d.ts
CHANGED
|
@@ -6,10 +6,11 @@ import { Connector, ConnectorData } from '@wagmi/connectors';
|
|
|
6
6
|
export { Connector, ConnectorData, ConnectorEvents, Ethereum } from '@wagmi/connectors';
|
|
7
7
|
import { P as Provider, W as WebSocketProvider, U as Unit, S as Signer, H as Hash, C as ChainProviderFn, a as ProviderWithFallbackConfig } from './index-35b6525c.js';
|
|
8
8
|
export { C as ChainProviderFn, F as FallbackProviderConfig, H as Hash, P as Provider, a as ProviderWithFallbackConfig, S as Signer, U as Unit, W as WebSocketProvider, u as units } from './index-35b6525c.js';
|
|
9
|
-
import { Address, ResolvedConfig, TypedData, TypedDataToPrimitiveTypes, TypedDataDomain, Narrow, Abi, ExtractAbiFunction, ExtractAbiEventNames,
|
|
9
|
+
import { Address, ResolvedConfig, TypedData, TypedDataToPrimitiveTypes, TypedDataDomain, Narrow, Abi, ExtractAbiFunction, ExtractAbiEventNames, AbiEvent, ExtractAbiEvent, AbiParametersToPrimitiveTypes, ExtractAbiFunctionNames } from 'abitype';
|
|
10
10
|
export { Address } from 'abitype';
|
|
11
|
-
import { PopulatedTransaction,
|
|
12
|
-
import { G as GetConfig, a as GetOverridesForAbiStateMutability,
|
|
11
|
+
import { PopulatedTransaction, providers, Transaction, ContractInterface } from 'ethers';
|
|
12
|
+
import { G as GetConfig, a as GetOverridesForAbiStateMutability, C as Contract, b as ContractsConfig, c as ContractsResult, d as GetReturnType, e as GetFunctionName, f as GetArgs } from './getContract-2443b222.js';
|
|
13
|
+
export { h as GetContractArgs, i as GetContractResult, g as getContract } from './getContract-2443b222.js';
|
|
13
14
|
import { TransactionResponse } from '@ethersproject/providers';
|
|
14
15
|
export { InjectedConnector, InjectedConnectorOptions } from '@wagmi/connectors/injected';
|
|
15
16
|
import * as abitype_dist_abi_78346466 from 'abitype/dist/abi-78346466';
|
|
@@ -1092,118 +1093,7 @@ type PrepareWriteContractResult<TAbi extends Abi | readonly unknown[] = Abi, TFu
|
|
|
1092
1093
|
*/
|
|
1093
1094
|
declare function prepareWriteContract<TAbi extends Abi | readonly unknown[], TFunctionName extends string, TChainId extends number, TSigner extends Signer = Signer>({ abi, address, chainId, functionName, overrides, signer: signer_, ...config }: PrepareWriteContractConfig<TAbi, TFunctionName, TChainId, TSigner>): Promise<PrepareWriteContractResult<TAbi, TFunctionName, TChainId>>;
|
|
1094
1095
|
|
|
1095
|
-
type
|
|
1096
|
-
/** Contract address */
|
|
1097
|
-
address: string;
|
|
1098
|
-
/** Contract ABI */
|
|
1099
|
-
abi: Narrow<TAbi>;
|
|
1100
|
-
/** Signer or provider to attach to contract */
|
|
1101
|
-
signerOrProvider?: Signer$1 | providers.Provider;
|
|
1102
|
-
};
|
|
1103
|
-
type GetContractResult<TAbi = unknown> = TAbi extends Abi ? Contract<TAbi> & Contract$1 : Contract$1;
|
|
1104
|
-
declare function getContract<TAbi extends Abi | readonly unknown[]>({ address, abi, signerOrProvider, }: GetContractArgs<TAbi>): GetContractResult<TAbi>;
|
|
1105
|
-
type PropertyKeys = 'address' | 'attach' | 'connect' | 'deployed' | 'interface' | 'resolvedAddress';
|
|
1106
|
-
type FunctionKeys = 'callStatic' | 'estimateGas' | 'functions' | 'populateTransaction';
|
|
1107
|
-
type EventKeys = 'emit' | 'filters' | 'listenerCount' | 'listeners' | 'off' | 'on' | 'once' | 'queryFilter' | 'removeAllListeners' | 'removeListener';
|
|
1108
|
-
type BaseContract<TContract extends Record<keyof Pick<Contract$1, PropertyKeys | FunctionKeys | EventKeys>, unknown>> = Omit<Contract$1, PropertyKeys | FunctionKeys | EventKeys> & TContract;
|
|
1109
|
-
type InterfaceKeys = 'events' | 'functions';
|
|
1110
|
-
type BaseInterface<Interface extends Record<keyof Pick<ethers.utils.Interface, InterfaceKeys>, unknown>> = Omit<ethers.utils.Interface, InterfaceKeys> & Interface;
|
|
1111
|
-
type Contract<TAbi extends Abi, _Functions = Functions<TAbi>> = _Functions & BaseContract<{
|
|
1112
|
-
address: Address;
|
|
1113
|
-
resolvedAddress: Promise<Address>;
|
|
1114
|
-
attach(addressOrName: Address | string): Contract<TAbi>;
|
|
1115
|
-
connect(signerOrProvider: ethers.Signer | ethers.providers.Provider | string): Contract<TAbi>;
|
|
1116
|
-
deployed(): Promise<Contract<TAbi>>;
|
|
1117
|
-
interface: BaseInterface<{
|
|
1118
|
-
events: InterfaceEvents<TAbi>;
|
|
1119
|
-
functions: InterfaceFunctions<TAbi>;
|
|
1120
|
-
}>;
|
|
1121
|
-
callStatic: _Functions;
|
|
1122
|
-
estimateGas: Functions<TAbi, {
|
|
1123
|
-
ReturnType: ResolvedConfig['BigIntType'];
|
|
1124
|
-
}>;
|
|
1125
|
-
functions: Functions<TAbi, {
|
|
1126
|
-
ReturnTypeAsArray: true;
|
|
1127
|
-
}>;
|
|
1128
|
-
populateTransaction: Functions<TAbi, {
|
|
1129
|
-
ReturnType: ethers.PopulatedTransaction;
|
|
1130
|
-
}>;
|
|
1131
|
-
emit<TEventName extends ExtractAbiEventNames<TAbi> | ethers.EventFilter>(eventName: TEventName, ...args: AbiParametersToPrimitiveTypes<ExtractAbiEvent<TAbi, TEventName extends string ? TEventName : ExtractAbiEventNames<TAbi>>['inputs']> extends infer TArgs extends readonly unknown[] ? TArgs : never): boolean;
|
|
1132
|
-
filters: Filters<TAbi>;
|
|
1133
|
-
listenerCount(): number;
|
|
1134
|
-
listenerCount<TEventName extends ExtractAbiEventNames<TAbi>>(eventName: TEventName): number;
|
|
1135
|
-
listenerCount(eventFilter: ethers.EventFilter): number;
|
|
1136
|
-
listeners(): Array<(...args: any[]) => void>;
|
|
1137
|
-
listeners<TEventName extends ExtractAbiEventNames<TAbi>>(eventName: TEventName): Array<Listener<TAbi, TEventName>>;
|
|
1138
|
-
listeners(eventFilter: ethers.EventFilter): Array<Listener<TAbi, ExtractAbiEventNames<TAbi>>>;
|
|
1139
|
-
off: EventListener<TAbi>;
|
|
1140
|
-
on: EventListener<TAbi>;
|
|
1141
|
-
once: EventListener<TAbi>;
|
|
1142
|
-
queryFilter<TEventName extends ExtractAbiEventNames<TAbi>>(event: TEventName, fromBlockOrBlockhash?: string | number, toBlock?: string | number): Promise<Array<ethers.Event>>;
|
|
1143
|
-
queryFilter(eventFilter: ethers.EventFilter, fromBlockOrBlockhash?: string | number, toBlock?: string | number): Promise<Array<ethers.Event>>;
|
|
1144
|
-
removeAllListeners(eventName?: ExtractAbiEventNames<TAbi>): Contract<TAbi>;
|
|
1145
|
-
removeAllListeners(eventFilter: ethers.EventFilter): Contract<TAbi>;
|
|
1146
|
-
removeListener: EventListener<TAbi>;
|
|
1147
|
-
}>;
|
|
1148
|
-
type Functions<TAbi extends Abi, Options extends {
|
|
1149
|
-
ReturnType?: any;
|
|
1150
|
-
ReturnTypeAsArray?: boolean;
|
|
1151
|
-
} = {
|
|
1152
|
-
ReturnTypeAsArray: false;
|
|
1153
|
-
}> = UnionToIntersection<{
|
|
1154
|
-
[K in keyof TAbi]: TAbi[K] extends infer TAbiFunction extends AbiFunction & {
|
|
1155
|
-
type: 'function';
|
|
1156
|
-
} ? {
|
|
1157
|
-
[K in CountOccurrences<TAbi, {
|
|
1158
|
-
name: TAbiFunction['name'];
|
|
1159
|
-
}> extends 1 ? AbiItemName<TAbiFunction> : AbiItemName<TAbiFunction, true>]: (...args: [
|
|
1160
|
-
...args: TAbiFunction['inputs'] extends infer TInputs extends readonly AbiParameter[] ? AbiParametersToPrimitiveTypes<TInputs> : never,
|
|
1161
|
-
overrides?: GetOverridesForAbiStateMutability<TAbiFunction['stateMutability']>
|
|
1162
|
-
]) => Promise<IsUnknown<Options['ReturnType']> extends true ? AbiFunctionReturnType<TAbiFunction> extends infer TAbiFunctionReturnType ? Options['ReturnTypeAsArray'] extends true ? [TAbiFunctionReturnType] : TAbiFunctionReturnType : never : Options['ReturnType']>;
|
|
1163
|
-
} : never;
|
|
1164
|
-
}[number]>;
|
|
1165
|
-
type AbiFunctionReturnType<TAbiFunction extends AbiFunction & {
|
|
1166
|
-
type: 'function';
|
|
1167
|
-
}> = ({
|
|
1168
|
-
payable: ethers.ContractTransaction;
|
|
1169
|
-
nonpayable: ethers.ContractTransaction;
|
|
1170
|
-
} & {
|
|
1171
|
-
[_ in 'pure' | 'view']: TAbiFunction['outputs']['length'] extends infer TLength ? TLength extends 0 ? void : TLength extends 1 ? AbiParameterToPrimitiveType<TAbiFunction['outputs'][0]> : {
|
|
1172
|
-
[Output in TAbiFunction['outputs'][number] as Output extends {
|
|
1173
|
-
name: string;
|
|
1174
|
-
} ? Output['name'] extends '' ? never : Output['name'] : never]: AbiParameterToPrimitiveType<Output>;
|
|
1175
|
-
} & AbiParametersToPrimitiveTypes<TAbiFunction['outputs']> : never;
|
|
1176
|
-
})[TAbiFunction['stateMutability']];
|
|
1177
|
-
type InterfaceFunctions<TAbi extends Abi> = UnionToIntersection<{
|
|
1178
|
-
[K in keyof TAbi]: TAbi[K] extends infer TAbiFunction extends AbiFunction & {
|
|
1179
|
-
type: 'function';
|
|
1180
|
-
} ? {
|
|
1181
|
-
[K in AbiItemName<TAbiFunction, true>]: ethers.utils.FunctionFragment;
|
|
1182
|
-
} : never;
|
|
1183
|
-
}[number]>;
|
|
1184
|
-
type InterfaceEvents<TAbi extends Abi> = UnionToIntersection<{
|
|
1185
|
-
[K in keyof TAbi]: TAbi[K] extends infer TAbiEvent extends AbiEvent ? {
|
|
1186
|
-
[K in AbiItemName<TAbiEvent, true>]: ethers.utils.EventFragment;
|
|
1187
|
-
} : never;
|
|
1188
|
-
}[number]>;
|
|
1189
|
-
interface EventListener<TAbi extends Abi> {
|
|
1190
|
-
<TEventName extends ExtractAbiEventNames<TAbi>>(eventName: TEventName, listener: Listener<TAbi, TEventName>): Contract<TAbi>;
|
|
1191
|
-
(eventFilter: ethers.EventFilter, listener: Listener<TAbi, ExtractAbiEventNames<TAbi>>): Contract<TAbi>;
|
|
1192
|
-
}
|
|
1193
|
-
type Listener<TAbi extends Abi, TEventName extends string, TAbiEvent extends AbiEvent = ExtractAbiEvent<TAbi, TEventName>> = AbiParametersToPrimitiveTypes<TAbiEvent['inputs']> extends infer TArgs extends readonly unknown[] ? (...args: [...args: TArgs, event: Event<TAbiEvent>]) => void : never;
|
|
1194
|
-
type Filters<TAbi extends Abi> = UnionToIntersection<{
|
|
1195
|
-
[K in keyof TAbi]: TAbi[K] extends infer TAbiEvent extends AbiEvent ? {
|
|
1196
|
-
[K in CountOccurrences<TAbi, {
|
|
1197
|
-
name: TAbiEvent['name'];
|
|
1198
|
-
}> extends 1 ? AbiItemName<TAbiEvent> : AbiItemName<TAbiEvent, true>]: (...args: TAbiEvent['inputs'] extends infer TAbiParameters extends readonly (AbiParameter & {
|
|
1199
|
-
indexed?: boolean;
|
|
1200
|
-
})[] ? {
|
|
1201
|
-
[K in keyof TAbiParameters]: TAbiParameters[K]['indexed'] extends true ? AbiParameterToPrimitiveType<TAbiParameters[K]> | null : null;
|
|
1202
|
-
} : never) => ethers.EventFilter;
|
|
1203
|
-
} : never;
|
|
1204
|
-
}[number]>;
|
|
1205
|
-
|
|
1206
|
-
type MulticallConfig<TContracts extends Contract$2[]> = {
|
|
1096
|
+
type MulticallConfig<TContracts extends Contract[]> = {
|
|
1207
1097
|
/** Failures in the multicall will fail silently */
|
|
1208
1098
|
allowFailure?: boolean;
|
|
1209
1099
|
/** Chain id to use for provider */
|
|
@@ -1213,7 +1103,7 @@ type MulticallConfig<TContracts extends Contract$2[]> = {
|
|
|
1213
1103
|
/** Call overrides */
|
|
1214
1104
|
overrides?: GetOverridesForAbiStateMutability<'pure' | 'view'>;
|
|
1215
1105
|
};
|
|
1216
|
-
type MulticallResult<TContracts extends Contract
|
|
1106
|
+
type MulticallResult<TContracts extends Contract[]> = ContractsResult<TContracts>;
|
|
1217
1107
|
declare function multicall<TAbi extends Abi | readonly unknown[], TFunctionName extends string, TContracts extends {
|
|
1218
1108
|
abi: TAbi;
|
|
1219
1109
|
functionName: TFunctionName;
|
|
@@ -1229,7 +1119,7 @@ type ReadContractConfig<TAbi extends Abi | readonly unknown[] = Abi, TFunctionNa
|
|
|
1229
1119
|
type ReadContractResult<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string> = GetReturnType<TAbi, TFunctionName>;
|
|
1230
1120
|
declare function readContract<TAbi extends Abi | readonly unknown[], TFunctionName extends string>({ address, chainId, abi, functionName, overrides, ...config }: ReadContractConfig<TAbi, TFunctionName>): Promise<ReadContractResult<TAbi, TFunctionName>>;
|
|
1231
1121
|
|
|
1232
|
-
type ReadContractsConfig<TContracts extends Contract
|
|
1122
|
+
type ReadContractsConfig<TContracts extends Contract[]> = {
|
|
1233
1123
|
/** Failures in the multicall will fail silently */
|
|
1234
1124
|
allowFailure?: boolean;
|
|
1235
1125
|
/** Contracts to query */
|
|
@@ -1242,7 +1132,7 @@ type ReadContractsConfig<TContracts extends Contract$2[]> = {
|
|
|
1242
1132
|
/** Call overrides */
|
|
1243
1133
|
overrides?: GetOverridesForAbiStateMutability<'pure' | 'view'>;
|
|
1244
1134
|
};
|
|
1245
|
-
type ReadContractsResult<TContracts extends Contract
|
|
1135
|
+
type ReadContractsResult<TContracts extends Contract[]> = ContractsResult<TContracts>;
|
|
1246
1136
|
declare function readContracts<TAbi extends Abi | readonly unknown[], TFunctionName extends string, TContracts extends {
|
|
1247
1137
|
abi: TAbi;
|
|
1248
1138
|
functionName: TFunctionName;
|
|
@@ -1265,10 +1155,10 @@ declare function watchContractEvent<TAbi extends Abi | readonly unknown[], TEven
|
|
|
1265
1155
|
type GetEventName<TAbi extends Abi | readonly unknown[] = Abi, TEventName extends string = string> = TAbi extends Abi ? ExtractAbiEventNames<TAbi> extends infer AbiEventNames ? AbiEventNames | (TEventName extends AbiEventNames ? TEventName : never) | (Abi extends TAbi ? string : never) : never : TEventName;
|
|
1266
1156
|
type GetListener<TAbi extends Abi | readonly unknown[], TEventName extends string, TAbiEvent extends AbiEvent = TAbi extends Abi ? ExtractAbiEvent<TAbi, TEventName> : AbiEvent, TArgs = AbiParametersToPrimitiveTypes<TAbiEvent['inputs']>, FailedToParseArgs = ([TArgs] extends [never] ? true : false) | (readonly unknown[] extends TArgs ? true : false)> = true extends FailedToParseArgs ? (...args: readonly unknown[]) => void : (...args: TArgs extends readonly unknown[] ? TArgs : readonly unknown[]) => void;
|
|
1267
1157
|
|
|
1268
|
-
type WatchMulticallConfig<TContracts extends Contract
|
|
1158
|
+
type WatchMulticallConfig<TContracts extends Contract[]> = MulticallConfig<TContracts> & {
|
|
1269
1159
|
listenToBlock?: boolean;
|
|
1270
1160
|
};
|
|
1271
|
-
type WatchMulticallCallback<TContracts extends Contract
|
|
1161
|
+
type WatchMulticallCallback<TContracts extends Contract[]> = (results: MulticallResult<TContracts>) => void;
|
|
1272
1162
|
declare function watchMulticall<TAbi extends Abi | readonly unknown[], TFunctionName extends string, TContracts extends {
|
|
1273
1163
|
abi: TAbi;
|
|
1274
1164
|
functionName: TFunctionName;
|
|
@@ -1280,10 +1170,10 @@ type WatchReadContractConfig<TAbi extends Abi | readonly unknown[] = Abi, TFunct
|
|
|
1280
1170
|
type WatchReadContractCallback<TAbi extends Abi | readonly unknown[], TFunctionName extends string> = (result: ReadContractResult<TAbi, TFunctionName>) => void;
|
|
1281
1171
|
declare function watchReadContract<TAbi extends Abi | readonly unknown[], TFunctionName extends TAbi extends Abi ? ExtractAbiFunctionNames<TAbi, 'view' | 'pure'> : string>(config: WatchReadContractConfig<TAbi, TFunctionName>, callback: WatchReadContractCallback<TAbi, TFunctionName>): () => void;
|
|
1282
1172
|
|
|
1283
|
-
type WatchReadContractsConfig<TContracts extends Contract
|
|
1173
|
+
type WatchReadContractsConfig<TContracts extends Contract[]> = ReadContractsConfig<TContracts> & {
|
|
1284
1174
|
listenToBlock?: boolean;
|
|
1285
1175
|
};
|
|
1286
|
-
type WatchReadContractsCallback<TContracts extends Contract
|
|
1176
|
+
type WatchReadContractsCallback<TContracts extends Contract[]> = (results: ReadContractsResult<TContracts>) => void;
|
|
1287
1177
|
declare function watchReadContracts<TAbi extends Abi | readonly unknown[], TFunctionName extends string, TContracts extends {
|
|
1288
1178
|
abi: TAbi;
|
|
1289
1179
|
functionName: TFunctionName;
|
|
@@ -1766,4 +1656,4 @@ type CircularReplacer = (key: string, value: any, referenceKey: string) => any;
|
|
|
1766
1656
|
*/
|
|
1767
1657
|
declare function serialize(value: any, replacer?: StandardReplacer | null | undefined, indent?: number | null | undefined, circularReplacer?: CircularReplacer | null | undefined): string;
|
|
1768
1658
|
|
|
1769
|
-
export { AddChainError, ChainDoesNotSupportMulticallError, ChainMismatchError, ChainNotConfiguredError, Client, ClientConfig, ConfigureChainsConfig, ConnectArgs, ConnectResult, ConnectorAlreadyConnectedError, ConnectorNotFoundError, ContractMethodDoesNotExistError, ContractMethodNoResultError, ContractMethodRevertedError, ContractResultDecodeError, FetchBalanceArgs, FetchBalanceResult, FetchBlockNumberArgs, FetchBlockNumberResult, FetchEnsAddressArgs, FetchEnsAddressResult, FetchEnsAvatarArgs, FetchEnsAvatarResult, FetchEnsNameArgs, FetchEnsNameResult, FetchEnsResolverArgs, FetchEnsResolverResult, FetchFeeDataArgs, FetchFeeDataResult, FetchSignerArgs, FetchSignerResult, FetchTokenArgs, FetchTokenResult, FetchTransactionArgs, FetchTransactionResult, GetAccountResult,
|
|
1659
|
+
export { AddChainError, ChainDoesNotSupportMulticallError, ChainMismatchError, ChainNotConfiguredError, Client, ClientConfig, ConfigureChainsConfig, ConnectArgs, ConnectResult, ConnectorAlreadyConnectedError, ConnectorNotFoundError, ContractMethodDoesNotExistError, ContractMethodNoResultError, ContractMethodRevertedError, ContractResultDecodeError, FetchBalanceArgs, FetchBalanceResult, FetchBlockNumberArgs, FetchBlockNumberResult, FetchEnsAddressArgs, FetchEnsAddressResult, FetchEnsAvatarArgs, FetchEnsAvatarResult, FetchEnsNameArgs, FetchEnsNameResult, FetchEnsResolverArgs, FetchEnsResolverResult, FetchFeeDataArgs, FetchFeeDataResult, FetchSignerArgs, FetchSignerResult, FetchTokenArgs, FetchTokenResult, FetchTransactionArgs, FetchTransactionResult, GetAccountResult, GetNetworkResult, GetProviderArgs, GetProviderResult, GetWebSocketProviderArgs, GetWebSocketProviderResult, MulticallConfig, MulticallResult, PrepareSendTransactionArgs, PrepareSendTransactionResult, PrepareWriteContractConfig, PrepareWriteContractResult, ProviderChainsNotFound, ProviderRpcError, ReadContractConfig, ReadContractResult, ReadContractsConfig, ReadContractsResult, ResourceUnavailableError, RpcError, SendTransactionArgs, SendTransactionPreparedRequest, SendTransactionResult, SendTransactionUnpreparedRequest, SignMessageArgs, SignMessageResult, SignTypedDataArgs, SignTypedDataResult, ClientStorage as Storage, SwitchChainError, SwitchChainNotSupportedError, SwitchNetworkArgs, SwitchNetworkResult, UserRejectedRequestError, WaitForTransactionArgs, WaitForTransactionResult, WatchAccountCallback, WatchBlockNumberArgs, WatchBlockNumberCallback, WatchContractEventCallback, WatchContractEventConfig, WatchMulticallCallback, WatchMulticallConfig, WatchNetworkCallback, WatchPendingTransactionsArgs, WatchPendingTransactionsCallback, WatchPendingTransactionsResult, WatchProviderCallback, WatchReadContractCallback, WatchReadContractConfig, WatchReadContractsCallback, WatchReadContractsConfig, WatchSignerCallback, WatchWebSocketProviderCallback, WriteContractArgs, WriteContractMode, WriteContractPreparedArgs, WriteContractResult, WriteContractUnpreparedArgs, configureChains, connect, createClient, createStorage, deepEqual, deserialize, disconnect, erc20ABI, erc4626ABI, erc721ABI, fetchBalance, fetchBlockNumber, fetchEnsAddress, fetchEnsAvatar, fetchEnsName, fetchEnsResolver, fetchFeeData, fetchSigner, fetchToken, fetchTransaction, getAccount, getClient, getNetwork, getProvider, getWebSocketProvider, minimizeContractInterface, multicall, noopStorage, normalizeChainId, parseContractResult, prepareSendTransaction, prepareWriteContract, readContract, readContracts, sendTransaction, serialize, signMessage, signTypedData, switchNetwork, waitForTransaction, watchAccount, watchBlockNumber, watchContractEvent, watchMulticall, watchNetwork, watchPendingTransactions, watchProvider, watchReadContract, watchReadContracts, watchSigner, watchWebSocketProvider, writeContract };
|
package/dist/internal/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { j as CallOverrides, C as Contract, b as ContractsConfig, E as EventListener, O as Overrides, P as PayableOverrides } from '../getContract-2443b222.js';
|
|
2
2
|
import '../index-35b6525c.js';
|
|
3
3
|
import 'abitype';
|
|
4
4
|
import 'ethers';
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@wagmi/core",
|
|
3
3
|
"description": "Vanilla JS library for Ethereum",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"version": "0.10.
|
|
5
|
+
"version": "0.10.5",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "https://github.com/wagmi-dev/wagmi.git",
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
"eventemitter3": "^4.0.7",
|
|
120
120
|
"zustand": "^4.3.1",
|
|
121
121
|
"@wagmi/chains": "0.2.14",
|
|
122
|
-
"@wagmi/connectors": "0.3.
|
|
122
|
+
"@wagmi/connectors": "0.3.7"
|
|
123
123
|
},
|
|
124
124
|
"devDependencies": {
|
|
125
125
|
"ethers": "^5.7.1"
|
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
import { Abi, ResolvedConfig, Address, AbiStateMutability, Narrow, ExtractAbiFunctionNames, AbiFunction, ExtractAbiFunction, AbiParametersToPrimitiveTypes, AbiParameterToPrimitiveType, AbiEvent, AbiParameter } from 'abitype';
|
|
2
|
-
import { ethers } from 'ethers';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Count occurrences of {@link TType} in {@link TArray}
|
|
6
|
-
*
|
|
7
|
-
* @param TArray - Array to count occurrences in
|
|
8
|
-
* @param TType - Type to count occurrences of
|
|
9
|
-
* @returns Number of occurrences of {@link TType} in {@link TArray}
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* type Result = CountOccurrences<['foo', 'bar', 'foo'], 'foo'>
|
|
13
|
-
*/
|
|
14
|
-
type CountOccurrences<TArray extends readonly unknown[], TType> = FilterNever<[
|
|
15
|
-
...{
|
|
16
|
-
[K in keyof TArray]: TArray[K] extends TType ? TArray[K] : never;
|
|
17
|
-
}
|
|
18
|
-
]>['length'];
|
|
19
|
-
/**
|
|
20
|
-
* Removes all occurrences of `never` from {@link TArray}
|
|
21
|
-
*
|
|
22
|
-
* @param TArray - Array to filter
|
|
23
|
-
* @returns Array with `never` removed
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* type Result = FilterNever<[1, 2, never, 3, never, 4]>
|
|
27
|
-
*/
|
|
28
|
-
type FilterNever<TArray extends readonly unknown[]> = TArray['length'] extends 0 ? [] : TArray extends [infer THead, ...infer TRest] ? IsNever<THead> extends true ? FilterNever<TRest> : [THead, ...FilterNever<TRest>] : never;
|
|
29
|
-
/**
|
|
30
|
-
* Check if {@link T} is `never`
|
|
31
|
-
*
|
|
32
|
-
* @param T - Type to check
|
|
33
|
-
* @returns `true` if {@link T} is `never`, otherwise `false`
|
|
34
|
-
*
|
|
35
|
-
* @example
|
|
36
|
-
* type Result = IsNever<'foo'>
|
|
37
|
-
*/
|
|
38
|
-
type IsNever<T> = [T] extends [never] ? true : false;
|
|
39
|
-
/**
|
|
40
|
-
* Checks if {@link T} is `unknown`
|
|
41
|
-
*
|
|
42
|
-
* @param T - Type to check
|
|
43
|
-
* @returns `true` if {@link T} is `unknown`, otherwise `false`
|
|
44
|
-
*
|
|
45
|
-
* @example
|
|
46
|
-
* type Result = IsUnknown<unknown>
|
|
47
|
-
*/
|
|
48
|
-
type IsUnknown<T> = unknown extends T ? true : false;
|
|
49
|
-
/**
|
|
50
|
-
* Joins {@link Items} into string separated by {@link Separator}
|
|
51
|
-
*
|
|
52
|
-
* @param Items - Items to join
|
|
53
|
-
* @param Separator - Separator to use
|
|
54
|
-
* @returns Joined string
|
|
55
|
-
*
|
|
56
|
-
* @example
|
|
57
|
-
* type Result = Join<['foo', 'bar'], '-'>
|
|
58
|
-
*/
|
|
59
|
-
type Join<Items extends string[], Separator extends string | number> = Items extends [infer First, ...infer Rest] ? First extends string ? Rest extends string[] ? Rest extends [] ? `${First}` : `${First}${Separator}${Join<Rest, Separator>}` : never : never : '';
|
|
60
|
-
/**
|
|
61
|
-
* Converts {@link Union} to intersection
|
|
62
|
-
*
|
|
63
|
-
* @param Union - Union to convert
|
|
64
|
-
* @returns Intersection of {@link Union}
|
|
65
|
-
*
|
|
66
|
-
* @example
|
|
67
|
-
* type Result = UnionToIntersection<'foo' | 'bar'>
|
|
68
|
-
*/
|
|
69
|
-
type UnionToIntersection<Union> = (Union extends unknown ? (arg: Union) => unknown : never) extends (arg: infer R) => unknown ? R : never;
|
|
70
|
-
|
|
71
|
-
type Contract<TAbi extends Abi | readonly unknown[] = Abi | readonly unknown[], TFunctionName extends string = string> = {
|
|
72
|
-
abi: TAbi;
|
|
73
|
-
functionName: TFunctionName;
|
|
74
|
-
};
|
|
75
|
-
type GetConfig<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string, TAbiStateMutability extends AbiStateMutability = AbiStateMutability> = {
|
|
76
|
-
/** Contract ABI */
|
|
77
|
-
abi: Narrow<TAbi>;
|
|
78
|
-
/** Contract address */
|
|
79
|
-
address: Address;
|
|
80
|
-
/** Function to invoke on the contract */
|
|
81
|
-
functionName: GetFunctionName<TAbi, TFunctionName, TAbiStateMutability>;
|
|
82
|
-
} & GetArgs<TAbi, TFunctionName>;
|
|
83
|
-
type GetFunctionName<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;
|
|
84
|
-
type GetArgs<TAbi extends Abi | readonly unknown[], TFunctionName extends string, TAbiFunction extends AbiFunction & {
|
|
85
|
-
type: 'function';
|
|
86
|
-
} = TAbi extends Abi ? ExtractAbiFunction<TAbi, TFunctionName> : AbiFunction & {
|
|
87
|
-
type: 'function';
|
|
88
|
-
}, TArgs = AbiParametersToPrimitiveTypes<TAbiFunction['inputs']>, FailedToParseArgs = ([TArgs] extends [never] ? true : false) | (readonly unknown[] extends TArgs ? true : false)> = true extends FailedToParseArgs ? {
|
|
89
|
-
/**
|
|
90
|
-
* Arguments to pass contract method
|
|
91
|
-
*
|
|
92
|
-
* Use a [const assertion](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html#const-assertions) on {@link abi} for type inference.
|
|
93
|
-
*/
|
|
94
|
-
args?: readonly unknown[];
|
|
95
|
-
} : TArgs extends readonly [] ? {
|
|
96
|
-
args?: never;
|
|
97
|
-
} : {
|
|
98
|
-
/** Arguments to pass contract method */ args: TArgs;
|
|
99
|
-
};
|
|
100
|
-
type GetReturnType<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string, TAbiFunction extends AbiFunction & {
|
|
101
|
-
type: 'function';
|
|
102
|
-
} = TAbi extends Abi ? ExtractAbiFunction<TAbi, TFunctionName> : AbiFunction & {
|
|
103
|
-
type: 'function';
|
|
104
|
-
}, 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 & {
|
|
105
|
-
[Output in TAbiFunction['outputs'][number] as Output extends {
|
|
106
|
-
name: infer Name extends string;
|
|
107
|
-
} ? Name extends '' ? never : Name : never]: AbiParameterToPrimitiveType<Output>;
|
|
108
|
-
};
|
|
109
|
-
type MAXIMUM_DEPTH = 20;
|
|
110
|
-
/**
|
|
111
|
-
* ContractsConfig reducer recursively unwraps function arguments to infer/enforce type param
|
|
112
|
-
*/
|
|
113
|
-
type ContractsConfig<TContracts extends Contract[], TProperties extends Record<string, any> = object, Result extends any[] = [], Depth extends ReadonlyArray<number> = []> = Depth['length'] extends MAXIMUM_DEPTH ? (GetConfig & TProperties)[] : TContracts extends [] ? [] : TContracts extends [infer Head extends Contract] ? [
|
|
114
|
-
...Result,
|
|
115
|
-
GetConfig<Head['abi'], Head['functionName'], 'pure' | 'view'> & TProperties
|
|
116
|
-
] : TContracts extends [
|
|
117
|
-
infer Head extends Contract,
|
|
118
|
-
...infer Tail extends Contract[]
|
|
119
|
-
] ? ContractsConfig<[
|
|
120
|
-
...Tail
|
|
121
|
-
], TProperties, [
|
|
122
|
-
...Result,
|
|
123
|
-
GetConfig<Head['abi'], Head['functionName'], 'pure' | 'view'> & TProperties
|
|
124
|
-
], [
|
|
125
|
-
...Depth,
|
|
126
|
-
1
|
|
127
|
-
]> : unknown[] extends TContracts ? TContracts : TContracts extends GetConfig<infer TAbi, infer TFunctionName>[] ? (GetConfig<TAbi, TFunctionName> & TProperties)[] : (GetConfig & TProperties)[];
|
|
128
|
-
/**
|
|
129
|
-
* ContractsResult reducer recursively maps type param to results
|
|
130
|
-
*/
|
|
131
|
-
type ContractsResult<TContracts extends Contract[], Result extends any[] = [], Depth extends ReadonlyArray<number> = []> = Depth['length'] extends MAXIMUM_DEPTH ? GetReturnType[] : TContracts extends [] ? [] : TContracts extends [infer Head extends Contract] ? [...Result, GetReturnType<Head['abi'], Head['functionName']>] : TContracts extends [
|
|
132
|
-
infer Head extends Contract,
|
|
133
|
-
...infer Tail extends Contract[]
|
|
134
|
-
] ? ContractsResult<[
|
|
135
|
-
...Tail
|
|
136
|
-
], [
|
|
137
|
-
...Result,
|
|
138
|
-
GetReturnType<Head['abi'], Head['functionName']>
|
|
139
|
-
], [
|
|
140
|
-
...Depth,
|
|
141
|
-
1
|
|
142
|
-
]> : TContracts extends GetConfig<infer TAbi, infer TFunctionName>[] ? GetReturnType<TAbi, TFunctionName>[] : GetReturnType[];
|
|
143
|
-
/**
|
|
144
|
-
* Get name for {@link AbiFunction} or {@link AbiEvent}
|
|
145
|
-
*
|
|
146
|
-
* @param TAbiItem - {@link AbiFunction} or {@link AbiEvent}
|
|
147
|
-
* @param IsSignature - Whether to return the signature instead of the name
|
|
148
|
-
* @returns Name or signature of function or event
|
|
149
|
-
*
|
|
150
|
-
* @example
|
|
151
|
-
* type Result = AbiItemName<{ type: 'function'; name: 'Foo'; … }>
|
|
152
|
-
*/
|
|
153
|
-
type AbiItemName<TAbiItem extends (AbiFunction & {
|
|
154
|
-
type: 'function';
|
|
155
|
-
}) | AbiEvent, IsSignature extends boolean = false> = IsSignature extends true ? TAbiItem['inputs'] extends infer TAbiParameters extends readonly AbiParameter[] ? `${TAbiItem['name']}(${Join<[
|
|
156
|
-
...{
|
|
157
|
-
[K in keyof TAbiParameters]: TAbiParameters[K]['type'];
|
|
158
|
-
}
|
|
159
|
-
], ','>})` : never : TAbiItem['name'];
|
|
160
|
-
/**
|
|
161
|
-
* Get overrides for {@link AbiStateMutability}
|
|
162
|
-
*
|
|
163
|
-
* @param TAbiStateMutability - {@link AbiStateMutability}
|
|
164
|
-
* @returns Overrides for {@link TAbiStateMutability}
|
|
165
|
-
*
|
|
166
|
-
* @example
|
|
167
|
-
* type Result = GetOverridesForAbiStateMutability<'pure'>
|
|
168
|
-
*/
|
|
169
|
-
type GetOverridesForAbiStateMutability<TAbiStateMutability extends AbiStateMutability> = {
|
|
170
|
-
nonpayable: Overrides & {
|
|
171
|
-
from?: Address;
|
|
172
|
-
};
|
|
173
|
-
payable: PayableOverrides & {
|
|
174
|
-
from?: Address;
|
|
175
|
-
};
|
|
176
|
-
pure: CallOverrides;
|
|
177
|
-
view: CallOverrides;
|
|
178
|
-
}[TAbiStateMutability];
|
|
179
|
-
interface Overrides extends ethers.Overrides {
|
|
180
|
-
gasLimit?: ResolvedConfig['BigIntType'];
|
|
181
|
-
gasPrice?: ResolvedConfig['BigIntType'];
|
|
182
|
-
maxFeePerGas?: ResolvedConfig['BigIntType'];
|
|
183
|
-
maxPriorityFeePerGas?: ResolvedConfig['BigIntType'];
|
|
184
|
-
nonce?: ResolvedConfig['IntType'];
|
|
185
|
-
}
|
|
186
|
-
interface PayableOverrides extends Overrides {
|
|
187
|
-
value?: ResolvedConfig['IntType'] | ResolvedConfig['BigIntType'];
|
|
188
|
-
}
|
|
189
|
-
interface CallOverrides extends PayableOverrides {
|
|
190
|
-
blockTag?: ethers.CallOverrides['blockTag'];
|
|
191
|
-
from?: Address;
|
|
192
|
-
}
|
|
193
|
-
type Event<TAbiEvent extends AbiEvent> = Omit<ethers.Event, 'args' | 'event' | 'eventSignature'> & {
|
|
194
|
-
args: AbiParametersToPrimitiveTypes<TAbiEvent['inputs']>;
|
|
195
|
-
event: TAbiEvent['name'];
|
|
196
|
-
eventSignature: AbiItemName<TAbiEvent, true>;
|
|
197
|
-
};
|
|
198
|
-
|
|
199
|
-
export { AbiItemName as A, CountOccurrences as C, Event as E, GetConfig as G, IsUnknown as I, Overrides as O, PayableOverrides as P, UnionToIntersection as U, GetOverridesForAbiStateMutability as a, Contract as b, ContractsConfig as c, ContractsResult as d, GetReturnType as e, GetFunctionName as f, GetArgs as g, CallOverrides as h };
|