x
596
parameter (or (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))))) (address %declare_ownership)) (or (unit %claim_ownership) (address %set_coowner))) (or (or (unit %pause) (unit %unpause)) (or (pair %set_metadata (string %k) (option %d bytes)) (pair %set_token_metadata (nat %tid) (map %tdata string bytes))))) (or (or (or (list %update_tokens_metadatas (pair (nat %mup_id) (list %mup_lines (pair (string %mul_key) (bytes %mul_value))))) (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)))))) (or (list %transfer (pair (address %from_) (list %txs (pair (address %to_) (pair (nat %token_id) (nat %amount)))))) (string %set_token_metadata_path))) (or (or (address %add_minter) (address %remove_minter)) (or (list %mint_list address) (nat %burn)))));storage (pair (address %owner) (pair (address %coowner) (pair (string %token_metadata_path) (pair (option %owner_candidate address) (pair (bool %paused) (pair (big_map %token_metadata nat (pair (nat %token_id) (map %token_info string bytes))) (pair (big_map %ledger nat address) (pair (set %operator (pair address (pair nat address))) (pair (big_map %minters address unit) (pair (nat %next_token_id) (big_map %metadata string bytes)))))))))));code { LAMBDA nat string { PUSH unit Unit ; PUSH nat 0 ; DUP 3 ; COMPARE ; GT ; IF { PUSH string "" ; EMPTY_MAP nat string ; PUSH string "9" ; SOME ; PUSH nat 9 ; UPDATE ; PUSH string "8" ; SOME ; PUSH nat 8 ; UPDATE ; PUSH string "7" ; SOME ; PUSH nat 7 ; UPDATE ; PUSH string "6" ; SOME ; PUSH nat 6 ; UPDATE ; PUSH string "5" ; SOME ; PUSH nat 5 ; UPDATE ; PUSH string "4" ; SOME ; PUSH nat 4 ; UPDATE ; PUSH string "3" ; SOME ; PUSH nat 3 ; UPDATE ; PUSH string "2" ; SOME ; PUSH nat 2 ; UPDATE ; PUSH string "1" ; SOME ; PUSH nat 1 ; UPDATE ; PUSH string "0" ; SOME ; PUSH nat 0 ; UPDATE ; PUSH nat 0 ; DUP 5 ; COMPARE ; GT ; LOOP { PUSH nat 10 ; DUP 5 ; EDIV ; IF_NONE { PUSH string "DIV_BY_ZERO" ; FAILWITH } {} ; DUP 3 ; DUP 3 ; DUP 3 ; CDR ; GET ; IF_NONE { PUSH string "NOT_FOUND" ; FAILWITH } {} ; CONCAT ; DIP { DIG 2 ; DROP } ; DUG 2 ; DUP ; CAR ; DIP { DIG 4 ; DROP } ; DUG 4 ; DROP ; PUSH nat 0 ; DUP 5 ; COMPARE ; GT } ; DUP 2 ; DIP { DIG 2 ; DROP } ; DUG 2 ; DROP 2 } { PUSH string "0" ; SWAP ; DROP } ; DUG 1 ; DROP } ; LAMBDA (pair string string) bytes { UNPAIR 2 ; PUSH unit Unit ; DUP 3 ; PACK ; PUSH int 6 ; DUP 2 ; SIZE ; INT ; SUB ; ABS ; DUP 2 ; DUP 2 ; PUSH nat 6 ; SLICE ; IF_NONE { PUSH string "ERROR_SLICE" ; FAILWITH } {} ; DUP ; DIP { DIG 3 ; DROP } ; DUG 3 ; DROP 3 ; DUG 2 ; DROP 2 } ; NIL operation ; DIG 3 ; UNPAIR ; DIP { UNPAIR 11 } ; IF_LEFT { IF_LEFT { IF_LEFT { IF_LEFT { UNPAIR ; NIL operation ; NIL operation ; DUP 16 ; ITER { CONS } ; DUP 4 ; AMOUNT ; DUP 5 ; MAP { DUP 14 ; DUP 2 ; CDR ; GET ; IF_NONE { PUSH nat 0 } { DUP 2 ; CAR ; DUP 2 ; COMPARE ; EQ ; IF { PUSH nat 1 } { PUSH nat 0 } ; SWAP ; DROP } ; DUP 2 ; PAIR ; SWAP ; DROP } ; TRANSFER_TOKENS ; CONS ; ITER { CONS } ; DIP { DIG 13 ; DROP } ; DUG 13 ; DROP 2 ; PAIR 11 ; DIG 1 ; PAIR } { DUP 2 ; SENDER ; COMPARE ; EQ ; IF { PUSH bool True } { DUP 3 ; SENDER ; COMPARE ; EQ ; IF { PUSH bool True } { PUSH bool False } } ; NOT ; IF { PUSH string "INVALID_CALLER" ; FAILWITH } {} ; DUP ; SOME ; DIP { DIG 4 ; DROP } ; DUG 4 ; DROP ; PAIR 11 ; DIG 1 ; PAIR } } { IF_LEFT { DROP ; DUP 4 ; IF_NONE { PUSH bool False } { SENDER ; DUP 2 ; COMPARE ; EQ ; SWAP ; DROP } ; NOT ; IF { PUSH string "INVALID_CALLER" ; FAILWITH } {} ; SENDER ; SWAP ; DROP ; NONE address ; DIP { DIG 3 ; DROP } ; DUG 3 ; PAIR 11 ; DIG 1 ; PAIR } { DUP 2 ; SENDER ; COMPARE ; EQ ; NOT ; IF { PUSH string "INVALID_CALLER" ; FAILWITH } {} ; DUP ; DIP { DIG 2 ; DROP } ; DUG 2 ; DROP ; PAIR 11 ; DIG 1 ; PAIR } } } { IF_LEFT { IF_LEFT { DROP ; DUP ; SENDER ; COMPARE ; EQ ; NOT ; IF { PUSH string "INVALID_CALLER" ; FAILWITH } {} ; DUP 5 ; IF { PUSH string "CONTRACT_PAUSED" ; FAILWITH } {} ; PUSH bool True ; DIP { DIG 4 ; DROP } ; DUG 4 ; PAIR 11 ; DIG 1 ; PAIR } { DROP ; DUP ; SENDER ; COMPARE ; EQ ; NOT ; IF { PUSH string "INVALID_CALLER" ; FAILWITH } {} ; DUP 5 ; NOT ; IF { PUSH string "CONTRACT_NOT_PAUSED" ; FAILWITH } {} ; PUSH bool False ; DIP { DIG 4 ; DROP } ; DUG 4 ; PAIR 11 ; DIG 1 ; PAIR } } { IF_LEFT { UNPAIR ; SWAP ; DUP 3 ; SENDER ; COMPARE ; EQ ; NOT ; IF { PUSH string "INVALID_CALLER" ; FAILWITH } {} ; DUP 7 ; IF { PUSH string "CONTRACT_PAUSED" ; FAILWITH } {} ; DUP 13 ; DUP 2 ; DUP 4 ; UPDATE ; DIP { DIG 12 ; DROP } ; DUG 12 ; DROP 2 ; PAIR 11 ; DIG 1 ; PAIR } { UNPAIR ; SWAP ; DUP 3 ; SENDER ; COMPARE ; EQ ; IF { PUSH bool True } { DUP 11 ; SENDER ; MEM ; IF { PUSH bool True } { PUSH bool False } } ; NOT ; IF { PUSH string "INVALID_CALLER" ; FAILWITH } {} ; DUP 7 ; IF { PUSH string "CONTRACT_PAUSED" ; FAILWITH } {} ; DUP 8 ; DUP 9 ; DUP 4 ; GET ; IF_NONE { PUSH string "token_metadata" ; PUSH string "ASSET_NOT_FOUND" ; PAIR ; FAILWITH } {} ; UNPAIR ; DROP ; DUP 4 ; SWAP ; DROP ; DUP 3 ; SWAP ; PAIR ; SOME ; DUP 4 ; UPDATE ; DIP { DIG 7 ; DROP } ; DUG 7 ; DROP 2 ; PAIR 11 ; DIG 1 ; PAIR } } } } { IF_LEFT { IF_LEFT { IF_LEFT { DUP 2 ; SENDER ; COMPARE ; EQ ; IF { PUSH bool True } { DUP 10 ; SENDER ; MEM ; IF { PUSH bool True } { PUSH bool False } } ; NOT ; IF { PUSH string "INVALID_CALLER" ; FAILWITH } {} ; DUP 6 ; IF { PUSH string "CONTRACT_PAUSED" ; FAILWITH } {} ; DUP ; ITER { DUP ; CAR ; DUP 2 ; CDR ; DUP 10 ; DUP 3 ; GET ; DUP ; IF_NONE { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } {} ; DUP ; CDR ; DUP 4 ; ITER { DUP ; CAR ; DUP 2 ; CDR ; DIG 3 ; DUP 2 ; SOME ; DUP 4 ; UPDATE ; DUG 3 ; DROP 3 } ; DUP 13 ; DUP 14 ; DUP 7 ; GET ; IF_NONE { PUSH string "token_metadata" ; PUSH string "ASSET_NOT_FOUND" ; PAIR ; FAILWITH } {} ; UNPAIR ; DROP ; DUP 7 ; SWAP ; DROP ; DUP 3 ; SWAP ; PAIR ; SOME ; DUP 7 ; UPDATE ; DIP { DIG 12 ; DROP } ; DUG 12 ; DROP 6 } ; DROP ; PAIR 11 ; DIG 1 ; PAIR } { PUSH bool False ; NOT ; IF { PUSH string "FA2_OPERATORS_UNSUPPORTED" ; FAILWITH } {} ; DROP ; PAIR 11 ; DIG 1 ; PAIR } } { IF_LEFT { PUSH bool False ; NOT ; IF { PUSH string "FA2_TX_DENIED" ; FAILWITH } {} ; DROP ; PAIR 11 ; DIG 1 ; PAIR } { DUP 2 ; SENDER ; COMPARE ; EQ ; IF { PUSH bool True } { DUP 10 ; SENDER ; MEM ; IF { PUSH bool True } { PUSH bool False } } ; NOT ; IF { PUSH string "INVALID_CALLER" ; FAILWITH } {} ; DUP 6 ; IF { PUSH string "CONTRACT_PAUSED" ; FAILWITH } {} ; DUP ; DIP { DIG 3 ; DROP } ; DUG 3 ; DROP ; PAIR 11 ; DIG 1 ; PAIR } } } { IF_LEFT { IF_LEFT { DUP 2 ; SENDER ; COMPARE ; EQ ; NOT ; IF { PUSH string "INVALID_CALLER" ; FAILWITH } {} ; DUP 6 ; IF { PUSH string "CONTRACT_PAUSED" ; FAILWITH } {} ; DUP 10 ; DUP 2 ; MEM ; IF { PUSH string "minters" ; PUSH string "KEY_EXISTS" ; PAIR ; FAILWITH } { DUP 10 ; PUSH unit Unit ; SOME ; DUP 3 ; UPDATE ; DIP { DIG 9 ; DROP } ; DUG 9 } ; DROP ; PAIR 11 ; DIG 1 ; PAIR } { DUP 2 ; SENDER ; COMPARE ; EQ ; NOT ; IF { PUSH string "INVALID_CALLER" ; FAILWITH } {} ; DUP 6 ; IF { PUSH string "CONTRACT_PAUSED" ; FAILWITH } {} ; DUP 10 ; NONE unit ; DUP 3 ; UPDATE ; DIP { DIG 9 ; DROP } ; DUG 9 ; DROP ; PAIR 11 ; DIG 1 ; PAIR } } { IF_LEFT { DUP 10 ; SENDER ; MEM ; NOT ; IF { PUSH string "INVALID_CALLER" ; FAILWITH } {} ; DUP 6 ; IF { PUSH string "CONTRACT_PAUSED" ; FAILWITH } {} ; PUSH nat 51 ; DUP 2 ; SIZE ; COMPARE ; LT ; NOT ; IF { PUSH string "LIST_SIZE_EXCEDEED" ; FAILWITH } {} ; DUP ; ITER { DUP 9 ; DUP 13 ; MEM ; IF { PUSH string "ledger" ; PUSH string "KEY_EXISTS" ; PAIR ; FAILWITH } { DUP 9 ; DUP 2 ; SOME ; DUP 14 ; UPDATE ; DIP { DIG 8 ; DROP } ; DUG 8 } ; PUSH string ".json" ; DUP 17 ; DUP 14 ; EXEC ; DUP 7 ; CONCAT ; CONCAT ; EMPTY_MAP string bytes ; DUP 17 ; DUP 3 ; PUSH string "ERROR_SLICE" ; PAIR ; EXEC ; SOME ; PUSH string "" ; UPDATE ; DUP 10 ; DUP 15 ; MEM ; IF { PUSH string "token_metadata" ; PUSH string "KEY_EXISTS" ; PAIR ; FAILWITH } { DUP 10 ; DUP 2 ; DUP 16 ; PAIR ; SOME ; DUP 16 ; UPDATE ; DIP { DIG 9 ; DROP } ; DUG 9 } ; PUSH nat 1 ; DUP 15 ; ADD ; DIP { DIG 13 ; DROP } ; DUG 13 ; DROP 3 } ; DROP ; PAIR 11 ; DIG 1 ; PAIR } { DUP 8 ; DUP 2 ; GET ; IF_NONE { NONE address } { DUP ; SOME ; SWAP ; DROP } ; IF_NONE { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } {} ; SENDER ; DUP 2 ; COMPARE ; EQ ; NOT ; IF { PUSH string "CALLER_NOT_OWNER" ; FAILWITH } {} ; DUP 7 ; IF { PUSH string "CONTRACT_PAUSED" ; FAILWITH } {} ; DUP 9 ; NONE address ; DUP 4 ; UPDATE ; DIP { DIG 8 ; DROP } ; DUG 8 ; DUP 8 ; NONE (pair nat (map string bytes)) ; DUP 4 ; UPDATE ; DIP { DIG 7 ; DROP } ; DUG 7 ; DROP 2 ; PAIR 11 ; DIG 1 ; PAIR } } } } ; DIP { DROP 2 } }