@neo-one/node-protocol
Version:
NEO•ONE NEO node and consensus protocol.
61 lines (59 loc) • 8.44 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const client_common_1 = require("@neo-one/client-common");
const node_core_1 = require("@neo-one/node-core");
const bn_js_1 = require("bn.js");
exports.SERVICES = {
NODE_NETWORK: new bn_js_1.BN(1),
};
class VersionPayload {
constructor({ protocolVersion, services, timestamp, port, nonce, userAgent, startHeight, relay, }) {
this.serializeWire = client_common_1.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 node_core_1.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);
}
}
exports.VersionPayload = VersionPayload;
//# sourceMappingURL=data:application/json;charset=utf8;base64,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WSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0NBQ0Y7QUF0RUQsd0NBc0VDIiwiZmlsZSI6Im5lby1vbmUtbm9kZS1wcm90b2NvbC9zcmMvcGF5bG9hZC9WZXJzaW9uUGF5bG9hZC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJpbmFyeVdyaXRlciwgY3JlYXRlU2VyaWFsaXplV2lyZSwgU2VyaWFsaXphYmxlV2lyZSwgU2VyaWFsaXplV2lyZSB9IGZyb20gJ0BuZW8tb25lL2NsaWVudC1jb21tb24nO1xuaW1wb3J0IHsgQmluYXJ5UmVhZGVyLCBEZXNlcmlhbGl6ZVdpcmVCYXNlT3B0aW9ucywgRGVzZXJpYWxpemVXaXJlT3B0aW9ucyB9IGZyb20gJ0BuZW8tb25lL25vZGUtY29yZSc7XG5pbXBvcnQgeyBCTiB9IGZyb20gJ2JuLmpzJztcblxuZXhwb3J0IGNvbnN0IFNFUlZJQ0VTID0ge1xuICBOT0RFX05FVFdPUks6IG5ldyBCTigxKSxcbn07XG5leHBvcnQgaW50ZXJmYWNlIFZlcnNpb25QYXlsb2FkQWRkIHtcbiAgcmVhZG9ubHkgcHJvdG9jb2xWZXJzaW9uOiBudW1iZXI7XG4gIHJlYWRvbmx5IHNlcnZpY2VzOiBCTjtcbiAgcmVhZG9ubHkgdGltZXN0YW1wOiBudW1iZXI7XG4gIHJlYWRvbmx5IHBvcnQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgbm9uY2U6IG51bWJlcjtcbiAgcmVhZG9ubHkgdXNlckFnZW50OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHN0YXJ0SGVpZ2h0OiBudW1iZXI7XG4gIHJlYWRvbmx5IHJlbGF5OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgVmVyc2lvblBheWxvYWQgaW1wbGVtZW50cyBTZXJpYWxpemFibGVXaXJlPFZlcnNpb25QYXlsb2FkPiB7XG4gIHB1YmxpYyBzdGF0aWMgZGVzZXJpYWxpemVXaXJlQmFzZSh7IHJlYWRlciB9OiBEZXNlcmlhbGl6ZVdpcmVCYXNlT3B0aW9ucyk6IFZlcnNpb25QYXlsb2FkIHtcbiAgICBjb25zdCBwcm90b2NvbFZlcnNpb24gPSByZWFkZXIucmVhZFVJbnQzMkxFKCk7XG4gICAgY29uc3Qgc2VydmljZXMgPSByZWFkZXIucmVhZFVJbnQ2NExFKCk7XG4gICAgY29uc3QgdGltZXN0YW1wID0gcmVhZGVyLnJlYWRVSW50MzJMRSgpO1xuICAgIGNvbnN0IHBvcnQgPSByZWFkZXIucmVhZFVJbnQxNkxFKCk7XG4gICAgY29uc3Qgbm9uY2UgPSByZWFkZXIucmVhZFVJbnQzMkxFKCk7XG4gICAgY29uc3QgdXNlckFnZW50ID0gcmVhZGVyLnJlYWRWYXJTdHJpbmcoMTAyNCk7XG4gICAgY29uc3Qgc3RhcnRIZWlnaHQgPSByZWFkZXIucmVhZFVJbnQzMkxFKCk7XG4gICAgY29uc3QgcmVsYXkgPSByZWFkZXIucmVhZEJvb2xlYW4oKTtcblxuICAgIHJldHVybiBuZXcgdGhpcyh7XG4gICAgICBwcm90b2NvbFZlcnNpb24sXG4gICAgICBzZXJ2aWNlcyxcbiAgICAgIHRpbWVzdGFtcCxcbiAgICAgIHBvcnQsXG4gICAgICBub25jZSxcbiAgICAgIHVzZXJBZ2VudCxcbiAgICAgIHN0YXJ0SGVpZ2h0LFxuICAgICAgcmVsYXksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGRlc2VyaWFsaXplV2lyZShvcHRpb25zOiBEZXNlcmlhbGl6ZVdpcmVPcHRpb25zKTogVmVyc2lvblBheWxvYWQge1xuICAgIHJldHVybiB0aGlzLmRlc2VyaWFsaXplV2lyZUJhc2Uoe1xuICAgICAgY29udGV4dDogb3B0aW9ucy5jb250ZXh0LFxuICAgICAgcmVhZGVyOiBuZXcgQmluYXJ5UmVhZGVyKG9wdGlvbnMuYnVmZmVyKSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBwcm90b2NvbFZlcnNpb246IG51bWJlcjtcbiAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2VzOiBCTjtcbiAgcHVibGljIHJlYWRvbmx5IHRpbWVzdGFtcDogbnVtYmVyO1xuICBwdWJsaWMgcmVhZG9ubHkgcG9ydDogbnVtYmVyO1xuICBwdWJsaWMgcmVhZG9ubHkgbm9uY2U6IG51bWJlcjtcbiAgcHVibGljIHJlYWRvbmx5IHVzZXJBZ2VudDogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhcnRIZWlnaHQ6IG51bWJlcjtcbiAgcHVibGljIHJlYWRvbmx5IHJlbGF5OiBib29sZWFuO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VyaWFsaXplV2lyZTogU2VyaWFsaXplV2lyZSA9IGNyZWF0ZVNlcmlhbGl6ZVdpcmUodGhpcy5zZXJpYWxpemVXaXJlQmFzZS5iaW5kKHRoaXMpKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3Ioe1xuICAgIHByb3RvY29sVmVyc2lvbixcbiAgICBzZXJ2aWNlcyxcbiAgICB0aW1lc3RhbXAsXG4gICAgcG9ydCxcbiAgICBub25jZSxcbiAgICB1c2VyQWdlbnQsXG4gICAgc3RhcnRIZWlnaHQsXG4gICAgcmVsYXksXG4gIH06IFZlcnNpb25QYXlsb2FkQWRkKSB7XG4gICAgdGhpcy5wcm90b2NvbFZlcnNpb24gPSBwcm90b2NvbFZlcnNpb247XG4gICAgdGhpcy5zZXJ2aWNlcyA9IHNlcnZpY2VzO1xuICAgIHRoaXMudGltZXN0YW1wID0gdGltZXN0YW1wO1xuICAgIHRoaXMucG9ydCA9IHBvcnQ7XG4gICAgdGhpcy5ub25jZSA9IG5vbmNlO1xuICAgIHRoaXMudXNlckFnZW50ID0gdXNlckFnZW50O1xuICAgIHRoaXMuc3RhcnRIZWlnaHQgPSBzdGFydEhlaWdodDtcbiAgICB0aGlzLnJlbGF5ID0gcmVsYXk7XG4gIH1cblxuICBwdWJsaWMgc2VyaWFsaXplV2lyZUJhc2Uod3JpdGVyOiBCaW5hcnlXcml0ZXIpOiB2b2lkIHtcbiAgICB3cml0ZXIud3JpdGVVSW50MzJMRSh0aGlzLnByb3RvY29sVmVyc2lvbik7XG4gICAgd3JpdGVyLndyaXRlVUludDY0TEUodGhpcy5zZXJ2aWNlcyk7XG4gICAgd3JpdGVyLndyaXRlVUludDMyTEUodGhpcy50aW1lc3RhbXApO1xuICAgIHdyaXRlci53cml0ZVVJbnQxNkxFKHRoaXMucG9ydCk7XG4gICAgd3JpdGVyLndyaXRlVUludDMyTEUodGhpcy5ub25jZSk7XG4gICAgd3JpdGVyLndyaXRlVmFyU3RyaW5nKHRoaXMudXNlckFnZW50KTtcbiAgICB3cml0ZXIud3JpdGVVSW50MzJMRSh0aGlzLnN0YXJ0SGVpZ2h0KTtcbiAgICB3cml0ZXIud3JpdGVCb29sZWFuKHRoaXMucmVsYXkpO1xuICB9XG59XG4iXX0=