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