x
872
1057
parameter (or (or (or (address %add_manager) (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))))) (list %burn (pair (nat %amount) (pair (address %from_) (nat %token_id)))))) (or (or (pair %mint (address %address) (pair (nat %amount) (pair (map %metadata string bytes) (nat %token_id)))) (address %remove_manager)) (or (pair %send_hug (address %address) (map %metadata string bytes)) (address %set_administrator)))) (or (or (or (pair %set_metadata (string %k) (bytes %v)) (unit %toggle_pause)) (or (list %transfer (pair (address %from_) (list %txs (pair (address %to_) (pair (nat %token_id) (nat %amount)))))) (address %update_hux_address))) (or (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))))) (nat %update_price_of_a_hug)) (or (pair %update_token_metadata (map %metadata string bytes) (nat %token_id)) (unit %verify_administrator)))));storage (pair (pair (pair (pair %administration_panel (pair (address %administrator) (set %managers address)) (pair (bool %paused) (option %pending_administrator address))) (nat %all_tokens)) (pair (address %hux_token_address) (big_map %ledger (pair address nat) nat))) (pair (pair (big_map %metadata string bytes) (big_map %operators (pair (address %owner) (pair (address %operator) (nat %token_id))) unit)) (pair (nat %price_of_a_hug) (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 (or address (or (pair (list (pair address nat)) (contract (list (pair (pair address nat) nat)))) (list (pair nat (pair address nat))))) (or (or (pair address (pair nat (pair (map string bytes) nat))) address) (or (pair address (map string bytes)) address))) (or (or (or (pair string bytes) unit) (or (list (pair address (list (pair address (pair nat nat))))) address)) (or (or (list (or (pair address (pair address nat)) (pair address (pair address nat)))) nat) (or (pair (map string bytes) nat) unit)))) (pair (pair (pair (pair (pair address (set address)) (pair bool (option address))) nat) (pair address (big_map (pair address nat) nat))) (pair (pair (big_map string bytes) (big_map (pair address (pair address nat)) unit)) (pair nat (pair (big_map nat (pair nat (map string bytes))) (big_map nat nat)))))) ; UNPAIR ; IF_LEFT { IF_LEFT { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ; SWAP ; UNPAIR ; UNPAIR ; UNPAIR ; UNPAIR ; UNPAIR ; SWAP ; PUSH bool True ; DIG 7 ; UPDATE ; SWAP ; PAIR ; PAIR ; PAIR ; PAIR ; PAIR ; NIL operation } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; GET 3 ; IF { PUSH string "FA2_PAUSED" ; FAILWITH } {} ; DUP ; CAR ; MAP { DUP 3 ; GET 7 ; SWAP ; DUP ; DUG 2 ; CDR ; MEM ; IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ; DUP 3 ; CAR ; GET 4 ; SWAP ; DUP ; CDR ; SWAP ; DUP ; DUG 3 ; CAR ; PAIR ; MEM ; IF { DUP 3 ; CAR ; GET 4 ; SWAP ; DUP ; CDR ; SWAP ; DUP ; DUG 3 ; CAR ; PAIR ; GET ; IF_NONE { PUSH int 418 ; 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 ; GET 3 ; IF { PUSH string "FA2_PAUSED" ; FAILWITH } {} ; DUP ; ITER { DUP 3 ; GET 7 ; SWAP ; DUP ; DUG 2 ; GET 4 ; MEM ; IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ; DUP ; CAR ; DUP 4 ; CAR ; GET 4 ; DIG 2 ; DUP ; GET 4 ; SWAP ; DUP ; DUG 4 ; GET 3 ; PAIR ; GET ; IF_NONE { PUSH int 190 ; FAILWITH } {} ; COMPARE ; GE ; IF {} { PUSH string "FA2_INSUFFICIENT_BALANCE" ; FAILWITH } ; DUP 3 ; CAR ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF { PUSH bool True } { DUP ; GET 3 ; SENDER ; COMPARE ; EQ } ; IF { PUSH bool True } { DUP 3 ; CAR ; CAR ; CAR ; CAR ; CDR ; SENDER ; MEM } ; IF {} { PUSH string "FA2_NOT_ADMIN_OR_OPERATOR" ; FAILWITH } ; DUP 3 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; DUP ; DIG 5 ; DUP ; GET 4 ; SWAP ; DUP ; DUG 7 ; GET 3 ; PAIR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 323 ; FAILWITH } { DROP } ; DUP 6 ; CAR ; DIG 8 ; CAR ; GET 4 ; DIG 7 ; DUP ; GET 4 ; SWAP ; DUP ; DUG 9 ; GET 3 ; PAIR ; GET ; IF_NONE { PUSH int 324 ; FAILWITH } {} ; SUB ; ISNAT ; IF_NONE { PUSH int 323 ; FAILWITH } {} ; SOME ; SWAP ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; DUP ; DUG 3 ; DUP ; GET 8 ; DUP 3 ; CAR ; DIG 5 ; GET 8 ; DUP 5 ; GET 4 ; GET ; IF_NONE { PUSH int 327 ; FAILWITH } {} ; SUB ; ISNAT ; IF_NONE { PUSH int 326 ; FAILWITH } {} ; SOME ; DIG 3 ; GET 4 ; UPDATE ; UPDATE 8 ; SWAP } ; DROP ; NIL operation } } } { IF_LEFT { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF { PUSH bool True } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ } ; IF { PUSH bool True } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; CDR ; SENDER ; MEM } ; IF {} { PUSH string "FA2_NOT_ADMIN_OR_OPERATOR" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; CAR ; GET 4 ; SWAP ; DUP ; GET 6 ; SWAP ; DUP ; DUG 3 ; CAR ; PAIR ; MEM ; IF { SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; DUP ; DIG 5 ; DUP ; GET 6 ; SWAP ; DUP ; DUG 7 ; CAR ; PAIR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 221 ; FAILWITH } {} ; DUP 7 ; GET 3 ; ADD ; SOME ; SWAP ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP } { SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; DUP 5 ; GET 3 ; SOME ; DIG 5 ; DUP ; GET 6 ; SWAP ; DUP ; DUG 7 ; CAR ; PAIR ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP } ; SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CDR ; SWAP ; DUP ; DUG 2 ; GET 6 ; COMPARE ; LT ; IF { SWAP ; DUP ; GET 8 ; DUP ; DUP 4 ; GET 6 ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 228 ; FAILWITH } {} ; DIG 4 ; GET 3 ; ADD ; SOME ; SWAP ; UPDATE ; UPDATE 8 } { DUP ; GET 6 ; DUP 3 ; CAR ; CAR ; CDR ; COMPARE ; EQ ; IF {} { PUSH string "Token-IDs should be consecutive" ; FAILWITH } ; SWAP ; DUP ; GET 8 ; DUP 3 ; GET 3 ; SOME ; DUP 4 ; GET 6 ; UPDATE ; UPDATE 8 ; DUP ; GET 7 ; DIG 2 ; DUP ; GET 5 ; SWAP ; DUP ; DUG 4 ; GET 6 ; PAIR ; SOME ; DIG 3 ; GET 6 ; UPDATE ; UPDATE 7 ; UNPAIR ; UNPAIR ; UNPAIR ; SWAP ; PUSH nat 1 ; ADD ; SWAP ; PAIR ; PAIR ; PAIR } } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ; SWAP ; UNPAIR ; UNPAIR ; UNPAIR ; UNPAIR ; UNPAIR ; SWAP ; PUSH bool False ; DIG 7 ; UPDATE ; SWAP ; PAIR ; PAIR ; PAIR ; PAIR ; PAIR } ; NIL operation } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; GET 3 ; IF { PUSH string "FA2_PAUSED" ; FAILWITH } {} ; NIL operation ; DUP 3 ; CAR ; GET 3 ; CONTRACT %transfer (list (pair (address %from_) (list %txs (pair (address %to_) (pair (nat %token_id) (nat %amount)))))) ; IF_NONE { PUSH string "Err: here" ; FAILWITH } {} ; PUSH mutez 0 ; NIL (pair address (list (pair address (pair nat nat)))) ; NIL (pair address (pair nat nat)) ; DUP 7 ; GET 5 ; PUSH nat 0 ; DUP 8 ; CAR ; PAIR 3 ; CONS ; SENDER ; PAIR ; CONS ; TRANSFER_TOKENS ; CONS ; DUP 3 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; PUSH (option nat) (Some 1) ; DIG 7 ; CAR ; CAR ; CDR ; DUP 8 ; CAR ; PAIR ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; DUP ; DUG 3 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; PUSH (option nat) (Some 1) ; DIG 7 ; CAR ; CAR ; CDR ; SENDER ; PAIR ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; DUP ; DUG 3 ; DUP ; GET 8 ; PUSH (option nat) (Some 2) ; DIG 5 ; CAR ; CAR ; CDR ; UPDATE ; UPDATE 8 ; DUP ; DUG 3 ; DUP ; GET 7 ; DIG 3 ; CDR ; DUP 5 ; CAR ; CAR ; CDR ; PAIR ; SOME ; DIG 4 ; CAR ; CAR ; CDR ; UPDATE ; UPDATE 7 ; UNPAIR ; UNPAIR ; UNPAIR ; SWAP ; PUSH nat 1 ; ADD ; SWAP ; PAIR ; PAIR ; PAIR ; SWAP } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ; SWAP ; UNPAIR ; UNPAIR ; UNPAIR ; DIG 4 ; SOME ; UPDATE 4 ; PAIR ; PAIR ; PAIR ; NIL operation } } } } { IF_LEFT { IF_LEFT { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; DUP 5 ; CDR ; SOME ; DIG 5 ; CAR ; UPDATE ; PAIR ; PAIR ; SWAP ; PAIR } { DROP ; DUP ; CAR ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ; DUP ; UNPAIR ; UNPAIR ; UNPAIR ; DIG 4 ; CAR ; CAR ; CAR ; GET 3 ; NOT ; UPDATE 3 ; PAIR ; PAIR ; PAIR } } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; GET 3 ; IF { PUSH string "FA2_PAUSED" ; FAILWITH } {} ; DUP ; ITER { DUP ; CDR ; ITER { DUP 4 ; CAR ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF { PUSH bool True } { SWAP ; DUP ; DUG 2 ; CAR ; SENDER ; COMPARE ; EQ } ; IF { PUSH bool True } { DUP 4 ; GET 3 ; CDR ; SWAP ; DUP ; DUG 2 ; GET 3 ; SENDER ; DUP 5 ; CAR ; PAIR 3 ; MEM } ; IF {} { PUSH string "FA2_NOT_OPERATOR" ; FAILWITH } ; DUP 4 ; GET 7 ; SWAP ; DUP ; DUG 2 ; GET 3 ; MEM ; IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ; DUP ; GET 4 ; PUSH nat 0 ; COMPARE ; LT ; IF { DUP ; GET 4 ; DUP 5 ; CAR ; GET 4 ; DUP 3 ; GET 3 ; DUP 5 ; CAR ; PAIR ; GET ; IF_NONE { PUSH int 190 ; FAILWITH } {} ; COMPARE ; GE ; IF {} { PUSH string "FA2_INSUFFICIENT_BALANCE" ; FAILWITH } ; DUP 4 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; DUP ; DUP 6 ; GET 3 ; DUP 8 ; CAR ; PAIR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 369 ; FAILWITH } { DROP } ; DUP 6 ; GET 4 ; DIG 9 ; CAR ; GET 4 ; DUP 8 ; GET 3 ; DUP 10 ; CAR ; PAIR ; GET ; IF_NONE { PUSH int 370 ; FAILWITH } {} ; SUB ; ISNAT ; IF_NONE { PUSH int 369 ; FAILWITH } {} ; SOME ; SWAP ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; DUP ; DUG 4 ; CAR ; GET 4 ; SWAP ; DUP ; GET 3 ; SWAP ; DUP ; DUG 3 ; CAR ; PAIR ; MEM ; IF { DIG 3 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; DUP ; DIG 5 ; DUP ; GET 3 ; SWAP ; DUP ; DUG 7 ; CAR ; PAIR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 377 ; FAILWITH } {} ; DIG 6 ; GET 4 ; ADD ; SOME ; SWAP ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; DUG 2 } { DIG 3 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; DUP 5 ; GET 4 ; SOME ; DIG 5 ; DUP ; GET 3 ; SWAP ; CAR ; PAIR ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; DUG 2 } } { DROP } } ; DROP } ; DROP } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; CDR ; DIG 3 ; PAIR ; SWAP ; PAIR ; PAIR } } } { IF_LEFT { IF_LEFT { DUP ; ITER { IF_LEFT { DUP 3 ; CAR ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF { PUSH bool True } { DUP ; CAR ; SENDER ; COMPARE ; EQ } ; IF { PUSH bool True } { DUP 3 ; CAR ; CAR ; CAR ; CAR ; CDR ; SENDER ; MEM } ; IF {} { PUSH string "FA2_NOT_ADMIN_OR_OPERATOR" ; FAILWITH } ; DIG 2 ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; PUSH (option unit) (Some Unit) ; DIG 5 ; UPDATE ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP } { DUP 3 ; CAR ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF { PUSH bool True } { DUP ; CAR ; SENDER ; COMPARE ; EQ } ; IF { PUSH bool True } { DUP 3 ; CAR ; CAR ; CAR ; CAR ; CDR ; SENDER ; MEM } ; IF {} { PUSH string "FA2_NOT_ADMIN_OR_OPERATOR" ; FAILWITH } ; DIG 2 ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; NONE unit ; DIG 5 ; UPDATE ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP } } ; DROP } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ; UPDATE 5 } } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF { PUSH bool True } { SENDER ; SENDER ; COMPARE ; EQ } ; IF { PUSH bool True } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; CDR ; SENDER ; MEM } ; IF {} { PUSH string "FA2_NOT_ADMIN_OR_OPERATOR" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 7 ; SWAP ; DUP ; DUG 2 ; CDR ; MEM ; IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ; SWAP ; DUP ; GET 7 ; DIG 2 ; DUP ; CAR ; SWAP ; DUP ; DUG 4 ; CDR ; PAIR ; SOME ; DIG 3 ; CDR ; UPDATE ; UPDATE 7 } { DROP ; DUP ; CAR ; CAR ; CAR ; GET 4 ; IF_NONE { PUSH int 480 ; FAILWITH } {} ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_PENDING_ADMIN" ; FAILWITH } ; DUP ; UNPAIR ; UNPAIR ; UNPAIR ; UNPAIR ; CDR ; DIG 5 ; CAR ; CAR ; CAR ; GET 4 ; IF_NONE { PUSH int 480 ; FAILWITH } {} ; PAIR ; PAIR ; NONE address ; UPDATE 4 ; PAIR ; PAIR ; PAIR } } } ; NIL operation } ; PAIR }