1
1
package privval
2
2
3
3
import (
4
- "errors"
5
4
"fmt"
6
5
"time"
7
6
@@ -53,15 +52,13 @@ func (sc *SignerClient) WaitForConnection(maxWait time.Duration) error {
53
52
// Ping sends a ping request to the remote signer
54
53
func (sc * SignerClient ) Ping () error {
55
54
response , err := sc .endpoint .SendRequest (mustWrapMsg (& privvalproto.PingRequest {}))
56
-
57
55
if err != nil {
58
56
sc .endpoint .Logger .Error ("SignerClient::Ping" , "err" , err )
59
57
return nil
60
58
}
61
59
62
60
pb := response .GetPingResponse ()
63
61
if pb == nil {
64
- sc .endpoint .Logger .Error ("SignerClient::Ping" , "err" , "response != PingResponse" )
65
62
return err
66
63
}
67
64
@@ -73,22 +70,18 @@ func (sc *SignerClient) Ping() error {
73
70
func (sc * SignerClient ) GetPubKey () (crypto.PubKey , error ) {
74
71
response , err := sc .endpoint .SendRequest (mustWrapMsg (& privvalproto.PubKeyRequest {}))
75
72
if err != nil {
76
- sc .endpoint .Logger .Error ("SignerClient::GetPubKey" , "err" , err )
77
73
return nil , fmt .Errorf ("send: %w" , err )
78
74
}
79
75
80
- pubKeyResp := response .GetPubKeyResponse ()
81
- if pubKeyResp == nil {
82
- sc .endpoint .Logger .Error ("SignerClient::GetPubKey" , "err" , "response != PubKeyResponse" )
83
- return nil , fmt .Errorf ("unexpected response type %T" , response )
76
+ resp := response .GetPubKeyResponse ()
77
+ if resp == nil {
78
+ return nil , ErrUnexpectedResponse
84
79
}
85
-
86
- if pubKeyResp .Error != nil {
87
- sc .endpoint .Logger .Error ("failed to get private validator's public key" , "err" , pubKeyResp .Error )
88
- return nil , fmt .Errorf ("remote error: %w" , errors .New (pubKeyResp .Error .Description ))
80
+ if resp .Error != nil {
81
+ return nil , & RemoteSignerError {Code : int (resp .Error .Code ), Description : resp .Error .Description }
89
82
}
90
83
91
- pk , err := cryptoenc .PubKeyFromProto (* pubKeyResp .PubKey )
84
+ pk , err := cryptoenc .PubKeyFromProto (* resp .PubKey )
92
85
if err != nil {
93
86
return nil , err
94
87
}
@@ -98,19 +91,15 @@ func (sc *SignerClient) GetPubKey() (crypto.PubKey, error) {
98
91
99
92
// SignVote requests a remote signer to sign a vote
100
93
func (sc * SignerClient ) SignVote (chainID string , vote * tmproto.Vote ) error {
101
-
102
94
response , err := sc .endpoint .SendRequest (mustWrapMsg (& privvalproto.SignVoteRequest {Vote : vote }))
103
95
if err != nil {
104
- sc .endpoint .Logger .Error ("SignerClient::SignVote" , "err" , err )
105
96
return err
106
97
}
107
98
108
99
resp := response .GetSignedVoteResponse ()
109
100
if resp == nil {
110
- sc .endpoint .Logger .Error ("SignerClient::GetPubKey" , "err" , "response != SignedVoteResponse" )
111
101
return ErrUnexpectedResponse
112
102
}
113
-
114
103
if resp .Error != nil {
115
104
return & RemoteSignerError {Code : int (resp .Error .Code ), Description : resp .Error .Description }
116
105
}
@@ -122,16 +111,13 @@ func (sc *SignerClient) SignVote(chainID string, vote *tmproto.Vote) error {
122
111
123
112
// SignProposal requests a remote signer to sign a proposal
124
113
func (sc * SignerClient ) SignProposal (chainID string , proposal * tmproto.Proposal ) error {
125
-
126
114
response , err := sc .endpoint .SendRequest (mustWrapMsg (& privvalproto.SignProposalRequest {Proposal : * proposal }))
127
115
if err != nil {
128
- sc .endpoint .Logger .Error ("SignerClient::SignProposal" , "err" , err )
129
116
return err
130
117
}
131
118
132
119
resp := response .GetSignedProposalResponse ()
133
120
if resp == nil {
134
- sc .endpoint .Logger .Error ("SignerClient::SignProposal" , "err" , "response != SignedProposalResponse" )
135
121
return ErrUnexpectedResponse
136
122
}
137
123
if resp .Error != nil {
0 commit comments