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 } }