Skip to content
Snippets Groups Projects
Commit 2fd6cdd4 authored by Richard T. Carback III's avatar Richard T. Carback III
Browse files

Update to use event model changes that add the senderKey in addition to the...

Update to use event model changes that add the senderKey in addition to the partnerPubKey on the callbacks
parent 3b163301
Branches
Tags
1 merge request!67fix for latest client release
......@@ -10,7 +10,7 @@ require (
github.com/pkg/errors v0.9.1
github.com/spf13/cobra v1.5.0
github.com/spf13/jwalterweatherman v1.1.0
gitlab.com/elixxir/client/v4 v4.3.12-0.20230228180957-c62cc589d560
gitlab.com/elixxir/client/v4 v4.3.12-0.20230228194909-c9c2601830c2
gitlab.com/elixxir/crypto v0.0.7-0.20230214180106-72841fd1e426
gitlab.com/elixxir/primitives v0.0.3-0.20230214180039-9a25e2d3969c
gitlab.com/xx_network/crypto v0.0.5-0.20230214003943-8a09396e95dd
......@@ -27,10 +27,12 @@ require (
github.com/cloudflare/circl v1.2.0 // indirect
github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect
github.com/elliotchance/orderedmap v1.4.0 // indirect
github.com/fsnotify/fsnotify v1.5.4 // indirect
github.com/gobwas/ws v1.1.0 // indirect
github.com/golang-collections/collections v0.0.0-20130729185459-604e922904d3 // indirect
github.com/golang/protobuf v1.5.2 // indirect
github.com/gorilla/websocket v1.5.0 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/improbable-eng/grpc-web v0.15.0 // indirect
github.com/inconshreveable/mousetrap v1.0.0 // indirect
github.com/jinzhu/inflection v1.0.0 // indirect
......@@ -38,18 +40,27 @@ require (
github.com/json-iterator/go v1.1.12 // indirect
github.com/klauspost/compress v1.15.9 // indirect
github.com/klauspost/cpuid/v2 v2.1.0 // indirect
github.com/magiconair/properties v1.8.6 // indirect
github.com/mattn/go-isatty v0.0.14 // indirect
github.com/mattn/go-sqlite3 v1.14.15 // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 // indirect
github.com/oasisprotocol/curve25519-voi v0.0.0-20221003100820-41fad3beba17 // indirect
github.com/oasisprotocol/deoxysii v0.0.0-20220228165953-2091330c22b7 // indirect
github.com/pelletier/go-toml v1.9.5 // indirect
github.com/pelletier/go-toml/v2 v2.0.2 // indirect
github.com/pkg/profile v1.6.0 // indirect
github.com/rivo/uniseg v0.4.3 // indirect
github.com/rs/cors v1.8.2 // indirect
github.com/sethvargo/go-diceware v0.3.0 // indirect
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e // indirect
github.com/soheilhy/cmux v0.1.5 // indirect
github.com/spf13/afero v1.9.2 // indirect
github.com/spf13/cast v1.5.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/spf13/viper v1.12.0 // indirect
github.com/subosito/gotenv v1.4.0 // indirect
github.com/ttacon/builder v0.0.0-20170518171403-c099f663e1c2 // indirect
github.com/ttacon/libphonenumber v1.2.1 // indirect
github.com/tyler-smith/go-bip39 v1.1.0 // indirect
......@@ -70,6 +81,9 @@ require (
google.golang.org/genproto v0.0.0-20220822174746-9e6da59bd2fc // indirect
google.golang.org/grpc v1.49.0 // indirect
google.golang.org/protobuf v1.28.1 // indirect
gopkg.in/ini.v1 v1.66.6 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
gorm.io/driver/sqlite v1.4.4 // indirect
gorm.io/gorm v1.24.3 // indirect
nhooyr.io/websocket v1.8.7 // indirect
......
This diff is collapsed.
......@@ -12,6 +12,8 @@ package main
import (
"crypto/ed25519"
"encoding/json"
"time"
"github.com/pkg/errors"
jww "github.com/spf13/jwalterweatherman"
"gitlab.com/elixxir/client/v4/dm"
......@@ -20,7 +22,6 @@ import (
wDm "gitlab.com/elixxir/xxdk-wasm/indexedDb/worker/dm"
"gitlab.com/elixxir/xxdk-wasm/worker"
"gitlab.com/xx_network/crypto/csprng"
"time"
)
var zeroUUID = []byte{0, 0, 0, 0, 0, 0, 0, 0}
......@@ -186,7 +187,7 @@ func (m *manager) receiveCB(data []byte) ([]byte, error) {
}
uuid := m.model.Receive(
msg.MessageID, msg.Nickname, msg.Text, msg.PubKey, msg.DmToken,
msg.MessageID, msg.Nickname, msg.Text, msg.PartnerKey, msg.SenderKey, msg.DmToken,
msg.Codeset, msg.Timestamp, msg.Round, msg.MType, msg.Status)
uuidData, err := json.Marshal(uuid)
......@@ -207,7 +208,7 @@ func (m *manager) receiveTextCB(data []byte) ([]byte, error) {
}
uuid := m.model.ReceiveText(
msg.MessageID, msg.Nickname, string(msg.Text), msg.PubKey, msg.DmToken,
msg.MessageID, msg.Nickname, string(msg.Text), msg.PartnerKey, msg.SenderKey, msg.DmToken,
msg.Codeset, msg.Timestamp, msg.Round, msg.Status)
uuidData, err := json.Marshal(uuid)
......@@ -229,7 +230,7 @@ func (m *manager) receiveReplyCB(data []byte) ([]byte, error) {
}
uuid := m.model.ReceiveReply(msg.MessageID, msg.ReactionTo, msg.Nickname,
string(msg.Text), msg.PubKey, msg.DmToken, msg.Codeset, msg.Timestamp,
string(msg.Text), msg.PartnerKey, msg.SenderKey, msg.DmToken, msg.Codeset, msg.Timestamp,
msg.Round, msg.Status)
uuidData, err := json.Marshal(uuid)
......@@ -251,7 +252,7 @@ func (m *manager) receiveReactionCB(data []byte) ([]byte, error) {
}
uuid := m.model.ReceiveReaction(msg.MessageID, msg.ReactionTo, msg.Nickname,
string(msg.Text), msg.PubKey, msg.DmToken, msg.Codeset, msg.Timestamp,
string(msg.Text), msg.PartnerKey, msg.SenderKey, msg.DmToken, msg.Codeset, msg.Timestamp,
msg.Round, msg.Status)
uuidData, err := json.Marshal(uuid)
......
......@@ -97,16 +97,16 @@ func buildMessage(messageID, parentID, text []byte, pubKey ed25519.PublicKey,
}
func (w *wasmModel) Receive(messageID message.ID, nickname string, text []byte,
pubKey ed25519.PublicKey, dmToken uint32, codeset uint8, timestamp time.Time,
partnerKey, senderKey ed25519.PublicKey, dmToken uint32, codeset uint8, timestamp time.Time,
round rounds.Round, mType dm.MessageType, status dm.Status) uint64 {
parentErr := errors.New("failed to Receive")
jww.TRACE.Printf("[DM indexedDB] Receive(%s)", messageID)
// If there is no extant Conversation, create one.
_, err := impl.Get(w.db, conversationStoreName, utils.CopyBytesToJS(pubKey))
_, err := impl.Get(w.db, conversationStoreName, utils.CopyBytesToJS(partnerKey))
if err != nil {
if strings.Contains(err.Error(), impl.ErrDoesNotExist) {
err = w.joinConversation(nickname, pubKey, dmToken,
err = w.joinConversation(nickname, partnerKey, dmToken,
codeset)
if err != nil {
jww.ERROR.Printf("[DM indexedDB] %+v", err)
......@@ -132,7 +132,7 @@ func (w *wasmModel) Receive(messageID message.ID, nickname string, text []byte,
}
}
msgToInsert := buildMessage(messageID.Bytes(), nil, text, pubKey, timestamp,
msgToInsert := buildMessage(messageID.Bytes(), nil, text, senderKey, timestamp,
round.ID, mType, codeset, status)
uuid, err := w.receiveHelper(msgToInsert, false)
if err != nil {
......@@ -141,22 +141,22 @@ func (w *wasmModel) Receive(messageID message.ID, nickname string, text []byte,
}
jww.TRACE.Printf(
"[DM indexedDB] Calling ReceiveMessageCB(%v, %v, f)", uuid, pubKey)
go w.receivedMessageCB(uuid, pubKey, false)
"[DM indexedDB] Calling ReceiveMessageCB(%v, %v, f)", uuid, partnerKey)
go w.receivedMessageCB(uuid, partnerKey, false)
return uuid
}
func (w *wasmModel) ReceiveText(messageID message.ID, nickname, text string,
pubKey ed25519.PublicKey, dmToken uint32, codeset uint8,
partnerKey, senderKey ed25519.PublicKey, dmToken uint32, codeset uint8,
timestamp time.Time, round rounds.Round, status dm.Status) uint64 {
parentErr := errors.New("failed to ReceiveText")
jww.TRACE.Printf("[DM indexedDB] ReceiveText(%s)", messageID)
// If there is no extant Conversation, create one.
_, err := impl.Get(w.db, conversationStoreName, utils.CopyBytesToJS(pubKey))
_, err := impl.Get(w.db, conversationStoreName, utils.CopyBytesToJS(partnerKey))
if err != nil {
if strings.Contains(err.Error(), impl.ErrDoesNotExist) {
err = w.joinConversation(nickname, pubKey, dmToken,
err = w.joinConversation(nickname, partnerKey, dmToken,
codeset)
if err != nil {
jww.ERROR.Printf("[DM indexedDB] %+v", err)
......@@ -185,7 +185,7 @@ func (w *wasmModel) ReceiveText(messageID message.ID, nickname, text string,
}
msgToInsert := buildMessage(messageID.Bytes(), nil, textBytes,
pubKey, timestamp, round.ID, dm.TextType, codeset, status)
senderKey, timestamp, round.ID, dm.TextType, codeset, status)
uuid, err := w.receiveHelper(msgToInsert, false)
if err != nil {
......@@ -194,22 +194,22 @@ func (w *wasmModel) ReceiveText(messageID message.ID, nickname, text string,
}
jww.TRACE.Printf(
"[DM indexedDB] Calling ReceiveMessageCB(%v, %v, f)", uuid, pubKey)
go w.receivedMessageCB(uuid, pubKey, false)
"[DM indexedDB] Calling ReceiveMessageCB(%v, %v, f)", uuid, partnerKey)
go w.receivedMessageCB(uuid, partnerKey, false)
return uuid
}
func (w *wasmModel) ReceiveReply(messageID, reactionTo message.ID, nickname,
text string, pubKey ed25519.PublicKey, dmToken uint32, codeset uint8,
text string, partnerKey, senderKey ed25519.PublicKey, dmToken uint32, codeset uint8,
timestamp time.Time, round rounds.Round, status dm.Status) uint64 {
parentErr := errors.New("failed to ReceiveReply")
jww.TRACE.Printf("[DM indexedDB] ReceiveReply(%s)", messageID)
// If there is no extant Conversation, create one.
_, err := impl.Get(w.db, conversationStoreName, utils.CopyBytesToJS(pubKey))
_, err := impl.Get(w.db, conversationStoreName, utils.CopyBytesToJS(partnerKey))
if err != nil {
if strings.Contains(err.Error(), impl.ErrDoesNotExist) {
err = w.joinConversation(nickname, pubKey, dmToken,
err = w.joinConversation(nickname, partnerKey, dmToken,
codeset)
if err != nil {
jww.ERROR.Printf("[DM indexedDB] %+v", err)
......@@ -237,7 +237,7 @@ func (w *wasmModel) ReceiveReply(messageID, reactionTo message.ID, nickname,
}
msgToInsert := buildMessage(messageID.Bytes(), reactionTo.Marshal(),
textBytes, pubKey, timestamp, round.ID, dm.TextType, codeset,
textBytes, senderKey, timestamp, round.ID, dm.TextType, codeset,
status)
uuid, err := w.receiveHelper(msgToInsert, false)
......@@ -247,22 +247,22 @@ func (w *wasmModel) ReceiveReply(messageID, reactionTo message.ID, nickname,
}
jww.TRACE.Printf(
"[DM indexedDB] Calling ReceiveMessageCB(%v, %v, f)", uuid, pubKey)
go w.receivedMessageCB(uuid, pubKey, false)
"[DM indexedDB] Calling ReceiveMessageCB(%v, %v, f)", uuid, partnerKey)
go w.receivedMessageCB(uuid, partnerKey, false)
return uuid
}
func (w *wasmModel) ReceiveReaction(messageID, _ message.ID, nickname,
reaction string, pubKey ed25519.PublicKey, dmToken uint32, codeset uint8,
reaction string, partnerKey, senderKey ed25519.PublicKey, dmToken uint32, codeset uint8,
timestamp time.Time, round rounds.Round, status dm.Status) uint64 {
parentErr := errors.New("failed to ReceiveText")
jww.TRACE.Printf("[DM indexedDB] ReceiveReaction(%s)", messageID)
// If there is no extant Conversation, create one.
_, err := impl.Get(w.db, conversationStoreName, utils.CopyBytesToJS(pubKey))
_, err := impl.Get(w.db, conversationStoreName, utils.CopyBytesToJS(partnerKey))
if err != nil {
if strings.Contains(err.Error(), impl.ErrDoesNotExist) {
err = w.joinConversation(nickname, pubKey, dmToken,
err = w.joinConversation(nickname, partnerKey, dmToken,
codeset)
if err != nil {
jww.ERROR.Printf("[DM indexedDB] %+v", err)
......@@ -288,8 +288,9 @@ func (w *wasmModel) ReceiveReaction(messageID, _ message.ID, nickname,
}
}
msgToInsert := buildMessage(messageID.Bytes(), nil, textBytes, pubKey,
timestamp, round.ID, dm.ReactionType, codeset, status)
msgToInsert := buildMessage(messageID.Bytes(), nil, textBytes,
senderKey, timestamp, round.ID, dm.ReactionType,
codeset, status)
uuid, err := w.receiveHelper(msgToInsert, false)
if err != nil {
......@@ -298,8 +299,8 @@ func (w *wasmModel) ReceiveReaction(messageID, _ message.ID, nickname,
}
jww.TRACE.Printf("[DM indexedDB] Calling ReceiveMessageCB(%v, %v, f)",
uuid, pubKey)
go w.receivedMessageCB(uuid, pubKey, false)
uuid, partnerKey)
go w.receivedMessageCB(uuid, partnerKey, false)
return uuid
}
......
......@@ -34,7 +34,8 @@ type TransferMessage struct {
ReactionTo message.ID `json:"reactionTo"`
Nickname string `json:"nickname"`
Text []byte `json:"text"`
PubKey ed25519.PublicKey `json:"pubKey"`
PartnerKey ed25519.PublicKey `json:"partnerKey"`
SenderKey ed25519.PublicKey `json:"senderKey"`
DmToken uint32 `json:"dmToken"`
Codeset uint8 `json:"codeset"`
Timestamp time.Time `json:"timestamp"`
......@@ -44,13 +45,14 @@ type TransferMessage struct {
}
func (w *wasmModel) Receive(messageID message.ID, nickname string, text []byte,
pubKey ed25519.PublicKey, dmToken uint32, codeset uint8, timestamp time.Time,
partnerKey, senderKey ed25519.PublicKey, dmToken uint32, codeset uint8, timestamp time.Time,
round rounds.Round, mType dm.MessageType, status dm.Status) uint64 {
msg := TransferMessage{
MessageID: messageID,
Nickname: nickname,
Text: text,
PubKey: pubKey,
PartnerKey: partnerKey,
SenderKey: senderKey,
DmToken: dmToken,
Codeset: codeset,
Timestamp: timestamp,
......@@ -90,13 +92,14 @@ func (w *wasmModel) Receive(messageID message.ID, nickname string, text []byte,
}
func (w *wasmModel) ReceiveText(messageID message.ID, nickname, text string,
pubKey ed25519.PublicKey, dmToken uint32, codeset uint8,
partnerKey, senderKey ed25519.PublicKey, dmToken uint32, codeset uint8,
timestamp time.Time, round rounds.Round, status dm.Status) uint64 {
msg := TransferMessage{
MessageID: messageID,
Nickname: nickname,
Text: []byte(text),
PubKey: pubKey,
PartnerKey: partnerKey,
SenderKey: senderKey,
DmToken: dmToken,
Codeset: codeset,
Timestamp: timestamp,
......@@ -135,14 +138,15 @@ func (w *wasmModel) ReceiveText(messageID message.ID, nickname, text string,
}
func (w *wasmModel) ReceiveReply(messageID, reactionTo message.ID, nickname,
text string, pubKey ed25519.PublicKey, dmToken uint32, codeset uint8,
text string, partnerKey, senderKey ed25519.PublicKey, dmToken uint32, codeset uint8,
timestamp time.Time, round rounds.Round, status dm.Status) uint64 {
msg := TransferMessage{
MessageID: messageID,
ReactionTo: reactionTo,
Nickname: nickname,
Text: []byte(text),
PubKey: pubKey,
PartnerKey: partnerKey,
SenderKey: senderKey,
DmToken: dmToken,
Codeset: codeset,
Timestamp: timestamp,
......@@ -181,14 +185,15 @@ func (w *wasmModel) ReceiveReply(messageID, reactionTo message.ID, nickname,
}
func (w *wasmModel) ReceiveReaction(messageID, reactionTo message.ID, nickname,
reaction string, pubKey ed25519.PublicKey, dmToken uint32, codeset uint8,
reaction string, partnerKey, senderKey ed25519.PublicKey, dmToken uint32, codeset uint8,
timestamp time.Time, round rounds.Round, status dm.Status) uint64 {
msg := TransferMessage{
MessageID: messageID,
ReactionTo: reactionTo,
Nickname: nickname,
Text: []byte(reaction),
PubKey: pubKey,
PartnerKey: partnerKey,
SenderKey: senderKey,
DmToken: dmToken,
Codeset: codeset,
Timestamp: timestamp,
......
......@@ -571,9 +571,9 @@ type dmReceiver struct {
// - A non-negative unique UUID for the message that it can be referenced by
// later with [dmReceiver.UpdateSentStatus].
func (em *dmReceiver) Receive(messageID []byte, nickname string,
text []byte, pubKey []byte, dmToken int32, codeset int, timestamp,
text []byte, partnerKey, senderKey []byte, dmToken int32, codeset int, timestamp,
roundId, mType, status int64) int64 {
uuid := em.receive(messageID, nickname, text, pubKey, dmToken,
uuid := em.receive(messageID, nickname, text, partnerKey, senderKey, dmToken,
codeset, timestamp, roundId, mType, status)
return int64(uuid.Int())
......@@ -594,7 +594,7 @@ func (em *dmReceiver) Receive(messageID []byte, nickname string,
// reply (Uint8Array).
// - senderUsername - The username of the sender of the message (string).
// - text - The content of the message (string).
// - pubKey - The sender's Ed25519 public key (Uint8Array).
// - partnerKey, senderKey - The sender's Ed25519 public key (Uint8Array).
// - dmToken - The dmToken (int32).
// - codeset - The codeset version (int).
// - timestamp - Time the message was received; represented as nanoseconds
......@@ -614,10 +614,10 @@ func (em *dmReceiver) Receive(messageID []byte, nickname string,
// - A non-negative unique UUID for the message that it can be referenced by
// later with [dmReceiver.UpdateSentStatus].
func (em *dmReceiver) ReceiveText(messageID []byte, nickname, text string,
pubKey []byte, dmToken int32, codeset int, timestamp,
partnerKey, senderKey []byte, dmToken int32, codeset int, timestamp,
roundId, status int64) int64 {
uuid := em.receiveText(messageID, nickname, text, pubKey, dmToken,
uuid := em.receiveText(messageID, nickname, text, partnerKey, senderKey, dmToken,
codeset, timestamp, roundId, status)
return int64(uuid.Int())
......@@ -638,7 +638,7 @@ func (em *dmReceiver) ReceiveText(messageID []byte, nickname, text string,
// reply (Uint8Array).
// - senderUsername - The username of the sender of the message (string).
// - text - The content of the message (string).
// - pubKey - The sender's Ed25519 public key (Uint8Array).
// - partnerKey, senderKey - The sender's Ed25519 public key (Uint8Array).
// - dmToken - The dmToken (int32).
// - codeset - The codeset version (int).
// - timestamp - Time the message was received; represented as nanoseconds
......@@ -658,9 +658,9 @@ func (em *dmReceiver) ReceiveText(messageID []byte, nickname, text string,
// - A non-negative unique UUID for the message that it can be referenced by
// later with [dmReceiver.UpdateSentStatus].
func (em *dmReceiver) ReceiveReply(messageID, replyTo []byte, nickname,
text string, pubKey []byte, dmToken int32, codeset int,
text string, partnerKey, senderKey []byte, dmToken int32, codeset int,
timestamp, roundId, status int64) int64 {
uuid := em.receiveReply(messageID, replyTo, nickname, text, pubKey,
uuid := em.receiveReply(messageID, replyTo, nickname, text, partnerKey, senderKey,
dmToken, codeset, timestamp, roundId, status)
return int64(uuid.Int())
......@@ -681,7 +681,7 @@ func (em *dmReceiver) ReceiveReply(messageID, replyTo []byte, nickname,
// reply (Uint8Array).
// - senderUsername - The username of the sender of the message (string).
// - reaction - The contents of the reaction message (string).
// - pubKey - The sender's Ed25519 public key (Uint8Array).
// - partnerKey, senderKey - The sender's Ed25519 public key (Uint8Array).
// - dmToken - The dmToken (int32).
// - codeset - The codeset version (int).
// - timestamp - Time the message was received; represented as nanoseconds
......@@ -701,11 +701,11 @@ func (em *dmReceiver) ReceiveReply(messageID, replyTo []byte, nickname,
// - A non-negative unique UUID for the message that it can be referenced by
// later with [dmReceiver.UpdateSentStatus].
func (em *dmReceiver) ReceiveReaction(messageID, reactionTo []byte,
nickname, reaction string, pubKey []byte, dmToken int32,
nickname, reaction string, partnerKey, senderKey []byte, dmToken int32,
codeset int, timestamp, roundId,
status int64) int64 {
uuid := em.receiveReaction(messageID, reactionTo, nickname, reaction,
pubKey, dmToken, codeset, timestamp, roundId, status)
partnerKey, senderKey, dmToken, codeset, timestamp, roundId, status)
return int64(uuid.Int())
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment