@obolnetwork/obol-sdk 2.0.1 → 2.1.0

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 (49) hide show
  1. package/README.md +6 -0
  2. package/dist/cjs/package.json +1 -1
  3. package/dist/cjs/src/abi/Multicall.js +148 -0
  4. package/dist/cjs/src/abi/OWR.js +133 -0
  5. package/dist/cjs/src/abi/SplitMain.js +929 -0
  6. package/dist/cjs/src/ajv.js +17 -2
  7. package/dist/cjs/src/bytecodes.js +9 -0
  8. package/dist/cjs/src/constants.js +48 -1
  9. package/dist/cjs/src/index.js +146 -0
  10. package/dist/cjs/src/schema.js +52 -5
  11. package/dist/cjs/src/splitHelpers.js +177 -0
  12. package/dist/cjs/src/utils.js +22 -1
  13. package/dist/cjs/test/fixtures.js +1 -1
  14. package/dist/cjs/test/methods.test.js +215 -11
  15. package/dist/esm/package.json +1 -1
  16. package/dist/esm/src/abi/Multicall.js +145 -0
  17. package/dist/esm/src/abi/OWR.js +130 -0
  18. package/dist/esm/src/abi/SplitMain.js +926 -0
  19. package/dist/esm/src/ajv.js +17 -2
  20. package/dist/esm/src/bytecodes.js +6 -0
  21. package/dist/esm/src/constants.js +47 -0
  22. package/dist/esm/src/index.js +148 -2
  23. package/dist/esm/src/schema.js +51 -4
  24. package/dist/esm/src/splitHelpers.js +168 -0
  25. package/dist/esm/src/utils.js +19 -0
  26. package/dist/esm/test/fixtures.js +1 -1
  27. package/dist/esm/test/methods.test.js +193 -12
  28. package/dist/types/src/abi/Multicall.d.ts +35 -0
  29. package/dist/types/src/abi/OWR.d.ts +52 -0
  30. package/dist/types/src/abi/SplitMain.d.ts +1159 -0
  31. package/dist/types/src/bytecodes.d.ts +6 -0
  32. package/dist/types/src/constants.d.ts +25 -0
  33. package/dist/types/src/index.d.ts +29 -1
  34. package/dist/types/src/schema.d.ts +85 -4
  35. package/dist/types/src/splitHelpers.d.ts +62 -0
  36. package/dist/types/src/types.d.ts +39 -2
  37. package/dist/types/src/utils.d.ts +3 -0
  38. package/package.json +1 -1
  39. package/src/abi/Multicall.ts +145 -0
  40. package/src/abi/OWR.ts +130 -0
  41. package/src/abi/SplitMain.ts +927 -0
  42. package/src/ajv.ts +33 -2
  43. package/src/bytecodes.ts +12 -0
  44. package/src/constants.ts +59 -0
  45. package/src/index.ts +244 -2
  46. package/src/schema.ts +67 -4
  47. package/src/splitHelpers.ts +341 -0
  48. package/src/types.ts +49 -2
  49. package/src/utils.ts +21 -0
@@ -0,0 +1,926 @@
1
+ export const splitMainEthereumAbi = [
2
+ { inputs: [], stateMutability: 'nonpayable', type: 'constructor' },
3
+ { inputs: [], name: 'Create2Error', type: 'error' },
4
+ { inputs: [], name: 'CreateError', type: 'error' },
5
+ {
6
+ inputs: [
7
+ { internalType: 'address', name: 'newController', type: 'address' },
8
+ ],
9
+ name: 'InvalidNewController',
10
+ type: 'error',
11
+ },
12
+ {
13
+ inputs: [
14
+ { internalType: 'uint256', name: 'accountsLength', type: 'uint256' },
15
+ { internalType: 'uint256', name: 'allocationsLength', type: 'uint256' },
16
+ ],
17
+ name: 'InvalidSplit__AccountsAndAllocationsMismatch',
18
+ type: 'error',
19
+ },
20
+ {
21
+ inputs: [{ internalType: 'uint256', name: 'index', type: 'uint256' }],
22
+ name: 'InvalidSplit__AccountsOutOfOrder',
23
+ type: 'error',
24
+ },
25
+ {
26
+ inputs: [{ internalType: 'uint256', name: 'index', type: 'uint256' }],
27
+ name: 'InvalidSplit__AllocationMustBePositive',
28
+ type: 'error',
29
+ },
30
+ {
31
+ inputs: [
32
+ { internalType: 'uint32', name: 'allocationsSum', type: 'uint32' },
33
+ ],
34
+ name: 'InvalidSplit__InvalidAllocationsSum',
35
+ type: 'error',
36
+ },
37
+ {
38
+ inputs: [
39
+ { internalType: 'uint32', name: 'distributorFee', type: 'uint32' },
40
+ ],
41
+ name: 'InvalidSplit__InvalidDistributorFee',
42
+ type: 'error',
43
+ },
44
+ {
45
+ inputs: [{ internalType: 'bytes32', name: 'hash', type: 'bytes32' }],
46
+ name: 'InvalidSplit__InvalidHash',
47
+ type: 'error',
48
+ },
49
+ {
50
+ inputs: [
51
+ { internalType: 'uint256', name: 'accountsLength', type: 'uint256' },
52
+ ],
53
+ name: 'InvalidSplit__TooFewAccounts',
54
+ type: 'error',
55
+ },
56
+ {
57
+ inputs: [{ internalType: 'address', name: 'sender', type: 'address' }],
58
+ name: 'Unauthorized',
59
+ type: 'error',
60
+ },
61
+ {
62
+ anonymous: false,
63
+ inputs: [
64
+ {
65
+ indexed: true,
66
+ internalType: 'address',
67
+ name: 'split',
68
+ type: 'address',
69
+ },
70
+ ],
71
+ name: 'CancelControlTransfer',
72
+ type: 'event',
73
+ },
74
+ {
75
+ anonymous: false,
76
+ inputs: [
77
+ {
78
+ indexed: true,
79
+ internalType: 'address',
80
+ name: 'split',
81
+ type: 'address',
82
+ },
83
+ {
84
+ indexed: true,
85
+ internalType: 'address',
86
+ name: 'previousController',
87
+ type: 'address',
88
+ },
89
+ {
90
+ indexed: true,
91
+ internalType: 'address',
92
+ name: 'newController',
93
+ type: 'address',
94
+ },
95
+ ],
96
+ name: 'ControlTransfer',
97
+ type: 'event',
98
+ },
99
+ {
100
+ anonymous: false,
101
+ inputs: [
102
+ {
103
+ indexed: true,
104
+ internalType: 'address',
105
+ name: 'split',
106
+ type: 'address',
107
+ },
108
+ ],
109
+ name: 'CreateSplit',
110
+ type: 'event',
111
+ },
112
+ {
113
+ anonymous: false,
114
+ inputs: [
115
+ {
116
+ indexed: true,
117
+ internalType: 'address',
118
+ name: 'split',
119
+ type: 'address',
120
+ },
121
+ {
122
+ indexed: true,
123
+ internalType: 'contract ERC20',
124
+ name: 'token',
125
+ type: 'address',
126
+ },
127
+ {
128
+ indexed: false,
129
+ internalType: 'uint256',
130
+ name: 'amount',
131
+ type: 'uint256',
132
+ },
133
+ {
134
+ indexed: true,
135
+ internalType: 'address',
136
+ name: 'distributorAddress',
137
+ type: 'address',
138
+ },
139
+ ],
140
+ name: 'DistributeERC20',
141
+ type: 'event',
142
+ },
143
+ {
144
+ anonymous: false,
145
+ inputs: [
146
+ {
147
+ indexed: true,
148
+ internalType: 'address',
149
+ name: 'split',
150
+ type: 'address',
151
+ },
152
+ {
153
+ indexed: false,
154
+ internalType: 'uint256',
155
+ name: 'amount',
156
+ type: 'uint256',
157
+ },
158
+ {
159
+ indexed: true,
160
+ internalType: 'address',
161
+ name: 'distributorAddress',
162
+ type: 'address',
163
+ },
164
+ ],
165
+ name: 'DistributeETH',
166
+ type: 'event',
167
+ },
168
+ {
169
+ anonymous: false,
170
+ inputs: [
171
+ {
172
+ indexed: true,
173
+ internalType: 'address',
174
+ name: 'split',
175
+ type: 'address',
176
+ },
177
+ {
178
+ indexed: true,
179
+ internalType: 'address',
180
+ name: 'newPotentialController',
181
+ type: 'address',
182
+ },
183
+ ],
184
+ name: 'InitiateControlTransfer',
185
+ type: 'event',
186
+ },
187
+ {
188
+ anonymous: false,
189
+ inputs: [
190
+ {
191
+ indexed: true,
192
+ internalType: 'address',
193
+ name: 'split',
194
+ type: 'address',
195
+ },
196
+ ],
197
+ name: 'UpdateSplit',
198
+ type: 'event',
199
+ },
200
+ {
201
+ anonymous: false,
202
+ inputs: [
203
+ {
204
+ indexed: true,
205
+ internalType: 'address',
206
+ name: 'account',
207
+ type: 'address',
208
+ },
209
+ {
210
+ indexed: false,
211
+ internalType: 'uint256',
212
+ name: 'ethAmount',
213
+ type: 'uint256',
214
+ },
215
+ {
216
+ indexed: false,
217
+ internalType: 'contract ERC20[]',
218
+ name: 'tokens',
219
+ type: 'address[]',
220
+ },
221
+ {
222
+ indexed: false,
223
+ internalType: 'uint256[]',
224
+ name: 'tokenAmounts',
225
+ type: 'uint256[]',
226
+ },
227
+ ],
228
+ name: 'Withdrawal',
229
+ type: 'event',
230
+ },
231
+ {
232
+ inputs: [],
233
+ name: 'PERCENTAGE_SCALE',
234
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
235
+ stateMutability: 'view',
236
+ type: 'function',
237
+ },
238
+ {
239
+ inputs: [{ internalType: 'address', name: 'split', type: 'address' }],
240
+ name: 'acceptControl',
241
+ outputs: [],
242
+ stateMutability: 'nonpayable',
243
+ type: 'function',
244
+ },
245
+ {
246
+ inputs: [{ internalType: 'address', name: 'split', type: 'address' }],
247
+ name: 'cancelControlTransfer',
248
+ outputs: [],
249
+ stateMutability: 'nonpayable',
250
+ type: 'function',
251
+ },
252
+ {
253
+ inputs: [
254
+ { internalType: 'address[]', name: 'accounts', type: 'address[]' },
255
+ {
256
+ internalType: 'uint32[]',
257
+ name: 'percentAllocations',
258
+ type: 'uint32[]',
259
+ },
260
+ { internalType: 'uint32', name: 'distributorFee', type: 'uint32' },
261
+ { internalType: 'address', name: 'controller', type: 'address' },
262
+ ],
263
+ name: 'createSplit',
264
+ outputs: [{ internalType: 'address', name: 'split', type: 'address' }],
265
+ stateMutability: 'nonpayable',
266
+ type: 'function',
267
+ },
268
+ {
269
+ inputs: [
270
+ { internalType: 'address', name: 'split', type: 'address' },
271
+ { internalType: 'contract ERC20', name: 'token', type: 'address' },
272
+ { internalType: 'address[]', name: 'accounts', type: 'address[]' },
273
+ {
274
+ internalType: 'uint32[]',
275
+ name: 'percentAllocations',
276
+ type: 'uint32[]',
277
+ },
278
+ { internalType: 'uint32', name: 'distributorFee', type: 'uint32' },
279
+ { internalType: 'address', name: 'distributorAddress', type: 'address' },
280
+ ],
281
+ name: 'distributeERC20',
282
+ outputs: [],
283
+ stateMutability: 'nonpayable',
284
+ type: 'function',
285
+ },
286
+ {
287
+ inputs: [
288
+ { internalType: 'address', name: 'split', type: 'address' },
289
+ { internalType: 'address[]', name: 'accounts', type: 'address[]' },
290
+ {
291
+ internalType: 'uint32[]',
292
+ name: 'percentAllocations',
293
+ type: 'uint32[]',
294
+ },
295
+ { internalType: 'uint32', name: 'distributorFee', type: 'uint32' },
296
+ { internalType: 'address', name: 'distributorAddress', type: 'address' },
297
+ ],
298
+ name: 'distributeETH',
299
+ outputs: [],
300
+ stateMutability: 'nonpayable',
301
+ type: 'function',
302
+ },
303
+ {
304
+ inputs: [{ internalType: 'address', name: 'split', type: 'address' }],
305
+ name: 'getController',
306
+ outputs: [{ internalType: 'address', name: '', type: 'address' }],
307
+ stateMutability: 'view',
308
+ type: 'function',
309
+ },
310
+ {
311
+ inputs: [
312
+ { internalType: 'address', name: 'account', type: 'address' },
313
+ { internalType: 'contract ERC20', name: 'token', type: 'address' },
314
+ ],
315
+ name: 'getERC20Balance',
316
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
317
+ stateMutability: 'view',
318
+ type: 'function',
319
+ },
320
+ {
321
+ inputs: [{ internalType: 'address', name: 'account', type: 'address' }],
322
+ name: 'getETHBalance',
323
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
324
+ stateMutability: 'view',
325
+ type: 'function',
326
+ },
327
+ {
328
+ inputs: [{ internalType: 'address', name: 'split', type: 'address' }],
329
+ name: 'getHash',
330
+ outputs: [{ internalType: 'bytes32', name: '', type: 'bytes32' }],
331
+ stateMutability: 'view',
332
+ type: 'function',
333
+ },
334
+ {
335
+ inputs: [{ internalType: 'address', name: 'split', type: 'address' }],
336
+ name: 'getNewPotentialController',
337
+ outputs: [{ internalType: 'address', name: '', type: 'address' }],
338
+ stateMutability: 'view',
339
+ type: 'function',
340
+ },
341
+ {
342
+ inputs: [{ internalType: 'address', name: 'split', type: 'address' }],
343
+ name: 'makeSplitImmutable',
344
+ outputs: [],
345
+ stateMutability: 'nonpayable',
346
+ type: 'function',
347
+ },
348
+ {
349
+ inputs: [
350
+ { internalType: 'address[]', name: 'accounts', type: 'address[]' },
351
+ {
352
+ internalType: 'uint32[]',
353
+ name: 'percentAllocations',
354
+ type: 'uint32[]',
355
+ },
356
+ { internalType: 'uint32', name: 'distributorFee', type: 'uint32' },
357
+ ],
358
+ name: 'predictImmutableSplitAddress',
359
+ outputs: [{ internalType: 'address', name: 'split', type: 'address' }],
360
+ stateMutability: 'view',
361
+ type: 'function',
362
+ },
363
+ {
364
+ inputs: [
365
+ { internalType: 'address', name: 'split', type: 'address' },
366
+ { internalType: 'address', name: 'newController', type: 'address' },
367
+ ],
368
+ name: 'transferControl',
369
+ outputs: [],
370
+ stateMutability: 'nonpayable',
371
+ type: 'function',
372
+ },
373
+ {
374
+ inputs: [
375
+ { internalType: 'address', name: 'split', type: 'address' },
376
+ { internalType: 'contract ERC20', name: 'token', type: 'address' },
377
+ { internalType: 'address[]', name: 'accounts', type: 'address[]' },
378
+ {
379
+ internalType: 'uint32[]',
380
+ name: 'percentAllocations',
381
+ type: 'uint32[]',
382
+ },
383
+ { internalType: 'uint32', name: 'distributorFee', type: 'uint32' },
384
+ { internalType: 'address', name: 'distributorAddress', type: 'address' },
385
+ ],
386
+ name: 'updateAndDistributeERC20',
387
+ outputs: [],
388
+ stateMutability: 'nonpayable',
389
+ type: 'function',
390
+ },
391
+ {
392
+ inputs: [
393
+ { internalType: 'address', name: 'split', type: 'address' },
394
+ { internalType: 'address[]', name: 'accounts', type: 'address[]' },
395
+ {
396
+ internalType: 'uint32[]',
397
+ name: 'percentAllocations',
398
+ type: 'uint32[]',
399
+ },
400
+ { internalType: 'uint32', name: 'distributorFee', type: 'uint32' },
401
+ { internalType: 'address', name: 'distributorAddress', type: 'address' },
402
+ ],
403
+ name: 'updateAndDistributeETH',
404
+ outputs: [],
405
+ stateMutability: 'nonpayable',
406
+ type: 'function',
407
+ },
408
+ {
409
+ inputs: [
410
+ { internalType: 'address', name: 'split', type: 'address' },
411
+ { internalType: 'address[]', name: 'accounts', type: 'address[]' },
412
+ {
413
+ internalType: 'uint32[]',
414
+ name: 'percentAllocations',
415
+ type: 'uint32[]',
416
+ },
417
+ { internalType: 'uint32', name: 'distributorFee', type: 'uint32' },
418
+ ],
419
+ name: 'updateSplit',
420
+ outputs: [],
421
+ stateMutability: 'nonpayable',
422
+ type: 'function',
423
+ },
424
+ {
425
+ inputs: [],
426
+ name: 'walletImplementation',
427
+ outputs: [{ internalType: 'address', name: '', type: 'address' }],
428
+ stateMutability: 'view',
429
+ type: 'function',
430
+ },
431
+ {
432
+ inputs: [
433
+ { internalType: 'address', name: 'account', type: 'address' },
434
+ { internalType: 'uint256', name: 'withdrawETH', type: 'uint256' },
435
+ { internalType: 'contract ERC20[]', name: 'tokens', type: 'address[]' },
436
+ ],
437
+ name: 'withdraw',
438
+ outputs: [],
439
+ stateMutability: 'nonpayable',
440
+ type: 'function',
441
+ },
442
+ ];
443
+ export const splitMainPolygonAbi = [
444
+ { inputs: [], stateMutability: 'nonpayable', type: 'constructor' },
445
+ { inputs: [], name: 'Create2Error', type: 'error' },
446
+ { inputs: [], name: 'CreateError', type: 'error' },
447
+ {
448
+ inputs: [
449
+ { internalType: 'address', name: 'newController', type: 'address' },
450
+ ],
451
+ name: 'InvalidNewController',
452
+ type: 'error',
453
+ },
454
+ {
455
+ inputs: [
456
+ { internalType: 'uint256', name: 'accountsLength', type: 'uint256' },
457
+ { internalType: 'uint256', name: 'allocationsLength', type: 'uint256' },
458
+ ],
459
+ name: 'InvalidSplit__AccountsAndAllocationsMismatch',
460
+ type: 'error',
461
+ },
462
+ {
463
+ inputs: [{ internalType: 'uint256', name: 'index', type: 'uint256' }],
464
+ name: 'InvalidSplit__AccountsOutOfOrder',
465
+ type: 'error',
466
+ },
467
+ {
468
+ inputs: [{ internalType: 'uint256', name: 'index', type: 'uint256' }],
469
+ name: 'InvalidSplit__AllocationMustBePositive',
470
+ type: 'error',
471
+ },
472
+ {
473
+ inputs: [
474
+ { internalType: 'uint32', name: 'allocationsSum', type: 'uint32' },
475
+ ],
476
+ name: 'InvalidSplit__InvalidAllocationsSum',
477
+ type: 'error',
478
+ },
479
+ {
480
+ inputs: [
481
+ { internalType: 'uint32', name: 'distributorFee', type: 'uint32' },
482
+ ],
483
+ name: 'InvalidSplit__InvalidDistributorFee',
484
+ type: 'error',
485
+ },
486
+ {
487
+ inputs: [{ internalType: 'bytes32', name: 'hash', type: 'bytes32' }],
488
+ name: 'InvalidSplit__InvalidHash',
489
+ type: 'error',
490
+ },
491
+ {
492
+ inputs: [
493
+ { internalType: 'uint256', name: 'accountsLength', type: 'uint256' },
494
+ ],
495
+ name: 'InvalidSplit__TooFewAccounts',
496
+ type: 'error',
497
+ },
498
+ {
499
+ inputs: [{ internalType: 'address', name: 'sender', type: 'address' }],
500
+ name: 'Unauthorized',
501
+ type: 'error',
502
+ },
503
+ {
504
+ anonymous: false,
505
+ inputs: [
506
+ {
507
+ indexed: true,
508
+ internalType: 'address',
509
+ name: 'split',
510
+ type: 'address',
511
+ },
512
+ ],
513
+ name: 'CancelControlTransfer',
514
+ type: 'event',
515
+ },
516
+ {
517
+ anonymous: false,
518
+ inputs: [
519
+ {
520
+ indexed: true,
521
+ internalType: 'address',
522
+ name: 'split',
523
+ type: 'address',
524
+ },
525
+ {
526
+ indexed: true,
527
+ internalType: 'address',
528
+ name: 'previousController',
529
+ type: 'address',
530
+ },
531
+ {
532
+ indexed: true,
533
+ internalType: 'address',
534
+ name: 'newController',
535
+ type: 'address',
536
+ },
537
+ ],
538
+ name: 'ControlTransfer',
539
+ type: 'event',
540
+ },
541
+ {
542
+ anonymous: false,
543
+ inputs: [
544
+ {
545
+ indexed: true,
546
+ internalType: 'address',
547
+ name: 'split',
548
+ type: 'address',
549
+ },
550
+ {
551
+ indexed: false,
552
+ internalType: 'address[]',
553
+ name: 'accounts',
554
+ type: 'address[]',
555
+ },
556
+ {
557
+ indexed: false,
558
+ internalType: 'uint32[]',
559
+ name: 'percentAllocations',
560
+ type: 'uint32[]',
561
+ },
562
+ {
563
+ indexed: false,
564
+ internalType: 'uint32',
565
+ name: 'distributorFee',
566
+ type: 'uint32',
567
+ },
568
+ {
569
+ indexed: false,
570
+ internalType: 'address',
571
+ name: 'controller',
572
+ type: 'address',
573
+ },
574
+ ],
575
+ name: 'CreateSplit',
576
+ type: 'event',
577
+ },
578
+ {
579
+ anonymous: false,
580
+ inputs: [
581
+ {
582
+ indexed: true,
583
+ internalType: 'address',
584
+ name: 'split',
585
+ type: 'address',
586
+ },
587
+ {
588
+ indexed: true,
589
+ internalType: 'contract ERC20',
590
+ name: 'token',
591
+ type: 'address',
592
+ },
593
+ {
594
+ indexed: false,
595
+ internalType: 'uint256',
596
+ name: 'amount',
597
+ type: 'uint256',
598
+ },
599
+ {
600
+ indexed: true,
601
+ internalType: 'address',
602
+ name: 'distributorAddress',
603
+ type: 'address',
604
+ },
605
+ ],
606
+ name: 'DistributeERC20',
607
+ type: 'event',
608
+ },
609
+ {
610
+ anonymous: false,
611
+ inputs: [
612
+ {
613
+ indexed: true,
614
+ internalType: 'address',
615
+ name: 'split',
616
+ type: 'address',
617
+ },
618
+ {
619
+ indexed: false,
620
+ internalType: 'uint256',
621
+ name: 'amount',
622
+ type: 'uint256',
623
+ },
624
+ {
625
+ indexed: true,
626
+ internalType: 'address',
627
+ name: 'distributorAddress',
628
+ type: 'address',
629
+ },
630
+ ],
631
+ name: 'DistributeETH',
632
+ type: 'event',
633
+ },
634
+ {
635
+ anonymous: false,
636
+ inputs: [
637
+ {
638
+ indexed: true,
639
+ internalType: 'address',
640
+ name: 'split',
641
+ type: 'address',
642
+ },
643
+ {
644
+ indexed: true,
645
+ internalType: 'address',
646
+ name: 'newPotentialController',
647
+ type: 'address',
648
+ },
649
+ ],
650
+ name: 'InitiateControlTransfer',
651
+ type: 'event',
652
+ },
653
+ {
654
+ anonymous: false,
655
+ inputs: [
656
+ {
657
+ indexed: true,
658
+ internalType: 'address',
659
+ name: 'split',
660
+ type: 'address',
661
+ },
662
+ {
663
+ indexed: false,
664
+ internalType: 'address[]',
665
+ name: 'accounts',
666
+ type: 'address[]',
667
+ },
668
+ {
669
+ indexed: false,
670
+ internalType: 'uint32[]',
671
+ name: 'percentAllocations',
672
+ type: 'uint32[]',
673
+ },
674
+ {
675
+ indexed: false,
676
+ internalType: 'uint32',
677
+ name: 'distributorFee',
678
+ type: 'uint32',
679
+ },
680
+ ],
681
+ name: 'UpdateSplit',
682
+ type: 'event',
683
+ },
684
+ {
685
+ anonymous: false,
686
+ inputs: [
687
+ {
688
+ indexed: true,
689
+ internalType: 'address',
690
+ name: 'account',
691
+ type: 'address',
692
+ },
693
+ {
694
+ indexed: false,
695
+ internalType: 'uint256',
696
+ name: 'ethAmount',
697
+ type: 'uint256',
698
+ },
699
+ {
700
+ indexed: false,
701
+ internalType: 'contract ERC20[]',
702
+ name: 'tokens',
703
+ type: 'address[]',
704
+ },
705
+ {
706
+ indexed: false,
707
+ internalType: 'uint256[]',
708
+ name: 'tokenAmounts',
709
+ type: 'uint256[]',
710
+ },
711
+ ],
712
+ name: 'Withdrawal',
713
+ type: 'event',
714
+ },
715
+ {
716
+ inputs: [],
717
+ name: 'PERCENTAGE_SCALE',
718
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
719
+ stateMutability: 'view',
720
+ type: 'function',
721
+ },
722
+ {
723
+ inputs: [{ internalType: 'address', name: 'split', type: 'address' }],
724
+ name: 'acceptControl',
725
+ outputs: [],
726
+ stateMutability: 'nonpayable',
727
+ type: 'function',
728
+ },
729
+ {
730
+ inputs: [{ internalType: 'address', name: 'split', type: 'address' }],
731
+ name: 'cancelControlTransfer',
732
+ outputs: [],
733
+ stateMutability: 'nonpayable',
734
+ type: 'function',
735
+ },
736
+ {
737
+ inputs: [
738
+ { internalType: 'address[]', name: 'accounts', type: 'address[]' },
739
+ {
740
+ internalType: 'uint32[]',
741
+ name: 'percentAllocations',
742
+ type: 'uint32[]',
743
+ },
744
+ { internalType: 'uint32', name: 'distributorFee', type: 'uint32' },
745
+ { internalType: 'address', name: 'controller', type: 'address' },
746
+ ],
747
+ name: 'createSplit',
748
+ outputs: [{ internalType: 'address', name: 'split', type: 'address' }],
749
+ stateMutability: 'nonpayable',
750
+ type: 'function',
751
+ },
752
+ {
753
+ inputs: [
754
+ { internalType: 'address', name: 'split', type: 'address' },
755
+ { internalType: 'contract ERC20', name: 'token', type: 'address' },
756
+ { internalType: 'address[]', name: 'accounts', type: 'address[]' },
757
+ {
758
+ internalType: 'uint32[]',
759
+ name: 'percentAllocations',
760
+ type: 'uint32[]',
761
+ },
762
+ { internalType: 'uint32', name: 'distributorFee', type: 'uint32' },
763
+ { internalType: 'address', name: 'distributorAddress', type: 'address' },
764
+ ],
765
+ name: 'distributeERC20',
766
+ outputs: [],
767
+ stateMutability: 'nonpayable',
768
+ type: 'function',
769
+ },
770
+ {
771
+ inputs: [
772
+ { internalType: 'address', name: 'split', type: 'address' },
773
+ { internalType: 'address[]', name: 'accounts', type: 'address[]' },
774
+ {
775
+ internalType: 'uint32[]',
776
+ name: 'percentAllocations',
777
+ type: 'uint32[]',
778
+ },
779
+ { internalType: 'uint32', name: 'distributorFee', type: 'uint32' },
780
+ { internalType: 'address', name: 'distributorAddress', type: 'address' },
781
+ ],
782
+ name: 'distributeETH',
783
+ outputs: [],
784
+ stateMutability: 'nonpayable',
785
+ type: 'function',
786
+ },
787
+ {
788
+ inputs: [{ internalType: 'address', name: 'split', type: 'address' }],
789
+ name: 'getController',
790
+ outputs: [{ internalType: 'address', name: '', type: 'address' }],
791
+ stateMutability: 'view',
792
+ type: 'function',
793
+ },
794
+ {
795
+ inputs: [
796
+ { internalType: 'address', name: 'account', type: 'address' },
797
+ { internalType: 'contract ERC20', name: 'token', type: 'address' },
798
+ ],
799
+ name: 'getERC20Balance',
800
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
801
+ stateMutability: 'view',
802
+ type: 'function',
803
+ },
804
+ {
805
+ inputs: [{ internalType: 'address', name: 'account', type: 'address' }],
806
+ name: 'getETHBalance',
807
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
808
+ stateMutability: 'view',
809
+ type: 'function',
810
+ },
811
+ {
812
+ inputs: [{ internalType: 'address', name: 'split', type: 'address' }],
813
+ name: 'getHash',
814
+ outputs: [{ internalType: 'bytes32', name: '', type: 'bytes32' }],
815
+ stateMutability: 'view',
816
+ type: 'function',
817
+ },
818
+ {
819
+ inputs: [{ internalType: 'address', name: 'split', type: 'address' }],
820
+ name: 'getNewPotentialController',
821
+ outputs: [{ internalType: 'address', name: '', type: 'address' }],
822
+ stateMutability: 'view',
823
+ type: 'function',
824
+ },
825
+ {
826
+ inputs: [{ internalType: 'address', name: 'split', type: 'address' }],
827
+ name: 'makeSplitImmutable',
828
+ outputs: [],
829
+ stateMutability: 'nonpayable',
830
+ type: 'function',
831
+ },
832
+ {
833
+ inputs: [
834
+ { internalType: 'address[]', name: 'accounts', type: 'address[]' },
835
+ {
836
+ internalType: 'uint32[]',
837
+ name: 'percentAllocations',
838
+ type: 'uint32[]',
839
+ },
840
+ { internalType: 'uint32', name: 'distributorFee', type: 'uint32' },
841
+ ],
842
+ name: 'predictImmutableSplitAddress',
843
+ outputs: [{ internalType: 'address', name: 'split', type: 'address' }],
844
+ stateMutability: 'view',
845
+ type: 'function',
846
+ },
847
+ {
848
+ inputs: [
849
+ { internalType: 'address', name: 'split', type: 'address' },
850
+ { internalType: 'address', name: 'newController', type: 'address' },
851
+ ],
852
+ name: 'transferControl',
853
+ outputs: [],
854
+ stateMutability: 'nonpayable',
855
+ type: 'function',
856
+ },
857
+ {
858
+ inputs: [
859
+ { internalType: 'address', name: 'split', type: 'address' },
860
+ { internalType: 'contract ERC20', name: 'token', type: 'address' },
861
+ { internalType: 'address[]', name: 'accounts', type: 'address[]' },
862
+ {
863
+ internalType: 'uint32[]',
864
+ name: 'percentAllocations',
865
+ type: 'uint32[]',
866
+ },
867
+ { internalType: 'uint32', name: 'distributorFee', type: 'uint32' },
868
+ { internalType: 'address', name: 'distributorAddress', type: 'address' },
869
+ ],
870
+ name: 'updateAndDistributeERC20',
871
+ outputs: [],
872
+ stateMutability: 'nonpayable',
873
+ type: 'function',
874
+ },
875
+ {
876
+ inputs: [
877
+ { internalType: 'address', name: 'split', type: 'address' },
878
+ { internalType: 'address[]', name: 'accounts', type: 'address[]' },
879
+ {
880
+ internalType: 'uint32[]',
881
+ name: 'percentAllocations',
882
+ type: 'uint32[]',
883
+ },
884
+ { internalType: 'uint32', name: 'distributorFee', type: 'uint32' },
885
+ { internalType: 'address', name: 'distributorAddress', type: 'address' },
886
+ ],
887
+ name: 'updateAndDistributeETH',
888
+ outputs: [],
889
+ stateMutability: 'nonpayable',
890
+ type: 'function',
891
+ },
892
+ {
893
+ inputs: [
894
+ { internalType: 'address', name: 'split', type: 'address' },
895
+ { internalType: 'address[]', name: 'accounts', type: 'address[]' },
896
+ {
897
+ internalType: 'uint32[]',
898
+ name: 'percentAllocations',
899
+ type: 'uint32[]',
900
+ },
901
+ { internalType: 'uint32', name: 'distributorFee', type: 'uint32' },
902
+ ],
903
+ name: 'updateSplit',
904
+ outputs: [],
905
+ stateMutability: 'nonpayable',
906
+ type: 'function',
907
+ },
908
+ {
909
+ inputs: [],
910
+ name: 'walletImplementation',
911
+ outputs: [{ internalType: 'address', name: '', type: 'address' }],
912
+ stateMutability: 'view',
913
+ type: 'function',
914
+ },
915
+ {
916
+ inputs: [
917
+ { internalType: 'address', name: 'account', type: 'address' },
918
+ { internalType: 'uint256', name: 'withdrawETH', type: 'uint256' },
919
+ { internalType: 'contract ERC20[]', name: 'tokens', type: 'address[]' },
920
+ ],
921
+ name: 'withdraw',
922
+ outputs: [],
923
+ stateMutability: 'nonpayable',
924
+ type: 'function',
925
+ },
926
+ ];