x
363
parameter (or (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))))) (or (pair %mint (pair (address %address) (nat %amount)) (pair (map %metadata string bytes) (nat %token_id))) (address %set_administrator))) (or (or (pair %set_metadata (string %k) (bytes %v)) (bool %set_pause)) (or (list %transfer (pair (address %from_) (list %txs (pair (address %to_) (pair (nat %token_id) (nat %amount)))))) (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))))))));storage (pair (pair (pair (address %administrator) (nat %all_tokens)) (pair (big_map %ledger (pair address nat) nat) (big_map %metadata string bytes))) (pair (pair (big_map %operators (pair (address %owner) (pair (address %operator) (nat %token_id))) unit) (bool %paused)) (pair (big_map %token_metadata nat (pair (nat %token_id) (map %token_info string bytes))) (big_map %total_supply nat nat))));code { CAST (pair (or (or (pair (list (pair address nat)) (contract (list (pair (pair address nat) nat)))) (or (pair (pair address nat) (pair (map string bytes) nat)) address)) (or (or (pair string bytes) bool) (or (list (pair address (list (pair address (pair nat nat))))) (list (or (pair address (pair address nat)) (pair address (pair address nat))))))) (pair (pair (pair address nat) (pair (big_map (pair address nat) nat) (big_map string bytes))) (pair (pair (big_map (pair address (pair address nat)) unit) bool) (pair (big_map nat (pair nat (map string bytes))) (big_map nat nat))))) ; UNPAIR ; IF_LEFT { IF_LEFT { SWAP ; DUP ; DUG 2 ; GET 3 ; CDR ; IF { PUSH string "FA2_PAUSED" ; FAILWITH } {} ; DUP ; CAR ; MAP { DUP 3 ; GET 5 ; SWAP ; DUP ; DUG 2 ; CDR ; MEM ; IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ; DUP 3 ; CAR ; GET 3 ; SWAP ; DUP ; CDR ; SWAP ; DUP ; DUG 3 ; CAR ; PAIR ; MEM ; IF { DUP 3 ; CAR ; GET 3 ; SWAP ; DUP ; CDR ; SWAP ; DUP ; DUG 3 ; CAR ; PAIR ; GET ; IF_NONE { PUSH int 425 ; FAILWITH } {} ; SWAP ; PAIR } { PUSH nat 0 ; SWAP ; PAIR } } ; NIL operation ; DIG 2 ; CDR ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ; DUP ; CAR ; CDR ; PUSH nat 1 ; COMPARE ; EQ ; IF {} { PUSH string "NFT-asset: amount <> 1" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CDR ; SWAP ; DUP ; DUG 2 ; GET 4 ; COMPARE ; LT ; IF { PUSH string "NFT-asset: cannot mint twice same token" ; FAILWITH } {} ; SWAP ; DUP ; DUG 2 ; CAR ; GET 3 ; SWAP ; DUP ; GET 4 ; SWAP ; DUP ; DUG 3 ; CAR ; CAR ; PAIR ; MEM ; IF { SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; DUP ; DIG 5 ; DUP ; GET 4 ; SWAP ; DUP ; DUG 7 ; CAR ; CAR ; PAIR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 535 ; FAILWITH } {} ; DUP 7 ; CAR ; CDR ; ADD ; SOME ; SWAP ; UPDATE ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP } { SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; DUP 5 ; CAR ; CDR ; SOME ; DIG 5 ; DUP ; GET 4 ; SWAP ; DUP ; DUG 7 ; CAR ; CAR ; PAIR ; UPDATE ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP } ; SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CDR ; SWAP ; DUP ; DUG 2 ; GET 4 ; COMPARE ; LT ; IF {} { DUP ; GET 4 ; DUP 3 ; CAR ; CAR ; CDR ; COMPARE ; EQ ; IF {} { PUSH string "Token-IDs should be consecutive" ; FAILWITH } ; SWAP ; UNPAIR ; UNPAIR ; CAR ; PUSH nat 1 ; DUP 5 ; GET 4 ; ADD ; SWAP ; PAIR ; PAIR ; PAIR ; DUP ; GET 5 ; DIG 2 ; DUP ; GET 3 ; SWAP ; DUP ; DUG 4 ; GET 4 ; PAIR ; SOME ; DUP 4 ; GET 4 ; UPDATE ; UPDATE 5 ; SWAP } ; SWAP ; DUP ; DUG 2 ; DUP ; GET 6 ; DIG 3 ; GET 6 ; DUP 4 ; GET 4 ; GET ; IF_NONE { PUSH nat 0 } {} ; DUP 4 ; CAR ; CDR ; ADD ; SOME ; DIG 3 ; GET 4 ; UPDATE ; UPDATE 6 } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ; SWAP ; UNPAIR ; UNPAIR ; CDR ; DIG 3 ; PAIR ; PAIR ; PAIR } ; NIL operation } } { IF_LEFT { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; DUP 5 ; CDR ; SOME ; DIG 5 ; CAR ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; CAR ; DIG 3 ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR } } { IF_LEFT { PUSH string "FA2_TX_DENIED" ; FAILWITH } { PUSH string "FA2_OPERATORS_UNSUPPORTED" ; FAILWITH } } ; NIL operation } ; PAIR }