You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
978 B
39 lines
978 B
8 years ago
|
pragma solidity ^0.4.0;
|
||
|
import './PullPayment.sol';
|
||
|
import './token/CrowdsaleToken.sol';
|
||
|
|
||
|
/*
|
||
|
* Bounty
|
||
|
* This bounty will pay out if you can cause a CrowdsaleToken'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(CrowdsaleToken) {
|
||
|
CrowdsaleToken target = new CrowdsaleToken();
|
||
|
researchers[target] = msg.sender;
|
||
|
return target;
|
||
|
}
|
||
|
|
||
|
function claim(CrowdsaleToken target) {
|
||
|
address researcher = researchers[target];
|
||
|
if (researcher == 0) throw;
|
||
|
// Check CrowdsaleToken contract invariants
|
||
|
// Customize this to the specifics of your contract
|
||
|
if (target.totalSupply() == target.balance) {
|
||
|
throw;
|
||
|
}
|
||
|
asyncSend(researcher, this.balance);
|
||
|
claimed = true;
|
||
|
}
|
||
|
|
||
|
}
|