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