Updated js-example to get gateway from topology (#225)

This commit is contained in:
Jędrzej Stuczyński
2020-05-11 14:52:23 +01:00
committed by GitHub
parent e2b9a9468a
commit f47b7cfb13
6 changed files with 23 additions and 11 deletions
Generated
+1 -1
View File
@@ -1629,7 +1629,7 @@ dependencies = [
[[package]]
name = "nym-client-wasm"
version = "0.1.2"
version = "0.1.3"
dependencies = [
"console_error_panic_hook",
"crypto",
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "nym-client-wasm"
version = "0.1.2"
version = "0.1.3"
authors = ["Dave Hrycyszyn <futurechimp@users.noreply.github.com>", "Jedrzej Stuczynski <andrew@nymtech.net>"]
edition = "2018"
repository = "https://github.com/nymtech/nym"
+8
View File
@@ -8,6 +8,14 @@ export function makeAuthenticateRequest(address, token) {
return JSON.stringify({ "type": "authenticate", "address": address, "token": token });
}
export async function getInitialGatewayAddress(directoryUrl) {
const topology = await getTopology(directoryUrl);
if (topology.gatewayNodes.length > 0) {
return topology.gatewayNodes[0].clientListener;
}
return "";
}
// NOTE: this currently does not implement chunking and too long messages will cause a panic
export function makeSendablePacket(topology, message, recipient) {
return wasm.create_gateway_sphinx_packet(topology, message, recipient);
+7 -3
View File
@@ -13,7 +13,7 @@
// limitations under the License.
import * as wasm from "nym-client-wasm";
import { makeRegisterRequest, makeAuthenticateRequest, makeSendablePacket, getTopology } from "nym-client-wasm/helpers"
import { makeRegisterRequest, makeAuthenticateRequest, makeSendablePacket, getTopology, getInitialGatewayAddress } from "nym-client-wasm/helpers"
class GatewayConnection {
constructor(gateway_url, ownAddress, registeredCallback) {
@@ -121,10 +121,14 @@ function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
function main() {
var gatewayUrl = "ws://127.0.0.1:1977";
async function main() {
var directoryUrl = "http://127.0.0.1:8080/api/presence/topology";
const gatewayUrl = await getInitialGatewayAddress(directoryUrl);
if (gatewayUrl == "") {
alert("No gateways detected - cannot procede");
return;
}
// NOTE: in an actual application, you should save those keys somewhere and only generate them a single time
// then reuse them in subsequent runs
+2 -2
View File
@@ -27,7 +27,7 @@
},
"homepage": "https://github.com/rustwasm/create-wasm-app#readme",
"dependencies": {
"nym-client-wasm": "^0.1.2"
"nym-client-wasm": "^0.1.3"
},
"devDependencies": {
"hello-wasm-pack": "^0.1.0",
@@ -36,4 +36,4 @@
"webpack-dev-server": "^3.1.5",
"copy-webpack-plugin": "^5.0.0"
}
}
}
+4 -4
View File
@@ -2484,10 +2484,10 @@ number-is-nan@^1.0.0:
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
nym-client-wasm@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/nym-client-wasm/-/nym-client-wasm-0.1.2.tgz#1a89b28eafaff61de7d71b9045c2c6f76813d8e0"
integrity sha512-G4Nsw+abk/UC5PbvxiEspMiq2EAXWOFvsXLGVkS2fzg2WxRlkf8hXoRK8mbgeqFlOB0LDf8ZSauI4eyqu0UPFw==
nym-client-wasm@^0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/nym-client-wasm/-/nym-client-wasm-0.1.3.tgz#49f93a6a6db0e26dfe94337625a69ea922b05cda"
integrity sha512-ce8JojJ5sXIuY2hbFmgo2W1Nyy56uQ8GnsG6yBt3rzu6+seIRdxPd5ilN86L0Ps7uYLpAyydcwWLErjR6W9S+g==
object-assign@^4.0.1, object-assign@^4.1.1:
version "4.1.1"