GetBlockTemplate::jsonSerialize()   A
last analyzed

Complexity

Conditions 2
Paths 1

Size

Total Lines 11
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 2

Importance

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