visual-identity/contracts/democracy/DelegationProxyKernel.sol

30 lines
902 B
Solidity

pragma solidity ^0.4.21;
import "../deploy/InstanceStorage.sol";
import "./DelegationProxyView.sol";
/**
* @title DelegationProxyKernel
* @author Ricardo Guilherme Schmidt (Status Research & Development GmbH)
* @dev Creates a delegation proxy killable model for cheap redeploy and upgradability.
*/
contract DelegationProxyKernel is InstanceStorage, DelegationProxyView {
bool private ready = false; //TODO: abstract initialized flag
/**
* @notice Constructor of the model - only knows about watchdog that can trigger upgrade
*/
constructor() DelegationProxyView(0x0) public {
ready = true;
}
/**
* @notice Creates a new DelegationProxy with `_parentProxy` as default delegation.
*/
function initializeDelegationProxy(address _parentProxy) public {
require(!ready);
ready = true;
parentProxy = _parentProxy;
}
}