mirror of
https://github.com/status-im/status-go.git
synced 2025-02-21 11:18:28 +00:00
* Use a single Message type `v1/message.go` and `message.go` are the same now, and they embed `protobuf.ChatMessage` * Use `SendChatMessage` for sending chat messages, this is basically the old `Send` but a bit more flexible so we can send different message types (stickers,commands), and not just text. * Remove dedup from services/shhext. Because now we process in status-protocol, dedup makes less sense, as those messages are going to be processed anyway, so removing for now, we can re-evaluate if bringing it to status-go or not. * Change the various retrieveX method to a single one: `RetrieveAll` will be processing those messages that it can process (Currently only `Message`), and return the rest in `RawMessages` (still transit). The format for the response is: `Chats`: -> The chats updated by receiving the message `Messages`: -> The messages retrieved (already matched to a chat) `Contacts`: -> The contacts updated by the messages `RawMessages` -> Anything else that can't be parsed, eventually as we move everything to status-protocol-go this will go away.
23 lines
376 B
Go
23 lines
376 B
Go
package protobuf
|
|
|
|
import (
|
|
"crypto/ecdsa"
|
|
"github.com/status-im/status-go/eth-node/crypto"
|
|
)
|
|
|
|
func (m *ApplicationMetadataMessage) RecoverKey() (*ecdsa.PublicKey, error) {
|
|
if m.Signature == nil {
|
|
return nil, nil
|
|
}
|
|
|
|
recoveredKey, err := crypto.SigToPub(
|
|
crypto.Keccak256(m.Payload),
|
|
m.Signature,
|
|
)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return recoveredKey, nil
|
|
}
|