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 ) // setup socket.io io.on("connection", (socket) => { // initially, only anonymous messages are allowed socket.on('lookupToken', (chainId, address, callback) => { 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', {}) }); const port = parseInt(process.env.DEXORDER_PORT) || 3000; httpServer.listen(port) console.log('Started server on port '+port)