UNPKG

@neo-one/node-protocol

Version:

NEO•ONE NEO node and consensus protocol.

61 lines (59 loc) 8.44 kB
"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=