Completed
Pull Request — master (#578)
by Will
124:04 queued 54:00
created

NetworkFactory::bitcoinTestnet()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 1

Importance

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