-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathEcommerceStore.json
10159 lines (10159 loc) · 445 KB
/
EcommerceStore.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": "EcommerceStore",
"abi": [
{
"constant": true,
"inputs": [],
"name": "productIndex",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "_productId",
"type": "uint256"
},
{
"indexed": false,
"name": "_name",
"type": "string"
},
{
"indexed": false,
"name": "_category",
"type": "string"
},
{
"indexed": false,
"name": "_imageLink",
"type": "string"
},
{
"indexed": false,
"name": "_descLink",
"type": "string"
},
{
"indexed": false,
"name": "_listingStartTime",
"type": "uint256"
},
{
"indexed": false,
"name": "_listingEndTime",
"type": "uint256"
},
{
"indexed": false,
"name": "_price",
"type": "uint256"
},
{
"indexed": false,
"name": "_productCondition",
"type": "uint256"
}
],
"name": "NewProduct",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "_productId",
"type": "uint256"
},
{
"indexed": false,
"name": "_buyer",
"type": "address"
}
],
"name": "ProductSold",
"type": "event"
},
{
"constant": false,
"inputs": [
{
"name": "_name",
"type": "string"
},
{
"name": "_category",
"type": "string"
},
{
"name": "_imageLink",
"type": "string"
},
{
"name": "_descLink",
"type": "string"
},
{
"name": "_listingStartTime",
"type": "uint256"
},
{
"name": "_listingEndTime",
"type": "uint256"
},
{
"name": "_price",
"type": "uint256"
},
{
"name": "_productCondition",
"type": "uint256"
}
],
"name": "addProductToStore",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_productId",
"type": "uint256"
}
],
"name": "getProduct",
"outputs": [
{
"name": "",
"type": "uint256"
},
{
"name": "",
"type": "string"
},
{
"name": "",
"type": "string"
},
{
"name": "",
"type": "string"
},
{
"name": "",
"type": "string"
},
{
"name": "",
"type": "uint256"
},
{
"name": "",
"type": "uint256"
},
{
"name": "",
"type": "uint256"
},
{
"name": "",
"type": "address"
},
{
"name": "",
"type": "uint8"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_productId",
"type": "uint256"
}
],
"name": "buyProduct",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_productId",
"type": "uint256"
}
],
"name": "escrowAddressForProduct",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_productId",
"type": "uint256"
}
],
"name": "escrowInfo",
"outputs": [
{
"name": "",
"type": "address"
},
{
"name": "",
"type": "address"
},
{
"name": "",
"type": "address"
},
{
"name": "",
"type": "bool"
},
{
"name": "",
"type": "uint256"
},
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_productId",
"type": "uint256"
}
],
"name": "releaseAmountToSeller",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_productId",
"type": "uint256"
}
],
"name": "refundAmountToBuyer",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x6060604052341561000f57600080fd5b6000808190555033600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612826806100666000396000f30060606040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634389754a1461009357806383560525146100f65780638642269e146101d85780639a3a7c69146101f0578063a508b95514610213578063b9db15b41461035d578063c897d5a6146105a1578063cc352db7146105ca575b600080fd5b341561009e57600080fd5b6100b460048080359060200190919050506105ed565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561010157600080fd5b610117600480803590602001909190505061062a565b604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184151515158152602001838152602001828152602001965050505050505060405180910390f35b6101ee6004808035906020019091905050610713565b005b34156101fb57600080fd5b6102116004808035906020019091905050610eef565b005b341561021e57600080fd5b61035b600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091908035906020019091908035906020019091908035906020019091908035906020019091905050610fcf565b005b341561036857600080fd5b61037e600480803590602001909190505061126a565b604051808b8152602001806020018060200180602001806020018a81526020018981526020018881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018660028111156103e857fe5b60ff16815260200185810385528e818151815260200191508051906020019080838360005b8381101561042857808201518184015260208101905061040d565b50505050905090810190601f1680156104555780820380516001836020036101000a031916815260200191505b5085810384528d818151815260200191508051906020019080838360005b8381101561048e578082015181840152602081019050610473565b50505050905090810190601f1680156104bb5780820380516001836020036101000a031916815260200191505b5085810383528c818151815260200191508051906020019080838360005b838110156104f45780820151818401526020810190506104d9565b50505050905090810190601f1680156105215780820380516001836020036101000a031916815260200191505b5085810382528b818151815260200191508051906020019080838360005b8381101561055a57808201518184015260208101905061053f565b50505050905090810190601f1680156105875780820380516001836020036101000a031916815260200191505b509e50505050505050505050505050505060405180910390f35b34156105ac57600080fd5b6105b46116f0565b6040518082815260200191505060405180910390f35b34156105d557600080fd5b6105eb60048080359060200190919050506116f6565b005b60006003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000806000806000806003600088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f3d259046040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160c060405180830381600087803b15156106c957600080fd5b5af115156106d657600080fd5b5050506040518051906020018051906020018051906020018051906020018051906020018051905095509550955095509550955091939550919395565b61071b6117d6565b6000600160006002600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020610160604051908101604052908160008201548152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108505780601f1061082557610100808354040283529160200191610850565b820191906000526020600020905b81548152906001019060200180831161083357829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108f25780601f106108c7576101008083540402835291602001916108f2565b820191906000526020600020905b8154815290600101906020018083116108d557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109945780601f1061096957610100808354040283529160200191610994565b820191906000526020600020905b81548152906001019060200180831161097757829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a365780601f10610a0b57610100808354040283529160200191610a36565b820191906000526020600020905b815481529060010190602001808311610a1957829003601f168201915b505050505081526020016005820154815260200160068201548152602001600782015481526020016008820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016008820160149054906101000a900460ff166002811115610ad157fe5b6002811115610adc57fe5b81526020016008820160159054906101000a900460ff166001811115610afe57fe5b6001811115610b0957fe5b8152505091508160c0015142101515610b2157600080fd5b60006002811115610b2e57fe5b8261012001516002811115610b3f57fe5b141515610b4b57600080fd5b8160e001513410151515610b5e57600080fd5b3483336002600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610bc0611875565b808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019450505050506040518091039082f0801515610c7857600080fd5b90509050806003600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018261012001906002811115610ce157fe5b90816002811115610cee57fe5b815250503382610100019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081600160006002600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858152602001908152602001600020600082015181600001556020820151816001019080519060200190610dd5929190611885565b506040820151816002019080519060200190610df2929190611885565b506060820151816003019080519060200190610e0f929190611885565b506080820151816004019080519060200190610e2c929190611885565b5060a0820151816005015560c0820151816006015560e082015181600701556101008201518160080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101208201518160080160146101000a81548160ff02191690836002811115610eb857fe5b02179055506101408201518160080160156101000a81548160ff02191690836001811115610ee257fe5b0217905550905050505050565b6003600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166358aad10b336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1515610fbc57600080fd5b5af11515610fc957600080fd5b50505050565b610fd76117d6565b8385101515610fe557600080fd5b600160008082825401925050819055506101606040519081016040528060005481526020018a8152602001898152602001888152602001878152602001868152602001858152602001848152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000600281111561105e57fe5b815260200183600181111561106f57fe5b600181111561107a57fe5b815250905080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000805481526020019081526020016000206000820151816000015560208201518160010190805190602001906110f7929190611885565b506040820151816002019080519060200190611114929190611885565b506060820151816003019080519060200190611131929190611885565b50608082015181600401908051906020019061114e929190611885565b5060a0820151816005015560c0820151816006015560e082015181600701556101008201518160080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101208201518160080160146101000a81548160ff021916908360028111156111da57fe5b02179055506101408201518160080160156101000a81548160ff0219169083600181111561120457fe5b021790555090505033600260008054815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505050565b6000611274611905565b61127c611905565b611284611905565b61128c611905565b600080600080600061129c6117d6565b60016000600260008f815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d8152602001908152602001600020610160604051908101604052908160008201548152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113cf5780601f106113a4576101008083540402835291602001916113cf565b820191906000526020600020905b8154815290600101906020018083116113b257829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114715780601f1061144657610100808354040283529160200191611471565b820191906000526020600020905b81548152906001019060200180831161145457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115135780601f106114e857610100808354040283529160200191611513565b820191906000526020600020905b8154815290600101906020018083116114f657829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115b55780601f1061158a576101008083540402835291602001916115b5565b820191906000526020600020905b81548152906001019060200180831161159857829003601f168201915b505050505081526020016005820154815260200160068201548152602001600782015481526020016008820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016008820160149054906101000a900460ff16600281111561165057fe5b600281111561165b57fe5b81526020016008820160159054906101000a900460ff16600181111561167d57fe5b600181111561168857fe5b815250509050806000015181602001518260400151836060015184608001518560a001518660c001518760e001518861010001518961012001518898508797508696508595509a509a509a509a509a509a509a509a509a509a50509193959799509193959799565b60005481565b6003600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a97d1b10336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15156117c357600080fd5b5af115156117d057600080fd5b50505050565b61016060405190810160405280600081526020016117f2611919565b81526020016117ff611919565b815260200161180c611919565b8152602001611819611919565b8152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000600281111561185d57fe5b81526020016000600181111561186f57fe5b81525090565b604051610ea88061195383390190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106118c657805160ff19168380011785556118f4565b828001600101855582156118f4579182015b828111156118f35782518255916020019190600101906118d8565b5b509050611901919061192d565b5090565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b61194f91905b8082111561194b576000816000905550600101611933565b5090565b9056006060604052604051608080610ea8833981016040528080519060200190919080519060200190919080519060200190919080519060200190919050508360008190555082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550346004819055506000600560006101000a81548160ff0219169083151502179055507f7527d0b8d16913563c5afb8fa2dc5b6257355ff7dfbefbdcfc1cf812a0f97c5e84848484604051808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390a150505050610c9b8061020d6000396000f3006060604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806308551a53146100b45780630bda4dbf1461010957806358aad10b146101325780637150d8ae1461016b578063a97d1b10146101c0578063aa8c217c146101f9578063b8d08db214610222578063c5ce39111461024b578063d1a52e3014610274578063f3d25904146102a1578063fe25e00a14610375575b600080fd5b34156100bf57600080fd5b6100c76103ca565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561011457600080fd5b61011c6103f0565b6040518082815260200191505060405180910390f35b341561013d57600080fd5b610169600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506103f6565b005b341561017657600080fd5b61017e6107ac565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101cb57600080fd5b6101f7600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506107d2565b005b341561020457600080fd5b61020c610b88565b6040518082815260200191505060405180910390f35b341561022d57600080fd5b610235610b8e565b6040518082815260200191505060405180910390f35b341561025657600080fd5b61025e610b94565b6040518082815260200191505060405180910390f35b341561027f57600080fd5b610287610b9a565b604051808215151515815260200191505060405180910390f35b34156102ac57600080fd5b6102b4610bad565b604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184151515158152602001838152602001828152602001965050505050505060405180910390f35b341561038057600080fd5b610388610c49565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b600560009054906101000a900460ff1615151561041257600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806104bb5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b806105135750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b8015610570575060011515600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514155b15610685576001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016007600082825401925050819055507fe31e37941fee7dca6bb1597da71841499d8cd0dfc5553e0889f6d1ca6038ce966000548260405180838152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825260078152602001807f72656c6561736500000000000000000000000000000000000000000000000000815250602001935050505060405180910390a15b600260075414156107a957600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6004549081150290604051600060405180830381858888f1935050505015156106f457600080fd5b6001600560006101000a81548160ff0219169083151502179055507fdde1058856b8611b1f49ef2ebaef10c0441e48e8a6cbbec1ebdcbfb1862b57b4600054600454600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a15b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900460ff161515156107ee57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806108975750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b806108ef5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b801561094c575060011515600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514155b15610a61576001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016009600082825401925050819055507fe31e37941fee7dca6bb1597da71841499d8cd0dfc5553e0889f6d1ca6038ce966000548260405180838152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825260068152602001807f726566756e640000000000000000000000000000000000000000000000000000815250602001935050505060405180910390a15b60026009541415610b8557600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6004549081150290604051600060405180830381858888f193505050501515610ad057600080fd5b6001600560006101000a81548160ff0219169083151502179055507fdde1058856b8611b1f49ef2ebaef10c0441e48e8a6cbbec1ebdcbfb1862b57b4600054600454600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a15b50565b60045481565b60075481565b60005481565b600560009054906101000a900460ff1681565b600080600080600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900460ff16600754600954955095509550955095509550909192939495565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820f06a663f7bbd04c546564bdd92947b3113e47e653ed4387a04f1265717117eba0029a165627a7a72305820d87b00fa23734940b4e41c23eb52c75e7db754c4f13baa2e8a20ebd6d198cf500029",
"deployedBytecode": "0x60606040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634389754a1461009357806383560525146100f65780638642269e146101d85780639a3a7c69146101f0578063a508b95514610213578063b9db15b41461035d578063c897d5a6146105a1578063cc352db7146105ca575b600080fd5b341561009e57600080fd5b6100b460048080359060200190919050506105ed565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561010157600080fd5b610117600480803590602001909190505061062a565b604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184151515158152602001838152602001828152602001965050505050505060405180910390f35b6101ee6004808035906020019091905050610713565b005b34156101fb57600080fd5b6102116004808035906020019091905050610eef565b005b341561021e57600080fd5b61035b600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091908035906020019091908035906020019091908035906020019091908035906020019091905050610fcf565b005b341561036857600080fd5b61037e600480803590602001909190505061126a565b604051808b8152602001806020018060200180602001806020018a81526020018981526020018881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018660028111156103e857fe5b60ff16815260200185810385528e818151815260200191508051906020019080838360005b8381101561042857808201518184015260208101905061040d565b50505050905090810190601f1680156104555780820380516001836020036101000a031916815260200191505b5085810384528d818151815260200191508051906020019080838360005b8381101561048e578082015181840152602081019050610473565b50505050905090810190601f1680156104bb5780820380516001836020036101000a031916815260200191505b5085810383528c818151815260200191508051906020019080838360005b838110156104f45780820151818401526020810190506104d9565b50505050905090810190601f1680156105215780820380516001836020036101000a031916815260200191505b5085810382528b818151815260200191508051906020019080838360005b8381101561055a57808201518184015260208101905061053f565b50505050905090810190601f1680156105875780820380516001836020036101000a031916815260200191505b509e50505050505050505050505050505060405180910390f35b34156105ac57600080fd5b6105b46116f0565b6040518082815260200191505060405180910390f35b34156105d557600080fd5b6105eb60048080359060200190919050506116f6565b005b60006003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000806000806000806003600088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f3d259046040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160c060405180830381600087803b15156106c957600080fd5b5af115156106d657600080fd5b5050506040518051906020018051906020018051906020018051906020018051906020018051905095509550955095509550955091939550919395565b61071b6117d6565b6000600160006002600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020610160604051908101604052908160008201548152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108505780601f1061082557610100808354040283529160200191610850565b820191906000526020600020905b81548152906001019060200180831161083357829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108f25780601f106108c7576101008083540402835291602001916108f2565b820191906000526020600020905b8154815290600101906020018083116108d557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109945780601f1061096957610100808354040283529160200191610994565b820191906000526020600020905b81548152906001019060200180831161097757829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a365780601f10610a0b57610100808354040283529160200191610a36565b820191906000526020600020905b815481529060010190602001808311610a1957829003601f168201915b505050505081526020016005820154815260200160068201548152602001600782015481526020016008820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016008820160149054906101000a900460ff166002811115610ad157fe5b6002811115610adc57fe5b81526020016008820160159054906101000a900460ff166001811115610afe57fe5b6001811115610b0957fe5b8152505091508160c0015142101515610b2157600080fd5b60006002811115610b2e57fe5b8261012001516002811115610b3f57fe5b141515610b4b57600080fd5b8160e001513410151515610b5e57600080fd5b3483336002600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610bc0611875565b808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019450505050506040518091039082f0801515610c7857600080fd5b90509050806003600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018261012001906002811115610ce157fe5b90816002811115610cee57fe5b815250503382610100019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081600160006002600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858152602001908152602001600020600082015181600001556020820151816001019080519060200190610dd5929190611885565b506040820151816002019080519060200190610df2929190611885565b506060820151816003019080519060200190610e0f929190611885565b506080820151816004019080519060200190610e2c929190611885565b5060a0820151816005015560c0820151816006015560e082015181600701556101008201518160080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101208201518160080160146101000a81548160ff02191690836002811115610eb857fe5b02179055506101408201518160080160156101000a81548160ff02191690836001811115610ee257fe5b0217905550905050505050565b6003600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166358aad10b336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1515610fbc57600080fd5b5af11515610fc957600080fd5b50505050565b610fd76117d6565b8385101515610fe557600080fd5b600160008082825401925050819055506101606040519081016040528060005481526020018a8152602001898152602001888152602001878152602001868152602001858152602001848152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000600281111561105e57fe5b815260200183600181111561106f57fe5b600181111561107a57fe5b815250905080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000805481526020019081526020016000206000820151816000015560208201518160010190805190602001906110f7929190611885565b506040820151816002019080519060200190611114929190611885565b506060820151816003019080519060200190611131929190611885565b50608082015181600401908051906020019061114e929190611885565b5060a0820151816005015560c0820151816006015560e082015181600701556101008201518160080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101208201518160080160146101000a81548160ff021916908360028111156111da57fe5b02179055506101408201518160080160156101000a81548160ff0219169083600181111561120457fe5b021790555090505033600260008054815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505050565b6000611274611905565b61127c611905565b611284611905565b61128c611905565b600080600080600061129c6117d6565b60016000600260008f815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d8152602001908152602001600020610160604051908101604052908160008201548152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113cf5780601f106113a4576101008083540402835291602001916113cf565b820191906000526020600020905b8154815290600101906020018083116113b257829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114715780601f1061144657610100808354040283529160200191611471565b820191906000526020600020905b81548152906001019060200180831161145457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115135780601f106114e857610100808354040283529160200191611513565b820191906000526020600020905b8154815290600101906020018083116114f657829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115b55780601f1061158a576101008083540402835291602001916115b5565b820191906000526020600020905b81548152906001019060200180831161159857829003601f168201915b505050505081526020016005820154815260200160068201548152602001600782015481526020016008820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016008820160149054906101000a900460ff16600281111561165057fe5b600281111561165b57fe5b81526020016008820160159054906101000a900460ff16600181111561167d57fe5b600181111561168857fe5b815250509050806000015181602001518260400151836060015184608001518560a001518660c001518760e001518861010001518961012001518898508797508696508595509a509a509a509a509a509a509a509a509a509a50509193959799509193959799565b60005481565b6003600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a97d1b10336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15156117c357600080fd5b5af115156117d057600080fd5b50505050565b61016060405190810160405280600081526020016117f2611919565b81526020016117ff611919565b815260200161180c611919565b8152602001611819611919565b8152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000600281111561185d57fe5b81526020016000600181111561186f57fe5b81525090565b604051610ea88061195383390190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106118c657805160ff19168380011785556118f4565b828001600101855582156118f4579182015b828111156118f35782518255916020019190600101906118d8565b5b509050611901919061192d565b5090565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b61194f91905b8082111561194b576000816000905550600101611933565b5090565b9056006060604052604051608080610ea8833981016040528080519060200190919080519060200190919080519060200190919080519060200190919050508360008190555082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550346004819055506000600560006101000a81548160ff0219169083151502179055507f7527d0b8d16913563c5afb8fa2dc5b6257355ff7dfbefbdcfc1cf812a0f97c5e84848484604051808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390a150505050610c9b8061020d6000396000f3006060604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806308551a53146100b45780630bda4dbf1461010957806358aad10b146101325780637150d8ae1461016b578063a97d1b10146101c0578063aa8c217c146101f9578063b8d08db214610222578063c5ce39111461024b578063d1a52e3014610274578063f3d25904146102a1578063fe25e00a14610375575b600080fd5b34156100bf57600080fd5b6100c76103ca565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561011457600080fd5b61011c6103f0565b6040518082815260200191505060405180910390f35b341561013d57600080fd5b610169600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506103f6565b005b341561017657600080fd5b61017e6107ac565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101cb57600080fd5b6101f7600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506107d2565b005b341561020457600080fd5b61020c610b88565b6040518082815260200191505060405180910390f35b341561022d57600080fd5b610235610b8e565b6040518082815260200191505060405180910390f35b341561025657600080fd5b61025e610b94565b6040518082815260200191505060405180910390f35b341561027f57600080fd5b610287610b9a565b604051808215151515815260200191505060405180910390f35b34156102ac57600080fd5b6102b4610bad565b604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184151515158152602001838152602001828152602001965050505050505060405180910390f35b341561038057600080fd5b610388610c49565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b600560009054906101000a900460ff1615151561041257600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806104bb5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b806105135750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b8015610570575060011515600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514155b15610685576001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016007600082825401925050819055507fe31e37941fee7dca6bb1597da71841499d8cd0dfc5553e0889f6d1ca6038ce966000548260405180838152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825260078152602001807f72656c6561736500000000000000000000000000000000000000000000000000815250602001935050505060405180910390a15b600260075414156107a957600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6004549081150290604051600060405180830381858888f1935050505015156106f457600080fd5b6001600560006101000a81548160ff0219169083151502179055507fdde1058856b8611b1f49ef2ebaef10c0441e48e8a6cbbec1ebdcbfb1862b57b4600054600454600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a15b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900460ff161515156107ee57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806108975750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b806108ef5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b801561094c575060011515600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514155b15610a61576001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016009600082825401925050819055507fe31e37941fee7dca6bb1597da71841499d8cd0dfc5553e0889f6d1ca6038ce966000548260405180838152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825260068152602001807f726566756e640000000000000000000000000000000000000000000000000000815250602001935050505060405180910390a15b60026009541415610b8557600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6004549081150290604051600060405180830381858888f193505050501515610ad057600080fd5b6001600560006101000a81548160ff0219169083151502179055507fdde1058856b8611b1f49ef2ebaef10c0441e48e8a6cbbec1ebdcbfb1862b57b4600054600454600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a15b50565b60045481565b60075481565b60005481565b600560009054906101000a900460ff1681565b600080600080600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900460ff16600754600954955095509550955095509550909192939495565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820f06a663f7bbd04c546564bdd92947b3113e47e653ed4387a04f1265717117eba0029a165627a7a72305820d87b00fa23734940b4e41c23eb52c75e7db754c4f13baa2e8a20ebd6d198cf500029",
"sourceMap": "80:3121:0:-;;;644:84;;;;;;;;698:1;683:12;:16;;;;713:10;705:5;;:18;;;;;;;;;;;;;;;;;;80:3121;;;;;;",
"deployedSourceMap": "80:3121:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2634:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2761:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2051:570;;;;;;;;;;;;;;;;;;2932:133;;;;;;;;;;;;;;;;;;;;;;;;;;1013:584;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1615:417;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1615:417:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1615:417:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1615:417:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1615:417:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;191:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3069:129;;;;;;;;;;;;;;;;;;;;;;;;;;2634:123;2705:7;2727:13;:25;2741:10;2727:25;;;;;;;;;;;;;;;;;;;;;2720:32;;2634:123;;;:::o;2761:167::-;2819:7;2828;2837;2846:4;2852;2858;2884:13;:25;2898:10;2884:25;;;;;;;;;;;;;;;;;;;;;2877:44;;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2870:53;;;;;;;;;;;;2761:167;;;;;;;:::o;2051:570::-;2109:22;;:::i;:::-;2324:13;2134:6;:36;2141:16;:28;2158:10;2141:28;;;;;;;;;;;;;;;;;;;;;2134:36;;;;;;;;;;;;;;;:48;2171:10;2134:48;;;;;;;;;;;2109:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2202:7;:22;;;2196:3;:28;2188:37;;;;;;;;2257:18;2239:36;;;;;;;;:7;:14;;;:36;;;;;;;;;2231:45;;;;;;;;2303:7;:13;;;2290:9;:26;;2282:35;;;;;;;;2359:9;2370:10;2382;2394:16;:28;2411:10;2394:28;;;;;;;;;;;;;;;;;;;;;2424:5;;;;;;;;;;;2340:90;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2324:106;;2472:6;2436:13;:25;2450:10;2436:25;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;2502:18;2485:7;:14;;:35;;;;;;;;;;;;;;;;;;;;;;;2542:10;2526:7;:13;;:26;;;;;;;;;;;2609:7;2558:6;:36;2565:16;:28;2582:10;2565:28;;;;;;;;;;;;;;;;;;;;;2558:36;;;;;;;;;;;;;;;:48;2595:10;2558:48;;;;;;;;;;;:58;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2051:570;;;:::o;2932:133::-;3000:13;:25;3014:10;3000:25;;;;;;;;;;;;;;;;;;;;;2993:55;;;3049:10;2993:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2932:133;:::o;1013:584::-;1283:22;;:::i;:::-;1238:15;1218:17;:35;1209:45;;;;;;;;1276:1;1260:12;;:17;;;;;;;;;;;1308:187;;;;;;;;;1316:12;;1308:187;;;;1330:5;1308:187;;;;1337:9;1308:187;;;;1348:10;1308:187;;;;1360:9;1308:187;;;;1371:17;1308:187;;;;1390:15;1308:187;;;;1428:6;1308:187;;;;1436:1;1308:187;;;;;;1439:18;1308:187;;;;;;;;;;;;1476:17;1459:35;;;;;;;;1308:187;;;;;;;;;;;1283:212;;1536:7;1501:6;:18;1508:10;1501:18;;;;;;;;;;;;;;;:32;1520:12;;1501:32;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1582:10;1549:16;:30;1566:12;;1549:30;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1013:584;;;;;;;;;:::o;1615:417::-;1673:4;1679:6;;:::i;:::-;1687;;:::i;:::-;1695;;:::i;:::-;1703;;:::i;:::-;1711:4;1717;1723;1729:7;1738:13;1758:22;;:::i;:::-;1783:6;:36;1790:16;:28;1807:10;1790:28;;;;;;;;;;;;;;;;;;;;;1783:36;;;;;;;;;;;;;;;:48;1820:10;1783:48;;;;;;;;;;;1758:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1844:7;:10;;;1856:7;:12;;;1870:7;:16;;;1888:7;:17;;;1907:7;:16;;;1925:7;:24;;;1958:7;:22;;;1982:7;:13;;;1997:7;:13;;;2012:7;:14;;;1836:191;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1615:417;;;;;;;;;;;;:::o;191:24::-;;;;:::o;3069:129::-;3135:13;:25;3149:10;3135:25;;;;;;;;;;;;;;;;;;;;;3128:53;;;3182:10;3128:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3069:129;:::o;80:3121::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
"source": "pragma solidity ^0.4.21;\n\nimport \"contracts/Escrow.sol\"; // eslint-disable-line\ncontract EcommerceStore {\n enum ProductStatus { Open, Sold, Unsold }\n enum ProductCondition { New, Used }\n\n uint public productIndex;\n mapping (address => mapping(uint => Product)) stores;\n mapping (uint => address) productIdInStore;\n\n mapping (uint => address) productEscrow;\n address owner;\n\n struct Product { //product constructor\n uint id;\n string name;\n string category;\n string imageLink;\n string descLink;\n uint listingStartTime;\n uint listingEndTime;\n uint price;\n address buyer;\n ProductStatus status;\n ProductCondition condition;\n }\n\n function EcommerceStore() public {\n productIndex = 0;\n owner = msg.sender;\n }\n\n//events\n event NewProduct(uint _productId, string _name, string _category, string _imageLink, string _descLink,\n uint _listingStartTime, uint _listingEndTime, uint _price, uint _productCondition);\n\n event ProductSold(uint _productId, address _buyer);\n\n//add product to store\n function addProductToStore(string _name, string _category, string _imageLink, string _descLink, uint _listingStartTime,\n uint _listingEndTime, uint _price, uint _productCondition) public {\n require (_listingStartTime < _listingEndTime);\n productIndex += 1;\n Product memory product = Product(productIndex, _name, _category, _imageLink, _descLink, _listingStartTime, _listingEndTime,\n _price, 0, ProductStatus.Open, ProductCondition(_productCondition));\n stores[msg.sender][productIndex] = product;\n productIdInStore[productIndex] = msg.sender;\n }\n\n//get product\n function getProduct(uint _productId) view public returns (uint, string, string, string, string, uint, uint, uint, address, ProductStatus) {\n Product memory product = stores[productIdInStore[_productId]][_productId];\n return (product.id, product.name, product.category, product.imageLink, product.descLink, product.listingStartTime,\n product.listingEndTime, product.price, product.buyer, product.status);\n }\n\n// buy product\n function buyProduct(uint _productId) payable public {\n Product memory product = stores[productIdInStore[_productId]][_productId];\n require(now < product.listingEndTime);\n require(product.status == ProductStatus.Open);\n require(msg.value >= product.price);\n\n Escrow escrow = (new Escrow).value(msg.value)(_productId, msg.sender, productIdInStore[_productId], owner);\n productEscrow[_productId] = address(escrow);\n product.status = ProductStatus.Sold;\n product.buyer = msg.sender;\n stores[productIdInStore[_productId]][_productId] = product;\n }\n\n//escrow\n function escrowAddressForProduct(uint _productId) view public returns (address) {\n return productEscrow[_productId];\n }\n\n function escrowInfo(uint _productId) view public returns (address, address, address, bool, uint, uint) {\n return Escrow(productEscrow[_productId]).escrowInfo();\n }\n\n function releaseAmountToSeller(uint _productId) public {\n Escrow(productEscrow[_productId]).releaseAmountToSeller(msg.sender);\n }\n\n function refundAmountToBuyer(uint _productId) public {\n Escrow(productEscrow[_productId]).refundAmountToBuyer(msg.sender);\n }\n\n}\n",
"sourcePath": "/home/octipus/projects/dapp_eth-ipfs/contracts/EcommerceStore.sol",
"ast": {
"absolutePath": "/home/octipus/projects/dapp_eth-ipfs/contracts/EcommerceStore.sol",
"exportedSymbols": {
"EcommerceStore": [
372
]
},
"id": 373,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.4",
".21"
],
"nodeType": "PragmaDirective",
"src": "0:24:0"
},
{
"absolutePath": "contracts/Escrow.sol",
"file": "contracts/Escrow.sol",
"id": 2,
"nodeType": "ImportDirective",
"scope": 373,
"sourceUnit": 887,
"src": "26:30:0",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [],
"contractDependencies": [
886
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 372,
"linearizedBaseContracts": [
372
],
"name": "EcommerceStore",
"nodeType": "ContractDefinition",
"nodes": [
{
"canonicalName": "EcommerceStore.ProductStatus",
"id": 6,
"members": [
{
"id": 3,
"name": "Open",
"nodeType": "EnumValue",
"src": "129:4:0"
},
{
"id": 4,
"name": "Sold",
"nodeType": "EnumValue",
"src": "135:4:0"
},
{
"id": 5,
"name": "Unsold",
"nodeType": "EnumValue",
"src": "141:6:0"
}
],
"name": "ProductStatus",
"nodeType": "EnumDefinition",
"src": "108:41:0"
},
{
"canonicalName": "EcommerceStore.ProductCondition",
"id": 9,
"members": [
{
"id": 7,
"name": "New",
"nodeType": "EnumValue",
"src": "176:3:0"
},
{
"id": 8,
"name": "Used",
"nodeType": "EnumValue",
"src": "181:4:0"
}
],
"name": "ProductCondition",
"nodeType": "EnumDefinition",
"src": "152:35:0"
},
{
"constant": false,
"id": 11,
"name": "productIndex",
"nodeType": "VariableDeclaration",
"scope": 372,
"src": "191:24:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 10,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "191:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 17,
"name": "stores",
"nodeType": "VariableDeclaration",
"scope": 372,
"src": "219:52:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Product_$50_storage_$_$",
"typeString": "mapping(address => mapping(uint256 => struct EcommerceStore.Product storage ref))"
},
"typeName": {
"id": 16,
"keyType": {
"id": 12,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "228:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "219:45:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Product_$50_storage_$_$",
"typeString": "mapping(address => mapping(uint256 => struct EcommerceStore.Product storage ref))"
},
"valueType": {
"id": 15,
"keyType": {
"id": 13,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "247:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "239:24:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Product_$50_storage_$",
"typeString": "mapping(uint256 => struct EcommerceStore.Product storage ref)"
},
"valueType": {
"contractScope": null,
"id": 14,
"name": "Product",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 50,
"src": "255:7:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Product_$50_storage_ptr",
"typeString": "struct EcommerceStore.Product storage pointer"
}
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 21,
"name": "productIdInStore",
"nodeType": "VariableDeclaration",
"scope": 372,
"src": "275:42:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
"typeString": "mapping(uint256 => address)"
},
"typeName": {
"id": 20,
"keyType": {
"id": 18,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "284:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "275:25:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
"typeString": "mapping(uint256 => address)"
},
"valueType": {
"id": 19,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "292:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 25,
"name": "productEscrow",
"nodeType": "VariableDeclaration",
"scope": 372,
"src": "322:39:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
"typeString": "mapping(uint256 => address)"
},
"typeName": {
"id": 24,
"keyType": {
"id": 22,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "331:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "322:25:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
"typeString": "mapping(uint256 => address)"
},
"valueType": {
"id": 23,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "339:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 27,
"name": "owner",
"nodeType": "VariableDeclaration",
"scope": 372,
"src": "365:13:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 26,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "365:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"canonicalName": "EcommerceStore.Product",
"id": 50,
"members": [
{
"constant": false,
"id": 29,
"name": "id",
"nodeType": "VariableDeclaration",
"scope": 50,
"src": "424:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 28,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "424:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 31,
"name": "name",
"nodeType": "VariableDeclaration",
"scope": 50,
"src": "435:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string storage pointer"
},
"typeName": {
"id": 30,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "435:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string storage pointer"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 33,
"name": "category",
"nodeType": "VariableDeclaration",
"scope": 50,
"src": "450:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string storage pointer"
},
"typeName": {
"id": 32,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "450:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string storage pointer"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 35,
"name": "imageLink",
"nodeType": "VariableDeclaration",
"scope": 50,
"src": "469:16:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string storage pointer"
},
"typeName": {
"id": 34,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "469:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string storage pointer"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 37,
"name": "descLink",
"nodeType": "VariableDeclaration",
"scope": 50,
"src": "489:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string storage pointer"
},
"typeName": {
"id": 36,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "489:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string storage pointer"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 39,
"name": "listingStartTime",
"nodeType": "VariableDeclaration",
"scope": 50,
"src": "508:21:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 38,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "508:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 41,
"name": "listingEndTime",
"nodeType": "VariableDeclaration",
"scope": 50,
"src": "533:19:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 40,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "533:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 43,
"name": "price",
"nodeType": "VariableDeclaration",
"scope": 50,
"src": "556:10:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 42,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "556:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 45,
"name": "buyer",
"nodeType": "VariableDeclaration",
"scope": 50,
"src": "570:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 44,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "570:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 47,
"name": "status",
"nodeType": "VariableDeclaration",
"scope": 50,
"src": "587:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_enum$_ProductStatus_$6",
"typeString": "enum EcommerceStore.ProductStatus"
},
"typeName": {
"contractScope": null,
"id": 46,
"name": "ProductStatus",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 6,
"src": "587:13:0",
"typeDescriptions": {
"typeIdentifier": "t_enum$_ProductStatus_$6",
"typeString": "enum EcommerceStore.ProductStatus"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 49,
"name": "condition",
"nodeType": "VariableDeclaration",
"scope": 50,
"src": "611:26:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_enum$_ProductCondition_$9",
"typeString": "enum EcommerceStore.ProductCondition"
},
"typeName": {
"contractScope": null,
"id": 48,
"name": "ProductCondition",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 9,
"src": "611:16:0",
"typeDescriptions": {
"typeIdentifier": "t_enum$_ProductCondition_$9",
"typeString": "enum EcommerceStore.ProductCondition"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "Product",
"nodeType": "StructDefinition",
"scope": 372,
"src": "383:258:0",
"visibility": "public"
},
{
"body": {
"id": 62,
"nodeType": "Block",
"src": "677:51:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 55,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 53,
"name": "productIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 11,
"src": "683:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "30",
"id": 54,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "698:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "683:16:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 56,
"nodeType": "ExpressionStatement",
"src": "683:16:0"
},
{
"expression": {
"argumentTypes": null,
"id": 60,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 57,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27,
"src": "705:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 58,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 899,
"src": "713:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 59,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,