|
@@ -1,38 +0,0 @@
|
|
-pragma solidity ^0.4.0;
|
|
|
|
-import './PullPayment.sol';
|
|
|
|
-import './token/SimpleToken.sol';
|
|
|
|
-
|
|
|
|
-/*
|
|
|
|
- * Bounty
|
|
|
|
- * This bounty will pay out if you can cause a SimpleToken'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 PullPayment {
|
|
|
|
-
|
|
|
|
- bool public claimed;
|
|
|
|
- mapping(address => address) public researchers;
|
|
|
|
-
|
|
|
|
- function() {
|
|
|
|
- if (claimed) throw;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- function createTarget() returns(SimpleToken) {
|
|
|
|
- SimpleToken target = new SimpleToken();
|
|
|
|
- researchers[target] = msg.sender;
|
|
|
|
- return target;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- function claim(SimpleToken target) {
|
|
|
|
- address researcher = researchers[target];
|
|
|
|
- if (researcher == 0) throw;
|
|
|
|
- // Check SimpleToken contract invariants
|
|
|
|
- // Customize this to the specifics of your contract
|
|
|
|
- if (target.totalSupply() == target.balance) {
|
|
|
|
- throw;
|
|
|
|
- }
|
|
|
|
- asyncSend(researcher, this.balance);
|
|
|
|
- claimed = true;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-}
|
|
|