godprotocol
Version:
A distributed computing environment for Web 4.0 — integrating AI, decentralisation, and virtual computation.
42 lines (35 loc) • 1.1 kB
JavaScript
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;