From d3015794a6e7c88908b0a5827ca8c2faabbf6672 Mon Sep 17 00:00:00 2001 From: Pavel Murygin Date: Thu, 21 Oct 2021 00:10:01 +0300 Subject: [PATCH] Update fluence-js version and recompile with async version of Aqua compiler --- client-peer/package.json | 2 +- client-peer/src/_aqua/demo_validation.ts | 798 ++++++++++------------- client-peer/src/index.ts | 6 +- package.json | 2 +- src/_aqua/demo_validation.ts | 443 +++++++++++++ src/_aqua/snapshot.ts | 649 +++++++----------- 6 files changed, 1036 insertions(+), 864 deletions(-) create mode 100644 src/_aqua/demo_validation.ts diff --git a/client-peer/package.json b/client-peer/package.json index 304c7e4..26d5f8a 100644 --- a/client-peer/package.json +++ b/client-peer/package.json @@ -17,7 +17,7 @@ "typescript": "^4.4.2" }, "dependencies": { - "@fluencelabs/fluence": "0.10.4-async-457.0", + "@fluencelabs/fluence": "0.14.1", "@fluencelabs/fluence-network-environment": "1.0.10", "@types/sqlite3": "^3.1.7", "base64-js": "^1.5.1", diff --git a/client-peer/src/_aqua/demo_validation.ts b/client-peer/src/_aqua/demo_validation.ts index e23014e..ca6c532 100644 --- a/client-peer/src/_aqua/demo_validation.ts +++ b/client-peer/src/_aqua/demo_validation.ts @@ -1,504 +1,400 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * 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-226 + * Aqua version: 0.3.2-SNAPSHOT * */ import { Fluence, FluencePeer } from '@fluencelabs/fluence'; import { - ResultCodes, - RequestFlow, - RequestFlowBuilder, CallParams, -} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; + callFunction, + registerService, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v2'; // Services export interface ProVoValidationDef { eip712_validation_string: (eip_str: string, peer_id: string, callParams: CallParams<'eip_str' | 'peer_id'>) => string; - eip712_validation_url: (eip_str: string, peer_id: string, callParams: CallParams<'eip_str' | 'peer_id'>) => string; +eip712_validation_url: (eip_str: string, peer_id: string, callParams: CallParams<'eip_str' | 'peer_id'>) => string; } - export function registerProVoValidation(service: ProVoValidationDef): void; export function registerProVoValidation(serviceId: string, service: ProVoValidationDef): void; export function registerProVoValidation(peer: FluencePeer, service: ProVoValidationDef): void; export function registerProVoValidation(peer: FluencePeer, serviceId: string, service: ProVoValidationDef): void; + + export function registerProVoValidation(...args: any) { - let peer: FluencePeer; - let serviceId: any; - let service: any; - if (FluencePeer.isInstance(args[0])) { - peer = args[0]; - } else { - peer = Fluence.getPeer(); - } - - if (typeof args[0] === 'string') { - serviceId = args[0]; - } else if (typeof args[1] === 'string') { - serviceId = args[1]; - } - else { - serviceId = "EIPValidator" - } - - // Figuring out which overload is the service. - // If the first argument is not Fluence Peer and it is an object, then it can only be the service def - // If the first argument is peer, we are checking further. The second argument might either be - // an object, that it must be the service object - // or a string, which is the service id. In that case the service is the third argument - if (!(FluencePeer.isInstance(args[0])) && typeof args[0] === 'object') { - service = args[0]; - } else if (typeof args[1] === 'object') { - service = args[1]; - } else { - service = args[2]; - } - - peer.internals.callServiceHandler.use((req, resp, next) => { - if (req.serviceId !== serviceId) { - next(); - return; - } - - - if (req.fnName === 'eip712_validation_string') { - - const callParams = { - ...req.particleContext, - tetraplets: { - eip_str: req.tetraplets[0], peer_id: req.tetraplets[1] + registerService( + args, + { + "defaultServiceId" : "EIPValidator", + "functions" : [ + { + "functionName" : "eip712_validation_string", + "argDefs" : [ + { + "name" : "eip_str", + "argType" : { + "tag" : "primitive" + } }, - }; - resp.retCode = ResultCodes.success; - resp.result = service.eip712_validation_string(req.args[0], req.args[1], callParams) - - } - - - - if (req.fnName === 'eip712_validation_url') { - - const callParams = { - ...req.particleContext, - tetraplets: { - eip_str: req.tetraplets[0], peer_id: req.tetraplets[1] + { + "name" : "peer_id", + "argType" : { + "tag" : "primitive" + } + } + ], + "returnType" : { + "tag" : "primitive" + } + }, + { + "functionName" : "eip712_validation_url", + "argDefs" : [ + { + "name" : "eip_str", + "argType" : { + "tag" : "primitive" + } }, - }; - resp.retCode = ResultCodes.success; - resp.result = service.eip712_validation_url(req.args[0], req.args[1], callParams) - + { + "name" : "peer_id", + "argType" : { + "tag" : "primitive" + } + } + ], + "returnType" : { + "tag" : "primitive" + } } - - - next(); - }); + ] } - + ); +} + export interface DataProviderDef { - get_record: (snapshot_id: number, callParams: CallParams<'snapshot_id'>) => { snapshot_id: number }; - get_records: (callParams: CallParams) => { snapshot_id: number }[]; + get_record: (snapshot_id: number, callParams: CallParams<'snapshot_id'>) => { snapshot_id: number; }; +get_records: (callParams: CallParams) => { snapshot_id: number; }[]; } - export function registerDataProvider(service: DataProviderDef): void; export function registerDataProvider(serviceId: string, service: DataProviderDef): void; export function registerDataProvider(peer: FluencePeer, service: DataProviderDef): void; export function registerDataProvider(peer: FluencePeer, serviceId: string, service: DataProviderDef): void; + + export function registerDataProvider(...args: any) { - let peer: FluencePeer; - let serviceId: any; - let service: any; - if (FluencePeer.isInstance(args[0])) { - peer = args[0]; - } else { - peer = Fluence.getPeer(); - } - - if (typeof args[0] === 'string') { - serviceId = args[0]; - } else if (typeof args[1] === 'string') { - serviceId = args[1]; - } - else { - serviceId = "DataProvider" - } - - // Figuring out which overload is the service. - // If the first argument is not Fluence Peer and it is an object, then it can only be the service def - // If the first argument is peer, we are checking further. The second argument might either be - // an object, that it must be the service object - // or a string, which is the service id. In that case the service is the third argument - if (!(FluencePeer.isInstance(args[0])) && typeof args[0] === 'object') { - service = args[0]; - } else if (typeof args[1] === 'object') { - service = args[1]; - } else { - service = args[2]; - } - - peer.internals.callServiceHandler.use((req, resp, next) => { - if (req.serviceId !== serviceId) { - next(); - return; + registerService( + args, + { + "defaultServiceId" : "DataProvider", + "functions" : [ + { + "functionName" : "get_record", + "argDefs" : [ + { + "name" : "snapshot_id", + "argType" : { + "tag" : "primitive" + } + } + ], + "returnType" : { + "tag" : "primitive" + } + }, + { + "functionName" : "get_records", + "argDefs" : [ + ], + "returnType" : { + "tag" : "primitive" + } } - - - if (req.fnName === 'get_record') { - - const callParams = { - ...req.particleContext, - tetraplets: { - snapshot_id: req.tetraplets[0] - }, - }; - resp.retCode = ResultCodes.success; - resp.result = service.get_record(req.args[0], callParams) - - } - - - - if (req.fnName === 'get_records') { - - const callParams = { - ...req.particleContext, - tetraplets: { - - }, - }; - resp.retCode = ResultCodes.success; - resp.result = service.get_records(callParams) - - } - - - next(); - }); + ] } - - + ); +} + // Functions + -export function validate(eip712_url: string, node: string, relay: string, config?: { ttl?: number }): Promise; -export function validate(peer: FluencePeer, eip712_url: string, node: string, relay: string, config?: { ttl?: number }): Promise; +export function validate(eip712_url: string, node: string, relay: string, config?: {ttl?: number}): Promise; +export function validate(peer: FluencePeer, eip712_url: string, node: string, relay: string, config?: {ttl?: number}): Promise; export function validate(...args: any) { - let peer: FluencePeer; - let eip712_url: any; - let node: any; - let relay: any; - let config: any; - if (FluencePeer.isInstance(args[0])) { - peer = args[0]; - eip712_url = args[1]; - node = args[2]; - relay = args[3]; - config = args[4]; - } else { - peer = Fluence.getPeer(); - eip712_url = args[0]; - node = args[1]; - relay = args[2]; - config = args[3]; - } - let request: RequestFlow; - const promise = new Promise((resolve, reject) => { - const r = new RequestFlowBuilder() - .disableInjections() - .withRawScript( - ` - (xor - (seq - (seq - (seq - (seq - (seq - (seq - (seq - (seq - (seq - (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) - (call %init_peer_id% ("getDataSrv" "eip712_url") [] eip712_url) - ) - (call %init_peer_id% ("getDataSrv" "node") [] node) - ) - (call %init_peer_id% ("getDataSrv" "relay") [] relay) - ) - (call -relay- ("op" "noop") []) - ) - (call relay ("op" "noop") []) - ) - (xor - (call node ("EIPValidator" "eip712_validation_url") [eip712_url node] res) - (seq - (seq - (seq - (call relay ("op" "noop") []) - (call -relay- ("op" "noop") []) - ) - (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) - ) - (call -relay- ("op" "noop") []) - ) - ) - ) - (call relay ("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.getStatus().relayPeerId; - }); - h.on('getDataSrv', 'eip712_url', () => { return eip712_url; }); - h.on('getDataSrv', 'node', () => { return node; }); - h.on('getDataSrv', 'relay', () => { return relay; }); - 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 validate'); - }) - if (config && config.ttl) { - r.withTTL(config.ttl) + let script = ` + (xor + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("getDataSrv" "eip712_url") [] eip712_url) + ) + (call %init_peer_id% ("getDataSrv" "node") [] node) + ) + (call %init_peer_id% ("getDataSrv" "relay") [] relay) + ) + (call -relay- ("op" "noop") []) + ) + (call relay ("op" "noop") []) + ) + (xor + (call node ("EIPValidator" "eip712_validation_url") [eip712_url node] res) + (seq + (seq + (seq + (call relay ("op" "noop") []) + (call -relay- ("op" "noop") []) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + (call -relay- ("op" "noop") []) + ) + ) + ) + (call relay ("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]) + ) + ` + return callFunction( + args, + { + "functionName" : "validate", + "returnType" : { + "tag" : "primitive" + }, + "argDefs" : [ + { + "name" : "eip712_url", + "argType" : { + "tag" : "primitive" + } + }, + { + "name" : "node", + "argType" : { + "tag" : "primitive" + } + }, + { + "name" : "relay", + "argType" : { + "tag" : "primitive" + } } - request = r.build(); - }); - peer.internals.initiateFlow(request!); - return promise; + ], + "names" : { + "relay" : "-relay-", + "getDataSrv" : "getDataSrv", + "callbackSrv" : "callbackSrv", + "responseSrv" : "callbackSrv", + "responseFnName" : "response", + "errorHandlingSrv" : "errorHandlingSrv", + "errorFnName" : "error" + } +}, + script + ) } + - -export function get_all_validations(node: string, relay: string, config?: { ttl?: number }): Promise<{ snapshot_id: number }[]>; -export function get_all_validations(peer: FluencePeer, node: string, relay: string, config?: { ttl?: number }): Promise<{ snapshot_id: number }[]>; +export function get_all_validations(node: string, relay: string, config?: {ttl?: number}): Promise<{ snapshot_id: number; }[]>; +export function get_all_validations(peer: FluencePeer, node: string, relay: string, config?: {ttl?: number}): Promise<{ snapshot_id: number; }[]>; export function get_all_validations(...args: any) { - let peer: FluencePeer; - let node: any; - let relay: any; - let config: any; - if (FluencePeer.isInstance(args[0])) { - peer = args[0]; - node = args[1]; - relay = args[2]; - config = args[3]; - } else { - peer = Fluence.getPeer(); - node = args[0]; - relay = args[1]; - config = args[2]; - } - let request: RequestFlow; - const promise = new Promise<{ snapshot_id: number }[]>((resolve, reject) => { - const r = new RequestFlowBuilder() - .disableInjections() - .withRawScript( - ` - (xor - (seq - (seq - (seq - (seq - (seq - (seq - (seq - (seq - (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) - (call %init_peer_id% ("getDataSrv" "node") [] node) - ) - (call %init_peer_id% ("getDataSrv" "relay") [] relay) - ) - (call -relay- ("op" "noop") []) - ) - (call relay ("op" "noop") []) - ) - (xor - (call node ("DataProvider" "get_records") [] res) - (seq - (seq - (seq - (call relay ("op" "noop") []) - (call -relay- ("op" "noop") []) - ) - (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) - ) - (call -relay- ("op" "noop") []) - ) - ) - ) - (call relay ("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.getStatus().relayPeerId; - }); - h.on('getDataSrv', 'node', () => { return node; }); - h.on('getDataSrv', 'relay', () => { return relay; }); - 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 get_all_validations'); - }) - if (config && config.ttl) { - r.withTTL(config.ttl) + let script = ` + (xor + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("getDataSrv" "node") [] node) + ) + (call %init_peer_id% ("getDataSrv" "relay") [] relay) + ) + (call -relay- ("op" "noop") []) + ) + (call relay ("op" "noop") []) + ) + (xor + (call node ("DataProvider" "get_records") [] res) + (seq + (seq + (seq + (call relay ("op" "noop") []) + (call -relay- ("op" "noop") []) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + (call -relay- ("op" "noop") []) + ) + ) + ) + (call relay ("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]) + ) + ` + return callFunction( + args, + { + "functionName" : "get_all_validations", + "returnType" : { + "tag" : "primitive" + }, + "argDefs" : [ + { + "name" : "node", + "argType" : { + "tag" : "primitive" + } + }, + { + "name" : "relay", + "argType" : { + "tag" : "primitive" + } } - request = r.build(); - }); - peer.internals.initiateFlow(request!); - return promise; + ], + "names" : { + "relay" : "-relay-", + "getDataSrv" : "getDataSrv", + "callbackSrv" : "callbackSrv", + "responseSrv" : "callbackSrv", + "responseFnName" : "response", + "errorHandlingSrv" : "errorHandlingSrv", + "errorFnName" : "error" + } +}, + script + ) } - - -export function get_validation(snapshot_id: number, node: string, relay: string, config?: { ttl?: number }): Promise<{ snapshot_id: number }>; -export function get_validation(peer: FluencePeer, snapshot_id: number, node: string, relay: string, config?: { ttl?: number }): Promise<{ snapshot_id: number }>; + +export type Get_validationResult = { snapshot_id: number; } +export function get_validation(snapshot_id: number, node: string, relay: string, config?: {ttl?: number}): Promise; +export function get_validation(peer: FluencePeer, snapshot_id: number, node: string, relay: string, config?: {ttl?: number}): Promise; export function get_validation(...args: any) { - let peer: FluencePeer; - let snapshot_id: any; - let node: any; - let relay: any; - let config: any; - if (FluencePeer.isInstance(args[0])) { - peer = args[0]; - snapshot_id = args[1]; - node = args[2]; - relay = args[3]; - config = args[4]; - } else { - peer = Fluence.getPeer(); - snapshot_id = args[0]; - node = args[1]; - relay = args[2]; - config = args[3]; - } - let request: RequestFlow; - const promise = new Promise<{ snapshot_id: number }>((resolve, reject) => { - const r = new RequestFlowBuilder() - .disableInjections() - .withRawScript( - ` - (xor - (seq - (seq - (seq - (seq - (seq - (seq - (seq - (seq - (seq - (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) - (call %init_peer_id% ("getDataSrv" "snapshot_id") [] snapshot_id) - ) - (call %init_peer_id% ("getDataSrv" "node") [] node) - ) - (call %init_peer_id% ("getDataSrv" "relay") [] relay) - ) - (call -relay- ("op" "noop") []) - ) - (call relay ("op" "noop") []) - ) - (xor - (call node ("DataProvider" "get_record") [snapshot_id] res) - (seq - (seq - (seq - (call relay ("op" "noop") []) - (call -relay- ("op" "noop") []) - ) - (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) - ) - (call -relay- ("op" "noop") []) - ) - ) - ) - (call relay ("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.getStatus().relayPeerId; - }); - h.on('getDataSrv', 'snapshot_id', () => { return snapshot_id; }); - h.on('getDataSrv', 'node', () => { return node; }); - h.on('getDataSrv', 'relay', () => { return relay; }); - 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 get_validation'); - }) - if (config && config.ttl) { - r.withTTL(config.ttl) + let script = ` + (xor + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("getDataSrv" "snapshot_id") [] snapshot_id) + ) + (call %init_peer_id% ("getDataSrv" "node") [] node) + ) + (call %init_peer_id% ("getDataSrv" "relay") [] relay) + ) + (call -relay- ("op" "noop") []) + ) + (call relay ("op" "noop") []) + ) + (xor + (call node ("DataProvider" "get_record") [snapshot_id] res) + (seq + (seq + (seq + (call relay ("op" "noop") []) + (call -relay- ("op" "noop") []) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + (call -relay- ("op" "noop") []) + ) + ) + ) + (call relay ("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]) + ) + ` + return callFunction( + args, + { + "functionName" : "get_validation", + "returnType" : { + "tag" : "primitive" + }, + "argDefs" : [ + { + "name" : "snapshot_id", + "argType" : { + "tag" : "primitive" + } + }, + { + "name" : "node", + "argType" : { + "tag" : "primitive" + } + }, + { + "name" : "relay", + "argType" : { + "tag" : "primitive" + } } - request = r.build(); - }); - peer.internals.initiateFlow(request!); - return promise; + ], + "names" : { + "relay" : "-relay-", + "getDataSrv" : "getDataSrv", + "callbackSrv" : "callbackSrv", + "responseSrv" : "callbackSrv", + "responseFnName" : "response", + "errorHandlingSrv" : "errorHandlingSrv", + "errorFnName" : "error" + } +}, + script + ) } - diff --git a/client-peer/src/index.ts b/client-peer/src/index.ts index 7b0b4b8..b063b59 100644 --- a/client-peer/src/index.ts +++ b/client-peer/src/index.ts @@ -19,8 +19,8 @@ import { krasnodar } from "@fluencelabs/fluence-network-environment"; import { validate } from "./_aqua/demo_validation"; -const NODE_ID: string = "12D3KooWSD5PToNiLQwKDXsu8JSysCwUt8BVUJEqCHcDe7P5h45e"; -const RELAY_ID: string = "12D3KooWSD5PToNiLQwKDXsu8JSysCwUt8BVUJEqCHcDe7P5h45e"; +const NODE_ID: string = "12D3KooWFCY8xqebtZqNeiA5took71bUNAedzCCDuCuM1QTdTbWT"; +const RELAY_ID: string = krasnodar[0].peerId; const EIP_URL: string = "https://ipfs.fleek.co/ipfs/QmWGzSQFm57ohEq2ATw4UNHWmYU2HkMjtedcNLodYywpmS"; async function main() { @@ -42,6 +42,6 @@ async function main() { main() .then(() => process.exit(0)) .catch((error) => { - console.error(error); + console.error('something went wrong: ', error); process.exit(1); }); diff --git a/package.json b/package.json index c41d045..a16298d 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "typescript": "^4.4.2" }, "dependencies": { - "@fluencelabs/fluence": "0.10.4-async-457.0", + "@fluencelabs/fluence": "0.14.1", "@fluencelabs/fluence-network-environment": "1.0.10", "@types/sqlite3": "^3.1.7", "base64-js": "^1.5.1", diff --git a/src/_aqua/demo_validation.ts b/src/_aqua/demo_validation.ts new file mode 100644 index 0000000..2091fbc --- /dev/null +++ b/src/_aqua/demo_validation.ts @@ -0,0 +1,443 @@ +/** + * + * 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.2-SNAPSHOT + * + */ +import { Fluence, FluencePeer } from "@fluencelabs/fluence"; +import { + CallParams, + callFunction, + registerService, +} from "@fluencelabs/fluence/dist/internal/compilerSupport/v2"; + +// Services + +export interface ProVoValidationDef { + eip712_validation_string: ( + eip_str: string, + peer_id: string, + callParams: CallParams<"eip_str" | "peer_id"> + ) => string; + eip712_validation_url: ( + eip_str: string, + peer_id: string, + callParams: CallParams<"eip_str" | "peer_id"> + ) => string; +} +export function registerProVoValidation(service: ProVoValidationDef): void; +export function registerProVoValidation( + serviceId: string, + service: ProVoValidationDef +): void; +export function registerProVoValidation( + peer: FluencePeer, + service: ProVoValidationDef +): void; +export function registerProVoValidation( + peer: FluencePeer, + serviceId: string, + service: ProVoValidationDef +): void; + +export function registerProVoValidation(...args: any) { + registerService(args, { + defaultServiceId: "EIPValidator", + functions: [ + { + functionName: "eip712_validation_string", + argDefs: [ + { + name: "eip_str", + argType: { + tag: "primitive", + }, + }, + { + name: "peer_id", + argType: { + tag: "primitive", + }, + }, + ], + returnType: { + tag: "primitive", + }, + }, + { + functionName: "eip712_validation_url", + argDefs: [ + { + name: "eip_str", + argType: { + tag: "primitive", + }, + }, + { + name: "peer_id", + argType: { + tag: "primitive", + }, + }, + ], + returnType: { + tag: "primitive", + }, + }, + ], + }); +} + +export interface DataProviderDef { + get_record: ( + snapshot_id: number, + callParams: CallParams<"snapshot_id"> + ) => { snapshot_id: number }; + get_records: (callParams: CallParams) => { snapshot_id: number }[]; +} +export function registerDataProvider(service: DataProviderDef): void; +export function registerDataProvider( + serviceId: string, + service: DataProviderDef +): void; +export function registerDataProvider( + peer: FluencePeer, + service: DataProviderDef +): void; +export function registerDataProvider( + peer: FluencePeer, + serviceId: string, + service: DataProviderDef +): void; + +export function registerDataProvider(...args: any) { + registerService(args, { + defaultServiceId: "DataProvider", + functions: [ + { + functionName: "get_record", + argDefs: [ + { + name: "snapshot_id", + argType: { + tag: "primitive", + }, + }, + ], + returnType: { + tag: "primitive", + }, + }, + { + functionName: "get_records", + argDefs: [], + returnType: { + tag: "primitive", + }, + }, + ], + }); +} + +// Functions + +export function validate( + eip712_url: string, + node: string, + relay: string, + config?: { ttl?: number } +): Promise; +export function validate( + peer: FluencePeer, + eip712_url: string, + node: string, + relay: string, + config?: { ttl?: number } +): Promise; +export function validate(...args: any) { + let script = ` + (xor + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("getDataSrv" "eip712_url") [] eip712_url) + ) + (call %init_peer_id% ("getDataSrv" "node") [] node) + ) + (call %init_peer_id% ("getDataSrv" "relay") [] relay) + ) + (call -relay- ("op" "noop") []) + ) + (call relay ("op" "noop") []) + ) + (xor + (call node ("EIPValidator" "eip712_validation_url") [eip712_url node] res) + (seq + (seq + (seq + (call relay ("op" "noop") []) + (call -relay- ("op" "noop") []) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + (call -relay- ("op" "noop") []) + ) + ) + ) + (call relay ("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]) + ) + `; + return callFunction( + args, + { + functionName: "validate", + returnType: { + tag: "primitive", + }, + argDefs: [ + { + name: "eip712_url", + argType: { + tag: "primitive", + }, + }, + { + name: "node", + argType: { + tag: "primitive", + }, + }, + { + name: "relay", + argType: { + tag: "primitive", + }, + }, + ], + names: { + relay: "-relay-", + getDataSrv: "getDataSrv", + callbackSrv: "callbackSrv", + responseSrv: "callbackSrv", + responseFnName: "response", + errorHandlingSrv: "errorHandlingSrv", + errorFnName: "error", + }, + }, + script + ); +} + +export function get_all_validations( + node: string, + relay: string, + config?: { ttl?: number } +): Promise<{ snapshot_id: number }[]>; +export function get_all_validations( + peer: FluencePeer, + node: string, + relay: string, + config?: { ttl?: number } +): Promise<{ snapshot_id: number }[]>; +export function get_all_validations(...args: any) { + let script = ` + (xor + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("getDataSrv" "node") [] node) + ) + (call %init_peer_id% ("getDataSrv" "relay") [] relay) + ) + (call -relay- ("op" "noop") []) + ) + (call relay ("op" "noop") []) + ) + (xor + (call node ("DataProvider" "get_records") [] res) + (seq + (seq + (seq + (call relay ("op" "noop") []) + (call -relay- ("op" "noop") []) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + (call -relay- ("op" "noop") []) + ) + ) + ) + (call relay ("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]) + ) + `; + return callFunction( + args, + { + functionName: "get_all_validations", + returnType: { + tag: "primitive", + }, + argDefs: [ + { + name: "node", + argType: { + tag: "primitive", + }, + }, + { + name: "relay", + argType: { + tag: "primitive", + }, + }, + ], + names: { + relay: "-relay-", + getDataSrv: "getDataSrv", + callbackSrv: "callbackSrv", + responseSrv: "callbackSrv", + responseFnName: "response", + errorHandlingSrv: "errorHandlingSrv", + errorFnName: "error", + }, + }, + script + ); +} + +export type Get_validationResult = { snapshot_id: number }; +export function get_validation( + snapshot_id: number, + node: string, + relay: string, + config?: { ttl?: number } +): Promise; +export function get_validation( + peer: FluencePeer, + snapshot_id: number, + node: string, + relay: string, + config?: { ttl?: number } +): Promise; +export function get_validation(...args: any) { + let script = ` + (xor + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("getDataSrv" "snapshot_id") [] snapshot_id) + ) + (call %init_peer_id% ("getDataSrv" "node") [] node) + ) + (call %init_peer_id% ("getDataSrv" "relay") [] relay) + ) + (call -relay- ("op" "noop") []) + ) + (call relay ("op" "noop") []) + ) + (xor + (call node ("DataProvider" "get_record") [snapshot_id] res) + (seq + (seq + (seq + (call relay ("op" "noop") []) + (call -relay- ("op" "noop") []) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + (call -relay- ("op" "noop") []) + ) + ) + ) + (call relay ("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]) + ) + `; + return callFunction( + args, + { + functionName: "get_validation", + returnType: { + tag: "primitive", + }, + argDefs: [ + { + name: "snapshot_id", + argType: { + tag: "primitive", + }, + }, + { + name: "node", + argType: { + tag: "primitive", + }, + }, + { + name: "relay", + argType: { + tag: "primitive", + }, + }, + ], + names: { + relay: "-relay-", + getDataSrv: "getDataSrv", + callbackSrv: "callbackSrv", + responseSrv: "callbackSrv", + responseFnName: "response", + errorHandlingSrv: "errorHandlingSrv", + errorFnName: "error", + }, + }, + script + ); +} diff --git a/src/_aqua/snapshot.ts b/src/_aqua/snapshot.ts index d97a8b9..6ceb333 100644 --- a/src/_aqua/snapshot.ts +++ b/src/_aqua/snapshot.ts @@ -3,20 +3,15 @@ * 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.1-231 + * Aqua version: 0.3.2-SNAPSHOT * */ import { Fluence, FluencePeer } from "@fluencelabs/fluence"; import { - ResultCodes, - RequestFlow, - RequestFlowBuilder, CallParams, -} from "@fluencelabs/fluence/dist/internal/compilerSupport/v1"; - -function missingFields(obj: any, fields: string[]): string[] { - return fields.filter((f) => !(f in obj)); -} + callFunction, + registerService, +} from "@fluencelabs/fluence/dist/internal/compilerSupport/v2"; // Services @@ -32,7 +27,6 @@ export interface ProVoValidationDef { callParams: CallParams<"eip_str" | "peer_id"> ) => string | Promise; } - export function registerProVoValidation(service: ProVoValidationDef): void; export function registerProVoValidation( serviceId: string, @@ -47,87 +41,52 @@ export function registerProVoValidation( serviceId: string, service: ProVoValidationDef ): void; + export function registerProVoValidation(...args: any) { - let peer: FluencePeer; - let serviceId: any; - let service: any; - if (FluencePeer.isInstance(args[0])) { - peer = args[0]; - } else { - peer = Fluence.getPeer(); - } - - if (typeof args[0] === "string") { - serviceId = args[0]; - } else if (typeof args[1] === "string") { - serviceId = args[1]; - } else { - serviceId = "eip_validation"; - } - - // Figuring out which overload is the await service. - // If the first argument is not Fluence Peer and it is an object, then it can only be the service def - // If the first argument is peer, we are checking further. The second argument might either be - // an object, that it must be the service object - // or a string, which is the service id. In that case the service is the third argument - if (!FluencePeer.isInstance(args[0]) && typeof args[0] === "object") { - service = args[0]; - } else if (typeof args[1] === "object") { - service = args[1]; - } else { - service = args[2]; - } - - const incorrectServiceDefinitions = missingFields(service, [ - "eip712_validation_string", - "eip712_validation_url", - ]); - if (!!incorrectServiceDefinitions.length) { - throw new Error( - "Error registering service ProVoValidation: missing functions: " + - incorrectServiceDefinitions.map((d) => "'" + d + "'").join(", ") - ); - } - - peer.internals.callServiceHandler.use(async (req, resp, next) => { - if (req.serviceId !== serviceId) { - await next(); - return; - } - - if (req.fnName === "eip712_validation_string") { - const callParams = { - ...req.particleContext, - tetraplets: { - eip_str: req.tetraplets[0], - peer_id: req.tetraplets[1], + registerService(args, { + defaultServiceId: "snapshot", + functions: [ + { + functionName: "eip712_validation_string", + argDefs: [ + { + name: "eip_str", + argType: { + tag: "primitive", + }, + }, + { + name: "peer_id", + argType: { + tag: "primitive", + }, + }, + ], + returnType: { + tag: "primitive", }, - }; - resp.retCode = ResultCodes.success; - resp.result = await service.eip712_validation_string( - req.args[0], - req.args[1], - callParams - ); - } - - if (req.fnName === "eip712_validation_url") { - const callParams = { - ...req.particleContext, - tetraplets: { - eip_str: req.tetraplets[0], - peer_id: req.tetraplets[1], + }, + { + functionName: "eip712_validation_url", + argDefs: [ + { + name: "eip_str", + argType: { + tag: "primitive", + }, + }, + { + name: "peer_id", + argType: { + tag: "primitive", + }, + }, + ], + returnType: { + tag: "primitive", }, - }; - resp.retCode = ResultCodes.success; - resp.result = await service.eip712_validation_url( - req.args[0], - req.args[1], - callParams - ); - } - - await next(); + }, + ], }); } @@ -138,7 +97,6 @@ export interface DataProviderDef { ) => { snapshot_id: number }; get_records: (callParams: CallParams) => { snapshot_id: number }[]; } - export function registerDataProvider(service: DataProviderDef): void; export function registerDataProvider( serviceId: string, @@ -153,75 +111,33 @@ export function registerDataProvider( serviceId: string, service: DataProviderDef ): void; + export function registerDataProvider(...args: any) { - let peer: FluencePeer; - let serviceId: any; - let service: any; - if (FluencePeer.isInstance(args[0])) { - peer = args[0]; - } else { - peer = Fluence.getPeer(); - } - - if (typeof args[0] === "string") { - serviceId = args[0]; - } else if (typeof args[1] === "string") { - serviceId = args[1]; - } else { - serviceId = ""; - } - - // Figuring out which overload is the await service. - // If the first argument is not Fluence Peer and it is an object, then it can only be the service def - // If the first argument is peer, we are checking further. The second argument might either be - // an object, that it must be the service object - // or a string, which is the service id. In that case the service is the third argument - if (!FluencePeer.isInstance(args[0]) && typeof args[0] === "object") { - service = args[0]; - } else if (typeof args[1] === "object") { - service = args[1]; - } else { - service = args[2]; - } - - const incorrectServiceDefinitions = missingFields(service, [ - "get_record", - "get_records", - ]); - if (!!incorrectServiceDefinitions.length) { - throw new Error( - "Error registering service DataProvider: missing functions: " + - incorrectServiceDefinitions.map((d) => "'" + d + "'").join(", ") - ); - } - - peer.internals.callServiceHandler.use(async (req, resp, next) => { - if (req.serviceId !== serviceId) { - await next(); - return; - } - - if (req.fnName === "get_record") { - const callParams = { - ...req.particleContext, - tetraplets: { - snapshot_id: req.tetraplets[0], + registerService(args, { + defaultServiceId: "snapshot", + functions: [ + { + functionName: "get_record", + argDefs: [ + { + name: "snapshot_id", + argType: { + tag: "primitive", + }, + }, + ], + returnType: { + tag: "primitive", }, - }; - resp.retCode = ResultCodes.success; - resp.result = await service.get_record(req.args[0], callParams); - } - - if (req.fnName === "get_records") { - const callParams = { - ...req.particleContext, - tetraplets: {}, - }; - resp.retCode = ResultCodes.success; - resp.result = await service.get_records(callParams); - } - - await next(); + }, + { + functionName: "get_records", + argDefs: [], + returnType: { + tag: "primitive", + }, + }, + ], }); } @@ -241,32 +157,8 @@ export function validate( config?: { ttl?: number } ): Promise; export function validate(...args: any) { - let peer: FluencePeer; - let relay: any; - let peer_: any; - let eip712_json: any; - let config: any; - if (FluencePeer.isInstance(args[0])) { - peer = args[0]; - relay = args[1]; - peer_ = args[2]; - eip712_json = args[3]; - config = args[4]; - } else { - peer = Fluence.getPeer(); - relay = args[0]; - peer_ = args[1]; - eip712_json = args[2]; - config = args[3]; - } - - let request: RequestFlow; - const promise = new Promise((resolve, reject) => { - const r = new RequestFlowBuilder() - .disableInjections() - .withRawScript( - ` - (xor + let script = ` + (xor (seq (seq (seq @@ -288,7 +180,7 @@ export function validate(...args: any) { (call relay ("op" "noop") []) ) (xor - (call peer ("eip_validation" "eip712_validation_string") [eip712_json peer] result) + (call peer ("snapshot" "eip712_validation_string") [eip712_json peer] result) (seq (seq (seq @@ -312,43 +204,46 @@ export function validate(...args: any) { ) (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) ) - ` - ) - .configHandler((h) => { - h.on("getDataSrv", "-relay-", () => { - return peer.getStatus().relayPeerId; - }); - h.on("getDataSrv", "relay", () => { - return relay; - }); - h.on("getDataSrv", "peer", () => { - return peer_; - }); - h.on("getDataSrv", "eip712_json", () => { - return eip712_json; - }); - 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 validate"); - }); - - if (config && config.ttl) { - r.withTTL(config.ttl); - } - - request = r.build(); - }); - peer.internals.initiateFlow(request!); - return promise; + `; + return callFunction( + args, + { + functionName: "validate", + returnType: { + tag: "primitive", + }, + argDefs: [ + { + name: "relay", + argType: { + tag: "primitive", + }, + }, + { + name: "peer", + argType: { + tag: "primitive", + }, + }, + { + name: "eip712_json", + argType: { + tag: "primitive", + }, + }, + ], + names: { + relay: "-relay-", + getDataSrv: "getDataSrv", + callbackSrv: "callbackSrv", + responseSrv: "callbackSrv", + responseFnName: "response", + errorHandlingSrv: "errorHandlingSrv", + errorFnName: "error", + }, + }, + script + ); } export function validate_from_url( @@ -365,32 +260,8 @@ export function validate_from_url( config?: { ttl?: number } ): Promise; export function validate_from_url(...args: any) { - let peer: FluencePeer; - let relay: any; - let peer_: any; - let eip712_url: any; - let config: any; - if (FluencePeer.isInstance(args[0])) { - peer = args[0]; - relay = args[1]; - peer_ = args[2]; - eip712_url = args[3]; - config = args[4]; - } else { - peer = Fluence.getPeer(); - relay = args[0]; - peer_ = args[1]; - eip712_url = args[2]; - config = args[3]; - } - - let request: RequestFlow; - const promise = new Promise((resolve, reject) => { - const r = new RequestFlowBuilder() - .disableInjections() - .withRawScript( - ` - (xor + let script = ` + (xor (seq (seq (seq @@ -412,7 +283,7 @@ export function validate_from_url(...args: any) { (call relay ("op" "noop") []) ) (xor - (call peer ("eip_validation" "eip712_validation_url") [eip712_url peer] result) + (call peer ("snapshot" "eip712_validation_url") [eip712_url peer] result) (seq (seq (seq @@ -436,85 +307,65 @@ export function validate_from_url(...args: any) { ) (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) ) - ` - ) - .configHandler((h) => { - h.on("getDataSrv", "-relay-", () => { - return peer.getStatus().relayPeerId; - }); - h.on("getDataSrv", "relay", () => { - return relay; - }); - h.on("getDataSrv", "peer", () => { - return peer_; - }); - h.on("getDataSrv", "eip712_url", () => { - return eip712_url; - }); - 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 validate_from_url"); - }); - - if (config && config.ttl) { - r.withTTL(config.ttl); - } - - request = r.build(); - }); - peer.internals.initiateFlow(request!); - return promise; + `; + return callFunction( + args, + { + functionName: "validate_from_url", + returnType: { + tag: "primitive", + }, + argDefs: [ + { + name: "relay", + argType: { + tag: "primitive", + }, + }, + { + name: "peer", + argType: { + tag: "primitive", + }, + }, + { + name: "eip712_url", + argType: { + tag: "primitive", + }, + }, + ], + names: { + relay: "-relay-", + getDataSrv: "getDataSrv", + callbackSrv: "callbackSrv", + responseSrv: "callbackSrv", + responseFnName: "response", + errorHandlingSrv: "errorHandlingSrv", + errorFnName: "error", + }, + }, + script + ); } +export type Get_recordResult = { snapshot_id: number }; export function get_record( relay: string, peer_: string, snapshot_id: number, config?: { ttl?: number } -): Promise<{ snapshot_id: number }>; +): Promise; export function get_record( peer: FluencePeer, relay: string, peer_: string, snapshot_id: number, config?: { ttl?: number } -): Promise<{ snapshot_id: number }>; +): Promise; export function get_record(...args: any) { - let peer: FluencePeer; - let relay: any; - let peer_: any; - let snapshot_id: any; - let config: any; - if (FluencePeer.isInstance(args[0])) { - peer = args[0]; - relay = args[1]; - peer_ = args[2]; - snapshot_id = args[3]; - config = args[4]; - } else { - peer = Fluence.getPeer(); - relay = args[0]; - peer_ = args[1]; - snapshot_id = args[2]; - config = args[3]; - } - - let request: RequestFlow; - const promise = new Promise<{ snapshot_id: number }>((resolve, reject) => { - const r = new RequestFlowBuilder() - .disableInjections() - .withRawScript( - ` - (xor + let script = ` + (xor (seq (seq (seq @@ -536,7 +387,7 @@ export function get_record(...args: any) { (call relay ("op" "noop") []) ) (xor - (call peer ("" "get_record") [snapshot_id] result) + (call peer ("snapshot" "get_record") [snapshot_id] result) (seq (seq (seq @@ -560,43 +411,46 @@ export function get_record(...args: any) { ) (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) ) - ` - ) - .configHandler((h) => { - h.on("getDataSrv", "-relay-", () => { - return peer.getStatus().relayPeerId; - }); - h.on("getDataSrv", "relay", () => { - return relay; - }); - h.on("getDataSrv", "peer", () => { - return peer_; - }); - h.on("getDataSrv", "snapshot_id", () => { - return snapshot_id; - }); - 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 get_record"); - }); - - if (config && config.ttl) { - r.withTTL(config.ttl); - } - - request = r.build(); - }); - peer.internals.initiateFlow(request!); - return promise; + `; + return callFunction( + args, + { + functionName: "get_record", + returnType: { + tag: "primitive", + }, + argDefs: [ + { + name: "relay", + argType: { + tag: "primitive", + }, + }, + { + name: "peer", + argType: { + tag: "primitive", + }, + }, + { + name: "snapshot_id", + argType: { + tag: "primitive", + }, + }, + ], + names: { + relay: "-relay-", + getDataSrv: "getDataSrv", + callbackSrv: "callbackSrv", + responseSrv: "callbackSrv", + responseFnName: "response", + errorHandlingSrv: "errorHandlingSrv", + errorFnName: "error", + }, + }, + script + ); } export function get_records( @@ -611,29 +465,8 @@ export function get_records( config?: { ttl?: number } ): Promise<{ snapshot_id: number }[]>; export function get_records(...args: any) { - let peer: FluencePeer; - let relay: any; - let peer_: any; - let config: any; - if (FluencePeer.isInstance(args[0])) { - peer = args[0]; - relay = args[1]; - peer_ = args[2]; - config = args[3]; - } else { - peer = Fluence.getPeer(); - relay = args[0]; - peer_ = args[1]; - config = args[2]; - } - - let request: RequestFlow; - const promise = new Promise<{ snapshot_id: number }[]>((resolve, reject) => { - const r = new RequestFlowBuilder() - .disableInjections() - .withRawScript( - ` - (xor + let script = ` + (xor (seq (seq (seq @@ -652,7 +485,7 @@ export function get_records(...args: any) { (call relay ("op" "noop") []) ) (xor - (call peer ("" "get_records") [] result) + (call peer ("snapshot" "get_records") [] result) (seq (seq (seq @@ -676,38 +509,38 @@ export function get_records(...args: any) { ) (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) ) - ` - ) - .configHandler((h) => { - h.on("getDataSrv", "-relay-", () => { - return peer.getStatus().relayPeerId; - }); - h.on("getDataSrv", "relay", () => { - return relay; - }); - h.on("getDataSrv", "peer", () => { - return peer_; - }); - 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 get_records"); - }); - - if (config && config.ttl) { - r.withTTL(config.ttl); - } - - request = r.build(); - }); - peer.internals.initiateFlow(request!); - return promise; + `; + return callFunction( + args, + { + functionName: "get_records", + returnType: { + tag: "primitive", + }, + argDefs: [ + { + name: "relay", + argType: { + tag: "primitive", + }, + }, + { + name: "peer", + argType: { + tag: "primitive", + }, + }, + ], + names: { + relay: "-relay-", + getDataSrv: "getDataSrv", + callbackSrv: "callbackSrv", + responseSrv: "callbackSrv", + responseFnName: "response", + errorHandlingSrv: "errorHandlingSrv", + errorFnName: "error", + }, + }, + script + ); }