Completed
Push — master ( ff5592...167cce )
by thomas
73:19
created

NetworkFactory::viacoin()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 10
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

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