# All files / web3-eth/src getNetworkType.js

66.67% Statements 16/24
54.17% Branches 13/24
75% Functions 3/4
66.67% Lines 16/24

    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
    72
    73
    74
    75
    76
    77
    78
    79

    1x

    1x
    6x

    6x

    6x

    6x

    6x

    6x

    3x

    6x

    6x

    6x

    6x

    6x

    6x

    1x
     /*
     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 (genesis.hash === '0x6341fd3daf94b748c72ced5a5b26028f2474f5f00d824504e4fa37a75767e177' &&
                    id === 4) {
                    returnValue = 'rinkeby';
                }
                Iif (genesis.hash === '0xa3c565fc15c7478862d50ccd6561e3c06b24cc509bf388941c25ea985ce32cb9' &&
                    id === 42) {
                    returnValue = 'kovan';
                }

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

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

    module.exports = getNetworkType;