x
43
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 %update_record (bytes %name) (option %address address)
(address %owner)
(map %data string bytes)));
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 "UpdateRecord" ;
PAIR 3 ;
PAIR 3 ;
UNPAIR 3 ;
TRANSFER_TOKENS ;
CONS } ;
PAIR } }