File 1 of 1: HelloBaseScoreGoal.sol
pragma solidity ^0.8.0;
contract HelloBaseScoreGoal {
mapping(address => bool) private _hasScoredGoal;
event ScoredGoal(address indexed scorer);
function scoreGoal() public {
require(!_hasScoredGoal[msg.sender], "You have already scored a goal!");
_hasScoredGoal[msg.sender] = true;
emit ScoredGoal(msg.sender);
}
function hasScoredGoal(address scorer) public view returns (bool) {
return _hasScoredGoal[scorer];
}
}
{
"compilationTarget": {
"src/hello-base/HelloBaseScoreGoal.sol": "HelloBaseScoreGoal"
},
"evmVersion": "paris",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 9999999
},
"remappings": [
":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/",
":ds-test/=lib/forge-std/lib/ds-test/src/",
":forge-std/=lib/forge-std/src/",
":optimism-bedrock/=node_modules/@eth-optimism/contracts-bedrock/contracts/"
]
}