mirror of
https://github.com/fluencelabs/examples
synced 2025-04-25 10:42:16 +00:00
update quickstart 4 example
This commit is contained in:
parent
33556cabdb
commit
b406212d5b
1
quickstart/4-composing-services-with-aqua/client-peer/.gitignore
vendored
Normal file
1
quickstart/4-composing-services-with-aqua/client-peer/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
dist
|
@ -1,344 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
var __assign = (this && this.__assign) || function () {
|
|
||||||
__assign = Object.assign || function(t) {
|
|
||||||
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
||||||
s = arguments[i];
|
|
||||||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
||||||
t[p] = s[p];
|
|
||||||
}
|
|
||||||
return t;
|
|
||||||
};
|
|
||||||
return __assign.apply(this, arguments);
|
|
||||||
};
|
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
|
||||||
exports.add_one_par_alt = exports.add_one_par = exports.add_one_three_times = exports.add_one = exports.registerMyOp = exports.registerAddOne = void 0;
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* 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.0-226
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
var fluence_1 = require("@fluencelabs/fluence");
|
|
||||||
var v1_1 = require("@fluencelabs/fluence/dist/internal/compilerSupport/v1");
|
|
||||||
function registerAddOne() {
|
|
||||||
var args = [];
|
|
||||||
for (var _i = 0; _i < arguments.length; _i++) {
|
|
||||||
args[_i] = arguments[_i];
|
|
||||||
}
|
|
||||||
var peer;
|
|
||||||
var serviceId;
|
|
||||||
var service;
|
|
||||||
if (fluence_1.FluencePeer.isInstance(args[0])) {
|
|
||||||
peer = args[0];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
peer = fluence_1.Fluence.getPeer();
|
|
||||||
}
|
|
||||||
if (typeof args[0] === 'string') {
|
|
||||||
serviceId = args[0];
|
|
||||||
}
|
|
||||||
else if (typeof args[1] === 'string') {
|
|
||||||
serviceId = args[1];
|
|
||||||
}
|
|
||||||
// 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 (!(fluence_1.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(function (req, resp, next) {
|
|
||||||
if (req.serviceId !== serviceId) {
|
|
||||||
next();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (req.fnName === 'add_one') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
arg0: req.tetraplets[0]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.add_one(req.args[0], callParams);
|
|
||||||
}
|
|
||||||
next();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
exports.registerAddOne = registerAddOne;
|
|
||||||
function registerMyOp() {
|
|
||||||
var args = [];
|
|
||||||
for (var _i = 0; _i < arguments.length; _i++) {
|
|
||||||
args[_i] = arguments[_i];
|
|
||||||
}
|
|
||||||
var peer;
|
|
||||||
var serviceId;
|
|
||||||
var service;
|
|
||||||
if (fluence_1.FluencePeer.isInstance(args[0])) {
|
|
||||||
peer = args[0];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
peer = fluence_1.Fluence.getPeer();
|
|
||||||
}
|
|
||||||
if (typeof args[0] === 'string') {
|
|
||||||
serviceId = args[0];
|
|
||||||
}
|
|
||||||
else if (typeof args[1] === 'string') {
|
|
||||||
serviceId = args[1];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
serviceId = "op";
|
|
||||||
}
|
|
||||||
// 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 (!(fluence_1.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(function (req, resp, next) {
|
|
||||||
if (req.serviceId !== serviceId) {
|
|
||||||
next();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (req.fnName === 'identity') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
u: req.tetraplets[0]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
service.identity(req.args[0], callParams);
|
|
||||||
resp.result = {};
|
|
||||||
}
|
|
||||||
next();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
exports.registerMyOp = registerMyOp;
|
|
||||||
function add_one() {
|
|
||||||
var args = [];
|
|
||||||
for (var _i = 0; _i < arguments.length; _i++) {
|
|
||||||
args[_i] = arguments[_i];
|
|
||||||
}
|
|
||||||
var peer;
|
|
||||||
var value;
|
|
||||||
var node;
|
|
||||||
var service_id;
|
|
||||||
var config;
|
|
||||||
if (fluence_1.FluencePeer.isInstance(args[0])) {
|
|
||||||
peer = args[0];
|
|
||||||
value = args[1];
|
|
||||||
node = args[2];
|
|
||||||
service_id = args[3];
|
|
||||||
config = args[4];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
peer = fluence_1.Fluence.getPeer();
|
|
||||||
value = args[0];
|
|
||||||
node = args[1];
|
|
||||||
service_id = args[2];
|
|
||||||
config = args[3];
|
|
||||||
}
|
|
||||||
var request;
|
|
||||||
var promise = new Promise(function (resolve, reject) {
|
|
||||||
var r = new v1_1.RequestFlowBuilder()
|
|
||||||
.disableInjections()
|
|
||||||
.withRawScript("\n (xor\n (seq\n (seq\n (seq\n (seq\n (seq\n (seq\n (seq\n (call %init_peer_id% (\"getDataSrv\" \"-relay-\") [] -relay-)\n (call %init_peer_id% (\"getDataSrv\" \"value\") [] value)\n )\n (call %init_peer_id% (\"getDataSrv\" \"node\") [] node)\n )\n (call %init_peer_id% (\"getDataSrv\" \"service_id\") [] service_id)\n )\n (call -relay- (\"op\" \"noop\") [])\n )\n (xor\n (seq\n (call -relay- (\"op\" \"noop\") [])\n (call node (service_id \"add_one\") [value] res)\n )\n (seq\n (call -relay- (\"op\" \"noop\") [])\n (call %init_peer_id% (\"errorHandlingSrv\" \"error\") [%last_error% 1])\n )\n )\n )\n (call -relay- (\"op\" \"noop\") [])\n )\n (xor\n (call %init_peer_id% (\"callbackSrv\" \"response\") [res])\n (call %init_peer_id% (\"errorHandlingSrv\" \"error\") [%last_error% 2])\n )\n )\n (call %init_peer_id% (\"errorHandlingSrv\" \"error\") [%last_error% 3])\n)\n\n ")
|
|
||||||
.configHandler(function (h) {
|
|
||||||
h.on('getDataSrv', '-relay-', function () {
|
|
||||||
return peer.getStatus().relayPeerId;
|
|
||||||
});
|
|
||||||
h.on('getDataSrv', 'value', function () { return value; });
|
|
||||||
h.on('getDataSrv', 'node', function () { return node; });
|
|
||||||
h.on('getDataSrv', 'service_id', function () { return service_id; });
|
|
||||||
h.onEvent('callbackSrv', 'response', function (args) {
|
|
||||||
var res = args[0];
|
|
||||||
resolve(res);
|
|
||||||
});
|
|
||||||
h.onEvent('errorHandlingSrv', 'error', function (args) {
|
|
||||||
var err = args[0];
|
|
||||||
reject(err);
|
|
||||||
});
|
|
||||||
})
|
|
||||||
.handleScriptError(reject)
|
|
||||||
.handleTimeout(function () {
|
|
||||||
reject('Request timed out for add_one');
|
|
||||||
});
|
|
||||||
if (config && config.ttl) {
|
|
||||||
r.withTTL(config.ttl);
|
|
||||||
}
|
|
||||||
request = r.build();
|
|
||||||
});
|
|
||||||
peer.internals.initiateFlow(request);
|
|
||||||
return promise;
|
|
||||||
}
|
|
||||||
exports.add_one = add_one;
|
|
||||||
function add_one_three_times() {
|
|
||||||
var args = [];
|
|
||||||
for (var _i = 0; _i < arguments.length; _i++) {
|
|
||||||
args[_i] = arguments[_i];
|
|
||||||
}
|
|
||||||
var peer;
|
|
||||||
var value;
|
|
||||||
var ns_tuples;
|
|
||||||
var config;
|
|
||||||
if (fluence_1.FluencePeer.isInstance(args[0])) {
|
|
||||||
peer = args[0];
|
|
||||||
value = args[1];
|
|
||||||
ns_tuples = args[2];
|
|
||||||
config = args[3];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
peer = fluence_1.Fluence.getPeer();
|
|
||||||
value = args[0];
|
|
||||||
ns_tuples = args[1];
|
|
||||||
config = args[2];
|
|
||||||
}
|
|
||||||
var request;
|
|
||||||
var promise = new Promise(function (resolve, reject) {
|
|
||||||
var r = new v1_1.RequestFlowBuilder()
|
|
||||||
.disableInjections()
|
|
||||||
.withRawScript("\n (xor\n (seq\n (seq\n (seq\n (seq\n (seq\n (seq\n (seq\n (seq\n (call %init_peer_id% (\"getDataSrv\" \"-relay-\") [] -relay-)\n (call %init_peer_id% (\"getDataSrv\" \"value\") [] value)\n )\n (call %init_peer_id% (\"getDataSrv\" \"ns_tuples\") [] ns_tuples)\n )\n (call -relay- (\"op\" \"noop\") [])\n )\n (xor\n (seq\n (call -relay- (\"op\" \"noop\") [])\n (call ns_tuples.$.[0].node_id! (ns_tuples.$.[0].service_id! \"add_one\") [value] res1)\n )\n (seq\n (seq\n (call -relay- (\"op\" \"noop\") [])\n (call %init_peer_id% (\"errorHandlingSrv\" \"error\") [%last_error% 1])\n )\n (call -relay- (\"op\" \"noop\") [])\n )\n )\n )\n (xor\n (call ns_tuples.$.[1].node_id! (ns_tuples.$.[1].service_id! \"add_one\") [res1] res2)\n (seq\n (seq\n (call -relay- (\"op\" \"noop\") [])\n (call %init_peer_id% (\"errorHandlingSrv\" \"error\") [%last_error% 2])\n )\n (call -relay- (\"op\" \"noop\") [])\n )\n )\n )\n (xor\n (call ns_tuples.$.[2].node_id! (ns_tuples.$.[2].service_id! \"add_one\") [res2] res3)\n (seq\n (call -relay- (\"op\" \"noop\") [])\n (call %init_peer_id% (\"errorHandlingSrv\" \"error\") [%last_error% 3])\n )\n )\n )\n (call -relay- (\"op\" \"noop\") [])\n )\n (xor\n (call %init_peer_id% (\"callbackSrv\" \"response\") [res3])\n (call %init_peer_id% (\"errorHandlingSrv\" \"error\") [%last_error% 4])\n )\n )\n (call %init_peer_id% (\"errorHandlingSrv\" \"error\") [%last_error% 5])\n)\n\n ")
|
|
||||||
.configHandler(function (h) {
|
|
||||||
h.on('getDataSrv', '-relay-', function () {
|
|
||||||
return peer.getStatus().relayPeerId;
|
|
||||||
});
|
|
||||||
h.on('getDataSrv', 'value', function () { return value; });
|
|
||||||
h.on('getDataSrv', 'ns_tuples', function () { return ns_tuples; });
|
|
||||||
h.onEvent('callbackSrv', 'response', function (args) {
|
|
||||||
var res = args[0];
|
|
||||||
resolve(res);
|
|
||||||
});
|
|
||||||
h.onEvent('errorHandlingSrv', 'error', function (args) {
|
|
||||||
var err = args[0];
|
|
||||||
reject(err);
|
|
||||||
});
|
|
||||||
})
|
|
||||||
.handleScriptError(reject)
|
|
||||||
.handleTimeout(function () {
|
|
||||||
reject('Request timed out for add_one_three_times');
|
|
||||||
});
|
|
||||||
if (config && config.ttl) {
|
|
||||||
r.withTTL(config.ttl);
|
|
||||||
}
|
|
||||||
request = r.build();
|
|
||||||
});
|
|
||||||
peer.internals.initiateFlow(request);
|
|
||||||
return promise;
|
|
||||||
}
|
|
||||||
exports.add_one_three_times = add_one_three_times;
|
|
||||||
function add_one_par() {
|
|
||||||
var args = [];
|
|
||||||
for (var _i = 0; _i < arguments.length; _i++) {
|
|
||||||
args[_i] = arguments[_i];
|
|
||||||
}
|
|
||||||
var peer;
|
|
||||||
var value;
|
|
||||||
var ns_tuples;
|
|
||||||
var config;
|
|
||||||
if (fluence_1.FluencePeer.isInstance(args[0])) {
|
|
||||||
peer = args[0];
|
|
||||||
value = args[1];
|
|
||||||
ns_tuples = args[2];
|
|
||||||
config = args[3];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
peer = fluence_1.Fluence.getPeer();
|
|
||||||
value = args[0];
|
|
||||||
ns_tuples = args[1];
|
|
||||||
config = args[2];
|
|
||||||
}
|
|
||||||
var request;
|
|
||||||
var promise = new Promise(function (resolve, reject) {
|
|
||||||
var r = new v1_1.RequestFlowBuilder()
|
|
||||||
.disableInjections()
|
|
||||||
.withRawScript("\n (xor\n (seq\n (seq\n (seq\n (seq\n (seq\n (call %init_peer_id% (\"getDataSrv\" \"-relay-\") [] -relay-)\n (call %init_peer_id% (\"getDataSrv\" \"value\") [] value)\n )\n (call %init_peer_id% (\"getDataSrv\" \"ns_tuples\") [] ns_tuples)\n )\n (fold ns_tuples ns\n (par\n (seq\n (seq\n (seq\n (call -relay- (\"op\" \"noop\") [])\n (xor\n (seq\n (call -relay- (\"op\" \"noop\") [])\n (call ns.$.node_id! (ns.$.service_id! \"add_one\") [value] $res)\n )\n (seq\n (call -relay- (\"op\" \"noop\") [])\n (call %init_peer_id% (\"errorHandlingSrv\" \"error\") [%last_error% 1])\n )\n )\n )\n (call -relay- (\"op\" \"noop\") [])\n )\n (call %init_peer_id% (\"op\" \"noop\") [])\n )\n (next ns)\n )\n )\n )\n (call %init_peer_id% (\"op\" \"identity\") [$res.$.[2]!])\n )\n (xor\n (call %init_peer_id% (\"callbackSrv\" \"response\") [$res])\n (call %init_peer_id% (\"errorHandlingSrv\" \"error\") [%last_error% 2])\n )\n )\n (call %init_peer_id% (\"errorHandlingSrv\" \"error\") [%last_error% 3])\n)\n\n ")
|
|
||||||
.configHandler(function (h) {
|
|
||||||
h.on('getDataSrv', '-relay-', function () {
|
|
||||||
return peer.getStatus().relayPeerId;
|
|
||||||
});
|
|
||||||
h.on('getDataSrv', 'value', function () { return value; });
|
|
||||||
h.on('getDataSrv', 'ns_tuples', function () { return ns_tuples; });
|
|
||||||
h.onEvent('callbackSrv', 'response', function (args) {
|
|
||||||
var res = args[0];
|
|
||||||
resolve(res);
|
|
||||||
});
|
|
||||||
h.onEvent('errorHandlingSrv', 'error', function (args) {
|
|
||||||
var err = args[0];
|
|
||||||
reject(err);
|
|
||||||
});
|
|
||||||
})
|
|
||||||
.handleScriptError(reject)
|
|
||||||
.handleTimeout(function () {
|
|
||||||
reject('Request timed out for add_one_par');
|
|
||||||
});
|
|
||||||
if (config && config.ttl) {
|
|
||||||
r.withTTL(config.ttl);
|
|
||||||
}
|
|
||||||
request = r.build();
|
|
||||||
});
|
|
||||||
peer.internals.initiateFlow(request);
|
|
||||||
return promise;
|
|
||||||
}
|
|
||||||
exports.add_one_par = add_one_par;
|
|
||||||
function add_one_par_alt() {
|
|
||||||
var args = [];
|
|
||||||
for (var _i = 0; _i < arguments.length; _i++) {
|
|
||||||
args[_i] = arguments[_i];
|
|
||||||
}
|
|
||||||
var peer;
|
|
||||||
var payload;
|
|
||||||
var config;
|
|
||||||
if (fluence_1.FluencePeer.isInstance(args[0])) {
|
|
||||||
peer = args[0];
|
|
||||||
payload = args[1];
|
|
||||||
config = args[2];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
peer = fluence_1.Fluence.getPeer();
|
|
||||||
payload = args[0];
|
|
||||||
config = args[1];
|
|
||||||
}
|
|
||||||
var request;
|
|
||||||
var promise = new Promise(function (resolve, reject) {
|
|
||||||
var r = new v1_1.RequestFlowBuilder()
|
|
||||||
.disableInjections()
|
|
||||||
.withRawScript("\n (xor\n (seq\n (seq\n (seq\n (seq\n (call %init_peer_id% (\"getDataSrv\" \"-relay-\") [] -relay-)\n (call %init_peer_id% (\"getDataSrv\" \"payload\") [] payload)\n )\n (fold payload vns\n (par\n (seq\n (seq\n (seq\n (call -relay- (\"op\" \"noop\") [])\n (xor\n (seq\n (call -relay- (\"op\" \"noop\") [])\n (call vns.$.node_id! (vns.$.service_id! \"add_one\") [vns.$.value!] $res)\n )\n (seq\n (call -relay- (\"op\" \"noop\") [])\n (call %init_peer_id% (\"errorHandlingSrv\" \"error\") [%last_error% 1])\n )\n )\n )\n (call -relay- (\"op\" \"noop\") [])\n )\n (call %init_peer_id% (\"op\" \"noop\") [])\n )\n (next vns)\n )\n )\n )\n (call %init_peer_id% (\"op\" \"identity\") [$res.$.[2]!])\n )\n (xor\n (call %init_peer_id% (\"callbackSrv\" \"response\") [$res])\n (call %init_peer_id% (\"errorHandlingSrv\" \"error\") [%last_error% 2])\n )\n )\n (call %init_peer_id% (\"errorHandlingSrv\" \"error\") [%last_error% 3])\n)\n\n ")
|
|
||||||
.configHandler(function (h) {
|
|
||||||
h.on('getDataSrv', '-relay-', function () {
|
|
||||||
return peer.getStatus().relayPeerId;
|
|
||||||
});
|
|
||||||
h.on('getDataSrv', 'payload', function () { return payload; });
|
|
||||||
h.onEvent('callbackSrv', 'response', function (args) {
|
|
||||||
var res = args[0];
|
|
||||||
resolve(res);
|
|
||||||
});
|
|
||||||
h.onEvent('errorHandlingSrv', 'error', function (args) {
|
|
||||||
var err = args[0];
|
|
||||||
reject(err);
|
|
||||||
});
|
|
||||||
})
|
|
||||||
.handleScriptError(reject)
|
|
||||||
.handleTimeout(function () {
|
|
||||||
reject('Request timed out for add_one_par_alt');
|
|
||||||
});
|
|
||||||
if (config && config.ttl) {
|
|
||||||
r.withTTL(config.ttl);
|
|
||||||
}
|
|
||||||
request = r.build();
|
|
||||||
});
|
|
||||||
peer.internals.initiateFlow(request);
|
|
||||||
return promise;
|
|
||||||
}
|
|
||||||
exports.add_one_par_alt = add_one_par_alt;
|
|
@ -1,548 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
var __assign = (this && this.__assign) || function () {
|
|
||||||
__assign = Object.assign || function(t) {
|
|
||||||
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
||||||
s = arguments[i];
|
|
||||||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
||||||
t[p] = s[p];
|
|
||||||
}
|
|
||||||
return t;
|
|
||||||
};
|
|
||||||
return __assign.apply(this, arguments);
|
|
||||||
};
|
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
|
||||||
exports.registerDist = exports.registerScript = exports.registerKademlia = exports.registerOp = exports.registerPeer = exports.registerSrv = void 0;
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* 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.0-226
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
var fluence_1 = require("@fluencelabs/fluence");
|
|
||||||
var v1_1 = require("@fluencelabs/fluence/dist/internal/compilerSupport/v1");
|
|
||||||
function registerSrv() {
|
|
||||||
var args = [];
|
|
||||||
for (var _i = 0; _i < arguments.length; _i++) {
|
|
||||||
args[_i] = arguments[_i];
|
|
||||||
}
|
|
||||||
var peer;
|
|
||||||
var serviceId;
|
|
||||||
var service;
|
|
||||||
if (fluence_1.FluencePeer.isInstance(args[0])) {
|
|
||||||
peer = args[0];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
peer = fluence_1.Fluence.getPeer();
|
|
||||||
}
|
|
||||||
if (typeof args[0] === 'string') {
|
|
||||||
serviceId = args[0];
|
|
||||||
}
|
|
||||||
else if (typeof args[1] === 'string') {
|
|
||||||
serviceId = args[1];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
serviceId = "srv";
|
|
||||||
}
|
|
||||||
// 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 (!(fluence_1.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(function (req, resp, next) {
|
|
||||||
if (req.serviceId !== serviceId) {
|
|
||||||
next();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (req.fnName === 'add_alias') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
alias: req.tetraplets[0], service_id: req.tetraplets[1]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
service.add_alias(req.args[0], req.args[1], callParams);
|
|
||||||
resp.result = {};
|
|
||||||
}
|
|
||||||
if (req.fnName === 'create') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
blueprint_id: req.tetraplets[0]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.create(req.args[0], callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'get_interface') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
service_id: req.tetraplets[0]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.get_interface(req.args[0], callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'list') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.list(callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'remove') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
service_id: req.tetraplets[0]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
service.remove(req.args[0], callParams);
|
|
||||||
resp.result = {};
|
|
||||||
}
|
|
||||||
if (req.fnName === 'resolve_alias') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
alias: req.tetraplets[0]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.resolve_alias(req.args[0], callParams);
|
|
||||||
}
|
|
||||||
next();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
exports.registerSrv = registerSrv;
|
|
||||||
function registerPeer() {
|
|
||||||
var args = [];
|
|
||||||
for (var _i = 0; _i < arguments.length; _i++) {
|
|
||||||
args[_i] = arguments[_i];
|
|
||||||
}
|
|
||||||
var peer;
|
|
||||||
var serviceId;
|
|
||||||
var service;
|
|
||||||
if (fluence_1.FluencePeer.isInstance(args[0])) {
|
|
||||||
peer = args[0];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
peer = fluence_1.Fluence.getPeer();
|
|
||||||
}
|
|
||||||
if (typeof args[0] === 'string') {
|
|
||||||
serviceId = args[0];
|
|
||||||
}
|
|
||||||
else if (typeof args[1] === 'string') {
|
|
||||||
serviceId = args[1];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
serviceId = "peer";
|
|
||||||
}
|
|
||||||
// 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 (!(fluence_1.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(function (req, resp, next) {
|
|
||||||
if (req.serviceId !== serviceId) {
|
|
||||||
next();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (req.fnName === 'connect') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
id: req.tetraplets[0], multiaddrs: req.tetraplets[1]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.connect(req.args[0], req.args[1].length === 0 ? null : req.args[1][0], callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'get_contact') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
peer: req.tetraplets[0]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.get_contact(req.args[0], callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'identify') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.identify(callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'is_connected') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
peer: req.tetraplets[0]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.is_connected(req.args[0], callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'timestamp_ms') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.timestamp_ms(callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'timestamp_sec') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.timestamp_sec(callParams);
|
|
||||||
}
|
|
||||||
next();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
exports.registerPeer = registerPeer;
|
|
||||||
function registerOp() {
|
|
||||||
var args = [];
|
|
||||||
for (var _i = 0; _i < arguments.length; _i++) {
|
|
||||||
args[_i] = arguments[_i];
|
|
||||||
}
|
|
||||||
var peer;
|
|
||||||
var serviceId;
|
|
||||||
var service;
|
|
||||||
if (fluence_1.FluencePeer.isInstance(args[0])) {
|
|
||||||
peer = args[0];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
peer = fluence_1.Fluence.getPeer();
|
|
||||||
}
|
|
||||||
if (typeof args[0] === 'string') {
|
|
||||||
serviceId = args[0];
|
|
||||||
}
|
|
||||||
else if (typeof args[1] === 'string') {
|
|
||||||
serviceId = args[1];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
serviceId = "op";
|
|
||||||
}
|
|
||||||
// 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 (!(fluence_1.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(function (req, resp, next) {
|
|
||||||
if (req.serviceId !== serviceId) {
|
|
||||||
next();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (req.fnName === 'array') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
a: req.tetraplets[0], b: req.tetraplets[1], c: req.tetraplets[2], d: req.tetraplets[3]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.array(req.args[0], req.args[1].length === 0 ? null : req.args[1][0], req.args[2].length === 0 ? null : req.args[2][0], req.args[3].length === 0 ? null : req.args[3][0], callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'array_length') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
array: req.tetraplets[0]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.array_length(req.args[0], callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'bytes_from_b58') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
b: req.tetraplets[0]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.bytes_from_b58(req.args[0], callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'bytes_to_b58') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
bs: req.tetraplets[0]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.bytes_to_b58(req.args[0], callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'concat') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
a: req.tetraplets[0], b: req.tetraplets[1], c: req.tetraplets[2], d: req.tetraplets[3]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.concat(req.args[0], req.args[1].length === 0 ? null : req.args[1][0], req.args[2].length === 0 ? null : req.args[2][0], req.args[3].length === 0 ? null : req.args[3][0], callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'concat_strings') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
a: req.tetraplets[0], b: req.tetraplets[1]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.concat_strings(req.args[0], req.args[1], callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'identity') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
s: req.tetraplets[0]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
var respResult = service.identity(req.args[0].length === 0 ? null : req.args[0][0], callParams);
|
|
||||||
resp.result = respResult === null ? [] : [respResult];
|
|
||||||
}
|
|
||||||
if (req.fnName === 'noop') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
service.noop(callParams);
|
|
||||||
resp.result = {};
|
|
||||||
}
|
|
||||||
if (req.fnName === 'sha256_string') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
s: req.tetraplets[0]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.sha256_string(req.args[0], callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'string_from_b58') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
b: req.tetraplets[0]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.string_from_b58(req.args[0], callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'string_to_b58') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
s: req.tetraplets[0]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.string_to_b58(req.args[0], callParams);
|
|
||||||
}
|
|
||||||
next();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
exports.registerOp = registerOp;
|
|
||||||
function registerKademlia() {
|
|
||||||
var args = [];
|
|
||||||
for (var _i = 0; _i < arguments.length; _i++) {
|
|
||||||
args[_i] = arguments[_i];
|
|
||||||
}
|
|
||||||
var peer;
|
|
||||||
var serviceId;
|
|
||||||
var service;
|
|
||||||
if (fluence_1.FluencePeer.isInstance(args[0])) {
|
|
||||||
peer = args[0];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
peer = fluence_1.Fluence.getPeer();
|
|
||||||
}
|
|
||||||
if (typeof args[0] === 'string') {
|
|
||||||
serviceId = args[0];
|
|
||||||
}
|
|
||||||
else if (typeof args[1] === 'string') {
|
|
||||||
serviceId = args[1];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
serviceId = "kad";
|
|
||||||
}
|
|
||||||
// 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 (!(fluence_1.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(function (req, resp, next) {
|
|
||||||
if (req.serviceId !== serviceId) {
|
|
||||||
next();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (req.fnName === 'merge') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
target: req.tetraplets[0], left: req.tetraplets[1], right: req.tetraplets[2], count: req.tetraplets[3]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.merge(req.args[0], req.args[1], req.args[2], req.args[3].length === 0 ? null : req.args[3][0], callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'neighborhood') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
key: req.tetraplets[0], already_hashed: req.tetraplets[1], count: req.tetraplets[2]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.neighborhood(req.args[0], req.args[1].length === 0 ? null : req.args[1][0], req.args[2].length === 0 ? null : req.args[2][0], callParams);
|
|
||||||
}
|
|
||||||
next();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
exports.registerKademlia = registerKademlia;
|
|
||||||
function registerScript() {
|
|
||||||
var args = [];
|
|
||||||
for (var _i = 0; _i < arguments.length; _i++) {
|
|
||||||
args[_i] = arguments[_i];
|
|
||||||
}
|
|
||||||
var peer;
|
|
||||||
var serviceId;
|
|
||||||
var service;
|
|
||||||
if (fluence_1.FluencePeer.isInstance(args[0])) {
|
|
||||||
peer = args[0];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
peer = fluence_1.Fluence.getPeer();
|
|
||||||
}
|
|
||||||
if (typeof args[0] === 'string') {
|
|
||||||
serviceId = args[0];
|
|
||||||
}
|
|
||||||
else if (typeof args[1] === 'string') {
|
|
||||||
serviceId = args[1];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
serviceId = "script";
|
|
||||||
}
|
|
||||||
// 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 (!(fluence_1.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(function (req, resp, next) {
|
|
||||||
if (req.serviceId !== serviceId) {
|
|
||||||
next();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (req.fnName === 'add') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
air_script: req.tetraplets[0], interval: req.tetraplets[1]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.add(req.args[0], req.args[1].length === 0 ? null : req.args[1][0], callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'list') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.list(callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'remove') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
script_id: req.tetraplets[0]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.remove(req.args[0], callParams);
|
|
||||||
}
|
|
||||||
next();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
exports.registerScript = registerScript;
|
|
||||||
function registerDist() {
|
|
||||||
var args = [];
|
|
||||||
for (var _i = 0; _i < arguments.length; _i++) {
|
|
||||||
args[_i] = arguments[_i];
|
|
||||||
}
|
|
||||||
var peer;
|
|
||||||
var serviceId;
|
|
||||||
var service;
|
|
||||||
if (fluence_1.FluencePeer.isInstance(args[0])) {
|
|
||||||
peer = args[0];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
peer = fluence_1.Fluence.getPeer();
|
|
||||||
}
|
|
||||||
if (typeof args[0] === 'string') {
|
|
||||||
serviceId = args[0];
|
|
||||||
}
|
|
||||||
else if (typeof args[1] === 'string') {
|
|
||||||
serviceId = args[1];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
serviceId = "dist";
|
|
||||||
}
|
|
||||||
// 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 (!(fluence_1.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(function (req, resp, next) {
|
|
||||||
if (req.serviceId !== serviceId) {
|
|
||||||
next();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (req.fnName === 'add_blueprint') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
blueprint: req.tetraplets[0]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.add_blueprint(req.args[0], callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'add_module') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
wasm_b56_content: req.tetraplets[0], conf: req.tetraplets[1]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.add_module(req.args[0], req.args[1], callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'add_module_from_vault') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
path: req.tetraplets[0], config: req.tetraplets[1]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.add_module_from_vault(req.args[0], req.args[1], callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'default_module_config') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
module_name: req.tetraplets[0]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.default_module_config(req.args[0], callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'get_interface') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
module_id: req.tetraplets[0]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.get_interface(req.args[0], callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'list_blueprints') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.list_blueprints(callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'list_modules') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.list_modules(callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'make_blueprint') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
name: req.tetraplets[0], dependencies: req.tetraplets[1]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.make_blueprint(req.args[0], req.args[1], callParams);
|
|
||||||
}
|
|
||||||
if (req.fnName === 'make_module_config') {
|
|
||||||
var callParams = __assign(__assign({}, req.particleContext), { tetraplets: {
|
|
||||||
name: req.tetraplets[0], mem_pages_count: req.tetraplets[1], logger_enabled: req.tetraplets[2], preopened_files: req.tetraplets[3], envs: req.tetraplets[4], mapped_dirs: req.tetraplets[5], mounted_binaries: req.tetraplets[6], logging_mask: req.tetraplets[7]
|
|
||||||
} });
|
|
||||||
resp.retCode = v1_1.ResultCodes.success;
|
|
||||||
resp.result = service.make_module_config(req.args[0], req.args[1].length === 0 ? null : req.args[1][0], req.args[2].length === 0 ? null : req.args[2][0], req.args[3].length === 0 ? null : req.args[3][0], req.args[4].length === 0 ? null : req.args[4][0], req.args[5].length === 0 ? null : req.args[5][0], req.args[6].length === 0 ? null : req.args[6][0], req.args[7].length === 0 ? null : req.args[7][0], callParams);
|
|
||||||
}
|
|
||||||
next();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
exports.registerDist = registerDist;
|
|
||||||
// Functions
|
|
@ -1,130 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
/*
|
|
||||||
* Copyright 2021 Fluence Labs Limited
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
||||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
||||||
return new (P || (P = Promise))(function (resolve, reject) {
|
|
||||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
||||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
||||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
||||||
});
|
|
||||||
};
|
|
||||||
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
||||||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
||||||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
||||||
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
||||||
function step(op) {
|
|
||||||
if (f) throw new TypeError("Generator is already executing.");
|
|
||||||
while (_) try {
|
|
||||||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
||||||
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
||||||
switch (op[0]) {
|
|
||||||
case 0: case 1: t = op; break;
|
|
||||||
case 4: _.label++; return { value: op[1], done: false };
|
|
||||||
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
||||||
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
||||||
default:
|
|
||||||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
||||||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
||||||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
||||||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
||||||
if (t[2]) _.ops.pop();
|
|
||||||
_.trys.pop(); continue;
|
|
||||||
}
|
|
||||||
op = body.call(thisArg, _);
|
|
||||||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
||||||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
||||||
}
|
|
||||||
};
|
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
|
||||||
var fluence_1 = require("@fluencelabs/fluence");
|
|
||||||
var fluence_network_environment_1 = require("@fluencelabs/fluence-network-environment");
|
|
||||||
var adder_1 = require("./compiled-aqua/adder");
|
|
||||||
var topos = [
|
|
||||||
{
|
|
||||||
"node_id": "12D3KooWFtf3rfCDAfWwt6oLZYZbDfn9Vn7bv7g6QjjQxUUEFVBt",
|
|
||||||
"service_id": "7b2ab89f-0897-4537-b726-8120b405074d"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node_id": "12D3KooWKnEqMfYo9zvfHmqTLpLdiHXPe4SVqUWcWHDJdFGrSmcA",
|
|
||||||
"service_id": "e013f18a-200f-4249-8303-d42d10d3ce46"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node_id": "12D3KooWDUszU2NeWyUVjCXhGEt1MoZrhvdmaQQwtZUriuGN1jTr",
|
|
||||||
"service_id": "191ef700-fd13-4151-9b7c-3fabfe3c0387"
|
|
||||||
}
|
|
||||||
];
|
|
||||||
var topos_alt = [
|
|
||||||
{
|
|
||||||
"value": 5,
|
|
||||||
"node_id": "12D3KooWFtf3rfCDAfWwt6oLZYZbDfn9Vn7bv7g6QjjQxUUEFVBt",
|
|
||||||
"service_id": "7b2ab89f-0897-4537-b726-8120b405074d"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"value": 10,
|
|
||||||
"node_id": "12D3KooWKnEqMfYo9zvfHmqTLpLdiHXPe4SVqUWcWHDJdFGrSmcA",
|
|
||||||
"service_id": "e013f18a-200f-4249-8303-d42d10d3ce46"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"value": 15,
|
|
||||||
"node_id": "12D3KooWDUszU2NeWyUVjCXhGEt1MoZrhvdmaQQwtZUriuGN1jTr",
|
|
||||||
"service_id": "191ef700-fd13-4151-9b7c-3fabfe3c0387"
|
|
||||||
}
|
|
||||||
];
|
|
||||||
var value = 5;
|
|
||||||
// let greeting_service =
|
|
||||||
function main() {
|
|
||||||
return __awaiter(this, void 0, void 0, function () {
|
|
||||||
var basic_add, seq_add, par_add, par_add_alt;
|
|
||||||
return __generator(this, function (_a) {
|
|
||||||
switch (_a.label) {
|
|
||||||
case 0:
|
|
||||||
// console.log("hello");
|
|
||||||
// setLogLevel('DEBUG');
|
|
||||||
return [4 /*yield*/, fluence_1.Fluence.start({ connectTo: fluence_network_environment_1.krasnodar[2] })];
|
|
||||||
case 1:
|
|
||||||
// console.log("hello");
|
|
||||||
// setLogLevel('DEBUG');
|
|
||||||
_a.sent();
|
|
||||||
console.log("created a Fluence client %s with relay %s", fluence_1.Fluence.getStatus().peerId, fluence_1.Fluence.getStatus().relayPeerId);
|
|
||||||
return [4 /*yield*/, adder_1.add_one(value, topos[0].node_id, topos[0].service_id)];
|
|
||||||
case 2:
|
|
||||||
basic_add = _a.sent();
|
|
||||||
console.log("add_one to ", value, " equals ", basic_add);
|
|
||||||
return [4 /*yield*/, adder_1.add_one_three_times(value, topos)];
|
|
||||||
case 3:
|
|
||||||
seq_add = _a.sent();
|
|
||||||
console.log("add_one sequentially equals ", seq_add);
|
|
||||||
return [4 /*yield*/, adder_1.add_one_par(value, topos)];
|
|
||||||
case 4:
|
|
||||||
par_add = _a.sent();
|
|
||||||
console.log("add_one parallel equals ", par_add);
|
|
||||||
return [4 /*yield*/, adder_1.add_one_par_alt(topos_alt)];
|
|
||||||
case 5:
|
|
||||||
par_add_alt = _a.sent();
|
|
||||||
console.log("add_one parallel alt equals ", par_add_alt);
|
|
||||||
return [2 /*return*/];
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
main()
|
|
||||||
.then(function () { return process.exit(0); })
|
|
||||||
.catch(function (error) {
|
|
||||||
console.error(error);
|
|
||||||
process.exit(1);
|
|
||||||
});
|
|
@ -10,13 +10,13 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fluencelabs/aqua-lib": "^0.1.14",
|
"@fluencelabs/aqua-lib": "^0.1.14",
|
||||||
"@fluencelabs/fluence": "^0.12.0",
|
"@fluencelabs/fluence": "^0.14.2",
|
||||||
"@fluencelabs/fluence-network-environment": "^1.0.10",
|
"@fluencelabs/fluence-network-environment": "^1.0.10",
|
||||||
"it-all": "^1.0.5"
|
"it-all": "^1.0.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@fluencelabs/aqua": "^0.3.0-226",
|
"@fluencelabs/aqua": "^0.4.0-235",
|
||||||
"typescript": "^3.9.5"
|
"typescript": "^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@chainsafe/libp2p-noise": {
|
"node_modules/@chainsafe/libp2p-noise": {
|
||||||
@ -51,14 +51,16 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@fluencelabs/aqua": {
|
"node_modules/@fluencelabs/aqua": {
|
||||||
"version": "0.3.0-226",
|
"version": "0.4.0-235",
|
||||||
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.3.0-226.tgz",
|
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.4.0-235.tgz",
|
||||||
"integrity": "sha512-9o0TdgsVNcBvifqo7VqIkN62P9EReE0LUxgWG1rGHi9yxJiGElvEBvrVUzqShffF66Ene7VGEe85lhFIGCfDgg==",
|
"integrity": "sha512-tbbHG3dhlwcSzlHMPoV4/MLW6JE00q3hiyznjLh+aW91ovBAXuWe5C1n9CKeRiJtYz3yIQCn2l3arI/PvzLx9Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@fluencelabs/fluence": "0.12.1"
|
||||||
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"aqua": "index.js",
|
"aqua": "index.js",
|
||||||
"aqua-cli": "error.js",
|
"aqua-cli": "error.js"
|
||||||
"aqua-j": "index-java.js"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@fluencelabs/aqua-lib": {
|
"node_modules/@fluencelabs/aqua-lib": {
|
||||||
@ -66,18 +68,20 @@
|
|||||||
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.1.14.tgz",
|
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.1.14.tgz",
|
||||||
"integrity": "sha512-H2Q4gIvociUxc4J2mwmH0D+mrU2N2Z+enKCHgBCanMVEE2wZDsZ80GTbDKsQjEq+gpqbnJIk8lJBYW6lyvLJTg=="
|
"integrity": "sha512-H2Q4gIvociUxc4J2mwmH0D+mrU2N2Z+enKCHgBCanMVEE2wZDsZ80GTbDKsQjEq+gpqbnJIk8lJBYW6lyvLJTg=="
|
||||||
},
|
},
|
||||||
"node_modules/@fluencelabs/avm": {
|
"node_modules/@fluencelabs/aqua/node_modules/@fluencelabs/avm": {
|
||||||
"version": "0.14.4",
|
"version": "0.14.4",
|
||||||
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.14.4.tgz",
|
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.14.4.tgz",
|
||||||
"integrity": "sha512-XyR+1H5k0CAc+mDHOkl81viX8XeW1Yqbw793xbsfUfju5bUb/hqk+gHv3q8lAFdbrCG5P45gdOT08a5RNODZaQ==",
|
"integrity": "sha512-XyR+1H5k0CAc+mDHOkl81viX8XeW1Yqbw793xbsfUfju5bUb/hqk+gHv3q8lAFdbrCG5P45gdOT08a5RNODZaQ==",
|
||||||
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"base64-js": "1.5.1"
|
"base64-js": "1.5.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@fluencelabs/fluence": {
|
"node_modules/@fluencelabs/aqua/node_modules/@fluencelabs/fluence": {
|
||||||
"version": "0.12.0",
|
"version": "0.12.1",
|
||||||
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.12.0.tgz",
|
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.12.1.tgz",
|
||||||
"integrity": "sha512-eYg3CflqeqlWUoaXXXUBxls7Pzjytp1nkHZWoe39bL7poF20T1BuTovNWo/jTWma5HS4L1FaAGGRNaMcN0wFHQ==",
|
"integrity": "sha512-JrMKMHjYILAHQsLLd5H0fLt/UMZv+/PQYxJYe6h9HFyJlZrN1bUV+EcZnUw1u3DZE5k/RXBx0udfmkahggwrqA==",
|
||||||
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@chainsafe/libp2p-noise": "4.0.0",
|
"@chainsafe/libp2p-noise": "4.0.0",
|
||||||
"@fluencelabs/avm": "0.14.4",
|
"@fluencelabs/avm": "0.14.4",
|
||||||
@ -93,11 +97,43 @@
|
|||||||
"libp2p-websockets": "0.16.1",
|
"libp2p-websockets": "0.16.1",
|
||||||
"loglevel": "1.7.0",
|
"loglevel": "1.7.0",
|
||||||
"multiaddr": "10.0.0",
|
"multiaddr": "10.0.0",
|
||||||
"noble-ed25519": "^1.2.5",
|
|
||||||
"peer-id": "0.15.3",
|
"peer-id": "0.15.3",
|
||||||
"uuid": "8.3.0"
|
"uuid": "8.3.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@fluencelabs/avm": {
|
||||||
|
"version": "0.15.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.15.4.tgz",
|
||||||
|
"integrity": "sha512-NLZDq83ocJ1Helm0D8kPMSSkjxH0y+Tujg0px773zjIShbh3jgiJOjAW1xCYgTt9K0LqepjP0bWX4/8nUZfr7g==",
|
||||||
|
"dependencies": {
|
||||||
|
"base64-js": "1.5.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@fluencelabs/fluence": {
|
||||||
|
"version": "0.14.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.14.2.tgz",
|
||||||
|
"integrity": "sha512-Cf5Ii6dpVSSi839jB7H0Y9k07xncYdHiTNKp4LlPg6inXuy2OPb2E7qF5DXlMM9O1dBb/UJTa4jZlQDsgWriiQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"@chainsafe/libp2p-noise": "4.0.0",
|
||||||
|
"@fluencelabs/avm": "0.15.4",
|
||||||
|
"async": "3.2.0",
|
||||||
|
"base64-js": "1.5.1",
|
||||||
|
"bs58": "4.0.1",
|
||||||
|
"cids": "0.8.1",
|
||||||
|
"it-length-prefixed": "3.0.1",
|
||||||
|
"it-pipe": "1.1.0",
|
||||||
|
"libp2p": "0.32.3",
|
||||||
|
"libp2p-crypto": "0.19.7",
|
||||||
|
"libp2p-mplex": "0.10.4",
|
||||||
|
"libp2p-websockets": "0.16.1",
|
||||||
|
"loglevel": "1.7.0",
|
||||||
|
"multiaddr": "10.0.0",
|
||||||
|
"peer-id": "0.15.3",
|
||||||
|
"rxjs": "^7.3.0",
|
||||||
|
"ts-pattern": "^3.3.3",
|
||||||
|
"uuid": "8.3.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@fluencelabs/fluence-network-environment": {
|
"node_modules/@fluencelabs/fluence-network-environment": {
|
||||||
"version": "1.0.10",
|
"version": "1.0.10",
|
||||||
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence-network-environment/-/fluence-network-environment-1.0.10.tgz",
|
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence-network-environment/-/fluence-network-environment-1.0.10.tgz",
|
||||||
@ -1879,11 +1915,6 @@
|
|||||||
"node": ">= 0.4.0"
|
"node": ">= 0.4.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/noble-ed25519": {
|
|
||||||
"version": "1.2.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/noble-ed25519/-/noble-ed25519-1.2.5.tgz",
|
|
||||||
"integrity": "sha512-7vst+4UhM5QU3jJ3pUqPMKBCOePrxBojmoQa59qcSnYvjFF/T4jqb4WISlfslcWyBw7G5H9V/acpcAxMd8DzUQ=="
|
|
||||||
},
|
|
||||||
"node_modules/node-addon-api": {
|
"node_modules/node-addon-api": {
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz",
|
||||||
@ -2257,6 +2288,14 @@
|
|||||||
"node": ">= 4"
|
"node": ">= 4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/rxjs": {
|
||||||
|
"version": "7.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz",
|
||||||
|
"integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==",
|
||||||
|
"dependencies": {
|
||||||
|
"tslib": "~2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/safe-buffer": {
|
"node_modules/safe-buffer": {
|
||||||
"version": "5.2.1",
|
"version": "5.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
||||||
@ -2432,6 +2471,16 @@
|
|||||||
"utf8-byte-length": "^1.0.1"
|
"utf8-byte-length": "^1.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/ts-pattern": {
|
||||||
|
"version": "3.3.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/ts-pattern/-/ts-pattern-3.3.3.tgz",
|
||||||
|
"integrity": "sha512-Z5EFi6g6wyX3uDFHqxF5W5c5h663oZg9O6aOiAT7fqNu0HPSfCxtHzrQ7SblTy738Mrg2Ezorky8H5aUOm8Pvg=="
|
||||||
|
},
|
||||||
|
"node_modules/tslib": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="
|
||||||
|
},
|
||||||
"node_modules/tunnel-agent": {
|
"node_modules/tunnel-agent": {
|
||||||
"version": "0.6.0",
|
"version": "0.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
||||||
@ -2449,9 +2498,9 @@
|
|||||||
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
|
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
|
||||||
},
|
},
|
||||||
"node_modules/typescript": {
|
"node_modules/typescript": {
|
||||||
"version": "3.9.10",
|
"version": "4.4.4",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz",
|
||||||
"integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==",
|
"integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
"tsc": "bin/tsc",
|
"tsc": "bin/tsc",
|
||||||
@ -2634,10 +2683,48 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@fluencelabs/aqua": {
|
"@fluencelabs/aqua": {
|
||||||
"version": "0.3.0-226",
|
"version": "0.4.0-235",
|
||||||
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.3.0-226.tgz",
|
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.4.0-235.tgz",
|
||||||
"integrity": "sha512-9o0TdgsVNcBvifqo7VqIkN62P9EReE0LUxgWG1rGHi9yxJiGElvEBvrVUzqShffF66Ene7VGEe85lhFIGCfDgg==",
|
"integrity": "sha512-tbbHG3dhlwcSzlHMPoV4/MLW6JE00q3hiyznjLh+aW91ovBAXuWe5C1n9CKeRiJtYz3yIQCn2l3arI/PvzLx9Q==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"@fluencelabs/fluence": "0.12.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@fluencelabs/avm": {
|
||||||
|
"version": "0.14.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.14.4.tgz",
|
||||||
|
"integrity": "sha512-XyR+1H5k0CAc+mDHOkl81viX8XeW1Yqbw793xbsfUfju5bUb/hqk+gHv3q8lAFdbrCG5P45gdOT08a5RNODZaQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"base64-js": "1.5.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@fluencelabs/fluence": {
|
||||||
|
"version": "0.12.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.12.1.tgz",
|
||||||
|
"integrity": "sha512-JrMKMHjYILAHQsLLd5H0fLt/UMZv+/PQYxJYe6h9HFyJlZrN1bUV+EcZnUw1u3DZE5k/RXBx0udfmkahggwrqA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"@chainsafe/libp2p-noise": "4.0.0",
|
||||||
|
"@fluencelabs/avm": "0.14.4",
|
||||||
|
"async": "3.2.0",
|
||||||
|
"base64-js": "1.5.1",
|
||||||
|
"bs58": "4.0.1",
|
||||||
|
"cids": "0.8.1",
|
||||||
|
"it-length-prefixed": "3.0.1",
|
||||||
|
"it-pipe": "1.1.0",
|
||||||
|
"libp2p": "0.32.3",
|
||||||
|
"libp2p-crypto": "0.19.7",
|
||||||
|
"libp2p-mplex": "0.10.4",
|
||||||
|
"libp2p-websockets": "0.16.1",
|
||||||
|
"loglevel": "1.7.0",
|
||||||
|
"multiaddr": "10.0.0",
|
||||||
|
"peer-id": "0.15.3",
|
||||||
|
"uuid": "8.3.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"@fluencelabs/aqua-lib": {
|
"@fluencelabs/aqua-lib": {
|
||||||
"version": "0.1.14",
|
"version": "0.1.14",
|
||||||
@ -2645,20 +2732,20 @@
|
|||||||
"integrity": "sha512-H2Q4gIvociUxc4J2mwmH0D+mrU2N2Z+enKCHgBCanMVEE2wZDsZ80GTbDKsQjEq+gpqbnJIk8lJBYW6lyvLJTg=="
|
"integrity": "sha512-H2Q4gIvociUxc4J2mwmH0D+mrU2N2Z+enKCHgBCanMVEE2wZDsZ80GTbDKsQjEq+gpqbnJIk8lJBYW6lyvLJTg=="
|
||||||
},
|
},
|
||||||
"@fluencelabs/avm": {
|
"@fluencelabs/avm": {
|
||||||
"version": "0.14.4",
|
"version": "0.15.4",
|
||||||
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.14.4.tgz",
|
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.15.4.tgz",
|
||||||
"integrity": "sha512-XyR+1H5k0CAc+mDHOkl81viX8XeW1Yqbw793xbsfUfju5bUb/hqk+gHv3q8lAFdbrCG5P45gdOT08a5RNODZaQ==",
|
"integrity": "sha512-NLZDq83ocJ1Helm0D8kPMSSkjxH0y+Tujg0px773zjIShbh3jgiJOjAW1xCYgTt9K0LqepjP0bWX4/8nUZfr7g==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"base64-js": "1.5.1"
|
"base64-js": "1.5.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@fluencelabs/fluence": {
|
"@fluencelabs/fluence": {
|
||||||
"version": "0.12.0",
|
"version": "0.14.2",
|
||||||
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.12.0.tgz",
|
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.14.2.tgz",
|
||||||
"integrity": "sha512-eYg3CflqeqlWUoaXXXUBxls7Pzjytp1nkHZWoe39bL7poF20T1BuTovNWo/jTWma5HS4L1FaAGGRNaMcN0wFHQ==",
|
"integrity": "sha512-Cf5Ii6dpVSSi839jB7H0Y9k07xncYdHiTNKp4LlPg6inXuy2OPb2E7qF5DXlMM9O1dBb/UJTa4jZlQDsgWriiQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@chainsafe/libp2p-noise": "4.0.0",
|
"@chainsafe/libp2p-noise": "4.0.0",
|
||||||
"@fluencelabs/avm": "0.14.4",
|
"@fluencelabs/avm": "0.15.4",
|
||||||
"async": "3.2.0",
|
"async": "3.2.0",
|
||||||
"base64-js": "1.5.1",
|
"base64-js": "1.5.1",
|
||||||
"bs58": "4.0.1",
|
"bs58": "4.0.1",
|
||||||
@ -2671,8 +2758,9 @@
|
|||||||
"libp2p-websockets": "0.16.1",
|
"libp2p-websockets": "0.16.1",
|
||||||
"loglevel": "1.7.0",
|
"loglevel": "1.7.0",
|
||||||
"multiaddr": "10.0.0",
|
"multiaddr": "10.0.0",
|
||||||
"noble-ed25519": "^1.2.5",
|
|
||||||
"peer-id": "0.15.3",
|
"peer-id": "0.15.3",
|
||||||
|
"rxjs": "^7.3.0",
|
||||||
|
"ts-pattern": "^3.3.3",
|
||||||
"uuid": "8.3.0"
|
"uuid": "8.3.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4175,11 +4263,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz",
|
||||||
"integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg=="
|
"integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg=="
|
||||||
},
|
},
|
||||||
"noble-ed25519": {
|
|
||||||
"version": "1.2.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/noble-ed25519/-/noble-ed25519-1.2.5.tgz",
|
|
||||||
"integrity": "sha512-7vst+4UhM5QU3jJ3pUqPMKBCOePrxBojmoQa59qcSnYvjFF/T4jqb4WISlfslcWyBw7G5H9V/acpcAxMd8DzUQ=="
|
|
||||||
},
|
|
||||||
"node-addon-api": {
|
"node-addon-api": {
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz",
|
||||||
@ -4453,6 +4536,14 @@
|
|||||||
"resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
|
"resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
|
||||||
"integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg=="
|
"integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg=="
|
||||||
},
|
},
|
||||||
|
"rxjs": {
|
||||||
|
"version": "7.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz",
|
||||||
|
"integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==",
|
||||||
|
"requires": {
|
||||||
|
"tslib": "~2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"safe-buffer": {
|
"safe-buffer": {
|
||||||
"version": "5.2.1",
|
"version": "5.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
||||||
@ -4589,6 +4680,16 @@
|
|||||||
"utf8-byte-length": "^1.0.1"
|
"utf8-byte-length": "^1.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"ts-pattern": {
|
||||||
|
"version": "3.3.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/ts-pattern/-/ts-pattern-3.3.3.tgz",
|
||||||
|
"integrity": "sha512-Z5EFi6g6wyX3uDFHqxF5W5c5h663oZg9O6aOiAT7fqNu0HPSfCxtHzrQ7SblTy738Mrg2Ezorky8H5aUOm8Pvg=="
|
||||||
|
},
|
||||||
|
"tslib": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="
|
||||||
|
},
|
||||||
"tunnel-agent": {
|
"tunnel-agent": {
|
||||||
"version": "0.6.0",
|
"version": "0.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
||||||
@ -4603,9 +4704,9 @@
|
|||||||
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
|
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
|
||||||
},
|
},
|
||||||
"typescript": {
|
"typescript": {
|
||||||
"version": "3.9.10",
|
"version": "4.4.4",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz",
|
||||||
"integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==",
|
"integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"uint8arrays": {
|
"uint8arrays": {
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fluencelabs/aqua-lib": "^0.1.14",
|
"@fluencelabs/aqua-lib": "^0.1.14",
|
||||||
"@fluencelabs/fluence": "^0.12.0",
|
"@fluencelabs/fluence": "^0.14.2",
|
||||||
"@fluencelabs/fluence-network-environment": "^1.0.10",
|
"@fluencelabs/fluence-network-environment": "^1.0.10",
|
||||||
"it-all": "^1.0.5"
|
"it-all": "^1.0.5"
|
||||||
},
|
},
|
||||||
@ -43,7 +43,7 @@
|
|||||||
},
|
},
|
||||||
"homepage": "git+https://github.com/fluencelabs/examples/aqua-examples/echo-greeter#readme",
|
"homepage": "git+https://github.com/fluencelabs/examples/aqua-examples/echo-greeter#readme",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@fluencelabs/aqua": "^0.3.0-226",
|
"@fluencelabs/aqua": "^0.4.0-235",
|
||||||
"typescript": "^3.9.5"
|
"typescript": "^4.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,565 +1,439 @@
|
|||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* This file is auto-generated. Do not edit manually: changes may be erased.
|
* 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
|
* 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.4.0-235
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
import { Fluence, FluencePeer } from '@fluencelabs/fluence';
|
import { Fluence, FluencePeer } from '@fluencelabs/fluence';
|
||||||
import {
|
import {
|
||||||
ResultCodes,
|
|
||||||
RequestFlow,
|
|
||||||
RequestFlowBuilder,
|
|
||||||
CallParams,
|
CallParams,
|
||||||
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
callFunction,
|
||||||
|
registerService,
|
||||||
|
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v2';
|
||||||
|
|
||||||
|
|
||||||
// Services
|
// Services
|
||||||
|
|
||||||
export interface AddOneDef {
|
export interface AddOneDef {
|
||||||
add_one: (arg0: number, callParams: CallParams<'arg0'>) => number;
|
add_one: (arg0: number, callParams: CallParams<'arg0'>) => number | Promise<number>;
|
||||||
}
|
}
|
||||||
|
export function registerAddOne(serviceId: string, service: AddOneDef): void;
|
||||||
export function registerAddOne(serviceId: string, service: AddOneDef): void;
|
|
||||||
export function registerAddOne(peer: FluencePeer, serviceId: string, service: AddOneDef): void;
|
export function registerAddOne(peer: FluencePeer, serviceId: string, service: AddOneDef): void;
|
||||||
export function registerAddOne(...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') {
|
export function registerAddOne(...args: any) {
|
||||||
serviceId = args[0];
|
registerService(
|
||||||
} else if (typeof args[1] === 'string') {
|
args,
|
||||||
serviceId = args[1];
|
{
|
||||||
}
|
"functions" : [
|
||||||
|
{
|
||||||
// Figuring out which overload is the service.
|
"functionName" : "add_one",
|
||||||
// If the first argument is not Fluence Peer and it is an object, then it can only be the service def
|
"argDefs" : [
|
||||||
// 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
|
"name" : "arg0",
|
||||||
// or a string, which is the service id. In that case the service is the third argument
|
"argType" : {
|
||||||
if (!(FluencePeer.isInstance(args[0])) && typeof args[0] === 'object') {
|
"tag" : "primitive"
|
||||||
service = args[0];
|
}
|
||||||
} else if (typeof args[1] === 'object') {
|
}
|
||||||
service = args[1];
|
],
|
||||||
} else {
|
"returnType" : {
|
||||||
service = args[2];
|
"tag" : "primitive"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
peer.internals.callServiceHandler.use((req, resp, next) => {
|
]
|
||||||
if (req.serviceId !== serviceId) {
|
}
|
||||||
next();
|
);
|
||||||
return;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (req.fnName === 'add_one') {
|
|
||||||
|
|
||||||
const callParams = {
|
|
||||||
...req.particleContext,
|
|
||||||
tetraplets: {
|
|
||||||
arg0: req.tetraplets[0]
|
|
||||||
},
|
|
||||||
};
|
|
||||||
resp.retCode = ResultCodes.success;
|
|
||||||
resp.result = service.add_one(req.args[0], callParams)
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
next();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export interface MyOpDef {
|
export interface MyOpDef {
|
||||||
identity: (u: number, callParams: CallParams<'u'>) => void;
|
identity: (u: number, callParams: CallParams<'u'>) => void | Promise<void>;
|
||||||
}
|
}
|
||||||
|
export function registerMyOp(service: MyOpDef): void;
|
||||||
export function registerMyOp(service: MyOpDef): void;
|
|
||||||
export function registerMyOp(serviceId: string, service: MyOpDef): void;
|
export function registerMyOp(serviceId: string, service: MyOpDef): void;
|
||||||
export function registerMyOp(peer: FluencePeer, service: MyOpDef): void;
|
export function registerMyOp(peer: FluencePeer, service: MyOpDef): void;
|
||||||
export function registerMyOp(peer: FluencePeer, serviceId: string, service: MyOpDef): void;
|
export function registerMyOp(peer: FluencePeer, serviceId: string, service: MyOpDef): void;
|
||||||
export function registerMyOp(...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') {
|
export function registerMyOp(...args: any) {
|
||||||
serviceId = args[0];
|
registerService(
|
||||||
} else if (typeof args[1] === 'string') {
|
args,
|
||||||
serviceId = args[1];
|
{
|
||||||
}
|
"defaultServiceId" : "op",
|
||||||
else {
|
"functions" : [
|
||||||
serviceId = "op"
|
{
|
||||||
|
"functionName" : "identity",
|
||||||
|
"argDefs" : [
|
||||||
|
{
|
||||||
|
"name" : "u",
|
||||||
|
"argType" : {
|
||||||
|
"tag" : "primitive"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"returnType" : {
|
||||||
|
"tag" : "void"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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 === 'identity') {
|
|
||||||
|
|
||||||
const callParams = {
|
|
||||||
...req.particleContext,
|
|
||||||
tetraplets: {
|
|
||||||
u: req.tetraplets[0]
|
|
||||||
},
|
|
||||||
};
|
|
||||||
resp.retCode = ResultCodes.success;
|
|
||||||
service.identity(req.args[0], callParams); resp.result = {}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
next();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Functions
|
// Functions
|
||||||
|
|
||||||
|
|
||||||
export function add_one(value: number, node: string, service_id: string, config?: {ttl?: number}) : Promise<number>;
|
export function add_one(value: number, node: string, service_id: string, config?: {ttl?: number}): Promise<number>;
|
||||||
export function add_one(peer: FluencePeer, value: number, node: string, service_id: string, config?: {ttl?: number}) : Promise<number>;
|
export function add_one(peer: FluencePeer, value: number, node: string, service_id: string, config?: {ttl?: number}): Promise<number>;
|
||||||
export function add_one(...args: any) {
|
export function add_one(...args: any) {
|
||||||
let peer: FluencePeer;
|
|
||||||
let value: any;
|
|
||||||
let node: any;
|
|
||||||
let service_id: any;
|
|
||||||
let config: any;
|
|
||||||
if (FluencePeer.isInstance(args[0])) {
|
|
||||||
peer = args[0];
|
|
||||||
value = args[1];
|
|
||||||
node = args[2];
|
|
||||||
service_id = args[3];
|
|
||||||
config = args[4];
|
|
||||||
} else {
|
|
||||||
peer = Fluence.getPeer();
|
|
||||||
value = args[0];
|
|
||||||
node = args[1];
|
|
||||||
service_id = args[2];
|
|
||||||
config = args[3];
|
|
||||||
}
|
|
||||||
|
|
||||||
let request: RequestFlow;
|
|
||||||
const promise = new Promise<number>((resolve, reject) => {
|
|
||||||
const r = new RequestFlowBuilder()
|
|
||||||
.disableInjections()
|
|
||||||
.withRawScript(
|
|
||||||
`
|
|
||||||
(xor
|
|
||||||
(seq
|
|
||||||
(seq
|
|
||||||
(seq
|
|
||||||
(seq
|
|
||||||
(seq
|
|
||||||
(seq
|
|
||||||
(seq
|
|
||||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
|
||||||
(call %init_peer_id% ("getDataSrv" "value") [] value)
|
|
||||||
)
|
|
||||||
(call %init_peer_id% ("getDataSrv" "node") [] node)
|
|
||||||
)
|
|
||||||
(call %init_peer_id% ("getDataSrv" "service_id") [] service_id)
|
|
||||||
)
|
|
||||||
(call -relay- ("op" "noop") [])
|
|
||||||
)
|
|
||||||
(xor
|
|
||||||
(seq
|
|
||||||
(call -relay- ("op" "noop") [])
|
|
||||||
(call node (service_id "add_one") [value] res)
|
|
||||||
)
|
|
||||||
(seq
|
|
||||||
(call -relay- ("op" "noop") [])
|
|
||||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(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])
|
|
||||||
)
|
|
||||||
|
|
||||||
`,
|
let script = `
|
||||||
)
|
(xor
|
||||||
.configHandler((h) => {
|
(seq
|
||||||
h.on('getDataSrv', '-relay-', () => {
|
(seq
|
||||||
return peer.getStatus().relayPeerId;
|
(seq
|
||||||
});
|
(seq
|
||||||
h.on('getDataSrv', 'value', () => {return value;});
|
(seq
|
||||||
h.on('getDataSrv', 'node', () => {return node;});
|
(seq
|
||||||
h.on('getDataSrv', 'service_id', () => {return service_id;});
|
(seq
|
||||||
h.onEvent('callbackSrv', 'response', (args) => {
|
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||||
const [res] = args;
|
(call %init_peer_id% ("getDataSrv" "value") [] value)
|
||||||
resolve(res);
|
)
|
||||||
});
|
(call %init_peer_id% ("getDataSrv" "node") [] node)
|
||||||
|
)
|
||||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
(call %init_peer_id% ("getDataSrv" "service_id") [] service_id)
|
||||||
const [err] = args;
|
)
|
||||||
reject(err);
|
(call -relay- ("op" "noop") [])
|
||||||
});
|
)
|
||||||
})
|
(xor
|
||||||
.handleScriptError(reject)
|
(seq
|
||||||
.handleTimeout(() => {
|
(call -relay- ("op" "noop") [])
|
||||||
reject('Request timed out for add_one');
|
(call node (service_id "add_one") [value] res)
|
||||||
})
|
)
|
||||||
if(config && config.ttl) {
|
(seq
|
||||||
r.withTTL(config.ttl)
|
(call -relay- ("op" "noop") [])
|
||||||
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(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" : "add_one",
|
||||||
|
"returnType" : {
|
||||||
|
"tag" : "primitive"
|
||||||
|
},
|
||||||
|
"argDefs" : [
|
||||||
|
{
|
||||||
|
"name" : "value",
|
||||||
|
"argType" : {
|
||||||
|
"tag" : "primitive"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "node",
|
||||||
|
"argType" : {
|
||||||
|
"tag" : "primitive"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "service_id",
|
||||||
|
"argType" : {
|
||||||
|
"tag" : "primitive"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
request = r.build();
|
],
|
||||||
});
|
"names" : {
|
||||||
peer.internals.initiateFlow(request!);
|
"relay" : "-relay-",
|
||||||
return promise;
|
"getDataSrv" : "getDataSrv",
|
||||||
|
"callbackSrv" : "callbackSrv",
|
||||||
|
"responseSrv" : "callbackSrv",
|
||||||
|
"responseFnName" : "response",
|
||||||
|
"errorHandlingSrv" : "errorHandlingSrv",
|
||||||
|
"errorFnName" : "error"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
script
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export function add_one_three_times(value: number, ns_tuples: {node_id:string;service_id:string}[], config?: {ttl?: number}) : Promise<number>;
|
export function add_one_three_times(value: number, ns_tuples: { node_id: string; service_id: string; }[], config?: {ttl?: number}): Promise<number>;
|
||||||
export function add_one_three_times(peer: FluencePeer, value: number, ns_tuples: {node_id:string;service_id:string}[], config?: {ttl?: number}) : Promise<number>;
|
export function add_one_three_times(peer: FluencePeer, value: number, ns_tuples: { node_id: string; service_id: string; }[], config?: {ttl?: number}): Promise<number>;
|
||||||
export function add_one_three_times(...args: any) {
|
export function add_one_three_times(...args: any) {
|
||||||
let peer: FluencePeer;
|
|
||||||
let value: any;
|
|
||||||
let ns_tuples: any;
|
|
||||||
let config: any;
|
|
||||||
if (FluencePeer.isInstance(args[0])) {
|
|
||||||
peer = args[0];
|
|
||||||
value = args[1];
|
|
||||||
ns_tuples = args[2];
|
|
||||||
config = args[3];
|
|
||||||
} else {
|
|
||||||
peer = Fluence.getPeer();
|
|
||||||
value = args[0];
|
|
||||||
ns_tuples = args[1];
|
|
||||||
config = args[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
let request: RequestFlow;
|
|
||||||
const promise = new Promise<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" "value") [] value)
|
|
||||||
)
|
|
||||||
(call %init_peer_id% ("getDataSrv" "ns_tuples") [] ns_tuples)
|
|
||||||
)
|
|
||||||
(call -relay- ("op" "noop") [])
|
|
||||||
)
|
|
||||||
(xor
|
|
||||||
(seq
|
|
||||||
(call -relay- ("op" "noop") [])
|
|
||||||
(call ns_tuples.$.[0].node_id! (ns_tuples.$.[0].service_id! "add_one") [value] res1)
|
|
||||||
)
|
|
||||||
(seq
|
|
||||||
(seq
|
|
||||||
(call -relay- ("op" "noop") [])
|
|
||||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
|
||||||
)
|
|
||||||
(call -relay- ("op" "noop") [])
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(xor
|
|
||||||
(call ns_tuples.$.[1].node_id! (ns_tuples.$.[1].service_id! "add_one") [res1] res2)
|
|
||||||
(seq
|
|
||||||
(seq
|
|
||||||
(call -relay- ("op" "noop") [])
|
|
||||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
|
||||||
)
|
|
||||||
(call -relay- ("op" "noop") [])
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(xor
|
|
||||||
(call ns_tuples.$.[2].node_id! (ns_tuples.$.[2].service_id! "add_one") [res2] res3)
|
|
||||||
(seq
|
|
||||||
(call -relay- ("op" "noop") [])
|
|
||||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(call -relay- ("op" "noop") [])
|
|
||||||
)
|
|
||||||
(xor
|
|
||||||
(call %init_peer_id% ("callbackSrv" "response") [res3])
|
|
||||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4])
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 5])
|
|
||||||
)
|
|
||||||
|
|
||||||
`,
|
let script = `
|
||||||
)
|
(xor
|
||||||
.configHandler((h) => {
|
(seq
|
||||||
h.on('getDataSrv', '-relay-', () => {
|
(seq
|
||||||
return peer.getStatus().relayPeerId;
|
(seq
|
||||||
});
|
(seq
|
||||||
h.on('getDataSrv', 'value', () => {return value;});
|
(seq
|
||||||
h.on('getDataSrv', 'ns_tuples', () => {return ns_tuples;});
|
(seq
|
||||||
h.onEvent('callbackSrv', 'response', (args) => {
|
(seq
|
||||||
const [res] = args;
|
(seq
|
||||||
resolve(res);
|
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||||
});
|
(call %init_peer_id% ("getDataSrv" "value") [] value)
|
||||||
|
)
|
||||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
(call %init_peer_id% ("getDataSrv" "ns_tuples") [] ns_tuples)
|
||||||
const [err] = args;
|
)
|
||||||
reject(err);
|
(call -relay- ("op" "noop") [])
|
||||||
});
|
)
|
||||||
})
|
(xor
|
||||||
.handleScriptError(reject)
|
(seq
|
||||||
.handleTimeout(() => {
|
(call -relay- ("op" "noop") [])
|
||||||
reject('Request timed out for add_one_three_times');
|
(call ns_tuples.$.[0].node_id! (ns_tuples.$.[0].service_id! "add_one") [value] res1)
|
||||||
})
|
)
|
||||||
if(config && config.ttl) {
|
(seq
|
||||||
r.withTTL(config.ttl)
|
(seq
|
||||||
|
(call -relay- ("op" "noop") [])
|
||||||
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||||
|
)
|
||||||
|
(call -relay- ("op" "noop") [])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(xor
|
||||||
|
(call ns_tuples.$.[1].node_id! (ns_tuples.$.[1].service_id! "add_one") [res1] res2)
|
||||||
|
(seq
|
||||||
|
(seq
|
||||||
|
(call -relay- ("op" "noop") [])
|
||||||
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||||
|
)
|
||||||
|
(call -relay- ("op" "noop") [])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(xor
|
||||||
|
(call ns_tuples.$.[2].node_id! (ns_tuples.$.[2].service_id! "add_one") [res2] res3)
|
||||||
|
(seq
|
||||||
|
(call -relay- ("op" "noop") [])
|
||||||
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(call -relay- ("op" "noop") [])
|
||||||
|
)
|
||||||
|
(xor
|
||||||
|
(call %init_peer_id% ("callbackSrv" "response") [res3])
|
||||||
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 5])
|
||||||
|
)
|
||||||
|
`
|
||||||
|
return callFunction(
|
||||||
|
args,
|
||||||
|
{
|
||||||
|
"functionName" : "add_one_three_times",
|
||||||
|
"returnType" : {
|
||||||
|
"tag" : "primitive"
|
||||||
|
},
|
||||||
|
"argDefs" : [
|
||||||
|
{
|
||||||
|
"name" : "value",
|
||||||
|
"argType" : {
|
||||||
|
"tag" : "primitive"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "ns_tuples",
|
||||||
|
"argType" : {
|
||||||
|
"tag" : "primitive"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
request = r.build();
|
],
|
||||||
});
|
"names" : {
|
||||||
peer.internals.initiateFlow(request!);
|
"relay" : "-relay-",
|
||||||
return promise;
|
"getDataSrv" : "getDataSrv",
|
||||||
|
"callbackSrv" : "callbackSrv",
|
||||||
|
"responseSrv" : "callbackSrv",
|
||||||
|
"responseFnName" : "response",
|
||||||
|
"errorHandlingSrv" : "errorHandlingSrv",
|
||||||
|
"errorFnName" : "error"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
script
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export function add_one_par(value: number, ns_tuples: {node_id:string;service_id:string}[], config?: {ttl?: number}) : Promise<number[]>;
|
export function add_one_par(value: number, ns_tuples: { node_id: string; service_id: string; }[], config?: {ttl?: number}): Promise<number[]>;
|
||||||
export function add_one_par(peer: FluencePeer, value: number, ns_tuples: {node_id:string;service_id:string}[], config?: {ttl?: number}) : Promise<number[]>;
|
export function add_one_par(peer: FluencePeer, value: number, ns_tuples: { node_id: string; service_id: string; }[], config?: {ttl?: number}): Promise<number[]>;
|
||||||
export function add_one_par(...args: any) {
|
export function add_one_par(...args: any) {
|
||||||
let peer: FluencePeer;
|
|
||||||
let value: any;
|
|
||||||
let ns_tuples: any;
|
|
||||||
let config: any;
|
|
||||||
if (FluencePeer.isInstance(args[0])) {
|
|
||||||
peer = args[0];
|
|
||||||
value = args[1];
|
|
||||||
ns_tuples = args[2];
|
|
||||||
config = args[3];
|
|
||||||
} else {
|
|
||||||
peer = Fluence.getPeer();
|
|
||||||
value = args[0];
|
|
||||||
ns_tuples = args[1];
|
|
||||||
config = args[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
let request: RequestFlow;
|
|
||||||
const promise = new Promise<number[]>((resolve, reject) => {
|
|
||||||
const r = new RequestFlowBuilder()
|
|
||||||
.disableInjections()
|
|
||||||
.withRawScript(
|
|
||||||
`
|
|
||||||
(xor
|
|
||||||
(seq
|
|
||||||
(seq
|
|
||||||
(seq
|
|
||||||
(seq
|
|
||||||
(seq
|
|
||||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
|
||||||
(call %init_peer_id% ("getDataSrv" "value") [] value)
|
|
||||||
)
|
|
||||||
(call %init_peer_id% ("getDataSrv" "ns_tuples") [] ns_tuples)
|
|
||||||
)
|
|
||||||
(fold ns_tuples ns
|
|
||||||
(par
|
|
||||||
(seq
|
|
||||||
(seq
|
|
||||||
(seq
|
|
||||||
(call -relay- ("op" "noop") [])
|
|
||||||
(xor
|
|
||||||
(seq
|
|
||||||
(call -relay- ("op" "noop") [])
|
|
||||||
(call ns.$.node_id! (ns.$.service_id! "add_one") [value] $res)
|
|
||||||
)
|
|
||||||
(seq
|
|
||||||
(call -relay- ("op" "noop") [])
|
|
||||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(call -relay- ("op" "noop") [])
|
|
||||||
)
|
|
||||||
(call %init_peer_id% ("op" "noop") [])
|
|
||||||
)
|
|
||||||
(next ns)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(call %init_peer_id% ("op" "identity") [$res.$.[2]!])
|
|
||||||
)
|
|
||||||
(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])
|
|
||||||
)
|
|
||||||
|
|
||||||
`,
|
let script = `
|
||||||
)
|
(xor
|
||||||
.configHandler((h) => {
|
(seq
|
||||||
h.on('getDataSrv', '-relay-', () => {
|
(seq
|
||||||
return peer.getStatus().relayPeerId;
|
(seq
|
||||||
});
|
(seq
|
||||||
h.on('getDataSrv', 'value', () => {return value;});
|
(seq
|
||||||
h.on('getDataSrv', 'ns_tuples', () => {return ns_tuples;});
|
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||||
h.onEvent('callbackSrv', 'response', (args) => {
|
(call %init_peer_id% ("getDataSrv" "value") [] value)
|
||||||
const [res] = args;
|
)
|
||||||
resolve(res);
|
(call %init_peer_id% ("getDataSrv" "ns_tuples") [] ns_tuples)
|
||||||
});
|
)
|
||||||
|
(fold ns_tuples ns
|
||||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
(par
|
||||||
const [err] = args;
|
(seq
|
||||||
reject(err);
|
(seq
|
||||||
});
|
(seq
|
||||||
})
|
(call -relay- ("op" "noop") [])
|
||||||
.handleScriptError(reject)
|
(xor
|
||||||
.handleTimeout(() => {
|
(seq
|
||||||
reject('Request timed out for add_one_par');
|
(call -relay- ("op" "noop") [])
|
||||||
})
|
(call ns.$.node_id! (ns.$.service_id! "add_one") [value] $res)
|
||||||
if(config && config.ttl) {
|
)
|
||||||
r.withTTL(config.ttl)
|
(seq
|
||||||
|
(call -relay- ("op" "noop") [])
|
||||||
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(call -relay- ("op" "noop") [])
|
||||||
|
)
|
||||||
|
(call %init_peer_id% ("op" "noop") [])
|
||||||
|
)
|
||||||
|
(next ns)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(call %init_peer_id% ("op" "identity") [$res.$.[2]!])
|
||||||
|
)
|
||||||
|
(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" : "add_one_par",
|
||||||
|
"returnType" : {
|
||||||
|
"tag" : "primitive"
|
||||||
|
},
|
||||||
|
"argDefs" : [
|
||||||
|
{
|
||||||
|
"name" : "value",
|
||||||
|
"argType" : {
|
||||||
|
"tag" : "primitive"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "ns_tuples",
|
||||||
|
"argType" : {
|
||||||
|
"tag" : "primitive"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
request = r.build();
|
],
|
||||||
});
|
"names" : {
|
||||||
peer.internals.initiateFlow(request!);
|
"relay" : "-relay-",
|
||||||
return promise;
|
"getDataSrv" : "getDataSrv",
|
||||||
|
"callbackSrv" : "callbackSrv",
|
||||||
|
"responseSrv" : "callbackSrv",
|
||||||
|
"responseFnName" : "response",
|
||||||
|
"errorHandlingSrv" : "errorHandlingSrv",
|
||||||
|
"errorFnName" : "error"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
script
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export function add_one_par_alt(payload: {node_id:string;service_id:string;value:number}[], config?: {ttl?: number}) : Promise<number[]>;
|
export function add_one_par_alt(payload: { node_id: string; service_id: string; value: number; }[], config?: {ttl?: number}): Promise<number[]>;
|
||||||
export function add_one_par_alt(peer: FluencePeer, payload: {node_id:string;service_id:string;value:number}[], config?: {ttl?: number}) : Promise<number[]>;
|
export function add_one_par_alt(peer: FluencePeer, payload: { node_id: string; service_id: string; value: number; }[], config?: {ttl?: number}): Promise<number[]>;
|
||||||
export function add_one_par_alt(...args: any) {
|
export function add_one_par_alt(...args: any) {
|
||||||
let peer: FluencePeer;
|
|
||||||
let payload: any;
|
|
||||||
let config: any;
|
|
||||||
if (FluencePeer.isInstance(args[0])) {
|
|
||||||
peer = args[0];
|
|
||||||
payload = args[1];
|
|
||||||
config = args[2];
|
|
||||||
} else {
|
|
||||||
peer = Fluence.getPeer();
|
|
||||||
payload = args[0];
|
|
||||||
config = args[1];
|
|
||||||
}
|
|
||||||
|
|
||||||
let request: RequestFlow;
|
|
||||||
const promise = new Promise<number[]>((resolve, reject) => {
|
|
||||||
const r = new RequestFlowBuilder()
|
|
||||||
.disableInjections()
|
|
||||||
.withRawScript(
|
|
||||||
`
|
|
||||||
(xor
|
|
||||||
(seq
|
|
||||||
(seq
|
|
||||||
(seq
|
|
||||||
(seq
|
|
||||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
|
||||||
(call %init_peer_id% ("getDataSrv" "payload") [] payload)
|
|
||||||
)
|
|
||||||
(fold payload vns
|
|
||||||
(par
|
|
||||||
(seq
|
|
||||||
(seq
|
|
||||||
(seq
|
|
||||||
(call -relay- ("op" "noop") [])
|
|
||||||
(xor
|
|
||||||
(seq
|
|
||||||
(call -relay- ("op" "noop") [])
|
|
||||||
(call vns.$.node_id! (vns.$.service_id! "add_one") [vns.$.value!] $res)
|
|
||||||
)
|
|
||||||
(seq
|
|
||||||
(call -relay- ("op" "noop") [])
|
|
||||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(call -relay- ("op" "noop") [])
|
|
||||||
)
|
|
||||||
(call %init_peer_id% ("op" "noop") [])
|
|
||||||
)
|
|
||||||
(next vns)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(call %init_peer_id% ("op" "identity") [$res.$.[2]!])
|
|
||||||
)
|
|
||||||
(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])
|
|
||||||
)
|
|
||||||
|
|
||||||
`,
|
let script = `
|
||||||
)
|
(xor
|
||||||
.configHandler((h) => {
|
(seq
|
||||||
h.on('getDataSrv', '-relay-', () => {
|
(seq
|
||||||
return peer.getStatus().relayPeerId;
|
(seq
|
||||||
});
|
(seq
|
||||||
h.on('getDataSrv', 'payload', () => {return payload;});
|
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||||
h.onEvent('callbackSrv', 'response', (args) => {
|
(call %init_peer_id% ("getDataSrv" "payload") [] payload)
|
||||||
const [res] = args;
|
)
|
||||||
resolve(res);
|
(fold payload vns
|
||||||
});
|
(par
|
||||||
|
(seq
|
||||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
(seq
|
||||||
const [err] = args;
|
(seq
|
||||||
reject(err);
|
(call -relay- ("op" "noop") [])
|
||||||
});
|
(xor
|
||||||
})
|
(seq
|
||||||
.handleScriptError(reject)
|
(call -relay- ("op" "noop") [])
|
||||||
.handleTimeout(() => {
|
(call vns.$.node_id! (vns.$.service_id! "add_one") [vns.$.value!] $res)
|
||||||
reject('Request timed out for add_one_par_alt');
|
)
|
||||||
})
|
(seq
|
||||||
if(config && config.ttl) {
|
(call -relay- ("op" "noop") [])
|
||||||
r.withTTL(config.ttl)
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(call -relay- ("op" "noop") [])
|
||||||
|
)
|
||||||
|
(call %init_peer_id% ("op" "noop") [])
|
||||||
|
)
|
||||||
|
(next vns)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(call %init_peer_id% ("op" "identity") [$res.$.[2]!])
|
||||||
|
)
|
||||||
|
(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" : "add_one_par_alt",
|
||||||
|
"returnType" : {
|
||||||
|
"tag" : "primitive"
|
||||||
|
},
|
||||||
|
"argDefs" : [
|
||||||
|
{
|
||||||
|
"name" : "payload",
|
||||||
|
"argType" : {
|
||||||
|
"tag" : "primitive"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
request = r.build();
|
],
|
||||||
});
|
"names" : {
|
||||||
peer.internals.initiateFlow(request!);
|
"relay" : "-relay-",
|
||||||
return promise;
|
"getDataSrv" : "getDataSrv",
|
||||||
|
"callbackSrv" : "callbackSrv",
|
||||||
|
"responseSrv" : "callbackSrv",
|
||||||
|
"responseFnName" : "response",
|
||||||
|
"errorHandlingSrv" : "errorHandlingSrv",
|
||||||
|
"errorFnName" : "error"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
script
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user