# all files / packages/web3-eth/src/ getNetworkType.js

70% Statements 14/20
56.25% Branches 9/16
75% Functions 3/4
70% Lines 14/20

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71

    1×

    1×
    6×

    6×

    6×

    6×

    6×

    6×

    3×

    6×

    6×

    6×

    6×

    1×
     /*
     This file is part of web3.js.

     web3.js is free software: you can redistribute it and/or modify
     it under the terms of the GNU Lesser General Public License as published by
     the Free Software Foundation, either version 3 of the License, or
     (at your option) any later version.

     web3.js is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU Lesser General Public License for more details.

     You should have received a copy of the GNU Lesser General Public License
     along with web3.js.  If not, see <http://www.gnu.org/licenses/>.
     */
    /**
     * @file getNetworkType.js
     * @author Fabian Vogelsteller <fabian@ethereum.org>
     * @date 2017
     */

    "use strict";

    var _ = require('underscore');

    var getNetworkType = function (callback) {
        var _this = this,
            id;

        return this.net.getId()
            .then(function (givenId) {

                id = givenId;

                return _this.getBlock(0);
            })
            .then(function (genesis) {
                var returnValue = 'private';

                if (genesis.hash === '0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3' &&
                    id === 1) {
                    returnValue = 'main';
                }
                Iif (genesis.hash === '0cd786a2425d16f152c658316c423e6ce1181e15c3295826d7c9904cba9ce303' &&
                    id === 2) {
                    returnValue = 'morden';
                }
                Iif (genesis.hash === '0x41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d' &&
                    id === 3) {
                    returnValue = 'ropsten';
                }

                Iif (_.isFunction(callback)) {
                    callback(null, returnValue);
                }

                return returnValue;
            })
            .catch(function (err) {
                if (_.isFunction(callback)) {
                    callback(err);
                } else {
                    throw err;
                }
            });
    };

    module.exports = getNetworkType;