stoppable and stoppablebid example

This commit is contained in:
Manuel Araoz
2016-08-11 18:21:15 -03:00
parent f719bbf14b
commit 4bfc2ba858
3 changed files with 51 additions and 2 deletions

25
contracts/Stoppable.sol Normal file
View File

@ -0,0 +1,25 @@
/*
* Stoppable
*/
contract Stoppable {
address public curator;
bool public stopped;
modifier stopInEmergency { if (!stopped) _ }
modifier onlyInEmergency { if (stopped) _ }
function Stoppable(address _curator) {
if (_curator == 0) {
throw;
}
curator = _curator;
}
function emergencyStop() external {
if (msg.sender != curator) {
throw;
}
stopped = true;
}
}

View File

@ -0,0 +1,26 @@
import './PullPaymentCapable.sol';
import './Stoppable.sol';
contract StoppableBid is Stoppable, PullPaymentCapable {
address public highestBidder;
uint public highestBid;
function StoppableBid(address _curator)
Stoppable(_curator)
PullPaymentCapable() {}
function bid() external stopInEmergency {
if (msg.value <= highestBid) throw;
if (highestBidder != 0) {
asyncSend(highestBidder, highestBid);
}
highestBidder = msg.sender;
highestBid = msg.value;
}
function withdraw() onlyInEmergency {
suicide(curator);
}
}

View File

@ -1,6 +1,4 @@
module.exports = function(deployer) {
deployer.deploy(BadFailEarly);
deployer.deploy(GoodFailEarly);
deployer.deploy(PullPaymentBid);
deployer.deploy(BadArrayUse);
deployer.deploy(Bounty);