From ee1aa0e9ac2fc5d2bba2775287149ff7b9e98342 Mon Sep 17 00:00:00 2001
From: Jono Wenger <jono@elixxir.io>
Date: Fri, 9 Sep 2022 18:22:22 -0700
Subject: [PATCH] Fix parameters conversion for Javascript callbacks

---
 wasm/broadcast.go      | 2 +-
 wasm/e2eHandler.go     | 4 ++--
 wasm/fileTransfer.go   | 8 +++++---
 wasm/group.go          | 5 +++--
 wasm/restlikeSingle.go | 2 +-
 wasm/single.go         | 4 ++--
 wasm/ud.go             | 4 ++--
 7 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/wasm/broadcast.go b/wasm/broadcast.go
index 456027b4..e3f05e41 100644
--- a/wasm/broadcast.go
+++ b/wasm/broadcast.go
@@ -67,7 +67,7 @@ type broadcastListener struct {
 }
 
 func (bl *broadcastListener) Callback(payload []byte, err error) {
-	bl.callback(utils.CopyBytesToJS(payload), err.Error())
+	bl.callback(utils.CopyBytesToJS(payload), utils.JsTrace(err))
 }
 
 // Listen registers a BroadcastListener for a given method. This allows users to
diff --git a/wasm/e2eHandler.go b/wasm/e2eHandler.go
index 8d6efc63..02f2a733 100644
--- a/wasm/e2eHandler.go
+++ b/wasm/e2eHandler.go
@@ -181,8 +181,8 @@ type processor struct {
 
 func (p *processor) Process(
 	message, receptionId []byte, ephemeralId, roundId int64) {
-	p.process(utils.CopyBytesToJS(message), utils.CopyBytesToJS(receptionId), ephemeralId,
-		roundId)
+	p.process(utils.CopyBytesToJS(message), utils.CopyBytesToJS(receptionId),
+		ephemeralId, roundId)
 }
 
 func (p *processor) String() string {
diff --git a/wasm/fileTransfer.go b/wasm/fileTransfer.go
index 1a7d7953..1e2fa842 100644
--- a/wasm/fileTransfer.go
+++ b/wasm/fileTransfer.go
@@ -56,7 +56,7 @@ type receiveFileCallback struct {
 }
 
 func (rfc *receiveFileCallback) Callback(payload []byte, err error) {
-	rfc.callback(utils.CopyBytesToJS(payload), err.Error())
+	rfc.callback(utils.CopyBytesToJS(payload), utils.JsTrace(err))
 }
 
 // fileTransferSentProgressCallback wraps Javascript callbacks to adhere to the
@@ -67,7 +67,8 @@ type fileTransferSentProgressCallback struct {
 
 func (spc *fileTransferSentProgressCallback) Callback(
 	payload []byte, t *bindings.FilePartTracker, err error) {
-	spc.callback(utils.CopyBytesToJS(payload), newFilePartTrackerJS(t), err.Error())
+	spc.callback(utils.CopyBytesToJS(payload), newFilePartTrackerJS(t),
+		utils.JsTrace(err))
 }
 
 // fileTransferReceiveProgressCallback wraps Javascript callbacks to adhere to
@@ -78,7 +79,8 @@ type fileTransferReceiveProgressCallback struct {
 
 func (rpc *fileTransferReceiveProgressCallback) Callback(
 	payload []byte, t *bindings.FilePartTracker, err error) {
-	rpc.callback(utils.CopyBytesToJS(payload), newFilePartTrackerJS(t), err.Error())
+	rpc.callback(utils.CopyBytesToJS(payload), newFilePartTrackerJS(t),
+		utils.JsTrace(err))
 }
 
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/wasm/group.go b/wasm/group.go
index d19da538..b60dcb0b 100644
--- a/wasm/group.go
+++ b/wasm/group.go
@@ -357,8 +357,9 @@ type groupChatProcessor struct {
 
 func (gcp *groupChatProcessor) Process(decryptedMessage, msg,
 	receptionId []byte, ephemeralId, roundId int64, err error) {
-	gcp.callback(utils.CopyBytesToJS(decryptedMessage), utils.CopyBytesToJS(msg),
-		utils.CopyBytesToJS(receptionId), ephemeralId, roundId, err.Error())
+	gcp.callback(utils.CopyBytesToJS(decryptedMessage),
+		utils.CopyBytesToJS(msg), utils.CopyBytesToJS(receptionId), ephemeralId,
+		roundId, utils.JsTrace(err))
 }
 
 func (gcp *groupChatProcessor) String() string {
diff --git a/wasm/restlikeSingle.go b/wasm/restlikeSingle.go
index bcc5e93a..53f5070f 100644
--- a/wasm/restlikeSingle.go
+++ b/wasm/restlikeSingle.go
@@ -22,7 +22,7 @@ type restlikeCallback struct {
 }
 
 func (rlc *restlikeCallback) Callback(payload []byte, err error) {
-	rlc.callback(utils.CopyBytesToJS(payload), err.Error())
+	rlc.callback(utils.CopyBytesToJS(payload), utils.JsTrace(err))
 }
 
 // RequestRestLike sends a restlike request to a given contact.
diff --git a/wasm/single.go b/wasm/single.go
index 7a55ffa7..a322d55d 100644
--- a/wasm/single.go
+++ b/wasm/single.go
@@ -115,7 +115,7 @@ type singleUseCallback struct {
 }
 
 func (suc *singleUseCallback) Callback(callbackReport []byte, err error) {
-	suc.callback(utils.CopyBytesToJS(callbackReport), err.Error())
+	suc.callback(utils.CopyBytesToJS(callbackReport), utils.JsTrace(err))
 }
 
 // singleUseResponse wraps Javascript callbacks to adhere to the
@@ -125,5 +125,5 @@ type singleUseResponse struct {
 }
 
 func (sur *singleUseResponse) Callback(responseReport []byte, err error) {
-	sur.callback(utils.CopyBytesToJS(responseReport), err.Error())
+	sur.callback(utils.CopyBytesToJS(responseReport), utils.JsTrace(err))
 }
diff --git a/wasm/ud.go b/wasm/ud.go
index 1c0198a7..f57b31ac 100644
--- a/wasm/ud.go
+++ b/wasm/ud.go
@@ -286,7 +286,7 @@ type udLookupCallback struct {
 }
 
 func (ulc *udLookupCallback) Callback(contactBytes []byte, err error) {
-	ulc.callback(utils.CopyBytesToJS(contactBytes), err.Error())
+	ulc.callback(utils.CopyBytesToJS(contactBytes), utils.JsTrace(err))
 }
 
 // LookupUD returns the public key of the passed ID as known by the user
@@ -332,7 +332,7 @@ type udSearchCallback struct {
 }
 
 func (usc *udSearchCallback) Callback(contactListJSON []byte, err error) {
-	usc.callback(utils.CopyBytesToJS(contactListJSON), err.Error())
+	usc.callback(utils.CopyBytesToJS(contactListJSON), utils.JsTrace(err))
 }
 
 // SearchUD searches user discovery for the passed Facts. The searchCallback
-- 
GitLab