From 2d061b64a917bf7b09b546238e048df18040b67b Mon Sep 17 00:00:00 2001
From: Jono Wenger <jono@elixxir.io>
Date: Sat, 24 Sep 2022 17:12:27 -0700
Subject: [PATCH] Make NewChannelsManagerWithIndexedDb use the public key as
 its codename

---
 wasm/channels.go | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/wasm/channels.go b/wasm/channels.go
index e72e300f..550ba506 100644
--- a/wasm/channels.go
+++ b/wasm/channels.go
@@ -10,6 +10,8 @@
 package wasm
 
 import (
+	"encoding/base64"
+	"gitlab.com/elixxir/crypto/channel"
 	"syscall/js"
 
 	"gitlab.com/elixxir/client/bindings"
@@ -184,7 +186,6 @@ func NewChannelsManager(_ js.Value, args []js.Value) interface{} {
 //    using [Cmix.GetID].
 //  - args[1] - Bytes of a private identity ([channel.PrivateIdentity]) that is
 //    generated by [GenerateChannelIdentity] (Uint8Array).
-//  - args[2] - Username (string).
 //
 // Returns:
 //  - Javascript representation of the [ChannelsManager] object.
@@ -192,7 +193,16 @@ func NewChannelsManager(_ js.Value, args []js.Value) interface{} {
 //    manager fails.
 func NewChannelsManagerWithIndexedDb(_ js.Value, args []js.Value) interface{} {
 	privateIdentity := utils.CopyBytesToGo(args[1])
-	em, err := indexedDb.NewWasmEventModel(args[2].String())
+
+	// Get the public key to use as a key for indexedDb
+	pi, err := channel.UnmarshalPrivateIdentity(privateIdentity)
+	if err != nil {
+		utils.Throw(utils.TypeError, err)
+		return nil
+	}
+
+	key := base64.StdEncoding.EncodeToString(pi.Identity.PubKey)
+	em, err := indexedDb.NewWasmEventModel(key)
 	if err != nil {
 		utils.Throw(utils.TypeError, err)
 		return nil
-- 
GitLab