x
716
parameter (or
(or
(or (or (unit %confirmAdmin) (unit %default))
(or (bool %flip) (nat %push)))
(or (or (option %setAdmin address) (mutez %setMaxBalance))
(or (address %setOracle) (bool %setPause))))
(key_hash %withdraw));
storage (pair
(pair
(pair (pair (address %admin) (address %communityWallet))
(pair (mutez %flipped)
(big_map %games nat
(pair (address %player)
(pair (mutez %amount)
(pair (bool %heads)
(pair (nat %status)
(timestamp %ts))))))))
(pair (pair (nat %gamesPlayed) (nat %lock))
(pair (mutez %maxBalance) (address %oracle))))
(pair (pair (bool %paused) (option %pending address))
(pair (big_map %players address nat) (nat %processed))));
code { NIL operation ;
SWAP ;
UNPAIR ;
IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ DROP ;
DUP ;
CDR ;
CAR ;
CDR ;
SENDER ;
SOME ;
COMPARE ;
NEQ ;
IF { PUSH int 1 ; FAILWITH } {} ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
DUP 3 ;
CAR ;
CAR ;
CDR ;
DIG 3 ;
CAR ;
CAR ;
CAR ;
CDR ;
SENDER ;
PAIR ;
PAIR ;
PAIR ;
PAIR ;
DUP ;
CDR ;
CDR ;
NONE address ;
DUP 3 ;
CDR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
SWAP ;
CAR ;
PAIR ;
SWAP ;
PAIR }
{ DROP ; SWAP ; PAIR } }
{ IF_LEFT
{ PUSH string "Contract is paused" ;
PUSH bool False ;
DUP 4 ;
CDR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
IF { DROP } { FAILWITH } ;
PUSH string "Bid not accepted" ;
SOURCE ;
SENDER ;
COMPARE ;
EQ ;
IF { DROP } { FAILWITH } ;
PUSH string "Bet is too low" ;
PUSH mutez 1050000 ;
AMOUNT ;
COMPARE ;
GE ;
IF { DROP } { FAILWITH } ;
PUSH string "Bet is to high for this balance" ;
PUSH nat 47 ;
BALANCE ;
EDIV ;
IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
CAR ;
AMOUNT ;
COMPARE ;
LE ;
IF { DROP } { FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CDR ;
CAR ;
SENDER ;
GET ;
IF_NONE
{ UNIT }
{ LEVEL ;
SWAP ;
COMPARE ;
EQ ;
IF { PUSH string "Robot, huh?" ; FAILWITH } { UNIT } } ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CDR ;
CDR ;
DUP 3 ;
CDR ;
CDR ;
CAR ;
LEVEL ;
SOME ;
SENDER ;
UPDATE ;
PAIR ;
DUP 3 ;
CDR ;
CAR ;
PAIR ;
DIG 2 ;
CAR ;
PAIR ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
DUP 3 ;
CAR ;
CAR ;
CDR ;
CDR ;
NOW ;
PUSH nat 0 ;
DIG 6 ;
AMOUNT ;
SENDER ;
PAIR 5 ;
DUP 5 ;
CAR ;
CDR ;
CAR ;
CAR ;
SWAP ;
SOME ;
SWAP ;
UPDATE ;
DUP 4 ;
CAR ;
CAR ;
CDR ;
CAR ;
PAIR ;
DIG 3 ;
CAR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
PAIR ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CDR ;
DUP 3 ;
CAR ;
CDR ;
CAR ;
CDR ;
PUSH nat 1 ;
DUP 5 ;
CAR ;
CDR ;
CAR ;
CAR ;
ADD ;
PAIR ;
PAIR ;
DIG 2 ;
CAR ;
CAR ;
PAIR ;
PAIR ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
DUP 3 ;
CAR ;
CAR ;
CDR ;
CDR ;
AMOUNT ;
DUP 5 ;
CAR ;
CAR ;
CDR ;
CAR ;
ADD ;
PAIR ;
DIG 3 ;
CAR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR }
{ PUSH string "Unknown source" ;
SENDER ;
DUP 4 ;
CAR ;
CDR ;
CDR ;
CDR ;
COMPARE ;
EQ ;
IF { DROP } { FAILWITH } ;
PUSH string "No games pending" ;
DUP 3 ;
CAR ;
CDR ;
CAR ;
CAR ;
DUP 4 ;
CDR ;
CDR ;
CDR ;
COMPARE ;
LT ;
PUSH nat 0 ;
DUP 5 ;
CAR ;
CDR ;
CAR ;
CDR ;
COMPARE ;
EQ ;
OR ;
IF { DROP } { FAILWITH } ;
SWAP ;
DIG 2 ;
PUSH nat 1 ;
PAIR ;
PAIR ;
SWAP ;
LAMBDA
(pair nat
(pair (pair nat (list operation))
(pair
(pair
(pair (pair address address)
(pair mutez
(big_map nat
(pair address
(pair mutez
(pair bool
(pair
nat
timestamp)))))))
(pair (pair nat nat) (pair mutez address)))
(pair (pair bool (option address))
(pair (big_map address nat) nat)))))
(pair bool
(pair (pair nat (list operation))
(pair
(pair
(pair (pair address address)
(pair mutez
(big_map nat
(pair address
(pair mutez
(pair bool
(pair
nat
timestamp)))))))
(pair (pair nat nat) (pair mutez address)))
(pair (pair bool (option address))
(pair (big_map address nat) nat)))))
{ UNPAIR ;
SWAP ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
DUP 3 ;
CAR ;
CAR ;
PUSH nat 32 ;
SWAP ;
DUP ;
DUG 2 ;
COMPARE ;
LT ;
DUP 4 ;
CAR ;
CDR ;
CAR ;
CDR ;
DUP 5 ;
CDR ;
CDR ;
CDR ;
COMPARE ;
LT ;
AND ;
IF
{ DIG 3 ;
DROP ;
DUP 3 ;
CAR ;
CAR ;
CDR ;
CDR ;
DUP 4 ;
CDR ;
CDR ;
CDR ;
GET ;
IF_NONE { PUSH int 1 ; FAILWITH } {} ;
DUP 4 ;
CAR ;
CAR ;
CAR ;
CDR ;
CONTRACT unit ;
IF_NONE
{ PUSH string "Destination not found" ; FAILWITH }
{} ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CONTRACT unit ;
PUSH nat 105 ;
DUP 4 ;
GET 3 ;
EDIV ;
IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
CAR ;
PUSH nat 0 ;
DUP 6 ;
PUSH nat 1 ;
LSL ;
DIG 9 ;
AND ;
COMPARE ;
GT ;
PUSH nat 1 ;
DIG 6 ;
ADD ;
DUP 6 ;
GET 5 ;
DIG 2 ;
COMPARE ;
EQ ;
IF
{ DIG 5 ;
PUSH nat 200 ;
DIG 3 ;
MUL ;
DIG 3 ;
IF_NONE { DIG 3 } { DIG 4 ; DROP } ;
PUSH mutez 0 ;
DUP 3 ;
COMPARE ;
GT ;
IF
{ DIG 2 ; SWAP ; DIG 2 ; UNIT ; TRANSFER_TOKENS ; CONS }
{ DROP 2 } ;
DIG 2 ;
PUSH nat 2 ;
UPDATE 7 ;
SWAP ;
PAIR }
{ DIG 2 ;
DROP ;
DIG 4 ;
PUSH nat 3 ;
DIG 3 ;
MUL ;
DIG 3 ;
PUSH mutez 0 ;
DUP 3 ;
COMPARE ;
GT ;
IF
{ DIG 2 ; SWAP ; DIG 2 ; UNIT ; TRANSFER_TOKENS ; CONS }
{ DROP 2 } ;
DIG 2 ;
PUSH nat 1 ;
UPDATE 7 ;
SWAP ;
PAIR } ;
DUP 3 ;
CDR ;
DUP 4 ;
CAR ;
CDR ;
DUP 5 ;
CAR ;
CAR ;
CDR ;
CDR ;
DUP 4 ;
CDR ;
DUP 7 ;
CDR ;
CDR ;
CDR ;
SWAP ;
SOME ;
SWAP ;
UPDATE ;
DUP 6 ;
CAR ;
CAR ;
CDR ;
CAR ;
PAIR ;
DIG 5 ;
CAR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
PAIR ;
PUSH nat 1 ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CDR ;
CDR ;
ADD ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CDR ;
CAR ;
PAIR ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CAR ;
PAIR ;
SWAP ;
CAR ;
PAIR ;
SWAP ;
CAR ;
DIG 2 ;
PAIR ;
PAIR ;
PUSH bool True ;
PAIR }
{ SWAP ; DIG 2 ; DIG 4 ; DROP 4 ; PUSH bool False ; PAIR } } ;
SWAP ;
APPLY ;
SWAP ;
PUSH bool True ;
LOOP { DIP { DUP } ; EXEC ; UNPAIR } ;
SWAP ;
DROP ;
UNPAIR ;
CDR ;
SENDER ;
CONTRACT unit ;
IF_NONE { PUSH int 2 ; FAILWITH } {} ;
SWAP ;
DUP ;
DUG 2 ;
PUSH mutez 550 ;
DIG 3 ;
SIZE ;
MUL ;
DIG 2 ;
PUSH mutez 0 ;
DUP 3 ;
COMPARE ;
GT ;
IF
{ DIG 2 ; SWAP ; DIG 2 ; UNIT ; TRANSFER_TOKENS ; CONS }
{ DROP 2 } ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
DUP 3 ;
CAR ;
CDR ;
CDR ;
DUP 4 ;
CAR ;
CDR ;
CAR ;
CAR ;
DUP 5 ;
CAR ;
CDR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
DIG 3 ;
CAR ;
CAR ;
PAIR ;
PAIR ;
SWAP ;
PAIR } } }
{ IF_LEFT
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
NEQ ;
IF { PUSH int 1 ; FAILWITH } {} ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CDR ;
SWAP ;
DUP 3 ;
CDR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
SWAP ;
CAR ;
PAIR ;
SWAP ;
PAIR }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
NEQ ;
IF { PUSH int 1 ; FAILWITH } {} ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
DUP 3 ;
CAR ;
CDR ;
CDR ;
CDR ;
DIG 2 ;
PAIR ;
DUP 3 ;
CAR ;
CDR ;
CAR ;
PAIR ;
DIG 2 ;
CAR ;
CAR ;
PAIR ;
PAIR ;
SWAP ;
PAIR } }
{ IF_LEFT
{ PUSH string "You are not administrator" ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF { DROP } { FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
SWAP ;
DUP 3 ;
CAR ;
CDR ;
CDR ;
CAR ;
PAIR ;
DUP 3 ;
CAR ;
CDR ;
CAR ;
PAIR ;
DIG 2 ;
CAR ;
CAR ;
PAIR ;
PAIR ;
SWAP ;
PAIR }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
NEQ ;
IF { PUSH int 1 ; FAILWITH } {} ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CDR ;
DUP 3 ;
CDR ;
CAR ;
CDR ;
DIG 2 ;
PAIR ;
PAIR ;
SWAP ;
CAR ;
PAIR ;
SWAP ;
PAIR } } } }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
NEQ ;
IF
{ DROP 3 ; PUSH int 1 ; FAILWITH }
{ SWAP ;
DUP ;
DUP ;
DUG 3 ;
CAR ;
CDR ;
CDR ;
CAR ;
BALANCE ;
COMPARE ;
GT ;
IF
{ DIG 3 ;
DROP ;
NIL operation ;
DIG 2 ;
IMPLICIT_ACCOUNT ;
DIG 3 ;
CAR ;
CDR ;
CDR ;
CAR ;
BALANCE ;
SUB ;
UNIT ;
TRANSFER_TOKENS ;
CONS }
{ SWAP ; DIG 2 ; DROP 2 ; SWAP } ;
PAIR } } }