mirror of
https://github.com/fluencelabs/aqua-playground
synced 2025-06-17 22:01:26 +00:00
test via
This commit is contained in:
23
aqua/examples/via.aqua
Normal file
23
aqua/examples/via.aqua
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import "@fluencelabs/aqua-lib/builtin.aqua"
|
||||||
|
|
||||||
|
service CustomId("cid"):
|
||||||
|
id(s: string) -> string
|
||||||
|
|
||||||
|
func viaArr(node_id: string, viaAr: []string) -> Info:
|
||||||
|
on node_id via viaAr:
|
||||||
|
p <- Peer.identify()
|
||||||
|
<- p
|
||||||
|
|
||||||
|
|
||||||
|
func viaStream(node_id: string, viaStr: []string) -> Info:
|
||||||
|
str: *string
|
||||||
|
for v <- viaStr:
|
||||||
|
str <- CustomId.id(v)
|
||||||
|
on node_id via str:
|
||||||
|
p <- Peer.identify()
|
||||||
|
<- p
|
||||||
|
|
||||||
|
func viaOpt(relay: string, node_id: string, viaOpt: ?string) -> Info:
|
||||||
|
on node_id via viaOpt:
|
||||||
|
p <- Peer.identify()
|
||||||
|
<- p
|
107
src/compiled/examples/foldJoin.ts
Normal file
107
src/compiled/examples/foldJoin.ts
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
/**
|
||||||
|
*
|
||||||
|
* This file is auto-generated. Do not edit manually: changes may be erased.
|
||||||
|
* Generated by Aqua compiler: https://github.com/fluencelabs/aqua/.
|
||||||
|
* If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues
|
||||||
|
* Aqua version: 0.1.4-SNAPSHOT
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||||
|
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||||
|
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export async function getTwoResults(client: FluenceClient, relay: string): Promise<number[]> {
|
||||||
|
let request: RequestFlow;
|
||||||
|
const promise = new Promise<number[]>((resolve, reject) => {
|
||||||
|
request = new RequestFlowBuilder()
|
||||||
|
.disableInjections()
|
||||||
|
.withRawScript(
|
||||||
|
`
|
||||||
|
(xor
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||||
|
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||||
|
)
|
||||||
|
(call -relay- ("op" "identity") [])
|
||||||
|
)
|
||||||
|
(xor
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(call relay ("op" "string_to_b58") [%init_peer_id%] k)
|
||||||
|
(call relay ("kad" "neighborhood") [k false] nodes)
|
||||||
|
)
|
||||||
|
(fold nodes n
|
||||||
|
(par
|
||||||
|
(xor
|
||||||
|
(call n ("peer" "timestamp_sec") [] $res)
|
||||||
|
(null)
|
||||||
|
)
|
||||||
|
(next n)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(call relay ("op" "identity") [$res.$.[0]!])
|
||||||
|
)
|
||||||
|
(call relay ("op" "identity") [$res.$.[1]!])
|
||||||
|
)
|
||||||
|
(call relay ("op" "identity") [$res.$.[2]!])
|
||||||
|
)
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(call -relay- ("op" "identity") [])
|
||||||
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||||
|
)
|
||||||
|
(call -relay- ("op" "identity") [])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(call -relay- ("op" "identity") [])
|
||||||
|
)
|
||||||
|
(xor
|
||||||
|
(call %init_peer_id% ("callbackSrv" "response") [$res])
|
||||||
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(seq
|
||||||
|
(call -relay- ("op" "identity") [])
|
||||||
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
`,
|
||||||
|
)
|
||||||
|
.configHandler((h) => {
|
||||||
|
h.on('getDataSrv', '-relay-', () => {
|
||||||
|
return client.relayPeerId!;
|
||||||
|
});
|
||||||
|
h.on('getDataSrv', 'relay', () => {return relay;});
|
||||||
|
h.onEvent('callbackSrv', 'response', (args) => {
|
||||||
|
const [res] = args;
|
||||||
|
resolve(res);
|
||||||
|
});
|
||||||
|
|
||||||
|
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||||
|
// assuming error is the single argument
|
||||||
|
const [err] = args;
|
||||||
|
reject(err);
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.handleScriptError(reject)
|
||||||
|
.handleTimeout(() => {
|
||||||
|
reject('Request timed out for getTwoResults');
|
||||||
|
})
|
||||||
|
.build();
|
||||||
|
});
|
||||||
|
await client.initiateFlow(request!);
|
||||||
|
return promise;
|
||||||
|
}
|
||||||
|
|
77
src/compiled/examples/option.ts
Normal file
77
src/compiled/examples/option.ts
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
/**
|
||||||
|
*
|
||||||
|
* This file is auto-generated. Do not edit manually: changes may be erased.
|
||||||
|
* Generated by Aqua compiler: https://github.com/fluencelabs/aqua/.
|
||||||
|
* If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues
|
||||||
|
* Aqua version: 0.1.4-SNAPSHOT
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||||
|
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||||
|
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export async function useOptional(client: FluenceClient, opt: string | null): Promise<string> {
|
||||||
|
let request: RequestFlow;
|
||||||
|
const promise = new Promise<string>((resolve, reject) => {
|
||||||
|
request = new RequestFlowBuilder()
|
||||||
|
.disableInjections()
|
||||||
|
.withRawScript(
|
||||||
|
`
|
||||||
|
(xor
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||||
|
(call %init_peer_id% ("getDataSrv" "opt") [] opt)
|
||||||
|
)
|
||||||
|
(call %init_peer_id% ("test2" "getStr") [opt] res)
|
||||||
|
)
|
||||||
|
(fold opt i
|
||||||
|
(seq
|
||||||
|
(call %init_peer_id% ("test2" "getStr2") [i])
|
||||||
|
(next i)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(xor
|
||||||
|
(call %init_peer_id% ("callbackSrv" "response") [res.$.[0]!])
|
||||||
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(seq
|
||||||
|
(call -relay- ("op" "identity") [])
|
||||||
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
`,
|
||||||
|
)
|
||||||
|
.configHandler((h) => {
|
||||||
|
h.on('getDataSrv', '-relay-', () => {
|
||||||
|
return client.relayPeerId!;
|
||||||
|
});
|
||||||
|
h.on('getDataSrv', 'opt', () => {return opt === null ? [] : [opt];});
|
||||||
|
h.onEvent('callbackSrv', 'response', (args) => {
|
||||||
|
const [res] = args;
|
||||||
|
resolve(res);
|
||||||
|
});
|
||||||
|
|
||||||
|
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||||
|
// assuming error is the single argument
|
||||||
|
const [err] = args;
|
||||||
|
reject(err);
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.handleScriptError(reject)
|
||||||
|
.handleTimeout(() => {
|
||||||
|
reject('Request timed out for useOptional');
|
||||||
|
})
|
||||||
|
.build();
|
||||||
|
});
|
||||||
|
await client.initiateFlow(request!);
|
||||||
|
return promise;
|
||||||
|
}
|
||||||
|
|
324
src/compiled/examples/via.ts
Normal file
324
src/compiled/examples/via.ts
Normal file
@ -0,0 +1,324 @@
|
|||||||
|
/**
|
||||||
|
*
|
||||||
|
* This file is auto-generated. Do not edit manually: changes may be erased.
|
||||||
|
* Generated by Aqua compiler: https://github.com/fluencelabs/aqua/.
|
||||||
|
* If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues
|
||||||
|
* Aqua version: 0.1.4-SNAPSHOT
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
|
||||||
|
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
|
||||||
|
import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export async function viaArr(client: FluenceClient, node_id: string, viaAr: string[]): Promise<{external_addresses:string[]}> {
|
||||||
|
let request: RequestFlow;
|
||||||
|
const promise = new Promise<{external_addresses:string[]}>((resolve, reject) => {
|
||||||
|
request = new RequestFlowBuilder()
|
||||||
|
.disableInjections()
|
||||||
|
.withRawScript(
|
||||||
|
`
|
||||||
|
(xor
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||||
|
(call %init_peer_id% ("getDataSrv" "node_id") [] node_id)
|
||||||
|
)
|
||||||
|
(call %init_peer_id% ("getDataSrv" "viaAr") [] viaAr)
|
||||||
|
)
|
||||||
|
(call -relay- ("op" "identity") [])
|
||||||
|
)
|
||||||
|
(fold viaAr -via-peer-
|
||||||
|
(seq
|
||||||
|
(call -via-peer- ("op" "identity") [])
|
||||||
|
(next -via-peer-)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(xor
|
||||||
|
(call node_id ("peer" "identify") [] p)
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(fold viaAr -via-peer-
|
||||||
|
(seq
|
||||||
|
(call -via-peer- ("op" "identity") [])
|
||||||
|
(next -via-peer-)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(call -relay- ("op" "identity") [])
|
||||||
|
)
|
||||||
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||||
|
)
|
||||||
|
(call -relay- ("op" "identity") [])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(fold viaAr -via-peer-
|
||||||
|
(seq
|
||||||
|
(call -via-peer- ("op" "identity") [])
|
||||||
|
(next -via-peer-)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(call -relay- ("op" "identity") [])
|
||||||
|
)
|
||||||
|
(xor
|
||||||
|
(call %init_peer_id% ("callbackSrv" "response") [p])
|
||||||
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(seq
|
||||||
|
(call -relay- ("op" "identity") [])
|
||||||
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
`,
|
||||||
|
)
|
||||||
|
.configHandler((h) => {
|
||||||
|
h.on('getDataSrv', '-relay-', () => {
|
||||||
|
return client.relayPeerId!;
|
||||||
|
});
|
||||||
|
h.on('getDataSrv', 'node_id', () => {return node_id;});
|
||||||
|
h.on('getDataSrv', 'viaAr', () => {return viaAr;});
|
||||||
|
h.onEvent('callbackSrv', 'response', (args) => {
|
||||||
|
const [res] = args;
|
||||||
|
resolve(res);
|
||||||
|
});
|
||||||
|
|
||||||
|
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||||
|
// assuming error is the single argument
|
||||||
|
const [err] = args;
|
||||||
|
reject(err);
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.handleScriptError(reject)
|
||||||
|
.handleTimeout(() => {
|
||||||
|
reject('Request timed out for viaArr');
|
||||||
|
})
|
||||||
|
.build();
|
||||||
|
});
|
||||||
|
await client.initiateFlow(request!);
|
||||||
|
return promise;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export async function viaStream(client: FluenceClient, node_id: string, viaStr: string[]): Promise<{external_addresses:string[]}> {
|
||||||
|
let request: RequestFlow;
|
||||||
|
const promise = new Promise<{external_addresses:string[]}>((resolve, reject) => {
|
||||||
|
request = new RequestFlowBuilder()
|
||||||
|
.disableInjections()
|
||||||
|
.withRawScript(
|
||||||
|
`
|
||||||
|
(xor
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||||
|
(call %init_peer_id% ("getDataSrv" "node_id") [] node_id)
|
||||||
|
)
|
||||||
|
(call %init_peer_id% ("getDataSrv" "viaStr") [] viaStr)
|
||||||
|
)
|
||||||
|
(fold viaStr v
|
||||||
|
(seq
|
||||||
|
(call %init_peer_id% ("cid" "id") [v] $str)
|
||||||
|
(next v)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(call -relay- ("op" "identity") [])
|
||||||
|
)
|
||||||
|
(fold $str -via-peer-
|
||||||
|
(seq
|
||||||
|
(call -via-peer- ("op" "identity") [])
|
||||||
|
(next -via-peer-)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(xor
|
||||||
|
(call node_id ("peer" "identify") [] p)
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(fold $str -via-peer-
|
||||||
|
(seq
|
||||||
|
(call -via-peer- ("op" "identity") [])
|
||||||
|
(next -via-peer-)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(call -relay- ("op" "identity") [])
|
||||||
|
)
|
||||||
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||||
|
)
|
||||||
|
(call -relay- ("op" "identity") [])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(fold $str -via-peer-
|
||||||
|
(seq
|
||||||
|
(call -via-peer- ("op" "identity") [])
|
||||||
|
(next -via-peer-)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(call -relay- ("op" "identity") [])
|
||||||
|
)
|
||||||
|
(xor
|
||||||
|
(call %init_peer_id% ("callbackSrv" "response") [p])
|
||||||
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(seq
|
||||||
|
(call -relay- ("op" "identity") [])
|
||||||
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
`,
|
||||||
|
)
|
||||||
|
.configHandler((h) => {
|
||||||
|
h.on('getDataSrv', '-relay-', () => {
|
||||||
|
return client.relayPeerId!;
|
||||||
|
});
|
||||||
|
h.on('getDataSrv', 'node_id', () => {return node_id;});
|
||||||
|
h.on('getDataSrv', 'viaStr', () => {return viaStr;});
|
||||||
|
h.onEvent('callbackSrv', 'response', (args) => {
|
||||||
|
const [res] = args;
|
||||||
|
resolve(res);
|
||||||
|
});
|
||||||
|
|
||||||
|
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||||
|
// assuming error is the single argument
|
||||||
|
const [err] = args;
|
||||||
|
reject(err);
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.handleScriptError(reject)
|
||||||
|
.handleTimeout(() => {
|
||||||
|
reject('Request timed out for viaStream');
|
||||||
|
})
|
||||||
|
.build();
|
||||||
|
});
|
||||||
|
await client.initiateFlow(request!);
|
||||||
|
return promise;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export async function viaOpt(client: FluenceClient, relay: string, node_id: string, viaOpt: string | null): Promise<{external_addresses:string[]}> {
|
||||||
|
let request: RequestFlow;
|
||||||
|
const promise = new Promise<{external_addresses:string[]}>((resolve, reject) => {
|
||||||
|
request = new RequestFlowBuilder()
|
||||||
|
.disableInjections()
|
||||||
|
.withRawScript(
|
||||||
|
`
|
||||||
|
(xor
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||||
|
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||||
|
)
|
||||||
|
(call %init_peer_id% ("getDataSrv" "node_id") [] node_id)
|
||||||
|
)
|
||||||
|
(call %init_peer_id% ("getDataSrv" "viaOpt") [] viaOpt)
|
||||||
|
)
|
||||||
|
(call -relay- ("op" "identity") [])
|
||||||
|
)
|
||||||
|
(fold viaOpt -via-peer-
|
||||||
|
(seq
|
||||||
|
(call -via-peer- ("op" "identity") [])
|
||||||
|
(next -via-peer-)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(xor
|
||||||
|
(call node_id ("peer" "identify") [] p)
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(fold viaOpt -via-peer-
|
||||||
|
(seq
|
||||||
|
(call -via-peer- ("op" "identity") [])
|
||||||
|
(next -via-peer-)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(call -relay- ("op" "identity") [])
|
||||||
|
)
|
||||||
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||||
|
)
|
||||||
|
(call -relay- ("op" "identity") [])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(fold viaOpt -via-peer-
|
||||||
|
(seq
|
||||||
|
(call -via-peer- ("op" "identity") [])
|
||||||
|
(next -via-peer-)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(call -relay- ("op" "identity") [])
|
||||||
|
)
|
||||||
|
(xor
|
||||||
|
(call %init_peer_id% ("callbackSrv" "response") [p])
|
||||||
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(seq
|
||||||
|
(call -relay- ("op" "identity") [])
|
||||||
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
`,
|
||||||
|
)
|
||||||
|
.configHandler((h) => {
|
||||||
|
h.on('getDataSrv', '-relay-', () => {
|
||||||
|
return client.relayPeerId!;
|
||||||
|
});
|
||||||
|
h.on('getDataSrv', 'relay', () => {return relay;});
|
||||||
|
h.on('getDataSrv', 'node_id', () => {return node_id;});
|
||||||
|
h.on('getDataSrv', 'viaOpt', () => {return viaOpt === null ? [] : [viaOpt];});
|
||||||
|
h.onEvent('callbackSrv', 'response', (args) => {
|
||||||
|
const [res] = args;
|
||||||
|
resolve(res);
|
||||||
|
});
|
||||||
|
|
||||||
|
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||||
|
// assuming error is the single argument
|
||||||
|
const [err] = args;
|
||||||
|
reject(err);
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.handleScriptError(reject)
|
||||||
|
.handleTimeout(() => {
|
||||||
|
reject('Request timed out for viaOpt');
|
||||||
|
})
|
||||||
|
.build();
|
||||||
|
});
|
||||||
|
await client.initiateFlow(request!);
|
||||||
|
return promise;
|
||||||
|
}
|
||||||
|
|
17
src/examples/viaCall.ts
Normal file
17
src/examples/viaCall.ts
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||||
|
import {krasnodar} from "@fluencelabs/fluence-network-environment";
|
||||||
|
import {viaArr, viaOpt, viaStream} from "../compiled/examples/via";
|
||||||
|
|
||||||
|
export async function viaCall(client: FluenceClient): Promise<string[][]> {
|
||||||
|
|
||||||
|
registerServiceFunction(client, "cid", "id", (args: any[], _) => {
|
||||||
|
return args[0]
|
||||||
|
})
|
||||||
|
|
||||||
|
let res = await viaArr(client, krasnodar[3].peerId, [krasnodar[2].peerId, krasnodar[1].peerId])
|
||||||
|
let res2 = await viaOpt(client, client.relayPeerId!, krasnodar[3].peerId, krasnodar[2].peerId)
|
||||||
|
let res3 = await viaOpt(client, client.relayPeerId!, krasnodar[3].peerId, krasnodar[2].peerId || null)
|
||||||
|
let res4 = await viaStream(client, krasnodar[3].peerId, [krasnodar[2].peerId, krasnodar[1].peerId])
|
||||||
|
|
||||||
|
return [res.external_addresses, res2.external_addresses, res3.external_addresses, res4.external_addresses]
|
||||||
|
}
|
@ -1,12 +1,12 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
|
||||||
import {createClient, registerServiceFunction} from "@fluencelabs/fluence";
|
import {createClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||||
import {testNet} from "@fluencelabs/fluence-network-environment";
|
import {krasnodar} from "@fluencelabs/fluence-network-environment";
|
||||||
import {helloWorld} from "./compiled/examples/helloWorld";
|
import {helloWorld} from "./compiled/examples/helloWorld";
|
||||||
|
|
||||||
const main = async () => {
|
const main = async () => {
|
||||||
// each compiled aqua function require a connected client
|
// each compiled aqua function require a connected client
|
||||||
const client = await createClient(testNet[0]);
|
const client = await createClient(krasnodar[0]);
|
||||||
|
|
||||||
// example to how register a local service
|
// example to how register a local service
|
||||||
// it could be used in aqua code as follows
|
// it could be used in aqua code as follows
|
||||||
|
@ -16,6 +16,7 @@ import {streamCall} from "./examples/streamCall";
|
|||||||
import {topologyCall} from "./examples/topologyCall";
|
import {topologyCall} from "./examples/topologyCall";
|
||||||
import {foldJoinCall} from "./examples/foldJoinCall";
|
import {foldJoinCall} from "./examples/foldJoinCall";
|
||||||
import {useOptionalCall} from "./examples/useOptionalCall";
|
import {useOptionalCall} from "./examples/useOptionalCall";
|
||||||
|
import {viaCall} from "./examples/viaCall";
|
||||||
let deepEqual = require('deep-equal')
|
let deepEqual = require('deep-equal')
|
||||||
|
|
||||||
function checkCall(name: string, expected: any, actual: any, callBackOnError: () => void) {
|
function checkCall(name: string, expected: any, actual: any, callBackOnError: () => void) {
|
||||||
@ -96,6 +97,9 @@ const main = async () => {
|
|||||||
// option.aqua
|
// option.aqua
|
||||||
let optionResult = await useOptionalCall(client)
|
let optionResult = await useOptionalCall(client)
|
||||||
|
|
||||||
|
// via.aqua
|
||||||
|
let viaResult = await viaCall(client)
|
||||||
|
|
||||||
await client.disconnect();
|
await client.disconnect();
|
||||||
|
|
||||||
let success = true;
|
let success = true;
|
||||||
@ -129,6 +133,8 @@ const main = async () => {
|
|||||||
|
|
||||||
checkCall("useOptional", optionResult, "hello", cb)
|
checkCall("useOptional", optionResult, "hello", cb)
|
||||||
|
|
||||||
|
checkCallBy("via", viaResult, (res) => res.every( (val, i, arr) => deepEqual(val, arr[0]) ), cb)
|
||||||
|
|
||||||
if (success) {
|
if (success) {
|
||||||
process.exit(0)
|
process.exit(0)
|
||||||
} else {
|
} else {
|
||||||
|
Reference in New Issue
Block a user