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

View File

@ -5,20 +5,19 @@
"main": "index.js",
"scripts": {
"exec": "node -r ts-node/register src/index.ts",
"compile-aqua": "aqua-cli --import . -i ./aqua/ -o ./src/_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"
"compile-aqua": "aqua --import . -i ./aqua/ -o ./src/_aqua",
"watch-aqua": "chokidar \"**/*.aqua\" -c \"npm run compile-aqua\""
},
"author": "",
"license": "ISC",
"devDependencies": {
"@fluencelabs/aqua-cli": "^0.2.1-219",
"@fluencelabs/aqua": "^0.3.0-222",
"chokidar-cli": "^3.0.0",
"ts-node": "^10.2.1",
"typescript": "^4.4.2"
},
"dependencies": {
"@fluencelabs/fluence": "0.10.0-new-js-sdk-api.14",
"@fluencelabs/fluence": "0.11.0",
"@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.
* 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.2.0-SNAPSHOT
* Aqua version: 0.3.0-222
*
*/
import { FluencePeer } from "@fluencelabs/fluence";
import { FluencePeer } from '@fluencelabs/fluence';
import {
ResultCodes,
RequestFlow,
RequestFlowBuilder,
CallParams,
} from "@fluencelabs/fluence/dist/internal/compilerSupport/v1";
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
// Services
export function registerHelloWorld(service: {
hello: (str: string, callParams: CallParams<"str">) => Promise<void>;
}): void;
export function registerHelloWorld(
serviceId: string,
service: {
hello: (str: string, callParams: CallParams<"str">) => Promise<void>;
export interface HelloWorldDef {
hello: (str: string, callParams: CallParams<'str'>) => void;
}
): void;
export function registerHelloWorld(
peer: FluencePeer,
service: {
hello: (str: string, callParams: CallParams<"str">) => Promise<void>;
}
): void;
export function registerHelloWorld(
peer: FluencePeer,
serviceId: string,
service: {
hello: (str: string, callParams: CallParams<"str">) => Promise<void>;
}
): void;
export function registerHelloWorld(...args) {
export function registerHelloWorld(service: HelloWorldDef): void;
export function registerHelloWorld(serviceId: string, service: HelloWorldDef): void;
export function registerHelloWorld(peer: FluencePeer, service: HelloWorldDef): void;
export function registerHelloWorld(peer: FluencePeer, serviceId: string, service: HelloWorldDef): void;
export function registerHelloWorld(...args) {
let peer: FluencePeer;
let serviceId;
let service;
@ -48,52 +35,54 @@ export function registerHelloWorld(...args) {
peer = FluencePeer.default;
}
if (typeof args[0] === "string") {
if (typeof args[0] === 'string') {
serviceId = args[0];
} else if (typeof args[1] === "string") {
} else if (typeof args[1] === 'string') {
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];
} else if (typeof args[1] === "object") {
} else if (typeof args[1] === 'object') {
service = args[1];
} else {
service = args[2];
}
peer.callServiceHandler.use(async (req, resp, next) => {
peer.internals.callServiceHandler.use((req, resp, next) => {
if (req.serviceId !== serviceId) {
await next();
next();
return;
}
if (req.fnName === "hello") {
if (req.fnName === 'hello') {
const callParams = {
...req.particleContext,
tetraplets: {
str: req.tetraplets[0],
str: req.tetraplets[0]
},
};
resp.retCode = ResultCodes.success;
await service.hello(req.args[0], callParams);
resp.result = {};
service.hello(req.args[0], callParams); resp.result = {}
}
await next();
next();
});
}
}
// Functions
export async function sayHello(config?: { ttl?: number }): Promise<void>;
export async function sayHello(
peer: FluencePeer,
config?: { ttl?: number }
): Promise<void>;
export async function sayHello(...args) {
export function sayHello(config?: {ttl?: number}) : Promise<void>;
export function sayHello(peer: FluencePeer, config?: {ttl?: number}) : Promise<void>;
export function sayHello(...args) {
let peer: FluencePeer;
let config;
@ -119,29 +108,32 @@ export async function sayHello(...args) {
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
)
`
`,
)
.configHandler((h) => {
h.on("getDataSrv", "-relay-", async () => {
return peer.connectionInfo.connectedRelays[0] || null;
h.on('getDataSrv', '-relay-', () => {
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;
reject(err);
});
})
.handleScriptError(reject)
.handleTimeout(() => {
reject("Request timed out for sayHello");
});
if (config && config.ttl) {
r.withTTL(config.ttl);
reject('Request timed out for sayHello');
})
if(config && config.ttl) {
r.withTTL(config.ttl)
}
request = r.build();
});
await peer.initiateFlow(request!);
peer.internals.initiateFlow(request!);
return Promise.race([promise, Promise.resolve()]);
}

View File

@ -1,5 +1,4 @@
import { FluencePeer, randomPeerId } from "@fluencelabs/fluence";
import { krasnodar } from "@fluencelabs/fluence-network-environment";
import { FluencePeer } from "@fluencelabs/fluence";
import { registerHelloWorld, sayHello } from "./_aqua/hello-world";
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"
}
},
"@fluencelabs/aqua-cli": {
"version": "0.2.1-219",
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua-cli/-/aqua-cli-0.2.1-219.tgz",
"integrity": "sha512-0Yh0cN4yyF69DQXKvk8jYpFsvVLT4IztRVkKjoc/6uqAzNLEKdldvXC2cZ5nDcz4CyAWkg9IyTCdY+7g1q8Ufg==",
"@fluencelabs/aqua": {
"version": "0.3.0-222",
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.3.0-222.tgz",
"integrity": "sha512-dwBPNoE490LX9CRssNyz3nHKgpxwYvkRIhmTbjbFYXknzZWN18vx6WseD9tuzIFnlXdsJ/MoUhNZAxmT+VPhiw==",
"dev": true
},
"@fluencelabs/avm": {
"version": "0.14.0-async.20",
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.14.0-async.20.tgz",
"integrity": "sha512-VcH+d7ha0oswM61ji2oktfvy2MXYQAVSgF0l5ZoNm7Pm9lzk2/cK1WuuDZ7OEvN0WRAls8zYNkZbPScB8KKJQg==",
"version": "0.14.4",
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.14.4.tgz",
"integrity": "sha512-XyR+1H5k0CAc+mDHOkl81viX8XeW1Yqbw793xbsfUfju5bUb/hqk+gHv3q8lAFdbrCG5P45gdOT08a5RNODZaQ==",
"requires": {
"base64-js": "1.5.1"
}
},
"@fluencelabs/fluence": {
"version": "0.10.0-new-js-sdk-api.15",
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.10.0-new-js-sdk-api.15.tgz",
"integrity": "sha512-CCHQ2YYAoCvezt+ptdBphp9d0P1axWsZU103xOjNysFkvk2gt4h0aX00rz+PBRpWpNTg05DNuYcCj9YYlYadpA==",
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.11.0.tgz",
"integrity": "sha512-HfUS8eLwfviiJhqsrHnOnRxO20TbdahPreP6AkBXQaEpWeRew6vxAd0Dn+xdzy6KCJ4W9GOKLcgtPfqquIO2Pg==",
"requires": {
"@chainsafe/libp2p-noise": "4.0.0",
"@fluencelabs/avm": "0.14.0-async.20",
"@fluencelabs/avm": "0.14.4",
"async": "3.2.0",
"base64-js": "^1.3.1",
"base64-js": "1.5.1",
"bs58": "4.0.1",
"cids": "0.8.1",
"it-length-prefixed": "3.0.1",
@ -323,9 +323,9 @@
"integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ=="
},
"@types/node": {
"version": "16.7.10",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.10.tgz",
"integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA=="
"version": "16.7.13",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.13.tgz",
"integrity": "sha512-pLUPDn+YG3FYEt/pHI74HmnJOWzeR+tOIQzUx93pi9M7D8OE7PSLr97HboXwk5F+JS+TLtWuzCOW97AHjmOXXA=="
},
"@types/retry": {
"version": "0.12.1",

View File

@ -5,20 +5,19 @@
"main": "index.js",
"scripts": {
"exec": "node -r ts-node/register src/index.ts",
"compile-aqua": "aqua-cli --import . -i ./aqua/ -o ./src/_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"
"compile-aqua": "aqua --import . -i ./aqua/ -o ./src/_aqua",
"watch-aqua": "chokidar \"**/*.aqua\" -c \"npm run compile-aqua\""
},
"author": "",
"license": "ISC",
"devDependencies": {
"@fluencelabs/aqua-cli": "^0.2.1-219",
"@fluencelabs/aqua": "^0.3.0-222",
"chokidar-cli": "^3.0.0",
"ts-node": "^10.2.1",
"typescript": "^4.4.2"
},
"dependencies": {
"@fluencelabs/fluence": "0.10.0-new-js-sdk-api.15",
"@fluencelabs/fluence": "0.11.0",
"@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.
* 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.2.2-SNAPSHOT
* Aqua version: 0.3.0-222
*
*/
import { FluencePeer } from "@fluencelabs/fluence";
@ -17,12 +17,12 @@ import {
// Services
export interface CalcDef {
add: (n: number, callParams: CallParams<"n">) => Promise<void> | void;
divide: (n: number, callParams: CallParams<"n">) => Promise<void> | void;
getResult: (callParams: CallParams<null>) => Promise<number> | number;
multiply: (n: number, callParams: CallParams<"n">) => Promise<void> | void;
reset: (callParams: CallParams<null>) => Promise<void> | void;
subtract: (n: number, callParams: CallParams<"n">) => Promise<void> | void;
add: (n: number, callParams: CallParams<"n">) => void;
divide: (n: number, callParams: CallParams<"n">) => void;
getResult: (callParams: CallParams<null>) => number;
multiply: (n: number, callParams: CallParams<"n">) => void;
reset: (callParams: CallParams<null>) => void;
subtract: (n: number, callParams: CallParams<"n">) => void;
}
export function registerCalc(service: CalcDef): void;
@ -59,9 +59,9 @@ export function registerCalc(...args) {
service = args[2];
}
peer.callServiceHandler.use(async (req, resp, next) => {
peer.internals.callServiceHandler.use((req, resp, next) => {
if (req.serviceId !== serviceId) {
await next();
next();
return;
}
@ -73,7 +73,7 @@ export function registerCalc(...args) {
},
};
resp.retCode = ResultCodes.success;
await service.add(req.args[0], callParams);
service.add(req.args[0], callParams);
resp.result = {};
}
@ -85,7 +85,7 @@ export function registerCalc(...args) {
},
};
resp.retCode = ResultCodes.success;
await service.divide(req.args[0], callParams);
service.divide(req.args[0], callParams);
resp.result = {};
}
@ -95,7 +95,7 @@ export function registerCalc(...args) {
tetraplets: {},
};
resp.retCode = ResultCodes.success;
resp.result = await service.getResult(callParams);
resp.result = service.getResult(callParams);
}
if (req.fnName === "multiply") {
@ -106,7 +106,7 @@ export function registerCalc(...args) {
},
};
resp.retCode = ResultCodes.success;
await service.multiply(req.args[0], callParams);
service.multiply(req.args[0], callParams);
resp.result = {};
}
@ -116,7 +116,7 @@ export function registerCalc(...args) {
tetraplets: {},
};
resp.retCode = ResultCodes.success;
await service.reset(callParams);
service.reset(callParams);
resp.result = {};
}
@ -128,93 +128,12 @@ export function registerCalc(...args) {
},
};
resp.retCode = ResultCodes.success;
await service.subtract(req.args[0], callParams);
service.subtract(req.args[0], callParams);
resp.result = {};
}
await next();
next();
});
}
// 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("peer id is: ", FluencePeer.default.connectionInfo.selfPeerId);
console.log(
"relay is: ",
FluencePeer.default.connectionInfo.connectedRelays[0]
);
console.log("relay is: ", FluencePeer.default.connectionInfo.connectedRelay);
console.log("press any key to continue");
await keypress();