x
633
parameter (or (or (or %adminAction (or (pair %burn (pair address nat) nat) (pair %mint (pair address nat) nat)) (address %updateAdmin)) (or %assets (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 %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))))))) (unit %confirmAdmin));storage (pair (big_map %metadata string bytes) (pair (pair %assets (pair (pair (big_map %ledger (pair address nat) nat) (nat %next_token_id)) (pair (big_map %operators (pair address (pair address nat)) unit) (big_map %token_metadata nat (pair (nat %token_id) (map %token_info string bytes))))) (big_map %token_total_supply nat nat)) (pair (address %admin) (option %pendingAdmin address))));code { LAMBDA (pair nat (pair (pair (pair (big_map (pair address nat) nat) nat) (pair (big_map (pair address (pair address nat)) unit) (big_map nat (pair nat (map string bytes))))) (big_map nat nat))) nat { UNPAIR ; SWAP ; CDR ; SWAP ; GET ; IF_NONE { PUSH nat 0 } {} } ; LAMBDA (pair (pair address nat) (pair (pair (pair (big_map (pair address nat) nat) nat) (pair (big_map (pair address (pair address nat)) unit) (big_map nat (pair nat (map string bytes))))) (big_map nat nat))) nat { UNPAIR ; UNPAIR ; DIG 2 ; CAR ; CAR ; CAR ; DUG 2 ; PAIR ; GET ; IF_NONE { PUSH nat 0 } {} } ; LAMBDA address unit { SENDER ; COMPARE ; NEQ ; IF { PUSH string "FA2_NOT_OWNER" ; FAILWITH } { PUSH unit Unit } } ; LAMBDA (pair nat (pair (pair (pair (big_map (pair address nat) nat) nat) (pair (big_map (pair address (pair address nat)) unit) (big_map nat (pair nat (map string bytes))))) (big_map nat nat))) unit { UNPAIR ; SWAP ; CAR ; CAR ; CDR ; SWAP ; COMPARE ; GE ; IF { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } { PUSH unit Unit } } ; NIL operation ; LAMBDA address unit { PUSH bool False ; SWAP ; SENDER ; COMPARE ; EQ ; COMPARE ; EQ ; IF { PUSH string "INVALID_ACCESS" ; FAILWITH } { PUSH unit Unit } } ; DIG 6 ; UNPAIR ; IF_LEFT { IF_LEFT { DIG 5 ; DROP ; SWAP ; DUP ; DUG 2 ; GET 5 ; DIG 3 ; SWAP ; EXEC ; DROP ; IF_LEFT { IF_LEFT { DUP ; DUG 2 ; CDR ; PAIR ; SWAP ; DUP ; DUG 2 ; CAR ; CDR ; DIG 2 ; CAR ; CAR ; DIG 2 ; UNPAIR ; SWAP ; DUP ; GET 3 ; DIG 2 ; PAIR ; DIG 3 ; DIG 3 ; DIG 2 ; UNPAIR ; SWAP ; DUP ; DUG 2 ; DUP 5 ; PAIR ; DIG 7 ; SWAP ; EXEC ; DROP ; SWAP ; DUP ; DUG 2 ; DUP 5 ; DUP 5 ; PAIR ; PAIR ; DUP 8 ; SWAP ; EXEC ; SWAP ; DUP ; DUG 2 ; SWAP ; COMPARE ; LT ; IF { PUSH string "FA2_INSUFFICIENT_BALANCE" ; FAILWITH } {} ; SWAP ; DUP ; DUG 2 ; CDR ; DUP 3 ; CAR ; CDR ; DUP 4 ; CAR ; CAR ; CDR ; DUP 5 ; CAR ; CAR ; CAR ; DUP 5 ; DIG 6 ; DUP 9 ; DUP 9 ; PAIR ; PAIR ; DIG 11 ; SWAP ; EXEC ; SUB ; ABS ; DUP 8 ; DIG 7 ; PAIR ; SWAP ; SOME ; SWAP ; UPDATE ; PAIR ; PAIR ; PAIR ; DUP ; CDR ; DUG 2 ; DUP ; DUG 3 ; DUP 5 ; PAIR ; DIG 7 ; SWAP ; EXEC ; SUB ; ABS ; DIG 3 ; SWAP ; SOME ; SWAP ; UPDATE ; SWAP ; CAR ; PAIR ; UPDATE 3 ; SWAP ; PAIR } { DUP ; DUG 2 ; CDR ; PAIR ; SWAP ; DUP ; DUG 2 ; CAR ; CDR ; DIG 2 ; CAR ; CAR ; DIG 2 ; UNPAIR ; SWAP ; DUP ; GET 3 ; DIG 2 ; PAIR ; DIG 3 ; DIG 3 ; DIG 2 ; UNPAIR ; SWAP ; DUP ; DUG 2 ; DUP 5 ; PAIR ; DIG 7 ; SWAP ; EXEC ; DROP ; SWAP ; DUP ; DUG 2 ; CDR ; DUP 3 ; CAR ; CDR ; DUP 4 ; CAR ; CAR ; CDR ; DUP 5 ; CAR ; CAR ; CAR ; DUP 5 ; DIG 6 ; DUP 9 ; DUP 9 ; PAIR ; PAIR ; DIG 11 ; SWAP ; EXEC ; ADD ; DUP 8 ; DIG 7 ; PAIR ; SWAP ; SOME ; SWAP ; UPDATE ; PAIR ; PAIR ; PAIR ; DUP ; CDR ; DUG 2 ; DUP ; DUG 3 ; DUP 5 ; PAIR ; DIG 7 ; SWAP ; EXEC ; ADD ; DIG 3 ; SWAP ; SOME ; SWAP ; UPDATE ; SWAP ; CAR ; PAIR ; UPDATE 3 ; SWAP ; PAIR } } { DIG 3 ; DIG 4 ; DIG 5 ; DROP 3 ; SOME ; UPDATE 6 ; SWAP ; PAIR } } { DIG 2 ; DIG 3 ; DIG 7 ; DROP 3 ; SWAP ; DUP ; DUG 2 ; GET 3 ; SWAP ; IF_LEFT { DIG 4 ; DROP ; IF_LEFT { SWAP ; DUP ; DIG 2 ; NIL (pair (pair address nat) nat) ; SWAP ; DUP ; DUG 2 ; CAR ; ITER { SWAP ; DUP 4 ; DUP 3 ; CDR ; PAIR ; DUP 8 ; SWAP ; EXEC ; DROP ; SWAP ; DUP ; DUG 2 ; DUP 5 ; DUP 4 ; CDR ; DIG 4 ; CAR ; PAIR ; PAIR ; DUP 9 ; SWAP ; EXEC ; SWAP ; PAIR ; CONS } ; DIG 2 ; DIG 5 ; DIG 6 ; DROP 3 ; NIL operation ; DIG 2 ; CDR ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS ; PAIR } { ITER { DUP ; DUG 2 ; CDR ; ITER { SWAP ; DUP ; DUP 3 ; GET 3 ; PAIR ; SENDER ; DUP 5 ; CAR ; DIG 2 ; UNPAIR ; PUSH bool False ; DIG 2 ; CAR ; CDR ; CAR ; DIG 2 ; DUP 5 ; PAIR ; DUP 4 ; PAIR ; MEM ; COMPARE ; EQ ; DUG 2 ; COMPARE ; NEQ ; AND ; IF { PUSH string "FA2_NOT_OPERATOR" ; FAILWITH } {} ; DUP ; DUP 3 ; GET 3 ; PAIR ; DUP 6 ; SWAP ; EXEC ; DROP ; DUP ; DUP 3 ; GET 3 ; DUP 5 ; CAR ; PAIR ; PAIR ; DUP 7 ; SWAP ; EXEC ; DUP 3 ; GET 4 ; SWAP ; DUP ; DUG 2 ; COMPARE ; LT ; IF { PUSH string "FA2_INSUFFICIENT_BALANCE" ; FAILWITH } {} ; SWAP ; DUP ; DUG 2 ; CDR ; DUP 3 ; CAR ; CDR ; DUP 4 ; CAR ; CAR ; CDR ; DIG 4 ; CAR ; CAR ; CAR ; DUP 6 ; GET 4 ; DIG 5 ; SUB ; ABS ; DUP 6 ; GET 3 ; DUP 8 ; CAR ; PAIR ; SWAP ; SOME ; SWAP ; UPDATE ; PAIR ; PAIR ; PAIR ; DUP ; DUP 3 ; GET 3 ; DUP 4 ; CAR ; PAIR ; PAIR ; DUP 7 ; SWAP ; EXEC ; SWAP ; DUP ; DUG 2 ; CDR ; DUP 3 ; CAR ; CDR ; DUP 4 ; CAR ; CAR ; CDR ; DIG 4 ; CAR ; CAR ; CAR ; DUP 6 ; GET 4 ; DIG 5 ; ADD ; DUP 6 ; GET 3 ; DIG 6 ; CAR ; PAIR ; SWAP ; SOME ; SWAP ; UPDATE ; PAIR ; PAIR ; PAIR } ; SWAP ; DROP } ; DIG 2 ; DIG 3 ; DROP 2 ; NIL operation ; PAIR } } { DIG 5 ; DROP ; ITER { IF_LEFT { SWAP ; DUP ; DUG 2 ; SWAP ; DUP ; DUG 2 ; GET 4 ; PAIR ; DUP 5 ; SWAP ; EXEC ; DROP ; DUP ; CAR ; DUP 6 ; SWAP ; EXEC ; DROP ; SWAP ; DUP ; DUG 2 ; CDR ; DUP 3 ; CAR ; CDR ; CDR ; DUP 4 ; CAR ; CDR ; CAR ; PUSH unit Unit ; SOME ; DUP 5 ; GET 4 ; DUP 6 ; GET 3 ; PAIR ; DIG 5 ; CAR ; PAIR ; UPDATE ; PAIR ; DIG 2 ; CAR ; CAR ; PAIR ; PAIR } { SWAP ; DUP ; DUG 2 ; SWAP ; DUP ; DUG 2 ; GET 4 ; PAIR ; DUP 5 ; SWAP ; EXEC ; DROP ; DUP ; CAR ; DUP 6 ; SWAP ; EXEC ; DROP ; SWAP ; DUP ; DUG 2 ; CDR ; DUP 3 ; CAR ; CDR ; CDR ; DUP 4 ; CAR ; CDR ; CAR ; DUP 4 ; GET 4 ; DUP 5 ; GET 3 ; PAIR ; DIG 4 ; CAR ; PAIR ; NONE unit ; SWAP ; UPDATE ; PAIR ; DIG 2 ; CAR ; CAR ; PAIR ; PAIR } } ; DIG 2 ; DIG 3 ; DROP 2 ; NIL operation ; PAIR } ; DUP ; DUG 2 ; CDR ; UPDATE 3 ; SWAP ; CAR ; PAIR } } { DIG 4 ; DIG 5 ; DIG 6 ; DIG 7 ; DROP 5 ; DUP ; GET 6 ; IF_NONE { PUSH string "INVALID_PENDING_ADMIN" ; FAILWITH } {} ; DUP ; DIG 3 ; SWAP ; EXEC ; DROP ; UPDATE 5 ; NONE address ; UPDATE 6 ; SWAP ; PAIR } }