diff --git a/contracts/bounties/SimpleTokenBounty.sol b/contracts/bounties/SimpleTokenBounty.sol index 5f6a9c615..2ea9854fd 100644 --- a/contracts/bounties/SimpleTokenBounty.sol +++ b/contracts/bounties/SimpleTokenBounty.sol @@ -1,6 +1,6 @@ pragma solidity ^0.4.0; import '../PullPayment.sol'; - +import '../Killable.sol'; /* * Bounty * This bounty will pay out if you can cause a SimpleToken's balance @@ -16,7 +16,7 @@ contract Target { function checkInvariant() returns(bool); } -contract SimpleTokenBounty is PullPayment { +contract SimpleTokenBounty is PullPayment, Killable { Target target; bool public claimed; address public factoryAddress; diff --git a/test/Bounty.js b/test/Bounty.js index bad2ee90b..b67b678ed 100644 --- a/test/Bounty.js +++ b/test/Bounty.js @@ -7,7 +7,7 @@ var sendReward = function(sender, receiver, value){ } contract('Bounty', function(accounts) { - it("can create bounty contract with factory address", function(done){ + it("creates bounty contract with factory address", function(done){ var target = SecureTargetMock.deployed(); SimpleTokenBounty.new(target.address). @@ -33,6 +33,25 @@ contract('Bounty', function(accounts) { then(done); }) + it("ends", function(done){ + var target = SecureTargetMock.deployed(); + var owner = accounts[0]; + var reward = web3.toWei(1, "ether"); + var bounty; + SimpleTokenBounty.new(target.address). + then(function(_bounty){ + bounty = _bounty; + sendReward(owner, bounty.address, reward); + assert.equal(reward, web3.eth.getBalance(bounty.address).toNumber()) + return bounty.kill() + }). + then(function(){ + assert.equal(0, web3.eth.getBalance(bounty.address).toNumber()) + }). + then(done); + }) + + describe("SecureTargetMock", function(){ it("checkInvariant returns true", function(done){ var targetFactory = SecureTargetFactory.deployed();