pragma solidity ^0.4.21; import "./InstanceStorage.sol"; import "./DelegatedCall.sol"; /** * @title Instance * @author Ricardo Guilherme Schmidt (Status Research & Development GmbH) * @dev Contract that forward everything through delegatecall to defined kernel */ contract Instance is InstanceStorage, DelegatedCall { function Instance(address _kernel) public { kernel = _kernel; } /** * @dev delegatecall everything (but declared functions) to `_target()` * @notice Verify `kernel()` code to predict behavior */ function () external delegated { //all goes to kernel } /** * @dev returns kernel if kernel that is configured * @return kernel address */ function targetDelegatedCall() internal view returns(address) { return kernel; } }