diff --git a/channels/sendTracker.go b/channels/sendTracker.go index 1742d52ba4e8dae2d46d09b6aa91e6ab57df4654..023785fa7f4063b6dc30e509419cd79f7978fab4 100644 --- a/channels/sendTracker.go +++ b/channels/sendTracker.go @@ -205,26 +205,26 @@ 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 { + umi.messageID = cryptoChannel.MessageID{} + 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 +237,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 +248,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{})