parent
e7933fce47
commit
857e37e032
@ -0,0 +1,41 @@ |
||||
import './PullPaymentCapable.sol'; |
||||
import './Token.sol'; |
||||
|
||||
/* |
||||
* Bounty |
||||
* This bounty will pay out if you can cause a Token's balance |
||||
* to be lower than its totalSupply, which would mean that it doesn't |
||||
* have sufficient ether for everyone to withdraw. |
||||
*/ |
||||
|
||||
contract Bounty is PullPaymentCapable { |
||||
|
||||
bool public claimed; |
||||
mapping(address => address) public researchers; |
||||
|
||||
function() { |
||||
if (claimed) { |
||||
throw; |
||||
} |
||||
} |
||||
|
||||
function createTarget() returns(Token) { |
||||
Token target = new Token(0); |
||||
researchers[target] = msg.sender; |
||||
return target; |
||||
} |
||||
|
||||
function claim(Token target) { |
||||
address researcher = researchers[target]; |
||||
if (researcher == 0) { |
||||
throw; |
||||
} |
||||
// check Token contract invariants |
||||
if (target.totalSupply() == target.balance) { |
||||
throw; |
||||
} |
||||
asyncSend(researcher, this.balance); |
||||
claimed = true; |
||||
} |
||||
|
||||
} |
Loading…
Reference in new issue