Move message to common namespace
This commit is contained in:
parent
7d5d413222
commit
00c5b60d7f
|
@ -8,6 +8,7 @@ import (
|
||||||
|
|
||||||
"github.com/status-im/status-go/eth-node/crypto"
|
"github.com/status-im/status-go/eth-node/crypto"
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"github.com/status-im/status-go/eth-node/types"
|
||||||
|
"github.com/status-im/status-go/protocol/common"
|
||||||
"github.com/status-im/status-go/protocol/protobuf"
|
"github.com/status-im/status-go/protocol/protobuf"
|
||||||
v1protocol "github.com/status-im/status-go/protocol/v1"
|
v1protocol "github.com/status-im/status-go/protocol/v1"
|
||||||
)
|
)
|
||||||
|
@ -50,8 +51,8 @@ type Chat struct {
|
||||||
DeletedAtClockValue uint64 `json:"deletedAtClockValue"`
|
DeletedAtClockValue uint64 `json:"deletedAtClockValue"`
|
||||||
|
|
||||||
// Denormalized fields
|
// Denormalized fields
|
||||||
UnviewedMessagesCount uint `json:"unviewedMessagesCount"`
|
UnviewedMessagesCount uint `json:"unviewedMessagesCount"`
|
||||||
LastMessage *Message `json:"lastMessage"`
|
LastMessage *common.Message `json:"lastMessage"`
|
||||||
|
|
||||||
// Group chat fields
|
// Group chat fields
|
||||||
// Members are the members who have been invited to the group chat
|
// Members are the members who have been invited to the group chat
|
||||||
|
@ -172,7 +173,7 @@ func (c *Chat) NextClockAndTimestamp(timesource TimeSource) (uint64, uint64) {
|
||||||
return clock, timestamp
|
return clock, timestamp
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Chat) UpdateFromMessage(message *Message, timesource TimeSource) error {
|
func (c *Chat) UpdateFromMessage(message *common.Message, timesource TimeSource) error {
|
||||||
c.Timestamp = int64(timesource.GetCurrentTime())
|
c.Timestamp = int64(timesource.GetCurrentTime())
|
||||||
|
|
||||||
// If the clock of the last message is lower, we set the message
|
// If the clock of the last message is lower, we set the message
|
||||||
|
|
|
@ -5,6 +5,8 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/stretchr/testify/suite"
|
"github.com/stretchr/testify/suite"
|
||||||
|
|
||||||
|
"github.com/status-im/status-go/protocol/common"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ChatTestSuite struct {
|
type ChatTestSuite struct {
|
||||||
|
@ -75,7 +77,7 @@ func (s *ChatTestSuite) TestValidateChat() {
|
||||||
func (s *ChatTestSuite) TestUpdateFromMessage() {
|
func (s *ChatTestSuite) TestUpdateFromMessage() {
|
||||||
|
|
||||||
// Base case, clock is higher
|
// Base case, clock is higher
|
||||||
message := &Message{}
|
message := &common.Message{}
|
||||||
chat := &Chat{}
|
chat := &Chat{}
|
||||||
|
|
||||||
message.Clock = 1
|
message.Clock = 1
|
||||||
|
@ -84,7 +86,7 @@ func (s *ChatTestSuite) TestUpdateFromMessage() {
|
||||||
s.Require().Equal(uint64(1), chat.LastClockValue)
|
s.Require().Equal(uint64(1), chat.LastClockValue)
|
||||||
|
|
||||||
// Clock is lower and lastMessage is not nil
|
// Clock is lower and lastMessage is not nil
|
||||||
message = &Message{}
|
message = &common.Message{}
|
||||||
lastMessage := message
|
lastMessage := message
|
||||||
chat = &Chat{LastClockValue: 2, LastMessage: lastMessage}
|
chat = &Chat{LastClockValue: 2, LastMessage: lastMessage}
|
||||||
|
|
||||||
|
@ -94,7 +96,7 @@ func (s *ChatTestSuite) TestUpdateFromMessage() {
|
||||||
s.Require().Equal(uint64(2), chat.LastClockValue)
|
s.Require().Equal(uint64(2), chat.LastClockValue)
|
||||||
|
|
||||||
// Clock is lower and lastMessage is nil
|
// Clock is lower and lastMessage is nil
|
||||||
message = &Message{}
|
message = &common.Message{}
|
||||||
chat = &Chat{LastClockValue: 2}
|
chat = &Chat{LastClockValue: 2}
|
||||||
|
|
||||||
message.Clock = 1
|
message.Clock = 1
|
||||||
|
@ -103,7 +105,7 @@ func (s *ChatTestSuite) TestUpdateFromMessage() {
|
||||||
s.Require().Equal(uint64(2), chat.LastClockValue)
|
s.Require().Equal(uint64(2), chat.LastClockValue)
|
||||||
|
|
||||||
// Clock is higher but lastMessage has lower clock message then the receiving one
|
// Clock is higher but lastMessage has lower clock message then the receiving one
|
||||||
message = &Message{}
|
message = &common.Message{}
|
||||||
chat = &Chat{LastClockValue: 2}
|
chat = &Chat{LastClockValue: 2}
|
||||||
|
|
||||||
message.Clock = 1
|
message.Clock = 1
|
||||||
|
@ -112,7 +114,7 @@ func (s *ChatTestSuite) TestUpdateFromMessage() {
|
||||||
s.Require().Equal(uint64(2), chat.LastClockValue)
|
s.Require().Equal(uint64(2), chat.LastClockValue)
|
||||||
|
|
||||||
chat.LastClockValue = 4
|
chat.LastClockValue = 4
|
||||||
message = &Message{}
|
message = &common.Message{}
|
||||||
message.Clock = 3
|
message.Clock = 3
|
||||||
s.Require().NoError(chat.UpdateFromMessage(message, &testTimeSource{}))
|
s.Require().NoError(chat.UpdateFromMessage(message, &testTimeSource{}))
|
||||||
s.Require().Equal(chat.LastMessage, message)
|
s.Require().Equal(chat.LastMessage, message)
|
||||||
|
@ -122,7 +124,7 @@ func (s *ChatTestSuite) TestUpdateFromMessage() {
|
||||||
|
|
||||||
func (s *ChatTestSuite) TestSerializeJSON() {
|
func (s *ChatTestSuite) TestSerializeJSON() {
|
||||||
|
|
||||||
message := &Message{}
|
message := &common.Message{}
|
||||||
chat := &Chat{}
|
chat := &Chat{}
|
||||||
|
|
||||||
message.Clock = 1
|
message.Clock = 1
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package protocol
|
package common
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"crypto/ecdsa"
|
"crypto/ecdsa"
|
||||||
|
@ -11,6 +11,7 @@ import (
|
||||||
"unicode/utf8"
|
"unicode/utf8"
|
||||||
|
|
||||||
"github.com/golang/protobuf/proto"
|
"github.com/golang/protobuf/proto"
|
||||||
|
|
||||||
"github.com/status-im/markdown"
|
"github.com/status-im/markdown"
|
||||||
"github.com/status-im/markdown/ast"
|
"github.com/status-im/markdown/ast"
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package protocol
|
package common
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
@ -16,7 +16,7 @@ const expectedJPEG = "data:image/jpeg;base64,/9j/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQ
|
||||||
const expectedAAC = "data:audio/aac;base64,//FQgBw//NoATGF2YzUyLjcwLjAAQniptokphEFCg5qs1v9fn48+qz1rfWNhwvz+CqB5dipmq3T2PlT1Ld6sPj+19fUt1C3NKV0KowiqohZVCrdf19WMatvV3YbIvAuy/q2RafA8UiZPmZY7DdmHZtP9ri25kedWSiMKQRt79ttlod55LkuX7/f7/f7/f7/YGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYHNqo8g5qs1v9fn48+qz1rfWNhwvz+CqAAAAAAAAAAAAAAAAAAAAAAABw//FQgCNf/CFXbUZfDKFRgsYlKDegtXJH9eLkT54uRM1ckDYDcXRzZGF6Kz5Yps5fTeLY6w7gclwly+0PJL3udY3PyekTFI65bdniF3OjvHeafzZfWTs0qRMSkdll1sbb4SNT5e8vX98ytot6jEZ0NhJi2pBVP/tKV2JMyo36n9uxR2tKR+FoLCsP4SVi49kmvaSCWm5bQD96OmVQA9Q40bqnOa7rT8j9N0TlK991XdcenGTLbyS6eUnN2U1ckf14uRPni5EzVyQAAAAAAAAAAx6Q1flBp+KH2LhgH2Xx+14QB2/jcizm6ngck4vB9DoH9/Vcb7E8Dy+D/1ii1pSPwsUUUXCSsXHsk17SBfKwn2uHr6QAAAAAAAHA//FQgBt//CF3VO1KFCFWcd/r04m+O0758/tXHUlvaqEK9lvhUZXEZMXKMV/LQ6B3/mOl/Mrfs6jpD2b7f+n4yt+tm2x5ZmnpD++dZo/V9VgblI3OW/s1b8qt0h1RBiIRIIYIYQIBeCM8yy7etkwt1JAajRSoZGwwNZ07TTFTyMR1mTUVVUTW97vaDaHU5DV1snBf0mN4fraa+rf/vpdZ8FxqatGjNxPh35UuVfpNqc48W4nZ6rOO/16cTfHad8+f2rjqS3tVAAAAAAAAAAAAAAAAAAAAAAAAAAAO//FQgBm//CEXVPU+GiFsPr7x6+N6v+m+q511I4SgtYVyoyWjcMWMxkaxxDGSx1qVcarjDESt8zLQehx/lkil/GrHBy/NfJcHek0XtfanZJLHNXO2rUnFklPAlQSBS4l0pIoXIfORcXx0UYj1nTsSe1/0wXDkkFCfxWHtqRayOmWm3oS6JGdnZdtjesjByefiS8dLW1tVVVC58ijoxN3gmGFYj07+YJ6eth9fePXxvV/031XOupHCUAAAAAAAAAAAAAAAAAAAAAAAAAAA4P/xUIAcf/whN1T9NsMOEK5rxxxxXnid+f0/Ia195vi6oGH1ZVr6kjqScdSF9lt3qXH+Lxf0fo/Oe53r99IUPzybv/YWGZ7Vgk31MGw+DMp05+3y9fPERUTHlt1c9sUyoqCaD5bdXVz2wkG0hnpDmFy8r0fr3VBn/C7Rmg+L0/45EWfdocGq3HQ1uRro0GJK+vsvo837NR82s01l/n97rsWn7RYNBM3WRcDY3cJKosqMJhgdHtj9yflthd65rxxxxXnid+f0/Ia195vi6oAAAAAAAAAAAAAAAAAAAAAAAAAAAABw"
|
const expectedAAC = "data:audio/aac;base64,//FQgBw//NoATGF2YzUyLjcwLjAAQniptokphEFCg5qs1v9fn48+qz1rfWNhwvz+CqB5dipmq3T2PlT1Ld6sPj+19fUt1C3NKV0KowiqohZVCrdf19WMatvV3YbIvAuy/q2RafA8UiZPmZY7DdmHZtP9ri25kedWSiMKQRt79ttlod55LkuX7/f7/f7/f7/YGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYHNqo8g5qs1v9fn48+qz1rfWNhwvz+CqAAAAAAAAAAAAAAAAAAAAAAABw//FQgCNf/CFXbUZfDKFRgsYlKDegtXJH9eLkT54uRM1ckDYDcXRzZGF6Kz5Yps5fTeLY6w7gclwly+0PJL3udY3PyekTFI65bdniF3OjvHeafzZfWTs0qRMSkdll1sbb4SNT5e8vX98ytot6jEZ0NhJi2pBVP/tKV2JMyo36n9uxR2tKR+FoLCsP4SVi49kmvaSCWm5bQD96OmVQA9Q40bqnOa7rT8j9N0TlK991XdcenGTLbyS6eUnN2U1ckf14uRPni5EzVyQAAAAAAAAAAx6Q1flBp+KH2LhgH2Xx+14QB2/jcizm6ngck4vB9DoH9/Vcb7E8Dy+D/1ii1pSPwsUUUXCSsXHsk17SBfKwn2uHr6QAAAAAAAHA//FQgBt//CF3VO1KFCFWcd/r04m+O0758/tXHUlvaqEK9lvhUZXEZMXKMV/LQ6B3/mOl/Mrfs6jpD2b7f+n4yt+tm2x5ZmnpD++dZo/V9VgblI3OW/s1b8qt0h1RBiIRIIYIYQIBeCM8yy7etkwt1JAajRSoZGwwNZ07TTFTyMR1mTUVVUTW97vaDaHU5DV1snBf0mN4fraa+rf/vpdZ8FxqatGjNxPh35UuVfpNqc48W4nZ6rOO/16cTfHad8+f2rjqS3tVAAAAAAAAAAAAAAAAAAAAAAAAAAAO//FQgBm//CEXVPU+GiFsPr7x6+N6v+m+q511I4SgtYVyoyWjcMWMxkaxxDGSx1qVcarjDESt8zLQehx/lkil/GrHBy/NfJcHek0XtfanZJLHNXO2rUnFklPAlQSBS4l0pIoXIfORcXx0UYj1nTsSe1/0wXDkkFCfxWHtqRayOmWm3oS6JGdnZdtjesjByefiS8dLW1tVVVC58ijoxN3gmGFYj07+YJ6eth9fePXxvV/031XOupHCUAAAAAAAAAAAAAAAAAAAAAAAAAAA4P/xUIAcf/whN1T9NsMOEK5rxxxxXnid+f0/Ia195vi6oGH1ZVr6kjqScdSF9lt3qXH+Lxf0fo/Oe53r99IUPzybv/YWGZ7Vgk31MGw+DMp05+3y9fPERUTHlt1c9sUyoqCaD5bdXVz2wkG0hnpDmFy8r0fr3VBn/C7Rmg+L0/45EWfdocGq3HQ1uRro0GJK+vsvo837NR82s01l/n97rsWn7RYNBM3WRcDY3cJKosqMJhgdHtj9yflthd65rxxxxXnid+f0/Ia195vi6oAAAAAAAAAAAAAAAAAAAAAAAAAAAABw"
|
||||||
|
|
||||||
func TestPrepareContentImage(t *testing.T) {
|
func TestPrepareContentImage(t *testing.T) {
|
||||||
file, err := os.Open("../_assets/tests/test.jpg")
|
file, err := os.Open("../../_assets/tests/test.jpg")
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ func TestGetImageMessageMIME(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestPrepareContentAudio(t *testing.T) {
|
func TestPrepareContentAudio(t *testing.T) {
|
||||||
file, err := os.Open("../_assets/tests/test.aac")
|
file, err := os.Open("../../_assets/tests/test.aac")
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
|
|
|
@ -6,6 +6,7 @@ import (
|
||||||
|
|
||||||
"github.com/status-im/status-go/eth-node/crypto"
|
"github.com/status-im/status-go/eth-node/crypto"
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"github.com/status-im/status-go/eth-node/types"
|
||||||
|
"github.com/status-im/status-go/protocol/common"
|
||||||
"github.com/status-im/status-go/protocol/protobuf"
|
"github.com/status-im/status-go/protocol/protobuf"
|
||||||
v1protocol "github.com/status-im/status-go/protocol/v1"
|
v1protocol "github.com/status-im/status-go/protocol/v1"
|
||||||
)
|
)
|
||||||
|
@ -27,7 +28,7 @@ func tsprintf(format string, params map[string]string) string {
|
||||||
return format
|
return format
|
||||||
}
|
}
|
||||||
|
|
||||||
func eventToSystemMessage(e v1protocol.MembershipUpdateEvent, translations map[protobuf.MembershipUpdateEvent_EventType]string) *Message {
|
func eventToSystemMessage(e v1protocol.MembershipUpdateEvent, translations map[protobuf.MembershipUpdateEvent_EventType]string) *common.Message {
|
||||||
var text string
|
var text string
|
||||||
switch e.Type {
|
switch e.Type {
|
||||||
case protobuf.MembershipUpdateEvent_CHAT_CREATED:
|
case protobuf.MembershipUpdateEvent_CHAT_CREATED:
|
||||||
|
@ -56,7 +57,7 @@ func eventToSystemMessage(e v1protocol.MembershipUpdateEvent, translations map[p
|
||||||
|
|
||||||
}
|
}
|
||||||
timestamp := v1protocol.TimestampInMsFromTime(time.Now())
|
timestamp := v1protocol.TimestampInMsFromTime(time.Now())
|
||||||
message := &Message{
|
message := &common.Message{
|
||||||
ChatMessage: protobuf.ChatMessage{
|
ChatMessage: protobuf.ChatMessage{
|
||||||
ChatId: e.ChatID,
|
ChatId: e.ChatID,
|
||||||
Text: text,
|
Text: text,
|
||||||
|
@ -75,8 +76,8 @@ func eventToSystemMessage(e v1protocol.MembershipUpdateEvent, translations map[p
|
||||||
return message
|
return message
|
||||||
}
|
}
|
||||||
|
|
||||||
func buildSystemMessages(events []v1protocol.MembershipUpdateEvent, translations map[protobuf.MembershipUpdateEvent_EventType]string) []*Message {
|
func buildSystemMessages(events []v1protocol.MembershipUpdateEvent, translations map[protobuf.MembershipUpdateEvent_EventType]string) []*common.Message {
|
||||||
var messages []*Message
|
var messages []*common.Message
|
||||||
|
|
||||||
for _, e := range events {
|
for _, e := range events {
|
||||||
messages = append(messages, eventToSystemMessage(e, translations))
|
messages = append(messages, eventToSystemMessage(e, translations))
|
||||||
|
|
|
@ -5,11 +5,12 @@ import (
|
||||||
|
|
||||||
"github.com/status-im/status-go/eth-node/crypto"
|
"github.com/status-im/status-go/eth-node/crypto"
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"github.com/status-im/status-go/eth-node/types"
|
||||||
|
"github.com/status-im/status-go/protocol/common"
|
||||||
"github.com/status-im/status-go/protocol/identity/alias"
|
"github.com/status-im/status-go/protocol/identity/alias"
|
||||||
"github.com/status-im/status-go/protocol/identity/identicon"
|
"github.com/status-im/status-go/protocol/identity/identicon"
|
||||||
)
|
)
|
||||||
|
|
||||||
func extendMessageFromChat(message *Message, chat *Chat, key *ecdsa.PublicKey, timesource TimeSource) error {
|
func extendMessageFromChat(message *common.Message, chat *Chat, key *ecdsa.PublicKey, timesource TimeSource) error {
|
||||||
clock, timestamp := chat.NextClockAndTimestamp(timesource)
|
clock, timestamp := chat.NextClockAndTimestamp(timesource)
|
||||||
|
|
||||||
message.LocalChatID = chat.ID
|
message.LocalChatID = chat.ID
|
||||||
|
@ -19,7 +20,7 @@ func extendMessageFromChat(message *Message, chat *Chat, key *ecdsa.PublicKey, t
|
||||||
message.SigPubKey = key
|
message.SigPubKey = key
|
||||||
message.WhisperTimestamp = timestamp
|
message.WhisperTimestamp = timestamp
|
||||||
message.Seen = true
|
message.Seen = true
|
||||||
message.OutgoingStatus = OutgoingStatusSending
|
message.OutgoingStatus = common.OutgoingStatusSending
|
||||||
|
|
||||||
identicon, err := identicon.GenerateBase64(message.From)
|
identicon, err := identicon.GenerateBase64(message.From)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -145,7 +145,7 @@ func (m *MessageHandler) HandleMembershipUpdate(messageState *ReceivedMessageSta
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *MessageHandler) handleCommandMessage(state *ReceivedMessageState, message *Message) error {
|
func (m *MessageHandler) handleCommandMessage(state *ReceivedMessageState, message *common.Message) error {
|
||||||
message.ID = state.CurrentMessageState.MessageID
|
message.ID = state.CurrentMessageState.MessageID
|
||||||
message.From = state.CurrentMessageState.Contact.ID
|
message.From = state.CurrentMessageState.Contact.ID
|
||||||
message.Alias = state.CurrentMessageState.Contact.Alias
|
message.Alias = state.CurrentMessageState.Contact.Alias
|
||||||
|
@ -182,7 +182,7 @@ func (m *MessageHandler) handleCommandMessage(state *ReceivedMessageState, messa
|
||||||
message.OutgoingStatus = ""
|
message.OutgoingStatus = ""
|
||||||
} else {
|
} else {
|
||||||
// Our own message, mark as sent
|
// Our own message, mark as sent
|
||||||
message.OutgoingStatus = OutgoingStatusSent
|
message.OutgoingStatus = common.OutgoingStatusSent
|
||||||
}
|
}
|
||||||
|
|
||||||
err = chat.UpdateFromMessage(message, state.Timesource)
|
err = chat.UpdateFromMessage(message, state.Timesource)
|
||||||
|
@ -330,7 +330,7 @@ func (m *MessageHandler) HandleChatMessage(state *ReceivedMessageState) error {
|
||||||
logger.Warn("failed to validate message", zap.Error(err))
|
logger.Warn("failed to validate message", zap.Error(err))
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
receivedMessage := &Message{
|
receivedMessage := &common.Message{
|
||||||
ID: state.CurrentMessageState.MessageID,
|
ID: state.CurrentMessageState.MessageID,
|
||||||
ChatMessage: state.CurrentMessageState.Message,
|
ChatMessage: state.CurrentMessageState.Message,
|
||||||
From: state.CurrentMessageState.Contact.ID,
|
From: state.CurrentMessageState.Contact.ID,
|
||||||
|
@ -369,7 +369,7 @@ func (m *MessageHandler) HandleChatMessage(state *ReceivedMessageState) error {
|
||||||
chat.UnviewedMessagesCount++
|
chat.UnviewedMessagesCount++
|
||||||
} else {
|
} else {
|
||||||
// Our own message, mark as sent
|
// Our own message, mark as sent
|
||||||
receivedMessage.OutgoingStatus = OutgoingStatusSent
|
receivedMessage.OutgoingStatus = common.OutgoingStatusSent
|
||||||
}
|
}
|
||||||
|
|
||||||
err = chat.UpdateFromMessage(receivedMessage, state.Timesource)
|
err = chat.UpdateFromMessage(receivedMessage, state.Timesource)
|
||||||
|
@ -401,7 +401,7 @@ func (m *MessageHandler) HandleRequestAddressForTransaction(messageState *Receiv
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
message := &Message{
|
message := &common.Message{
|
||||||
ChatMessage: protobuf.ChatMessage{
|
ChatMessage: protobuf.ChatMessage{
|
||||||
Clock: command.Clock,
|
Clock: command.Clock,
|
||||||
Timestamp: messageState.CurrentMessageState.WhisperTimestamp,
|
Timestamp: messageState.CurrentMessageState.WhisperTimestamp,
|
||||||
|
@ -410,11 +410,11 @@ func (m *MessageHandler) HandleRequestAddressForTransaction(messageState *Receiv
|
||||||
MessageType: protobuf.MessageType_ONE_TO_ONE,
|
MessageType: protobuf.MessageType_ONE_TO_ONE,
|
||||||
ContentType: protobuf.ChatMessage_TRANSACTION_COMMAND,
|
ContentType: protobuf.ChatMessage_TRANSACTION_COMMAND,
|
||||||
},
|
},
|
||||||
CommandParameters: &CommandParameters{
|
CommandParameters: &common.CommandParameters{
|
||||||
ID: messageState.CurrentMessageState.MessageID,
|
ID: messageState.CurrentMessageState.MessageID,
|
||||||
Value: command.Value,
|
Value: command.Value,
|
||||||
Contract: command.Contract,
|
Contract: command.Contract,
|
||||||
CommandState: CommandStateRequestAddressForTransaction,
|
CommandState: common.CommandStateRequestAddressForTransaction,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
return m.handleCommandMessage(messageState, message)
|
return m.handleCommandMessage(messageState, message)
|
||||||
|
@ -425,7 +425,7 @@ func (m *MessageHandler) HandleRequestTransaction(messageState *ReceivedMessageS
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
message := &Message{
|
message := &common.Message{
|
||||||
ChatMessage: protobuf.ChatMessage{
|
ChatMessage: protobuf.ChatMessage{
|
||||||
Clock: command.Clock,
|
Clock: command.Clock,
|
||||||
Timestamp: messageState.CurrentMessageState.WhisperTimestamp,
|
Timestamp: messageState.CurrentMessageState.WhisperTimestamp,
|
||||||
|
@ -434,11 +434,11 @@ func (m *MessageHandler) HandleRequestTransaction(messageState *ReceivedMessageS
|
||||||
MessageType: protobuf.MessageType_ONE_TO_ONE,
|
MessageType: protobuf.MessageType_ONE_TO_ONE,
|
||||||
ContentType: protobuf.ChatMessage_TRANSACTION_COMMAND,
|
ContentType: protobuf.ChatMessage_TRANSACTION_COMMAND,
|
||||||
},
|
},
|
||||||
CommandParameters: &CommandParameters{
|
CommandParameters: &common.CommandParameters{
|
||||||
ID: messageState.CurrentMessageState.MessageID,
|
ID: messageState.CurrentMessageState.MessageID,
|
||||||
Value: command.Value,
|
Value: command.Value,
|
||||||
Contract: command.Contract,
|
Contract: command.Contract,
|
||||||
CommandState: CommandStateRequestTransaction,
|
CommandState: common.CommandStateRequestTransaction,
|
||||||
Address: command.Address,
|
Address: command.Address,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -466,7 +466,7 @@ func (m *MessageHandler) HandleAcceptRequestAddressForTransaction(messageState *
|
||||||
return errors.New("Initial message must originate from us")
|
return errors.New("Initial message must originate from us")
|
||||||
}
|
}
|
||||||
|
|
||||||
if initialMessage.CommandParameters.CommandState != CommandStateRequestAddressForTransaction {
|
if initialMessage.CommandParameters.CommandState != common.CommandStateRequestAddressForTransaction {
|
||||||
return errors.New("Wrong state for command")
|
return errors.New("Wrong state for command")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -475,7 +475,7 @@ func (m *MessageHandler) HandleAcceptRequestAddressForTransaction(messageState *
|
||||||
initialMessage.Text = requestAddressForTransactionAcceptedMessage
|
initialMessage.Text = requestAddressForTransactionAcceptedMessage
|
||||||
initialMessage.CommandParameters.Address = command.Address
|
initialMessage.CommandParameters.Address = command.Address
|
||||||
initialMessage.Seen = false
|
initialMessage.Seen = false
|
||||||
initialMessage.CommandParameters.CommandState = CommandStateRequestAddressForTransactionAccepted
|
initialMessage.CommandParameters.CommandState = common.CommandStateRequestAddressForTransactionAccepted
|
||||||
|
|
||||||
// Hide previous message
|
// Hide previous message
|
||||||
previousMessage, err := m.persistence.MessageByCommandID(messageState.CurrentMessageState.Contact.ID, command.Id)
|
previousMessage, err := m.persistence.MessageByCommandID(messageState.CurrentMessageState.Contact.ID, command.Id)
|
||||||
|
@ -536,7 +536,7 @@ func (m *MessageHandler) HandleDeclineRequestAddressForTransaction(messageState
|
||||||
return errors.New("Initial message must originate from us")
|
return errors.New("Initial message must originate from us")
|
||||||
}
|
}
|
||||||
|
|
||||||
if oldMessage.CommandParameters.CommandState != CommandStateRequestAddressForTransaction {
|
if oldMessage.CommandParameters.CommandState != common.CommandStateRequestAddressForTransaction {
|
||||||
return errors.New("Wrong state for command")
|
return errors.New("Wrong state for command")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -544,7 +544,7 @@ func (m *MessageHandler) HandleDeclineRequestAddressForTransaction(messageState
|
||||||
oldMessage.Timestamp = messageState.CurrentMessageState.WhisperTimestamp
|
oldMessage.Timestamp = messageState.CurrentMessageState.WhisperTimestamp
|
||||||
oldMessage.Text = requestAddressForTransactionDeclinedMessage
|
oldMessage.Text = requestAddressForTransactionDeclinedMessage
|
||||||
oldMessage.Seen = false
|
oldMessage.Seen = false
|
||||||
oldMessage.CommandParameters.CommandState = CommandStateRequestAddressForTransactionDeclined
|
oldMessage.CommandParameters.CommandState = common.CommandStateRequestAddressForTransactionDeclined
|
||||||
|
|
||||||
// Hide previous message
|
// Hide previous message
|
||||||
err = m.persistence.HideMessage(command.Id)
|
err = m.persistence.HideMessage(command.Id)
|
||||||
|
@ -577,7 +577,7 @@ func (m *MessageHandler) HandleDeclineRequestTransaction(messageState *ReceivedM
|
||||||
return errors.New("Initial message must originate from us")
|
return errors.New("Initial message must originate from us")
|
||||||
}
|
}
|
||||||
|
|
||||||
if oldMessage.CommandParameters.CommandState != CommandStateRequestTransaction {
|
if oldMessage.CommandParameters.CommandState != common.CommandStateRequestTransaction {
|
||||||
return errors.New("Wrong state for command")
|
return errors.New("Wrong state for command")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -585,7 +585,7 @@ func (m *MessageHandler) HandleDeclineRequestTransaction(messageState *ReceivedM
|
||||||
oldMessage.Timestamp = messageState.CurrentMessageState.WhisperTimestamp
|
oldMessage.Timestamp = messageState.CurrentMessageState.WhisperTimestamp
|
||||||
oldMessage.Text = transactionRequestDeclinedMessage
|
oldMessage.Text = transactionRequestDeclinedMessage
|
||||||
oldMessage.Seen = false
|
oldMessage.Seen = false
|
||||||
oldMessage.CommandParameters.CommandState = CommandStateRequestTransactionDeclined
|
oldMessage.CommandParameters.CommandState = common.CommandStateRequestTransactionDeclined
|
||||||
|
|
||||||
// Hide previous message
|
// Hide previous message
|
||||||
err = m.persistence.HideMessage(command.Id)
|
err = m.persistence.HideMessage(command.Id)
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/status-im/status-go/protocol/common"
|
||||||
"github.com/status-im/status-go/protocol/protobuf"
|
"github.com/status-im/status-go/protocol/protobuf"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
|
@ -106,7 +107,7 @@ type scanner interface {
|
||||||
Scan(dest ...interface{}) error
|
Scan(dest ...interface{}) error
|
||||||
}
|
}
|
||||||
|
|
||||||
func (db sqlitePersistence) tableUserMessagesScanAllFields(row scanner, message *Message, others ...interface{}) error {
|
func (db sqlitePersistence) tableUserMessagesScanAllFields(row scanner, message *common.Message, others ...interface{}) error {
|
||||||
var quotedText sql.NullString
|
var quotedText sql.NullString
|
||||||
var quotedParsedText []byte
|
var quotedParsedText []byte
|
||||||
var quotedFrom sql.NullString
|
var quotedFrom sql.NullString
|
||||||
|
@ -118,7 +119,7 @@ func (db sqlitePersistence) tableUserMessagesScanAllFields(row scanner, message
|
||||||
var identicon sql.NullString
|
var identicon sql.NullString
|
||||||
|
|
||||||
sticker := &protobuf.StickerMessage{}
|
sticker := &protobuf.StickerMessage{}
|
||||||
command := &CommandParameters{}
|
command := &common.CommandParameters{}
|
||||||
audio := &protobuf.AudioMessage{}
|
audio := &protobuf.AudioMessage{}
|
||||||
|
|
||||||
args := []interface{}{
|
args := []interface{}{
|
||||||
|
@ -169,7 +170,7 @@ func (db sqlitePersistence) tableUserMessagesScanAllFields(row scanner, message
|
||||||
}
|
}
|
||||||
|
|
||||||
if quotedText.Valid {
|
if quotedText.Valid {
|
||||||
message.QuotedMessage = &QuotedMessage{
|
message.QuotedMessage = &common.QuotedMessage{
|
||||||
From: quotedFrom.String,
|
From: quotedFrom.String,
|
||||||
Text: quotedText.String,
|
Text: quotedText.String,
|
||||||
ParsedText: quotedParsedText,
|
ParsedText: quotedParsedText,
|
||||||
|
@ -202,7 +203,7 @@ func (db sqlitePersistence) tableUserMessagesScanAllFields(row scanner, message
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (db sqlitePersistence) tableUserMessagesAllValues(message *Message) ([]interface{}, error) {
|
func (db sqlitePersistence) tableUserMessagesAllValues(message *common.Message) ([]interface{}, error) {
|
||||||
sticker := message.GetSticker()
|
sticker := message.GetSticker()
|
||||||
if sticker == nil {
|
if sticker == nil {
|
||||||
sticker = &protobuf.StickerMessage{}
|
sticker = &protobuf.StickerMessage{}
|
||||||
|
@ -220,7 +221,7 @@ func (db sqlitePersistence) tableUserMessagesAllValues(message *Message) ([]inte
|
||||||
|
|
||||||
command := message.CommandParameters
|
command := message.CommandParameters
|
||||||
if command == nil {
|
if command == nil {
|
||||||
command = &CommandParameters{}
|
command = &common.CommandParameters{}
|
||||||
}
|
}
|
||||||
|
|
||||||
var serializedMentions []byte
|
var serializedMentions []byte
|
||||||
|
@ -271,7 +272,7 @@ func (db sqlitePersistence) tableUserMessagesAllValues(message *Message) ([]inte
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (db sqlitePersistence) messageByID(tx *sql.Tx, id string) (*Message, error) {
|
func (db sqlitePersistence) messageByID(tx *sql.Tx, id string) (*common.Message, error) {
|
||||||
var err error
|
var err error
|
||||||
if tx == nil {
|
if tx == nil {
|
||||||
tx, err = db.db.BeginTx(context.Background(), &sql.TxOptions{})
|
tx, err = db.db.BeginTx(context.Background(), &sql.TxOptions{})
|
||||||
|
@ -288,7 +289,7 @@ func (db sqlitePersistence) messageByID(tx *sql.Tx, id string) (*Message, error)
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
var message Message
|
var message common.Message
|
||||||
|
|
||||||
allFields := db.tableUserMessagesAllFieldsJoin()
|
allFields := db.tableUserMessagesAllFieldsJoin()
|
||||||
row := tx.QueryRow(
|
row := tx.QueryRow(
|
||||||
|
@ -322,9 +323,9 @@ func (db sqlitePersistence) messageByID(tx *sql.Tx, id string) (*Message, error)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (db sqlitePersistence) MessageByCommandID(chatID, id string) (*Message, error) {
|
func (db sqlitePersistence) MessageByCommandID(chatID, id string) (*common.Message, error) {
|
||||||
|
|
||||||
var message Message
|
var message common.Message
|
||||||
|
|
||||||
allFields := db.tableUserMessagesAllFieldsJoin()
|
allFields := db.tableUserMessagesAllFieldsJoin()
|
||||||
row := db.db.QueryRow(
|
row := db.db.QueryRow(
|
||||||
|
@ -363,7 +364,7 @@ func (db sqlitePersistence) MessageByCommandID(chatID, id string) (*Message, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (db sqlitePersistence) MessageByID(id string) (*Message, error) {
|
func (db sqlitePersistence) MessageByID(id string) (*common.Message, error) {
|
||||||
return db.messageByID(nil, id)
|
return db.messageByID(nil, id)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -398,7 +399,7 @@ func (db sqlitePersistence) MessagesExist(ids []string) (map[string]bool, error)
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (db sqlitePersistence) MessagesByIDs(ids []string) ([]*Message, error) {
|
func (db sqlitePersistence) MessagesByIDs(ids []string) ([]*common.Message, error) {
|
||||||
if len(ids) == 0 {
|
if len(ids) == 0 {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
@ -433,9 +434,9 @@ func (db sqlitePersistence) MessagesByIDs(ids []string) ([]*Message, error) {
|
||||||
}
|
}
|
||||||
defer rows.Close()
|
defer rows.Close()
|
||||||
|
|
||||||
var result []*Message
|
var result []*common.Message
|
||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
var message Message
|
var message common.Message
|
||||||
if err := db.tableUserMessagesScanAllFields(rows, &message); err != nil {
|
if err := db.tableUserMessagesScanAllFields(rows, &message); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -448,7 +449,7 @@ func (db sqlitePersistence) MessagesByIDs(ids []string) ([]*Message, error) {
|
||||||
// MessageByChatID returns all messages for a given chatID in descending order.
|
// MessageByChatID returns all messages for a given chatID in descending order.
|
||||||
// Ordering is accomplished using two concatenated values: ClockValue and ID.
|
// Ordering is accomplished using two concatenated values: ClockValue and ID.
|
||||||
// These two values are also used to compose a cursor which is returned to the result.
|
// These two values are also used to compose a cursor which is returned to the result.
|
||||||
func (db sqlitePersistence) MessageByChatID(chatID string, currCursor string, limit int) ([]*Message, string, error) {
|
func (db sqlitePersistence) MessageByChatID(chatID string, currCursor string, limit int) ([]*common.Message, string, error) {
|
||||||
cursorWhere := ""
|
cursorWhere := ""
|
||||||
if currCursor != "" {
|
if currCursor != "" {
|
||||||
cursorWhere = "AND cursor <= ?"
|
cursorWhere = "AND cursor <= ?"
|
||||||
|
@ -491,12 +492,12 @@ func (db sqlitePersistence) MessageByChatID(chatID string, currCursor string, li
|
||||||
defer rows.Close()
|
defer rows.Close()
|
||||||
|
|
||||||
var (
|
var (
|
||||||
result []*Message
|
result []*common.Message
|
||||||
cursors []string
|
cursors []string
|
||||||
)
|
)
|
||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
var (
|
var (
|
||||||
message Message
|
message common.Message
|
||||||
cursor string
|
cursor string
|
||||||
)
|
)
|
||||||
if err := db.tableUserMessagesScanAllFields(rows, &message, &cursor); err != nil {
|
if err := db.tableUserMessagesScanAllFields(rows, &message, &cursor); err != nil {
|
||||||
|
@ -587,7 +588,7 @@ func (db sqlitePersistence) EmojiReactionsByChatID(chatID string, currCursor str
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (db sqlitePersistence) SaveMessages(messages []*Message) (err error) {
|
func (db sqlitePersistence) SaveMessages(messages []*common.Message) (err error) {
|
||||||
tx, err := db.db.BeginTx(context.Background(), &sql.TxOptions{})
|
tx, err := db.db.BeginTx(context.Background(), &sql.TxOptions{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
|
|
|
@ -91,7 +91,7 @@ type RawResponse struct {
|
||||||
|
|
||||||
type MessengerResponse struct {
|
type MessengerResponse struct {
|
||||||
Chats []*Chat `json:"chats,omitempty"`
|
Chats []*Chat `json:"chats,omitempty"`
|
||||||
Messages []*Message `json:"messages,omitempty"`
|
Messages []*common.Message `json:"messages,omitempty"`
|
||||||
Contacts []*Contact `json:"contacts,omitempty"`
|
Contacts []*Contact `json:"contacts,omitempty"`
|
||||||
Installations []*multidevice.Installation `json:"installations,omitempty"`
|
Installations []*multidevice.Installation `json:"installations,omitempty"`
|
||||||
EmojiReactions []*EmojiReaction `json:"emojiReactions,omitempty"`
|
EmojiReactions []*EmojiReaction `json:"emojiReactions,omitempty"`
|
||||||
|
@ -1689,7 +1689,7 @@ func (m *Messenger) dispatchMessage(ctx context.Context, spec common.RawMessage)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SendChatMessage takes a minimal message and sends it based on the corresponding chat
|
// SendChatMessage takes a minimal message and sends it based on the corresponding chat
|
||||||
func (m *Messenger) SendChatMessage(ctx context.Context, message *Message) (*MessengerResponse, error) {
|
func (m *Messenger) SendChatMessage(ctx context.Context, message *common.Message) (*MessengerResponse, error) {
|
||||||
m.mutex.Lock()
|
m.mutex.Lock()
|
||||||
defer m.mutex.Unlock()
|
defer m.mutex.Unlock()
|
||||||
|
|
||||||
|
@ -1778,12 +1778,12 @@ func (m *Messenger) SendChatMessage(ctx context.Context, message *Message) (*Mes
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = m.persistence.SaveMessages([]*Message{message})
|
err = m.persistence.SaveMessages([]*common.Message{message})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
response.Messages, err = m.pullMessagesAndResponsesFromDB([]*Message{message})
|
response.Messages, err = m.pullMessagesAndResponsesFromDB([]*common.Message{message})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -2540,7 +2540,7 @@ func (m *Messenger) ConfirmMessagesProcessed(messageIDs [][]byte) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Messenger) MessageByID(id string) (*Message, error) {
|
func (m *Messenger) MessageByID(id string) (*common.Message, error) {
|
||||||
return m.persistence.MessageByID(id)
|
return m.persistence.MessageByID(id)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2548,11 +2548,11 @@ func (m *Messenger) MessagesExist(ids []string) (map[string]bool, error) {
|
||||||
return m.persistence.MessagesExist(ids)
|
return m.persistence.MessagesExist(ids)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Messenger) MessageByChatID(chatID, cursor string, limit int) ([]*Message, string, error) {
|
func (m *Messenger) MessageByChatID(chatID, cursor string, limit int) ([]*common.Message, string, error) {
|
||||||
return m.persistence.MessageByChatID(chatID, cursor, limit)
|
return m.persistence.MessageByChatID(chatID, cursor, limit)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Messenger) SaveMessages(messages []*Message) error {
|
func (m *Messenger) SaveMessages(messages []*common.Message) error {
|
||||||
return m.persistence.SaveMessages(messages)
|
return m.persistence.SaveMessages(messages)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2733,7 +2733,7 @@ func (m *Messenger) RequestTransaction(ctx context.Context, chatID, value, contr
|
||||||
return nil, errors.New("Need to be a one-to-one chat")
|
return nil, errors.New("Need to be a one-to-one chat")
|
||||||
}
|
}
|
||||||
|
|
||||||
message := &Message{}
|
message := &common.Message{}
|
||||||
err := extendMessageFromChat(message, chat, &m.identity.PublicKey, m.transport)
|
err := extendMessageFromChat(message, chat, &m.identity.PublicKey, m.transport)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -2760,12 +2760,12 @@ func (m *Messenger) RequestTransaction(ctx context.Context, chatID, value, contr
|
||||||
ResendAutomatically: true,
|
ResendAutomatically: true,
|
||||||
})
|
})
|
||||||
|
|
||||||
message.CommandParameters = &CommandParameters{
|
message.CommandParameters = &common.CommandParameters{
|
||||||
ID: types.EncodeHex(id),
|
ID: types.EncodeHex(id),
|
||||||
Value: value,
|
Value: value,
|
||||||
Address: address,
|
Address: address,
|
||||||
Contract: contract,
|
Contract: contract,
|
||||||
CommandState: CommandStateRequestTransaction,
|
CommandState: common.CommandStateRequestTransaction,
|
||||||
}
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -2785,13 +2785,13 @@ func (m *Messenger) RequestTransaction(ctx context.Context, chatID, value, contr
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = m.persistence.SaveMessages([]*Message{message})
|
err = m.persistence.SaveMessages([]*common.Message{message})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
response.Chats = []*Chat{chat}
|
response.Chats = []*Chat{chat}
|
||||||
response.Messages = []*Message{message}
|
response.Messages = []*common.Message{message}
|
||||||
return &response, m.saveChat(chat)
|
return &response, m.saveChat(chat)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2810,7 +2810,7 @@ func (m *Messenger) RequestAddressForTransaction(ctx context.Context, chatID, fr
|
||||||
return nil, errors.New("Need to be a one-to-one chat")
|
return nil, errors.New("Need to be a one-to-one chat")
|
||||||
}
|
}
|
||||||
|
|
||||||
message := &Message{}
|
message := &common.Message{}
|
||||||
err := extendMessageFromChat(message, chat, &m.identity.PublicKey, m.transport)
|
err := extendMessageFromChat(message, chat, &m.identity.PublicKey, m.transport)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -2836,12 +2836,12 @@ func (m *Messenger) RequestAddressForTransaction(ctx context.Context, chatID, fr
|
||||||
ResendAutomatically: true,
|
ResendAutomatically: true,
|
||||||
})
|
})
|
||||||
|
|
||||||
message.CommandParameters = &CommandParameters{
|
message.CommandParameters = &common.CommandParameters{
|
||||||
ID: types.EncodeHex(id),
|
ID: types.EncodeHex(id),
|
||||||
From: from,
|
From: from,
|
||||||
Value: value,
|
Value: value,
|
||||||
Contract: contract,
|
Contract: contract,
|
||||||
CommandState: CommandStateRequestAddressForTransaction,
|
CommandState: common.CommandStateRequestAddressForTransaction,
|
||||||
}
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -2861,13 +2861,13 @@ func (m *Messenger) RequestAddressForTransaction(ctx context.Context, chatID, fr
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = m.persistence.SaveMessages([]*Message{message})
|
err = m.persistence.SaveMessages([]*common.Message{message})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
response.Chats = []*Chat{chat}
|
response.Chats = []*Chat{chat}
|
||||||
response.Messages = []*Message{message}
|
response.Messages = []*common.Message{message}
|
||||||
return &response, m.saveChat(chat)
|
return &response, m.saveChat(chat)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2902,7 +2902,7 @@ func (m *Messenger) AcceptRequestAddressForTransaction(ctx context.Context, mess
|
||||||
message.WhisperTimestamp = timestamp
|
message.WhisperTimestamp = timestamp
|
||||||
message.Timestamp = timestamp
|
message.Timestamp = timestamp
|
||||||
message.Text = "Request address for transaction accepted"
|
message.Text = "Request address for transaction accepted"
|
||||||
message.OutgoingStatus = OutgoingStatusSending
|
message.OutgoingStatus = common.OutgoingStatusSending
|
||||||
|
|
||||||
// Hide previous message
|
// Hide previous message
|
||||||
previousMessage, err := m.persistence.MessageByCommandID(chatID, messageID)
|
previousMessage, err := m.persistence.MessageByCommandID(chatID, messageID)
|
||||||
|
@ -2944,7 +2944,7 @@ func (m *Messenger) AcceptRequestAddressForTransaction(ctx context.Context, mess
|
||||||
|
|
||||||
message.ID = types.EncodeHex(newMessageID)
|
message.ID = types.EncodeHex(newMessageID)
|
||||||
message.CommandParameters.Address = address
|
message.CommandParameters.Address = address
|
||||||
message.CommandParameters.CommandState = CommandStateRequestAddressForTransactionAccepted
|
message.CommandParameters.CommandState = common.CommandStateRequestAddressForTransactionAccepted
|
||||||
|
|
||||||
err = message.PrepareContent()
|
err = message.PrepareContent()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -2956,13 +2956,13 @@ func (m *Messenger) AcceptRequestAddressForTransaction(ctx context.Context, mess
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = m.persistence.SaveMessages([]*Message{message})
|
err = m.persistence.SaveMessages([]*common.Message{message})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
response.Chats = []*Chat{chat}
|
response.Chats = []*Chat{chat}
|
||||||
response.Messages = []*Message{message}
|
response.Messages = []*common.Message{message}
|
||||||
return &response, m.saveChat(chat)
|
return &response, m.saveChat(chat)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2997,7 +2997,7 @@ func (m *Messenger) DeclineRequestTransaction(ctx context.Context, messageID str
|
||||||
message.WhisperTimestamp = timestamp
|
message.WhisperTimestamp = timestamp
|
||||||
message.Timestamp = timestamp
|
message.Timestamp = timestamp
|
||||||
message.Text = "Transaction request declined"
|
message.Text = "Transaction request declined"
|
||||||
message.OutgoingStatus = OutgoingStatusSending
|
message.OutgoingStatus = common.OutgoingStatusSending
|
||||||
message.Replace = messageID
|
message.Replace = messageID
|
||||||
|
|
||||||
err = m.persistence.HideMessage(messageID)
|
err = m.persistence.HideMessage(messageID)
|
||||||
|
@ -3026,7 +3026,7 @@ func (m *Messenger) DeclineRequestTransaction(ctx context.Context, messageID str
|
||||||
}
|
}
|
||||||
|
|
||||||
message.ID = types.EncodeHex(newMessageID)
|
message.ID = types.EncodeHex(newMessageID)
|
||||||
message.CommandParameters.CommandState = CommandStateRequestTransactionDeclined
|
message.CommandParameters.CommandState = common.CommandStateRequestTransactionDeclined
|
||||||
|
|
||||||
err = message.PrepareContent()
|
err = message.PrepareContent()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -3038,13 +3038,13 @@ func (m *Messenger) DeclineRequestTransaction(ctx context.Context, messageID str
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = m.persistence.SaveMessages([]*Message{message})
|
err = m.persistence.SaveMessages([]*common.Message{message})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
response.Chats = []*Chat{chat}
|
response.Chats = []*Chat{chat}
|
||||||
response.Messages = []*Message{message}
|
response.Messages = []*common.Message{message}
|
||||||
return &response, m.saveChat(chat)
|
return &response, m.saveChat(chat)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3079,7 +3079,7 @@ func (m *Messenger) DeclineRequestAddressForTransaction(ctx context.Context, mes
|
||||||
message.WhisperTimestamp = timestamp
|
message.WhisperTimestamp = timestamp
|
||||||
message.Timestamp = timestamp
|
message.Timestamp = timestamp
|
||||||
message.Text = "Request address for transaction declined"
|
message.Text = "Request address for transaction declined"
|
||||||
message.OutgoingStatus = OutgoingStatusSending
|
message.OutgoingStatus = common.OutgoingStatusSending
|
||||||
message.Replace = messageID
|
message.Replace = messageID
|
||||||
|
|
||||||
err = m.persistence.HideMessage(messageID)
|
err = m.persistence.HideMessage(messageID)
|
||||||
|
@ -3108,7 +3108,7 @@ func (m *Messenger) DeclineRequestAddressForTransaction(ctx context.Context, mes
|
||||||
}
|
}
|
||||||
|
|
||||||
message.ID = types.EncodeHex(newMessageID)
|
message.ID = types.EncodeHex(newMessageID)
|
||||||
message.CommandParameters.CommandState = CommandStateRequestAddressForTransactionDeclined
|
message.CommandParameters.CommandState = common.CommandStateRequestAddressForTransactionDeclined
|
||||||
|
|
||||||
err = message.PrepareContent()
|
err = message.PrepareContent()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -3120,13 +3120,13 @@ func (m *Messenger) DeclineRequestAddressForTransaction(ctx context.Context, mes
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = m.persistence.SaveMessages([]*Message{message})
|
err = m.persistence.SaveMessages([]*common.Message{message})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
response.Chats = []*Chat{chat}
|
response.Chats = []*Chat{chat}
|
||||||
response.Messages = []*Message{message}
|
response.Messages = []*common.Message{message}
|
||||||
return &response, m.saveChat(chat)
|
return &response, m.saveChat(chat)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3161,7 +3161,7 @@ func (m *Messenger) AcceptRequestTransaction(ctx context.Context, transactionHas
|
||||||
message.WhisperTimestamp = timestamp
|
message.WhisperTimestamp = timestamp
|
||||||
message.Timestamp = timestamp
|
message.Timestamp = timestamp
|
||||||
message.Text = transactionSentTxt
|
message.Text = transactionSentTxt
|
||||||
message.OutgoingStatus = OutgoingStatusSending
|
message.OutgoingStatus = common.OutgoingStatusSending
|
||||||
|
|
||||||
// Hide previous message
|
// Hide previous message
|
||||||
previousMessage, err := m.persistence.MessageByCommandID(chatID, messageID)
|
previousMessage, err := m.persistence.MessageByCommandID(chatID, messageID)
|
||||||
|
@ -3207,7 +3207,7 @@ func (m *Messenger) AcceptRequestTransaction(ctx context.Context, transactionHas
|
||||||
message.ID = types.EncodeHex(newMessageID)
|
message.ID = types.EncodeHex(newMessageID)
|
||||||
message.CommandParameters.TransactionHash = transactionHash
|
message.CommandParameters.TransactionHash = transactionHash
|
||||||
message.CommandParameters.Signature = signature
|
message.CommandParameters.Signature = signature
|
||||||
message.CommandParameters.CommandState = CommandStateTransactionSent
|
message.CommandParameters.CommandState = common.CommandStateTransactionSent
|
||||||
|
|
||||||
err = message.PrepareContent()
|
err = message.PrepareContent()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -3219,13 +3219,13 @@ func (m *Messenger) AcceptRequestTransaction(ctx context.Context, transactionHas
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = m.persistence.SaveMessages([]*Message{message})
|
err = m.persistence.SaveMessages([]*common.Message{message})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
response.Chats = []*Chat{chat}
|
response.Chats = []*Chat{chat}
|
||||||
response.Messages = []*Message{message}
|
response.Messages = []*common.Message{message}
|
||||||
return &response, m.saveChat(chat)
|
return &response, m.saveChat(chat)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3244,7 +3244,7 @@ func (m *Messenger) SendTransaction(ctx context.Context, chatID, value, contract
|
||||||
return nil, errors.New("Need to be a one-to-one chat")
|
return nil, errors.New("Need to be a one-to-one chat")
|
||||||
}
|
}
|
||||||
|
|
||||||
message := &Message{}
|
message := &common.Message{}
|
||||||
err := extendMessageFromChat(message, chat, &m.identity.PublicKey, m.transport)
|
err := extendMessageFromChat(message, chat, &m.identity.PublicKey, m.transport)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -3282,12 +3282,12 @@ func (m *Messenger) SendTransaction(ctx context.Context, chatID, value, contract
|
||||||
}
|
}
|
||||||
|
|
||||||
message.ID = types.EncodeHex(newMessageID)
|
message.ID = types.EncodeHex(newMessageID)
|
||||||
message.CommandParameters = &CommandParameters{
|
message.CommandParameters = &common.CommandParameters{
|
||||||
TransactionHash: transactionHash,
|
TransactionHash: transactionHash,
|
||||||
Value: value,
|
Value: value,
|
||||||
Contract: contract,
|
Contract: contract,
|
||||||
Signature: signature,
|
Signature: signature,
|
||||||
CommandState: CommandStateTransactionSent,
|
CommandState: common.CommandStateTransactionSent,
|
||||||
}
|
}
|
||||||
|
|
||||||
err = message.PrepareContent()
|
err = message.PrepareContent()
|
||||||
|
@ -3300,13 +3300,13 @@ func (m *Messenger) SendTransaction(ctx context.Context, chatID, value, contract
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = m.persistence.SaveMessages([]*Message{message})
|
err = m.persistence.SaveMessages([]*common.Message{message})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
response.Chats = []*Chat{chat}
|
response.Chats = []*Chat{chat}
|
||||||
response.Messages = []*Message{message}
|
response.Messages = []*common.Message{message}
|
||||||
return &response, m.saveChat(chat)
|
return &response, m.saveChat(chat)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3335,7 +3335,7 @@ func (m *Messenger) ValidateTransactions(ctx context.Context, addresses []types.
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
for _, validationResult := range responses {
|
for _, validationResult := range responses {
|
||||||
var message *Message
|
var message *common.Message
|
||||||
chatID := contactIDFromPublicKey(validationResult.Transaction.From)
|
chatID := contactIDFromPublicKey(validationResult.Transaction.From)
|
||||||
chat, ok := m.allChats[chatID]
|
chat, ok := m.allChats[chatID]
|
||||||
if !ok {
|
if !ok {
|
||||||
|
@ -3344,7 +3344,7 @@ func (m *Messenger) ValidateTransactions(ctx context.Context, addresses []types.
|
||||||
if validationResult.Message != nil {
|
if validationResult.Message != nil {
|
||||||
message = validationResult.Message
|
message = validationResult.Message
|
||||||
} else {
|
} else {
|
||||||
message = &Message{}
|
message = &common.Message{}
|
||||||
err := extendMessageFromChat(message, chat, &m.identity.PublicKey, m.transport)
|
err := extendMessageFromChat(message, chat, &m.identity.PublicKey, m.transport)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -3365,7 +3365,7 @@ func (m *Messenger) ValidateTransactions(ctx context.Context, addresses []types.
|
||||||
|
|
||||||
message.ID = validationResult.Transaction.MessageID
|
message.ID = validationResult.Transaction.MessageID
|
||||||
if message.CommandParameters == nil {
|
if message.CommandParameters == nil {
|
||||||
message.CommandParameters = &CommandParameters{}
|
message.CommandParameters = &common.CommandParameters{}
|
||||||
} else {
|
} else {
|
||||||
message.CommandParameters = validationResult.Message.CommandParameters
|
message.CommandParameters = validationResult.Message.CommandParameters
|
||||||
}
|
}
|
||||||
|
@ -3373,7 +3373,7 @@ func (m *Messenger) ValidateTransactions(ctx context.Context, addresses []types.
|
||||||
message.CommandParameters.Value = validationResult.Value
|
message.CommandParameters.Value = validationResult.Value
|
||||||
message.CommandParameters.Contract = validationResult.Contract
|
message.CommandParameters.Contract = validationResult.Contract
|
||||||
message.CommandParameters.Address = validationResult.Address
|
message.CommandParameters.Address = validationResult.Address
|
||||||
message.CommandParameters.CommandState = CommandStateTransactionSent
|
message.CommandParameters.CommandState = common.CommandStateTransactionSent
|
||||||
message.CommandParameters.TransactionHash = validationResult.Transaction.TransactionHash
|
message.CommandParameters.TransactionHash = validationResult.Transaction.TransactionHash
|
||||||
|
|
||||||
err = message.PrepareContent()
|
err = message.PrepareContent()
|
||||||
|
@ -3422,7 +3422,7 @@ func (m *Messenger) ValidateTransactions(ctx context.Context, addresses []types.
|
||||||
|
|
||||||
// pullMessagesAndResponsesFromDB pulls all the messages and the one that have
|
// pullMessagesAndResponsesFromDB pulls all the messages and the one that have
|
||||||
// been replied to from the database
|
// been replied to from the database
|
||||||
func (m *Messenger) pullMessagesAndResponsesFromDB(messages []*Message) ([]*Message, error) {
|
func (m *Messenger) pullMessagesAndResponsesFromDB(messages []*common.Message) ([]*common.Message, error) {
|
||||||
var messageIDs []string
|
var messageIDs []string
|
||||||
for _, message := range messages {
|
for _, message := range messages {
|
||||||
messageIDs = append(messageIDs, message.ID)
|
messageIDs = append(messageIDs, message.ID)
|
||||||
|
|
|
@ -24,6 +24,7 @@ import (
|
||||||
"github.com/status-im/status-go/eth-node/crypto"
|
"github.com/status-im/status-go/eth-node/crypto"
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"github.com/status-im/status-go/eth-node/types"
|
||||||
enstypes "github.com/status-im/status-go/eth-node/types/ens"
|
enstypes "github.com/status-im/status-go/eth-node/types/ens"
|
||||||
|
"github.com/status-im/status-go/protocol/common"
|
||||||
"github.com/status-im/status-go/protocol/protobuf"
|
"github.com/status-im/status-go/protocol/protobuf"
|
||||||
"github.com/status-im/status-go/protocol/tt"
|
"github.com/status-im/status-go/protocol/tt"
|
||||||
v1protocol "github.com/status-im/status-go/protocol/v1"
|
v1protocol "github.com/status-im/status-go/protocol/v1"
|
||||||
|
@ -288,9 +289,9 @@ func (s *MessengerSuite) TestInit() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func buildTestMessage(chat Chat) *Message {
|
func buildTestMessage(chat Chat) *common.Message {
|
||||||
clock, timestamp := chat.NextClockAndTimestamp(&testTimeSource{})
|
clock, timestamp := chat.NextClockAndTimestamp(&testTimeSource{})
|
||||||
message := &Message{}
|
message := &common.Message{}
|
||||||
message.Text = "text-input-message"
|
message.Text = "text-input-message"
|
||||||
message.ChatId = chat.ID
|
message.ChatId = chat.ID
|
||||||
message.Clock = clock
|
message.Clock = clock
|
||||||
|
@ -322,7 +323,7 @@ func (s *MessengerSuite) TestMarkMessagesSeen() {
|
||||||
inputMessage2.ID = "2"
|
inputMessage2.ID = "2"
|
||||||
inputMessage2.Seen = false
|
inputMessage2.Seen = false
|
||||||
|
|
||||||
err = s.m.SaveMessages([]*Message{inputMessage1, inputMessage2})
|
err = s.m.SaveMessages([]*common.Message{inputMessage1, inputMessage2})
|
||||||
s.Require().NoError(err)
|
s.Require().NoError(err)
|
||||||
|
|
||||||
count, err := s.m.MarkMessagesSeen(chat.ID, []string{inputMessage1.ID})
|
count, err := s.m.MarkMessagesSeen(chat.ID, []string{inputMessage1.ID})
|
||||||
|
@ -346,7 +347,7 @@ func (s *MessengerSuite) TestMarkAllRead() {
|
||||||
inputMessage2.ID = "2"
|
inputMessage2.ID = "2"
|
||||||
inputMessage2.Seen = false
|
inputMessage2.Seen = false
|
||||||
|
|
||||||
err = s.m.SaveMessages([]*Message{inputMessage1, inputMessage2})
|
err = s.m.SaveMessages([]*common.Message{inputMessage1, inputMessage2})
|
||||||
s.Require().NoError(err)
|
s.Require().NoError(err)
|
||||||
|
|
||||||
err = s.m.MarkAllRead(chat.ID)
|
err = s.m.MarkAllRead(chat.ID)
|
||||||
|
@ -374,7 +375,7 @@ func (s *MessengerSuite) TestSendPublic() {
|
||||||
s.Require().NotEqual(uint64(0), chat.Timestamp, "it sets the timestamp")
|
s.Require().NotEqual(uint64(0), chat.Timestamp, "it sets the timestamp")
|
||||||
s.Require().Equal("0x"+hex.EncodeToString(crypto.FromECDSAPub(&s.privateKey.PublicKey)), outputMessage.From, "it sets the From field")
|
s.Require().Equal("0x"+hex.EncodeToString(crypto.FromECDSAPub(&s.privateKey.PublicKey)), outputMessage.From, "it sets the From field")
|
||||||
s.Require().True(outputMessage.Seen, "it marks the message as seen")
|
s.Require().True(outputMessage.Seen, "it marks the message as seen")
|
||||||
s.Require().Equal(outputMessage.OutgoingStatus, OutgoingStatusSending, "it marks the message as sending")
|
s.Require().Equal(outputMessage.OutgoingStatus, common.OutgoingStatusSending, "it marks the message as sending")
|
||||||
s.Require().NotEmpty(outputMessage.ID, "it sets the ID field")
|
s.Require().NotEmpty(outputMessage.ID, "it sets the ID field")
|
||||||
s.Require().Equal(protobuf.MessageType_PUBLIC_GROUP, outputMessage.MessageType)
|
s.Require().Equal(protobuf.MessageType_PUBLIC_GROUP, outputMessage.MessageType)
|
||||||
|
|
||||||
|
@ -389,7 +390,7 @@ func (s *MessengerSuite) TestSendPrivateOneToOne() {
|
||||||
pkString := hex.EncodeToString(crypto.FromECDSAPub(&recipientKey.PublicKey))
|
pkString := hex.EncodeToString(crypto.FromECDSAPub(&recipientKey.PublicKey))
|
||||||
chat := CreateOneToOneChat(pkString, &recipientKey.PublicKey, s.m.transport)
|
chat := CreateOneToOneChat(pkString, &recipientKey.PublicKey, s.m.transport)
|
||||||
|
|
||||||
inputMessage := &Message{}
|
inputMessage := &common.Message{}
|
||||||
inputMessage.ChatId = chat.ID
|
inputMessage.ChatId = chat.ID
|
||||||
chat.LastClockValue = uint64(100000000000000)
|
chat.LastClockValue = uint64(100000000000000)
|
||||||
err = s.m.SaveChat(&chat)
|
err = s.m.SaveChat(&chat)
|
||||||
|
@ -405,7 +406,7 @@ func (s *MessengerSuite) TestSendPrivateOneToOne() {
|
||||||
s.Require().NotEqual(uint64(0), chat.Timestamp, "it sets the timestamp")
|
s.Require().NotEqual(uint64(0), chat.Timestamp, "it sets the timestamp")
|
||||||
s.Require().Equal("0x"+hex.EncodeToString(crypto.FromECDSAPub(&s.privateKey.PublicKey)), outputMessage.From, "it sets the From field")
|
s.Require().Equal("0x"+hex.EncodeToString(crypto.FromECDSAPub(&s.privateKey.PublicKey)), outputMessage.From, "it sets the From field")
|
||||||
s.Require().True(outputMessage.Seen, "it marks the message as seen")
|
s.Require().True(outputMessage.Seen, "it marks the message as seen")
|
||||||
s.Require().Equal(outputMessage.OutgoingStatus, OutgoingStatusSending, "it marks the message as sending")
|
s.Require().Equal(outputMessage.OutgoingStatus, common.OutgoingStatusSending, "it marks the message as sending")
|
||||||
s.Require().NotEmpty(outputMessage.ID, "it sets the ID field")
|
s.Require().NotEmpty(outputMessage.ID, "it sets the ID field")
|
||||||
s.Require().Equal(protobuf.MessageType_ONE_TO_ONE, outputMessage.MessageType)
|
s.Require().Equal(protobuf.MessageType_ONE_TO_ONE, outputMessage.MessageType)
|
||||||
}
|
}
|
||||||
|
@ -422,13 +423,13 @@ func (s *MessengerSuite) TestSendPrivateGroup() {
|
||||||
_, err = s.m.AddMembersToGroupChat(context.Background(), chat.ID, members)
|
_, err = s.m.AddMembersToGroupChat(context.Background(), chat.ID, members)
|
||||||
s.NoError(err)
|
s.NoError(err)
|
||||||
|
|
||||||
inputMessage := &Message{}
|
inputMessage := &common.Message{}
|
||||||
inputMessage.ChatId = chat.ID
|
inputMessage.ChatId = chat.ID
|
||||||
chat.LastClockValue = uint64(100000000000000)
|
chat.LastClockValue = uint64(100000000000000)
|
||||||
err = s.m.SaveChat(chat)
|
err = s.m.SaveChat(chat)
|
||||||
s.NoError(err)
|
s.NoError(err)
|
||||||
response, err = s.m.SendChatMessage(context.Background(), inputMessage)
|
response, err = s.m.SendChatMessage(context.Background(), inputMessage)
|
||||||
s.NoError(err)
|
s.Require().NoError(err)
|
||||||
s.Require().Equal(1, len(response.Messages), "it returns the message")
|
s.Require().Equal(1, len(response.Messages), "it returns the message")
|
||||||
outputMessage := response.Messages[0]
|
outputMessage := response.Messages[0]
|
||||||
|
|
||||||
|
@ -438,7 +439,7 @@ func (s *MessengerSuite) TestSendPrivateGroup() {
|
||||||
s.Require().NotEqual(uint64(0), chat.Timestamp, "it sets the timestamp")
|
s.Require().NotEqual(uint64(0), chat.Timestamp, "it sets the timestamp")
|
||||||
s.Require().Equal("0x"+hex.EncodeToString(crypto.FromECDSAPub(&s.privateKey.PublicKey)), outputMessage.From, "it sets the From field")
|
s.Require().Equal("0x"+hex.EncodeToString(crypto.FromECDSAPub(&s.privateKey.PublicKey)), outputMessage.From, "it sets the From field")
|
||||||
s.Require().True(outputMessage.Seen, "it marks the message as seen")
|
s.Require().True(outputMessage.Seen, "it marks the message as seen")
|
||||||
s.Require().Equal(outputMessage.OutgoingStatus, OutgoingStatusSending, "it marks the message as sending")
|
s.Require().Equal(outputMessage.OutgoingStatus, common.OutgoingStatusSending, "it marks the message as sending")
|
||||||
s.Require().NotEmpty(outputMessage.ID, "it sets the ID field")
|
s.Require().NotEmpty(outputMessage.ID, "it sets the ID field")
|
||||||
s.Require().Equal(protobuf.MessageType_PRIVATE_GROUP, outputMessage.MessageType)
|
s.Require().Equal(protobuf.MessageType_PRIVATE_GROUP, outputMessage.MessageType)
|
||||||
}
|
}
|
||||||
|
@ -450,7 +451,7 @@ func (s *MessengerSuite) TestSendPrivateEmptyGroup() {
|
||||||
|
|
||||||
chat := response.Chats[0]
|
chat := response.Chats[0]
|
||||||
|
|
||||||
inputMessage := &Message{}
|
inputMessage := &common.Message{}
|
||||||
inputMessage.ChatId = chat.ID
|
inputMessage.ChatId = chat.ID
|
||||||
chat.LastClockValue = uint64(100000000000000)
|
chat.LastClockValue = uint64(100000000000000)
|
||||||
err = s.m.SaveChat(chat)
|
err = s.m.SaveChat(chat)
|
||||||
|
@ -466,7 +467,7 @@ func (s *MessengerSuite) TestSendPrivateEmptyGroup() {
|
||||||
s.Require().NotEqual(uint64(0), chat.Timestamp, "it sets the timestamp")
|
s.Require().NotEqual(uint64(0), chat.Timestamp, "it sets the timestamp")
|
||||||
s.Require().Equal("0x"+hex.EncodeToString(crypto.FromECDSAPub(&s.privateKey.PublicKey)), outputMessage.From, "it sets the From field")
|
s.Require().Equal("0x"+hex.EncodeToString(crypto.FromECDSAPub(&s.privateKey.PublicKey)), outputMessage.From, "it sets the From field")
|
||||||
s.Require().True(outputMessage.Seen, "it marks the message as seen")
|
s.Require().True(outputMessage.Seen, "it marks the message as seen")
|
||||||
s.Require().Equal(outputMessage.OutgoingStatus, OutgoingStatusSending, "it marks the message as sending")
|
s.Require().Equal(outputMessage.OutgoingStatus, common.OutgoingStatusSending, "it marks the message as sending")
|
||||||
s.Require().NotEmpty(outputMessage.ID, "it sets the ID field")
|
s.Require().NotEmpty(outputMessage.ID, "it sets the ID field")
|
||||||
s.Require().Equal(protobuf.MessageType_PRIVATE_GROUP, outputMessage.MessageType)
|
s.Require().Equal(protobuf.MessageType_PRIVATE_GROUP, outputMessage.MessageType)
|
||||||
}
|
}
|
||||||
|
@ -962,7 +963,7 @@ func (s *MessengerSuite) TestChatPersistencePublic() {
|
||||||
LastClockValue: 20,
|
LastClockValue: 20,
|
||||||
DeletedAtClockValue: 30,
|
DeletedAtClockValue: 30,
|
||||||
UnviewedMessagesCount: 40,
|
UnviewedMessagesCount: 40,
|
||||||
LastMessage: &Message{},
|
LastMessage: &common.Message{},
|
||||||
}
|
}
|
||||||
|
|
||||||
s.Require().NoError(s.m.SaveChat(&chat))
|
s.Require().NoError(s.m.SaveChat(&chat))
|
||||||
|
@ -987,7 +988,7 @@ func (s *MessengerSuite) TestDeleteChat() {
|
||||||
LastClockValue: 20,
|
LastClockValue: 20,
|
||||||
DeletedAtClockValue: 30,
|
DeletedAtClockValue: 30,
|
||||||
UnviewedMessagesCount: 40,
|
UnviewedMessagesCount: 40,
|
||||||
LastMessage: &Message{},
|
LastMessage: &common.Message{},
|
||||||
}
|
}
|
||||||
|
|
||||||
s.Require().NoError(s.m.SaveChat(&chat))
|
s.Require().NoError(s.m.SaveChat(&chat))
|
||||||
|
@ -1010,7 +1011,7 @@ func (s *MessengerSuite) TestChatPersistenceUpdate() {
|
||||||
LastClockValue: 20,
|
LastClockValue: 20,
|
||||||
DeletedAtClockValue: 30,
|
DeletedAtClockValue: 30,
|
||||||
UnviewedMessagesCount: 40,
|
UnviewedMessagesCount: 40,
|
||||||
LastMessage: &Message{},
|
LastMessage: &common.Message{},
|
||||||
}
|
}
|
||||||
|
|
||||||
s.Require().NoError(s.m.SaveChat(&chat))
|
s.Require().NoError(s.m.SaveChat(&chat))
|
||||||
|
@ -1044,7 +1045,7 @@ func (s *MessengerSuite) TestChatPersistenceOneToOne() {
|
||||||
LastClockValue: 20,
|
LastClockValue: 20,
|
||||||
DeletedAtClockValue: 30,
|
DeletedAtClockValue: 30,
|
||||||
UnviewedMessagesCount: 40,
|
UnviewedMessagesCount: 40,
|
||||||
LastMessage: &Message{},
|
LastMessage: &common.Message{},
|
||||||
}
|
}
|
||||||
contact := Contact{
|
contact := Contact{
|
||||||
ID: testPK,
|
ID: testPK,
|
||||||
|
@ -1133,7 +1134,7 @@ func (s *MessengerSuite) TestChatPersistencePrivateGroupChat() {
|
||||||
LastClockValue: 20,
|
LastClockValue: 20,
|
||||||
DeletedAtClockValue: 30,
|
DeletedAtClockValue: 30,
|
||||||
UnviewedMessagesCount: 40,
|
UnviewedMessagesCount: 40,
|
||||||
LastMessage: &Message{},
|
LastMessage: &common.Message{},
|
||||||
}
|
}
|
||||||
s.Require().NoError(s.m.SaveChat(&chat))
|
s.Require().NoError(s.m.SaveChat(&chat))
|
||||||
savedChats := s.m.Chats()
|
savedChats := s.m.Chats()
|
||||||
|
@ -1211,7 +1212,7 @@ func (s *MessengerSuite) TestBlockContact() {
|
||||||
|
|
||||||
contact.Name = "blocked"
|
contact.Name = "blocked"
|
||||||
|
|
||||||
messages := []*Message{
|
messages := []*common.Message{
|
||||||
{
|
{
|
||||||
ID: "test-1",
|
ID: "test-1",
|
||||||
LocalChatID: chat2.ID,
|
LocalChatID: chat2.ID,
|
||||||
|
@ -1479,7 +1480,7 @@ func (s *MessengerSuite) TestDeclineRequestAddressForTransaction() {
|
||||||
s.Require().Equal(value, senderMessage.CommandParameters.Value)
|
s.Require().Equal(value, senderMessage.CommandParameters.Value)
|
||||||
s.Require().Equal(contract, senderMessage.CommandParameters.Contract)
|
s.Require().Equal(contract, senderMessage.CommandParameters.Contract)
|
||||||
s.Require().Equal(initialCommandID, senderMessage.CommandParameters.ID)
|
s.Require().Equal(initialCommandID, senderMessage.CommandParameters.ID)
|
||||||
s.Require().Equal(CommandStateRequestAddressForTransaction, senderMessage.CommandParameters.CommandState)
|
s.Require().Equal(common.CommandStateRequestAddressForTransaction, senderMessage.CommandParameters.CommandState)
|
||||||
|
|
||||||
// Wait for the message to reach its destination
|
// Wait for the message to reach its destination
|
||||||
response, err = WaitOnMessengerResponse(
|
response, err = WaitOnMessengerResponse(
|
||||||
|
@ -1500,7 +1501,7 @@ func (s *MessengerSuite) TestDeclineRequestAddressForTransaction() {
|
||||||
s.Require().Equal(value, receiverMessage.CommandParameters.Value)
|
s.Require().Equal(value, receiverMessage.CommandParameters.Value)
|
||||||
s.Require().Equal(contract, receiverMessage.CommandParameters.Contract)
|
s.Require().Equal(contract, receiverMessage.CommandParameters.Contract)
|
||||||
s.Require().Equal(initialCommandID, receiverMessage.CommandParameters.ID)
|
s.Require().Equal(initialCommandID, receiverMessage.CommandParameters.ID)
|
||||||
s.Require().Equal(CommandStateRequestAddressForTransaction, receiverMessage.CommandParameters.CommandState)
|
s.Require().Equal(common.CommandStateRequestAddressForTransaction, receiverMessage.CommandParameters.CommandState)
|
||||||
|
|
||||||
// We decline the request
|
// We decline the request
|
||||||
response, err = theirMessenger.DeclineRequestAddressForTransaction(context.Background(), receiverMessage.ID)
|
response, err = theirMessenger.DeclineRequestAddressForTransaction(context.Background(), receiverMessage.ID)
|
||||||
|
@ -1514,7 +1515,7 @@ func (s *MessengerSuite) TestDeclineRequestAddressForTransaction() {
|
||||||
s.Require().NotNil(senderMessage.CommandParameters)
|
s.Require().NotNil(senderMessage.CommandParameters)
|
||||||
s.Require().Equal(value, senderMessage.CommandParameters.Value)
|
s.Require().Equal(value, senderMessage.CommandParameters.Value)
|
||||||
s.Require().Equal(contract, senderMessage.CommandParameters.Contract)
|
s.Require().Equal(contract, senderMessage.CommandParameters.Contract)
|
||||||
s.Require().Equal(CommandStateRequestAddressForTransactionDeclined, senderMessage.CommandParameters.CommandState)
|
s.Require().Equal(common.CommandStateRequestAddressForTransactionDeclined, senderMessage.CommandParameters.CommandState)
|
||||||
s.Require().Equal(initialCommandID, senderMessage.CommandParameters.ID)
|
s.Require().Equal(initialCommandID, senderMessage.CommandParameters.ID)
|
||||||
s.Require().Equal(receiverMessage.ID, senderMessage.Replace)
|
s.Require().Equal(receiverMessage.ID, senderMessage.Replace)
|
||||||
|
|
||||||
|
@ -1535,7 +1536,7 @@ func (s *MessengerSuite) TestDeclineRequestAddressForTransaction() {
|
||||||
s.Require().NotNil(receiverMessage.CommandParameters)
|
s.Require().NotNil(receiverMessage.CommandParameters)
|
||||||
s.Require().Equal(value, receiverMessage.CommandParameters.Value)
|
s.Require().Equal(value, receiverMessage.CommandParameters.Value)
|
||||||
s.Require().Equal(contract, receiverMessage.CommandParameters.Contract)
|
s.Require().Equal(contract, receiverMessage.CommandParameters.Contract)
|
||||||
s.Require().Equal(CommandStateRequestAddressForTransactionDeclined, receiverMessage.CommandParameters.CommandState)
|
s.Require().Equal(common.CommandStateRequestAddressForTransactionDeclined, receiverMessage.CommandParameters.CommandState)
|
||||||
s.Require().Equal(initialCommandID, receiverMessage.CommandParameters.ID)
|
s.Require().Equal(initialCommandID, receiverMessage.CommandParameters.ID)
|
||||||
s.Require().Equal(initialCommandID, receiverMessage.Replace)
|
s.Require().Equal(initialCommandID, receiverMessage.Replace)
|
||||||
s.Require().NoError(theirMessenger.Shutdown())
|
s.Require().NoError(theirMessenger.Shutdown())
|
||||||
|
@ -1574,7 +1575,7 @@ func (s *MessengerSuite) TestSendEthTransaction() {
|
||||||
s.Require().Equal(contract, senderMessage.CommandParameters.Contract)
|
s.Require().Equal(contract, senderMessage.CommandParameters.Contract)
|
||||||
s.Require().Equal(value, senderMessage.CommandParameters.Value)
|
s.Require().Equal(value, senderMessage.CommandParameters.Value)
|
||||||
s.Require().Equal(signature, senderMessage.CommandParameters.Signature)
|
s.Require().Equal(signature, senderMessage.CommandParameters.Signature)
|
||||||
s.Require().Equal(CommandStateTransactionSent, senderMessage.CommandParameters.CommandState)
|
s.Require().Equal(common.CommandStateTransactionSent, senderMessage.CommandParameters.CommandState)
|
||||||
s.Require().NotEmpty(senderMessage.ID)
|
s.Require().NotEmpty(senderMessage.ID)
|
||||||
s.Require().Equal("", senderMessage.Replace)
|
s.Require().Equal("", senderMessage.Replace)
|
||||||
|
|
||||||
|
@ -1638,7 +1639,7 @@ func (s *MessengerSuite) TestSendEthTransaction() {
|
||||||
s.Require().Equal(transactionHash, receiverMessage.CommandParameters.TransactionHash)
|
s.Require().Equal(transactionHash, receiverMessage.CommandParameters.TransactionHash)
|
||||||
s.Require().Equal(receiverAddressString, receiverMessage.CommandParameters.Address)
|
s.Require().Equal(receiverAddressString, receiverMessage.CommandParameters.Address)
|
||||||
s.Require().Equal("", receiverMessage.CommandParameters.ID)
|
s.Require().Equal("", receiverMessage.CommandParameters.ID)
|
||||||
s.Require().Equal(CommandStateTransactionSent, receiverMessage.CommandParameters.CommandState)
|
s.Require().Equal(common.CommandStateTransactionSent, receiverMessage.CommandParameters.CommandState)
|
||||||
s.Require().Equal(senderMessage.ID, receiverMessage.ID)
|
s.Require().Equal(senderMessage.ID, receiverMessage.ID)
|
||||||
s.Require().Equal("", receiverMessage.Replace)
|
s.Require().Equal("", receiverMessage.Replace)
|
||||||
s.Require().NoError(theirMessenger.Shutdown())
|
s.Require().NoError(theirMessenger.Shutdown())
|
||||||
|
@ -1677,7 +1678,7 @@ func (s *MessengerSuite) TestSendTokenTransaction() {
|
||||||
s.Require().Equal(value, senderMessage.CommandParameters.Value)
|
s.Require().Equal(value, senderMessage.CommandParameters.Value)
|
||||||
s.Require().Equal(contract, senderMessage.CommandParameters.Contract)
|
s.Require().Equal(contract, senderMessage.CommandParameters.Contract)
|
||||||
s.Require().Equal(signature, senderMessage.CommandParameters.Signature)
|
s.Require().Equal(signature, senderMessage.CommandParameters.Signature)
|
||||||
s.Require().Equal(CommandStateTransactionSent, senderMessage.CommandParameters.CommandState)
|
s.Require().Equal(common.CommandStateTransactionSent, senderMessage.CommandParameters.CommandState)
|
||||||
s.Require().NotEmpty(senderMessage.ID)
|
s.Require().NotEmpty(senderMessage.ID)
|
||||||
|
|
||||||
var transactions []*TransactionToValidate
|
var transactions []*TransactionToValidate
|
||||||
|
@ -1741,7 +1742,7 @@ func (s *MessengerSuite) TestSendTokenTransaction() {
|
||||||
s.Require().Equal(transactionHash, receiverMessage.CommandParameters.TransactionHash)
|
s.Require().Equal(transactionHash, receiverMessage.CommandParameters.TransactionHash)
|
||||||
s.Require().Equal(receiverAddressString, receiverMessage.CommandParameters.Address)
|
s.Require().Equal(receiverAddressString, receiverMessage.CommandParameters.Address)
|
||||||
s.Require().Equal("", receiverMessage.CommandParameters.ID)
|
s.Require().Equal("", receiverMessage.CommandParameters.ID)
|
||||||
s.Require().Equal(CommandStateTransactionSent, receiverMessage.CommandParameters.CommandState)
|
s.Require().Equal(common.CommandStateTransactionSent, receiverMessage.CommandParameters.CommandState)
|
||||||
s.Require().Equal(senderMessage.ID, receiverMessage.ID)
|
s.Require().Equal(senderMessage.ID, receiverMessage.ID)
|
||||||
s.Require().Equal(senderMessage.Replace, senderMessage.Replace)
|
s.Require().Equal(senderMessage.Replace, senderMessage.Replace)
|
||||||
s.Require().NoError(theirMessenger.Shutdown())
|
s.Require().NoError(theirMessenger.Shutdown())
|
||||||
|
@ -1775,7 +1776,7 @@ func (s *MessengerSuite) TestAcceptRequestAddressForTransaction() {
|
||||||
s.Require().Equal(value, senderMessage.CommandParameters.Value)
|
s.Require().Equal(value, senderMessage.CommandParameters.Value)
|
||||||
s.Require().Equal(contract, senderMessage.CommandParameters.Contract)
|
s.Require().Equal(contract, senderMessage.CommandParameters.Contract)
|
||||||
s.Require().Equal(initialCommandID, senderMessage.CommandParameters.ID)
|
s.Require().Equal(initialCommandID, senderMessage.CommandParameters.ID)
|
||||||
s.Require().Equal(CommandStateRequestAddressForTransaction, senderMessage.CommandParameters.CommandState)
|
s.Require().Equal(common.CommandStateRequestAddressForTransaction, senderMessage.CommandParameters.CommandState)
|
||||||
|
|
||||||
// Wait for the message to reach its destination
|
// Wait for the message to reach its destination
|
||||||
response, err = WaitOnMessengerResponse(
|
response, err = WaitOnMessengerResponse(
|
||||||
|
@ -1796,7 +1797,7 @@ func (s *MessengerSuite) TestAcceptRequestAddressForTransaction() {
|
||||||
s.Require().Equal(value, receiverMessage.CommandParameters.Value)
|
s.Require().Equal(value, receiverMessage.CommandParameters.Value)
|
||||||
s.Require().Equal(contract, receiverMessage.CommandParameters.Contract)
|
s.Require().Equal(contract, receiverMessage.CommandParameters.Contract)
|
||||||
s.Require().Equal(initialCommandID, receiverMessage.CommandParameters.ID)
|
s.Require().Equal(initialCommandID, receiverMessage.CommandParameters.ID)
|
||||||
s.Require().Equal(CommandStateRequestAddressForTransaction, receiverMessage.CommandParameters.CommandState)
|
s.Require().Equal(common.CommandStateRequestAddressForTransaction, receiverMessage.CommandParameters.CommandState)
|
||||||
|
|
||||||
// We accept the request
|
// We accept the request
|
||||||
response, err = theirMessenger.AcceptRequestAddressForTransaction(context.Background(), receiverMessage.ID, "some-address")
|
response, err = theirMessenger.AcceptRequestAddressForTransaction(context.Background(), receiverMessage.ID, "some-address")
|
||||||
|
@ -1810,7 +1811,7 @@ func (s *MessengerSuite) TestAcceptRequestAddressForTransaction() {
|
||||||
s.Require().NotNil(senderMessage.CommandParameters)
|
s.Require().NotNil(senderMessage.CommandParameters)
|
||||||
s.Require().Equal(value, senderMessage.CommandParameters.Value)
|
s.Require().Equal(value, senderMessage.CommandParameters.Value)
|
||||||
s.Require().Equal(contract, senderMessage.CommandParameters.Contract)
|
s.Require().Equal(contract, senderMessage.CommandParameters.Contract)
|
||||||
s.Require().Equal(CommandStateRequestAddressForTransactionAccepted, senderMessage.CommandParameters.CommandState)
|
s.Require().Equal(common.CommandStateRequestAddressForTransactionAccepted, senderMessage.CommandParameters.CommandState)
|
||||||
s.Require().Equal(initialCommandID, senderMessage.CommandParameters.ID)
|
s.Require().Equal(initialCommandID, senderMessage.CommandParameters.ID)
|
||||||
s.Require().Equal("some-address", senderMessage.CommandParameters.Address)
|
s.Require().Equal("some-address", senderMessage.CommandParameters.Address)
|
||||||
s.Require().Equal(receiverMessage.ID, senderMessage.Replace)
|
s.Require().Equal(receiverMessage.ID, senderMessage.Replace)
|
||||||
|
@ -1832,7 +1833,7 @@ func (s *MessengerSuite) TestAcceptRequestAddressForTransaction() {
|
||||||
s.Require().NotNil(receiverMessage.CommandParameters)
|
s.Require().NotNil(receiverMessage.CommandParameters)
|
||||||
s.Require().Equal(value, receiverMessage.CommandParameters.Value)
|
s.Require().Equal(value, receiverMessage.CommandParameters.Value)
|
||||||
s.Require().Equal(contract, receiverMessage.CommandParameters.Contract)
|
s.Require().Equal(contract, receiverMessage.CommandParameters.Contract)
|
||||||
s.Require().Equal(CommandStateRequestAddressForTransactionAccepted, receiverMessage.CommandParameters.CommandState)
|
s.Require().Equal(common.CommandStateRequestAddressForTransactionAccepted, receiverMessage.CommandParameters.CommandState)
|
||||||
s.Require().Equal(initialCommandID, receiverMessage.CommandParameters.ID)
|
s.Require().Equal(initialCommandID, receiverMessage.CommandParameters.ID)
|
||||||
s.Require().Equal("some-address", receiverMessage.CommandParameters.Address)
|
s.Require().Equal("some-address", receiverMessage.CommandParameters.Address)
|
||||||
s.Require().Equal(initialCommandID, receiverMessage.Replace)
|
s.Require().Equal(initialCommandID, receiverMessage.Replace)
|
||||||
|
@ -1868,7 +1869,7 @@ func (s *MessengerSuite) TestDeclineRequestTransaction() {
|
||||||
s.Require().Equal(contract, senderMessage.CommandParameters.Contract)
|
s.Require().Equal(contract, senderMessage.CommandParameters.Contract)
|
||||||
s.Require().Equal(receiverAddressString, senderMessage.CommandParameters.Address)
|
s.Require().Equal(receiverAddressString, senderMessage.CommandParameters.Address)
|
||||||
s.Require().Equal(initialCommandID, senderMessage.CommandParameters.ID)
|
s.Require().Equal(initialCommandID, senderMessage.CommandParameters.ID)
|
||||||
s.Require().Equal(CommandStateRequestTransaction, senderMessage.CommandParameters.CommandState)
|
s.Require().Equal(common.CommandStateRequestTransaction, senderMessage.CommandParameters.CommandState)
|
||||||
|
|
||||||
// Wait for the message to reach its destination
|
// Wait for the message to reach its destination
|
||||||
response, err = WaitOnMessengerResponse(
|
response, err = WaitOnMessengerResponse(
|
||||||
|
@ -1890,7 +1891,7 @@ func (s *MessengerSuite) TestDeclineRequestTransaction() {
|
||||||
s.Require().Equal(contract, receiverMessage.CommandParameters.Contract)
|
s.Require().Equal(contract, receiverMessage.CommandParameters.Contract)
|
||||||
s.Require().Equal(receiverAddressString, receiverMessage.CommandParameters.Address)
|
s.Require().Equal(receiverAddressString, receiverMessage.CommandParameters.Address)
|
||||||
s.Require().Equal(initialCommandID, receiverMessage.CommandParameters.ID)
|
s.Require().Equal(initialCommandID, receiverMessage.CommandParameters.ID)
|
||||||
s.Require().Equal(CommandStateRequestTransaction, receiverMessage.CommandParameters.CommandState)
|
s.Require().Equal(common.CommandStateRequestTransaction, receiverMessage.CommandParameters.CommandState)
|
||||||
|
|
||||||
response, err = theirMessenger.DeclineRequestTransaction(context.Background(), initialCommandID)
|
response, err = theirMessenger.DeclineRequestTransaction(context.Background(), initialCommandID)
|
||||||
s.Require().NoError(err)
|
s.Require().NoError(err)
|
||||||
|
@ -1904,7 +1905,7 @@ func (s *MessengerSuite) TestDeclineRequestTransaction() {
|
||||||
s.Require().Equal("Transaction request declined", senderMessage.Text)
|
s.Require().Equal("Transaction request declined", senderMessage.Text)
|
||||||
s.Require().Equal(initialCommandID, senderMessage.CommandParameters.ID)
|
s.Require().Equal(initialCommandID, senderMessage.CommandParameters.ID)
|
||||||
s.Require().Equal(receiverMessage.ID, senderMessage.Replace)
|
s.Require().Equal(receiverMessage.ID, senderMessage.Replace)
|
||||||
s.Require().Equal(CommandStateRequestTransactionDeclined, senderMessage.CommandParameters.CommandState)
|
s.Require().Equal(common.CommandStateRequestTransactionDeclined, senderMessage.CommandParameters.CommandState)
|
||||||
|
|
||||||
// Wait for the message to reach its destination
|
// Wait for the message to reach its destination
|
||||||
response, err = WaitOnMessengerResponse(
|
response, err = WaitOnMessengerResponse(
|
||||||
|
@ -1924,7 +1925,7 @@ func (s *MessengerSuite) TestDeclineRequestTransaction() {
|
||||||
s.Require().Equal("Transaction request declined", receiverMessage.Text)
|
s.Require().Equal("Transaction request declined", receiverMessage.Text)
|
||||||
s.Require().Equal(initialCommandID, receiverMessage.CommandParameters.ID)
|
s.Require().Equal(initialCommandID, receiverMessage.CommandParameters.ID)
|
||||||
s.Require().Equal(initialCommandID, receiverMessage.Replace)
|
s.Require().Equal(initialCommandID, receiverMessage.Replace)
|
||||||
s.Require().Equal(CommandStateRequestTransactionDeclined, receiverMessage.CommandParameters.CommandState)
|
s.Require().Equal(common.CommandStateRequestTransactionDeclined, receiverMessage.CommandParameters.CommandState)
|
||||||
s.Require().NoError(theirMessenger.Shutdown())
|
s.Require().NoError(theirMessenger.Shutdown())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1957,7 +1958,7 @@ func (s *MessengerSuite) TestRequestTransaction() {
|
||||||
s.Require().Equal(contract, senderMessage.CommandParameters.Contract)
|
s.Require().Equal(contract, senderMessage.CommandParameters.Contract)
|
||||||
s.Require().Equal(receiverAddressString, senderMessage.CommandParameters.Address)
|
s.Require().Equal(receiverAddressString, senderMessage.CommandParameters.Address)
|
||||||
s.Require().Equal(initialCommandID, senderMessage.CommandParameters.ID)
|
s.Require().Equal(initialCommandID, senderMessage.CommandParameters.ID)
|
||||||
s.Require().Equal(CommandStateRequestTransaction, senderMessage.CommandParameters.CommandState)
|
s.Require().Equal(common.CommandStateRequestTransaction, senderMessage.CommandParameters.CommandState)
|
||||||
|
|
||||||
// Wait for the message to reach its destination
|
// Wait for the message to reach its destination
|
||||||
response, err = WaitOnMessengerResponse(
|
response, err = WaitOnMessengerResponse(
|
||||||
|
@ -1979,7 +1980,7 @@ func (s *MessengerSuite) TestRequestTransaction() {
|
||||||
s.Require().Equal(contract, receiverMessage.CommandParameters.Contract)
|
s.Require().Equal(contract, receiverMessage.CommandParameters.Contract)
|
||||||
s.Require().Equal(receiverAddressString, receiverMessage.CommandParameters.Address)
|
s.Require().Equal(receiverAddressString, receiverMessage.CommandParameters.Address)
|
||||||
s.Require().Equal(initialCommandID, receiverMessage.CommandParameters.ID)
|
s.Require().Equal(initialCommandID, receiverMessage.CommandParameters.ID)
|
||||||
s.Require().Equal(CommandStateRequestTransaction, receiverMessage.CommandParameters.CommandState)
|
s.Require().Equal(common.CommandStateRequestTransaction, receiverMessage.CommandParameters.CommandState)
|
||||||
|
|
||||||
transactionHash := "0x412a851ac2ae51cad34a56c8a9cfee55d577ac5e1ac71cf488a2f2093a373799"
|
transactionHash := "0x412a851ac2ae51cad34a56c8a9cfee55d577ac5e1ac71cf488a2f2093a373799"
|
||||||
signature, err := buildSignature(theirMessenger.identity, &theirMessenger.identity.PublicKey, transactionHash)
|
signature, err := buildSignature(theirMessenger.identity, &theirMessenger.identity.PublicKey, transactionHash)
|
||||||
|
@ -2003,7 +2004,7 @@ func (s *MessengerSuite) TestRequestTransaction() {
|
||||||
s.Require().Equal(signature, senderMessage.CommandParameters.Signature)
|
s.Require().Equal(signature, senderMessage.CommandParameters.Signature)
|
||||||
s.Require().NotEmpty(senderMessage.ID)
|
s.Require().NotEmpty(senderMessage.ID)
|
||||||
s.Require().Equal(receiverMessage.ID, senderMessage.Replace)
|
s.Require().Equal(receiverMessage.ID, senderMessage.Replace)
|
||||||
s.Require().Equal(CommandStateTransactionSent, senderMessage.CommandParameters.CommandState)
|
s.Require().Equal(common.CommandStateTransactionSent, senderMessage.CommandParameters.CommandState)
|
||||||
|
|
||||||
var transactions []*TransactionToValidate
|
var transactions []*TransactionToValidate
|
||||||
// Wait for the message to reach its destination
|
// Wait for the message to reach its destination
|
||||||
|
@ -2068,7 +2069,7 @@ func (s *MessengerSuite) TestRequestTransaction() {
|
||||||
s.Require().Equal(receiverAddressString, receiverMessage.CommandParameters.Address)
|
s.Require().Equal(receiverAddressString, receiverMessage.CommandParameters.Address)
|
||||||
s.Require().Equal(initialCommandID, receiverMessage.CommandParameters.ID)
|
s.Require().Equal(initialCommandID, receiverMessage.CommandParameters.ID)
|
||||||
s.Require().Equal(signature, receiverMessage.CommandParameters.Signature)
|
s.Require().Equal(signature, receiverMessage.CommandParameters.Signature)
|
||||||
s.Require().Equal(CommandStateTransactionSent, receiverMessage.CommandParameters.CommandState)
|
s.Require().Equal(common.CommandStateTransactionSent, receiverMessage.CommandParameters.CommandState)
|
||||||
s.Require().Equal(senderMessage.ID, receiverMessage.ID)
|
s.Require().Equal(senderMessage.ID, receiverMessage.ID)
|
||||||
s.Require().Equal(senderMessage.Replace, senderMessage.Replace)
|
s.Require().Equal(senderMessage.Replace, senderMessage.Replace)
|
||||||
s.Require().NoError(theirMessenger.Shutdown())
|
s.Require().NoError(theirMessenger.Shutdown())
|
||||||
|
@ -2102,7 +2103,7 @@ func (m *mockSendMessagesRequest) SendMessagesRequest(peerID []byte, request typ
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *MessengerSuite) TestMessageJSON() {
|
func (s *MessengerSuite) TestMessageJSON() {
|
||||||
message := &Message{
|
message := &common.Message{
|
||||||
ID: "test-1",
|
ID: "test-1",
|
||||||
LocalChatID: "local-chat-id",
|
LocalChatID: "local-chat-id",
|
||||||
Alias: "alias",
|
Alias: "alias",
|
||||||
|
@ -2121,7 +2122,7 @@ func (s *MessengerSuite) TestMessageJSON() {
|
||||||
s.Require().NoError(err)
|
s.Require().NoError(err)
|
||||||
s.Require().Equal(expectedJSON, string(messageJSON))
|
s.Require().Equal(expectedJSON, string(messageJSON))
|
||||||
|
|
||||||
decodedMessage := &Message{}
|
decodedMessage := &common.Message{}
|
||||||
err = json.Unmarshal([]byte(expectedJSON), decodedMessage)
|
err = json.Unmarshal([]byte(expectedJSON), decodedMessage)
|
||||||
s.Require().NoError(err)
|
s.Require().NoError(err)
|
||||||
s.Require().Equal(message, decodedMessage)
|
s.Require().Equal(message, decodedMessage)
|
||||||
|
@ -2186,14 +2187,14 @@ func (s *MessageHandlerSuite) TestRun() {
|
||||||
Name string
|
Name string
|
||||||
Error bool
|
Error bool
|
||||||
Chat Chat // Chat to create
|
Chat Chat // Chat to create
|
||||||
Message Message
|
Message common.Message
|
||||||
SigPubKey *ecdsa.PublicKey
|
SigPubKey *ecdsa.PublicKey
|
||||||
ExpectedChatID string
|
ExpectedChatID string
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
Name: "Public chat",
|
Name: "Public chat",
|
||||||
Chat: CreatePublicChat("test-chat", &testTimeSource{}),
|
Chat: CreatePublicChat("test-chat", &testTimeSource{}),
|
||||||
Message: Message{
|
Message: common.Message{
|
||||||
ChatMessage: protobuf.ChatMessage{
|
ChatMessage: protobuf.ChatMessage{
|
||||||
ChatId: "test-chat",
|
ChatId: "test-chat",
|
||||||
MessageType: protobuf.MessageType_PUBLIC_GROUP,
|
MessageType: protobuf.MessageType_PUBLIC_GROUP,
|
||||||
|
@ -2205,7 +2206,7 @@ func (s *MessageHandlerSuite) TestRun() {
|
||||||
{
|
{
|
||||||
Name: "Private message from myself with existing chat",
|
Name: "Private message from myself with existing chat",
|
||||||
Chat: CreateOneToOneChat("test-private-chat", &key1.PublicKey, &testTimeSource{}),
|
Chat: CreateOneToOneChat("test-private-chat", &key1.PublicKey, &testTimeSource{}),
|
||||||
Message: Message{
|
Message: common.Message{
|
||||||
ChatMessage: protobuf.ChatMessage{
|
ChatMessage: protobuf.ChatMessage{
|
||||||
ChatId: "test-chat",
|
ChatId: "test-chat",
|
||||||
MessageType: protobuf.MessageType_ONE_TO_ONE,
|
MessageType: protobuf.MessageType_ONE_TO_ONE,
|
||||||
|
@ -2217,7 +2218,7 @@ func (s *MessageHandlerSuite) TestRun() {
|
||||||
{
|
{
|
||||||
Name: "Private message from other with existing chat",
|
Name: "Private message from other with existing chat",
|
||||||
Chat: CreateOneToOneChat("test-private-chat", &key2.PublicKey, &testTimeSource{}),
|
Chat: CreateOneToOneChat("test-private-chat", &key2.PublicKey, &testTimeSource{}),
|
||||||
Message: Message{
|
Message: common.Message{
|
||||||
ChatMessage: protobuf.ChatMessage{
|
ChatMessage: protobuf.ChatMessage{
|
||||||
ChatId: "test-chat",
|
ChatId: "test-chat",
|
||||||
MessageType: protobuf.MessageType_ONE_TO_ONE,
|
MessageType: protobuf.MessageType_ONE_TO_ONE,
|
||||||
|
@ -2229,7 +2230,7 @@ func (s *MessageHandlerSuite) TestRun() {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "Private message from myself without chat",
|
Name: "Private message from myself without chat",
|
||||||
Message: Message{
|
Message: common.Message{
|
||||||
ChatMessage: protobuf.ChatMessage{
|
ChatMessage: protobuf.ChatMessage{
|
||||||
ChatId: "test-chat",
|
ChatId: "test-chat",
|
||||||
MessageType: protobuf.MessageType_ONE_TO_ONE,
|
MessageType: protobuf.MessageType_ONE_TO_ONE,
|
||||||
|
@ -2241,7 +2242,7 @@ func (s *MessageHandlerSuite) TestRun() {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "Private message from other without chat",
|
Name: "Private message from other without chat",
|
||||||
Message: Message{
|
Message: common.Message{
|
||||||
ChatMessage: protobuf.ChatMessage{
|
ChatMessage: protobuf.ChatMessage{
|
||||||
ChatId: "test-chat",
|
ChatId: "test-chat",
|
||||||
MessageType: protobuf.MessageType_ONE_TO_ONE,
|
MessageType: protobuf.MessageType_ONE_TO_ONE,
|
||||||
|
@ -2258,7 +2259,7 @@ func (s *MessageHandlerSuite) TestRun() {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "Private group message",
|
Name: "Private group message",
|
||||||
Message: Message{
|
Message: common.Message{
|
||||||
ChatMessage: protobuf.ChatMessage{
|
ChatMessage: protobuf.ChatMessage{
|
||||||
ChatId: "non-existing-chat",
|
ChatId: "non-existing-chat",
|
||||||
MessageType: protobuf.MessageType_PRIVATE_GROUP,
|
MessageType: protobuf.MessageType_PRIVATE_GROUP,
|
||||||
|
|
|
@ -266,7 +266,7 @@ func (db sqlitePersistence) chats(tx *sql.Tx) (chats []*Chat, err error) {
|
||||||
|
|
||||||
// Restore last message
|
// Restore last message
|
||||||
if lastMessageBytes != nil {
|
if lastMessageBytes != nil {
|
||||||
message := &Message{}
|
message := &common.Message{}
|
||||||
if err = json.Unmarshal(lastMessageBytes, message); err != nil {
|
if err = json.Unmarshal(lastMessageBytes, message); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -346,7 +346,7 @@ func (db sqlitePersistence) Chat(chatID string) (*Chat, error) {
|
||||||
|
|
||||||
// Restore last message
|
// Restore last message
|
||||||
if lastMessageBytes != nil {
|
if lastMessageBytes != nil {
|
||||||
message := &Message{}
|
message := &common.Message{}
|
||||||
if err = json.Unmarshal(lastMessageBytes, message); err != nil {
|
if err = json.Unmarshal(lastMessageBytes, message); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ import (
|
||||||
|
|
||||||
"github.com/status-im/status-go/eth-node/crypto"
|
"github.com/status-im/status-go/eth-node/crypto"
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"github.com/status-im/status-go/eth-node/types"
|
||||||
|
"github.com/status-im/status-go/protocol/common"
|
||||||
"github.com/status-im/status-go/protocol/protobuf"
|
"github.com/status-im/status-go/protocol/protobuf"
|
||||||
"github.com/status-im/status-go/protocol/sqlite"
|
"github.com/status-im/status-go/protocol/sqlite"
|
||||||
)
|
)
|
||||||
|
@ -103,9 +104,9 @@ func TestMessageByChatID(t *testing.T) {
|
||||||
count := 1000
|
count := 1000
|
||||||
pageSize := 50
|
pageSize := 50
|
||||||
|
|
||||||
var messages []*Message
|
var messages []*common.Message
|
||||||
for i := 0; i < count; i++ {
|
for i := 0; i < count; i++ {
|
||||||
messages = append(messages, &Message{
|
messages = append(messages, &common.Message{
|
||||||
ID: strconv.Itoa(i),
|
ID: strconv.Itoa(i),
|
||||||
LocalChatID: chatID,
|
LocalChatID: chatID,
|
||||||
ChatMessage: protobuf.ChatMessage{
|
ChatMessage: protobuf.ChatMessage{
|
||||||
|
@ -116,7 +117,7 @@ func TestMessageByChatID(t *testing.T) {
|
||||||
|
|
||||||
// Add some other chats.
|
// Add some other chats.
|
||||||
if count%5 == 0 {
|
if count%5 == 0 {
|
||||||
messages = append(messages, &Message{
|
messages = append(messages, &common.Message{
|
||||||
ID: strconv.Itoa(count + i),
|
ID: strconv.Itoa(count + i),
|
||||||
LocalChatID: "other-chat",
|
LocalChatID: "other-chat",
|
||||||
ChatMessage: protobuf.ChatMessage{
|
ChatMessage: protobuf.ChatMessage{
|
||||||
|
@ -132,7 +133,7 @@ func TestMessageByChatID(t *testing.T) {
|
||||||
outOfOrderCount := pageSize + 1
|
outOfOrderCount := pageSize + 1
|
||||||
allCount := count + outOfOrderCount
|
allCount := count + outOfOrderCount
|
||||||
for i := 0; i < pageSize+1; i++ {
|
for i := 0; i < pageSize+1; i++ {
|
||||||
messages = append(messages, &Message{
|
messages = append(messages, &common.Message{
|
||||||
ID: strconv.Itoa(count*2 + i),
|
ID: strconv.Itoa(count*2 + i),
|
||||||
LocalChatID: chatID,
|
LocalChatID: chatID,
|
||||||
ChatMessage: protobuf.ChatMessage{
|
ChatMessage: protobuf.ChatMessage{
|
||||||
|
@ -147,13 +148,13 @@ func TestMessageByChatID(t *testing.T) {
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
result []*Message
|
result []*common.Message
|
||||||
cursor string
|
cursor string
|
||||||
iter int
|
iter int
|
||||||
)
|
)
|
||||||
for {
|
for {
|
||||||
var (
|
var (
|
||||||
items []*Message
|
items []*common.Message
|
||||||
err error
|
err error
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -183,7 +184,7 @@ func TestMessageReplies(t *testing.T) {
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
p := sqlitePersistence{db: db}
|
p := sqlitePersistence{db: db}
|
||||||
chatID := testPublicChatID
|
chatID := testPublicChatID
|
||||||
message1 := &Message{
|
message1 := &common.Message{
|
||||||
ID: "id-1",
|
ID: "id-1",
|
||||||
LocalChatID: chatID,
|
LocalChatID: chatID,
|
||||||
ChatMessage: protobuf.ChatMessage{
|
ChatMessage: protobuf.ChatMessage{
|
||||||
|
@ -192,7 +193,7 @@ func TestMessageReplies(t *testing.T) {
|
||||||
},
|
},
|
||||||
From: "1",
|
From: "1",
|
||||||
}
|
}
|
||||||
message2 := &Message{
|
message2 := &common.Message{
|
||||||
ID: "id-2",
|
ID: "id-2",
|
||||||
LocalChatID: chatID,
|
LocalChatID: chatID,
|
||||||
ChatMessage: protobuf.ChatMessage{
|
ChatMessage: protobuf.ChatMessage{
|
||||||
|
@ -204,7 +205,7 @@ func TestMessageReplies(t *testing.T) {
|
||||||
From: "2",
|
From: "2",
|
||||||
}
|
}
|
||||||
|
|
||||||
message3 := &Message{
|
message3 := &common.Message{
|
||||||
ID: "id-3",
|
ID: "id-3",
|
||||||
LocalChatID: chatID,
|
LocalChatID: chatID,
|
||||||
ChatMessage: protobuf.ChatMessage{
|
ChatMessage: protobuf.ChatMessage{
|
||||||
|
@ -215,7 +216,7 @@ func TestMessageReplies(t *testing.T) {
|
||||||
From: "3",
|
From: "3",
|
||||||
}
|
}
|
||||||
|
|
||||||
messages := []*Message{message1, message2, message3}
|
messages := []*common.Message{message1, message2, message3}
|
||||||
|
|
||||||
err = p.SaveMessages(messages)
|
err = p.SaveMessages(messages)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -227,7 +228,7 @@ func TestMessageReplies(t *testing.T) {
|
||||||
require.Nil(t, retrievedMessages[0].QuotedMessage)
|
require.Nil(t, retrievedMessages[0].QuotedMessage)
|
||||||
|
|
||||||
require.Equal(t, "id-1", retrievedMessages[1].ResponseTo)
|
require.Equal(t, "id-1", retrievedMessages[1].ResponseTo)
|
||||||
require.Equal(t, &QuotedMessage{From: "1", Text: "content-1"}, retrievedMessages[1].QuotedMessage)
|
require.Equal(t, &common.QuotedMessage{From: "1", Text: "content-1"}, retrievedMessages[1].QuotedMessage)
|
||||||
|
|
||||||
require.Equal(t, "", retrievedMessages[2].ResponseTo)
|
require.Equal(t, "", retrievedMessages[2].ResponseTo)
|
||||||
require.Nil(t, retrievedMessages[2].QuotedMessage)
|
require.Nil(t, retrievedMessages[2].QuotedMessage)
|
||||||
|
@ -242,10 +243,10 @@ func TestMessageByChatIDWithTheSameClocks(t *testing.T) {
|
||||||
count := len(clockValues)
|
count := len(clockValues)
|
||||||
pageSize := 2
|
pageSize := 2
|
||||||
|
|
||||||
var messages []*Message
|
var messages []*common.Message
|
||||||
|
|
||||||
for i, clock := range clockValues {
|
for i, clock := range clockValues {
|
||||||
messages = append(messages, &Message{
|
messages = append(messages, &common.Message{
|
||||||
ID: strconv.Itoa(i),
|
ID: strconv.Itoa(i),
|
||||||
LocalChatID: chatID,
|
LocalChatID: chatID,
|
||||||
ChatMessage: protobuf.ChatMessage{
|
ChatMessage: protobuf.ChatMessage{
|
||||||
|
@ -259,13 +260,13 @@ func TestMessageByChatIDWithTheSameClocks(t *testing.T) {
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
result []*Message
|
result []*common.Message
|
||||||
cursor string
|
cursor string
|
||||||
iter int
|
iter int
|
||||||
)
|
)
|
||||||
for {
|
for {
|
||||||
var (
|
var (
|
||||||
items []*Message
|
items []*common.Message
|
||||||
err error
|
err error
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -324,14 +325,14 @@ func TestDeleteMessagesByChatID(t *testing.T) {
|
||||||
err = insertMinimalMessage(p, "2")
|
err = insertMinimalMessage(p, "2")
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
m, _, err := p.MessageByChatID("chat-id", "", 10)
|
m, _, err := p.MessageByChatID(testPublicChatID, "", 10)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, 2, len(m))
|
require.Equal(t, 2, len(m))
|
||||||
|
|
||||||
err = p.DeleteMessagesByChatID("chat-id")
|
err = p.DeleteMessagesByChatID(testPublicChatID)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
m, _, err = p.MessageByChatID("chat-id", "", 10)
|
m, _, err = p.MessageByChatID(testPublicChatID, "", 10)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, 0, len(m))
|
require.Equal(t, 0, len(m))
|
||||||
|
|
||||||
|
@ -390,7 +391,7 @@ func TestPersistenceEmojiReactions(t *testing.T) {
|
||||||
from2 := "from-2"
|
from2 := "from-2"
|
||||||
from3 := "from-3"
|
from3 := "from-3"
|
||||||
|
|
||||||
chatID := "chat-id"
|
chatID := testPublicChatID
|
||||||
|
|
||||||
err = insertMinimalMessage(p, id1)
|
err = insertMinimalMessage(p, id1)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -487,9 +488,9 @@ func openTestDB() (*sql.DB, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func insertMinimalMessage(p sqlitePersistence, id string) error {
|
func insertMinimalMessage(p sqlitePersistence, id string) error {
|
||||||
return p.SaveMessages([]*Message{{
|
return p.SaveMessages([]*common.Message{{
|
||||||
ID: id,
|
ID: id,
|
||||||
LocalChatID: "chat-id",
|
LocalChatID: testPublicChatID,
|
||||||
ChatMessage: protobuf.ChatMessage{Text: "some-text"},
|
ChatMessage: protobuf.ChatMessage{Text: "some-text"},
|
||||||
From: "me",
|
From: "me",
|
||||||
}})
|
}})
|
||||||
|
@ -512,7 +513,7 @@ func TestMessagesAudioDurationMsNull(t *testing.T) {
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Len(t, m, 1)
|
require.Len(t, m, 1)
|
||||||
|
|
||||||
m, _, err = p.MessageByChatID("chat-id", "", 10)
|
m, _, err = p.MessageByChatID(testPublicChatID, "", 10)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Len(t, m, 1)
|
require.Len(t, m, 1)
|
||||||
}
|
}
|
||||||
|
@ -523,7 +524,7 @@ func TestSaveChat(t *testing.T) {
|
||||||
p := sqlitePersistence{db: db}
|
p := sqlitePersistence{db: db}
|
||||||
|
|
||||||
chat := CreatePublicChat("test-chat", &testTimeSource{})
|
chat := CreatePublicChat("test-chat", &testTimeSource{})
|
||||||
chat.LastMessage = &Message{}
|
chat.LastMessage = &common.Message{}
|
||||||
err = p.SaveChat(chat)
|
err = p.SaveChat(chat)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
@ -533,7 +534,7 @@ func TestSaveChat(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSaveMentions(t *testing.T) {
|
func TestSaveMentions(t *testing.T) {
|
||||||
chatID := "chat-id"
|
chatID := testPublicChatID
|
||||||
db, err := openTestDB()
|
db, err := openTestDB()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
p := sqlitePersistence{db: db}
|
p := sqlitePersistence{db: db}
|
||||||
|
@ -543,7 +544,7 @@ func TestSaveMentions(t *testing.T) {
|
||||||
|
|
||||||
pkString := types.EncodeHex(crypto.FromECDSAPub(&key.PublicKey))
|
pkString := types.EncodeHex(crypto.FromECDSAPub(&key.PublicKey))
|
||||||
|
|
||||||
message := Message{
|
message := common.Message{
|
||||||
ID: "1",
|
ID: "1",
|
||||||
LocalChatID: chatID,
|
LocalChatID: chatID,
|
||||||
ChatMessage: protobuf.ChatMessage{Text: "some-text"},
|
ChatMessage: protobuf.ChatMessage{Text: "some-text"},
|
||||||
|
@ -551,7 +552,7 @@ func TestSaveMentions(t *testing.T) {
|
||||||
Mentions: []string{pkString},
|
Mentions: []string{pkString},
|
||||||
}
|
}
|
||||||
|
|
||||||
err = p.SaveMessages([]*Message{&message})
|
err = p.SaveMessages([]*common.Message{&message})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
retrievedMessages, _, err := p.MessageByChatID(chatID, "", 10)
|
retrievedMessages, _, err := p.MessageByChatID(chatID, "", 10)
|
||||||
|
|
|
@ -142,21 +142,23 @@ func (PushNotificationReport_ErrorType) EnumDescriptor() ([]byte, []int) {
|
||||||
}
|
}
|
||||||
|
|
||||||
type PushNotificationRegistration struct {
|
type PushNotificationRegistration struct {
|
||||||
TokenType PushNotificationRegistration_TokenType `protobuf:"varint,1,opt,name=token_type,json=tokenType,proto3,enum=protobuf.PushNotificationRegistration_TokenType" json:"token_type,omitempty"`
|
TokenType PushNotificationRegistration_TokenType `protobuf:"varint,1,opt,name=token_type,json=tokenType,proto3,enum=protobuf.PushNotificationRegistration_TokenType" json:"token_type,omitempty"`
|
||||||
DeviceToken string `protobuf:"bytes,2,opt,name=device_token,json=deviceToken,proto3" json:"device_token,omitempty"`
|
DeviceToken string `protobuf:"bytes,2,opt,name=device_token,json=deviceToken,proto3" json:"device_token,omitempty"`
|
||||||
InstallationId string `protobuf:"bytes,3,opt,name=installation_id,json=installationId,proto3" json:"installation_id,omitempty"`
|
InstallationId string `protobuf:"bytes,3,opt,name=installation_id,json=installationId,proto3" json:"installation_id,omitempty"`
|
||||||
AccessToken string `protobuf:"bytes,4,opt,name=access_token,json=accessToken,proto3" json:"access_token,omitempty"`
|
AccessToken string `protobuf:"bytes,4,opt,name=access_token,json=accessToken,proto3" json:"access_token,omitempty"`
|
||||||
Enabled bool `protobuf:"varint,5,opt,name=enabled,proto3" json:"enabled,omitempty"`
|
Enabled bool `protobuf:"varint,5,opt,name=enabled,proto3" json:"enabled,omitempty"`
|
||||||
Version uint64 `protobuf:"varint,6,opt,name=version,proto3" json:"version,omitempty"`
|
Version uint64 `protobuf:"varint,6,opt,name=version,proto3" json:"version,omitempty"`
|
||||||
AllowedKeyList [][]byte `protobuf:"bytes,7,rep,name=allowed_key_list,json=allowedKeyList,proto3" json:"allowed_key_list,omitempty"`
|
AllowedKeyList [][]byte `protobuf:"bytes,7,rep,name=allowed_key_list,json=allowedKeyList,proto3" json:"allowed_key_list,omitempty"`
|
||||||
BlockedChatList [][]byte `protobuf:"bytes,8,rep,name=blocked_chat_list,json=blockedChatList,proto3" json:"blocked_chat_list,omitempty"`
|
BlockedChatList [][]byte `protobuf:"bytes,8,rep,name=blocked_chat_list,json=blockedChatList,proto3" json:"blocked_chat_list,omitempty"`
|
||||||
Unregister bool `protobuf:"varint,9,opt,name=unregister,proto3" json:"unregister,omitempty"`
|
Unregister bool `protobuf:"varint,9,opt,name=unregister,proto3" json:"unregister,omitempty"`
|
||||||
Grant []byte `protobuf:"bytes,10,opt,name=grant,proto3" json:"grant,omitempty"`
|
Grant []byte `protobuf:"bytes,10,opt,name=grant,proto3" json:"grant,omitempty"`
|
||||||
AllowFromContactsOnly bool `protobuf:"varint,11,opt,name=allow_from_contacts_only,json=allowFromContactsOnly,proto3" json:"allow_from_contacts_only,omitempty"`
|
AllowFromContactsOnly bool `protobuf:"varint,11,opt,name=allow_from_contacts_only,json=allowFromContactsOnly,proto3" json:"allow_from_contacts_only,omitempty"`
|
||||||
ApnTopic string `protobuf:"bytes,12,opt,name=apn_topic,json=apnTopic,proto3" json:"apn_topic,omitempty"`
|
ApnTopic string `protobuf:"bytes,12,opt,name=apn_topic,json=apnTopic,proto3" json:"apn_topic,omitempty"`
|
||||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
BlockMentions bool `protobuf:"varint,13,opt,name=block_mentions,json=blockMentions,proto3" json:"block_mentions,omitempty"`
|
||||||
XXX_unrecognized []byte `json:"-"`
|
AllowedMentionsChatList [][]byte `protobuf:"bytes,14,rep,name=allowed_mentions_chat_list,json=allowedMentionsChatList,proto3" json:"allowed_mentions_chat_list,omitempty"`
|
||||||
XXX_sizecache int32 `json:"-"`
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||||
|
XXX_unrecognized []byte `json:"-"`
|
||||||
|
XXX_sizecache int32 `json:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *PushNotificationRegistration) Reset() { *m = PushNotificationRegistration{} }
|
func (m *PushNotificationRegistration) Reset() { *m = PushNotificationRegistration{} }
|
||||||
|
@ -268,6 +270,20 @@ func (m *PushNotificationRegistration) GetApnTopic() string {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *PushNotificationRegistration) GetBlockMentions() bool {
|
||||||
|
if m != nil {
|
||||||
|
return m.BlockMentions
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *PushNotificationRegistration) GetAllowedMentionsChatList() [][]byte {
|
||||||
|
if m != nil {
|
||||||
|
return m.AllowedMentionsChatList
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
type PushNotificationRegistrationResponse struct {
|
type PushNotificationRegistrationResponse struct {
|
||||||
Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
|
Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
|
||||||
Error PushNotificationRegistrationResponse_ErrorType `protobuf:"varint,2,opt,name=error,proto3,enum=protobuf.PushNotificationRegistrationResponse_ErrorType" json:"error,omitempty"`
|
Error PushNotificationRegistrationResponse_ErrorType `protobuf:"varint,2,opt,name=error,proto3,enum=protobuf.PushNotificationRegistrationResponse_ErrorType" json:"error,omitempty"`
|
||||||
|
@ -799,65 +815,67 @@ func init() {
|
||||||
func init() { proto.RegisterFile("push_notifications.proto", fileDescriptor_200acd86044eaa5d) }
|
func init() { proto.RegisterFile("push_notifications.proto", fileDescriptor_200acd86044eaa5d) }
|
||||||
|
|
||||||
var fileDescriptor_200acd86044eaa5d = []byte{
|
var fileDescriptor_200acd86044eaa5d = []byte{
|
||||||
// 952 bytes of a gzipped FileDescriptorProto
|
// 990 bytes of a gzipped FileDescriptorProto
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0x51, 0x6f, 0xe3, 0x44,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0x4d, 0x6f, 0xe3, 0x44,
|
||||||
0x10, 0xc6, 0x4e, 0xda, 0x24, 0x93, 0x90, 0xba, 0xab, 0xb6, 0x67, 0x0e, 0x7a, 0x04, 0x83, 0x44,
|
0x18, 0xc6, 0x4e, 0xda, 0x24, 0x6f, 0xd2, 0xd4, 0x1d, 0xf5, 0xc3, 0x14, 0xba, 0x04, 0x03, 0x22,
|
||||||
0xd4, 0x87, 0x80, 0x8a, 0xc4, 0x9d, 0x78, 0x22, 0xa4, 0x4e, 0xcf, 0x6a, 0x63, 0x87, 0x8d, 0xcb,
|
0xea, 0x21, 0xa0, 0x22, 0xb1, 0x2b, 0xb8, 0x10, 0x52, 0xa7, 0x6b, 0xb5, 0xb1, 0xc3, 0xc4, 0x65,
|
||||||
0xe9, 0x24, 0x24, 0xcb, 0xb1, 0x37, 0xad, 0x55, 0xd7, 0x6b, 0xbc, 0x9b, 0xa2, 0xbc, 0xf1, 0x03,
|
0xb5, 0x12, 0xd2, 0xc8, 0xb1, 0x27, 0xad, 0x55, 0xd7, 0x36, 0x1e, 0xa7, 0x28, 0x37, 0x7e, 0x00,
|
||||||
0x78, 0xe1, 0x95, 0x9f, 0xc1, 0x33, 0xff, 0x80, 0x3f, 0x85, 0xbc, 0xb6, 0xd3, 0xb4, 0x71, 0xd3,
|
0x17, 0xae, 0x9c, 0xf8, 0x0d, 0xfc, 0x0d, 0xfe, 0x14, 0xf2, 0xd8, 0xce, 0xba, 0x8d, 0x9b, 0x16,
|
||||||
0x22, 0xf1, 0x94, 0xcc, 0x37, 0x3b, 0x33, 0xbb, 0xf3, 0xcd, 0x37, 0x06, 0x35, 0x9e, 0xb3, 0x2b,
|
0x69, 0x4f, 0xc9, 0x3c, 0xef, 0xc7, 0xcc, 0xfb, 0xf1, 0x3c, 0x06, 0x39, 0x9c, 0xb3, 0x6b, 0xe2,
|
||||||
0x27, 0xa2, 0x3c, 0x98, 0x05, 0x9e, 0xcb, 0x03, 0x1a, 0xb1, 0x5e, 0x9c, 0x50, 0x4e, 0x51, 0x5d,
|
0x07, 0xb1, 0x3b, 0x73, 0x6d, 0x2b, 0x76, 0x03, 0x9f, 0xf5, 0xc2, 0x28, 0x88, 0x03, 0x54, 0xe7,
|
||||||
0xfc, 0x4c, 0xe7, 0x33, 0xed, 0xef, 0x2a, 0x7c, 0x32, 0x9e, 0xb3, 0x2b, 0x73, 0xe5, 0x14, 0x26,
|
0x3f, 0xd3, 0xf9, 0x4c, 0xf9, 0x7b, 0x03, 0x3e, 0x1e, 0xcf, 0xd9, 0xb5, 0x5e, 0xf0, 0xc2, 0xf4,
|
||||||
0x97, 0x01, 0xe3, 0x89, 0xf8, 0x8f, 0x2c, 0x00, 0x4e, 0xaf, 0x49, 0xe4, 0xf0, 0x45, 0x4c, 0x54,
|
0xca, 0x65, 0x71, 0xc4, 0xff, 0x23, 0x03, 0x20, 0x0e, 0x6e, 0xa8, 0x4f, 0xe2, 0x45, 0x48, 0x65,
|
||||||
0xa9, 0x23, 0x75, 0xdb, 0xc7, 0x5f, 0xf7, 0x8a, 0xf8, 0xde, 0xa6, 0xd8, 0x9e, 0x9d, 0x06, 0xda,
|
0xa1, 0x23, 0x74, 0xdb, 0x27, 0x5f, 0xf7, 0xf2, 0xf8, 0xde, 0xba, 0xd8, 0x9e, 0x99, 0x04, 0x9a,
|
||||||
0x8b, 0x98, 0xe0, 0x06, 0x2f, 0xfe, 0xa2, 0xcf, 0xa0, 0xe5, 0x93, 0xdb, 0xc0, 0x23, 0x8e, 0xc0,
|
0x8b, 0x90, 0xe2, 0x46, 0x9c, 0xff, 0x45, 0x9f, 0x42, 0xcb, 0xa1, 0x77, 0xae, 0x4d, 0x09, 0xc7,
|
||||||
0x54, 0xb9, 0x23, 0x75, 0x1b, 0xb8, 0x99, 0x61, 0x22, 0x02, 0x7d, 0x09, 0x3b, 0x41, 0xc4, 0xb8,
|
0x64, 0xb1, 0x23, 0x74, 0x1b, 0xb8, 0x99, 0x62, 0x3c, 0x02, 0x7d, 0x09, 0xdb, 0xae, 0xcf, 0x62,
|
||||||
0x1b, 0x86, 0x22, 0x8f, 0x13, 0xf8, 0x6a, 0x45, 0x9c, 0x6a, 0xaf, 0xc2, 0x86, 0x9f, 0xe6, 0x72,
|
0xcb, 0xf3, 0x78, 0x1e, 0xe2, 0x3a, 0x72, 0x85, 0x7b, 0xb5, 0x8b, 0xb0, 0xe6, 0x24, 0xb9, 0x2c,
|
||||||
0x3d, 0x8f, 0x30, 0x96, 0xe7, 0xaa, 0x66, 0xb9, 0x32, 0x2c, 0xcb, 0xa5, 0x42, 0x8d, 0x44, 0xee,
|
0xdb, 0xa6, 0x8c, 0x65, 0xb9, 0xaa, 0x69, 0xae, 0x14, 0x4b, 0x73, 0xc9, 0x50, 0xa3, 0xbe, 0x35,
|
||||||
0x34, 0x24, 0xbe, 0xba, 0xd5, 0x91, 0xba, 0x75, 0x5c, 0x98, 0xa9, 0xe7, 0x96, 0x24, 0x2c, 0xa0,
|
0xf5, 0xa8, 0x23, 0x6f, 0x74, 0x84, 0x6e, 0x1d, 0xe7, 0xc7, 0xc4, 0x72, 0x47, 0x23, 0xe6, 0x06,
|
||||||
0x91, 0xba, 0xdd, 0x91, 0xba, 0x55, 0x5c, 0x98, 0xa8, 0x0b, 0x8a, 0x1b, 0x86, 0xf4, 0x57, 0xe2,
|
0xbe, 0xbc, 0xd9, 0x11, 0xba, 0x55, 0x9c, 0x1f, 0x51, 0x17, 0x24, 0xcb, 0xf3, 0x82, 0xdf, 0xa8,
|
||||||
0x3b, 0xd7, 0x64, 0xe1, 0x84, 0x01, 0xe3, 0x6a, 0xad, 0x53, 0xe9, 0xb6, 0x70, 0x3b, 0xc7, 0xcf,
|
0x43, 0x6e, 0xe8, 0x82, 0x78, 0x2e, 0x8b, 0xe5, 0x5a, 0xa7, 0xd2, 0x6d, 0xe1, 0x76, 0x86, 0x9f,
|
||||||
0xc8, 0xe2, 0x3c, 0x60, 0x1c, 0x1d, 0xc1, 0xee, 0x34, 0xa4, 0xde, 0x35, 0xf1, 0x1d, 0xef, 0xca,
|
0xd3, 0xc5, 0x85, 0xcb, 0x62, 0x74, 0x0c, 0x3b, 0x53, 0x2f, 0xb0, 0x6f, 0xa8, 0x43, 0xec, 0x6b,
|
||||||
0xe5, 0xd9, 0xd1, 0xba, 0x38, 0xba, 0x93, 0x3b, 0x06, 0x57, 0x2e, 0x17, 0x67, 0x5f, 0x01, 0xcc,
|
0x2b, 0x4e, 0x5d, 0xeb, 0xdc, 0x75, 0x3b, 0x33, 0x0c, 0xae, 0xad, 0x98, 0xfb, 0xbe, 0x00, 0x98,
|
||||||
0xa3, 0x44, 0xf4, 0x87, 0x24, 0x6a, 0x43, 0x5c, 0x66, 0x05, 0x41, 0x7b, 0xb0, 0x75, 0x99, 0xb8,
|
0xfb, 0x11, 0xef, 0x0f, 0x8d, 0xe4, 0x06, 0x7f, 0x4c, 0x01, 0x41, 0xbb, 0xb0, 0x71, 0x15, 0x59,
|
||||||
0x11, 0x57, 0xa1, 0x23, 0x75, 0x5b, 0x38, 0x33, 0xd0, 0x6b, 0x50, 0x45, 0x4d, 0x67, 0x96, 0xd0,
|
0x7e, 0x2c, 0x43, 0x47, 0xe8, 0xb6, 0x70, 0x7a, 0x40, 0x2f, 0x41, 0xe6, 0x77, 0x92, 0x59, 0x14,
|
||||||
0x1b, 0xc7, 0xa3, 0x11, 0x77, 0x3d, 0xce, 0x1c, 0x1a, 0x85, 0x0b, 0xb5, 0x29, 0x72, 0xec, 0x0b,
|
0xdc, 0x12, 0x3b, 0xf0, 0x63, 0xcb, 0x8e, 0x19, 0x09, 0x7c, 0x6f, 0x21, 0x37, 0x79, 0x8e, 0x3d,
|
||||||
0xff, 0x30, 0xa1, 0x37, 0x83, 0xdc, 0x6b, 0x45, 0xe1, 0x02, 0x7d, 0x0c, 0x0d, 0x37, 0x8e, 0x1c,
|
0x6e, 0x1f, 0x46, 0xc1, 0xed, 0x20, 0xb3, 0x1a, 0xbe, 0xb7, 0x40, 0x1f, 0x41, 0xc3, 0x0a, 0x7d,
|
||||||
0x4e, 0xe3, 0xc0, 0x53, 0x5b, 0xa2, 0x31, 0x75, 0x37, 0x8e, 0xec, 0xd4, 0xd6, 0x86, 0xd0, 0x58,
|
0x12, 0x07, 0xa1, 0x6b, 0xcb, 0x2d, 0xde, 0x98, 0xba, 0x15, 0xfa, 0x66, 0x72, 0x46, 0x5f, 0x40,
|
||||||
0x92, 0x83, 0x0e, 0x00, 0x5d, 0x98, 0x67, 0xa6, 0xf5, 0xce, 0x74, 0x6c, 0xeb, 0x4c, 0x37, 0x1d,
|
0x9b, 0x3f, 0x8f, 0xdc, 0x52, 0x9f, 0x2f, 0x86, 0xbc, 0xc5, 0x73, 0x6d, 0x71, 0x74, 0x94, 0x81,
|
||||||
0xfb, 0xfd, 0x58, 0x57, 0x3e, 0x40, 0x1f, 0x42, 0xa3, 0x3f, 0xce, 0x31, 0x45, 0x42, 0x08, 0xda,
|
0xe8, 0x7b, 0x38, 0xcc, 0x1b, 0x91, 0x3b, 0x16, 0xea, 0x6c, 0xf3, 0x3a, 0x0f, 0x32, 0x8f, 0x3c,
|
||||||
0x43, 0x03, 0xeb, 0x3f, 0xf4, 0x27, 0x7a, 0x8e, 0xc9, 0xda, 0x5f, 0x32, 0x7c, 0xb1, 0x69, 0x04,
|
0x28, 0xaf, 0x57, 0x19, 0x42, 0x63, 0xb9, 0x00, 0x68, 0x1f, 0xd0, 0xa5, 0x7e, 0xae, 0x1b, 0x6f,
|
||||||
0x30, 0x61, 0x31, 0x8d, 0x18, 0x49, 0x9b, 0xcd, 0xe6, 0x82, 0x16, 0x31, 0x43, 0x75, 0x5c, 0x98,
|
0x74, 0x62, 0x1a, 0xe7, 0xaa, 0x4e, 0xcc, 0xb7, 0x63, 0x55, 0xfa, 0x00, 0x6d, 0x41, 0xa3, 0x3f,
|
||||||
0xc8, 0x84, 0x2d, 0x92, 0x24, 0x34, 0x11, 0x83, 0xd0, 0x3e, 0x7e, 0xf3, 0xbc, 0xd9, 0x2a, 0x12,
|
0xce, 0x30, 0x49, 0x40, 0x08, 0xda, 0x43, 0x0d, 0xab, 0x3f, 0xf6, 0x27, 0x6a, 0x86, 0x89, 0xca,
|
||||||
0xf7, 0xf4, 0x34, 0x56, 0xcc, 0x58, 0x96, 0x06, 0x1d, 0x02, 0x24, 0xe4, 0x97, 0x39, 0x61, 0xbc,
|
0x3f, 0x22, 0x7c, 0xbe, 0x6e, 0xcd, 0x30, 0x65, 0x61, 0xe0, 0x33, 0x9a, 0x0c, 0x94, 0xcd, 0xf9,
|
||||||
0x98, 0x9b, 0x16, 0x6e, 0xe4, 0x88, 0xe1, 0x6b, 0xbf, 0x49, 0xd0, 0x58, 0xc6, 0xac, 0x3e, 0x5d,
|
0xe8, 0xf9, 0x9e, 0xd6, 0x71, 0x7e, 0x44, 0x3a, 0x6c, 0xd0, 0x28, 0x0a, 0x22, 0xbe, 0x6c, 0xed,
|
||||||
0xc7, 0xd8, 0xc2, 0xc5, 0xd3, 0xf7, 0x61, 0x77, 0xd4, 0x3f, 0x1f, 0x5a, 0x78, 0xa4, 0x9f, 0x38,
|
0x93, 0x57, 0xcf, 0xdb, 0xdf, 0x3c, 0x71, 0x4f, 0x4d, 0x62, 0xf9, 0x1e, 0xa7, 0x69, 0xd0, 0x11,
|
||||||
0x23, 0x7d, 0x32, 0xe9, 0x9f, 0xea, 0x8a, 0x84, 0xf6, 0x40, 0xf9, 0x49, 0xc7, 0x13, 0xc3, 0x32,
|
0x40, 0x44, 0x7f, 0x9d, 0x53, 0x16, 0xe7, 0xbb, 0xd9, 0xc2, 0x8d, 0x0c, 0xd1, 0x1c, 0xe5, 0x77,
|
||||||
0x9d, 0x91, 0x31, 0x19, 0xf5, 0xed, 0xc1, 0x5b, 0x45, 0x46, 0x2f, 0xe1, 0xe0, 0xc2, 0x9c, 0x5c,
|
0x01, 0x1a, 0xcb, 0x98, 0x62, 0xe9, 0x2a, 0xc6, 0x06, 0xce, 0x4b, 0xdf, 0x83, 0x9d, 0x51, 0xff,
|
||||||
0x8c, 0xc7, 0x16, 0xb6, 0xf5, 0x93, 0xd5, 0x1e, 0x56, 0xd2, 0xa6, 0x19, 0xa6, 0xad, 0x63, 0xb3,
|
0x62, 0x68, 0xe0, 0x91, 0x7a, 0x4a, 0x46, 0xea, 0x64, 0xd2, 0x3f, 0x53, 0x25, 0x01, 0xed, 0x82,
|
||||||
0x7f, 0x9e, 0x55, 0x50, 0xaa, 0xda, 0x1c, 0xd4, 0x9c, 0xa9, 0x01, 0xf5, 0x49, 0xdf, 0xbf, 0x25,
|
0xf4, 0xb3, 0x8a, 0x27, 0x9a, 0xa1, 0x93, 0x91, 0x36, 0x19, 0xf5, 0xcd, 0xc1, 0x6b, 0x49, 0x44,
|
||||||
0x09, 0x0f, 0x18, 0xb9, 0x21, 0x11, 0x47, 0xef, 0xe1, 0x60, 0x4d, 0xb5, 0x4e, 0x10, 0xcd, 0xa8,
|
0x87, 0xb0, 0x7f, 0xa9, 0x4f, 0x2e, 0xc7, 0x63, 0x03, 0x9b, 0xea, 0x69, 0xb1, 0x87, 0x95, 0xa4,
|
||||||
0x2a, 0x75, 0x2a, 0xdd, 0xe6, 0xf1, 0xe7, 0x8f, 0xb7, 0xe7, 0xc7, 0x39, 0x49, 0x16, 0x46, 0x34,
|
0x69, 0x9a, 0x6e, 0xaa, 0x58, 0xef, 0x5f, 0xa4, 0x37, 0x48, 0x55, 0x65, 0x0e, 0x72, 0xb6, 0x0d,
|
||||||
0xa3, 0x78, 0x2f, 0x7e, 0xe0, 0x4a, 0x51, 0xed, 0x0d, 0xec, 0x97, 0x86, 0xa0, 0x4f, 0xa1, 0x19,
|
0x83, 0xc0, 0xa1, 0x7d, 0xe7, 0x8e, 0x46, 0xb1, 0xcb, 0x68, 0x32, 0x45, 0xf4, 0x16, 0xf6, 0x57,
|
||||||
0xcf, 0xa7, 0x61, 0xe0, 0xa5, 0xd3, 0xce, 0x44, 0xa1, 0x16, 0x86, 0x0c, 0x3a, 0x23, 0x0b, 0xa6,
|
0x94, 0x81, 0xb8, 0xfe, 0x2c, 0x90, 0x85, 0x4e, 0xa5, 0xdb, 0x3c, 0xf9, 0xec, 0xf1, 0xf6, 0xfc,
|
||||||
0xfd, 0x2e, 0xc3, 0x47, 0x8f, 0x56, 0x5b, 0x13, 0xa1, 0xb4, 0x2e, 0xc2, 0x12, 0x41, 0xcb, 0xa5,
|
0x34, 0xa7, 0xd1, 0x42, 0xf3, 0x67, 0x01, 0xde, 0x0d, 0x1f, 0x98, 0x12, 0x54, 0x79, 0x05, 0x7b,
|
||||||
0x82, 0x3e, 0x04, 0xb8, 0xbb, 0x4a, 0x41, 0xde, 0xf2, 0x26, 0xa5, 0xc2, 0xac, 0x96, 0x0a, 0x73,
|
0xa5, 0x21, 0xe8, 0x13, 0x68, 0x86, 0xf3, 0xa9, 0xe7, 0xda, 0x09, 0xa3, 0x18, 0xbf, 0xa8, 0x85,
|
||||||
0x29, 0xa6, 0xad, 0x55, 0x31, 0x3d, 0x2e, 0xf9, 0x23, 0xd8, 0x65, 0x24, 0xb9, 0x25, 0x89, 0xb3,
|
0x21, 0x85, 0xce, 0xe9, 0x82, 0x29, 0x7f, 0x88, 0xf0, 0xe1, 0xa3, 0xb7, 0xad, 0x10, 0x5d, 0x58,
|
||||||
0x52, 0xbf, 0x26, 0x62, 0x77, 0x32, 0xc7, 0xb8, 0xb8, 0x85, 0xf6, 0x87, 0x04, 0x87, 0xa5, 0xed,
|
0x25, 0x7a, 0x89, 0x68, 0x88, 0xa5, 0xa2, 0x71, 0x04, 0xf0, 0xee, 0x29, 0xf9, 0xf0, 0x96, 0x2f,
|
||||||
0x58, 0x4e, 0xfb, 0x6b, 0xa8, 0xfe, 0x57, 0xce, 0x44, 0x40, 0xfa, 0xfe, 0x1b, 0xc2, 0x98, 0x7b,
|
0x29, 0x25, 0x7f, 0xb5, 0x94, 0xfc, 0x4b, 0xc2, 0x6e, 0x14, 0x09, 0xfb, 0xb8, 0xac, 0x1c, 0xc3,
|
||||||
0x49, 0x8a, 0x1e, 0xb5, 0x70, 0x23, 0x47, 0x0c, 0x7f, 0x55, 0x45, 0x95, 0x7b, 0x2a, 0xd2, 0xfe,
|
0x0e, 0xa3, 0xd1, 0x1d, 0x8d, 0x48, 0xe1, 0xfe, 0x1a, 0x8f, 0xdd, 0x4e, 0x0d, 0xe3, 0xfc, 0x15,
|
||||||
0x91, 0x41, 0x79, 0x98, 0xfc, 0x39, 0xcc, 0xbc, 0x80, 0x9a, 0x58, 0x5c, 0xcb, 0x6a, 0xdb, 0xa9,
|
0xca, 0x9f, 0x02, 0x1c, 0x95, 0xb6, 0x63, 0xb9, 0xed, 0x2f, 0xa1, 0xfa, 0x7f, 0x67, 0xc6, 0x03,
|
||||||
0xf9, 0x34, 0x13, 0x25, 0x8c, 0x56, 0x4b, 0x19, 0x55, 0xa1, 0x96, 0xdf, 0x3f, 0xa7, 0xa2, 0x30,
|
0x92, 0xfa, 0x6f, 0x29, 0x63, 0xd6, 0x15, 0xcd, 0x7b, 0xd4, 0xc2, 0x8d, 0x0c, 0xd1, 0x9c, 0x22,
|
||||||
0xd1, 0x00, 0xaa, 0xe2, 0x9b, 0xb2, 0x2d, 0x74, 0xff, 0xd5, 0xe3, 0x4d, 0x5a, 0x03, 0x84, 0xdc,
|
0x8b, 0x2a, 0xf7, 0x58, 0xa4, 0xfc, 0x2b, 0x82, 0xf4, 0x30, 0xf9, 0x73, 0x26, 0x73, 0x00, 0x35,
|
||||||
0x45, 0xb0, 0x66, 0xc3, 0x5e, 0x99, 0x17, 0x69, 0xf0, 0xaa, 0x10, 0xf6, 0xf8, 0x62, 0xf2, 0xd6,
|
0x2e, 0x1a, 0xcb, 0xdb, 0x36, 0x93, 0xe3, 0xd3, 0x93, 0x28, 0x99, 0x68, 0xb5, 0x74, 0xa2, 0x32,
|
||||||
0x31, 0x2d, 0xdb, 0x18, 0x1a, 0x83, 0xbe, 0x9d, 0x6a, 0x37, 0x17, 0x79, 0x13, 0x6a, 0x77, 0xd2,
|
0xd4, 0xb2, 0xf7, 0x67, 0xa3, 0xc8, 0x8f, 0x68, 0x00, 0x55, 0xfe, 0xdd, 0xda, 0xe4, 0xbc, 0xff,
|
||||||
0x16, 0x86, 0x99, 0xba, 0x15, 0x59, 0x8b, 0xe1, 0xc5, 0xfa, 0xf2, 0x11, 0x1b, 0x04, 0x7d, 0x0b,
|
0xea, 0xf1, 0x26, 0xad, 0x00, 0x9c, 0xee, 0x3c, 0x58, 0x31, 0x61, 0xb7, 0xcc, 0x8a, 0x14, 0x78,
|
||||||
0xf5, 0x7c, 0x99, 0xb0, 0x9c, 0xde, 0x97, 0x1b, 0x36, 0xd6, 0xf2, 0xec, 0x13, 0xcc, 0x6a, 0x7f,
|
0x91, 0x13, 0x7b, 0x7c, 0x39, 0x79, 0x4d, 0x74, 0xc3, 0xd4, 0x86, 0xda, 0xa0, 0x6f, 0x26, 0xdc,
|
||||||
0xca, 0x70, 0xb0, 0x5e, 0x32, 0xa6, 0x09, 0xdf, 0xb0, 0x3a, 0xbf, 0xbf, 0xbf, 0x3a, 0x8f, 0x36,
|
0xcd, 0x48, 0xde, 0x84, 0xda, 0x3b, 0x6a, 0xf3, 0x83, 0x9e, 0x98, 0x25, 0x51, 0x09, 0xe1, 0x60,
|
||||||
0xad, 0xce, 0x34, 0x55, 0xe9, 0xb2, 0xfc, 0x3f, 0x58, 0xd6, 0x7e, 0x7e, 0xce, 0x52, 0xdd, 0x81,
|
0x55, 0x7c, 0xb8, 0x82, 0xa0, 0x6f, 0xa1, 0x9e, 0x89, 0x09, 0xcb, 0xc6, 0x7b, 0xb8, 0x46, 0xb1,
|
||||||
0xe6, 0x3b, 0x6c, 0x99, 0xa7, 0xab, 0x5f, 0x94, 0x07, 0xcb, 0x51, 0x4e, 0x31, 0xd3, 0xb2, 0x1d,
|
0x96, 0xbe, 0x4f, 0x4c, 0x56, 0xf9, 0x4b, 0x84, 0xfd, 0xd5, 0x2b, 0xc3, 0x20, 0x8a, 0xd7, 0x48,
|
||||||
0xac, 0x9f, 0x1a, 0x13, 0x5b, 0xc7, 0xfa, 0x89, 0x52, 0x49, 0x17, 0xe6, 0xfa, 0x83, 0x72, 0xa9,
|
0xe7, 0x0f, 0xf7, 0xa5, 0xf3, 0x78, 0x9d, 0x74, 0x26, 0xa9, 0x4a, 0xc5, 0xf2, 0x7d, 0x4c, 0x59,
|
||||||
0xdd, 0xef, 0xab, 0xf4, 0x50, 0x31, 0xdf, 0x41, 0x2d, 0x11, 0x6f, 0x67, 0xaa, 0x2c, 0xd8, 0xea,
|
0xf9, 0xe5, 0x39, 0xa2, 0xba, 0x0d, 0xcd, 0x37, 0xd8, 0xd0, 0xcf, 0x8a, 0x5f, 0x94, 0x07, 0xe2,
|
||||||
0x3c, 0xd5, 0x24, 0x5c, 0x04, 0x4c, 0xb7, 0xc5, 0xc9, 0x6f, 0xfe, 0x0d, 0x00, 0x00, 0xff, 0xff,
|
0x28, 0x26, 0x98, 0x6e, 0x98, 0x04, 0xab, 0x67, 0xda, 0xc4, 0x54, 0xb1, 0x7a, 0x2a, 0x55, 0x12,
|
||||||
0xff, 0x42, 0x7f, 0xee, 0x48, 0x09, 0x00, 0x00,
|
0xc1, 0x5c, 0x2d, 0x28, 0xa3, 0xda, 0xfd, 0xbe, 0x0a, 0x0f, 0x19, 0xf3, 0x1d, 0xd4, 0x22, 0x5e,
|
||||||
|
0x3b, 0x93, 0x45, 0x3e, 0xad, 0xce, 0x53, 0x4d, 0xc2, 0x79, 0xc0, 0x74, 0x93, 0x7b, 0x7e, 0xf3,
|
||||||
|
0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x65, 0x07, 0x55, 0xdb, 0xac, 0x09, 0x00, 0x00,
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,8 @@ message PushNotificationRegistration {
|
||||||
bytes grant = 10;
|
bytes grant = 10;
|
||||||
bool allow_from_contacts_only = 11;
|
bool allow_from_contacts_only = 11;
|
||||||
string apn_topic = 12;
|
string apn_topic = 12;
|
||||||
|
bool block_mentions = 13;
|
||||||
|
repeated bytes allowed_mentions_chat_list = 14;
|
||||||
}
|
}
|
||||||
|
|
||||||
message PushNotificationRegistrationResponse {
|
message PushNotificationRegistrationResponse {
|
||||||
|
|
|
@ -176,6 +176,10 @@ type Client struct {
|
||||||
registrationSubscriptions []chan struct{}
|
registrationSubscriptions []chan struct{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type MessagePersistence interface {
|
||||||
|
MessageByID(string) (*common.Message, error)
|
||||||
|
}
|
||||||
|
|
||||||
func New(persistence *Persistence, config *Config, processor *common.MessageProcessor) *Client {
|
func New(persistence *Persistence, config *Config, processor *common.MessageProcessor) *Client {
|
||||||
return &Client{
|
return &Client{
|
||||||
quit: make(chan struct{}),
|
quit: make(chan struct{}),
|
||||||
|
|
|
@ -16,6 +16,7 @@ import (
|
||||||
coretypes "github.com/status-im/status-go/eth-node/core/types"
|
coretypes "github.com/status-im/status-go/eth-node/core/types"
|
||||||
"github.com/status-im/status-go/eth-node/crypto"
|
"github.com/status-im/status-go/eth-node/crypto"
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"github.com/status-im/status-go/eth-node/types"
|
||||||
|
"github.com/status-im/status-go/protocol/common"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -92,7 +93,7 @@ func (t *TransactionValidator) verifyTransactionSignature(ctx context.Context, f
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *TransactionValidator) validateTokenTransfer(parameters *CommandParameters, transaction coretypes.Message) (*VerifyTransactionResponse, error) {
|
func (t *TransactionValidator) validateTokenTransfer(parameters *common.CommandParameters, transaction coretypes.Message) (*VerifyTransactionResponse, error) {
|
||||||
|
|
||||||
data := transaction.Data()
|
data := transaction.Data()
|
||||||
if len(data) != tokenTransferDataLength {
|
if len(data) != tokenTransferDataLength {
|
||||||
|
@ -153,7 +154,7 @@ func (t *TransactionValidator) validateToAddress(specifiedTo, actualTo string) b
|
||||||
return t.addresses[actualTo]
|
return t.addresses[actualTo]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *TransactionValidator) validateEthereumTransfer(parameters *CommandParameters, transaction coretypes.Message) (*VerifyTransactionResponse, error) {
|
func (t *TransactionValidator) validateEthereumTransfer(parameters *common.CommandParameters, transaction coretypes.Message) (*VerifyTransactionResponse, error) {
|
||||||
toAddress := strings.ToLower(transaction.To().Hex())
|
toAddress := strings.ToLower(transaction.To().Hex())
|
||||||
|
|
||||||
if !t.validateToAddress(parameters.Address, toAddress) {
|
if !t.validateToAddress(parameters.Address, toAddress) {
|
||||||
|
@ -197,7 +198,7 @@ type VerifyTransactionResponse struct {
|
||||||
// The address the transaction was actually sent
|
// The address the transaction was actually sent
|
||||||
Address string
|
Address string
|
||||||
|
|
||||||
Message *Message
|
Message *common.Message
|
||||||
Transaction *TransactionToValidate
|
Transaction *TransactionToValidate
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -205,7 +206,7 @@ type VerifyTransactionResponse struct {
|
||||||
// If a negative response is returned, i.e `Valid` is false, it should
|
// If a negative response is returned, i.e `Valid` is false, it should
|
||||||
// not be retried.
|
// not be retried.
|
||||||
// If an error is returned, validation can be retried.
|
// If an error is returned, validation can be retried.
|
||||||
func (t *TransactionValidator) validateTransaction(ctx context.Context, message coretypes.Message, parameters *CommandParameters, from *ecdsa.PublicKey) (*VerifyTransactionResponse, error) {
|
func (t *TransactionValidator) validateTransaction(ctx context.Context, message coretypes.Message, parameters *common.CommandParameters, from *ecdsa.PublicKey) (*VerifyTransactionResponse, error) {
|
||||||
fromAddress := types.BytesToAddress(message.From().Bytes())
|
fromAddress := types.BytesToAddress(message.From().Bytes())
|
||||||
|
|
||||||
err := t.verifyTransactionSignature(ctx, from, fromAddress, parameters.TransactionHash, parameters.Signature)
|
err := t.verifyTransactionSignature(ctx, from, fromAddress, parameters.TransactionHash, parameters.Signature)
|
||||||
|
@ -268,7 +269,7 @@ func (t *TransactionValidator) ValidateTransactions(ctx context.Context) ([]*Ver
|
||||||
}
|
}
|
||||||
validationResult.Message = message
|
validationResult.Message = message
|
||||||
} else {
|
} else {
|
||||||
commandParameters := &CommandParameters{}
|
commandParameters := &common.CommandParameters{}
|
||||||
commandParameters.TransactionHash = transaction.TransactionHash
|
commandParameters.TransactionHash = transaction.TransactionHash
|
||||||
commandParameters.Signature = transaction.Signature
|
commandParameters.Signature = transaction.Signature
|
||||||
|
|
||||||
|
@ -304,7 +305,7 @@ func (t *TransactionValidator) ValidateTransactions(ctx context.Context) ([]*Ver
|
||||||
return response, nil
|
return response, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *TransactionValidator) ValidateTransaction(ctx context.Context, parameters *CommandParameters, from *ecdsa.PublicKey) (*VerifyTransactionResponse, error) {
|
func (t *TransactionValidator) ValidateTransaction(ctx context.Context, parameters *common.CommandParameters, from *ecdsa.PublicKey) (*VerifyTransactionResponse, error) {
|
||||||
t.logger.Debug("validating transaction", zap.Any("transaction", parameters), zap.Any("from", from))
|
t.logger.Debug("validating transaction", zap.Any("transaction", parameters), zap.Any("from", from))
|
||||||
hash := parameters.TransactionHash
|
hash := parameters.TransactionHash
|
||||||
c, cancel := context.WithTimeout(ctx, 10*time.Second)
|
c, cancel := context.WithTimeout(ctx, 10*time.Second)
|
||||||
|
|
|
@ -14,6 +14,7 @@ import (
|
||||||
coretypes "github.com/status-im/status-go/eth-node/core/types"
|
coretypes "github.com/status-im/status-go/eth-node/core/types"
|
||||||
"github.com/status-im/status-go/eth-node/crypto"
|
"github.com/status-im/status-go/eth-node/crypto"
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"github.com/status-im/status-go/eth-node/types"
|
||||||
|
"github.com/status-im/status-go/protocol/common"
|
||||||
"github.com/status-im/status-go/protocol/tt"
|
"github.com/status-im/status-go/protocol/tt"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -105,7 +106,7 @@ func (s *TransactionValidatorSuite) TestValidateTransactions() {
|
||||||
Transaction coretypes.Message
|
Transaction coretypes.Message
|
||||||
OverrideSignatureChatKey *ecdsa.PublicKey
|
OverrideSignatureChatKey *ecdsa.PublicKey
|
||||||
OverrideTransactionHash string
|
OverrideTransactionHash string
|
||||||
Parameters *CommandParameters
|
Parameters *common.CommandParameters
|
||||||
WalletKey *ecdsa.PrivateKey
|
WalletKey *ecdsa.PrivateKey
|
||||||
From *ecdsa.PublicKey
|
From *ecdsa.PublicKey
|
||||||
}{
|
}{
|
||||||
|
@ -123,7 +124,7 @@ func (s *TransactionValidatorSuite) TestValidateTransactions() {
|
||||||
nil,
|
nil,
|
||||||
false,
|
false,
|
||||||
),
|
),
|
||||||
Parameters: &CommandParameters{
|
Parameters: &common.CommandParameters{
|
||||||
Value: "23",
|
Value: "23",
|
||||||
},
|
},
|
||||||
WalletKey: senderWalletKey,
|
WalletKey: senderWalletKey,
|
||||||
|
@ -143,7 +144,7 @@ func (s *TransactionValidatorSuite) TestValidateTransactions() {
|
||||||
nil,
|
nil,
|
||||||
false,
|
false,
|
||||||
),
|
),
|
||||||
Parameters: &CommandParameters{
|
Parameters: &common.CommandParameters{
|
||||||
Value: "23",
|
Value: "23",
|
||||||
Address: strings.ToLower(myAddress1.Hex()),
|
Address: strings.ToLower(myAddress1.Hex()),
|
||||||
},
|
},
|
||||||
|
@ -162,7 +163,7 @@ func (s *TransactionValidatorSuite) TestValidateTransactions() {
|
||||||
nil,
|
nil,
|
||||||
false,
|
false,
|
||||||
),
|
),
|
||||||
Parameters: &CommandParameters{
|
Parameters: &common.CommandParameters{
|
||||||
Value: "23",
|
Value: "23",
|
||||||
Address: strings.ToLower(myAddress1.Hex()),
|
Address: strings.ToLower(myAddress1.Hex()),
|
||||||
},
|
},
|
||||||
|
@ -182,7 +183,7 @@ func (s *TransactionValidatorSuite) TestValidateTransactions() {
|
||||||
nil,
|
nil,
|
||||||
false,
|
false,
|
||||||
),
|
),
|
||||||
Parameters: &CommandParameters{
|
Parameters: &common.CommandParameters{
|
||||||
Value: "23",
|
Value: "23",
|
||||||
Address: strings.ToLower(myAddress1.Hex()),
|
Address: strings.ToLower(myAddress1.Hex()),
|
||||||
},
|
},
|
||||||
|
@ -202,7 +203,7 @@ func (s *TransactionValidatorSuite) TestValidateTransactions() {
|
||||||
false,
|
false,
|
||||||
),
|
),
|
||||||
OverrideTransactionHash: "0xdd9202df5e2f3611b5b6b716aef2a3543cc0bdd7506f50926e0869b83c8383b9",
|
OverrideTransactionHash: "0xdd9202df5e2f3611b5b6b716aef2a3543cc0bdd7506f50926e0869b83c8383b9",
|
||||||
Parameters: &CommandParameters{
|
Parameters: &common.CommandParameters{
|
||||||
Value: "23",
|
Value: "23",
|
||||||
},
|
},
|
||||||
WalletKey: senderWalletKey,
|
WalletKey: senderWalletKey,
|
||||||
|
@ -221,7 +222,7 @@ func (s *TransactionValidatorSuite) TestValidateTransactions() {
|
||||||
nil,
|
nil,
|
||||||
false,
|
false,
|
||||||
),
|
),
|
||||||
Parameters: &CommandParameters{
|
Parameters: &common.CommandParameters{
|
||||||
Value: "23",
|
Value: "23",
|
||||||
Address: strings.ToLower(myAddress2.Hex()),
|
Address: strings.ToLower(myAddress2.Hex()),
|
||||||
},
|
},
|
||||||
|
@ -240,7 +241,7 @@ func (s *TransactionValidatorSuite) TestValidateTransactions() {
|
||||||
nil,
|
nil,
|
||||||
false,
|
false,
|
||||||
),
|
),
|
||||||
Parameters: &CommandParameters{
|
Parameters: &common.CommandParameters{
|
||||||
Value: "23",
|
Value: "23",
|
||||||
},
|
},
|
||||||
WalletKey: senderWalletKey,
|
WalletKey: senderWalletKey,
|
||||||
|
@ -259,7 +260,7 @@ func (s *TransactionValidatorSuite) TestValidateTransactions() {
|
||||||
nil,
|
nil,
|
||||||
false,
|
false,
|
||||||
),
|
),
|
||||||
Parameters: &CommandParameters{
|
Parameters: &common.CommandParameters{
|
||||||
Value: "23",
|
Value: "23",
|
||||||
},
|
},
|
||||||
WalletKey: senderWalletKey,
|
WalletKey: senderWalletKey,
|
||||||
|
@ -279,7 +280,7 @@ func (s *TransactionValidatorSuite) TestValidateTransactions() {
|
||||||
buildData(transferFunction, myAddress1, big.NewInt(int64(23))),
|
buildData(transferFunction, myAddress1, big.NewInt(int64(23))),
|
||||||
false,
|
false,
|
||||||
),
|
),
|
||||||
Parameters: &CommandParameters{
|
Parameters: &common.CommandParameters{
|
||||||
Contract: contractString,
|
Contract: contractString,
|
||||||
Value: "23",
|
Value: "23",
|
||||||
},
|
},
|
||||||
|
@ -300,7 +301,7 @@ func (s *TransactionValidatorSuite) TestValidateTransactions() {
|
||||||
buildData(transferFunction, myAddress1, big.NewInt(int64(23))),
|
buildData(transferFunction, myAddress1, big.NewInt(int64(23))),
|
||||||
false,
|
false,
|
||||||
),
|
),
|
||||||
Parameters: &CommandParameters{
|
Parameters: &common.CommandParameters{
|
||||||
Contract: contractString,
|
Contract: contractString,
|
||||||
Address: strings.ToLower(myAddress1.Hex()),
|
Address: strings.ToLower(myAddress1.Hex()),
|
||||||
Value: "23",
|
Value: "23",
|
||||||
|
@ -322,7 +323,7 @@ func (s *TransactionValidatorSuite) TestValidateTransactions() {
|
||||||
buildData(transferFunction, myAddress1, big.NewInt(int64(13))),
|
buildData(transferFunction, myAddress1, big.NewInt(int64(13))),
|
||||||
false,
|
false,
|
||||||
),
|
),
|
||||||
Parameters: &CommandParameters{
|
Parameters: &common.CommandParameters{
|
||||||
Contract: contractString,
|
Contract: contractString,
|
||||||
Value: "23",
|
Value: "23",
|
||||||
},
|
},
|
||||||
|
@ -341,7 +342,7 @@ func (s *TransactionValidatorSuite) TestValidateTransactions() {
|
||||||
buildData(transferFunction, myAddress1, big.NewInt(int64(23))),
|
buildData(transferFunction, myAddress1, big.NewInt(int64(23))),
|
||||||
false,
|
false,
|
||||||
),
|
),
|
||||||
Parameters: &CommandParameters{
|
Parameters: &common.CommandParameters{
|
||||||
Contract: contractString,
|
Contract: contractString,
|
||||||
Address: strings.ToLower(myAddress1.Hex()),
|
Address: strings.ToLower(myAddress1.Hex()),
|
||||||
Value: "23",
|
Value: "23",
|
||||||
|
@ -362,7 +363,7 @@ func (s *TransactionValidatorSuite) TestValidateTransactions() {
|
||||||
buildData(transferFunction, myAddress1, big.NewInt(int64(23))),
|
buildData(transferFunction, myAddress1, big.NewInt(int64(23))),
|
||||||
false,
|
false,
|
||||||
),
|
),
|
||||||
Parameters: &CommandParameters{
|
Parameters: &common.CommandParameters{
|
||||||
Contract: contractString,
|
Contract: contractString,
|
||||||
Address: strings.ToLower(senderAddress.Hex()),
|
Address: strings.ToLower(senderAddress.Hex()),
|
||||||
Value: "23",
|
Value: "23",
|
||||||
|
@ -383,7 +384,7 @@ func (s *TransactionValidatorSuite) TestValidateTransactions() {
|
||||||
buildData(transferFunction, myAddress2, big.NewInt(int64(23))),
|
buildData(transferFunction, myAddress2, big.NewInt(int64(23))),
|
||||||
false,
|
false,
|
||||||
),
|
),
|
||||||
Parameters: &CommandParameters{
|
Parameters: &common.CommandParameters{
|
||||||
Contract: contractString,
|
Contract: contractString,
|
||||||
Address: strings.ToLower(myAddress1.Hex()),
|
Address: strings.ToLower(myAddress1.Hex()),
|
||||||
Value: "23",
|
Value: "23",
|
||||||
|
@ -403,7 +404,7 @@ func (s *TransactionValidatorSuite) TestValidateTransactions() {
|
||||||
buildData(notTransferFunction, myAddress1, big.NewInt(int64(23))),
|
buildData(notTransferFunction, myAddress1, big.NewInt(int64(23))),
|
||||||
false,
|
false,
|
||||||
),
|
),
|
||||||
Parameters: &CommandParameters{
|
Parameters: &common.CommandParameters{
|
||||||
Contract: contractString,
|
Contract: contractString,
|
||||||
Value: "23",
|
Value: "23",
|
||||||
},
|
},
|
||||||
|
|
|
@ -16,6 +16,7 @@ import (
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"github.com/status-im/status-go/eth-node/types"
|
||||||
"github.com/status-im/status-go/mailserver"
|
"github.com/status-im/status-go/mailserver"
|
||||||
"github.com/status-im/status-go/protocol"
|
"github.com/status-im/status-go/protocol"
|
||||||
|
"github.com/status-im/status-go/protocol/common"
|
||||||
"github.com/status-im/status-go/protocol/encryption/multidevice"
|
"github.com/status-im/status-go/protocol/encryption/multidevice"
|
||||||
"github.com/status-im/status-go/protocol/protobuf"
|
"github.com/status-im/status-go/protocol/protobuf"
|
||||||
"github.com/status-im/status-go/protocol/pushnotificationclient"
|
"github.com/status-im/status-go/protocol/pushnotificationclient"
|
||||||
|
@ -315,8 +316,8 @@ func (api *PublicAPI) SetInstallationMetadata(installationID string, data *multi
|
||||||
}
|
}
|
||||||
|
|
||||||
type ApplicationMessagesResponse struct {
|
type ApplicationMessagesResponse struct {
|
||||||
Messages []*protocol.Message `json:"messages"`
|
Messages []*common.Message `json:"messages"`
|
||||||
Cursor string `json:"cursor"`
|
Cursor string `json:"cursor"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (api *PublicAPI) ChatMessages(chatID, cursor string, limit int) (*ApplicationMessagesResponse, error) {
|
func (api *PublicAPI) ChatMessages(chatID, cursor string, limit int) (*ApplicationMessagesResponse, error) {
|
||||||
|
@ -355,7 +356,7 @@ func (api *PublicAPI) UpdateMessageOutgoingStatus(id, newOutgoingStatus string)
|
||||||
return api.service.messenger.UpdateMessageOutgoingStatus(id, newOutgoingStatus)
|
return api.service.messenger.UpdateMessageOutgoingStatus(id, newOutgoingStatus)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (api *PublicAPI) SendChatMessage(ctx context.Context, message *protocol.Message) (*protocol.MessengerResponse, error) {
|
func (api *PublicAPI) SendChatMessage(ctx context.Context, message *common.Message) (*protocol.MessengerResponse, error) {
|
||||||
return api.service.messenger.SendChatMessage(ctx, message)
|
return api.service.messenger.SendChatMessage(ctx, message)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@ package shhext
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/status-im/status-go/protocol/common"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/log"
|
"github.com/ethereum/go-ethereum/log"
|
||||||
|
|
||||||
|
@ -465,8 +466,8 @@ func (api *NimbusPublicAPI) VerifyENSNames(details []enstypes.ENSDetails) (map[s
|
||||||
}
|
}
|
||||||
|
|
||||||
type ApplicationMessagesResponse struct {
|
type ApplicationMessagesResponse struct {
|
||||||
Messages []*protocol.Message `json:"messages"`
|
Messages []*common.Message `json:"messages"`
|
||||||
Cursor string `json:"cursor"`
|
Cursor string `json:"cursor"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (api *NimbusPublicAPI) ChatMessages(chatID, cursor string, limit int) (*ApplicationMessagesResponse, error) {
|
func (api *NimbusPublicAPI) ChatMessages(chatID, cursor string, limit int) (*ApplicationMessagesResponse, error) {
|
||||||
|
@ -501,7 +502,7 @@ func (api *PublicAPI) StartMessenger() error {
|
||||||
return api.service.StartMessenger()
|
return api.service.StartMessenger()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (api *NimbusPublicAPI) SendChatMessage(ctx context.Context, message *protocol.Message) (*protocol.MessengerResponse, error) {
|
func (api *NimbusPublicAPI) SendChatMessage(ctx context.Context, message *common.Message) (*protocol.MessengerResponse, error) {
|
||||||
return api.service.messenger.SendChatMessage(ctx, message)
|
return api.service.messenger.SendChatMessage(ctx, message)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue