x
551
{ parameter (or
(or
(or (address %add_valid_source)
(pair %fulfill (bytes %script) (bytes %payload)))
(or (address %propose_administrator)
(or (address %remove_valid_source) (unit %set_administrator))))
(or (or (bytes %set_valid_script) (unit %touch))
(or
(lambda %update_aggregation_lambda (pair string (pair nat nat)) nat)
(or (nat %update_threshold)
(lambda %update_validation_lambda (pair string (pair nat nat))
bool))))) ;
storage (pair
(pair
(pair (address %administrator)
(pair (lambda %aggregation_lambda (pair string (pair nat nat)) nat)
(nat %contract_outside_cache_no)))
(pair (big_map %prices string (pair (nat %last_epoch) (nat %price)))
(pair (address %proposed_administrator) (nat %response_threshold))))
(pair
(pair (nat %valid_epoch)
(pair
(map %valid_prices string
(pair (set %valid_respondants address)
(nat %price)))
(bytes %valid_script)))
(pair (set %valid_sources address)
(pair (lambda %validation_lambda (pair string (pair nat nat)) bool)
(nat %validity_window_in_epochs))))) ;
code { UNPAIR ;
IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 401 ; FAILWITH } ;
SWAP ;
DUP ;
GET 5 ;
PUSH bool True ;
DIG 3 ;
UPDATE ;
UPDATE 5 }
{ AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
DUP ;
CAR ;
DUP 3 ;
GET 3 ;
GET 4 ;
COMPARE ;
EQ ;
IF {} { PUSH int 430 ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 5 ;
SOURCE ;
MEM ;
IF {} { PUSH int 431 ; FAILWITH } ;
DUP ;
CDR ;
UNPACK (pair nat (list (pair string nat))) ;
IF_NONE { PUSH int 220 ; FAILWITH } {} ;
DUP ;
CAR ;
PUSH nat 900 ;
SWAP ;
EDIV ;
IF_NONE { PUSH int 223 ; FAILWITH } { CAR } ;
PUSH nat 900 ;
PUSH timestamp "1970-01-01T00:00:00Z" ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 227 ; FAILWITH } {} ;
EDIV ;
IF_NONE { PUSH int 227 ; FAILWITH } { CAR } ;
SWAP ;
DUP ;
DUG 2 ;
COMPARE ;
EQ ;
IF {} { PUSH int 903 ; FAILWITH } ;
DUP 4 ;
GET 3 ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
COMPARE ;
GT ;
IF
{ DIG 3 ;
UNPAIR ;
SWAP ;
UNPAIR ;
GET 4 ;
EMPTY_MAP string (pair (set address) nat) ;
PAIR ;
DUP 4 ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
DUG 3 }
{} ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
ITER { DUP 5 ;
GET 3 ;
GET 3 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF
{}
{ DIG 4 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
DUP 6 ;
CDR ;
EMPTY_SET address ;
PAIR ;
SOME ;
DUP 7 ;
CAR ;
UPDATE ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
DUG 4 } ;
DUP 5 ;
GET 3 ;
GET 3 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET ;
IF_NONE { PUSH int 241 ; FAILWITH } {} ;
CDR ;
DUP 6 ;
GET 7 ;
SWAP ;
DUP ;
DUG 2 ;
DUP 4 ;
CDR ;
PAIR ;
DUP 4 ;
CAR ;
PAIR ;
EXEC ;
IF
{ DIG 5 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
DUP ;
DUP 8 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 247 ; FAILWITH } {} ;
DUP ;
CAR ;
PUSH bool True ;
SOURCE ;
UPDATE ;
UPDATE 1 ;
SOME ;
SWAP ;
UPDATE ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
DUP ;
CAR ;
GET 6 ;
SWAP ;
DUP ;
DUG 7 ;
GET 3 ;
GET 3 ;
DUP 4 ;
CAR ;
GET ;
IF_NONE { PUSH int 249 ; FAILWITH } {} ;
CAR ;
SIZE ;
COMPARE ;
GE ;
IF
{ DUP 6 ;
CAR ;
GET 3 ;
DUP 3 ;
CAR ;
MEM ;
IF
{ DUP 3 ;
DUP 7 ;
CAR ;
GET 3 ;
DUP 4 ;
CAR ;
GET ;
IF_NONE { PUSH int 257 ; FAILWITH } {} ;
CAR ;
COMPARE ;
LT ;
IF
{ DUP 6 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
DUP 10 ;
CAR ;
CAR ;
GET 3 ;
DIG 5 ;
DIG 10 ;
CAR ;
GET 3 ;
DUP 8 ;
CAR ;
GET ;
IF_NONE { PUSH int 261 ; FAILWITH } {} ;
CDR ;
PAIR ;
DUP 7 ;
CAR ;
PAIR ;
EXEC ;
DUP 7 ;
PAIR ;
SOME ;
DIG 5 ;
CAR ;
UPDATE ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUG 3 }
{ DROP 2 } }
{ DIG 5 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
DIG 4 ;
DUP 7 ;
PAIR ;
SOME ;
DIG 5 ;
CAR ;
UPDATE ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUG 3 } }
{ DROP 2 } }
{ DROP 2 } } ;
DROP 3 } }
{ IF_LEFT
{ AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 401 ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CDR ;
DIG 4 ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR }
{ IF_LEFT
{ AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 401 ; FAILWITH } ;
SWAP ;
DUP ;
GET 5 ;
PUSH bool False ;
DIG 3 ;
UPDATE ;
UPDATE 5 }
{ DROP ;
AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
DUP ;
CAR ;
GET 5 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 401 ; FAILWITH } ;
DUP ;
UNPAIR ;
UNPAIR ;
CDR ;
DIG 3 ;
CAR ;
GET 5 ;
PAIR ;
PAIR ;
PAIR } } } }
{ IF_LEFT
{ IF_LEFT
{ AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 401 ; FAILWITH } ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
CAR ;
DIG 4 ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR }
{ DROP ;
AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
PUSH nat 1 ;
ADD ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
PAIR } }
{ IF_LEFT
{ AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 401 ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
CDR ;
DIG 4 ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
PAIR }
{ IF_LEFT
{ AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 401 ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CAR ;
DIG 4 ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR }
{ AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 401 ; FAILWITH } ;
UPDATE 7 } } } } ;
NIL operation ;
PAIR } ;
view "get_price" string nat
{ UNPAIR ;
SWAP ;
DUP ;
DUG 2 ;
GET 8 ;
PUSH nat 900 ;
PUSH timestamp "1970-01-01T00:00:00Z" ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 277 ; FAILWITH } {} ;
EDIV ;
IF_NONE { PUSH int 277 ; FAILWITH } { CAR } ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 281 ; FAILWITH } {} ;
DUP 3 ;
CAR ;
GET 3 ;
DUP 3 ;
GET ;
IF_NONE { PUSH int 280 ; FAILWITH } {} ;
CAR ;
COMPARE ;
GT ;
IF {} { PUSH int 900 ; FAILWITH } ;
PUSH nat 0 ;
DUP 3 ;
CAR ;
GET 3 ;
DUP 3 ;
GET ;
IF_NONE { PUSH int 284 ; FAILWITH } {} ;
CDR ;
COMPARE ;
GT ;
IF {} { PUSH int 905 ; FAILWITH } ;
SWAP ;
CAR ;
GET 3 ;
SWAP ;
GET ;
IF_NONE { PUSH int 285 ; FAILWITH } {} ;
CDR } }