diff --git a/packages/@tests/aqua/src/index.ts b/packages/@tests/aqua/src/index.ts index e3248aec..3cecd6ba 100644 --- a/packages/@tests/aqua/src/index.ts +++ b/packages/@tests/aqua/src/index.ts @@ -17,7 +17,7 @@ import { Fluence, type ClientConfig } from "@fluencelabs/js-client"; import { fromByteArray } from "base64-js"; -// import { test as particleTest } from "./_aqua/finalize_particle.js"; +import { test as particleTest } from "./_aqua/finalize_particle.js"; import { registerHelloWorld, helloTest, @@ -94,8 +94,7 @@ export const runTest = async (): Promise => { console.log("running particle test..."); - // TODO: Currently this behavior will timeout after TTL bcs this function don't call 'responseSrc'. Will be attended in the next updates - //await particleTest(); + await particleTest(); const returnVal = { hello, diff --git a/packages/core/js-client/src/compilerSupport/callFunction.ts b/packages/core/js-client/src/compilerSupport/callFunction.ts index 357404d9..dcc164ce 100644 --- a/packages/core/js-client/src/compilerSupport/callFunction.ts +++ b/packages/core/js-client/src/compilerSupport/callFunction.ts @@ -50,6 +50,7 @@ export type CallAquaFunctionArgs = { config: CallAquaFunctionConfig | undefined; peer: FluencePeer; args: { [key: string]: JSONValue | ArgCallbackFunction }; + fireAndForget?: boolean; }; export type CallAquaFunctionConfig = { @@ -61,6 +62,8 @@ export const callAquaFunction = async ({ config = {}, peer, args, + // TODO: remove after LNG-286 is done + fireAndForget = false, }: CallAquaFunctionArgs) => { log.trace("calling aqua function %j", { script, config, args }); @@ -88,7 +91,9 @@ export const callAquaFunction = async ({ registerParticleScopeService(peer, particle, service); } - registerParticleScopeService(peer, particle, responseService(resolve)); + if (fireAndForget) { + registerParticleScopeService(peer, particle, responseService(resolve)); + } registerParticleScopeService(peer, particle, injectRelayService(peer)); diff --git a/packages/core/js-client/src/jsPeer/FluencePeer.ts b/packages/core/js-client/src/jsPeer/FluencePeer.ts index bcd4329f..4b646c9a 100644 --- a/packages/core/js-client/src/jsPeer/FluencePeer.ts +++ b/packages/core/js-client/src/jsPeer/FluencePeer.ts @@ -615,6 +615,20 @@ export abstract class FluencePeer { }); }); } + } else { + // TODO: remove after LNG-286 is done + // eslint-disable-next-line eqeqeq + if ( + this.jsServiceHost.getHandler( + "callbackSrv", + "response", + item.particle.id, + ) == null && + item.result.nextPeerPks.length == 0 + ) { + // try to finish script + item.onSuccess({}); + } } return connectionPromise;