mirror of
https://github.com/fluencelabs/examples
synced 2025-04-25 18:52:15 +00:00
63 lines
1.4 KiB
TypeScript
63 lines
1.4 KiB
TypeScript
import { Fluence, KeyPair } from '@fluencelabs/fluence';
|
|
import { krasnodar } from '@fluencelabs/fluence-network-environment';
|
|
import { registerCalc, CalcDef } from './_aqua/calc';
|
|
|
|
class Calc implements CalcDef {
|
|
private _state: number = 0;
|
|
|
|
add(n: number) {
|
|
this._state += n;
|
|
}
|
|
|
|
subtract(n: number) {
|
|
this._state -= n;
|
|
}
|
|
|
|
multiply(n: number) {
|
|
this._state *= n;
|
|
}
|
|
|
|
divide(n: number) {
|
|
this._state /= n;
|
|
}
|
|
|
|
reset() {
|
|
this._state = 0;
|
|
}
|
|
|
|
getResult() {
|
|
return this._state;
|
|
}
|
|
}
|
|
|
|
const relay = krasnodar[0];
|
|
// generated with `npx aqua create_keypair`
|
|
const skBytes = 'tOpsT08fvYMnRypj3VtSoqWMN5W/AptKsP39yanlkg4=';
|
|
|
|
export async function runServer() {
|
|
await Fluence.start({
|
|
connectTo: relay,
|
|
KeyPair: await KeyPair.fromEd25519SK(Buffer.from(skBytes, 'base64')),
|
|
});
|
|
|
|
registerCalc(new Calc());
|
|
|
|
console.log('application started');
|
|
console.log('peer id is: ', Fluence.getStatus().peerId);
|
|
console.log('relay is: ', Fluence.getStatus().relayPeerId);
|
|
console.log('press any key to quit...');
|
|
}
|
|
|
|
export async function justStop() {
|
|
await Fluence.stop();
|
|
}
|
|
|
|
export async function waitForKeypressAndStop() {
|
|
process.stdin.setRawMode(true);
|
|
process.stdin.resume();
|
|
process.stdin.on('data', async () => {
|
|
await Fluence.stop();
|
|
process.exit(0);
|
|
});
|
|
}
|