UNPKG

1.31 kBPlain TextView Raw
1import { BinaryWriter, createSerializeWire, SerializableWire, SerializeWire } from '@neo-one/client-common-esnext-esm';
2import { BinaryReader, DeserializeWireBaseOptions, DeserializeWireOptions } from '@neo-one/node-core-esnext-esm';
3import { NetworkAddress } from './NetworkAddress';
4export interface AddrPayloadAdd {
5 readonly addresses: ReadonlyArray<NetworkAddress>;
6}
7
8export class AddrPayload implements SerializableWire<AddrPayload> {
9 public static deserializeWireBase(options: DeserializeWireBaseOptions): AddrPayload {
10 const { reader } = options;
11 const addresses = reader.readArray(() => NetworkAddress.deserializeWireBase(options));
12
13 return new this({ addresses });
14 }
15
16 public static deserializeWire(options: DeserializeWireOptions): AddrPayload {
17 return this.deserializeWireBase({
18 context: options.context,
19 reader: new BinaryReader(options.buffer),
20 });
21 }
22
23 public readonly addresses: ReadonlyArray<NetworkAddress>;
24 public readonly serializeWire: SerializeWire = createSerializeWire(this.serializeWireBase.bind(this));
25
26 public constructor({ addresses }: AddrPayloadAdd) {
27 this.addresses = addresses;
28 }
29
30 public serializeWireBase(writer: BinaryWriter): void {
31 writer.writeArray(this.addresses, (address) => address.serializeWireBase(writer));
32 }
33}