mirror of
https://github.com/getAlby/hub.git
synced 2026-08-13 12:33:39 +02:00
54 lines
1.3 KiB
Go
54 lines
1.3 KiB
Go
package controllers
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/getAlby/go-nostr"
|
|
"github.com/getAlby/hub/logger"
|
|
"github.com/getAlby/hub/nip47/models"
|
|
"github.com/sirupsen/logrus"
|
|
)
|
|
|
|
type signMessageParams struct {
|
|
Message string `json:"message"`
|
|
}
|
|
|
|
type signMessageResponse struct {
|
|
Message string `json:"message"`
|
|
Signature string `json:"signature"`
|
|
}
|
|
|
|
func (controller *nip47Controller) HandleSignMessageEvent(ctx context.Context, nip47Request *models.Request, requestEventId uint, publishResponse publishFunc) {
|
|
signParams := &signMessageParams{}
|
|
resp := decodeRequest(nip47Request, signParams)
|
|
if resp != nil {
|
|
publishResponse(resp, nostr.Tags{})
|
|
return
|
|
}
|
|
|
|
logger.Logger.WithFields(logrus.Fields{
|
|
"request_event_id": requestEventId,
|
|
}).Info("Signing message")
|
|
|
|
signature, err := controller.lnClient.SignMessage(ctx, signParams.Message)
|
|
if err != nil {
|
|
logger.Logger.WithFields(logrus.Fields{
|
|
"request_event_id": requestEventId,
|
|
}).WithError(err).Error("Failed to sign message")
|
|
publishResponse(&models.Response{
|
|
ResultType: nip47Request.Method,
|
|
Error: mapNip47Error(err),
|
|
}, nostr.Tags{})
|
|
return
|
|
}
|
|
|
|
responsePayload := signMessageResponse{
|
|
Message: signParams.Message,
|
|
Signature: signature,
|
|
}
|
|
|
|
publishResponse(&models.Response{
|
|
ResultType: nip47Request.Method,
|
|
Result: responsePayload,
|
|
}, nostr.Tags{})
|
|
}
|