1 | import { createSerializeWire } from '@neo-one/client-common-esnext-esm';
|
2 | import { BinaryReader } from '@neo-one/node-core-esnext-esm';
|
3 | import BN from 'bn.js';
|
4 | export const SERVICES = {
|
5 | NODE_NETWORK: new BN(1),
|
6 | };
|
7 | export 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,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LElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0QyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2QyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0NBQ0YiLCJmaWxlIjoibmVvLW9uZS1ub2RlLXByb3RvY29sL3NyYy9wYXlsb2FkL1ZlcnNpb25QYXlsb2FkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmluYXJ5V3JpdGVyLCBjcmVhdGVTZXJpYWxpemVXaXJlLCBTZXJpYWxpemFibGVXaXJlLCBTZXJpYWxpemVXaXJlIH0gZnJvbSAnQG5lby1vbmUvY2xpZW50LWNvbW1vbi1lc25leHQtZXNtJztcbmltcG9ydCB7IEJpbmFyeVJlYWRlciwgRGVzZXJpYWxpemVXaXJlQmFzZU9wdGlvbnMsIERlc2VyaWFsaXplV2lyZU9wdGlvbnMgfSBmcm9tICdAbmVvLW9uZS9ub2RlLWNvcmUtZXNuZXh0LWVzbSc7XG5pbXBvcnQgQk4gZnJvbSAnYm4uanMnO1xuXG5leHBvcnQgY29uc3QgU0VSVklDRVMgPSB7XG4gIE5PREVfTkVUV09SSzogbmV3IEJOKDEpLFxufTtcbmV4cG9ydCBpbnRlcmZhY2UgVmVyc2lvblBheWxvYWRBZGQge1xuICByZWFkb25seSBwcm90b2NvbFZlcnNpb246IG51bWJlcjtcbiAgcmVhZG9ubHkgc2VydmljZXM6IEJOO1xuICByZWFkb25seSB0aW1lc3RhbXA6IG51bWJlcjtcbiAgcmVhZG9ubHkgcG9ydDogbnVtYmVyO1xuICByZWFkb25seSBub25jZTogbnVtYmVyO1xuICByZWFkb25seSB1c2VyQWdlbnQ6IHN0cmluZztcbiAgcmVhZG9ubHkgc3RhcnRIZWlnaHQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgcmVsYXk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBWZXJzaW9uUGF5bG9hZCBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZVdpcmU8VmVyc2lvblBheWxvYWQ+IHtcbiAgcHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZVdpcmVCYXNlKHsgcmVhZGVyIH06IERlc2VyaWFsaXplV2lyZUJhc2VPcHRpb25zKTogVmVyc2lvblBheWxvYWQge1xuICAgIGNvbnN0IHByb3RvY29sVmVyc2lvbiA9IHJlYWRlci5yZWFkVUludDMyTEUoKTtcbiAgICBjb25zdCBzZXJ2aWNlcyA9IHJlYWRlci5yZWFkVUludDY0TEUoKTtcbiAgICBjb25zdCB0aW1lc3RhbXAgPSByZWFkZXIucmVhZFVJbnQzMkxFKCk7XG4gICAgY29uc3QgcG9ydCA9IHJlYWRlci5yZWFkVUludDE2TEUoKTtcbiAgICBjb25zdCBub25jZSA9IHJlYWRlci5yZWFkVUludDMyTEUoKTtcbiAgICBjb25zdCB1c2VyQWdlbnQgPSByZWFkZXIucmVhZFZhclN0cmluZygxMDI0KTtcbiAgICBjb25zdCBzdGFydEhlaWdodCA9IHJlYWRlci5yZWFkVUludDMyTEUoKTtcbiAgICBjb25zdCByZWxheSA9IHJlYWRlci5yZWFkQm9vbGVhbigpO1xuXG4gICAgcmV0dXJuIG5ldyB0aGlzKHtcbiAgICAgIHByb3RvY29sVmVyc2lvbixcbiAgICAgIHNlcnZpY2VzLFxuICAgICAgdGltZXN0YW1wLFxuICAgICAgcG9ydCxcbiAgICAgIG5vbmNlLFxuICAgICAgdXNlckFnZW50LFxuICAgICAgc3RhcnRIZWlnaHQsXG4gICAgICByZWxheSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZGVzZXJpYWxpemVXaXJlKG9wdGlvbnM6IERlc2VyaWFsaXplV2lyZU9wdGlvbnMpOiBWZXJzaW9uUGF5bG9hZCB7XG4gICAgcmV0dXJuIHRoaXMuZGVzZXJpYWxpemVXaXJlQmFzZSh7XG4gICAgICBjb250ZXh0OiBvcHRpb25zLmNvbnRleHQsXG4gICAgICByZWFkZXI6IG5ldyBCaW5hcnlSZWFkZXIob3B0aW9ucy5idWZmZXIpLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHByb3RvY29sVmVyc2lvbjogbnVtYmVyO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VydmljZXM6IEJOO1xuICBwdWJsaWMgcmVhZG9ubHkgdGltZXN0YW1wOiBudW1iZXI7XG4gIHB1YmxpYyByZWFkb25seSBwb3J0OiBudW1iZXI7XG4gIHB1YmxpYyByZWFkb25seSBub25jZTogbnVtYmVyO1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlckFnZW50OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBzdGFydEhlaWdodDogbnVtYmVyO1xuICBwdWJsaWMgcmVhZG9ubHkgcmVsYXk6IGJvb2xlYW47XG4gIHB1YmxpYyByZWFkb25seSBzZXJpYWxpemVXaXJlOiBTZXJpYWxpemVXaXJlID0gY3JlYXRlU2VyaWFsaXplV2lyZSh0aGlzLnNlcmlhbGl6ZVdpcmVCYXNlLmJpbmQodGhpcykpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcih7XG4gICAgcHJvdG9jb2xWZXJzaW9uLFxuICAgIHNlcnZpY2VzLFxuICAgIHRpbWVzdGFtcCxcbiAgICBwb3J0LFxuICAgIG5vbmNlLFxuICAgIHVzZXJBZ2VudCxcbiAgICBzdGFydEhlaWdodCxcbiAgICByZWxheSxcbiAgfTogVmVyc2lvblBheWxvYWRBZGQpIHtcbiAgICB0aGlzLnByb3RvY29sVmVyc2lvbiA9IHByb3RvY29sVmVyc2lvbjtcbiAgICB0aGlzLnNlcnZpY2VzID0gc2VydmljZXM7XG4gICAgdGhpcy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XG4gICAgdGhpcy5wb3J0ID0gcG9ydDtcbiAgICB0aGlzLm5vbmNlID0gbm9uY2U7XG4gICAgdGhpcy51c2VyQWdlbnQgPSB1c2VyQWdlbnQ7XG4gICAgdGhpcy5zdGFydEhlaWdodCA9IHN0YXJ0SGVpZ2h0O1xuICAgIHRoaXMucmVsYXkgPSByZWxheTtcbiAgfVxuXG4gIHB1YmxpYyBzZXJpYWxpemVXaXJlQmFzZSh3cml0ZXI6IEJpbmFyeVdyaXRlcik6IHZvaWQge1xuICAgIHdyaXRlci53cml0ZVVJbnQzMkxFKHRoaXMucHJvdG9jb2xWZXJzaW9uKTtcbiAgICB3cml0ZXIud3JpdGVVSW50NjRMRSh0aGlzLnNlcnZpY2VzKTtcbiAgICB3cml0ZXIud3JpdGVVSW50MzJMRSh0aGlzLnRpbWVzdGFtcCk7XG4gICAgd3JpdGVyLndyaXRlVUludDE2TEUodGhpcy5wb3J0KTtcbiAgICB3cml0ZXIud3JpdGVVSW50MzJMRSh0aGlzLm5vbmNlKTtcbiAgICB3cml0ZXIud3JpdGVWYXJTdHJpbmcodGhpcy51c2VyQWdlbnQpO1xuICAgIHdyaXRlci53cml0ZVVJbnQzMkxFKHRoaXMuc3RhcnRIZWlnaHQpO1xuICAgIHdyaXRlci53cml0ZUJvb2xlYW4odGhpcy5yZWxheSk7XG4gIH1cbn1cbiJdfQ==
|