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 } }