Added claimAfterBlock variable and tests changes to support changes

pull/78/head
AugustoL 8 years ago
parent e310e6728b
commit d974924045
  1. 12
      contracts/DelayedClaimable.sol
  2. 35
      test/DelayedClaimble.js

@ -4,18 +4,24 @@ import './Claimable.sol';
/*
* DelayedClaimable
* Extension for the Claimable contract, where the ownership needs to be claimed before certain block number
* Extension for the Claimable contract, where the ownership needs to be claimed before/after certain block number
*/
contract DelayedClaimable is Ownable, Claimable {
uint public claimBeforeBlock;
uint public claimAfterBlock;
function setClaimBefore(uint _claimBeforeBlock) onlyOwner {
function setClaimBlocks(uint _claimBeforeBlock, uint _claimAfterBlock) onlyOwner {
if (_claimAfterBlock > claimBeforeBlock)
throw;
claimBeforeBlock = _claimBeforeBlock;
claimAfterBlock = _claimAfterBlock;
}
function claimOwnership() onlyPendingOwner {
if (block.number > claimBeforeBlock) throw;
if ((block.number > claimBeforeBlock) || (block.number < claimAfterBlock))
throw;
owner = pendingOwner;
pendingOwner = 0x0;
claimBeforeBlock = 0;

@ -7,16 +7,20 @@ contract('DelayedClaimable', function(accounts) {
});
});
it("changes pendingOwner after transfer succesful", function(done) {
it("Changes pendingOwner after transfer succesfull", function(done) {
return delayedClaimable.transferOwnership(accounts[2])
.then(function(){
return delayedClaimable.setClaimBefore(1000)
return delayedClaimable.setClaimBlocks(1000,0);
})
.then(function(){
return delayedClaimable.claimBeforeBlock();
})
.then(function(claimBeforeBlock) {
assert.isTrue(claimBeforeBlock == 1000);
return delayedClaimable.claimAfterBlock();
})
.then(function(claimAfterBlock) {
assert.isTrue(claimAfterBlock == 0);
return delayedClaimable.pendingOwner();
})
.then(function(pendingOwner) {
@ -29,19 +33,23 @@ contract('DelayedClaimable', function(accounts) {
.then(function(owner) {
assert.isTrue(owner === accounts[2]);
})
.then(done)
.then(done);
});
it("changes pendingOwner after transfer fails", function(done) {
it("Changes pendingOwner after transfer fails", function(done) {
return delayedClaimable.transferOwnership(accounts[1])
.then(function(){
return delayedClaimable.setClaimBefore(1)
return delayedClaimable.setClaimBlocks(11000,10000);
})
.then(function(){
return delayedClaimable.claimBeforeBlock();
})
.then(function(claimBeforeBlock) {
assert.isTrue(claimBeforeBlock == 1);
assert.isTrue(claimBeforeBlock == 11000);
return delayedClaimable.claimAfterBlock();
})
.then(function(claimAfterBlock) {
assert.isTrue(claimAfterBlock == 10000);
return delayedClaimable.pendingOwner();
})
.then(function(pendingOwner) {
@ -49,7 +57,7 @@ contract('DelayedClaimable', function(accounts) {
return delayedClaimable.claimOwnership({from: accounts[1]});
})
.catch(function(error) {
if (error.message.search('invalid JUMP') == -1) throw error
if (error.message.search('invalid JUMP') == -1) throw error;
})
.then(function() {
return delayedClaimable.owner();
@ -57,7 +65,18 @@ contract('DelayedClaimable', function(accounts) {
.then(function(owner) {
assert.isTrue(owner != accounts[1]);
})
.then(done)
.then(done);
});
it("Set claimBeforeBlock and claimAfterBlock invalid values fail", function(done) {
return delayedClaimable.transferOwnership(accounts[1])
.then(function(){
return delayedClaimable.setClaimBlocks(1000,10000);
})
.catch(function(error) {
if (error.message.search('invalid JUMP') == -1) throw error;
})
.then(done);
});
});

Loading…
Cancel
Save