UNPKG

6.57 kBSource Map (JSON)View Raw
1{"version":3,"file":"ilp-prepare.js","sourceRoot":"","sources":["ilp-prepare.ts"],"names":[],"mappings":"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","sourcesContent":["import * as IlpPacket from 'ilp-packet'\nimport { create as createLogger } from '../common/log'\nconst log = createLogger('ilp-prepare')\nimport reduct = require('reduct')\n\nimport Accounts from '../services/accounts'\nimport RouteBuilder from '../services/route-builder'\nimport RateBackend from '../services/rate-backend'\nimport PeerProtocolController from '../controllers/peer-protocol'\nimport EchoController from '../controllers/echo'\n\nconst PEER_PROTOCOL_PREFIX = 'peer.'\n\nexport default class IlpPrepareController {\n private accounts: Accounts\n private routeBuilder: RouteBuilder\n private backend: RateBackend\n private peerProtocolController: PeerProtocolController\n private echoController: EchoController\n\n constructor (deps: reduct.Injector) {\n this.accounts = deps(Accounts)\n this.routeBuilder = deps(RouteBuilder)\n this.backend = deps(RateBackend)\n this.peerProtocolController = deps(PeerProtocolController)\n this.echoController = deps(EchoController)\n }\n\n async sendData (\n packet: Buffer,\n sourceAccount: string,\n outbound: (data: Buffer, accountId: string) => Promise<Buffer>\n ) {\n const parsedPacket = IlpPacket.deserializeIlpPrepare(packet)\n const { amount, executionCondition, destination, expiresAt } = parsedPacket\n\n log.trace('handling ilp prepare. sourceAccount=%s destination=%s amount=%s condition=%s expiry=%s packet=%s', sourceAccount, destination, amount, executionCondition.toString('base64'), expiresAt.toISOString(), packet.toString('base64'))\n\n if (destination.startsWith(PEER_PROTOCOL_PREFIX)) {\n return this.peerProtocolController.handle(packet, sourceAccount, { parsedPacket })\n } else if (destination === this.accounts.getOwnAddress()) {\n return this.echoController.handle(packet, sourceAccount, { parsedPacket, outbound })\n }\n\n const { nextHop, nextHopPacket } = await this.routeBuilder.getNextHopPacket(sourceAccount, parsedPacket)\n\n log.trace('sending outbound ilp prepare. destination=%s amount=%s', destination, nextHopPacket.amount)\n const result = await outbound(IlpPacket.serializeIlpPrepare(nextHopPacket), nextHop)\n\n this.backend.submitPacket({\n sourceAccount: sourceAccount,\n sourceAmount: amount,\n destinationAccount: nextHop,\n destinationAmount: nextHopPacket.amount,\n parsedPacket,\n result\n }).catch(err => {\n const errInfo = (err && typeof err === 'object' && err.stack) ? err.stack : String(err)\n log.error('error while submitting packet to backend. error=%s', errInfo)\n })\n\n if (result[0] === IlpPacket.Type.TYPE_ILP_FULFILL) {\n log.trace('got fulfillment. cond=%s nextHop=%s amount=%s', executionCondition.slice(0, 6).toString('base64'), nextHop, nextHopPacket.amount)\n\n this.backend.submitPayment({\n sourceAccount: sourceAccount,\n sourceAmount: amount,\n destinationAccount: nextHop,\n destinationAmount: nextHopPacket.amount\n })\n .catch(err => {\n const errInfo = (err && typeof err === 'object' && err.stack) ? err.stack : String(err)\n log.error('error while submitting payment to backend. error=%s', errInfo)\n })\n } else if (result[0] === IlpPacket.Type.TYPE_ILP_REJECT) {\n const parsed = IlpPacket.deserializeIlpReject(result)\n\n log.trace('got rejection. cond=%s nextHop=%s amount=%s code=%s triggeredBy=%s message=%s', executionCondition.slice(0, 6).toString('base64'), nextHop, nextHopPacket.amount, parsed.code, parsed.triggeredBy, parsed.message)\n }\n\n return result\n }\n}\n"]}
\No newline at end of file