104 lines
2.8 KiB
TypeScript
Raw Normal View History

2021-07-20 14:00:26 +03:00
/**
*
* 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
2021-09-08 18:37:59 +03:00
* Aqua version: 0.3.0-222
2021-07-20 14:00:26 +03:00
*
*/
2021-09-08 18:37:59 +03:00
import { FluencePeer } from '@fluencelabs/fluence';
import {
ResultCodes,
RequestFlow,
RequestFlowBuilder,
CallParams,
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
2021-07-20 14:00:26 +03:00
2021-09-08 18:37:59 +03:00
// Services
2021-07-20 14:00:26 +03:00
2021-09-08 18:37:59 +03:00
// Functions
export function getRelayTime(relayPeerId: string, config?: {ttl?: number}) : Promise<number>;
export function getRelayTime(peer: FluencePeer, relayPeerId: string, config?: {ttl?: number}) : Promise<number>;
export function getRelayTime(...args) {
let peer: FluencePeer;
let relayPeerId;
let config;
if (args[0] instanceof FluencePeer) {
peer = args[0];
relayPeerId = args[1];
config = args[2];
} else {
peer = FluencePeer.default;
relayPeerId = args[0];
config = args[1];
}
let request: RequestFlow;
const promise = new Promise<number>((resolve, reject) => {
const r = new RequestFlowBuilder()
.disableInjections()
.withRawScript(
`
(xor
2021-07-20 14:00:26 +03:00
(seq
(seq
(seq
(seq
(seq
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
(call %init_peer_id% ("getDataSrv" "relayPeerId") [] relayPeerId)
)
(call -relay- ("op" "noop") [])
)
(xor
(call relayPeerId ("peer" "timestamp_ms") [] ts)
(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") [ts])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
)
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
)
2021-09-08 18:37:59 +03:00
`,
)
.configHandler((h) => {
h.on('getDataSrv', '-relay-', () => {
return peer.connectionInfo.connectedRelay ;
2021-07-20 14:00:26 +03:00
});
h.on('getDataSrv', 'relayPeerId', () => {return relayPeerId;});
h.onEvent('callbackSrv', 'response', (args) => {
2021-09-08 18:37:59 +03:00
const [res] = args;
2021-07-20 14:00:26 +03:00
resolve(res);
});
h.onEvent('errorHandlingSrv', 'error', (args) => {
const [err] = args;
reject(err);
});
})
.handleScriptError(reject)
.handleTimeout(() => {
reject('Request timed out for getRelayTime');
})
2021-09-08 18:37:59 +03:00
if(config && config.ttl) {
2021-07-20 14:00:26 +03:00
r.withTTL(config.ttl)
}
request = r.build();
});
2021-09-08 18:37:59 +03:00
peer.internals.initiateFlow(request!);
2021-07-20 14:00:26 +03:00
return promise;
}
2021-09-08 18:37:59 +03:00