pragma solidity ^0.4.16;
contract WhoTheEth {
address owner;
uint public numberOfNames;
mapping(address => string) public names;
mapping(address => uint) public bank;
event AddedName(
address indexed _address,
string _name,
uint _time,
address indexed _referrer,
uint _value
);
function WhoTheEth() public {
owner = msg.sender;
}
function pullFunds() public {
require (bank[msg.sender] > 0);
uint value = bank[msg.sender];
bank[msg.sender] = 0;
msg.sender.transfer(value);
}
function setName(string newName) payable public {
require(msg.value >= 1 finney || numberOfNames < 500);
numberOfNames++;
names[msg.sender] = newName;
bank[owner] += msg.value;
AddedName(msg.sender, newName, now, owner, msg.value);
}
function setNameRefer(string newName, address ref) payable public {
require(msg.value >= 1 finney || numberOfNames < 500);
require(msg.sender != ref);
numberOfNames++;
names[msg.sender] = newName;
bank[owner] += msg.value / 10;
bank[ref] += msg.value - (msg.value / 10);
AddedName(msg.sender, newName, now, ref, msg.value);
}
}
{
"compilationTarget": {
"WhoTheEth.sol": "WhoTheEth"
},
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
}
[{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"bank","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"names","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newName","type":"string"}],"name":"setName","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"pullFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newName","type":"string"},{"name":"ref","type":"address"}],"name":"setNameRefer","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfNames","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"},{"indexed":false,"name":"_name","type":"string"},{"indexed":false,"name":"_time","type":"uint256"},{"indexed":true,"name":"_referrer","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"AddedName","type":"event"}]