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