Rewrite JS SDK examples with release version of libraries

This commit is contained in:
Pavel Murygin
2021-09-08 14:38:40 +03:00
parent 91b1b711aa
commit 17a00d853f
11 changed files with 309 additions and 280 deletions

View File

@ -52,29 +52,29 @@
"@cspotcode/source-map-consumer": "0.8.0" "@cspotcode/source-map-consumer": "0.8.0"
} }
}, },
"@fluencelabs/aqua-cli": { "@fluencelabs/aqua": {
"version": "0.2.1-219", "version": "0.3.0-222",
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua-cli/-/aqua-cli-0.2.1-219.tgz", "resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.3.0-222.tgz",
"integrity": "sha512-0Yh0cN4yyF69DQXKvk8jYpFsvVLT4IztRVkKjoc/6uqAzNLEKdldvXC2cZ5nDcz4CyAWkg9IyTCdY+7g1q8Ufg==", "integrity": "sha512-dwBPNoE490LX9CRssNyz3nHKgpxwYvkRIhmTbjbFYXknzZWN18vx6WseD9tuzIFnlXdsJ/MoUhNZAxmT+VPhiw==",
"dev": true "dev": true
}, },
"@fluencelabs/avm": { "@fluencelabs/avm": {
"version": "0.14.0-async.17", "version": "0.14.4",
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.14.0-async.17.tgz", "resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.14.4.tgz",
"integrity": "sha512-sTb5UNwhmrrFixexq2TxWVv0yOvfRnBt92dBX983JM47D0UoeCXg/s+S9t6ZtP1wz0zBv/FLfXwmgBFgJIKdCw==", "integrity": "sha512-XyR+1H5k0CAc+mDHOkl81viX8XeW1Yqbw793xbsfUfju5bUb/hqk+gHv3q8lAFdbrCG5P45gdOT08a5RNODZaQ==",
"requires": { "requires": {
"base64-js": "1.5.1" "base64-js": "1.5.1"
} }
}, },
"@fluencelabs/fluence": { "@fluencelabs/fluence": {
"version": "0.10.0-new-js-sdk-api.14", "version": "0.11.0",
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.10.0-new-js-sdk-api.14.tgz", "resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.11.0.tgz",
"integrity": "sha512-XUwmxSxyG7RGDvEUc1Tb99Hobe9nKS5pDLmZi9XGn4aYq7gq2Sbhf26mn7BpCD12NlxAoYLjr/jxtVAj74jhbw==", "integrity": "sha512-HfUS8eLwfviiJhqsrHnOnRxO20TbdahPreP6AkBXQaEpWeRew6vxAd0Dn+xdzy6KCJ4W9GOKLcgtPfqquIO2Pg==",
"requires": { "requires": {
"@chainsafe/libp2p-noise": "4.0.0", "@chainsafe/libp2p-noise": "4.0.0",
"@fluencelabs/avm": "0.14.0-async.17", "@fluencelabs/avm": "0.14.4",
"async": "3.2.0", "async": "3.2.0",
"base64-js": "^1.3.1", "base64-js": "1.5.1",
"bs58": "4.0.1", "bs58": "4.0.1",
"cids": "0.8.1", "cids": "0.8.1",
"it-length-prefixed": "3.0.1", "it-length-prefixed": "3.0.1",
@ -323,9 +323,9 @@
"integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ=="
}, },
"@types/node": { "@types/node": {
"version": "16.7.10", "version": "16.7.13",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.10.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.13.tgz",
"integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA==" "integrity": "sha512-pLUPDn+YG3FYEt/pHI74HmnJOWzeR+tOIQzUx93pi9M7D8OE7PSLr97HboXwk5F+JS+TLtWuzCOW97AHjmOXXA=="
}, },
"@types/retry": { "@types/retry": {
"version": "0.12.1", "version": "0.12.1",
@ -1220,9 +1220,9 @@
"integrity": "sha512-wiI02c+G1BVuu0jz30Nsr1/et0cpSRulKUusN8HDZXxuX4MdUzfMp2P4JUk+a49Wr1kHitRLrnnh3+UzJ6neaQ==" "integrity": "sha512-wiI02c+G1BVuu0jz30Nsr1/et0cpSRulKUusN8HDZXxuX4MdUzfMp2P4JUk+a49Wr1kHitRLrnnh3+UzJ6neaQ=="
}, },
"it-glob": { "it-glob": {
"version": "0.0.13", "version": "0.0.14",
"resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.13.tgz", "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.14.tgz",
"integrity": "sha512-0Hcd5BraJUPzL28NWiFbdNrcdyNxNTKKdU3sjdFiYynNTQpwlG2UKW31X7bp+XhJwux/oPzIquo5ioztVmc2RQ==", "integrity": "sha512-TKKzs9CglbsihSpcwJPXN5DBUssu4akRzPlp8QJRCoLrKoaOpyY2V1qDlxx+UMivn0i114YyTd4AawWl7eqIdw==",
"requires": { "requires": {
"@types/minimatch": "^3.0.4", "@types/minimatch": "^3.0.4",
"minimatch": "^3.0.4" "minimatch": "^3.0.4"
@ -1760,9 +1760,9 @@
} }
}, },
"multiformats": { "multiformats": {
"version": "9.4.6", "version": "9.4.7",
"resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.4.6.tgz", "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.4.7.tgz",
"integrity": "sha512-ngZRO82P7mPvw/3gu5NQ2QiUJGYTS0LAxvQnEAlWCJakvn7YpK2VAd9JWM5oosYUeqoVbkylH/FsqRc4fc2+ag==" "integrity": "sha512-fZbcdf7LnvokPAZYkv4TLXe7PAg9sQ5qLXcwrAmZOloEb2+5FtFiAY+l3/9wsu4oTJXTV3JSggFQQ2dJLS01vA=="
}, },
"multihashes": { "multihashes": {
"version": "0.4.21", "version": "0.4.21",

View File

@ -5,20 +5,19 @@
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"exec": "node -r ts-node/register src/index.ts", "exec": "node -r ts-node/register src/index.ts",
"compile-aqua": "aqua-cli --import . -i ./aqua/ -o ./src/_aqua", "compile-aqua": "aqua --import . -i ./aqua/ -o ./src/_aqua",
"watch-aqua": "chokidar \"**/*.aqua\" -c \"npm run compile-aqua\"", "watch-aqua": "chokidar \"**/*.aqua\" -c \"npm run compile-aqua\""
"tmp": "java -jar aqua-cli.jar -m node_modules --import . -i ./aqua/ -o ./src/_aqua"
}, },
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"devDependencies": { "devDependencies": {
"@fluencelabs/aqua-cli": "^0.2.1-219", "@fluencelabs/aqua": "^0.3.0-222",
"chokidar-cli": "^3.0.0", "chokidar-cli": "^3.0.0",
"ts-node": "^10.2.1", "ts-node": "^10.2.1",
"typescript": "^4.4.2" "typescript": "^4.4.2"
}, },
"dependencies": { "dependencies": {
"@fluencelabs/fluence": "0.10.0-new-js-sdk-api.14", "@fluencelabs/fluence": "0.11.0",
"@fluencelabs/fluence-network-environment": "1.0.10" "@fluencelabs/fluence-network-environment": "1.0.10"
} }
} }

View File

@ -3,42 +3,29 @@
* This file is auto-generated. Do not edit manually: changes may be erased. * This file is auto-generated. Do not edit manually: changes may be erased.
* Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * 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 * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues
* Aqua version: 0.2.0-SNAPSHOT * Aqua version: 0.3.0-222
* *
*/ */
import { FluencePeer } from "@fluencelabs/fluence"; import { FluencePeer } from '@fluencelabs/fluence';
import { import {
ResultCodes, ResultCodes,
RequestFlow, RequestFlow,
RequestFlowBuilder, RequestFlowBuilder,
CallParams, CallParams,
} from "@fluencelabs/fluence/dist/internal/compilerSupport/v1"; } from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
// Services // Services
export function registerHelloWorld(service: { export interface HelloWorldDef {
hello: (str: string, callParams: CallParams<"str">) => Promise<void>; hello: (str: string, callParams: CallParams<'str'>) => void;
}): void;
export function registerHelloWorld(
serviceId: string,
service: {
hello: (str: string, callParams: CallParams<"str">) => Promise<void>;
} }
): void;
export function registerHelloWorld( export function registerHelloWorld(service: HelloWorldDef): void;
peer: FluencePeer, export function registerHelloWorld(serviceId: string, service: HelloWorldDef): void;
service: { export function registerHelloWorld(peer: FluencePeer, service: HelloWorldDef): void;
hello: (str: string, callParams: CallParams<"str">) => Promise<void>; export function registerHelloWorld(peer: FluencePeer, serviceId: string, service: HelloWorldDef): void;
} export function registerHelloWorld(...args) {
): void;
export function registerHelloWorld(
peer: FluencePeer,
serviceId: string,
service: {
hello: (str: string, callParams: CallParams<"str">) => Promise<void>;
}
): void;
export function registerHelloWorld(...args) {
let peer: FluencePeer; let peer: FluencePeer;
let serviceId; let serviceId;
let service; let service;
@ -48,52 +35,54 @@ export function registerHelloWorld(...args) {
peer = FluencePeer.default; peer = FluencePeer.default;
} }
if (typeof args[0] === "string") { if (typeof args[0] === 'string') {
serviceId = args[0]; serviceId = args[0];
} else if (typeof args[1] === "string") { } else if (typeof args[1] === 'string') {
serviceId = args[1]; serviceId = args[1];
} else {
serviceId = "hello-world";
} }
else {
serviceId = "hello-world"
}
if (!(args[0] instanceof FluencePeer) && typeof args[0] === "object") { if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') {
service = args[0]; service = args[0];
} else if (typeof args[1] === "object") { } else if (typeof args[1] === 'object') {
service = args[1]; service = args[1];
} else { } else {
service = args[2]; service = args[2];
} }
peer.callServiceHandler.use(async (req, resp, next) => { peer.internals.callServiceHandler.use((req, resp, next) => {
if (req.serviceId !== serviceId) { if (req.serviceId !== serviceId) {
await next(); next();
return; return;
} }
if (req.fnName === "hello") {
if (req.fnName === 'hello') {
const callParams = { const callParams = {
...req.particleContext, ...req.particleContext,
tetraplets: { tetraplets: {
str: req.tetraplets[0], str: req.tetraplets[0]
}, },
}; };
resp.retCode = ResultCodes.success; resp.retCode = ResultCodes.success;
await service.hello(req.args[0], callParams); service.hello(req.args[0], callParams); resp.result = {}
resp.result = {};
} }
await next();
next();
}); });
} }
// Functions // Functions
export async function sayHello(config?: { ttl?: number }): Promise<void>; export function sayHello(config?: {ttl?: number}) : Promise<void>;
export async function sayHello( export function sayHello(peer: FluencePeer, config?: {ttl?: number}) : Promise<void>;
peer: FluencePeer, export function sayHello(...args) {
config?: { ttl?: number }
): Promise<void>;
export async function sayHello(...args) {
let peer: FluencePeer; let peer: FluencePeer;
let config; let config;
@ -119,29 +108,32 @@ export async function sayHello(...args) {
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
) )
` `,
) )
.configHandler((h) => { .configHandler((h) => {
h.on("getDataSrv", "-relay-", async () => { h.on('getDataSrv', '-relay-', () => {
return peer.connectionInfo.connectedRelays[0] || null; return peer.connectionInfo.connectedRelay ;
}); });
h.onEvent("callbackSrv", "response", async (args) => {}); h.onEvent('callbackSrv', 'response', (args) => {
h.onEvent("errorHandlingSrv", "error", async (args) => { });
h.onEvent('errorHandlingSrv', 'error', (args) => {
const [err] = args; const [err] = args;
reject(err); reject(err);
}); });
}) })
.handleScriptError(reject) .handleScriptError(reject)
.handleTimeout(() => { .handleTimeout(() => {
reject("Request timed out for sayHello"); reject('Request timed out for sayHello');
}); })
if (config && config.ttl) { if(config && config.ttl) {
r.withTTL(config.ttl); r.withTTL(config.ttl)
} }
request = r.build(); request = r.build();
}); });
await peer.initiateFlow(request!); peer.internals.initiateFlow(request!);
return Promise.race([promise, Promise.resolve()]); return Promise.race([promise, Promise.resolve()]);
} }

View File

@ -1,5 +1,4 @@
import { FluencePeer, randomPeerId } from "@fluencelabs/fluence"; import { FluencePeer } from "@fluencelabs/fluence";
import { krasnodar } from "@fluencelabs/fluence-network-environment";
import { registerHelloWorld, sayHello } from "./_aqua/hello-world"; import { registerHelloWorld, sayHello } from "./_aqua/hello-world";
async function main() { async function main() {

View File

@ -0,0 +1,13 @@
import "./calc.aqua"
const PEER ?= "12D3KooWLBkw4Tz8bRoSriy5WEpHyWfU11jEK3b5yCa7FBRDRWH3"
const RELAY ?= "12D3KooWSD5PToNiLQwKDXsu8JSysCwUt8BVUJEqCHcDe7P5h45e"
func demoCalculation() -> f32:
on PEER via RELAY:
Calc.add(10)
Calc.multiply(5)
Calc.subtract(8)
Calc.divide(6)
res <- Calc.getResult()
<- res

View File

@ -1,11 +0,0 @@
const peer ?= "12D3KooWLBkw4Tz8bRoSriy5WEpHyWfU11jEK3b5yCa7FBRDRWH3"
const relay ?= "12D3KooWSD5PToNiLQwKDXsu8JSysCwUt8BVUJEqCHcDe7P5h45e"
func demoCalculation() -> f32:
on peer via relay
Calc.add(10)
Calc.multiply(5)
Calc.subtract(8)
Calc.divide(6)
res <- Calc.getResult()
<- res

View File

@ -52,29 +52,29 @@
"@cspotcode/source-map-consumer": "0.8.0" "@cspotcode/source-map-consumer": "0.8.0"
} }
}, },
"@fluencelabs/aqua-cli": { "@fluencelabs/aqua": {
"version": "0.2.1-219", "version": "0.3.0-222",
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua-cli/-/aqua-cli-0.2.1-219.tgz", "resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.3.0-222.tgz",
"integrity": "sha512-0Yh0cN4yyF69DQXKvk8jYpFsvVLT4IztRVkKjoc/6uqAzNLEKdldvXC2cZ5nDcz4CyAWkg9IyTCdY+7g1q8Ufg==", "integrity": "sha512-dwBPNoE490LX9CRssNyz3nHKgpxwYvkRIhmTbjbFYXknzZWN18vx6WseD9tuzIFnlXdsJ/MoUhNZAxmT+VPhiw==",
"dev": true "dev": true
}, },
"@fluencelabs/avm": { "@fluencelabs/avm": {
"version": "0.14.0-async.20", "version": "0.14.4",
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.14.0-async.20.tgz", "resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.14.4.tgz",
"integrity": "sha512-VcH+d7ha0oswM61ji2oktfvy2MXYQAVSgF0l5ZoNm7Pm9lzk2/cK1WuuDZ7OEvN0WRAls8zYNkZbPScB8KKJQg==", "integrity": "sha512-XyR+1H5k0CAc+mDHOkl81viX8XeW1Yqbw793xbsfUfju5bUb/hqk+gHv3q8lAFdbrCG5P45gdOT08a5RNODZaQ==",
"requires": { "requires": {
"base64-js": "1.5.1" "base64-js": "1.5.1"
} }
}, },
"@fluencelabs/fluence": { "@fluencelabs/fluence": {
"version": "0.10.0-new-js-sdk-api.15", "version": "0.11.0",
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.10.0-new-js-sdk-api.15.tgz", "resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.11.0.tgz",
"integrity": "sha512-CCHQ2YYAoCvezt+ptdBphp9d0P1axWsZU103xOjNysFkvk2gt4h0aX00rz+PBRpWpNTg05DNuYcCj9YYlYadpA==", "integrity": "sha512-HfUS8eLwfviiJhqsrHnOnRxO20TbdahPreP6AkBXQaEpWeRew6vxAd0Dn+xdzy6KCJ4W9GOKLcgtPfqquIO2Pg==",
"requires": { "requires": {
"@chainsafe/libp2p-noise": "4.0.0", "@chainsafe/libp2p-noise": "4.0.0",
"@fluencelabs/avm": "0.14.0-async.20", "@fluencelabs/avm": "0.14.4",
"async": "3.2.0", "async": "3.2.0",
"base64-js": "^1.3.1", "base64-js": "1.5.1",
"bs58": "4.0.1", "bs58": "4.0.1",
"cids": "0.8.1", "cids": "0.8.1",
"it-length-prefixed": "3.0.1", "it-length-prefixed": "3.0.1",
@ -323,9 +323,9 @@
"integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ=="
}, },
"@types/node": { "@types/node": {
"version": "16.7.10", "version": "16.7.13",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.10.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.13.tgz",
"integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA==" "integrity": "sha512-pLUPDn+YG3FYEt/pHI74HmnJOWzeR+tOIQzUx93pi9M7D8OE7PSLr97HboXwk5F+JS+TLtWuzCOW97AHjmOXXA=="
}, },
"@types/retry": { "@types/retry": {
"version": "0.12.1", "version": "0.12.1",

View File

@ -5,20 +5,19 @@
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"exec": "node -r ts-node/register src/index.ts", "exec": "node -r ts-node/register src/index.ts",
"compile-aqua": "aqua-cli --import . -i ./aqua/ -o ./src/_aqua", "compile-aqua": "aqua --import . -i ./aqua/ -o ./src/_aqua",
"watch-aqua": "chokidar \"**/*.aqua\" -c \"npm run compile-aqua\"", "watch-aqua": "chokidar \"**/*.aqua\" -c \"npm run compile-aqua\""
"tmp": "java -jar ~/work/fluence/aqua-cli.jar -m node_modules --import . -i ./aqua/ -o ./src/_aqua"
}, },
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"devDependencies": { "devDependencies": {
"@fluencelabs/aqua-cli": "^0.2.1-219", "@fluencelabs/aqua": "^0.3.0-222",
"chokidar-cli": "^3.0.0", "chokidar-cli": "^3.0.0",
"ts-node": "^10.2.1", "ts-node": "^10.2.1",
"typescript": "^4.4.2" "typescript": "^4.4.2"
}, },
"dependencies": { "dependencies": {
"@fluencelabs/fluence": "0.10.0-new-js-sdk-api.15", "@fluencelabs/fluence": "0.11.0",
"@fluencelabs/fluence-network-environment": "1.0.10" "@fluencelabs/fluence-network-environment": "1.0.10"
} }
} }

View File

@ -3,7 +3,7 @@
* This file is auto-generated. Do not edit manually: changes may be erased. * This file is auto-generated. Do not edit manually: changes may be erased.
* Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * 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 * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues
* Aqua version: 0.2.2-SNAPSHOT * Aqua version: 0.3.0-222
* *
*/ */
import { FluencePeer } from "@fluencelabs/fluence"; import { FluencePeer } from "@fluencelabs/fluence";
@ -17,12 +17,12 @@ import {
// Services // Services
export interface CalcDef { export interface CalcDef {
add: (n: number, callParams: CallParams<"n">) => Promise<void> | void; add: (n: number, callParams: CallParams<"n">) => void;
divide: (n: number, callParams: CallParams<"n">) => Promise<void> | void; divide: (n: number, callParams: CallParams<"n">) => void;
getResult: (callParams: CallParams<null>) => Promise<number> | number; getResult: (callParams: CallParams<null>) => number;
multiply: (n: number, callParams: CallParams<"n">) => Promise<void> | void; multiply: (n: number, callParams: CallParams<"n">) => void;
reset: (callParams: CallParams<null>) => Promise<void> | void; reset: (callParams: CallParams<null>) => void;
subtract: (n: number, callParams: CallParams<"n">) => Promise<void> | void; subtract: (n: number, callParams: CallParams<"n">) => void;
} }
export function registerCalc(service: CalcDef): void; export function registerCalc(service: CalcDef): void;
@ -59,9 +59,9 @@ export function registerCalc(...args) {
service = args[2]; service = args[2];
} }
peer.callServiceHandler.use(async (req, resp, next) => { peer.internals.callServiceHandler.use((req, resp, next) => {
if (req.serviceId !== serviceId) { if (req.serviceId !== serviceId) {
await next(); next();
return; return;
} }
@ -73,7 +73,7 @@ export function registerCalc(...args) {
}, },
}; };
resp.retCode = ResultCodes.success; resp.retCode = ResultCodes.success;
await service.add(req.args[0], callParams); service.add(req.args[0], callParams);
resp.result = {}; resp.result = {};
} }
@ -85,7 +85,7 @@ export function registerCalc(...args) {
}, },
}; };
resp.retCode = ResultCodes.success; resp.retCode = ResultCodes.success;
await service.divide(req.args[0], callParams); service.divide(req.args[0], callParams);
resp.result = {}; resp.result = {};
} }
@ -95,7 +95,7 @@ export function registerCalc(...args) {
tetraplets: {}, tetraplets: {},
}; };
resp.retCode = ResultCodes.success; resp.retCode = ResultCodes.success;
resp.result = await service.getResult(callParams); resp.result = service.getResult(callParams);
} }
if (req.fnName === "multiply") { if (req.fnName === "multiply") {
@ -106,7 +106,7 @@ export function registerCalc(...args) {
}, },
}; };
resp.retCode = ResultCodes.success; resp.retCode = ResultCodes.success;
await service.multiply(req.args[0], callParams); service.multiply(req.args[0], callParams);
resp.result = {}; resp.result = {};
} }
@ -116,7 +116,7 @@ export function registerCalc(...args) {
tetraplets: {}, tetraplets: {},
}; };
resp.retCode = ResultCodes.success; resp.retCode = ResultCodes.success;
await service.reset(callParams); service.reset(callParams);
resp.result = {}; resp.result = {};
} }
@ -128,93 +128,12 @@ export function registerCalc(...args) {
}, },
}; };
resp.retCode = ResultCodes.success; resp.retCode = ResultCodes.success;
await service.subtract(req.args[0], callParams); service.subtract(req.args[0], callParams);
resp.result = {}; resp.result = {};
} }
await next(); next();
}); });
} }
// Functions // Functions
export async function demoCalculation(config?: {
ttl?: number;
}): Promise<number>;
export async function demoCalculation(
peer: FluencePeer,
config?: { ttl?: number }
): Promise<number>;
export async function demoCalculation(...args) {
let peer: FluencePeer;
let config;
if (args[0] instanceof FluencePeer) {
peer = args[0];
config = args[1];
} else {
peer = FluencePeer.default;
config = args[0];
}
let request: RequestFlow;
const promise = new Promise<number>((resolve, reject) => {
const r = new RequestFlowBuilder()
.disableInjections()
.withRawScript(
`
(xor
(seq
(seq
(seq
(seq
(seq
(seq
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
(call %init_peer_id% ("calc" "add") [10])
)
(call %init_peer_id% ("calc" "multiply") [5])
)
(call %init_peer_id% ("calc" "subtract") [8])
)
(call %init_peer_id% ("calc" "divide") [6])
)
(call %init_peer_id% ("calc" "getResult") [] res)
)
(xor
(call %init_peer_id% ("callbackSrv" "response") [res])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
)
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
)
`
)
.configHandler((h) => {
h.on("getDataSrv", "-relay-", async () => {
return peer.connectionInfo.connectedRelays[0] || null;
});
h.onEvent("callbackSrv", "response", async (args) => {
const [res] = args;
resolve(res);
});
h.onEvent("errorHandlingSrv", "error", async (args) => {
const [err] = args;
reject(err);
});
})
.handleScriptError(reject)
.handleTimeout(() => {
reject("Request timed out for demoCalculation");
});
if (config && config.ttl) {
r.withTTL(config.ttl);
}
request = r.build();
});
await peer.initiateFlow(request!);
return promise;
}

View File

@ -0,0 +1,122 @@
/**
*
* 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.3.0-222
*
*/
import { FluencePeer } from '@fluencelabs/fluence';
import {
ResultCodes,
RequestFlow,
RequestFlowBuilder,
CallParams,
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
// Services
// Functions
export function demoCalculation(config?: {ttl?: number}) : Promise<number>;
export function demoCalculation(peer: FluencePeer, config?: {ttl?: number}) : Promise<number>;
export function demoCalculation(...args) {
let peer: FluencePeer;
let config;
if (args[0] instanceof FluencePeer) {
peer = args[0];
config = args[1];
} else {
peer = FluencePeer.default;
config = args[0];
}
let request: RequestFlow;
const promise = new Promise<number>((resolve, reject) => {
const r = new RequestFlowBuilder()
.disableInjections()
.withRawScript(
`
(xor
(seq
(seq
(seq
(seq
(seq
(seq
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
(call -relay- ("op" "noop") [])
)
(call "12D3KooWSD5PToNiLQwKDXsu8JSysCwUt8BVUJEqCHcDe7P5h45e" ("op" "noop") [])
)
(xor
(seq
(seq
(seq
(seq
(call "12D3KooWLBkw4Tz8bRoSriy5WEpHyWfU11jEK3b5yCa7FBRDRWH3" ("calc" "add") [10])
(call "12D3KooWLBkw4Tz8bRoSriy5WEpHyWfU11jEK3b5yCa7FBRDRWH3" ("calc" "multiply") [5])
)
(call "12D3KooWLBkw4Tz8bRoSriy5WEpHyWfU11jEK3b5yCa7FBRDRWH3" ("calc" "subtract") [8])
)
(call "12D3KooWLBkw4Tz8bRoSriy5WEpHyWfU11jEK3b5yCa7FBRDRWH3" ("calc" "divide") [6])
)
(call "12D3KooWLBkw4Tz8bRoSriy5WEpHyWfU11jEK3b5yCa7FBRDRWH3" ("calc" "getResult") [] res)
)
(seq
(seq
(seq
(call "12D3KooWSD5PToNiLQwKDXsu8JSysCwUt8BVUJEqCHcDe7P5h45e" ("op" "noop") [])
(call -relay- ("op" "noop") [])
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
)
(call -relay- ("op" "noop") [])
)
)
)
(call "12D3KooWSD5PToNiLQwKDXsu8JSysCwUt8BVUJEqCHcDe7P5h45e" ("op" "noop") [])
)
(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 peer.connectionInfo.connectedRelay ;
});
h.onEvent('callbackSrv', 'response', (args) => {
const [res] = args;
resolve(res);
});
h.onEvent('errorHandlingSrv', 'error', (args) => {
const [err] = args;
reject(err);
});
})
.handleScriptError(reject)
.handleTimeout(() => {
reject('Request timed out for demoCalculation');
})
if(config && config.ttl) {
r.withTTL(config.ttl)
}
request = r.build();
});
peer.internals.initiateFlow(request!);
return promise;
}

View File

@ -49,10 +49,7 @@ async function main() {
console.log("application started"); console.log("application started");
console.log("peer id is: ", FluencePeer.default.connectionInfo.selfPeerId); console.log("peer id is: ", FluencePeer.default.connectionInfo.selfPeerId);
console.log( console.log("relay is: ", FluencePeer.default.connectionInfo.connectedRelay);
"relay is: ",
FluencePeer.default.connectionInfo.connectedRelays[0]
);
console.log("press any key to continue"); console.log("press any key to continue");
await keypress(); await keypress();