170 lines
4.3 KiB
TypeScript
Raw Normal View History

2021-07-25 13:31:03 -05:00
/*
* 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 {
2021-09-05 14:48:53 -05:00
echo,
greeting,
2021-07-25 13:31:03 -05:00
echo_greeting_seq,
echo_greeting_par,
2021-09-05 14:48:53 -05:00
echo_greeting_par_alternative,
echo_greeting_par_improved
2021-07-25 13:31:03 -05:00
} from "./echo_greeter";
2021-09-05 14:48:53 -05:00
interface EchoResult {
echo: string;
}
2021-07-25 13:31:03 -05:00
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
);
2021-09-05 14:48:53 -05:00
let echo_result = await echo(
2021-07-25 13:31:03 -05:00
fluence,
names,
echo_topos[0].node,
2021-09-05 14:48:53 -05:00
echo_topos[0].service_id
2021-07-25 13:31:03 -05:00
);
2021-09-05 14:48:53 -05:00
let result = "";
for (let item of echo_result) {
result += item.echo + ","
}
console.log("echo result : ", result);
2021-07-25 13:31:03 -05:00
2021-09-05 14:48:53 -05:00
let greeting_result = await greeting(
2021-07-25 13:31:03 -05:00
fluence,
2021-09-05 14:48:53 -05:00
names[0],
2021-07-25 13:31:03 -05:00
true,
2021-09-05 14:48:53 -05:00
greeting_topos[0].node,
greeting_topos[0].service_id
2021-07-25 13:31:03 -05:00
);
2021-09-05 14:48:53 -05:00
console.log("greeting result : ", greeting_result);
2021-07-25 13:31:03 -05:00
// echo_greeting_par(greet: bool, echo_service: EchoServiceInput, greeting_services: []NodeServicePair) -> []string:
2021-09-05 14:48:53 -05:00
let seq_result = await echo_greeting_seq(
2021-07-25 13:31:03 -05:00
fluence,
2021-09-05 14:48:53 -05:00
names,
2021-07-25 13:31:03 -05:00
true,
2021-09-05 14:48:53 -05:00
echo_topos[0].node,
echo_topos[0].service_id,
greeting_topos[0].service_id
2021-07-25 13:31:03 -05:00
);
2021-09-05 14:48:53 -05:00
console.log("seq result : ", seq_result);
2021-07-25 13:31:03 -05:00
2021-09-05 14:48:53 -05:00
let par_result = await echo_greeting_par(
2021-07-25 13:31:03 -05:00
fluence,
true,
echo_service,
greeting_services
);
2021-09-05 14:48:53 -05:00
console.log("par result : ", par_result);
2021-07-25 13:31:03 -05:00
2021-09-05 14:48:53 -05:00
par_result = await echo_greeting_par_alternative(
2021-07-25 13:31:03 -05:00
fluence,
2021-09-05 14:48:53 -05:00
true,
2021-07-25 13:31:03 -05:00
echo_service,
greeting_services
);
2021-09-05 14:48:53 -05:00
console.log("par alternative result : ", par_result);
2021-07-25 13:31:03 -05:00
2021-09-05 14:48:53 -05:00
par_result = await echo_greeting_par_improved(
2021-07-25 13:31:03 -05:00
fluence,
echo_service,
greeting_services
);
2021-09-05 14:48:53 -05:00
console.log("par improved signature result : ", par_result);
2021-07-25 13:31:03 -05:00
return;
}
main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error);
process.exit(1);
2021-09-05 14:48:53 -05:00
});