referencing compiler from npm package

This commit is contained in:
Pavel Murygin 2021-04-13 19:51:04 +03:00
parent 9330b7f207
commit 3b9bc7662e
4 changed files with 59 additions and 53 deletions

Binary file not shown.

4
package-lock.json generated
View File

@ -4,6 +4,10 @@
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
"@fluencelabs/aquamarine": {
"version": "file:fluencelabs-aquamarine-1.0.0.tgz",
"integrity": "sha512-ukaTE6QmlRKFB+JJF3n96txkGirMs8gfgptw8N5bU6VHp3OcvTsl59F1Xr83zFiLO67dl3epWDOHkPEAGGtJig=="
},
"@fluencelabs/aquamarine-interpreter": { "@fluencelabs/aquamarine-interpreter": {
"version": "0.7.2", "version": "0.7.2",
"resolved": "https://registry.npmjs.org/@fluencelabs/aquamarine-interpreter/-/aquamarine-interpreter-0.7.2.tgz", "resolved": "https://registry.npmjs.org/@fluencelabs/aquamarine-interpreter/-/aquamarine-interpreter-0.7.2.tgz",

View File

@ -18,11 +18,13 @@
"scripts": { "scripts": {
"build": "tsc", "build": "tsc",
"cli": "node -r ts-node/register src/index.ts", "cli": "node -r ts-node/register src/index.ts",
"compile-aqua": "java -jar ./aqua-hll.jar -i ./src/aqua/ -o ./src/compiled" "compile-aqua": "java -jar ./aqua-hll.jar -i ./src/aqua/ -o ./src/compiled",
"compile": "aquamarine -i ./src/aqua/ -o ./src/compiled"
}, },
"devDependencies": { "devDependencies": {
"ts-node": "^9.1.1", "ts-node": "^9.1.1",
"typescript": "^4.2.4" "typescript": "^4.2.4",
"@fluencelabs/aquamarine": "file:fluencelabs-aquamarine-1.0.0.tgz"
}, },
"dependencies": { "dependencies": {
"@fluencelabs/fluence": "0.9.34", "@fluencelabs/fluence": "0.9.34",

View File

@ -1,62 +1,62 @@
import { FluenceClient, PeerIdB58 } from "@fluencelabs/fluence"; import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence';
import { RequestFlowBuilder } from "@fluencelabs/fluence/dist/api.unstable"; import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
export async function getPeerExternalAddresses(
client: FluenceClient,
otherNodePeerId: string export async function getPeerExternalAddresses(client: FluenceClient, otherNodePeerId: string): Promise<string[]> {
): Promise<string[]> { let request;
let request; const promise = new Promise<string[]>((resolve, reject) => {
const promise = new Promise<string[]>((resolve, reject) => { request = new RequestFlowBuilder()
request = new RequestFlowBuilder() .withRawScript(
.withRawScript( `
` (xor
(seq
(seq (seq
(seq (seq
(seq (seq
(call %init_peer_id% ("getDataSrv" "otherNodePeerId") [] otherNodePeerId) (seq
(call %init_peer_id% ("getDataSrv" "relay") [] relay) (call %init_peer_id% ("getDataSrv" "otherNodePeerId") [] otherNodePeerId)
) (call %init_peer_id% ("getDataSrv" "relay") [] relay)
(seq )
(call relay ("op" "identity") []) (seq
(call otherNodePeerId ("peer" "identify") [] res) (call relay ("op" "identity") [])
(call otherNodePeerId ("peer" "identify") [] res)
)
) )
(call relay ("op" "identity") [])
) )
(call relay ("op" "identity") []) (call %init_peer_id% ("callbackSrv" "response") [res.$.external_addresses!])
) )
(call %init_peer_id% ("callbackSrv" "response") [res.$.external_addresses!]) (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error%])
) )
` `,
) )
.configHandler((h) => { .configHandler((h) => {
h.on("getDataSrv", "relay", () => { h.on('getDataSrv', 'relay', () => {
return client.relayPeerId; return client.relayPeerId;
}); });
h.on("getRelayService", "hasReleay", () => { h.on('getRelayService', 'hasReleay', () => {// Not Used
// Not Used return client.relayPeerId !== undefined;
return client.relayPeerId !== undefined; });
}); h.on('getDataSrv', 'otherNodePeerId', () => {return otherNodePeerId;});
h.on("getDataSrv", "otherNodePeerId", () => { h.on('callbackSrv', 'response', (args) => {
return otherNodePeerId; const [res] = args;
}); resolve(res);
h.on("callbackSrv", "response", (args) => { });
const [res] = args;
resolve(res);
});
h.on("nameOfServiceWhereToSendXorError", "errorProbably", (args) => { h.on('errorHandlingSrv', 'error', (args) => {
// assuming error is the single argument // assuming error is the single argument
const [err] = args; const [err] = args;
reject(err); reject(err);
}); });
}) })
.handleScriptError(reject) .handleScriptError(reject)
.handleTimeout(() => { .handleTimeout(() => {
reject("Request timed out"); reject('Request timed out');
}) })
.build(); .build();
}); });
await client.initiateFlow(request); await client.initiateFlow(request);
return promise; return promise;
} }