import express from 'express'
import { config } from 'dotenv'
import { OverlayExpressNode } from '@bsv/overlay-express'
import { MyTokenTopicManager } from './MyTokenTopicManager'
import { MyTokenLookupService } from './MyTokenLookupService'
import { TokenStorage } from './TokenStorage'
config()
async function main() {
const app = express()
const storage = new TokenStorage()
await storage.initialize(process.env.MONGODB_URI!)
new OverlayExpressNode({
port: parseInt(process.env.PORT!),
app,
nodeImpl: {
getTopicManagers: () => [new MyTokenTopicManager()],
getLookupServiceFactory: () => ({ getLookupService: () => new MyTokenLookupService(storage) })
}
})
app.listen(process.env.PORT, () => {
console.log(`β Overlay running on http://localhost:${process.env.PORT}`)
console.log(`π‘ POST /submit - Submit transactions`)
console.log(`π POST /lookup - Query tokens`)
})
}
main()
import { ChaintracksChainTracker } from '@bsv/sdk'
const chainTracker = new ChaintracksChainTracker('main') // or 'test'
server.configureChainTracker(chainTracker)