Completed
Pull Request — 0.0.35 (#660)
by thomas
23:56 queued 04:34
created

Slip132PrefixRegistry::zpubP2wpkh()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 3
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 5
ccs 3
cts 3
cp 1
crap 1
rs 9.4285
1
<?php
2
3
namespace BitWasp\Bitcoin\Key\Deterministic\HdPrefix;
4
5
use BitWasp\Bitcoin\Bitcoin;
6
use BitWasp\Bitcoin\Network\NetworkInterface;
7
use BitWasp\Bitcoin\Key\KeyToScript\KeyToScriptHelper;
8
9
class Slip132PrefixRegistry
10
{
11
    /**
12
     * @var KeyToScriptHelper
13
     */
14
    private $helper;
15
16
    /**
17
     * Slip132PrefixRegistry constructor.
18
     * @param KeyToScriptHelper $helper
19
     */
20 39
    public function __construct(KeyToScriptHelper $helper = null)
21
    {
22 39
        $this->helper = $helper ?: new KeyToScriptHelper(Bitcoin::getEcAdapter());
23 39
    }
24
25
    /**
26
     * @param NetworkInterface $network
27
     * @return ScriptPrefix
28
     * @throws \BitWasp\Bitcoin\Exceptions\InvalidNetworkParameter
29
     */
30 14
    public function xpubP2pkh(NetworkInterface $network)
31
    {
32 14
        $factory = $this->helper->getP2pkhFactory();
33 14
        return new ScriptPrefix($factory, $network->getHDPrivByte(), $network->getHDPubByte());
34
    }
35
36
    /**
37
     * @param NetworkInterface $network
38
     * @return ScriptPrefix
39
     * @throws \BitWasp\Bitcoin\Exceptions\DisallowedScriptDataFactoryException
40
     * @throws \BitWasp\Bitcoin\Exceptions\InvalidNetworkParameter
41
     */
42 10
    public function xpubP2shP2pkh(NetworkInterface $network)
43
    {
44 10
        $factory = $this->helper->getP2shFactory($this->helper->getP2pkhFactory());
45 10
        return new ScriptPrefix($factory, $network->getHDPrivByte(), $network->getHDPubByte());
46
    }
47
48
    /**
49
     * @return ScriptPrefix
50
     * @throws \BitWasp\Bitcoin\Exceptions\DisallowedScriptDataFactoryException
51
     * @throws \BitWasp\Bitcoin\Exceptions\InvalidNetworkParameter
52
     */
53 5
    public function ypubP2shP2wpkh()
54
    {
55 5
        $factory = $this->helper->getP2shFactory($this->helper->getP2wpkhFactory());
56 5
        return new ScriptPrefix($factory, "049d7878", "049d7cb2");
57
    }
58
59
    /**
60
     * @return ScriptPrefix
61
     * @throws \BitWasp\Bitcoin\Exceptions\DisallowedScriptDataFactoryException
62
     * @throws \BitWasp\Bitcoin\Exceptions\InvalidNetworkParameter
63
     */
64 2
    public function ypubP2shP2wshP2pkh()
65
    {
66 2
        $factory = $this->helper->getP2shP2wshFactory($this->helper->getP2pkhFactory());
67 2
        return new ScriptPrefix($factory, "0295b005", "0295b43f");
68
    }
69
70
    /**
71
     * @return ScriptPrefix
72
     * @throws \BitWasp\Bitcoin\Exceptions\InvalidNetworkParameter
73
     */
74 6
    public function zpubP2wpkh()
75
    {
76 6
        $factory = $this->helper->getP2wpkhFactory();
77 6
        return new ScriptPrefix($factory, "04b2430c", "04b24746");
78
    }
79
80
    /**
81
     * @return ScriptPrefix
82
     * @throws \BitWasp\Bitcoin\Exceptions\DisallowedScriptDataFactoryException
83
     * @throws \BitWasp\Bitcoin\Exceptions\InvalidNetworkParameter
84
     */
85 2
    public function zpubP2shP2wshP2pkh()
86
    {
87 2
        $factory = $this->helper->getP2wshFactory($this->helper->getP2pkhFactory());
88 2
        return new ScriptPrefix($factory, "02aa7a99", "02aa7ed3");
89
    }
90
}
91