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