-
Notifications
You must be signed in to change notification settings - Fork 0
/
userContract.json
11520 lines (11520 loc) · 515 KB
/
userContract.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"contractName": "userContract",
"abi": [
{
"inputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "kycContractAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "valueToBack",
"type": "uint256"
}
],
"name": "getBackValueFromKycContract",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "kycContractAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "valueToLock",
"type": "uint256"
}
],
"name": "registerOnKycContract",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "kycContractAddress",
"type": "address"
}
],
"name": "removeAccountFromKycContract",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "destination",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "valueToTransfer",
"type": "uint256"
}
],
"name": "transferSuccess",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "kycContractAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "destinationAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "valueToTransfer",
"type": "uint256"
}
],
"name": "transferWithKycContract",
"type": "event"
},
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "kycContract",
"type": "address"
}
],
"name": "registeringOnKycContract",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "kycContract",
"type": "address"
}
],
"name": "accountView",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "bool",
"name": "",
"type": "bool"
},
{
"internalType": "bool",
"name": "",
"type": "bool"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "kycContract",
"type": "address"
},
{
"internalType": "address",
"name": "target",
"type": "address"
}
],
"name": "kycView",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "kycContract",
"type": "address"
},
{
"internalType": "address",
"name": "destination",
"type": "address"
}
],
"name": "delegateTransfer",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "kycContract",
"type": "address"
},
{
"internalType": "address",
"name": "destination",
"type": "address"
}
],
"name": "directTransfer",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "kycContract",
"type": "address"
},
{
"internalType": "uint256",
"name": "valueToBack",
"type": "uint256"
}
],
"name": "getBackValue",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "kycContract",
"type": "address"
}
],
"name": "removeFromKycContract",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"kycContractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"valueToBack\",\"type\":\"uint256\"}],\"name\":\"getBackValueFromKycContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"kycContractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"valueToLock\",\"type\":\"uint256\"}],\"name\":\"registerOnKycContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"kycContractAddress\",\"type\":\"address\"}],\"name\":\"removeAccountFromKycContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"valueToTransfer\",\"type\":\"uint256\"}],\"name\":\"transferSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"kycContractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"valueToTransfer\",\"type\":\"uint256\"}],\"name\":\"transferWithKycContract\",\"type\":\"event\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"kycContract\",\"type\":\"address\"}],\"name\":\"accountView\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"kycContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"}],\"name\":\"delegateTransfer\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"kycContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"}],\"name\":\"directTransfer\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"kycContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"valueToBack\",\"type\":\"uint256\"}],\"name\":\"getBackValue\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"kycContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"kycView\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"kycContract\",\"type\":\"address\"}],\"name\":\"registeringOnKycContract\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"kycContract\",\"type\":\"address\"}],\"name\":\"removeFromKycContract\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/userContract.sol\":\"userContract\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/userContract.sol\":{\"keccak256\":\"0xce167a9b689920f9feacb102e28accbc88e64924406f5dfcaeccd2da4a454c0f\",\"urls\":[\"bzz-raw://1f588542f0825d164793b96733cf1179bc501c4c99547c3340e81394bacbe7d2\",\"dweb:/ipfs/QmWWXrc5QwewDH24xNpVPXYJzwQFhktoj8PE83nds39z92\"]}},\"version\":1}",
"bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a81806100606000396000f3fe6080604052600436106100705760003560e01c8063a71d451c1161004e578063a71d451c14610182578063e71e4429146101e6578063eb96ef271461022a578063f85b90e2146102b357610070565b80633a5753381461007257806341f02bbd146100c3578063817421b81461011e575b005b34801561007e57600080fd5b506100c16004803603602081101561009557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610368565b005b3480156100cf57600080fd5b5061011c600480360360408110156100e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610901565b005b6101806004803603604081101561013457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bd4565b005b6101e46004803603604081101561019857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fbf565b005b610228600480360360208110156101fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611317565b005b34801561023657600080fd5b506102996004803603604081101561024d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061152a565b604051808215151515815260200191505060405180910390f35b3480156102bf57600080fd5b50610302600480360360208110156102d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611740565b604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185815260200184151515158152602001831515151581526020018281526020019550505050505060405180910390f35b338073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461042b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4163636573732064656e6965642100000000000000000000000000000000000081525060200191505060405180910390fd5b60008060008060003073ffffffffffffffffffffffffffffffffffffffff1663f85b90e2336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060a06040518083038186803b1580156104b057600080fd5b505afa1580156104c4573d6000803e3d6000fd5b505050506040513d60a08110156104da57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505094509450945094509450600084146106e357600060608873ffffffffffffffffffffffffffffffffffffffff1686604051602401808281526020019150506040516020818303038152906040527f1d7876e7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b6020831061060157805182526020820191506020810190506020830392506105de565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610663576040519150601f19603f3d011682016040523d82523d6000602084013e610668565b606091505b5091509150816106e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f43616c6c20746f206b796320636f6e7472616374206661696c6564210000000081525060200191505060405180910390fd5b50505b600060608873ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f75beca08000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b602083106107b45780518252602082019150602081019050602083039250610791565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610816576040519150601f19603f3d011682016040523d82523d6000602084013e61081b565b606091505b509150915081610893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f43616c6c20746f206b796320636f6e7472616374206661696c6564210000000081525060200191505060405180910390fd5b7f21360fda5144ca2ffcbbde6c2a2adfca590ed225422549f3d8cae2f881309d1889604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050505050505050565b338073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4163636573732064656e6965642100000000000000000000000000000000000081525060200191505060405180910390fd5b600060608473ffffffffffffffffffffffffffffffffffffffff1684604051602401808281526020019150506040516020818303038152906040527feae7236f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310610aa05780518252602082019150602081019050602083039250610a7d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610b02576040519150601f19603f3d011682016040523d82523d6000602084013e610b07565b606091505b509150915081610b62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611a21602c913960400191505060405180910390fd5b7f4690b724b07f7f31003a144294070c4ad982cb9a02c200c33fd0c3fc6c4a177b8585604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050505050565b338073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4163636573732064656e6965642100000000000000000000000000000000000081525060200191505060405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff1663eb96ef2785856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015610d4a57600080fd5b505afa158015610d5e573d6000803e3d6000fd5b505050506040513d6020811015610d7457600080fd5b8101908080519060200190929190505050905080610dfa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f5468652064657374696e6174696f6e206e6f742076657269666965642100000081525060200191505060405180910390fd5b6000833b90506000811415610e6b578373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015610e65573d6000803e3d6000fd5b50610f4d565b600060608573ffffffffffffffffffffffffffffffffffffffff163460405180600001905060006040518083038185875af1925050503d8060008114610ecd576040519150601f19603f3d011682016040523d82523d6000602084013e610ed2565b606091505b509150915081610f4a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5472616e73666572206661696c6564210000000000000000000000000000000081525060200191505060405180910390fd5b50505b7fa27e6dbb19599b1ad50eff1ba2a549c8548a0ddd4e873795a7de7ada6b2f4ecd8434604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050505050565b338073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611082576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4163636573732064656e6965642100000000000000000000000000000000000081525060200191505060405180910390fd5b600060608473ffffffffffffffffffffffffffffffffffffffff168434604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fd8d1f38f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310611192578051825260208201915060208101905060208303925061116f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146111f4576040519150601f19603f3d011682016040523d82523d6000602084013e6111f9565b606091505b509150915081611271576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f43616c6c20746f206b796320636f6e7472616374206661696c6564210000000081525060200191505060405180910390fd5b7f79342f8b55df85779b6d1d5197758aa08e820347b6f9a9a44d94b9dbf62ddfbb858534604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a15050505050565b338073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4163636573732064656e6965642100000000000000000000000000000000000081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff163460405180600001905060006040518083038185875af1925050503d806000811461143c576040519150601f19603f3d011682016040523d82523d6000602084013e611441565b606091505b5091509150816114b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5265676973746572206f6e206b796320636f6e7472616374206661696c65642181525060200191505060405180910390fd5b7f79f117740801af0599f65db99000107a8feefedbf01c857c11e880f9251ca6ed8434604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150505050565b60008060608473ffffffffffffffffffffffffffffffffffffffff1684604051602401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040516020818303038152906040527f9b0763e8000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b602083106116335780518252602082019150602081019050602083039250611610565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114611693576040519150601f19603f3d011682016040523d82523d6000602084013e611698565b606091505b509150915081611710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f43616c6c20746f206b796320636f6e7472616374206661696c6564210000000081525060200191505060405180910390fd5b80806020019051602081101561172557600080fd5b81019080805190602001909291905050509250505092915050565b6000806000806000338073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461180b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4163636573732064656e6965642100000000000000000000000000000000000081525060200191505060405180910390fd5b600060608873ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f2517880c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b602083106118dc57805182526020820191506020810190506020830392506118b9565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d806000811461193c576040519150601f19603f3d011682016040523d82523d6000602084013e611941565b606091505b5091509150816119b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f43616c6c20746f206b796320636f6e7472616374206661696c6564210000000081525060200191505060405180910390fd5b8080602001905160a08110156119ce57600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050849450975097509750975097505050509193959092945056fe47657474696e67206261636b2076616c75652066726f6d206b796320636f6e7472616374206661696c656421a265627a7a72315820accf489580c96d0975963c480cef496c19986cba4ff57529505124d2826590d764736f6c63430005100032",
"deployedBytecode": "0x6080604052600436106100705760003560e01c8063a71d451c1161004e578063a71d451c14610182578063e71e4429146101e6578063eb96ef271461022a578063f85b90e2146102b357610070565b80633a5753381461007257806341f02bbd146100c3578063817421b81461011e575b005b34801561007e57600080fd5b506100c16004803603602081101561009557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610368565b005b3480156100cf57600080fd5b5061011c600480360360408110156100e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610901565b005b6101806004803603604081101561013457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bd4565b005b6101e46004803603604081101561019857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fbf565b005b610228600480360360208110156101fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611317565b005b34801561023657600080fd5b506102996004803603604081101561024d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061152a565b604051808215151515815260200191505060405180910390f35b3480156102bf57600080fd5b50610302600480360360208110156102d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611740565b604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185815260200184151515158152602001831515151581526020018281526020019550505050505060405180910390f35b338073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461042b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4163636573732064656e6965642100000000000000000000000000000000000081525060200191505060405180910390fd5b60008060008060003073ffffffffffffffffffffffffffffffffffffffff1663f85b90e2336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060a06040518083038186803b1580156104b057600080fd5b505afa1580156104c4573d6000803e3d6000fd5b505050506040513d60a08110156104da57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505094509450945094509450600084146106e357600060608873ffffffffffffffffffffffffffffffffffffffff1686604051602401808281526020019150506040516020818303038152906040527f1d7876e7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b6020831061060157805182526020820191506020810190506020830392506105de565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610663576040519150601f19603f3d011682016040523d82523d6000602084013e610668565b606091505b5091509150816106e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f43616c6c20746f206b796320636f6e7472616374206661696c6564210000000081525060200191505060405180910390fd5b50505b600060608873ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f75beca08000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b602083106107b45780518252602082019150602081019050602083039250610791565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610816576040519150601f19603f3d011682016040523d82523d6000602084013e61081b565b606091505b509150915081610893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f43616c6c20746f206b796320636f6e7472616374206661696c6564210000000081525060200191505060405180910390fd5b7f21360fda5144ca2ffcbbde6c2a2adfca590ed225422549f3d8cae2f881309d1889604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050505050505050565b338073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4163636573732064656e6965642100000000000000000000000000000000000081525060200191505060405180910390fd5b600060608473ffffffffffffffffffffffffffffffffffffffff1684604051602401808281526020019150506040516020818303038152906040527feae7236f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310610aa05780518252602082019150602081019050602083039250610a7d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610b02576040519150601f19603f3d011682016040523d82523d6000602084013e610b07565b606091505b509150915081610b62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611a21602c913960400191505060405180910390fd5b7f4690b724b07f7f31003a144294070c4ad982cb9a02c200c33fd0c3fc6c4a177b8585604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050505050565b338073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4163636573732064656e6965642100000000000000000000000000000000000081525060200191505060405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff1663eb96ef2785856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015610d4a57600080fd5b505afa158015610d5e573d6000803e3d6000fd5b505050506040513d6020811015610d7457600080fd5b8101908080519060200190929190505050905080610dfa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f5468652064657374696e6174696f6e206e6f742076657269666965642100000081525060200191505060405180910390fd5b6000833b90506000811415610e6b578373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015610e65573d6000803e3d6000fd5b50610f4d565b600060608573ffffffffffffffffffffffffffffffffffffffff163460405180600001905060006040518083038185875af1925050503d8060008114610ecd576040519150601f19603f3d011682016040523d82523d6000602084013e610ed2565b606091505b509150915081610f4a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5472616e73666572206661696c6564210000000000000000000000000000000081525060200191505060405180910390fd5b50505b7fa27e6dbb19599b1ad50eff1ba2a549c8548a0ddd4e873795a7de7ada6b2f4ecd8434604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050505050565b338073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611082576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4163636573732064656e6965642100000000000000000000000000000000000081525060200191505060405180910390fd5b600060608473ffffffffffffffffffffffffffffffffffffffff168434604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fd8d1f38f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310611192578051825260208201915060208101905060208303925061116f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146111f4576040519150601f19603f3d011682016040523d82523d6000602084013e6111f9565b606091505b509150915081611271576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f43616c6c20746f206b796320636f6e7472616374206661696c6564210000000081525060200191505060405180910390fd5b7f79342f8b55df85779b6d1d5197758aa08e820347b6f9a9a44d94b9dbf62ddfbb858534604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a15050505050565b338073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4163636573732064656e6965642100000000000000000000000000000000000081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff163460405180600001905060006040518083038185875af1925050503d806000811461143c576040519150601f19603f3d011682016040523d82523d6000602084013e611441565b606091505b5091509150816114b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5265676973746572206f6e206b796320636f6e7472616374206661696c65642181525060200191505060405180910390fd5b7f79f117740801af0599f65db99000107a8feefedbf01c857c11e880f9251ca6ed8434604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150505050565b60008060608473ffffffffffffffffffffffffffffffffffffffff1684604051602401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040516020818303038152906040527f9b0763e8000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b602083106116335780518252602082019150602081019050602083039250611610565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114611693576040519150601f19603f3d011682016040523d82523d6000602084013e611698565b606091505b509150915081611710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f43616c6c20746f206b796320636f6e7472616374206661696c6564210000000081525060200191505060405180910390fd5b80806020019051602081101561172557600080fd5b81019080805190602001909291905050509250505092915050565b6000806000806000338073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461180b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4163636573732064656e6965642100000000000000000000000000000000000081525060200191505060405180910390fd5b600060608873ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f2517880c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b602083106118dc57805182526020820191506020810190506020830392506118b9565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d806000811461193c576040519150601f19603f3d011682016040523d82523d6000602084013e611941565b606091505b5091509150816119b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f43616c6c20746f206b796320636f6e7472616374206661696c6564210000000081525060200191505060405180910390fd5b8080602001905160a08110156119ce57600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050849450975097509750975097505050509193959092945056fe47657474696e67206261636b2076616c75652066726f6d206b796320636f6e7472616374206661696c656421a265627a7a72315820accf489580c96d0975963c480cef496c19986cba4ff57529505124d2826590d764736f6c63430005100032",
"sourceMap": "64:4139:1:-;;;681:62;8:9:-1;5:2;;;30:1;27;20:12;5:2;681:62:1;723:10;715:5;;:18;;;;;;;;;;;;;;;;;;64:4139;;;;;;",
"deployedSourceMap": "64:4139:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3414:746;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3414:746:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3414:746:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;3015:391;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3015:391:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3015:391:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2277:730;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2277:730:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1844:425;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1844:425:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;751:325;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;751:325:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;1499:337;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1499:337:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1499:337:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1084:407;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1084:407:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1084:407:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3414:746;3487:10;621:9;612:18;;:5;;;;;;;;;;;:18;;;603:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3514:19;3536:18;3557:14;3574:15;3592:12;3622:4;:16;;;3639:10;3622:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3622:28:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3622:28:1;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;3622:28:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3512:138;;;;;;;;;;3684:1;3667:13;:18;3663:245;;3706:12;3721:23;3749:11;:16;;3811:13;3767:59;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3767:59:1;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;3767:59:1;3749:79;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3749:79:1;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;3704:124:1;;;;3852:7;3843:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3663:245;;;3922:12;3937:23;3965:11;:16;;3983:44;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3983:44:1;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;3983:44:1;3965:64;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3965:64:1;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;3920:109:1;;;;4049:7;4040:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4107:43;4137:11;4107:43;;;;;;;;;;;;;;;;;;;;;;662:1;;;;;;;3414:746;;:::o;3015:391::-;3098:10;621:9;612:18;;:5;;;;;;;;;;;:18;;;603:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3125:12;3140:23;3168:11;:16;;3234:11;3186:60;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3186:60:1;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;3186:60:1;3168:79;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3168:79:1;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;3123:124:1;;;;3267:7;3258:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3340:56;3369:11;3383;3340:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;662:1;;3015:391;;;:::o;2277:730::-;2374:10;621:9;612:18;;:5;;;;;;;;;;;:18;;;603:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2400:14;2417:4;:12;;;2431:11;2445;2417:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2417:41:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2417:41:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2417:41:1;;;;;;;;;;;;;;;;2400:58;;2478:9;2469:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2536:20;2627:11;2614:26;2595:45;;2688:1;2669:15;:20;2665:277;;;2720:11;2715:17;;2707:35;;:48;2744:9;2707:48;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2707:48:1;2665:277;;;2792:12;2807:23;2835:11;:16;;2859:9;2835:39;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;2790:84:1;;;;2898:7;2889:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2665:277;;;2955:42;2972:11;2986:9;2955:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;662:1;;2277:730;;;:::o;1844:425::-;1942:10;621:9;612:18;;:5;;;;;;;;;;;:18;;;603:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1970:12;1985:23;2013:11;:16;;2092:11;2106:9;2031:85;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2031:85:1;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;2031:85:1;2013:105;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2013:105:1;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;1968:150:1;;;;2138:7;2129:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2195:64;2220:11;2234;2248:9;2195:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;662:1;;1844:425;;;:::o;751:325::-;833:10;621:9;612:18;;:5;;;;;;;;;;;:18;;;603:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;859:12;874:23;901:11;:16;;924:9;901:37;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;858:80:1;;;;958:7;949:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1019:47;1042:11;1056:9;1019:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;662:1;;751:325;;:::o;1499:337::-;1578:4;1595:12;1610:23;1638:11;:22;;1709:6;1662:55;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1662:55:1;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;1662:55:1;1638:81;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1638:81:1;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;1593:126:1;;;;1735:7;1726:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1804:10;1792:32;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1792:32:1;;;;;;;;;;;;;;;;1783:43;;;;1499:337;;;;:::o;1084:407::-;1174:7;1184:4;1191;1198;1205;1152:10;621:9;612:18;;:5;;;;;;;;;;;:18;;;603:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1226:12;1241:23;1269:11;:22;;1293:37;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1293:37:1;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;1293:37:1;1269:63;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1269:63:1;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;1224:108:1;;;;1352:7;1343:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1426:10;1414:65;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1414:65:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1405:76;;;;;;;;;;;;;;;1084:407;;;;;;;;:::o",
"source": "// SPDX-License-Identifier: MIT`\r\n\r\npragma solidity ^0.5.12;\r\n\r\ncontract userContract{\r\n\r\n address owner;\r\n\r\n event registerOnKycContract( address kycContractAddress , uint valueToLock );\r\n event getBackValueFromKycContract( address kycContractAddress , uint valueToBack );\r\n event removeAccountFromKycContract( address kycContractAddress);\r\n event transferWithKycContract( address kycContractAddress , address destinationAddress, uint valueToTransfer );\r\n event transferSuccess( address destination , uint valueToTransfer );\r\n\r\n modifier onlyOwner( address requester ){\r\n\r\n require( owner == requester , \"Access denied!\" );\r\n _;\r\n\r\n }\r\n\r\n constructor() public {\r\n\r\n owner = msg.sender;\r\n\r\n }\r\n\r\n function registeringOnKycContract(address kycContract) external payable onlyOwner(msg.sender) {\r\n\r\n (bool success , bytes memory returnData) = kycContract.call.value(msg.value)(\"\");\r\n require( success , \"Register on kyc contract failed!\");\r\n emit registerOnKycContract( kycContract , msg.value);\r\n\r\n }\r\n\r\n function accountView( address kycContract) external view onlyOwner( msg.sender ) returns( address , uint , bool , bool , uint ){\r\n\r\n ( bool success , bytes memory returnData ) = kycContract.staticcall( abi.encodeWithSignature(\"userView()\") );\r\n require( success , \"Call to kyc contract failed!\" );\r\n return ( abi.decode( returnData , ( address , uint , bool , bool , uint) ) );\r\n\r\n }\r\n\r\n function kycView( address kycContract , address target ) external view returns(bool) {\r\n\r\n ( bool success , bytes memory returnData ) = kycContract.staticcall( abi.encodeWithSignature( \"kycCheck(address)\" , target ) );\r\n require( success , \"Call to kyc contract failed!\");\r\n return ( abi.decode( returnData , (bool)) );\r\n\r\n }\r\n\r\n function delegateTransfer( address kycContract , address destination) external payable onlyOwner( msg.sender ) {\r\n\r\n ( bool success , bytes memory returnData ) = kycContract.call( abi.encodeWithSignature( \"secureTransfer(address,uint256)\" , destination , msg.value) );\r\n require( success , \"Call to kyc contract failed!\");\r\n emit transferWithKycContract( kycContract , destination , msg.value );\r\n\r\n }\r\n\r\n function directTransfer( address kycContract , address destination ) external payable onlyOwner( msg.sender ) {\r\n\r\n bool kycResult = this.kycView( kycContract , destination );\r\n require( kycResult , \"The destination not verified!\" );\r\n\r\n uint destinationSize;\r\n\r\n assembly {\r\n\r\n destinationSize := extcodesize( destination )\r\n\r\n }\r\n\r\n if( destinationSize == 0){\r\n\r\n address(uint(destination)).transfer( msg.value );\r\n\r\n }else{\r\n\r\n ( bool success , bytes memory returnData ) = destination.call.value( msg.value )(\"\");\r\n require( success , \"Transfer failed!\" );\r\n\r\n }\r\n\r\n emit transferSuccess( destination , msg.value );\r\n\r\n }\r\n\r\n function getBackValue( address kycContract , uint valueToBack ) external onlyOwner(msg.sender) {\r\n\r\n ( bool success , bytes memory returnData ) = kycContract.call( abi.encodeWithSignature(\"transferBack(uint256)\",valueToBack));\r\n require( success , \"Getting back value from kyc contract failed!\");\r\n emit getBackValueFromKycContract( kycContract , valueToBack );\r\n\r\n }\r\n\r\n function removeFromKycContract( address kycContract ) external onlyOwner(msg.sender) {\r\n\r\n ( address accountAddr , uint lockedBalance , bool kycStatus , bool isContract , uint txCount ) =\r\n this.accountView(msg.sender);\r\n\r\n if( lockedBalance != 0 ){\r\n\r\n ( bool success , bytes memory returnData ) = kycContract.call( abi.encodeWithSignature( \"transferBack()\" , lockedBalance ) );\r\n require( success , \"Call to kyc contract failed!\" );\r\n\r\n }\r\n\r\n ( bool success , bytes memory returnData ) = kycContract.call( abi.encodeWithSignature( \"removeAccount()\" ) );\r\n require( success , \"Call to kyc contract failed!\" );\r\n emit removeAccountFromKycContract( kycContract );\r\n\r\n }\r\n\r\n function() external payable {}\r\n\r\n}",
"sourcePath": "E:\\smartContract\\contracts\\userContract.sol",
"ast": {
"absolutePath": "project:/contracts/userContract.sol",
"exportedSymbols": {
"userContract": [
815
]
},
"id": 816,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 424,
"literals": [
"solidity",
"^",
"0.5",
".12"
],
"nodeType": "PragmaDirective",
"src": "36:24:1"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 815,
"linearizedBaseContracts": [
815
],
"name": "userContract",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 426,
"name": "owner",
"nodeType": "VariableDeclaration",
"scope": 815,
"src": "94:13:1",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 425,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "94:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"anonymous": false,
"documentation": null,
"id": 432,
"name": "registerOnKycContract",
"nodeType": "EventDefinition",
"parameters": {
"id": 431,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 428,
"indexed": false,
"name": "kycContractAddress",
"nodeType": "VariableDeclaration",
"scope": 432,
"src": "145:26:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 427,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "145:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 430,
"indexed": false,
"name": "valueToLock",
"nodeType": "VariableDeclaration",
"scope": 432,
"src": "174:16:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 429,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "174:4:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "143:49:1"
},
"src": "116:77:1"
},
{
"anonymous": false,
"documentation": null,
"id": 438,
"name": "getBackValueFromKycContract",
"nodeType": "EventDefinition",
"parameters": {
"id": 437,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 434,
"indexed": false,
"name": "kycContractAddress",
"nodeType": "VariableDeclaration",
"scope": 438,
"src": "234:26:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 433,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "234:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 436,
"indexed": false,
"name": "valueToBack",
"nodeType": "VariableDeclaration",
"scope": 438,
"src": "263:16:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 435,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "263:4:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "232:49:1"
},
"src": "199:83:1"
},
{
"anonymous": false,
"documentation": null,
"id": 442,
"name": "removeAccountFromKycContract",
"nodeType": "EventDefinition",
"parameters": {
"id": 441,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 440,
"indexed": false,
"name": "kycContractAddress",
"nodeType": "VariableDeclaration",
"scope": 442,
"src": "324:26:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 439,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "324:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "322:29:1"
},
"src": "288:64:1"
},
{
"anonymous": false,
"documentation": null,
"id": 450,
"name": "transferWithKycContract",
"nodeType": "EventDefinition",
"parameters": {
"id": 449,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 444,
"indexed": false,
"name": "kycContractAddress",
"nodeType": "VariableDeclaration",
"scope": 450,
"src": "389:26:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 443,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "389:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 446,
"indexed": false,
"name": "destinationAddress",
"nodeType": "VariableDeclaration",
"scope": 450,
"src": "418:26:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 445,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "418:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 448,
"indexed": false,
"name": "valueToTransfer",
"nodeType": "VariableDeclaration",
"scope": 450,
"src": "446:20:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 447,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "446:4:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "387:81:1"
},
"src": "358:111:1"
},
{
"anonymous": false,
"documentation": null,
"id": 456,
"name": "transferSuccess",
"nodeType": "EventDefinition",
"parameters": {
"id": 455,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 452,
"indexed": false,
"name": "destination",
"nodeType": "VariableDeclaration",
"scope": 456,
"src": "498:19:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 451,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "498:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 454,
"indexed": false,
"name": "valueToTransfer",
"nodeType": "VariableDeclaration",
"scope": 456,
"src": "520:20:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 453,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "520:4:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "496:46:1"
},
"src": "475:68:1"
},
{
"body": {
"id": 468,
"nodeType": "Block",
"src": "590:83:1",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 463,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 461,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 426,
"src": "612:5:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 462,
"name": "requester",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 458,
"src": "621:9:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "612:18:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "4163636573732064656e69656421",
"id": 464,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "633:16:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_6e59522debcf8bdda7cbe00fc18a9129b3d6435a1db991c512da3a8f49758134",
"typeString": "literal_string \"Access denied!\""
},
"value": "Access denied!"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_6e59522debcf8bdda7cbe00fc18a9129b3d6435a1db991c512da3a8f49758134",
"typeString": "literal_string \"Access denied!\""
}
],
"id": 460,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
833,
834
],
"referencedDeclaration": 834,
"src": "603:7:1",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 465,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "603:48:1",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 466,
"nodeType": "ExpressionStatement",
"src": "603:48:1"
},
{
"id": 467,
"nodeType": "PlaceholderStatement",
"src": "662:1:1"
}
]
},
"documentation": null,
"id": 469,
"name": "onlyOwner",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 459,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 458,
"name": "requester",
"nodeType": "VariableDeclaration",
"scope": 469,
"src": "571:17:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 457,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "571:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "569:21:1"
},
"src": "551:122:1",
"visibility": "internal"
},
{
"body": {
"id": 477,
"nodeType": "Block",
"src": "702:41:1",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 475,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 472,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 426,
"src": "715:5:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 473,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 830,
"src": "723:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 474,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "723:10:1",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"src": "715:18:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 476,
"nodeType": "ExpressionStatement",
"src": "715:18:1"
}
]
},
"documentation": null,
"id": 478,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 470,
"nodeType": "ParameterList",
"parameters": [],
"src": "692:2:1"
},
"returnParameters": {
"id": 471,
"nodeType": "ParameterList",
"parameters": [],
"src": "702:0:1"
},
"scope": 815,
"src": "681:62:1",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 511,
"nodeType": "Block",
"src": "845:231:1",
"statements": [
{
"assignments": [
488,
490
],
"declarations": [
{
"constant": false,
"id": 488,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 511,
"src": "859:12:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 487,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "859:4:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 490,
"name": "returnData",
"nodeType": "VariableDeclaration",
"scope": 511,
"src": "874:23:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 489,
"name": "bytes",