github.com/status-im/status-go@v1.1.0/protocol/message_builder.go (about) 1 package protocol 2 3 import ( 4 "crypto/ecdsa" 5 6 "github.com/status-im/status-go/eth-node/crypto" 7 "github.com/status-im/status-go/eth-node/types" 8 "github.com/status-im/status-go/protocol/common" 9 "github.com/status-im/status-go/protocol/identity/alias" 10 "github.com/status-im/status-go/protocol/identity/identicon" 11 ) 12 13 func extendMessageFromChat(message *common.Message, chat *Chat, key *ecdsa.PublicKey, timesource common.TimeSource) error { 14 clock, timestamp := chat.NextClockAndTimestamp(timesource) 15 16 message.LocalChatID = chat.ID 17 message.Clock = clock 18 message.Timestamp = timestamp 19 message.From = types.EncodeHex(crypto.FromECDSAPub(key)) 20 message.SigPubKey = key 21 message.WhisperTimestamp = timestamp 22 message.Seen = true 23 message.OutgoingStatus = common.OutgoingStatusSending 24 25 identicon, err := identicon.GenerateBase64(message.From) 26 if err != nil { 27 return err 28 } 29 30 message.Identicon = identicon 31 32 alias, err := alias.GenerateFromPublicKeyString(message.From) 33 if err != nil { 34 return err 35 } 36 37 message.Alias = alias 38 return nil 39 40 } 41 42 func extendPinMessageFromChat(message *common.PinMessage, chat *Chat, key *ecdsa.PublicKey, timesource common.TimeSource) error { 43 clock, timestamp := chat.NextClockAndTimestamp(timesource) 44 45 message.LocalChatID = chat.ID 46 message.Clock = clock 47 message.From = types.EncodeHex(crypto.FromECDSAPub(key)) 48 message.SigPubKey = key 49 message.WhisperTimestamp = timestamp 50 51 identicon, err := identicon.GenerateBase64(message.From) 52 if err != nil { 53 return err 54 } 55 56 message.Identicon = identicon 57 58 alias, err := alias.GenerateFromPublicKeyString(message.From) 59 if err != nil { 60 return err 61 } 62 63 message.Alias = alias 64 return nil 65 66 }