diff --git a/channels/sendTracker.go b/channels/sendTracker.go index 1742d52ba4e8dae2d46d09b6aa91e6ab57df4654..bd5d70160fc1b9f1f4409fab8c6cb032c0634dd1 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{})