UNPKG

8.45 kBJavaScriptView Raw
1import { createSerializeWire } from '@neo-one/client-common-esnext-esm';
2import { BinaryReader } from '@neo-one/node-core-esnext-esm';
3import BN from 'bn.js';
4export const SERVICES = {
5 NODE_NETWORK: new BN(1),
6};
7export class VersionPayload {
8 constructor({ protocolVersion, services, timestamp, port, nonce, userAgent, startHeight, relay, }) {
9 this.serializeWire = createSerializeWire(this.serializeWireBase.bind(this));
10 this.protocolVersion = protocolVersion;
11 this.services = services;
12 this.timestamp = timestamp;
13 this.port = port;
14 this.nonce = nonce;
15 this.userAgent = userAgent;
16 this.startHeight = startHeight;
17 this.relay = relay;
18 }
19 static deserializeWireBase({ reader }) {
20 const protocolVersion = reader.readUInt32LE();
21 const services = reader.readUInt64LE();
22 const timestamp = reader.readUInt32LE();
23 const port = reader.readUInt16LE();
24 const nonce = reader.readUInt32LE();
25 const userAgent = reader.readVarString(1024);
26 const startHeight = reader.readUInt32LE();
27 const relay = reader.readBoolean();
28 return new this({
29 protocolVersion,
30 services,
31 timestamp,
32 port,
33 nonce,
34 userAgent,
35 startHeight,
36 relay,
37 });
38 }
39 static deserializeWire(options) {
40 return this.deserializeWireBase({
41 context: options.context,
42 reader: new BinaryReader(options.buffer),
43 });
44 }
45 serializeWireBase(writer) {
46 writer.writeUInt32LE(this.protocolVersion);
47 writer.writeUInt64LE(this.services);
48 writer.writeUInt32LE(this.timestamp);
49 writer.writeUInt16LE(this.port);
50 writer.writeUInt32LE(this.nonce);
51 writer.writeVarString(this.userAgent);
52 writer.writeUInt32LE(this.startHeight);
53 writer.writeBoolean(this.relay);
54 }
55}
56
57//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlZlcnNpb25QYXlsb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsbUJBQW1CLEVBQW1DLE1BQU0sbUNBQW1DLENBQUM7QUFDdkgsT0FBTyxFQUFFLFlBQVksRUFBc0QsTUFBTSwrQkFBK0IsQ0FBQztBQUNqSCxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFdkIsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHO0lBQ3RCLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7Q0FDeEIsQ0FBQztBQVlGLE1BQU0sT0FBTyxjQUFjO0lBd0N6QixZQUFtQixFQUNqQixlQUFlLEVBQ2YsUUFBUSxFQUNSLFNBQVMsRUFDVCxJQUFJLEVBQ0osS0FBSyxFQUNMLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxHQUNhO1FBWEosa0JBQWEsR0FBa0IsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBWXBHLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUF6RE0sTUFBTSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsTUFBTSxFQUE4QjtRQUN0RSxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDOUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbkMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVuQyxPQUFPLElBQUksSUFBSSxDQUFDO1lBQ2QsZUFBZTtZQUNmLFFBQVE7WUFDUixTQUFTO1lBQ1QsSUFBSTtZQUNKLEtBQUs7WUFDTCxTQUFTO1lBQ1QsV0FBVztZQUNYLEtBQUs7U0FDTixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUErQjtRQUMzRCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztZQUM5QixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87WUFDeEIsTUFBTSxFQUFFLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7U0FDekMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQWdDTSxpQkFBaUIsQ0FBQyxNQUFvQjtRQUMzQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0QyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2QyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0NBQ0YiLCJmaWxlIjoibmVvLW9uZS1ub2RlLXByb3RvY29sL3NyYy9wYXlsb2FkL1ZlcnNpb25QYXlsb2FkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmluYXJ5V3JpdGVyLCBjcmVhdGVTZXJpYWxpemVXaXJlLCBTZXJpYWxpemFibGVXaXJlLCBTZXJpYWxpemVXaXJlIH0gZnJvbSAnQG5lby1vbmUvY2xpZW50LWNvbW1vbi1lc25leHQtZXNtJztcbmltcG9ydCB7IEJpbmFyeVJlYWRlciwgRGVzZXJpYWxpemVXaXJlQmFzZU9wdGlvbnMsIERlc2VyaWFsaXplV2lyZU9wdGlvbnMgfSBmcm9tICdAbmVvLW9uZS9ub2RlLWNvcmUtZXNuZXh0LWVzbSc7XG5pbXBvcnQgQk4gZnJvbSAnYm4uanMnO1xuXG5leHBvcnQgY29uc3QgU0VSVklDRVMgPSB7XG4gIE5PREVfTkVUV09SSzogbmV3IEJOKDEpLFxufTtcbmV4cG9ydCBpbnRlcmZhY2UgVmVyc2lvblBheWxvYWRBZGQge1xuICByZWFkb25seSBwcm90b2NvbFZlcnNpb246IG51bWJlcjtcbiAgcmVhZG9ubHkgc2VydmljZXM6IEJOO1xuICByZWFkb25seSB0aW1lc3RhbXA6IG51bWJlcjtcbiAgcmVhZG9ubHkgcG9ydDogbnVtYmVyO1xuICByZWFkb25seSBub25jZTogbnVtYmVyO1xuICByZWFkb25seSB1c2VyQWdlbnQ6IHN0cmluZztcbiAgcmVhZG9ubHkgc3RhcnRIZWlnaHQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgcmVsYXk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBWZXJzaW9uUGF5bG9hZCBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZVdpcmU8VmVyc2lvblBheWxvYWQ+IHtcbiAgcHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZVdpcmVCYXNlKHsgcmVhZGVyIH06IERlc2VyaWFsaXplV2lyZUJhc2VPcHRpb25zKTogVmVyc2lvblBheWxvYWQge1xuICAgIGNvbnN0IHByb3RvY29sVmVyc2lvbiA9IHJlYWRlci5yZWFkVUludDMyTEUoKTtcbiAgICBjb25zdCBzZXJ2aWNlcyA9IHJlYWRlci5yZWFkVUludDY0TEUoKTtcbiAgICBjb25zdCB0aW1lc3RhbXAgPSByZWFkZXIucmVhZFVJbnQzMkxFKCk7XG4gICAgY29uc3QgcG9ydCA9IHJlYWRlci5yZWFkVUludDE2TEUoKTtcbiAgICBjb25zdCBub25jZSA9IHJlYWRlci5yZWFkVUludDMyTEUoKTtcbiAgICBjb25zdCB1c2VyQWdlbnQgPSByZWFkZXIucmVhZFZhclN0cmluZygxMDI0KTtcbiAgICBjb25zdCBzdGFydEhlaWdodCA9IHJlYWRlci5yZWFkVUludDMyTEUoKTtcbiAgICBjb25zdCByZWxheSA9IHJlYWRlci5yZWFkQm9vbGVhbigpO1xuXG4gICAgcmV0dXJuIG5ldyB0aGlzKHtcbiAgICAgIHByb3RvY29sVmVyc2lvbixcbiAgICAgIHNlcnZpY2VzLFxuICAgICAgdGltZXN0YW1wLFxuICAgICAgcG9ydCxcbiAgICAgIG5vbmNlLFxuICAgICAgdXNlckFnZW50LFxuICAgICAgc3RhcnRIZWlnaHQsXG4gICAgICByZWxheSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZGVzZXJpYWxpemVXaXJlKG9wdGlvbnM6IERlc2VyaWFsaXplV2lyZU9wdGlvbnMpOiBWZXJzaW9uUGF5bG9hZCB7XG4gICAgcmV0dXJuIHRoaXMuZGVzZXJpYWxpemVXaXJlQmFzZSh7XG4gICAgICBjb250ZXh0OiBvcHRpb25zLmNvbnRleHQsXG4gICAgICByZWFkZXI6IG5ldyBCaW5hcnlSZWFkZXIob3B0aW9ucy5idWZmZXIpLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHByb3RvY29sVmVyc2lvbjogbnVtYmVyO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VydmljZXM6IEJOO1xuICBwdWJsaWMgcmVhZG9ubHkgdGltZXN0YW1wOiBudW1iZXI7XG4gIHB1YmxpYyByZWFkb25seSBwb3J0OiBudW1iZXI7XG4gIHB1YmxpYyByZWFkb25seSBub25jZTogbnVtYmVyO1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlckFnZW50OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBzdGFydEhlaWdodDogbnVtYmVyO1xuICBwdWJsaWMgcmVhZG9ubHkgcmVsYXk6IGJvb2xlYW47XG4gIHB1YmxpYyByZWFkb25seSBzZXJpYWxpemVXaXJlOiBTZXJpYWxpemVXaXJlID0gY3JlYXRlU2VyaWFsaXplV2lyZSh0aGlzLnNlcmlhbGl6ZVdpcmVCYXNlLmJpbmQodGhpcykpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcih7XG4gICAgcHJvdG9jb2xWZXJzaW9uLFxuICAgIHNlcnZpY2VzLFxuICAgIHRpbWVzdGFtcCxcbiAgICBwb3J0LFxuICAgIG5vbmNlLFxuICAgIHVzZXJBZ2VudCxcbiAgICBzdGFydEhlaWdodCxcbiAgICByZWxheSxcbiAgfTogVmVyc2lvblBheWxvYWRBZGQpIHtcbiAgICB0aGlzLnByb3RvY29sVmVyc2lvbiA9IHByb3RvY29sVmVyc2lvbjtcbiAgICB0aGlzLnNlcnZpY2VzID0gc2VydmljZXM7XG4gICAgdGhpcy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XG4gICAgdGhpcy5wb3J0ID0gcG9ydDtcbiAgICB0aGlzLm5vbmNlID0gbm9uY2U7XG4gICAgdGhpcy51c2VyQWdlbnQgPSB1c2VyQWdlbnQ7XG4gICAgdGhpcy5zdGFydEhlaWdodCA9IHN0YXJ0SGVpZ2h0O1xuICAgIHRoaXMucmVsYXkgPSByZWxheTtcbiAgfVxuXG4gIHB1YmxpYyBzZXJpYWxpemVXaXJlQmFzZSh3cml0ZXI6IEJpbmFyeVdyaXRlcik6IHZvaWQge1xuICAgIHdyaXRlci53cml0ZVVJbnQzMkxFKHRoaXMucHJvdG9jb2xWZXJzaW9uKTtcbiAgICB3cml0ZXIud3JpdGVVSW50NjRMRSh0aGlzLnNlcnZpY2VzKTtcbiAgICB3cml0ZXIud3JpdGVVSW50MzJMRSh0aGlzLnRpbWVzdGFtcCk7XG4gICAgd3JpdGVyLndyaXRlVUludDE2TEUodGhpcy5wb3J0KTtcbiAgICB3cml0ZXIud3JpdGVVSW50MzJMRSh0aGlzLm5vbmNlKTtcbiAgICB3cml0ZXIud3JpdGVWYXJTdHJpbmcodGhpcy51c2VyQWdlbnQpO1xuICAgIHdyaXRlci53cml0ZVVJbnQzMkxFKHRoaXMuc3RhcnRIZWlnaHQpO1xuICAgIHdyaXRlci53cml0ZUJvb2xlYW4odGhpcy5yZWxheSk7XG4gIH1cbn1cbiJdfQ==