x
934
1018
parameter (or (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 (nat %buy_item) (nat %cancel_listing))) (or (or (pair %list_item (mutez %price) (nat %token_id)) (bytes %mint)) (or (address %set_administrator) (pair %set_display_and_thumbnail_uri (bytes %display_uri) (pair (bytes %thumbnail_uri) (nat %token_id)))))) (or (or (or (big_map %set_metadata string bytes) (address %set_metadata_assigner)) (or (nat %set_num_tokens) (mutez %set_price))) (or (or (unit %toggle_paused) (list %transfer (pair (address %from_) (list %txs (pair (address %to_) (pair (nat %token_id) (nat %amount))))))) (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 %withdraw_mutez (mutez %amount) (address %destination))))));storage (pair (pair (pair (pair (address %administrator) (address %artist_address)) (pair (bytes %base_url) (bytes %collection_name))) (pair (pair (big_map %creators nat address) (set %hashes (option bytes))) (pair (nat %last_token_id) (pair (big_map %ledger nat address) (big_map %listings nat mutez))))) (pair (pair (pair (big_map %metadata string bytes) (address %metadata_assigner)) (pair (nat %num_tokens) (big_map %operators (pair (address %owner) (pair (address %operator) (nat %token_id))) unit))) (pair (pair (bool %paused) (mutez %price)) (pair (map %royalties nat (map address nat)) (pair (big_map %token_metadata nat (pair (nat %token_id) (map %token_info string bytes))) (address %treasury))))));code { UNPAIR ; IF_LEFT { IF_LEFT { IF_LEFT { NIL operation ; DUP ; DUP 3 ; CDR ; PUSH mutez 0 ; DUP 5 ; CAR ; MAP { DUP 7 ; GET 9 ; SWAP ; DUP ; DUG 2 ; CDR ; MEM ; IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ; DUP ; CAR ; DUP 8 ; CAR ; GET 7 ; DUP 3 ; CDR ; GET ; IF_NONE { PUSH int 370 ; FAILWITH } {} ; COMPARE ; EQ ; IF { PUSH nat 1 } { PUSH nat 0 } ; SWAP ; PAIR } ; DIG 4 ; DROP ; DIG 4 ; DROP ; TRANSFER_TOKENS ; CONS } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; GET 8 ; SWAP ; DUP ; DUG 2 ; MEM ; IF {} { PUSH string "TOKEN_NOT_LISTED" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; CAR ; GET 8 ; SWAP ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 171 ; FAILWITH } {} ; AMOUNT ; COMPARE ; EQ ; IF {} { PUSH string "WRONG_AMOUNT" ; FAILWITH } ; NIL operation ; DUP 3 ; CAR ; GET 3 ; CAR ; DUP 3 ; GET ; IF_NONE { PUSH int 174 ; FAILWITH } {} ; CONTRACT unit ; IF_NONE { PUSH int 174 ; FAILWITH } {} ; PUSH nat 1000 ; PUSH nat 50 ; DUP 6 ; CAR ; GET 8 ; DUP 6 ; GET ; IF_NONE { PUSH int 171 ; FAILWITH } {} ; MUL ; EDIV ; IF_NONE { PUSH int 174 ; FAILWITH } {} ; CAR ; UNIT ; TRANSFER_TOKENS ; CONS ; DUP 3 ; CAR ; CAR ; CAR ; CDR ; CONTRACT unit ; IF_NONE { PUSH int 175 ; FAILWITH } {} ; PUSH nat 1000 ; PUSH nat 50 ; DUP 6 ; CAR ; GET 8 ; DUP 6 ; GET ; IF_NONE { PUSH int 171 ; FAILWITH } {} ; MUL ; EDIV ; IF_NONE { PUSH int 175 ; FAILWITH } {} ; CAR ; UNIT ; TRANSFER_TOKENS ; CONS ; DUP 3 ; GET 10 ; CONTRACT unit ; IF_NONE { PUSH int 176 ; FAILWITH } {} ; PUSH nat 1000 ; PUSH nat 50 ; DUP 6 ; CAR ; GET 8 ; DUP 6 ; GET ; IF_NONE { PUSH int 171 ; FAILWITH } {} ; MUL ; EDIV ; IF_NONE { PUSH int 176 ; FAILWITH } {} ; CAR ; UNIT ; TRANSFER_TOKENS ; CONS ; DUP 3 ; CAR ; GET 7 ; DUP 3 ; GET ; IF_NONE { PUSH int 177 ; FAILWITH } {} ; CONTRACT unit ; IF_NONE { PUSH int 177 ; FAILWITH } {} ; PUSH nat 1000 ; PUSH nat 850 ; DUP 6 ; CAR ; GET 8 ; DUP 6 ; GET ; IF_NONE { PUSH int 171 ; FAILWITH } {} ; MUL ; EDIV ; IF_NONE { PUSH int 177 ; FAILWITH } {} ; CAR ; UNIT ; TRANSFER_TOKENS ; CONS ; DIG 2 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SENDER ; SOME ; DUP 9 ; UPDATE ; SWAP ; NONE mutez ; DIG 8 ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP } { SWAP ; DUP ; DUG 2 ; CAR ; GET 7 ; SWAP ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 165 ; FAILWITH } {} ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_OWNER" ; FAILWITH } ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; NONE mutez ; DIG 7 ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; NIL operation } } } { IF_LEFT { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; GET 7 ; SWAP ; DUP ; DUG 2 ; CDR ; GET ; IF_NONE { PUSH int 160 ; FAILWITH } {} ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_OWNER" ; FAILWITH } ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; DUP 7 ; CAR ; SOME ; DIG 7 ; CDR ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; NIL operation } { SWAP ; DUP ; DUG 2 ; GET 5 ; CAR ; IF { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CDR ; SENDER ; COMPARE ; NEQ } { PUSH bool False } ; IF { PUSH string "CONTRACT_IS_PAUSED" ; FAILWITH } {} ; SWAP ; DUP ; DUG 2 ; CAR ; GET 5 ; DUP 3 ; GET 5 ; CDR ; AMOUNT ; COMPARE ; EQ ; IF {} { PUSH string "WRONG_AMOUNT" ; FAILWITH } ; DUP 3 ; GET 3 ; GET 3 ; SWAP ; DUP ; DUG 2 ; COMPARE ; LT ; IF {} { PUSH string "ALL_TOKENS_MINTED" ; FAILWITH } ; DUP 3 ; CAR ; GET 3 ; CDR ; DUP 3 ; BLAKE2B ; PUSH nat 16 ; PUSH nat 0 ; SLICE ; MEM ; IF { PUSH string "DUPLICATE_MINT" ; FAILWITH } {} ; DIG 2 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; PUSH bool True ; DUP 8 ; BLAKE2B ; PUSH nat 16 ; PUSH nat 0 ; SLICE ; UPDATE ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; PAIR ; DUG 2 ; DUP ; NIL string ; PUSH nat 0 ; DUP 3 ; COMPARE ; EQ ; IF { PUSH string "0" ; CONS } {} ; PUSH nat 0 ; DUP 3 ; COMPARE ; GT ; LOOP { PUSH (map nat string) { Elt 0 "0" ; Elt 1 "1" ; Elt 2 "2" ; Elt 3 "3" ; Elt 4 "4" ; Elt 5 "5" ; Elt 6 "6" ; Elt 7 "7" ; Elt 8 "8" ; Elt 9 "9" } ; PUSH nat 10 ; DUP 4 ; EDIV ; IF_NONE { PUSH int 20 ; FAILWITH } { CDR } ; GET ; IF_NONE { PUSH int 20 ; FAILWITH } {} ; CONS ; PUSH nat 10 ; DIG 2 ; EDIV ; IF_NONE { PUSH int 21 ; FAILWITH } { CAR } ; SWAP ; PUSH nat 0 ; DUP 3 ; COMPARE ; GT } ; SWAP ; DROP ; DUP 4 ; DUP ; GET 9 ; EMPTY_MAP string bytes ; DIG 5 ; PUSH bytes 0x3f ; DUP 8 ; CAR ; CAR ; GET 3 ; CONCAT ; CONCAT ; SOME ; PUSH string "artifactUri" ; UPDATE ; DUP 4 ; CONCAT ; PACK ; PUSH nat 6 ; DIG 5 ; CONCAT ; PACK ; SIZE ; SUB ; ISNAT ; IF_NONE { PUSH int 39 ; FAILWITH } {} ; PUSH nat 6 ; SLICE ; IF_NONE { PUSH string "Could not encode string to bytes." ; FAILWITH } {} ; PUSH bytes 0x2023 ; DIG 6 ; CAR ; CAR ; GET 4 ; CONCAT ; CONCAT ; SOME ; PUSH string "name" ; UPDATE ; PUSH (option bytes) (Some 0x45444954415254) ; PUSH string "symbol" ; UPDATE ; PUSH (option bytes) (Some 0x30) ; PUSH string "decimals" ; UPDATE ; DUP 4 ; PAIR ; SOME ; DUP 4 ; UPDATE ; UPDATE 9 ; DUP ; DUG 2 ; DUP ; GET 7 ; EMPTY_MAP address nat ; PUSH (option nat) (Some 50) ; SENDER ; UPDATE ; PUSH (option nat) (Some 50) ; DUP 6 ; GET 10 ; UPDATE ; PUSH (option nat) (Some 50) ; DIG 5 ; CAR ; CAR ; CAR ; CDR ; UPDATE ; SOME ; DUP 4 ; UPDATE ; UPDATE 7 ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CDR ; SENDER ; COMPARE ; EQ ; IF { SWAP ; DUP ; GET 7 ; DUP ; DUP 4 ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 118 ; FAILWITH } {} ; PUSH (option nat) (Some 100) ; SENDER ; UPDATE ; SOME ; SWAP ; UPDATE ; UPDATE 7 ; SWAP } {} ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SENDER ; SOME ; DUP 8 ; UPDATE ; PAIR ; SWAP ; PAIR ; SWAP ; UNPAIR ; SENDER ; SOME ; DIG 6 ; UPDATE ; PAIR ; SWAP ; UNPAIR ; PUSH nat 1 ; ADD ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; DUP ; GET 5 ; CDR ; PUSH mutez 0 ; COMPARE ; LT ; IF { DUP ; CAR ; CAR ; CAR ; CDR ; CONTRACT unit ; IF_NONE { PUSH int 125 ; FAILWITH } {} ; NIL operation ; SWAP ; PUSH nat 1000 ; PUSH nat 950 ; AMOUNT ; MUL ; EDIV ; IF_NONE { PUSH int 124 ; FAILWITH } {} ; CAR ; UNIT ; TRANSFER_TOKENS ; CONS ; SWAP ; DUP ; DUG 2 ; GET 10 ; CONTRACT unit ; IF_NONE { PUSH int 126 ; FAILWITH } {} ; PUSH nat 1000 ; PUSH nat 950 ; AMOUNT ; MUL ; EDIV ; IF_NONE { PUSH int 124 ; FAILWITH } {} ; CAR ; AMOUNT ; SUB_MUTEZ ; IF_NONE { PUSH int 126 ; FAILWITH } {} ; UNIT ; TRANSFER_TOKENS ; CONS } { NIL operation } } } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ; SWAP ; UNPAIR ; UNPAIR ; UNPAIR ; CDR ; DIG 4 ; PAIR ; PAIR ; PAIR ; PAIR } { SWAP ; DUP ; DUG 2 ; GET 3 ; CAR ; CDR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_METADATA_ASSIGNER" ; FAILWITH } ; SWAP ; DUP ; GET 9 ; DUP ; DUP 4 ; GET 4 ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 150 ; FAILWITH } {} ; DUP ; CDR ; DUP 6 ; CAR ; SOME ; PUSH string "displayUri" ; UPDATE ; UPDATE 2 ; SOME ; SWAP ; UPDATE ; UPDATE 9 ; DUP ; GET 9 ; DUP ; DUP 4 ; GET 4 ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 151 ; FAILWITH } {} ; DUP ; CDR ; DIG 5 ; GET 3 ; SOME ; PUSH string "thumbnailUri" ; UPDATE ; UPDATE 2 ; SOME ; SWAP ; UPDATE ; UPDATE 9 } ; NIL operation } } } { IF_LEFT { IF_LEFT { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; CDR ; DIG 4 ; PAIR ; PAIR ; PAIR ; SWAP ; PAIR } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; CAR ; DIG 4 ; SWAP ; PAIR ; PAIR ; PAIR ; SWAP ; PAIR } } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CDR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ARTIST" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 3 ; GET 3 ; SWAP ; DUP ; DUG 2 ; COMPARE ; LE ; IF {} { PUSH string "FA2_CANNOT_INCREASE_NUM_TOKENS" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; CAR ; GET 5 ; SWAP ; DUP ; DUG 2 ; COMPARE ; GE ; IF {} { PUSH string "FA2_CAN_ONLY_BURN_UNMINTED_TOKENS" ; FAILWITH } ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; CDR ; DIG 4 ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CDR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ARTIST" ; FAILWITH } ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; CAR ; DIG 4 ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR } } ; NIL operation } { IF_LEFT { IF_LEFT { DROP ; DUP ; CAR ; CAR ; CAR ; CDR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ARTIST" ; FAILWITH } ; DUP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; CDR ; DIG 4 ; GET 5 ; CAR ; NOT ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR } { DUP ; ITER { DUP ; CDR ; ITER { DUP 4 ; GET 9 ; SWAP ; DUP ; DUG 2 ; GET 3 ; MEM ; IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; CAR ; SENDER ; COMPARE ; EQ ; IF { PUSH bool True } { DUP 4 ; GET 3 ; GET 4 ; SWAP ; DUP ; DUG 2 ; GET 3 ; SENDER ; DUP 5 ; CAR ; PAIR 3 ; MEM } ; IF {} { PUSH string "FA2_NOT_OPERATOR" ; FAILWITH } ; DUP ; GET 4 ; PUSH nat 0 ; COMPARE ; LT ; IF { DUP ; GET 4 ; PUSH nat 1 ; COMPARE ; EQ ; IF { SWAP ; DUP ; DUG 2 ; CAR ; DUP 5 ; CAR ; GET 7 ; DUP 3 ; GET 3 ; GET ; IF_NONE { PUSH int 199 ; FAILWITH } {} ; COMPARE ; EQ } { PUSH bool False } ; IF {} { PUSH string "FA2_INSUFFICIENT_BALANCE" ; FAILWITH } ; DIG 3 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; DUP 7 ; CAR ; SOME ; DUP 8 ; GET 3 ; UPDATE ; SWAP ; NONE mutez ; DIG 7 ; GET 3 ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; DUG 2 } { DROP } } ; DROP } ; DROP } ; NIL operation } { IF_LEFT { DUP ; ITER { IF_LEFT { DUP ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_OWNER" ; FAILWITH } ; DIG 2 ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; PUSH (option unit) (Some Unit) ; DIG 6 ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP } { DUP ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_OWNER" ; FAILWITH } ; DIG 2 ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; NONE unit ; DIG 6 ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP } } ; DROP ; NIL operation } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ; DUP ; CDR ; CONTRACT unit ; IF_NONE { PUSH int 546 ; FAILWITH } {} ; NIL operation ; SWAP ; DIG 2 ; CAR ; UNIT ; TRANSFER_TOKENS ; CONS } } } } ; NIL operation ; SWAP ; ITER { CONS } ; PAIR }