x
209
parameter (or (or (unit %default) (list %update_address_list (pair (string %name) (option %update_list (list (pair (address %address) (option %unit unit))))))) (or (list %update_addresses (pair (option %address address) (string %name))) (or (list %update_bytes (pair (option %byte bytes) (string %name))) (list %update_numbers (pair (string %name) (option %number nat))))));storage (pair (map %address_list string (big_map address unit)) (pair (big_map %addresses string address) (pair (map %byte_list string (big_map address bytes)) (pair (big_map %bytes string bytes) (pair (map %count_list string (big_map address nat)) (pair (big_map %metadata string bytes) (big_map %numbers string nat)))))));code { UNPAIR ; IF_LEFT { IF_LEFT { DROP ; NIL operation ; DUP 2 ; GET 3 ; PUSH string "ADMIN" ; GET ; IF_NONE { PUSH int 30 ; FAILWITH } {} ; CONTRACT unit ; IF_NONE { PUSH int 30 ; FAILWITH } {} ; AMOUNT ; UNIT ; TRANSFER_TOKENS ; CONS } { DUP 2 ; GET 3 ; PUSH string "ADMIN" ; GET ; IF_NONE { PUSH int 64 ; FAILWITH } {} ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ; DUP ; ITER { DUP ; CDR ; IF_NONE { DIG 2 ; DUP ; CAR ; NONE (big_map address unit) ; DIG 3 ; CAR ; UPDATE ; UPDATE 1 ; SWAP } { DROP ; DUP ; CDR ; IF_NONE { PUSH int 80 ; FAILWITH } {} ; DUP 4 ; CAR ; DUP 3 ; CAR ; MEM ; IF {} { DIG 3 ; DUP ; CAR ; EMPTY_BIG_MAP address unit ; SOME ; DUP 5 ; CAR ; UPDATE ; UPDATE 1 ; DUG 3 } ; DUP ; ITER { DUP ; CDR ; IF_NONE { DIG 4 ; DUP ; CAR ; DUP ; DUP 6 ; CAR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 87 ; FAILWITH } {} ; NONE unit ; DIG 5 ; CAR ; UPDATE ; SOME ; SWAP ; UPDATE ; UPDATE 1 ; DUG 3 } { DROP ; DIG 4 ; DUP ; CAR ; DUP ; DUP 6 ; CAR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 85 ; FAILWITH } {} ; PUSH (option unit) (Some Unit) ; DIG 5 ; CAR ; UPDATE ; SOME ; SWAP ; UPDATE ; UPDATE 1 ; DUG 3 } } ; DROP 2 } } ; DROP ; NIL operation } } { IF_LEFT { DUP 2 ; GET 3 ; PUSH string "ADMIN" ; GET ; IF_NONE { PUSH int 34 ; FAILWITH } {} ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ; DUP ; ITER { DUP ; CAR ; IF_NONE { DIG 2 ; DUP ; GET 3 ; NONE address ; DIG 3 ; CDR ; UPDATE ; UPDATE 3 ; SWAP } { DROP ; DIG 2 ; DUP ; GET 3 ; DUP 3 ; CAR ; IF_NONE { PUSH int 38 ; FAILWITH } {} ; SOME ; DIG 3 ; CDR ; UPDATE ; UPDATE 3 ; SWAP } } ; DROP } { IF_LEFT { DUP 2 ; GET 3 ; PUSH string "ADMIN" ; GET ; IF_NONE { PUSH int 44 ; FAILWITH } {} ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ; DUP ; ITER { DUP ; CAR ; IF_NONE { DIG 2 ; DUP ; GET 7 ; NONE bytes ; DIG 3 ; CDR ; UPDATE ; UPDATE 7 ; SWAP } { DROP ; DIG 2 ; DUP ; GET 7 ; DUP 3 ; CAR ; IF_NONE { PUSH int 48 ; FAILWITH } {} ; SOME ; DIG 3 ; CDR ; UPDATE ; UPDATE 7 ; SWAP } } ; DROP } { DUP 2 ; GET 3 ; PUSH string "ADMIN" ; GET ; IF_NONE { PUSH int 54 ; FAILWITH } {} ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ; DUP ; ITER { DUP ; CDR ; IF_NONE { DIG 2 ; DUP ; GET 12 ; NONE nat ; DIG 3 ; CAR ; UPDATE ; UPDATE 12 ; SWAP } { DROP ; DIG 2 ; DUP ; GET 12 ; DUP 3 ; CDR ; IF_NONE { PUSH int 58 ; FAILWITH } {} ; SOME ; DIG 3 ; CAR ; UPDATE ; UPDATE 12 ; SWAP } } ; DROP } } ; NIL operation } ; PAIR }