x
133
parameter (or (or (or (unit %acceptAdmin) (list %addHash bytes)) (or (bytes %checkHash) (option %proposeAdmin address))) (or (list %removeHash bytes) (list %updateMetadata (pair string bytes))));storage (pair (pair (address %admin) (big_map %hashes bytes unit)) (big_map %metadata string bytes) (option %proposed_admin address));code { PUSH nat 0 ; SWAP ; UNPAIR ; PUSH mutez 0 ; AMOUNT ; COMPARE ; GT ; IF { PUSH nat 1 ; FAILWITH } {} ; IF_LEFT { IF_LEFT { IF_LEFT { DIG 2 ; DROP 2 ; DUP ; CDR ; CDR ; IF_NONE { PUSH nat 2 ; FAILWITH } {} ; DUP ; SENDER ; COMPARE ; NEQ ; IF { PUSH nat 3 ; FAILWITH } {} ; DUP 2 ; DIG 2 ; CAR ; DIG 2 ; UPDATE 1 ; UPDATE 1 ; DUP ; CDR ; NONE address ; UPDATE 2 ; UPDATE 2 } { DUP 2 ; CAR ; CAR ; SENDER ; COMPARE ; NEQ ; IF { DIG 2 ; FAILWITH } { DIG 2 ; DROP } ; DUP 2 ; CAR ; CDR ; SWAP ; ITER { SWAP ; UNIT ; SOME ; DIG 2 ; UPDATE } ; DUP 2 ; DIG 2 ; CAR ; DIG 2 ; UPDATE 2 ; UPDATE 1 } ; NIL operation ; PAIR } { IF_LEFT { DIG 2 ; DROP ; DUP 2 ; CAR ; CDR ; DUP 2 ; MEM ; IF { PUSH string "Confirmed" ; SWAP ; PAIR ; EMIT %hash_result (pair bytes string) ; SWAP ; NIL operation ; DIG 2 ; CONS ; PAIR } { DROP 2 ; PUSH nat 4 ; FAILWITH } } { DUP 2 ; CAR ; CAR ; SENDER ; COMPARE ; NEQ ; IF { DIG 2 ; FAILWITH } { DIG 2 ; DROP } ; DUP 2 ; DIG 2 ; CDR ; DIG 2 ; UPDATE 2 ; UPDATE 2 ; NIL operation ; PAIR } } } { IF_LEFT { DUP 2 ; CAR ; CAR ; SENDER ; COMPARE ; NEQ ; IF { DIG 2 ; FAILWITH } { DIG 2 ; DROP } ; DUP 2 ; CAR ; CDR ; SWAP ; ITER { NONE unit ; SWAP ; UPDATE } ; DUP 2 ; DIG 2 ; CAR ; DIG 2 ; UPDATE 2 ; UPDATE 1 } { DUP 2 ; CAR ; CAR ; SENDER ; COMPARE ; NEQ ; IF { DIG 2 ; FAILWITH } { DIG 2 ; DROP } ; DUP 2 ; CDR ; CAR ; SWAP ; ITER { SWAP ; DUP 2 ; CDR ; SOME ; DIG 2 ; CAR ; UPDATE } ; DUP 2 ; DIG 2 ; CDR ; DIG 2 ; UPDATE 1 ; UPDATE 2 } ; NIL operation ; PAIR } }