@inco/js 0.8.0-devnet-8 → 0.8.0-devnet-10

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 (83) hide show
  1. package/dist/cjs/advancedacl/session-key.js +15 -6
  2. package/dist/cjs/attesteddecrypt/attested-decrypt.d.ts +2 -6
  3. package/dist/cjs/attesteddecrypt/attested-decrypt.js +15 -22
  4. package/dist/cjs/generated/abis/lightning.d.ts +990 -95
  5. package/dist/cjs/generated/abis/lightning.js +645 -6
  6. package/dist/cjs/generated/abis/test-elist.d.ts +1 -1
  7. package/dist/cjs/generated/abis/test-elist.js +2 -2
  8. package/dist/cjs/generated/abis/verifier.d.ts +43 -0
  9. package/dist/cjs/generated/abis/verifier.js +23 -1
  10. package/dist/cjs/generated/es/inco/sealingfetcher/v1/sealingfetcher_pb.d.ts +7 -0
  11. package/dist/cjs/generated/es/inco/sealingfetcher/v1/sealingfetcher_pb.js +2 -2
  12. package/dist/cjs/generated/lightning.d.ts +40 -0
  13. package/dist/cjs/generated/lightning.js +43 -1
  14. package/dist/cjs/generated/local-node.d.ts +4 -4
  15. package/dist/cjs/generated/local-node.js +22 -5
  16. package/dist/cjs/handle.d.ts +12 -0
  17. package/dist/cjs/handle.js +29 -2
  18. package/dist/cjs/kms/client.d.ts +1 -1
  19. package/dist/cjs/kms/client.js +4 -3
  20. package/dist/cjs/kms/quorumClient.d.ts +1 -0
  21. package/dist/cjs/kms/quorumClient.js +21 -4
  22. package/dist/cjs/lite/index.d.ts +1 -1
  23. package/dist/cjs/lite/index.js +2 -3
  24. package/dist/cjs/lite/lightning.d.ts +2 -3
  25. package/dist/cjs/lite/lightning.js +4 -14
  26. package/dist/cjs/lite/xwing.d.ts +25 -0
  27. package/dist/cjs/lite/xwing.js +49 -5
  28. package/dist/cjs/retry.d.ts +14 -0
  29. package/dist/cjs/retry.js +58 -2
  30. package/dist/cjs/test/mocks.d.ts +1 -0
  31. package/dist/cjs/test/mocks.js +3 -2
  32. package/dist/esm/advancedacl/session-key.js +13 -4
  33. package/dist/esm/attesteddecrypt/attested-decrypt.d.ts +2 -6
  34. package/dist/esm/attesteddecrypt/attested-decrypt.js +14 -20
  35. package/dist/esm/generated/abis/lightning.d.ts +990 -95
  36. package/dist/esm/generated/abis/lightning.js +643 -4
  37. package/dist/esm/generated/abis/test-elist.d.ts +1 -1
  38. package/dist/esm/generated/abis/test-elist.js +2 -2
  39. package/dist/esm/generated/abis/verifier.d.ts +43 -0
  40. package/dist/esm/generated/abis/verifier.js +23 -1
  41. package/dist/esm/generated/es/inco/sealingfetcher/v1/sealingfetcher_pb.d.ts +7 -0
  42. package/dist/esm/generated/es/inco/sealingfetcher/v1/sealingfetcher_pb.js +2 -2
  43. package/dist/esm/generated/lightning.d.ts +40 -0
  44. package/dist/esm/generated/lightning.js +43 -1
  45. package/dist/esm/generated/local-node.d.ts +4 -4
  46. package/dist/esm/generated/local-node.js +22 -5
  47. package/dist/esm/handle.d.ts +12 -0
  48. package/dist/esm/handle.js +27 -1
  49. package/dist/esm/kms/client.d.ts +1 -1
  50. package/dist/esm/kms/client.js +3 -2
  51. package/dist/esm/kms/quorumClient.d.ts +1 -0
  52. package/dist/esm/kms/quorumClient.js +21 -4
  53. package/dist/esm/lite/index.d.ts +1 -1
  54. package/dist/esm/lite/index.js +2 -2
  55. package/dist/esm/lite/lightning.d.ts +2 -3
  56. package/dist/esm/lite/lightning.js +6 -16
  57. package/dist/esm/lite/xwing.d.ts +25 -0
  58. package/dist/esm/lite/xwing.js +47 -5
  59. package/dist/esm/retry.d.ts +14 -0
  60. package/dist/esm/retry.js +56 -2
  61. package/dist/esm/test/mocks.d.ts +1 -0
  62. package/dist/esm/test/mocks.js +4 -3
  63. package/dist/types/attesteddecrypt/attested-decrypt.d.ts +2 -6
  64. package/dist/types/generated/abis/lightning.d.ts +990 -95
  65. package/dist/types/generated/abis/test-elist.d.ts +1 -1
  66. package/dist/types/generated/abis/verifier.d.ts +43 -0
  67. package/dist/types/generated/es/inco/sealingfetcher/v1/sealingfetcher_pb.d.ts +7 -0
  68. package/dist/types/generated/lightning.d.ts +40 -0
  69. package/dist/types/generated/local-node.d.ts +4 -4
  70. package/dist/types/handle.d.ts +12 -0
  71. package/dist/types/kms/client.d.ts +1 -1
  72. package/dist/types/kms/quorumClient.d.ts +1 -0
  73. package/dist/types/lite/index.d.ts +1 -1
  74. package/dist/types/lite/lightning.d.ts +2 -3
  75. package/dist/types/lite/xwing.d.ts +25 -0
  76. package/dist/types/retry.d.ts +14 -0
  77. package/dist/types/test/mocks.d.ts +1 -0
  78. package/package.json +1 -1
  79. package/dist/cjs/generated/abis/lightning-preview.d.ts +0 -1441
  80. package/dist/cjs/generated/abis/lightning-preview.js +0 -907
  81. package/dist/esm/generated/abis/lightning-preview.d.ts +0 -1441
  82. package/dist/esm/generated/abis/lightning-preview.js +0 -904
  83. package/dist/types/generated/abis/lightning-preview.d.ts +0 -1441
@@ -1,904 +0,0 @@
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
- {
31
- name: 'voucher',
32
- internalType: 'struct AllowanceVoucher',
33
- type: 'tuple',
34
- components: [
35
- { name: 'sessionNonce', internalType: 'bytes32', type: 'bytes32' },
36
- {
37
- name: 'verifyingContract',
38
- internalType: 'address',
39
- type: 'address',
40
- },
41
- { name: 'callFunction', internalType: 'bytes4', type: 'bytes4' },
42
- { name: 'sharerArgData', internalType: 'bytes', type: 'bytes' },
43
- ],
44
- },
45
- ],
46
- name: 'allowanceVoucherDigest',
47
- outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
48
- stateMutability: 'view',
49
- },
50
- {
51
- type: 'function',
52
- inputs: [],
53
- name: 'eip712Domain',
54
- outputs: [
55
- { name: 'fields', internalType: 'bytes1', type: 'bytes1' },
56
- { name: 'name', internalType: 'string', type: 'string' },
57
- { name: 'version', internalType: 'string', type: 'string' },
58
- { name: 'chainId', internalType: 'uint256', type: 'uint256' },
59
- { name: 'verifyingContract', internalType: 'address', type: 'address' },
60
- { name: 'salt', internalType: 'bytes32', type: 'bytes32' },
61
- { name: 'extensions', internalType: 'uint256[]', type: 'uint256[]' },
62
- ],
63
- stateMutability: 'view',
64
- },
65
- {
66
- type: 'function',
67
- inputs: [{ name: 'account', internalType: 'address', type: 'address' }],
68
- name: 'getActiveVouchersSessionNonce',
69
- outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
70
- stateMutability: 'view',
71
- },
72
- {
73
- type: 'function',
74
- inputs: [
75
- { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
76
- { name: 'account', internalType: 'address', type: 'address' },
77
- {
78
- name: 'proof',
79
- internalType: 'struct AllowanceProof',
80
- type: 'tuple',
81
- components: [
82
- { name: 'sharer', internalType: 'address', type: 'address' },
83
- {
84
- name: 'voucher',
85
- internalType: 'struct AllowanceVoucher',
86
- type: 'tuple',
87
- components: [
88
- {
89
- name: 'sessionNonce',
90
- internalType: 'bytes32',
91
- type: 'bytes32',
92
- },
93
- {
94
- name: 'verifyingContract',
95
- internalType: 'address',
96
- type: 'address',
97
- },
98
- { name: 'callFunction', internalType: 'bytes4', type: 'bytes4' },
99
- { name: 'sharerArgData', internalType: 'bytes', type: 'bytes' },
100
- ],
101
- },
102
- { name: 'voucherSignature', internalType: 'bytes', type: 'bytes' },
103
- { name: 'requesterArgData', internalType: 'bytes', type: 'bytes' },
104
- ],
105
- },
106
- ],
107
- name: 'isAllowedWithProof',
108
- outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
109
- stateMutability: 'nonpayable',
110
- },
111
- {
112
- type: 'function',
113
- inputs: [],
114
- name: 'updateActiveVouchersSessionNonce',
115
- outputs: [],
116
- stateMutability: 'nonpayable',
117
- },
118
- { type: 'event', anonymous: false, inputs: [], name: 'EIP712DomainChanged' },
119
- {
120
- type: 'event',
121
- anonymous: false,
122
- inputs: [
123
- {
124
- name: 'version',
125
- internalType: 'uint64',
126
- type: 'uint64',
127
- indexed: false,
128
- },
129
- ],
130
- name: 'Initialized',
131
- },
132
- { type: 'error', inputs: [], name: 'InvalidInitialization' },
133
- {
134
- type: 'error',
135
- inputs: [
136
- {
137
- name: 'providedSessionNonce',
138
- internalType: 'bytes32',
139
- type: 'bytes32',
140
- },
141
- { name: 'activeSessionNonce', internalType: 'bytes32', type: 'bytes32' },
142
- ],
143
- name: 'InvalidVoucherSessionNonce',
144
- },
145
- {
146
- type: 'error',
147
- inputs: [
148
- { name: 'signer', internalType: 'address', type: 'address' },
149
- { name: 'digest', internalType: 'bytes32', type: 'bytes32' },
150
- { name: 'signature', internalType: 'bytes', type: 'bytes' },
151
- ],
152
- name: 'InvalidVoucherSignature',
153
- },
154
- { type: 'error', inputs: [], name: 'NotInitializing' },
155
- {
156
- type: 'error',
157
- inputs: [
158
- { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
159
- { name: 'sharer', internalType: 'address', type: 'address' },
160
- ],
161
- name: 'SharerNotAllowedForHandle',
162
- },
163
- ];
164
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
165
- // IIncoLightningPreview
166
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
167
- export const iIncoLightningPreviewAbi = [
168
- {
169
- type: 'function',
170
- inputs: [{ name: 'version', internalType: 'uint16', type: 'uint16' }],
171
- name: 'addAcceptedVersion',
172
- outputs: [],
173
- stateMutability: 'nonpayable',
174
- },
175
- {
176
- type: 'function',
177
- inputs: [
178
- { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
179
- { name: 'account', internalType: 'address', type: 'address' },
180
- ],
181
- name: 'allow',
182
- outputs: [],
183
- stateMutability: 'nonpayable',
184
- },
185
- {
186
- type: 'function',
187
- inputs: [
188
- { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
189
- { name: 'account', internalType: 'address', type: 'address' },
190
- ],
191
- name: 'allowTransient',
192
- outputs: [],
193
- stateMutability: 'nonpayable',
194
- },
195
- {
196
- type: 'function',
197
- inputs: [
198
- { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
199
- { name: 'account', internalType: 'address', type: 'address' },
200
- ],
201
- name: 'allowedTransient',
202
- outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
203
- stateMutability: 'view',
204
- },
205
- {
206
- type: 'function',
207
- inputs: [{ name: 'value', internalType: 'address', type: 'address' }],
208
- name: 'asEaddress',
209
- outputs: [
210
- { name: 'newEaddress', internalType: 'eaddress', type: 'bytes32' },
211
- ],
212
- stateMutability: 'nonpayable',
213
- },
214
- {
215
- type: 'function',
216
- inputs: [{ name: 'value', internalType: 'bool', type: 'bool' }],
217
- name: 'asEbool',
218
- outputs: [{ name: 'newEbool', internalType: 'ebool', type: 'bytes32' }],
219
- stateMutability: 'nonpayable',
220
- },
221
- {
222
- type: 'function',
223
- inputs: [{ name: 'value', internalType: 'uint256', type: 'uint256' }],
224
- name: 'asEuint256',
225
- outputs: [
226
- { name: 'newEuint256', internalType: 'euint256', type: 'bytes32' },
227
- ],
228
- stateMutability: 'nonpayable',
229
- },
230
- {
231
- type: 'function',
232
- inputs: [
233
- { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
234
- {
235
- name: 'proof',
236
- internalType: 'struct AllowanceProof',
237
- type: 'tuple',
238
- components: [
239
- { name: 'sharer', internalType: 'address', type: 'address' },
240
- {
241
- name: 'voucher',
242
- internalType: 'struct AllowanceVoucher',
243
- type: 'tuple',
244
- components: [
245
- {
246
- name: 'sessionNonce',
247
- internalType: 'bytes32',
248
- type: 'bytes32',
249
- },
250
- {
251
- name: 'verifyingContract',
252
- internalType: 'address',
253
- type: 'address',
254
- },
255
- { name: 'callFunction', internalType: 'bytes4', type: 'bytes4' },
256
- { name: 'sharerArgData', internalType: 'bytes', type: 'bytes' },
257
- ],
258
- },
259
- { name: 'voucherSignature', internalType: 'bytes', type: 'bytes' },
260
- { name: 'requesterArgData', internalType: 'bytes', type: 'bytes' },
261
- ],
262
- },
263
- ],
264
- name: 'claimHandle',
265
- outputs: [],
266
- stateMutability: 'nonpayable',
267
- },
268
- {
269
- type: 'function',
270
- inputs: [],
271
- name: 'cleanTransientStorage',
272
- outputs: [],
273
- stateMutability: 'nonpayable',
274
- },
275
- {
276
- type: 'function',
277
- inputs: [
278
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
279
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
280
- ],
281
- name: 'eAdd',
282
- outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
283
- stateMutability: 'nonpayable',
284
- },
285
- {
286
- type: 'function',
287
- inputs: [
288
- { name: 'lhs', internalType: 'bytes32', type: 'bytes32' },
289
- { name: 'rhs', internalType: 'bytes32', type: 'bytes32' },
290
- ],
291
- name: 'eBitAnd',
292
- outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
293
- stateMutability: 'nonpayable',
294
- },
295
- {
296
- type: 'function',
297
- inputs: [
298
- { name: 'lhs', internalType: 'bytes32', type: 'bytes32' },
299
- { name: 'rhs', internalType: 'bytes32', type: 'bytes32' },
300
- ],
301
- name: 'eBitOr',
302
- outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
303
- stateMutability: 'nonpayable',
304
- },
305
- {
306
- type: 'function',
307
- inputs: [
308
- { name: 'lhs', internalType: 'bytes32', type: 'bytes32' },
309
- { name: 'rhs', internalType: 'bytes32', type: 'bytes32' },
310
- ],
311
- name: 'eBitXor',
312
- outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
313
- stateMutability: 'nonpayable',
314
- },
315
- {
316
- type: 'function',
317
- inputs: [
318
- { name: 'ct', internalType: 'bytes32', type: 'bytes32' },
319
- { name: 'toType', internalType: 'enum ETypes', type: 'uint8' },
320
- ],
321
- name: 'eCast',
322
- outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
323
- stateMutability: 'nonpayable',
324
- },
325
- {
326
- type: 'function',
327
- inputs: [
328
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
329
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
330
- ],
331
- name: 'eDiv',
332
- outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
333
- stateMutability: 'nonpayable',
334
- },
335
- {
336
- type: 'function',
337
- inputs: [
338
- { name: 'lhs', internalType: 'bytes32', type: 'bytes32' },
339
- { name: 'rhs', internalType: 'bytes32', type: 'bytes32' },
340
- ],
341
- name: 'eEq',
342
- outputs: [{ name: 'result', internalType: 'ebool', type: 'bytes32' }],
343
- stateMutability: 'nonpayable',
344
- },
345
- {
346
- type: 'function',
347
- inputs: [
348
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
349
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
350
- ],
351
- name: 'eGe',
352
- outputs: [{ name: 'result', internalType: 'ebool', type: 'bytes32' }],
353
- stateMutability: 'nonpayable',
354
- },
355
- {
356
- type: 'function',
357
- inputs: [
358
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
359
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
360
- ],
361
- name: 'eGt',
362
- outputs: [{ name: 'result', internalType: 'ebool', type: 'bytes32' }],
363
- stateMutability: 'nonpayable',
364
- },
365
- {
366
- type: 'function',
367
- inputs: [
368
- { name: 'condition', internalType: 'ebool', type: 'bytes32' },
369
- { name: 'ifTrue', internalType: 'bytes32', type: 'bytes32' },
370
- { name: 'ifFalse', internalType: 'bytes32', type: 'bytes32' },
371
- ],
372
- name: 'eIfThenElse',
373
- outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
374
- stateMutability: 'nonpayable',
375
- },
376
- {
377
- type: 'function',
378
- inputs: [
379
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
380
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
381
- ],
382
- name: 'eLe',
383
- outputs: [{ name: 'result', internalType: 'ebool', type: 'bytes32' }],
384
- stateMutability: 'nonpayable',
385
- },
386
- {
387
- type: 'function',
388
- inputs: [
389
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
390
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
391
- ],
392
- name: 'eLt',
393
- outputs: [{ name: 'result', internalType: 'ebool', type: 'bytes32' }],
394
- stateMutability: 'nonpayable',
395
- },
396
- {
397
- type: 'function',
398
- inputs: [
399
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
400
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
401
- ],
402
- name: 'eMax',
403
- outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
404
- stateMutability: 'nonpayable',
405
- },
406
- {
407
- type: 'function',
408
- inputs: [
409
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
410
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
411
- ],
412
- name: 'eMin',
413
- outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
414
- stateMutability: 'nonpayable',
415
- },
416
- {
417
- type: 'function',
418
- inputs: [
419
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
420
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
421
- ],
422
- name: 'eMul',
423
- outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
424
- stateMutability: 'nonpayable',
425
- },
426
- {
427
- type: 'function',
428
- inputs: [
429
- { name: 'lhs', internalType: 'bytes32', type: 'bytes32' },
430
- { name: 'rhs', internalType: 'bytes32', type: 'bytes32' },
431
- ],
432
- name: 'eNe',
433
- outputs: [{ name: 'result', internalType: 'ebool', type: 'bytes32' }],
434
- stateMutability: 'nonpayable',
435
- },
436
- {
437
- type: 'function',
438
- inputs: [{ name: 'operand', internalType: 'ebool', type: 'bytes32' }],
439
- name: 'eNot',
440
- outputs: [{ name: 'result', internalType: 'ebool', type: 'bytes32' }],
441
- stateMutability: 'nonpayable',
442
- },
443
- {
444
- type: 'function',
445
- inputs: [{ name: 'randType', internalType: 'enum ETypes', type: 'uint8' }],
446
- name: 'eRand',
447
- outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
448
- stateMutability: 'payable',
449
- },
450
- {
451
- type: 'function',
452
- inputs: [
453
- { name: 'upperBound', internalType: 'bytes32', type: 'bytes32' },
454
- { name: 'randType', internalType: 'enum ETypes', type: 'uint8' },
455
- ],
456
- name: 'eRandBounded',
457
- outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
458
- stateMutability: 'payable',
459
- },
460
- {
461
- type: 'function',
462
- inputs: [
463
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
464
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
465
- ],
466
- name: 'eRem',
467
- outputs: [{ name: 'result', internalType: 'euint256', 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: 'eRotl',
477
- outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
478
- stateMutability: 'nonpayable',
479
- },
480
- {
481
- type: 'function',
482
- inputs: [
483
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
484
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
485
- ],
486
- name: 'eRotr',
487
- outputs: [{ name: 'result', internalType: 'euint256', 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: 'eShl',
497
- outputs: [{ name: 'result', internalType: 'euint256', 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: 'eShr',
507
- outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
508
- stateMutability: 'nonpayable',
509
- },
510
- {
511
- type: 'function',
512
- inputs: [
513
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
514
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
515
- ],
516
- name: 'eSub',
517
- outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
518
- stateMutability: 'nonpayable',
519
- },
520
- {
521
- type: 'function',
522
- inputs: [],
523
- name: 'getMajorVersion',
524
- outputs: [{ name: '', internalType: 'string', type: 'string' }],
525
- stateMutability: 'view',
526
- },
527
- {
528
- type: 'function',
529
- inputs: [],
530
- name: 'getName',
531
- outputs: [{ name: '', internalType: 'string', type: 'string' }],
532
- stateMutability: 'view',
533
- },
534
- {
535
- type: 'function',
536
- inputs: [
537
- { name: 'op', internalType: 'enum EOps', type: 'uint8' },
538
- { name: 'returnType', internalType: 'enum ETypes', type: 'uint8' },
539
- { name: 'packedInputs', internalType: 'bytes', type: 'bytes' },
540
- ],
541
- name: 'getOpResultHandle',
542
- outputs: [
543
- { name: 'generatedHandle', internalType: 'bytes32', type: 'bytes32' },
544
- ],
545
- stateMutability: 'pure',
546
- },
547
- {
548
- type: 'function',
549
- inputs: [
550
- { name: 'plaintextBytes', internalType: 'bytes32', type: 'bytes32' },
551
- { name: 'handleType', internalType: 'enum ETypes', type: 'uint8' },
552
- ],
553
- name: 'getTrivialEncryptHandle',
554
- outputs: [
555
- { name: 'generatedHandle', internalType: 'bytes32', type: 'bytes32' },
556
- ],
557
- stateMutability: 'view',
558
- },
559
- {
560
- type: 'function',
561
- inputs: [],
562
- name: 'getVersion',
563
- outputs: [{ name: '', internalType: 'string', type: 'string' }],
564
- stateMutability: 'view',
565
- },
566
- {
567
- type: 'function',
568
- inputs: [],
569
- name: 'getVersionedName',
570
- outputs: [{ name: '', internalType: 'string', type: 'string' }],
571
- stateMutability: 'view',
572
- },
573
- {
574
- type: 'function',
575
- inputs: [],
576
- name: 'incoVerifier',
577
- outputs: [
578
- { name: '', internalType: 'contract IIncoVerifier', type: 'address' },
579
- ],
580
- stateMutability: 'view',
581
- },
582
- {
583
- type: 'function',
584
- inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],
585
- name: 'initialize',
586
- outputs: [],
587
- stateMutability: 'nonpayable',
588
- },
589
- {
590
- type: 'function',
591
- inputs: [
592
- { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
593
- { name: 'account', internalType: 'address', type: 'address' },
594
- ],
595
- name: 'isAllowed',
596
- outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
597
- stateMutability: 'view',
598
- },
599
- {
600
- type: 'function',
601
- inputs: [{ name: 'handle', internalType: 'bytes32', type: 'bytes32' }],
602
- name: 'lengthOf',
603
- outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }],
604
- stateMutability: 'pure',
605
- },
606
- {
607
- type: 'function',
608
- inputs: [
609
- { name: 'list', internalType: 'elist', type: 'bytes32' },
610
- { name: 'value', internalType: 'bytes32', type: 'bytes32' },
611
- ],
612
- name: 'listAppend',
613
- outputs: [{ name: 'result', internalType: 'elist', type: 'bytes32' }],
614
- stateMutability: 'nonpayable',
615
- },
616
- {
617
- type: 'function',
618
- inputs: [
619
- { name: 'lhs', internalType: 'elist', type: 'bytes32' },
620
- { name: 'rhs', internalType: 'elist', type: 'bytes32' },
621
- ],
622
- name: 'listConcat',
623
- outputs: [{ name: 'result', internalType: 'elist', type: 'bytes32' }],
624
- stateMutability: 'nonpayable',
625
- },
626
- {
627
- type: 'function',
628
- inputs: [
629
- { name: 'list', internalType: 'elist', type: 'bytes32' },
630
- { name: 'i', internalType: 'uint16', type: 'uint16' },
631
- ],
632
- name: 'listGet',
633
- outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
634
- stateMutability: 'nonpayable',
635
- },
636
- {
637
- type: 'function',
638
- inputs: [
639
- { name: 'list', internalType: 'elist', type: 'bytes32' },
640
- { name: 'i', internalType: 'bytes32', type: 'bytes32' },
641
- { name: 'defaultValue', internalType: 'bytes32', type: 'bytes32' },
642
- ],
643
- name: 'listGetOr',
644
- outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
645
- stateMutability: 'nonpayable',
646
- },
647
- {
648
- type: 'function',
649
- inputs: [
650
- { name: 'list', internalType: 'elist', type: 'bytes32' },
651
- { name: 'i', internalType: 'bytes32', type: 'bytes32' },
652
- { name: 'value', internalType: 'bytes32', type: 'bytes32' },
653
- ],
654
- name: 'listInsert',
655
- outputs: [{ name: 'result', internalType: 'elist', type: 'bytes32' }],
656
- stateMutability: 'nonpayable',
657
- },
658
- {
659
- type: 'function',
660
- inputs: [
661
- { name: 'start', internalType: 'uint16', type: 'uint16' },
662
- { name: 'end', internalType: 'uint16', type: 'uint16' },
663
- ],
664
- name: 'listRange',
665
- outputs: [{ name: 'result', internalType: 'elist', type: 'bytes32' }],
666
- stateMutability: 'nonpayable',
667
- },
668
- {
669
- type: 'function',
670
- inputs: [{ name: 'list', internalType: 'elist', type: 'bytes32' }],
671
- name: 'listReverse',
672
- outputs: [{ name: 'result', internalType: 'elist', type: 'bytes32' }],
673
- stateMutability: 'nonpayable',
674
- },
675
- {
676
- type: 'function',
677
- inputs: [
678
- { name: 'list', internalType: 'elist', type: 'bytes32' },
679
- { name: 'i', internalType: 'bytes32', type: 'bytes32' },
680
- { name: 'value', internalType: 'bytes32', type: 'bytes32' },
681
- ],
682
- name: 'listSet',
683
- outputs: [{ name: 'result', internalType: 'elist', type: 'bytes32' }],
684
- stateMutability: 'nonpayable',
685
- },
686
- {
687
- type: 'function',
688
- inputs: [{ name: 'list', internalType: 'elist', type: 'bytes32' }],
689
- name: 'listShuffle',
690
- outputs: [{ name: 'result', internalType: 'elist', type: 'bytes32' }],
691
- stateMutability: 'payable',
692
- },
693
- {
694
- type: 'function',
695
- inputs: [
696
- { name: 'list', internalType: 'elist', type: 'bytes32' },
697
- { name: 'start', internalType: 'bytes32', type: 'bytes32' },
698
- { name: 'len', internalType: 'uint16', type: 'uint16' },
699
- { name: 'defaultValue', internalType: 'bytes32', type: 'bytes32' },
700
- ],
701
- name: 'listSlice',
702
- outputs: [{ name: 'result', internalType: 'elist', type: 'bytes32' }],
703
- stateMutability: 'nonpayable',
704
- },
705
- {
706
- type: 'function',
707
- inputs: [],
708
- name: 'majorVersion',
709
- outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }],
710
- stateMutability: 'view',
711
- },
712
- {
713
- type: 'function',
714
- inputs: [],
715
- name: 'minorVersion',
716
- outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }],
717
- stateMutability: 'view',
718
- },
719
- {
720
- type: 'function',
721
- inputs: [
722
- { name: 'handles', internalType: 'bytes32[]', type: 'bytes32[]' },
723
- { name: 'listType', internalType: 'enum ETypes', type: 'uint8' },
724
- ],
725
- name: 'newEList',
726
- outputs: [{ name: 'newList', internalType: 'elist', type: 'bytes32' }],
727
- stateMutability: 'nonpayable',
728
- },
729
- {
730
- type: 'function',
731
- inputs: [
732
- { name: 'inputs', internalType: 'bytes[]', type: 'bytes[]' },
733
- { name: 'listType', internalType: 'enum ETypes', type: 'uint8' },
734
- { name: 'user', internalType: 'address', type: 'address' },
735
- ],
736
- name: 'newEList',
737
- outputs: [{ name: 'newList', internalType: 'elist', type: 'bytes32' }],
738
- stateMutability: 'payable',
739
- },
740
- {
741
- type: 'function',
742
- inputs: [
743
- { name: 'ciphertext', internalType: 'bytes', type: 'bytes' },
744
- { name: 'user', internalType: 'address', type: 'address' },
745
- ],
746
- name: 'newEaddress',
747
- outputs: [{ name: 'newValue', internalType: 'eaddress', type: 'bytes32' }],
748
- stateMutability: 'payable',
749
- },
750
- {
751
- type: 'function',
752
- inputs: [
753
- { name: 'ciphertext', internalType: 'bytes', type: 'bytes' },
754
- { name: 'user', internalType: 'address', type: 'address' },
755
- ],
756
- name: 'newEbool',
757
- outputs: [{ name: 'newValue', internalType: 'ebool', type: 'bytes32' }],
758
- stateMutability: 'payable',
759
- },
760
- {
761
- type: 'function',
762
- inputs: [
763
- { name: 'ciphertext', internalType: 'bytes', type: 'bytes' },
764
- { name: 'user', internalType: 'address', type: 'address' },
765
- ],
766
- name: 'newEuint256',
767
- outputs: [{ name: 'newValue', internalType: 'euint256', type: 'bytes32' }],
768
- stateMutability: 'payable',
769
- },
770
- {
771
- type: 'function',
772
- inputs: [],
773
- name: 'patchVersion',
774
- outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }],
775
- stateMutability: 'view',
776
- },
777
- {
778
- type: 'function',
779
- inputs: [
780
- { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
781
- { name: 'account', internalType: 'address', type: 'address' },
782
- ],
783
- name: 'persistAllowed',
784
- outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
785
- stateMutability: 'view',
786
- },
787
- {
788
- type: 'function',
789
- inputs: [{ name: 'version', internalType: 'uint16', type: 'uint16' }],
790
- name: 'removeAcceptedVersion',
791
- outputs: [],
792
- stateMutability: 'nonpayable',
793
- },
794
- {
795
- type: 'function',
796
- inputs: [],
797
- name: 'salt',
798
- outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
799
- stateMutability: 'view',
800
- },
801
- {
802
- type: 'function',
803
- inputs: [],
804
- name: 'withdrawFees',
805
- outputs: [],
806
- stateMutability: 'nonpayable',
807
- },
808
- {
809
- type: 'event',
810
- anonymous: false,
811
- inputs: [
812
- {
813
- name: 'version',
814
- internalType: 'uint16',
815
- type: 'uint16',
816
- indexed: false,
817
- },
818
- ],
819
- name: 'VersionAccepted',
820
- },
821
- {
822
- type: 'event',
823
- anonymous: false,
824
- inputs: [
825
- {
826
- name: 'version',
827
- internalType: 'uint16',
828
- type: 'uint16',
829
- indexed: false,
830
- },
831
- ],
832
- name: 'VersionRemoved',
833
- },
834
- {
835
- type: 'error',
836
- inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }],
837
- name: 'InputLengthTooShort',
838
- },
839
- {
840
- type: 'error',
841
- inputs: [{ name: 'version', internalType: 'uint16', type: 'uint16' }],
842
- name: 'InvalidInputVersion',
843
- },
844
- ];
845
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
846
- // VoucherEip712Checker
847
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
848
- export const voucherEip712CheckerAbi = [
849
- {
850
- type: 'function',
851
- inputs: [
852
- {
853
- name: 'voucher',
854
- internalType: 'struct AllowanceVoucher',
855
- type: 'tuple',
856
- components: [
857
- { name: 'sessionNonce', internalType: 'bytes32', type: 'bytes32' },
858
- {
859
- name: 'verifyingContract',
860
- internalType: 'address',
861
- type: 'address',
862
- },
863
- { name: 'callFunction', internalType: 'bytes4', type: 'bytes4' },
864
- { name: 'sharerArgData', internalType: 'bytes', type: 'bytes' },
865
- ],
866
- },
867
- ],
868
- name: 'allowanceVoucherDigest',
869
- outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
870
- stateMutability: 'view',
871
- },
872
- {
873
- type: 'function',
874
- inputs: [],
875
- name: 'eip712Domain',
876
- outputs: [
877
- { name: 'fields', internalType: 'bytes1', type: 'bytes1' },
878
- { name: 'name', internalType: 'string', type: 'string' },
879
- { name: 'version', internalType: 'string', type: 'string' },
880
- { name: 'chainId', internalType: 'uint256', type: 'uint256' },
881
- { name: 'verifyingContract', internalType: 'address', type: 'address' },
882
- { name: 'salt', internalType: 'bytes32', type: 'bytes32' },
883
- { name: 'extensions', internalType: 'uint256[]', type: 'uint256[]' },
884
- ],
885
- stateMutability: 'view',
886
- },
887
- { type: 'event', anonymous: false, inputs: [], name: 'EIP712DomainChanged' },
888
- {
889
- type: 'event',
890
- anonymous: false,
891
- inputs: [
892
- {
893
- name: 'version',
894
- internalType: 'uint64',
895
- type: 'uint64',
896
- indexed: false,
897
- },
898
- ],
899
- name: 'Initialized',
900
- },
901
- { type: 'error', inputs: [], name: 'InvalidInitialization' },
902
- { type: 'error', inputs: [], name: 'NotInitializing' },
903
- ];
904
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nLXByZXZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL2FiaXMvbGlnaHRuaW5nLXByZXZpZXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0tBQXNLO0FBQ3RLLFlBQVk7QUFDWixzS0FBc0s7QUFFdEssTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzFCO1FBQ0UsSUFBSSxFQUFFLFVBQVU7UUFDaEIsTUFBTSxFQUFFLEVBQUU7UUFDVixJQUFJLEVBQUUsWUFBWTtRQUNsQixPQUFPLEVBQUU7WUFDUDtnQkFDRSxJQUFJLEVBQUUsRUFBRTtnQkFDUixZQUFZLEVBQUUsZ0JBQWdCO2dCQUM5QixJQUFJLEVBQUUsT0FBTztnQkFDYixVQUFVLEVBQUU7b0JBQ1YsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtvQkFDL0QsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtpQkFDaEU7YUFDRjtTQUNGO1FBQ0QsZUFBZSxFQUFFLE1BQU07S0FDeEI7Q0FDTyxDQUFBO0FBRVYsc0tBQXNLO0FBQ3RLLHdCQUF3QjtBQUN4QixzS0FBc0s7QUFFdEssTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFDdEM7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixNQUFNLEVBQUU7WUFDTjtnQkFDRSxJQUFJLEVBQUUsU0FBUztnQkFDZixZQUFZLEVBQUUseUJBQXlCO2dCQUN2QyxJQUFJLEVBQUUsT0FBTztnQkFDYixVQUFVLEVBQUU7b0JBQ1YsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtvQkFDbEU7d0JBQ0UsSUFBSSxFQUFFLG1CQUFtQjt3QkFDekIsWUFBWSxFQUFFLFNB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U0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUNyRSxJQUFJLEVBQUUsWUFBWTtRQUNsQixPQUFPLEVBQUUsRUFBRTtRQUNYLGVBQWUsRUFBRSxZQUFZO0tBQzlCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixNQUFNLEVBQUU7WUFDTixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQzVELEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7U0FDOUQ7UUFDRCxJQUFJLEVBQUUsV0FBVztRQUNqQixPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDM0QsZUFBZSxFQUFFLE1BQU07S0FDeEI7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUN0RSxJQUFJLEVBQUUsVUFBVTtRQUNoQixPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDL0QsZUFBZSxFQUFFLE1BQU07S0FDeEI7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRTtZQUNOLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDeEQsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtTQUM1RDtRQUNELElBQUksRUFBRSxZQUFZO1FBQ2xCLE9B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QUFRLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDckUsZUFBZSxFQUFFLFlBQVk7S0FDOUI7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUNsRSxJQUFJLEVBQUUsYUFBYTtRQUNuQixPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDckUsZUFBZSxFQUFFLFlBQVk7S0FDOUI7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRTtZQUNOLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDeEQsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUN2RCxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1NBQzVEO1FBQ0QsSUFBSSxFQUFFLFNBQVM7UUFDZixPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDckUsZUFBZSxFQUFFLFlBQVk7S0FDOUI7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUNsRSxJQUFJLEVBQUUsYUFBYTtRQUNuQixPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUks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