update libs. add tests

This commit is contained in:
DieMyst 2022-11-22 23:40:59 +04:00
parent 072cdaeaf3
commit 81115ffeda
8 changed files with 118 additions and 130 deletions

11
aqua/examples/object.aqua Normal file
View File

@ -0,0 +1,11 @@
data InnerObj:
arr: []string
num: u32
data SomeObj:
str: string
num: u64
inner: InnerObj
func getObj() -> SomeObj:
<- SomeObj("some str", 5, InnerObj(["a", "b", "c"], 6))

View File

@ -1,4 +1,5 @@
import "@fluencelabs/aqua-lib/builtin.aqua"
import "println.aqua"
service Stringer("stringer-id"):
returnString: string -> string
@ -41,9 +42,21 @@ func streamFunctor(arr: []string) -> string:
a = stream[arr.length - 1][0]
<- a
func streamJoin(arr: []string) -> string:
func streamAssignment(arr: []string) -> string:
stream: *[]u32
stream <<- [0]
a = stream[arr.length - 1][0]
b = arr[a]
<- b
func streamIntFunctor(arr: []u32) -> string:
stream: *[]string
stream <<- ["111", "222"]
stream <<- ["333", "444"]
join stream[arr.length]
<- stream[1][1]
stream <<- ["123"]
a = stream[arr[0]][arr[0]]
<- a
func streamJoin(arr: []string) -> string:
streamJ: *[]string
streamJ <<- ["111", "222"]
streamJ <<- ["333", "444"]
<- streamJ[arr.length][1]

155
package-lock.json generated
View File

@ -10,7 +10,7 @@
"license": "MIT",
"dependencies": {
"@fluencelabs/aqua-dht-ts": "0.1.38",
"@fluencelabs/fluence": "0.26.3-snapshot-7",
"@fluencelabs/fluence": "0.27.1",
"@fluencelabs/fluence-network-environment": "1.0.13",
"deep-equal": "^2.0.5"
},
@ -18,9 +18,9 @@
"fldist": "dist/index.js"
},
"devDependencies": {
"@fluencelabs/aqua": "0.7.7-360",
"@fluencelabs/aqua": "0.7.7-365",
"@fluencelabs/aqua-dht": "0.2.5",
"@fluencelabs/aqua-lib": "0.4.3",
"@fluencelabs/aqua-lib": "0.6.0",
"@types/jest": "^27.0.2",
"@types/node": "^18.7.21",
"jest": "^27.2.4",
@ -618,14 +618,14 @@
}
},
"node_modules/@fluencelabs/aqua": {
"version": "0.7.7-360",
"resolved": "https://npm.fluence.dev/@fluencelabs%2faqua/-/aqua-0.7.7-360.tgz",
"integrity": "sha512-mw1zL9v6ZoB2c9saTYplgwFtIBikJDUJaWfv/mAC+olqw5lp4nFavAbyIsdRYLxYPLDEXTbnI4lLqN3VhPlEOA==",
"version": "0.7.7-365",
"resolved": "https://npm.fluence.dev/@fluencelabs%2faqua/-/aqua-0.7.7-365.tgz",
"integrity": "sha512-pdHb8nkWQatXOifSiy0H4Ijwws0i/Incj5638YgIt5wmI9xTLCx/GyqurEUxpfcOQ6cYppXoLeFXkM+98b5gWw==",
"dev": true,
"dependencies": {
"@fluencelabs/aqua-ipfs": "0.5.5",
"@fluencelabs/aqua-lib": "0.5.2",
"@fluencelabs/fluence": "0.26.3-snapshot-4",
"@fluencelabs/aqua-lib": "0.6.0",
"@fluencelabs/fluence": "0.27.1",
"@fluencelabs/fluence-network-environment": "1.0.13",
"ipfs-http-client": "50.1.2"
},
@ -1142,54 +1142,15 @@
"dev": true
},
"node_modules/@fluencelabs/aqua-lib": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.4.3.tgz",
"integrity": "sha512-IKhxn4UUWQnrxnZgLVXiO6O+49E+9TAN8RTfRGjJk02JJor854+4WbtfhaapOdx7R6SXq074PVFTbrfnFVhRcQ==",
"version": "0.6.0",
"resolved": "https://npm.fluence.dev/@fluencelabs%2faqua-lib/-/aqua-lib-0.6.0.tgz",
"integrity": "sha512-ifjtCM93KO3LhzPkMxqmXhwLmrg/scjOiyTihEVg7ns5N+BVzaK1eWzdOdqGdl9ZVoah43pdlQUepEo7VdRmsw==",
"dev": true
},
"node_modules/@fluencelabs/aqua/node_modules/@fluencelabs/aqua-lib": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.5.2.tgz",
"integrity": "sha512-fmoFFE8myhLH9d+YR0+0ZPL2YIQyR6M1woAGu5d1xXI02Sjzn4id6dE4PpxHb8cSBPRie8AwsKobHCNqGxI8oA==",
"dev": true
},
"node_modules/@fluencelabs/aqua/node_modules/@fluencelabs/fluence": {
"version": "0.26.3-snapshot-4",
"resolved": "https://npm.fluence.dev/@fluencelabs%2ffluence/-/fluence-0.26.3-snapshot-4.tgz",
"integrity": "sha512-M/iQhnViXfMaATj3gFPQXrZe9zSVcyN9F9A9hfJBUn0VLamhmbfeIoSZeheK8VGBxYbRGcrtoqLPTy1vJQVgVw==",
"dev": true,
"dependencies": {
"@fluencelabs/avm": "0.31.4",
"@fluencelabs/connection": "0.2.0",
"@fluencelabs/interfaces": "0.1.0",
"@fluencelabs/keypair": "0.2.0",
"@fluencelabs/marine-js": "0.3.18",
"async": "3.2.3",
"base64-js": "^1.5.1",
"browser-or-node": "^2.0.0",
"bs58": "5.0.0",
"buffer": "^6.0.3",
"cids": "1.1.9",
"loglevel": "1.8.0",
"multiformats": "9.6.5",
"peer-id": "0.16.0",
"platform": "^1.3.6",
"rxjs": "^7.5.5",
"ts-pattern": "3.3.3",
"uuid": "8.3.2"
},
"bin": {
"copy-marine": "dist/tools/copyMarine.js"
},
"engines": {
"node": ">=10",
"pnpm": ">=3"
}
},
"node_modules/@fluencelabs/avm": {
"version": "0.31.4",
"resolved": "https://npm.fluence.dev/@fluencelabs%2favm/-/avm-0.31.4.tgz",
"integrity": "sha512-rApXdqk0NUX+Fyq9BJ1jQ7X//EfVrAg9wrjdd4K/tvo54Lgij0tY/IT+imwr/Eb4qgHgi1QMW4zT0AOlgKIKmw=="
"version": "0.31.10",
"resolved": "https://npm.fluence.dev/@fluencelabs%2favm/-/avm-0.31.10.tgz",
"integrity": "sha512-tkpjdHyRmsTwAEZCJt15//jXEgC2Nw2qFiD1NenvK127SlgKeuzQU9IMReUYY3dowb2IGeC578/uGMu96jHYKw=="
},
"node_modules/@fluencelabs/connection": {
"version": "0.2.0",
@ -1216,15 +1177,15 @@
}
},
"node_modules/@fluencelabs/fluence": {
"version": "0.26.3-snapshot-7",
"resolved": "https://npm.fluence.dev/@fluencelabs%2ffluence/-/fluence-0.26.3-snapshot-7.tgz",
"integrity": "sha512-XidlrojF82if8M1DeIVaKHxY0kR4ioUM1KxUnLeT6S2H+17eowKpxSk6GdeyfLGzeUZ8RoP/xZ2TliTIxBFEMw==",
"version": "0.27.1",
"resolved": "https://npm.fluence.dev/@fluencelabs%2ffluence/-/fluence-0.27.1.tgz",
"integrity": "sha512-QmpydlmjnGq7+F95plJ5OpacFpSavZszsHUDNLgwMoeVgJnLy4Vs/I51vgI0ODaniQ6rnAaCLW2IFJ9iXJb7Ww==",
"dependencies": {
"@fluencelabs/avm": "0.31.4",
"@fluencelabs/avm": "0.31.10",
"@fluencelabs/connection": "0.2.0",
"@fluencelabs/interfaces": "0.1.0",
"@fluencelabs/keypair": "0.2.0",
"@fluencelabs/marine-js": "0.3.18",
"@fluencelabs/marine-js": "0.3.29",
"async": "3.2.3",
"base64-js": "^1.5.1",
"browser-or-node": "^2.0.0",
@ -1294,9 +1255,9 @@
}
},
"node_modules/@fluencelabs/marine-js": {
"version": "0.3.18",
"resolved": "https://npm.fluence.dev/@fluencelabs%2fmarine-js/-/marine-js-0.3.18.tgz",
"integrity": "sha512-aNuGtyY910kJvtRwfqmZKjVs+1l3LVWShv5xvkY04faHm65nX3sZLe8UHwughdja/4ixV1IFKlaTUgw2u3Sf5A==",
"version": "0.3.29",
"resolved": "https://npm.fluence.dev/@fluencelabs%2fmarine-js/-/marine-js-0.3.29.tgz",
"integrity": "sha512-0FAoheUCTyS6OVOdnDVi+cp6cFBIjfXWcIPGY6Vd5LYNCMHAtqnuNzZT0XfyeYzo3YnXVsCPrl+J6OcezIwaew==",
"dependencies": {
"@wasmer/wasi": "^0.12.0",
"@wasmer/wasmfs": "^0.12.0",
@ -8706,50 +8667,16 @@
}
},
"@fluencelabs/aqua": {
"version": "0.7.7-360",
"resolved": "https://npm.fluence.dev/@fluencelabs%2faqua/-/aqua-0.7.7-360.tgz",
"integrity": "sha512-mw1zL9v6ZoB2c9saTYplgwFtIBikJDUJaWfv/mAC+olqw5lp4nFavAbyIsdRYLxYPLDEXTbnI4lLqN3VhPlEOA==",
"version": "0.7.7-365",
"resolved": "https://npm.fluence.dev/@fluencelabs%2faqua/-/aqua-0.7.7-365.tgz",
"integrity": "sha512-pdHb8nkWQatXOifSiy0H4Ijwws0i/Incj5638YgIt5wmI9xTLCx/GyqurEUxpfcOQ6cYppXoLeFXkM+98b5gWw==",
"dev": true,
"requires": {
"@fluencelabs/aqua-ipfs": "0.5.5",
"@fluencelabs/aqua-lib": "0.5.2",
"@fluencelabs/fluence": "0.26.3-snapshot-4",
"@fluencelabs/aqua-lib": "0.6.0",
"@fluencelabs/fluence": "0.27.1",
"@fluencelabs/fluence-network-environment": "1.0.13",
"ipfs-http-client": "50.1.2"
},
"dependencies": {
"@fluencelabs/aqua-lib": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.5.2.tgz",
"integrity": "sha512-fmoFFE8myhLH9d+YR0+0ZPL2YIQyR6M1woAGu5d1xXI02Sjzn4id6dE4PpxHb8cSBPRie8AwsKobHCNqGxI8oA==",
"dev": true
},
"@fluencelabs/fluence": {
"version": "0.26.3-snapshot-4",
"resolved": "https://npm.fluence.dev/@fluencelabs%2ffluence/-/fluence-0.26.3-snapshot-4.tgz",
"integrity": "sha512-M/iQhnViXfMaATj3gFPQXrZe9zSVcyN9F9A9hfJBUn0VLamhmbfeIoSZeheK8VGBxYbRGcrtoqLPTy1vJQVgVw==",
"dev": true,
"requires": {
"@fluencelabs/avm": "0.31.4",
"@fluencelabs/connection": "0.2.0",
"@fluencelabs/interfaces": "0.1.0",
"@fluencelabs/keypair": "0.2.0",
"@fluencelabs/marine-js": "0.3.18",
"async": "3.2.3",
"base64-js": "^1.5.1",
"browser-or-node": "^2.0.0",
"bs58": "5.0.0",
"buffer": "^6.0.3",
"cids": "1.1.9",
"loglevel": "1.8.0",
"multiformats": "9.6.5",
"peer-id": "0.16.0",
"platform": "^1.3.6",
"rxjs": "^7.5.5",
"ts-pattern": "3.3.3",
"uuid": "8.3.2"
}
}
}
},
"@fluencelabs/aqua-dht": {
@ -9227,15 +9154,15 @@
}
},
"@fluencelabs/aqua-lib": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.4.3.tgz",
"integrity": "sha512-IKhxn4UUWQnrxnZgLVXiO6O+49E+9TAN8RTfRGjJk02JJor854+4WbtfhaapOdx7R6SXq074PVFTbrfnFVhRcQ==",
"version": "0.6.0",
"resolved": "https://npm.fluence.dev/@fluencelabs%2faqua-lib/-/aqua-lib-0.6.0.tgz",
"integrity": "sha512-ifjtCM93KO3LhzPkMxqmXhwLmrg/scjOiyTihEVg7ns5N+BVzaK1eWzdOdqGdl9ZVoah43pdlQUepEo7VdRmsw==",
"dev": true
},
"@fluencelabs/avm": {
"version": "0.31.4",
"resolved": "https://npm.fluence.dev/@fluencelabs%2favm/-/avm-0.31.4.tgz",
"integrity": "sha512-rApXdqk0NUX+Fyq9BJ1jQ7X//EfVrAg9wrjdd4K/tvo54Lgij0tY/IT+imwr/Eb4qgHgi1QMW4zT0AOlgKIKmw=="
"version": "0.31.10",
"resolved": "https://npm.fluence.dev/@fluencelabs%2favm/-/avm-0.31.10.tgz",
"integrity": "sha512-tkpjdHyRmsTwAEZCJt15//jXEgC2Nw2qFiD1NenvK127SlgKeuzQU9IMReUYY3dowb2IGeC578/uGMu96jHYKw=="
},
"@fluencelabs/connection": {
"version": "0.2.0",
@ -9258,15 +9185,15 @@
}
},
"@fluencelabs/fluence": {
"version": "0.26.3-snapshot-7",
"resolved": "https://npm.fluence.dev/@fluencelabs%2ffluence/-/fluence-0.26.3-snapshot-7.tgz",
"integrity": "sha512-XidlrojF82if8M1DeIVaKHxY0kR4ioUM1KxUnLeT6S2H+17eowKpxSk6GdeyfLGzeUZ8RoP/xZ2TliTIxBFEMw==",
"version": "0.27.1",
"resolved": "https://npm.fluence.dev/@fluencelabs%2ffluence/-/fluence-0.27.1.tgz",
"integrity": "sha512-QmpydlmjnGq7+F95plJ5OpacFpSavZszsHUDNLgwMoeVgJnLy4Vs/I51vgI0ODaniQ6rnAaCLW2IFJ9iXJb7Ww==",
"requires": {
"@fluencelabs/avm": "0.31.4",
"@fluencelabs/avm": "0.31.10",
"@fluencelabs/connection": "0.2.0",
"@fluencelabs/interfaces": "0.1.0",
"@fluencelabs/keypair": "0.2.0",
"@fluencelabs/marine-js": "0.3.18",
"@fluencelabs/marine-js": "0.3.29",
"async": "3.2.3",
"base64-js": "^1.5.1",
"browser-or-node": "^2.0.0",
@ -9320,9 +9247,9 @@
}
},
"@fluencelabs/marine-js": {
"version": "0.3.18",
"resolved": "https://npm.fluence.dev/@fluencelabs%2fmarine-js/-/marine-js-0.3.18.tgz",
"integrity": "sha512-aNuGtyY910kJvtRwfqmZKjVs+1l3LVWShv5xvkY04faHm65nX3sZLe8UHwughdja/4ixV1IFKlaTUgw2u3Sf5A==",
"version": "0.3.29",
"resolved": "https://npm.fluence.dev/@fluencelabs%2fmarine-js/-/marine-js-0.3.29.tgz",
"integrity": "sha512-0FAoheUCTyS6OVOdnDVi+cp6cFBIjfXWcIPGY6Vd5LYNCMHAtqnuNzZT0XfyeYzo3YnXVsCPrl+J6OcezIwaew==",
"requires": {
"@wasmer/wasi": "^0.12.0",
"@wasmer/wasmfs": "^0.12.0",

View File

@ -29,9 +29,9 @@
"do": "aqua dist deploy --addr /dns4/kras-04.fluence.dev/tcp/19001/wss/p2p/12D3KooWFEwNWcHqi9rtsmDhsYcDbRUCDXH84RC4FW6UfsFWaoHi --config-path deploy.json --service tsOracle"
},
"devDependencies": {
"@fluencelabs/aqua": "0.7.7-360",
"@fluencelabs/aqua": "0.7.7-365",
"@fluencelabs/aqua-dht": "0.2.5",
"@fluencelabs/aqua-lib": "0.4.3",
"@fluencelabs/aqua-lib": "0.6.0",
"@types/jest": "^27.0.2",
"@types/node": "^18.7.21",
"jest": "^27.2.4",
@ -42,7 +42,7 @@
},
"dependencies": {
"@fluencelabs/aqua-dht-ts": "0.1.38",
"@fluencelabs/fluence": "0.26.3-snapshot-7",
"@fluencelabs/fluence": "0.27.1",
"@fluencelabs/fluence-network-environment": "1.0.13",
"deep-equal": "^2.0.5"
},

View File

@ -1,3 +1,5 @@
import {getObjCall} from "../examples/objectCall";
jest.retryTimes(1)
import { Fluence, FluencePeer, KeyPair, setLogLevel } from '@fluencelabs/fluence';
@ -15,9 +17,9 @@ import { complexCall } from '../examples/complex';
import { constantsCall, particleTtlAndTimestampCall } from '../examples/constantsCall';
import {
returnNilCall,
returnNoneCall,
returnNoneCall, streamAssignmentCall,
streamCall,
streamFunctorCall, streamJoinCall,
streamFunctorCall, streamIntFunctorCall, streamJoinCall,
streamReturnFromInnerFunc
} from '../examples/streamCall';
import { topologyBug205Call, topologyBug394Call, topologyBug427Call, topologyCall } from '../examples/topologyCall';
@ -120,7 +122,7 @@ describe('Testing examples', () => {
// this could be called from `println.aqua`
registerPrintln({
print: (arg0) => {
console.log('println: ' + arg0);
console.dir(arg0);
},
});
});
@ -242,16 +244,26 @@ describe('Testing examples', () => {
expect(streamResult).toEqual([1, 2, 3, 4]);
})
it.skip('stream.aqua functor', async () => {
it('stream.aqua functor', async () => {
let streamResult = await streamFunctorCall()
expect(streamResult).toEqual("123");
})
it.skip('stream.aqua join', async () => {
it('stream.aqua join', async () => {
let streamResult = await streamJoinCall()
expect(streamResult).toEqual("444");
})
it('stream.aqua assignment', async () => {
let streamResult = await streamAssignmentCall()
expect(streamResult).toEqual("333");
})
it('stream.aqua int functor', async () => {
let streamResult = await streamIntFunctorCall()
expect(streamResult).toEqual("123");
})
it('streamCan.aqua', async () => {
let streamCanResult = await streamCanCall();
expect(streamCanResult).toEqual(['a', 'b', null]);
@ -280,6 +292,18 @@ describe('Testing examples', () => {
]);
});
it.skip('object creation getObj', async () => {
let result = await getObjCall()
expect(result).toEqual({
str: "some str",
num: 5,
inner: {
arr: ["a", "b", "c"],
num: 6
}
});
});
it('collectionSugar stream', async () => {
let result = await streamSugarCall();
expect(result).toEqual([

View File

@ -100,4 +100,4 @@ export const localConfig = {
"Local service error, ret_code is 1, error message is '\"Service with id 'unex' not found (function getStr)\"'",
};
export const { config, isEphemeral } = setConfig(process.env.FLUENCE_ENV);
export const { config, isEphemeral } = setConfig("local");

View File

@ -0,0 +1,5 @@
import {getObj, GetObjResult} from "../compiled/examples/object";
export async function getObjCall(): Promise<GetObjResult> {
return await getObj();
}

View File

@ -2,8 +2,8 @@ import { FluencePeer } from '@fluencelabs/fluence';
import {
checkStreams,
registerStringer,
returnStreamFromFunc,
streamFunctor, streamJoin,
returnStreamFromFunc, streamAssignment,
streamFunctor, streamIntFunctor, streamJoin,
stringNil,
stringNone
} from '../compiled/examples/stream';
@ -37,3 +37,11 @@ export async function streamFunctorCall() {
export async function streamJoinCall() {
return await streamJoin(["444"]);
}
export async function streamAssignmentCall() {
return await streamAssignment(["333"]);
}
export async function streamIntFunctorCall() {
return await streamIntFunctor([0]);
}