UNPKG

godprotocol

Version:

A distributed computing environment for Web 4.0 — integrating AI, decentralisation, and virtual computation.

42 lines (35 loc) 1.1 kB
import { gen_random_int } from "generalised-datastore/utils/functions.js"; import { post_request } from "../../utils/services.js"; const net = async(args, {vm, chain, call_config, thread})=>{ let {server, path, account, payload} = args; thread.status = 'waiting' path = await path.literal() payload = await payload.literal() let serv = server && [await server.literal()]; account = account ? await account.literal() : vm.account.name if (!serv){ serv = await vm.account.manager.oracle.get_servers(`Accounts/${account}`) } let s = gen_random_int(serv.length-1) let servr = serv[s] post_request({ options: { hostname: servr.hostname, port: servr.port, path: `/${path}`, method: payload.header.method.toUpperCase(), headers: { ...payload.header } }, data: payload.body && JSON.stringify(payload.body) }).then(async res=>{ let adr = await vm.parse_aircode(res, {chain}) thread.results[thread.pointer-1] = adr; thread.status = 'active' }).catch(e=>{ console.log(e) }) return; } export default net;