server works with backend via redis, serves chainInfo, more

This commit is contained in:
Tim Olson
2023-10-04 03:42:21 -04:00
parent e36f7812eb
commit c05c9b9c16
12 changed files with 404 additions and 209 deletions

27
main.js
View File

@@ -1,22 +1,9 @@
import 'dotenv/config'
import {lookupToken} from "./token.js";
import {startWatcher} from "./watcher.js";
import {chains} from "./blockchain.js";
import {watchErc20Transfer, watchVaultCreated} from "./vault.js";
import {httpServer, io} from "./io.js";
// setup watcher
const filterCallbacks = [
// format is [[className, eventName, ...eventArgs], callback(provider, database, logInfo)]
[['VaultDeployer','VaultCreated', null, null], watchVaultCreated],
[['ERC20', 'Transfer'], watchErc20Transfer],
]
for( const chain of Object.values(chains) )
await startWatcher( chain.id, 1000, filterCallbacks )
import {ensureVault, loginAddress} from "./vault.js";
import {chainInfo} from "./misc.js";
// setup socket.io
@@ -27,10 +14,16 @@ io.on("connection", (socket) => {
lookupToken(chainId, address).then((result)=>callback(result)).catch(()=>callback(null))
})
socket.on('address', (chainId, address) => loginAddress(socket, chainId, address) )
// todo send known tokens or other initial config
socket.emit('welcome', {})
socket.on('ensureVault', ensureVault )
socket.emit('chainInfo', chainInfo)
socket.join('public')
io.to('room').emit('event', {foo:'bar'})
});
io.on("disconnection", (socket)=>{
socket.leave('public')
})
const port = parseInt(process.env.DEXORDER_PORT) || 3000;
httpServer.listen(port)
console.log('Started server on port '+port)