UNPKG

@node-dlc/wire

Version:
60 lines (55 loc) 2.74 kB
import { AcceptChannelMessage } from './messages/AcceptChannelMessage'; import { ChannelAnnouncementMessage } from './messages/ChannelAnnouncementMessage'; import { ChannelUpdateMessage } from './messages/ChannelUpdateMessage'; import { ErrorMessage } from './messages/ErrorMessage'; import { GossipTimestampFilterMessage } from './messages/GossipTimestampFilterMessage'; import { InitMessage } from './messages/InitMessage'; import { IWireMessage } from './messages/IWireMessage'; import { NodeAnnouncementMessage } from './messages/NodeAnnouncementMessage'; import { OpenChannelMessage } from './messages/OpenChannelMessage'; import { PingMessage } from './messages/PingMessage'; import { PongMessage } from './messages/PongMessage'; import { QueryChannelRangeMessage } from './messages/QueryChannelRangeMessage'; import { QueryShortChannelIdsMessage } from './messages/QueryShortChannelIdsMessage'; import { ReplyChannelRangeMessage } from './messages/ReplyChannelRangeMessage'; import { ReplyShortChannelIdsEndMessage } from './messages/ReplyShortChannelIdsEndMessage'; import { ShutdownMessage } from './messages/ShutdownMessage'; import { MessageType } from './MessageType'; export function deserialize(buffer: Buffer): IWireMessage { const type = buffer.readUInt16BE(0); switch (type) { // control messages case MessageType.Init: return InitMessage.deserialize(buffer); case MessageType.Error: return ErrorMessage.deserialize(buffer); case MessageType.Ping: return PingMessage.deserialize(buffer); case MessageType.Pong: return PongMessage.deserialize(buffer); // channel messages case MessageType.OpenChannel: return OpenChannelMessage.deserialize(buffer); case MessageType.AcceptChannel: return AcceptChannelMessage.deserialize(buffer); case MessageType.Shutdown: return ShutdownMessage.deserialize(buffer); // gossip messages case MessageType.NodeAnnouncement: return NodeAnnouncementMessage.deserialize(buffer); case MessageType.ChannelAnnouncement: return ChannelAnnouncementMessage.deserialize(buffer); case MessageType.ChannelUpdate: return ChannelUpdateMessage.deserialize(buffer); case MessageType.QueryShortChannelIds: return QueryShortChannelIdsMessage.deserialize(buffer); case MessageType.ReplyShortChannelIdsEnd: return ReplyShortChannelIdsEndMessage.deserialize(buffer); case MessageType.QueryChannelRange: return QueryChannelRangeMessage.deserialize(buffer); case MessageType.ReplyChannelRange: return ReplyChannelRangeMessage.deserialize(buffer); case MessageType.GossipTimestampFilter: return GossipTimestampFilterMessage.deserialize(buffer); } }