GetBlockTemplate   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 4
dl 0
loc 26
ccs 12
cts 12
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 7 2
A jsonSerialize() 0 11 2
1
<?php
2
3
namespace ZenCash\Rpc\Command\Mining;
4
5
use ZenCash\Rpc\Command;
6
use ZenCash\Rpc\Validation\Exception\JsonFormatException;
7
use ZenCash\Rpc\Validation\Mining\GetBlockTemplateValidator;
8
9
final class GetBlockTemplate implements Command
10
{
11
    private const METHOD = 'getblocktemplate';
12
    private $json;
13
14
    /** @throws JsonFormatException */
15 2
    public function __construct(?string $json)
16
    {
17 2
        if (!is_null($json)) {
18 1
            GetBlockTemplateValidator::validate($json);
19
        }
20
21 2
        $this->json = $json;
22 2
    }
23
24 2
    public function jsonSerialize(): object
25
    {
26 2
        return (object) array_merge([
27 2
            'jsonrpc' => Command::JSON_RPC_VERSION,
28
            'id'      => Command::ID,
29 2
            'method'  => self::METHOD
30 2
        ], !is_null($this->json) ? [
31
            'params' => [
32 1
                $this->json
33
            ]
34 2
        ] : [ ]);
35
    }
36
}
37