MerkleBlock::getFilteredBlock()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
ccs 0
cts 0
cp 0
crap 2
rs 10
c 0
b 0
f 0
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