@openzeppelin/confidential-contracts 0.4.0 → 0.5.0-rc.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 (39) hide show
  1. package/build/contracts/BatcherConfidential.json +5 -0
  2. package/build/contracts/CheckpointsConfidential.json +2 -2
  3. package/build/contracts/ERC7984.json +6 -28
  4. package/build/contracts/ERC7984BalanceCapHookModule.json +277 -0
  5. package/build/contracts/ERC7984ERC20Wrapper.json +6 -28
  6. package/build/contracts/ERC7984Freezable.json +6 -28
  7. package/build/contracts/ERC7984HolderCapHookModule.json +291 -0
  8. package/build/contracts/ERC7984HookModule.json +200 -0
  9. package/build/contracts/ERC7984Hooked.json +832 -0
  10. package/build/contracts/ERC7984IdentityCheck.json +691 -0
  11. package/build/contracts/ERC7984ObserverAccess.json +6 -28
  12. package/build/contracts/ERC7984Omnibus.json +6 -28
  13. package/build/contracts/ERC7984Restricted.json +6 -28
  14. package/build/contracts/ERC7984Rwa.json +61 -29
  15. package/build/contracts/ERC7984Utils.json +2 -2
  16. package/build/contracts/ERC7984Votes.json +6 -28
  17. package/build/contracts/FHESafeMath.json +2 -2
  18. package/build/contracts/IERC7984HookModule.json +151 -0
  19. package/build/contracts/IERC7984Rwa.json +87 -0
  20. package/build/contracts/IIdentityRegistry.json +30 -0
  21. package/finance/BatcherConfidential.sol +7 -3
  22. package/governance/utils/VotesConfidential.sol +2 -2
  23. package/interfaces/IERC7984HookModule.sol +39 -0
  24. package/interfaces/IERC7984Receiver.sol +3 -1
  25. package/interfaces/IERC7984Rwa.sol +28 -1
  26. package/package.json +1 -1
  27. package/token/ERC7984/ERC7984.sol +39 -28
  28. package/token/ERC7984/extensions/ERC7984ERC20Wrapper.sol +3 -3
  29. package/token/ERC7984/extensions/ERC7984Freezable.sol +3 -7
  30. package/token/ERC7984/extensions/ERC7984Hooked.sol +158 -0
  31. package/token/ERC7984/extensions/ERC7984IdentityCheck.sol +58 -0
  32. package/token/ERC7984/extensions/ERC7984Restricted.sol +3 -3
  33. package/token/ERC7984/extensions/ERC7984Rwa.sol +65 -28
  34. package/token/ERC7984/utils/ERC7984BalanceCapHookModule.sol +92 -0
  35. package/token/ERC7984/utils/ERC7984HolderCapHookModule.sol +145 -0
  36. package/token/ERC7984/utils/ERC7984HookModule.sol +170 -0
  37. package/utils/FHESafeMath.sol +26 -1
  38. package/utils/HandleAccessManager.sol +5 -3
  39. package/utils/structs/CheckpointsConfidential.sol +1 -2
@@ -3,17 +3,6 @@
3
3
  "contractName": "ERC7984ObserverAccess",
4
4
  "sourceName": "contracts/token/ERC7984/extensions/ERC7984ObserverAccess.sol",
5
5
  "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "uint256",
10
- "name": "requestId",
11
- "type": "uint256"
12
- }
13
- ],
14
- "name": "ERC7984InvalidGatewayRequest",
15
- "type": "error"
16
- },
17
6
  {
18
7
  "inputs": [
19
8
  {
@@ -79,17 +68,6 @@
79
68
  "name": "ERC7984UnauthorizedUseOfEncryptedAmount",
80
69
  "type": "error"
81
70
  },
82
- {
83
- "inputs": [
84
- {
85
- "internalType": "address",
86
- "name": "holder",
87
- "type": "address"
88
- }
89
- ],
90
- "name": "ERC7984ZeroBalance",
91
- "type": "error"
92
- },
93
71
  {
94
72
  "inputs": [],
95
73
  "name": "InvalidKMSSignatures",
@@ -355,7 +333,7 @@
355
333
  "outputs": [
356
334
  {
357
335
  "internalType": "euint64",
358
- "name": "transferred",
336
+ "name": "",
359
337
  "type": "bytes32"
360
338
  }
361
339
  ],
@@ -389,7 +367,7 @@
389
367
  "outputs": [
390
368
  {
391
369
  "internalType": "euint64",
392
- "name": "transferred",
370
+ "name": "",
393
371
  "type": "bytes32"
394
372
  }
395
373
  ],
@@ -423,7 +401,7 @@
423
401
  "outputs": [
424
402
  {
425
403
  "internalType": "euint64",
426
- "name": "transferred",
404
+ "name": "",
427
405
  "type": "bytes32"
428
406
  }
429
407
  ],
@@ -452,7 +430,7 @@
452
430
  "outputs": [
453
431
  {
454
432
  "internalType": "euint64",
455
- "name": "transferred",
433
+ "name": "",
456
434
  "type": "bytes32"
457
435
  }
458
436
  ],
@@ -491,7 +469,7 @@
491
469
  "outputs": [
492
470
  {
493
471
  "internalType": "euint64",
494
- "name": "transferred",
472
+ "name": "",
495
473
  "type": "bytes32"
496
474
  }
497
475
  ],
@@ -525,7 +503,7 @@
525
503
  "outputs": [
526
504
  {
527
505
  "internalType": "euint64",
528
- "name": "transferred",
506
+ "name": "",
529
507
  "type": "bytes32"
530
508
  }
531
509
  ],
@@ -3,17 +3,6 @@
3
3
  "contractName": "ERC7984Omnibus",
4
4
  "sourceName": "contracts/token/ERC7984/extensions/ERC7984Omnibus.sol",
5
5
  "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "uint256",
10
- "name": "requestId",
11
- "type": "uint256"
12
- }
13
- ],
14
- "name": "ERC7984InvalidGatewayRequest",
15
- "type": "error"
16
- },
17
6
  {
18
7
  "inputs": [
19
8
  {
@@ -95,17 +84,6 @@
95
84
  "name": "ERC7984UnauthorizedUseOfEncryptedAmount",
96
85
  "type": "error"
97
86
  },
98
- {
99
- "inputs": [
100
- {
101
- "internalType": "address",
102
- "name": "holder",
103
- "type": "address"
104
- }
105
- ],
106
- "name": "ERC7984ZeroBalance",
107
- "type": "error"
108
- },
109
87
  {
110
88
  "inputs": [],
111
89
  "name": "InvalidKMSSignatures",
@@ -378,7 +356,7 @@
378
356
  "outputs": [
379
357
  {
380
358
  "internalType": "euint64",
381
- "name": "transferred",
359
+ "name": "",
382
360
  "type": "bytes32"
383
361
  }
384
362
  ],
@@ -412,7 +390,7 @@
412
390
  "outputs": [
413
391
  {
414
392
  "internalType": "euint64",
415
- "name": "transferred",
393
+ "name": "",
416
394
  "type": "bytes32"
417
395
  }
418
396
  ],
@@ -529,7 +507,7 @@
529
507
  "outputs": [
530
508
  {
531
509
  "internalType": "euint64",
532
- "name": "transferred",
510
+ "name": "",
533
511
  "type": "bytes32"
534
512
  }
535
513
  ],
@@ -558,7 +536,7 @@
558
536
  "outputs": [
559
537
  {
560
538
  "internalType": "euint64",
561
- "name": "transferred",
539
+ "name": "",
562
540
  "type": "bytes32"
563
541
  }
564
542
  ],
@@ -597,7 +575,7 @@
597
575
  "outputs": [
598
576
  {
599
577
  "internalType": "euint64",
600
- "name": "transferred",
578
+ "name": "",
601
579
  "type": "bytes32"
602
580
  }
603
581
  ],
@@ -631,7 +609,7 @@
631
609
  "outputs": [
632
610
  {
633
611
  "internalType": "euint64",
634
- "name": "transferred",
612
+ "name": "",
635
613
  "type": "bytes32"
636
614
  }
637
615
  ],
@@ -3,17 +3,6 @@
3
3
  "contractName": "ERC7984Restricted",
4
4
  "sourceName": "contracts/token/ERC7984/extensions/ERC7984Restricted.sol",
5
5
  "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "uint256",
10
- "name": "requestId",
11
- "type": "uint256"
12
- }
13
- ],
14
- "name": "ERC7984InvalidGatewayRequest",
15
- "type": "error"
16
- },
17
6
  {
18
7
  "inputs": [
19
8
  {
@@ -79,17 +68,6 @@
79
68
  "name": "ERC7984UnauthorizedUseOfEncryptedAmount",
80
69
  "type": "error"
81
70
  },
82
- {
83
- "inputs": [
84
- {
85
- "internalType": "address",
86
- "name": "holder",
87
- "type": "address"
88
- }
89
- ],
90
- "name": "ERC7984ZeroBalance",
91
- "type": "error"
92
- },
93
71
  {
94
72
  "inputs": [],
95
73
  "name": "InvalidKMSSignatures",
@@ -374,7 +352,7 @@
374
352
  "outputs": [
375
353
  {
376
354
  "internalType": "euint64",
377
- "name": "transferred",
355
+ "name": "",
378
356
  "type": "bytes32"
379
357
  }
380
358
  ],
@@ -408,7 +386,7 @@
408
386
  "outputs": [
409
387
  {
410
388
  "internalType": "euint64",
411
- "name": "transferred",
389
+ "name": "",
412
390
  "type": "bytes32"
413
391
  }
414
392
  ],
@@ -442,7 +420,7 @@
442
420
  "outputs": [
443
421
  {
444
422
  "internalType": "euint64",
445
- "name": "transferred",
423
+ "name": "",
446
424
  "type": "bytes32"
447
425
  }
448
426
  ],
@@ -471,7 +449,7 @@
471
449
  "outputs": [
472
450
  {
473
451
  "internalType": "euint64",
474
- "name": "transferred",
452
+ "name": "",
475
453
  "type": "bytes32"
476
454
  }
477
455
  ],
@@ -510,7 +488,7 @@
510
488
  "outputs": [
511
489
  {
512
490
  "internalType": "euint64",
513
- "name": "transferred",
491
+ "name": "",
514
492
  "type": "bytes32"
515
493
  }
516
494
  ],
@@ -544,7 +522,7 @@
544
522
  "outputs": [
545
523
  {
546
524
  "internalType": "euint64",
547
- "name": "transferred",
525
+ "name": "",
548
526
  "type": "bytes32"
549
527
  }
550
528
  ],
@@ -35,17 +35,6 @@
35
35
  "name": "AddressEmptyCode",
36
36
  "type": "error"
37
37
  },
38
- {
39
- "inputs": [
40
- {
41
- "internalType": "uint256",
42
- "name": "requestId",
43
- "type": "uint256"
44
- }
45
- ],
46
- "name": "ERC7984InvalidGatewayRequest",
47
- "type": "error"
48
- },
49
38
  {
50
39
  "inputs": [
51
40
  {
@@ -68,6 +57,11 @@
68
57
  "name": "ERC7984InvalidSender",
69
58
  "type": "error"
70
59
  },
60
+ {
61
+ "inputs": [],
62
+ "name": "ERC7984RwaSelfRecoveryNotAllowed",
63
+ "type": "error"
64
+ },
71
65
  {
72
66
  "inputs": [
73
67
  {
@@ -111,17 +105,6 @@
111
105
  "name": "ERC7984UnauthorizedUseOfEncryptedAmount",
112
106
  "type": "error"
113
107
  },
114
- {
115
- "inputs": [
116
- {
117
- "internalType": "address",
118
- "name": "holder",
119
- "type": "address"
120
- }
121
- ],
122
- "name": "ERC7984ZeroBalance",
123
- "type": "error"
124
- },
125
108
  {
126
109
  "inputs": [],
127
110
  "name": "EnforcedPause",
@@ -383,6 +366,31 @@
383
366
  "name": "TokensFrozen",
384
367
  "type": "event"
385
368
  },
369
+ {
370
+ "anonymous": false,
371
+ "inputs": [
372
+ {
373
+ "indexed": true,
374
+ "internalType": "address",
375
+ "name": "lostAccount",
376
+ "type": "address"
377
+ },
378
+ {
379
+ "indexed": true,
380
+ "internalType": "address",
381
+ "name": "newAccount",
382
+ "type": "address"
383
+ },
384
+ {
385
+ "indexed": false,
386
+ "internalType": "euint64",
387
+ "name": "amount",
388
+ "type": "bytes32"
389
+ }
390
+ ],
391
+ "name": "TokensRecovered",
392
+ "type": "event"
393
+ },
386
394
  {
387
395
  "anonymous": false,
388
396
  "inputs": [
@@ -737,7 +745,7 @@
737
745
  "outputs": [
738
746
  {
739
747
  "internalType": "euint64",
740
- "name": "transferred",
748
+ "name": "",
741
749
  "type": "bytes32"
742
750
  }
743
751
  ],
@@ -771,7 +779,7 @@
771
779
  "outputs": [
772
780
  {
773
781
  "internalType": "euint64",
774
- "name": "transferred",
782
+ "name": "",
775
783
  "type": "bytes32"
776
784
  }
777
785
  ],
@@ -805,7 +813,7 @@
805
813
  "outputs": [
806
814
  {
807
815
  "internalType": "euint64",
808
- "name": "transferred",
816
+ "name": "",
809
817
  "type": "bytes32"
810
818
  }
811
819
  ],
@@ -834,7 +842,7 @@
834
842
  "outputs": [
835
843
  {
836
844
  "internalType": "euint64",
837
- "name": "transferred",
845
+ "name": "",
838
846
  "type": "bytes32"
839
847
  }
840
848
  ],
@@ -873,7 +881,7 @@
873
881
  "outputs": [
874
882
  {
875
883
  "internalType": "euint64",
876
- "name": "transferred",
884
+ "name": "",
877
885
  "type": "bytes32"
878
886
  }
879
887
  ],
@@ -907,7 +915,7 @@
907
915
  "outputs": [
908
916
  {
909
917
  "internalType": "euint64",
910
- "name": "transferred",
918
+ "name": "",
911
919
  "type": "bytes32"
912
920
  }
913
921
  ],
@@ -985,7 +993,7 @@
985
993
  "outputs": [
986
994
  {
987
995
  "internalType": "euint64",
988
- "name": "transferred",
996
+ "name": "",
989
997
  "type": "bytes32"
990
998
  }
991
999
  ],
@@ -1220,6 +1228,30 @@
1220
1228
  "stateMutability": "view",
1221
1229
  "type": "function"
1222
1230
  },
1231
+ {
1232
+ "inputs": [
1233
+ {
1234
+ "internalType": "address",
1235
+ "name": "lostAccount",
1236
+ "type": "address"
1237
+ },
1238
+ {
1239
+ "internalType": "address",
1240
+ "name": "newAccount",
1241
+ "type": "address"
1242
+ }
1243
+ ],
1244
+ "name": "recoverAddress",
1245
+ "outputs": [
1246
+ {
1247
+ "internalType": "euint64",
1248
+ "name": "",
1249
+ "type": "bytes32"
1250
+ }
1251
+ ],
1252
+ "stateMutability": "nonpayable",
1253
+ "type": "function"
1254
+ },
1223
1255
  {
1224
1256
  "inputs": [
1225
1257
  {
@@ -3,8 +3,8 @@
3
3
  "contractName": "ERC7984Utils",
4
4
  "sourceName": "contracts/token/ERC7984/utils/ERC7984Utils.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220325641c04f49ceb3153978a510dab02de6fa608bc008a6a4259fba736232158464736f6c634300081b0033",
7
- "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220325641c04f49ceb3153978a510dab02de6fa608bc008a6a4259fba736232158464736f6c634300081b0033",
6
+ "bytecode": "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220ae09b551b5a6b3a0d3abbb413886311142f811869082bfe160e461c98a65a57a64736f6c634300081b0033",
7
+ "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220ae09b551b5a6b3a0d3abbb413886311142f811869082bfe160e461c98a65a57a64736f6c634300081b0033",
8
8
  "linkReferences": {},
9
9
  "deployedLinkReferences": {}
10
10
  }
@@ -56,17 +56,6 @@
56
56
  "name": "ERC6372InconsistentClock",
57
57
  "type": "error"
58
58
  },
59
- {
60
- "inputs": [
61
- {
62
- "internalType": "uint256",
63
- "name": "requestId",
64
- "type": "uint256"
65
- }
66
- ],
67
- "name": "ERC7984InvalidGatewayRequest",
68
- "type": "error"
69
- },
70
59
  {
71
60
  "inputs": [
72
61
  {
@@ -132,17 +121,6 @@
132
121
  "name": "ERC7984UnauthorizedUseOfEncryptedAmount",
133
122
  "type": "error"
134
123
  },
135
- {
136
- "inputs": [
137
- {
138
- "internalType": "address",
139
- "name": "holder",
140
- "type": "address"
141
- }
142
- ],
143
- "name": "ERC7984ZeroBalance",
144
- "type": "error"
145
- },
146
124
  {
147
125
  "inputs": [
148
126
  {
@@ -535,7 +513,7 @@
535
513
  "outputs": [
536
514
  {
537
515
  "internalType": "euint64",
538
- "name": "transferred",
516
+ "name": "",
539
517
  "type": "bytes32"
540
518
  }
541
519
  ],
@@ -569,7 +547,7 @@
569
547
  "outputs": [
570
548
  {
571
549
  "internalType": "euint64",
572
- "name": "transferred",
550
+ "name": "",
573
551
  "type": "bytes32"
574
552
  }
575
553
  ],
@@ -603,7 +581,7 @@
603
581
  "outputs": [
604
582
  {
605
583
  "internalType": "euint64",
606
- "name": "transferred",
584
+ "name": "",
607
585
  "type": "bytes32"
608
586
  }
609
587
  ],
@@ -632,7 +610,7 @@
632
610
  "outputs": [
633
611
  {
634
612
  "internalType": "euint64",
635
- "name": "transferred",
613
+ "name": "",
636
614
  "type": "bytes32"
637
615
  }
638
616
  ],
@@ -671,7 +649,7 @@
671
649
  "outputs": [
672
650
  {
673
651
  "internalType": "euint64",
674
- "name": "transferred",
652
+ "name": "",
675
653
  "type": "bytes32"
676
654
  }
677
655
  ],
@@ -705,7 +683,7 @@
705
683
  "outputs": [
706
684
  {
707
685
  "internalType": "euint64",
708
- "name": "transferred",
686
+ "name": "",
709
687
  "type": "bytes32"
710
688
  }
711
689
  ],
@@ -3,8 +3,8 @@
3
3
  "contractName": "FHESafeMath",
4
4
  "sourceName": "contracts/utils/FHESafeMath.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212208207011f16f2dfe3ed7d1e508b2e537daba03fcc66271d1de84fcfa3e438ca5764736f6c634300081b0033",
7
- "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212208207011f16f2dfe3ed7d1e508b2e537daba03fcc66271d1de84fcfa3e438ca5764736f6c634300081b0033",
6
+ "bytecode": "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220fec7f670b70a72515c7341bae8ccb05f1b582947c3ae50b43c0f25d9c7813a3864736f6c634300081b0033",
7
+ "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220fec7f670b70a72515c7341bae8ccb05f1b582947c3ae50b43c0f25d9c7813a3864736f6c634300081b0033",
8
8
  "linkReferences": {},
9
9
  "deployedLinkReferences": {}
10
10
  }
@@ -0,0 +1,151 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "IERC7984HookModule",
4
+ "sourceName": "contracts/interfaces/IERC7984HookModule.sol",
5
+ "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": true,
11
+ "internalType": "address",
12
+ "name": "token",
13
+ "type": "address"
14
+ },
15
+ {
16
+ "indexed": true,
17
+ "internalType": "address",
18
+ "name": "from",
19
+ "type": "address"
20
+ },
21
+ {
22
+ "indexed": true,
23
+ "internalType": "address",
24
+ "name": "to",
25
+ "type": "address"
26
+ },
27
+ {
28
+ "indexed": false,
29
+ "internalType": "euint64",
30
+ "name": "encryptedAmount",
31
+ "type": "bytes32"
32
+ },
33
+ {
34
+ "indexed": false,
35
+ "internalType": "ebool",
36
+ "name": "result",
37
+ "type": "bytes32"
38
+ },
39
+ {
40
+ "indexed": false,
41
+ "internalType": "bytes32",
42
+ "name": "context",
43
+ "type": "bytes32"
44
+ }
45
+ ],
46
+ "name": "ERC7984HookModuleResult",
47
+ "type": "event"
48
+ },
49
+ {
50
+ "inputs": [
51
+ {
52
+ "internalType": "bytes",
53
+ "name": "initData",
54
+ "type": "bytes"
55
+ }
56
+ ],
57
+ "name": "onInstall",
58
+ "outputs": [],
59
+ "stateMutability": "nonpayable",
60
+ "type": "function"
61
+ },
62
+ {
63
+ "inputs": [
64
+ {
65
+ "internalType": "bytes",
66
+ "name": "deinitData",
67
+ "type": "bytes"
68
+ }
69
+ ],
70
+ "name": "onUninstall",
71
+ "outputs": [],
72
+ "stateMutability": "nonpayable",
73
+ "type": "function"
74
+ },
75
+ {
76
+ "inputs": [
77
+ {
78
+ "internalType": "address",
79
+ "name": "from",
80
+ "type": "address"
81
+ },
82
+ {
83
+ "internalType": "address",
84
+ "name": "to",
85
+ "type": "address"
86
+ },
87
+ {
88
+ "internalType": "euint64",
89
+ "name": "encryptedAmount",
90
+ "type": "bytes32"
91
+ }
92
+ ],
93
+ "name": "postTransfer",
94
+ "outputs": [],
95
+ "stateMutability": "nonpayable",
96
+ "type": "function"
97
+ },
98
+ {
99
+ "inputs": [
100
+ {
101
+ "internalType": "address",
102
+ "name": "from",
103
+ "type": "address"
104
+ },
105
+ {
106
+ "internalType": "address",
107
+ "name": "to",
108
+ "type": "address"
109
+ },
110
+ {
111
+ "internalType": "euint64",
112
+ "name": "encryptedAmount",
113
+ "type": "bytes32"
114
+ }
115
+ ],
116
+ "name": "preTransfer",
117
+ "outputs": [
118
+ {
119
+ "internalType": "ebool",
120
+ "name": "",
121
+ "type": "bytes32"
122
+ }
123
+ ],
124
+ "stateMutability": "nonpayable",
125
+ "type": "function"
126
+ },
127
+ {
128
+ "inputs": [
129
+ {
130
+ "internalType": "bytes4",
131
+ "name": "interfaceId",
132
+ "type": "bytes4"
133
+ }
134
+ ],
135
+ "name": "supportsInterface",
136
+ "outputs": [
137
+ {
138
+ "internalType": "bool",
139
+ "name": "",
140
+ "type": "bool"
141
+ }
142
+ ],
143
+ "stateMutability": "view",
144
+ "type": "function"
145
+ }
146
+ ],
147
+ "bytecode": "0x",
148
+ "deployedBytecode": "0x",
149
+ "linkReferences": {},
150
+ "deployedLinkReferences": {}
151
+ }