Browse Source

Add killable to bounty

Makoto Inoue 9 years ago
parent
commit
37f4ff8d3e
2 changed files with 22 additions and 3 deletions
  1. 2 2
      contracts/bounties/SimpleTokenBounty.sol
  2. 20 1
      test/Bounty.js

+ 2 - 2
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;

+ 20 - 1
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();