@neo-one/node-protocol-esnext-esm
Version:
NEO•ONE NEO node and consensus protocol.
58 lines (56 loc) • 2.01 kB
JavaScript
import { createSerializeWire } from '@neo-one/client-common-esnext-esm';
import { BinaryReader } from '@neo-one/node-core-esnext-esm';
import BN from 'bn.js';
export const SERVICES = {
NODE_NETWORK: new BN(1),
};
export class VersionPayload {
constructor({ protocolVersion, services, timestamp, port, nonce, userAgent, startHeight, relay, }) {
this.serializeWire = createSerializeWire(this.serializeWireBase.bind(this));
this.protocolVersion = protocolVersion;
this.services = services;
this.timestamp = timestamp;
this.port = port;
this.nonce = nonce;
this.userAgent = userAgent;
this.startHeight = startHeight;
this.relay = relay;
}
static deserializeWireBase({ reader }) {
const protocolVersion = reader.readUInt32LE();
const services = reader.readUInt64LE();
const timestamp = reader.readUInt32LE();
const port = reader.readUInt16LE();
const nonce = reader.readUInt32LE();
const userAgent = reader.readVarString(1024);
const startHeight = reader.readUInt32LE();
const relay = reader.readBoolean();
return new this({
protocolVersion,
services,
timestamp,
port,
nonce,
userAgent,
startHeight,
relay,
});
}
static deserializeWire(options) {
return this.deserializeWireBase({
context: options.context,
reader: new BinaryReader(options.buffer),
});
}
serializeWireBase(writer) {
writer.writeUInt32LE(this.protocolVersion);
writer.writeUInt64LE(this.services);
writer.writeUInt32LE(this.timestamp);
writer.writeUInt16LE(this.port);
writer.writeUInt32LE(this.nonce);
writer.writeVarString(this.userAgent);
writer.writeUInt32LE(this.startHeight);
writer.writeBoolean(this.relay);
}
}
//# sourceMappingURL=VersionPayload.js.map