Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | import { BufferReader } from '@node-dlc/bufio';
import { MessageType } from '../MessageType';
import {
ContractDescriptorV0,
ContractDescriptorV1,
} from './ContractDescriptor';
import { ContractInfoV0, ContractInfoV1 } from './ContractInfo';
import { DlcAcceptV0 } from './DlcAccept';
import { DlcCloseV0 } from './DlcClose';
import { DlcOfferV0 } from './DlcOffer';
import { DlcSignV0 } from './DlcSign';
import { NodeAnnouncementMessage } from './NodeAnnouncementMessage';
import { OracleAnnouncementV0 } from './OracleAnnouncementV0';
import { OracleAttestationV0 } from './OracleAttestationV0';
import { OrderAcceptV0 } from './OrderAccept';
import { OrderOfferV0 } from './OrderOffer';
export interface IDlcMessage {
type: MessageType;
serialize(): Buffer;
}
export abstract class DlcMessage {
public static deserialize(
buf: Buffer,
):
| ContractDescriptorV0
| ContractDescriptorV1
| ContractInfoV0
| ContractInfoV1
| OrderOfferV0
| OrderAcceptV0
| DlcOfferV0
| DlcAcceptV0
| DlcSignV0
| DlcCloseV0
| OracleAttestationV0
| OracleAnnouncementV0
| NodeAnnouncementMessage {
const reader = new BufferReader(buf);
const type = Number(reader.readUInt16BE());
switch (type) {
case MessageType.ContractDescriptorV0:
return ContractDescriptorV0.deserialize(buf);
case MessageType.ContractDescriptorV1:
return ContractDescriptorV1.deserialize(buf);
case MessageType.ContractInfoV0:
return ContractInfoV0.deserialize(buf);
case MessageType.ContractInfoV1:
return ContractInfoV1.deserialize(buf);
case MessageType.OrderOfferV0:
return OrderOfferV0.deserialize(buf);
case MessageType.OrderAcceptV0:
return OrderAcceptV0.deserialize(buf);
case MessageType.DlcOfferV0:
return DlcOfferV0.deserialize(buf);
case MessageType.DlcAcceptV0:
return DlcAcceptV0.deserialize(buf);
case MessageType.DlcSignV0:
return DlcSignV0.deserialize(buf);
case MessageType.DlcCloseV0:
return DlcCloseV0.deserialize(buf);
case MessageType.OracleAttestationV0:
return OracleAttestationV0.deserialize(buf);
case MessageType.OracleAnnouncementV0:
return OracleAnnouncementV0.deserialize(buf);
case MessageType.NodeAnnouncement:
return NodeAnnouncementMessage.deserialize(buf);
default:
throw new Error(`Dlc Message type invalid`);
}
}
public abstract type: number;
public abstract serialize(): Buffer;
}
|