@gitmyabi/merkleredeem 0.0.0-stage → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,3 +1,108 @@
1
- # Temporary Holding Version
1
+ # @gitmyabi/merkleredeem
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Auto-generated TypeScript type bindings for **MerkleRedeem**
4
+
5
+ - **Build ID**: `etherscan-merkleredeem-dbc3088d-1793764440865`
6
+ - **Build Number**: 1
7
+ - **Commit**: `c51ba44`
8
+ - **Branch**: `etherscan`
9
+ - **Target**: `ethers-v6`
10
+ - **Contracts**: 1
11
+
12
+ ## Installation
13
+
14
+ ```bash
15
+ npm install @gitmyabi/merkleredeem@1.0.1
16
+ ```
17
+
18
+ ## Usage
19
+
20
+ ### Class-based API (TypeChain-like)
21
+
22
+ ```typescript
23
+ import { createPublicClient, createWalletClient, http } from 'viem';
24
+ import { mainnet } from 'viem/chains';
25
+ import { YourContract } from '@gitmyabi/merkleredeem';
26
+
27
+ const publicClient = createPublicClient({ chain: mainnet, transport: http() });
28
+ const walletClient = createWalletClient({ chain: mainnet, transport: http() });
29
+
30
+ // Create contract instance
31
+ const contract = new YourContract('0x...', { publicClient, walletClient });
32
+
33
+ // Read functions - call directly like TypeChain!
34
+ const result = await contract.yourMethod(param1, param2);
35
+
36
+ // Write functions - also call directly!
37
+ const hash = await contract.transfer('0x...', 1000n);
38
+ ```
39
+
40
+ ### With viem directly
41
+
42
+ ```typescript
43
+ import { createPublicClient, http } from 'viem';
44
+ import { mainnet } from 'viem/chains';
45
+ import { YourContractAbi } from '@gitmyabi/merkleredeem';
46
+
47
+ const client = createPublicClient({
48
+ chain: mainnet,
49
+ transport: http(),
50
+ });
51
+
52
+ // Fully typed contract read
53
+ const result = await client.readContract({
54
+ address: '0x...',
55
+ abi: YourContractAbi,
56
+ functionName: 'yourMethod',
57
+ args: [param1, param2],
58
+ });
59
+
60
+ // Fully typed contract write
61
+ const hash = await client.writeContract({
62
+ address: '0x...',
63
+ abi: YourContractAbi,
64
+ functionName: 'yourMethod',
65
+ args: [param1, param2],
66
+ });
67
+ ```
68
+
69
+ ### With wagmi
70
+
71
+ ```typescript
72
+ import { useReadContract, useWriteContract } from 'wagmi';
73
+ import { YourContractAbi } from '@gitmyabi/merkleredeem';
74
+
75
+ function MyComponent() {
76
+ const { data } = useReadContract({
77
+ address: '0x...',
78
+ abi: YourContractAbi,
79
+ functionName: 'yourMethod',
80
+ args: [param1, param2],
81
+ });
82
+
83
+ const { writeContract } = useWriteContract();
84
+
85
+ const handleWrite = () => {
86
+ writeContract({
87
+ address: '0x...',
88
+ abi: YourContractAbi,
89
+ functionName: 'yourMethod',
90
+ args: [param1, param2],
91
+ });
92
+ };
93
+
94
+ return <button onClick={handleWrite}>Call Contract</button>;
95
+ }
96
+ ```
97
+
98
+ ## Type Safety
99
+
100
+ This package provides full TypeScript type safety for all contract methods, events, and parameters using viem's type system. All ABIs are exported as `const` assertions for maximum type inference.
101
+
102
+ ## Generated Contracts
103
+
104
+ This package includes type bindings for 1 contract(s) generated from ABI artifacts.
105
+
106
+ ## License
107
+
108
+ MIT
@@ -0,0 +1,563 @@
1
+ import type { Address, PublicClient, WalletClient } from 'viem';
2
+ /**
3
+ * MerkleRedeem.Claim struct type
4
+ */
5
+ export type MerkleRedeem_Claim = {
6
+ week: bigint;
7
+ balance: bigint;
8
+ merkleProof: `0x${string}`[];
9
+ };
10
+ /**
11
+ * MerkleRedeem_json ABI
12
+ *
13
+ * This ABI is typed using viem's type system for full type safety.
14
+ */
15
+ export declare const MerkleRedeem_jsonAbi: readonly [{
16
+ readonly inputs: readonly [{
17
+ readonly internalType: "address";
18
+ readonly name: "_token";
19
+ readonly type: "address";
20
+ }];
21
+ readonly stateMutability: "nonpayable";
22
+ readonly type: "constructor";
23
+ }, {
24
+ readonly anonymous: false;
25
+ readonly inputs: readonly [{
26
+ readonly indexed: false;
27
+ readonly internalType: "address";
28
+ readonly name: "_claimant";
29
+ readonly type: "address";
30
+ }, {
31
+ readonly indexed: false;
32
+ readonly internalType: "uint256";
33
+ readonly name: "_balance";
34
+ readonly type: "uint256";
35
+ }];
36
+ readonly name: "Claimed";
37
+ readonly type: "event";
38
+ }, {
39
+ readonly anonymous: false;
40
+ readonly inputs: readonly [{
41
+ readonly indexed: true;
42
+ readonly internalType: "address";
43
+ readonly name: "previousOwner";
44
+ readonly type: "address";
45
+ }, {
46
+ readonly indexed: true;
47
+ readonly internalType: "address";
48
+ readonly name: "newOwner";
49
+ readonly type: "address";
50
+ }];
51
+ readonly name: "OwnershipTransferred";
52
+ readonly type: "event";
53
+ }, {
54
+ readonly inputs: readonly [{
55
+ readonly internalType: "address";
56
+ readonly name: "_liquidityProvider";
57
+ readonly type: "address";
58
+ }, {
59
+ readonly internalType: "uint256";
60
+ readonly name: "_begin";
61
+ readonly type: "uint256";
62
+ }, {
63
+ readonly internalType: "uint256";
64
+ readonly name: "_end";
65
+ readonly type: "uint256";
66
+ }];
67
+ readonly name: "claimStatus";
68
+ readonly outputs: readonly [{
69
+ readonly internalType: "bool[]";
70
+ readonly name: "";
71
+ readonly type: "bool[]";
72
+ }];
73
+ readonly stateMutability: "view";
74
+ readonly type: "function";
75
+ }, {
76
+ readonly inputs: readonly [{
77
+ readonly internalType: "address";
78
+ readonly name: "_liquidityProvider";
79
+ readonly type: "address";
80
+ }, {
81
+ readonly internalType: "uint256";
82
+ readonly name: "_week";
83
+ readonly type: "uint256";
84
+ }, {
85
+ readonly internalType: "uint256";
86
+ readonly name: "_claimedBalance";
87
+ readonly type: "uint256";
88
+ }, {
89
+ readonly internalType: "bytes32[]";
90
+ readonly name: "_merkleProof";
91
+ readonly type: "bytes32[]";
92
+ }];
93
+ readonly name: "claimWeek";
94
+ readonly outputs: readonly [];
95
+ readonly stateMutability: "nonpayable";
96
+ readonly type: "function";
97
+ }, {
98
+ readonly inputs: readonly [{
99
+ readonly internalType: "address";
100
+ readonly name: "_liquidityProvider";
101
+ readonly type: "address";
102
+ }, {
103
+ readonly components: readonly [{
104
+ readonly internalType: "uint256";
105
+ readonly name: "week";
106
+ readonly type: "uint256";
107
+ }, {
108
+ readonly internalType: "uint256";
109
+ readonly name: "balance";
110
+ readonly type: "uint256";
111
+ }, {
112
+ readonly internalType: "bytes32[]";
113
+ readonly name: "merkleProof";
114
+ readonly type: "bytes32[]";
115
+ }];
116
+ readonly internalType: "struct MerkleRedeem.Claim[]";
117
+ readonly name: "claims";
118
+ readonly type: "tuple[]";
119
+ }];
120
+ readonly name: "claimWeeks";
121
+ readonly outputs: readonly [];
122
+ readonly stateMutability: "nonpayable";
123
+ readonly type: "function";
124
+ }, {
125
+ readonly inputs: readonly [{
126
+ readonly internalType: "uint256";
127
+ readonly name: "";
128
+ readonly type: "uint256";
129
+ }, {
130
+ readonly internalType: "address";
131
+ readonly name: "";
132
+ readonly type: "address";
133
+ }];
134
+ readonly name: "claimed";
135
+ readonly outputs: readonly [{
136
+ readonly internalType: "bool";
137
+ readonly name: "";
138
+ readonly type: "bool";
139
+ }];
140
+ readonly stateMutability: "view";
141
+ readonly type: "function";
142
+ }, {
143
+ readonly inputs: readonly [{
144
+ readonly internalType: "uint256";
145
+ readonly name: "_begin";
146
+ readonly type: "uint256";
147
+ }, {
148
+ readonly internalType: "uint256";
149
+ readonly name: "_end";
150
+ readonly type: "uint256";
151
+ }];
152
+ readonly name: "merkleRoots";
153
+ readonly outputs: readonly [{
154
+ readonly internalType: "bytes32[]";
155
+ readonly name: "";
156
+ readonly type: "bytes32[]";
157
+ }];
158
+ readonly stateMutability: "view";
159
+ readonly type: "function";
160
+ }, {
161
+ readonly inputs: readonly [];
162
+ readonly name: "owner";
163
+ readonly outputs: readonly [{
164
+ readonly internalType: "address";
165
+ readonly name: "";
166
+ readonly type: "address";
167
+ }];
168
+ readonly stateMutability: "view";
169
+ readonly type: "function";
170
+ }, {
171
+ readonly inputs: readonly [];
172
+ readonly name: "renounceOwnership";
173
+ readonly outputs: readonly [];
174
+ readonly stateMutability: "nonpayable";
175
+ readonly type: "function";
176
+ }, {
177
+ readonly inputs: readonly [{
178
+ readonly internalType: "uint256";
179
+ readonly name: "_week";
180
+ readonly type: "uint256";
181
+ }, {
182
+ readonly internalType: "bytes32";
183
+ readonly name: "_merkleRoot";
184
+ readonly type: "bytes32";
185
+ }, {
186
+ readonly internalType: "uint256";
187
+ readonly name: "_totalAllocation";
188
+ readonly type: "uint256";
189
+ }];
190
+ readonly name: "seedAllocations";
191
+ readonly outputs: readonly [];
192
+ readonly stateMutability: "nonpayable";
193
+ readonly type: "function";
194
+ }, {
195
+ readonly inputs: readonly [];
196
+ readonly name: "token";
197
+ readonly outputs: readonly [{
198
+ readonly internalType: "contract IERC20";
199
+ readonly name: "";
200
+ readonly type: "address";
201
+ }];
202
+ readonly stateMutability: "view";
203
+ readonly type: "function";
204
+ }, {
205
+ readonly inputs: readonly [{
206
+ readonly internalType: "address";
207
+ readonly name: "newOwner";
208
+ readonly type: "address";
209
+ }];
210
+ readonly name: "transferOwnership";
211
+ readonly outputs: readonly [];
212
+ readonly stateMutability: "nonpayable";
213
+ readonly type: "function";
214
+ }, {
215
+ readonly inputs: readonly [{
216
+ readonly internalType: "address";
217
+ readonly name: "_liquidityProvider";
218
+ readonly type: "address";
219
+ }, {
220
+ readonly internalType: "uint256";
221
+ readonly name: "_week";
222
+ readonly type: "uint256";
223
+ }, {
224
+ readonly internalType: "uint256";
225
+ readonly name: "_claimedBalance";
226
+ readonly type: "uint256";
227
+ }, {
228
+ readonly internalType: "bytes32[]";
229
+ readonly name: "_merkleProof";
230
+ readonly type: "bytes32[]";
231
+ }];
232
+ readonly name: "verifyClaim";
233
+ readonly outputs: readonly [{
234
+ readonly internalType: "bool";
235
+ readonly name: "valid";
236
+ readonly type: "bool";
237
+ }];
238
+ readonly stateMutability: "view";
239
+ readonly type: "function";
240
+ }, {
241
+ readonly inputs: readonly [{
242
+ readonly internalType: "uint256";
243
+ readonly name: "";
244
+ readonly type: "uint256";
245
+ }];
246
+ readonly name: "weekMerkleRoots";
247
+ readonly outputs: readonly [{
248
+ readonly internalType: "bytes32";
249
+ readonly name: "";
250
+ readonly type: "bytes32";
251
+ }];
252
+ readonly stateMutability: "view";
253
+ readonly type: "function";
254
+ }];
255
+ /**
256
+ * Type-safe ABI for MerkleRedeem_json
257
+ */
258
+ export type MerkleRedeem_jsonAbi = typeof MerkleRedeem_jsonAbi;
259
+ /**
260
+ * Contract instance type for MerkleRedeem_json
261
+ */
262
+ export type MerkleRedeem_jsonContract = any;
263
+ /**
264
+ * MerkleRedeem_json Contract Class
265
+ *
266
+ * Provides a class-based API similar to TypeChain for interacting with the contract.
267
+ *
268
+ * @example
269
+ * ```typescript
270
+ * import { createPublicClient, createWalletClient, http } from 'viem';
271
+ * import { mainnet } from 'viem/chains';
272
+ * import { MerkleRedeem_json } from 'MerkleRedeem_json';
273
+ *
274
+ * const publicClient = createPublicClient({ chain: mainnet, transport: http() });
275
+ * const walletClient = createWalletClient({ chain: mainnet, transport: http() });
276
+ *
277
+ * const contract = new MerkleRedeem_json('0x...', { publicClient, walletClient });
278
+ *
279
+ * // Read functions
280
+ * const result = await contract.balanceOf('0x...');
281
+ *
282
+ * // Write functions
283
+ * const hash = await contract.transfer('0x...', 1000n);
284
+ *
285
+ * // Simulate transactions (dry-run)
286
+ * const simulation = await contract.simulate.transfer('0x...', 1000n);
287
+ * console.log('Gas estimate:', simulation.request.gas);
288
+ *
289
+ * // Watch events
290
+ * const unwatch = contract.watch.Transfer((event) => {
291
+ * console.log('Transfer event:', event);
292
+ * });
293
+ * ```
294
+ */
295
+ export declare class MerkleRedeem_json {
296
+ private contract;
297
+ private contractAddress;
298
+ private publicClient;
299
+ constructor(address: Address, clients: {
300
+ publicClient: PublicClient;
301
+ walletClient?: WalletClient;
302
+ });
303
+ /**
304
+ * Get the contract address
305
+ */
306
+ get address(): Address;
307
+ /**
308
+ * Get the underlying viem contract instance
309
+ */
310
+ getContract(): MerkleRedeem_jsonContract;
311
+ /**
312
+ * claimStatus
313
+ * view
314
+ */
315
+ claimStatus(_liquidityProvider: `0x${string}`, _begin: bigint, _end: bigint): Promise<boolean[]>;
316
+ /**
317
+ * claimed
318
+ * view
319
+ */
320
+ claimed(arg0: bigint, arg1: `0x${string}`): Promise<boolean>;
321
+ /**
322
+ * merkleRoots
323
+ * view
324
+ */
325
+ merkleRoots(_begin: bigint, _end: bigint): Promise<`0x${string}`[]>;
326
+ /**
327
+ * owner
328
+ * view
329
+ */
330
+ owner(): Promise<`0x${string}`>;
331
+ /**
332
+ * token
333
+ * view
334
+ */
335
+ token(): Promise<`0x${string}`>;
336
+ /**
337
+ * verifyClaim
338
+ * view
339
+ */
340
+ verifyClaim(_liquidityProvider: `0x${string}`, _week: bigint, _claimedBalance: bigint, _merkleProof: `0x${string}`[]): Promise<boolean>;
341
+ /**
342
+ * weekMerkleRoots
343
+ * view
344
+ */
345
+ weekMerkleRoots(arg0: bigint): Promise<`0x${string}`>;
346
+ /**
347
+ * claimWeek
348
+ * nonpayable
349
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
350
+ */
351
+ claimWeek(_liquidityProvider: `0x${string}`, _week: bigint, _claimedBalance: bigint, _merkleProof: `0x${string}`[], options?: {
352
+ accessList?: import('viem').AccessList;
353
+ authorizationList?: import('viem').AuthorizationList;
354
+ chain?: import('viem').Chain | null;
355
+ dataSuffix?: `0x${string}`;
356
+ gas?: bigint;
357
+ gasPrice?: bigint;
358
+ maxFeePerGas?: bigint;
359
+ maxPriorityFeePerGas?: bigint;
360
+ nonce?: number;
361
+ value?: bigint;
362
+ }): Promise<`0x${string}`>;
363
+ /**
364
+ * claimWeeks
365
+ * nonpayable
366
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
367
+ */
368
+ claimWeeks(_liquidityProvider: `0x${string}`, claims: MerkleRedeem_Claim[], options?: {
369
+ accessList?: import('viem').AccessList;
370
+ authorizationList?: import('viem').AuthorizationList;
371
+ chain?: import('viem').Chain | null;
372
+ dataSuffix?: `0x${string}`;
373
+ gas?: bigint;
374
+ gasPrice?: bigint;
375
+ maxFeePerGas?: bigint;
376
+ maxPriorityFeePerGas?: bigint;
377
+ nonce?: number;
378
+ value?: bigint;
379
+ }): Promise<`0x${string}`>;
380
+ /**
381
+ * renounceOwnership
382
+ * nonpayable
383
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
384
+ */
385
+ renounceOwnership(options?: {
386
+ accessList?: import('viem').AccessList;
387
+ authorizationList?: import('viem').AuthorizationList;
388
+ chain?: import('viem').Chain | null;
389
+ dataSuffix?: `0x${string}`;
390
+ gas?: bigint;
391
+ gasPrice?: bigint;
392
+ maxFeePerGas?: bigint;
393
+ maxPriorityFeePerGas?: bigint;
394
+ nonce?: number;
395
+ value?: bigint;
396
+ }): Promise<`0x${string}`>;
397
+ /**
398
+ * seedAllocations
399
+ * nonpayable
400
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
401
+ */
402
+ seedAllocations(_week: bigint, _merkleRoot: `0x${string}`, _totalAllocation: bigint, options?: {
403
+ accessList?: import('viem').AccessList;
404
+ authorizationList?: import('viem').AuthorizationList;
405
+ chain?: import('viem').Chain | null;
406
+ dataSuffix?: `0x${string}`;
407
+ gas?: bigint;
408
+ gasPrice?: bigint;
409
+ maxFeePerGas?: bigint;
410
+ maxPriorityFeePerGas?: bigint;
411
+ nonce?: number;
412
+ value?: bigint;
413
+ }): Promise<`0x${string}`>;
414
+ /**
415
+ * transferOwnership
416
+ * nonpayable
417
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
418
+ */
419
+ transferOwnership(newOwner: `0x${string}`, options?: {
420
+ accessList?: import('viem').AccessList;
421
+ authorizationList?: import('viem').AuthorizationList;
422
+ chain?: import('viem').Chain | null;
423
+ dataSuffix?: `0x${string}`;
424
+ gas?: bigint;
425
+ gasPrice?: bigint;
426
+ maxFeePerGas?: bigint;
427
+ maxPriorityFeePerGas?: bigint;
428
+ nonce?: number;
429
+ value?: bigint;
430
+ }): Promise<`0x${string}`>;
431
+ /**
432
+ * Simulate contract write operations (dry-run without sending transaction)
433
+ *
434
+ * @example
435
+ * const result = await contract.simulate.transfer('0x...', 1000n);
436
+ * console.log('Gas estimate:', result.request.gas);
437
+ * console.log('Would succeed:', result.result);
438
+ */
439
+ get simulate(): {
440
+ /**
441
+ * Simulate claimWeek
442
+ * Returns gas estimate and result without sending transaction
443
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
444
+ */
445
+ claimWeek(_liquidityProvider: `0x${string}`, _week: bigint, _claimedBalance: bigint, _merkleProof: `0x${string}`[], options?: {
446
+ accessList?: import("viem").AccessList;
447
+ authorizationList?: import("viem").AuthorizationList;
448
+ chain?: import("viem").Chain | null;
449
+ dataSuffix?: `0x${string}`;
450
+ gas?: bigint;
451
+ gasPrice?: bigint;
452
+ maxFeePerGas?: bigint;
453
+ maxPriorityFeePerGas?: bigint;
454
+ nonce?: number;
455
+ value?: bigint;
456
+ }): Promise<void>;
457
+ /**
458
+ * Simulate claimWeeks
459
+ * Returns gas estimate and result without sending transaction
460
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
461
+ */
462
+ claimWeeks(_liquidityProvider: `0x${string}`, claims: MerkleRedeem_Claim[], options?: {
463
+ accessList?: import("viem").AccessList;
464
+ authorizationList?: import("viem").AuthorizationList;
465
+ chain?: import("viem").Chain | null;
466
+ dataSuffix?: `0x${string}`;
467
+ gas?: bigint;
468
+ gasPrice?: bigint;
469
+ maxFeePerGas?: bigint;
470
+ maxPriorityFeePerGas?: bigint;
471
+ nonce?: number;
472
+ value?: bigint;
473
+ }): Promise<void>;
474
+ /**
475
+ * Simulate renounceOwnership
476
+ * Returns gas estimate and result without sending transaction
477
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
478
+ */
479
+ renounceOwnership(options?: {
480
+ accessList?: import("viem").AccessList;
481
+ authorizationList?: import("viem").AuthorizationList;
482
+ chain?: import("viem").Chain | null;
483
+ dataSuffix?: `0x${string}`;
484
+ gas?: bigint;
485
+ gasPrice?: bigint;
486
+ maxFeePerGas?: bigint;
487
+ maxPriorityFeePerGas?: bigint;
488
+ nonce?: number;
489
+ value?: bigint;
490
+ }): Promise<void>;
491
+ /**
492
+ * Simulate seedAllocations
493
+ * Returns gas estimate and result without sending transaction
494
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
495
+ */
496
+ seedAllocations(_week: bigint, _merkleRoot: `0x${string}`, _totalAllocation: bigint, options?: {
497
+ accessList?: import("viem").AccessList;
498
+ authorizationList?: import("viem").AuthorizationList;
499
+ chain?: import("viem").Chain | null;
500
+ dataSuffix?: `0x${string}`;
501
+ gas?: bigint;
502
+ gasPrice?: bigint;
503
+ maxFeePerGas?: bigint;
504
+ maxPriorityFeePerGas?: bigint;
505
+ nonce?: number;
506
+ value?: bigint;
507
+ }): Promise<void>;
508
+ /**
509
+ * Simulate transferOwnership
510
+ * Returns gas estimate and result without sending transaction
511
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
512
+ */
513
+ transferOwnership(newOwner: `0x${string}`, options?: {
514
+ accessList?: import("viem").AccessList;
515
+ authorizationList?: import("viem").AuthorizationList;
516
+ chain?: import("viem").Chain | null;
517
+ dataSuffix?: `0x${string}`;
518
+ gas?: bigint;
519
+ gasPrice?: bigint;
520
+ maxFeePerGas?: bigint;
521
+ maxPriorityFeePerGas?: bigint;
522
+ nonce?: number;
523
+ value?: bigint;
524
+ }): Promise<void>;
525
+ };
526
+ /**
527
+ * Watch contract events
528
+ *
529
+ * @example
530
+ * // Watch all Transfer events
531
+ * const unwatch = contract.watch.Transfer((event) => {
532
+ * console.log('Transfer:', event);
533
+ * });
534
+ *
535
+ * // Stop watching
536
+ * unwatch();
537
+ */
538
+ get watch(): {
539
+ /**
540
+ * Watch Claimed events
541
+ * @param callback Function to call when event is emitted
542
+ * @param filter Optional filter for indexed parameters
543
+ * @returns Unwatch function to stop listening
544
+ */
545
+ Claimed: (callback: (event: {
546
+ _claimant: `0x${string}`;
547
+ _balance: bigint;
548
+ }) => void) => () => void;
549
+ /**
550
+ * Watch OwnershipTransferred events
551
+ * @param callback Function to call when event is emitted
552
+ * @param filter Optional filter for indexed parameters
553
+ * @returns Unwatch function to stop listening
554
+ */
555
+ OwnershipTransferred: (callback: (event: {
556
+ previousOwner: `0x${string}`;
557
+ newOwner: `0x${string}`;
558
+ }) => void, filter?: {
559
+ previousOwner: `0x${string}`;
560
+ newOwner: `0x${string}`;
561
+ }) => () => void;
562
+ };
563
+ }