MerkleBlock   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 6
dl 0
loc 38
ccs 9
cts 9
cp 1
rs 10
c 0
b 0
f 0
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A getFilteredBlock() 0 3 1
A getNetworkCommand() 0 3 1
A getBuffer() 0 3 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace BitWasp\Bitcoin\Networking\Messages;
6
7
use BitWasp\Bitcoin\Block\FilteredBlock;
8
use BitWasp\Bitcoin\Networking\Message;
9
use BitWasp\Bitcoin\Networking\NetworkSerializable;
10
use BitWasp\Bitcoin\Networking\Serializer\Message\MerkleBlockSerializer;
11
use BitWasp\Bitcoin\Serializer\Block\BlockHeaderSerializer;
12
use BitWasp\Bitcoin\Serializer\Block\FilteredBlockSerializer;
13
use BitWasp\Bitcoin\Serializer\Block\PartialMerkleTreeSerializer;
14
use BitWasp\Buffertools\BufferInterface;
15
16
class MerkleBlock extends NetworkSerializable
17
{
18
    /**
19
     * @var FilteredBlock
20
     */
21
    private $merkle;
22
23 3
    /**
24
     * @param FilteredBlock $merkleBlock
25 3
     */
26 3
    public function __construct(FilteredBlock $merkleBlock)
27
    {
28
        $this->merkle = $merkleBlock;
29
    }
30
31 3
    /**
32
     * @return string
33 3
     * @@see https://en.bitcoin.it/wiki/Protocol_documentation#filterload.2C_filteradd.2C_filterclear.2C_merkleblock
34
     */
35
    public function getNetworkCommand(): string
36
    {
37
        return Message::MERKLEBLOCK;
38
    }
39 3
40
    /**
41 3
     * @return FilteredBlock
42
     */
43
    public function getFilteredBlock(): FilteredBlock
44
    {
45
        return $this->merkle;
46
    }
47 3
48
    /**
49 3
     * @return BufferInterface
50
     */
51
    public function getBuffer(): BufferInterface
52
    {
53
        return (new MerkleBlockSerializer(new FilteredBlockSerializer(new BlockHeaderSerializer(), new PartialMerkleTreeSerializer())))->serialize($this);
54
    }
55
}
56