pragma solidity >=0.4.24; contract SimpleStorage { event ValueChanged(address indexed author, address indexed oldAuthor, string oldValue, string newValue); address public lastSender; string _value; string _otherValue; constructor(string memory value) public { emit ValueChanged(msg.sender, address(0), _value, value); _value = value; } function getValue() view public returns (string memory) { return _value; } function setValue(string memory value) public { emit ValueChanged(msg.sender, lastSender, _value, value); _value = value; lastSender = msg.sender; } function setValues(string memory value, string memory value2) public { _value = value; _otherValue = value2; lastSender = msg.sender; } function _hashPuzzle() public view returns (uint256) { return 100; } }