UNPKG

898 BPlain TextView Raw
1import Accounts from '../services/accounts'
2import { create as createLogger } from '../common/log'
3import ILDCP = require('ilp-protocol-ildcp')
4const log = createLogger('ildcp-host')
5import reduct = require('reduct')
6
7export default class IldcpHostController {
8 protected accounts: Accounts
9
10 constructor (deps: reduct.Injector) {
11 this.accounts = deps(Accounts)
12 }
13
14 async handle (data: Buffer, sourceAccount: string) {
15 const clientAddress = this.accounts.getChildAddress(sourceAccount)
16 const info = this.accounts.getInfo(sourceAccount)
17 log.trace('responding to ILDCP config request. clientAddress=%s', clientAddress)
18
19 return ILDCP.serve({
20 requestPacket: data,
21 handler: () => Promise.resolve({
22 clientAddress,
23 assetScale: info.assetScale,
24 assetCode: info.assetCode
25 }),
26 serverAddress: this.accounts.getOwnAddress()
27 })
28 }
29}