Contract con_myluckynumber_v4
Creator | 88e98907fcdf041ecb850fdb35749f626ba4d0978b808d1ec1d79c8d2f776618 |
Creation Hash | 83c3b45bf709c35f2f68cf6a506260fe2aa67b252daf1173b1432805d5463d92 |
Created On | 1047 days ago - 6/12/2021, 6:39:26 PM UTC+0 |
Contract Code
1
import currency
2
import con_gold_contract
3
import con_doug_lst001
4
5
game = Hash(default_value=0)
6
operator = Variable()
7
8
random.seed()
9
10
@construct
11
def seed(vk: str, jackpot:int):
12
operator.set(vk)
13
game['jackpot'] = jackpot
14
game['cost'] = 70
15
game['cost_2'] = 100
16
game['cost_3'] = 50
17
game['cost_4'] = 120
18
game['cost_game1_gold'] = 30000
19
game['cost_game1_gold_m'] = 150
20
game['cost_game1_douglas'] = 600
21
game['cost_game1_douglas_m'] = 7
22
game['m_1'] = 7
23
game['m_2'] = 5
24
game['m_3'] = 2
25
game['m_4'] = 25
26
game['m_5'] = 500
27
game['m_6'] = 7
28
game['m_7'] = 25
29
game['range1'] = 1
30
game['range2'] = 2
31
game['range3'] = 9
32
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]
33
game['treasure_multiplier'] = [2,2,2,2,2,3,3,3,4,4,5]
34
game['treasure_gold_multiplier'] = [2,2,2,2,2,2,2,2,3,3,3,3,3,4,4,5]
35
game['treasure_douglas_multiplier'] = [2,2,2,2,2,2,2,2,3,3,3,3,3,4,4,5]
36
37
@export
38
def lucky_number(my_number: int):
39
caller = ctx.caller
40
amount = 0
41
assert currency.balance_of(caller
42
) >= game['cost'], 'Not enough Balance to play!'
43
44
currency.transfer_from(game['cost'], operator.get(), caller)
45
46
game_number = random.randint(1, 100)
47
mystery_number = random.randint(1, 100)
48
second_chance = random.randint(1, 100)
49
50
game_multiplier = 0
51
52
if my_number == game_number:
53
if second_chance < 51:
54
game_number = random.randint(1, 100)
55
56
if abs(my_number-game_number) == game['range1']:
57
amount = game['cost'] * game['m_1']
58
game_multiplier = game['m_1']
59
currency.transfer_from(amount, caller, operator.get())
60
game[caller, 'last_lucky_number'] = my_number
61
62
if abs(my_number-game_number) == game['range2']:
63
amount = game['cost'] * game['m_2']
64
game_multiplier = game['m_2']
65
currency.transfer_from(amount, caller, operator.get())
66
game[caller, 'last_lucky_number'] = my_number
67
68
if abs(my_number-game_number) > game['range2'] and abs(my_number-game_number) < game['range3']:
69
amount = game['cost'] * game['m_3']
70
game_multiplier = game['m_3']
71
currency.transfer_from(amount, caller, operator.get())
72
game[caller, 'last_lucky_number'] = my_number
73
74
if my_number == game_number:
75
amount = game['cost'] * game['m_4']
76
game_multiplier = game['m_4']
77
currency.transfer_from(amount, caller, operator.get())
78
game[caller, 'last_lucky_number'] = my_number
79
80
if mystery_number == game_number:
81
if my_number == game_number:
82
amount = game['jackpot'] - amount
83
game_multiplier = game['m_5']
84
currency.transfer_from(amount, caller, operator.get())
85
86
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)}
87
88
@export
89
def treasure_hunt(box: list):
90
caller = ctx.caller
91
amount = 0
92
93
assert len(box) <= 80, 'Bad game selection!'
94
assert box.count(1) == 5, 'To may selection!'
95
96
assert currency.balance_of(caller
97
) >= game['cost_4'], 'Not enough Balance to play!'
98
99
currency.transfer_from(game['cost_4'], operator.get(), caller)
100
101
games_number = game['trasure_box']
102
multiplier = game['treasure_multiplier']
103
multiplier_position = random.randint(0, 79)
104
counter = 0
105
counter_prize = 0
106
107
random.shuffle(games_number)
108
random.shuffle(multiplier)
109
game_multiplier = random.choice(multiplier)
110
111
for x in box:
112
if counter < 80:
113
if x == 1 and counter_prize < 5:
114
amount = amount + games_number[counter]
115
counter_prize += 1
116
117
if multiplier_position == counter and x == 1 and counter_prize < 5:
118
amount = amount + (games_number[counter] * (game_multiplier - 1))
119
120
counter +=1
121
122
currency.transfer_from(amount, caller, operator.get())
123
124
return {'bet': game['cost_4'], 'win': amount, 'box': box, 'game': games_number, 'multiplier_position': multiplier_position, 'multiplier': game_multiplier}
125
126
@export
127
def treasure_hunt_douglas(box: list):
128
caller = ctx.caller
129
amount = 0
130
131
assert len(box) <= 80, 'Bad game selection!'
132
assert box.count(1) == 5, 'To may selection!'
133
134
con_doug_lst001.transfer_from(game['cost_game1_douglas'], operator.get(), caller)
135
136
games_number = game['trasure_box']
137
multiplier = game['treasure_douglas_multiplier']
138
multiplier_position = random.randint(0, 79)
139
counter = 0
140
counter_prize = 0
141
142
random.shuffle(games_number)
143
random.shuffle(multiplier)
144
game_multiplier = random.choice(multiplier)
145
146
for x in box:
147
if counter < 80:
148
if x == 1 and counter_prize < 5:
149
amount = amount + (games_number[counter] * game['cost_game1_douglas_m'])
150
counter_prize += 1
151
152
if multiplier_position == counter and x == 1 and counter_prize < 5:
153
amount = amount + ((games_number[counter] * game['cost_game1_douglas_m']) * (game_multiplier - 1))
154
155
counter +=1
156
157
con_doug_lst001.transfer_from(amount, caller, operator.get())
158
159
return {'bet': game['cost_game1_douglas'], 'gold': game['cost_game1_douglas_m'], 'win': amount, 'box': box, 'game': games_number, 'multiplier_position': multiplier_position, 'multiplier': game_multiplier}
160
161
162
163
@export
164
def treasure_hunt_gold(box: list):
165
caller = ctx.caller
166
amount = 0
167
168
assert len(box) <= 80, 'Bad game selection!'
169
assert box.count(1) == 5, 'To may selection!'
170
171
con_gold_contract.transfer_from(game['cost_game1_gold'], operator.get(), caller)
172
173
games_number = game['trasure_box']
174
multiplier = game['treasure_gold_multiplier']
175
multiplier_position = random.randint(0, 79)
176
counter = 0
177
counter_prize = 0
178
179
random.shuffle(games_number)
180
random.shuffle(multiplier)
181
game_multiplier = random.choice(multiplier)
182
183
for x in box:
184
if counter < 80:
185
if x == 1 and counter_prize < 5:
186
amount = amount + (games_number[counter] * game['cost_game1_gold_m'])
187
counter_prize += 1
188
189
if multiplier_position == counter and x == 1 and counter_prize < 5:
190
amount = amount + ((games_number[counter] * game['cost_game1_gold_m']) * (game_multiplier - 1))
191
192
counter +=1
193
194
con_gold_contract.transfer_from(amount, caller, operator.get())
195
196
return {'bet': game['cost_game1_gold'], 'gold': game['cost_game1_gold_m'], 'win': amount, 'box': box, 'game': games_number, 'multiplier_position': multiplier_position, 'multiplier': game_multiplier}
197
198
199
@export
200
def best_card(option: int, bets: list):
201
caller = ctx.caller
202
amount = 0
203
game_multiplier = 0
204
205
assert bets[0] == 1, 'No bet!'
206
207
if bets[1] == 0:
208
assert currency.balance_of(caller
209
) >= game['cost_2'], 'Not enough Balance to play!'
210
currency.transfer_from(game['cost_2'], operator.get(), caller)
211
212
if bets[1] == 1:
213
assert currency.balance_of(caller
214
) >= game['cost_2'] + game['cost_3'], 'Not enough Balance to play!'
215
currency.transfer_from(game['cost_2'] + game['cost_3'], operator.get(), caller)
216
217
deck = [2,3,4,5,6,7,8,9,10,11,12,13,14]
218
card = [1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4]
219
220
random.choice(deck)
221
random.choice(card)
222
223
player = [random.choice(deck),random.choice(card)]
224
dealer = [random.choice(deck),random.choice(card)]
225
226
if option == 1:
227
if player[0] > dealer[0]:
228
amount = game['cost_2'] * 2
229
game_multiplier = 2
230
currency.transfer_from(amount, caller, operator.get())
231
232
if option == 2:
233
if player[0] < dealer[0]:
234
amount = game['cost_2'] * 2
235
game_multiplier = 2
236
currency.transfer_from(amount, caller, operator.get())
237
238
if player[0] == dealer[0]:
239
amount = game['cost_2'] * 1
240
game_multiplier = 1
241
currency.transfer_from(amount, caller, operator.get())
242
243
if bets[1] == 1:
244
if player[0] == dealer[0]:
245
amount = (game['cost_3'] * game['m_6']) + game['cost_2']
246
game_multiplier = game['m_6']
247
currency.transfer_from(amount, caller, operator.get())
248
249
if bets[1] == 1:
250
if player[0] == dealer[0]:
251
if player[1] == dealer[1]:
252
amount = (game['cost_3'] * game['m_7']) + game['cost_2']
253
game_multiplier = game['m_7']
254
currency.transfer_from(amount, caller, operator.get())
255
256
return {'option': option, 'player': player, 'dealer': dealer, 'win': amount, 'bets': bets, 'multiplier': game_multiplier}
257
258
259
@export
260
def set_values(field: str, value: int):
261
assert_owner()
262
game[field] = value
263
264
@export
265
def change_operator(vk: str):
266
assert_owner()
267
operator.set(vk)
268
269
def assert_owner():
270
assert ctx.caller == operator.get(), 'Only operator can call!'
271
272
273
274
275
Byte Code
e3000000000000000000000000050000004000000073f4000000640064016c005a00640064016c015a01640064016c025a02650364006402640364048d035a0465056402640564068d025a0665076a08830001006509650a64079c026408640984045a0b650c64028301650a640a9c01640b640c840483015a0d650c64028301650e640d9c01640e640f840483015a0f650c64028301650e640d9c0164106411840483015a10650c64028301650e640d9c0164126413840483015a11650c64028301650a650e64149c0264156416840483015a12650c640283016509650a64179c0264186419840483015a13650c640283016509641a9c01641b641c840483015a14641d641e84005a1564015300291fe9000000004eda14636f6e5f6d796c75636b796e756d6265725f7634da0467616d652903da0d64656661756c745f76616c7565da08636f6e7472616374da046e616d65da086f70657261746f722902720500000072060000002902da02766bda076a61636b706f7463020000000000000002000000500000004300000073bc01000074006a017c00830101007c01740264013c006402740264033c006404740264053c006406740264073c006408740264093c00640a7402640b3c00640c7402640d3c00640e7402640f3c006410740264113c006410740264123c006413740264143c006415740264163c006417740264183c0064197402641a3c0064107402641b3c0064177402641c3c00641d7402641e3c0064157402641f3c006420740264213c00641d641d641d641d641d641d641d641d641d641d641d641d641d641d641d641d641d641d641d641d641d641d641d641d641d641d641d641d641d641d641d641d641d641d64136413641364136413641364136413641364136413641364136413641364136413641364136413641364136413641364136422642264226422642264226422642264226422642364236423642364066406640664046404642464196750740264253c0064156415641564156415642664266426642764276413670b740264283c0064156415641564156415641564156415642664266426642664266427642764136710740264293c00641564156415641564156415641564156426642664266426642664276427641367107402642a3c0064005300292b4e7209000000e946000000da04636f7374e964000000da06636f73745f32e932000000da06636f73745f33e978000000da06636f73745f346930750000da0f636f73745f67616d65315f676f6c64e996000000da11636f73745f67616d65315f676f6c645f6d6958020000da12636f73745f67616d65315f646f75676c6173e907000000da14636f73745f67616d65315f646f75676c61735f6dda036d5f31e905000000da036d5f32e902000000da036d5f33e919000000da036d5f3469f4010000da036d5f35da036d5f36da036d5f37e901000000da0672616e676531da0672616e676532e909000000da0672616e676533e90a000000e91e000000e9c8000000da0b747261737572655f626f78e903000000e904000000da1374726561737572655f6d756c7469706c696572da1874726561737572655f676f6c645f6d756c7469706c696572da1b74726561737572655f646f75676c61735f6d756c7469706c6965722903da0a5f5f6f70657261746f72da03736574da065f5f67616d65290272080000007209000000a9007233000000da00da045f5f5f5f09000000733c00000000010a01080108010801080108010801080108010801080108010801080108010801080108010801080120012e012c0120010e011e0116011201140172350000002901da096d795f6e756d626572630100000000000000070000000900000043000000731002000074006a017d0164017d0274026a037c0183017404640219006b057324740564038301820174026a0674046402190074076a0883007c018303010074096a0a6404640583027d0374096a0a6404640583027d0474096a0a6404640583027d0564017d067c007c036b02727e7c0564066b00727e74096a0a6404640583027d03740b7c007c03180083017404640719006b0272c874046402190074046408190014007d027404640819007d0674026a067c027c0174076a088300830301007c0074047c01640966023c00740b7c007c03180083017404640a19006b02900172147404640219007404640b190014007d027404640b19007d0674026a067c027c0174076a088300830301007c0074047c01640966023c00740b7c007c03180083017404640a19006b0490017276740b7c007c03180083017404640c19006b00900172767404640219007404640d190014007d027404640d19007d0674026a067c027c0174076a088300830301007c0074047c01640966023c007c007c036b02900172b67404640219007404640e190014007d027404640e19007d0674026a067c027c0174076a088300830301007c0074047c01640966023c007c047c036b02900172f07c007c036b02900172f07404640f19007c0218007d027404641019007d0674026a067c027c0174076a088300830301007404640219007c027c007c037c067c04740b7c007c031800830164119c07530029124e7201000000720b0000007a1b4e6f7420656e6f7567682042616c616e636520746f20706c6179217222000000720c000000e93300000072230000007218000000da116c6173745f6c75636b795f6e756d6265727224000000721a0000007226000000721c000000721e0000007209000000721f0000002907da03626574da0377696e7236000000da0b67616d655f6e756d626572da0a6d756c7469706c696572da076d797374657279da0464696666290cda03637478da0663616c6c6572da0863757272656e6379da0a62616c616e63655f6f667232000000da0e417373657274696f6e4572726f72da0d7472616e736665725f66726f6d7230000000da03676574da0672616e646f6dda0772616e64696e74da03616273290772360000007240000000da06616d6f756e74723b000000da0e6d7973746572795f6e756d626572da0d7365636f6e645f6368616e6365da0f67616d655f6d756c7469706c696572723300000072330000007234000000da0c6c75636b795f6e756d6265722a00000073520000000002060104011401060116010c010c010c010401080108010c0114011001080112010c0116011001080112010c011a0112011001080112010c010a011001080112010c010a010a010c01080112010a010401724d0000002901da03626f786301000000000000000a0000000700000043000000733e01000074006a017d0164017d0274027c00830164026b01731e74036403830182017c006a046404830164056b027334740364068301820174056a067c0183017407640719006b05734e740364088301820174056a0874076407190074096a0a83007c01830301007407640919007d037407640a19007d04740b6a0c6401640b83027d0564017d0664017d07740b6a0d7c0383010100740b6a0d7c0483010100740b6a0e7c0483017d08786e7c0044005d667d097c0664026b0072ac7c0964046b0272dc7c0764056b0072dc7c027c037c06190017007d027c07640437007d077c057c066b026ff27c0964046b026ff27c0764056b009001720a7c027c037c0619007c0864041800140017007d027c06640437007d0671ac570074056a087c027c0174096a0a8300830301007407640719007c027c007c037c057c08640c9c065300290d4e7201000000e9500000007a134261642067616d652073656c656374696f6e21722200000072190000007a11546f206d61792073656c656374696f6e2172110000007a1b4e6f7420656e6f7567682042616c616e636520746f20706c617921722a000000722d000000e94f00000029067239000000723a000000724e0000007203000000da136d756c7469706c6965725f706f736974696f6e723c000000290f723f0000007240000000da036c656e7243000000da05636f756e7472410000007242000000723200000072440000007230000000724500000072460000007247000000da0773687566666c65da0663686f696365290a724e00000072400000007249000000da0c67616d65735f6e756d626572723c0000007251000000da07636f756e746572da0d636f756e7465725f7072697a65724c000000da0178723300000072330000007234000000da0d74726561737572655f68756e7457000000733600000000020601040114011601140106011601080108010c01040104010a010a010a010a01080110010c0108011a0114010c0112010a010401725a0000006301000000000000000a0000000800000043000000733a01000074006a017d0164017d0274027c00830164026b01731e74036403830182017c006a046404830164056b027334740364068301820174056a0674076407190074086a0983007c01830301007407640819007d037407640919007d04740a6a0b6401640a83027d0564017d0664017d07740a6a0c7c0383010100740a6a0c7c0483010100740a6a0d7c0483017d08787e7c0044005d767d097c0664026b0072927c0964046b0272ca7c0764056b0072ca7c027c037c0619007407640b1900140017007d027c07640437007d077c057c066b026fe07c0964046b026fe07c0764056b00900172007c027c037c0619007407640b190014007c0864041800140017007d027c06640437007d067192570074056a067c027c0174086a098300830301007407640719007407640b19007c027c007c037c057c08640c9c075300290d4e7201000000724f0000007a134261642067616d652073656c656374696f6e21722200000072190000007a11546f206d61792073656c656374696f6e217215000000722a000000722f0000007250000000721700000029077239000000da04676f6c64723a000000724e00000072030000007251000000723c000000290e723f0000007240000000725200000072430000007253000000da0f636f6e5f646f75675f6c737430303172440000007232000000723000000072450000007246000000724700000072540000007255000000290a724e000000724000000072490000007256000000723c000000725100000072570000007258000000724c0000007259000000723300000072330000007234000000da1574726561737572655f68756e745f646f75676c617376000000733a0000000002060104011401160110010601080108010c01040104010a010a010a010a01080110010a010a0108011a0102011a010c011201080108010401725d0000006301000000000000000a0000000800000043000000733a01000074006a017d0164017d0274027c00830164026b01731e74036403830182017c006a046404830164056b027334740364068301820174056a0674076407190074086a0983007c01830301007407640819007d037407640919007d04740a6a0b6401640a83027d0564017d0664017d07740a6a0c7c0383010100740a6a0c7c0483010100740a6a0d7c0483017d08787e7c0044005d767d097c0664026b0072927c0964046b0272ca7c0764056b0072ca7c027c037c0619007407640b1900140017007d027c07640437007d077c057c066b026fe07c0964046b026fe07c0764056b00900172007c027c037c0619007407640b190014007c0864041800140017007d027c06640437007d067192570074056a067c027c0174086a098300830301007407640719007407640b19007c027c007c037c057c08640c9c075300290d4e7201000000724f0000007a134261642067616d652073656c656374696f6e21722200000072190000007a11546f206d61792073656c656374696f6e217212000000722a000000722e0000007250000000721400000029077239000000725b000000723a000000724e00000072030000007251000000723c000000290e723f0000007240000000725200000072430000007253000000da11636f6e5f676f6c645f636f6e747261637472440000007232000000723000000072450000007246000000724700000072540000007255000000290a724e000000724000000072490000007256000000723c000000725100000072570000007258000000724c0000007259000000723300000072330000007234000000da1274726561737572655f68756e745f676f6c6497000000733a0000000002060104011401160110010601080108010c01040104010a010a010a010a01080110010a010a0108011a0102011a010c011201080108010401725f0000002902da066f7074696f6eda046265747363020000000000000009000000100000004300000073a002000074006a017d0264017d0364017d047c016401190064026b02732274026403830182017c016402190064016b02725e74036a047c0283017405640419006b057348740264058301820174036a0674056404190074076a0883007c02830301007c016402190064026b0272aa74036a047c02830174056404190074056406190017006b05738c740264058301820174036a06740564041900740564061900170074076a0883007c0283030100640764086409640a640b640c640d640e640f6410641164126413670d7d05640264026402640264076407640764076408640864086408640964096409640967107d0674096a0a7c058301010074096a0a7c068301010074096a0a7c05830174096a0a7c06830167027d0774096a0a7c05830174096a0a7c06830167027d087c0064026b02900172667c07640119007c08640119006b0490017266740564041900640714007d0364077d0474036a067c037c0274076a088300830301007c0064076b02900172a47c07640119007c08640119006b00900172a4740564041900640714007d0364077d0474036a067c037c0274076a088300830301007c07640119007c08640119006b02900172d8740564041900640214007d0364027d0474036a067c037c0274076a088300830301007c016402190064026b029002722a7c07640119007c08640119006b029002722a740564061900740564141900140074056404190017007d037405641419007d0474036a067c037c0274076a088300830301007c016402190064026b029002728e7c07640119007c08640119006b029002728e7c07640219007c08640219006b029002728e740564061900740564151900140074056404190017007d037405641519007d0474036a067c037c0274076a088300830301007c007c077c087c037c017c0464169c06530029174e720100000072220000007a074e6f2062657421720d0000007a1b4e6f7420656e6f7567682042616c616e636520746f20706c617921720f000000721b000000722b000000722c0000007219000000e9060000007216000000e90800000072250000007227000000e90b000000e90c000000e90d000000e90e0000007220000000722100000029067260000000da06706c61796572da066465616c6572723a0000007261000000723c000000290b723f000000724000000072430000007241000000724200000072320000007244000000723000000072450000007246000000725500000029097260000000726100000072400000007249000000724c000000da046465636bda046361726472680000007269000000723300000072330000007234000000da09626573745f63617264b8000000735c000000000206010401040114010c011401060116010c011001120112010c011e0124010a010a01140114010a0112010c01040112010a0112010c010401120112010c01040112010e0112011801080112010e01120112011801080112010601726c0000002902da056669656c64da0576616c756563020000000000000002000000030000004300000073120000007400830001007c0174017c003c006400530029014e2902da0e5f5f6173736572745f6f776e657272320000002902726d000000726e000000723300000072330000007234000000da0a7365745f76616c756573ea000000730400000000020601727000000029017208000000630100000000000000010000000200000043000000731400000074008300010074016a027c00830101006400530029014e2903726f0000007230000000723100000029017208000000723300000072330000007234000000da0f6368616e67655f6f70657261746f72f00000007304000000000206017271000000630000000000000000000000000200000043000000731a00000074006a0174026a0383006b02731674046401830182016400530029024e7a174f6e6c79206f70657261746f722063616e2063616c6c212905723f00000072400000007230000000724500000072430000007233000000723300000072330000007234000000726f000000f600000073020000000001726f00000029167241000000725e000000725c000000da04486173687232000000da085661726961626c6572300000007246000000da0473656564da03737472da03696e747235000000da085f5f6578706f7274724d000000da046c697374725a000000725d000000725f000000726c00000072700000007271000000726f0000007233000000723300000072330000007234000000da083c6d6f64756c653e01000000732a0000000801080108010e010c01080310210601102c0601101e0601102006011020060112310601120506011005