diff --git a/contracts/ownership/Heritable.sol b/contracts/ownership/Heritable.sol index d82e09d5a..11aa22f8c 100644 --- a/contracts/ownership/Heritable.sol +++ b/contracts/ownership/Heritable.sol @@ -23,6 +23,7 @@ contract Heritable is Ownable { event HeirChanged(address indexed owner, address indexed newHeir); event OwnerHeartbeated(address indexed owner); event OwnerProclaimedDead(address indexed owner, address indexed heir, uint timeOfDeath); + event HeirOwnershipClaimed(address indexed previousOwner, address indexed newOwner); /** @@ -83,6 +84,7 @@ contract Heritable is Ownable { require(!ownerLives()); require(now >= timeOfDeath + heartbeatTimeout); OwnershipTransferred(owner, heir); + HeirOwnershipClaimed(owner, heir); owner = heir; timeOfDeath = 0; } diff --git a/test/Heritable.js b/test/Heritable.js index 0b7893c2e..028abf925 100644 --- a/test/Heritable.js +++ b/test/Heritable.js @@ -67,7 +67,7 @@ contract('Heritable', function(accounts) { it('heir can\'t claim ownership if owner heartbeats', async function() { const heir = accounts[1] await heritable.setHeir(heir, {from: owner}) - + await heritable.proclaimDeath({from: heir}) await heritable.heartbeat({from: owner}) await expectThrow(heritable.claimHeirOwnership({from: heir})) @@ -101,9 +101,12 @@ contract('Heritable', function(accounts) { await increaseTime(4141) const claimHeirOwnershipLogs = (await heritable.claimHeirOwnership({from: heir})).logs const ownershipTransferredEvent = claimHeirOwnershipLogs.find(e => e.event === 'OwnershipTransferred') + const heirOwnershipClaimedEvent = claimHeirOwnershipLogs.find(e => e.event === 'HeirOwnershipClaimed') assert.isTrue(ownershipTransferredEvent.args.previousOwner === owner) assert.isTrue(ownershipTransferredEvent.args.newOwner === heir) + assert.isTrue(heirOwnershipClaimedEvent.args.previousOwner === owner) + assert.isTrue(heirOwnershipClaimedEvent.args.newOwner === heir) }) })