From 7ed1741d378ea3987f471f3b1a64c3d2ba9fc0b1 Mon Sep 17 00:00:00 2001
From: benjamin <ben@elixxir.io>
Date: Wed, 5 Oct 2022 13:31:54 -0700
Subject: [PATCH] fixed the random message id creation

---
 channels/sendTracker.go | 39 +++++++++++++++++++--------------------
 1 file changed, 19 insertions(+), 20 deletions(-)

diff --git a/channels/sendTracker.go b/channels/sendTracker.go
index 1742d52ba..bd5d70160 100644
--- a/channels/sendTracker.go
+++ b/channels/sendTracker.go
@@ -205,26 +205,25 @@ func (st *sendTracker) denotePendingSend(channelID *id.ID,
 	// approximate the lag due to round submission
 	ts := netTime.Now().Add(oneSecond)
 
-	// submit the message to the UI
-	uuid, err := st.trigger(channelID, umi, ts, receptionID.EphemeralIdentity{},
-		rounds.Round{}, Unsent)
-	if err != nil {
-		return 0, err
-	}
-
 	// create a random message id so there will not be collisions in a database
 	// that requires a unique message ID
 	stream := st.rngSrc.GetStream()
-	randMid := cryptoChannel.MessageID{}
-	num, err := stream.Read(randMid[:])
-	if num != len(randMid[:]) || err != nil {
+	num, err := stream.Read(umi.messageID[:])
+	if num != len(umi.messageID[:]) || err != nil {
 		jww.FATAL.Panicf("failed to get a random message ID, read "+
 			"len: %d, err: %+v", num, err)
 	}
 	stream.Close()
 
+	// submit the message to the UI
+	uuid, err := st.trigger(channelID, umi, ts, receptionID.EphemeralIdentity{},
+		rounds.Round{}, Unsent)
+	if err != nil {
+		return 0, err
+	}
+
 	// track the message on disk
-	st.handleDenoteSend(uuid, channelID, randMid,
+	st.handleDenoteSend(uuid, channelID, umi.messageID,
 		rounds.Round{})
 	return uuid, nil
 }
@@ -237,15 +236,6 @@ func (st *sendTracker) denotePendingAdminSend(channelID *id.ID,
 	// approximate the lag due to round submission
 	ts := netTime.Now().Add(oneSecond)
 
-	// submit the message to the UI
-	uuid, err := st.adminTrigger(channelID, cm, ts, cryptoChannel.MessageID{},
-		receptionID.EphemeralIdentity{},
-		rounds.Round{}, Unsent)
-
-	if err != nil {
-		return 0, err
-	}
-
 	// create a random message id so there will not be collisions in a database
 	// that requires a unique message ID
 	stream := st.rngSrc.GetStream()
@@ -257,6 +247,15 @@ func (st *sendTracker) denotePendingAdminSend(channelID *id.ID,
 	}
 	stream.Close()
 
+	// submit the message to the UI
+	uuid, err := st.adminTrigger(channelID, cm, ts, randMid,
+		receptionID.EphemeralIdentity{},
+		rounds.Round{}, Unsent)
+
+	if err != nil {
+		return 0, err
+	}
+
 	// track the message on disk
 	st.handleDenoteSend(uuid, channelID, randMid,
 		rounds.Round{})
-- 
GitLab