x
44
parameter (or (pair %buy (bytes %label) (nat %duration) (address %owner) (option %address address) (map %data string bytes) (nat %nonce)) (lambda %proxy_admin_update (pair (pair (address %contract) (big_map %metadata string bytes)) (address %owner)) (pair (list operation) (pair (pair (address %contract) (big_map %metadata string bytes)) (address %owner)))));storage (pair (pair (address %contract) (big_map %metadata string bytes)) (address %owner));code { UNPAIR ; IF_LEFT { SWAP ; DUP ; CAR ; CAR ; CONTRACT %execute (pair (string %action_name) (bytes %payload) (address %original_sender)) ; IF_NONE { SWAP ; DROP ; PUSH string "INVALID_CONTRACT" ; FAILWITH } { NIL operation ; SWAP ; AMOUNT ; SENDER ; DIG 5 ; PACK ; PUSH string "Buy" ; PAIR 3 ; PAIR 3 ; UNPAIR 3 ; TRANSFER_TOKENS ; CONS } ; PAIR } { SWAP ; DUP ; DUG 2 ; CDR ; SENDER ; COMPARE ; EQ ; IF { SWAP ; EXEC } { DROP 2 ; PUSH string "NOT_AUTHORIZED" ; FAILWITH } } }