From aa5ff9603b70da2667bba2cc031285ce9bda548b Mon Sep 17 00:00:00 2001 From: Pavel Murygin Date: Tue, 20 Apr 2021 12:43:26 +0300 Subject: [PATCH 1/4] Fix an issue when 0 was transformed into {} --- package-lock.json | 6 +++--- src/__test__/unit/WsTransport.spec.ts | 24 ++++++++++-------------- src/internal/ClientImpl.ts | 3 ++- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/package-lock.json b/package-lock.json index 256881466..c51bece73 100644 --- a/package-lock.json +++ b/package-lock.json @@ -435,9 +435,9 @@ } }, "@fluencelabs/aquamarine-interpreter": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@fluencelabs/aquamarine-interpreter/-/aquamarine-interpreter-0.8.0.tgz", - "integrity": "sha512-EoHqReMk6gqcBR8ZJuurXbCyB3t6vrOjsEBX5XgVhdfSYrUvmBvmKy4Elq5ONY2JVec9HCR/n/SfTuxYsnY8PQ==" + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/@fluencelabs/aquamarine-interpreter/-/aquamarine-interpreter-0.7.9.tgz", + "integrity": "sha512-VXbHm0d05XMjTSzOTcb+spVRrIuMcrw8/3dl197wH0jx1C3Wou+vAapQLvGNcKzqDhktPOOzJTE4UARYd0lFMw==" }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", diff --git a/src/__test__/unit/WsTransport.spec.ts b/src/__test__/unit/WsTransport.spec.ts index 70e99186b..a15ff8c34 100644 --- a/src/__test__/unit/WsTransport.spec.ts +++ b/src/__test__/unit/WsTransport.spec.ts @@ -1,20 +1,16 @@ -import {FluenceConnection} from "../../internal/FluenceConnection"; -import Peer from "libp2p"; -import Multiaddr = require("multiaddr"); -import {generatePeerId} from "../../internal/peerIdUtils"; +import { FluenceConnection } from '../../internal/FluenceConnection'; +import Peer from 'libp2p'; +import Multiaddr = require('multiaddr'); +import { generatePeerId } from '../../internal/peerIdUtils'; describe('Ws Transport', () => { - // TODO: fix this test - test.skip('Should work with ws schema', async () => { + test('Should work with ws schema', async () => { // arrange - let multiaddr = new Multiaddr("/ip4/127.0.0.1/tcp/1234/ws/p2p/12D3KooWMJ78GJrtCxVUpjLEedbPtnLDxkFQJ2wuefEdrxq6zwSs"); - let peerId = await generatePeerId(); - const connection = new FluenceConnection( - multiaddr, - peerId, - peerId, - _ => {}, + let multiaddr = new Multiaddr( + '/ip4/127.0.0.1/tcp/1234/ws/p2p/12D3KooWMJ78GJrtCxVUpjLEedbPtnLDxkFQJ2wuefEdrxq6zwSs', ); + let peerId = await generatePeerId(); + const connection = new FluenceConnection(multiaddr, peerId, peerId, (_) => {}); await (connection as any).createPeer(); let node = (connection as any).node as Peer; @@ -22,6 +18,6 @@ describe('Ws Transport', () => { let transport = node.transportManager.transportForMultiaddr(multiaddr); // assert - expect(transport).not.toBeDefined(); + expect(transport).toBeDefined(); }); }); diff --git a/src/internal/ClientImpl.ts b/src/internal/ClientImpl.ts index 88019cf39..3bd6241dd 100644 --- a/src/internal/ClientImpl.ts +++ b/src/internal/ClientImpl.ts @@ -161,9 +161,10 @@ export class ClientImpl implements FluenceClient { particleId: request.id, }, }); + return { ret_code: res.retCode, - result: JSON.stringify(res.result || {}), + result: JSON.stringify(res.result), }; }; From d8ae5b46c8b3abdc526956764181dac26796ba42 Mon Sep 17 00:00:00 2001 From: Pavel Murygin Date: Tue, 20 Apr 2021 12:50:38 +0300 Subject: [PATCH 2/4] Update air interpreter version --- package-lock.json | 6 +++--- package.json | 2 +- src/__test__/unit/ast.spec.ts | 4 +++- src/internal/aqua/interpreter.ts | 12 ++++++------ 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index c51bece73..9adb664c2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -435,9 +435,9 @@ } }, "@fluencelabs/aquamarine-interpreter": { - "version": "0.7.9", - "resolved": "https://registry.npmjs.org/@fluencelabs/aquamarine-interpreter/-/aquamarine-interpreter-0.7.9.tgz", - "integrity": "sha512-VXbHm0d05XMjTSzOTcb+spVRrIuMcrw8/3dl197wH0jx1C3Wou+vAapQLvGNcKzqDhktPOOzJTE4UARYd0lFMw==" + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/@fluencelabs/aquamarine-interpreter/-/aquamarine-interpreter-0.8.2.tgz", + "integrity": "sha512-WYn3fO3dy/ZTS2DnjpEv59RAFTuPosO65jejb/2QRAbZId4KiaCxma0yvFC6P0j2qoAxCDTRdbKrNZGXzjddYQ==" }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", diff --git a/package.json b/package.json index 10835ff7b..91ddc1efc 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "author": "Fluence Labs", "license": "Apache-2.0", "dependencies": { - "@fluencelabs/aquamarine-interpreter": "0.7.9", + "@fluencelabs/aquamarine-interpreter": "0.8.2", "async": "3.2.0", "base64-js": "1.3.1", "bs58": "4.0.1", diff --git a/src/__test__/unit/ast.spec.ts b/src/__test__/unit/ast.spec.ts index e5814623c..53bf87dcb 100644 --- a/src/__test__/unit/ast.spec.ts +++ b/src/__test__/unit/ast.spec.ts @@ -31,7 +31,9 @@ describe('== AST parsing suite', () => { }, }, ], - output: { Scalar: 'output' }, + output: { + Variable: { Scalar: 'output' }, + }, }, }); }); diff --git a/src/internal/aqua/interpreter.ts b/src/internal/aqua/interpreter.ts index b0112d85f..6cd11e5b9 100644 --- a/src/internal/aqua/interpreter.ts +++ b/src/internal/aqua/interpreter.ts @@ -35,8 +35,8 @@ type ImportObject = { './aquamarine_client_bg.js': { // fn call_service_impl(service_id: String, fn_name: String, args: String, security_tetraplets: String) -> String; // prettier-ignore - __wbg_callserviceimpl_d9f9208b7e581e24: (arg0: any, arg1: any, arg2: any, arg3: any, arg4: any, arg5: any, arg6: any, arg7: any, arg8: any, ) => void; - __wbg_getcurrentpeeridimpl_c6a63062490312cd: (arg0: any) => void; + __wbg_callserviceimpl_84d8278762e4c639: (arg0: any, arg1: any, arg2: any, arg3: any, arg4: any, arg5: any, arg6: any, arg7: any, arg8: any, ) => void; + __wbg_getcurrentpeeridimpl_4aca996e28cb8f44: (arg0: any) => void; __wbindgen_throw: (arg: any) => void; }; host: LogImport; @@ -159,7 +159,7 @@ function newImportObject(particleHandler: ParticleHandler, cfg: HostImportsConfi // If so, an error with a new name will be occurred after wasm initialization. './aquamarine_client_bg.js': { // prettier-ignore - __wbg_callserviceimpl_d9f9208b7e581e24: (arg0: any, arg1: any, arg2: any, arg3: any, arg4: any, arg5: any, arg6: any, arg7: any, arg8: any) => { + __wbg_callserviceimpl_84d8278762e4c639: (arg0: any, arg1: any, arg2: any, arg3: any, arg4: any, arg5: any, arg6: any, arg7: any, arg8: any) => { let wasm = cfg.exports; try { let serviceId = getStringFromWasm0(wasm, arg1, arg2); @@ -183,7 +183,7 @@ function newImportObject(particleHandler: ParticleHandler, cfg: HostImportsConfi free(wasm, arg7, arg8); } }, - __wbg_getcurrentpeeridimpl_c6a63062490312cd: (arg0: any) => { + __wbg_getcurrentpeeridimpl_4aca996e28cb8f44: (arg0: any) => { let peerIdStr = peerId.toB58String(); let wasm = cfg.exports; return_current_peer_id(wasm, peerIdStr, arg0); @@ -200,8 +200,8 @@ function newLogImport(cfg: HostImportsConfig): ImportObject { return { host: log_import(cfg), './aquamarine_client_bg.js': { - __wbg_callserviceimpl_d9f9208b7e581e24: (_) => {}, - __wbg_getcurrentpeeridimpl_c6a63062490312cd: (_) => {}, + __wbg_callserviceimpl_84d8278762e4c639: (_) => {}, + __wbg_getcurrentpeeridimpl_4aca996e28cb8f44: (_) => {}, __wbindgen_throw: (_) => {}, }, }; From 6118bb6b058e5e325c69b0c8f9397bbc0f6123b6 Mon Sep 17 00:00:00 2001 From: Pavel Murygin Date: Tue, 20 Apr 2021 12:56:14 +0300 Subject: [PATCH 3/4] fix test --- src/__test__/integration/client.spec.ts | 34 ++----------------------- 1 file changed, 2 insertions(+), 32 deletions(-) diff --git a/src/__test__/integration/client.spec.ts b/src/__test__/integration/client.spec.ts index a915bede3..675d72357 100644 --- a/src/__test__/integration/client.spec.ts +++ b/src/__test__/integration/client.spec.ts @@ -241,7 +241,7 @@ describe('Typescript usage suite', () => { client = await createClient(); // act - const res = getPeerExternalAddresses(client); + const res = callIdentifyOnInitPeerId(client); // assert await expect(res).rejects.toMatch( @@ -250,46 +250,16 @@ describe('Typescript usage suite', () => { }); }); -async function getPeerExternalAddresses(client: FluenceClient): Promise { +async function callIdentifyOnInitPeerId(client: FluenceClient): Promise { let request; const promise = new Promise((resolve, reject) => { request = new RequestFlowBuilder() .withRawScript( ` -(seq - (seq - (call %init_peer_id% ("getDataSrv" "relay") [] relay) (call %init_peer_id% ("peer" "identify") [] res) - ) - (call %init_peer_id% ("callbackSrv" "response") [res.$.external_addresses!]) -) - `, ) - .configHandler((h) => { - h.on('getDataSrv', 'relay', () => { - return client.relayPeerId; - }); - h.on('getRelayService', 'hasReleay', () => { - // Not Used - return client.relayPeerId !== undefined; - }); - - h.on('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); - }); - - h.on('nameOfServiceWhereToSendXorError', 'errorProbably', (args) => { - // assuming error is the single argument - const [err] = args; - reject(err); - }); - }) .handleScriptError(reject) - .handleTimeout(() => { - reject('Request timed out'); - }) .build(); }); await client.initiateFlow(request); From fd4601acfd1afb02b92ca8c7e8bd476aa668b606 Mon Sep 17 00:00:00 2001 From: Pavel Murygin Date: Tue, 20 Apr 2021 13:07:01 +0300 Subject: [PATCH 4/4] fix stream syntax --- src/internal/builtins.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/internal/builtins.ts b/src/internal/builtins.ts index 6226e2f2a..4b8707384 100644 --- a/src/internal/builtins.ts +++ b/src/internal/builtins.ts @@ -109,16 +109,16 @@ export const getInterfaces = async (client: FluenceClient, ttl?: number): Promis (seq (seq (call relay ("srv" "list") [] services) - (call relay ("op" "identity") [] interfaces[]) + (call relay ("op" "identity") [] $interfaces) ) (fold services s (seq - (call relay ("srv" "get_interface") [s.$.id!] interfaces[]) + (call relay ("srv" "get_interface") [s.$.id!] $interfaces) (next s) ) ) ) - (call myPeerId ("_callback" "${callbackFn}") [interfaces]) + (call myPeerId ("_callback" "${callbackFn}") [$interfaces]) ) `, )