x
471
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))))) (pair %mint (pair (address %address) (nat %amount)) (pair (map %metadata string bytes) (nat %token_id)))) (or (address %set_frontend) (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 %admin) (address %frontend)) (pair (big_map %ledger (pair address nat) nat) (big_map %metadata string bytes))) (pair (pair (big_map %operators (pair (pair address address) nat) unit) (big_map %token_metadata nat (pair (nat %token_id) (map %token_info string bytes)))) (big_map %total_supply nat nat)));code { NIL operation ; SWAP ; { { DUP ; CAR ; DIP { CDR } } } ; IF_LEFT { IF_LEFT { IF_LEFT { DIG 2 ; DROP ; DUP ; CAR ; MAP { DUP ; { DIP 3 { DUP } ; DIG 4 } ; { DIP 2 { DUP } ; DIG 3 } ; CDR ; DIG 3 ; CAR ; DIG 2 ; CAR ; CDR ; CAR ; DUG 2 ; PAIR ; GET ; IF_NONE { PUSH nat 0 } {} ; SWAP ; PAIR } ; DIG 2 ; NIL operation ; DIG 3 ; CDR ; PUSH mutez 0 ; DIG 4 ; TRANSFER_TOKENS ; CONS ; PAIR } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CDR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "failed assertion" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; CDR ; CAR ; CDR ; SWAP ; DUP ; DUG 2 ; CDR ; CDR ; MEM ; IF { PUSH string "TOKEN_ID_EXISTS" ; FAILWITH } {} ; PUSH nat 0 ; SWAP ; DUP ; DUG 2 ; CAR ; CDR ; COMPARE ; EQ ; IF { PUSH string "ZERO AMOUNT" ; FAILWITH } {} ; SWAP ; DUP ; DUG 2 ; CDR ; CDR ; { DIP 2 { DUP } ; DIG 3 } ; CDR ; CAR ; CDR ; { DIP 2 { DUP } ; DIG 3 } ; CDR ; CDR ; { DIP 3 { DUP } ; DIG 4 } ; CDR ; CAR ; SWAP ; PAIR ; { DIP 3 { DUP } ; DIG 4 } ; CDR ; CDR ; SWAP ; SOME ; SWAP ; UPDATE ; { DIP 3 { DUP } ; DIG 4 } ; CDR ; CAR ; CAR ; PAIR ; PAIR ; DIG 2 ; CAR ; PAIR ; DUP ; CDR ; SWAP ; DUP ; DUG 2 ; CAR ; CDR ; CDR ; { DIP 2 { DUP } ; DIG 3 } ; CAR ; CDR ; CAR ; { DIP 4 { DUP } ; DIG 5 } ; CAR ; CDR ; { DIP 5 { DUP } ; DIG 6 } ; CDR ; CDR ; { DIP 6 { DUP } ; DIG 7 } ; CAR ; CAR ; PAIR ; SWAP ; SOME ; SWAP ; UPDATE ; PAIR ; DIG 2 ; CAR ; CAR ; PAIR ; PAIR ; DUP ; CDR ; CDR ; { DIP 2 { DUP } ; DIG 3 } ; CAR ; CDR ; DIG 3 ; CDR ; CDR ; SWAP ; SOME ; SWAP ; UPDATE ; SWAP ; DUP ; DUG 2 ; CDR ; CAR ; PAIR ; SWAP ; CAR ; PAIR ; SWAP ; PAIR } } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "failed assertion" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; CDR ; { DIP 2 { DUP } ; DIG 3 } ; CAR ; CDR ; DIG 2 ; DIG 3 ; CAR ; CAR ; CAR ; PAIR ; PAIR ; PAIR ; SWAP ; PAIR } { ITER { DUP ; DUG 2 ; CAR ; SWAP ; DIG 2 ; CDR ; ITER { SWAP ; SENDER ; { DIP 3 { DUP } ; DIG 4 } ; COMPARE ; NEQ ; IF { DUP ; { DIP 2 { DUP } ; DIG 3 } ; GET 3 ; { DIP 4 { DUP } ; DIG 5 } ; DIG 2 ; CDR ; CAR ; CAR ; DIG 2 ; SENDER ; DIG 3 ; PAIR ; PAIR ; GET ; IF_NONE { PUSH string "FA2_NOT_OPERATOR" ; FAILWITH } {} } { PUSH unit Unit } ; DROP ; PUSH nat 0 ; { DIP 2 { DUP } ; DIG 3 } ; GET 4 ; COMPARE ; EQ ; { DIP 2 { DUP } ; DIG 3 } ; CAR ; { DIP 4 { DUP } ; DIG 5 } ; COMPARE ; EQ ; OR ; IF { SWAP ; DROP } { DUP ; { DIP 2 { DUP } ; DIG 3 } ; GET 3 ; { DIP 4 { DUP } ; DIG 5 } ; DIG 2 ; CAR ; CDR ; CAR ; DUG 2 ; PAIR ; GET ; IF_NONE { PUSH nat 0 } {} ; { DIP 2 { DUP } ; DIG 3 } ; GET 4 ; SWAP ; DUP ; DUG 2 ; COMPARE ; LT ; IF { PUSH string "FA2_INSUFFICIENT_BALANCE" ; FAILWITH } {} ; { DIP 2 { DUP } ; DIG 3 } ; GET 4 ; SWAP ; DUP ; DUG 2 ; COMPARE ; EQ ; IF { DROP ; DUP ; CDR ; SWAP ; DUP ; DUG 2 ; CAR ; CDR ; CDR ; { DIP 2 { DUP } ; DIG 3 } ; CAR ; CDR ; CAR ; { DIP 4 { DUP } ; DIG 5 } ; GET 3 ; { DIP 6 { DUP } ; DIG 7 } ; PAIR ; NONE nat ; SWAP ; UPDATE ; PAIR ; DIG 2 ; CAR ; CAR ; PAIR ; PAIR } { SWAP ; DUP ; DUG 2 ; CDR ; { DIP 2 { DUP } ; DIG 3 } ; CAR ; CDR ; CDR ; { DIP 3 { DUP } ; DIG 4 } ; CAR ; CDR ; CAR ; { DIP 5 { DUP } ; DIG 6 } ; GET 4 ; DIG 4 ; SUB ; ABS ; { DIP 5 { DUP } ; DIG 6 } ; GET 3 ; { DIP 7 { DUP } ; DIG 8 } ; PAIR ; SWAP ; SOME ; SWAP ; UPDATE ; PAIR ; DIG 2 ; CAR ; CAR ; PAIR ; PAIR } ; DUP ; CDR ; SWAP ; DUP ; DUG 2 ; CAR ; CDR ; CDR ; { DIP 2 { DUP } ; DIG 3 } ; CAR ; CDR ; CAR ; { DIP 4 { DUP } ; DIG 5 } ; GET 4 ; { DIP 4 { DUP } ; DIG 5 } ; { DIP 6 { DUP } ; DIG 7 } ; GET 3 ; { DIP 7 { DUP } ; DIG 8 } ; CAR ; DIG 2 ; CAR ; CDR ; CAR ; DUG 2 ; PAIR ; GET ; IF_NONE { PUSH nat 0 } {} ; ADD ; { DIP 5 { DUP } ; DIG 6 } ; GET 3 ; DIG 6 ; CAR ; PAIR ; SWAP ; SOME ; SWAP ; UPDATE ; PAIR ; DIG 2 ; CAR ; CAR ; PAIR ; PAIR } } ; SWAP ; DROP } ; SWAP ; PAIR } } } { ITER { IF_LEFT { DUP ; CAR ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "FA2_NOT_OWNER" ; FAILWITH } {} ; SWAP ; DUP ; DUG 2 ; CDR ; CDR ; { DIP 2 { DUP } ; DIG 3 } ; CDR ; CAR ; CDR ; { DIP 3 { DUP } ; DIG 4 } ; CDR ; CAR ; CAR ; UNIT ; { DIP 4 { DUP } ; DIG 5 } ; GET 4 ; { DIP 5 { DUP } ; DIG 6 } ; GET 3 ; DIG 6 ; CAR ; PAIR ; PAIR ; SWAP ; SOME ; SWAP ; UPDATE ; PAIR ; PAIR ; SWAP ; CAR ; PAIR } { DUP ; CAR ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "FA2_NOT_OWNER" ; FAILWITH } {} ; SWAP ; DUP ; DUG 2 ; CDR ; CDR ; { DIP 2 { DUP } ; DIG 3 } ; CDR ; CAR ; CDR ; { DIP 3 { DUP } ; DIG 4 } ; CDR ; CAR ; CAR ; { DIP 3 { DUP } ; DIG 4 } ; GET 4 ; { DIP 4 { DUP } ; DIG 5 } ; GET 3 ; DIG 5 ; CAR ; PAIR ; PAIR ; NONE unit ; SWAP ; UPDATE ; PAIR ; PAIR ; SWAP ; CAR ; PAIR } } ; SWAP ; PAIR } }