Completed
Push — master ( 21890a...cf8140 )
by thomas
30:54
created

P2shScript   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 55
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 5

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 0 Features 0
Metric Value
dl 0
loc 55
ccs 8
cts 8
cp 1
rs 10
c 2
b 0
f 0
wmc 4
lcom 0
cbo 5

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 7 1
A getScriptHash() 0 4 1
A getOutputScript() 0 4 1
A getAddress() 0 4 1
1
<?php
2
3
namespace BitWasp\Bitcoin\Script;
4
5
use BitWasp\Bitcoin\Address\ScriptHashAddress;
6
7
class P2shScript extends Script
8
{
9
10
    /**
11
     * @var ScriptHashAddress
12
     */
13
    private $address;
14
15
    /**
16
     * @var ScriptInterface
17
     */
18
    private $outputScript;
19
20
    /**
21
     * @var \BitWasp\Buffertools\BufferInterface
22
     */
23
    private $scriptHash;
24
25
    /**
26
     * P2shScript constructor.
27
     * @param ScriptInterface $script
28
     * @param Opcodes|null $opcodes
29
     */
30 12
    public function __construct(ScriptInterface $script, Opcodes $opcodes = null)
31
    {
32 12
        parent::__construct($script->getBuffer(), $opcodes);
33 12
        $this->scriptHash = $script->getScriptHash();
34 12
        $this->outputScript = ScriptFactory::scriptPubKey()->p2sh($this->scriptHash);
35 12
        $this->address = new ScriptHashAddress($this->scriptHash);
36 12
    }
37
38
    /**
39
     * @return \BitWasp\Buffertools\BufferInterface
40
     */
41
    public function getScriptHash()
42
    {
43
        return $this->scriptHash;
44
    }
45
46
    /**
47
     * @return ScriptInterface
48
     */
49
    public function getOutputScript()
50
    {
51
        return $this->outputScript;
52
    }
53
54
    /**
55
     * @return \BitWasp\Bitcoin\Address\ScriptHashAddress
56
     */
57 4
    public function getAddress()
58
    {
59 4
        return $this->address;
60
    }
61
}
62