x
400
parameter (or (or (or (nat %burnExchTokens) (nat %buy)) (or (address %changeAdmin) (pair %updateConfig (pair (bool %buyers_whitelist_enabled) (nat %exch_price)) (nat %max_tokens_per_addr)))) (or %updateWhitelist (set %addBuyers address) (set %deleteBuyers address)));storage (pair (pair (pair (pair (address %admin) (big_map %buyers address nat)) (pair (set %buyers_whitelist address) (bool %buyers_whitelist_enabled))) (pair (pair (nat %exch_price) (address %exch_token)) (pair (nat %exch_token_id) (nat %max_tokens_per_addr)))) (pair (address %sell_token) (nat %sell_token_id)));code { LAMBDA (pair (pair (pair nat address) (pair address address)) nat) operation { DUP ; CAR ; CDR ; CDR ; CONTRACT %transfer (list (pair (address %from_) (list %txs (pair (address %to_) (pair (nat %token_id) (nat %amount)))))) ; IF_NONE { PUSH string "FA2_TOKEN_NOT_FOUND" ; FAILWITH } {} ; PUSH mutez 0 ; NIL (pair address (list (pair address (pair nat nat)))) ; DUP 4 ; CAR ; CAR ; CDR ; NIL (pair address (pair nat nat)) ; DUP 6 ; CAR ; CDR ; CAR ; DUP 7 ; CDR ; DIG 7 ; CAR ; CAR ; CAR ; SWAP ; PAIR ; SWAP ; PAIR ; CONS ; SWAP ; PAIR ; CONS ; TRANSFER_TOKENS } ; SWAP ; UNPAIR ; IF_LEFT { IF_LEFT { IF_LEFT { DIG 2 ; DROP ; SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } {} ; SWAP ; DUP ; DUG 2 ; NIL operation ; DUP 4 ; CAR ; CDR ; CDR ; CAR ; DIG 3 ; SWAP ; PAIR ; DIG 3 ; CAR ; CDR ; CAR ; CDR ; CONTRACT %burn (pair (nat %token_id) (nat %amount)) ; IF_NONE { PUSH string "FA2_TOKEN_NOT_FOUND" ; FAILWITH } {} ; PUSH mutez 0 ; DIG 2 ; TRANSFER_TOKENS ; CONS ; PAIR } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CDR ; CAR ; SENDER ; MEM ; NOT ; DUP 3 ; CAR ; CAR ; CDR ; CDR ; AND ; IF { PUSH string "NOT_IN_WHITELIST" ; FAILWITH } {} ; SWAP ; DUP ; DUG 2 ; SENDER ; SWAP ; CAR ; CAR ; CAR ; CDR ; SWAP ; GET ; IF_NONE { PUSH nat 0 } {} ; DUP 3 ; CAR ; CDR ; CDR ; CDR ; DUP 3 ; DUP 3 ; ADD ; COMPARE ; GT ; IF { PUSH string "MAX_AMOUNT_REACHED" ; FAILWITH } {} ; DUP 3 ; CAR ; CDR ; CAR ; CAR ; DUP 3 ; MUL ; DUP 3 ; DIG 2 ; ADD ; DUP 4 ; CDR ; DUP 5 ; CAR ; CDR ; DUP 6 ; CAR ; CAR ; CDR ; DUP 7 ; CAR ; CAR ; CAR ; CDR ; DIG 4 ; SOME ; SENDER ; UPDATE ; DIG 6 ; CAR ; CAR ; CAR ; CAR ; PAIR ; PAIR ; PAIR ; PAIR ; DUP ; DUP ; DUG 2 ; CDR ; CDR ; DUP 3 ; CDR ; CAR ; SENDER ; PAIR ; SELF_ADDRESS ; DIG 6 ; PAIR ; PAIR ; PAIR ; NIL operation ; SWAP ; DUP 6 ; SWAP ; EXEC ; CONS ; DUP 3 ; CAR ; CDR ; CDR ; CAR ; DIG 3 ; CAR ; CDR ; CAR ; CDR ; SELF_ADDRESS ; PAIR ; SENDER ; DIG 5 ; PAIR ; PAIR ; PAIR ; DIG 3 ; SWAP ; EXEC ; CONS ; PAIR } } { DIG 2 ; DROP ; IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } {} ; SWAP ; DUP ; DUG 2 ; CDR ; DUP 3 ; CAR ; CDR ; DUP 4 ; CAR ; CAR ; CDR ; DIG 4 ; CAR ; CAR ; CAR ; CDR ; DIG 4 ; PAIR ; PAIR ; PAIR ; PAIR ; NIL operation ; PAIR } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } {} ; SWAP ; DUP ; DUG 2 ; CDR ; DUP 3 ; CAR ; CDR ; CDR ; DUP 4 ; CAR ; CDR ; CAR ; CDR ; DUP 4 ; CAR ; CDR ; PAIR ; PAIR ; DIG 3 ; CAR ; CAR ; PAIR ; PAIR ; DUP ; CDR ; SWAP ; DUP ; DUG 2 ; CAR ; CDR ; DUP 4 ; CAR ; CAR ; DUP 4 ; CAR ; CAR ; CDR ; CAR ; PAIR ; DIG 3 ; CAR ; CAR ; CAR ; PAIR ; PAIR ; PAIR ; DUP ; CDR ; DIG 2 ; CDR ; DUP 3 ; CAR ; CDR ; CDR ; CAR ; PAIR ; DUP 3 ; CAR ; CDR ; CAR ; PAIR ; DIG 2 ; CAR ; CAR ; PAIR ; PAIR ; NIL operation ; PAIR } } } { DIG 2 ; DROP ; SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } {} ; IF_LEFT { SWAP ; DUP ; DUG 2 ; CDR ; DUP 3 ; CAR ; CDR ; DUP 4 ; CAR ; CAR ; CDR ; CDR ; DUP 5 ; CAR ; CAR ; CDR ; CAR ; DIG 4 ; ITER { PUSH bool True ; SWAP ; UPDATE } ; PAIR ; DIG 3 ; CAR ; CAR ; CAR ; PAIR ; PAIR ; PAIR } { SWAP ; DUP ; DUG 2 ; CDR ; DUP 3 ; CAR ; CDR ; DUP 4 ; CAR ; CAR ; CDR ; CDR ; DUP 5 ; CAR ; CAR ; CDR ; CAR ; DIG 4 ; ITER { PUSH bool False ; SWAP ; UPDATE } ; PAIR ; DIG 3 ; CAR ; CAR ; CAR ; PAIR ; PAIR ; PAIR } ; NIL operation ; PAIR } }