x
886
1395
parameter (or (or (or (or (list %add_flux_points (pair address nat)) (list %add_flux_power (pair nat nat))) (or (pair %add_token_fraction (address %address) (pair (nat %shares) (nat %token_id))) (or (pair %balance_of (list %requests (pair (address %owner) (nat %token_id))) (contract %callback (list (pair (pair %request (address %owner) (nat %token_id)) (nat %balance))))) (pair %create_token_fraction (address %address) (pair (nat %shares) (nat %token_id)))))) (or (or (pair %mint (pair (address %address) (int %amount)) (pair (map %metadata string bytes) (nat %token_id))) (pair %mutez_transfer (mutez %amount) (address %destination))) (or (list %personalise (pair nat bytes)) (or (nat %remove_token_fraction) (list %reveal (pair nat bytes)))))) (or (or (or (address %set_administrator) (address %set_crowdsale_address)) (or (pair %set_metadata (string %k) (bytes %v)) (or (bool %set_pause) (pair %set_token_fraction (address %address) (pair (nat %shares) (nat %token_id)))))) (or (or (list %transfer (pair (address %from_) (list %txs (pair (address %to_) (pair (nat %token_id) (nat %amount)))))) (list %update_flux_points (pair address nat))) (or (list %update_flux_power (pair nat nat)) (or (list %update_operators (or (pair %add_operator (address %owner) (pair (address %operator) (nat %token_id))) (pair %remove_operator (address %owner) (pair (address %operator) (nat %token_id))))) (pair %update_token_ticket (nat %token_id) (nat %token_tickets)))))));storage (pair (pair (pair (address %administrator) (pair (set %all_tokens nat) (address %crowdsale_address))) (pair (big_map %flux_points address nat) (pair (big_map %flux_power nat nat) (big_map %ledger (pair address nat) nat)))) (pair (pair (big_map %metadata string bytes) (pair (big_map %operators (pair (address %owner) (pair (address %operator) (nat %token_id))) unit) (bool %paused))) (pair (pair (big_map %token_fractions nat (map address nat)) (big_map %token_metadata nat (pair (nat %token_id) (map %token_info string bytes)))) (pair (big_map %token_tickets nat nat) (big_map %total_supply nat nat)))));code { CAST (pair (or (or (or (or (list (pair address nat)) (list (pair nat nat))) (or (pair address (pair nat nat)) (or (pair (list (pair address nat)) (contract (list (pair (pair address nat) nat)))) (pair address (pair nat nat))))) (or (or (pair (pair address int) (pair (map string bytes) nat)) (pair mutez address)) (or (list (pair nat bytes)) (or nat (list (pair nat bytes)))))) (or (or (or address address) (or (pair string bytes) (or bool (pair address (pair nat nat))))) (or (or (list (pair address (list (pair address (pair nat nat))))) (list (pair address nat))) (or (list (pair nat nat)) (or (list (or (pair address (pair address nat)) (pair address (pair address nat)))) (pair nat nat)))))) (pair (pair (pair address (pair (set nat) address)) (pair (big_map address nat) (pair (big_map nat nat) (big_map (pair address nat) nat)))) (pair (pair (big_map string bytes) (pair (big_map (pair address (pair address nat)) unit) bool)) (pair (pair (big_map nat (map address nat)) (big_map nat (pair nat (map string bytes)))) (pair (big_map nat nat) (big_map nat nat)))))) ; UNPAIR ; IF_LEFT { IF_LEFT { IF_LEFT { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ; DUP ; ITER { DIG 2 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; DUP ; DUP 6 ; CAR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 950 ; FAILWITH } {} ; DIG 6 ; CDR ; ADD ; SOME ; SWAP ; UPDATE ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP } ; DROP } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ; DUP ; ITER { DUP 3 ; GET 5 ; CDR ; SWAP ; DUP ; DUG 2 ; CAR ; MEM ; IF {} { PUSH string "FLUX_TOKEN_UNDEFINED" ; FAILWITH } ; DIG 2 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; DUP ; DUP 7 ; CAR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 920 ; FAILWITH } {} ; DIG 7 ; CDR ; ADD ; SOME ; SWAP ; UPDATE ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP } ; DROP } ; NIL operation } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 5 ; CDR ; SWAP ; DUP ; DUG 2 ; GET 4 ; MEM ; IF {} { PUSH string "FLUX_TOKEN_UNDEFINED" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 5 ; CAR ; SWAP ; DUP ; DUG 2 ; GET 4 ; MEM ; IF {} { PUSH string "FLUX_TOKEN_FRACTION_UNDEFINED" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 5 ; CAR ; SWAP ; DUP ; DUG 2 ; GET 4 ; GET ; IF_NONE { PUSH int 992 ; FAILWITH } {} ; SWAP ; DUP ; DUG 2 ; CAR ; MEM ; IF { SWAP ; DUP ; DUG 2 ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; DUP ; DUP 7 ; GET 4 ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 995 ; FAILWITH } {} ; DUP 8 ; GET 3 ; DIG 9 ; GET 5 ; CAR ; DUP 10 ; GET 4 ; GET ; IF_NONE { PUSH int 993 ; FAILWITH } {} ; DUP 10 ; CAR ; GET ; IF_NONE { PUSH int 993 ; FAILWITH } {} ; ADD ; SOME ; DIG 8 ; CAR ; UPDATE ; SOME ; SWAP ; UPDATE ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR } { SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; DUP ; DUP 7 ; GET 4 ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 998 ; FAILWITH } {} ; DUP 8 ; GET 3 ; SOME ; DIG 8 ; CAR ; UPDATE ; SOME ; SWAP ; UPDATE ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR } ; NIL operation } { IF_LEFT { SWAP ; DUP ; DUG 2 ; GET 3 ; GET 4 ; IF { PUSH string "FLUX_PAUSED" ; FAILWITH } {} ; DUP ; CAR ; MAP { DUP 3 ; GET 5 ; CDR ; SWAP ; DUP ; DUG 2 ; CDR ; MEM ; IF {} { PUSH string "FLUX_TOKEN_UNDEFINED" ; FAILWITH } ; DUP 3 ; CAR ; GET 6 ; SWAP ; DUP ; CDR ; SWAP ; DUP ; DUG 3 ; CAR ; PAIR ; MEM ; IF { DUP 3 ; CAR ; GET 6 ; SWAP ; DUP ; CDR ; SWAP ; DUP ; DUG 3 ; CAR ; PAIR ; GET ; IF_NONE { PUSH int 695 ; FAILWITH } {} ; SWAP ; PAIR } { PUSH nat 0 ; SWAP ; PAIR } } ; NIL operation ; DIG 2 ; CDR ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 5 ; CDR ; SWAP ; DUP ; DUG 2 ; GET 4 ; MEM ; IF {} { PUSH string "FLUX_TOKEN_UNDEFINED" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 5 ; CAR ; SWAP ; DUP ; DUG 2 ; GET 4 ; MEM ; IF { PUSH string "FLUX_TOKEN_FRACTION_ALREADY_CREATED" ; FAILWITH } {} ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; PUSH (option (map address nat)) (Some {}) ; DUP 7 ; GET 4 ; UPDATE ; DUP ; DUP 7 ; GET 4 ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 976 ; FAILWITH } {} ; DUP 8 ; GET 3 ; SOME ; DIG 8 ; CAR ; UPDATE ; SOME ; SWAP ; UPDATE ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; NIL operation } } } } { IF_LEFT { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF { PUSH bool True } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; GET 4 ; SENDER ; COMPARE ; EQ } ; IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ; DUP ; CAR ; CDR ; PUSH int 1 ; COMPARE ; EQ ; IF {} { PUSH string "NFT-asset: amount <> 1" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; CAR ; CAR ; GET 3 ; SWAP ; DUP ; DUG 2 ; GET 4 ; MEM ; IF { PUSH string "NFT-asset: cannot mint twice same token" ; FAILWITH } {} ; SWAP ; DUP ; DUG 2 ; CAR ; GET 6 ; SWAP ; DUP ; GET 4 ; SWAP ; DUP ; DUG 3 ; CAR ; CAR ; PAIR ; MEM ; IF { SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; DUP ; DIG 6 ; DUP ; GET 4 ; SWAP ; DUP ; DUG 8 ; CAR ; CAR ; PAIR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 811 ; FAILWITH } {} ; PUSH nat 1 ; ADD ; SOME ; SWAP ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP } { SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; PUSH (option nat) (Some 1) ; DIG 6 ; DUP ; GET 4 ; SWAP ; DUP ; DUG 8 ; CAR ; CAR ; PAIR ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP } ; SWAP ; DUP ; DUG 2 ; CAR ; CAR ; GET 3 ; SWAP ; DUP ; DUG 2 ; GET 4 ; MEM ; IF {} { SWAP ; UNPAIR ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; PUSH bool True ; DUP 7 ; GET 4 ; UPDATE ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; DIG 5 ; DUP ; GET 3 ; SWAP ; DUP ; DUG 7 ; GET 4 ; PAIR ; SOME ; DUP 7 ; GET 4 ; UPDATE ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; DUP ; GET 7 ; PUSH (option nat) (Some 2) ; DUP 4 ; GET 4 ; UPDATE ; UPDATE 7 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; PUSH (option nat) (Some 0) ; DUP 7 ; GET 4 ; UPDATE ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP } ; SWAP ; DUP ; DUG 2 ; DUP ; GET 8 ; DIG 3 ; GET 8 ; DUP 4 ; GET 4 ; GET ; IF_NONE { PUSH nat 0 } {} ; PUSH nat 1 ; ADD ; SOME ; DIG 3 ; GET 4 ; UPDATE ; UPDATE 8 ; NIL operation } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 587 ; FAILWITH } ; DUP ; CDR ; CONTRACT unit ; IF_NONE { PUSH int 590 ; FAILWITH } {} ; NIL operation ; SWAP ; DIG 2 ; CAR ; UNIT ; TRANSFER_TOKENS ; CONS } } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ; DUP ; ITER { DUP 3 ; GET 5 ; CDR ; SWAP ; DUP ; DUG 2 ; CAR ; MEM ; IF {} { PUSH string "FLUX_TOKEN_UNDEFINED" ; FAILWITH } ; DUP 3 ; GET 7 ; SWAP ; DUP ; DUG 2 ; CAR ; MEM ; IF {} { PUSH string "FLUX_TOKEN_TICKET_UNDEFINED" ; FAILWITH } ; PUSH nat 0 ; DUP 4 ; GET 7 ; DUP 3 ; CAR ; GET ; IF_NONE { PUSH int 879 ; FAILWITH } {} ; COMPARE ; GT ; IF {} { PUSH string "FLUX_INSUFFICIENT_TICKETS" ; FAILWITH } ; DUP 3 ; CAR ; CAR ; GET 3 ; SWAP ; DUP ; DUG 2 ; CAR ; MEM ; IF { DIG 2 ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; EMPTY_MAP string bytes ; DUP 7 ; CDR ; SOME ; PUSH string "" ; UPDATE ; DUP 7 ; CAR ; PAIR ; SOME ; DUP 7 ; CAR ; UPDATE ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; DUP ; DUG 3 ; DUP ; GET 7 ; PUSH nat 1 ; DIG 5 ; GET 7 ; DUP 5 ; CAR ; GET ; IF_NONE { PUSH int 886 ; FAILWITH } {} ; SUB ; ABS ; SOME ; DIG 3 ; CAR ; UPDATE ; UPDATE 7 ; SWAP } { DROP } } ; DROP } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 5 ; CDR ; SWAP ; DUP ; DUG 2 ; MEM ; IF {} { PUSH string "FLUX_TOKEN_UNDEFINED" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 5 ; CAR ; SWAP ; DUP ; DUG 2 ; MEM ; IF {} { PUSH string "FLUX_TOKEN_FRACTION_UNDEFINED" ; FAILWITH } ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; NONE (map address nat) ; DIG 6 ; UPDATE ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; GET 4 ; SENDER ; COMPARE ; EQ ; IF { PUSH bool True } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ } ; IF {} { PUSH string "FLUX_NOT_ADMIN_OR_CROWDSALE" ; FAILWITH } ; DUP ; ITER { DUP 3 ; CAR ; CAR ; GET 3 ; SWAP ; DUP ; DUG 2 ; CAR ; MEM ; IF { DIG 2 ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; EMPTY_MAP string bytes ; DUP 7 ; CDR ; SOME ; PUSH string "" ; UPDATE ; DUP 7 ; CAR ; PAIR ; SOME ; DIG 6 ; CAR ; UPDATE ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP } { DROP } } ; DROP } } ; NIL operation } } } { IF_LEFT { IF_LEFT { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ; SWAP ; UNPAIR ; UNPAIR ; CDR ; DIG 3 ; PAIR ; PAIR ; PAIR } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ; SWAP ; UNPAIR ; UNPAIR ; UNPAIR ; SWAP ; CAR ; DIG 4 ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; PAIR } } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; DUP 5 ; CDR ; SOME ; DIG 5 ; CAR ; UPDATE ; PAIR ; PAIR ; SWAP ; PAIR } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; CAR ; DIG 4 ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 5 ; CDR ; SWAP ; DUP ; DUG 2 ; GET 4 ; MEM ; IF {} { PUSH string "FLUX_TOKEN_UNDEFINED" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 5 ; CAR ; SWAP ; DUP ; DUG 2 ; GET 4 ; MEM ; IF {} { PUSH string "FLUX_TOKEN_FRACTION_UNDEFINED" ; FAILWITH } ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; DUP ; DUP 7 ; GET 4 ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 1015 ; FAILWITH } {} ; DUP 8 ; GET 3 ; SOME ; DIG 8 ; CAR ; UPDATE ; SOME ; SWAP ; UPDATE ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR } } } } { IF_LEFT { IF_LEFT { SWAP ; DUP ; DUG 2 ; GET 3 ; GET 4 ; IF { PUSH string "FLUX_PAUSED" ; FAILWITH } {} ; DUP ; ITER { DUP ; CDR ; ITER { DUP 4 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF { PUSH bool True } { SENDER ; DUP 3 ; CAR ; COMPARE ; EQ } ; IF { PUSH bool True } { DUP 4 ; GET 3 ; GET 3 ; SWAP ; DUP ; DUG 2 ; GET 3 ; SENDER ; DUP 5 ; CAR ; PAIR 3 ; MEM } ; IF {} { PUSH string "FLUX_NOT_OPERATOR" ; FAILWITH } ; DUP 4 ; GET 5 ; CDR ; SWAP ; DUP ; DUG 2 ; GET 3 ; MEM ; IF {} { PUSH string "FLUX_TOKEN_UNDEFINED" ; FAILWITH } ; DUP ; GET 4 ; PUSH nat 0 ; COMPARE ; LT ; IF { DUP ; GET 4 ; DUP 5 ; CAR ; GET 6 ; DUP 3 ; GET 3 ; DUP 5 ; CAR ; PAIR ; GET ; IF_NONE { PUSH int 673 ; FAILWITH } {} ; COMPARE ; GE ; IF {} { PUSH string "FLUX_INSUFFICIENT_BALANCE" ; FAILWITH } ; DUP 4 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; DUP ; DUP 7 ; GET 3 ; DUP 9 ; CAR ; PAIR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 677 ; FAILWITH } { DROP } ; DUP 7 ; GET 4 ; DIG 10 ; CAR ; GET 6 ; DUP 9 ; GET 3 ; DUP 11 ; CAR ; PAIR ; GET ; IF_NONE { PUSH int 677 ; FAILWITH } {} ; SUB ; ISNAT ; IF_NONE { PUSH int 677 ; FAILWITH } {} ; SOME ; SWAP ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; DUP ; DUG 4 ; CAR ; GET 6 ; SWAP ; DUP ; GET 3 ; SWAP ; DUP ; DUG 3 ; CAR ; PAIR ; MEM ; IF { DIG 3 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; DUP ; DIG 6 ; DUP ; GET 3 ; SWAP ; DUP ; DUG 8 ; CAR ; PAIR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 680 ; FAILWITH } {} ; DIG 7 ; GET 4 ; ADD ; SOME ; SWAP ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; DUG 2 } { DIG 3 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; DUP 6 ; GET 4 ; SOME ; DIG 6 ; DUP ; GET 3 ; SWAP ; CAR ; PAIR ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; DUG 2 } } { DROP } } ; DROP } ; DROP } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ; DUP ; ITER { DIG 2 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; DUP 5 ; CDR ; SOME ; DIG 5 ; CAR ; UPDATE ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP } ; DROP } } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ; DUP ; ITER { DUP 3 ; GET 5 ; CDR ; SWAP ; DUP ; DUG 2 ; CAR ; MEM ; IF {} { PUSH string "FLUX_TOKEN_UNDEFINED" ; FAILWITH } ; DIG 2 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; DUP 6 ; CDR ; SOME ; DIG 6 ; CAR ; UPDATE ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP } ; DROP } { IF_LEFT { DUP ; ITER { IF_LEFT { DUP ; CAR ; SENDER ; COMPARE ; EQ ; IF { PUSH bool True } { DUP 3 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ } ; IF {} { PUSH string "FLUX_NOT_ADMIN_OR_OPERATOR" ; FAILWITH } ; DIG 2 ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; PUSH (option unit) (Some Unit) ; DIG 6 ; DUP ; GET 4 ; SWAP ; DUP ; GET 3 ; SWAP ; CAR ; PAIR 3 ; UPDATE ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP } { DUP ; CAR ; SENDER ; COMPARE ; EQ ; IF { PUSH bool True } { DUP 3 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ } ; IF {} { PUSH string "FLUX_NOT_ADMIN_OR_OPERATOR" ; FAILWITH } ; DIG 2 ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; NONE unit ; DIG 6 ; DUP ; GET 4 ; SWAP ; DUP ; GET 3 ; SWAP ; CAR ; PAIR 3 ; UPDATE ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP } } ; DROP } { DROP ; DUP ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } } } } } ; NIL operation } ; PAIR }