Failed Conditions
Push — master ( ba8c0d...a9ded0 )
by thomas
04:50
created

Message::getEntropy()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 5
ccs 0
cts 4
cp 0
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 1
crap 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace BitWasp\Trezor\Device;
6
7
use BitWasp\TrezorProto\ButtonAck;
8
use BitWasp\TrezorProto\ClearSession;
9
use BitWasp\TrezorProto\GetAddress;
10
use BitWasp\TrezorProto\GetEntropy;
11
use BitWasp\TrezorProto\GetPublicKey;
12
use BitWasp\TrezorProto\Initialize;
13
use BitWasp\TrezorProto\MessageType;
14
use BitWasp\TrezorProto\PassphraseAck;
15
use BitWasp\TrezorProto\Ping;
16
use BitWasp\TrezorProto\PinMatrixAck;
17
use BitWasp\TrezorProto\SignMessage;
18
use BitWasp\TrezorProto\VerifyMessage;
19
20
class Message
21
{
22
    /**
23
     * @var MessageType
24
     */
25
    private $type;
26
27
    /**
28
     * @var \Protobuf\Message
29
     */
30
    private $proto;
31
32 2
    public function __construct(MessageType $messageType, \Protobuf\Message $protobuf)
33
    {
34 2
        $this->type = $messageType;
35 2
        $this->proto = $protobuf;
36 2
    }
37
38 2
    public function getType(): int
39
    {
40 2
        return $this->type->value();
41
    }
42
43 2
    public function getProto(): \Protobuf\Message
44
    {
45 2
        return $this->proto;
46
    }
47
48
    public static function getPublicKey(GetPublicKey $getPublicKey): self
49
    {
50
        return new self(
51
            MessageType::MessageType_GetPublicKey(),
52
            $getPublicKey
53
        );
54
    }
55
56
    public static function getAddress(GetAddress $getAddress): self
57
    {
58
        return new self(
59
            MessageType::MessageType_GetAddress(),
60
            $getAddress
61
        );
62
    }
63
64
    public static function getEntropy(GetEntropy $getEntropy): self
65
    {
66
        return new self(
67
            MessageType::MessageType_GetEntropy(),
68
            $getEntropy
69
        );
70
    }
71
72
    public static function pinMatrixAck(PinMatrixAck $pinAck): self
73
    {
74
        return new self(
75
            MessageType::MessageType_PinMatrixAck(),
76
            $pinAck
77
        );
78
    }
79
80
    public static function passphraseAck(PassphraseAck $passphraseAck): self
81
    {
82
        return new self(
83
            MessageType::MessageType_PassphraseAck(),
84
            $passphraseAck
85
        );
86
    }
87
88 1
    public static function initialize(Initialize $initialize): self
89
    {
90 1
        return new self(
91 1
            MessageType::MessageType_Initialize(),
92 1
            $initialize
93
        );
94
    }
95
96
    public static function buttonAck(ButtonAck $ack): self
97
    {
98
        return new self(
99
            MessageType::MessageType_ButtonAck(),
100
            $ack
101
        );
102
    }
103
104
    public static function signMessage(SignMessage $signMessage): self
105
    {
106
        return new self(
107
            MessageType::MessageType_SignMessage(),
108
            $signMessage
109
        );
110
    }
111
112
    public static function verifyMessage(VerifyMessage $verifyMsg): self
113
    {
114
        return new self(
115
            MessageType::MessageType_VerifyMessage(),
116
            $verifyMsg
117
        );
118
    }
119
120 1
    public static function ping(Ping $ping): self
121
    {
122 1
        return new self(
123 1
            MessageType::MessageType_Ping(),
124 1
            $ping
125
        );
126
    }
127
128
    public static function clearSession(ClearSession $clear): self
129
    {
130
        return new self(
131
            MessageType::MessageType_ClearSession(),
132
            $clear
133
        );
134
    }
135
}
136