From 1183b4083e51a64cf8df2a797795729bce5de995 Mon Sep 17 00:00:00 2001 From: Jono Wenger <jono@elixxir.io> Date: Fri, 14 Oct 2022 09:32:34 -0700 Subject: [PATCH] Update channels bindings --- go.mod | 4 ++-- go.sum | 8 ++++---- wasm/channels.go | 40 ++++++++++++++++++++++++++++++---------- 3 files changed, 36 insertions(+), 16 deletions(-) diff --git a/go.mod b/go.mod index fc8b510d..b445aeeb 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.20221013003505-494df928ddd1 - gitlab.com/elixxir/crypto v0.0.7-0.20221003185354-b091598d2322 + gitlab.com/elixxir/client v1.5.1-0.20221014161854-3e3de2653aa4 + gitlab.com/elixxir/crypto v0.0.7-0.20221014161526-ce04e14b9f80 gitlab.com/elixxir/primitives v0.0.3-0.20220901220638-1acc75fabdc6 gitlab.com/xx_network/crypto v0.0.5-0.20220913213008-98764f5b3287 gitlab.com/xx_network/primitives v0.0.4-0.20221010192422-3479f09b7769 diff --git a/go.sum b/go.sum index a3f5baa4..00493640 100644 --- a/go.sum +++ b/go.sum @@ -614,15 +614,15 @@ github.com/zeebo/pcg v1.0.1 h1:lyqfGeWiv4ahac6ttHs+I5hwtH/+1mrhlCtVNQM2kHo= github.com/zeebo/pcg v1.0.1/go.mod h1:09F0S9iiKrwn9rlI5yjLkmrug154/YRW6KnnXVDM/l4= gitlab.com/elixxir/bloomfilter v0.0.0-20211222005329-7d931ceead6f h1:yXGvNBqzZwAhDYlSnxPRbgor6JWoOt1Z7s3z1O9JR40= gitlab.com/elixxir/bloomfilter v0.0.0-20211222005329-7d931ceead6f/go.mod h1:H6jztdm0k+wEV2QGK/KYA+MY9nj9Zzatux/qIvDDv3k= -gitlab.com/elixxir/client v1.5.1-0.20221013003505-494df928ddd1 h1:a9+ffQQhSP1aO74gonTfCeoSp1J1ufhSN3QYEYkCFKY= -gitlab.com/elixxir/client v1.5.1-0.20221013003505-494df928ddd1/go.mod h1:S9sX17C6Gcw9oKFpTjPjcAW4eVFNxQhOURPxgqGz78M= +gitlab.com/elixxir/client v1.5.1-0.20221014161854-3e3de2653aa4 h1:zXEWsMHQ3aQr/8LnPytIeQ8cMkpKm4kNpBXgKFj06I0= +gitlab.com/elixxir/client v1.5.1-0.20221014161854-3e3de2653aa4/go.mod h1:oSbLC/5yibV2zZk9iI6Cm8F44+I80fQfP6qw9QaGaeI= gitlab.com/elixxir/comms v0.0.4-0.20221011183106-8c4450ba3cfb h1:aw7Ao1oqho+97gO35HkzBmv2e25qluRXEiNXw/oD8MM= gitlab.com/elixxir/comms v0.0.4-0.20221011183106-8c4450ba3cfb/go.mod h1:oRteMH+R5t1j/FZ+KJJnZUcqJO2sLXnWksN5HPkZUIo= gitlab.com/elixxir/crypto v0.0.0-20200804182833-984246dea2c4/go.mod h1:ucm9SFKJo+K0N2GwRRpaNr+tKXMIOVWzmyUD0SbOu2c= gitlab.com/elixxir/crypto v0.0.3/go.mod h1:ZNgBOblhYToR4m8tj4cMvJ9UsJAUKq+p0gCp07WQmhA= gitlab.com/elixxir/crypto v0.0.7-0.20220913220142-ab0771bad0af/go.mod h1:QF8SzsrYh9Elip9EUYUDAhPjqO9DGrrrQxYHvn+VXok= -gitlab.com/elixxir/crypto v0.0.7-0.20221003185354-b091598d2322 h1:8unQE70BDNRXTWUbjOO9d4kWyh19LySlTZo0Jqx0gPE= -gitlab.com/elixxir/crypto v0.0.7-0.20221003185354-b091598d2322/go.mod h1:QF8SzsrYh9Elip9EUYUDAhPjqO9DGrrrQxYHvn+VXok= +gitlab.com/elixxir/crypto v0.0.7-0.20221014161526-ce04e14b9f80 h1:M9imzr2ZrD0GXsR+nfrzLnJ8Y9axj2Pvq8CTDE+IQb4= +gitlab.com/elixxir/crypto v0.0.7-0.20221014161526-ce04e14b9f80/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 b8e58b14..401bec7a 100644 --- a/wasm/channels.go +++ b/wasm/channels.go @@ -41,16 +41,17 @@ func newChannelsManagerJS(api *bindings.ChannelsManager) map[string]interface{} "ReplayChannel": js.FuncOf(cm.ReplayChannel), // Channel Sending Methods and Reports - "SendGeneric": js.FuncOf(cm.SendGeneric), - "SendAdminGeneric": js.FuncOf(cm.SendAdminGeneric), - "SendMessage": js.FuncOf(cm.SendMessage), - "SendReply": js.FuncOf(cm.SendReply), - "SendReaction": js.FuncOf(cm.SendReaction), - "GetIdentity": js.FuncOf(cm.GetIdentity), - "GetStorageTag": js.FuncOf(cm.GetStorageTag), - "SetNickname": js.FuncOf(cm.SetNickname), - "DeleteNickname": js.FuncOf(cm.DeleteNickname), - "GetNickname": js.FuncOf(cm.GetNickname), + "SendGeneric": js.FuncOf(cm.SendGeneric), + "SendAdminGeneric": js.FuncOf(cm.SendAdminGeneric), + "SendMessage": js.FuncOf(cm.SendMessage), + "SendReply": js.FuncOf(cm.SendReply), + "SendReaction": js.FuncOf(cm.SendReaction), + "GetIdentity": js.FuncOf(cm.GetIdentity), + "ExportPrivateIdentity": js.FuncOf(cm.ExportPrivateIdentity), + "GetStorageTag": js.FuncOf(cm.GetStorageTag), + "SetNickname": js.FuncOf(cm.SetNickname), + "DeleteNickname": js.FuncOf(cm.DeleteNickname), + "GetNickname": js.FuncOf(cm.GetNickname), // Channel Receiving Logic and Callback Registration "RegisterReceiveHandler": js.FuncOf(cm.RegisterReceiveHandler), @@ -686,6 +687,25 @@ func (ch *ChannelsManager) GetIdentity(js.Value, []js.Value) interface{} { return utils.CopyBytesToJS(i) } +// ExportPrivateIdentity encrypts and exports the private identity to a portable +// string. +// +// Parameters: +// - args[0] - Password to encrypt the identity with (string). +// +// Returns: +// - JSON of the encrypted private identity (Uint8Array). +// - Throws TypeError if exporting the identity fails. +func (ch *ChannelsManager) ExportPrivateIdentity(_ js.Value, args []js.Value) interface{} { + i, err := ch.api.ExportPrivateIdentity(args[0].String()) + if err != nil { + utils.Throw(utils.TypeError, err) + return nil + } + + return utils.CopyBytesToJS(i) +} + // GetStorageTag returns the storage tag needed to reload the manager. // // Returns: -- GitLab