Contract con_smack_that_3


Contract Code


  
1 import currency
2 import con_smackeroos
3 __stats = Hash(default_value=0, contract='con_smack_that_3', name='stats')
4 __settings = Hash(default_value=0, contract='con_smack_that_3', name='settings'
5 )
6 random.seed()
7
8
9 def ____(vk: str):
10 __settings['cost'] = 10
11 __settings['prize'] = 200
12 __settings['odds'] = 21
13 __settings['refund_per'] = decimal('0.01')
14 __settings['refund_div'] = 100
15 __settings['operator'] = vk
16
17
18 @__export('con_smack_that_3')
19 def smack():
20 currency.transfer_from(amount=__settings['cost'], to=ctx.this,
21 main_account=ctx.caller)
22 __stats['plays', ctx.caller] += 1
23 x = random.randint(1, __settings['odds'])
24 if x == __settings['odds']:
25 __stats['wins', ctx.caller] += 1
26 currency.transfer(amount=__settings['prize'], to=ctx.caller)
27 return 1
28 else:
29 __give_refund()
30 return 0
31
32
33 def __give_refund():
34 refund = con_smackeroos.balance_of(ctx.this) * (__settings['refund_per'
35 ] / __settings['refund_div'])
36 con_smackeroos.transfer(refund, ctx.caller)
37
38
39 @__export('con_smack_that_3')
40 def change_refund_div(new_refund_div: float):
41 __assert_operator()
42 __settings['refund_div'] = new_refund_div
43
44
45 @__export('con_smack_that_3')
46 def change_refund_per(new_refund_per: float):
47 __assert_operator()
48 __settings['refund_per'] = new_refund_per
49
50
51 @__export('con_smack_that_3')
52 def change_odds(new_odds: int):
53 __assert_operator()
54 __settings['odds'] = new_odds
55
56
57 @__export('con_smack_that_3')
58 def change_prize(new_prize: int):
59 __assert_operator()
60 __settings['prize'] = new_prize
61
62
63 @__export('con_smack_that_3')
64 def change_cost(new_cost: int):
65 __assert_operator()
66 __settings['cost'] = new_cost
67
68
69 @__export('con_smack_that_3')
70 def change_operator(new_operator: str):
71 __assert_operator()
72 __settings['operator'] = new_operator
73
74
75 @__export('con_smack_that_3')
76 def transfer(amount: float, to: str):
77 __assert_operator()
78 currency.transfer(amount=amount, to=to)
79
80
81 @__export('con_smack_that_3')
82 def transfer_smackeroos(amount: float, to: str):
83 __assert_operator()
84 con_smackeroos.transfer(amount=amount, to=to)
85
86
87 def __assert_operator():
88 assert ctx.caller == __settings['operator'
89 ], 'Only operator can call this method.'
90

Byte Code

e30000000000000000000000000500000040000000731a010000640064016c005a00640064016c015a01650264006402640364048d035a03650264006402640564048d035a0465056a0683000100650764069c016407640884045a086509640283016409640a840083015a0a640b640c84005a0b650964028301650c640d9c01640e640f840483015a0d650964028301650c64109c0164116412840483015a0e650964028301650f64139c0164146415840483015a10650964028301650f64169c0164176418840483015a11650964028301650f64199c01641a641b840483015a126509640283016507641c9c01641d641e840483015a13650964028301650c6507641f9c0264206421840483015a14650964028301650c6507641f9c0264226423840483015a156424642584005a16640153002926e9000000004eda10636f6e5f736d61636b5f746861745f33da0573746174732903da0d64656661756c745f76616c7565da08636f6e7472616374da046e616d65da0873657474696e67732901da02766b63010000000000000001000000030000004300000073380000006401740064023c006403740064043c006405740064063c00740164078301740064083c0064097400640a3c007c007400640b3c0064005300290c4ee90a000000da04636f7374e9c8000000da057072697a65e915000000da046f6464737a04302e3031da0a726566756e645f706572e964000000da0a726566756e645f646976da086f70657261746f722902da0a5f5f73657474696e6773da07646563696d616c29017208000000a9007215000000da00da045f5f5f5f09000000730c00000000010801080108010c0108017217000000630000000000000000010000000500000043000000738600000074006a0174026401190074036a0474036a0564028d0301007406640374036a056602050019006404370003003c0074076a08640474026405190083027d007c007402640519006b0272787406640674036a056602050019006404370003003c0074006a0974026407190074036a0564088d02010064045300740a830001006409530064005300290a4e720a0000002903da06616d6f756e74da02746fda0c6d61696e5f6163636f756e74da05706c617973e901000000720e000000da0477696e73720c0000002902721800000072190000007201000000290bda0863757272656e6379da0d7472616e736665725f66726f6d7213000000da03637478da0474686973da0663616c6c6572da075f5f7374617473da0672616e646f6dda0772616e64696e74da087472616e73666572da0d5f5f676976655f726566756e642901da0178721500000072150000007216000000da05736d61636b12000000731400000000020e010a01160110010c0116011401040206017229000000630000000000000000010000000400000043000000732e00000074006a0174026a0383017404640119007404640219001b0014007d0074006a057c0074026a06830201006400530029034e720f00000072110000002907da0e636f6e5f736d61636b65726f6f73da0a62616c616e63655f6f66722000000072210000007213000000722600000072220000002901da06726566756e647215000000721500000072160000007227000000210000007306000000000110010c0172270000002901da0e6e65775f726566756e645f64697663010000000000000001000000030000004300000073120000007400830001007c00740164013c006400530029024e72110000002902da115f5f6173736572745f6f70657261746f7272130000002901722d000000721500000072150000007216000000da116368616e67655f726566756e645f64697627000000730400000000020601722f0000002901da0e6e65775f726566756e645f70657263010000000000000001000000030000004300000073120000007400830001007c00740164013c006400530029024e720f0000002902722e000000721300000029017230000000721500000072150000007216000000da116368616e67655f726566756e645f7065722d00000073040000000002060172310000002901da086e65775f6f64647363010000000000000001000000030000004300000073120000007400830001007c00740164013c006400530029024e720e0000002902722e000000721300000029017232000000721500000072150000007216000000da0b6368616e67655f6f6464733300000073040000000002060172330000002901da096e65775f7072697a6563010000000000000001000000030000004300000073120000007400830001007c00740164013c006400530029024e720c0000002902722e000000721300000029017234000000721500000072150000007216000000da0c6368616e67655f7072697a653900000073040000000002060172350000002901da086e65775f636f737463010000000000000001000000030000004300000073120000007400830001007c00740164013c006400530029024e720a0000002902722e000000721300000029017236000000721500000072150000007216000000da0b6368616e67655f636f73743f00000073040000000002060172370000002901da0c6e65775f6f70657261746f7263010000000000000001000000030000004300000073120000007400830001007c00740164013c006400530029024e72120000002902722e000000721300000029017238000000721500000072150000007216000000da0f6368616e67655f6f70657261746f72450000007304000000000206017239000000290272180000007219000000630200000000000000020000000400000043000000731800000074008300010074016a027c007c0164018d0201006400530029024e2902721800000072190000002903722e000000721e000000722600000029027218000000721900000072150000007215000000721600000072260000004b0000007304000000000206017226000000630200000000000000020000000400000043000000731800000074008300010074016a027c007c0164018d0201006400530029024e2902721800000072190000002903722e000000722a0000007226000000290272180000007219000000721500000072150000007216000000da137472616e736665725f736d61636b65726f6f7351000000730400000000020601723a000000630000000000000000000000000300000043000000731a00000074006a017402640119006b02731674036402830182016400530029034e72120000007a234f6e6c79206f70657261746f722063616e2063616c6c2074686973206d6574686f642e2904722000000072220000007213000000da0e417373657274696f6e4572726f727215000000721500000072150000007216000000722e00000057000000730400000000011001722e0000002917721e000000722a000000da0448617368722300000072130000007224000000da0473656564da037374727217000000da085f5f6578706f727472290000007227000000da05666c6f6174722f0000007231000000da03696e7472330000007235000000723700000072390000007226000000723a000000722e0000007215000000721500000072150000007216000000da083c6d6f64756c653e010000007330000000080108010e010e0208030e09100f08060601100506011005060110050601100506011005060110050601120506011205