1 | import { BinaryWriter, createSerializeWire, SerializableWire, SerializeWire } from '@neo-one/client-common-esnext-esm';
|
2 | import { BinaryReader, DeserializeWireBaseOptions, DeserializeWireOptions } from '@neo-one/node-core-esnext-esm';
|
3 | import { NetworkAddress } from './NetworkAddress';
|
4 | export interface AddrPayloadAdd {
|
5 | readonly addresses: ReadonlyArray<NetworkAddress>;
|
6 | }
|
7 |
|
8 | export 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 | }
|