x
270
parameter (or
(or
(lambda %callContract (pair unit (list operation))
(pair unit (list operation)))
(unit %default))
(or
(pair %logRequest
(pair %params (nat %card) (pair (nat %gameId) (string %hash)))
(pair (nat %randomNumber) (nat %requestId)))
(pair %makeRequest (address %contractAddress)
(pair (string %entryPoint)
(pair (string %entryPointParams)
(pair (string %randomNumberExcludes)
(pair (nat %randomNumberMax)
(pair (nat %randomNumberType)
(string %requestId)))))))));
storage (pair (address %adContract)
(pair (address %admin)
(pair (nat %currentRequestIndex)
(pair
(pair %entryPointParams (int %card)
(pair (int %gameId) (string %hash)))
(pair (mutez %fee)
(pair (address %oracle)
(pair
(map %requests nat
(pair
(address %contractAddress)
(pair (string %entryPoint)
(pair
(string %entryPointParams)
(pair
(string %opHash)
(pair
(nat %randomNumber)
(pair
(string %randomNumberExcludes)
(pair
(nat %randomNumberMax)
(pair
(timestamp %requestFillTime)
(pair
(string %requestId)
(pair
(int %requestStatus)
(pair
(timestamp %requestTime)
(pair
(address %requester)
(nat %type))))))))))))))
(address %txlContract))))))));
code { UNPAIR ;
IF_LEFT
{ IF_LEFT
{ NIL operation ; UNIT ; PAIR ; EXEC ; CDR }
{ DROP ; NIL operation } }
{ IF_LEFT
{ NIL operation ;
DUP 2 ;
CAR ;
EMIT (pair (nat %card) (pair (nat %gameId) (string %hash))) ;
CONS ;
DUP 3 ;
GET 13 ;
DUP 3 ;
GET 4 ;
GET ;
IF_NONE { PUSH int 98 ; FAILWITH } {} ;
GET 3 ;
EMIT string ;
CONS ;
DUP 3 ;
CAR ;
CONTRACT %firstCard (pair (nat %card) (pair (nat %gameId) (string %hash))) ;
IF_NONE { PUSH int 101 ; FAILWITH } {} ;
PUSH mutez 1000 ;
DUP 4 ;
CAR ;
TRANSFER_TOKENS ;
CONS ;
DIG 2 ;
DUP ;
GET 13 ;
DUP ;
DUP 5 ;
GET 4 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 109 ; FAILWITH } {} ;
DUP 6 ;
CAR ;
GET 4 ;
UPDATE 7 ;
SOME ;
SWAP ;
UPDATE ;
UPDATE 13 ;
DUP ;
GET 13 ;
DUP ;
DUP 5 ;
GET 4 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 110 ; FAILWITH } {} ;
DUP 6 ;
GET 3 ;
UPDATE 9 ;
SOME ;
SWAP ;
UPDATE ;
UPDATE 13 ;
DUP ;
GET 13 ;
DUP ;
DUP 5 ;
GET 4 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 111 ; FAILWITH } {} ;
NOW ;
UPDATE 15 ;
SOME ;
SWAP ;
UPDATE ;
UPDATE 13 ;
DUP ;
GET 13 ;
DUP ;
DIG 4 ;
GET 4 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 112 ; FAILWITH } {} ;
PUSH int 1 ;
UPDATE 19 ;
SOME ;
SWAP ;
UPDATE ;
UPDATE 13 ;
SWAP }
{ PUSH int 0 ;
DUP 3 ;
GET 11 ;
SENDER ;
COMPARE ;
EQ ;
IF
{ DROP ; PUSH int 1 ; NIL operation }
{ NIL operation ;
PUSH string "wrongOracleFee" ;
EMIT %wrongOracleFee string ;
CONS } ;
DUP 4 ;
GET 9 ;
AMOUNT ;
COMPARE ;
EQ ;
IF
{ SWAP ; DROP ; PUSH int 1 ; SWAP }
{ PUSH string "noFeeNotAdmin" ; EMIT %noFeeNotAdmin string ; CONS } ;
PUSH int 1 ;
DUP 3 ;
COMPARE ;
EQ ;
IF
{ PUSH int 1 ;
PUSH nat 0 ;
DUP 6 ;
GET 5 ;
DUP 2 ;
COMPARE ;
LT ;
LOOP { DUP 5 ;
GET 12 ;
DUP 7 ;
GET 13 ;
DUP 3 ;
GET ;
IF_NONE { PUSH int 63 ; FAILWITH } {} ;
GET 17 ;
COMPARE ;
EQ ;
IF { SWAP ; DROP ; PUSH int 0 ; SWAP } {} ;
PUSH nat 1 ;
ADD ;
DUP 6 ;
GET 5 ;
DUP 2 ;
COMPARE ;
LT } ;
PUSH int 1 ;
DUP 3 ;
COMPARE ;
EQ ;
IF
{ DUP 5 ;
GET 11 ;
SENDER ;
NOW ;
PUSH int 0 ;
DUP 9 ;
GET 12 ;
NOW ;
DUP 11 ;
GET 9 ;
DUP 12 ;
GET 7 ;
PUSH nat 0 ;
PUSH string "" ;
DUP 15 ;
GET 5 ;
DUP 16 ;
GET 3 ;
DUP 17 ;
CAR ;
PAIR 13 ;
SWAP ;
DROP ;
SWAP ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
SWAP ;
NOW ;
SENDER ;
PAIR ;
EMIT %randomRequested (pair address timestamp) ;
CONS ;
SWAP ;
DUP 3 ;
DUP ;
GET 13 ;
DIG 2 ;
SOME ;
DIG 4 ;
GET 5 ;
UPDATE ;
UPDATE 13 ;
DUP ;
GET 5 ;
PUSH nat 1 ;
ADD ;
UPDATE 5 ;
SWAP }
{ DROP 2 ;
SWAP ;
DROP ;
SWAP ;
DROP ;
PUSH string "notNewRequest" ;
EMIT string ;
CONS } }
{ SWAP ;
DROP ;
SWAP ;
DROP ;
PUSH string "failed Oracle" ;
EMIT %failedOracle string ;
CONS } } } ;
NIL operation ;
SWAP ;
ITER { CONS } ;
PAIR }