BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Ghostnet
  • /
  • KT1Foeg...pssP
operations (70)Storage Code Interact Tokens Fork Statistics Details
Latest
​x
472
 
1
parameter (or
2
            (pair %addEvent
3
              (pair (pair (nat %bettorsCount) (string %eventId))
4
                    (pair (timestamp %eventStartTime) (mutez %fixedBetAmount)))
5
              (pair (pair (bool %resolved) (string %result))
6
                    (pair (string %teamA) (pair (string %teamB) (mutez %totalBetAmount)))))
7
            (or (pair %placeBet (string %bet) (string %eventId))
8
                (pair %resolveBet (string %eventId)
9
                                  (pair (string %losingTeam) (string %winningTeam)))));
10
storage (pair (address %admin)
11
              (pair (map %bets (pair (string %eventId) (address %user)) string)
12
                    (big_map %events string
13
                                     (pair
14
                                       (pair
15
                                         (pair (nat %bettorsCount)
16
                                               (timestamp %eventStartTime))
17
                                         (pair (mutez %fixedBetAmount) (bool %resolved)))
18
                                       (pair (pair (string %result) (string %teamA))
19
                                             (pair (string %teamB)
20
                                                   (mutez %totalBetAmount)))))));
21
code { UNPAIR ;
22
       IF_LEFT
23
         { SWAP ;
24
           DUP ;
25
           DUG 2 ;
26
           CAR ;
27
           SENDER ;
28
           COMPARE ;
29
           EQ ;
30
           IF
31
             {}
32
             { PUSH string "WrongCondition: sp.sender == self.data.admin" ; FAILWITH } ;
33
           PUSH bool False ;
34
           DUP 3 ;
35
           GET 4 ;
36
           DUP 3 ;
37
           CAR ;
38
           CAR ;
39
           CDR ;
40
           MEM ;
41
           COMPARE ;
42
           EQ ;
43
           IF {} { PUSH string "Event with the same ID already exists" ; FAILWITH } ;
44
           DUP ;
45
           CAR ;
46
           GET 3 ;
47
           NOW ;
48
           SWAP ;
49
           COMPARE ;
50
           GE ;
51
           IF {} { PUSH string "Invalid event start time" ; FAILWITH } ;
52
           SWAP ;
53
           DUP ;
54
           GET 4 ;
55
           DIG 2 ;
56
           DUP ;
57
           GET 8 ;
58
           SWAP ;
59
           DUP ;
60
           DUG 4 ;
61
           GET 7 ;
62
           PAIR ;
63
           DIG 3 ;
64
           DUP ;
65
           GET 5 ;
66
           SWAP ;
67
           DUP ;
68
           DUG 5 ;
69
           GET 3 ;
70
           CDR ;
71
           PAIR ;
72
           PAIR ;
73
           DIG 3 ;
74
           DUP ;
75
           GET 3 ;
76
           CAR ;
77
           SWAP ;
78
           DUP ;
79
           DUG 5 ;
80
           CAR ;
81
           GET 4 ;
82
           PAIR ;
83
           DIG 4 ;
84
           DUP ;
85
           CAR ;
86
           GET 3 ;
87
           SWAP ;
88
           DUP ;
89
           DUG 6 ;
90
           CAR ;
91
           CAR ;
92
           CAR ;
93
           PAIR ;
94
           PAIR ;
95
           PAIR ;
96
           SOME ;
97
           DIG 3 ;
98
           CAR ;
99
           CAR ;
100
           CDR ;
101
           UPDATE ;
102
           UPDATE 4 ;
103
           NIL operation }
104
         { IF_LEFT
105
             { SWAP ;
106
               DUP ;
107
               DUG 2 ;
108
               CAR ;
109
               SENDER ;
110
               COMPARE ;
111
               NEQ ;
112
               IF {} { PUSH string "Admin cannot bet" ; FAILWITH } ;
113
               SWAP ;
114
               DUP ;
115
               DUG 2 ;
116
               GET 4 ;
117
               SWAP ;
118
               DUP ;
119
               DUG 2 ;
120
               CDR ;
121
               MEM ;
122
               IF {} { PUSH string "Invalid event ID" ; FAILWITH } ;
123
               NOW ;
124
               DUP 3 ;
125
               GET 4 ;
126
               DUP 3 ;
127
               CDR ;
128
               GET ;
129
               IF_NONE { PUSH int 47 ; FAILWITH } {} ;
130
               CAR ;
131
               CAR ;
132
               CDR ;
133
               COMPARE ;
134
               GE ;
135
               IF
136
                 {}
137
                 { PUSH string "Cannot bet after the event has started" ; FAILWITH } ;
138
               SWAP ;
139
               DUP ;
140
               DUG 2 ;
141
               GET 4 ;
142
               SWAP ;
143
               DUP ;
144
               DUG 2 ;
145
               CDR ;
146
               GET ;
147
               IF_NONE { PUSH int 48 ; FAILWITH } {} ;
148
               CAR ;
149
               GET 3 ;
150
               AMOUNT ;
151
               COMPARE ;
152
               GE ;
153
               IF {} { PUSH string "Invalid Amount" ; FAILWITH } ;
154
               PUSH bool False ;
155
               DUP 3 ;
156
               GET 3 ;
157
               SENDER ;
158
               DUP 4 ;
159
               CDR ;
160
               PAIR ;
161
               MEM ;
162
               COMPARE ;
163
               EQ ;
164
               IF {} { PUSH string "Already Betted" ; FAILWITH } ;
165
               DUP ;
166
               CAR ;
167
               DUP 3 ;
168
               GET 4 ;
169
               DUP 3 ;
170
               CDR ;
171
               GET ;
172
               IF_NONE { PUSH int 51 ; FAILWITH } {} ;
173
               GET 3 ;
174
               CDR ;
175
               COMPARE ;
176
               NEQ ;
177
               IF
178
                 { DUP ;
179
                   CAR ;
180
                   DUP 3 ;
181
                   GET 4 ;
182
                   DUP 3 ;
183
                   CDR ;
184
                   GET ;
185
                   IF_NONE { PUSH int 51 ; FAILWITH } {} ;
186
                   GET 5 ;
187
                   COMPARE ;
188
                   NEQ }
189
                 { PUSH bool False } ;
190
               IF { PUSH string "Invalid Bet" ; FAILWITH } {} ;
191
               SWAP ;
192
               DUP ;
193
               DUG 2 ;
194
               DUP ;
195
               GET 4 ;
196
               DUP ;
197
               DUP 4 ;
198
               CDR ;
199
               DUP ;
200
               DUG 2 ;
201
               GET ;
202
               IF_NONE { PUSH int 55 ; FAILWITH } {} ;
203
               DUP ;
204
               GET 6 ;
205
               DIG 6 ;
206
               GET 4 ;
207
               DUP 7 ;
208
               CDR ;
209
               GET ;
210
               IF_NONE { PUSH int 55 ; FAILWITH } {} ;
211
               CAR ;
212
               GET 3 ;
213
               ADD ;
214
               UPDATE 6 ;
215
               SOME ;
216
               SWAP ;
217
               UPDATE ;
218
               UPDATE 4 ;
219
               DUP ;
220
               GET 4 ;
221
               DUP ;
222
               DUP 4 ;
223
               CDR ;
224
               DUP ;
225
               DUG 2 ;
226
               GET ;
227
               IF_NONE { PUSH int 56 ; FAILWITH } {} ;
228
               UNPAIR ;
229
               UNPAIR ;
230
               UNPAIR ;
231
               PUSH nat 1 ;
232
               ADD ;
233
               PAIR ;
234
               PAIR ;
235
               PAIR ;
236
               SOME ;
237
               SWAP ;
238
               UPDATE ;
239
               UPDATE 4 ;
240
               DUP ;
241
               GET 3 ;
242
               DUP 3 ;
243
               CAR ;
244
               SOME ;
245
               SENDER ;
246
               DUP 5 ;
247
               CDR ;
248
               PAIR ;
249
               UPDATE ;
250
               UPDATE 3 ;
251
               SWAP ;
252
               PUSH mutez 0 ;
253
               DUP 3 ;
254
               GET 4 ;
255
               DUP 3 ;
256
               CDR ;
257
               GET ;
258
               IF_NONE { PUSH int 59 ; FAILWITH } {} ;
259
               CAR ;
260
               GET 3 ;
261
               AMOUNT ;
262
               SUB_MUTEZ ;
263
               IF_NONE { PUSH int 59 ; FAILWITH } {} ;
264
               COMPARE ;
265
               GT ;
266
               IF
267
                 { NIL operation ;
268
                   SENDER ;
269
                   CONTRACT unit ;
270
                   IF_NONE { PUSH int 61 ; FAILWITH } {} ;
271
                   DUP 4 ;
272
                   GET 4 ;
273
                   DIG 3 ;
274
                   CDR ;
275
                   GET ;
276
                   IF_NONE { PUSH int 59 ; FAILWITH } {} ;
277
                   CAR ;
278
                   GET 3 ;
279
                   AMOUNT ;
280
                   SUB_MUTEZ ;
281
                   IF_NONE { PUSH int 59 ; FAILWITH } {} ;
282
                   UNIT ;
283
                   TRANSFER_TOKENS ;
284
                   CONS }
285
                 { DROP ; NIL operation } }
286
             { SWAP ;
287
               DUP ;
288
               DUG 2 ;
289
               CAR ;
290
               SENDER ;
291
               COMPARE ;
292
               EQ ;
293
               IF
294
                 {}
295
                 { PUSH string "WrongCondition: sp.sender == self.data.admin" ; FAILWITH } ;
296
               SWAP ;
297
               DUP ;
298
               DUG 2 ;
299
               GET 4 ;
300
               SWAP ;
301
               DUP ;
302
               DUG 2 ;
303
               CAR ;
304
               MEM ;
305
               IF {} { PUSH string "Invalid event ID" ; FAILWITH } ;
306
               SWAP ;
307
               DUP ;
308
               GET 4 ;
309
               DUP ;
310
               DUP 4 ;
311
               CAR ;
312
               DUP ;
313
               DUG 2 ;
314
               GET ;
315
               IF_NONE { PUSH int 70 ; FAILWITH } {} ;
316
               UNPAIR ;
317
               SWAP ;
318
               UNPAIR ;
319
               CDR ;
320
               PUSH string "Won" ;
321
               PUSH string " " ;
322
               DUP 9 ;
323
               GET 4 ;
324
               CONCAT ;
325
               CONCAT ;
326
               PAIR ;
327
               PAIR ;
328
               SWAP ;
329
               PAIR ;
330
               SOME ;
331
               SWAP ;
332
               UPDATE ;
333
               UPDATE 4 ;
334
               SWAP ;
335
               NIL address ;
336
               NIL address ;
337
               PUSH nat 0 ;
338
               DUP 5 ;
339
               GET 3 ;
340
               ITER { DUP 5 ;
341
                      CAR ;
342
                      SWAP ;
343
                      DUP ;
344
                      DUG 2 ;
345
                      CAR ;
346
                      CAR ;
347
                      COMPARE ;
348
                      EQ ;
349
                      IF
350
                        { DUP 5 ;
351
                          GET 4 ;
352
                          SWAP ;
353
                          DUP ;
354
                          DUG 2 ;
355
                          CDR ;
356
                          COMPARE ;
357
                          EQ ;
358
                          IF
359
                            { DIG 3 ; SWAP ; CAR ; CDR ; CONS ; DUG 2 }
360
                            { DIG 2 ; SWAP ; CAR ; CDR ; CONS ; SWAP } }
361
                        { DROP } } ;
362
               PUSH nat 0 ;
363
               DUP 4 ;
364
               SIZE ;
365
               COMPARE ;
366
               GT ;
367
               IF
368
                 { NIL operation ;
369
                   DUP 4 ;
370
                   ITER { CONTRACT unit ;
371
                          IF_NONE { PUSH int 95 ; FAILWITH } {} ;
372
                          DUP 7 ;
373
                          GET 4 ;
374
                          DUP 7 ;
375
                          CAR ;
376
                          GET ;
377
                          IF_NONE { PUSH int 72 ; FAILWITH } {} ;
378
                          CAR ;
379
                          GET 3 ;
380
                          PUSH mutez 1 ;
381
                          DUP 7 ;
382
                          SIZE ;
383
                          PUSH mutez 1 ;
384
                          DUP 11 ;
385
                          GET 4 ;
386
                          DUP 11 ;
387
                          CAR ;
388
                          GET ;
389
                          IF_NONE { PUSH int 72 ; FAILWITH } {} ;
390
                          CAR ;
391
                          GET 3 ;
392
                          EDIV ;
393
                          IF_NONE { UNIT ; FAILWITH } {} ;
394
                          CAR ;
395
                          DUP 9 ;
396
                          SIZE ;
397
                          DUP 12 ;
398
                          GET 4 ;
399
                          DUP 12 ;
400
                          CAR ;
401
                          GET ;
402
                          IF_NONE { PUSH int 71 ; FAILWITH } {} ;
403
                          CAR ;
404
                          CAR ;
405
                          CAR ;
406
                          SUB ;
407
                          ISNAT ;
408
                          IF_NONE { PUSH int 86 ; FAILWITH } {} ;
409
                          MUL ;
410
                          EDIV ;
411
                          IF_NONE { PUSH int 89 ; FAILWITH } { CAR } ;
412
                          MUL ;
413
                          ADD ;
414
                          UNIT ;
415
                          TRANSFER_TOKENS ;
416
                          CONS } ;
417
                   SWAP ;
418
                   DROP ;
419
                   SWAP ;
420
                   DROP ;
421
                   SWAP ;
422
                   DROP }
423
                 { NIL operation ;
424
                   DUP 3 ;
425
                   ITER { CONTRACT unit ;
426
                          IF_NONE { PUSH int 98 ; FAILWITH } {} ;
427
                          DUP 7 ;
428
                          GET 4 ;
429
                          DUP 7 ;
430
                          CAR ;
431
                          GET ;
432
                          IF_NONE { PUSH int 72 ; FAILWITH } {} ;
433
                          CAR ;
434
                          GET 3 ;
435
                          UNIT ;
436
                          TRANSFER_TOKENS ;
437
                          CONS } ;
438
                   SWAP ;
439
                   DROP ;
440
                   SWAP ;
441
                   DROP ;
442
                   SWAP ;
443
                   DROP } ;
444
               DIG 2 ;
445
               DUP ;
446
               GET 4 ;
447
               DUP ;
448
               DIG 4 ;
449
               CAR ;
450
               DUP ;
451
               DUG 2 ;
452
               GET ;
453
               IF_NONE { PUSH int 100 ; FAILWITH } {} ;
454
               UNPAIR ;
455
               UNPAIR ;
456
               SWAP ;
457
               CAR ;
458
               PUSH bool True ;
459
               SWAP ;
460
               PAIR ;
461
               SWAP ;
462
               PAIR ;
463
               PAIR ;
464
               SOME ;
465
               SWAP ;
466
               UPDATE ;
467
               UPDATE 4 ;
468
               SWAP } } ;
469
       NIL operation ;
470
       SWAP ;
471
       ITER { CONS } ;
472
       PAIR }