mirror of
https://github.com/Instadapp/smart-contract.git
synced 2024-07-29 22:08:07 +00:00
added grace period in UserProxy.
This commit is contained in:
parent
46dd5a0583
commit
8350d1f74c
|
@ -56,13 +56,15 @@ contract UserAuth is ProxyRecord {
|
||||||
event LogSetPendingOwner(address indexed pendingOwner, address setter);
|
event LogSetPendingOwner(address indexed pendingOwner, address setter);
|
||||||
address public owner;
|
address public owner;
|
||||||
address public pendingOwner;
|
address public pendingOwner;
|
||||||
uint public claimOnwershipTime; // 7 days
|
uint public claimOnwershipTime; // now + 7 days
|
||||||
|
uint public gracePeriod; // to set the new owner
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @dev defines the "proxy registry" contract and sets the owner
|
* @dev defines the "proxy registry" contract and sets the owner
|
||||||
*/
|
*/
|
||||||
constructor() public {
|
constructor() public {
|
||||||
proxyRegistryContract = msg.sender;
|
proxyRegistryContract = msg.sender;
|
||||||
|
gracePeriod = 3 days;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -74,11 +76,12 @@ contract UserAuth is ProxyRecord {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @dev sets the "pending owner"
|
* @dev sets the "pending owner" and provide 3 days grace period to set the new owner via setOwner()
|
||||||
|
* Throws if called before 10 (i.e. 7 + 3) day after assigning "pending owner"
|
||||||
* @param nextOwner is the assigned "pending owner"
|
* @param nextOwner is the assigned "pending owner"
|
||||||
*/
|
*/
|
||||||
function setPendingOwner(address nextOwner) public auth {
|
function setPendingOwner(address nextOwner) public auth {
|
||||||
require(block.timestamp > claimOnwershipTime, "owner-is-still-pending");
|
require(block.timestamp > claimOnwershipTime.add(gracePeriod), "owner-is-still-pending");
|
||||||
pendingOwner = nextOwner;
|
pendingOwner = nextOwner;
|
||||||
claimOnwershipTime = block.timestamp.add(7 days);
|
claimOnwershipTime = block.timestamp.add(7 days);
|
||||||
emit LogSetPendingOwner(nextOwner, msg.sender);
|
emit LogSetPendingOwner(nextOwner, msg.sender);
|
||||||
|
@ -86,10 +89,12 @@ contract UserAuth is ProxyRecord {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @dev sets "pending owner" as real owner
|
* @dev sets "pending owner" as real owner
|
||||||
|
* Throws if no "pending owner"
|
||||||
* Throws if called before 7 day after assigning "pending owner"
|
* Throws if called before 7 day after assigning "pending owner"
|
||||||
*/
|
*/
|
||||||
function setOwner() public {
|
function setOwner() public {
|
||||||
require(pendingOwner != address(0), "no-pending-address");
|
require(pendingOwner != address(0), "no-pending-address");
|
||||||
|
require(block.timestamp > claimOnwershipTime, "owner-is-still-pending");
|
||||||
setProxyRecordOwner(owner, pendingOwner);
|
setProxyRecordOwner(owner, pendingOwner);
|
||||||
owner = pendingOwner;
|
owner = pendingOwner;
|
||||||
pendingOwner = address(0);
|
pendingOwner = address(0);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user