mirror of
https://github.com/fluencelabs/examples
synced 2025-06-22 22:31:32 +00:00
Rewrite JS SDK examples with release version of libraries
This commit is contained in:
42
js-sdk/hello-world/package-lock.json
generated
42
js-sdk/hello-world/package-lock.json
generated
@ -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",
|
||||
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
@ -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()]);
|
||||
}
|
||||
|
||||
|
@ -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() {
|
||||
|
13
js-sdk/node-example/aqua/demo-calculation.aqua
Normal file
13
js-sdk/node-example/aqua/demo-calculation.aqua
Normal 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
|
@ -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
|
30
js-sdk/node-example/package-lock.json
generated
30
js-sdk/node-example/package-lock.json
generated
@ -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",
|
||||
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
122
js-sdk/node-example/src/_aqua/demo-calculation.ts
Normal file
122
js-sdk/node-example/src/_aqua/demo-calculation.ts
Normal 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;
|
||||
}
|
||||
|
@ -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();
|
||||
|
||||
|
Reference in New Issue
Block a user