@inco/js 0.3.0 → 0.3.2

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 (56) hide show
  1. package/dist/cjs/advancedacl/index.d.ts +2 -0
  2. package/dist/cjs/advancedacl/index.js +19 -0
  3. package/dist/cjs/advancedacl/session-key.d.ts +28 -0
  4. package/dist/cjs/advancedacl/session-key.js +176 -0
  5. package/dist/cjs/advancedacl/types.d.ts +15 -0
  6. package/dist/cjs/advancedacl/types.js +3 -0
  7. package/dist/cjs/attestedcompute/attested-compute.d.ts +14 -16
  8. package/dist/cjs/attestedcompute/attested-compute.js +56 -71
  9. package/dist/cjs/attesteddecrypt/attested-decrypt.d.ts +18 -19
  10. package/dist/cjs/attesteddecrypt/attested-decrypt.js +50 -60
  11. package/dist/cjs/attesteddecrypt/index.d.ts +0 -1
  12. package/dist/cjs/attesteddecrypt/index.js +1 -2
  13. package/dist/cjs/generated/abis/lightning-preview.d.ts +2265 -0
  14. package/dist/cjs/generated/abis/lightning-preview.js +1429 -0
  15. package/dist/cjs/lite/attested-compute.d.ts +1 -2
  16. package/dist/cjs/lite/attested-compute.js +1 -4
  17. package/dist/cjs/lite/attested-decrypt.d.ts +1 -2
  18. package/dist/cjs/lite/attested-decrypt.js +1 -4
  19. package/dist/cjs/lite/lightning.d.ts +94 -1
  20. package/dist/cjs/lite/lightning.js +129 -2
  21. package/dist/cjs/local/local-node.d.ts +1 -1
  22. package/dist/cjs/local/local-node.js +15 -15
  23. package/dist/esm/advancedacl/index.d.ts +2 -0
  24. package/dist/esm/advancedacl/index.js +3 -0
  25. package/dist/esm/advancedacl/session-key.d.ts +28 -0
  26. package/dist/esm/advancedacl/session-key.js +170 -0
  27. package/dist/esm/advancedacl/types.d.ts +15 -0
  28. package/dist/esm/advancedacl/types.js +2 -0
  29. package/dist/esm/attestedcompute/attested-compute.d.ts +14 -16
  30. package/dist/esm/attestedcompute/attested-compute.js +55 -70
  31. package/dist/esm/attesteddecrypt/attested-decrypt.d.ts +18 -19
  32. package/dist/esm/attesteddecrypt/attested-decrypt.js +49 -59
  33. package/dist/esm/attesteddecrypt/index.d.ts +0 -1
  34. package/dist/esm/attesteddecrypt/index.js +1 -2
  35. package/dist/esm/generated/abis/lightning-preview.d.ts +2265 -0
  36. package/dist/esm/generated/abis/lightning-preview.js +1426 -0
  37. package/dist/esm/lite/attested-compute.d.ts +1 -2
  38. package/dist/esm/lite/attested-compute.js +2 -3
  39. package/dist/esm/lite/attested-decrypt.d.ts +1 -2
  40. package/dist/esm/lite/attested-decrypt.js +2 -3
  41. package/dist/esm/lite/lightning.d.ts +94 -1
  42. package/dist/esm/lite/lightning.js +129 -2
  43. package/dist/esm/local/local-node.d.ts +1 -1
  44. package/dist/esm/local/local-node.js +3 -3
  45. package/dist/types/advancedacl/index.d.ts +2 -0
  46. package/dist/types/advancedacl/session-key.d.ts +28 -0
  47. package/dist/types/advancedacl/types.d.ts +15 -0
  48. package/dist/types/attestedcompute/attested-compute.d.ts +14 -16
  49. package/dist/types/attesteddecrypt/attested-decrypt.d.ts +18 -19
  50. package/dist/types/attesteddecrypt/index.d.ts +0 -1
  51. package/dist/types/generated/abis/lightning-preview.d.ts +2265 -0
  52. package/dist/types/lite/attested-compute.d.ts +1 -2
  53. package/dist/types/lite/attested-decrypt.d.ts +1 -2
  54. package/dist/types/lite/lightning.d.ts +94 -1
  55. package/dist/types/local/local-node.d.ts +1 -1
  56. package/package.json +1 -1
@@ -0,0 +1,1426 @@
1
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2
+ // ABIHelper
3
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
4
+ export const abiHelperAbi = [
5
+ {
6
+ type: 'function',
7
+ inputs: [],
8
+ name: 'getSession',
9
+ outputs: [
10
+ {
11
+ name: '',
12
+ internalType: 'struct Session',
13
+ type: 'tuple',
14
+ components: [
15
+ { name: 'decrypter', internalType: 'address', type: 'address' },
16
+ { name: 'expiresAt', internalType: 'uint256', type: 'uint256' },
17
+ ],
18
+ },
19
+ ],
20
+ stateMutability: 'pure',
21
+ },
22
+ ];
23
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
24
+ // AdvancedAccessControl
25
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
26
+ export const advancedAccessControlAbi = [
27
+ {
28
+ type: 'function',
29
+ inputs: [
30
+ { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
31
+ { name: 'account', internalType: 'address', type: 'address' },
32
+ ],
33
+ name: 'allow',
34
+ outputs: [],
35
+ stateMutability: 'nonpayable',
36
+ },
37
+ {
38
+ type: 'function',
39
+ inputs: [
40
+ { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
41
+ { name: 'account', internalType: 'address', type: 'address' },
42
+ ],
43
+ name: 'allowTransient',
44
+ outputs: [],
45
+ stateMutability: 'nonpayable',
46
+ },
47
+ {
48
+ type: 'function',
49
+ inputs: [
50
+ {
51
+ name: 'voucher',
52
+ internalType: 'struct AllowanceVoucher',
53
+ type: 'tuple',
54
+ components: [
55
+ { name: 'sessionNonce', internalType: 'bytes32', type: 'bytes32' },
56
+ {
57
+ name: 'verifyingContract',
58
+ internalType: 'address',
59
+ type: 'address',
60
+ },
61
+ { name: 'callFunction', internalType: 'bytes4', type: 'bytes4' },
62
+ { name: 'sharerArgData', internalType: 'bytes', type: 'bytes' },
63
+ ],
64
+ },
65
+ ],
66
+ name: 'allowanceVoucherDigest',
67
+ outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
68
+ stateMutability: 'view',
69
+ },
70
+ {
71
+ type: 'function',
72
+ inputs: [
73
+ { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
74
+ { name: 'account', internalType: 'address', type: 'address' },
75
+ ],
76
+ name: 'allowedTransient',
77
+ outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
78
+ stateMutability: 'view',
79
+ },
80
+ {
81
+ type: 'function',
82
+ inputs: [
83
+ { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
84
+ {
85
+ name: 'proof',
86
+ internalType: 'struct AllowanceProof',
87
+ type: 'tuple',
88
+ components: [
89
+ { name: 'sharer', internalType: 'address', type: 'address' },
90
+ {
91
+ name: 'voucher',
92
+ internalType: 'struct AllowanceVoucher',
93
+ type: 'tuple',
94
+ components: [
95
+ {
96
+ name: 'sessionNonce',
97
+ internalType: 'bytes32',
98
+ type: 'bytes32',
99
+ },
100
+ {
101
+ name: 'verifyingContract',
102
+ internalType: 'address',
103
+ type: 'address',
104
+ },
105
+ { name: 'callFunction', internalType: 'bytes4', type: 'bytes4' },
106
+ { name: 'sharerArgData', internalType: 'bytes', type: 'bytes' },
107
+ ],
108
+ },
109
+ { name: 'voucherSignature', internalType: 'bytes', type: 'bytes' },
110
+ { name: 'requesterArgData', internalType: 'bytes', type: 'bytes' },
111
+ ],
112
+ },
113
+ ],
114
+ name: 'claimHandle',
115
+ outputs: [],
116
+ stateMutability: 'nonpayable',
117
+ },
118
+ {
119
+ type: 'function',
120
+ inputs: [],
121
+ name: 'cleanTransientStorage',
122
+ outputs: [],
123
+ stateMutability: 'nonpayable',
124
+ },
125
+ {
126
+ type: 'function',
127
+ inputs: [],
128
+ name: 'eip712Domain',
129
+ outputs: [
130
+ { name: 'fields', internalType: 'bytes1', type: 'bytes1' },
131
+ { name: 'name', internalType: 'string', type: 'string' },
132
+ { name: 'version', internalType: 'string', type: 'string' },
133
+ { name: 'chainId', internalType: 'uint256', type: 'uint256' },
134
+ { name: 'verifyingContract', internalType: 'address', type: 'address' },
135
+ { name: 'salt', internalType: 'bytes32', type: 'bytes32' },
136
+ { name: 'extensions', internalType: 'uint256[]', type: 'uint256[]' },
137
+ ],
138
+ stateMutability: 'view',
139
+ },
140
+ {
141
+ type: 'function',
142
+ inputs: [{ name: 'account', internalType: 'address', type: 'address' }],
143
+ name: 'getActiveVouchersSessionNonce',
144
+ outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
145
+ stateMutability: 'view',
146
+ },
147
+ {
148
+ type: 'function',
149
+ inputs: [
150
+ { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
151
+ { name: 'account', internalType: 'address', type: 'address' },
152
+ ],
153
+ name: 'isAllowed',
154
+ outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
155
+ stateMutability: 'view',
156
+ },
157
+ {
158
+ type: 'function',
159
+ inputs: [
160
+ { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
161
+ { name: 'account', internalType: 'address', type: 'address' },
162
+ {
163
+ name: 'proof',
164
+ internalType: 'struct AllowanceProof',
165
+ type: 'tuple',
166
+ components: [
167
+ { name: 'sharer', internalType: 'address', type: 'address' },
168
+ {
169
+ name: 'voucher',
170
+ internalType: 'struct AllowanceVoucher',
171
+ type: 'tuple',
172
+ components: [
173
+ {
174
+ name: 'sessionNonce',
175
+ internalType: 'bytes32',
176
+ type: 'bytes32',
177
+ },
178
+ {
179
+ name: 'verifyingContract',
180
+ internalType: 'address',
181
+ type: 'address',
182
+ },
183
+ { name: 'callFunction', internalType: 'bytes4', type: 'bytes4' },
184
+ { name: 'sharerArgData', internalType: 'bytes', type: 'bytes' },
185
+ ],
186
+ },
187
+ { name: 'voucherSignature', internalType: 'bytes', type: 'bytes' },
188
+ { name: 'requesterArgData', internalType: 'bytes', type: 'bytes' },
189
+ ],
190
+ },
191
+ ],
192
+ name: 'isAllowed',
193
+ outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
194
+ stateMutability: 'nonpayable',
195
+ },
196
+ {
197
+ type: 'function',
198
+ inputs: [
199
+ { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
200
+ { name: 'account', internalType: 'address', type: 'address' },
201
+ ],
202
+ name: 'persistAllowed',
203
+ outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
204
+ stateMutability: 'view',
205
+ },
206
+ {
207
+ type: 'function',
208
+ inputs: [],
209
+ name: 'updateActiveVouchersSessionNonce',
210
+ outputs: [],
211
+ stateMutability: 'nonpayable',
212
+ },
213
+ { type: 'event', anonymous: false, inputs: [], name: 'EIP712DomainChanged' },
214
+ { type: 'error', inputs: [], name: 'InvalidShortString' },
215
+ {
216
+ type: 'error',
217
+ inputs: [
218
+ {
219
+ name: 'providedSessionNonce',
220
+ internalType: 'bytes32',
221
+ type: 'bytes32',
222
+ },
223
+ { name: 'activeSessionNonce', internalType: 'bytes32', type: 'bytes32' },
224
+ ],
225
+ name: 'InvalidVoucherSessionNonce',
226
+ },
227
+ {
228
+ type: 'error',
229
+ inputs: [
230
+ { name: 'signer', internalType: 'address', type: 'address' },
231
+ { name: 'digest', internalType: 'bytes32', type: 'bytes32' },
232
+ { name: 'signature', internalType: 'bytes', type: 'bytes' },
233
+ ],
234
+ name: 'InvalidVoucherSignature',
235
+ },
236
+ {
237
+ type: 'error',
238
+ inputs: [
239
+ { name: 'verifyingContract', internalType: 'address', type: 'address' },
240
+ { name: 'callFunction', internalType: 'bytes4', type: 'bytes4' },
241
+ { name: 'argData', internalType: 'bytes', type: 'bytes' },
242
+ ],
243
+ name: 'ProofVerificationFailed',
244
+ },
245
+ {
246
+ type: 'error',
247
+ inputs: [
248
+ { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
249
+ { name: 'sender', internalType: 'address', type: 'address' },
250
+ ],
251
+ name: 'SenderNotAllowedForHandle',
252
+ },
253
+ {
254
+ type: 'error',
255
+ inputs: [
256
+ { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
257
+ { name: 'sharer', internalType: 'address', type: 'address' },
258
+ ],
259
+ name: 'SharerNotAllowedForHandle',
260
+ },
261
+ {
262
+ type: 'error',
263
+ inputs: [{ name: 'str', internalType: 'string', type: 'string' }],
264
+ name: 'StringTooLong',
265
+ },
266
+ ];
267
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
268
+ // IIncoLightningPreview
269
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
270
+ export const iIncoLightningPreviewAbi = [
271
+ {
272
+ type: 'function',
273
+ inputs: [
274
+ { name: 'iterationBound', internalType: 'uint256', type: 'uint256' },
275
+ ],
276
+ name: 'advanceLowWatermark',
277
+ outputs: [],
278
+ stateMutability: 'nonpayable',
279
+ },
280
+ {
281
+ type: 'function',
282
+ inputs: [
283
+ { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
284
+ { name: 'account', internalType: 'address', type: 'address' },
285
+ ],
286
+ name: 'allow',
287
+ outputs: [],
288
+ stateMutability: 'nonpayable',
289
+ },
290
+ {
291
+ type: 'function',
292
+ inputs: [
293
+ { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
294
+ { name: 'account', internalType: 'address', type: 'address' },
295
+ ],
296
+ name: 'allowTransient',
297
+ outputs: [],
298
+ stateMutability: 'nonpayable',
299
+ },
300
+ {
301
+ type: 'function',
302
+ inputs: [
303
+ {
304
+ name: 'voucher',
305
+ internalType: 'struct AllowanceVoucher',
306
+ type: 'tuple',
307
+ components: [
308
+ { name: 'sessionNonce', internalType: 'bytes32', type: 'bytes32' },
309
+ {
310
+ name: 'verifyingContract',
311
+ internalType: 'address',
312
+ type: 'address',
313
+ },
314
+ { name: 'callFunction', internalType: 'bytes4', type: 'bytes4' },
315
+ { name: 'sharerArgData', internalType: 'bytes', type: 'bytes' },
316
+ ],
317
+ },
318
+ ],
319
+ name: 'allowanceVoucherDigest',
320
+ outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
321
+ stateMutability: 'view',
322
+ },
323
+ {
324
+ type: 'function',
325
+ inputs: [
326
+ { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
327
+ { name: 'account', internalType: 'address', type: 'address' },
328
+ ],
329
+ name: 'allowedTransient',
330
+ outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
331
+ stateMutability: 'view',
332
+ },
333
+ {
334
+ type: 'function',
335
+ inputs: [{ name: 'value', internalType: 'address', type: 'address' }],
336
+ name: 'asEaddress',
337
+ outputs: [
338
+ { name: 'newEaddress', internalType: 'eaddress', type: 'bytes32' },
339
+ ],
340
+ stateMutability: 'nonpayable',
341
+ },
342
+ {
343
+ type: 'function',
344
+ inputs: [{ name: 'value', internalType: 'bool', type: 'bool' }],
345
+ name: 'asEbool',
346
+ outputs: [{ name: 'newEbool', internalType: 'ebool', type: 'bytes32' }],
347
+ stateMutability: 'nonpayable',
348
+ },
349
+ {
350
+ type: 'function',
351
+ inputs: [{ name: 'value', internalType: 'uint256', type: 'uint256' }],
352
+ name: 'asEuint256',
353
+ outputs: [
354
+ { name: 'newEuint256', internalType: 'euint256', type: 'bytes32' },
355
+ ],
356
+ stateMutability: 'nonpayable',
357
+ },
358
+ {
359
+ type: 'function',
360
+ inputs: [
361
+ { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
362
+ {
363
+ name: 'proof',
364
+ internalType: 'struct AllowanceProof',
365
+ type: 'tuple',
366
+ components: [
367
+ { name: 'sharer', internalType: 'address', type: 'address' },
368
+ {
369
+ name: 'voucher',
370
+ internalType: 'struct AllowanceVoucher',
371
+ type: 'tuple',
372
+ components: [
373
+ {
374
+ name: 'sessionNonce',
375
+ internalType: 'bytes32',
376
+ type: 'bytes32',
377
+ },
378
+ {
379
+ name: 'verifyingContract',
380
+ internalType: 'address',
381
+ type: 'address',
382
+ },
383
+ { name: 'callFunction', internalType: 'bytes4', type: 'bytes4' },
384
+ { name: 'sharerArgData', internalType: 'bytes', type: 'bytes' },
385
+ ],
386
+ },
387
+ { name: 'voucherSignature', internalType: 'bytes', type: 'bytes' },
388
+ { name: 'requesterArgData', internalType: 'bytes', type: 'bytes' },
389
+ ],
390
+ },
391
+ ],
392
+ name: 'claimHandle',
393
+ outputs: [],
394
+ stateMutability: 'nonpayable',
395
+ },
396
+ {
397
+ type: 'function',
398
+ inputs: [],
399
+ name: 'cleanTransientStorage',
400
+ outputs: [],
401
+ stateMutability: 'nonpayable',
402
+ },
403
+ {
404
+ type: 'function',
405
+ inputs: [
406
+ {
407
+ name: 'decryption',
408
+ internalType: 'struct DecryptionAttestation',
409
+ type: 'tuple',
410
+ components: [
411
+ { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
412
+ { name: 'value', internalType: 'bytes32', type: 'bytes32' },
413
+ ],
414
+ },
415
+ ],
416
+ name: 'decryptionAttestationDigest',
417
+ outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
418
+ stateMutability: 'view',
419
+ },
420
+ {
421
+ type: 'function',
422
+ inputs: [
423
+ { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
424
+ { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
425
+ ],
426
+ name: 'eAdd',
427
+ outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
428
+ stateMutability: 'nonpayable',
429
+ },
430
+ {
431
+ type: 'function',
432
+ inputs: [
433
+ { name: 'lhs', internalType: 'bytes32', type: 'bytes32' },
434
+ { name: 'rhs', internalType: 'bytes32', type: 'bytes32' },
435
+ ],
436
+ name: 'eBitAnd',
437
+ outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
438
+ stateMutability: 'nonpayable',
439
+ },
440
+ {
441
+ type: 'function',
442
+ inputs: [
443
+ { name: 'lhs', internalType: 'bytes32', type: 'bytes32' },
444
+ { name: 'rhs', internalType: 'bytes32', type: 'bytes32' },
445
+ ],
446
+ name: 'eBitOr',
447
+ outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
448
+ stateMutability: 'nonpayable',
449
+ },
450
+ {
451
+ type: 'function',
452
+ inputs: [
453
+ { name: 'lhs', internalType: 'bytes32', type: 'bytes32' },
454
+ { name: 'rhs', internalType: 'bytes32', type: 'bytes32' },
455
+ ],
456
+ name: 'eBitXor',
457
+ outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
458
+ stateMutability: 'nonpayable',
459
+ },
460
+ {
461
+ type: 'function',
462
+ inputs: [
463
+ { name: 'ct', internalType: 'bytes32', type: 'bytes32' },
464
+ { name: 'toType', internalType: 'enum ETypes', type: 'uint8' },
465
+ ],
466
+ name: 'eCast',
467
+ outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
468
+ stateMutability: 'nonpayable',
469
+ },
470
+ {
471
+ type: 'function',
472
+ inputs: [
473
+ { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
474
+ { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
475
+ ],
476
+ name: 'eDiv',
477
+ outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
478
+ stateMutability: 'nonpayable',
479
+ },
480
+ {
481
+ type: 'function',
482
+ inputs: [
483
+ { name: 'lhs', internalType: 'bytes32', type: 'bytes32' },
484
+ { name: 'rhs', internalType: 'bytes32', type: 'bytes32' },
485
+ ],
486
+ name: 'eEq',
487
+ outputs: [{ name: 'result', internalType: 'ebool', type: 'bytes32' }],
488
+ stateMutability: 'nonpayable',
489
+ },
490
+ {
491
+ type: 'function',
492
+ inputs: [
493
+ { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
494
+ { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
495
+ ],
496
+ name: 'eGe',
497
+ outputs: [{ name: 'result', internalType: 'ebool', type: 'bytes32' }],
498
+ stateMutability: 'nonpayable',
499
+ },
500
+ {
501
+ type: 'function',
502
+ inputs: [
503
+ { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
504
+ { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
505
+ ],
506
+ name: 'eGt',
507
+ outputs: [{ name: 'result', internalType: 'ebool', type: 'bytes32' }],
508
+ stateMutability: 'nonpayable',
509
+ },
510
+ {
511
+ type: 'function',
512
+ inputs: [
513
+ { name: 'control', internalType: 'ebool', type: 'bytes32' },
514
+ { name: 'ifTrue', internalType: 'bytes32', type: 'bytes32' },
515
+ { name: 'ifFalse', internalType: 'bytes32', type: 'bytes32' },
516
+ ],
517
+ name: 'eIfThenElse',
518
+ outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
519
+ stateMutability: 'nonpayable',
520
+ },
521
+ {
522
+ type: 'function',
523
+ inputs: [
524
+ { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
525
+ { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
526
+ ],
527
+ name: 'eLe',
528
+ outputs: [{ name: 'result', internalType: 'ebool', type: 'bytes32' }],
529
+ stateMutability: 'nonpayable',
530
+ },
531
+ {
532
+ type: 'function',
533
+ inputs: [
534
+ { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
535
+ { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
536
+ ],
537
+ name: 'eLt',
538
+ outputs: [{ name: 'result', internalType: 'ebool', type: 'bytes32' }],
539
+ stateMutability: 'nonpayable',
540
+ },
541
+ {
542
+ type: 'function',
543
+ inputs: [
544
+ { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
545
+ { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
546
+ ],
547
+ name: 'eMax',
548
+ outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
549
+ stateMutability: 'nonpayable',
550
+ },
551
+ {
552
+ type: 'function',
553
+ inputs: [
554
+ { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
555
+ { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
556
+ ],
557
+ name: 'eMin',
558
+ outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
559
+ stateMutability: 'nonpayable',
560
+ },
561
+ {
562
+ type: 'function',
563
+ inputs: [
564
+ { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
565
+ { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
566
+ ],
567
+ name: 'eMul',
568
+ outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
569
+ stateMutability: 'nonpayable',
570
+ },
571
+ {
572
+ type: 'function',
573
+ inputs: [
574
+ { name: 'lhs', internalType: 'bytes32', type: 'bytes32' },
575
+ { name: 'rhs', internalType: 'bytes32', type: 'bytes32' },
576
+ ],
577
+ name: 'eNe',
578
+ outputs: [{ name: 'result', internalType: 'ebool', type: 'bytes32' }],
579
+ stateMutability: 'nonpayable',
580
+ },
581
+ {
582
+ type: 'function',
583
+ inputs: [{ name: 'operand', internalType: 'ebool', type: 'bytes32' }],
584
+ name: 'eNot',
585
+ outputs: [{ name: 'result', internalType: 'ebool', type: 'bytes32' }],
586
+ stateMutability: 'nonpayable',
587
+ },
588
+ {
589
+ type: 'function',
590
+ inputs: [{ name: 'randType', internalType: 'enum ETypes', type: 'uint8' }],
591
+ name: 'eRand',
592
+ outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
593
+ stateMutability: 'nonpayable',
594
+ },
595
+ {
596
+ type: 'function',
597
+ inputs: [
598
+ { name: 'upperBound', internalType: 'bytes32', type: 'bytes32' },
599
+ { name: 'randType', internalType: 'enum ETypes', type: 'uint8' },
600
+ ],
601
+ name: 'eRandBounded',
602
+ outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
603
+ stateMutability: 'nonpayable',
604
+ },
605
+ {
606
+ type: 'function',
607
+ inputs: [
608
+ { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
609
+ { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
610
+ ],
611
+ name: 'eRem',
612
+ outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
613
+ stateMutability: 'nonpayable',
614
+ },
615
+ {
616
+ type: 'function',
617
+ inputs: [
618
+ { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
619
+ { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
620
+ ],
621
+ name: 'eRotl',
622
+ outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
623
+ stateMutability: 'nonpayable',
624
+ },
625
+ {
626
+ type: 'function',
627
+ inputs: [
628
+ { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
629
+ { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
630
+ ],
631
+ name: 'eRotr',
632
+ outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
633
+ stateMutability: 'nonpayable',
634
+ },
635
+ {
636
+ type: 'function',
637
+ inputs: [
638
+ { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
639
+ { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
640
+ ],
641
+ name: 'eShl',
642
+ outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
643
+ stateMutability: 'nonpayable',
644
+ },
645
+ {
646
+ type: 'function',
647
+ inputs: [
648
+ { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
649
+ { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
650
+ ],
651
+ name: 'eShr',
652
+ outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
653
+ stateMutability: 'nonpayable',
654
+ },
655
+ {
656
+ type: 'function',
657
+ inputs: [
658
+ { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
659
+ { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
660
+ ],
661
+ name: 'eSub',
662
+ outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
663
+ stateMutability: 'nonpayable',
664
+ },
665
+ {
666
+ type: 'function',
667
+ inputs: [
668
+ {
669
+ name: 'result',
670
+ internalType: 'struct DecryptionResult',
671
+ type: 'tuple',
672
+ components: [
673
+ {
674
+ name: 'abiEncodedResult',
675
+ internalType: 'bytes32',
676
+ type: 'bytes32',
677
+ },
678
+ { name: 'requestId', internalType: 'uint256', type: 'uint256' },
679
+ { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
680
+ ],
681
+ },
682
+ { name: 'signature', internalType: 'bytes', type: 'bytes' },
683
+ ],
684
+ name: 'fulfillRequest',
685
+ outputs: [],
686
+ stateMutability: 'nonpayable',
687
+ },
688
+ {
689
+ type: 'function',
690
+ inputs: [
691
+ {
692
+ name: 'results',
693
+ internalType: 'struct SignedDecryptionResult[]',
694
+ type: 'tuple[]',
695
+ components: [
696
+ {
697
+ name: 'result',
698
+ internalType: 'struct DecryptionResult',
699
+ type: 'tuple',
700
+ components: [
701
+ {
702
+ name: 'abiEncodedResult',
703
+ internalType: 'bytes32',
704
+ type: 'bytes32',
705
+ },
706
+ { name: 'requestId', internalType: 'uint256', type: 'uint256' },
707
+ { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
708
+ ],
709
+ },
710
+ { name: 'signature', internalType: 'bytes', type: 'bytes' },
711
+ ],
712
+ },
713
+ ],
714
+ name: 'fulfillRequestsBatch',
715
+ outputs: [],
716
+ stateMutability: 'nonpayable',
717
+ },
718
+ {
719
+ type: 'function',
720
+ inputs: [{ name: 'account', internalType: 'address', type: 'address' }],
721
+ name: 'getActiveVouchersSessionNonce',
722
+ outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
723
+ stateMutability: 'view',
724
+ },
725
+ {
726
+ type: 'function',
727
+ inputs: [
728
+ { name: 'ciphertext', internalType: 'bytes', type: 'bytes' },
729
+ { name: 'user', internalType: 'address', type: 'address' },
730
+ { name: 'contractAddress', internalType: 'address', type: 'address' },
731
+ { name: 'inputType', internalType: 'enum ETypes', type: 'uint8' },
732
+ ],
733
+ name: 'getInputHandle',
734
+ outputs: [
735
+ { name: 'generatedHandle', internalType: 'bytes32', type: 'bytes32' },
736
+ ],
737
+ stateMutability: 'view',
738
+ },
739
+ {
740
+ type: 'function',
741
+ inputs: [],
742
+ name: 'getLowWatermarkRequestId',
743
+ outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
744
+ stateMutability: 'view',
745
+ },
746
+ {
747
+ type: 'function',
748
+ inputs: [],
749
+ name: 'getNextRequestId',
750
+ outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
751
+ stateMutability: 'view',
752
+ },
753
+ {
754
+ type: 'function',
755
+ inputs: [
756
+ { name: 'op', internalType: 'enum EOps', type: 'uint8' },
757
+ { name: 'returnType', internalType: 'enum ETypes', type: 'uint8' },
758
+ { name: 'value', internalType: 'bytes32', type: 'bytes32' },
759
+ ],
760
+ name: 'getOpResultHandle',
761
+ outputs: [
762
+ { name: 'generatedHandle', internalType: 'bytes32', type: 'bytes32' },
763
+ ],
764
+ stateMutability: 'pure',
765
+ },
766
+ {
767
+ type: 'function',
768
+ inputs: [
769
+ { name: 'op', internalType: 'enum EOps', type: 'uint8' },
770
+ { name: 'returnType', internalType: 'enum ETypes', type: 'uint8' },
771
+ { name: 'inputA', internalType: 'bytes32', type: 'bytes32' },
772
+ { name: 'inputB', internalType: 'bytes32', type: 'bytes32' },
773
+ { name: 'inputC', internalType: 'bytes32', type: 'bytes32' },
774
+ ],
775
+ name: 'getOpResultHandle',
776
+ outputs: [
777
+ { name: 'generatedHandle', internalType: 'bytes32', type: 'bytes32' },
778
+ ],
779
+ stateMutability: 'pure',
780
+ },
781
+ {
782
+ type: 'function',
783
+ inputs: [
784
+ { name: 'op', internalType: 'enum EOps', type: 'uint8' },
785
+ { name: 'returnType', internalType: 'enum ETypes', type: 'uint8' },
786
+ { name: 'counter', internalType: 'uint256', type: 'uint256' },
787
+ { name: 'upperBound', internalType: 'bytes32', type: 'bytes32' },
788
+ ],
789
+ name: 'getOpResultHandle',
790
+ outputs: [
791
+ { name: 'generatedHandle', internalType: 'bytes32', type: 'bytes32' },
792
+ ],
793
+ stateMutability: 'pure',
794
+ },
795
+ {
796
+ type: 'function',
797
+ inputs: [
798
+ { name: 'op', internalType: 'enum EOps', type: 'uint8' },
799
+ { name: 'returnType', internalType: 'enum ETypes', type: 'uint8' },
800
+ { name: 'lhs', internalType: 'bytes32', type: 'bytes32' },
801
+ { name: 'rhs', internalType: 'bytes32', type: 'bytes32' },
802
+ ],
803
+ name: 'getOpResultHandle',
804
+ outputs: [
805
+ { name: 'generatedHandle', internalType: 'bytes32', type: 'bytes32' },
806
+ ],
807
+ stateMutability: 'pure',
808
+ },
809
+ {
810
+ type: 'function',
811
+ inputs: [
812
+ { name: 'offset', internalType: 'uint256', type: 'uint256' },
813
+ { name: 'maxRequests', internalType: 'uint256', type: 'uint256' },
814
+ ],
815
+ name: 'getPendingRequests',
816
+ outputs: [
817
+ { name: 'nextOffset', internalType: 'uint256', type: 'uint256' },
818
+ {
819
+ name: 'requests',
820
+ internalType: 'struct Request[]',
821
+ type: 'tuple[]',
822
+ components: [
823
+ { name: 'maxTimestamp', internalType: 'uint256', type: 'uint256' },
824
+ {
825
+ name: 'callbackContract',
826
+ internalType: 'address',
827
+ type: 'address',
828
+ },
829
+ { name: 'callbackSelector', internalType: 'bytes4', type: 'bytes4' },
830
+ { name: 'fulfilled', internalType: 'bool', type: 'bool' },
831
+ { name: 'data', internalType: 'bytes', type: 'bytes' },
832
+ { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
833
+ { name: 'requestId', internalType: 'uint256', type: 'uint256' },
834
+ ],
835
+ },
836
+ ],
837
+ stateMutability: 'view',
838
+ },
839
+ {
840
+ type: 'function',
841
+ inputs: [
842
+ { name: 'offset', internalType: 'uint256', type: 'uint256' },
843
+ { name: 'maxRequests', internalType: 'uint256', type: 'uint256' },
844
+ { name: 'iterationBound', internalType: 'uint256', type: 'uint256' },
845
+ ],
846
+ name: 'getPendingRequests',
847
+ outputs: [
848
+ { name: 'nextOffset', internalType: 'uint256', type: 'uint256' },
849
+ {
850
+ name: 'requests',
851
+ internalType: 'struct Request[]',
852
+ type: 'tuple[]',
853
+ components: [
854
+ { name: 'maxTimestamp', internalType: 'uint256', type: 'uint256' },
855
+ {
856
+ name: 'callbackContract',
857
+ internalType: 'address',
858
+ type: 'address',
859
+ },
860
+ { name: 'callbackSelector', internalType: 'bytes4', type: 'bytes4' },
861
+ { name: 'fulfilled', internalType: 'bool', type: 'bool' },
862
+ { name: 'data', internalType: 'bytes', type: 'bytes' },
863
+ { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
864
+ { name: 'requestId', internalType: 'uint256', type: 'uint256' },
865
+ ],
866
+ },
867
+ ],
868
+ stateMutability: 'view',
869
+ },
870
+ {
871
+ type: 'function',
872
+ inputs: [
873
+ { name: 'plaintextBytes', internalType: 'bytes32', type: 'bytes32' },
874
+ { name: 'handleType', internalType: 'enum ETypes', type: 'uint8' },
875
+ ],
876
+ name: 'getTrivialEncryptHandle',
877
+ outputs: [
878
+ { name: 'generatedHandle', internalType: 'bytes32', type: 'bytes32' },
879
+ ],
880
+ stateMutability: 'view',
881
+ },
882
+ {
883
+ type: 'function',
884
+ inputs: [],
885
+ name: 'includesPreviewFeatures',
886
+ outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
887
+ stateMutability: 'pure',
888
+ },
889
+ {
890
+ type: 'function',
891
+ inputs: [
892
+ { name: 'owner', internalType: 'address', type: 'address' },
893
+ { name: 'teeLifecycleAddress', internalType: 'address', type: 'address' },
894
+ ],
895
+ name: 'initialize',
896
+ outputs: [],
897
+ stateMutability: 'nonpayable',
898
+ },
899
+ {
900
+ type: 'function',
901
+ inputs: [
902
+ { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
903
+ { name: 'account', internalType: 'address', type: 'address' },
904
+ ],
905
+ name: 'isAllowed',
906
+ outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
907
+ stateMutability: 'view',
908
+ },
909
+ {
910
+ type: 'function',
911
+ inputs: [
912
+ { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
913
+ { name: 'account', internalType: 'address', type: 'address' },
914
+ {
915
+ name: 'proof',
916
+ internalType: 'struct AllowanceProof',
917
+ type: 'tuple',
918
+ components: [
919
+ { name: 'sharer', internalType: 'address', type: 'address' },
920
+ {
921
+ name: 'voucher',
922
+ internalType: 'struct AllowanceVoucher',
923
+ type: 'tuple',
924
+ components: [
925
+ {
926
+ name: 'sessionNonce',
927
+ internalType: 'bytes32',
928
+ type: 'bytes32',
929
+ },
930
+ {
931
+ name: 'verifyingContract',
932
+ internalType: 'address',
933
+ type: 'address',
934
+ },
935
+ { name: 'callFunction', internalType: 'bytes4', type: 'bytes4' },
936
+ { name: 'sharerArgData', internalType: 'bytes', type: 'bytes' },
937
+ ],
938
+ },
939
+ { name: 'voucherSignature', internalType: 'bytes', type: 'bytes' },
940
+ { name: 'requesterArgData', internalType: 'bytes', type: 'bytes' },
941
+ ],
942
+ },
943
+ ],
944
+ name: 'isAllowed',
945
+ outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
946
+ stateMutability: 'nonpayable',
947
+ },
948
+ {
949
+ type: 'function',
950
+ inputs: [
951
+ {
952
+ name: 'decryption',
953
+ internalType: 'struct DecryptionAttestation',
954
+ type: 'tuple',
955
+ components: [
956
+ { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
957
+ { name: 'value', internalType: 'bytes32', type: 'bytes32' },
958
+ ],
959
+ },
960
+ { name: 'signature', internalType: 'bytes', type: 'bytes' },
961
+ ],
962
+ name: 'isValidDecryptionAttestation',
963
+ outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
964
+ stateMutability: 'view',
965
+ },
966
+ {
967
+ type: 'function',
968
+ inputs: [{ name: 'handle', internalType: 'bytes32', type: 'bytes32' }],
969
+ name: 'lengthOf',
970
+ outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }],
971
+ stateMutability: 'pure',
972
+ },
973
+ {
974
+ type: 'function',
975
+ inputs: [
976
+ { name: 'list', internalType: 'elist', type: 'bytes32' },
977
+ { name: 'value', internalType: 'bytes32', type: 'bytes32' },
978
+ ],
979
+ name: 'listAppend',
980
+ outputs: [{ name: 'result', internalType: 'elist', type: 'bytes32' }],
981
+ stateMutability: 'nonpayable',
982
+ },
983
+ {
984
+ type: 'function',
985
+ inputs: [
986
+ { name: 'lhs', internalType: 'elist', type: 'bytes32' },
987
+ { name: 'rhs', internalType: 'elist', type: 'bytes32' },
988
+ ],
989
+ name: 'listConcat',
990
+ outputs: [{ name: 'result', internalType: 'elist', type: 'bytes32' }],
991
+ stateMutability: 'nonpayable',
992
+ },
993
+ {
994
+ type: 'function',
995
+ inputs: [
996
+ { name: 'list', internalType: 'elist', type: 'bytes32' },
997
+ { name: 'i', internalType: 'uint16', type: 'uint16' },
998
+ ],
999
+ name: 'listGet',
1000
+ outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
1001
+ stateMutability: 'nonpayable',
1002
+ },
1003
+ {
1004
+ type: 'function',
1005
+ inputs: [
1006
+ { name: 'list', internalType: 'elist', type: 'bytes32' },
1007
+ { name: 'i', internalType: 'bytes32', type: 'bytes32' },
1008
+ { name: 'defaultValue', internalType: 'bytes32', type: 'bytes32' },
1009
+ ],
1010
+ name: 'listGetOr',
1011
+ outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
1012
+ stateMutability: 'nonpayable',
1013
+ },
1014
+ {
1015
+ type: 'function',
1016
+ inputs: [
1017
+ { name: 'list', internalType: 'elist', type: 'bytes32' },
1018
+ { name: 'i', internalType: 'bytes32', type: 'bytes32' },
1019
+ { name: 'value', internalType: 'bytes32', type: 'bytes32' },
1020
+ ],
1021
+ name: 'listInsert',
1022
+ outputs: [{ name: 'result', internalType: 'elist', type: 'bytes32' }],
1023
+ stateMutability: 'nonpayable',
1024
+ },
1025
+ {
1026
+ type: 'function',
1027
+ inputs: [
1028
+ { name: 'start', internalType: 'uint16', type: 'uint16' },
1029
+ { name: 'end', internalType: 'uint16', type: 'uint16' },
1030
+ ],
1031
+ name: 'listRange',
1032
+ outputs: [{ name: 'result', internalType: 'elist', type: 'bytes32' }],
1033
+ stateMutability: 'nonpayable',
1034
+ },
1035
+ {
1036
+ type: 'function',
1037
+ inputs: [{ name: 'list', internalType: 'elist', type: 'bytes32' }],
1038
+ name: 'listReverse',
1039
+ outputs: [{ name: 'result', internalType: 'elist', type: 'bytes32' }],
1040
+ stateMutability: 'nonpayable',
1041
+ },
1042
+ {
1043
+ type: 'function',
1044
+ inputs: [
1045
+ { name: 'list', internalType: 'elist', type: 'bytes32' },
1046
+ { name: 'i', internalType: 'bytes32', type: 'bytes32' },
1047
+ { name: 'value', internalType: 'bytes32', type: 'bytes32' },
1048
+ ],
1049
+ name: 'listSet',
1050
+ outputs: [{ name: 'result', internalType: 'elist', type: 'bytes32' }],
1051
+ stateMutability: 'nonpayable',
1052
+ },
1053
+ {
1054
+ type: 'function',
1055
+ inputs: [{ name: 'list', internalType: 'elist', type: 'bytes32' }],
1056
+ name: 'listShuffle',
1057
+ outputs: [{ name: 'result', internalType: 'elist', type: 'bytes32' }],
1058
+ stateMutability: 'nonpayable',
1059
+ },
1060
+ {
1061
+ type: 'function',
1062
+ inputs: [
1063
+ { name: 'list', internalType: 'elist', type: 'bytes32' },
1064
+ { name: 'start', internalType: 'bytes32', type: 'bytes32' },
1065
+ { name: 'len', internalType: 'uint16', type: 'uint16' },
1066
+ { name: 'defaultValue', internalType: 'bytes32', type: 'bytes32' },
1067
+ ],
1068
+ name: 'listSlice',
1069
+ outputs: [{ name: 'result', internalType: 'elist', type: 'bytes32' }],
1070
+ stateMutability: 'nonpayable',
1071
+ },
1072
+ {
1073
+ type: 'function',
1074
+ inputs: [
1075
+ { name: 'handles', internalType: 'bytes32[]', type: 'bytes32[]' },
1076
+ { name: 'listType', internalType: 'enum ETypes', type: 'uint8' },
1077
+ ],
1078
+ name: 'newEList',
1079
+ outputs: [{ name: 'newList', internalType: 'elist', type: 'bytes32' }],
1080
+ stateMutability: 'nonpayable',
1081
+ },
1082
+ {
1083
+ type: 'function',
1084
+ inputs: [
1085
+ { name: 'inputs', internalType: 'bytes[]', type: 'bytes[]' },
1086
+ { name: 'listType', internalType: 'enum ETypes', type: 'uint8' },
1087
+ { name: 'user', internalType: 'address', type: 'address' },
1088
+ ],
1089
+ name: 'newEList',
1090
+ outputs: [{ name: 'newList', internalType: 'elist', type: 'bytes32' }],
1091
+ stateMutability: 'nonpayable',
1092
+ },
1093
+ {
1094
+ type: 'function',
1095
+ inputs: [
1096
+ { name: 'ciphertext', internalType: 'bytes', type: 'bytes' },
1097
+ { name: 'user', internalType: 'address', type: 'address' },
1098
+ ],
1099
+ name: 'newEaddress',
1100
+ outputs: [{ name: 'newValue', internalType: 'eaddress', type: 'bytes32' }],
1101
+ stateMutability: 'nonpayable',
1102
+ },
1103
+ {
1104
+ type: 'function',
1105
+ inputs: [
1106
+ { name: 'ciphertext', internalType: 'bytes', type: 'bytes' },
1107
+ { name: 'user', internalType: 'address', type: 'address' },
1108
+ ],
1109
+ name: 'newEbool',
1110
+ outputs: [{ name: 'newValue', internalType: 'ebool', type: 'bytes32' }],
1111
+ stateMutability: 'nonpayable',
1112
+ },
1113
+ {
1114
+ type: 'function',
1115
+ inputs: [
1116
+ { name: 'ciphertext', internalType: 'bytes', type: 'bytes' },
1117
+ { name: 'user', internalType: 'address', type: 'address' },
1118
+ ],
1119
+ name: 'newEuint256',
1120
+ outputs: [{ name: 'newValue', internalType: 'euint256', type: 'bytes32' }],
1121
+ stateMutability: 'nonpayable',
1122
+ },
1123
+ {
1124
+ type: 'function',
1125
+ inputs: [
1126
+ { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
1127
+ { name: 'account', internalType: 'address', type: 'address' },
1128
+ ],
1129
+ name: 'persistAllowed',
1130
+ outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
1131
+ stateMutability: 'view',
1132
+ },
1133
+ {
1134
+ type: 'function',
1135
+ inputs: [
1136
+ { name: 'callbackSelector', internalType: 'bytes4', type: 'bytes4' },
1137
+ { name: 'maxTimestamp', internalType: 'uint256', type: 'uint256' },
1138
+ { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
1139
+ { name: 'data', internalType: 'bytes', type: 'bytes' },
1140
+ ],
1141
+ name: 'requestDecryption',
1142
+ outputs: [{ name: 'requestId', internalType: 'uint256', type: 'uint256' }],
1143
+ stateMutability: 'nonpayable',
1144
+ },
1145
+ {
1146
+ type: 'function',
1147
+ inputs: [],
1148
+ name: 'updateActiveVouchersSessionNonce',
1149
+ outputs: [],
1150
+ stateMutability: 'nonpayable',
1151
+ },
1152
+ ];
1153
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1154
+ // SessionVerifier
1155
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1156
+ export const sessionVerifierAbi = [
1157
+ {
1158
+ type: 'constructor',
1159
+ inputs: [{ name: 'salt', internalType: 'bytes32', type: 'bytes32' }],
1160
+ stateMutability: 'nonpayable',
1161
+ },
1162
+ { type: 'fallback', stateMutability: 'nonpayable' },
1163
+ {
1164
+ type: 'function',
1165
+ inputs: [],
1166
+ name: 'UPGRADE_INTERFACE_VERSION',
1167
+ outputs: [{ name: '', internalType: 'string', type: 'string' }],
1168
+ stateMutability: 'view',
1169
+ },
1170
+ {
1171
+ type: 'function',
1172
+ inputs: [
1173
+ { name: '', internalType: 'bytes32', type: 'bytes32' },
1174
+ { name: 'account', internalType: 'address', type: 'address' },
1175
+ { name: 'sharerArgData', internalType: 'bytes', type: 'bytes' },
1176
+ { name: '', internalType: 'bytes', type: 'bytes' },
1177
+ ],
1178
+ name: 'canUseSession',
1179
+ outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
1180
+ stateMutability: 'view',
1181
+ },
1182
+ {
1183
+ type: 'function',
1184
+ inputs: [],
1185
+ name: 'eip712Domain',
1186
+ outputs: [
1187
+ { name: 'fields', internalType: 'bytes1', type: 'bytes1' },
1188
+ { name: 'name', internalType: 'string', type: 'string' },
1189
+ { name: 'version', internalType: 'string', type: 'string' },
1190
+ { name: 'chainId', internalType: 'uint256', type: 'uint256' },
1191
+ { name: 'verifyingContract', internalType: 'address', type: 'address' },
1192
+ { name: 'salt', internalType: 'bytes32', type: 'bytes32' },
1193
+ { name: 'extensions', internalType: 'uint256[]', type: 'uint256[]' },
1194
+ ],
1195
+ stateMutability: 'view',
1196
+ },
1197
+ {
1198
+ type: 'function',
1199
+ inputs: [],
1200
+ name: 'getName',
1201
+ outputs: [{ name: '', internalType: 'string', type: 'string' }],
1202
+ stateMutability: 'view',
1203
+ },
1204
+ {
1205
+ type: 'function',
1206
+ inputs: [],
1207
+ name: 'getVersion',
1208
+ outputs: [{ name: '', internalType: 'string', type: 'string' }],
1209
+ stateMutability: 'view',
1210
+ },
1211
+ {
1212
+ type: 'function',
1213
+ inputs: [],
1214
+ name: 'getVersionedName',
1215
+ outputs: [{ name: '', internalType: 'string', type: 'string' }],
1216
+ stateMutability: 'view',
1217
+ },
1218
+ {
1219
+ type: 'function',
1220
+ inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],
1221
+ name: 'initialize',
1222
+ outputs: [],
1223
+ stateMutability: 'nonpayable',
1224
+ },
1225
+ {
1226
+ type: 'function',
1227
+ inputs: [],
1228
+ name: 'majorVersion',
1229
+ outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }],
1230
+ stateMutability: 'view',
1231
+ },
1232
+ {
1233
+ type: 'function',
1234
+ inputs: [],
1235
+ name: 'minorVersion',
1236
+ outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }],
1237
+ stateMutability: 'view',
1238
+ },
1239
+ {
1240
+ type: 'function',
1241
+ inputs: [],
1242
+ name: 'owner',
1243
+ outputs: [{ name: '', internalType: 'address', type: 'address' }],
1244
+ stateMutability: 'view',
1245
+ },
1246
+ {
1247
+ type: 'function',
1248
+ inputs: [],
1249
+ name: 'patchVersion',
1250
+ outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }],
1251
+ stateMutability: 'view',
1252
+ },
1253
+ {
1254
+ type: 'function',
1255
+ inputs: [],
1256
+ name: 'proxiableUUID',
1257
+ outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
1258
+ stateMutability: 'view',
1259
+ },
1260
+ {
1261
+ type: 'function',
1262
+ inputs: [],
1263
+ name: 'renounceOwnership',
1264
+ outputs: [],
1265
+ stateMutability: 'nonpayable',
1266
+ },
1267
+ {
1268
+ type: 'function',
1269
+ inputs: [],
1270
+ name: 'salt',
1271
+ outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
1272
+ stateMutability: 'view',
1273
+ },
1274
+ {
1275
+ type: 'function',
1276
+ inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
1277
+ name: 'transferOwnership',
1278
+ outputs: [],
1279
+ stateMutability: 'nonpayable',
1280
+ },
1281
+ {
1282
+ type: 'function',
1283
+ inputs: [
1284
+ { name: 'newImplementation', internalType: 'address', type: 'address' },
1285
+ { name: 'data', internalType: 'bytes', type: 'bytes' },
1286
+ ],
1287
+ name: 'upgradeToAndCall',
1288
+ outputs: [],
1289
+ stateMutability: 'payable',
1290
+ },
1291
+ { type: 'event', anonymous: false, inputs: [], name: 'EIP712DomainChanged' },
1292
+ {
1293
+ type: 'event',
1294
+ anonymous: false,
1295
+ inputs: [
1296
+ {
1297
+ name: 'version',
1298
+ internalType: 'uint64',
1299
+ type: 'uint64',
1300
+ indexed: false,
1301
+ },
1302
+ ],
1303
+ name: 'Initialized',
1304
+ },
1305
+ {
1306
+ type: 'event',
1307
+ anonymous: false,
1308
+ inputs: [
1309
+ {
1310
+ name: 'previousOwner',
1311
+ internalType: 'address',
1312
+ type: 'address',
1313
+ indexed: true,
1314
+ },
1315
+ {
1316
+ name: 'newOwner',
1317
+ internalType: 'address',
1318
+ type: 'address',
1319
+ indexed: true,
1320
+ },
1321
+ ],
1322
+ name: 'OwnershipTransferred',
1323
+ },
1324
+ {
1325
+ type: 'event',
1326
+ anonymous: false,
1327
+ inputs: [
1328
+ {
1329
+ name: 'implementation',
1330
+ internalType: 'address',
1331
+ type: 'address',
1332
+ indexed: true,
1333
+ },
1334
+ ],
1335
+ name: 'Upgraded',
1336
+ },
1337
+ {
1338
+ type: 'error',
1339
+ inputs: [{ name: 'target', internalType: 'address', type: 'address' }],
1340
+ name: 'AddressEmptyCode',
1341
+ },
1342
+ {
1343
+ type: 'error',
1344
+ inputs: [
1345
+ { name: 'implementation', internalType: 'address', type: 'address' },
1346
+ ],
1347
+ name: 'ERC1967InvalidImplementation',
1348
+ },
1349
+ { type: 'error', inputs: [], name: 'ERC1967NonPayable' },
1350
+ { type: 'error', inputs: [], name: 'FailedCall' },
1351
+ { type: 'error', inputs: [], name: 'InvalidInitialization' },
1352
+ { type: 'error', inputs: [], name: 'InvalidShortString' },
1353
+ { type: 'error', inputs: [], name: 'NotInitializing' },
1354
+ {
1355
+ type: 'error',
1356
+ inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],
1357
+ name: 'OwnableInvalidOwner',
1358
+ },
1359
+ {
1360
+ type: 'error',
1361
+ inputs: [{ name: 'account', internalType: 'address', type: 'address' }],
1362
+ name: 'OwnableUnauthorizedAccount',
1363
+ },
1364
+ {
1365
+ type: 'error',
1366
+ inputs: [{ name: 'str', internalType: 'string', type: 'string' }],
1367
+ name: 'StringTooLong',
1368
+ },
1369
+ { type: 'error', inputs: [], name: 'UUPSUnauthorizedCallContext' },
1370
+ {
1371
+ type: 'error',
1372
+ inputs: [{ name: 'slot', internalType: 'bytes32', type: 'bytes32' }],
1373
+ name: 'UUPSUnsupportedProxiableUUID',
1374
+ },
1375
+ ];
1376
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1377
+ // VoucherEip712Checker
1378
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1379
+ export const voucherEip712CheckerAbi = [
1380
+ {
1381
+ type: 'function',
1382
+ inputs: [
1383
+ {
1384
+ name: 'voucher',
1385
+ internalType: 'struct AllowanceVoucher',
1386
+ type: 'tuple',
1387
+ components: [
1388
+ { name: 'sessionNonce', internalType: 'bytes32', type: 'bytes32' },
1389
+ {
1390
+ name: 'verifyingContract',
1391
+ internalType: 'address',
1392
+ type: 'address',
1393
+ },
1394
+ { name: 'callFunction', internalType: 'bytes4', type: 'bytes4' },
1395
+ { name: 'sharerArgData', internalType: 'bytes', type: 'bytes' },
1396
+ ],
1397
+ },
1398
+ ],
1399
+ name: 'allowanceVoucherDigest',
1400
+ outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
1401
+ stateMutability: 'view',
1402
+ },
1403
+ {
1404
+ type: 'function',
1405
+ inputs: [],
1406
+ name: 'eip712Domain',
1407
+ outputs: [
1408
+ { name: 'fields', internalType: 'bytes1', type: 'bytes1' },
1409
+ { name: 'name', internalType: 'string', type: 'string' },
1410
+ { name: 'version', internalType: 'string', type: 'string' },
1411
+ { name: 'chainId', internalType: 'uint256', type: 'uint256' },
1412
+ { name: 'verifyingContract', internalType: 'address', type: 'address' },
1413
+ { name: 'salt', internalType: 'bytes32', type: 'bytes32' },
1414
+ { name: 'extensions', internalType: 'uint256[]', type: 'uint256[]' },
1415
+ ],
1416
+ stateMutability: 'view',
1417
+ },
1418
+ { type: 'event', anonymous: false, inputs: [], name: 'EIP712DomainChanged' },
1419
+ { type: 'error', inputs: [], name: 'InvalidShortString' },
1420
+ {
1421
+ type: 'error',
1422
+ inputs: [{ name: 'str', internalType: 'string', type: 'string' }],
1423
+ name: 'StringTooLong',
1424
+ },
1425
+ ];
1426
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nLXByZXZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL2FiaXMvbGlnaHRuaW5nLXByZXZpZXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0tBQXNLO0FBQ3RLLFlBQVk7QUFDWixzS0FBc0s7QUFFdEssTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzFCO1FBQ0UsSUFBSSxFQUFFLFVBQVU7UUFDaEIsTUFBTSxFQUFFLEVBQUU7UUFDVixJQUFJLEVBQUUsWUFBWTtRQUNsQixPQUFPLEVBQUU7WUFDUDtnQkFDRSxJQUFJLEVBQUUsRUFBRTtnQkFDUixZQUFZLEVBQUUsZ0JBQWdCO2dCQUM5QixJQUFJLEVBQUUsT0FBTztnQkFDYixVQUFVLEVBQUU7b0JBQ1YsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtvQkFDL0QsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtpQkFDaEU7YUFDRjtTQUNGO1FBQ0QsZUFBZSxFQUFFLE1BQU07S0FDeEI7Q0FDTyxDQUFBO0FBRVYsc0tBQXNLO0FBQ3RLLHdCQUF3QjtBQUN4QixzS0FBc0s7QUFFdEssTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFDdEM7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixNQUFNLEVBQUU7WUFDTixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQzVELEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7U0FDOUQ7UUFDRCxJQUFJLEVBQUUsT0FBTztRQUNiLE9BQU8sRUFBRSxFQUFFO1FBQ1gsZUFBZSxFQUFFLFlBQVk7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