function setETHAssets(
        address ETHAssets_
    )
        public
        onlyOperator
    {
        require(
            ETHAssets_ != address(0)
        );
        if(
            ETHAssets_ == ETHAssets &&
            candidateETHAssets != address(0)
        ) {
            emit eCancelNominatingETHAssets(candidateETHAssets);
            candidateETHAssets = address(0);
            candidateTillETHAssets = 0;
        } else if(
            ETHAssets == address(0)
        ) {
            
            ETHAssets = ETHAssets_;
        } else if(
            ETHAssets_ != candidateETHAssets &&
            candidateTillETHAssets + 86400 * 7 < block.timestamp
        ) {
            
            emit eNominatingETHAssets(ETHAssets_);
            candidateETHAssets = ETHAssets_;
            candidateTillETHAssets = block.timestamp + 86400 * 7;
        } else if(
            ETHAssets_ == candidateETHAssets &&
            candidateTillETHAssets < block.timestamp
        ) {
            
            emit eChangeETHAssets(ETHAssets, candidateETHAssets);
            dismissTokenOperator(ETHAssets);
            assignTokenOperator(candidateETHAssets);
            ETHAssets = candidateETHAssets;
            candidateETHAssets = address(0);
        }
    }