update Readme, examples

This commit is contained in:
boneyard93501
2021-07-25 13:31:03 -05:00
parent 65d8c6d8ed
commit 90a25bedfe
23 changed files with 6264 additions and 500 deletions

View File

@@ -0,0 +1,657 @@
/**
*
* 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.9-163
*
*/
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 echo_greeting_par_greet(client: FluenceClient, echo_service: {names:string[];node:string;service_id:string}, greeting_services: {greet:boolean;node:string;service_id:string}[], config?: {ttl?: number}): Promise<string[]> {
let request: RequestFlow;
const promise = new Promise<string[]>((resolve, reject) => {
const r = 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" "echo_service") [] echo_service)
)
(call %init_peer_id% ("getDataSrv" "greeting_services") [] greeting_services)
)
(call -relay- ("op" "noop") [])
)
(xor
(seq
(call -relay- ("op" "noop") [])
(call echo_service.$.node! (echo_service.$.service_id! "echo") [echo_service.$.names!] echo_results)
)
(seq
(call -relay- ("op" "noop") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
)
)
)
(call -relay- ("op" "noop") [])
)
(fold echo_results result
(seq
(fold greeting_services greeting_service
(seq
(seq
(par
(seq
(seq
(xor
(call greeting_service.$.node! (greeting_service.$.service_id! "greeting") [result.$.echo! greeting_service.$.greet!] $res)
(seq
(call -relay- ("op" "noop") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
)
)
(call -relay- ("op" "noop") [])
)
(call %init_peer_id% ("op" "noop") [])
)
(null)
)
(call -relay- ("op" "noop") [])
)
(next greeting_service)
)
)
(next result)
)
)
)
(call %init_peer_id% ("op" "identity") [$res.$.[5]!])
)
(xor
(call %init_peer_id% ("callbackSrv" "response") [$res])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
)
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4])
)
`,
)
.configHandler((h) => {
h.on('getDataSrv', '-relay-', () => {
return client.relayPeerId!;
});
h.on('getDataSrv', 'echo_service', () => {return echo_service;});
h.on('getDataSrv', 'greeting_services', () => {return greeting_services;});
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 echo_greeting_par_greet');
})
if(config?.ttl) {
r.withTTL(config.ttl)
}
request = r.build();
});
await client.initiateFlow(request!);
return promise;
}
export async function echo_greeting_par(client: FluenceClient, greet: boolean, echo_service: {names:string[];node:string;service_id:string}, greeting_services: {node:string;service_id:string}[], config?: {ttl?: number}): Promise<string[]> {
let request: RequestFlow;
const promise = new Promise<string[]>((resolve, reject) => {
const r = 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" "greet") [] greet)
)
(call %init_peer_id% ("getDataSrv" "echo_service") [] echo_service)
)
(call %init_peer_id% ("getDataSrv" "greeting_services") [] greeting_services)
)
(call -relay- ("op" "noop") [])
)
(xor
(seq
(call -relay- ("op" "noop") [])
(call echo_service.$.node! (echo_service.$.service_id! "echo") [echo_service.$.names!] echo_results)
)
(seq
(call -relay- ("op" "noop") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
)
)
)
(call -relay- ("op" "noop") [])
)
(fold echo_results result
(seq
(fold greeting_services greeting_service
(seq
(seq
(par
(seq
(seq
(xor
(call greeting_service.$.node! (greeting_service.$.service_id! "greeting") [result.$.echo! greet] $res)
(seq
(call -relay- ("op" "noop") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
)
)
(call -relay- ("op" "noop") [])
)
(call %init_peer_id% ("op" "noop") [])
)
(null)
)
(call -relay- ("op" "noop") [])
)
(next greeting_service)
)
)
(next result)
)
)
)
(call %init_peer_id% ("op" "identity") [$res.$.[5]!])
)
(xor
(call %init_peer_id% ("callbackSrv" "response") [$res])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
)
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4])
)
`,
)
.configHandler((h) => {
h.on('getDataSrv', '-relay-', () => {
return client.relayPeerId!;
});
h.on('getDataSrv', 'greet', () => {return greet;});
h.on('getDataSrv', 'echo_service', () => {return echo_service;});
h.on('getDataSrv', 'greeting_services', () => {return greeting_services;});
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 echo_greeting_par');
})
if(config?.ttl) {
r.withTTL(config.ttl)
}
request = r.build();
});
await client.initiateFlow(request!);
return promise;
}
export async function echo_greeting_par_inverse(client: FluenceClient, greet: boolean, echo_service: {names:string[];node:string;service_id:string}, greeting_services: {node:string;service_id:string}[], config?: {ttl?: number}): Promise<string[]> {
let request: RequestFlow;
const promise = new Promise<string[]>((resolve, reject) => {
const r = 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" "greet") [] greet)
)
(call %init_peer_id% ("getDataSrv" "echo_service") [] echo_service)
)
(call %init_peer_id% ("getDataSrv" "greeting_services") [] greeting_services)
)
(call -relay- ("op" "noop") [])
)
(xor
(seq
(call -relay- ("op" "noop") [])
(call echo_service.$.node! (echo_service.$.service_id! "echo") [echo_service.$.names!] echo_results)
)
(seq
(call -relay- ("op" "noop") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
)
)
)
(call -relay- ("op" "noop") [])
)
(fold greeting_services greeting_service
(seq
(seq
(par
(seq
(seq
(xor
(fold echo_results result
(seq
(call greeting_service.$.node! (greeting_service.$.service_id! "greeting") [result.$.echo! greet] $res)
(next result)
)
)
(seq
(call -relay- ("op" "noop") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
)
)
(call -relay- ("op" "noop") [])
)
(call %init_peer_id% ("op" "noop") [])
)
(null)
)
(call -relay- ("op" "noop") [])
)
(next greeting_service)
)
)
)
(call %init_peer_id% ("op" "identity") [$res.$.[3]!])
)
(xor
(call %init_peer_id% ("callbackSrv" "response") [$res])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
)
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4])
)
`,
)
.configHandler((h) => {
h.on('getDataSrv', '-relay-', () => {
return client.relayPeerId!;
});
h.on('getDataSrv', 'greet', () => {return greet;});
h.on('getDataSrv', 'echo_service', () => {return echo_service;});
h.on('getDataSrv', 'greeting_services', () => {return greeting_services;});
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 echo_greeting_par_inverse');
})
if(config?.ttl) {
r.withTTL(config.ttl)
}
request = r.build();
});
await client.initiateFlow(request!);
return promise;
}
export async function echo_greeting_seq(client: FluenceClient, names: string[], greet: boolean, node: string, echo_service_id: string, greeting_service_id: string, config?: {ttl?: number}): Promise<string[]> {
let request: RequestFlow;
const promise = new Promise<string[]>((resolve, reject) => {
const r = 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" "names") [] names)
)
(call %init_peer_id% ("getDataSrv" "greet") [] greet)
)
(call %init_peer_id% ("getDataSrv" "node") [] node)
)
(call %init_peer_id% ("getDataSrv" "echo_service_id") [] echo_service_id)
)
(call %init_peer_id% ("getDataSrv" "greeting_service_id") [] greeting_service_id)
)
(call -relay- ("op" "noop") [])
)
(xor
(seq
(seq
(call -relay- ("op" "noop") [])
(call node (echo_service_id "echo") [names] echo_names)
)
(fold echo_names result
(seq
(call node (greeting_service_id "greeting") [result.$.echo! greet] $res)
(next result)
)
)
)
(seq
(call -relay- ("op" "noop") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
)
)
)
(call -relay- ("op" "noop") [])
)
(xor
(call %init_peer_id% ("callbackSrv" "response") [$res])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
)
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
)
`,
)
.configHandler((h) => {
h.on('getDataSrv', '-relay-', () => {
return client.relayPeerId!;
});
h.on('getDataSrv', 'names', () => {return names;});
h.on('getDataSrv', 'greet', () => {return greet;});
h.on('getDataSrv', 'node', () => {return node;});
h.on('getDataSrv', 'echo_service_id', () => {return echo_service_id;});
h.on('getDataSrv', 'greeting_service_id', () => {return greeting_service_id;});
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 echo_greeting_seq');
})
if(config?.ttl) {
r.withTTL(config.ttl)
}
request = r.build();
});
await client.initiateFlow(request!);
return promise;
}
export async function echo_greeting_seq_2(client: FluenceClient, names: string[], greet: boolean, echo_topo: {node:string;service_id:string}, greeting_topo: {node:string;service_id:string}, config?: {ttl?: number}): Promise<string[]> {
let request: RequestFlow;
const promise = new Promise<string[]>((resolve, reject) => {
const r = 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" "names") [] names)
)
(call %init_peer_id% ("getDataSrv" "greet") [] greet)
)
(call %init_peer_id% ("getDataSrv" "echo_topo") [] echo_topo)
)
(call %init_peer_id% ("getDataSrv" "greeting_topo") [] greeting_topo)
)
(call -relay- ("op" "noop") [])
)
(xor
(seq
(call -relay- ("op" "noop") [])
(call echo_topo.$.node! (echo_topo.$.service_id! "echo") [names] echo_names)
)
(seq
(seq
(call -relay- ("op" "noop") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
)
(call -relay- ("op" "noop") [])
)
)
)
(xor
(fold echo_names result
(seq
(call greeting_topo.$.node! (greeting_topo.$.service_id! "greeting") [result.$.echo! greet] $res)
(next result)
)
)
(seq
(call -relay- ("op" "noop") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
)
)
)
(call -relay- ("op" "noop") [])
)
(xor
(call %init_peer_id% ("callbackSrv" "response") [$res])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
)
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4])
)
`,
)
.configHandler((h) => {
h.on('getDataSrv', '-relay-', () => {
return client.relayPeerId!;
});
h.on('getDataSrv', 'names', () => {return names;});
h.on('getDataSrv', 'greet', () => {return greet;});
h.on('getDataSrv', 'echo_topo', () => {return echo_topo;});
h.on('getDataSrv', 'greeting_topo', () => {return greeting_topo;});
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 echo_greeting_seq_2');
})
if(config?.ttl) {
r.withTTL(config.ttl)
}
request = r.build();
});
await client.initiateFlow(request!);
return promise;
}
export async function echo_greeting_par_inverse_greet(client: FluenceClient, echo_service: {names:string[];node:string;service_id:string}, greeting_services: {greet:boolean;node:string;service_id:string}[], config?: {ttl?: number}): Promise<string[]> {
let request: RequestFlow;
const promise = new Promise<string[]>((resolve, reject) => {
const r = 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" "echo_service") [] echo_service)
)
(call %init_peer_id% ("getDataSrv" "greeting_services") [] greeting_services)
)
(call -relay- ("op" "noop") [])
)
(xor
(seq
(call -relay- ("op" "noop") [])
(call echo_service.$.node! (echo_service.$.service_id! "echo") [echo_service.$.names!] echo_results)
)
(seq
(call -relay- ("op" "noop") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
)
)
)
(call -relay- ("op" "noop") [])
)
(fold greeting_services greeting_service
(seq
(seq
(par
(seq
(seq
(xor
(fold echo_results result
(seq
(call greeting_service.$.node! (greeting_service.$.service_id! "greeting") [result.$.echo! greeting_service.$.greet!] $res)
(next result)
)
)
(seq
(call -relay- ("op" "noop") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
)
)
(call -relay- ("op" "noop") [])
)
(call %init_peer_id% ("op" "noop") [])
)
(null)
)
(call -relay- ("op" "noop") [])
)
(next greeting_service)
)
)
)
(call %init_peer_id% ("op" "identity") [$res.$.[3]!])
)
(xor
(call %init_peer_id% ("callbackSrv" "response") [$res])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
)
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4])
)
`,
)
.configHandler((h) => {
h.on('getDataSrv', '-relay-', () => {
return client.relayPeerId!;
});
h.on('getDataSrv', 'echo_service', () => {return echo_service;});
h.on('getDataSrv', 'greeting_services', () => {return greeting_services;});
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 echo_greeting_par_inverse_greet');
})
if(config?.ttl) {
r.withTTL(config.ttl)
}
request = r.build();
});
await client.initiateFlow(request!);
return promise;
}

View File

@@ -0,0 +1,158 @@
/*
* Copyright 2021 Fluence Labs Limited
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { createClient, setLogLevel, FluenceClient } from "@fluencelabs/fluence";
import { krasnodar, Node } from "@fluencelabs/fluence-network-environment";
import {
echo_greeting_seq,
echo_greeting_seq_2,
echo_greeting_par,
echo_greeting_par_inverse,
echo_greeting_par_greet,
echo_greeting_par_inverse_greet,
} from "./echo_greeter";
interface NodeServicePair {
node: string;
service_id: string;
}
interface EchoService {
node: string;
service_id: string;
names: Array<string>;
}
interface GreetingService {
node: string;
service_id: string;
greet: boolean;
}
let greeting_topos: Array<NodeServicePair> = [
{
node: "12D3KooWFtf3rfCDAfWwt6oLZYZbDfn9Vn7bv7g6QjjQxUUEFVBt",
service_id: "5cf520ff-dd65-47d7-a51a-2bf08dfe2ede",
},
{
node: "12D3KooWJd3HaMJ1rpLY1kQvcjRPEvnDwcXrH8mJvk7ypcZXqXGE",
service_id: "5a03906b-3217-40a2-93fb-7e83be735408",
},
];
let echo_topos: Array<NodeServicePair> = [
{
node: "12D3KooWFtf3rfCDAfWwt6oLZYZbDfn9Vn7bv7g6QjjQxUUEFVBt",
service_id: "fb5f7126-e1ee-4ecf-81e7-20804cb7203b",
},
{
node: "12D3KooWJd3HaMJ1rpLY1kQvcjRPEvnDwcXrH8mJvk7ypcZXqXGE",
service_id: "893a6fb8-43b9-4b11-8786-93300bd68bc8",
},
];
let echo_service: EchoService = {
node: echo_topos[0].node,
service_id: echo_topos[0].service_id,
names: ["Jim", "John", "Jake"],
};
let greeting_services: Array<GreetingService> = [
{
node: greeting_topos[0].node,
service_id: greeting_topos[0].service_id,
greet: true,
},
{
node: greeting_topos[1].node,
service_id: greeting_topos[1].service_id,
greet: false,
},
];
let names: Array<string> = ["Jim", "John", "Jake"];
// let greeting_service =
async function main() {
// console.log("hello");
// setLogLevel('DEBUG');
const fluence = await createClient(krasnodar[2]);
console.log(
"created a fluence client %s with relay %s",
fluence.selfPeerId,
fluence.relayPeerId
);
let network_result = await echo_greeting_seq(
fluence,
names,
true,
echo_topos[0].node,
echo_topos[0].service_id,
greeting_topos[0].service_id
);
console.log("seq result : ", network_result);
network_result = await echo_greeting_seq_2(
fluence,
names,
true,
echo_topos[0],
greeting_topos[0]
);
console.log("seq result with improved signature : ", network_result);
// echo_greeting_par(greet: bool, echo_service: EchoServiceInput, greeting_services: []NodeServicePair) -> []string:
network_result = await echo_greeting_par(
fluence,
true,
echo_service,
greeting_topos
);
console.log("par result : ", network_result);
network_result = await echo_greeting_par_inverse(
fluence,
true,
echo_service,
greeting_services
);
console.log("par inverse result : ", network_result);
network_result = await echo_greeting_par_greet(
fluence,
echo_service,
greeting_services
);
console.log("par result with greet variation : ", network_result);
network_result = await echo_greeting_par_inverse_greet(
fluence,
echo_service,
greeting_services
);
console.log("par inverse result with greet variation : ", network_result);
return;
}
main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error);
process.exit(1);
});