Contract con_myluckynumber_v2
Creator | 88e98907fcdf041ecb850fdb35749f626ba4d0978b808d1ec1d79c8d2f776618 |
Creation Hash | beaa9ec69a8e7544f27dbba910067445289abb2068999b01f20e6f579d417d4a |
Created On | 1051 days ago - 6/9/2021, 8:58:46 PM UTC+0 |
Contract Code
1
import currency
2
3
game = Hash(default_value=0)
4
operator = Variable()
5
random.seed()
6
7
@construct
8
def seed(vk: str, jackpot:int):
9
operator.set(vk)
10
game['jackpot'] = jackpot
11
game['cost'] = 70
12
game['cost_2'] = 100
13
game['cost_3'] = 50
14
game['cost_4'] = 100
15
game['m_1'] = 7
16
game['m_2'] = 5
17
game['m_3'] = 2
18
game['m_4'] = 25
19
game['m_5'] = 500
20
game['m_6'] = 7
21
game['m_7'] = 25
22
game['range1'] = 1
23
game['range2'] = 2
24
game['range3'] = 9
25
game['trasure_box'] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 30, 30, 30, 30, 50, 50, 50, 100, 100, 200, 500]
26
game['treasure_multiplier'] = [2,2,2,2,2,3,3,3,4,4,5]
27
28
@export
29
def lucky_number(my_number: int):
30
caller = ctx.caller
31
amount = 0
32
assert currency.balance_of(caller
33
) >= game['cost'], 'Not enough Balance to play!'
34
35
currency.transfer_from(game['cost'], operator.get(), caller)
36
37
game_number = random.randint(1, 100)
38
mystery_number = random.randint(1, 100)
39
second_chance = random.randint(1, 100)
40
41
game_multiplier = 0
42
43
if my_number == game_number:
44
if second_chance < 51:
45
game_number = random.randint(1, 100)
46
47
if abs(my_number-game_number) == game['range1']:
48
amount = game['cost'] * game['m_1']
49
game_multiplier = game['m_1']
50
currency.transfer_from(amount, caller, operator.get())
51
game[caller, 'last_lucky_number'] = my_number
52
53
if abs(my_number-game_number) == game['range2']:
54
amount = game['cost'] * game['m_2']
55
game_multiplier = game['m_2']
56
currency.transfer_from(amount, caller, operator.get())
57
game[caller, 'last_lucky_number'] = my_number
58
59
if abs(my_number-game_number) > game['range2'] and abs(my_number-game_number) < game['range3']:
60
amount = game['cost'] * game['m_3']
61
game_multiplier = game['m_3']
62
currency.transfer_from(amount, caller, operator.get())
63
game[caller, 'last_lucky_number'] = my_number
64
65
if my_number == game_number:
66
amount = game['cost'] * game['m_4']
67
game_multiplier = game['m_4']
68
currency.transfer_from(amount, caller, operator.get())
69
game[caller, 'last_lucky_number'] = my_number
70
71
if mystery_number == game_number:
72
if my_number == game_number:
73
amount = game['jackpot'] - amount
74
game_multiplier = game['m_5']
75
currency.transfer_from(amount, caller, operator.get())
76
77
return {'bet': game['cost'], 'win': amount, 'my_number': my_number, 'game_number': game_number, 'multiplier': game_multiplier, 'mystery': mystery_number, 'diff': abs(my_number-game_number)}
78
79
@export
80
def treasure_hunt(box: list):
81
caller = ctx.caller
82
amount = 0
83
84
assert len(box) <= 80, 'Bad game selection!'
85
assert box.count(1) == 5, 'To may selection!'
86
87
assert currency.balance_of(caller
88
) >= game['cost_4'], 'Not enough Balance to play!'
89
90
currency.transfer_from(game['cost_4'], operator.get(), caller)
91
92
games_number = game['trasure_box']
93
multiplier = game['treasure_multiplier']
94
multiplier_position = random.randint(0, 79)
95
counter = 0
96
counter_prize = 0
97
98
random.shuffle(games_number)
99
random.shuffle(multiplier)
100
game_multiplier = random.choice(multiplier)
101
102
for x in box:
103
if counter < 80:
104
if x == 1 and counter_prize < 5:
105
amount = amount + games_number[counter]
106
counter_prize += 1
107
108
if multiplier_position == counter and x == 1 and counter_prize < 5:
109
amount = amount + (games_number[counter] * (game_multiplier - 1))
110
111
counter +=1
112
113
currency.transfer_from(amount, caller, operator.get())
114
115
return {'bet': game['cost_4'], 'win': amount, 'box': box, 'game': games_number, 'multiplier_position': multiplier_position, 'multiplier': game_multiplier}
116
117
118
@export
119
def best_card(option: int, bets: list):
120
caller = ctx.caller
121
amount = 0
122
game_multiplier = 0
123
124
assert bets[0] == 1, 'No bet!'
125
126
if bets[1] == 0:
127
assert currency.balance_of(caller
128
) >= game['cost_2'], 'Not enough Balance to play!'
129
currency.transfer_from(game['cost_2'], operator.get(), caller)
130
131
if bets[1] == 1:
132
assert currency.balance_of(caller
133
) >= game['cost_2'] + game['cost_3'], 'Not enough Balance to play!'
134
currency.transfer_from(game['cost_2'] + game['cost_3'], operator.get(), caller)
135
136
deck = [2,3,4,5,6,7,8,9,10,11,12,13,14]
137
card = [1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4]
138
139
random.choice(deck)
140
random.choice(card)
141
142
player = [random.choice(deck),random.choice(card)]
143
dealer = [random.choice(deck),random.choice(card)]
144
145
if option == 1:
146
if player[0] > dealer[0]:
147
amount = game['cost_2'] * 2
148
game_multiplier = 2
149
currency.transfer_from(amount, caller, operator.get())
150
151
if option == 2:
152
if player[0] < dealer[0]:
153
amount = game['cost_2'] * 2
154
game_multiplier = 2
155
currency.transfer_from(amount, caller, operator.get())
156
157
if player[0] == dealer[0]:
158
amount = game['cost_2'] * 1
159
game_multiplier = 1
160
currency.transfer_from(amount, caller, operator.get())
161
162
if bets[1] == 1:
163
if player[0] == dealer[0]:
164
amount = (game['cost_3'] * game['m_6']) + game['cost_2']
165
game_multiplier = game['m_6']
166
currency.transfer_from(amount, caller, operator.get())
167
168
if bets[1] == 1:
169
if player[0] == dealer[0]:
170
if player[1] == dealer[1]:
171
amount = (game['cost_3'] * game['m_7']) + game['cost_2']
172
game_multiplier = game['m_7']
173
currency.transfer_from(amount, caller, operator.get())
174
175
return {'option': option, 'player': player, 'dealer': dealer, 'win': amount, 'bets': bets, 'multiplier': game_multiplier}
176
177
178
@export
179
def set_values(field: str, value: int):
180
assert_owner()
181
game[field] = value
182
183
@export
184
def change_operator(vk: str):
185
assert_owner()
186
operator.set(vk)
187
188
def assert_owner():
189
assert ctx.caller == operator.get(), 'Only operator can call!'
190
191
192
193
194
Byte Code
e3000000000000000000000000050000004000000073b8000000640064016c005a00650164006402640364048d035a0265036402640564068d025a0465056a06830001006507650864079c026408640984045a09650a640283016508640a9c01640b640c840483015a0b650a64028301650c640d9c01640e640f840483015a0d650a640283016508650c64109c0264116412840483015a0e650a640283016507650864139c0264146415840483015a0f650a64028301650764169c0164176418840483015a106419641a84005a1164015300291be9000000004eda14636f6e5f6d796c75636b796e756d6265725f7632da0467616d652903da0d64656661756c745f76616c7565da08636f6e7472616374da046e616d65da086f70657261746f722902720500000072060000002902da02766bda076a61636b706f74630200000000000000020000005000000043000000734c01000074006a017c00830101007c01740264013c006402740264033c006404740264053c006406740264073c006404740264083c0064097402640a3c00640b7402640c3c00640d7402640e3c00640f740264103c006411740264123c006409740264133c00640f740264143c006415740264163c00640d740264173c006418740264193c006415641564156415641564156415641564156415641564156415641564156415641564156415641564156415641564156415641564156415641564156415641564156415640b640b640b640b640b640b640b640b640b640b640b640b640b640b640b640b640b640b640b640b640b640b640b640b640b641a641a641a641a641a641a641a641a641a641a641b641b641b641b64066406640664046404641c641167507402641d3c00640d640d640d640d640d641e641e641e641f641f640b670b740264203c006400530029214e7209000000e946000000da04636f7374e964000000da06636f73745f32e932000000da06636f73745f33da06636f73745f34e907000000da036d5f31e905000000da036d5f32e902000000da036d5f33e919000000da036d5f3469f4010000da036d5f35da036d5f36da036d5f37e901000000da0672616e676531da0672616e676532e909000000da0672616e676533e90a000000e91e000000e9c8000000da0b747261737572655f626f78e903000000e904000000da1374726561737572655f6d756c7469706c6965722903da0a5f5f6f70657261746f72da03736574da065f5f67616d65290272080000007209000000a900722b000000da00da045f5f5f5f07000000732c00000000010a0108010801080108010801080108010801080108010801080108010801080120012e012c0120010e01722d0000002901da096d795f6e756d626572630100000000000000070000000900000043000000731002000074006a017d0164017d0274026a037c0183017404640219006b057324740564038301820174026a0674046402190074076a0883007c018303010074096a0a6404640583027d0374096a0a6404640583027d0474096a0a6404640583027d0564017d067c007c036b02727e7c0564066b00727e74096a0a6404640583027d03740b7c007c03180083017404640719006b0272c874046402190074046408190014007d027404640819007d0674026a067c027c0174076a088300830301007c0074047c01640966023c00740b7c007c03180083017404640a19006b02900172147404640219007404640b190014007d027404640b19007d0674026a067c027c0174076a088300830301007c0074047c01640966023c00740b7c007c03180083017404640a19006b0490017276740b7c007c03180083017404640c19006b00900172767404640219007404640d190014007d027404640d19007d0674026a067c027c0174076a088300830301007c0074047c01640966023c007c007c036b02900172b67404640219007404640e190014007d027404640e19007d0674026a067c027c0174076a088300830301007c0074047c01640966023c007c047c036b02900172f07c007c036b02900172f07404640f19007c0218007d027404641019007d0674026a067c027c0174076a088300830301007404640219007c027c007c037c067c04740b7c007c031800830164119c07530029124e7201000000720b0000007a1b4e6f7420656e6f7567682042616c616e636520746f20706c617921721c000000720c000000e933000000721d0000007212000000da116c6173745f6c75636b795f6e756d626572721e0000007214000000722000000072160000007218000000720900000072190000002907da03626574da0377696e722e000000da0b67616d655f6e756d626572da0a6d756c7469706c696572da076d797374657279da0464696666290cda03637478da0663616c6c6572da0863757272656e6379da0a62616c616e63655f6f66722a000000da0e417373657274696f6e4572726f72da0d7472616e736665725f66726f6d7228000000da03676574da0672616e646f6dda0772616e64696e74da036162732907722e0000007238000000da06616d6f756e747233000000da0e6d7973746572795f6e756d626572da0d7365636f6e645f6368616e6365da0f67616d655f6d756c7469706c696572722b000000722b000000722c000000da0c6c75636b795f6e756d6265722000000073520000000002060104011401060116010c010c010c010401080108010c0114011001080112010c0116011001080112010c011a0112011001080112010c010a011001080112010c010a010a010c01080112010a01040172450000002901da03626f786301000000000000000a0000000700000043000000733e01000074006a017d0164017d0274027c00830164026b01731e74036403830182017c006a046404830164056b027334740364068301820174056a067c0183017407640719006b05734e740364088301820174056a0874076407190074096a0a83007c01830301007407640919007d037407640a19007d04740b6a0c6401640b83027d0564017d0664017d07740b6a0d7c0383010100740b6a0d7c0483010100740b6a0e7c0483017d08786e7c0044005d667d097c0664026b0072ac7c0964046b0272dc7c0764056b0072dc7c027c037c06190017007d027c07640437007d077c057c066b026ff27c0964046b026ff27c0764056b009001720a7c027c037c0619007c0864041800140017007d027c06640437007d0671ac570074056a087c027c0174096a0a8300830301007407640719007c027c007c037c057c08640c9c065300290d4e7201000000e9500000007a134261642067616d652073656c656374696f6e21721c00000072130000007a11546f206d61792073656c656374696f6e2172100000007a1b4e6f7420656e6f7567682042616c616e636520746f20706c61792172240000007227000000e94f00000029067231000000723200000072460000007203000000da136d756c7469706c6965725f706f736974696f6e7234000000290f72370000007238000000da036c656e723b000000da05636f756e747239000000723a000000722a000000723c0000007228000000723d000000723e000000723f000000da0773687566666c65da0663686f696365290a724600000072380000007241000000da0c67616d65735f6e756d62657272340000007249000000da07636f756e746572da0d636f756e7465725f7072697a657244000000da0178722b000000722b000000722c000000da0d74726561737572655f68756e744d000000733600000000020601040114011601140106011601080108010c01040104010a010a010a010a01080110010c0108011a0114010c0112010a01040172520000002902da066f7074696f6eda046265747363020000000000000009000000100000004300000073a002000074006a017d0264017d0364017d047c016401190064026b02732274026403830182017c016402190064016b02725e74036a047c0283017405640419006b057348740264058301820174036a0674056404190074076a0883007c02830301007c016402190064026b0272aa74036a047c02830174056404190074056406190017006b05738c740264058301820174036a06740564041900740564061900170074076a0883007c0283030100640764086409640a640b640c640d640e640f6410641164126413670d7d05640264026402640264076407640764076408640864086408640964096409640967107d0674096a0a7c058301010074096a0a7c068301010074096a0a7c05830174096a0a7c06830167027d0774096a0a7c05830174096a0a7c06830167027d087c0064026b02900172667c07640119007c08640119006b0490017266740564041900640714007d0364077d0474036a067c037c0274076a088300830301007c0064076b02900172a47c07640119007c08640119006b00900172a4740564041900640714007d0364077d0474036a067c037c0274076a088300830301007c07640119007c08640119006b02900172d8740564041900640214007d0364027d0474036a067c037c0274076a088300830301007c016402190064026b029002722a7c07640119007c08640119006b029002722a740564061900740564141900140074056404190017007d037405641419007d0474036a067c037c0274076a088300830301007c016402190064026b029002728e7c07640119007c08640119006b029002728e7c07640219007c08640219006b029002728e740564061900740564151900140074056404190017007d037405641519007d0474036a067c037c0274076a088300830301007c007c077c087c037c017c0464169c06530029174e7201000000721c0000007a074e6f2062657421720d0000007a1b4e6f7420656e6f7567682042616c616e636520746f20706c617921720f0000007215000000722500000072260000007213000000e9060000007211000000e908000000721f0000007221000000e90b000000e90c000000e90d000000e90e000000721a000000721b00000029067253000000da06706c61796572da066465616c6572723200000072540000007234000000290b72370000007238000000723b0000007239000000723a000000722a000000723c0000007228000000723d000000723e000000724d000000290972530000007254000000723800000072410000007244000000da046465636bda0463617264725b000000725c000000722b000000722b000000722c000000da09626573745f636172646c000000735c000000000206010401040114010c011401060116010c011001120112010c011e0124010a010a01140114010a0112010c01040112010a0112010c010401120112010c01040112010e0112011801080112010e01120112011801080112010601725f0000002902da056669656c64da0576616c756563020000000000000002000000030000004300000073120000007400830001007c0174017c003c006400530029014e2902da0e5f5f6173736572745f6f776e6572722a000000290272600000007261000000722b000000722b000000722c000000da0a7365745f76616c7565739e000000730400000000020601726300000029017208000000630100000000000000010000000200000043000000731400000074008300010074016a027c00830101006400530029014e290372620000007228000000722900000029017208000000722b000000722b000000722c000000da0f6368616e67655f6f70657261746f72a40000007304000000000206017264000000630000000000000000000000000200000043000000731a00000074006a0174026a0383006b02731674046401830182016400530029024e7a174f6e6c79206f70657261746f722063616e2063616c6c212905723700000072380000007228000000723d000000723b000000722b000000722b000000722b000000722c0000007262000000aa00000073020000000001726200000029127239000000da0448617368722a000000da085661726961626c657228000000723e000000da0473656564da03737472da03696e74722d000000da085f5f6578706f72747245000000da046c6973747252000000725f000000726300000072640000007262000000722b000000722b000000722b000000722c000000da083c6d6f64756c653e01000000731e00000008010e010c01080310190601102c0601101e060112310601120506011005