mirror of
https://github.com/fluencelabs/aqua-playground
synced 2025-06-25 10:31:51 +00:00
Example works
This commit is contained in:
@ -4,6 +4,7 @@ data ExternalAddresses:
|
|||||||
service Peer("peer"):
|
service Peer("peer"):
|
||||||
identify: -> ExternalAddresses
|
identify: -> ExternalAddresses
|
||||||
|
|
||||||
func getPeerExternalAddresses() -> []string:
|
func getPeerExternalAddresses(otherNodePeerId: string) -> []string:
|
||||||
|
on otherNodePeerId:
|
||||||
res <- Peer.identify()
|
res <- Peer.identify()
|
||||||
<- res.external_addresses
|
<- res.external_addresses
|
@ -1,9 +1,10 @@
|
|||||||
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
import { FluenceClient, PeerIdB58 } from "@fluencelabs/fluence";
|
||||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
import { RequestFlowBuilder } from "@fluencelabs/fluence/dist/api.unstable";
|
||||||
|
|
||||||
|
export async function getPeerExternalAddresses(
|
||||||
|
client: FluenceClient,
|
||||||
export async function getPeerExternalAddresses(client: FluenceClient): Promise<string[]> {
|
otherNodePeerId: string
|
||||||
|
): Promise<string[]> {
|
||||||
let request;
|
let request;
|
||||||
const promise = new Promise<string[]>((resolve, reject) => {
|
const promise = new Promise<string[]>((resolve, reject) => {
|
||||||
request = new RequestFlowBuilder()
|
request = new RequestFlowBuilder()
|
||||||
@ -11,31 +12,40 @@ export async function getPeerExternalAddresses(client: FluenceClient): Promise<s
|
|||||||
`
|
`
|
||||||
(seq
|
(seq
|
||||||
(seq
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(call %init_peer_id% ("getDataSrv" "otherNodePeerId") [] otherNodePeerId)
|
||||||
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||||
(call %init_peer_id% ("peer" "identify") [] res)
|
|
||||||
)
|
)
|
||||||
(seq
|
(seq
|
||||||
(call relay ("op" "identity") [])
|
(call relay ("op" "identity") [])
|
||||||
(call %init_peer_id% ("callbackSrv" "response") [res.$.external_addresses!])
|
(call otherNodePeerId ("peer" "identify") [] res)
|
||||||
)
|
)
|
||||||
|
)
|
||||||
|
(call relay ("op" "identity") [])
|
||||||
|
)
|
||||||
|
(call %init_peer_id% ("callbackSrv" "response") [res.$.external_addresses!])
|
||||||
)
|
)
|
||||||
|
|
||||||
`,
|
`
|
||||||
)
|
)
|
||||||
.configHandler((h) => {
|
.configHandler((h) => {
|
||||||
h.on('getDataSrv', 'relay', () => {
|
h.on("getDataSrv", "relay", () => {
|
||||||
return client.relayPeerId;
|
return client.relayPeerId;
|
||||||
});
|
});
|
||||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
h.on("getRelayService", "hasReleay", () => {
|
||||||
|
// Not Used
|
||||||
return client.relayPeerId !== undefined;
|
return client.relayPeerId !== undefined;
|
||||||
});
|
});
|
||||||
|
h.on("getDataSrv", "otherNodePeerId", () => {
|
||||||
h.on('callbackSrv', 'response', (args) => {
|
return otherNodePeerId;
|
||||||
|
});
|
||||||
|
h.on("callbackSrv", "response", (args) => {
|
||||||
const [res] = args;
|
const [res] = args;
|
||||||
resolve(res);
|
resolve(res);
|
||||||
});
|
});
|
||||||
|
|
||||||
h.on('nameOfServiceWhereToSendXorError', 'errorProbably', (args) => {
|
h.on("nameOfServiceWhereToSendXorError", "errorProbably", (args) => {
|
||||||
// assuming error is the single argument
|
// assuming error is the single argument
|
||||||
const [err] = args;
|
const [err] = args;
|
||||||
reject(err);
|
reject(err);
|
||||||
@ -43,11 +53,10 @@ export async function getPeerExternalAddresses(client: FluenceClient): Promise<s
|
|||||||
})
|
})
|
||||||
.handleScriptError(reject)
|
.handleScriptError(reject)
|
||||||
.handleTimeout(() => {
|
.handleTimeout(() => {
|
||||||
reject('Request timed out');
|
reject("Request timed out");
|
||||||
})
|
})
|
||||||
.build();
|
.build();
|
||||||
});
|
});
|
||||||
await client.initiateFlow(request);
|
await client.initiateFlow(request);
|
||||||
return promise;
|
return promise;
|
||||||
}
|
}
|
||||||
|
|
@ -6,8 +6,9 @@ import { getPeerExternalAddresses } from "./compiled/helloWorld";
|
|||||||
|
|
||||||
const main = async () => {
|
const main = async () => {
|
||||||
const client = await createClient(testNet[0]);
|
const client = await createClient(testNet[0]);
|
||||||
const addresses = getPeerExternalAddresses(client);
|
const addresses = await getPeerExternalAddresses(client, client.relayPeerId!);
|
||||||
console.log("Relay external addresses: ", addresses);
|
console.log("Relay external addresses: ", addresses);
|
||||||
|
client.disconnect();
|
||||||
};
|
};
|
||||||
|
|
||||||
main();
|
main();
|
||||||
|
Reference in New Issue
Block a user