x
138
parameter (or (or (address %add_valid_source) (or (pair %fulfill (bytes %script) (bytes %payload)) (address %remove_valid_source))) (or (or (address %set_administrator) (address %set_receiver)) (or (string %set_valid_certificate) (bytes %set_valid_script))));storage (pair (pair (address %administrator) (address %receiver)) (pair (string %valid_certificate) (pair (bytes %valid_script) (set %valid_sources address))));code { UNPAIR ; IF_LEFT { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 401 ; FAILWITH } ; SWAP ; DUP ; GET 6 ; PUSH bool True ; DIG 3 ; UPDATE ; UPDATE 6 ; NIL operation } { IF_LEFT { DUP ; CAR ; DUP 3 ; GET 5 ; COMPARE ; EQ ; IF {} { PUSH int 430 ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 6 ; SOURCE ; MEM ; IF {} { PUSH int 431 ; FAILWITH } ; CDR ; UNPACK (pair string nat) ; IF_NONE { PUSH int 118 ; FAILWITH } {} ; DUP ; CAR ; DUP 3 ; GET 3 ; COMPARE ; EQ ; IF {} { PUSH int 432 ; FAILWITH } ; NIL operation ; DUP 3 ; CAR ; CDR ; CONTRACT %select_token_id nat ; IF_NONE { PUSH int 122 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 3 ; CDR ; TRANSFER_TOKENS ; CONS } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 401 ; FAILWITH } ; SWAP ; DUP ; GET 6 ; PUSH bool False ; DIG 3 ; UPDATE ; UPDATE 6 ; NIL operation } } } { IF_LEFT { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 401 ; FAILWITH } ; SWAP ; UNPAIR ; CDR ; DIG 2 ; PAIR ; PAIR } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 401 ; FAILWITH } ; SWAP ; UNPAIR ; CAR ; DIG 2 ; SWAP ; PAIR ; PAIR } } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 401 ; FAILWITH } ; UPDATE 3 } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 401 ; FAILWITH } ; UPDATE 5 } } ; NIL operation } ; PAIR }