Completed
Push — master ( 5bfd3f...407a4a )
by thomas
19:22
created

NetworkFactory   A

Complexity

Total Complexity 13

Size/Duplication

Total Lines 186
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 84.21%

Importance

Changes 5
Bugs 0 Features 2
Metric Value
wmc 13
c 5
b 0
f 2
lcom 1
cbo 1
dl 0
loc 186
ccs 64
cts 76
cp 0.8421
rs 10

13 Methods

Rating   Name   Duplication   Size   Complexity  
A create() 0 4 1
A bitcoin() 0 9 1
A bitcoinTestnet() 0 9 1
A litecoin() 0 9 1
A litecoinTestnet() 0 9 1
A viacoin() 0 10 1
A viacoinTestnet() 0 10 1
A dogecoin() 0 9 1
A dogecoinTestnet() 0 9 1
A startcoin() 0 9 1
A startcoinTestnet() 0 9 1
A dash() 0 9 1
A dashTestnet() 0 9 1
1
<?php
2
3
namespace BitWasp\Bitcoin\Network;
4
5
class NetworkFactory
6
{
7
    /**
8
     * @param string $address
9
     * @param string $p2sh
10
     * @param string $privateKey
11
     * @param bool $testnet
12
     * @return Network
13
     * @throws \Exception
14
     */
15 312
    public static function create($address, $p2sh, $privateKey, $testnet = false)
16
    {
17 312
        return new Network($address, $p2sh, $privateKey, $testnet);
18
    }
19
20
    /**
21
     * @return NetworkInterface
22
     * @throws \Exception
23
     */
24 192
    public static function bitcoin()
25
    {
26 192
        $network = self::create('00', '05', '80')
27 192
            ->setHDPubByte('0488b21e')
28 192
            ->setHDPrivByte('0488ade4')
29 192
            ->setNetMagicBytes('d9b4bef9');
30
31 192
        return $network;
32
    }
33
34
    /**
35
     * @return NetworkInterface
36
     * @throws \Exception
37
     */
38 36
    public static function bitcoinTestnet()
39
    {
40 36
        $network = self::create('6f', 'c4', 'ef', true)
41 36
            ->setHDPubByte('043587cf')
42 36
            ->setHDPrivByte('04358394')
43 36
            ->setNetMagicBytes('0709110b');
44
45 36
        return $network;
46
    }
47
48
    /**
49
     * @return NetworkInterface
50
     * @throws \Exception
51
     */
52 6
    public static function litecoin()
53
    {
54 6
        $network = self::create('30', '05', 'b0')
55 6
            ->setHDPubByte('019da462')
56 6
            ->setHDPrivByte('019d9cfe')
57 6
            ->setNetMagicBytes('dbb6c0fb');
58
59 6
        return $network;
60
    }
61
62
    /**
63
     * @return NetworkInterface
64
     * @throws \Exception
65
     */
66 6
    public static function litecoinTestnet()
67
    {
68 6
        $network = self::create('6f', 'c4', 'ef', true)
69 6
            ->setHDPubByte('019da462')
70 6
            ->setHDPrivByte('019d9cfe')
71 6
            ->setNetMagicBytes('dcb7c1fc');
72
73 6
        return $network;
74
    }
75
76
    /**
77
     * @return NetworkInterface
78
     * @throws \Exception
79
     */
80 12
    public static function viacoin()
81
    {
82 12
        $network = self::create('47', '21', 'c7')
83 12
            ->setHDPubByte('0488b21e')
84 12
            ->setHDPrivByte('0488ade4')
85 12
            ->setNetMagicBytes('cbc6680f')
86 12
        ;
87
88 12
        return $network;
89
    }
90
91
    /**
92
     * @return NetworkInterface
93
     * @throws \Exception
94
     */
95 6
    public static function viacoinTestnet()
96
    {
97 6
        $network = self::create('7f', 'c4', 'ff', true)
98 6
            ->setHDPubByte('043587cf')
99 6
            ->setHDPrivByte('04358394')
100 6
            ->setNetMagicBytes('92efc5a9')
101 6
        ;
102
103 6
        return $network;
104
    }
105
106
    /**
107
     * @return NetworkInterface
108
     * @throws \Exception
109
     */
110 6
    public static function dogecoin()
111
    {
112 6
        $network = self::create('1e', '16', '9e')
113 6
            ->setHDPubByte('02facafd')
114 6
            ->setHDPrivByte('02fac398')
115 6
            ->setNetMagicBytes('c0c0c0c0');
116
117 6
        return $network;
118
    }
119
120
    /**
121
     * @return NetworkInterface
122
     * @throws \Exception
123
     */
124 6
    public static function dogecoinTestnet()
125
    {
126 6
        $network = self::create('71', 'c4', 'f1', true)
127 6
            ->setHDPubByte('043587cf')
128 6
            ->setHDPrivByte('0432a243')
129 6
            ->setNetMagicBytes('c0c0c0c0');
130
131 6
        return $network;
132
    }
133
134
    /**
135
     * @return NetworkInterface
136
     * @throws \Exception
137
     */
138
    public static function startcoin()
139
    {
140
        $network = self::create('7d', 'fd', '05')
141
            ->setHDPubByte('0488b21e')
142
            ->setHDPrivByte('0488ade4')
143
            ->setNetMagicBytes('ffc4badf');
144
145
        return $network;
146
    }
147
148
    /**
149
     * @return NetworkInterface
150
     * @throws \Exception
151
     */
152
    public static function startcoinTestnet()
153
    {
154
        $network = self::create('7f', 'f4', 'c4', true)
155
            ->setHDPubByte('043587cf')
156
            ->setHDPrivByte('04468394')
157
            ->setNetMagicBytes('ffc4b9de');
158
159
        return $network;
160
    }
161
162
    /**
163
     * @return NetworkInterface
164
     * @throws \Exception
165
     */
166 6
    public static function dash()
167
    {
168 6
        $network = self::create('4c', '10', 'cc')
169 6
            ->setHDPubByte('02fe52f8')
170 6
            ->setHDPrivByte('02fe52cc')
171 6
            ->setNetMagicBytes('bd6b0cbf');
172
173 6
        return $network;
174
    }
175
176
177
    /**
178
     * @return NetworkInterface
179
     * @throws \Exception
180
     */
181 6
    public static function dashTestnet()
182
    {
183 6
        $network = self::create('8b', '13', 'ef', true)
184 6
            ->setHDPubByte('3a8061a0')
185 6
            ->setHDPrivByte('3a805837')
186 6
            ->setNetMagicBytes('ffcae2ce');
187
188 6
        return $network;
189
    }
190
}
191