x
472
parameter (or (pair %addEvent (pair (pair (nat %bettorsCount) (string %eventId)) (pair (timestamp %eventStartTime) (mutez %fixedBetAmount))) (pair (pair (bool %resolved) (string %result)) (pair (string %teamA) (pair (string %teamB) (mutez %totalBetAmount))))) (or (pair %placeBet (string %bet) (string %eventId)) (pair %resolveBet (string %eventId) (pair (string %losingTeam) (string %winningTeam)))));storage (pair (address %admin) (pair (map %bets (pair (string %eventId) (address %user)) string) (big_map %events string (pair (pair (pair (nat %bettorsCount) (timestamp %eventStartTime)) (pair (mutez %fixedBetAmount) (bool %resolved))) (pair (pair (string %result) (string %teamA)) (pair (string %teamB) (mutez %totalBetAmount)))))));code { UNPAIR ; IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "WrongCondition: sp.sender == self.data.admin" ; FAILWITH } ; PUSH bool False ; DUP 3 ; GET 4 ; DUP 3 ; CAR ; CAR ; CDR ; MEM ; COMPARE ; EQ ; IF {} { PUSH string "Event with the same ID already exists" ; FAILWITH } ; DUP ; CAR ; GET 3 ; NOW ; SWAP ; COMPARE ; GE ; IF {} { PUSH string "Invalid event start time" ; FAILWITH } ; SWAP ; DUP ; GET 4 ; DIG 2 ; DUP ; GET 8 ; SWAP ; DUP ; DUG 4 ; GET 7 ; PAIR ; DIG 3 ; DUP ; GET 5 ; SWAP ; DUP ; DUG 5 ; GET 3 ; CDR ; PAIR ; PAIR ; DIG 3 ; DUP ; GET 3 ; CAR ; SWAP ; DUP ; DUG 5 ; CAR ; GET 4 ; PAIR ; DIG 4 ; DUP ; CAR ; GET 3 ; SWAP ; DUP ; DUG 6 ; CAR ; CAR ; CAR ; PAIR ; PAIR ; PAIR ; SOME ; DIG 3 ; CAR ; CAR ; CDR ; UPDATE ; UPDATE 4 ; NIL operation } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; SENDER ; COMPARE ; NEQ ; IF {} { PUSH string "Admin cannot bet" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 4 ; SWAP ; DUP ; DUG 2 ; CDR ; MEM ; IF {} { PUSH string "Invalid event ID" ; FAILWITH } ; NOW ; DUP 3 ; GET 4 ; DUP 3 ; CDR ; GET ; IF_NONE { PUSH int 47 ; FAILWITH } {} ; CAR ; CAR ; CDR ; COMPARE ; GE ; IF {} { PUSH string "Cannot bet after the event has started" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 4 ; SWAP ; DUP ; DUG 2 ; CDR ; GET ; IF_NONE { PUSH int 48 ; FAILWITH } {} ; CAR ; GET 3 ; AMOUNT ; COMPARE ; GE ; IF {} { PUSH string "Invalid Amount" ; FAILWITH } ; PUSH bool False ; DUP 3 ; GET 3 ; SENDER ; DUP 4 ; CDR ; PAIR ; MEM ; COMPARE ; EQ ; IF {} { PUSH string "Already Betted" ; FAILWITH } ; DUP ; CAR ; DUP 3 ; GET 4 ; DUP 3 ; CDR ; GET ; IF_NONE { PUSH int 51 ; FAILWITH } {} ; GET 3 ; CDR ; COMPARE ; NEQ ; IF { DUP ; CAR ; DUP 3 ; GET 4 ; DUP 3 ; CDR ; GET ; IF_NONE { PUSH int 51 ; FAILWITH } {} ; GET 5 ; COMPARE ; NEQ } { PUSH bool False } ; IF { PUSH string "Invalid Bet" ; FAILWITH } {} ; SWAP ; DUP ; DUG 2 ; DUP ; GET 4 ; DUP ; DUP 4 ; CDR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 55 ; FAILWITH } {} ; DUP ; GET 6 ; DIG 6 ; GET 4 ; DUP 7 ; CDR ; GET ; IF_NONE { PUSH int 55 ; FAILWITH } {} ; CAR ; GET 3 ; ADD ; UPDATE 6 ; SOME ; SWAP ; UPDATE ; UPDATE 4 ; DUP ; GET 4 ; DUP ; DUP 4 ; CDR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 56 ; FAILWITH } {} ; UNPAIR ; UNPAIR ; UNPAIR ; PUSH nat 1 ; ADD ; PAIR ; PAIR ; PAIR ; SOME ; SWAP ; UPDATE ; UPDATE 4 ; DUP ; GET 3 ; DUP 3 ; CAR ; SOME ; SENDER ; DUP 5 ; CDR ; PAIR ; UPDATE ; UPDATE 3 ; SWAP ; PUSH mutez 0 ; DUP 3 ; GET 4 ; DUP 3 ; CDR ; GET ; IF_NONE { PUSH int 59 ; FAILWITH } {} ; CAR ; GET 3 ; AMOUNT ; SUB_MUTEZ ; IF_NONE { PUSH int 59 ; FAILWITH } {} ; COMPARE ; GT ; IF { NIL operation ; SENDER ; CONTRACT unit ; IF_NONE { PUSH int 61 ; FAILWITH } {} ; DUP 4 ; GET 4 ; DIG 3 ; CDR ; GET ; IF_NONE { PUSH int 59 ; FAILWITH } {} ; CAR ; GET 3 ; AMOUNT ; SUB_MUTEZ ; IF_NONE { PUSH int 59 ; FAILWITH } {} ; UNIT ; TRANSFER_TOKENS ; CONS } { DROP ; NIL operation } } { SWAP ; DUP ; DUG 2 ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "WrongCondition: sp.sender == self.data.admin" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 4 ; SWAP ; DUP ; DUG 2 ; CAR ; MEM ; IF {} { PUSH string "Invalid event ID" ; FAILWITH } ; SWAP ; DUP ; GET 4 ; DUP ; DUP 4 ; CAR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 70 ; FAILWITH } {} ; UNPAIR ; SWAP ; UNPAIR ; CDR ; PUSH string "Won" ; PUSH string " " ; DUP 9 ; GET 4 ; CONCAT ; CONCAT ; PAIR ; PAIR ; SWAP ; PAIR ; SOME ; SWAP ; UPDATE ; UPDATE 4 ; SWAP ; NIL address ; NIL address ; PUSH nat 0 ; DUP 5 ; GET 3 ; ITER { DUP 5 ; CAR ; SWAP ; DUP ; DUG 2 ; CAR ; CAR ; COMPARE ; EQ ; IF { DUP 5 ; GET 4 ; SWAP ; DUP ; DUG 2 ; CDR ; COMPARE ; EQ ; IF { DIG 3 ; SWAP ; CAR ; CDR ; CONS ; DUG 2 } { DIG 2 ; SWAP ; CAR ; CDR ; CONS ; SWAP } } { DROP } } ; PUSH nat 0 ; DUP 4 ; SIZE ; COMPARE ; GT ; IF { NIL operation ; DUP 4 ; ITER { CONTRACT unit ; IF_NONE { PUSH int 95 ; FAILWITH } {} ; DUP 7 ; GET 4 ; DUP 7 ; CAR ; GET ; IF_NONE { PUSH int 72 ; FAILWITH } {} ; CAR ; GET 3 ; PUSH mutez 1 ; DUP 7 ; SIZE ; PUSH mutez 1 ; DUP 11 ; GET 4 ; DUP 11 ; CAR ; GET ; IF_NONE { PUSH int 72 ; FAILWITH } {} ; CAR ; GET 3 ; EDIV ; IF_NONE { UNIT ; FAILWITH } {} ; CAR ; DUP 9 ; SIZE ; DUP 12 ; GET 4 ; DUP 12 ; CAR ; GET ; IF_NONE { PUSH int 71 ; FAILWITH } {} ; CAR ; CAR ; CAR ; SUB ; ISNAT ; IF_NONE { PUSH int 86 ; FAILWITH } {} ; MUL ; EDIV ; IF_NONE { PUSH int 89 ; FAILWITH } { CAR } ; MUL ; ADD ; UNIT ; TRANSFER_TOKENS ; CONS } ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP } { NIL operation ; DUP 3 ; ITER { CONTRACT unit ; IF_NONE { PUSH int 98 ; FAILWITH } {} ; DUP 7 ; GET 4 ; DUP 7 ; CAR ; GET ; IF_NONE { PUSH int 72 ; FAILWITH } {} ; CAR ; GET 3 ; UNIT ; TRANSFER_TOKENS ; CONS } ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP } ; DIG 2 ; DUP ; GET 4 ; DUP ; DIG 4 ; CAR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 100 ; FAILWITH } {} ; UNPAIR ; UNPAIR ; SWAP ; CAR ; PUSH bool True ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; SOME ; SWAP ; UPDATE ; UPDATE 4 ; SWAP } } ; NIL operation ; SWAP ; ITER { CONS } ; PAIR }