skipped recursive stream test, update aqua and fluencejs

This commit is contained in:
DieMyst 2022-03-02 18:15:00 +03:00
parent 0e8db7cb20
commit 13b4c58855
6 changed files with 216 additions and 73 deletions

View File

@ -0,0 +1,15 @@
service YesNoService("yesno"):
get() -> string
func recursiveStream() -> []string:
result: *string
loop: *string
loop <<- "yes"
for l <- loop:
if l == "yes":
loop <- YesNoService.get()
else:
loop <- YesNoService.get()
result <<- "success"
<- result

119
package-lock.json generated
View File

@ -10,7 +10,7 @@
"license": "MIT",
"dependencies": {
"@fluencelabs/aqua-dht-ts": "0.1.38",
"@fluencelabs/fluence": "0.20.1",
"@fluencelabs/fluence": "0.21.0",
"@fluencelabs/fluence-network-environment": "1.0.13",
"deep-equal": "^2.0.5"
},
@ -18,7 +18,7 @@
"fldist": "dist/index.js"
},
"devDependencies": {
"@fluencelabs/aqua": "0.6.1-279",
"@fluencelabs/aqua": "0.6.2-281",
"@fluencelabs/aqua-dht": "0.2.5",
"@fluencelabs/aqua-lib": "0.4.0",
"@types/jest": "^27.0.2",
@ -696,14 +696,14 @@
"integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg=="
},
"node_modules/@fluencelabs/aqua": {
"version": "0.6.1-279",
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.6.1-279.tgz",
"integrity": "sha512-SOak1PMEBB6I9W8BToabczaqgpHZCH1f0LToCwQBKSiThiWDnXM5VUNY3qVqtpwjhMfxZa3YuFP+LUycYwmSCA==",
"version": "0.6.2-281",
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.6.2-281.tgz",
"integrity": "sha512-iXlD6+V05tlnwhiXOwEjJ1noHB1dQr8AY1skwu40pXxeP+BX2NjrbSx28kByprfZvK3NykB0N7BNY6pbZpE7eQ==",
"dev": true,
"dependencies": {
"@fluencelabs/aqua-ipfs": "0.5.2",
"@fluencelabs/aqua-lib": "0.4.0",
"@fluencelabs/fluence": "0.19.2",
"@fluencelabs/fluence": "0.20.2",
"@fluencelabs/fluence-network-environment": "1.0.13",
"ipfs-http-client": "50.1.2"
},
@ -832,38 +832,25 @@
}
},
"node_modules/@fluencelabs/aqua/node_modules/@fluencelabs/avm": {
"version": "0.20.5",
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.20.5.tgz",
"integrity": "sha512-DhCnSzbG8hSkR1C0G/ci3jF+DciJVKpftO80GOdDYi1AXu6dYuqhZSOyWzMSwiHebprk1TDGZ/GSoQ6AGd4lLw==",
"version": "0.20.8",
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.20.8.tgz",
"integrity": "sha512-RF5Vb3USgr7gU0gcXCGYgN9rBXcucgwTgGeUjHOYWQIwuzD795DKjGPbgzfKWWCKFWjz5w/Gimi5beTDvbstOQ==",
"dev": true,
"bin": {
"copy-avm": "dist/copyAvm.js"
}
},
"node_modules/@fluencelabs/aqua/node_modules/@fluencelabs/avm-runner-background": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/@fluencelabs/avm-runner-background/-/avm-runner-background-0.1.2.tgz",
"integrity": "sha512-06E8l6ZLkWkpWas1TTojVrs+tekOg/OvnNI6/GKdm4zJL/9ePxW1WYE8Ieg1dIk6FpcP+ZxcEfZZKDoDwn68pQ==",
"dev": true,
"dependencies": {
"@fluencelabs/avm-runner-interface": "^0.2.0",
"browser-or-node": "^2.0.0",
"threads": "^1.7.0"
},
"bin": {
"copy-avm-runner": "dist/copyRunnerScript.js"
}
},
"node_modules/@fluencelabs/aqua/node_modules/@fluencelabs/fluence": {
"version": "0.19.2",
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.19.2.tgz",
"integrity": "sha512-kPt8bOP0kx5sT5vc4XvAoXQsfm7fLBwreks3dZqu1RmJkWbBE1V48/qfJH2AupBRciGh5vztXvu3YeI5csmOmA==",
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.20.2.tgz",
"integrity": "sha512-ZvMSwTqGRb2macWoGi+MVC0AwWhWacsVFRSnSp0cQT79So7o2U6+dRNv95V//ttPrC9zlElDehJ0JzY5uxzJLQ==",
"dev": true,
"dependencies": {
"@chainsafe/libp2p-noise": "^4.1.1",
"@fluencelabs/avm": " 0.20.5",
"@fluencelabs/avm-runner-background": "0.1.2",
"@fluencelabs/avm": "0.20.8",
"@fluencelabs/avm-runner-background": "0.2.0",
"@fluencelabs/avm-runner-interface": "^0.2.0",
"@fluencelabs/marine-js": "0.1.0",
"async": "3.2.0",
"browser-or-node": "^2.0.0",
"bs58": "4.0.1",
@ -960,9 +947,9 @@
"dev": true
},
"node_modules/@fluencelabs/aqua/node_modules/ipfs-utils": {
"version": "9.0.4",
"resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.4.tgz",
"integrity": "sha512-cfLKk004KLoEWJhBx4zg3mCro6mkiNhyGIlT7OZX9zxO1UqvLWpvW7cSZ1b1fbUIZ8qI7X2B7PeKlXC7jSfZ7g==",
"version": "9.0.5",
"resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.5.tgz",
"integrity": "sha512-GXWfsq/nKtwkcTI4+KGc4CU9EFXjtkWaGcFAsnm177kAhA0Fnn8aWNRaF/C0xFraUIl1wTAUTWkaGKigVyfsTw==",
"dev": true,
"dependencies": {
"any-signal": "^3.0.0",
@ -1212,9 +1199,9 @@
"dev": true
},
"node_modules/@fluencelabs/avm": {
"version": "0.20.8",
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.20.8.tgz",
"integrity": "sha512-RF5Vb3USgr7gU0gcXCGYgN9rBXcucgwTgGeUjHOYWQIwuzD795DKjGPbgzfKWWCKFWjz5w/Gimi5beTDvbstOQ==",
"version": "0.21.0",
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.21.0.tgz",
"integrity": "sha512-rfPoosyZV8LF5PAu37T0FPSl6jowU7+t+Vw41g3Jvr9k0Lbu7RaWTHJP0zpMiYtlQXZ9iSxJAqPeZmJ7VtDDYA==",
"bin": {
"copy-avm": "dist/copyAvm.js"
}
@ -1238,12 +1225,12 @@
"integrity": "sha512-Y41pL+UwZZVdormxju8cJQsNRp6tdER0VqJ9Kg9gH2wd1KJAaYTJkyVbn8NB7fEFRUbqfbb1BXHi9wWBYOgGYQ=="
},
"node_modules/@fluencelabs/fluence": {
"version": "0.20.1",
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.20.1.tgz",
"integrity": "sha512-fGWmO+9WWyXpKaaBMj0kGjIfSV3Soq5SOckSDtXVFm7z5fbRshrrG5e3iDrmPepaAv2vVzwKIsudrcPVYepD0g==",
"version": "0.21.0",
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.21.0.tgz",
"integrity": "sha512-Zbos4k73jode29STpeEVfYDIsNhh3sIdgpwA2nm/qyIuEBrFgbI9UXpdAvX41wiwuL5EKprHrr0F1IEaFL8MVw==",
"dependencies": {
"@chainsafe/libp2p-noise": "^4.1.1",
"@fluencelabs/avm": "0.20.8",
"@fluencelabs/avm": "0.21.0",
"@fluencelabs/avm-runner-background": "0.2.0",
"@fluencelabs/avm-runner-interface": "^0.2.0",
"@fluencelabs/marine-js": "0.1.0",
@ -9889,14 +9876,14 @@
}
},
"@fluencelabs/aqua": {
"version": "0.6.1-279",
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.6.1-279.tgz",
"integrity": "sha512-SOak1PMEBB6I9W8BToabczaqgpHZCH1f0LToCwQBKSiThiWDnXM5VUNY3qVqtpwjhMfxZa3YuFP+LUycYwmSCA==",
"version": "0.6.2-281",
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.6.2-281.tgz",
"integrity": "sha512-iXlD6+V05tlnwhiXOwEjJ1noHB1dQr8AY1skwu40pXxeP+BX2NjrbSx28kByprfZvK3NykB0N7BNY6pbZpE7eQ==",
"dev": true,
"requires": {
"@fluencelabs/aqua-ipfs": "0.5.2",
"@fluencelabs/aqua-lib": "0.4.0",
"@fluencelabs/fluence": "0.19.2",
"@fluencelabs/fluence": "0.20.2",
"@fluencelabs/fluence-network-environment": "1.0.13",
"ipfs-http-client": "50.1.2"
},
@ -9948,32 +9935,22 @@
}
},
"@fluencelabs/avm": {
"version": "0.20.5",
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.20.5.tgz",
"integrity": "sha512-DhCnSzbG8hSkR1C0G/ci3jF+DciJVKpftO80GOdDYi1AXu6dYuqhZSOyWzMSwiHebprk1TDGZ/GSoQ6AGd4lLw==",
"version": "0.20.8",
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.20.8.tgz",
"integrity": "sha512-RF5Vb3USgr7gU0gcXCGYgN9rBXcucgwTgGeUjHOYWQIwuzD795DKjGPbgzfKWWCKFWjz5w/Gimi5beTDvbstOQ==",
"dev": true
},
"@fluencelabs/avm-runner-background": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/@fluencelabs/avm-runner-background/-/avm-runner-background-0.1.2.tgz",
"integrity": "sha512-06E8l6ZLkWkpWas1TTojVrs+tekOg/OvnNI6/GKdm4zJL/9ePxW1WYE8Ieg1dIk6FpcP+ZxcEfZZKDoDwn68pQ==",
"dev": true,
"requires": {
"@fluencelabs/avm-runner-interface": "^0.2.0",
"browser-or-node": "^2.0.0",
"threads": "^1.7.0"
}
},
"@fluencelabs/fluence": {
"version": "0.19.2",
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.19.2.tgz",
"integrity": "sha512-kPt8bOP0kx5sT5vc4XvAoXQsfm7fLBwreks3dZqu1RmJkWbBE1V48/qfJH2AupBRciGh5vztXvu3YeI5csmOmA==",
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.20.2.tgz",
"integrity": "sha512-ZvMSwTqGRb2macWoGi+MVC0AwWhWacsVFRSnSp0cQT79So7o2U6+dRNv95V//ttPrC9zlElDehJ0JzY5uxzJLQ==",
"dev": true,
"requires": {
"@chainsafe/libp2p-noise": "^4.1.1",
"@fluencelabs/avm": " 0.20.5",
"@fluencelabs/avm-runner-background": "0.1.2",
"@fluencelabs/avm": "0.20.8",
"@fluencelabs/avm-runner-background": "0.2.0",
"@fluencelabs/avm-runner-interface": "^0.2.0",
"@fluencelabs/marine-js": "0.1.0",
"async": "3.2.0",
"browser-or-node": "^2.0.0",
"bs58": "4.0.1",
@ -10049,9 +10026,9 @@
"dev": true
},
"ipfs-utils": {
"version": "9.0.4",
"resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.4.tgz",
"integrity": "sha512-cfLKk004KLoEWJhBx4zg3mCro6mkiNhyGIlT7OZX9zxO1UqvLWpvW7cSZ1b1fbUIZ8qI7X2B7PeKlXC7jSfZ7g==",
"version": "9.0.5",
"resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.5.tgz",
"integrity": "sha512-GXWfsq/nKtwkcTI4+KGc4CU9EFXjtkWaGcFAsnm177kAhA0Fnn8aWNRaF/C0xFraUIl1wTAUTWkaGKigVyfsTw==",
"dev": true,
"requires": {
"any-signal": "^3.0.0",
@ -10374,9 +10351,9 @@
"dev": true
},
"@fluencelabs/avm": {
"version": "0.20.8",
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.20.8.tgz",
"integrity": "sha512-RF5Vb3USgr7gU0gcXCGYgN9rBXcucgwTgGeUjHOYWQIwuzD795DKjGPbgzfKWWCKFWjz5w/Gimi5beTDvbstOQ=="
"version": "0.21.0",
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.21.0.tgz",
"integrity": "sha512-rfPoosyZV8LF5PAu37T0FPSl6jowU7+t+Vw41g3Jvr9k0Lbu7RaWTHJP0zpMiYtlQXZ9iSxJAqPeZmJ7VtDDYA=="
},
"@fluencelabs/avm-runner-background": {
"version": "0.2.0",
@ -10394,12 +10371,12 @@
"integrity": "sha512-Y41pL+UwZZVdormxju8cJQsNRp6tdER0VqJ9Kg9gH2wd1KJAaYTJkyVbn8NB7fEFRUbqfbb1BXHi9wWBYOgGYQ=="
},
"@fluencelabs/fluence": {
"version": "0.20.1",
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.20.1.tgz",
"integrity": "sha512-fGWmO+9WWyXpKaaBMj0kGjIfSV3Soq5SOckSDtXVFm7z5fbRshrrG5e3iDrmPepaAv2vVzwKIsudrcPVYepD0g==",
"version": "0.21.0",
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.21.0.tgz",
"integrity": "sha512-Zbos4k73jode29STpeEVfYDIsNhh3sIdgpwA2nm/qyIuEBrFgbI9UXpdAvX41wiwuL5EKprHrr0F1IEaFL8MVw==",
"requires": {
"@chainsafe/libp2p-noise": "^4.1.1",
"@fluencelabs/avm": "0.20.8",
"@fluencelabs/avm": "0.21.0",
"@fluencelabs/avm-runner-background": "0.2.0",
"@fluencelabs/avm-runner-interface": "^0.2.0",
"@fluencelabs/marine-js": "0.1.0",

View File

@ -29,7 +29,7 @@
"do": "aqua dist deploy --addr /dns4/kras-04.fluence.dev/tcp/19001/wss/p2p/12D3KooWFEwNWcHqi9rtsmDhsYcDbRUCDXH84RC4FW6UfsFWaoHi --data-path deploy.json --service tsOracle"
},
"devDependencies": {
"@fluencelabs/aqua": "0.6.1-279",
"@fluencelabs/aqua": "0.6.2-281",
"@fluencelabs/aqua-dht": "0.2.5",
"@fluencelabs/aqua-lib": "0.4.0",
"@types/jest": "^27.0.2",
@ -40,7 +40,7 @@
},
"dependencies": {
"@fluencelabs/aqua-dht-ts": "0.1.38",
"@fluencelabs/fluence": "0.20.1",
"@fluencelabs/fluence": "0.21.0",
"@fluencelabs/fluence-network-environment": "1.0.13",
"deep-equal": "^2.0.5"
},

View File

@ -35,6 +35,7 @@ import {streamCallbackCall} from "../examples/streamCallback";
import {streamResCall} from "../examples/streamRestrictionsCall";
import {joinIdxCall, joinIdxLocalCall, joinIdxRelayCall} from "../examples/joinCall";
import {topologyBug427} from "../compiled/examples/topology";
import {recursiveStreamsCall} from "../examples/recursiveStreamsCall";
var selfPeerId: string;
var peer2: FluencePeer;
@ -161,6 +162,13 @@ describe('Testing examples', () => {
expect(streamCanResult).toEqual([["a"], ["b"], []]);
});
it.skip('recursiveStreams.aqua', async () => {
let recResult = await recursiveStreamsCall();
console.log(recResult)
expect(recResult.length).toEqual(3);
});
it('streamCallback.aqua', async () => {
let streamCallResult = await streamCallbackCall();
expect(streamCallResult).toEqual([]);

View File

@ -0,0 +1,123 @@
/**
*
* 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.6.2-281
*
*/
import { Fluence, FluencePeer } from '@fluencelabs/fluence';
import {
CallParams,
callFunction,
registerService,
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v2';
// Services
export interface YesNoServiceDef {
get: (callParams: CallParams<null>) => string | Promise<string>;
}
export function registerYesNoService(service: YesNoServiceDef): void;
export function registerYesNoService(serviceId: string, service: YesNoServiceDef): void;
export function registerYesNoService(peer: FluencePeer, service: YesNoServiceDef): void;
export function registerYesNoService(peer: FluencePeer, serviceId: string, service: YesNoServiceDef): void;
export function registerYesNoService(...args: any) {
registerService(
args,
{
"defaultServiceId" : "yesno",
"functions" : [
{
"functionName" : "get",
"argDefs" : [
],
"returnType" : {
"tag" : "primitive"
}
}
]
}
);
}
// Functions
export function recursiveStream(
config?: {ttl?: number}
): Promise<string[]>;
export function recursiveStream(
peer: FluencePeer,
config?: {ttl?: number}
): Promise<string[]>;
export function recursiveStream(...args: any) {
let script = `
(xor
(seq
(seq
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
(new $loop
(new $result
(seq
(seq
(ap "yes" $loop)
(fold $loop l
(seq
(seq
(xor
(match l "yes"
(xor
(call %init_peer_id% ("yesno" "get") [] $loop)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
)
)
(call %init_peer_id% ("yesno" "get") [] $loop)
)
(ap "success" $result)
)
(next l)
)
)
)
(call %init_peer_id% ("op" "identity") [$result] result-fix)
)
)
)
)
(xor
(call %init_peer_id% ("callbackSrv" "response") [result-fix])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
)
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
)
`
return callFunction(
args,
{
"functionName" : "recursiveStream",
"returnType" : {
"tag" : "primitive"
},
"argDefs" : [
],
"names" : {
"relay" : "-relay-",
"getDataSrv" : "getDataSrv",
"callbackSrv" : "callbackSrv",
"responseSrv" : "callbackSrv",
"responseFnName" : "response",
"errorHandlingSrv" : "errorHandlingSrv",
"errorFnName" : "error"
}
},
script
)
}

View File

@ -0,0 +1,20 @@
import {recursiveStream, registerYesNoService} from "../compiled/examples/recursiveStreams";
export async function recursiveStreamsCall(): Promise<string[]> {
let i = 0;
registerYesNoService({
get: () => {
i++;
if (i > 3) {
console.log("return no")
return "no"
} else {
console.log("return yes")
return "yes"
}
}
})
return await recursiveStream()
}