@dynamic-labs/ethereum-aa 4.10.3 → 4.10.4-preview.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.
Files changed (40) hide show
  1. package/CHANGELOG.md +15 -4
  2. package/package.cjs +1 -1
  3. package/package.js +1 -1
  4. package/package.json +11 -9
  5. package/src/AccountAbstractionConnector.cjs +75 -0
  6. package/src/AccountAbstractionConnector.d.ts +56 -0
  7. package/src/AccountAbstractionConnector.js +71 -0
  8. package/src/ZKsync/client.cjs +31 -0
  9. package/src/ZKsync/client.d.ts +25 -0
  10. package/src/ZKsync/client.js +27 -0
  11. package/src/ZKsync/ecdsaAccount.cjs +32 -0
  12. package/src/ZKsync/ecdsaAccount.d.ts +13 -0
  13. package/src/ZKsync/ecdsaAccount.js +28 -0
  14. package/src/ZKsync/getEip712Domain.cjs +62 -0
  15. package/src/ZKsync/getEip712Domain.d.ts +2 -0
  16. package/src/ZKsync/getEip712Domain.js +58 -0
  17. package/src/ZKsync/session.cjs +1218 -0
  18. package/src/ZKsync/session.d.ts +904 -0
  19. package/src/ZKsync/session.js +1211 -0
  20. package/src/ZKsync/types.cjs +52 -0
  21. package/src/ZKsync/types.d.ts +9 -0
  22. package/src/ZKsync/types.js +48 -0
  23. package/src/ZKsync/walletActions.cjs +93 -0
  24. package/src/ZKsync/walletActions.d.ts +15 -0
  25. package/src/ZKsync/walletActions.js +87 -0
  26. package/src/ZKsyncConnector.cjs +536 -0
  27. package/src/ZKsyncConnector.d.ts +24923 -0
  28. package/src/ZKsyncConnector.js +532 -0
  29. package/src/ZeroDevConnector.cjs +17 -13
  30. package/src/ZeroDevConnector.d.ts +17 -16
  31. package/src/ZeroDevConnector.js +18 -14
  32. package/src/index.cjs +11 -0
  33. package/src/index.d.ts +2 -0
  34. package/src/index.js +10 -1
  35. package/src/utils/abi.cjs +88 -0
  36. package/src/utils/abi.d.ts +102 -0
  37. package/src/utils/abi.js +84 -0
  38. package/src/utils/isZKsyncConnector.cjs +8 -0
  39. package/src/utils/isZKsyncConnector.d.ts +3 -0
  40. package/src/utils/isZKsyncConnector.js +4 -0
@@ -0,0 +1,904 @@
1
+ import { Account, Address, Client, Hash, Hex, Prettify, TransactionReceipt, type Chain, type Transport } from 'viem';
2
+ import { CustomPaymasterHandler } from 'zksync-sso/paymaster';
3
+ import { SessionConfig } from 'zksync-sso/utils';
4
+ import type { ClientWithZksyncSsoEcdsaData } from './client';
5
+ export type CreateSessionArgs = {
6
+ sessionConfig: SessionConfig;
7
+ contracts: {
8
+ session: Address;
9
+ };
10
+ paymaster?: {
11
+ address: Address;
12
+ paymasterInput?: Hex;
13
+ };
14
+ onTransactionSent?: (hash: Hash) => void;
15
+ paymasterHandler?: CustomPaymasterHandler;
16
+ };
17
+ export type CreateSessionReturnType = {
18
+ transactionReceipt: TransactionReceipt;
19
+ };
20
+ export declare const createSession: <transport extends Transport, chain extends Chain, account extends Account>(client: Client<transport, chain, account>, args: Prettify<CreateSessionArgs>) => Promise<Prettify<CreateSessionReturnType>>;
21
+ export type RevokeSessionArgs = {
22
+ sessionId: Hash;
23
+ contracts: {
24
+ session: Address;
25
+ };
26
+ paymaster?: {
27
+ address: Address;
28
+ paymasterInput?: Hex;
29
+ };
30
+ onTransactionSent?: (hash: Hash) => void;
31
+ paymasterHandler?: CustomPaymasterHandler;
32
+ };
33
+ export type RevokeSessionReturnType = {
34
+ transactionReceipt: TransactionReceipt;
35
+ };
36
+ export declare const revokeSession: <transport extends Transport, chain extends Chain, account extends Account>(client: Client<transport, chain, account>, args: Prettify<RevokeSessionArgs>) => Promise<Prettify<RevokeSessionReturnType>>;
37
+ export type ZksyncSsoEcdsaActions = {
38
+ createSession: (args: Omit<CreateSessionArgs, 'contracts'>) => Promise<CreateSessionReturnType>;
39
+ revokeSession: (args: Omit<RevokeSessionArgs, 'contracts'>) => Promise<RevokeSessionReturnType>;
40
+ };
41
+ export declare const zksyncSsoEcdsaActions: <transport extends Transport = Transport, chain extends Chain = Chain>(client: ClientWithZksyncSsoEcdsaData<transport, chain>) => ZksyncSsoEcdsaActions;
42
+ export declare const SessionKeyValidatorAbi: readonly [{
43
+ readonly inputs: readonly [{
44
+ readonly internalType: "uint256";
45
+ readonly name: "value";
46
+ readonly type: "uint256";
47
+ }];
48
+ readonly name: "ADDRESS_CAST_OVERFLOW";
49
+ readonly type: "error";
50
+ }, {
51
+ readonly inputs: readonly [{
52
+ readonly internalType: "bytes";
53
+ readonly name: "input";
54
+ readonly type: "bytes";
55
+ }];
56
+ readonly name: "INVALID_PAYMASTER_INPUT";
57
+ readonly type: "error";
58
+ }, {
59
+ readonly inputs: readonly [{
60
+ readonly internalType: "address";
61
+ readonly name: "notInitialized";
62
+ readonly type: "address";
63
+ }];
64
+ readonly name: "NOT_FROM_INITIALIZED_ACCOUNT";
65
+ readonly type: "error";
66
+ }, {
67
+ readonly inputs: readonly [{
68
+ readonly internalType: "uint256";
69
+ readonly name: "chainId";
70
+ readonly type: "uint256";
71
+ }];
72
+ readonly name: "NO_TIMESTAMP_ASSERTER";
73
+ readonly type: "error";
74
+ }, {
75
+ readonly inputs: readonly [{
76
+ readonly internalType: "uint256";
77
+ readonly name: "allowance";
78
+ readonly type: "uint256";
79
+ }, {
80
+ readonly internalType: "uint256";
81
+ readonly name: "maxAllowance";
82
+ readonly type: "uint256";
83
+ }, {
84
+ readonly internalType: "uint64";
85
+ readonly name: "period";
86
+ readonly type: "uint64";
87
+ }];
88
+ readonly name: "SESSION_ALLOWANCE_EXCEEDED";
89
+ readonly type: "error";
90
+ }, {
91
+ readonly inputs: readonly [{
92
+ readonly internalType: "bytes32";
93
+ readonly name: "sessionHash";
94
+ readonly type: "bytes32";
95
+ }];
96
+ readonly name: "SESSION_ALREADY_EXISTS";
97
+ readonly type: "error";
98
+ }, {
99
+ readonly inputs: readonly [{
100
+ readonly internalType: "address";
101
+ readonly name: "target";
102
+ readonly type: "address";
103
+ }, {
104
+ readonly internalType: "bytes4";
105
+ readonly name: "selector";
106
+ readonly type: "bytes4";
107
+ }];
108
+ readonly name: "SESSION_CALL_POLICY_VIOLATED";
109
+ readonly type: "error";
110
+ }, {
111
+ readonly inputs: readonly [{
112
+ readonly internalType: "bytes32";
113
+ readonly name: "param";
114
+ readonly type: "bytes32";
115
+ }, {
116
+ readonly internalType: "bytes32";
117
+ readonly name: "refValue";
118
+ readonly type: "bytes32";
119
+ }, {
120
+ readonly internalType: "uint8";
121
+ readonly name: "condition";
122
+ readonly type: "uint8";
123
+ }];
124
+ readonly name: "SESSION_CONDITION_FAILED";
125
+ readonly type: "error";
126
+ }, {
127
+ readonly inputs: readonly [{
128
+ readonly internalType: "uint256";
129
+ readonly name: "expiresAt";
130
+ readonly type: "uint256";
131
+ }];
132
+ readonly name: "SESSION_EXPIRES_TOO_SOON";
133
+ readonly type: "error";
134
+ }, {
135
+ readonly inputs: readonly [{
136
+ readonly internalType: "uint256";
137
+ readonly name: "actualLength";
138
+ readonly type: "uint256";
139
+ }, {
140
+ readonly internalType: "uint256";
141
+ readonly name: "expectedMinimumLength";
142
+ readonly type: "uint256";
143
+ }];
144
+ readonly name: "SESSION_INVALID_DATA_LENGTH";
145
+ readonly type: "error";
146
+ }, {
147
+ readonly inputs: readonly [{
148
+ readonly internalType: "address";
149
+ readonly name: "recovered";
150
+ readonly type: "address";
151
+ }, {
152
+ readonly internalType: "address";
153
+ readonly name: "expected";
154
+ readonly type: "address";
155
+ }];
156
+ readonly name: "SESSION_INVALID_SIGNER";
157
+ readonly type: "error";
158
+ }, {
159
+ readonly inputs: readonly [{
160
+ readonly internalType: "uint256";
161
+ readonly name: "lifetimeUsage";
162
+ readonly type: "uint256";
163
+ }, {
164
+ readonly internalType: "uint256";
165
+ readonly name: "maxUsage";
166
+ readonly type: "uint256";
167
+ }];
168
+ readonly name: "SESSION_LIFETIME_USAGE_EXCEEDED";
169
+ readonly type: "error";
170
+ }, {
171
+ readonly inputs: readonly [{
172
+ readonly internalType: "uint256";
173
+ readonly name: "usedValue";
174
+ readonly type: "uint256";
175
+ }, {
176
+ readonly internalType: "uint256";
177
+ readonly name: "maxValuePerUse";
178
+ readonly type: "uint256";
179
+ }];
180
+ readonly name: "SESSION_MAX_VALUE_EXCEEDED";
181
+ readonly type: "error";
182
+ }, {
183
+ readonly inputs: readonly [];
184
+ readonly name: "SESSION_NOT_ACTIVE";
185
+ readonly type: "error";
186
+ }, {
187
+ readonly inputs: readonly [{
188
+ readonly internalType: "address";
189
+ readonly name: "target";
190
+ readonly type: "address";
191
+ }];
192
+ readonly name: "SESSION_TRANSFER_POLICY_VIOLATED";
193
+ readonly type: "error";
194
+ }, {
195
+ readonly inputs: readonly [];
196
+ readonly name: "SESSION_UNLIMITED_FEES";
197
+ readonly type: "error";
198
+ }, {
199
+ readonly inputs: readonly [];
200
+ readonly name: "SESSION_ZERO_SIGNER";
201
+ readonly type: "error";
202
+ }, {
203
+ readonly inputs: readonly [{
204
+ readonly internalType: "uint256";
205
+ readonly name: "openSessions";
206
+ readonly type: "uint256";
207
+ }];
208
+ readonly name: "UNINSTALL_WITH_OPEN_SESSIONS";
209
+ readonly type: "error";
210
+ }, {
211
+ readonly anonymous: false;
212
+ readonly inputs: readonly [{
213
+ readonly indexed: true;
214
+ readonly internalType: "address";
215
+ readonly name: "account";
216
+ readonly type: "address";
217
+ }, {
218
+ readonly indexed: true;
219
+ readonly internalType: "bytes32";
220
+ readonly name: "sessionHash";
221
+ readonly type: "bytes32";
222
+ }, {
223
+ readonly components: readonly [{
224
+ readonly internalType: "address";
225
+ readonly name: "signer";
226
+ readonly type: "address";
227
+ }, {
228
+ readonly internalType: "uint256";
229
+ readonly name: "expiresAt";
230
+ readonly type: "uint256";
231
+ }, {
232
+ readonly components: readonly [{
233
+ readonly internalType: "enum SessionLib.LimitType";
234
+ readonly name: "limitType";
235
+ readonly type: "uint8";
236
+ }, {
237
+ readonly internalType: "uint256";
238
+ readonly name: "limit";
239
+ readonly type: "uint256";
240
+ }, {
241
+ readonly internalType: "uint256";
242
+ readonly name: "period";
243
+ readonly type: "uint256";
244
+ }];
245
+ readonly internalType: "struct SessionLib.UsageLimit";
246
+ readonly name: "feeLimit";
247
+ readonly type: "tuple";
248
+ }, {
249
+ readonly components: readonly [{
250
+ readonly internalType: "address";
251
+ readonly name: "target";
252
+ readonly type: "address";
253
+ }, {
254
+ readonly internalType: "bytes4";
255
+ readonly name: "selector";
256
+ readonly type: "bytes4";
257
+ }, {
258
+ readonly internalType: "uint256";
259
+ readonly name: "maxValuePerUse";
260
+ readonly type: "uint256";
261
+ }, {
262
+ readonly components: readonly [{
263
+ readonly internalType: "enum SessionLib.LimitType";
264
+ readonly name: "limitType";
265
+ readonly type: "uint8";
266
+ }, {
267
+ readonly internalType: "uint256";
268
+ readonly name: "limit";
269
+ readonly type: "uint256";
270
+ }, {
271
+ readonly internalType: "uint256";
272
+ readonly name: "period";
273
+ readonly type: "uint256";
274
+ }];
275
+ readonly internalType: "struct SessionLib.UsageLimit";
276
+ readonly name: "valueLimit";
277
+ readonly type: "tuple";
278
+ }, {
279
+ readonly components: readonly [{
280
+ readonly internalType: "enum SessionLib.Condition";
281
+ readonly name: "condition";
282
+ readonly type: "uint8";
283
+ }, {
284
+ readonly internalType: "uint64";
285
+ readonly name: "index";
286
+ readonly type: "uint64";
287
+ }, {
288
+ readonly internalType: "bytes32";
289
+ readonly name: "refValue";
290
+ readonly type: "bytes32";
291
+ }, {
292
+ readonly components: readonly [{
293
+ readonly internalType: "enum SessionLib.LimitType";
294
+ readonly name: "limitType";
295
+ readonly type: "uint8";
296
+ }, {
297
+ readonly internalType: "uint256";
298
+ readonly name: "limit";
299
+ readonly type: "uint256";
300
+ }, {
301
+ readonly internalType: "uint256";
302
+ readonly name: "period";
303
+ readonly type: "uint256";
304
+ }];
305
+ readonly internalType: "struct SessionLib.UsageLimit";
306
+ readonly name: "limit";
307
+ readonly type: "tuple";
308
+ }];
309
+ readonly internalType: "struct SessionLib.Constraint[]";
310
+ readonly name: "constraints";
311
+ readonly type: "tuple[]";
312
+ }];
313
+ readonly internalType: "struct SessionLib.CallSpec[]";
314
+ readonly name: "callPolicies";
315
+ readonly type: "tuple[]";
316
+ }, {
317
+ readonly components: readonly [{
318
+ readonly internalType: "address";
319
+ readonly name: "target";
320
+ readonly type: "address";
321
+ }, {
322
+ readonly internalType: "uint256";
323
+ readonly name: "maxValuePerUse";
324
+ readonly type: "uint256";
325
+ }, {
326
+ readonly components: readonly [{
327
+ readonly internalType: "enum SessionLib.LimitType";
328
+ readonly name: "limitType";
329
+ readonly type: "uint8";
330
+ }, {
331
+ readonly internalType: "uint256";
332
+ readonly name: "limit";
333
+ readonly type: "uint256";
334
+ }, {
335
+ readonly internalType: "uint256";
336
+ readonly name: "period";
337
+ readonly type: "uint256";
338
+ }];
339
+ readonly internalType: "struct SessionLib.UsageLimit";
340
+ readonly name: "valueLimit";
341
+ readonly type: "tuple";
342
+ }];
343
+ readonly internalType: "struct SessionLib.TransferSpec[]";
344
+ readonly name: "transferPolicies";
345
+ readonly type: "tuple[]";
346
+ }];
347
+ readonly indexed: false;
348
+ readonly internalType: "struct SessionLib.SessionSpec";
349
+ readonly name: "sessionSpec";
350
+ readonly type: "tuple";
351
+ }];
352
+ readonly name: "SessionCreated";
353
+ readonly type: "event";
354
+ }, {
355
+ readonly anonymous: false;
356
+ readonly inputs: readonly [{
357
+ readonly indexed: true;
358
+ readonly internalType: "address";
359
+ readonly name: "account";
360
+ readonly type: "address";
361
+ }, {
362
+ readonly indexed: true;
363
+ readonly internalType: "bytes32";
364
+ readonly name: "sessionHash";
365
+ readonly type: "bytes32";
366
+ }];
367
+ readonly name: "SessionRevoked";
368
+ readonly type: "event";
369
+ }, {
370
+ readonly inputs: readonly [{
371
+ readonly components: readonly [{
372
+ readonly internalType: "address";
373
+ readonly name: "signer";
374
+ readonly type: "address";
375
+ }, {
376
+ readonly internalType: "uint256";
377
+ readonly name: "expiresAt";
378
+ readonly type: "uint256";
379
+ }, {
380
+ readonly components: readonly [{
381
+ readonly internalType: "enum SessionLib.LimitType";
382
+ readonly name: "limitType";
383
+ readonly type: "uint8";
384
+ }, {
385
+ readonly internalType: "uint256";
386
+ readonly name: "limit";
387
+ readonly type: "uint256";
388
+ }, {
389
+ readonly internalType: "uint256";
390
+ readonly name: "period";
391
+ readonly type: "uint256";
392
+ }];
393
+ readonly internalType: "struct SessionLib.UsageLimit";
394
+ readonly name: "feeLimit";
395
+ readonly type: "tuple";
396
+ }, {
397
+ readonly components: readonly [{
398
+ readonly internalType: "address";
399
+ readonly name: "target";
400
+ readonly type: "address";
401
+ }, {
402
+ readonly internalType: "bytes4";
403
+ readonly name: "selector";
404
+ readonly type: "bytes4";
405
+ }, {
406
+ readonly internalType: "uint256";
407
+ readonly name: "maxValuePerUse";
408
+ readonly type: "uint256";
409
+ }, {
410
+ readonly components: readonly [{
411
+ readonly internalType: "enum SessionLib.LimitType";
412
+ readonly name: "limitType";
413
+ readonly type: "uint8";
414
+ }, {
415
+ readonly internalType: "uint256";
416
+ readonly name: "limit";
417
+ readonly type: "uint256";
418
+ }, {
419
+ readonly internalType: "uint256";
420
+ readonly name: "period";
421
+ readonly type: "uint256";
422
+ }];
423
+ readonly internalType: "struct SessionLib.UsageLimit";
424
+ readonly name: "valueLimit";
425
+ readonly type: "tuple";
426
+ }, {
427
+ readonly components: readonly [{
428
+ readonly internalType: "enum SessionLib.Condition";
429
+ readonly name: "condition";
430
+ readonly type: "uint8";
431
+ }, {
432
+ readonly internalType: "uint64";
433
+ readonly name: "index";
434
+ readonly type: "uint64";
435
+ }, {
436
+ readonly internalType: "bytes32";
437
+ readonly name: "refValue";
438
+ readonly type: "bytes32";
439
+ }, {
440
+ readonly components: readonly [{
441
+ readonly internalType: "enum SessionLib.LimitType";
442
+ readonly name: "limitType";
443
+ readonly type: "uint8";
444
+ }, {
445
+ readonly internalType: "uint256";
446
+ readonly name: "limit";
447
+ readonly type: "uint256";
448
+ }, {
449
+ readonly internalType: "uint256";
450
+ readonly name: "period";
451
+ readonly type: "uint256";
452
+ }];
453
+ readonly internalType: "struct SessionLib.UsageLimit";
454
+ readonly name: "limit";
455
+ readonly type: "tuple";
456
+ }];
457
+ readonly internalType: "struct SessionLib.Constraint[]";
458
+ readonly name: "constraints";
459
+ readonly type: "tuple[]";
460
+ }];
461
+ readonly internalType: "struct SessionLib.CallSpec[]";
462
+ readonly name: "callPolicies";
463
+ readonly type: "tuple[]";
464
+ }, {
465
+ readonly components: readonly [{
466
+ readonly internalType: "address";
467
+ readonly name: "target";
468
+ readonly type: "address";
469
+ }, {
470
+ readonly internalType: "uint256";
471
+ readonly name: "maxValuePerUse";
472
+ readonly type: "uint256";
473
+ }, {
474
+ readonly components: readonly [{
475
+ readonly internalType: "enum SessionLib.LimitType";
476
+ readonly name: "limitType";
477
+ readonly type: "uint8";
478
+ }, {
479
+ readonly internalType: "uint256";
480
+ readonly name: "limit";
481
+ readonly type: "uint256";
482
+ }, {
483
+ readonly internalType: "uint256";
484
+ readonly name: "period";
485
+ readonly type: "uint256";
486
+ }];
487
+ readonly internalType: "struct SessionLib.UsageLimit";
488
+ readonly name: "valueLimit";
489
+ readonly type: "tuple";
490
+ }];
491
+ readonly internalType: "struct SessionLib.TransferSpec[]";
492
+ readonly name: "transferPolicies";
493
+ readonly type: "tuple[]";
494
+ }];
495
+ readonly internalType: "struct SessionLib.SessionSpec";
496
+ readonly name: "sessionSpec";
497
+ readonly type: "tuple";
498
+ }];
499
+ readonly name: "createSession";
500
+ readonly outputs: readonly [];
501
+ readonly stateMutability: "nonpayable";
502
+ readonly type: "function";
503
+ }, {
504
+ readonly inputs: readonly [{
505
+ readonly internalType: "address";
506
+ readonly name: "smartAccount";
507
+ readonly type: "address";
508
+ }];
509
+ readonly name: "isInitialized";
510
+ readonly outputs: readonly [{
511
+ readonly internalType: "bool";
512
+ readonly name: "";
513
+ readonly type: "bool";
514
+ }];
515
+ readonly stateMutability: "view";
516
+ readonly type: "function";
517
+ }, {
518
+ readonly inputs: readonly [{
519
+ readonly internalType: "bytes";
520
+ readonly name: "data";
521
+ readonly type: "bytes";
522
+ }];
523
+ readonly name: "onInstall";
524
+ readonly outputs: readonly [];
525
+ readonly stateMutability: "nonpayable";
526
+ readonly type: "function";
527
+ }, {
528
+ readonly inputs: readonly [{
529
+ readonly internalType: "bytes";
530
+ readonly name: "data";
531
+ readonly type: "bytes";
532
+ }];
533
+ readonly name: "onUninstall";
534
+ readonly outputs: readonly [];
535
+ readonly stateMutability: "nonpayable";
536
+ readonly type: "function";
537
+ }, {
538
+ readonly inputs: readonly [{
539
+ readonly internalType: "bytes32";
540
+ readonly name: "sessionHash";
541
+ readonly type: "bytes32";
542
+ }];
543
+ readonly name: "revokeKey";
544
+ readonly outputs: readonly [];
545
+ readonly stateMutability: "nonpayable";
546
+ readonly type: "function";
547
+ }, {
548
+ readonly inputs: readonly [{
549
+ readonly internalType: "bytes32[]";
550
+ readonly name: "sessionHashes";
551
+ readonly type: "bytes32[]";
552
+ }];
553
+ readonly name: "revokeKeys";
554
+ readonly outputs: readonly [];
555
+ readonly stateMutability: "nonpayable";
556
+ readonly type: "function";
557
+ }, {
558
+ readonly inputs: readonly [{
559
+ readonly internalType: "address";
560
+ readonly name: "account";
561
+ readonly type: "address";
562
+ }, {
563
+ readonly components: readonly [{
564
+ readonly internalType: "address";
565
+ readonly name: "signer";
566
+ readonly type: "address";
567
+ }, {
568
+ readonly internalType: "uint256";
569
+ readonly name: "expiresAt";
570
+ readonly type: "uint256";
571
+ }, {
572
+ readonly components: readonly [{
573
+ readonly internalType: "enum SessionLib.LimitType";
574
+ readonly name: "limitType";
575
+ readonly type: "uint8";
576
+ }, {
577
+ readonly internalType: "uint256";
578
+ readonly name: "limit";
579
+ readonly type: "uint256";
580
+ }, {
581
+ readonly internalType: "uint256";
582
+ readonly name: "period";
583
+ readonly type: "uint256";
584
+ }];
585
+ readonly internalType: "struct SessionLib.UsageLimit";
586
+ readonly name: "feeLimit";
587
+ readonly type: "tuple";
588
+ }, {
589
+ readonly components: readonly [{
590
+ readonly internalType: "address";
591
+ readonly name: "target";
592
+ readonly type: "address";
593
+ }, {
594
+ readonly internalType: "bytes4";
595
+ readonly name: "selector";
596
+ readonly type: "bytes4";
597
+ }, {
598
+ readonly internalType: "uint256";
599
+ readonly name: "maxValuePerUse";
600
+ readonly type: "uint256";
601
+ }, {
602
+ readonly components: readonly [{
603
+ readonly internalType: "enum SessionLib.LimitType";
604
+ readonly name: "limitType";
605
+ readonly type: "uint8";
606
+ }, {
607
+ readonly internalType: "uint256";
608
+ readonly name: "limit";
609
+ readonly type: "uint256";
610
+ }, {
611
+ readonly internalType: "uint256";
612
+ readonly name: "period";
613
+ readonly type: "uint256";
614
+ }];
615
+ readonly internalType: "struct SessionLib.UsageLimit";
616
+ readonly name: "valueLimit";
617
+ readonly type: "tuple";
618
+ }, {
619
+ readonly components: readonly [{
620
+ readonly internalType: "enum SessionLib.Condition";
621
+ readonly name: "condition";
622
+ readonly type: "uint8";
623
+ }, {
624
+ readonly internalType: "uint64";
625
+ readonly name: "index";
626
+ readonly type: "uint64";
627
+ }, {
628
+ readonly internalType: "bytes32";
629
+ readonly name: "refValue";
630
+ readonly type: "bytes32";
631
+ }, {
632
+ readonly components: readonly [{
633
+ readonly internalType: "enum SessionLib.LimitType";
634
+ readonly name: "limitType";
635
+ readonly type: "uint8";
636
+ }, {
637
+ readonly internalType: "uint256";
638
+ readonly name: "limit";
639
+ readonly type: "uint256";
640
+ }, {
641
+ readonly internalType: "uint256";
642
+ readonly name: "period";
643
+ readonly type: "uint256";
644
+ }];
645
+ readonly internalType: "struct SessionLib.UsageLimit";
646
+ readonly name: "limit";
647
+ readonly type: "tuple";
648
+ }];
649
+ readonly internalType: "struct SessionLib.Constraint[]";
650
+ readonly name: "constraints";
651
+ readonly type: "tuple[]";
652
+ }];
653
+ readonly internalType: "struct SessionLib.CallSpec[]";
654
+ readonly name: "callPolicies";
655
+ readonly type: "tuple[]";
656
+ }, {
657
+ readonly components: readonly [{
658
+ readonly internalType: "address";
659
+ readonly name: "target";
660
+ readonly type: "address";
661
+ }, {
662
+ readonly internalType: "uint256";
663
+ readonly name: "maxValuePerUse";
664
+ readonly type: "uint256";
665
+ }, {
666
+ readonly components: readonly [{
667
+ readonly internalType: "enum SessionLib.LimitType";
668
+ readonly name: "limitType";
669
+ readonly type: "uint8";
670
+ }, {
671
+ readonly internalType: "uint256";
672
+ readonly name: "limit";
673
+ readonly type: "uint256";
674
+ }, {
675
+ readonly internalType: "uint256";
676
+ readonly name: "period";
677
+ readonly type: "uint256";
678
+ }];
679
+ readonly internalType: "struct SessionLib.UsageLimit";
680
+ readonly name: "valueLimit";
681
+ readonly type: "tuple";
682
+ }];
683
+ readonly internalType: "struct SessionLib.TransferSpec[]";
684
+ readonly name: "transferPolicies";
685
+ readonly type: "tuple[]";
686
+ }];
687
+ readonly internalType: "struct SessionLib.SessionSpec";
688
+ readonly name: "spec";
689
+ readonly type: "tuple";
690
+ }];
691
+ readonly name: "sessionState";
692
+ readonly outputs: readonly [{
693
+ readonly components: readonly [{
694
+ readonly internalType: "enum SessionLib.Status";
695
+ readonly name: "status";
696
+ readonly type: "uint8";
697
+ }, {
698
+ readonly internalType: "uint256";
699
+ readonly name: "feesRemaining";
700
+ readonly type: "uint256";
701
+ }, {
702
+ readonly components: readonly [{
703
+ readonly internalType: "uint256";
704
+ readonly name: "remaining";
705
+ readonly type: "uint256";
706
+ }, {
707
+ readonly internalType: "address";
708
+ readonly name: "target";
709
+ readonly type: "address";
710
+ }, {
711
+ readonly internalType: "bytes4";
712
+ readonly name: "selector";
713
+ readonly type: "bytes4";
714
+ }, {
715
+ readonly internalType: "uint256";
716
+ readonly name: "index";
717
+ readonly type: "uint256";
718
+ }];
719
+ readonly internalType: "struct SessionLib.LimitState[]";
720
+ readonly name: "transferValue";
721
+ readonly type: "tuple[]";
722
+ }, {
723
+ readonly components: readonly [{
724
+ readonly internalType: "uint256";
725
+ readonly name: "remaining";
726
+ readonly type: "uint256";
727
+ }, {
728
+ readonly internalType: "address";
729
+ readonly name: "target";
730
+ readonly type: "address";
731
+ }, {
732
+ readonly internalType: "bytes4";
733
+ readonly name: "selector";
734
+ readonly type: "bytes4";
735
+ }, {
736
+ readonly internalType: "uint256";
737
+ readonly name: "index";
738
+ readonly type: "uint256";
739
+ }];
740
+ readonly internalType: "struct SessionLib.LimitState[]";
741
+ readonly name: "callValue";
742
+ readonly type: "tuple[]";
743
+ }, {
744
+ readonly components: readonly [{
745
+ readonly internalType: "uint256";
746
+ readonly name: "remaining";
747
+ readonly type: "uint256";
748
+ }, {
749
+ readonly internalType: "address";
750
+ readonly name: "target";
751
+ readonly type: "address";
752
+ }, {
753
+ readonly internalType: "bytes4";
754
+ readonly name: "selector";
755
+ readonly type: "bytes4";
756
+ }, {
757
+ readonly internalType: "uint256";
758
+ readonly name: "index";
759
+ readonly type: "uint256";
760
+ }];
761
+ readonly internalType: "struct SessionLib.LimitState[]";
762
+ readonly name: "callParams";
763
+ readonly type: "tuple[]";
764
+ }];
765
+ readonly internalType: "struct SessionLib.SessionState";
766
+ readonly name: "";
767
+ readonly type: "tuple";
768
+ }];
769
+ readonly stateMutability: "view";
770
+ readonly type: "function";
771
+ }, {
772
+ readonly inputs: readonly [{
773
+ readonly internalType: "address";
774
+ readonly name: "account";
775
+ readonly type: "address";
776
+ }, {
777
+ readonly internalType: "bytes32";
778
+ readonly name: "sessionHash";
779
+ readonly type: "bytes32";
780
+ }];
781
+ readonly name: "sessionStatus";
782
+ readonly outputs: readonly [{
783
+ readonly internalType: "enum SessionLib.Status";
784
+ readonly name: "";
785
+ readonly type: "uint8";
786
+ }];
787
+ readonly stateMutability: "view";
788
+ readonly type: "function";
789
+ }, {
790
+ readonly inputs: readonly [{
791
+ readonly internalType: "bytes4";
792
+ readonly name: "interfaceId";
793
+ readonly type: "bytes4";
794
+ }];
795
+ readonly name: "supportsInterface";
796
+ readonly outputs: readonly [{
797
+ readonly internalType: "bool";
798
+ readonly name: "";
799
+ readonly type: "bool";
800
+ }];
801
+ readonly stateMutability: "pure";
802
+ readonly type: "function";
803
+ }, {
804
+ readonly inputs: readonly [{
805
+ readonly internalType: "bytes32";
806
+ readonly name: "";
807
+ readonly type: "bytes32";
808
+ }, {
809
+ readonly internalType: "bytes";
810
+ readonly name: "";
811
+ readonly type: "bytes";
812
+ }];
813
+ readonly name: "validateSignature";
814
+ readonly outputs: readonly [{
815
+ readonly internalType: "bool";
816
+ readonly name: "";
817
+ readonly type: "bool";
818
+ }];
819
+ readonly stateMutability: "pure";
820
+ readonly type: "function";
821
+ }, {
822
+ readonly inputs: readonly [{
823
+ readonly internalType: "bytes32";
824
+ readonly name: "signedHash";
825
+ readonly type: "bytes32";
826
+ }, {
827
+ readonly components: readonly [{
828
+ readonly internalType: "uint256";
829
+ readonly name: "txType";
830
+ readonly type: "uint256";
831
+ }, {
832
+ readonly internalType: "uint256";
833
+ readonly name: "from";
834
+ readonly type: "uint256";
835
+ }, {
836
+ readonly internalType: "uint256";
837
+ readonly name: "to";
838
+ readonly type: "uint256";
839
+ }, {
840
+ readonly internalType: "uint256";
841
+ readonly name: "gasLimit";
842
+ readonly type: "uint256";
843
+ }, {
844
+ readonly internalType: "uint256";
845
+ readonly name: "gasPerPubdataByteLimit";
846
+ readonly type: "uint256";
847
+ }, {
848
+ readonly internalType: "uint256";
849
+ readonly name: "maxFeePerGas";
850
+ readonly type: "uint256";
851
+ }, {
852
+ readonly internalType: "uint256";
853
+ readonly name: "maxPriorityFeePerGas";
854
+ readonly type: "uint256";
855
+ }, {
856
+ readonly internalType: "uint256";
857
+ readonly name: "paymaster";
858
+ readonly type: "uint256";
859
+ }, {
860
+ readonly internalType: "uint256";
861
+ readonly name: "nonce";
862
+ readonly type: "uint256";
863
+ }, {
864
+ readonly internalType: "uint256";
865
+ readonly name: "value";
866
+ readonly type: "uint256";
867
+ }, {
868
+ readonly internalType: "uint256[4]";
869
+ readonly name: "reserved";
870
+ readonly type: "uint256[4]";
871
+ }, {
872
+ readonly internalType: "bytes";
873
+ readonly name: "data";
874
+ readonly type: "bytes";
875
+ }, {
876
+ readonly internalType: "bytes";
877
+ readonly name: "signature";
878
+ readonly type: "bytes";
879
+ }, {
880
+ readonly internalType: "bytes32[]";
881
+ readonly name: "factoryDeps";
882
+ readonly type: "bytes32[]";
883
+ }, {
884
+ readonly internalType: "bytes";
885
+ readonly name: "paymasterInput";
886
+ readonly type: "bytes";
887
+ }, {
888
+ readonly internalType: "bytes";
889
+ readonly name: "reservedDynamic";
890
+ readonly type: "bytes";
891
+ }];
892
+ readonly internalType: "struct Transaction";
893
+ readonly name: "transaction";
894
+ readonly type: "tuple";
895
+ }];
896
+ readonly name: "validateTransaction";
897
+ readonly outputs: readonly [{
898
+ readonly internalType: "bool";
899
+ readonly name: "";
900
+ readonly type: "bool";
901
+ }];
902
+ readonly stateMutability: "nonpayable";
903
+ readonly type: "function";
904
+ }];