lnd-client-0.1.0.1: src/LndClient/Data/VerifyMessage.hs
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
module LndClient.Data.VerifyMessage
( VerifyMessageRequest (..),
VerifyMessageResponse (..),
)
where
import Data.ProtoLens.Message
import LndClient.Import
import qualified Proto.Signrpc.Signer as LnGRPC
import qualified Proto.Signrpc.Signer_Fields as LnGRPC
data VerifyMessageRequest = VerifyMessageRequest
{ message :: ByteString,
signature :: ByteString,
pubkey :: ByteString
}
deriving stock (Eq, Show, Generic)
instance Out VerifyMessageRequest
newtype VerifyMessageResponse = VerifyMessageResponse Bool
deriving newtype (Eq, Show)
deriving stock (Generic)
instance Out VerifyMessageResponse
instance ToGrpc VerifyMessageRequest LnGRPC.VerifyMessageReq where
toGrpc x =
msg
<$> toGrpc (message x)
<*> toGrpc (signature x)
<*> toGrpc (pubkey x)
where
msg gMsg gSignature gPubKey =
defMessage
& LnGRPC.msg .~ gMsg
& LnGRPC.signature .~ gSignature
& LnGRPC.pubkey .~ gPubKey
instance FromGrpc VerifyMessageResponse LnGRPC.VerifyMessageResp where
fromGrpc x =
VerifyMessageResponse
<$> fromGrpc (x ^. LnGRPC.valid)