diff --git a/go.mod b/go.mod index 854fb82225f08274677d38cce94f9b05d50577e7..6d626319be95ef71c0c32757bc519567bb165a24 100644 --- a/go.mod +++ b/go.mod @@ -7,8 +7,8 @@ require ( github.com/hack-pad/go-indexeddb v0.2.0 github.com/pkg/errors v0.9.1 github.com/spf13/jwalterweatherman v1.1.0 - gitlab.com/elixxir/client v1.5.1-0.20220919230833-8d25dfcd399e - gitlab.com/elixxir/crypto v0.0.7-0.20220919221444-cb6c054c9fcd + gitlab.com/elixxir/client v1.5.1-0.20220920003304-3bce7b64b826 + gitlab.com/elixxir/crypto v0.0.7-0.20220920002307-5541473e9aa7 gitlab.com/xx_network/primitives v0.0.4-0.20220809193445-9fc0a5209548 ) diff --git a/go.sum b/go.sum index c4069f648383ed9a3fdd3d82457c95b9db546bc9..7b0564e96c11e68cd7d1b827f33c8fd3db088a64 100644 --- a/go.sum +++ b/go.sum @@ -636,6 +636,8 @@ gitlab.com/elixxir/client v1.5.1-0.20220919223314-930e66a05c1a h1:Q8F0uZwni37B0j gitlab.com/elixxir/client v1.5.1-0.20220919223314-930e66a05c1a/go.mod h1:TrCtCQ7FAijaNfo6In2s2HDqbNJivxQV3m36ZGyNXFk= gitlab.com/elixxir/client v1.5.1-0.20220919230833-8d25dfcd399e h1:tVDQE+Utif6bzBhiXZuc5Je+4rPgm2WiO9uVBuJsrSk= gitlab.com/elixxir/client v1.5.1-0.20220919230833-8d25dfcd399e/go.mod h1:TrCtCQ7FAijaNfo6In2s2HDqbNJivxQV3m36ZGyNXFk= +gitlab.com/elixxir/client v1.5.1-0.20220920003304-3bce7b64b826 h1:QaxYWQlCvX9KTJ5MDiNbImE7F01vitU2C2F7ITqE1ws= +gitlab.com/elixxir/client v1.5.1-0.20220920003304-3bce7b64b826/go.mod h1:pX1uLFS8v6pNVzJEcfbMUrYPTWLPl8p71ghqW2Xm0Ns= gitlab.com/elixxir/comms v0.0.4-0.20220913220502-eed192f654bd h1:2nHE7EoptSTBFjCxMeAveKT6urbguCwgg8Jx7XYEVe4= gitlab.com/elixxir/comms v0.0.4-0.20220913220502-eed192f654bd/go.mod h1:AO6XkMhaHJW8eXlgL5m3UUcJqsSP8F5Wm1GX+wyq/rw= gitlab.com/elixxir/crypto v0.0.0-20200804182833-984246dea2c4/go.mod h1:ucm9SFKJo+K0N2GwRRpaNr+tKXMIOVWzmyUD0SbOu2c= @@ -646,6 +648,8 @@ gitlab.com/elixxir/crypto v0.0.7-0.20220919183519-5bbca98a2c00 h1:BZ2v6dfdYOUQHb gitlab.com/elixxir/crypto v0.0.7-0.20220919183519-5bbca98a2c00/go.mod h1:QF8SzsrYh9Elip9EUYUDAhPjqO9DGrrrQxYHvn+VXok= gitlab.com/elixxir/crypto v0.0.7-0.20220919221444-cb6c054c9fcd h1:uWcp0aokdBnaZhNhlbXiDYusecIP5AaFbJfBtuzEg5A= gitlab.com/elixxir/crypto v0.0.7-0.20220919221444-cb6c054c9fcd/go.mod h1:QF8SzsrYh9Elip9EUYUDAhPjqO9DGrrrQxYHvn+VXok= +gitlab.com/elixxir/crypto v0.0.7-0.20220920002307-5541473e9aa7 h1:9IsBtL8zcUG86XcfNUVIKcnlL5tyKlyQt1cJ5nogr1U= +gitlab.com/elixxir/crypto v0.0.7-0.20220920002307-5541473e9aa7/go.mod h1:QF8SzsrYh9Elip9EUYUDAhPjqO9DGrrrQxYHvn+VXok= gitlab.com/elixxir/ekv v0.2.1 h1:dtwbt6KmAXG2Tik5d60iDz2fLhoFBgWwST03p7T+9Is= gitlab.com/elixxir/ekv v0.2.1/go.mod h1:USLD7xeDnuZEavygdrgzNEwZXeLQJK/w1a+htpN+JEU= gitlab.com/elixxir/primitives v0.0.0-20200731184040-494269b53b4d/go.mod h1:OQgUZq7SjnE0b+8+iIAT2eqQF+2IFHn73tOo+aV11mg= diff --git a/wasm/channels.go b/wasm/channels.go index 477b568395672859d22f017eab5a00573d9151a5..d3c497d32007023d2384a85999b387e88b8db6d3 100644 --- a/wasm/channels.go +++ b/wasm/channels.go @@ -8,6 +8,8 @@ package wasm import ( + "encoding/base64" + jww "github.com/spf13/jwalterweatherman" "gitlab.com/elixxir/client/bindings" "gitlab.com/elixxir/xxdk-wasm/indexedDb" "gitlab.com/elixxir/xxdk-wasm/utils" @@ -607,8 +609,19 @@ func (em *eventModel) LeaveChannel(channelID []byte) { em.leaveChannel(utils.CopyBytesToJS(channelID)) } +var messageMap = make(map[string]struct{}) + func (em *eventModel) ReceiveMessage(channelID, messageID []byte, senderUsername, text string, timestamp, lease, roundId, status int64) { + key := base64.StdEncoding.EncodeToString(messageID) + + if _, exists := messageMap[key]; exists { + jww.DEBUG.Printf("Message with ID %s already exists", key) + return + } else { + messageMap[key] = struct{}{} + } + em.receiveMessage(utils.CopyBytesToJS(channelID), utils.CopyBytesToJS(messageID), senderUsername, text, timestamp, lease, roundId, status)