# NONE if user wants to get the value # SOME (signed hash of the string, string) parameter (option (pair signature int)); return int; # The key used to update the contract # The data storage (pair key int); code {DUP; DUP; CAR; IF_NONE {PUSH tez "1.00"; # Fee pattern from July 26 AMOUNT; CMPLE; IF {FAIL} {}; # Provide the data CDR; DIP {CDDR}} {DUP; DIP{SWAP}; SWAP; CDAR; # Move key to the top DIP {DUP; CAR; DIP {CDR; H}; PAIR}; # Arrange the new piece of data CHECK_SIGNATURE; # Check to ensure the data is authentic # Update data IF {CDR; SWAP; DIP{DUP}; CDAR; PAIR} # Revert the update. This could be replaced with FAIL {DROP; DUP; CDR; DIP{CDDR}}}; # Cleanup SWAP; PAIR}