mirror of
https://github.com/fluencelabs/aqua-playground
synced 2025-06-22 04:11:54 +00:00
make it possible to catch an error on calls
This commit is contained in:
@ -3,11 +3,11 @@ import "builtin.aqua"
|
||||
|
||||
-- functions like `c` are called an 'arrow function' in Aqua
|
||||
-- `c` passed to a function from a client, so, it could be called only on a client
|
||||
func passFunctionAsArg(node: string, c: string -> string):
|
||||
func passFunctionAsArg(node: string, str: string, c: string -> string):
|
||||
on node:
|
||||
Peer.identify()
|
||||
-- we go here back on a client
|
||||
res <- c("hello")
|
||||
res <- c(str)
|
||||
-- then return on a node
|
||||
Peer.identify()
|
||||
print(res)
|
||||
|
@ -4,8 +4,9 @@ import "builtin.aqua"
|
||||
import "func.aqua"
|
||||
|
||||
-- just a lot of imports and calls
|
||||
func doStuff(a: string):
|
||||
func doStuff(a: string) -> string:
|
||||
str <- TestSrv.str()
|
||||
par Println.print(str)
|
||||
par on a:
|
||||
Peer.identify()
|
||||
<- str
|
||||
|
116
package-lock.json
generated
116
package-lock.json
generated
@ -5,9 +5,9 @@
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@fluencelabs/aqua-cli": {
|
||||
"version": "0.1.1-90",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua-cli/-/aqua-cli-0.1.1-90.tgz",
|
||||
"integrity": "sha512-WKAElL9BQ2pX6f6RZx5isum4BrkbG6mBagszY7qchO9cigyUiq5GLWT82EBbbH8XTIbIdmERC9t5vZzyT1BDcA==",
|
||||
"version": "0.1.1-92",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua-cli/-/aqua-cli-0.1.1-92.tgz",
|
||||
"integrity": "sha512-D5boZW20gqhi1ITIuJjWBikDZtBvCQr7V9U0qJu730UxOqUkUYSkv6SKW+rqyPddI7f6zzU8BMsPefLOpqj1yA==",
|
||||
"dev": true
|
||||
},
|
||||
"@fluencelabs/aquamarine-interpreter": {
|
||||
@ -520,6 +520,35 @@
|
||||
"type-detect": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"deep-equal": {
|
||||
"version": "2.0.5",
|
||||
"resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz",
|
||||
"integrity": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==",
|
||||
"requires": {
|
||||
"call-bind": "^1.0.0",
|
||||
"es-get-iterator": "^1.1.1",
|
||||
"get-intrinsic": "^1.0.1",
|
||||
"is-arguments": "^1.0.4",
|
||||
"is-date-object": "^1.0.2",
|
||||
"is-regex": "^1.1.1",
|
||||
"isarray": "^2.0.5",
|
||||
"object-is": "^1.1.4",
|
||||
"object-keys": "^1.1.1",
|
||||
"object.assign": "^4.1.2",
|
||||
"regexp.prototype.flags": "^1.3.0",
|
||||
"side-channel": "^1.0.3",
|
||||
"which-boxed-primitive": "^1.0.1",
|
||||
"which-collection": "^1.0.1",
|
||||
"which-typed-array": "^1.1.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"isarray": {
|
||||
"version": "2.0.5",
|
||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
|
||||
"integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"default-gateway": {
|
||||
"version": "6.0.3",
|
||||
"resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz",
|
||||
@ -638,6 +667,28 @@
|
||||
"unbox-primitive": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"es-get-iterator": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz",
|
||||
"integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==",
|
||||
"requires": {
|
||||
"call-bind": "^1.0.2",
|
||||
"get-intrinsic": "^1.1.0",
|
||||
"has-symbols": "^1.0.1",
|
||||
"is-arguments": "^1.1.0",
|
||||
"is-map": "^2.0.2",
|
||||
"is-set": "^2.0.2",
|
||||
"is-string": "^1.0.5",
|
||||
"isarray": "^2.0.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"isarray": {
|
||||
"version": "2.0.5",
|
||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
|
||||
"integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"es-to-primitive": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
|
||||
@ -1026,6 +1077,11 @@
|
||||
"resolved": "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-1.0.1.tgz",
|
||||
"integrity": "sha512-DhWU/kqY7X2F6KrrVTu7mHlbd2Pbo4D1YkAzasBMjQs6lJAoefxaA6m6CpSX0K6pjt9D0b9PNFI5zduy/vzOYw=="
|
||||
},
|
||||
"is-map": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
|
||||
"integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg=="
|
||||
},
|
||||
"is-negative-zero": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
|
||||
@ -1050,6 +1106,11 @@
|
||||
"has-symbols": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"is-set": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
|
||||
"integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g=="
|
||||
},
|
||||
"is-stream": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
|
||||
@ -1085,6 +1146,16 @@
|
||||
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
|
||||
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
|
||||
},
|
||||
"is-weakmap": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
|
||||
"integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA=="
|
||||
},
|
||||
"is-weakset": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.1.tgz",
|
||||
"integrity": "sha512-pi4vhbhVHGLxohUw7PhGsueT4vRGFoXhP7+RGN0jKIv9+8PWYCQTqtADngrxOm2g46hoH0+g8uZZBzMrvVGDmw=="
|
||||
},
|
||||
"isarray": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
|
||||
@ -2380,6 +2451,15 @@
|
||||
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.2.tgz",
|
||||
"integrity": "sha512-gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA=="
|
||||
},
|
||||
"object-is": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
|
||||
"integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
|
||||
"requires": {
|
||||
"call-bind": "^1.0.2",
|
||||
"define-properties": "^1.1.3"
|
||||
}
|
||||
},
|
||||
"object-keys": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
|
||||
@ -2706,6 +2786,15 @@
|
||||
"ms": "^2.1.1"
|
||||
}
|
||||
},
|
||||
"regexp.prototype.flags": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz",
|
||||
"integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==",
|
||||
"requires": {
|
||||
"call-bind": "^1.0.2",
|
||||
"define-properties": "^1.1.3"
|
||||
}
|
||||
},
|
||||
"relative-url": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/relative-url/-/relative-url-1.0.2.tgz",
|
||||
@ -2806,6 +2895,16 @@
|
||||
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
|
||||
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
|
||||
},
|
||||
"side-channel": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
|
||||
"integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
|
||||
"requires": {
|
||||
"call-bind": "^1.0.0",
|
||||
"get-intrinsic": "^1.0.2",
|
||||
"object-inspect": "^1.9.0"
|
||||
}
|
||||
},
|
||||
"signal-exit": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
|
||||
@ -3113,6 +3212,17 @@
|
||||
"is-symbol": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"which-collection": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz",
|
||||
"integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==",
|
||||
"requires": {
|
||||
"is-map": "^2.0.1",
|
||||
"is-set": "^2.0.1",
|
||||
"is-weakmap": "^2.0.1",
|
||||
"is-weakset": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"which-typed-array": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz",
|
||||
|
@ -22,13 +22,14 @@
|
||||
"compile-aqua:air": "aqua-cli -i ./aqua/ -o ./compiled-air -a"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@fluencelabs/aqua-cli": "^0.1.1-90",
|
||||
"@fluencelabs/aqua-cli": "^0.1.1-92",
|
||||
"ts-node": "^9.1.1",
|
||||
"typescript": "^4.2.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"@fluencelabs/fluence": "0.9.43",
|
||||
"@fluencelabs/fluence-network-environment": "1.0.8"
|
||||
"@fluencelabs/fluence": "^0.9.43",
|
||||
"@fluencelabs/fluence-network-environment": "1.0.8",
|
||||
"deep-equal": "^2.0.5"
|
||||
},
|
||||
"description": "Minimal template for aquamarine project."
|
||||
}
|
||||
|
@ -1,8 +1,12 @@
|
||||
import { FluenceClient } from "@fluencelabs/fluence";
|
||||
import { passFunctionAsArg } from "./compiled/callArrow";
|
||||
import {FluenceClient} from "@fluencelabs/fluence";
|
||||
import {passFunctionAsArg} from "./compiled/callArrow";
|
||||
|
||||
export async function callArrowCall(client: FluenceClient) {
|
||||
await passFunctionAsArg(client, client.relayPeerId!, (a: string) => {
|
||||
return "Hello, " + a + "!";
|
||||
export async function callArrowCall(client: FluenceClient): Promise<string> {
|
||||
return new Promise<string>((resolve, reject) => {
|
||||
passFunctionAsArg(client, client.relayPeerId!, "callArrow call", (a: string) => {
|
||||
let result = "Hello, " + a + "!";
|
||||
resolve(result)
|
||||
return result;
|
||||
});
|
||||
})
|
||||
}
|
||||
|
@ -31,7 +31,7 @@ export async function id(client: FluenceClient): Promise<void> {
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
|
||||
|
@ -34,7 +34,7 @@ export async function print(client: FluenceClient, str: string): Promise<void> {
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
h.on('getDataSrv', 'str', () => {return str;});
|
||||
@ -78,7 +78,7 @@ export async function id(client: FluenceClient): Promise<void> {
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
|
||||
@ -101,7 +101,7 @@ export async function id(client: FluenceClient): Promise<void> {
|
||||
|
||||
|
||||
|
||||
export async function passFunctionAsArg(client: FluenceClient, node: string, c: (arg0: string) => string): Promise<void> {
|
||||
export async function passFunctionAsArg(client: FluenceClient, node: string, str: string, c: (arg0: string) => string): Promise<void> {
|
||||
let request;
|
||||
const promise = new Promise<void>((resolve, reject) => {
|
||||
request = new RequestFlowBuilder()
|
||||
@ -109,11 +109,14 @@ export async function passFunctionAsArg(client: FluenceClient, node: string, c:
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||
(call %init_peer_id% ("getDataSrv" "node") [] node)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "str") [] str)
|
||||
)
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
@ -124,7 +127,7 @@ export async function passFunctionAsArg(client: FluenceClient, node: string, c:
|
||||
(call node ("peer" "identify") [])
|
||||
(seq
|
||||
(call relay ("op" "identity") [])
|
||||
(call %init_peer_id% ("callbackSrv" "c") ["hello"] init_call_res)
|
||||
(call %init_peer_id% ("callbackSrv" "c") [str] init_call_res)
|
||||
)
|
||||
)
|
||||
(call relay ("op" "identity") [])
|
||||
@ -146,10 +149,11 @@ export async function passFunctionAsArg(client: FluenceClient, node: string, c:
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
h.on('getDataSrv', 'node', () => {return node;});
|
||||
h.on('getDataSrv', 'str', () => {return str;});
|
||||
h.on('callbackSrv', 'c', (args) => {return c(args[0]);});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
|
@ -37,7 +37,7 @@ export async function helloWorld(client: FluenceClient, name: string): Promise<s
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
h.on('getDataSrv', 'name', () => {return name;});
|
||||
@ -88,7 +88,7 @@ export async function print(client: FluenceClient, str: string): Promise<void> {
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
h.on('getDataSrv', 'str', () => {return str;});
|
||||
@ -132,7 +132,7 @@ export async function id(client: FluenceClient): Promise<void> {
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
|
||||
@ -179,7 +179,7 @@ export async function testFunc(client: FluenceClient): Promise<string> {
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
|
||||
@ -206,14 +206,15 @@ export async function testFunc(client: FluenceClient): Promise<string> {
|
||||
|
||||
|
||||
|
||||
export async function doStuff(client: FluenceClient, a: string): Promise<void> {
|
||||
export async function doStuff(client: FluenceClient, a: string): Promise<string> {
|
||||
let request;
|
||||
const promise = new Promise<void>((resolve, reject) => {
|
||||
const promise = new Promise<string>((resolve, reject) => {
|
||||
request = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
|
||||
@ -230,6 +231,8 @@ export async function doStuff(client: FluenceClient, a: string): Promise<void> {
|
||||
)
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("callbackSrv" "response") [str])
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error%])
|
||||
)
|
||||
|
||||
@ -239,10 +242,14 @@ export async function doStuff(client: FluenceClient, a: string): Promise<void> {
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
h.on('getDataSrv', 'a', () => {return a;});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
@ -257,6 +264,6 @@ export async function doStuff(client: FluenceClient, a: string): Promise<void> {
|
||||
.build();
|
||||
});
|
||||
await client.initiateFlow(request);
|
||||
return Promise.race([promise, Promise.resolve()]);
|
||||
return promise;
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ export async function print(client: FluenceClient, str: string): Promise<void> {
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
h.on('getDataSrv', 'str', () => {return str;});
|
||||
@ -83,7 +83,7 @@ export async function printConstant(client: FluenceClient): Promise<void> {
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
|
||||
|
@ -34,7 +34,7 @@ export async function getAliasedData(client: FluenceClient): Promise<string> {
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
|
||||
|
@ -34,7 +34,7 @@ export async function print(client: FluenceClient, str: string): Promise<void> {
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
h.on('getDataSrv', 'str', () => {return str;});
|
||||
@ -78,7 +78,7 @@ export async function id(client: FluenceClient): Promise<void> {
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
|
||||
@ -130,7 +130,7 @@ export async function iterateAndPrint(client: FluenceClient, strings: string[]):
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
h.on('getDataSrv', 'strings', () => {return strings;});
|
||||
@ -191,7 +191,7 @@ export async function iterateAndPrintParallel(client: FluenceClient, nodes: stri
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
h.on('getDataSrv', 'nodes', () => {return nodes;});
|
||||
|
@ -34,7 +34,7 @@ export async function testFunc(client: FluenceClient): Promise<string> {
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
|
||||
|
@ -37,7 +37,7 @@ export async function helloWorld(client: FluenceClient, name: string): Promise<s
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
h.on('getDataSrv', 'name', () => {return name;});
|
||||
|
@ -34,7 +34,7 @@ export async function print(client: FluenceClient, str: string): Promise<void> {
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
h.on('getDataSrv', 'str', () => {return str;});
|
||||
@ -86,7 +86,7 @@ export async function ifElseCall(client: FluenceClient, condition: boolean): Pro
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
h.on('getDataSrv', 'condition', () => {return condition;});
|
||||
@ -138,7 +138,7 @@ export async function ifElseNumCall(client: FluenceClient, condition: number): P
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
h.on('getDataSrv', 'condition', () => {return condition;});
|
||||
|
@ -31,7 +31,7 @@ export async function id(client: FluenceClient): Promise<void> {
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
|
||||
@ -87,7 +87,7 @@ export async function getPeerExternalAddresses(client: FluenceClient, otherNodeP
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
h.on('getDataSrv', 'otherNodePeerId', () => {return otherNodePeerId;});
|
||||
@ -156,7 +156,7 @@ export async function getDistantAddresses(client: FluenceClient, target: string,
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
h.on('getDataSrv', 'target', () => {return target;});
|
||||
|
@ -31,7 +31,7 @@ export async function id(client: FluenceClient): Promise<void> {
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
|
||||
@ -93,7 +93,7 @@ export async function parFunc(client: FluenceClient, node: string, c: (arg0: {ex
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
h.on('getDataSrv', 'node', () => {return node;});
|
||||
|
@ -34,7 +34,7 @@ export async function print(client: FluenceClient, str: string): Promise<void> {
|
||||
h.on('getDataSrv', 'relay', () => {
|
||||
return client.relayPeerId!;
|
||||
});
|
||||
h.on('getRelayService', 'hasReleay', () => {// Not Used
|
||||
h.on('getRelayService', 'hasRelay', () => {// Not Used
|
||||
return client.relayPeerId !== undefined;
|
||||
});
|
||||
h.on('getDataSrv', 'str', () => {return str;});
|
||||
|
@ -2,5 +2,5 @@ import {FluenceClient} from "@fluencelabs/fluence";
|
||||
import {doStuff} from "./compiled/complex";
|
||||
|
||||
export async function complexCall(client: FluenceClient) {
|
||||
await doStuff(client, client.relayPeerId!)
|
||||
return await doStuff(client, client.relayPeerId!)
|
||||
}
|
||||
|
@ -9,6 +9,5 @@ export async function dataAliasCall(client: FluenceClient) {
|
||||
}
|
||||
})
|
||||
|
||||
const peerId = await getAliasedData(client)
|
||||
console.log("PeerId: ", peerId);
|
||||
return await getAliasedData(client)
|
||||
}
|
||||
|
@ -3,7 +3,11 @@
|
||||
|
||||
export async function foldCall(client: FluenceClient) {
|
||||
await iterateAndPrint(client, [client.relayPeerId!])
|
||||
await iterateAndPrintParallel(client, [client.relayPeerId!], (c) => {
|
||||
|
||||
return new Promise<string[]>((resolve, reject) => {
|
||||
iterateAndPrintParallel(client, [client.relayPeerId!], (c) => {
|
||||
console.log("iterateAndPrintParallel. external addresses: " + c.external_addresses)
|
||||
resolve(c.external_addresses)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
@ -6,6 +6,5 @@ export async function funcCall(client: FluenceClient) {
|
||||
return `some str`
|
||||
})
|
||||
|
||||
const res = await testFunc(client);
|
||||
console.log("Message: ", res);
|
||||
return await testFunc(client);
|
||||
}
|
||||
|
@ -7,6 +7,5 @@ export async function helloWorldCall(client: FluenceClient) {
|
||||
return `Hello, ${args[0]}!`
|
||||
})
|
||||
|
||||
const hello = await helloWorld(client, "NAME");
|
||||
console.log("Message: ", hello);
|
||||
return await helloWorld(client, "NAME");
|
||||
}
|
||||
|
72
src/index.ts
72
src/index.ts
@ -11,6 +11,16 @@ import {foldCall} from "./foldCall";
|
||||
import {ifCall} from "./if";
|
||||
import {parCall} from "./parCall";
|
||||
import {complexCall} from "./complex";
|
||||
let deepEqual = require('deep-equal')
|
||||
|
||||
function checkCall(name: string, expected: any, actual: any, callBackOnError: () => void) {
|
||||
if (!deepEqual(actual, expected)) {
|
||||
console.error(`${name} call has the wrong result`)
|
||||
console.error("expected: " + expected)
|
||||
console.error("actual: " + actual)
|
||||
callBackOnError()
|
||||
}
|
||||
}
|
||||
|
||||
const main = async () => {
|
||||
const client = await createClient(testNet[0]);
|
||||
@ -25,20 +35,64 @@ const main = async () => {
|
||||
|
||||
// these calls return void, so they could be executed at any time,
|
||||
// because promise waits only a fact that particle was sent
|
||||
await callArrowCall(client)
|
||||
await foldCall(client)
|
||||
|
||||
// callArrow.aqua
|
||||
let callArrowResult = await callArrowCall(client)
|
||||
|
||||
// fold.aqua
|
||||
let foldCallResult = await foldCall(client)
|
||||
|
||||
//if.aqua
|
||||
await ifCall(client)
|
||||
await parCall(client)
|
||||
|
||||
// par.aqua
|
||||
let parCallResult = await parCall(client)
|
||||
|
||||
// these calls waiting for a result, so it will be called sequentially
|
||||
await helloWorldCall(client)
|
||||
await funcCall(client)
|
||||
await onCall(client)
|
||||
await dataAliasCall(client)
|
||||
await complexCall(client)
|
||||
// helloWorld.aqua
|
||||
let helloWorldResult = await helloWorldCall(client)
|
||||
|
||||
client.disconnect();
|
||||
// func.aqua
|
||||
let funcCallResult = await funcCall(client)
|
||||
|
||||
// on.aqua
|
||||
let onCallResult = await onCall(client)
|
||||
|
||||
// dataAlias.aqua
|
||||
let dataAliasResult = await dataAliasCall(client)
|
||||
|
||||
// complex.aqua
|
||||
let complexCallResult = await complexCall(client)
|
||||
|
||||
await client.disconnect();
|
||||
|
||||
let success = true;
|
||||
let cb: () => void = () => {
|
||||
success = false;
|
||||
}
|
||||
|
||||
checkCall("callArrow", callArrowResult, "Hello, callArrow call!", cb)
|
||||
|
||||
checkCall("foldCall", foldCallResult, ["/ip4/165.227.164.206/tcp/7001", "/ip4/165.227.164.206/tcp/9001/ws"], cb)
|
||||
|
||||
checkCall("onCall", onCallResult, ["/ip4/165.227.164.206/tcp/7001", "/ip4/165.227.164.206/tcp/9001/ws"], cb)
|
||||
|
||||
checkCall("parArrow", parCallResult, "hello", cb)
|
||||
|
||||
checkCall("helloWorldCall", helloWorldResult, "Hello, NAME!", cb)
|
||||
|
||||
checkCall("funcCall", funcCallResult, "some str", cb)
|
||||
|
||||
checkCall("dataAliasCall", dataAliasResult, "peer id str", cb)
|
||||
|
||||
checkCall("complexCall", complexCallResult, "some str", cb)
|
||||
|
||||
if (success) {
|
||||
process.exit(0)
|
||||
} else {
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
main();
|
||||
|
@ -1,7 +1,6 @@
|
||||
import { FluenceClient, registerServiceFunction } from "@fluencelabs/fluence";
|
||||
import { getPeerExternalAddresses } from "./compiled/on";
|
||||
import {FluenceClient} from "@fluencelabs/fluence";
|
||||
import {getPeerExternalAddresses} from "./compiled/on";
|
||||
|
||||
export async function onCall(client: FluenceClient) {
|
||||
const addresses = await getPeerExternalAddresses(client, client.relayPeerId!)
|
||||
console.log("Addresses: ", addresses);
|
||||
export async function onCall(client: FluenceClient): Promise<string[]> {
|
||||
return await getPeerExternalAddresses(client, client.relayPeerId!)
|
||||
}
|
||||
|
@ -2,12 +2,19 @@ import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence";
|
||||
import {parFunc} from "./compiled/par";
|
||||
|
||||
export async function parCall(client: FluenceClient) {
|
||||
|
||||
let promise = new Promise<string>((resolve, reject) => {
|
||||
registerServiceFunction(client, "parservice-id", "call", (args: any[], _) => {
|
||||
console.log("hello from parservice-id")
|
||||
return `hello`
|
||||
let result = "hello"
|
||||
resolve(result)
|
||||
return result
|
||||
})
|
||||
})
|
||||
|
||||
await parFunc(client, client.relayPeerId!, (c) => {
|
||||
console.log("parFunc. external addresses par: " + c.external_addresses)
|
||||
})
|
||||
|
||||
return promise
|
||||
}
|
||||
|
@ -10,12 +10,16 @@
|
||||
],
|
||||
"declaration": true,
|
||||
"outDir": "dist",
|
||||
"moduleResolution": "node",
|
||||
"strict": true,
|
||||
"esModuleInterop": true,
|
||||
"noImplicitAny": false
|
||||
},
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
"dist"
|
||||
]
|
||||
"dist",
|
||||
"bundle",
|
||||
"src/__test__"
|
||||
],
|
||||
"include": ["src/**/*"]
|
||||
}
|
Reference in New Issue
Block a user