@4mica/sdk 0.5.0

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 (105) hide show
  1. package/.eslintrc.cjs +29 -0
  2. package/.github/workflows/ci.yml +31 -0
  3. package/.prettierignore +3 -0
  4. package/.prettierrc +6 -0
  5. package/LICENSE +21 -0
  6. package/README.md +444 -0
  7. package/dist/abi/core4mica.json +1605 -0
  8. package/dist/abi/erc20.json +187 -0
  9. package/dist/auth.d.ts +62 -0
  10. package/dist/auth.js +255 -0
  11. package/dist/bls.d.ts +5 -0
  12. package/dist/bls.js +58 -0
  13. package/dist/client.d.ts +58 -0
  14. package/dist/client.js +245 -0
  15. package/dist/config.d.ts +36 -0
  16. package/dist/config.js +123 -0
  17. package/dist/contract.d.ts +33 -0
  18. package/dist/contract.js +134 -0
  19. package/dist/errors.d.ts +43 -0
  20. package/dist/errors.js +62 -0
  21. package/dist/guarantee.d.ts +3 -0
  22. package/dist/guarantee.js +66 -0
  23. package/dist/index.d.ts +12 -0
  24. package/dist/index.js +28 -0
  25. package/dist/models.d.ts +150 -0
  26. package/dist/models.js +176 -0
  27. package/dist/rpc.d.ts +37 -0
  28. package/dist/rpc.js +163 -0
  29. package/dist/signing.d.ts +106 -0
  30. package/dist/signing.js +223 -0
  31. package/dist/src/abi/core4mica.json +1605 -0
  32. package/dist/src/abi/erc20.json +187 -0
  33. package/dist/src/bls.d.ts +5 -0
  34. package/dist/src/bls.js +45 -0
  35. package/dist/src/client.d.ts +55 -0
  36. package/dist/src/client.js +214 -0
  37. package/dist/src/config.d.ts +21 -0
  38. package/dist/src/config.js +76 -0
  39. package/dist/src/contract.d.ts +33 -0
  40. package/dist/src/contract.js +121 -0
  41. package/dist/src/errors.d.ts +17 -0
  42. package/dist/src/errors.js +31 -0
  43. package/dist/src/guarantee.d.ts +3 -0
  44. package/dist/src/guarantee.js +66 -0
  45. package/dist/src/index.d.ts +11 -0
  46. package/dist/src/index.js +27 -0
  47. package/dist/src/models.d.ts +119 -0
  48. package/dist/src/models.js +132 -0
  49. package/dist/src/rpc.d.ts +30 -0
  50. package/dist/src/rpc.js +122 -0
  51. package/dist/src/signing.d.ts +16 -0
  52. package/dist/src/signing.js +102 -0
  53. package/dist/src/utils.d.ts +8 -0
  54. package/dist/src/utils.js +78 -0
  55. package/dist/src/x402.d.ts +77 -0
  56. package/dist/src/x402.js +214 -0
  57. package/dist/tests/config.test.d.ts +1 -0
  58. package/dist/tests/config.test.js +26 -0
  59. package/dist/tests/guarantee.test.d.ts +1 -0
  60. package/dist/tests/guarantee.test.js +26 -0
  61. package/dist/tests/rpc.test.d.ts +1 -0
  62. package/dist/tests/rpc.test.js +44 -0
  63. package/dist/tests/signing.test.d.ts +1 -0
  64. package/dist/tests/signing.test.js +25 -0
  65. package/dist/tests/utils.test.d.ts +1 -0
  66. package/dist/tests/utils.test.js +25 -0
  67. package/dist/tests/x402.test.d.ts +1 -0
  68. package/dist/tests/x402.test.js +65 -0
  69. package/dist/utils.d.ts +8 -0
  70. package/dist/utils.js +78 -0
  71. package/dist/x402/index.d.ts +22 -0
  72. package/dist/x402/index.js +136 -0
  73. package/dist/x402/models.d.ts +80 -0
  74. package/dist/x402/models.js +2 -0
  75. package/dist/x402.d.ts +78 -0
  76. package/dist/x402.js +231 -0
  77. package/eslint.config.mjs +22 -0
  78. package/package.json +31 -0
  79. package/src/abi/core4mica.json +1605 -0
  80. package/src/abi/erc20.json +187 -0
  81. package/src/auth.ts +325 -0
  82. package/src/bls.ts +76 -0
  83. package/src/client.ts +347 -0
  84. package/src/config.ts +149 -0
  85. package/src/contract.ts +194 -0
  86. package/src/errors.ts +40 -0
  87. package/src/guarantee.ts +96 -0
  88. package/src/index.ts +12 -0
  89. package/src/models.ts +309 -0
  90. package/src/rpc.ts +225 -0
  91. package/src/signing.ts +330 -0
  92. package/src/utils.ts +75 -0
  93. package/src/x402/index.ts +192 -0
  94. package/src/x402/models.ts +94 -0
  95. package/tests/auth.integration.test.ts +97 -0
  96. package/tests/auth.test.ts +292 -0
  97. package/tests/config.test.ts +56 -0
  98. package/tests/guarantee.test.ts +26 -0
  99. package/tests/rpc.test.ts +76 -0
  100. package/tests/signing.test.ts +52 -0
  101. package/tests/utils.test.ts +35 -0
  102. package/tests/x402.test.ts +152 -0
  103. package/tsconfig.build.json +5 -0
  104. package/tsconfig.json +15 -0
  105. package/vitest.config.ts +12 -0
@@ -0,0 +1,1605 @@
1
+ {
2
+ "abi": [
3
+ {
4
+ "type": "constructor",
5
+ "inputs": [
6
+ {
7
+ "name": "manager",
8
+ "type": "address",
9
+ "internalType": "address"
10
+ },
11
+ {
12
+ "name": "verificationKey",
13
+ "type": "tuple",
14
+ "internalType": "struct BLS.G1Point",
15
+ "components": [
16
+ {
17
+ "name": "x_a",
18
+ "type": "bytes32",
19
+ "internalType": "bytes32"
20
+ },
21
+ {
22
+ "name": "x_b",
23
+ "type": "bytes32",
24
+ "internalType": "bytes32"
25
+ },
26
+ {
27
+ "name": "y_a",
28
+ "type": "bytes32",
29
+ "internalType": "bytes32"
30
+ },
31
+ {
32
+ "name": "y_b",
33
+ "type": "bytes32",
34
+ "internalType": "bytes32"
35
+ }
36
+ ]
37
+ },
38
+ {
39
+ "name": "usdc_",
40
+ "type": "address",
41
+ "internalType": "address"
42
+ },
43
+ {
44
+ "name": "usdt_",
45
+ "type": "address",
46
+ "internalType": "address"
47
+ }
48
+ ],
49
+ "stateMutability": "nonpayable"
50
+ },
51
+ {
52
+ "type": "fallback",
53
+ "stateMutability": "payable"
54
+ },
55
+ {
56
+ "type": "receive",
57
+ "stateMutability": "payable"
58
+ },
59
+ {
60
+ "type": "function",
61
+ "name": "GUARANTEE_VERIFICATION_KEY",
62
+ "inputs": [],
63
+ "outputs": [
64
+ {
65
+ "name": "x_a",
66
+ "type": "bytes32",
67
+ "internalType": "bytes32"
68
+ },
69
+ {
70
+ "name": "x_b",
71
+ "type": "bytes32",
72
+ "internalType": "bytes32"
73
+ },
74
+ {
75
+ "name": "y_a",
76
+ "type": "bytes32",
77
+ "internalType": "bytes32"
78
+ },
79
+ {
80
+ "name": "y_b",
81
+ "type": "bytes32",
82
+ "internalType": "bytes32"
83
+ }
84
+ ],
85
+ "stateMutability": "view"
86
+ },
87
+ {
88
+ "type": "function",
89
+ "name": "INITIAL_GUARANTEE_VERSION",
90
+ "inputs": [],
91
+ "outputs": [
92
+ {
93
+ "name": "",
94
+ "type": "uint64",
95
+ "internalType": "uint64"
96
+ }
97
+ ],
98
+ "stateMutability": "view"
99
+ },
100
+ {
101
+ "type": "function",
102
+ "name": "USDC",
103
+ "inputs": [],
104
+ "outputs": [
105
+ {
106
+ "name": "",
107
+ "type": "address",
108
+ "internalType": "address"
109
+ }
110
+ ],
111
+ "stateMutability": "view"
112
+ },
113
+ {
114
+ "type": "function",
115
+ "name": "USDT",
116
+ "inputs": [],
117
+ "outputs": [
118
+ {
119
+ "name": "",
120
+ "type": "address",
121
+ "internalType": "address"
122
+ }
123
+ ],
124
+ "stateMutability": "view"
125
+ },
126
+ {
127
+ "type": "function",
128
+ "name": "authority",
129
+ "inputs": [],
130
+ "outputs": [
131
+ {
132
+ "name": "",
133
+ "type": "address",
134
+ "internalType": "address"
135
+ }
136
+ ],
137
+ "stateMutability": "view"
138
+ },
139
+ {
140
+ "type": "function",
141
+ "name": "cancelWithdrawal",
142
+ "inputs": [],
143
+ "outputs": [],
144
+ "stateMutability": "nonpayable"
145
+ },
146
+ {
147
+ "type": "function",
148
+ "name": "cancelWithdrawal",
149
+ "inputs": [
150
+ {
151
+ "name": "asset",
152
+ "type": "address",
153
+ "internalType": "address"
154
+ }
155
+ ],
156
+ "outputs": [],
157
+ "stateMutability": "nonpayable"
158
+ },
159
+ {
160
+ "type": "function",
161
+ "name": "collateral",
162
+ "inputs": [
163
+ {
164
+ "name": "userAddr",
165
+ "type": "address",
166
+ "internalType": "address"
167
+ }
168
+ ],
169
+ "outputs": [
170
+ {
171
+ "name": "",
172
+ "type": "uint256",
173
+ "internalType": "uint256"
174
+ }
175
+ ],
176
+ "stateMutability": "view"
177
+ },
178
+ {
179
+ "type": "function",
180
+ "name": "collateral",
181
+ "inputs": [
182
+ {
183
+ "name": "userAddr",
184
+ "type": "address",
185
+ "internalType": "address"
186
+ },
187
+ {
188
+ "name": "asset",
189
+ "type": "address",
190
+ "internalType": "address"
191
+ }
192
+ ],
193
+ "outputs": [
194
+ {
195
+ "name": "",
196
+ "type": "uint256",
197
+ "internalType": "uint256"
198
+ }
199
+ ],
200
+ "stateMutability": "view"
201
+ },
202
+ {
203
+ "type": "function",
204
+ "name": "configureGuaranteeVersion",
205
+ "inputs": [
206
+ {
207
+ "name": "version",
208
+ "type": "uint64",
209
+ "internalType": "uint64"
210
+ },
211
+ {
212
+ "name": "verificationKey",
213
+ "type": "tuple",
214
+ "internalType": "struct BLS.G1Point",
215
+ "components": [
216
+ {
217
+ "name": "x_a",
218
+ "type": "bytes32",
219
+ "internalType": "bytes32"
220
+ },
221
+ {
222
+ "name": "x_b",
223
+ "type": "bytes32",
224
+ "internalType": "bytes32"
225
+ },
226
+ {
227
+ "name": "y_a",
228
+ "type": "bytes32",
229
+ "internalType": "bytes32"
230
+ },
231
+ {
232
+ "name": "y_b",
233
+ "type": "bytes32",
234
+ "internalType": "bytes32"
235
+ }
236
+ ]
237
+ },
238
+ {
239
+ "name": "domainSeparator",
240
+ "type": "bytes32",
241
+ "internalType": "bytes32"
242
+ },
243
+ {
244
+ "name": "decoder",
245
+ "type": "address",
246
+ "internalType": "address"
247
+ },
248
+ {
249
+ "name": "enabled",
250
+ "type": "bool",
251
+ "internalType": "bool"
252
+ }
253
+ ],
254
+ "outputs": [],
255
+ "stateMutability": "nonpayable"
256
+ },
257
+ {
258
+ "type": "function",
259
+ "name": "deposit",
260
+ "inputs": [],
261
+ "outputs": [],
262
+ "stateMutability": "payable"
263
+ },
264
+ {
265
+ "type": "function",
266
+ "name": "depositStablecoin",
267
+ "inputs": [
268
+ {
269
+ "name": "asset",
270
+ "type": "address",
271
+ "internalType": "address"
272
+ },
273
+ {
274
+ "name": "amount",
275
+ "type": "uint256",
276
+ "internalType": "uint256"
277
+ }
278
+ ],
279
+ "outputs": [],
280
+ "stateMutability": "nonpayable"
281
+ },
282
+ {
283
+ "type": "function",
284
+ "name": "finalizeWithdrawal",
285
+ "inputs": [
286
+ {
287
+ "name": "asset",
288
+ "type": "address",
289
+ "internalType": "address"
290
+ }
291
+ ],
292
+ "outputs": [],
293
+ "stateMutability": "nonpayable"
294
+ },
295
+ {
296
+ "type": "function",
297
+ "name": "finalizeWithdrawal",
298
+ "inputs": [],
299
+ "outputs": [],
300
+ "stateMutability": "nonpayable"
301
+ },
302
+ {
303
+ "type": "function",
304
+ "name": "getERC20Tokens",
305
+ "inputs": [],
306
+ "outputs": [
307
+ {
308
+ "name": "",
309
+ "type": "address[]",
310
+ "internalType": "address[]"
311
+ }
312
+ ],
313
+ "stateMutability": "view"
314
+ },
315
+ {
316
+ "type": "function",
317
+ "name": "getGuaranteeVersionConfig",
318
+ "inputs": [
319
+ {
320
+ "name": "version",
321
+ "type": "uint64",
322
+ "internalType": "uint64"
323
+ }
324
+ ],
325
+ "outputs": [
326
+ {
327
+ "name": "verificationKey",
328
+ "type": "tuple",
329
+ "internalType": "struct BLS.G1Point",
330
+ "components": [
331
+ {
332
+ "name": "x_a",
333
+ "type": "bytes32",
334
+ "internalType": "bytes32"
335
+ },
336
+ {
337
+ "name": "x_b",
338
+ "type": "bytes32",
339
+ "internalType": "bytes32"
340
+ },
341
+ {
342
+ "name": "y_a",
343
+ "type": "bytes32",
344
+ "internalType": "bytes32"
345
+ },
346
+ {
347
+ "name": "y_b",
348
+ "type": "bytes32",
349
+ "internalType": "bytes32"
350
+ }
351
+ ]
352
+ },
353
+ {
354
+ "name": "domainSeparator",
355
+ "type": "bytes32",
356
+ "internalType": "bytes32"
357
+ },
358
+ {
359
+ "name": "decoder",
360
+ "type": "address",
361
+ "internalType": "address"
362
+ },
363
+ {
364
+ "name": "enabled",
365
+ "type": "bool",
366
+ "internalType": "bool"
367
+ }
368
+ ],
369
+ "stateMutability": "view"
370
+ },
371
+ {
372
+ "type": "function",
373
+ "name": "getPaymentStatus",
374
+ "inputs": [
375
+ {
376
+ "name": "tab_id",
377
+ "type": "uint256",
378
+ "internalType": "uint256"
379
+ }
380
+ ],
381
+ "outputs": [
382
+ {
383
+ "name": "paid",
384
+ "type": "uint256",
385
+ "internalType": "uint256"
386
+ },
387
+ {
388
+ "name": "remunerated",
389
+ "type": "bool",
390
+ "internalType": "bool"
391
+ },
392
+ {
393
+ "name": "asset",
394
+ "type": "address",
395
+ "internalType": "address"
396
+ }
397
+ ],
398
+ "stateMutability": "view"
399
+ },
400
+ {
401
+ "type": "function",
402
+ "name": "getUser",
403
+ "inputs": [
404
+ {
405
+ "name": "userAddr",
406
+ "type": "address",
407
+ "internalType": "address"
408
+ }
409
+ ],
410
+ "outputs": [
411
+ {
412
+ "name": "assetCollateral",
413
+ "type": "uint256",
414
+ "internalType": "uint256"
415
+ },
416
+ {
417
+ "name": "withdrawalRequestTimestamp",
418
+ "type": "uint256",
419
+ "internalType": "uint256"
420
+ },
421
+ {
422
+ "name": "withdrawalRequestAmount",
423
+ "type": "uint256",
424
+ "internalType": "uint256"
425
+ }
426
+ ],
427
+ "stateMutability": "view"
428
+ },
429
+ {
430
+ "type": "function",
431
+ "name": "getUser",
432
+ "inputs": [
433
+ {
434
+ "name": "userAddr",
435
+ "type": "address",
436
+ "internalType": "address"
437
+ },
438
+ {
439
+ "name": "asset",
440
+ "type": "address",
441
+ "internalType": "address"
442
+ }
443
+ ],
444
+ "outputs": [
445
+ {
446
+ "name": "assetCollateral",
447
+ "type": "uint256",
448
+ "internalType": "uint256"
449
+ },
450
+ {
451
+ "name": "withdrawalRequestTimestamp",
452
+ "type": "uint256",
453
+ "internalType": "uint256"
454
+ },
455
+ {
456
+ "name": "withdrawalRequestAmount",
457
+ "type": "uint256",
458
+ "internalType": "uint256"
459
+ }
460
+ ],
461
+ "stateMutability": "view"
462
+ },
463
+ {
464
+ "type": "function",
465
+ "name": "getUserAllAssets",
466
+ "inputs": [
467
+ {
468
+ "name": "userAddr",
469
+ "type": "address",
470
+ "internalType": "address"
471
+ }
472
+ ],
473
+ "outputs": [
474
+ {
475
+ "name": "",
476
+ "type": "tuple[]",
477
+ "internalType": "struct Core4Mica.UserAssetInfo[]",
478
+ "components": [
479
+ {
480
+ "name": "asset",
481
+ "type": "address",
482
+ "internalType": "address"
483
+ },
484
+ {
485
+ "name": "collateral",
486
+ "type": "uint256",
487
+ "internalType": "uint256"
488
+ },
489
+ {
490
+ "name": "withdrawalRequestTimestamp",
491
+ "type": "uint256",
492
+ "internalType": "uint256"
493
+ },
494
+ {
495
+ "name": "withdrawalRequestAmount",
496
+ "type": "uint256",
497
+ "internalType": "uint256"
498
+ }
499
+ ]
500
+ }
501
+ ],
502
+ "stateMutability": "view"
503
+ },
504
+ {
505
+ "type": "function",
506
+ "name": "guaranteeDomainSeparator",
507
+ "inputs": [],
508
+ "outputs": [
509
+ {
510
+ "name": "",
511
+ "type": "bytes32",
512
+ "internalType": "bytes32"
513
+ }
514
+ ],
515
+ "stateMutability": "view"
516
+ },
517
+ {
518
+ "type": "function",
519
+ "name": "isConsumingScheduledOp",
520
+ "inputs": [],
521
+ "outputs": [
522
+ {
523
+ "name": "",
524
+ "type": "bytes4",
525
+ "internalType": "bytes4"
526
+ }
527
+ ],
528
+ "stateMutability": "view"
529
+ },
530
+ {
531
+ "type": "function",
532
+ "name": "pause",
533
+ "inputs": [],
534
+ "outputs": [],
535
+ "stateMutability": "nonpayable"
536
+ },
537
+ {
538
+ "type": "function",
539
+ "name": "paused",
540
+ "inputs": [],
541
+ "outputs": [
542
+ {
543
+ "name": "",
544
+ "type": "bool",
545
+ "internalType": "bool"
546
+ }
547
+ ],
548
+ "stateMutability": "view"
549
+ },
550
+ {
551
+ "type": "function",
552
+ "name": "payTabInERC20Token",
553
+ "inputs": [
554
+ {
555
+ "name": "tab_id",
556
+ "type": "uint256",
557
+ "internalType": "uint256"
558
+ },
559
+ {
560
+ "name": "asset",
561
+ "type": "address",
562
+ "internalType": "address"
563
+ },
564
+ {
565
+ "name": "amount",
566
+ "type": "uint256",
567
+ "internalType": "uint256"
568
+ },
569
+ {
570
+ "name": "recipient",
571
+ "type": "address",
572
+ "internalType": "address"
573
+ }
574
+ ],
575
+ "outputs": [],
576
+ "stateMutability": "nonpayable"
577
+ },
578
+ {
579
+ "type": "function",
580
+ "name": "payments",
581
+ "inputs": [
582
+ {
583
+ "name": "",
584
+ "type": "uint256",
585
+ "internalType": "uint256"
586
+ }
587
+ ],
588
+ "outputs": [
589
+ {
590
+ "name": "paid",
591
+ "type": "uint256",
592
+ "internalType": "uint256"
593
+ },
594
+ {
595
+ "name": "remunerated",
596
+ "type": "bool",
597
+ "internalType": "bool"
598
+ },
599
+ {
600
+ "name": "asset",
601
+ "type": "address",
602
+ "internalType": "address"
603
+ }
604
+ ],
605
+ "stateMutability": "view"
606
+ },
607
+ {
608
+ "type": "function",
609
+ "name": "recordPayment",
610
+ "inputs": [
611
+ {
612
+ "name": "tab_id",
613
+ "type": "uint256",
614
+ "internalType": "uint256"
615
+ },
616
+ {
617
+ "name": "asset",
618
+ "type": "address",
619
+ "internalType": "address"
620
+ },
621
+ {
622
+ "name": "amount",
623
+ "type": "uint256",
624
+ "internalType": "uint256"
625
+ }
626
+ ],
627
+ "outputs": [],
628
+ "stateMutability": "nonpayable"
629
+ },
630
+ {
631
+ "type": "function",
632
+ "name": "remunerate",
633
+ "inputs": [
634
+ {
635
+ "name": "guaranteeData",
636
+ "type": "bytes",
637
+ "internalType": "bytes"
638
+ },
639
+ {
640
+ "name": "signature",
641
+ "type": "tuple",
642
+ "internalType": "struct BLS.G2Point",
643
+ "components": [
644
+ {
645
+ "name": "x_c0_a",
646
+ "type": "bytes32",
647
+ "internalType": "bytes32"
648
+ },
649
+ {
650
+ "name": "x_c0_b",
651
+ "type": "bytes32",
652
+ "internalType": "bytes32"
653
+ },
654
+ {
655
+ "name": "x_c1_a",
656
+ "type": "bytes32",
657
+ "internalType": "bytes32"
658
+ },
659
+ {
660
+ "name": "x_c1_b",
661
+ "type": "bytes32",
662
+ "internalType": "bytes32"
663
+ },
664
+ {
665
+ "name": "y_c0_a",
666
+ "type": "bytes32",
667
+ "internalType": "bytes32"
668
+ },
669
+ {
670
+ "name": "y_c0_b",
671
+ "type": "bytes32",
672
+ "internalType": "bytes32"
673
+ },
674
+ {
675
+ "name": "y_c1_a",
676
+ "type": "bytes32",
677
+ "internalType": "bytes32"
678
+ },
679
+ {
680
+ "name": "y_c1_b",
681
+ "type": "bytes32",
682
+ "internalType": "bytes32"
683
+ }
684
+ ]
685
+ }
686
+ ],
687
+ "outputs": [],
688
+ "stateMutability": "nonpayable"
689
+ },
690
+ {
691
+ "type": "function",
692
+ "name": "remunerationGracePeriod",
693
+ "inputs": [],
694
+ "outputs": [
695
+ {
696
+ "name": "",
697
+ "type": "uint256",
698
+ "internalType": "uint256"
699
+ }
700
+ ],
701
+ "stateMutability": "view"
702
+ },
703
+ {
704
+ "type": "function",
705
+ "name": "requestWithdrawal",
706
+ "inputs": [
707
+ {
708
+ "name": "amount",
709
+ "type": "uint256",
710
+ "internalType": "uint256"
711
+ }
712
+ ],
713
+ "outputs": [],
714
+ "stateMutability": "nonpayable"
715
+ },
716
+ {
717
+ "type": "function",
718
+ "name": "requestWithdrawal",
719
+ "inputs": [
720
+ {
721
+ "name": "asset",
722
+ "type": "address",
723
+ "internalType": "address"
724
+ },
725
+ {
726
+ "name": "amount",
727
+ "type": "uint256",
728
+ "internalType": "uint256"
729
+ }
730
+ ],
731
+ "outputs": [],
732
+ "stateMutability": "nonpayable"
733
+ },
734
+ {
735
+ "type": "function",
736
+ "name": "setAuthority",
737
+ "inputs": [
738
+ {
739
+ "name": "newAuthority",
740
+ "type": "address",
741
+ "internalType": "address"
742
+ }
743
+ ],
744
+ "outputs": [],
745
+ "stateMutability": "nonpayable"
746
+ },
747
+ {
748
+ "type": "function",
749
+ "name": "setGuaranteeVerificationKey",
750
+ "inputs": [
751
+ {
752
+ "name": "verificationKey",
753
+ "type": "tuple",
754
+ "internalType": "struct BLS.G1Point",
755
+ "components": [
756
+ {
757
+ "name": "x_a",
758
+ "type": "bytes32",
759
+ "internalType": "bytes32"
760
+ },
761
+ {
762
+ "name": "x_b",
763
+ "type": "bytes32",
764
+ "internalType": "bytes32"
765
+ },
766
+ {
767
+ "name": "y_a",
768
+ "type": "bytes32",
769
+ "internalType": "bytes32"
770
+ },
771
+ {
772
+ "name": "y_b",
773
+ "type": "bytes32",
774
+ "internalType": "bytes32"
775
+ }
776
+ ]
777
+ }
778
+ ],
779
+ "outputs": [],
780
+ "stateMutability": "nonpayable"
781
+ },
782
+ {
783
+ "type": "function",
784
+ "name": "setRemunerationGracePeriod",
785
+ "inputs": [
786
+ {
787
+ "name": "_gracePeriod",
788
+ "type": "uint256",
789
+ "internalType": "uint256"
790
+ }
791
+ ],
792
+ "outputs": [],
793
+ "stateMutability": "nonpayable"
794
+ },
795
+ {
796
+ "type": "function",
797
+ "name": "setSynchronizationDelay",
798
+ "inputs": [
799
+ {
800
+ "name": "_synchronizationDelay",
801
+ "type": "uint256",
802
+ "internalType": "uint256"
803
+ }
804
+ ],
805
+ "outputs": [],
806
+ "stateMutability": "nonpayable"
807
+ },
808
+ {
809
+ "type": "function",
810
+ "name": "setTabExpirationTime",
811
+ "inputs": [
812
+ {
813
+ "name": "_expirationTime",
814
+ "type": "uint256",
815
+ "internalType": "uint256"
816
+ }
817
+ ],
818
+ "outputs": [],
819
+ "stateMutability": "nonpayable"
820
+ },
821
+ {
822
+ "type": "function",
823
+ "name": "setTimingParameters",
824
+ "inputs": [
825
+ {
826
+ "name": "_remunerationGracePeriod",
827
+ "type": "uint256",
828
+ "internalType": "uint256"
829
+ },
830
+ {
831
+ "name": "_tabExpirationTime",
832
+ "type": "uint256",
833
+ "internalType": "uint256"
834
+ },
835
+ {
836
+ "name": "_synchronizationDelay",
837
+ "type": "uint256",
838
+ "internalType": "uint256"
839
+ },
840
+ {
841
+ "name": "_withdrawalGracePeriod",
842
+ "type": "uint256",
843
+ "internalType": "uint256"
844
+ }
845
+ ],
846
+ "outputs": [],
847
+ "stateMutability": "nonpayable"
848
+ },
849
+ {
850
+ "type": "function",
851
+ "name": "setWithdrawalGracePeriod",
852
+ "inputs": [
853
+ {
854
+ "name": "_gracePeriod",
855
+ "type": "uint256",
856
+ "internalType": "uint256"
857
+ }
858
+ ],
859
+ "outputs": [],
860
+ "stateMutability": "nonpayable"
861
+ },
862
+ {
863
+ "type": "function",
864
+ "name": "synchronizationDelay",
865
+ "inputs": [],
866
+ "outputs": [
867
+ {
868
+ "name": "",
869
+ "type": "uint256",
870
+ "internalType": "uint256"
871
+ }
872
+ ],
873
+ "stateMutability": "view"
874
+ },
875
+ {
876
+ "type": "function",
877
+ "name": "tabExpirationTime",
878
+ "inputs": [],
879
+ "outputs": [
880
+ {
881
+ "name": "",
882
+ "type": "uint256",
883
+ "internalType": "uint256"
884
+ }
885
+ ],
886
+ "stateMutability": "view"
887
+ },
888
+ {
889
+ "type": "function",
890
+ "name": "unpause",
891
+ "inputs": [],
892
+ "outputs": [],
893
+ "stateMutability": "nonpayable"
894
+ },
895
+ {
896
+ "type": "function",
897
+ "name": "verifyAndDecodeGuarantee",
898
+ "inputs": [
899
+ {
900
+ "name": "guarantee",
901
+ "type": "bytes",
902
+ "internalType": "bytes"
903
+ },
904
+ {
905
+ "name": "signature",
906
+ "type": "tuple",
907
+ "internalType": "struct BLS.G2Point",
908
+ "components": [
909
+ {
910
+ "name": "x_c0_a",
911
+ "type": "bytes32",
912
+ "internalType": "bytes32"
913
+ },
914
+ {
915
+ "name": "x_c0_b",
916
+ "type": "bytes32",
917
+ "internalType": "bytes32"
918
+ },
919
+ {
920
+ "name": "x_c1_a",
921
+ "type": "bytes32",
922
+ "internalType": "bytes32"
923
+ },
924
+ {
925
+ "name": "x_c1_b",
926
+ "type": "bytes32",
927
+ "internalType": "bytes32"
928
+ },
929
+ {
930
+ "name": "y_c0_a",
931
+ "type": "bytes32",
932
+ "internalType": "bytes32"
933
+ },
934
+ {
935
+ "name": "y_c0_b",
936
+ "type": "bytes32",
937
+ "internalType": "bytes32"
938
+ },
939
+ {
940
+ "name": "y_c1_a",
941
+ "type": "bytes32",
942
+ "internalType": "bytes32"
943
+ },
944
+ {
945
+ "name": "y_c1_b",
946
+ "type": "bytes32",
947
+ "internalType": "bytes32"
948
+ }
949
+ ]
950
+ }
951
+ ],
952
+ "outputs": [
953
+ {
954
+ "name": "",
955
+ "type": "tuple",
956
+ "internalType": "struct Guarantee",
957
+ "components": [
958
+ {
959
+ "name": "domain",
960
+ "type": "bytes32",
961
+ "internalType": "bytes32"
962
+ },
963
+ {
964
+ "name": "tab_id",
965
+ "type": "uint256",
966
+ "internalType": "uint256"
967
+ },
968
+ {
969
+ "name": "req_id",
970
+ "type": "uint256",
971
+ "internalType": "uint256"
972
+ },
973
+ {
974
+ "name": "client",
975
+ "type": "address",
976
+ "internalType": "address"
977
+ },
978
+ {
979
+ "name": "recipient",
980
+ "type": "address",
981
+ "internalType": "address"
982
+ },
983
+ {
984
+ "name": "amount",
985
+ "type": "uint256",
986
+ "internalType": "uint256"
987
+ },
988
+ {
989
+ "name": "total_amount",
990
+ "type": "uint256",
991
+ "internalType": "uint256"
992
+ },
993
+ {
994
+ "name": "asset",
995
+ "type": "address",
996
+ "internalType": "address"
997
+ },
998
+ {
999
+ "name": "timestamp",
1000
+ "type": "uint64",
1001
+ "internalType": "uint64"
1002
+ },
1003
+ {
1004
+ "name": "version",
1005
+ "type": "uint64",
1006
+ "internalType": "uint64"
1007
+ }
1008
+ ]
1009
+ }
1010
+ ],
1011
+ "stateMutability": "view"
1012
+ },
1013
+ {
1014
+ "type": "function",
1015
+ "name": "withdrawalGracePeriod",
1016
+ "inputs": [],
1017
+ "outputs": [
1018
+ {
1019
+ "name": "",
1020
+ "type": "uint256",
1021
+ "internalType": "uint256"
1022
+ }
1023
+ ],
1024
+ "stateMutability": "view"
1025
+ },
1026
+ {
1027
+ "type": "function",
1028
+ "name": "withdrawalRequests",
1029
+ "inputs": [
1030
+ {
1031
+ "name": "",
1032
+ "type": "address",
1033
+ "internalType": "address"
1034
+ },
1035
+ {
1036
+ "name": "",
1037
+ "type": "address",
1038
+ "internalType": "address"
1039
+ }
1040
+ ],
1041
+ "outputs": [
1042
+ {
1043
+ "name": "timestamp",
1044
+ "type": "uint256",
1045
+ "internalType": "uint256"
1046
+ },
1047
+ {
1048
+ "name": "amount",
1049
+ "type": "uint256",
1050
+ "internalType": "uint256"
1051
+ }
1052
+ ],
1053
+ "stateMutability": "view"
1054
+ },
1055
+ {
1056
+ "type": "event",
1057
+ "name": "AuthorityUpdated",
1058
+ "inputs": [
1059
+ {
1060
+ "name": "authority",
1061
+ "type": "address",
1062
+ "indexed": false,
1063
+ "internalType": "address"
1064
+ }
1065
+ ],
1066
+ "anonymous": false
1067
+ },
1068
+ {
1069
+ "type": "event",
1070
+ "name": "CollateralDeposited",
1071
+ "inputs": [
1072
+ {
1073
+ "name": "user",
1074
+ "type": "address",
1075
+ "indexed": true,
1076
+ "internalType": "address"
1077
+ },
1078
+ {
1079
+ "name": "asset",
1080
+ "type": "address",
1081
+ "indexed": true,
1082
+ "internalType": "address"
1083
+ },
1084
+ {
1085
+ "name": "amount",
1086
+ "type": "uint256",
1087
+ "indexed": false,
1088
+ "internalType": "uint256"
1089
+ }
1090
+ ],
1091
+ "anonymous": false
1092
+ },
1093
+ {
1094
+ "type": "event",
1095
+ "name": "CollateralWithdrawn",
1096
+ "inputs": [
1097
+ {
1098
+ "name": "user",
1099
+ "type": "address",
1100
+ "indexed": true,
1101
+ "internalType": "address"
1102
+ },
1103
+ {
1104
+ "name": "asset",
1105
+ "type": "address",
1106
+ "indexed": true,
1107
+ "internalType": "address"
1108
+ },
1109
+ {
1110
+ "name": "amount",
1111
+ "type": "uint256",
1112
+ "indexed": false,
1113
+ "internalType": "uint256"
1114
+ }
1115
+ ],
1116
+ "anonymous": false
1117
+ },
1118
+ {
1119
+ "type": "event",
1120
+ "name": "GuaranteeVersionUpdated",
1121
+ "inputs": [
1122
+ {
1123
+ "name": "version",
1124
+ "type": "uint64",
1125
+ "indexed": true,
1126
+ "internalType": "uint64"
1127
+ },
1128
+ {
1129
+ "name": "verificationKey",
1130
+ "type": "tuple",
1131
+ "indexed": false,
1132
+ "internalType": "struct BLS.G1Point",
1133
+ "components": [
1134
+ {
1135
+ "name": "x_a",
1136
+ "type": "bytes32",
1137
+ "internalType": "bytes32"
1138
+ },
1139
+ {
1140
+ "name": "x_b",
1141
+ "type": "bytes32",
1142
+ "internalType": "bytes32"
1143
+ },
1144
+ {
1145
+ "name": "y_a",
1146
+ "type": "bytes32",
1147
+ "internalType": "bytes32"
1148
+ },
1149
+ {
1150
+ "name": "y_b",
1151
+ "type": "bytes32",
1152
+ "internalType": "bytes32"
1153
+ }
1154
+ ]
1155
+ },
1156
+ {
1157
+ "name": "domainSeparator",
1158
+ "type": "bytes32",
1159
+ "indexed": false,
1160
+ "internalType": "bytes32"
1161
+ },
1162
+ {
1163
+ "name": "decoder",
1164
+ "type": "address",
1165
+ "indexed": false,
1166
+ "internalType": "address"
1167
+ },
1168
+ {
1169
+ "name": "enabled",
1170
+ "type": "bool",
1171
+ "indexed": false,
1172
+ "internalType": "bool"
1173
+ }
1174
+ ],
1175
+ "anonymous": false
1176
+ },
1177
+ {
1178
+ "type": "event",
1179
+ "name": "Paused",
1180
+ "inputs": [
1181
+ {
1182
+ "name": "account",
1183
+ "type": "address",
1184
+ "indexed": false,
1185
+ "internalType": "address"
1186
+ }
1187
+ ],
1188
+ "anonymous": false
1189
+ },
1190
+ {
1191
+ "type": "event",
1192
+ "name": "PaymentRecorded",
1193
+ "inputs": [
1194
+ {
1195
+ "name": "tab_id",
1196
+ "type": "uint256",
1197
+ "indexed": true,
1198
+ "internalType": "uint256"
1199
+ },
1200
+ {
1201
+ "name": "asset",
1202
+ "type": "address",
1203
+ "indexed": true,
1204
+ "internalType": "address"
1205
+ },
1206
+ {
1207
+ "name": "amount",
1208
+ "type": "uint256",
1209
+ "indexed": false,
1210
+ "internalType": "uint256"
1211
+ }
1212
+ ],
1213
+ "anonymous": false
1214
+ },
1215
+ {
1216
+ "type": "event",
1217
+ "name": "RecipientRemunerated",
1218
+ "inputs": [
1219
+ {
1220
+ "name": "tab_id",
1221
+ "type": "uint256",
1222
+ "indexed": true,
1223
+ "internalType": "uint256"
1224
+ },
1225
+ {
1226
+ "name": "asset",
1227
+ "type": "address",
1228
+ "indexed": true,
1229
+ "internalType": "address"
1230
+ },
1231
+ {
1232
+ "name": "amount",
1233
+ "type": "uint256",
1234
+ "indexed": false,
1235
+ "internalType": "uint256"
1236
+ }
1237
+ ],
1238
+ "anonymous": false
1239
+ },
1240
+ {
1241
+ "type": "event",
1242
+ "name": "RemunerationGracePeriodUpdated",
1243
+ "inputs": [
1244
+ {
1245
+ "name": "newGracePeriod",
1246
+ "type": "uint256",
1247
+ "indexed": false,
1248
+ "internalType": "uint256"
1249
+ }
1250
+ ],
1251
+ "anonymous": false
1252
+ },
1253
+ {
1254
+ "type": "event",
1255
+ "name": "SynchronizationDelayUpdated",
1256
+ "inputs": [
1257
+ {
1258
+ "name": "newExpirationTime",
1259
+ "type": "uint256",
1260
+ "indexed": false,
1261
+ "internalType": "uint256"
1262
+ }
1263
+ ],
1264
+ "anonymous": false
1265
+ },
1266
+ {
1267
+ "type": "event",
1268
+ "name": "TabExpirationTimeUpdated",
1269
+ "inputs": [
1270
+ {
1271
+ "name": "newExpirationTime",
1272
+ "type": "uint256",
1273
+ "indexed": false,
1274
+ "internalType": "uint256"
1275
+ }
1276
+ ],
1277
+ "anonymous": false
1278
+ },
1279
+ {
1280
+ "type": "event",
1281
+ "name": "TabPaid",
1282
+ "inputs": [
1283
+ {
1284
+ "name": "tab_id",
1285
+ "type": "uint256",
1286
+ "indexed": true,
1287
+ "internalType": "uint256"
1288
+ },
1289
+ {
1290
+ "name": "asset",
1291
+ "type": "address",
1292
+ "indexed": true,
1293
+ "internalType": "address"
1294
+ },
1295
+ {
1296
+ "name": "user",
1297
+ "type": "address",
1298
+ "indexed": true,
1299
+ "internalType": "address"
1300
+ },
1301
+ {
1302
+ "name": "amount",
1303
+ "type": "uint256",
1304
+ "indexed": false,
1305
+ "internalType": "uint256"
1306
+ }
1307
+ ],
1308
+ "anonymous": false
1309
+ },
1310
+ {
1311
+ "type": "event",
1312
+ "name": "Unpaused",
1313
+ "inputs": [
1314
+ {
1315
+ "name": "account",
1316
+ "type": "address",
1317
+ "indexed": false,
1318
+ "internalType": "address"
1319
+ }
1320
+ ],
1321
+ "anonymous": false
1322
+ },
1323
+ {
1324
+ "type": "event",
1325
+ "name": "VerificationKeyUpdated",
1326
+ "inputs": [
1327
+ {
1328
+ "name": "newVerificationKey",
1329
+ "type": "tuple",
1330
+ "indexed": false,
1331
+ "internalType": "struct BLS.G1Point",
1332
+ "components": [
1333
+ {
1334
+ "name": "x_a",
1335
+ "type": "bytes32",
1336
+ "internalType": "bytes32"
1337
+ },
1338
+ {
1339
+ "name": "x_b",
1340
+ "type": "bytes32",
1341
+ "internalType": "bytes32"
1342
+ },
1343
+ {
1344
+ "name": "y_a",
1345
+ "type": "bytes32",
1346
+ "internalType": "bytes32"
1347
+ },
1348
+ {
1349
+ "name": "y_b",
1350
+ "type": "bytes32",
1351
+ "internalType": "bytes32"
1352
+ }
1353
+ ]
1354
+ }
1355
+ ],
1356
+ "anonymous": false
1357
+ },
1358
+ {
1359
+ "type": "event",
1360
+ "name": "WithdrawalCanceled",
1361
+ "inputs": [
1362
+ {
1363
+ "name": "user",
1364
+ "type": "address",
1365
+ "indexed": true,
1366
+ "internalType": "address"
1367
+ },
1368
+ {
1369
+ "name": "asset",
1370
+ "type": "address",
1371
+ "indexed": true,
1372
+ "internalType": "address"
1373
+ }
1374
+ ],
1375
+ "anonymous": false
1376
+ },
1377
+ {
1378
+ "type": "event",
1379
+ "name": "WithdrawalGracePeriodUpdated",
1380
+ "inputs": [
1381
+ {
1382
+ "name": "newGracePeriod",
1383
+ "type": "uint256",
1384
+ "indexed": false,
1385
+ "internalType": "uint256"
1386
+ }
1387
+ ],
1388
+ "anonymous": false
1389
+ },
1390
+ {
1391
+ "type": "event",
1392
+ "name": "WithdrawalRequested",
1393
+ "inputs": [
1394
+ {
1395
+ "name": "user",
1396
+ "type": "address",
1397
+ "indexed": true,
1398
+ "internalType": "address"
1399
+ },
1400
+ {
1401
+ "name": "asset",
1402
+ "type": "address",
1403
+ "indexed": true,
1404
+ "internalType": "address"
1405
+ },
1406
+ {
1407
+ "name": "when",
1408
+ "type": "uint256",
1409
+ "indexed": false,
1410
+ "internalType": "uint256"
1411
+ },
1412
+ {
1413
+ "name": "amount",
1414
+ "type": "uint256",
1415
+ "indexed": false,
1416
+ "internalType": "uint256"
1417
+ }
1418
+ ],
1419
+ "anonymous": false
1420
+ },
1421
+ {
1422
+ "type": "error",
1423
+ "name": "AccessManagedInvalidAuthority",
1424
+ "inputs": [
1425
+ {
1426
+ "name": "authority",
1427
+ "type": "address",
1428
+ "internalType": "address"
1429
+ }
1430
+ ]
1431
+ },
1432
+ {
1433
+ "type": "error",
1434
+ "name": "AccessManagedRequiredDelay",
1435
+ "inputs": [
1436
+ {
1437
+ "name": "caller",
1438
+ "type": "address",
1439
+ "internalType": "address"
1440
+ },
1441
+ {
1442
+ "name": "delay",
1443
+ "type": "uint32",
1444
+ "internalType": "uint32"
1445
+ }
1446
+ ]
1447
+ },
1448
+ {
1449
+ "type": "error",
1450
+ "name": "AccessManagedUnauthorized",
1451
+ "inputs": [
1452
+ {
1453
+ "name": "caller",
1454
+ "type": "address",
1455
+ "internalType": "address"
1456
+ }
1457
+ ]
1458
+ },
1459
+ {
1460
+ "type": "error",
1461
+ "name": "AmountZero",
1462
+ "inputs": []
1463
+ },
1464
+ {
1465
+ "type": "error",
1466
+ "name": "DirectTransferNotAllowed",
1467
+ "inputs": []
1468
+ },
1469
+ {
1470
+ "type": "error",
1471
+ "name": "DoubleSpendingDetected",
1472
+ "inputs": []
1473
+ },
1474
+ {
1475
+ "type": "error",
1476
+ "name": "EnforcedPause",
1477
+ "inputs": []
1478
+ },
1479
+ {
1480
+ "type": "error",
1481
+ "name": "ExpectedPause",
1482
+ "inputs": []
1483
+ },
1484
+ {
1485
+ "type": "error",
1486
+ "name": "GracePeriodNotElapsed",
1487
+ "inputs": []
1488
+ },
1489
+ {
1490
+ "type": "error",
1491
+ "name": "IllegalValue",
1492
+ "inputs": []
1493
+ },
1494
+ {
1495
+ "type": "error",
1496
+ "name": "InsufficientAvailable",
1497
+ "inputs": []
1498
+ },
1499
+ {
1500
+ "type": "error",
1501
+ "name": "InvalidAsset",
1502
+ "inputs": [
1503
+ {
1504
+ "name": "asset",
1505
+ "type": "address",
1506
+ "internalType": "address"
1507
+ }
1508
+ ]
1509
+ },
1510
+ {
1511
+ "type": "error",
1512
+ "name": "InvalidGuaranteeDomain",
1513
+ "inputs": []
1514
+ },
1515
+ {
1516
+ "type": "error",
1517
+ "name": "InvalidRecipient",
1518
+ "inputs": []
1519
+ },
1520
+ {
1521
+ "type": "error",
1522
+ "name": "InvalidSignature",
1523
+ "inputs": []
1524
+ },
1525
+ {
1526
+ "type": "error",
1527
+ "name": "MissingGuaranteeDecoder",
1528
+ "inputs": [
1529
+ {
1530
+ "name": "version",
1531
+ "type": "uint64",
1532
+ "internalType": "uint64"
1533
+ }
1534
+ ]
1535
+ },
1536
+ {
1537
+ "type": "error",
1538
+ "name": "NoWithdrawalRequested",
1539
+ "inputs": []
1540
+ },
1541
+ {
1542
+ "type": "error",
1543
+ "name": "ReentrancyGuardReentrantCall",
1544
+ "inputs": []
1545
+ },
1546
+ {
1547
+ "type": "error",
1548
+ "name": "SafeERC20FailedOperation",
1549
+ "inputs": [
1550
+ {
1551
+ "name": "token",
1552
+ "type": "address",
1553
+ "internalType": "address"
1554
+ }
1555
+ ]
1556
+ },
1557
+ {
1558
+ "type": "error",
1559
+ "name": "TabAlreadyPaid",
1560
+ "inputs": []
1561
+ },
1562
+ {
1563
+ "type": "error",
1564
+ "name": "TabExpired",
1565
+ "inputs": []
1566
+ },
1567
+ {
1568
+ "type": "error",
1569
+ "name": "TabNotYetOverdue",
1570
+ "inputs": []
1571
+ },
1572
+ {
1573
+ "type": "error",
1574
+ "name": "TabPreviouslyRemunerated",
1575
+ "inputs": []
1576
+ },
1577
+ {
1578
+ "type": "error",
1579
+ "name": "TransferFailed",
1580
+ "inputs": []
1581
+ },
1582
+ {
1583
+ "type": "error",
1584
+ "name": "UnsupportedAsset",
1585
+ "inputs": [
1586
+ {
1587
+ "name": "asset",
1588
+ "type": "address",
1589
+ "internalType": "address"
1590
+ }
1591
+ ]
1592
+ },
1593
+ {
1594
+ "type": "error",
1595
+ "name": "UnsupportedGuaranteeVersion",
1596
+ "inputs": [
1597
+ {
1598
+ "name": "version",
1599
+ "type": "uint64",
1600
+ "internalType": "uint64"
1601
+ }
1602
+ ]
1603
+ }
1604
+ ]
1605
+ }