mirror of
https://github.com/fluencelabs/fluence-js.git
synced 2025-04-24 09:22:15 +00:00
* Add test server * remove headless * Support for web-cra * Review fixes and bug fixes * Add error message
114 lines
3.1 KiB
JavaScript
114 lines
3.1 KiB
JavaScript
const fluence = globalThis.fluence;
|
|
|
|
const relay = {
|
|
multiaddr:
|
|
"/ip4/127.0.0.1/tcp/9991/ws/p2p/12D3KooWBM3SdXWqGaawQDGQ6JprtwswEg3FWGvGhmgmMez1vRbR",
|
|
peerId: "12D3KooWBM3SdXWqGaawQDGQ6JprtwswEg3FWGvGhmgmMez1vRbR",
|
|
};
|
|
|
|
const getRelayTime = () => {
|
|
const script = `
|
|
(xor
|
|
(seq
|
|
(seq
|
|
(seq
|
|
(seq
|
|
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
|
(call %init_peer_id% ("getDataSrv" "relayPeerId") [] relayPeerId)
|
|
)
|
|
(call -relay- ("op" "noop") [])
|
|
)
|
|
(xor
|
|
(seq
|
|
(call relayPeerId ("peer" "timestamp_ms") [] ts)
|
|
(call -relay- ("op" "noop") [])
|
|
)
|
|
(seq
|
|
(call -relay- ("op" "noop") [])
|
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
|
)
|
|
)
|
|
)
|
|
(xor
|
|
(call %init_peer_id% ("callbackSrv" "response") [ts])
|
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
|
)
|
|
)
|
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
|
)`;
|
|
|
|
const def = {
|
|
functionName: "getRelayTime",
|
|
arrow: {
|
|
tag: "arrow",
|
|
domain: {
|
|
tag: "labeledProduct",
|
|
fields: {
|
|
relayPeerId: {
|
|
tag: "scalar",
|
|
name: "string",
|
|
},
|
|
},
|
|
},
|
|
codomain: {
|
|
tag: "unlabeledProduct",
|
|
items: [
|
|
{
|
|
tag: "scalar",
|
|
name: "u64",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
names: {
|
|
relay: "-relay-",
|
|
getDataSrv: "getDataSrv",
|
|
callbackSrv: "callbackSrv",
|
|
responseSrv: "callbackSrv",
|
|
responseFnName: "response",
|
|
errorHandlingSrv: "errorHandlingSrv",
|
|
errorFnName: "error",
|
|
},
|
|
};
|
|
|
|
const config = {};
|
|
|
|
const args = { relayPeerId: relay.peerId };
|
|
return fluence.callAquaFunction({
|
|
args,
|
|
def,
|
|
script,
|
|
config,
|
|
peer: fluence.defaultClient,
|
|
});
|
|
};
|
|
|
|
const main = async () => {
|
|
console.log("starting fluence...");
|
|
fluence.defaultClient = await fluence.clientFactory(relay, {
|
|
CDNUrl: "http://localhost:3000",
|
|
});
|
|
console.log("started fluence");
|
|
|
|
console.log("getting relay time...");
|
|
const relayTime = await getRelayTime();
|
|
console.log("got relay time, ", relayTime);
|
|
|
|
console.log("stopping fluence...");
|
|
await fluence.defaultClient.stop();
|
|
console.log("stopped fluence...");
|
|
|
|
return relayTime;
|
|
};
|
|
|
|
const btn = document.getElementById("btn");
|
|
|
|
btn.addEventListener("click", () => {
|
|
main().then((res) => {
|
|
const inner = document.createElement("div");
|
|
inner.id = "res";
|
|
inner.innerText = res;
|
|
document.getElementById("res-placeholder").appendChild(inner);
|
|
});
|
|
});
|