diff --git a/go.mod b/go.mod index c5a0f25b914d42151fc9deaa19808f492a8ae298..4be3d6f5085f90ee6e15888227c96eb006adffb4 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ 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.20220919182956-8e7459d57631 + gitlab.com/elixxir/client v1.5.1-0.20220919211114-4fe61cbe3400 gitlab.com/elixxir/crypto v0.0.7-0.20220919183519-5bbca98a2c00 gitlab.com/xx_network/primitives v0.0.4-0.20220809193445-9fc0a5209548 ) diff --git a/go.sum b/go.sum index f606452c35a4cac0bfc2be8bf50019f3c80a76bb..1d9b12bf76f9ea4cfd3ead2da9aadad40baaa721 100644 --- a/go.sum +++ b/go.sum @@ -614,8 +614,8 @@ 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.20220919182956-8e7459d57631 h1:xzMTOJ0nohwFIo2PT017q84feCHdDGTct+rGz8zr4ac= -gitlab.com/elixxir/client v1.5.1-0.20220919182956-8e7459d57631/go.mod h1:x6QH8UsPUXpKB/B7byWwsCTBCjx+qiiE7hMvA3rK6v8= +gitlab.com/elixxir/client v1.5.1-0.20220919211114-4fe61cbe3400 h1:wTpH4idYq9Xe/xYRJ+e5fRjSyj3PnpdfHH+LAfQ9K50= +gitlab.com/elixxir/client v1.5.1-0.20220919211114-4fe61cbe3400/go.mod h1:x6QH8UsPUXpKB/B7byWwsCTBCjx+qiiE7hMvA3rK6v8= 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= diff --git a/main.go b/main.go index 6dbce96e9cb2372b3521d5f33b884fd9b33709cd..39828f62096031e78e597c11f2e6db5db35c4a2d 100644 --- a/main.go +++ b/main.go @@ -45,8 +45,10 @@ func main() { js.Global().Set("NewChannelsManager", js.FuncOf(wasm.NewChannelsManager)) js.Global().Set("NewChannelsManagerWithIndexedDb", js.FuncOf(wasm.NewChannelsManagerWithIndexedDb)) - js.Global().Set("NewChannelsManagerWithIndexedDb", + js.Global().Set("GenerateChannel", js.FuncOf(wasm.GenerateChannel)) + js.Global().Set("NewChannelsManagerWithIndexedDbDummyNameService", + js.FuncOf(wasm.NewChannelsManagerWithIndexedDbDummyNameService)) js.Global().Set("GetChannelInfo", js.FuncOf(wasm.GetChannelInfo)) // wasm/cmix.go diff --git a/wasm/channels.go b/wasm/channels.go index 329275ce2a53b03684c7a944daa4c191e18eed3b..f2038112726bf8d9e2a13c8b33b7aa2fe42d1827 100644 --- a/wasm/channels.go +++ b/wasm/channels.go @@ -110,6 +110,35 @@ func NewChannelsManagerWithIndexedDb(_ js.Value, args []js.Value) interface{} { return newChannelsManagerJS(cm) } +// NewChannelsManagerWithIndexedDbDummyNameService constructs a ChannelsManager +// using an indexedDb backend and a dummy name server instead of UD. +// +// Parameters: +// - args[0] - ID of E2e object in tracker (int). This can be retrieved using +// [E2e.GetID]. +// - args[1] - username (string). +// +// Returns: +// - Javascript representation of the [bindings.ChannelsManager] object. +// - Throws a TypeError if initialising indexedDb or created the new channel +// manager fails. +func NewChannelsManagerWithIndexedDbDummyNameService(_ js.Value, args []js.Value) interface{} { + em, err := indexedDb.NewWasmEventModel(args[1].String()) + if err != nil { + utils.Throw(utils.TypeError, err) + return nil + } + + cm, err := bindings.NewChannelsManagerGoEventModelDummyNameService( + args[0].Int(), args[1].String(), em) + if err != nil { + utils.Throw(utils.TypeError, err) + return nil + } + + return newChannelsManagerJS(cm) +} + // GenerateChannel is used to create a channel. This makes a new channel of // which you are the admin. It is only for making new channels, not joining // existing ones.