From b063bb26eef2611eb609a3f696dc1f4f7e41be61 Mon Sep 17 00:00:00 2001 From: Marceau Lecomte Date: Tue, 18 Jun 2024 15:17:40 +0200 Subject: [PATCH] Proper JSON response avoid concatenation --- client/web/meemaw-js/index.js | 8 +++++--- client/web/wasm/main.go | 15 +++++++++++++-- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/client/web/meemaw-js/index.js b/client/web/meemaw-js/index.js index 397a380..213a58e 100644 --- a/client/web/meemaw-js/index.js +++ b/client/web/meemaw-js/index.js @@ -118,11 +118,13 @@ export default class Meemaw { // Else, DKG try { - const combinedResult = await window.Dkg(this.host, authData); + const resp = await window.Dkg(this.host, authData); + const parsedResp = JSON.parse(resp); - const [metadata, newDkgResult] = combinedResult.split("&&"); + const metadata = parsedResp.metadata; + const parsedDkgResult = parsedResp.dkgResult; - const parsedDkgResult = JSON.parse(newDkgResult); + const newDkgResult = JSON.stringify(parsedDkgResult); const addr = parsedDkgResult.Address; this.storeDkgResults(userId, newDkgResult, addr, metadata); diff --git a/client/web/wasm/main.go b/client/web/wasm/main.go index 7e25d32..0e71c8b 100644 --- a/client/web/wasm/main.go +++ b/client/web/wasm/main.go @@ -11,6 +11,7 @@ import ( "syscall/js" "github.com/getmeemaw/meemaw/client" + "github.com/getmeemaw/meemaw/utils/tss" "github.com/getmeemaw/meemaw/utils/tx" ) @@ -48,6 +49,11 @@ func Identify(this js.Value, args []js.Value) (any, error) { return string(userId), err } +type dkgResponse struct { + DkgResult *tss.DkgResult `json:"dkgResult"` + Metadata string `json:"metadata"` +} + // input : host, authData // output : json encoded dkgResult, error func Dkg(this js.Value, args []js.Value) (any, error) { @@ -60,13 +66,18 @@ func Dkg(this js.Value, args []js.Value) (any, error) { return nil, err } - dkgResultJSON, err := json.Marshal(dkgResult) + resp := dkgResponse{ + DkgResult: dkgResult, + Metadata: metadata, + } + + respJSON, err := json.Marshal(resp) if err != nil { log.Println("error while marshaling dkgresult json:", err) return nil, err } - return metadata + "&&" + string(dkgResultJSON), err + return string(respJSON), err } // input : host, message (hex encoded bytes), dkgResultStr, authData