x
45
parameter (or (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)))) (pair %set_child_record (bytes %label) (bytes %parent) (option %address address) (address %owner) (map %data string bytes) (option %expiry timestamp)));storage (pair (pair (address %contract) (big_map %metadata string bytes)) (address %owner));code { UNPAIR ; IF_LEFT { SWAP ; DUP ; DUG 2 ; CDR ; SENDER ; COMPARE ; EQ ; IF { SWAP ; EXEC } { DROP 2 ; PUSH string "NOT_AUTHORIZED" ; FAILWITH } } { 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 "SetChildRecord" ; PAIR 3 ; PAIR 3 ; UNPAIR 3 ; TRANSFER_TOKENS ; CONS } ; PAIR } }