From b59469c1511bcec93d570cbc769f0691938bf1bf Mon Sep 17 00:00:00 2001 From: Yevhenii Babichenko Date: Tue, 5 Sep 2017 18:32:07 +0300 Subject: [PATCH 1/4] fire OwnershipTransferred event when the owner of an Ownable contract instance actually changed --- contracts/ownership/Claimable.sol | 1 + contracts/ownership/DelayedClaimable.sol | 1 + contracts/ownership/Ownable.sol | 4 ++++ 3 files changed, 6 insertions(+) diff --git a/contracts/ownership/Claimable.sol b/contracts/ownership/Claimable.sol index 59c2158a2..ae8080270 100644 --- a/contracts/ownership/Claimable.sol +++ b/contracts/ownership/Claimable.sol @@ -34,5 +34,6 @@ contract Claimable is Ownable { function claimOwnership() onlyPendingOwner { owner = pendingOwner; pendingOwner = 0x0; + OwnershipTransferred(owner); } } diff --git a/contracts/ownership/DelayedClaimable.sol b/contracts/ownership/DelayedClaimable.sol index f83ed5046..ddffd0d0e 100644 --- a/contracts/ownership/DelayedClaimable.sol +++ b/contracts/ownership/DelayedClaimable.sol @@ -36,6 +36,7 @@ contract DelayedClaimable is Claimable { owner = pendingOwner; pendingOwner = 0x0; end = 0; + OwnershipTransferred(owner); } } diff --git a/contracts/ownership/Ownable.sol b/contracts/ownership/Ownable.sol index fcb3ef91f..666747362 100644 --- a/contracts/ownership/Ownable.sol +++ b/contracts/ownership/Ownable.sol @@ -10,6 +10,9 @@ contract Ownable { address public owner; + event OwnershipTransferred(address indexed newOwner); + + /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. @@ -35,6 +38,7 @@ contract Ownable { function transferOwnership(address newOwner) onlyOwner { require(newOwner != address(0)); owner = newOwner; + OwnershipTransferred(newOwner); } } From 6beac0f2157d242de9a2f4b478fc8b55e09cffb4 Mon Sep 17 00:00:00 2001 From: Yevhenii Babichenko Date: Wed, 6 Sep 2017 10:29:25 +0300 Subject: [PATCH 2/4] add previousOwner field to OwnershipTransferred event --- contracts/ownership/Ownable.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/ownership/Ownable.sol b/contracts/ownership/Ownable.sol index 666747362..eaa55ffaa 100644 --- a/contracts/ownership/Ownable.sol +++ b/contracts/ownership/Ownable.sol @@ -10,7 +10,7 @@ contract Ownable { address public owner; - event OwnershipTransferred(address indexed newOwner); + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** From 7a36a6c92a3f958521d9da1db25f02b55b0122ef Mon Sep 17 00:00:00 2001 From: Yevhenii Babichenko Date: Wed, 6 Sep 2017 10:31:23 +0300 Subject: [PATCH 3/4] fix calls to OwnershipTransferred --- contracts/ownership/Claimable.sol | 2 +- contracts/ownership/DelayedClaimable.sol | 2 +- contracts/ownership/Ownable.sol | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/contracts/ownership/Claimable.sol b/contracts/ownership/Claimable.sol index ae8080270..4f6ea1a86 100644 --- a/contracts/ownership/Claimable.sol +++ b/contracts/ownership/Claimable.sol @@ -32,8 +32,8 @@ contract Claimable is Ownable { * @dev Allows the pendingOwner address to finalize the transfer. */ function claimOwnership() onlyPendingOwner { + OwnershipTransferred(owner, pendingOwner); owner = pendingOwner; pendingOwner = 0x0; - OwnershipTransferred(owner); } } diff --git a/contracts/ownership/DelayedClaimable.sol b/contracts/ownership/DelayedClaimable.sol index ddffd0d0e..b3ef96dbf 100644 --- a/contracts/ownership/DelayedClaimable.sol +++ b/contracts/ownership/DelayedClaimable.sol @@ -33,10 +33,10 @@ contract DelayedClaimable is Claimable { */ function claimOwnership() onlyPendingOwner { require((block.number <= end) && (block.number >= start)); + OwnershipTransferred(owner, pendingOwner); owner = pendingOwner; pendingOwner = 0x0; end = 0; - OwnershipTransferred(owner); } } diff --git a/contracts/ownership/Ownable.sol b/contracts/ownership/Ownable.sol index eaa55ffaa..ed40618ce 100644 --- a/contracts/ownership/Ownable.sol +++ b/contracts/ownership/Ownable.sol @@ -38,7 +38,7 @@ contract Ownable { function transferOwnership(address newOwner) onlyOwner { require(newOwner != address(0)); owner = newOwner; - OwnershipTransferred(newOwner); + OwnershipTransferred(owner, newOwner); } } From 5035718e4bf5e052c17e97548e0c49ccc0e5c8ef Mon Sep 17 00:00:00 2001 From: Yevhenii Babichenko Date: Thu, 7 Sep 2017 11:59:36 +0300 Subject: [PATCH 4/4] fixed wrong call order in Ownable.transferOwnership --- contracts/ownership/Ownable.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/ownership/Ownable.sol b/contracts/ownership/Ownable.sol index ed40618ce..a671e80b0 100644 --- a/contracts/ownership/Ownable.sol +++ b/contracts/ownership/Ownable.sol @@ -37,8 +37,8 @@ contract Ownable { */ function transferOwnership(address newOwner) onlyOwner { require(newOwner != address(0)); - owner = newOwner; OwnershipTransferred(owner, newOwner); + owner = newOwner; } }