@bloxchain/contracts 1.0.0-alpha

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 (34) hide show
  1. package/README.md +49 -0
  2. package/abi/BareBlox.abi.json +1341 -0
  3. package/abi/BaseStateMachine.abi.json +1308 -0
  4. package/abi/ControlBlox.abi.json +6210 -0
  5. package/abi/EngineBlox.abi.json +872 -0
  6. package/abi/GuardController.abi.json +3045 -0
  7. package/abi/IDefinition.abi.json +94 -0
  8. package/abi/RoleBlox.abi.json +4569 -0
  9. package/abi/RuntimeRBAC.abi.json +1857 -0
  10. package/abi/RuntimeRBACDefinitions.abi.json +133 -0
  11. package/abi/SecureBlox.abi.json +4085 -0
  12. package/abi/SecureOwnable.abi.json +4085 -0
  13. package/abi/SecureOwnableDefinitions.abi.json +354 -0
  14. package/abi/SimpleRWA20.abi.json +5545 -0
  15. package/abi/SimpleRWA20Definitions.abi.json +172 -0
  16. package/abi/SimpleVault.abi.json +5208 -0
  17. package/abi/SimpleVaultDefinitions.abi.json +250 -0
  18. package/contracts/core/access/RuntimeRBAC.sol +344 -0
  19. package/contracts/core/access/interface/IRuntimeRBAC.sol +108 -0
  20. package/contracts/core/access/lib/definitions/RuntimeRBACDefinitions.sol +168 -0
  21. package/contracts/core/base/BaseStateMachine.sol +834 -0
  22. package/contracts/core/base/interface/IBaseStateMachine.sol +153 -0
  23. package/contracts/core/execution/GuardController.sol +507 -0
  24. package/contracts/core/execution/interface/IGuardController.sol +120 -0
  25. package/contracts/core/execution/lib/definitions/GuardControllerDefinitions.sol +401 -0
  26. package/contracts/core/lib/EngineBlox.sol +2283 -0
  27. package/contracts/core/security/SecureOwnable.sol +419 -0
  28. package/contracts/core/security/interface/ISecureOwnable.sol +118 -0
  29. package/contracts/core/security/lib/definitions/SecureOwnableDefinitions.sol +757 -0
  30. package/contracts/interfaces/IDefinition.sol +40 -0
  31. package/contracts/interfaces/IEventForwarder.sol +33 -0
  32. package/contracts/interfaces/IOnActionHook.sol +79 -0
  33. package/contracts/utils/SharedValidation.sol +486 -0
  34. package/package.json +47 -0
@@ -0,0 +1,872 @@
1
+ [
2
+ {
3
+ "inputs": [],
4
+ "name": "AlreadyInitialized",
5
+ "type": "error"
6
+ },
7
+ {
8
+ "inputs": [
9
+ {
10
+ "internalType": "uint256",
11
+ "name": "releaseTime",
12
+ "type": "uint256"
13
+ },
14
+ {
15
+ "internalType": "uint256",
16
+ "name": "currentTime",
17
+ "type": "uint256"
18
+ }
19
+ ],
20
+ "name": "BeforeReleaseTime",
21
+ "type": "error"
22
+ },
23
+ {
24
+ "inputs": [
25
+ {
26
+ "internalType": "bytes32",
27
+ "name": "resourceId",
28
+ "type": "bytes32"
29
+ }
30
+ ],
31
+ "name": "CannotModifyProtected",
32
+ "type": "error"
33
+ },
34
+ {
35
+ "inputs": [
36
+ {
37
+ "internalType": "uint256",
38
+ "name": "providedChainId",
39
+ "type": "uint256"
40
+ },
41
+ {
42
+ "internalType": "uint256",
43
+ "name": "expectedChainId",
44
+ "type": "uint256"
45
+ }
46
+ ],
47
+ "name": "ChainIdMismatch",
48
+ "type": "error"
49
+ },
50
+ {
51
+ "inputs": [
52
+ {
53
+ "internalType": "bytes4",
54
+ "name": "functionSelector",
55
+ "type": "bytes4"
56
+ }
57
+ ],
58
+ "name": "ConflictingMetaTxPermissions",
59
+ "type": "error"
60
+ },
61
+ {
62
+ "inputs": [
63
+ {
64
+ "internalType": "bytes4",
65
+ "name": "functionSelector",
66
+ "type": "bytes4"
67
+ },
68
+ {
69
+ "internalType": "string",
70
+ "name": "functionSignature",
71
+ "type": "string"
72
+ }
73
+ ],
74
+ "name": "ContractFunctionMustBeProtected",
75
+ "type": "error"
76
+ },
77
+ {
78
+ "inputs": [
79
+ {
80
+ "internalType": "uint256",
81
+ "name": "deadline",
82
+ "type": "uint256"
83
+ },
84
+ {
85
+ "internalType": "uint256",
86
+ "name": "currentTime",
87
+ "type": "uint256"
88
+ }
89
+ ],
90
+ "name": "DeadlineInPast",
91
+ "type": "error"
92
+ },
93
+ {
94
+ "inputs": [
95
+ {
96
+ "internalType": "address",
97
+ "name": "recoveredSigner",
98
+ "type": "address"
99
+ }
100
+ ],
101
+ "name": "ECDSAInvalidSignature",
102
+ "type": "error"
103
+ },
104
+ {
105
+ "inputs": [
106
+ {
107
+ "internalType": "bytes4",
108
+ "name": "providedSelector",
109
+ "type": "bytes4"
110
+ },
111
+ {
112
+ "internalType": "bytes4",
113
+ "name": "derivedSelector",
114
+ "type": "bytes4"
115
+ }
116
+ ],
117
+ "name": "FunctionSelectorMismatch",
118
+ "type": "error"
119
+ },
120
+ {
121
+ "inputs": [
122
+ {
123
+ "internalType": "uint256",
124
+ "name": "currentGasPrice",
125
+ "type": "uint256"
126
+ },
127
+ {
128
+ "internalType": "uint256",
129
+ "name": "maxGasPrice",
130
+ "type": "uint256"
131
+ }
132
+ ],
133
+ "name": "GasPriceExceedsMax",
134
+ "type": "error"
135
+ },
136
+ {
137
+ "inputs": [
138
+ {
139
+ "internalType": "bytes4",
140
+ "name": "schemaHandlerForSelector",
141
+ "type": "bytes4"
142
+ },
143
+ {
144
+ "internalType": "bytes4",
145
+ "name": "permissionHandlerForSelector",
146
+ "type": "bytes4"
147
+ }
148
+ ],
149
+ "name": "HandlerForSelectorMismatch",
150
+ "type": "error"
151
+ },
152
+ {
153
+ "inputs": [
154
+ {
155
+ "internalType": "uint256",
156
+ "name": "index",
157
+ "type": "uint256"
158
+ },
159
+ {
160
+ "internalType": "uint256",
161
+ "name": "arrayLength",
162
+ "type": "uint256"
163
+ }
164
+ ],
165
+ "name": "IndexOutOfBounds",
166
+ "type": "error"
167
+ },
168
+ {
169
+ "inputs": [
170
+ {
171
+ "internalType": "uint256",
172
+ "name": "currentBalance",
173
+ "type": "uint256"
174
+ },
175
+ {
176
+ "internalType": "uint256",
177
+ "name": "requiredAmount",
178
+ "type": "uint256"
179
+ }
180
+ ],
181
+ "name": "InsufficientBalance",
182
+ "type": "error"
183
+ },
184
+ {
185
+ "inputs": [
186
+ {
187
+ "internalType": "address",
188
+ "name": "provided",
189
+ "type": "address"
190
+ }
191
+ ],
192
+ "name": "InvalidAddress",
193
+ "type": "error"
194
+ },
195
+ {
196
+ "inputs": [
197
+ {
198
+ "internalType": "bytes4",
199
+ "name": "selector",
200
+ "type": "bytes4"
201
+ }
202
+ ],
203
+ "name": "InvalidHandlerSelector",
204
+ "type": "error"
205
+ },
206
+ {
207
+ "inputs": [
208
+ {
209
+ "internalType": "uint256",
210
+ "name": "providedNonce",
211
+ "type": "uint256"
212
+ },
213
+ {
214
+ "internalType": "uint256",
215
+ "name": "expectedNonce",
216
+ "type": "uint256"
217
+ }
218
+ ],
219
+ "name": "InvalidNonce",
220
+ "type": "error"
221
+ },
222
+ {
223
+ "inputs": [
224
+ {
225
+ "internalType": "bytes32",
226
+ "name": "s",
227
+ "type": "bytes32"
228
+ }
229
+ ],
230
+ "name": "InvalidSValue",
231
+ "type": "error"
232
+ },
233
+ {
234
+ "inputs": [
235
+ {
236
+ "internalType": "bytes",
237
+ "name": "signature",
238
+ "type": "bytes"
239
+ }
240
+ ],
241
+ "name": "InvalidSignature",
242
+ "type": "error"
243
+ },
244
+ {
245
+ "inputs": [
246
+ {
247
+ "internalType": "uint256",
248
+ "name": "providedLength",
249
+ "type": "uint256"
250
+ },
251
+ {
252
+ "internalType": "uint256",
253
+ "name": "expectedLength",
254
+ "type": "uint256"
255
+ }
256
+ ],
257
+ "name": "InvalidSignatureLength",
258
+ "type": "error"
259
+ },
260
+ {
261
+ "inputs": [
262
+ {
263
+ "internalType": "uint8",
264
+ "name": "v",
265
+ "type": "uint8"
266
+ }
267
+ ],
268
+ "name": "InvalidVValue",
269
+ "type": "error"
270
+ },
271
+ {
272
+ "inputs": [
273
+ {
274
+ "internalType": "address",
275
+ "name": "item",
276
+ "type": "address"
277
+ }
278
+ ],
279
+ "name": "ItemAlreadyExists",
280
+ "type": "error"
281
+ },
282
+ {
283
+ "inputs": [
284
+ {
285
+ "internalType": "address",
286
+ "name": "item",
287
+ "type": "address"
288
+ }
289
+ ],
290
+ "name": "ItemNotFound",
291
+ "type": "error"
292
+ },
293
+ {
294
+ "inputs": [
295
+ {
296
+ "internalType": "uint256",
297
+ "name": "currentCount",
298
+ "type": "uint256"
299
+ },
300
+ {
301
+ "internalType": "uint256",
302
+ "name": "maxFunctions",
303
+ "type": "uint256"
304
+ }
305
+ ],
306
+ "name": "MaxFunctionsExceeded",
307
+ "type": "error"
308
+ },
309
+ {
310
+ "inputs": [
311
+ {
312
+ "internalType": "uint256",
313
+ "name": "currentCount",
314
+ "type": "uint256"
315
+ },
316
+ {
317
+ "internalType": "uint256",
318
+ "name": "maxHooks",
319
+ "type": "uint256"
320
+ }
321
+ ],
322
+ "name": "MaxHooksExceeded",
323
+ "type": "error"
324
+ },
325
+ {
326
+ "inputs": [
327
+ {
328
+ "internalType": "uint256",
329
+ "name": "currentCount",
330
+ "type": "uint256"
331
+ },
332
+ {
333
+ "internalType": "uint256",
334
+ "name": "maxRoles",
335
+ "type": "uint256"
336
+ }
337
+ ],
338
+ "name": "MaxRolesExceeded",
339
+ "type": "error"
340
+ },
341
+ {
342
+ "inputs": [
343
+ {
344
+ "internalType": "uint256",
345
+ "name": "deadline",
346
+ "type": "uint256"
347
+ },
348
+ {
349
+ "internalType": "uint256",
350
+ "name": "currentTime",
351
+ "type": "uint256"
352
+ }
353
+ ],
354
+ "name": "MetaTxExpired",
355
+ "type": "error"
356
+ },
357
+ {
358
+ "inputs": [
359
+ {
360
+ "internalType": "address",
361
+ "name": "caller",
362
+ "type": "address"
363
+ }
364
+ ],
365
+ "name": "NoPermission",
366
+ "type": "error"
367
+ },
368
+ {
369
+ "inputs": [
370
+ {
371
+ "internalType": "address",
372
+ "name": "newAddress",
373
+ "type": "address"
374
+ },
375
+ {
376
+ "internalType": "address",
377
+ "name": "currentAddress",
378
+ "type": "address"
379
+ }
380
+ ],
381
+ "name": "NotNewAddress",
382
+ "type": "error"
383
+ },
384
+ {
385
+ "inputs": [],
386
+ "name": "NotSupported",
387
+ "type": "error"
388
+ },
389
+ {
390
+ "inputs": [],
391
+ "name": "OperationFailed",
392
+ "type": "error"
393
+ },
394
+ {
395
+ "inputs": [
396
+ {
397
+ "internalType": "address",
398
+ "name": "recipient",
399
+ "type": "address"
400
+ },
401
+ {
402
+ "internalType": "uint256",
403
+ "name": "amount",
404
+ "type": "uint256"
405
+ },
406
+ {
407
+ "internalType": "bytes",
408
+ "name": "reason",
409
+ "type": "bytes"
410
+ }
411
+ ],
412
+ "name": "PaymentFailed",
413
+ "type": "error"
414
+ },
415
+ {
416
+ "inputs": [
417
+ {
418
+ "internalType": "bytes32",
419
+ "name": "resourceId",
420
+ "type": "bytes32"
421
+ }
422
+ ],
423
+ "name": "ResourceAlreadyExists",
424
+ "type": "error"
425
+ },
426
+ {
427
+ "inputs": [
428
+ {
429
+ "internalType": "bytes32",
430
+ "name": "resourceId",
431
+ "type": "bytes32"
432
+ }
433
+ ],
434
+ "name": "ResourceNotFound",
435
+ "type": "error"
436
+ },
437
+ {
438
+ "inputs": [
439
+ {
440
+ "internalType": "uint256",
441
+ "name": "currentCount",
442
+ "type": "uint256"
443
+ },
444
+ {
445
+ "internalType": "uint256",
446
+ "name": "maxWallets",
447
+ "type": "uint256"
448
+ }
449
+ ],
450
+ "name": "RoleWalletLimitReached",
451
+ "type": "error"
452
+ },
453
+ {
454
+ "inputs": [
455
+ {
456
+ "internalType": "address",
457
+ "name": "token",
458
+ "type": "address"
459
+ }
460
+ ],
461
+ "name": "SafeERC20FailedOperation",
462
+ "type": "error"
463
+ },
464
+ {
465
+ "inputs": [
466
+ {
467
+ "internalType": "address",
468
+ "name": "signer",
469
+ "type": "address"
470
+ }
471
+ ],
472
+ "name": "SignerNotAuthorized",
473
+ "type": "error"
474
+ },
475
+ {
476
+ "inputs": [
477
+ {
478
+ "internalType": "address",
479
+ "name": "target",
480
+ "type": "address"
481
+ },
482
+ {
483
+ "internalType": "bytes4",
484
+ "name": "functionSelector",
485
+ "type": "bytes4"
486
+ }
487
+ ],
488
+ "name": "TargetNotWhitelisted",
489
+ "type": "error"
490
+ },
491
+ {
492
+ "inputs": [
493
+ {
494
+ "internalType": "uint256",
495
+ "name": "provided",
496
+ "type": "uint256"
497
+ }
498
+ ],
499
+ "name": "TimeLockPeriodZero",
500
+ "type": "error"
501
+ },
502
+ {
503
+ "inputs": [
504
+ {
505
+ "internalType": "uint256",
506
+ "name": "expectedTxId",
507
+ "type": "uint256"
508
+ },
509
+ {
510
+ "internalType": "uint256",
511
+ "name": "providedTxId",
512
+ "type": "uint256"
513
+ }
514
+ ],
515
+ "name": "TransactionIdMismatch",
516
+ "type": "error"
517
+ },
518
+ {
519
+ "inputs": [
520
+ {
521
+ "internalType": "uint8",
522
+ "name": "expectedStatus",
523
+ "type": "uint8"
524
+ },
525
+ {
526
+ "internalType": "uint8",
527
+ "name": "currentStatus",
528
+ "type": "uint8"
529
+ }
530
+ ],
531
+ "name": "TransactionStatusMismatch",
532
+ "type": "error"
533
+ },
534
+ {
535
+ "inputs": [],
536
+ "name": "ZeroOperationTypeNotAllowed",
537
+ "type": "error"
538
+ },
539
+ {
540
+ "anonymous": false,
541
+ "inputs": [
542
+ {
543
+ "indexed": true,
544
+ "internalType": "uint256",
545
+ "name": "txId",
546
+ "type": "uint256"
547
+ },
548
+ {
549
+ "indexed": true,
550
+ "internalType": "bytes4",
551
+ "name": "functionHash",
552
+ "type": "bytes4"
553
+ },
554
+ {
555
+ "indexed": false,
556
+ "internalType": "enum EngineBlox.TxStatus",
557
+ "name": "status",
558
+ "type": "uint8"
559
+ },
560
+ {
561
+ "indexed": true,
562
+ "internalType": "address",
563
+ "name": "requester",
564
+ "type": "address"
565
+ },
566
+ {
567
+ "indexed": false,
568
+ "internalType": "address",
569
+ "name": "target",
570
+ "type": "address"
571
+ },
572
+ {
573
+ "indexed": false,
574
+ "internalType": "bytes32",
575
+ "name": "operationType",
576
+ "type": "bytes32"
577
+ }
578
+ ],
579
+ "name": "TransactionEvent",
580
+ "type": "event"
581
+ },
582
+ {
583
+ "inputs": [],
584
+ "name": "MAX_BATCH_SIZE",
585
+ "outputs": [
586
+ {
587
+ "internalType": "uint256",
588
+ "name": "",
589
+ "type": "uint256"
590
+ }
591
+ ],
592
+ "stateMutability": "view",
593
+ "type": "function"
594
+ },
595
+ {
596
+ "inputs": [],
597
+ "name": "MAX_FUNCTIONS",
598
+ "outputs": [
599
+ {
600
+ "internalType": "uint256",
601
+ "name": "",
602
+ "type": "uint256"
603
+ }
604
+ ],
605
+ "stateMutability": "view",
606
+ "type": "function"
607
+ },
608
+ {
609
+ "inputs": [],
610
+ "name": "MAX_HOOKS_PER_SELECTOR",
611
+ "outputs": [
612
+ {
613
+ "internalType": "uint256",
614
+ "name": "",
615
+ "type": "uint256"
616
+ }
617
+ ],
618
+ "stateMutability": "view",
619
+ "type": "function"
620
+ },
621
+ {
622
+ "inputs": [],
623
+ "name": "MAX_ROLES",
624
+ "outputs": [
625
+ {
626
+ "internalType": "uint256",
627
+ "name": "",
628
+ "type": "uint256"
629
+ }
630
+ ],
631
+ "stateMutability": "view",
632
+ "type": "function"
633
+ },
634
+ {
635
+ "inputs": [],
636
+ "name": "NATIVE_TRANSFER_OPERATION",
637
+ "outputs": [
638
+ {
639
+ "internalType": "bytes32",
640
+ "name": "",
641
+ "type": "bytes32"
642
+ }
643
+ ],
644
+ "stateMutability": "view",
645
+ "type": "function"
646
+ },
647
+ {
648
+ "inputs": [],
649
+ "name": "NATIVE_TRANSFER_SELECTOR",
650
+ "outputs": [
651
+ {
652
+ "internalType": "bytes4",
653
+ "name": "",
654
+ "type": "bytes4"
655
+ }
656
+ ],
657
+ "stateMutability": "view",
658
+ "type": "function"
659
+ },
660
+ {
661
+ "inputs": [],
662
+ "name": "PROTOCOL_NAME_HASH",
663
+ "outputs": [
664
+ {
665
+ "internalType": "bytes32",
666
+ "name": "",
667
+ "type": "bytes32"
668
+ }
669
+ ],
670
+ "stateMutability": "view",
671
+ "type": "function"
672
+ },
673
+ {
674
+ "inputs": [],
675
+ "name": "UPDATE_PAYMENT_OPERATION",
676
+ "outputs": [
677
+ {
678
+ "internalType": "bytes32",
679
+ "name": "",
680
+ "type": "bytes32"
681
+ }
682
+ ],
683
+ "stateMutability": "view",
684
+ "type": "function"
685
+ },
686
+ {
687
+ "inputs": [],
688
+ "name": "UPDATE_PAYMENT_SELECTOR",
689
+ "outputs": [
690
+ {
691
+ "internalType": "bytes4",
692
+ "name": "",
693
+ "type": "bytes4"
694
+ }
695
+ ],
696
+ "stateMutability": "view",
697
+ "type": "function"
698
+ },
699
+ {
700
+ "inputs": [],
701
+ "name": "VERSION_MAJOR",
702
+ "outputs": [
703
+ {
704
+ "internalType": "uint8",
705
+ "name": "",
706
+ "type": "uint8"
707
+ }
708
+ ],
709
+ "stateMutability": "view",
710
+ "type": "function"
711
+ },
712
+ {
713
+ "inputs": [],
714
+ "name": "VERSION_MINOR",
715
+ "outputs": [
716
+ {
717
+ "internalType": "uint8",
718
+ "name": "",
719
+ "type": "uint8"
720
+ }
721
+ ],
722
+ "stateMutability": "view",
723
+ "type": "function"
724
+ },
725
+ {
726
+ "inputs": [],
727
+ "name": "VERSION_PATCH",
728
+ "outputs": [
729
+ {
730
+ "internalType": "uint8",
731
+ "name": "",
732
+ "type": "uint8"
733
+ }
734
+ ],
735
+ "stateMutability": "view",
736
+ "type": "function"
737
+ },
738
+ {
739
+ "inputs": [
740
+ {
741
+ "internalType": "bytes32",
742
+ "name": "messageHash",
743
+ "type": "bytes32"
744
+ },
745
+ {
746
+ "internalType": "bytes",
747
+ "name": "signature",
748
+ "type": "bytes"
749
+ }
750
+ ],
751
+ "name": "recoverSigner",
752
+ "outputs": [
753
+ {
754
+ "internalType": "address",
755
+ "name": "",
756
+ "type": "address"
757
+ }
758
+ ],
759
+ "stateMutability": "pure",
760
+ "type": "function"
761
+ },
762
+ {
763
+ "inputs": [
764
+ {
765
+ "internalType": "address",
766
+ "name": "handlerContract",
767
+ "type": "address"
768
+ },
769
+ {
770
+ "internalType": "bytes4",
771
+ "name": "handlerSelector",
772
+ "type": "bytes4"
773
+ },
774
+ {
775
+ "internalType": "enum EngineBlox.TxAction",
776
+ "name": "action",
777
+ "type": "EngineBlox.TxAction"
778
+ },
779
+ {
780
+ "internalType": "uint256",
781
+ "name": "deadline",
782
+ "type": "uint256"
783
+ },
784
+ {
785
+ "internalType": "uint256",
786
+ "name": "maxGasPrice",
787
+ "type": "uint256"
788
+ },
789
+ {
790
+ "internalType": "address",
791
+ "name": "signer",
792
+ "type": "address"
793
+ }
794
+ ],
795
+ "name": "createMetaTxParams",
796
+ "outputs": [
797
+ {
798
+ "components": [
799
+ {
800
+ "internalType": "uint256",
801
+ "name": "chainId",
802
+ "type": "uint256"
803
+ },
804
+ {
805
+ "internalType": "uint256",
806
+ "name": "nonce",
807
+ "type": "uint256"
808
+ },
809
+ {
810
+ "internalType": "address",
811
+ "name": "handlerContract",
812
+ "type": "address"
813
+ },
814
+ {
815
+ "internalType": "bytes4",
816
+ "name": "handlerSelector",
817
+ "type": "bytes4"
818
+ },
819
+ {
820
+ "internalType": "enum EngineBlox.TxAction",
821
+ "name": "action",
822
+ "type": "EngineBlox.TxAction"
823
+ },
824
+ {
825
+ "internalType": "uint256",
826
+ "name": "deadline",
827
+ "type": "uint256"
828
+ },
829
+ {
830
+ "internalType": "uint256",
831
+ "name": "maxGasPrice",
832
+ "type": "uint256"
833
+ },
834
+ {
835
+ "internalType": "address",
836
+ "name": "signer",
837
+ "type": "address"
838
+ }
839
+ ],
840
+ "internalType": "struct EngineBlox.MetaTxParams",
841
+ "name": "",
842
+ "type": "tuple"
843
+ }
844
+ ],
845
+ "stateMutability": "view",
846
+ "type": "function"
847
+ },
848
+ {
849
+ "inputs": [
850
+ {
851
+ "internalType": "address",
852
+ "name": "contractAddress",
853
+ "type": "address"
854
+ },
855
+ {
856
+ "internalType": "bytes4",
857
+ "name": "selector",
858
+ "type": "bytes4"
859
+ }
860
+ ],
861
+ "name": "selectorExistsInContract",
862
+ "outputs": [
863
+ {
864
+ "internalType": "bool",
865
+ "name": "",
866
+ "type": "bool"
867
+ }
868
+ ],
869
+ "stateMutability": "view",
870
+ "type": "function"
871
+ }
872
+ ]