Completed
Pull Request — master (#248)
by thomas
58:32 queued 33:01
created

NetworkFactory::dash()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 1

Importance

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